erosolar-cli 1.5.4 → 1.5.5

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 (59) hide show
  1. package/dist/active-stack-security.d.ts +110 -0
  2. package/dist/active-stack-security.js +313 -0
  3. package/dist/active-stack-security.js.map +1 -0
  4. package/dist/advanced-targeting.d.ts +113 -0
  5. package/dist/advanced-targeting.js +252 -0
  6. package/dist/advanced-targeting.js.map +1 -0
  7. package/dist/core/agent.d.ts.map +1 -1
  8. package/dist/core/agent.js +78 -8
  9. package/dist/core/agent.js.map +1 -1
  10. package/dist/core/contextManager.d.ts.map +1 -1
  11. package/dist/core/contextManager.js +117 -16
  12. package/dist/core/contextManager.js.map +1 -1
  13. package/dist/intelligence/codeIntelligence.d.ts.map +1 -1
  14. package/dist/intelligence/codeIntelligence.js +12 -0
  15. package/dist/intelligence/codeIntelligence.js.map +1 -1
  16. package/dist/security/active-stack-security.d.ts +112 -0
  17. package/dist/security/active-stack-security.d.ts.map +1 -0
  18. package/dist/security/active-stack-security.js +296 -0
  19. package/dist/security/active-stack-security.js.map +1 -0
  20. package/dist/security/advanced-targeting.d.ts +119 -0
  21. package/dist/security/advanced-targeting.d.ts.map +1 -0
  22. package/dist/security/advanced-targeting.js +233 -0
  23. package/dist/security/advanced-targeting.js.map +1 -0
  24. package/dist/security/comprehensive-targeting.d.ts +85 -0
  25. package/dist/security/comprehensive-targeting.d.ts.map +1 -0
  26. package/dist/security/comprehensive-targeting.js +438 -0
  27. package/dist/security/comprehensive-targeting.js.map +1 -0
  28. package/dist/security/global-security-integration.d.ts +91 -0
  29. package/dist/security/global-security-integration.d.ts.map +1 -0
  30. package/dist/security/global-security-integration.js +218 -0
  31. package/dist/security/global-security-integration.js.map +1 -0
  32. package/dist/security/index.d.ts +38 -0
  33. package/dist/security/index.d.ts.map +1 -0
  34. package/dist/security/index.js +47 -0
  35. package/dist/security/index.js.map +1 -0
  36. package/dist/security/security-integration.d.ts +74 -0
  37. package/dist/security/security-integration.d.ts.map +1 -0
  38. package/dist/security/security-integration.js +137 -0
  39. package/dist/security/security-integration.js.map +1 -0
  40. package/dist/security/strategic-operations.d.ts +100 -0
  41. package/dist/security/strategic-operations.d.ts.map +1 -0
  42. package/dist/security/strategic-operations.js +276 -0
  43. package/dist/security/strategic-operations.js.map +1 -0
  44. package/dist/security/tool-security-wrapper.d.ts +58 -0
  45. package/dist/security/tool-security-wrapper.d.ts.map +1 -0
  46. package/dist/security/tool-security-wrapper.js +156 -0
  47. package/dist/security/tool-security-wrapper.js.map +1 -0
  48. package/dist/tools/codeAnalysisTools.d.ts.map +1 -1
  49. package/dist/tools/codeAnalysisTools.js +23 -1
  50. package/dist/tools/codeAnalysisTools.js.map +1 -1
  51. package/dist/tools/fileTools.d.ts.map +1 -1
  52. package/dist/tools/fileTools.js +7 -0
  53. package/dist/tools/fileTools.js.map +1 -1
  54. package/dist/tools/grepTools.d.ts.map +1 -1
  55. package/dist/tools/grepTools.js +6 -0
  56. package/dist/tools/grepTools.js.map +1 -1
  57. package/dist/tools/webTools.js +9 -0
  58. package/dist/tools/webTools.js.map +1 -1
  59. package/package.json +2 -2
@@ -0,0 +1,252 @@
1
+ "use strict";
2
+ /**
3
+ * Advanced Targeting Security Module
4
+ *
5
+ * Enables Erosolar CLI to analyze and operate on external active stacks
6
+ * and critical infrastructure while maintaining security controls.
7
+ *
8
+ * @license MIT
9
+ * @author Bo Shang
10
+ *
11
+ * DISCLAIMER: This software is provided for authorized security testing,
12
+ * research, and defensive purposes only. Users must ensure compliance
13
+ * with all applicable laws and regulations in their jurisdiction.
14
+ */
15
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
16
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
17
+ if (ar || !(i in from)) {
18
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
19
+ ar[i] = from[i];
20
+ }
21
+ }
22
+ return to.concat(ar || Array.prototype.slice.call(from));
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.advancedTargetingSecurity = exports.AdvancedTargetingSecurity = void 0;
26
+ var AdvancedTargetingSecurity = /** @class */ (function () {
27
+ function AdvancedTargetingSecurity() {
28
+ this.authorizedTargets = new Map();
29
+ this.criticalInfrastructure = new Map();
30
+ this.operationLog = [];
31
+ this.initializeDefaultTargets();
32
+ }
33
+ /**
34
+ * Authorize a target for operations
35
+ */
36
+ AdvancedTargetingSecurity.prototype.authorizeTarget = function (authorization) {
37
+ this.authorizedTargets.set(authorization.target, authorization);
38
+ this.logAdvancedOperation({
39
+ type: 'target_authorization',
40
+ severity: 'high',
41
+ operation: 'authorize',
42
+ target: authorization.target,
43
+ authorizationLevel: authorization.level,
44
+ authorizedBy: authorization.authorizedBy,
45
+ timestamp: new Date(),
46
+ details: {
47
+ scope: authorization.scope,
48
+ compliance: authorization.compliance
49
+ }
50
+ });
51
+ };
52
+ /**
53
+ * Validate operation on external target
54
+ */
55
+ AdvancedTargetingSecurity.prototype.validateExternalOperation = function (operation, target, parameters) {
56
+ // Check if target is authorized
57
+ var authorization = this.authorizedTargets.get(target);
58
+ if (!authorization) {
59
+ return {
60
+ allowed: false,
61
+ reason: 'Target not authorized for external operations',
62
+ severity: 'high',
63
+ details: { target: target, operation: operation }
64
+ };
65
+ }
66
+ // Check authorization level
67
+ if (!this.isOperationAuthorized(operation, authorization.level)) {
68
+ return {
69
+ allowed: false,
70
+ reason: "Operation '".concat(operation, "' not authorized for target '").concat(target, "'"),
71
+ severity: 'high',
72
+ details: { target: target, operation: operation, authorizationLevel: authorization.level }
73
+ };
74
+ }
75
+ // Check expiration
76
+ if (authorization.expiresAt && authorization.expiresAt < new Date()) {
77
+ return {
78
+ allowed: false,
79
+ reason: 'Target authorization has expired',
80
+ severity: 'high',
81
+ details: { target: target, expiresAt: authorization.expiresAt }
82
+ };
83
+ }
84
+ // Check for critical infrastructure
85
+ var criticalTarget = this.criticalInfrastructure.get(target);
86
+ if (criticalTarget) {
87
+ return this.validateCriticalInfrastructureOperation(operation, criticalTarget, parameters);
88
+ }
89
+ // Log the authorized operation
90
+ this.logAdvancedOperation({
91
+ type: 'external_operation',
92
+ severity: 'medium',
93
+ operation: operation,
94
+ target: target,
95
+ authorizationLevel: authorization.level,
96
+ timestamp: new Date(),
97
+ details: {
98
+ parameters: parameters,
99
+ authorizedBy: authorization.authorizedBy,
100
+ compliance: authorization.compliance
101
+ }
102
+ });
103
+ return { allowed: true, severity: 'low' };
104
+ };
105
+ /**
106
+ * Register critical infrastructure target
107
+ */
108
+ AdvancedTargetingSecurity.prototype.registerCriticalInfrastructure = function (target) {
109
+ this.criticalInfrastructure.set(target.identifier, target);
110
+ this.logAdvancedOperation({
111
+ type: 'critical_infrastructure_registration',
112
+ severity: 'critical',
113
+ operation: 'register',
114
+ target: target.identifier,
115
+ timestamp: new Date(),
116
+ details: {
117
+ category: target.category,
118
+ jurisdiction: target.jurisdiction,
119
+ sensitivity: target.sensitivity
120
+ }
121
+ });
122
+ };
123
+ /**
124
+ * Get authorized targets
125
+ */
126
+ AdvancedTargetingSecurity.prototype.getAuthorizedTargets = function () {
127
+ return Array.from(this.authorizedTargets.values());
128
+ };
129
+ /**
130
+ * Get critical infrastructure targets
131
+ */
132
+ AdvancedTargetingSecurity.prototype.getCriticalInfrastructure = function () {
133
+ return Array.from(this.criticalInfrastructure.values());
134
+ };
135
+ /**
136
+ * Get operation log
137
+ */
138
+ AdvancedTargetingSecurity.prototype.getOperationLog = function () {
139
+ return __spreadArray([], this.operationLog, true);
140
+ };
141
+ /**
142
+ * Generate targeting report
143
+ */
144
+ AdvancedTargetingSecurity.prototype.generateTargetingReport = function () {
145
+ var authorized = this.getAuthorizedTargets();
146
+ var critical = this.getCriticalInfrastructure();
147
+ var operations = this.getOperationLog();
148
+ var report = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([
149
+ '🎯 Advanced Targeting Security Report',
150
+ '=====================================',
151
+ "Authorized Targets: ".concat(authorized.length),
152
+ "Critical Infrastructure: ".concat(critical.length),
153
+ "Total Operations: ".concat(operations.length),
154
+ '',
155
+ '🔐 Authorized Targets:'
156
+ ], authorized.map(function (auth) {
157
+ return " \u2022 ".concat(auth.target, " (").concat(auth.level, ") - ").concat(auth.authorizedBy);
158
+ }), true), [
159
+ '',
160
+ '🏛️ Critical Infrastructure:'
161
+ ], false), critical.map(function (infra) {
162
+ return " \u2022 ".concat(infra.identifier, " (").concat(infra.category, ") - ").concat(infra.jurisdiction, " [").concat(infra.sensitivity, "]");
163
+ }), true), [
164
+ '',
165
+ '📊 Recent Operations:'
166
+ ], false), operations.slice(-10).map(function (op) {
167
+ return " \u2022 ".concat(op.timestamp.toISOString(), " - ").concat(op.type, " on ").concat(op.target, " [").concat(op.severity, "]");
168
+ }), true);
169
+ return report.join('\n');
170
+ };
171
+ AdvancedTargetingSecurity.prototype.initializeDefaultTargets = function () {
172
+ // Example: Research authorization for security analysis
173
+ this.authorizeTarget({
174
+ target: '*.gov',
175
+ level: 'research',
176
+ scope: ['vulnerability_scanning', 'security_analysis'],
177
+ authorizedBy: 'Security Research Team',
178
+ compliance: {
179
+ jurisdiction: 'International',
180
+ legalFramework: 'Authorized Security Research',
181
+ reportingRequirements: ['vulnerability_disclosure']
182
+ }
183
+ });
184
+ // Example: Critical infrastructure for analysis
185
+ this.registerCriticalInfrastructure({
186
+ category: 'energy',
187
+ identifier: 'power-grid-*.gov',
188
+ jurisdiction: 'Multiple',
189
+ sensitivity: 'critical',
190
+ authorizedOperations: ['security_analysis', 'vulnerability_assessment'],
191
+ legalRestrictions: ['no_exploitation', 'responsible_disclosure']
192
+ });
193
+ };
194
+ AdvancedTargetingSecurity.prototype.isOperationAuthorized = function (operation, authorizationLevel) {
195
+ var operationLevels = {
196
+ 'research': ['scanning', 'analysis', 'vulnerability_assessment'],
197
+ 'analysis': ['scanning', 'analysis', 'vulnerability_assessment', 'security_testing'],
198
+ 'testing': ['scanning', 'analysis', 'vulnerability_assessment', 'security_testing', 'penetration_testing'],
199
+ 'operations': ['scanning', 'analysis', 'vulnerability_assessment', 'security_testing', 'penetration_testing', 'remediation']
200
+ };
201
+ var allowedOperations = operationLevels[authorizationLevel] || [];
202
+ return allowedOperations.includes(operation);
203
+ };
204
+ AdvancedTargetingSecurity.prototype.validateCriticalInfrastructureOperation = function (operation, target, parameters) {
205
+ // Enhanced validation for critical infrastructure
206
+ if (!target.authorizedOperations.includes(operation)) {
207
+ return {
208
+ allowed: false,
209
+ reason: "Operation '".concat(operation, "' not authorized for critical infrastructure '").concat(target.identifier, "'"),
210
+ severity: 'critical',
211
+ details: {
212
+ target: target.identifier,
213
+ operation: operation,
214
+ authorizedOperations: target.authorizedOperations,
215
+ legalRestrictions: target.legalRestrictions
216
+ }
217
+ };
218
+ }
219
+ // Additional compliance checks for critical targets
220
+ if (target.sensitivity === 'critical') {
221
+ this.logAdvancedOperation({
222
+ type: 'critical_infrastructure_operation',
223
+ severity: 'critical',
224
+ operation: operation,
225
+ target: target.identifier,
226
+ timestamp: new Date(),
227
+ details: {
228
+ parameters: parameters,
229
+ category: target.category,
230
+ jurisdiction: target.jurisdiction,
231
+ sensitivity: target.sensitivity,
232
+ legalRestrictions: target.legalRestrictions
233
+ }
234
+ });
235
+ }
236
+ return { allowed: true, severity: 'medium' };
237
+ };
238
+ AdvancedTargetingSecurity.prototype.logAdvancedOperation = function (event) {
239
+ this.operationLog.push(event);
240
+ // Keep log size manageable
241
+ if (this.operationLog.length > 1000) {
242
+ this.operationLog = this.operationLog.slice(-500);
243
+ }
244
+ };
245
+ return AdvancedTargetingSecurity;
246
+ }());
247
+ exports.AdvancedTargetingSecurity = AdvancedTargetingSecurity;
248
+ /**
249
+ * Global advanced targeting security instance
250
+ */
251
+ exports.advancedTargetingSecurity = new AdvancedTargetingSecurity();
252
+ //# sourceMappingURL=advanced-targeting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advanced-targeting.js","sourceRoot":"","sources":["../src/security/advanced-targeting.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAGhB,KAAK,aAAa,EACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAuBrD,MAAM,WAAW,cAAc;IAC7B,kBAAkB,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,wBAAwB,GAAG,IAAI,CAAC;IAC/E,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,eAAe,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC7E,8DAA8D;IAC9D,kBAAkB,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,8DAA8D;IAC9D,iBAAiB,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACjF;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC/C;AAED,UAAU,YAAY;IACpB,QAAQ,EAAE,WAAW,CAAC;IACtB,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IACtD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAc;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAC3C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwB;IACvD,OAAO,CAAC,SAAS,CAAsC;IACvD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgB;gBAErC,OAAO,EAAE,YAAY;IAa3B,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,UAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;YAqBjD,mBAAmB;YAsDnB,4BAA4B;YAyE5B,gBAAgB;IAoB9B,OAAO,KAAK,aAAa,GAExB;IAED,OAAO,CAAC,oBAAoB;IAY5B,UAAU,IAAI,mBAAmB,EAAE;IAInC,WAAW,CAAC,OAAO,EAAE,mBAAmB,EAAE,GAAG,IAAI;IAajD,YAAY,IAAI,IAAI;IAOpB;;;;;;OAMG;YACW,qBAAqB;IAiCnC;;OAEG;IACH,OAAO,CAAC,eAAe;IAOvB;;OAEG;IACH,iBAAiB,IAAI,cAAc,GAAG,IAAI;IAI1C;;;;;;;;;;OAUG;YACW,0BAA0B;CA8DzC"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAGhB,KAAK,aAAa,EACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAuBrD,MAAM,WAAW,cAAc;IAC7B,kBAAkB,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,wBAAwB,GAAG,IAAI,CAAC;IAC/E,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,eAAe,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC7E,8DAA8D;IAC9D,kBAAkB,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,8DAA8D;IAC9D,iBAAiB,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACjF;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC/C;AAED,UAAU,YAAY;IACpB,QAAQ,EAAE,WAAW,CAAC;IACtB,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IACtD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAc;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAC3C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwB;IACvD,OAAO,CAAC,SAAS,CAAsC;IACvD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgB;gBAErC,OAAO,EAAE,YAAY;IAa3B,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,UAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;YAqBjD,mBAAmB;YAsDnB,4BAA4B;YAyE5B,gBAAgB;IAoB9B,OAAO,KAAK,aAAa,GAExB;IAED,OAAO,CAAC,oBAAoB;IAY5B,UAAU,IAAI,mBAAmB,EAAE;IAInC,WAAW,CAAC,OAAO,EAAE,mBAAmB,EAAE,GAAG,IAAI;IAajD,YAAY,IAAI,IAAI;IAOpB;;;;;;OAMG;YACW,qBAAqB;IAiCnC;;OAEG;IACH,OAAO,CAAC,eAAe;IAOvB;;OAEG;IACH,iBAAiB,IAAI,cAAc,GAAG,IAAI;IAI1C;;;;;;;;;;OAUG;YACW,0BAA0B;CA2IzC"}
@@ -299,14 +299,83 @@ export class AgentRuntime {
299
299
  conversationMessages.push(msg);
300
300
  }
301
301
  }
302
- // Calculate how many messages to remove
303
- const removeCount = Math.floor(conversationMessages.length * reductionPercent);
304
- if (removeCount === 0 || conversationMessages.length <= 2) {
302
+ // Calculate how many messages to remove (target)
303
+ const targetRemoveCount = Math.floor(conversationMessages.length * reductionPercent);
304
+ if (targetRemoveCount === 0 || conversationMessages.length <= 2) {
305
305
  // Nothing to remove or too few messages - can't recover
306
306
  return false;
307
307
  }
308
- // Keep recent messages
309
- const keepMessages = conversationMessages.slice(removeCount);
308
+ // Group messages into conversation "turns" to maintain tool call/result pairing
309
+ // A turn is: [user] or [assistant + tool results] or [assistant without tools]
310
+ const turns = [];
311
+ let currentTurn = [];
312
+ for (let i = 0; i < conversationMessages.length; i++) {
313
+ const msg = conversationMessages[i];
314
+ if (msg.role === 'user') {
315
+ // User messages start a new turn
316
+ if (currentTurn.length > 0) {
317
+ turns.push(currentTurn);
318
+ }
319
+ currentTurn = [msg];
320
+ }
321
+ else if (msg.role === 'assistant') {
322
+ // Assistant messages start a new turn (flush previous)
323
+ if (currentTurn.length > 0) {
324
+ turns.push(currentTurn);
325
+ }
326
+ currentTurn = [msg];
327
+ }
328
+ else if (msg.role === 'tool') {
329
+ // Tool results belong to the current assistant turn
330
+ currentTurn.push(msg);
331
+ }
332
+ }
333
+ // Don't forget the last turn
334
+ if (currentTurn.length > 0) {
335
+ turns.push(currentTurn);
336
+ }
337
+ // Calculate how many turns to remove
338
+ const targetTurnsToRemove = Math.floor(turns.length * reductionPercent);
339
+ if (targetTurnsToRemove === 0 || turns.length <= 2) {
340
+ return false;
341
+ }
342
+ // Keep recent turns (remove from the beginning)
343
+ const keepTurns = turns.slice(targetTurnsToRemove);
344
+ // IMPORTANT: Ensure we don't start with orphaned tool messages
345
+ // The first kept turn must NOT be a tool-only turn
346
+ let startIndex = 0;
347
+ while (startIndex < keepTurns.length) {
348
+ const firstTurn = keepTurns[startIndex];
349
+ if (firstTurn && firstTurn.length > 0) {
350
+ const firstMsg = firstTurn[0];
351
+ // If first message is a tool result, skip this turn
352
+ if (firstMsg?.role === 'tool') {
353
+ startIndex++;
354
+ continue;
355
+ }
356
+ // If first message is an assistant with tool calls but we're missing results,
357
+ // check if all tool results are present
358
+ if (firstMsg?.role === 'assistant' && firstMsg.toolCalls && firstMsg.toolCalls.length > 0) {
359
+ const toolCallIds = new Set(firstMsg.toolCalls.map(tc => tc.id));
360
+ const presentToolResultIds = new Set(firstTurn.filter(m => m.role === 'tool').map(m => m.toolCallId));
361
+ // If all tool calls have results, we're good
362
+ if ([...toolCallIds].every(id => presentToolResultIds.has(id))) {
363
+ break;
364
+ }
365
+ // Otherwise skip this turn
366
+ startIndex++;
367
+ continue;
368
+ }
369
+ }
370
+ break;
371
+ }
372
+ const validTurns = keepTurns.slice(startIndex);
373
+ if (validTurns.length === 0) {
374
+ return false;
375
+ }
376
+ // Flatten valid turns back to messages
377
+ const keepMessages = validTurns.flat();
378
+ const actualRemoveCount = conversationMessages.length - keepMessages.length;
310
379
  // Rebuild message array
311
380
  this.messages.length = 0;
312
381
  // Add system messages
@@ -316,19 +385,20 @@ export class AgentRuntime {
316
385
  // Add summary notice
317
386
  this.messages.push({
318
387
  role: 'system',
319
- content: `[Auto Context Recovery] Removed ${removeCount} earlier messages to stay within token limits. Conversation context has been compressed.`,
388
+ content: `[Auto Context Recovery] Removed ${actualRemoveCount} earlier messages to stay within token limits. Conversation context has been compressed.`,
320
389
  });
321
- // Add remaining conversation
390
+ // Add remaining conversation (maintaining tool call/result pairing)
322
391
  for (const msg of keepMessages) {
323
392
  this.messages.push(msg);
324
393
  }
325
394
  // Notify about pruning
326
395
  const stats = this.contextManager?.getStats(this.messages) ?? {};
327
- this.callbacks.onContextPruned?.(removeCount, {
396
+ this.callbacks.onContextPruned?.(actualRemoveCount, {
328
397
  ...stats,
329
398
  method: 'emergency-recovery',
330
399
  attempt,
331
400
  removedPercent: reductionPercent * 100,
401
+ turnsRemoved: targetTurnsToRemove + startIndex,
332
402
  });
333
403
  return true;
334
404
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"contextManager.d.ts","sourceRoot":"","sources":["../../src/core/contextManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contextManager.d.ts","sourceRoot":"","sources":["../../src/core/contextManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGtD;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAClC,QAAQ,EAAE,mBAAmB,EAAE,KAC5B,OAAO,CAAC,MAAM,CAAC,CAAC;AAErB;;GAEG;AACH,eAAO,MAAM,oBAAoB,qhCA6BlB,CAAC;AAEhB,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAuB;gBAEzB,MAAM,GAAE,OAAO,CAAC,oBAAoB,CAAM;IAWtD;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB;IAwBtE;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAsB3B,OAAO,CAAC,kBAAkB;IAqB1B,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,eAAe;IASvB;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM;IAkBpD;;OAEG;IACH,mBAAmB,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,MAAM;IAI5D;;;;;OAKG;IACH,aAAa,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG;QAC9C,MAAM,EAAE,mBAAmB,EAAE,CAAC;QAC9B,OAAO,EAAE,MAAM,CAAC;KACjB;IAgHD;;;;;OAKG;IACG,wBAAwB,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC;QACvE,MAAM,EAAE,mBAAmB,EAAE,CAAC;QAC9B,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;IAoIF;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,OAAO;IAK5D;;;OAGG;IACH,eAAe,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,IAAI;IAetF;;OAEG;IACH,iBAAiB,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,MAAM,GAAG,IAAI;IAajE;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG;QACzC,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,OAAO,CAAC;QACrB,kBAAkB,EAAE,OAAO,CAAC;KAC7B;IAYD;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,IAAI;CAG1D;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,SAAS,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,EACzC,KAAK,CAAC,EAAE,MAAM,GACb,cAAc,CAgBhB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,MAAM,CAwBhF;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE;IAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,mBAAmB,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,GAC3G,qBAAqB,CAgBvB"}
@@ -184,22 +184,74 @@ export class ContextManager {
184
184
  const firstMessage = messages[0];
185
185
  const systemMessage = firstMessage?.role === 'system' ? firstMessage : null;
186
186
  const conversationMessages = systemMessage ? messages.slice(1) : messages;
187
- // Keep recent messages based on preserveRecentMessages
188
- // Count user/assistant pairs
189
- const recentMessages = [];
187
+ // Group messages into "turns" to maintain tool call/result pairing
188
+ // A turn is: [user] or [assistant + all its tool results]
189
+ const turns = [];
190
+ let currentTurn = [];
191
+ for (const msg of conversationMessages) {
192
+ if (msg.role === 'user') {
193
+ if (currentTurn.length > 0) {
194
+ turns.push(currentTurn);
195
+ }
196
+ currentTurn = [msg];
197
+ }
198
+ else if (msg.role === 'assistant') {
199
+ if (currentTurn.length > 0) {
200
+ turns.push(currentTurn);
201
+ }
202
+ currentTurn = [msg];
203
+ }
204
+ else if (msg.role === 'tool') {
205
+ // Tool results belong with the current assistant turn
206
+ currentTurn.push(msg);
207
+ }
208
+ }
209
+ if (currentTurn.length > 0) {
210
+ turns.push(currentTurn);
211
+ }
212
+ // Keep recent turns based on preserveRecentMessages (count user turns)
213
+ const recentTurns = [];
190
214
  let exchangeCount = 0;
191
- for (let i = conversationMessages.length - 1; i >= 0; i--) {
192
- const msg = conversationMessages[i];
193
- if (!msg)
215
+ for (let i = turns.length - 1; i >= 0; i--) {
216
+ const turn = turns[i];
217
+ if (!turn || turn.length === 0)
194
218
  continue;
195
- recentMessages.unshift(msg);
196
- if (msg.role === 'user') {
219
+ recentTurns.unshift(turn);
220
+ // Count user messages as exchanges
221
+ if (turn[0]?.role === 'user') {
197
222
  exchangeCount++;
198
223
  if (exchangeCount >= this.config.preserveRecentMessages) {
199
224
  break;
200
225
  }
201
226
  }
202
227
  }
228
+ // IMPORTANT: Ensure we don't start with orphaned tool messages
229
+ // The first kept turn must start with user or assistant (not tool)
230
+ let startIndex = 0;
231
+ while (startIndex < recentTurns.length) {
232
+ const firstTurn = recentTurns[startIndex];
233
+ if (firstTurn && firstTurn.length > 0 && firstTurn[0]?.role === 'tool') {
234
+ startIndex++;
235
+ continue;
236
+ }
237
+ // Also check for assistant turns with missing tool results
238
+ if (firstTurn && firstTurn[0]?.role === 'assistant') {
239
+ const assistantMsg = firstTurn[0];
240
+ if (assistantMsg.toolCalls && assistantMsg.toolCalls.length > 0) {
241
+ const toolCallIds = new Set(assistantMsg.toolCalls.map(tc => tc.id));
242
+ const presentToolResultIds = new Set(firstTurn.filter(m => m.role === 'tool').map(m => m.toolCallId));
243
+ // If NOT all tool calls have results, skip this turn
244
+ if (![...toolCallIds].every(id => presentToolResultIds.has(id))) {
245
+ startIndex++;
246
+ continue;
247
+ }
248
+ }
249
+ }
250
+ break;
251
+ }
252
+ const validTurns = recentTurns.slice(startIndex);
253
+ // Flatten turns back to messages
254
+ const recentMessages = validTurns.flat();
203
255
  // Build pruned message list
204
256
  const pruned = [];
205
257
  if (systemMessage) {
@@ -240,22 +292,71 @@ export class ContextManager {
240
292
  const firstMessage = messages[0];
241
293
  const systemMessage = firstMessage?.role === 'system' ? firstMessage : null;
242
294
  const conversationMessages = systemMessage ? messages.slice(1) : messages;
243
- // Keep recent messages
244
- const recentMessages = [];
295
+ // Group messages into "turns" to maintain tool call/result pairing
296
+ const turns = [];
297
+ let currentTurn = [];
298
+ for (const msg of conversationMessages) {
299
+ if (msg.role === 'user') {
300
+ if (currentTurn.length > 0) {
301
+ turns.push(currentTurn);
302
+ }
303
+ currentTurn = [msg];
304
+ }
305
+ else if (msg.role === 'assistant') {
306
+ if (currentTurn.length > 0) {
307
+ turns.push(currentTurn);
308
+ }
309
+ currentTurn = [msg];
310
+ }
311
+ else if (msg.role === 'tool') {
312
+ currentTurn.push(msg);
313
+ }
314
+ }
315
+ if (currentTurn.length > 0) {
316
+ turns.push(currentTurn);
317
+ }
318
+ // Keep recent turns based on preserveRecentMessages
319
+ const recentTurns = [];
245
320
  let exchangeCount = 0;
246
- for (let i = conversationMessages.length - 1; i >= 0; i--) {
247
- const msg = conversationMessages[i];
248
- if (!msg)
321
+ for (let i = turns.length - 1; i >= 0; i--) {
322
+ const turn = turns[i];
323
+ if (!turn || turn.length === 0)
249
324
  continue;
250
- recentMessages.unshift(msg);
251
- if (msg.role === 'user') {
325
+ recentTurns.unshift(turn);
326
+ if (turn[0]?.role === 'user') {
252
327
  exchangeCount++;
253
328
  if (exchangeCount >= this.config.preserveRecentMessages) {
254
329
  break;
255
330
  }
256
331
  }
257
332
  }
258
- const toSummarize = conversationMessages.slice(0, conversationMessages.length - recentMessages.length);
333
+ // Ensure we don't start with orphaned tool messages
334
+ let startIndex = 0;
335
+ while (startIndex < recentTurns.length) {
336
+ const firstTurn = recentTurns[startIndex];
337
+ if (firstTurn && firstTurn.length > 0 && firstTurn[0]?.role === 'tool') {
338
+ startIndex++;
339
+ continue;
340
+ }
341
+ if (firstTurn && firstTurn[0]?.role === 'assistant') {
342
+ const assistantMsg = firstTurn[0];
343
+ if (assistantMsg.toolCalls && assistantMsg.toolCalls.length > 0) {
344
+ const toolCallIds = new Set(assistantMsg.toolCalls.map(tc => tc.id));
345
+ const presentToolResultIds = new Set(firstTurn.filter(m => m.role === 'tool').map(m => m.toolCallId));
346
+ if (![...toolCallIds].every(id => presentToolResultIds.has(id))) {
347
+ startIndex++;
348
+ continue;
349
+ }
350
+ }
351
+ }
352
+ break;
353
+ }
354
+ const validTurns = recentTurns.slice(startIndex);
355
+ const recentMessages = validTurns.flat();
356
+ // Determine which turns to summarize
357
+ const keepTurnCount = validTurns.length;
358
+ const summarizeTurns = turns.slice(0, turns.length - keepTurnCount - startIndex);
359
+ const toSummarize = summarizeTurns.flat();
259
360
  // If nothing to summarize, return as-is
260
361
  if (toSummarize.length === 0) {
261
362
  return { pruned: messages, removed: 0, summarized: false };