agentic-qe 1.3.5 → 1.3.6

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 (104) hide show
  1. package/.claude/agents/qe-code-complexity.md +291 -0
  2. package/.claude/settings.json +2 -2
  3. package/CHANGELOG.md +37 -0
  4. package/README.md +27 -2
  5. package/dist/agents/BaseAgent.d.ts +6 -2
  6. package/dist/agents/BaseAgent.d.ts.map +1 -1
  7. package/dist/agents/BaseAgent.js +62 -51
  8. package/dist/agents/BaseAgent.js.map +1 -1
  9. package/dist/agents/CodeComplexityAnalyzerAgent.d.ts +139 -0
  10. package/dist/agents/CodeComplexityAnalyzerAgent.d.ts.map +1 -0
  11. package/dist/agents/CodeComplexityAnalyzerAgent.js +403 -0
  12. package/dist/agents/CodeComplexityAnalyzerAgent.js.map +1 -0
  13. package/dist/agents/FleetCommanderAgent.js +2 -2
  14. package/dist/agents/FleetCommanderAgent.js.map +1 -1
  15. package/dist/agents/QualityGateAgent.d.ts +5 -5
  16. package/dist/agents/QualityGateAgent.d.ts.map +1 -1
  17. package/dist/agents/QualityGateAgent.js +33 -19
  18. package/dist/agents/QualityGateAgent.js.map +1 -1
  19. package/dist/agents/TestDataArchitectAgent.d.ts +9 -0
  20. package/dist/agents/TestDataArchitectAgent.d.ts.map +1 -1
  21. package/dist/agents/TestDataArchitectAgent.js +96 -2
  22. package/dist/agents/TestDataArchitectAgent.js.map +1 -1
  23. package/dist/agents/TestGeneratorAgent.d.ts +23 -1
  24. package/dist/agents/TestGeneratorAgent.d.ts.map +1 -1
  25. package/dist/agents/TestGeneratorAgent.js +279 -54
  26. package/dist/agents/TestGeneratorAgent.js.map +1 -1
  27. package/dist/agents/coordination/AgentCoordinator.d.ts +98 -0
  28. package/dist/agents/coordination/AgentCoordinator.d.ts.map +1 -0
  29. package/dist/agents/coordination/AgentCoordinator.js +196 -0
  30. package/dist/agents/coordination/AgentCoordinator.js.map +1 -0
  31. package/dist/agents/lifecycle/AgentLifecycleManager.d.ts +107 -0
  32. package/dist/agents/lifecycle/AgentLifecycleManager.d.ts.map +1 -0
  33. package/dist/agents/lifecycle/AgentLifecycleManager.js +220 -0
  34. package/dist/agents/lifecycle/AgentLifecycleManager.js.map +1 -0
  35. package/dist/agents/memory/AgentMemoryService.d.ts +173 -0
  36. package/dist/agents/memory/AgentMemoryService.d.ts.map +1 -0
  37. package/dist/agents/memory/AgentMemoryService.js +297 -0
  38. package/dist/agents/memory/AgentMemoryService.js.map +1 -0
  39. package/dist/cli/commands/init.d.ts.map +1 -1
  40. package/dist/cli/commands/init.js +45 -3
  41. package/dist/cli/commands/init.js.map +1 -1
  42. package/dist/cli/commands/skills/index.d.ts +4 -0
  43. package/dist/cli/commands/skills/index.d.ts.map +1 -1
  44. package/dist/cli/commands/skills/index.js +8 -2
  45. package/dist/cli/commands/skills/index.js.map +1 -1
  46. package/dist/core/memory/SwarmMemoryManager.d.ts +2 -1
  47. package/dist/core/memory/SwarmMemoryManager.d.ts.map +1 -1
  48. package/dist/core/memory/SwarmMemoryManager.js +4 -1
  49. package/dist/core/memory/SwarmMemoryManager.js.map +1 -1
  50. package/dist/core/memory/dao/AccessControlDAO.d.ts +66 -0
  51. package/dist/core/memory/dao/AccessControlDAO.d.ts.map +1 -0
  52. package/dist/core/memory/dao/AccessControlDAO.js +140 -0
  53. package/dist/core/memory/dao/AccessControlDAO.js.map +1 -0
  54. package/dist/core/memory/dao/BaseDAO.d.ts +34 -0
  55. package/dist/core/memory/dao/BaseDAO.d.ts.map +1 -0
  56. package/dist/core/memory/dao/BaseDAO.js +34 -0
  57. package/dist/core/memory/dao/BaseDAO.js.map +1 -0
  58. package/dist/core/memory/dao/BlackboardDAO.d.ts +90 -0
  59. package/dist/core/memory/dao/BlackboardDAO.d.ts.map +1 -0
  60. package/dist/core/memory/dao/BlackboardDAO.js +223 -0
  61. package/dist/core/memory/dao/BlackboardDAO.js.map +1 -0
  62. package/dist/core/memory/dao/EventDAO.d.ts +83 -0
  63. package/dist/core/memory/dao/EventDAO.d.ts.map +1 -0
  64. package/dist/core/memory/dao/EventDAO.js +177 -0
  65. package/dist/core/memory/dao/EventDAO.js.map +1 -0
  66. package/dist/core/memory/dao/MemoryEntryDAO.d.ts +57 -0
  67. package/dist/core/memory/dao/MemoryEntryDAO.d.ts.map +1 -0
  68. package/dist/core/memory/dao/MemoryEntryDAO.js +159 -0
  69. package/dist/core/memory/dao/MemoryEntryDAO.js.map +1 -0
  70. package/dist/core/memory/dao/WorkflowDAO.d.ts +85 -0
  71. package/dist/core/memory/dao/WorkflowDAO.d.ts.map +1 -0
  72. package/dist/core/memory/dao/WorkflowDAO.js +182 -0
  73. package/dist/core/memory/dao/WorkflowDAO.js.map +1 -0
  74. package/dist/core/memory/services/AccessControlService.d.ts +123 -0
  75. package/dist/core/memory/services/AccessControlService.d.ts.map +1 -0
  76. package/dist/core/memory/services/AccessControlService.js +249 -0
  77. package/dist/core/memory/services/AccessControlService.js.map +1 -0
  78. package/dist/core/memory/services/MemoryStoreService.d.ts +69 -0
  79. package/dist/core/memory/services/MemoryStoreService.d.ts.map +1 -0
  80. package/dist/core/memory/services/MemoryStoreService.js +214 -0
  81. package/dist/core/memory/services/MemoryStoreService.js.map +1 -0
  82. package/dist/mcp/handlers/base-handler.d.ts.map +1 -1
  83. package/dist/mcp/handlers/base-handler.js +4 -1
  84. package/dist/mcp/handlers/base-handler.js.map +1 -1
  85. package/dist/mcp/handlers/prediction/regression-risk-analyze.d.ts +11 -1
  86. package/dist/mcp/handlers/prediction/regression-risk-analyze.d.ts.map +1 -1
  87. package/dist/mcp/handlers/prediction/regression-risk-analyze.js +63 -8
  88. package/dist/mcp/handlers/prediction/regression-risk-analyze.js.map +1 -1
  89. package/dist/mcp/handlers/quality-analyze.d.ts +7 -1
  90. package/dist/mcp/handlers/quality-analyze.d.ts.map +1 -1
  91. package/dist/mcp/handlers/quality-analyze.js +18 -1
  92. package/dist/mcp/handlers/quality-analyze.js.map +1 -1
  93. package/dist/mcp/handlers/test-generate.d.ts.map +1 -1
  94. package/dist/mcp/handlers/test-generate.js +24 -8
  95. package/dist/mcp/handlers/test-generate.js.map +1 -1
  96. package/dist/mcp/services/AgentRegistry.d.ts +5 -0
  97. package/dist/mcp/services/AgentRegistry.d.ts.map +1 -1
  98. package/dist/mcp/services/AgentRegistry.js +19 -0
  99. package/dist/mcp/services/AgentRegistry.js.map +1 -1
  100. package/dist/utils/__mocks__/Database.d.ts +64 -0
  101. package/dist/utils/__mocks__/Database.d.ts.map +1 -0
  102. package/dist/utils/__mocks__/Database.js +134 -0
  103. package/dist/utils/__mocks__/Database.js.map +1 -0
  104. package/package.json +5 -1
@@ -0,0 +1,249 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AccessControlService = void 0;
4
+ const AccessControl_1 = require("../AccessControl");
5
+ /**
6
+ * AccessControlService - Business logic for access control and permissions
7
+ *
8
+ * Handles:
9
+ * - Permission checking across private/team/swarm/public access levels
10
+ * - ACL management (grant, revoke, check)
11
+ * - System agent special permissions
12
+ * - Team and swarm membership validation
13
+ *
14
+ * Implements the access control rules from the original SwarmMemoryManager
15
+ */
16
+ class AccessControlService {
17
+ constructor(accessControlDAO) {
18
+ this.accessControlDAO = accessControlDAO;
19
+ }
20
+ /**
21
+ * Check if an agent has permission to access a resource
22
+ */
23
+ checkPermission(request) {
24
+ // System agents have full access
25
+ if (request.isSystemAgent) {
26
+ return { allowed: true, reason: 'System agent' };
27
+ }
28
+ // Owner always has full access
29
+ if (request.agentId === request.resourceOwner) {
30
+ return { allowed: true, reason: 'Resource owner' };
31
+ }
32
+ // Check access level rules
33
+ switch (request.accessLevel) {
34
+ case AccessControl_1.AccessLevel.PRIVATE:
35
+ return this.checkPrivateAccess(request);
36
+ case AccessControl_1.AccessLevel.TEAM:
37
+ return this.checkTeamAccess(request);
38
+ case AccessControl_1.AccessLevel.SWARM:
39
+ return this.checkSwarmAccess(request);
40
+ case AccessControl_1.AccessLevel.PUBLIC:
41
+ return this.checkPublicAccess(request);
42
+ default:
43
+ return { allowed: false, reason: 'Unknown access level' };
44
+ }
45
+ }
46
+ /**
47
+ * Grant a permission to an agent for a resource
48
+ */
49
+ async grant(resourceKey, resourcePartition, agentId, permission, grantedBy, ttl) {
50
+ await this.accessControlDAO.grant({
51
+ resourceKey,
52
+ resourcePartition,
53
+ agentId,
54
+ permission,
55
+ grantedBy,
56
+ ttl
57
+ });
58
+ }
59
+ /**
60
+ * Revoke a permission from an agent for a resource
61
+ */
62
+ async revoke(resourceKey, resourcePartition, agentId, permission) {
63
+ await this.accessControlDAO.revoke(resourceKey, resourcePartition, agentId, permission);
64
+ }
65
+ /**
66
+ * Check if an agent has explicit ACL permission for a resource
67
+ */
68
+ async hasExplicitPermission(resourceKey, resourcePartition, agentId, permission) {
69
+ return this.accessControlDAO.hasPermission(resourceKey, resourcePartition, agentId, permission);
70
+ }
71
+ /**
72
+ * Get all permissions for a resource
73
+ */
74
+ async getResourcePermissions(resourceKey, resourcePartition) {
75
+ return this.accessControlDAO.findByResource(resourceKey, resourcePartition);
76
+ }
77
+ /**
78
+ * Get all permissions for an agent
79
+ */
80
+ async getAgentPermissions(agentId) {
81
+ return this.accessControlDAO.findByAgent(agentId);
82
+ }
83
+ /**
84
+ * Delete all permissions for a resource
85
+ */
86
+ async deleteResourcePermissions(resourceKey, resourcePartition) {
87
+ await this.accessControlDAO.deleteByResource(resourceKey, resourcePartition);
88
+ }
89
+ /**
90
+ * Delete all permissions for an agent
91
+ */
92
+ async deleteAgentPermissions(agentId) {
93
+ await this.accessControlDAO.deleteByAgent(agentId);
94
+ }
95
+ /**
96
+ * Clean up expired ACL entries
97
+ */
98
+ async cleanupExpired() {
99
+ await this.accessControlDAO.deleteExpired();
100
+ }
101
+ /**
102
+ * Get ACL statistics
103
+ */
104
+ async getStatistics() {
105
+ const [totalCount, permissionCounts] = await Promise.all([
106
+ this.accessControlDAO.count(),
107
+ this.accessControlDAO.getPermissionCounts()
108
+ ]);
109
+ return {
110
+ total: totalCount,
111
+ byPermission: permissionCounts
112
+ };
113
+ }
114
+ // ============================================================================
115
+ // Private Access Level Checkers
116
+ // ============================================================================
117
+ /**
118
+ * Check PRIVATE access level
119
+ * Only owner can access
120
+ */
121
+ checkPrivateAccess(request) {
122
+ // Already checked owner above, so deny all others
123
+ return {
124
+ allowed: false,
125
+ reason: 'Private access level - only owner allowed'
126
+ };
127
+ }
128
+ /**
129
+ * Check TEAM access level
130
+ * Owner + same team members can access
131
+ */
132
+ checkTeamAccess(request) {
133
+ // Check if both are in the same team
134
+ if (!request.teamId || !request.resourceTeamId) {
135
+ return {
136
+ allowed: false,
137
+ reason: 'Team access level - team ID missing'
138
+ };
139
+ }
140
+ if (request.teamId === request.resourceTeamId) {
141
+ return { allowed: true, reason: 'Same team member' };
142
+ }
143
+ return {
144
+ allowed: false,
145
+ reason: 'Team access level - different teams'
146
+ };
147
+ }
148
+ /**
149
+ * Check SWARM access level
150
+ * Owner + same swarm members can access
151
+ */
152
+ checkSwarmAccess(request) {
153
+ // Check if both are in the same swarm
154
+ if (!request.swarmId || !request.resourceSwarmId) {
155
+ return {
156
+ allowed: false,
157
+ reason: 'Swarm access level - swarm ID missing'
158
+ };
159
+ }
160
+ if (request.swarmId === request.resourceSwarmId) {
161
+ return { allowed: true, reason: 'Same swarm member' };
162
+ }
163
+ return {
164
+ allowed: false,
165
+ reason: 'Swarm access level - different swarms'
166
+ };
167
+ }
168
+ /**
169
+ * Check PUBLIC access level
170
+ * Everyone has read access, only owner/team can write
171
+ */
172
+ checkPublicAccess(request) {
173
+ // Read is always allowed for public
174
+ if (request.permission === AccessControl_1.Permission.READ) {
175
+ return { allowed: true, reason: 'Public read access' };
176
+ }
177
+ // Write/Delete requires ownership or team membership
178
+ if (request.permission === AccessControl_1.Permission.WRITE || request.permission === AccessControl_1.Permission.DELETE) {
179
+ // Check team membership for write/delete
180
+ if (request.teamId && request.resourceTeamId && request.teamId === request.resourceTeamId) {
181
+ return { allowed: true, reason: 'Same team member with write access' };
182
+ }
183
+ return {
184
+ allowed: false,
185
+ reason: 'Public write/delete requires team membership'
186
+ };
187
+ }
188
+ return { allowed: false, reason: 'Unknown permission type' };
189
+ }
190
+ /**
191
+ * Validate permission grant request
192
+ * Ensures grantor has authority to grant permissions
193
+ */
194
+ async validateGrant(resourceKey, resourcePartition, grantedBy, resourceOwner) {
195
+ // Only owner can grant permissions
196
+ if (grantedBy === resourceOwner) {
197
+ return { allowed: true, reason: 'Resource owner' };
198
+ }
199
+ // Check if grantor has explicit write permission (closest to admin)
200
+ // Note: Permission.ADMIN doesn't exist in the Permission enum
201
+ const hasAdminPerm = await this.accessControlDAO.hasPermission(resourceKey, resourcePartition, grantedBy, AccessControl_1.Permission.WRITE);
202
+ if (hasAdminPerm) {
203
+ return { allowed: true, reason: 'Explicit admin permission' };
204
+ }
205
+ return {
206
+ allowed: false,
207
+ reason: 'Only owner or admin can grant permissions'
208
+ };
209
+ }
210
+ /**
211
+ * Bulk grant permissions to multiple agents
212
+ */
213
+ async grantBulk(resourceKey, resourcePartition, agentIds, permission, grantedBy, ttl) {
214
+ const promises = agentIds.map(agentId => this.accessControlDAO.grant({
215
+ resourceKey,
216
+ resourcePartition,
217
+ agentId,
218
+ permission,
219
+ grantedBy,
220
+ ttl
221
+ }));
222
+ await Promise.all(promises);
223
+ }
224
+ /**
225
+ * Bulk revoke permissions from multiple agents
226
+ */
227
+ async revokeBulk(resourceKey, resourcePartition, agentIds, permission) {
228
+ const promises = agentIds.map(agentId => this.accessControlDAO.revoke(resourceKey, resourcePartition, agentId, permission));
229
+ await Promise.all(promises);
230
+ }
231
+ /**
232
+ * Check if agent has any permission for a resource
233
+ */
234
+ async hasAnyPermission(resourceKey, resourcePartition, agentId) {
235
+ const permissions = await this.accessControlDAO.findByResource(resourceKey, resourcePartition);
236
+ return permissions.some(acl => acl.owner === agentId);
237
+ }
238
+ /**
239
+ * Get all agents with a specific permission for a resource
240
+ */
241
+ async getAgentsWithPermission(resourceKey, resourcePartition, permission) {
242
+ const permissions = await this.accessControlDAO.findByResource(resourceKey, resourcePartition);
243
+ return permissions
244
+ .filter(acl => acl.grantedPermissions?.[permission])
245
+ .map(acl => acl.owner);
246
+ }
247
+ }
248
+ exports.AccessControlService = AccessControlService;
249
+ //# sourceMappingURL=AccessControlService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccessControlService.js","sourceRoot":"","sources":["../../../../src/core/memory/services/AccessControlService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ import { MemoryEntryDAO } from '../dao/MemoryEntryDAO';
2
+ import { MemoryEntry, StoreOptions, RetrieveOptions, DeleteOptions } from '../SwarmMemoryManager';
3
+ import { AccessControl } from '../AccessControl';
4
+ /**
5
+ * MemoryStoreService - Business logic for memory storage operations
6
+ *
7
+ * Handles:
8
+ * - Core store/retrieve/delete operations
9
+ * - Access control permission checking
10
+ * - TTL calculation
11
+ * - Modification tracking for sync
12
+ *
13
+ * Separates business logic from data access (DAO)
14
+ */
15
+ export declare class MemoryStoreService {
16
+ private memoryDAO;
17
+ private accessControl;
18
+ private lastModifiedTimestamps;
19
+ constructor(memoryDAO: MemoryEntryDAO, accessControl: AccessControl);
20
+ /**
21
+ * Store a value in memory with access control
22
+ */
23
+ store(key: string, value: any, options?: StoreOptions): Promise<void>;
24
+ /**
25
+ * Retrieve a value from memory with access control
26
+ */
27
+ retrieve(key: string, options?: RetrieveOptions): Promise<any>;
28
+ /**
29
+ * Query memory entries by pattern with access control
30
+ */
31
+ query(pattern: string, options?: RetrieveOptions): Promise<MemoryEntry[]>;
32
+ /**
33
+ * Delete a memory entry with access control
34
+ */
35
+ delete(key: string, partition?: string, options?: DeleteOptions): Promise<void>;
36
+ /**
37
+ * Clear all entries in a partition
38
+ */
39
+ clear(partition?: string): Promise<void>;
40
+ /**
41
+ * Get last modification timestamp for an entry (for QUIC sync)
42
+ */
43
+ getLastModified(key: string, partition?: string): number | undefined;
44
+ /**
45
+ * Calculate expiration timestamp from TTL
46
+ */
47
+ private calculateExpiresAt;
48
+ /**
49
+ * Track modification timestamp for sync
50
+ */
51
+ private trackModification;
52
+ /**
53
+ * Check write permission for updating entry
54
+ */
55
+ private checkWritePermission;
56
+ /**
57
+ * Check read permission for retrieving entry
58
+ */
59
+ private checkReadPermission;
60
+ /**
61
+ * Check delete permission for removing entry
62
+ */
63
+ private checkDeletePermission;
64
+ /**
65
+ * Filter entries by access control permissions
66
+ */
67
+ private filterByPermissions;
68
+ }
69
+ //# sourceMappingURL=MemoryStoreService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemoryStoreService.d.ts","sourceRoot":"","sources":["../../../../src/core/memory/services/MemoryStoreService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EACL,WAAW,EACX,YAAY,EACZ,eAAe,EACf,aAAa,EAId,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;;;;;;;;;GAUG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,sBAAsB,CAAsB;gBAGlD,SAAS,EAAE,cAAc,EACzB,aAAa,EAAE,aAAa;IAO9B;;OAEG;IACG,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgC/E;;OAEG;IACG,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,GAAG,CAAC;IAgBxE;;OAEG;IACG,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAYnF;;OAEG;IACG,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,GAAE,MAAkB,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAYpG;;OAEG;IACG,KAAK,CAAC,SAAS,GAAE,MAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD;;OAEG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,GAAE,MAAkB,GAAG,MAAM,GAAG,SAAS;IAS/E;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAI1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;OAEG;YACW,oBAAoB;IAqBlC;;OAEG;YACW,mBAAmB;IAsBjC;;OAEG;YACW,qBAAqB;IAsBnC;;OAEG;YACW,mBAAmB;CA+BlC"}
@@ -0,0 +1,214 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MemoryStoreService = void 0;
4
+ const SwarmMemoryManager_1 = require("../SwarmMemoryManager");
5
+ /**
6
+ * MemoryStoreService - Business logic for memory storage operations
7
+ *
8
+ * Handles:
9
+ * - Core store/retrieve/delete operations
10
+ * - Access control permission checking
11
+ * - TTL calculation
12
+ * - Modification tracking for sync
13
+ *
14
+ * Separates business logic from data access (DAO)
15
+ */
16
+ class MemoryStoreService {
17
+ constructor(memoryDAO, accessControl) {
18
+ this.memoryDAO = memoryDAO;
19
+ this.accessControl = accessControl;
20
+ this.lastModifiedTimestamps = new Map();
21
+ }
22
+ /**
23
+ * Store a value in memory with access control
24
+ */
25
+ async store(key, value, options = {}) {
26
+ const partition = options.partition || 'default';
27
+ const owner = options.owner || 'system';
28
+ const accessLevel = options.accessLevel || SwarmMemoryManager_1.AccessLevel.PRIVATE;
29
+ const createdAt = Date.now();
30
+ const expiresAt = this.calculateExpiresAt(options.ttl, createdAt);
31
+ // Check write permission if updating existing entry
32
+ const existing = await this.memoryDAO.findByKey(key, partition);
33
+ if (existing && options.owner) {
34
+ await this.checkWritePermission(existing, options);
35
+ }
36
+ const entry = {
37
+ key,
38
+ value,
39
+ partition,
40
+ createdAt,
41
+ expiresAt,
42
+ owner,
43
+ accessLevel,
44
+ teamId: options.teamId,
45
+ swarmId: options.swarmId
46
+ };
47
+ await this.memoryDAO.insert(entry);
48
+ // Track modification for QUIC sync
49
+ this.trackModification(partition, key, createdAt);
50
+ }
51
+ /**
52
+ * Retrieve a value from memory with access control
53
+ */
54
+ async retrieve(key, options = {}) {
55
+ const partition = options.partition || 'default';
56
+ const entry = await this.memoryDAO.findByKey(key, partition, options.includeExpired);
57
+ if (!entry) {
58
+ return null;
59
+ }
60
+ // Check read permission if agentId provided
61
+ if (options.agentId) {
62
+ await this.checkReadPermission(entry, options);
63
+ }
64
+ return entry.value;
65
+ }
66
+ /**
67
+ * Query memory entries by pattern with access control
68
+ */
69
+ async query(pattern, options = {}) {
70
+ const partition = options.partition || 'default';
71
+ const entries = await this.memoryDAO.findByPattern(pattern, partition, options.includeExpired);
72
+ // Filter by access control if agentId provided
73
+ if (options.agentId) {
74
+ return this.filterByPermissions(entries, options);
75
+ }
76
+ return entries;
77
+ }
78
+ /**
79
+ * Delete a memory entry with access control
80
+ */
81
+ async delete(key, partition = 'default', options = {}) {
82
+ // Check delete permission if agentId provided
83
+ if (options.agentId) {
84
+ const entry = await this.memoryDAO.findByKey(key, partition);
85
+ if (entry) {
86
+ await this.checkDeletePermission(entry, options);
87
+ }
88
+ }
89
+ await this.memoryDAO.deleteByKey(key, partition);
90
+ }
91
+ /**
92
+ * Clear all entries in a partition
93
+ */
94
+ async clear(partition = 'default') {
95
+ await this.memoryDAO.deleteByPartition(partition);
96
+ }
97
+ /**
98
+ * Get last modification timestamp for an entry (for QUIC sync)
99
+ */
100
+ getLastModified(key, partition = 'default') {
101
+ const entryKey = `${partition}:${key}`;
102
+ return this.lastModifiedTimestamps.get(entryKey);
103
+ }
104
+ // ============================================================================
105
+ // Private Helper Methods
106
+ // ============================================================================
107
+ /**
108
+ * Calculate expiration timestamp from TTL
109
+ */
110
+ calculateExpiresAt(ttl, createdAt) {
111
+ return ttl ? createdAt + (ttl * 1000) : undefined;
112
+ }
113
+ /**
114
+ * Track modification timestamp for sync
115
+ */
116
+ trackModification(partition, key, timestamp) {
117
+ const entryKey = `${partition}:${key}`;
118
+ this.lastModifiedTimestamps.set(entryKey, timestamp);
119
+ }
120
+ /**
121
+ * Check write permission for updating entry
122
+ */
123
+ async checkWritePermission(entry, options) {
124
+ if (!entry.owner || !entry.accessLevel || !options.owner) {
125
+ return; // Skip check if missing required fields
126
+ }
127
+ const permCheck = this.accessControl.checkPermission({
128
+ agentId: options.owner,
129
+ resourceOwner: entry.owner,
130
+ accessLevel: entry.accessLevel,
131
+ permission: SwarmMemoryManager_1.Permission.WRITE,
132
+ teamId: options.teamId,
133
+ resourceTeamId: entry.teamId,
134
+ swarmId: options.swarmId,
135
+ resourceSwarmId: entry.swarmId
136
+ });
137
+ if (!permCheck.allowed) {
138
+ throw new SwarmMemoryManager_1.AccessControlError(`Write denied: ${permCheck.reason}`);
139
+ }
140
+ }
141
+ /**
142
+ * Check read permission for retrieving entry
143
+ */
144
+ async checkReadPermission(entry, options) {
145
+ if (!entry.owner || !entry.accessLevel || !options.agentId) {
146
+ return; // Skip check if missing required fields
147
+ }
148
+ const permCheck = this.accessControl.checkPermission({
149
+ agentId: options.agentId,
150
+ resourceOwner: entry.owner,
151
+ accessLevel: entry.accessLevel,
152
+ permission: SwarmMemoryManager_1.Permission.READ,
153
+ teamId: options.teamId,
154
+ resourceTeamId: entry.teamId,
155
+ swarmId: options.swarmId,
156
+ resourceSwarmId: entry.swarmId,
157
+ isSystemAgent: options.isSystemAgent
158
+ });
159
+ if (!permCheck.allowed) {
160
+ throw new SwarmMemoryManager_1.AccessControlError(`Read denied: ${permCheck.reason}`);
161
+ }
162
+ }
163
+ /**
164
+ * Check delete permission for removing entry
165
+ */
166
+ async checkDeletePermission(entry, options) {
167
+ if (!entry.owner || !entry.accessLevel || !options.agentId) {
168
+ return; // Skip check if missing required fields
169
+ }
170
+ const permCheck = this.accessControl.checkPermission({
171
+ agentId: options.agentId,
172
+ resourceOwner: entry.owner,
173
+ accessLevel: entry.accessLevel,
174
+ permission: SwarmMemoryManager_1.Permission.DELETE,
175
+ teamId: options.teamId,
176
+ resourceTeamId: entry.teamId,
177
+ swarmId: options.swarmId,
178
+ resourceSwarmId: entry.swarmId,
179
+ isSystemAgent: options.isSystemAgent
180
+ });
181
+ if (!permCheck.allowed) {
182
+ throw new SwarmMemoryManager_1.AccessControlError(`Delete denied: ${permCheck.reason}`);
183
+ }
184
+ }
185
+ /**
186
+ * Filter entries by access control permissions
187
+ */
188
+ async filterByPermissions(entries, options) {
189
+ const filtered = [];
190
+ for (const entry of entries) {
191
+ if (!entry.owner || !entry.accessLevel || !options.agentId) {
192
+ filtered.push(entry); // Include if missing permission fields
193
+ continue;
194
+ }
195
+ const permCheck = this.accessControl.checkPermission({
196
+ agentId: options.agentId,
197
+ resourceOwner: entry.owner,
198
+ accessLevel: entry.accessLevel,
199
+ permission: SwarmMemoryManager_1.Permission.READ,
200
+ teamId: options.teamId,
201
+ resourceTeamId: entry.teamId,
202
+ swarmId: options.swarmId,
203
+ resourceSwarmId: entry.swarmId,
204
+ isSystemAgent: options.isSystemAgent
205
+ });
206
+ if (permCheck.allowed) {
207
+ filtered.push(entry);
208
+ }
209
+ }
210
+ return filtered;
211
+ }
212
+ }
213
+ exports.MemoryStoreService = MemoryStoreService;
214
+ //# sourceMappingURL=MemoryStoreService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemoryStoreService.js","sourceRoot":"","sources":["../../../../src/core/memory/services/MemoryStoreService.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"base-handler.d.ts","sourceRoot":"","sources":["../../../src/mcp/handlers/base-handler.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE;QACT,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,8BAAsB,WAAW;IAC/B,SAAS,CAAC,cAAc,SAAK;IAE7B;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC;IAEpD;;OAEG;IACH,SAAS,CAAC,iBAAiB,IAAI,MAAM;IAIrC;;OAEG;IACH,SAAS,CAAC,qBAAqB,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,eAAe;IAY/E;;OAEG;IACH,SAAS,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,eAAe;IAYjF;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,IAAI;IAOrE;;OAEG;IACH,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAKlF;;OAEG;cACa,oBAAoB,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,CAAC,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC;CAMpH"}
1
+ {"version":3,"file":"base-handler.d.ts","sourceRoot":"","sources":["../../../src/mcp/handlers/base-handler.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE;QACT,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,8BAAsB,WAAW;IAC/B,SAAS,CAAC,cAAc,SAAK;IAE7B;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC;IAEpD;;OAEG;IACH,SAAS,CAAC,iBAAiB,IAAI,MAAM;IAIrC;;OAEG;IACH,SAAS,CAAC,qBAAqB,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,eAAe;IAY/E;;OAEG;IACH,SAAS,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,eAAe;IAYjF;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,IAAI;IAUrE;;OAEG;IACH,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAKlF;;OAEG;cACa,oBAAoB,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,CAAC,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC;CAMpH"}
@@ -44,7 +44,10 @@ class BaseHandler {
44
44
  * Validate required parameters
45
45
  */
46
46
  validateRequired(args, requiredFields) {
47
- const missing = requiredFields.filter(field => !args[field]);
47
+ if (args === null || args === undefined || typeof args !== 'object' || Array.isArray(args)) {
48
+ throw new Error(`Invalid arguments: expected object, got ${args === null ? 'null' : typeof args}`);
49
+ }
50
+ const missing = requiredFields.filter(field => !(field in args) || args[field] === undefined || args[field] === null);
48
51
  if (missing.length > 0) {
49
52
  throw new Error(`Missing required fields: ${missing.join(', ')}`);
50
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"base-handler.js","sourceRoot":"","sources":["../../../src/mcp/handlers/base-handler.ts"],"names":[],"mappings":";;;AAAA,iEAA2D;AAsB3D,MAAsB,WAAW;IAAjC;QACY,mBAAc,GAAG,CAAC,CAAC;IAuE/B,CAAC;IAhEC;;OAEG;IACO,iBAAiB;QACzB,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,IAAI,8BAAY,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IAChF,CAAC;IAED;;OAEG;IACO,qBAAqB,CAAC,IAAS,EAAE,SAAkB;QAC3D,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI;YACJ,QAAQ,EAAE;gBACR,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE;gBACzB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,SAAS,EAAE,SAAS,IAAI,IAAI,CAAC,iBAAiB,EAAE;aACjD;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,mBAAmB,CAAC,KAAa,EAAE,SAAkB;QAC7D,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK;YACL,QAAQ,EAAE;gBACR,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE;gBACzB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,SAAS,EAAE,SAAS,IAAI,IAAI,CAAC,iBAAiB,EAAE;aACjD;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,gBAAgB,CAAC,IAAS,EAAE,cAAwB;QAC5D,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,4BAA4B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED;;OAEG;IACO,GAAG,CAAC,KAAgC,EAAE,OAAe,EAAE,IAAU;QACzE,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,IAAI,SAAS,MAAM,KAAK,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IAC1G,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,oBAAoB,CAAI,SAA2B;QACjE,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;QACjC,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACpD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IACnC,CAAC;CACF;AAxED,kCAwEC"}
1
+ {"version":3,"file":"base-handler.js","sourceRoot":"","sources":["../../../src/mcp/handlers/base-handler.ts"],"names":[],"mappings":";;;AAAA,iEAA2D;AAsB3D,MAAsB,WAAW;IAAjC;QACY,mBAAc,GAAG,CAAC,CAAC;IA0E/B,CAAC;IAnEC;;OAEG;IACO,iBAAiB;QACzB,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,IAAI,8BAAY,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IAChF,CAAC;IAED;;OAEG;IACO,qBAAqB,CAAC,IAAS,EAAE,SAAkB;QAC3D,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI;YACJ,QAAQ,EAAE;gBACR,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE;gBACzB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,SAAS,EAAE,SAAS,IAAI,IAAI,CAAC,iBAAiB,EAAE;aACjD;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,mBAAmB,CAAC,KAAa,EAAE,SAAkB;QAC7D,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK;YACL,QAAQ,EAAE;gBACR,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE;gBACzB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,SAAS,EAAE,SAAS,IAAI,IAAI,CAAC,iBAAiB,EAAE;aACjD;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,gBAAgB,CAAC,IAAS,EAAE,cAAwB;QAC5D,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3F,MAAM,IAAI,KAAK,CAAC,2CAA2C,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QACrG,CAAC;QACD,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;QACtH,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,4BAA4B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED;;OAEG;IACO,GAAG,CAAC,KAAgC,EAAE,OAAe,EAAE,IAAU;QACzE,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,IAAI,SAAS,MAAM,KAAK,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IAC1G,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,oBAAoB,CAAI,SAA2B;QACjE,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;QACjC,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACpD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IACnC,CAAC;CACF;AA3ED,kCA2EC"}
@@ -11,7 +11,7 @@ import { BaseHandler, HandlerResponse } from '../base-handler.js';
11
11
  import { AgentRegistry } from '../../services/AgentRegistry.js';
12
12
  import { HookExecutor } from '../../services/HookExecutor.js';
13
13
  export interface RegressionRiskAnalyzeArgs {
14
- changeSet: {
14
+ changeSet?: {
15
15
  repository: string;
16
16
  baseBranch: string;
17
17
  compareBranch: string;
@@ -22,6 +22,12 @@ export interface RegressionRiskAnalyzeArgs {
22
22
  changeType: 'added' | 'modified' | 'deleted' | 'renamed';
23
23
  }>;
24
24
  };
25
+ changes?: Array<{
26
+ file: string;
27
+ type: 'add' | 'modify' | 'delete' | 'rename' | 'refactor';
28
+ complexity?: number;
29
+ linesChanged: number;
30
+ }>;
25
31
  analysisConfig?: {
26
32
  depth: 'basic' | 'standard' | 'comprehensive';
27
33
  includeHistoricalData?: boolean;
@@ -137,6 +143,10 @@ export declare class RegressionRiskAnalyzeHandler extends BaseHandler {
137
143
  private hookExecutor;
138
144
  constructor(registry: AgentRegistry, hookExecutor: HookExecutor);
139
145
  handle(args: RegressionRiskAnalyzeArgs): Promise<HandlerResponse>;
146
+ /**
147
+ * Normalize arguments to support both 'changes' and 'changeSet' formats
148
+ */
149
+ private normalizeArgs;
140
150
  /**
141
151
  * Analyze regression risk
142
152
  */
@@ -1 +1 @@
1
- {"version":3,"file":"regression-risk-analyze.d.ts","sourceRoot":"","sources":["../../../../src/mcp/handlers/prediction/regression-risk-analyze.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAG9D,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE;QACT,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,MAAM,CAAC;QACtB,KAAK,CAAC,EAAE,KAAK,CAAC;YACZ,IAAI,EAAE,MAAM,CAAC;YACb,UAAU,EAAE,MAAM,CAAC;YACnB,YAAY,EAAE,MAAM,CAAC;YACrB,UAAU,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;SAC1D,CAAC,CAAC;KACJ,CAAC;IACF,cAAc,CAAC,EAAE;QACf,KAAK,EAAE,OAAO,GAAG,UAAU,GAAG,eAAe,CAAC;QAC9C,qBAAqB,CAAC,EAAE,OAAO,CAAC;QAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,oBAAoB,CAAC,EAAE,OAAO,CAAC;KAChC,CAAC;IACF,YAAY,CAAC,EAAE;QACb,eAAe,EAAE,MAAM,CAAC;QACxB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACzC,CAAC;CACH;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE;QACX,KAAK,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;QAC9C,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,cAAc,EAAE,cAAc,CAAC;IAC/B,eAAe,EAAE,eAAe,CAAC;IACjC,eAAe,EAAE,wBAAwB,EAAE,CAAC;IAC5C,OAAO,EAAE;QACP,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,WAAW,EAAE;QACX,gBAAgB,EAAE,MAAM,CAAC;QACzB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,SAAS,EAAE,OAAO,CAAC;QACnB,aAAa,EAAE,OAAO,CAAC;KACxB,CAAC;IACF,cAAc,EAAE;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,YAAY,GAAG,UAAU,GAAG,cAAc,GAAG,SAAS,GAAG,aAAa,GAAG,mBAAmB,CAAC;IACvG,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,UAAU,GAAG,UAAU,GAAG,YAAY,GAAG,aAAa,CAAC;IAC9D,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,aAAa,EAAE,KAAK,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;QACjD,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IACH,UAAU,EAAE;QACV,gBAAgB,EAAE,MAAM,EAAE,CAAC;QAC3B,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,CAAC;KACvD,CAAC;IACF,kBAAkB,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,gBAAgB,CAAC;CAC1E;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,UAAU,GAAG,UAAU,GAAG,MAAM,GAAG,UAAU,CAAC;IACxD,gBAAgB,EAAE,KAAK,CAAC;QACtB,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,KAAK,GAAG,OAAO,GAAG,YAAY,CAAC;QAC9D,QAAQ,EAAE,WAAW,GAAG,aAAa,GAAG,cAAc,CAAC;QACvD,KAAK,EAAE,MAAM,CAAC;QACd,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;IACH,aAAa,EAAE;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,aAAa,EAAE;QACb,MAAM,EAAE,KAAK,CAAC;YACZ,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,EAAE,CAAC;YAChB,cAAc,EAAE,OAAO,CAAC;YACxB,iBAAiB,EAAE,MAAM,CAAC;SAC3B,CAAC,CAAC;QACH,kBAAkB,EAAE,MAAM,CAAC;KAC5B,CAAC;CACH;AAED,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IACjD,QAAQ,EAAE,SAAS,GAAG,aAAa,GAAG,YAAY,GAAG,YAAY,GAAG,eAAe,CAAC;IACpF,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,qBAAa,4BAA6B,SAAQ,WAAW;IAEzD,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,YAAY;gBADZ,QAAQ,EAAE,aAAa,EACvB,YAAY,EAAE,YAAY;IAK9B,MAAM,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,eAAe,CAAC;IA+CvE;;OAEG;YACW,qBAAqB;IA8CnC;;OAEG;YACW,kBAAkB;IAShC;;OAEG;YACW,WAAW;IAqCzB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgE5B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAS1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IASzB;;OAEG;IACH,OAAO,CAAC,YAAY;IAiBpB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAoB5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAc3B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA6B7B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAuE/B;;OAEG;IACH,OAAO,CAAC,uBAAuB;CA0DhC"}
1
+ {"version":3,"file":"regression-risk-analyze.d.ts","sourceRoot":"","sources":["../../../../src/mcp/handlers/prediction/regression-risk-analyze.ts"],"names":[],"mappings":"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"}