@defai.digital/ax-cli 2.6.7 → 2.8.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 (106) hide show
  1. package/.ax-cli/checkpoints/2025-11-20/checkpoint-2dd84869-e62d-46c8-9885-7e45f37f36e2.json +69 -0
  2. package/.ax-cli/checkpoints/2025-11-20/checkpoint-484dc350-353f-4808-9ed1-ebb3cefdab37.json +24 -0
  3. package/.ax-cli/checkpoints/2025-11-20/checkpoint-74a18b87-6172-4215-962b-44bb9f46a662.json +69 -0
  4. package/.ax-cli/checkpoints/2025-11-20/checkpoint-870a5fb9-6e82-4ff2-8ec8-af4c251cc514.json +44 -0
  5. package/.ax-cli/checkpoints/2025-11-20/checkpoint-93946601-0e83-456c-ba47-def9713124dd.json +24 -0
  6. package/.ax-cli/checkpoints/metadata.json +62 -0
  7. package/README.md +46 -2
  8. package/dist/agent/context-manager.d.ts +3 -2
  9. package/dist/agent/context-manager.js +35 -20
  10. package/dist/agent/context-manager.js.map +1 -1
  11. package/dist/agent/dependency-resolver.d.ts +83 -0
  12. package/dist/agent/dependency-resolver.js +302 -0
  13. package/dist/agent/dependency-resolver.js.map +1 -0
  14. package/dist/agent/index.js +7 -3
  15. package/dist/agent/index.js.map +1 -1
  16. package/dist/agent/llm-agent.d.ts +63 -0
  17. package/dist/agent/llm-agent.js +250 -0
  18. package/dist/agent/llm-agent.js.map +1 -1
  19. package/dist/agent/specialized/analysis-agent.d.ts +11 -0
  20. package/dist/agent/specialized/analysis-agent.js +33 -0
  21. package/dist/agent/specialized/analysis-agent.js.map +1 -0
  22. package/dist/agent/specialized/debug-agent.d.ts +11 -0
  23. package/dist/agent/specialized/debug-agent.js +33 -0
  24. package/dist/agent/specialized/debug-agent.js.map +1 -0
  25. package/dist/agent/specialized/documentation-agent.d.ts +11 -0
  26. package/dist/agent/specialized/documentation-agent.js +33 -0
  27. package/dist/agent/specialized/documentation-agent.js.map +1 -0
  28. package/dist/agent/specialized/index.d.ts +11 -0
  29. package/dist/agent/specialized/index.js +12 -0
  30. package/dist/agent/specialized/index.js.map +1 -0
  31. package/dist/agent/specialized/performance-agent.d.ts +11 -0
  32. package/dist/agent/specialized/performance-agent.js +33 -0
  33. package/dist/agent/specialized/performance-agent.js.map +1 -0
  34. package/dist/agent/specialized/refactoring-agent.d.ts +11 -0
  35. package/dist/agent/specialized/refactoring-agent.js +33 -0
  36. package/dist/agent/specialized/refactoring-agent.js.map +1 -0
  37. package/dist/agent/specialized/testing-agent.d.ts +11 -0
  38. package/dist/agent/specialized/testing-agent.js +33 -0
  39. package/dist/agent/specialized/testing-agent.js.map +1 -0
  40. package/dist/agent/subagent-orchestrator.d.ts +124 -0
  41. package/dist/agent/subagent-orchestrator.js +345 -0
  42. package/dist/agent/subagent-orchestrator.js.map +1 -0
  43. package/dist/agent/subagent-types.d.ts +262 -0
  44. package/dist/agent/subagent-types.js +152 -0
  45. package/dist/agent/subagent-types.js.map +1 -0
  46. package/dist/agent/subagent.d.ts +88 -0
  47. package/dist/agent/subagent.js +402 -0
  48. package/dist/agent/subagent.js.map +1 -0
  49. package/dist/checkpoint/index.d.ts +9 -0
  50. package/dist/checkpoint/index.js +11 -0
  51. package/dist/checkpoint/index.js.map +1 -0
  52. package/dist/checkpoint/manager.d.ts +99 -0
  53. package/dist/checkpoint/manager.js +281 -0
  54. package/dist/checkpoint/manager.js.map +1 -0
  55. package/dist/checkpoint/storage.d.ts +31 -0
  56. package/dist/checkpoint/storage.js +265 -0
  57. package/dist/checkpoint/storage.js.map +1 -0
  58. package/dist/checkpoint/types.d.ts +111 -0
  59. package/dist/checkpoint/types.js +17 -0
  60. package/dist/checkpoint/types.js.map +1 -0
  61. package/dist/commands/rewind.d.ts +19 -0
  62. package/dist/commands/rewind.js +221 -0
  63. package/dist/commands/rewind.js.map +1 -0
  64. package/dist/hooks/use-input-handler.js +176 -0
  65. package/dist/hooks/use-input-handler.js.map +1 -1
  66. package/dist/index.js +25 -2
  67. package/dist/index.js.map +1 -1
  68. package/dist/llm/client.js +3 -2
  69. package/dist/llm/client.js.map +1 -1
  70. package/dist/mcp/client.d.ts +1 -0
  71. package/dist/mcp/client.js +27 -12
  72. package/dist/mcp/client.js.map +1 -1
  73. package/dist/mcp/transports.d.ts +0 -1
  74. package/dist/mcp/transports.js +10 -7
  75. package/dist/mcp/transports.js.map +1 -1
  76. package/dist/schemas/api-schemas.js +4 -0
  77. package/dist/schemas/api-schemas.js.map +1 -1
  78. package/dist/tools/bash.js +26 -1
  79. package/dist/tools/bash.js.map +1 -1
  80. package/dist/tools/search.js +21 -9
  81. package/dist/tools/search.js.map +1 -1
  82. package/dist/tools/text-editor.d.ts +16 -0
  83. package/dist/tools/text-editor.js +33 -0
  84. package/dist/tools/text-editor.js.map +1 -1
  85. package/dist/ui/components/chat-interface.d.ts +2 -1
  86. package/dist/ui/components/chat-interface.js +14 -10
  87. package/dist/ui/components/chat-interface.js.map +1 -1
  88. package/dist/ui/components/subagent-monitor.d.ts +29 -0
  89. package/dist/ui/components/subagent-monitor.js +150 -0
  90. package/dist/ui/components/subagent-monitor.js.map +1 -0
  91. package/dist/utils/history-manager.d.ts +16 -3
  92. package/dist/utils/history-manager.js +89 -9
  93. package/dist/utils/history-manager.js.map +1 -1
  94. package/dist/utils/incremental-analyzer.js +9 -3
  95. package/dist/utils/incremental-analyzer.js.map +1 -1
  96. package/dist/utils/json-utils.d.ts +7 -0
  97. package/dist/utils/json-utils.js +70 -2
  98. package/dist/utils/json-utils.js.map +1 -1
  99. package/dist/utils/settings-manager.js +12 -10
  100. package/dist/utils/settings-manager.js.map +1 -1
  101. package/dist/utils/text-utils.js +3 -3
  102. package/dist/utils/text-utils.js.map +1 -1
  103. package/dist/utils/token-counter.d.ts +5 -0
  104. package/dist/utils/token-counter.js +18 -3
  105. package/dist/utils/token-counter.js.map +1 -1
  106. package/package.json +2 -1
@@ -0,0 +1,69 @@
1
+ {
2
+ "id": "2dd84869-e62d-46c8-9885-7e45f37f36e2",
3
+ "timestamp": "2025-11-21T03:53:47.537Z",
4
+ "description": "Test checkpoint",
5
+ "files": [
6
+ {
7
+ "path": "/test/file-1763697227537.ts",
8
+ "content": "test content",
9
+ "hash": "6ae8a75555209fd6c44157c0aed8016e763ff435a19cf186f76863140143ff72",
10
+ "size": 12
11
+ }
12
+ ],
13
+ "conversationState": [
14
+ {
15
+ "type": "user",
16
+ "content": "Message 10",
17
+ "timestamp": "2025-11-21T03:53:47.537Z"
18
+ },
19
+ {
20
+ "type": "user",
21
+ "content": "Message 11",
22
+ "timestamp": "2025-11-21T03:53:47.537Z"
23
+ },
24
+ {
25
+ "type": "user",
26
+ "content": "Message 12",
27
+ "timestamp": "2025-11-21T03:53:47.537Z"
28
+ },
29
+ {
30
+ "type": "user",
31
+ "content": "Message 13",
32
+ "timestamp": "2025-11-21T03:53:47.537Z"
33
+ },
34
+ {
35
+ "type": "user",
36
+ "content": "Message 14",
37
+ "timestamp": "2025-11-21T03:53:47.537Z"
38
+ },
39
+ {
40
+ "type": "user",
41
+ "content": "Message 15",
42
+ "timestamp": "2025-11-21T03:53:47.537Z"
43
+ },
44
+ {
45
+ "type": "user",
46
+ "content": "Message 16",
47
+ "timestamp": "2025-11-21T03:53:47.537Z"
48
+ },
49
+ {
50
+ "type": "user",
51
+ "content": "Message 17",
52
+ "timestamp": "2025-11-21T03:53:47.537Z"
53
+ },
54
+ {
55
+ "type": "user",
56
+ "content": "Message 18",
57
+ "timestamp": "2025-11-21T03:53:47.537Z"
58
+ },
59
+ {
60
+ "type": "user",
61
+ "content": "Message 19",
62
+ "timestamp": "2025-11-21T03:53:47.537Z"
63
+ }
64
+ ],
65
+ "metadata": {
66
+ "model": "glm-4.6",
67
+ "triggeredBy": "test"
68
+ }
69
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "id": "484dc350-353f-4808-9ed1-ebb3cefdab37",
3
+ "timestamp": "2025-11-21T03:53:47.531Z",
4
+ "description": "Test checkpoint",
5
+ "files": [
6
+ {
7
+ "path": "/test/file-1763697227531.ts",
8
+ "content": "test content",
9
+ "hash": "6ae8a75555209fd6c44157c0aed8016e763ff435a19cf186f76863140143ff72",
10
+ "size": 12
11
+ }
12
+ ],
13
+ "conversationState": [
14
+ {
15
+ "type": "user",
16
+ "content": "Test message",
17
+ "timestamp": "2025-11-21T03:53:47.531Z"
18
+ }
19
+ ],
20
+ "metadata": {
21
+ "model": "glm-4.6",
22
+ "triggeredBy": "test"
23
+ }
24
+ }
@@ -0,0 +1,69 @@
1
+ {
2
+ "id": "74a18b87-6172-4215-962b-44bb9f46a662",
3
+ "timestamp": "2025-11-21T03:53:47.535Z",
4
+ "description": "Test checkpoint",
5
+ "files": [
6
+ {
7
+ "path": "/test/file-1763697227535.ts",
8
+ "content": "test content",
9
+ "hash": "6ae8a75555209fd6c44157c0aed8016e763ff435a19cf186f76863140143ff72",
10
+ "size": 12
11
+ }
12
+ ],
13
+ "conversationState": [
14
+ {
15
+ "type": "user",
16
+ "content": "Message 40",
17
+ "timestamp": "2025-11-21T03:53:47.535Z"
18
+ },
19
+ {
20
+ "type": "user",
21
+ "content": "Message 41",
22
+ "timestamp": "2025-11-21T03:53:47.535Z"
23
+ },
24
+ {
25
+ "type": "user",
26
+ "content": "Message 42",
27
+ "timestamp": "2025-11-21T03:53:47.535Z"
28
+ },
29
+ {
30
+ "type": "user",
31
+ "content": "Message 43",
32
+ "timestamp": "2025-11-21T03:53:47.535Z"
33
+ },
34
+ {
35
+ "type": "user",
36
+ "content": "Message 44",
37
+ "timestamp": "2025-11-21T03:53:47.535Z"
38
+ },
39
+ {
40
+ "type": "user",
41
+ "content": "Message 45",
42
+ "timestamp": "2025-11-21T03:53:47.535Z"
43
+ },
44
+ {
45
+ "type": "user",
46
+ "content": "Message 46",
47
+ "timestamp": "2025-11-21T03:53:47.535Z"
48
+ },
49
+ {
50
+ "type": "user",
51
+ "content": "Message 47",
52
+ "timestamp": "2025-11-21T03:53:47.535Z"
53
+ },
54
+ {
55
+ "type": "user",
56
+ "content": "Message 48",
57
+ "timestamp": "2025-11-21T03:53:47.535Z"
58
+ },
59
+ {
60
+ "type": "user",
61
+ "content": "Message 49",
62
+ "timestamp": "2025-11-21T03:53:47.535Z"
63
+ }
64
+ ],
65
+ "metadata": {
66
+ "model": "glm-4.6",
67
+ "triggeredBy": "test"
68
+ }
69
+ }
@@ -0,0 +1,44 @@
1
+ {
2
+ "id": "870a5fb9-6e82-4ff2-8ec8-af4c251cc514",
3
+ "timestamp": "2025-11-21T03:53:47.540Z",
4
+ "description": "Test checkpoint",
5
+ "files": [
6
+ {
7
+ "path": "/test/file-1763697227540.ts",
8
+ "content": "test content",
9
+ "hash": "6ae8a75555209fd6c44157c0aed8016e763ff435a19cf186f76863140143ff72",
10
+ "size": 12
11
+ }
12
+ ],
13
+ "conversationState": [
14
+ {
15
+ "type": "user",
16
+ "content": "Message 0",
17
+ "timestamp": "2025-11-21T03:53:47.540Z"
18
+ },
19
+ {
20
+ "type": "user",
21
+ "content": "Message 1",
22
+ "timestamp": "2025-11-21T03:53:47.540Z"
23
+ },
24
+ {
25
+ "type": "user",
26
+ "content": "Message 2",
27
+ "timestamp": "2025-11-21T03:53:47.540Z"
28
+ },
29
+ {
30
+ "type": "user",
31
+ "content": "Message 3",
32
+ "timestamp": "2025-11-21T03:53:47.540Z"
33
+ },
34
+ {
35
+ "type": "user",
36
+ "content": "Message 4",
37
+ "timestamp": "2025-11-21T03:53:47.540Z"
38
+ }
39
+ ],
40
+ "metadata": {
41
+ "model": "glm-4.6",
42
+ "triggeredBy": "test"
43
+ }
44
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "id": "93946601-0e83-456c-ba47-def9713124dd",
3
+ "timestamp": "2025-11-21T03:53:47.533Z",
4
+ "description": "Test checkpoint",
5
+ "files": [
6
+ {
7
+ "path": "/test/file-1763697227533.ts",
8
+ "content": "test content",
9
+ "hash": "6ae8a75555209fd6c44157c0aed8016e763ff435a19cf186f76863140143ff72",
10
+ "size": 12
11
+ }
12
+ ],
13
+ "conversationState": [
14
+ {
15
+ "type": "user",
16
+ "content": "Test message",
17
+ "timestamp": "2025-11-21T03:53:47.533Z"
18
+ }
19
+ ],
20
+ "metadata": {
21
+ "model": "glm-4.6",
22
+ "triggeredBy": "test"
23
+ }
24
+ }
@@ -0,0 +1,62 @@
1
+ {
2
+ "checkpoints": [
3
+ {
4
+ "id": "870a5fb9-6e82-4ff2-8ec8-af4c251cc514",
5
+ "timestamp": "2025-11-21T03:53:47.540Z",
6
+ "description": "Test checkpoint",
7
+ "filesChanged": [
8
+ "/test/file-1763697227540.ts"
9
+ ],
10
+ "size": 991,
11
+ "compressed": false
12
+ },
13
+ {
14
+ "id": "2dd84869-e62d-46c8-9885-7e45f37f36e2",
15
+ "timestamp": "2025-11-21T03:53:47.537Z",
16
+ "description": "Test checkpoint",
17
+ "filesChanged": [
18
+ "/test/file-1763697227537.ts"
19
+ ],
20
+ "size": 1556,
21
+ "compressed": false
22
+ },
23
+ {
24
+ "id": "74a18b87-6172-4215-962b-44bb9f46a662",
25
+ "timestamp": "2025-11-21T03:53:47.535Z",
26
+ "description": "Test checkpoint",
27
+ "filesChanged": [
28
+ "/test/file-1763697227535.ts"
29
+ ],
30
+ "size": 1556,
31
+ "compressed": false
32
+ },
33
+ {
34
+ "id": "93946601-0e83-456c-ba47-def9713124dd",
35
+ "timestamp": "2025-11-21T03:53:47.533Z",
36
+ "description": "Test checkpoint",
37
+ "filesChanged": [
38
+ "/test/file-1763697227533.ts"
39
+ ],
40
+ "size": 550,
41
+ "compressed": false
42
+ },
43
+ {
44
+ "id": "484dc350-353f-4808-9ed1-ebb3cefdab37",
45
+ "timestamp": "2025-11-21T03:53:47.531Z",
46
+ "description": "Test checkpoint",
47
+ "filesChanged": [
48
+ "/test/file-1763697227531.ts"
49
+ ],
50
+ "size": 550,
51
+ "compressed": false
52
+ }
53
+ ],
54
+ "stats": {
55
+ "totalCount": 5,
56
+ "totalSize": 5203,
57
+ "compressedCount": 0,
58
+ "oldestDate": "2025-11-21T03:53:47.531Z",
59
+ "newestDate": "2025-11-21T03:53:47.540Z"
60
+ },
61
+ "lastUpdated": "2025-11-21T03:53:47.541Z"
62
+ }
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # AX CLI - Enterprise-Class AI CLI
2
2
 
3
- [![Tests](https://img.shields.io/badge/tests-306%20passing-brightgreen?style=flat-square)](https://github.com/defai-digital/ax-cli/actions/workflows/test.yml)
3
+ [![Tests](https://img.shields.io/badge/tests-562%20passing-brightgreen?style=flat-square)](https://github.com/defai-digital/ax-cli/actions/workflows/test.yml)
4
4
  [![Coverage](https://img.shields.io/badge/coverage-98.29%25-brightgreen?style=flat-square)](https://github.com/defai-digital/ax-cli)
5
5
  [![npm](https://img.shields.io/npm/dt/@defai.digital/ax-cli?style=flat-square&logo=npm&label=downloads)](https://npm-stat.com/charts.html?package=%40defai.digital%2Fax-cli)
6
6
  [![Node.js Version](https://img.shields.io/badge/node-%3E%3D24.0.0-blue?style=flat-square)](https://nodejs.org/)
@@ -42,6 +42,10 @@ ax-cli
42
42
  - 200K context window, 128K max output capability
43
43
  - 30% more token efficient than GLM 4.5
44
44
  - Optimized for complex code generation and refactoring
45
+ - **🔄 Session Continuity**: Directory-specific conversation history with `--continue` flag
46
+ - Preserve context across sessions for multi-day development
47
+ - Each project maintains its own independent history
48
+ - Seamlessly resume conversations where you left off
45
49
  - **🔌 MCP Integration**: Model Context Protocol for extensible tool support
46
50
  - **✅ Production-Ready**: 98%+ test coverage, TypeScript strict mode, Zod validation
47
51
  - **🎯 Interactive & Headless**: Chat interface or one-shot commands
@@ -123,8 +127,14 @@ ax-cli # Will prompt for API key on first run
123
127
  # Start interactive chat
124
128
  ax-cli
125
129
 
130
+ # Continue the most recent conversation in this directory
131
+ ax-cli --continue
132
+ # or
133
+ ax-cli -c
134
+
126
135
  # Available slash commands:
127
136
  /help # Show help
137
+ /continue # Continue incomplete response
128
138
  /init # Initialize project
129
139
  /clear # Clear chat history
130
140
  /models # Switch AI model
@@ -186,6 +196,40 @@ cp node_modules/@defai.digital/ax-cli/templates/vscode/*.json .vscode/
186
196
 
187
197
  [VSCode Integration Guide →](docs/vscode-integration-guide.md)
188
198
 
199
+ ### 🔄 Session Continuity (`--continue`)
200
+
201
+ Resume conversations seamlessly with directory-specific session history:
202
+
203
+ ```bash
204
+ # Start a conversation in your project
205
+ cd /path/to/your/project
206
+ ax-cli
207
+ # > Work on some features, then exit
208
+
209
+ # Later, continue where you left off
210
+ cd /path/to/your/project
211
+ ax-cli --continue
212
+ # All previous context is restored!
213
+
214
+ # Each project maintains its own independent history
215
+ cd /path/to/another/project
216
+ ax-cli --continue
217
+ # Fresh context for this project
218
+ ```
219
+
220
+ **How It Works:**
221
+ - Each project directory gets its own conversation session
222
+ - History includes all messages, tool calls, and results
223
+ - Integrated with `.ax-cli/CUSTOM.md` for project-specific context
224
+ - Sessions stored in `~/.ax-cli/sessions/` by project hash
225
+ - Up to 50 most recent messages preserved per session
226
+
227
+ **Use Cases:**
228
+ - Multi-day feature development with accumulated knowledge
229
+ - Resume after interruptions without losing context
230
+ - Maintain separate conversations per project
231
+ - Natural workflow continuity across sessions
232
+
189
233
  ### Project Initialization
190
234
 
191
235
  ```bash
@@ -262,7 +306,7 @@ AX CLI implements enterprise-grade architecture with:
262
306
 
263
307
  - **Single Source of Truth (SSOT)** type system via `@ax-cli/schemas`
264
308
  - **TypeScript strict mode** with Zod runtime validation
265
- - **98%+ test coverage** (306 tests)
309
+ - **98%+ test coverage** (562 tests)
266
310
  - **Modular design** with clean separation of concerns
267
311
 
268
312
  [Architecture Documentation →](docs/architecture.md)
@@ -37,8 +37,8 @@ export declare class ContextManager {
37
37
  private getCachedTokenCount;
38
38
  /**
39
39
  * Create a cache key from messages
40
- * Fast hashing without full serialization
41
- * Includes content sample to prevent collisions
40
+ * Uses SHA-256 hash of full content to prevent collisions
41
+ * More reliable than content sampling
42
42
  */
43
43
  private createMessageCacheKey;
44
44
  /**
@@ -98,6 +98,7 @@ export declare class ContextManager {
98
98
  dispose(): void;
99
99
  /**
100
100
  * Create a warning message for approaching limit
101
+ * Percentage shows remaining capacity (counts down from 100%)
101
102
  */
102
103
  createWarningMessage(stats: ReturnType<typeof this.getStats>): string;
103
104
  }
@@ -3,6 +3,7 @@
3
3
  * Prevents context window overflow through intelligent pruning
4
4
  */
5
5
  import { GLM_MODELS } from '../constants.js';
6
+ import * as crypto from 'crypto';
6
7
  export class ContextManager {
7
8
  model;
8
9
  contextWindow;
@@ -57,23 +58,27 @@ export class ContextManager {
57
58
  }
58
59
  /**
59
60
  * Create a cache key from messages
60
- * Fast hashing without full serialization
61
- * Includes content sample to prevent collisions
61
+ * Uses SHA-256 hash of full content to prevent collisions
62
+ * More reliable than content sampling
62
63
  */
63
64
  createMessageCacheKey(messages) {
64
- // Use message count + roles + content lengths + content sample as a fast hash
65
- return messages.map(m => {
66
- const contentLen = typeof m.content === 'string' ? m.content.length : Array.isArray(m.content) ? m.content.reduce((sum, part) => sum + (part.type === 'text' ? part.text.length : 0), 0) : 0;
67
- const toolCallsLen = (m.role === 'assistant' || m.role === 'tool') && 'tool_calls' in m ? m.tool_calls?.length || 0 : 0;
68
- // Include first 50 chars of content to prevent hash collisions
69
- // Increased from 20 to 50 to reduce false cache hits
70
- const contentSample = typeof m.content === 'string'
71
- ? m.content.substring(0, 50).replace(/[|:]/g, '') // Remove delimiters
65
+ // Serialize messages to a stable string representation
66
+ const messageSignature = messages.map(m => {
67
+ // Get full content
68
+ const content = typeof m.content === 'string'
69
+ ? m.content
72
70
  : Array.isArray(m.content)
73
- ? m.content.filter(part => part.type === 'text').map(part => part.text).join('').substring(0, 50).replace(/[|:]/g, '')
71
+ ? m.content.map(part => part.type === 'text' ? part.text : '').join('')
74
72
  : '';
75
- return `${m.role}:${contentLen}:${toolCallsLen}:${contentSample}`;
76
- }).join('|');
73
+ // Include tool calls if present
74
+ const toolCalls = (m.role === 'assistant' || m.role === 'tool') && 'tool_calls' in m && m.tool_calls
75
+ ? JSON.stringify(m.tool_calls)
76
+ : '';
77
+ // Create deterministic string for this message
78
+ return `${m.role}|${content}|${toolCalls}`;
79
+ }).join('||');
80
+ // Hash the signature for efficient cache lookup
81
+ return crypto.createHash('sha256').update(messageSignature).digest('hex').substring(0, 32);
77
82
  }
78
83
  /**
79
84
  * Clean up expired cache entries
@@ -113,12 +118,13 @@ export class ContextManager {
113
118
  */
114
119
  getStats(messages, tokenCounter) {
115
120
  const currentTokens = this.getCachedTokenCount(messages, tokenCounter);
116
- const percentage = (currentTokens / this.contextWindow) * 100;
121
+ // Changed: Show remaining percentage (counting down from 100%)
122
+ const percentage = 100 - (currentTokens / this.contextWindow) * 100;
117
123
  const available = this.contextWindow - currentTokens;
118
124
  return {
119
125
  currentTokens,
120
126
  contextWindow: this.contextWindow,
121
- percentage: percentage, // Keep full precision
127
+ percentage: percentage, // Remaining percentage (counts down from 100%)
122
128
  available,
123
129
  shouldPrune: currentTokens > (this.contextWindow * this.pruneThreshold),
124
130
  isNearLimit: currentTokens > (this.contextWindow * this.hardLimit),
@@ -135,8 +141,16 @@ export class ContextManager {
135
141
  */
136
142
  pruneMessages(messages, tokenCounter) {
137
143
  // Always keep system message - validate first
138
- if (messages.length === 0 || messages[0].role !== 'system') {
139
- throw new Error('First message must be system message');
144
+ if (messages.length === 0) {
145
+ // Empty messages array - return as-is (edge case protection)
146
+ console.warn('[ContextManager] Cannot prune empty messages array');
147
+ return messages;
148
+ }
149
+ if (messages[0].role !== 'system') {
150
+ // Missing system message - log warning but continue with defensive handling
151
+ console.warn('[ContextManager] First message is not system message, proceeding with caution');
152
+ // Don't prune if system message is missing to avoid breaking conversation state
153
+ return messages;
140
154
  }
141
155
  // If under threshold, no pruning needed
142
156
  if (!this.shouldPrune(messages, tokenCounter)) {
@@ -308,17 +322,18 @@ export class ContextManager {
308
322
  }
309
323
  /**
310
324
  * Create a warning message for approaching limit
325
+ * Percentage shows remaining capacity (counts down from 100%)
311
326
  */
312
327
  createWarningMessage(stats) {
313
328
  if (stats.isNearLimit) {
314
- return `⚠️ Context: ${stats.currentTokens.toLocaleString()}/${stats.contextWindow.toLocaleString()} tokens (${stats.percentage}%)
329
+ return `⚠️ Context: ${stats.currentTokens.toLocaleString()}/${stats.contextWindow.toLocaleString()} tokens (${stats.percentage.toFixed(1)}% remaining)
315
330
  💡 Near context limit! Consider starting a new conversation soon.`;
316
331
  }
317
332
  if (stats.shouldPrune) {
318
- return `ℹ️ Context: ${stats.currentTokens.toLocaleString()}/${stats.contextWindow.toLocaleString()} tokens (${stats.percentage}%)
333
+ return `ℹ️ Context: ${stats.currentTokens.toLocaleString()}/${stats.contextWindow.toLocaleString()} tokens (${stats.percentage.toFixed(1)}% remaining)
319
334
  📊 Context pruning active to maintain performance.`;
320
335
  }
321
- return `📊 Context: ${stats.currentTokens.toLocaleString()}/${stats.contextWindow.toLocaleString()} tokens (${stats.percentage}%)`;
336
+ return `📊 Context: ${stats.currentTokens.toLocaleString()}/${stats.contextWindow.toLocaleString()} tokens (${stats.percentage.toFixed(1)}% remaining)`;
322
337
  }
323
338
  }
324
339
  //# sourceMappingURL=context-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context-manager.js","sourceRoot":"","sources":["../../src/agent/context-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-manager.js","sourceRoot":"","sources":["../../src/agent/context-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Dependency Resolver
3
+ *
4
+ * Resolves task dependencies and determines execution order for subagents.
5
+ * Implements topological sorting with cycle detection.
6
+ */
7
+ import type { SubagentTask, DependencyGraph } from './subagent-types.js';
8
+ /**
9
+ * DependencyResolver class for managing task dependencies
10
+ */
11
+ export declare class DependencyResolver {
12
+ /**
13
+ * Resolve task dependencies and return execution batches
14
+ * Tasks in the same batch can be executed in parallel
15
+ *
16
+ * @param tasks Array of tasks to resolve
17
+ * @returns Array of batches, where each batch is an array of task IDs
18
+ */
19
+ resolveDependencies(tasks: SubagentTask[]): string[][];
20
+ /**
21
+ * Validate that there are no circular dependencies
22
+ *
23
+ * @param tasks Array of tasks to validate
24
+ * @returns true if valid, false if circular dependencies exist
25
+ */
26
+ validateDependencies(tasks: SubagentTask[]): boolean;
27
+ /**
28
+ * Get dependency graph structure
29
+ *
30
+ * @param tasks Array of tasks
31
+ * @returns DependencyGraph object with nodes and execution order
32
+ */
33
+ getDependencyGraph(tasks: SubagentTask[]): DependencyGraph;
34
+ /**
35
+ * Build dependency graph from tasks
36
+ */
37
+ private buildDependencyGraph;
38
+ /**
39
+ * Perform topological sort using Kahn's algorithm
40
+ */
41
+ private topologicalSort;
42
+ /**
43
+ * Group sorted tasks into parallel execution batches
44
+ */
45
+ private groupIntoBatches;
46
+ /**
47
+ * Check if graph has cycles using DFS
48
+ */
49
+ private hasCycle;
50
+ /**
51
+ * Utility function for cycle detection
52
+ */
53
+ private hasCycleUtil;
54
+ /**
55
+ * Find all cycles in the graph
56
+ */
57
+ private findCycles;
58
+ /**
59
+ * Utility function for finding cycles
60
+ */
61
+ private findCyclesUtil;
62
+ /**
63
+ * Get execution level for a task
64
+ * Level 0 = no dependencies, Level N = depends on tasks at level N-1
65
+ */
66
+ getTaskLevel(taskId: string, tasks: SubagentTask[]): number;
67
+ /**
68
+ * Get all tasks that can be executed in parallel
69
+ */
70
+ getParallelTasks(tasks: SubagentTask[]): string[][];
71
+ /**
72
+ * Check if a task can be executed given completed tasks
73
+ */
74
+ canExecuteTask(taskId: string, completedTaskIds: Set<string>, tasks: SubagentTask[]): boolean;
75
+ /**
76
+ * Get tasks that are ready to execute
77
+ */
78
+ getReadyTasks(tasks: SubagentTask[], completedTaskIds: Set<string>): SubagentTask[];
79
+ }
80
+ /**
81
+ * Create a new dependency resolver instance
82
+ */
83
+ export declare function createDependencyResolver(): DependencyResolver;