centaurus-cli 2.8.5 → 2.8.7

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 (115) hide show
  1. package/dist/cli-adapter.d.ts +85 -0
  2. package/dist/cli-adapter.d.ts.map +1 -1
  3. package/dist/cli-adapter.js +769 -28
  4. package/dist/cli-adapter.js.map +1 -1
  5. package/dist/config/slash-commands.d.ts +2 -0
  6. package/dist/config/slash-commands.d.ts.map +1 -1
  7. package/dist/config/slash-commands.js +31 -1
  8. package/dist/config/slash-commands.js.map +1 -1
  9. package/dist/context/handlers/docker-handler.js.map +1 -1
  10. package/dist/context/handlers/ssh-handler.d.ts +16 -1
  11. package/dist/context/handlers/ssh-handler.d.ts.map +1 -1
  12. package/dist/context/handlers/ssh-handler.js +57 -12
  13. package/dist/context/handlers/ssh-handler.js.map +1 -1
  14. package/dist/context/subshell-handler.d.ts +14 -0
  15. package/dist/context/subshell-handler.d.ts.map +1 -1
  16. package/dist/hooks/useTerminalDimensions.d.ts +41 -0
  17. package/dist/hooks/useTerminalDimensions.d.ts.map +1 -0
  18. package/dist/hooks/useTerminalDimensions.js +84 -0
  19. package/dist/hooks/useTerminalDimensions.js.map +1 -0
  20. package/dist/index.js +27 -0
  21. package/dist/index.js.map +1 -1
  22. package/dist/services/api-client.d.ts +24 -0
  23. package/dist/services/api-client.d.ts.map +1 -1
  24. package/dist/services/api-client.js +27 -0
  25. package/dist/services/api-client.js.map +1 -1
  26. package/dist/services/auth-handler.js +1 -1
  27. package/dist/services/auth-handler.js.map +1 -1
  28. package/dist/services/clipboard-service.d.ts +42 -0
  29. package/dist/services/clipboard-service.d.ts.map +1 -0
  30. package/dist/services/clipboard-service.js +217 -0
  31. package/dist/services/clipboard-service.js.map +1 -0
  32. package/dist/services/local-chat-storage.d.ts +154 -0
  33. package/dist/services/local-chat-storage.d.ts.map +1 -0
  34. package/dist/services/local-chat-storage.js +258 -0
  35. package/dist/services/local-chat-storage.js.map +1 -0
  36. package/dist/tools/grep-search.d.ts +5 -0
  37. package/dist/tools/grep-search.d.ts.map +1 -1
  38. package/dist/tools/grep-search.js +68 -16
  39. package/dist/tools/grep-search.js.map +1 -1
  40. package/dist/tools/plan-mode.d.ts +57 -6
  41. package/dist/tools/plan-mode.d.ts.map +1 -1
  42. package/dist/tools/plan-mode.js +297 -46
  43. package/dist/tools/plan-mode.js.map +1 -1
  44. package/dist/tools/read-binary-file.d.ts +10 -0
  45. package/dist/tools/read-binary-file.d.ts.map +1 -0
  46. package/dist/tools/read-binary-file.js +210 -0
  47. package/dist/tools/read-binary-file.js.map +1 -0
  48. package/dist/types/index.d.ts +7 -1
  49. package/dist/types/index.d.ts.map +1 -1
  50. package/dist/ui/components/App.d.ts +35 -0
  51. package/dist/ui/components/App.d.ts.map +1 -1
  52. package/dist/ui/components/App.js +608 -16
  53. package/dist/ui/components/App.js.map +1 -1
  54. package/dist/ui/components/ClipboardImageAutocomplete.d.ts +14 -0
  55. package/dist/ui/components/ClipboardImageAutocomplete.d.ts.map +1 -0
  56. package/dist/ui/components/ClipboardImageAutocomplete.js +39 -0
  57. package/dist/ui/components/ClipboardImageAutocomplete.js.map +1 -0
  58. package/dist/ui/components/ConnectionStatusMessage.d.ts +1 -1
  59. package/dist/ui/components/ConnectionStatusMessage.d.ts.map +1 -1
  60. package/dist/ui/components/ConnectionStatusMessage.js +21 -0
  61. package/dist/ui/components/ConnectionStatusMessage.js.map +1 -1
  62. package/dist/ui/components/DetailedPlanReviewScreen.d.ts +17 -0
  63. package/dist/ui/components/DetailedPlanReviewScreen.d.ts.map +1 -0
  64. package/dist/ui/components/DetailedPlanReviewScreen.js +110 -0
  65. package/dist/ui/components/DetailedPlanReviewScreen.js.map +1 -0
  66. package/dist/ui/components/InputBox.d.ts +2 -1
  67. package/dist/ui/components/InputBox.d.ts.map +1 -1
  68. package/dist/ui/components/InputBox.js +399 -28
  69. package/dist/ui/components/InputBox.js.map +1 -1
  70. package/dist/ui/components/InteractiveShell.d.ts.map +1 -1
  71. package/dist/ui/components/InteractiveShell.js +20 -6
  72. package/dist/ui/components/InteractiveShell.js.map +1 -1
  73. package/dist/ui/components/MessageDisplay.d.ts +6 -0
  74. package/dist/ui/components/MessageDisplay.d.ts.map +1 -1
  75. package/dist/ui/components/MessageDisplay.js +66 -3
  76. package/dist/ui/components/MessageDisplay.js.map +1 -1
  77. package/dist/ui/components/PlanAcceptedMessage.d.ts +8 -0
  78. package/dist/ui/components/PlanAcceptedMessage.d.ts.map +1 -1
  79. package/dist/ui/components/PlanAcceptedMessage.js +26 -8
  80. package/dist/ui/components/PlanAcceptedMessage.js.map +1 -1
  81. package/dist/ui/components/StreamingMessageDisplay.d.ts +3 -0
  82. package/dist/ui/components/StreamingMessageDisplay.d.ts.map +1 -1
  83. package/dist/ui/components/StreamingMessageDisplay.js +10 -6
  84. package/dist/ui/components/StreamingMessageDisplay.js.map +1 -1
  85. package/dist/ui/components/TaskCompletedMessage.d.ts.map +1 -1
  86. package/dist/ui/components/TaskCompletedMessage.js +4 -4
  87. package/dist/ui/components/TaskCompletedMessage.js.map +1 -1
  88. package/dist/ui/components/TaskProgressIndicator.d.ts +18 -0
  89. package/dist/ui/components/TaskProgressIndicator.d.ts.map +1 -0
  90. package/dist/ui/components/TaskProgressIndicator.js +72 -0
  91. package/dist/ui/components/TaskProgressIndicator.js.map +1 -0
  92. package/dist/ui/components/ThinkingDisplay.d.ts +3 -0
  93. package/dist/ui/components/ThinkingDisplay.d.ts.map +1 -1
  94. package/dist/ui/components/ThinkingDisplay.js +6 -4
  95. package/dist/ui/components/ThinkingDisplay.js.map +1 -1
  96. package/dist/ui/components/ToolExecutionMessage.d.ts.map +1 -1
  97. package/dist/ui/components/ToolExecutionMessage.js +85 -15
  98. package/dist/ui/components/ToolExecutionMessage.js.map +1 -1
  99. package/dist/utils/custom-commands-manager.d.ts +59 -0
  100. package/dist/utils/custom-commands-manager.d.ts.map +1 -0
  101. package/dist/utils/custom-commands-manager.js +142 -0
  102. package/dist/utils/custom-commands-manager.js.map +1 -0
  103. package/dist/utils/input-classifier.d.ts +10 -11
  104. package/dist/utils/input-classifier.d.ts.map +1 -1
  105. package/dist/utils/input-classifier.js +299 -75
  106. package/dist/utils/input-classifier.js.map +1 -1
  107. package/dist/utils/terminal-output.d.ts.map +1 -1
  108. package/dist/utils/terminal-output.js +110 -14
  109. package/dist/utils/terminal-output.js.map +1 -1
  110. package/dist/utils/unicode-sanitizer.d.ts +44 -0
  111. package/dist/utils/unicode-sanitizer.d.ts.map +1 -0
  112. package/dist/utils/unicode-sanitizer.js +211 -0
  113. package/dist/utils/unicode-sanitizer.js.map +1 -0
  114. package/models-config.json +2 -3
  115. package/package.json +7 -3
@@ -0,0 +1,258 @@
1
+ /**
2
+ * Local Chat Storage Service
3
+ *
4
+ * Provides persistent local storage for CLI conversations.
5
+ * Stores chats in ~/.centaurus/chats/ directory as JSON files.
6
+ */
7
+ import * as fs from 'fs';
8
+ import * as path from 'path';
9
+ import * as os from 'os';
10
+ /**
11
+ * LocalChatStorage class for managing local conversation persistence
12
+ */
13
+ export class LocalChatStorage {
14
+ chatsDir;
15
+ constructor() {
16
+ const homeDir = os.homedir();
17
+ this.chatsDir = path.join(homeDir, '.centaurus', 'chats');
18
+ // Ensure chats directory exists
19
+ if (!fs.existsSync(this.chatsDir)) {
20
+ fs.mkdirSync(this.chatsDir, { recursive: true });
21
+ }
22
+ }
23
+ /**
24
+ * Generate a unique chat ID based on timestamp
25
+ */
26
+ generateChatId() {
27
+ const now = new Date();
28
+ const timestamp = now.toISOString().replace(/[:.]/g, '-').slice(0, 19);
29
+ const random = Math.random().toString(36).substring(2, 6);
30
+ return `chat-${timestamp}-${random}`;
31
+ }
32
+ /**
33
+ * Generate a title from the first user message
34
+ */
35
+ generateTitle(messages) {
36
+ const firstUserMessage = messages.find(m => m.role === 'user');
37
+ if (!firstUserMessage || !firstUserMessage.content) {
38
+ return 'New Chat';
39
+ }
40
+ // Take first 60 chars, trim to last word boundary
41
+ let title = firstUserMessage.content.substring(0, 60);
42
+ if (firstUserMessage.content.length > 60) {
43
+ const lastSpace = title.lastIndexOf(' ');
44
+ if (lastSpace > 30) {
45
+ title = title.substring(0, lastSpace);
46
+ }
47
+ title += '...';
48
+ }
49
+ // Clean up whitespace and newlines
50
+ title = title.replace(/\s+/g, ' ').trim();
51
+ return title || 'New Chat';
52
+ }
53
+ /**
54
+ * Get the file path for a chat
55
+ */
56
+ getChatPath(chatId) {
57
+ return path.join(this.chatsDir, `${chatId}.json`);
58
+ }
59
+ /**
60
+ * Save a chat to disk
61
+ * @param remoteContext - undefined = preserve existing, null = clear, StoredRemoteContext = set new value
62
+ */
63
+ saveChat(chatId, messages, uiMessages, cwd, remoteContext) {
64
+ const chatPath = this.getChatPath(chatId);
65
+ const now = new Date().toISOString();
66
+ let chat;
67
+ if (fs.existsSync(chatPath)) {
68
+ // Update existing chat
69
+ const existing = this.loadChat(chatId);
70
+ if (existing) {
71
+ chat = {
72
+ ...existing,
73
+ messages,
74
+ uiMessages: uiMessages || existing.uiMessages,
75
+ cwd: cwd || existing.cwd, // Preserve CWD if not provided
76
+ // remoteContext: null = clear it, undefined = preserve existing
77
+ remoteContext: remoteContext === null ? undefined : (remoteContext !== undefined ? remoteContext : existing.remoteContext),
78
+ // Preserve backendConversationId if it exists
79
+ backendConversationId: existing.backendConversationId,
80
+ messageCount: messages.length,
81
+ updatedAt: now,
82
+ };
83
+ }
84
+ else {
85
+ // File exists but couldn't be parsed, create new
86
+ chat = {
87
+ id: chatId,
88
+ title: this.generateTitle(messages),
89
+ createdAt: now,
90
+ updatedAt: now,
91
+ messageCount: messages.length,
92
+ messages,
93
+ uiMessages,
94
+ cwd,
95
+ remoteContext,
96
+ };
97
+ }
98
+ }
99
+ else {
100
+ // Create new chat
101
+ chat = {
102
+ id: chatId,
103
+ title: this.generateTitle(messages),
104
+ createdAt: now,
105
+ updatedAt: now,
106
+ messageCount: messages.length,
107
+ messages,
108
+ uiMessages,
109
+ cwd,
110
+ remoteContext,
111
+ };
112
+ }
113
+ fs.writeFileSync(chatPath, JSON.stringify(chat, null, 2), 'utf-8');
114
+ return chat;
115
+ }
116
+ /**
117
+ * Set the backend conversation ID for a chat
118
+ * This is used to associate local chats with backend file storage
119
+ */
120
+ setBackendConversationId(chatId, backendConversationId) {
121
+ const chat = this.loadChat(chatId);
122
+ if (!chat) {
123
+ return false;
124
+ }
125
+ try {
126
+ chat.backendConversationId = backendConversationId;
127
+ chat.updatedAt = new Date().toISOString();
128
+ const chatPath = this.getChatPath(chatId);
129
+ fs.writeFileSync(chatPath, JSON.stringify(chat, null, 2), 'utf-8');
130
+ return true;
131
+ }
132
+ catch (error) {
133
+ console.error(`Failed to set backend conversation ID for chat ${chatId}:`, error);
134
+ return false;
135
+ }
136
+ }
137
+ /**
138
+ * Get the backend conversation ID for a chat (if any)
139
+ */
140
+ getBackendConversationId(chatId) {
141
+ const chat = this.loadChat(chatId);
142
+ return chat?.backendConversationId;
143
+ }
144
+ /**
145
+ * Load a chat by ID
146
+ */
147
+ loadChat(chatId) {
148
+ const chatPath = this.getChatPath(chatId);
149
+ if (!fs.existsSync(chatPath)) {
150
+ return null;
151
+ }
152
+ try {
153
+ const data = fs.readFileSync(chatPath, 'utf-8');
154
+ return JSON.parse(data);
155
+ }
156
+ catch (error) {
157
+ console.error(`Failed to load chat ${chatId}:`, error);
158
+ return null;
159
+ }
160
+ }
161
+ /**
162
+ * List all chats (metadata only, sorted by updatedAt descending)
163
+ */
164
+ listChats() {
165
+ if (!fs.existsSync(this.chatsDir)) {
166
+ return [];
167
+ }
168
+ const files = fs.readdirSync(this.chatsDir)
169
+ .filter(f => f.endsWith('.json'));
170
+ const chats = [];
171
+ for (const file of files) {
172
+ try {
173
+ const filePath = path.join(this.chatsDir, file);
174
+ const data = fs.readFileSync(filePath, 'utf-8');
175
+ const chat = JSON.parse(data);
176
+ // Determine environment string from remoteContext
177
+ let environment = 'local';
178
+ if (chat.remoteContext) {
179
+ const rc = chat.remoteContext;
180
+ if (rc.type === 'ssh' && rc.metadata?.hostname) {
181
+ environment = `ssh:${rc.metadata.username || 'user'}@${rc.metadata.hostname}`;
182
+ }
183
+ else if (rc.type === 'wsl') {
184
+ environment = `wsl:${rc.metadata?.distroName || 'Ubuntu'}`;
185
+ }
186
+ else if (rc.type === 'docker' && rc.metadata?.containerId) {
187
+ environment = `docker:${rc.metadata.containerId.substring(0, 12)}`;
188
+ }
189
+ else {
190
+ environment = rc.type;
191
+ }
192
+ }
193
+ // Return metadata only (no messages)
194
+ chats.push({
195
+ id: chat.id,
196
+ title: chat.title,
197
+ createdAt: chat.createdAt,
198
+ updatedAt: chat.updatedAt,
199
+ messageCount: chat.messageCount,
200
+ environment,
201
+ });
202
+ }
203
+ catch (error) {
204
+ // Skip invalid files
205
+ continue;
206
+ }
207
+ }
208
+ // Sort by updatedAt descending (most recent first)
209
+ chats.sort((a, b) => new Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime());
210
+ return chats;
211
+ }
212
+ /**
213
+ * Delete a chat by ID
214
+ */
215
+ deleteChat(chatId) {
216
+ const chatPath = this.getChatPath(chatId);
217
+ if (!fs.existsSync(chatPath)) {
218
+ return false;
219
+ }
220
+ try {
221
+ fs.unlinkSync(chatPath);
222
+ return true;
223
+ }
224
+ catch (error) {
225
+ console.error(`Failed to delete chat ${chatId}:`, error);
226
+ return false;
227
+ }
228
+ }
229
+ /**
230
+ * Rename a chat by ID
231
+ */
232
+ renameChat(chatId, newTitle) {
233
+ const chat = this.loadChat(chatId);
234
+ if (!chat) {
235
+ return false;
236
+ }
237
+ try {
238
+ chat.title = newTitle;
239
+ chat.updatedAt = new Date().toISOString();
240
+ const chatPath = this.getChatPath(chatId);
241
+ fs.writeFileSync(chatPath, JSON.stringify(chat, null, 2), 'utf-8');
242
+ return true;
243
+ }
244
+ catch (error) {
245
+ console.error(`Failed to rename chat ${chatId}:`, error);
246
+ return false;
247
+ }
248
+ }
249
+ /**
250
+ * Get the chats directory path
251
+ */
252
+ getChatsDir() {
253
+ return this.chatsDir;
254
+ }
255
+ }
256
+ // Export singleton instance
257
+ export const localChatStorage = new LocalChatStorage();
258
+ //# sourceMappingURL=local-chat-storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-chat-storage.js","sourceRoot":"","sources":["../../src/services/local-chat-storage.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAgGzB;;GAEG;AACH,MAAM,OAAO,gBAAgB;IACnB,QAAQ,CAAS;IAEzB;QACE,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;QAE1D,gCAAgC;QAChC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACvE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1D,OAAO,QAAQ,SAAS,IAAI,MAAM,EAAE,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,QAAyB;QACrC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QAC/D,IAAI,CAAC,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;YACnD,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,kDAAkD;QAClD,IAAI,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACtD,IAAI,gBAAgB,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACzC,IAAI,SAAS,GAAG,EAAE,EAAE,CAAC;gBACnB,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;YACxC,CAAC;YACD,KAAK,IAAI,KAAK,CAAC;QACjB,CAAC;QAED,mCAAmC;QACnC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAE1C,OAAO,KAAK,IAAI,UAAU,CAAC;IAC7B,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,MAAc;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,MAAM,OAAO,CAAC,CAAC;IACpD,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,MAAc,EAAE,QAAyB,EAAE,UAA8B,EAAE,GAAY,EAAE,aAA0C;QAC1I,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAErC,IAAI,IAAe,CAAC;QAEpB,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,uBAAuB;YACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACvC,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,GAAG;oBACL,GAAG,QAAQ;oBACX,QAAQ;oBACR,UAAU,EAAE,UAAU,IAAI,QAAQ,CAAC,UAAU;oBAC7C,GAAG,EAAE,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,+BAA+B;oBACzD,gEAAgE;oBAChE,aAAa,EAAE,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;oBAC1H,8CAA8C;oBAC9C,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB;oBACrD,YAAY,EAAE,QAAQ,CAAC,MAAM;oBAC7B,SAAS,EAAE,GAAG;iBACf,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,iDAAiD;gBACjD,IAAI,GAAG;oBACL,EAAE,EAAE,MAAM;oBACV,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;oBACnC,SAAS,EAAE,GAAG;oBACd,SAAS,EAAE,GAAG;oBACd,YAAY,EAAE,QAAQ,CAAC,MAAM;oBAC7B,QAAQ;oBACR,UAAU;oBACV,GAAG;oBACH,aAAa;iBACd,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,kBAAkB;YAClB,IAAI,GAAG;gBACL,EAAE,EAAE,MAAM;gBACV,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;gBACnC,SAAS,EAAE,GAAG;gBACd,SAAS,EAAE,GAAG;gBACd,YAAY,EAAE,QAAQ,CAAC,MAAM;gBAC7B,QAAQ;gBACR,UAAU;gBACV,GAAG;gBACH,aAAa;aACd,CAAC;QACJ,CAAC;QAED,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,wBAAwB,CAAC,MAAc,EAAE,qBAA6B;QACpE,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC;YACH,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;YACnD,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC1C,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YACnE,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,kDAAkD,MAAM,GAAG,EAAE,KAAK,CAAC,CAAC;YAClF,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,wBAAwB,CAAC,MAAc;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnC,OAAO,IAAI,EAAE,qBAAqB,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,MAAc;QACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAE1C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAChD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAc,CAAC;QACvC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,uBAAuB,MAAM,GAAG,EAAE,KAAK,CAAC,CAAC;YACvD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,SAAS;QACP,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;aACxC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QAEpC,MAAM,KAAK,GAAoB,EAAE,CAAC;QAElC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAChD,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAChD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAc,CAAC;gBAE3C,kDAAkD;gBAClD,IAAI,WAAW,GAAG,OAAO,CAAC;gBAC1B,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBACvB,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;oBAC9B,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC;wBAC/C,WAAW,GAAG,OAAO,EAAE,CAAC,QAAQ,CAAC,QAAQ,IAAI,MAAM,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;oBAChF,CAAC;yBAAM,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;wBAC7B,WAAW,GAAG,OAAO,EAAE,CAAC,QAAQ,EAAE,UAAU,IAAI,QAAQ,EAAE,CAAC;oBAC7D,CAAC;yBAAM,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC;wBAC5D,WAAW,GAAG,UAAU,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;oBACrE,CAAC;yBAAM,CAAC;wBACN,WAAW,GAAG,EAAE,CAAC,IAAI,CAAC;oBACxB,CAAC;gBACH,CAAC;gBAED,qCAAqC;gBACrC,KAAK,CAAC,IAAI,CAAC;oBACT,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,YAAY,EAAE,IAAI,CAAC,YAAY;oBAC/B,WAAW;iBACZ,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,qBAAqB;gBACrB,SAAS;YACX,CAAC;QACH,CAAC;QAED,mDAAmD;QACnD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAClB,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAClE,CAAC;QAEF,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,MAAc;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAE1C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC;YACH,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,MAAM,GAAG,EAAE,KAAK,CAAC,CAAC;YACzD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,MAAc,EAAE,QAAgB;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;YACtB,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC1C,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YACnE,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,MAAM,GAAG,EAAE,KAAK,CAAC,CAAC;YACzD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF;AAED,4BAA4B;AAC5B,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC"}
@@ -45,6 +45,11 @@ export declare class GrepSearchTool {
45
45
  * Normalize file path to use forward slashes
46
46
  */
47
47
  private normalizePath;
48
+ /**
49
+ * Check if a file path matches the Includes patterns
50
+ * Returns true if there are no patterns or if the file matches at least one pattern
51
+ */
52
+ private matchesIncludesFilter;
48
53
  /**
49
54
  * Truncate long lines
50
55
  */
@@ -1 +1 @@
1
- {"version":3,"file":"grep-search.d.ts","sourceRoot":"","sources":["../../src/tools/grep-search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAwB,MAAM,YAAY,CAAC;AAQxD,MAAM,WAAW,gBAAgB;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,SAAS;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;GAQG;AACH,qBAAa,cAAc;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAM;IACzC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAO;IAC9C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAK;IAE1C;;OAEG;YACW,UAAU;IASxB;;OAEG;YACW,OAAO;IASrB;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB;;OAEG;IACH,OAAO,CAAC,YAAY;IAOpB;;OAEG;YACW,iBAAiB;IA2D/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAoF1B;;OAEG;YACW,cAAc;IAgD5B,OAAO,CAAC,eAAe;IAwEvB;;;OAGG;YACW,iBAAiB;IA6D/B,OAAO,CAAC,kBAAkB;IAqC1B;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAoBlF;AAsED,eAAO,MAAM,cAAc,EAAE,IAwH5B,CAAC"}
1
+ {"version":3,"file":"grep-search.d.ts","sourceRoot":"","sources":["../../src/tools/grep-search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAwB,MAAM,YAAY,CAAC;AAQxD,MAAM,WAAW,gBAAgB;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,SAAS;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;GAQG;AACH,qBAAa,cAAc;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAM;IACzC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAO;IAC9C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAK;IAE1C;;OAEG;YACW,UAAU;IASxB;;OAEG;YACW,OAAO;IASrB;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAgC7B;;OAEG;IACH,OAAO,CAAC,YAAY;IAOpB;;OAEG;YACW,iBAAiB;IA2D/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAoF1B;;OAEG;YACW,cAAc;IAgD5B,OAAO,CAAC,eAAe;IAwEvB;;;OAGG;YACW,iBAAiB;IA6D/B,OAAO,CAAC,kBAAkB;IA2C1B;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAqClF;AAsED,eAAO,MAAM,cAAc,EAAE,IAwH5B,CAAC"}
@@ -46,6 +46,38 @@ export class GrepSearchTool {
46
46
  normalizePath(filePath) {
47
47
  return filePath.replace(/\\/g, '/');
48
48
  }
49
+ /**
50
+ * Check if a file path matches the Includes patterns
51
+ * Returns true if there are no patterns or if the file matches at least one pattern
52
+ */
53
+ matchesIncludesFilter(filePath, includes) {
54
+ if (!includes || includes.length === 0) {
55
+ return true; // No filter, all files match
56
+ }
57
+ const fileName = path.basename(filePath);
58
+ const normalizedPath = this.normalizePath(filePath);
59
+ for (const pattern of includes) {
60
+ // Handle simple extension patterns like *.ts
61
+ if (pattern.startsWith('*.')) {
62
+ const ext = pattern.substring(1); // Get ".ts" from "*.ts"
63
+ if (fileName.endsWith(ext)) {
64
+ return true;
65
+ }
66
+ }
67
+ // Handle patterns like **/*.ts
68
+ else if (pattern.includes('**')) {
69
+ const ext = pattern.replace('**/', '').replace('*', '');
70
+ if (fileName.endsWith(ext) || normalizedPath.includes(ext)) {
71
+ return true;
72
+ }
73
+ }
74
+ // Handle direct matches
75
+ else if (fileName === pattern || normalizedPath.includes(pattern)) {
76
+ return true;
77
+ }
78
+ }
79
+ return false;
80
+ }
49
81
  /**
50
82
  * Truncate long lines
51
83
  */
@@ -359,16 +391,22 @@ export class GrepSearchTool {
359
391
  for (const line of lines) {
360
392
  if (!line)
361
393
  continue;
362
- // Format: file:line:match
363
- // But findstr output depends on args. /N /S gives:
364
- // file:line:match
365
- // Find first two colons
366
- const firstColon = line.indexOf(':');
367
- const secondColon = line.indexOf(':', firstColon + 1);
368
- if (firstColon > -1 && secondColon > -1) {
369
- const file = line.substring(0, firstColon);
370
- const lineNum = parseInt(line.substring(firstColon + 1, secondColon), 10);
371
- const content = line.substring(secondColon + 1);
394
+ // findstr output format with /N /S flags:
395
+ // C:\path\to\file.ts:1:content
396
+ //
397
+ // Windows paths start with drive letter like "C:" so we need to be careful
398
+ // about finding the line number delimiter
399
+ // Strategy: Find the pattern ":digits:" after the path
400
+ // On Windows, paths have \ not : except for drive letter
401
+ // So we look for the last occurrence of ":\d+:" pattern
402
+ const lineNumMatch = line.match(/:(\d+):/);
403
+ if (lineNumMatch && lineNumMatch.index !== undefined) {
404
+ // Everything before the match is the file path
405
+ const file = line.substring(0, lineNumMatch.index);
406
+ const lineNum = parseInt(lineNumMatch[1], 10);
407
+ // Everything after the ":linenum:" is the content
408
+ const colonAfterLineNum = lineNumMatch.index + lineNumMatch[0].length;
409
+ const content = line.substring(colonAfterLineNum);
372
410
  matches.push({
373
411
  file: this.normalizePath(file),
374
412
  line: lineNum,
@@ -389,19 +427,33 @@ export class GrepSearchTool {
389
427
  * Execute the grep search
390
428
  */
391
429
  async execute(params, cwd) {
430
+ let result;
392
431
  // Try ripgrep first
393
432
  if (await this.hasRipgrep()) {
394
- return await this.searchWithRipgrep(params, cwd);
433
+ result = await this.searchWithRipgrep(params, cwd);
395
434
  }
396
435
  // Try native grep (Linux/Mac)
397
- if (await this.hasGrep()) {
398
- return await this.searchWithGrep(params, cwd);
436
+ else if (await this.hasGrep()) {
437
+ result = await this.searchWithGrep(params, cwd);
399
438
  }
400
439
  // Fall back to findstr (Windows)
401
- if (process.platform === 'win32') {
402
- return await this.searchWithFindstr(params, cwd);
440
+ else if (process.platform === 'win32') {
441
+ result = await this.searchWithFindstr(params, cwd);
442
+ }
443
+ else {
444
+ throw new Error('No search tool available. Please install ripgrep for better performance: https://github.com/BurntSushi/ripgrep');
445
+ }
446
+ // Apply post-filtering for Includes patterns (ensures robust filtering across all backends)
447
+ if (params.Includes && params.Includes.length > 0) {
448
+ const filteredMatches = result.matches.filter(match => this.matchesIncludesFilter(match.file, params.Includes));
449
+ return {
450
+ matches: filteredMatches,
451
+ totalMatches: filteredMatches.length,
452
+ truncated: result.truncated && filteredMatches.length >= GrepSearchTool.MAX_MATCHES,
453
+ searchPattern: result.searchPattern,
454
+ };
403
455
  }
404
- throw new Error('No search tool available. Please install ripgrep for better performance: https://github.com/BurntSushi/ripgrep');
456
+ return result;
405
457
  }
406
458
  }
407
459
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"grep-search.js","sourceRoot":"","sources":["../../src/tools/grep-search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grep-search.js","sourceRoot":"","sources":["../../src/tools/grep-search.ts"],"names":[],"mappings":"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"}
@@ -1,32 +1,58 @@
1
1
  /**
2
2
  * Plan Mode - Structured Task Planning and Execution
3
- * Enables AI to create structured plans and track task completion
3
+ * Enables AI to create structured plans with hierarchical tasks and track completion
4
+ *
5
+ * Enhanced Features:
6
+ * - Hierarchical tasks with subtasks (e.g., Task 1 -> 1.1, 1.2, 1.3)
7
+ * - Design summary for context understanding
8
+ * - Phased execution (one task at a time)
9
+ * - Subtask-level completion tracking
4
10
  */
5
11
  import { Tool } from './types.js';
12
+ /**
13
+ * A subtask within a main task (e.g., 1.1, 1.2, 2.1)
14
+ */
15
+ export interface PlanSubtask {
16
+ id: string;
17
+ description: string;
18
+ status: 'pending' | 'in_progress' | 'completed' | 'skipped';
19
+ requirements?: string;
20
+ completedAt?: Date;
21
+ }
22
+ /**
23
+ * A main task in the plan (e.g., Task 1, Task 2)
24
+ */
6
25
  export interface PlanStep {
7
26
  id: string;
8
27
  description: string;
28
+ subtasks: PlanSubtask[];
9
29
  status: 'pending' | 'in_progress' | 'completed' | 'skipped';
10
30
  estimatedComplexity?: 'low' | 'medium' | 'high';
31
+ requirements?: string;
11
32
  completedAt?: Date;
12
33
  }
34
+ /**
35
+ * The complete plan with design summary and hierarchical tasks
36
+ */
13
37
  export interface Plan {
14
38
  title: string;
39
+ designSummary: string;
15
40
  summary: string;
16
41
  steps: PlanStep[];
17
42
  createdAt: Date;
18
43
  approved: boolean;
19
44
  isActive: boolean;
20
45
  currentTaskIndex: number;
46
+ currentSubtaskIndex: number;
21
47
  }
22
48
  /**
23
49
  * Create Plan Tool
24
- * AI uses this to generate a structured plan with tasks
50
+ * AI uses this to generate a structured plan with hierarchical tasks
25
51
  */
26
52
  export declare const createPlanTool: Tool;
27
53
  /**
28
54
  * Mark Task Complete Tool
29
- * AI uses this to mark individual tasks as completed during execution
55
+ * AI uses this to mark individual tasks or subtasks as completed during execution
30
56
  */
31
57
  export declare const markTaskCompleteTool: Tool;
32
58
  /**
@@ -46,9 +72,24 @@ export declare function clearPlan(): void;
46
72
  */
47
73
  export declare function approvePlan(): Plan | null;
48
74
  /**
49
- * Mark a task as complete by task number
75
+ * Mark a task as complete by task number (for compatibility)
50
76
  */
51
77
  export declare function markTaskComplete(taskNumber: number): PlanStep | null;
78
+ /**
79
+ * Get the current phase (task) with all its subtasks
80
+ */
81
+ export declare function getCurrentPhase(): {
82
+ taskNumber: number;
83
+ task: PlanStep;
84
+ } | null;
85
+ /**
86
+ * Advance to the next phase after current task is complete
87
+ * Returns the new phase or null if all phases are done
88
+ */
89
+ export declare function advanceToNextPhase(): {
90
+ taskNumber: number;
91
+ task: PlanStep;
92
+ } | null;
52
93
  /**
53
94
  * Get the next incomplete task
54
95
  */
@@ -61,17 +102,24 @@ export declare function getNextIncompleteTask(): {
61
102
  */
62
103
  export declare function areAllTasksComplete(): boolean;
63
104
  /**
64
- * Get plan progress summary
105
+ * Get plan progress summary (including subtasks)
65
106
  */
66
107
  export declare function getPlanProgress(): {
67
108
  completed: number;
68
109
  total: number;
69
110
  percentage: number;
111
+ currentTask: number;
112
+ totalTasks: number;
70
113
  } | null;
71
114
  /**
72
- * Generate plan context for AI system prompt injection
115
+ * Generate plan context for AI system prompt injection (shows all tasks)
73
116
  */
74
117
  export declare function getPlanContextForPrompt(): string;
118
+ /**
119
+ * Generate context for only the current phase (single task with its subtasks)
120
+ * Used for phased execution where AI only sees one task at a time
121
+ */
122
+ export declare function getPhaseContextForPrompt(): string;
75
123
  declare const _default: {
76
124
  createPlanTool: Tool;
77
125
  markTaskCompleteTool: Tool;
@@ -80,10 +128,13 @@ declare const _default: {
80
128
  clearPlan: typeof clearPlan;
81
129
  approvePlan: typeof approvePlan;
82
130
  markTaskComplete: typeof markTaskComplete;
131
+ getCurrentPhase: typeof getCurrentPhase;
132
+ advanceToNextPhase: typeof advanceToNextPhase;
83
133
  getNextIncompleteTask: typeof getNextIncompleteTask;
84
134
  areAllTasksComplete: typeof areAllTasksComplete;
85
135
  getPlanProgress: typeof getPlanProgress;
86
136
  getPlanContextForPrompt: typeof getPlanContextForPrompt;
137
+ getPhaseContextForPrompt: typeof getPhaseContextForPrompt;
87
138
  };
88
139
  export default _default;
89
140
  //# sourceMappingURL=plan-mode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plan-mode.d.ts","sourceRoot":"","sources":["../../src/tools/plan-mode.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAwB,MAAM,YAAY,CAAC;AAExD,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,SAAS,CAAC;IAC5D,mBAAmB,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAChD,WAAW,CAAC,EAAE,IAAI,CAAC;CACpB;AAED,MAAM,WAAW,IAAI;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAKD;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,IAoF5B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,IAoFlC,CAAC;AAEF;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAExC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,GAAG,IAAI,CAE5C;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,IAAI,CAEhC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,GAAG,IAAI,CAOzC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAUpE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAAG,IAAI,CAUrF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAG7C;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAQjG;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CA4BhD;;;;;;;;;;;;;;AAED,wBAYE"}
1
+ {"version":3,"file":"plan-mode.d.ts","sourceRoot":"","sources":["../../src/tools/plan-mode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,IAAI,EAAwB,MAAM,YAAY,CAAC;AAMxD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,SAAS,CAAC;IAC5D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,IAAI,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,SAAS,CAAC;IAC5D,mBAAmB,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,IAAI,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAaD;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,IAsI5B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,IAqJlC,CAAC;AAoCF;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAExC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,GAAG,IAAI,CAE5C;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,IAAI,CAEhC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,GAAG,IAAI,CAQzC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAgBpE;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAAG,IAAI,CAiB/E;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAAG,IAAI,CAwBlF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAAG,IAAI,CAUrF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAG7C;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAe1I;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAuChD;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CA0CjD;;;;;;;;;;;;;;;;;AAMD,wBAeE"}