erosolar-cli 1.7.14 → 1.7.16
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.
- package/dist/core/responseVerifier.d.ts +79 -0
- package/dist/core/responseVerifier.d.ts.map +1 -0
- package/dist/core/responseVerifier.js +443 -0
- package/dist/core/responseVerifier.js.map +1 -0
- package/dist/shell/interactiveShell.d.ts +10 -0
- package/dist/shell/interactiveShell.d.ts.map +1 -1
- package/dist/shell/interactiveShell.js +80 -0
- package/dist/shell/interactiveShell.js.map +1 -1
- package/dist/ui/ShellUIAdapter.d.ts +3 -0
- package/dist/ui/ShellUIAdapter.d.ts.map +1 -1
- package/dist/ui/ShellUIAdapter.js +4 -10
- package/dist/ui/ShellUIAdapter.js.map +1 -1
- package/dist/ui/persistentPrompt.d.ts +4 -0
- package/dist/ui/persistentPrompt.d.ts.map +1 -1
- package/dist/ui/persistentPrompt.js +10 -11
- package/dist/ui/persistentPrompt.js.map +1 -1
- package/package.json +1 -1
- package/dist/bin/core/agent.js +0 -362
- package/dist/bin/core/agentProfileManifest.js +0 -187
- package/dist/bin/core/agentProfiles.js +0 -34
- package/dist/bin/core/agentRulebook.js +0 -135
- package/dist/bin/core/agentSchemaLoader.js +0 -233
- package/dist/bin/core/contextManager.js +0 -412
- package/dist/bin/core/contextWindow.js +0 -122
- package/dist/bin/core/customCommands.js +0 -80
- package/dist/bin/core/errors/apiKeyErrors.js +0 -114
- package/dist/bin/core/errors/errorTypes.js +0 -340
- package/dist/bin/core/errors/safetyValidator.js +0 -304
- package/dist/bin/core/errors.js +0 -32
- package/dist/bin/core/modelDiscovery.js +0 -755
- package/dist/bin/core/preferences.js +0 -224
- package/dist/bin/core/schemaValidator.js +0 -92
- package/dist/bin/core/secretStore.js +0 -199
- package/dist/bin/core/sessionStore.js +0 -187
- package/dist/bin/core/toolRuntime.js +0 -290
- package/dist/bin/core/types.js +0 -1
- package/dist/bin/shell/bracketedPasteManager.js +0 -350
- package/dist/bin/shell/fileChangeTracker.js +0 -65
- package/dist/bin/shell/interactiveShell.js +0 -2908
- package/dist/bin/shell/liveStatus.js +0 -78
- package/dist/bin/shell/shellApp.js +0 -290
- package/dist/bin/shell/systemPrompt.js +0 -60
- package/dist/bin/shell/updateManager.js +0 -108
- package/dist/bin/ui/ShellUIAdapter.js +0 -459
- package/dist/bin/ui/UnifiedUIController.js +0 -183
- package/dist/bin/ui/animation/AnimationScheduler.js +0 -430
- package/dist/bin/ui/codeHighlighter.js +0 -854
- package/dist/bin/ui/designSystem.js +0 -121
- package/dist/bin/ui/display.js +0 -1222
- package/dist/bin/ui/interrupts/InterruptManager.js +0 -437
- package/dist/bin/ui/layout.js +0 -139
- package/dist/bin/ui/orchestration/StatusOrchestrator.js +0 -403
- package/dist/bin/ui/outputMode.js +0 -38
- package/dist/bin/ui/persistentPrompt.js +0 -183
- package/dist/bin/ui/richText.js +0 -338
- package/dist/bin/ui/shortcutsHelp.js +0 -87
- package/dist/bin/ui/telemetry/UITelemetry.js +0 -443
- package/dist/bin/ui/textHighlighter.js +0 -210
- package/dist/bin/ui/theme.js +0 -116
- package/dist/bin/ui/toolDisplay.js +0 -423
- package/dist/bin/ui/toolDisplayAdapter.js +0 -357
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI Response Verification System
|
|
3
|
+
*
|
|
4
|
+
* Automatically verifies assistant claims by:
|
|
5
|
+
* 1. Extracting verifiable claims from responses
|
|
6
|
+
* 2. Generating runtime verification tests
|
|
7
|
+
* 3. Executing tests to verify claims
|
|
8
|
+
* 4. Reporting verification results
|
|
9
|
+
*
|
|
10
|
+
* @license MIT
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Types of claims that can be verified
|
|
14
|
+
*/
|
|
15
|
+
export type ClaimType = 'file_created' | 'file_modified' | 'file_deleted' | 'command_executed' | 'code_compiles' | 'tests_pass' | 'content_contains' | 'dependency_installed' | 'service_running' | 'url_accessible' | 'git_committed' | 'package_published';
|
|
16
|
+
/**
|
|
17
|
+
* A verifiable claim extracted from assistant response
|
|
18
|
+
*/
|
|
19
|
+
export interface VerifiableClaim {
|
|
20
|
+
type: ClaimType;
|
|
21
|
+
description: string;
|
|
22
|
+
evidence: string;
|
|
23
|
+
params: {
|
|
24
|
+
path?: string;
|
|
25
|
+
command?: string;
|
|
26
|
+
hash?: string;
|
|
27
|
+
version?: string;
|
|
28
|
+
count?: number;
|
|
29
|
+
[key: string]: unknown;
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Result of verifying a claim
|
|
34
|
+
*/
|
|
35
|
+
export interface ClaimVerificationResult {
|
|
36
|
+
claim: VerifiableClaim;
|
|
37
|
+
verified: boolean;
|
|
38
|
+
confidence: 'high' | 'medium' | 'low';
|
|
39
|
+
evidence: string;
|
|
40
|
+
error?: string;
|
|
41
|
+
timestamp: string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Overall verification report
|
|
45
|
+
*/
|
|
46
|
+
export interface VerificationReport {
|
|
47
|
+
responseId: string;
|
|
48
|
+
timestamp: string;
|
|
49
|
+
claims: VerifiableClaim[];
|
|
50
|
+
results: ClaimVerificationResult[];
|
|
51
|
+
summary: {
|
|
52
|
+
total: number;
|
|
53
|
+
verified: number;
|
|
54
|
+
failed: number;
|
|
55
|
+
inconclusive: number;
|
|
56
|
+
};
|
|
57
|
+
overallVerdict: 'verified' | 'partially_verified' | 'unverified' | 'contradicted';
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Extract verifiable claims from an assistant response
|
|
61
|
+
*/
|
|
62
|
+
export declare function extractClaims(response: string): VerifiableClaim[];
|
|
63
|
+
/**
|
|
64
|
+
* Generate a verification test for a claim
|
|
65
|
+
*/
|
|
66
|
+
export declare function generateVerificationTest(claim: VerifiableClaim): () => Promise<ClaimVerificationResult>;
|
|
67
|
+
/**
|
|
68
|
+
* Verify all claims in an assistant response
|
|
69
|
+
*/
|
|
70
|
+
export declare function verifyResponse(response: string, responseId?: string): Promise<VerificationReport>;
|
|
71
|
+
/**
|
|
72
|
+
* Format a verification report for display
|
|
73
|
+
*/
|
|
74
|
+
export declare function formatVerificationReport(report: VerificationReport): string;
|
|
75
|
+
/**
|
|
76
|
+
* Quick verification - returns true if response claims are valid
|
|
77
|
+
*/
|
|
78
|
+
export declare function quickVerify(response: string): Promise<boolean>;
|
|
79
|
+
//# sourceMappingURL=responseVerifier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responseVerifier.d.ts","sourceRoot":"","sources":["../../src/core/responseVerifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AASH;;GAEG;AACH,MAAM,MAAM,SAAS,GACjB,cAAc,GACd,eAAe,GACf,cAAc,GACd,kBAAkB,GAClB,eAAe,GACf,YAAY,GACZ,kBAAkB,GAClB,sBAAsB,GACtB,iBAAiB,GACjB,gBAAgB,GAChB,eAAe,GACf,mBAAmB,CAAC;AAExB;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,eAAe,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,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,YAAY,GAAG,cAAc,CAAC;CACnF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,EAAE,CAsJjE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,OAAO,CAAC,uBAAuB,CAAC,CAqMvG;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,kBAAkB,CAAC,CAiD7B;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAuC3E;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGpE"}
|
|
@@ -0,0 +1,443 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI Response Verification System
|
|
3
|
+
*
|
|
4
|
+
* Automatically verifies assistant claims by:
|
|
5
|
+
* 1. Extracting verifiable claims from responses
|
|
6
|
+
* 2. Generating runtime verification tests
|
|
7
|
+
* 3. Executing tests to verify claims
|
|
8
|
+
* 4. Reporting verification results
|
|
9
|
+
*
|
|
10
|
+
* @license MIT
|
|
11
|
+
*/
|
|
12
|
+
import { exec } from 'node:child_process';
|
|
13
|
+
import { promisify } from 'node:util';
|
|
14
|
+
import * as fs from 'node:fs/promises';
|
|
15
|
+
import * as path from 'node:path';
|
|
16
|
+
const execAsync = promisify(exec);
|
|
17
|
+
/**
|
|
18
|
+
* Extract verifiable claims from an assistant response
|
|
19
|
+
*/
|
|
20
|
+
export function extractClaims(response) {
|
|
21
|
+
const claims = [];
|
|
22
|
+
// Pattern: File creation claims
|
|
23
|
+
// "I created file X", "Created X", "Wrote to X", "I've written X"
|
|
24
|
+
const fileCreationPatterns = [
|
|
25
|
+
/(?:I\s+)?(?:created|wrote|written|generated|added)\s+(?:a\s+)?(?:new\s+)?(?:file\s+)?[`"']?([^\s`"']+\.[a-zA-Z]+)[`"']?/gi,
|
|
26
|
+
/(?:File|Created)\s+[`"']?([^\s`"']+\.[a-zA-Z]+)[`"']?/gi,
|
|
27
|
+
];
|
|
28
|
+
for (const pattern of fileCreationPatterns) {
|
|
29
|
+
let match;
|
|
30
|
+
while ((match = pattern.exec(response)) !== null) {
|
|
31
|
+
const filePath = match[1];
|
|
32
|
+
if (filePath && !claims.some(c => c.type === 'file_created' && c.params.path === filePath)) {
|
|
33
|
+
claims.push({
|
|
34
|
+
type: 'file_created',
|
|
35
|
+
description: `File ${filePath} was created`,
|
|
36
|
+
evidence: match[0],
|
|
37
|
+
params: { path: filePath }
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
// Pattern: File modification claims
|
|
43
|
+
// "I modified X", "Updated X", "Changed X", "Edited X"
|
|
44
|
+
const fileModPatterns = [
|
|
45
|
+
/(?:I\s+)?(?:modified|updated|changed|edited|fixed)\s+[`"']?([^\s`"']+\.[a-zA-Z]+)[`"']?/gi,
|
|
46
|
+
/(?:Updated|Modified|Edited)\s+[`"']?([^\s`"']+\.[a-zA-Z]+)[`"']?/gi,
|
|
47
|
+
];
|
|
48
|
+
for (const pattern of fileModPatterns) {
|
|
49
|
+
let match;
|
|
50
|
+
while ((match = pattern.exec(response)) !== null) {
|
|
51
|
+
const filePath = match[1];
|
|
52
|
+
if (filePath && !claims.some(c => c.params.path === filePath)) {
|
|
53
|
+
claims.push({
|
|
54
|
+
type: 'file_modified',
|
|
55
|
+
description: `File ${filePath} was modified`,
|
|
56
|
+
evidence: match[0],
|
|
57
|
+
params: { path: filePath }
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// Pattern: Command execution claims
|
|
63
|
+
// "I ran X", "Executed X", "Running X completed"
|
|
64
|
+
const cmdPatterns = [
|
|
65
|
+
/(?:I\s+)?(?:ran|executed|run)\s+`([^`]+)`/gi,
|
|
66
|
+
/(?:Running|Executed)\s+`([^`]+)`/gi,
|
|
67
|
+
/`([^`]+)`\s+(?:completed|succeeded|finished)/gi,
|
|
68
|
+
];
|
|
69
|
+
for (const pattern of cmdPatterns) {
|
|
70
|
+
let match;
|
|
71
|
+
while ((match = pattern.exec(response)) !== null) {
|
|
72
|
+
const command = match[1];
|
|
73
|
+
if (command) {
|
|
74
|
+
claims.push({
|
|
75
|
+
type: 'command_executed',
|
|
76
|
+
description: `Command "${command}" was executed`,
|
|
77
|
+
evidence: match[0],
|
|
78
|
+
params: { command }
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
// Pattern: Build/compile success claims
|
|
84
|
+
const buildPatterns = [
|
|
85
|
+
/(?:build|compilation|type[- ]?check)\s+(?:passed|succeeded|completed|successful)/gi,
|
|
86
|
+
/(?:successfully|passed)\s+(?:build|compilation|type[- ]?check)/gi,
|
|
87
|
+
/no\s+(?:type\s+)?errors/gi,
|
|
88
|
+
];
|
|
89
|
+
for (const pattern of buildPatterns) {
|
|
90
|
+
if (pattern.test(response)) {
|
|
91
|
+
claims.push({
|
|
92
|
+
type: 'code_compiles',
|
|
93
|
+
description: 'Code compiles without errors',
|
|
94
|
+
evidence: response.match(pattern)?.[0] || '',
|
|
95
|
+
params: {}
|
|
96
|
+
});
|
|
97
|
+
break; // Only add once
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
// Pattern: Test pass claims
|
|
101
|
+
const testPatterns = [
|
|
102
|
+
/(?:all\s+)?tests?\s+(?:pass|passed|passing|succeeded)/gi,
|
|
103
|
+
/(?:passed|passing)\s+(?:all\s+)?tests?/gi,
|
|
104
|
+
/(\d+)\s+tests?\s+passed/gi,
|
|
105
|
+
];
|
|
106
|
+
for (const pattern of testPatterns) {
|
|
107
|
+
const match = pattern.exec(response);
|
|
108
|
+
if (match) {
|
|
109
|
+
claims.push({
|
|
110
|
+
type: 'tests_pass',
|
|
111
|
+
description: 'Tests pass',
|
|
112
|
+
evidence: match[0],
|
|
113
|
+
params: { count: match[1] ? parseInt(match[1], 10) : undefined }
|
|
114
|
+
});
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
// Pattern: Git commit claims
|
|
119
|
+
const gitPatterns = [
|
|
120
|
+
/committed\s+(?:with\s+message\s+)?["']?([^"'\n]+)["']?/gi,
|
|
121
|
+
/\[(?:main|master|[a-zA-Z0-9-]+)\s+([a-f0-9]+)\]/gi,
|
|
122
|
+
/git\s+commit.*-m\s+["']([^"']+)["']/gi,
|
|
123
|
+
];
|
|
124
|
+
for (const pattern of gitPatterns) {
|
|
125
|
+
const match = pattern.exec(response);
|
|
126
|
+
if (match) {
|
|
127
|
+
claims.push({
|
|
128
|
+
type: 'git_committed',
|
|
129
|
+
description: 'Changes were committed',
|
|
130
|
+
evidence: match[0],
|
|
131
|
+
params: { hash: match[1] }
|
|
132
|
+
});
|
|
133
|
+
break;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
// Pattern: Package publish claims
|
|
137
|
+
const publishPatterns = [
|
|
138
|
+
/published\s+(?:to\s+)?(?:npm|registry)/gi,
|
|
139
|
+
/\+\s+[a-z@/-]+@(\d+\.\d+\.\d+)/gi,
|
|
140
|
+
/npm\s+publish/gi,
|
|
141
|
+
];
|
|
142
|
+
for (const pattern of publishPatterns) {
|
|
143
|
+
const match = pattern.exec(response);
|
|
144
|
+
if (match) {
|
|
145
|
+
claims.push({
|
|
146
|
+
type: 'package_published',
|
|
147
|
+
description: 'Package was published',
|
|
148
|
+
evidence: match[0],
|
|
149
|
+
params: { version: match[1] }
|
|
150
|
+
});
|
|
151
|
+
break;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return claims;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Generate a verification test for a claim
|
|
158
|
+
*/
|
|
159
|
+
export function generateVerificationTest(claim) {
|
|
160
|
+
const baseResult = {
|
|
161
|
+
claim,
|
|
162
|
+
timestamp: new Date().toISOString()
|
|
163
|
+
};
|
|
164
|
+
switch (claim.type) {
|
|
165
|
+
case 'file_created':
|
|
166
|
+
case 'file_modified':
|
|
167
|
+
return async () => {
|
|
168
|
+
const filePath = claim.params.path;
|
|
169
|
+
try {
|
|
170
|
+
const resolvedPath = path.isAbsolute(filePath) ? filePath : path.resolve(process.cwd(), filePath);
|
|
171
|
+
const stats = await fs.stat(resolvedPath);
|
|
172
|
+
const recentlyModified = (Date.now() - stats.mtimeMs) < 5 * 60 * 1000; // Within 5 minutes
|
|
173
|
+
return {
|
|
174
|
+
...baseResult,
|
|
175
|
+
verified: stats.isFile(),
|
|
176
|
+
confidence: recentlyModified ? 'high' : 'medium',
|
|
177
|
+
evidence: `File exists. Size: ${stats.size} bytes. Modified: ${stats.mtime.toISOString()}`
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
catch (err) {
|
|
181
|
+
return {
|
|
182
|
+
...baseResult,
|
|
183
|
+
verified: false,
|
|
184
|
+
confidence: 'high',
|
|
185
|
+
evidence: 'File does not exist',
|
|
186
|
+
error: err instanceof Error ? err.message : 'Unknown error'
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
};
|
|
190
|
+
case 'file_deleted':
|
|
191
|
+
return async () => {
|
|
192
|
+
const filePath = claim.params.path;
|
|
193
|
+
try {
|
|
194
|
+
const resolvedPath = path.isAbsolute(filePath) ? filePath : path.resolve(process.cwd(), filePath);
|
|
195
|
+
await fs.stat(resolvedPath);
|
|
196
|
+
return {
|
|
197
|
+
...baseResult,
|
|
198
|
+
verified: false,
|
|
199
|
+
confidence: 'high',
|
|
200
|
+
evidence: 'File still exists (deletion claim is false)'
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
catch {
|
|
204
|
+
return {
|
|
205
|
+
...baseResult,
|
|
206
|
+
verified: true,
|
|
207
|
+
confidence: 'high',
|
|
208
|
+
evidence: 'File does not exist (deletion verified)'
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
};
|
|
212
|
+
case 'code_compiles':
|
|
213
|
+
return async () => {
|
|
214
|
+
try {
|
|
215
|
+
const { stdout, stderr } = await execAsync('npm run type-check 2>&1 || npm run build 2>&1', {
|
|
216
|
+
timeout: 60000,
|
|
217
|
+
cwd: process.cwd()
|
|
218
|
+
});
|
|
219
|
+
const output = stdout + stderr;
|
|
220
|
+
const hasErrors = /error/i.test(output) && !/0 errors/i.test(output);
|
|
221
|
+
return {
|
|
222
|
+
...baseResult,
|
|
223
|
+
verified: !hasErrors,
|
|
224
|
+
confidence: 'high',
|
|
225
|
+
evidence: hasErrors ? `Compilation errors found: ${output.slice(0, 500)}` : 'Code compiles successfully'
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
catch (err) {
|
|
229
|
+
return {
|
|
230
|
+
...baseResult,
|
|
231
|
+
verified: false,
|
|
232
|
+
confidence: 'high',
|
|
233
|
+
evidence: 'Compilation check failed',
|
|
234
|
+
error: err instanceof Error ? err.message : 'Unknown error'
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
};
|
|
238
|
+
case 'tests_pass':
|
|
239
|
+
return async () => {
|
|
240
|
+
try {
|
|
241
|
+
const { stdout, stderr } = await execAsync('npm test 2>&1', {
|
|
242
|
+
timeout: 120000,
|
|
243
|
+
cwd: process.cwd()
|
|
244
|
+
});
|
|
245
|
+
const output = stdout + stderr;
|
|
246
|
+
const hasFailed = /fail|error/i.test(output) && !/0 failed/i.test(output);
|
|
247
|
+
return {
|
|
248
|
+
...baseResult,
|
|
249
|
+
verified: !hasFailed,
|
|
250
|
+
confidence: 'high',
|
|
251
|
+
evidence: hasFailed ? `Test failures: ${output.slice(0, 500)}` : 'All tests pass'
|
|
252
|
+
};
|
|
253
|
+
}
|
|
254
|
+
catch (err) {
|
|
255
|
+
return {
|
|
256
|
+
...baseResult,
|
|
257
|
+
verified: false,
|
|
258
|
+
confidence: 'high',
|
|
259
|
+
evidence: 'Test execution failed',
|
|
260
|
+
error: err instanceof Error ? err.message : 'Unknown error'
|
|
261
|
+
};
|
|
262
|
+
}
|
|
263
|
+
};
|
|
264
|
+
case 'git_committed':
|
|
265
|
+
return async () => {
|
|
266
|
+
try {
|
|
267
|
+
const { stdout } = await execAsync('git log -1 --oneline', {
|
|
268
|
+
timeout: 5000,
|
|
269
|
+
cwd: process.cwd()
|
|
270
|
+
});
|
|
271
|
+
const hash = claim.params.hash;
|
|
272
|
+
if (hash && stdout.includes(hash.slice(0, 7))) {
|
|
273
|
+
return {
|
|
274
|
+
...baseResult,
|
|
275
|
+
verified: true,
|
|
276
|
+
confidence: 'high',
|
|
277
|
+
evidence: `Commit found: ${stdout.trim()}`
|
|
278
|
+
};
|
|
279
|
+
}
|
|
280
|
+
// Check if there's a recent commit
|
|
281
|
+
const { stdout: logOutput } = await execAsync('git log -1 --format="%H %s"', {
|
|
282
|
+
timeout: 5000
|
|
283
|
+
});
|
|
284
|
+
return {
|
|
285
|
+
...baseResult,
|
|
286
|
+
verified: true,
|
|
287
|
+
confidence: 'medium',
|
|
288
|
+
evidence: `Most recent commit: ${logOutput.trim()}`
|
|
289
|
+
};
|
|
290
|
+
}
|
|
291
|
+
catch (err) {
|
|
292
|
+
return {
|
|
293
|
+
...baseResult,
|
|
294
|
+
verified: false,
|
|
295
|
+
confidence: 'high',
|
|
296
|
+
evidence: 'Git check failed',
|
|
297
|
+
error: err instanceof Error ? err.message : 'Unknown error'
|
|
298
|
+
};
|
|
299
|
+
}
|
|
300
|
+
};
|
|
301
|
+
case 'package_published':
|
|
302
|
+
return async () => {
|
|
303
|
+
try {
|
|
304
|
+
// Read package.json to get name and version
|
|
305
|
+
const pkgPath = path.resolve(process.cwd(), 'package.json');
|
|
306
|
+
const pkgContent = await fs.readFile(pkgPath, 'utf-8');
|
|
307
|
+
const pkg = JSON.parse(pkgContent);
|
|
308
|
+
const { stdout } = await execAsync(`npm view ${pkg.name}@${pkg.version} version 2>&1`, {
|
|
309
|
+
timeout: 10000
|
|
310
|
+
});
|
|
311
|
+
const published = stdout.trim() === pkg.version;
|
|
312
|
+
return {
|
|
313
|
+
...baseResult,
|
|
314
|
+
verified: published,
|
|
315
|
+
confidence: 'high',
|
|
316
|
+
evidence: published ? `${pkg.name}@${pkg.version} found on npm` : 'Version not found on npm'
|
|
317
|
+
};
|
|
318
|
+
}
|
|
319
|
+
catch (err) {
|
|
320
|
+
return {
|
|
321
|
+
...baseResult,
|
|
322
|
+
verified: false,
|
|
323
|
+
confidence: 'medium',
|
|
324
|
+
evidence: 'Could not verify npm publication',
|
|
325
|
+
error: err instanceof Error ? err.message : 'Unknown error'
|
|
326
|
+
};
|
|
327
|
+
}
|
|
328
|
+
};
|
|
329
|
+
case 'command_executed':
|
|
330
|
+
// Can't really verify past command execution, just acknowledge
|
|
331
|
+
return async () => ({
|
|
332
|
+
...baseResult,
|
|
333
|
+
verified: true, // Assume true since we can't replay
|
|
334
|
+
confidence: 'low',
|
|
335
|
+
evidence: 'Command execution cannot be retroactively verified'
|
|
336
|
+
});
|
|
337
|
+
default:
|
|
338
|
+
return async () => ({
|
|
339
|
+
...baseResult,
|
|
340
|
+
verified: false,
|
|
341
|
+
confidence: 'low',
|
|
342
|
+
evidence: `Unknown claim type: ${claim.type}`
|
|
343
|
+
});
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* Verify all claims in an assistant response
|
|
348
|
+
*/
|
|
349
|
+
export async function verifyResponse(response, responseId) {
|
|
350
|
+
const claims = extractClaims(response);
|
|
351
|
+
const results = [];
|
|
352
|
+
for (const claim of claims) {
|
|
353
|
+
const test = generateVerificationTest(claim);
|
|
354
|
+
try {
|
|
355
|
+
const result = await test();
|
|
356
|
+
results.push(result);
|
|
357
|
+
}
|
|
358
|
+
catch (err) {
|
|
359
|
+
results.push({
|
|
360
|
+
claim,
|
|
361
|
+
verified: false,
|
|
362
|
+
confidence: 'low',
|
|
363
|
+
evidence: 'Verification test failed to execute',
|
|
364
|
+
error: err instanceof Error ? err.message : 'Unknown error',
|
|
365
|
+
timestamp: new Date().toISOString()
|
|
366
|
+
});
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
const verified = results.filter(r => r.verified).length;
|
|
370
|
+
const failed = results.filter(r => !r.verified && r.confidence === 'high').length;
|
|
371
|
+
const inconclusive = results.filter(r => !r.verified && r.confidence !== 'high').length;
|
|
372
|
+
let overallVerdict;
|
|
373
|
+
if (failed > 0) {
|
|
374
|
+
overallVerdict = 'contradicted';
|
|
375
|
+
}
|
|
376
|
+
else if (verified === claims.length && claims.length > 0) {
|
|
377
|
+
overallVerdict = 'verified';
|
|
378
|
+
}
|
|
379
|
+
else if (verified > 0) {
|
|
380
|
+
overallVerdict = 'partially_verified';
|
|
381
|
+
}
|
|
382
|
+
else {
|
|
383
|
+
overallVerdict = 'unverified';
|
|
384
|
+
}
|
|
385
|
+
return {
|
|
386
|
+
responseId: responseId || `response-${Date.now()}`,
|
|
387
|
+
timestamp: new Date().toISOString(),
|
|
388
|
+
claims,
|
|
389
|
+
results,
|
|
390
|
+
summary: {
|
|
391
|
+
total: claims.length,
|
|
392
|
+
verified,
|
|
393
|
+
failed,
|
|
394
|
+
inconclusive
|
|
395
|
+
},
|
|
396
|
+
overallVerdict
|
|
397
|
+
};
|
|
398
|
+
}
|
|
399
|
+
/**
|
|
400
|
+
* Format a verification report for display
|
|
401
|
+
*/
|
|
402
|
+
export function formatVerificationReport(report) {
|
|
403
|
+
const lines = [];
|
|
404
|
+
lines.push('═══════════════════════════════════════════════════════════');
|
|
405
|
+
lines.push(' RESPONSE VERIFICATION REPORT');
|
|
406
|
+
lines.push('═══════════════════════════════════════════════════════════');
|
|
407
|
+
lines.push('');
|
|
408
|
+
const verdictEmoji = {
|
|
409
|
+
verified: '✅',
|
|
410
|
+
partially_verified: '⚠️',
|
|
411
|
+
unverified: '❓',
|
|
412
|
+
contradicted: '❌'
|
|
413
|
+
};
|
|
414
|
+
lines.push(`Verdict: ${verdictEmoji[report.overallVerdict]} ${report.overallVerdict.toUpperCase()}`);
|
|
415
|
+
lines.push(`Claims: ${report.summary.total} total, ${report.summary.verified} verified, ${report.summary.failed} failed`);
|
|
416
|
+
lines.push('');
|
|
417
|
+
if (report.results.length > 0) {
|
|
418
|
+
lines.push('Verification Details:');
|
|
419
|
+
lines.push('─────────────────────');
|
|
420
|
+
for (const result of report.results) {
|
|
421
|
+
const icon = result.verified ? '✅' : (result.confidence === 'high' ? '❌' : '❓');
|
|
422
|
+
lines.push(`${icon} ${result.claim.description}`);
|
|
423
|
+
lines.push(` Evidence: ${result.evidence.slice(0, 100)}`);
|
|
424
|
+
if (result.error) {
|
|
425
|
+
lines.push(` Error: ${result.error}`);
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
else {
|
|
430
|
+
lines.push('No verifiable claims found in response.');
|
|
431
|
+
}
|
|
432
|
+
lines.push('');
|
|
433
|
+
lines.push('═══════════════════════════════════════════════════════════');
|
|
434
|
+
return lines.join('\n');
|
|
435
|
+
}
|
|
436
|
+
/**
|
|
437
|
+
* Quick verification - returns true if response claims are valid
|
|
438
|
+
*/
|
|
439
|
+
export async function quickVerify(response) {
|
|
440
|
+
const report = await verifyResponse(response);
|
|
441
|
+
return report.overallVerdict === 'verified' || report.overallVerdict === 'partially_verified';
|
|
442
|
+
}
|
|
443
|
+
//# sourceMappingURL=responseVerifier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responseVerifier.js","sourceRoot":"","sources":["../../src/core/responseVerifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -74,6 +74,7 @@ export declare class InteractiveShell {
|
|
|
74
74
|
private readonly sessionStartTime;
|
|
75
75
|
private activeSessionTitle;
|
|
76
76
|
private sessionResumeNotice;
|
|
77
|
+
private lastAssistantResponse;
|
|
77
78
|
private readonly customCommands;
|
|
78
79
|
private readonly customCommandMap;
|
|
79
80
|
private readonly sessionRestoreConfig;
|
|
@@ -173,6 +174,15 @@ export declare class InteractiveShell {
|
|
|
173
174
|
private handleShortcutsCommand;
|
|
174
175
|
private showFileChangeSummary;
|
|
175
176
|
private showAlphaZeroMetrics;
|
|
177
|
+
/**
|
|
178
|
+
* Handle /verify command - verify the last assistant response
|
|
179
|
+
*/
|
|
180
|
+
private handleVerifyCommand;
|
|
181
|
+
/**
|
|
182
|
+
* Schedule auto-verification after assistant response if it contains verifiable claims.
|
|
183
|
+
* Runs asynchronously to not block the UI.
|
|
184
|
+
*/
|
|
185
|
+
private scheduleAutoVerification;
|
|
176
186
|
private showImprovementSuggestions;
|
|
177
187
|
private showPluginStatus;
|
|
178
188
|
private showSessionList;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactiveShell.d.ts","sourceRoot":"","sources":["../../src/shell/interactiveShell.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAiCtE,OAAO,EAAE,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAI/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAyB,KAAK,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAQtF,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"interactiveShell.d.ts","sourceRoot":"","sources":["../../src/shell/interactiveShell.ts"],"names":[],"mappings":"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"}
|