erosolar-cli 1.7.27 → 1.7.29

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 (92) hide show
  1. package/dist/browser/BrowserSessionManager.js +1 -1
  2. package/dist/browser/BrowserSessionManager.js.map +1 -1
  3. package/dist/core/agent.d.ts +3 -3
  4. package/dist/core/agent.d.ts.map +1 -1
  5. package/dist/core/agent.js +57 -4
  6. package/dist/core/agent.js.map +1 -1
  7. package/dist/core/agentRulebook.js +1 -1
  8. package/dist/core/agentRulebook.js.map +1 -1
  9. package/dist/core/contextManager.js +2 -2
  10. package/dist/core/contextManager.js.map +1 -1
  11. package/dist/core/designThoughtCheck.d.ts +196 -0
  12. package/dist/core/designThoughtCheck.d.ts.map +1 -0
  13. package/dist/core/designThoughtCheck.js +287 -0
  14. package/dist/core/designThoughtCheck.js.map +1 -0
  15. package/dist/core/designThoughtCheckEngine.d.ts +58 -0
  16. package/dist/core/designThoughtCheckEngine.d.ts.map +1 -0
  17. package/dist/core/designThoughtCheckEngine.js +358 -0
  18. package/dist/core/designThoughtCheckEngine.js.map +1 -0
  19. package/dist/core/designThoughtCheckIntegration.d.ts +103 -0
  20. package/dist/core/designThoughtCheckIntegration.d.ts.map +1 -0
  21. package/dist/core/designThoughtCheckIntegration.js +207 -0
  22. package/dist/core/designThoughtCheckIntegration.js.map +1 -0
  23. package/dist/core/isolatedVerifier.d.ts +18 -0
  24. package/dist/core/isolatedVerifier.d.ts.map +1 -0
  25. package/dist/core/isolatedVerifier.js +349 -0
  26. package/dist/core/isolatedVerifier.js.map +1 -0
  27. package/dist/core/responseVerifier.d.ts +11 -2
  28. package/dist/core/responseVerifier.d.ts.map +1 -1
  29. package/dist/core/responseVerifier.js +108 -73
  30. package/dist/core/responseVerifier.js.map +1 -1
  31. package/dist/intelligence/testGenerator.js +2 -2
  32. package/dist/intelligence/testGenerator.js.map +1 -1
  33. package/dist/providers/openaiChatCompletionsProvider.js +5 -5
  34. package/dist/providers/openaiChatCompletionsProvider.js.map +1 -1
  35. package/dist/security/active-stack-security.js +2 -2
  36. package/dist/security/active-stack-security.js.map +1 -1
  37. package/dist/shell/bracketedPasteManager.enhanced.d.ts +2 -0
  38. package/dist/shell/bracketedPasteManager.enhanced.d.ts.map +1 -0
  39. package/dist/shell/bracketedPasteManager.enhanced.js +4 -0
  40. package/dist/shell/bracketedPasteManager.enhanced.js.map +1 -0
  41. package/dist/shell/inputProcessor.js +2 -2
  42. package/dist/shell/inputProcessor.js.map +1 -1
  43. package/dist/shell/interactiveShell.d.ts +16 -2
  44. package/dist/shell/interactiveShell.d.ts.map +1 -1
  45. package/dist/shell/interactiveShell.js +81 -22
  46. package/dist/shell/interactiveShell.js.map +1 -1
  47. package/dist/tools/cloudTools.js +2 -2
  48. package/dist/tools/cloudTools.js.map +1 -1
  49. package/dist/tools/devTools.js +2 -2
  50. package/dist/tools/devTools.js.map +1 -1
  51. package/dist/tools/diffUtils.js +22 -2
  52. package/dist/tools/diffUtils.js.map +1 -1
  53. package/dist/tools/fileTools.d.ts.map +1 -1
  54. package/dist/tools/fileTools.js +20 -2
  55. package/dist/tools/fileTools.js.map +1 -1
  56. package/dist/tools/frontendTestingTools.js +1 -1
  57. package/dist/tools/frontendTestingTools.js.map +1 -1
  58. package/dist/tools/globTools.js +1 -1
  59. package/dist/tools/globTools.js.map +1 -1
  60. package/dist/tools/grepTools.js +1 -1
  61. package/dist/tools/grepTools.js.map +1 -1
  62. package/dist/tools/webTools.js +2 -2
  63. package/dist/tools/webTools.js.map +1 -1
  64. package/dist/ui/ShellUIAdapter.d.ts +5 -0
  65. package/dist/ui/ShellUIAdapter.d.ts.map +1 -1
  66. package/dist/ui/ShellUIAdapter.js +30 -7
  67. package/dist/ui/ShellUIAdapter.js.map +1 -1
  68. package/dist/ui/advancedTheme.js +1 -1
  69. package/dist/ui/advancedTheme.js.map +1 -1
  70. package/dist/ui/diffViewer.js +1 -1
  71. package/dist/ui/diffViewer.js.map +1 -1
  72. package/dist/ui/display.js +3 -3
  73. package/dist/ui/display.js.map +1 -1
  74. package/dist/ui/logFormatter.js +1 -1
  75. package/dist/ui/logFormatter.js.map +1 -1
  76. package/dist/ui/outputSummarizer.js +6 -7
  77. package/dist/ui/outputSummarizer.js.map +1 -1
  78. package/dist/ui/persistentPrompt.js +4 -4
  79. package/dist/ui/persistentPrompt.js.map +1 -1
  80. package/dist/ui/tableFormatter.js +4 -4
  81. package/dist/ui/tableFormatter.js.map +1 -1
  82. package/dist/ui/textHighlighter.js +2 -2
  83. package/dist/ui/textHighlighter.js.map +1 -1
  84. package/dist/ui/toolDisplay.d.ts +18 -0
  85. package/dist/ui/toolDisplay.d.ts.map +1 -1
  86. package/dist/ui/toolDisplay.js +922 -6
  87. package/dist/ui/toolDisplay.js.map +1 -1
  88. package/dist/ui/treeVisualizer.js +1 -1
  89. package/dist/ui/treeVisualizer.js.map +1 -1
  90. package/package.json +12 -3
  91. package/scripts/isolated-verification-runner.mjs +364 -0
  92. package/scripts/isolated-verification-wrapper.mjs +276 -0
@@ -0,0 +1,207 @@
1
+ /**
2
+ * Design Thought Check Integration
3
+ *
4
+ * Integrates the design thought check system with the existing agent architecture
5
+ * to automatically validate implementation decisions before execution.
6
+ *
7
+ * @license MIT
8
+ */
9
+ /**
10
+ * Design Thought Check Integration Manager
11
+ *
12
+ * Manages the integration of design thought checks with the agent system,
13
+ * automatically validating implementation decisions before execution.
14
+ */
15
+ export class DesignThoughtCheckIntegration {
16
+ engine;
17
+ options;
18
+ constructor(engine, options = {
19
+ enabled: true,
20
+ minValidationScore: 70,
21
+ blockOnCriticalIssues: true,
22
+ logResults: true,
23
+ provideSuggestions: true
24
+ }) {
25
+ this.engine = engine;
26
+ this.options = {
27
+ enabled: options.enabled ?? true,
28
+ minValidationScore: options.minValidationScore ?? 70,
29
+ blockOnCriticalIssues: options.blockOnCriticalIssues ?? true,
30
+ logResults: options.logResults ?? true,
31
+ provideSuggestions: options.provideSuggestions ?? true
32
+ };
33
+ }
34
+ /**
35
+ * Check if a set of tool calls should be executed based on design validation
36
+ */
37
+ async shouldExecuteToolCalls(intent, approach, toolCalls, agent) {
38
+ if (!this.options.enabled) {
39
+ return { shouldExecute: true, reason: 'Design thought checks disabled' };
40
+ }
41
+ // Perform comprehensive design thought check
42
+ const thoughtCheck = await this.engine.check(intent, approach, toolCalls);
43
+ // Check for critical issues
44
+ if (this.options.blockOnCriticalIssues && thoughtCheck.validation.criticalIssues.length > 0) {
45
+ return {
46
+ shouldExecute: false,
47
+ reason: `Critical design issues detected: ${thoughtCheck.validation.criticalIssues.map(issue => issue.description).join(', ')}`,
48
+ improvements: thoughtCheck.recommendation.requiredChanges,
49
+ thoughtCheck
50
+ };
51
+ }
52
+ // Check validation score
53
+ if (thoughtCheck.validation.score < this.options.minValidationScore) {
54
+ return {
55
+ shouldExecute: false,
56
+ reason: `Design validation score too low: ${thoughtCheck.validation.score}/${this.options.minValidationScore}`,
57
+ improvements: thoughtCheck.recommendation.requiredChanges,
58
+ thoughtCheck
59
+ };
60
+ }
61
+ // Check production readiness
62
+ if (thoughtCheck.productionReadiness < this.options.minValidationScore) {
63
+ return {
64
+ shouldExecute: false,
65
+ reason: `Production readiness too low: ${thoughtCheck.productionReadiness}/${this.options.minValidationScore}`,
66
+ improvements: thoughtCheck.recommendation.recommendedImprovements,
67
+ thoughtCheck
68
+ };
69
+ }
70
+ // Log results if enabled
71
+ if (this.options.logResults) {
72
+ this.logThoughtCheckResults(thoughtCheck, agent);
73
+ }
74
+ return {
75
+ shouldExecute: true,
76
+ reason: `Design validation passed: ${thoughtCheck.validation.score}/100`,
77
+ improvements: this.options.provideSuggestions ? thoughtCheck.recommendation.recommendedImprovements : [],
78
+ thoughtCheck
79
+ };
80
+ }
81
+ /**
82
+ * Get improvement suggestions for a set of tool calls
83
+ */
84
+ async getImprovementSuggestions(intent, approach, toolCalls) {
85
+ const thoughtCheck = await this.engine.check(intent, approach, toolCalls, {
86
+ exploreAlternatives: true,
87
+ assessProductionReadiness: true
88
+ });
89
+ return {
90
+ suggestions: [
91
+ ...thoughtCheck.recommendation.requiredChanges,
92
+ ...thoughtCheck.recommendation.recommendedImprovements
93
+ ],
94
+ alternatives: thoughtCheck.alternatives,
95
+ risks: thoughtCheck.risks
96
+ };
97
+ }
98
+ /**
99
+ * Validate a specific implementation approach
100
+ */
101
+ async validateApproach(intent, approach, toolCalls) {
102
+ const thoughtCheck = await this.engine.check(intent, approach, toolCalls);
103
+ return {
104
+ isValid: thoughtCheck.recommendation.verdict === 'approve' || thoughtCheck.recommendation.verdict === 'approve-with-changes',
105
+ score: thoughtCheck.validation.score,
106
+ criticalIssues: thoughtCheck.validation.criticalIssues.map(issue => issue.description),
107
+ warnings: thoughtCheck.validation.warnings.map(warning => warning.description),
108
+ suggestions: thoughtCheck.validation.suggestions.map(suggestion => suggestion.description)
109
+ };
110
+ }
111
+ /**
112
+ * Compare multiple implementation approaches
113
+ */
114
+ async compareApproaches(intent, approaches) {
115
+ const results = [];
116
+ for (const approach of approaches) {
117
+ const thoughtCheck = await this.engine.check(intent, approach.description, approach.toolCalls);
118
+ results.push({
119
+ name: approach.name,
120
+ description: approach.description,
121
+ validationScore: thoughtCheck.validation.score,
122
+ productionReadiness: thoughtCheck.productionReadiness,
123
+ criticalIssues: thoughtCheck.validation.criticalIssues.length,
124
+ recommendation: thoughtCheck.recommendation.verdict
125
+ });
126
+ }
127
+ // Sort by validation score (descending)
128
+ return results.sort((a, b) => b.validationScore - a.validationScore);
129
+ }
130
+ /**
131
+ * Log thought check results
132
+ */
133
+ logThoughtCheckResults(thoughtCheck, agent) {
134
+ const logEntry = {
135
+ timestamp: new Date().toISOString(),
136
+ thoughtCheckId: thoughtCheck.id,
137
+ intent: thoughtCheck.originalIntent,
138
+ validationScore: thoughtCheck.validation.score,
139
+ productionReadiness: thoughtCheck.productionReadiness,
140
+ criticalIssues: thoughtCheck.validation.criticalIssues.length,
141
+ warnings: thoughtCheck.validation.warnings.length,
142
+ suggestions: thoughtCheck.validation.suggestions.length,
143
+ recommendation: thoughtCheck.recommendation.verdict,
144
+ confidence: thoughtCheck.recommendation.confidence
145
+ };
146
+ // Log to agent's logging system if available
147
+ if (agent.logger) {
148
+ agent.logger.info('Design thought check completed', logEntry);
149
+ }
150
+ // Also log to console for visibility
151
+ console.log(`🧠 Design Thought Check: ${thoughtCheck.validation.score}/100 | ${thoughtCheck.recommendation.verdict} | ${thoughtCheck.originalIntent.substring(0, 50)}...`);
152
+ }
153
+ /**
154
+ * Update integration options
155
+ */
156
+ updateOptions(newOptions) {
157
+ this.options = { ...this.options, ...newOptions };
158
+ }
159
+ /**
160
+ * Get current integration status
161
+ */
162
+ getStatus() {
163
+ // This would track actual metrics in a real implementation
164
+ return {
165
+ enabled: this.options.enabled,
166
+ minValidationScore: this.options.minValidationScore,
167
+ blockOnCriticalIssues: this.options.blockOnCriticalIssues,
168
+ checksPerformed: 0, // Would be tracked in real implementation
169
+ averageScore: 0 // Would be tracked in real implementation
170
+ };
171
+ }
172
+ }
173
+ /**
174
+ * Factory function to create design thought check integration
175
+ */
176
+ export function createDesignThoughtCheckIntegration(options) {
177
+ // Import and create the engine
178
+ // In a real implementation, this would import the actual engine
179
+ const engine = {}; // Placeholder
180
+ return new DesignThoughtCheckIntegration(engine, options);
181
+ }
182
+ /**
183
+ * Decorator for agent methods to automatically perform design thought checks
184
+ */
185
+ export function withDesignThoughtCheck(integration) {
186
+ return function (target, propertyName, descriptor) {
187
+ const method = descriptor.value;
188
+ descriptor.value = async function (...args) {
189
+ // Extract intent, approach, and tool calls from arguments
190
+ // This would need to be adapted based on the actual method signature
191
+ const [intent, approach, toolCalls] = args;
192
+ if (toolCalls && Array.isArray(toolCalls)) {
193
+ const shouldExecute = await integration.shouldExecuteToolCalls(intent, approach, toolCalls, this);
194
+ if (!shouldExecute.shouldExecute) {
195
+ throw new Error(`Design validation failed: ${shouldExecute.reason}`);
196
+ }
197
+ // Log improvements if any
198
+ if (shouldExecute.improvements && shouldExecute.improvements.length > 0) {
199
+ console.log('💡 Design improvements suggested:', shouldExecute.improvements);
200
+ }
201
+ }
202
+ return method.apply(this, args);
203
+ };
204
+ return descriptor;
205
+ };
206
+ }
207
+ //# sourceMappingURL=designThoughtCheckIntegration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"designThoughtCheckIntegration.js","sourceRoot":"","sources":["../../src/core/designThoughtCheckIntegration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Isolated Verification Runner
4
+ *
5
+ * This script runs in a completely separate Node.js process to verify
6
+ * assistant responses. It receives verification requests via stdin and
7
+ * outputs results via stdout.
8
+ *
9
+ * This ensures verification is completely isolated from the main CLI process:
10
+ * - Separate memory space
11
+ * - Separate event loop
12
+ * - Independent error handling
13
+ * - No shared state with main process
14
+ *
15
+ * @license MIT
16
+ */
17
+ export {};
18
+ //# sourceMappingURL=isolatedVerifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isolatedVerifier.d.ts","sourceRoot":"","sources":["../../src/core/isolatedVerifier.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;GAcG"}
@@ -0,0 +1,349 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Isolated Verification Runner
4
+ *
5
+ * This script runs in a completely separate Node.js process to verify
6
+ * assistant responses. It receives verification requests via stdin and
7
+ * outputs results via stdout.
8
+ *
9
+ * This ensures verification is completely isolated from the main CLI process:
10
+ * - Separate memory space
11
+ * - Separate event loop
12
+ * - Independent error handling
13
+ * - No shared state with main process
14
+ *
15
+ * @license MIT
16
+ */
17
+ import { createProvider } from '../providers/providerFactory.js';
18
+ import { exec } from 'node:child_process';
19
+ import { promisify } from 'node:util';
20
+ const execAsync = promisify(exec);
21
+ // ============================================================================
22
+ // CLAIM EXTRACTION
23
+ // ============================================================================
24
+ const EXTRACT_CLAIMS_PROMPT = `Extract ALL verifiable claims from this AI assistant response.
25
+
26
+ RESPONSE:
27
+ ---
28
+ {RESPONSE}
29
+ ---
30
+
31
+ CONTEXT: {CONTEXT}
32
+ WORKING_DIR: {WORKING_DIR}
33
+
34
+ For each claim, determine:
35
+ 1. What specific assertion is being made
36
+ 2. Category: file_op (created/modified/deleted files), code (compiles/tests pass), command (executed successfully), state (something changed), behavior (feature works), fact (verifiable truth)
37
+ 3. How it can be verified (shell command, file check, etc.)
38
+ 4. Priority: critical (must verify), high (should verify), medium (nice to verify), low (optional)
39
+
40
+ Return JSON array:
41
+ [{
42
+ "id": "c1",
43
+ "statement": "the specific claim",
44
+ "category": "file_op|code|command|state|behavior|fact",
45
+ "verifiable": true,
46
+ "priority": "critical|high|medium|low",
47
+ "context": {"path": "/path/if/relevant", "command": "if relevant"}
48
+ }]
49
+
50
+ Output ONLY valid JSON array.`;
51
+ async function extractClaims(response, workingDir, conversationHistory, llmQuery) {
52
+ try {
53
+ const prompt = EXTRACT_CLAIMS_PROMPT
54
+ .replace('{RESPONSE}', response.slice(0, 8000))
55
+ .replace('{CONTEXT}', conversationHistory.slice(-3).join('\n') || '')
56
+ .replace('{WORKING_DIR}', workingDir);
57
+ const result = await llmQuery(prompt);
58
+ const match = result.match(/\[[\s\S]*\]/);
59
+ if (match) {
60
+ return JSON.parse(match[0]);
61
+ }
62
+ }
63
+ catch {
64
+ // Fall through
65
+ }
66
+ return [];
67
+ }
68
+ // ============================================================================
69
+ // TEST GENERATION
70
+ // ============================================================================
71
+ const GENERATE_TESTS_PROMPT = `Generate isolated runtime tests for these claims.
72
+
73
+ CLAIMS:
74
+ {CLAIMS}
75
+
76
+ WORKING_DIR: {WORKING_DIR}
77
+ PLATFORM: {PLATFORM}
78
+
79
+ For each claim, generate a test that verifies it using:
80
+ - Shell commands (for file checks, git status, etc.)
81
+ - Expected output patterns
82
+
83
+ Return JSON array:
84
+ [{
85
+ "id": "test-1",
86
+ "description": "what we're testing",
87
+ "shellCommands": ["ls -la path", "cat file"],
88
+ "expectedOutputs": ["pattern1", "pattern2"],
89
+ "expectedBehavior": "description for LLM assessment",
90
+ "timeout": 30000
91
+ }]
92
+
93
+ Use READ-ONLY commands only. No destructive operations.
94
+ Output ONLY valid JSON array.`;
95
+ async function generateTests(claims, workingDir, llmQuery) {
96
+ if (claims.length === 0)
97
+ return [];
98
+ try {
99
+ const prompt = GENERATE_TESTS_PROMPT
100
+ .replace('{CLAIMS}', JSON.stringify(claims.slice(0, 10)))
101
+ .replace('{WORKING_DIR}', workingDir)
102
+ .replace('{PLATFORM}', process.platform);
103
+ const result = await llmQuery(prompt);
104
+ const match = result.match(/\[[\s\S]*\]/);
105
+ if (match) {
106
+ return JSON.parse(match[0]);
107
+ }
108
+ }
109
+ catch {
110
+ // Fall through to basic tests
111
+ }
112
+ // Fallback: generate basic tests
113
+ return claims.filter(c => c.verifiable && (c.priority === 'critical' || c.priority === 'high')).map((c, i) => {
114
+ const test = {
115
+ id: `test-${i}`,
116
+ description: c.statement,
117
+ shellCommands: [],
118
+ expectedBehavior: c.statement,
119
+ timeout: 30000
120
+ };
121
+ // Add basic verification based on category
122
+ if (c.category === 'file_op' && c.context['path']) {
123
+ test.shellCommands = [`test -f "${c.context['path']}" && echo "EXISTS" || echo "NOT_FOUND"`];
124
+ test.expectedOutputs = ['EXISTS'];
125
+ }
126
+ else if (c.category === 'code') {
127
+ test.shellCommands = ['npm run build 2>&1 | tail -5'];
128
+ }
129
+ return test;
130
+ });
131
+ }
132
+ // ============================================================================
133
+ // TEST EXECUTION
134
+ // ============================================================================
135
+ async function runShellCommand(cmd, cwd) {
136
+ // Safety check - block dangerous commands
137
+ const dangerous = [/\brm\s/i, /rmdir/i, /sudo/i, /chmod\s*7/i, /eval\s*\(/i, /DROP\s+TABLE/i, /DELETE\s+FROM/i];
138
+ for (const p of dangerous) {
139
+ if (p.test(cmd))
140
+ return { ok: false, out: `Blocked dangerous command: ${p.source}` };
141
+ }
142
+ try {
143
+ const { stdout, stderr } = await execAsync(cmd, { cwd, timeout: 30000 });
144
+ return { ok: true, out: stdout + stderr };
145
+ }
146
+ catch (e) {
147
+ return { ok: false, out: e instanceof Error ? e.message : 'Command failed' };
148
+ }
149
+ }
150
+ async function runTest(test, cwd, llmQuery) {
151
+ const result = {
152
+ test,
153
+ success: false,
154
+ output: '',
155
+ errors: '',
156
+ matchedPatterns: [],
157
+ unmatchedPatterns: []
158
+ };
159
+ try {
160
+ // Run shell commands
161
+ if (test.shellCommands && test.shellCommands.length > 0) {
162
+ for (const cmd of test.shellCommands) {
163
+ const shellResult = await runShellCommand(cmd, cwd);
164
+ result.output += `$ ${cmd}\n${shellResult.out}\n`;
165
+ if (!shellResult.ok) {
166
+ result.errors += `${shellResult.out}\n`;
167
+ }
168
+ }
169
+ }
170
+ // Check expected output patterns
171
+ if (test.expectedOutputs) {
172
+ for (const pattern of test.expectedOutputs) {
173
+ if (result.output.includes(pattern) || new RegExp(pattern, 'i').test(result.output)) {
174
+ result.matchedPatterns.push(pattern);
175
+ }
176
+ else {
177
+ result.unmatchedPatterns.push(pattern);
178
+ }
179
+ }
180
+ }
181
+ // LLM assessment of behavior
182
+ if (test.expectedBehavior) {
183
+ const assessPrompt = `Assess if this output demonstrates the expected behavior.
184
+
185
+ EXPECTED: ${test.expectedBehavior}
186
+
187
+ OUTPUT:
188
+ ---
189
+ ${result.output.slice(0, 4000)}
190
+ ---
191
+
192
+ Return JSON: {"matches": true/false, "confidence": 0-100, "reasoning": "explanation"}`;
193
+ try {
194
+ const assessment = await llmQuery(assessPrompt);
195
+ const match = assessment.match(/\{[\s\S]*\}/);
196
+ if (match) {
197
+ const parsed = JSON.parse(match[0]);
198
+ result.llmAssessment = `${parsed.matches ? '✅' : '❌'} [${parsed.confidence}%] ${parsed.reasoning}`;
199
+ if (!parsed.matches || parsed.confidence < 70) {
200
+ result.unmatchedPatterns.push(`behavior: ${test.expectedBehavior}`);
201
+ }
202
+ else {
203
+ result.matchedPatterns.push(`behavior: ${test.expectedBehavior}`);
204
+ }
205
+ }
206
+ }
207
+ catch {
208
+ result.llmAssessment = 'LLM assessment failed';
209
+ }
210
+ }
211
+ // Determine success
212
+ result.success = result.unmatchedPatterns.length === 0 &&
213
+ (result.matchedPatterns.length > 0 || (!test.expectedOutputs?.length && !test.expectedBehavior));
214
+ }
215
+ catch (err) {
216
+ result.errors = err instanceof Error ? err.message : 'Unknown error';
217
+ }
218
+ return result;
219
+ }
220
+ // ============================================================================
221
+ // MAIN VERIFICATION
222
+ // ============================================================================
223
+ async function verify(request) {
224
+ const timestamp = new Date().toISOString();
225
+ const id = `verify-${Date.now()}`;
226
+ // Create LLM query function using isolated provider
227
+ const provider = createProvider({
228
+ provider: request.provider,
229
+ model: request.model,
230
+ });
231
+ const llmQuery = async (prompt) => {
232
+ const response = await provider.generate([{ role: 'user', content: prompt }], [] // No tools for verification queries
233
+ );
234
+ if (response.type === 'message' && response.content) {
235
+ return response.content;
236
+ }
237
+ return '';
238
+ };
239
+ // Extract claims
240
+ const claims = await extractClaims(request.response, request.workingDirectory, request.conversationHistory, llmQuery);
241
+ if (claims.length === 0) {
242
+ return {
243
+ responseId: id,
244
+ timestamp,
245
+ claims: [],
246
+ results: [],
247
+ summary: { total: 0, verified: 0, failed: 0, inconclusive: 0 },
248
+ overallVerdict: 'unverified',
249
+ trustScore: 50
250
+ };
251
+ }
252
+ // Generate tests
253
+ const tests = await generateTests(claims, request.workingDirectory, llmQuery);
254
+ // Run tests
255
+ const testResults = [];
256
+ for (const test of tests) {
257
+ const result = await runTest(test, request.workingDirectory, llmQuery);
258
+ testResults.push(result);
259
+ }
260
+ // Map results to claims
261
+ const results = claims.map((claim, i) => {
262
+ const testResult = testResults[i];
263
+ if (!testResult) {
264
+ return {
265
+ claim,
266
+ verified: false,
267
+ confidence: 'low',
268
+ evidence: 'No test generated',
269
+ method: 'skip',
270
+ timestamp
271
+ };
272
+ }
273
+ return {
274
+ claim,
275
+ verified: testResult.success,
276
+ confidence: testResult.success ? 'high' : (testResult.matchedPatterns.length > 0 ? 'medium' : 'low'),
277
+ evidence: testResult.success
278
+ ? `Verified: ${testResult.matchedPatterns.join(', ')}`
279
+ : `Failed: ${testResult.unmatchedPatterns.join(', ')}`,
280
+ method: 'isolated-process',
281
+ reasoning: testResult.llmAssessment,
282
+ executedCode: (testResult.test.shellCommands || []).join('\n'),
283
+ rawOutput: testResult.output.slice(0, 2000),
284
+ error: testResult.errors || undefined,
285
+ timestamp
286
+ };
287
+ });
288
+ // Calculate summary
289
+ const verified = results.filter(r => r.verified).length;
290
+ const failed = results.filter(r => !r.verified && r.confidence === 'high').length;
291
+ const inconclusive = results.filter(r => !r.verified && r.confidence !== 'high').length;
292
+ // Determine verdict
293
+ let overallVerdict;
294
+ if (failed > 0) {
295
+ overallVerdict = 'contradicted';
296
+ }
297
+ else if (verified === claims.length && claims.length > 0) {
298
+ overallVerdict = 'verified';
299
+ }
300
+ else if (verified > 0) {
301
+ overallVerdict = 'partially_verified';
302
+ }
303
+ else {
304
+ overallVerdict = 'unverified';
305
+ }
306
+ const trustScore = claims.length > 0
307
+ ? Math.round((verified / claims.length) * 100)
308
+ : 50;
309
+ return {
310
+ responseId: id,
311
+ timestamp,
312
+ claims,
313
+ results,
314
+ summary: { total: claims.length, verified, failed, inconclusive },
315
+ overallVerdict,
316
+ trustScore
317
+ };
318
+ }
319
+ // ============================================================================
320
+ // PROCESS ENTRY POINT
321
+ // ============================================================================
322
+ async function main() {
323
+ // Read request from stdin
324
+ let input = '';
325
+ process.stdin.setEncoding('utf8');
326
+ for await (const chunk of process.stdin) {
327
+ input += chunk;
328
+ }
329
+ try {
330
+ const request = JSON.parse(input);
331
+ if (request.type !== 'verify') {
332
+ throw new Error(`Unknown request type: ${request.type}`);
333
+ }
334
+ const report = await verify(request);
335
+ // Output result as JSON to stdout
336
+ process.stdout.write(JSON.stringify(report));
337
+ process.exit(0);
338
+ }
339
+ catch (error) {
340
+ // Output error as JSON
341
+ process.stdout.write(JSON.stringify({
342
+ error: true,
343
+ message: error instanceof Error ? error.message : 'Unknown error'
344
+ }));
345
+ process.exit(1);
346
+ }
347
+ }
348
+ main();
349
+ //# sourceMappingURL=isolatedVerifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isolatedVerifier.js","sourceRoot":"","sources":["../../src/core/isolatedVerifier.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,8 @@ export interface IsolatedRuntimeResult {
30
30
  export interface VerificationContext {
31
31
  workingDirectory: string;
32
32
  conversationHistory?: string[];
33
+ provider: string;
34
+ model: string;
33
35
  llmVerifier?: (prompt: string) => Promise<string>;
34
36
  }
35
37
  export interface Claim {
@@ -71,8 +73,15 @@ export interface VerificationReport {
71
73
  */
72
74
  export declare function runIsolatedTest(test: IsolatedRuntimeTest, cwd: string, llmVerifier?: (prompt: string) => Promise<string>): Promise<IsolatedRuntimeResult>;
73
75
  /**
74
- * Verify an assistant response using isolated runtime tests.
75
- * This is the main entry point for verification.
76
+ * Verify an assistant response using a completely isolated process.
77
+ *
78
+ * This spawns a separate Node.js process to run all verification:
79
+ * - Separate memory space from main CLI
80
+ * - Separate event loop
81
+ * - Independent error handling
82
+ * - No shared state
83
+ *
84
+ * This ensures verification cannot interfere with the main process and vice versa.
76
85
  */
77
86
  export declare function verifyResponse(response: string, ctx: VerificationContext, responseId?: string): Promise<VerificationReport>;
78
87
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"responseVerifier.d.ts","sourceRoot":"","sources":["../../src/core/responseVerifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"responseVerifier.d.ts","sourceRoot":"","sources":["../../src/core/responseVerifier.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAaH,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IAEd,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,OAAO,EAAE,uBAAuB,EAAE,CAAC;IACnC,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,cAAc,EAAE,UAAU,GAAG,oBAAoB,GAAG,cAAc,GAAG,YAAY,CAAC;IAClF,UAAU,EAAE,MAAM,CAAC;CACpB;AAgHD;;GAEG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,mBAAmB,EACzB,GAAG,EAAE,MAAM,EACX,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GAChD,OAAO,CAAC,qBAAqB,CAAC,CAwGhC;AA4ID;;;;;;;;;;GAUG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,mBAAmB,EACxB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,kBAAkB,CAAC,CAwH7B;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,CA+B3E;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,mBAAmB,GACvB,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAoBlD"}