@pcircle/claude-code-buddy-mcp 2.3.10 → 2.4.1
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/dist/core/HookIntegration.d.ts +5 -1
- package/dist/core/HookIntegration.d.ts.map +1 -1
- package/dist/core/HookIntegration.js +73 -46
- package/dist/core/HookIntegration.js.map +1 -1
- package/dist/core/TestOutputParser.d.ts +20 -0
- package/dist/core/TestOutputParser.d.ts.map +1 -0
- package/dist/core/TestOutputParser.js +144 -0
- package/dist/core/TestOutputParser.js.map +1 -0
- package/dist/mcp/resources/best-practices.md +67 -0
- package/dist/mcp/resources/examples.md +56 -0
- package/dist/mcp/resources/quick-reference.md +73 -0
- package/dist/mcp/resources/usage-guide.md +92 -0
- package/dist/memory/ProjectAutoTracker.d.ts +13 -0
- package/dist/memory/ProjectAutoTracker.d.ts.map +1 -1
- package/dist/memory/ProjectAutoTracker.js +89 -5
- package/dist/memory/ProjectAutoTracker.js.map +1 -1
- package/package.json +3 -2
- package/plugin.json +1 -1
- package/dist/__benchmarks__/performance-fixes.bench.d.ts +0 -8
- package/dist/__benchmarks__/performance-fixes.bench.d.ts.map +0 -1
- package/dist/__benchmarks__/performance-fixes.bench.js +0 -213
- package/dist/__benchmarks__/performance-fixes.bench.js.map +0 -1
- package/dist/core/BackgroundExecutorConstants.d.ts +0 -8
- package/dist/core/BackgroundExecutorConstants.d.ts.map +0 -1
- package/dist/core/BackgroundExecutorConstants.js +0 -8
- package/dist/core/BackgroundExecutorConstants.js.map +0 -1
- package/dist/evolution/LearningManagerConstants.d.ts +0 -55
- package/dist/evolution/LearningManagerConstants.d.ts.map +0 -1
- package/dist/evolution/LearningManagerConstants.js +0 -55
- package/dist/evolution/LearningManagerConstants.js.map +0 -1
- package/dist/evolution/PerformanceTrackerConstants.d.ts +0 -5
- package/dist/evolution/PerformanceTrackerConstants.d.ts.map +0 -1
- package/dist/evolution/PerformanceTrackerConstants.js +0 -5
- package/dist/evolution/PerformanceTrackerConstants.js.map +0 -1
- package/dist/orchestrator/GlobalResourcePoolConstants.d.ts +0 -22
- package/dist/orchestrator/GlobalResourcePoolConstants.d.ts.map +0 -1
- package/dist/orchestrator/GlobalResourcePoolConstants.js +0 -22
- package/dist/orchestrator/GlobalResourcePoolConstants.js.map +0 -1
- package/dist/orchestrator/TaskAnalyzerConstants.d.ts +0 -16
- package/dist/orchestrator/TaskAnalyzerConstants.d.ts.map +0 -1
- package/dist/orchestrator/TaskAnalyzerConstants.js +0 -16
- package/dist/orchestrator/TaskAnalyzerConstants.js.map +0 -1
- package/dist/templates/git-education-templates.d.ts +0 -26
- package/dist/templates/git-education-templates.d.ts.map +0 -1
- package/dist/templates/git-education-templates.js +0 -455
- package/dist/templates/git-education-templates.js.map +0 -1
- package/dist/utils/SecureKeyStore.d.ts +0 -10
- package/dist/utils/SecureKeyStore.d.ts.map +0 -1
- package/dist/utils/SecureKeyStore.js +0 -32
- package/dist/utils/SecureKeyStore.js.map +0 -1
- package/dist/utils/cost-tracker.d.ts +0 -34
- package/dist/utils/cost-tracker.d.ts.map +0 -1
- package/dist/utils/cost-tracker.js +0 -92
- package/dist/utils/cost-tracker.js.map +0 -1
- package/dist/utils/validation.d.ts +0 -7
- package/dist/utils/validation.d.ts.map +0 -1
- package/dist/utils/validation.js +0 -62
- package/dist/utils/validation.js.map +0 -1
|
@@ -1,455 +0,0 @@
|
|
|
1
|
-
export const GitEducationTemplates = {
|
|
2
|
-
whatIsVersionControl: `
|
|
3
|
-
╭─────────────────────────────────────────────────────────────╮
|
|
4
|
-
│ 💡 什麼是版本控制? │
|
|
5
|
-
├─────────────────────────────────────────────────────────────┤
|
|
6
|
-
│ │
|
|
7
|
-
│ 類比 1: 遊戲存檔點 🎮 │
|
|
8
|
-
│ ───────────────────── │
|
|
9
|
-
│ 就像玩遊戲時可以儲存進度,隨時回到之前的存檔點 │
|
|
10
|
-
│ │
|
|
11
|
-
│ 遊戲進度: │
|
|
12
|
-
│ 💾 存檔 1: 剛開始 (1小時前) │
|
|
13
|
-
│ 💾 存檔 2: 打完第一關 (30分鐘前) │
|
|
14
|
-
│ 💾 存檔 3: 目前位置 ← 你在這裡 │
|
|
15
|
-
│ │
|
|
16
|
-
│ 代碼版本: │
|
|
17
|
-
│ 💾 版本 1: 專案開始 (1小時前) │
|
|
18
|
-
│ 💾 版本 2: 完成登入功能 (30分鐘前) │
|
|
19
|
-
│ 💾 版本 3: 目前狀態 ← 你在這裡 │
|
|
20
|
-
│ │
|
|
21
|
-
├─────────────────────────────────────────────────────────────┤
|
|
22
|
-
│ 類比 2: 拍照記錄 📸 │
|
|
23
|
-
│ ───────────────── │
|
|
24
|
-
│ 就像拍照記錄專案的每個階段,可以回顧和比較 │
|
|
25
|
-
│ │
|
|
26
|
-
│ 建築進度照片: │
|
|
27
|
-
│ 📷 第1週: 打地基 │
|
|
28
|
-
│ 📷 第2週: 蓋牆壁 │
|
|
29
|
-
│ 📷 第3週: 裝屋頂 │
|
|
30
|
-
│ │
|
|
31
|
-
│ 代碼進度版本: │
|
|
32
|
-
│ 📷 版本1: 基本架構 │
|
|
33
|
-
│ 📷 版本2: 新增功能 │
|
|
34
|
-
│ 📷 版本3: 完成測試 │
|
|
35
|
-
│ │
|
|
36
|
-
├─────────────────────────────────────────────────────────────┤
|
|
37
|
-
│ 類比 3: 時光機器 ⏰ │
|
|
38
|
-
│ ───────────────── │
|
|
39
|
-
│ 可以隨時回到過去任何一個時間點的代碼狀態 │
|
|
40
|
-
│ │
|
|
41
|
-
│ 現在 ━━━━━━━━━━━━━━━━━━━━━━━ 過去 │
|
|
42
|
-
│ ↑ ↑ ↑ │
|
|
43
|
-
│ 今天 昨天 3天前 │
|
|
44
|
-
│ │
|
|
45
|
-
│ 想要回到昨天的代碼?沒問題! │
|
|
46
|
-
│ 發現今天的修改有 bug?可以立刻恢復到昨天! │
|
|
47
|
-
│ │
|
|
48
|
-
╰─────────────────────────────────────────────────────────────╯
|
|
49
|
-
`,
|
|
50
|
-
benefits: `
|
|
51
|
-
╭─────────────────────────────────────────────────────────────╮
|
|
52
|
-
│ ✅ 版本控制可以幫你: │
|
|
53
|
-
├─────────────────────────────────────────────────────────────┤
|
|
54
|
-
│ │
|
|
55
|
-
│ 1️⃣ 記錄每次修改 📝 │
|
|
56
|
-
│ • 知道什麼時候改了什麼 │
|
|
57
|
-
│ • 可以寫下改動原因 │
|
|
58
|
-
│ • 方便日後回顧 │
|
|
59
|
-
│ │
|
|
60
|
-
│ 2️⃣ 回到之前的版本 ⏮️ │
|
|
61
|
-
│ • 新功能出問題?立刻回到舊版本 │
|
|
62
|
-
│ • 實驗失敗?一鍵恢復 │
|
|
63
|
-
│ • 不用手動複製一堆「舊版本」資料夾 │
|
|
64
|
-
│ │
|
|
65
|
-
│ 3️⃣ 安心實驗新功能 🧪 │
|
|
66
|
-
│ • 大膽嘗試新想法 │
|
|
67
|
-
│ • 壞了就回到上個版本 │
|
|
68
|
-
│ • 不用擔心「改壞了回不去」 │
|
|
69
|
-
│ │
|
|
70
|
-
│ 4️⃣ 了解專案如何演進 📊 │
|
|
71
|
-
│ • 看到專案的成長歷程 │
|
|
72
|
-
│ • 了解每個功能何時加入 │
|
|
73
|
-
│ • 追蹤問題是何時出現的 │
|
|
74
|
-
│ │
|
|
75
|
-
│ 5️⃣ 不怕電腦壞掉 💾 │
|
|
76
|
-
│ • 自動本地備份 │
|
|
77
|
-
│ • 可選雲端同步(GitHub) │
|
|
78
|
-
│ • 多一份保障 │
|
|
79
|
-
│ │
|
|
80
|
-
╰─────────────────────────────────────────────────────────────╯
|
|
81
|
-
`,
|
|
82
|
-
noGitHubRequired: `
|
|
83
|
-
╭─────────────────────────────────────────────────────────────╮
|
|
84
|
-
│ 📝 完全在本機運作,不需要 GitHub 或網路 │
|
|
85
|
-
├─────────────────────────────────────────────────────────────┤
|
|
86
|
-
│ │
|
|
87
|
-
│ 你的電腦 │
|
|
88
|
-
│ ├─ 專案資料夾/ │
|
|
89
|
-
│ │ ├─ .git/ ← 版本紀錄(完全在本機) │
|
|
90
|
-
│ │ ├─ 你的代碼 │
|
|
91
|
-
│ │ └─ ... │
|
|
92
|
-
│ └─ 備份資料夾/ ← 自動本地備份(可選) │
|
|
93
|
-
│ ├─ 2025-12-31_10-00/ │
|
|
94
|
-
│ ├─ 2025-12-31_14-00/ │
|
|
95
|
-
│ └─ ... │
|
|
96
|
-
│ │
|
|
97
|
-
│ ❌ 不需要: │
|
|
98
|
-
│ • GitHub 帳號 │
|
|
99
|
-
│ • 網路連線 │
|
|
100
|
-
│ • 學習複雜的 Git 指令 │
|
|
101
|
-
│ • 設定 SSH keys │
|
|
102
|
-
│ │
|
|
103
|
-
│ ✅ 只需要: │
|
|
104
|
-
│ • 你的名字(可以隨便填) │
|
|
105
|
-
│ • Email(可以隨便填) │
|
|
106
|
-
│ • 儲存版本時寫個簡單的描述 │
|
|
107
|
-
│ │
|
|
108
|
-
│ 💡 如果未來想要雲端備份: │
|
|
109
|
-
│ 只要提供 GitHub token,GitHub 功能會自動啟用 │
|
|
110
|
-
│ (完全可選,不是必需的) │
|
|
111
|
-
│ │
|
|
112
|
-
╰─────────────────────────────────────────────────────────────╯
|
|
113
|
-
`,
|
|
114
|
-
quickTutorial: `
|
|
115
|
-
╭─────────────────────────────────────────────────────────────╮
|
|
116
|
-
│ 📚 快速教學(2 分鐘) │
|
|
117
|
-
├─────────────────────────────────────────────────────────────┤
|
|
118
|
-
│ │
|
|
119
|
-
│ 第 1 步:儲存目前工作 💾 │
|
|
120
|
-
│ ───────────────────── │
|
|
121
|
-
│ 指令:save-work "完成了登入功能" │
|
|
122
|
-
│ │
|
|
123
|
-
│ 就這麼簡單!你的工作已經被記錄了 │
|
|
124
|
-
│ │
|
|
125
|
-
├─────────────────────────────────────────────────────────────┤
|
|
126
|
-
│ 第 2 步:繼續工作,再次儲存 💾💾 │
|
|
127
|
-
│ ──────────────────────────── │
|
|
128
|
-
│ (修改一些代碼...) │
|
|
129
|
-
│ 指令:save-work "修復密碼驗證 bug" │
|
|
130
|
-
│ │
|
|
131
|
-
│ 現在你有兩個版本了! │
|
|
132
|
-
│ │
|
|
133
|
-
├─────────────────────────────────────────────────────────────┤
|
|
134
|
-
│ 第 3 步:查看歷史版本 📖 │
|
|
135
|
-
│ ──────────────────── │
|
|
136
|
-
│ 指令:list-versions │
|
|
137
|
-
│ │
|
|
138
|
-
│ 輸出: │
|
|
139
|
-
│ 1. 修復密碼驗證 bug (剛剛) │
|
|
140
|
-
│ 2. 完成了登入功能 (5 分鐘前) │
|
|
141
|
-
│ │
|
|
142
|
-
├─────────────────────────────────────────────────────────────┤
|
|
143
|
-
│ 第 4 步:回到之前的版本 ⏮️ │
|
|
144
|
-
│ ───────────────────────── │
|
|
145
|
-
│ 指令:go-back-to "2" │
|
|
146
|
-
│ 或 │
|
|
147
|
-
│ go-back-to "5 分鐘前" │
|
|
148
|
-
│ │
|
|
149
|
-
│ 你的代碼回到第 2 個版本的狀態了! │
|
|
150
|
-
│ │
|
|
151
|
-
├─────────────────────────────────────────────────────────────┤
|
|
152
|
-
│ 🎉 完成!你已經學會基本操作了 │
|
|
153
|
-
│ │
|
|
154
|
-
│ 更多指令: │
|
|
155
|
-
│ • status - 查看目前狀態 │
|
|
156
|
-
│ • show-changes - 查看修改了什麼 │
|
|
157
|
-
│ • backup-now - 立刻創建備份 │
|
|
158
|
-
│ │
|
|
159
|
-
╰─────────────────────────────────────────────────────────────╯
|
|
160
|
-
`,
|
|
161
|
-
commonScenarios: `
|
|
162
|
-
╭─────────────────────────────────────────────────────────────╮
|
|
163
|
-
│ 💼 常見使用情境 │
|
|
164
|
-
├─────────────────────────────────────────────────────────────┤
|
|
165
|
-
│ │
|
|
166
|
-
│ 情境 1: 完成一個功能後 ✅ │
|
|
167
|
-
│ ──────────────────────── │
|
|
168
|
-
│ 你:完成了「用戶註冊」功能,想要記錄這個進度 │
|
|
169
|
-
│ 做:save-work "完成用戶註冊功能" │
|
|
170
|
-
│ │
|
|
171
|
-
├─────────────────────────────────────────────────────────────┤
|
|
172
|
-
│ 情境 2: 想要嘗試新想法 💡 │
|
|
173
|
-
│ ───────────────────── │
|
|
174
|
-
│ 你:想試試看新的設計,但怕改壞 │
|
|
175
|
-
│ 做:1. save-work "嘗試新設計前先儲存" │
|
|
176
|
-
│ 2. 大膽嘗試新想法 │
|
|
177
|
-
│ 3. 如果不滿意:go-back-to "1" │
|
|
178
|
-
│ 4. 如果滿意:save-work "新設計完成" │
|
|
179
|
-
│ │
|
|
180
|
-
├─────────────────────────────────────────────────────────────┤
|
|
181
|
-
│ 情境 3: 發現新代碼有 bug 🐛 │
|
|
182
|
-
│ ───────────────────────────── │
|
|
183
|
-
│ 你:新寫的代碼出問題了,想回到上一個能用的版本 │
|
|
184
|
-
│ 做:1. list-versions (看看之前的版本) │
|
|
185
|
-
│ 2. go-back-to "2" (回到第2個版本) │
|
|
186
|
-
│ 3. 重新思考怎麼實作 │
|
|
187
|
-
│ │
|
|
188
|
-
├─────────────────────────────────────────────────────────────┤
|
|
189
|
-
│ 情境 4: 想知道改了什麼 🔍 │
|
|
190
|
-
│ ───────────────────────── │
|
|
191
|
-
│ 你:工作一整天,想看看總共改了哪些東西 │
|
|
192
|
-
│ 做:show-changes │
|
|
193
|
-
│ │
|
|
194
|
-
│ 輸出: │
|
|
195
|
-
│ ✅ 新增了 150 行 │
|
|
196
|
-
│ ❌ 刪除了 30 行 │
|
|
197
|
-
│ 📁 修改了 5 個檔案 │
|
|
198
|
-
│ • login.ts │
|
|
199
|
-
│ • register.ts │
|
|
200
|
-
│ • ... │
|
|
201
|
-
│ │
|
|
202
|
-
├─────────────────────────────────────────────────────────────┤
|
|
203
|
-
│ 情境 5: 擔心資料遺失 💾 │
|
|
204
|
-
│ ─────────────────────── │
|
|
205
|
-
│ 你:想要額外備份一份 │
|
|
206
|
-
│ 做:backup-now │
|
|
207
|
-
│ │
|
|
208
|
-
│ 系統會自動: │
|
|
209
|
-
│ • 複製整個專案到備份資料夾 │
|
|
210
|
-
│ • 保留最近 10 個備份 │
|
|
211
|
-
│ • 自動刪除舊備份 │
|
|
212
|
-
│ │
|
|
213
|
-
╰─────────────────────────────────────────────────────────────╯
|
|
214
|
-
`,
|
|
215
|
-
automationLevels: `
|
|
216
|
-
╭─────────────────────────────────────────────────────────────╮
|
|
217
|
-
│ ⚙️ 自動化等級說明 │
|
|
218
|
-
├─────────────────────────────────────────────────────────────┤
|
|
219
|
-
│ │
|
|
220
|
-
│ Level 0: 完全手動 🖐️ │
|
|
221
|
-
│ ───────────────── │
|
|
222
|
-
│ • 系統不會主動提示 │
|
|
223
|
-
│ • 你需要手動輸入所有指令 │
|
|
224
|
-
│ • 適合:想要完全掌控的進階使用者 │
|
|
225
|
-
│ │
|
|
226
|
-
│ 範例: │
|
|
227
|
-
│ (無提示) │
|
|
228
|
-
│ 你手動輸入:save-work "..." │
|
|
229
|
-
│ │
|
|
230
|
-
├─────────────────────────────────────────────────────────────┤
|
|
231
|
-
│ Level 1: 智能提醒 💡(推薦) │
|
|
232
|
-
│ ───────────────────────── │
|
|
233
|
-
│ • 系統會在適當時機提醒你儲存 │
|
|
234
|
-
│ • 你可以選擇接受或忽略 │
|
|
235
|
-
│ • 適合:大多數使用者 │
|
|
236
|
-
│ │
|
|
237
|
-
│ 範例: │
|
|
238
|
-
│ 💡 建議儲存版本 │
|
|
239
|
-
│ 已修改 10 個檔案,建議儲存進度 │
|
|
240
|
-
│ │
|
|
241
|
-
│ 建議描述:更新登入頁面 UI │
|
|
242
|
-
│ │
|
|
243
|
-
│ [s] 儲存版本 [x] 稍後提醒 │
|
|
244
|
-
│ │
|
|
245
|
-
├─────────────────────────────────────────────────────────────┤
|
|
246
|
-
│ Level 2: 半自動 🔄 │
|
|
247
|
-
│ ─────────────── │
|
|
248
|
-
│ • 系統會準備好版本描述 │
|
|
249
|
-
│ • 你只需按 Enter 確認 │
|
|
250
|
-
│ • 適合:信任系統判斷的使用者 │
|
|
251
|
-
│ │
|
|
252
|
-
│ 範例: │
|
|
253
|
-
│ 🚀 準備建立版本... │
|
|
254
|
-
│ 描述:更新登入頁面 UI │
|
|
255
|
-
│ 檔案:10 個 │
|
|
256
|
-
│ │
|
|
257
|
-
│ [Enter] 確認並儲存 [e] 編輯 [x] 取消 │
|
|
258
|
-
│ │
|
|
259
|
-
├─────────────────────────────────────────────────────────────┤
|
|
260
|
-
│ Level 3: 全自動 🤖 │
|
|
261
|
-
│ ───────────────── │
|
|
262
|
-
│ • 系統會自動儲存版本 │
|
|
263
|
-
│ • 事後通知你 │
|
|
264
|
-
│ • 適合:完全信任系統的使用者 │
|
|
265
|
-
│ • ⚠️ 需要明確啟用(預設關閉) │
|
|
266
|
-
│ │
|
|
267
|
-
│ 範例: │
|
|
268
|
-
│ ✅ 已自動儲存版本 │
|
|
269
|
-
│ 描述:更新登入頁面 UI │
|
|
270
|
-
│ 檔案:10 個 │
|
|
271
|
-
│ 時間:2025-12-31 14:30 │
|
|
272
|
-
│ │
|
|
273
|
-
├─────────────────────────────────────────────────────────────┤
|
|
274
|
-
│ 💡 建議從 Level 1 開始 │
|
|
275
|
-
│ 等熟悉後再考慮升級到 Level 2 或 3 │
|
|
276
|
-
│ │
|
|
277
|
-
│ 可以隨時切換等級: │
|
|
278
|
-
│ set-automation-level 1 (切換到 Level 1) │
|
|
279
|
-
│ │
|
|
280
|
-
╰─────────────────────────────────────────────────────────────╯
|
|
281
|
-
`,
|
|
282
|
-
githubOptional: `
|
|
283
|
-
╭─────────────────────────────────────────────────────────────╮
|
|
284
|
-
│ ☁️ GitHub 整合(完全可選) │
|
|
285
|
-
├─────────────────────────────────────────────────────────────┤
|
|
286
|
-
│ │
|
|
287
|
-
│ 本地 Git vs GitHub │
|
|
288
|
-
│ ───────────────── │
|
|
289
|
-
│ │
|
|
290
|
-
│ 本地 Git(預設): │
|
|
291
|
-
│ ✅ 完整版本控制功能 │
|
|
292
|
-
│ ✅ 不需要網路 │
|
|
293
|
-
│ ✅ 不需要帳號 │
|
|
294
|
-
│ ✅ 隱私完全掌控 │
|
|
295
|
-
│ ⚠️ 只存在你的電腦上 │
|
|
296
|
-
│ │
|
|
297
|
-
│ + GitHub(可選): │
|
|
298
|
-
│ ✅ 雲端備份 │
|
|
299
|
-
│ ✅ 多裝置同步 │
|
|
300
|
-
│ ✅ 分享給其他人 │
|
|
301
|
-
│ ✅ 開源協作 │
|
|
302
|
-
│ ⚠️ 需要 GitHub 帳號和 token │
|
|
303
|
-
│ │
|
|
304
|
-
├─────────────────────────────────────────────────────────────┤
|
|
305
|
-
│ 如何啟用 GitHub? │
|
|
306
|
-
│ ──────────────── │
|
|
307
|
-
│ │
|
|
308
|
-
│ 1. 取得 GitHub token(從 GitHub 網站) │
|
|
309
|
-
│ 2. 提供 token: │
|
|
310
|
-
│ set-github-token "your-token-here" │
|
|
311
|
-
│ │
|
|
312
|
-
│ 3. GitHub 功能會自動啟用!✨ │
|
|
313
|
-
│ • 自動雲端同步(如果開啟) │
|
|
314
|
-
│ • 可以從其他電腦存取 │
|
|
315
|
-
│ • 可以分享給他人 │
|
|
316
|
-
│ │
|
|
317
|
-
├─────────────────────────────────────────────────────────────┤
|
|
318
|
-
│ 💡 建議使用策略: │
|
|
319
|
-
│ │
|
|
320
|
-
│ 開始階段: │
|
|
321
|
-
│ • 只用本地 Git(簡單、夠用) │
|
|
322
|
-
│ • 用自動本地備份保護資料 │
|
|
323
|
-
│ │
|
|
324
|
-
│ 進階使用: │
|
|
325
|
-
│ • 需要雲端備份時再啟用 GitHub │
|
|
326
|
-
│ • 需要多裝置同步時再啟用 GitHub │
|
|
327
|
-
│ • 需要分享專案時再啟用 GitHub │
|
|
328
|
-
│ │
|
|
329
|
-
│ GitHub 不是必需的,但有需要時隨時可以啟用! │
|
|
330
|
-
│ │
|
|
331
|
-
╰─────────────────────────────────────────────────────────────╯
|
|
332
|
-
`,
|
|
333
|
-
};
|
|
334
|
-
export const SetupWizard = {
|
|
335
|
-
welcome: `
|
|
336
|
-
╭─────────────────────────────────────────────────────────────╮
|
|
337
|
-
│ 🎉 歡迎使用 Git 版本控制設置精靈! │
|
|
338
|
-
├─────────────────────────────────────────────────────────────┤
|
|
339
|
-
│ │
|
|
340
|
-
│ 這個設置只需要 2 分鐘,之後你就可以: │
|
|
341
|
-
│ • 記錄每次修改 │
|
|
342
|
-
│ • 隨時回到之前的版本 │
|
|
343
|
-
│ • 安心嘗試新功能(壞了可以復原) │
|
|
344
|
-
│ │
|
|
345
|
-
│ 讓我們開始吧! │
|
|
346
|
-
│ │
|
|
347
|
-
╰─────────────────────────────────────────────────────────────╯
|
|
348
|
-
`,
|
|
349
|
-
step1_name: `
|
|
350
|
-
╭─────────────────────────────────────────────────────────────╮
|
|
351
|
-
│ 步驟 1/3:你的名字 │
|
|
352
|
-
├─────────────────────────────────────────────────────────────┤
|
|
353
|
-
│ │
|
|
354
|
-
│ 請輸入你的名字(可以是暱稱): │
|
|
355
|
-
│ (這會顯示在版本記錄中,讓你知道是誰做的修改) │
|
|
356
|
-
│ │
|
|
357
|
-
│ 範例:張三、John、小明 │
|
|
358
|
-
│ │
|
|
359
|
-
╰─────────────────────────────────────────────────────────────╯
|
|
360
|
-
`,
|
|
361
|
-
step2_email: `
|
|
362
|
-
╭─────────────────────────────────────────────────────────────╮
|
|
363
|
-
│ 步驟 2/3:Email │
|
|
364
|
-
├─────────────────────────────────────────────────────────────┤
|
|
365
|
-
│ │
|
|
366
|
-
│ 請輸入你的 email: │
|
|
367
|
-
│ (只是用來識別,不會發送任何郵件) │
|
|
368
|
-
│ │
|
|
369
|
-
│ 範例:your-email@example.com │
|
|
370
|
-
│ │
|
|
371
|
-
│ 💡 提示:可以隨便填,例如 me@localhost │
|
|
372
|
-
│ │
|
|
373
|
-
╰─────────────────────────────────────────────────────────────╯
|
|
374
|
-
`,
|
|
375
|
-
step3_automation: `
|
|
376
|
-
╭─────────────────────────────────────────────────────────────╮
|
|
377
|
-
│ 步驟 3/3:自動化等級 │
|
|
378
|
-
├─────────────────────────────────────────────────────────────┤
|
|
379
|
-
│ │
|
|
380
|
-
│ 選擇系統如何幫助你管理版本: │
|
|
381
|
-
│ │
|
|
382
|
-
│ 1. 智能提醒(推薦) │
|
|
383
|
-
│ 系統會在適當時機提醒,你決定是否儲存 │
|
|
384
|
-
│ │
|
|
385
|
-
│ 2. 半自動 │
|
|
386
|
-
│ 系統準備好一切,你只需按 Enter 確認 │
|
|
387
|
-
│ │
|
|
388
|
-
│ 3. 全自動 │
|
|
389
|
-
│ 系統自動儲存,事後通知你 │
|
|
390
|
-
│ │
|
|
391
|
-
│ 0. 完全手動 │
|
|
392
|
-
│ 不要任何提示,我自己手動管理 │
|
|
393
|
-
│ │
|
|
394
|
-
│ 請選擇(輸入數字)[預設: 1]: │
|
|
395
|
-
│ │
|
|
396
|
-
╰─────────────────────────────────────────────────────────────╯
|
|
397
|
-
`,
|
|
398
|
-
complete: `
|
|
399
|
-
╭─────────────────────────────────────────────────────────────╮
|
|
400
|
-
│ ✅ 設置完成! │
|
|
401
|
-
├─────────────────────────────────────────────────────────────┤
|
|
402
|
-
│ │
|
|
403
|
-
│ 🎉 Git 版本控制已經準備好了! │
|
|
404
|
-
│ │
|
|
405
|
-
│ 我已經幫你建立了第一個版本:「專案開始」 │
|
|
406
|
-
│ │
|
|
407
|
-
│ 接下來你可以: │
|
|
408
|
-
│ • 開始工作 │
|
|
409
|
-
│ • 修改代碼 │
|
|
410
|
-
│ • 系統會在適當時機提醒你儲存版本 │
|
|
411
|
-
│ │
|
|
412
|
-
│ 常用指令: │
|
|
413
|
-
│ save-work "描述" - 儲存目前工作 │
|
|
414
|
-
│ list-versions - 查看歷史版本 │
|
|
415
|
-
│ status - 查看目前狀態 │
|
|
416
|
-
│ show-changes - 查看變更 │
|
|
417
|
-
│ │
|
|
418
|
-
│ 💡 需要幫助?輸入 git-help 查看完整指南 │
|
|
419
|
-
│ │
|
|
420
|
-
╰─────────────────────────────────────────────────────────────╯
|
|
421
|
-
`,
|
|
422
|
-
};
|
|
423
|
-
export const NotificationTemplates = {
|
|
424
|
-
smartReminder: (stats, suggestion) => `
|
|
425
|
-
┌─────────────────────────────────────────────────────────────┐
|
|
426
|
-
│ 💡 建議儲存版本 │
|
|
427
|
-
├─────────────────────────────────────────────────────────────┤
|
|
428
|
-
│ 已修改 ${stats.files} 個檔案,${stats.lines} 行變更 │
|
|
429
|
-
│ │
|
|
430
|
-
│ 建議描述:${suggestion} │
|
|
431
|
-
│ │
|
|
432
|
-
│ [s] 儲存版本 [e] 編輯描述 [v] 查看變更 [x] 稍後提醒 │
|
|
433
|
-
└─────────────────────────────────────────────────────────────┘
|
|
434
|
-
`,
|
|
435
|
-
semiAuto: (suggestion, fileCount) => `
|
|
436
|
-
🚀 準備建立版本...
|
|
437
|
-
描述:${suggestion}
|
|
438
|
-
檔案:${fileCount} 個
|
|
439
|
-
|
|
440
|
-
[Enter] 確認並儲存 [e] 編輯 [x] 取消
|
|
441
|
-
`,
|
|
442
|
-
fullAuto: (message, fileCount) => `
|
|
443
|
-
✅ 已自動儲存版本
|
|
444
|
-
描述:${message}
|
|
445
|
-
檔案:${fileCount} 個
|
|
446
|
-
時間:${new Date().toLocaleString('zh-TW')}
|
|
447
|
-
`,
|
|
448
|
-
featureComplete: (featureName) => `
|
|
449
|
-
✨ AI 偵測到功能完成:${featureName}
|
|
450
|
-
|
|
451
|
-
建議立即儲存這個版本?
|
|
452
|
-
[Enter] 是的,儲存 [x] 不用了
|
|
453
|
-
`,
|
|
454
|
-
};
|
|
455
|
-
//# sourceMappingURL=git-education-templates.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"git-education-templates.js","sourceRoot":"","sources":["../../src/templates/git-education-templates.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,qBAAqB,GAAG;IAInC,oBAAoB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+CvB;IAKC,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BX;IAKC,gBAAgB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BnB;IAKC,aAAa,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8ChB;IAKC,eAAe,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqDlB;IAKC,gBAAgB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkEnB;IAKC,cAAc,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkDjB;CACA,CAAC;AAKF,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,OAAO,EAAE;;;;;;;;;;;;;CAaV;IAEC,UAAU,EAAE;;;;;;;;;;;CAWb;IAEC,WAAW,EAAE;;;;;;;;;;;;;CAad;IAEC,gBAAgB,EAAE;;;;;;;;;;;;;;;;;;;;;;CAsBnB;IAEC,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;CAuBX;CACA,CAAC;AAKF,MAAM,CAAC,MAAM,qBAAqB,GAAG;IAInC,aAAa,EAAE,CAAC,KAAuC,EAAE,UAAkB,EAAE,EAAE,CAAC;;;;SAIzE,KAAK,CAAC,KAAK,QAAQ,KAAK,CAAC,KAAK;;UAE7B,UAAU;;;;CAInB;IAKC,QAAQ,EAAE,CAAC,UAAkB,EAAE,SAAiB,EAAE,EAAE,CAAC;;QAE/C,UAAU;QACV,SAAS;;;CAGhB;IAKC,QAAQ,EAAE,CAAC,OAAe,EAAE,SAAiB,EAAE,EAAE,CAAC;;QAE5C,OAAO;QACP,SAAS;QACT,IAAI,IAAI,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC;CACzC;IAKC,eAAe,EAAE,CAAC,WAAmB,EAAE,EAAE,CAAC;eAC7B,WAAW;;;;CAIzB;CACA,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export declare class SecureKeyStore {
|
|
2
|
-
private static keys;
|
|
3
|
-
static set(provider: string, key: string): void;
|
|
4
|
-
static get(provider: string): string | undefined;
|
|
5
|
-
static has(provider: string): boolean;
|
|
6
|
-
static delete(provider: string): void;
|
|
7
|
-
static clear(): void;
|
|
8
|
-
static listProviders(): string[];
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=SecureKeyStore.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SecureKeyStore.d.ts","sourceRoot":"","sources":["../../src/utils/SecureKeyStore.ts"],"names":[],"mappings":"AA2CA,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,IAAI,CAA6B;IAkBhD,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAkC/C,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAoBhD,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAiBrC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAgBrC,MAAM,CAAC,KAAK,IAAI,IAAI;IAmBpB,MAAM,CAAC,aAAa,IAAI,MAAM,EAAE;CAGjC"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { ValidationError } from '../errors/index.js';
|
|
2
|
-
export class SecureKeyStore {
|
|
3
|
-
static keys = new Map();
|
|
4
|
-
static set(provider, key) {
|
|
5
|
-
if (!provider || !key) {
|
|
6
|
-
throw new ValidationError('Provider and key must be non-empty strings', {
|
|
7
|
-
component: 'SecureKeyStore',
|
|
8
|
-
method: 'set',
|
|
9
|
-
providedProvider: provider,
|
|
10
|
-
providedKey: key ? '[REDACTED]' : undefined,
|
|
11
|
-
constraint: 'both provider and key must be non-empty strings',
|
|
12
|
-
});
|
|
13
|
-
}
|
|
14
|
-
this.keys.set(provider.toLowerCase(), key);
|
|
15
|
-
}
|
|
16
|
-
static get(provider) {
|
|
17
|
-
return this.keys.get(provider.toLowerCase());
|
|
18
|
-
}
|
|
19
|
-
static has(provider) {
|
|
20
|
-
return this.keys.has(provider.toLowerCase());
|
|
21
|
-
}
|
|
22
|
-
static delete(provider) {
|
|
23
|
-
this.keys.delete(provider.toLowerCase());
|
|
24
|
-
}
|
|
25
|
-
static clear() {
|
|
26
|
-
this.keys.clear();
|
|
27
|
-
}
|
|
28
|
-
static listProviders() {
|
|
29
|
-
return Array.from(this.keys.keys());
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=SecureKeyStore.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SecureKeyStore.js","sourceRoot":"","sources":["../../src/utils/SecureKeyStore.ts"],"names":[],"mappings":"AAmCA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAQrD,MAAM,OAAO,cAAc;IACjB,MAAM,CAAC,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;IAkBhD,MAAM,CAAC,GAAG,CAAC,QAAgB,EAAE,GAAW;QACtC,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC;YACtB,MAAM,IAAI,eAAe,CACvB,4CAA4C,EAC5C;gBACE,SAAS,EAAE,gBAAgB;gBAC3B,MAAM,EAAE,KAAK;gBACb,gBAAgB,EAAE,QAAQ;gBAC1B,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;gBAC3C,UAAU,EAAE,iDAAiD;aAC9D,CACF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,CAAC;IAC7C,CAAC;IAoBD,MAAM,CAAC,GAAG,CAAC,QAAgB;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/C,CAAC;IAkBD,MAAM,CAAC,GAAG,CAAC,QAAgB;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/C,CAAC;IAeD,MAAM,CAAC,MAAM,CAAC,QAAgB;QAC5B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IAC3C,CAAC;IAcD,MAAM,CAAC,KAAK;QACV,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAiBD,MAAM,CAAC,aAAa;QAClB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { type ClaudeModel } from '../config/models.js';
|
|
2
|
-
interface UsageRecord {
|
|
3
|
-
timestamp: Date;
|
|
4
|
-
service: string;
|
|
5
|
-
model: string;
|
|
6
|
-
inputTokens?: number;
|
|
7
|
-
outputTokens?: number;
|
|
8
|
-
minutes?: number;
|
|
9
|
-
characters?: number;
|
|
10
|
-
cost: number;
|
|
11
|
-
}
|
|
12
|
-
declare class CostTracker {
|
|
13
|
-
private records;
|
|
14
|
-
private monthlyBudget;
|
|
15
|
-
private alertThreshold;
|
|
16
|
-
constructor();
|
|
17
|
-
trackClaude(model: ClaudeModel, inputTokens: number, outputTokens: number): number;
|
|
18
|
-
trackWhisper(minutes: number): number;
|
|
19
|
-
trackTTS(characters: number): number;
|
|
20
|
-
trackEmbeddings(tokens: number): number;
|
|
21
|
-
private addRecord;
|
|
22
|
-
getMonthlyTotal(): number;
|
|
23
|
-
getReport(): {
|
|
24
|
-
monthlyTotal: number;
|
|
25
|
-
budget: number;
|
|
26
|
-
remaining: number;
|
|
27
|
-
percentUsed: number;
|
|
28
|
-
breakdown: Record<string, number>;
|
|
29
|
-
records: UsageRecord[];
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
export declare const costTracker: CostTracker;
|
|
33
|
-
export {};
|
|
34
|
-
//# sourceMappingURL=cost-tracker.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cost-tracker.d.ts","sourceRoot":"","sources":["../../src/utils/cost-tracker.ts"],"names":[],"mappings":"AAgCA,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AASpE,UAAU,WAAW;IAEnB,SAAS,EAAE,IAAI,CAAC;IAEhB,OAAO,EAAE,MAAM,CAAC;IAEhB,KAAK,EAAE,MAAM,CAAC;IAEd,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,IAAI,EAAE,MAAM,CAAC;CACd;AAQD,cAAM,WAAW;IACf,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,cAAc,CAAS;;IAwB/B,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IA+BzE,YAAY,CAAC,OAAO,EAAE,MAAM;IA6B5B,QAAQ,CAAC,UAAU,EAAE,MAAM;IA4B3B,eAAe,CAAC,MAAM,EAAE,MAAM;IAyB9B,OAAO,CAAC,SAAS;IA6BjB,eAAe,IAAI,MAAM;IA6BzB,SAAS;;;;;;;;CAgBV;AAED,eAAO,MAAM,WAAW,aAAoB,CAAC"}
|