erosolar-cli 1.7.20 → 1.7.22
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.
|
@@ -31,6 +31,14 @@ export interface VerifiableClaim {
|
|
|
31
31
|
name?: string;
|
|
32
32
|
url?: string;
|
|
33
33
|
content?: string;
|
|
34
|
+
key?: string;
|
|
35
|
+
value?: unknown;
|
|
36
|
+
status?: number;
|
|
37
|
+
body?: string;
|
|
38
|
+
input?: string;
|
|
39
|
+
output?: string;
|
|
40
|
+
checkCommand?: string;
|
|
41
|
+
mode?: string;
|
|
34
42
|
[key: string]: unknown;
|
|
35
43
|
};
|
|
36
44
|
}
|
|
@@ -87,4 +95,73 @@ export declare function formatVerificationReport(report: VerificationReport): st
|
|
|
87
95
|
* Quick verification - returns true if response claims are valid
|
|
88
96
|
*/
|
|
89
97
|
export declare function quickVerify(response: string): Promise<boolean>;
|
|
98
|
+
/**
|
|
99
|
+
* Verification strategy types
|
|
100
|
+
*/
|
|
101
|
+
export type VerificationStrategy = 'runtime' | 'filesystem' | 'network' | 'llm' | 'semantic' | 'comparison' | 'manual';
|
|
102
|
+
/**
|
|
103
|
+
* Extended verification context for complex claims
|
|
104
|
+
*/
|
|
105
|
+
export interface VerificationContext {
|
|
106
|
+
workingDirectory: string;
|
|
107
|
+
previousState?: Record<string, unknown>;
|
|
108
|
+
currentState?: Record<string, unknown>;
|
|
109
|
+
conversationHistory?: string[];
|
|
110
|
+
llmVerifier?: (prompt: string) => Promise<string>;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Verify a claim using LLM when runtime verification isn't possible
|
|
114
|
+
*/
|
|
115
|
+
export declare function verifyClaimWithLLM(claim: VerifiableClaim, context: VerificationContext): Promise<ClaimVerificationResult>;
|
|
116
|
+
/**
|
|
117
|
+
* Generate verification test for extended claim types
|
|
118
|
+
*/
|
|
119
|
+
export declare function generateExtendedVerificationTest(claim: VerifiableClaim, context: VerificationContext): () => Promise<ClaimVerificationResult>;
|
|
120
|
+
/**
|
|
121
|
+
* Comprehensive verification using both runtime and LLM-based strategies
|
|
122
|
+
*/
|
|
123
|
+
export declare function verifyResponseComprehensive(response: string, context: VerificationContext, responseId?: string): Promise<VerificationReport>;
|
|
124
|
+
/**
|
|
125
|
+
* Determine the best verification strategy for a claim
|
|
126
|
+
*/
|
|
127
|
+
export declare function getVerificationStrategy(claim: VerifiableClaim): VerificationStrategy;
|
|
128
|
+
/**
|
|
129
|
+
* LLM-generated verification test interface
|
|
130
|
+
*/
|
|
131
|
+
export interface GeneratedVerificationTest {
|
|
132
|
+
claim: VerifiableClaim;
|
|
133
|
+
testType: 'shell' | 'javascript' | 'api';
|
|
134
|
+
code: string;
|
|
135
|
+
description: string;
|
|
136
|
+
expectedOutcome: string;
|
|
137
|
+
safetyCheck: boolean;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Generate verification code using LLM
|
|
141
|
+
*/
|
|
142
|
+
export declare function generateVerificationCode(claim: VerifiableClaim, context: VerificationContext): Promise<GeneratedVerificationTest | null>;
|
|
143
|
+
/**
|
|
144
|
+
* Validate that generated code is safe to execute
|
|
145
|
+
*/
|
|
146
|
+
export declare function validateGeneratedCode(test: GeneratedVerificationTest): {
|
|
147
|
+
safe: boolean;
|
|
148
|
+
reason: string;
|
|
149
|
+
};
|
|
150
|
+
/**
|
|
151
|
+
* Execute a generated verification test
|
|
152
|
+
*/
|
|
153
|
+
export declare function executeGeneratedTest(test: GeneratedVerificationTest, context: VerificationContext): Promise<ClaimVerificationResult>;
|
|
154
|
+
/**
|
|
155
|
+
* Verify a claim using LLM-generated runtime test
|
|
156
|
+
*/
|
|
157
|
+
export declare function verifyWithGeneratedTest(claim: VerifiableClaim, context: VerificationContext): Promise<ClaimVerificationResult>;
|
|
158
|
+
/**
|
|
159
|
+
* Full verification using LLM-generated tests
|
|
160
|
+
* This is the most powerful verification method - LLM decides HOW to verify each claim
|
|
161
|
+
*/
|
|
162
|
+
export declare function verifyResponseWithGeneratedTests(response: string, context: VerificationContext, responseId?: string): Promise<VerificationReport>;
|
|
163
|
+
/**
|
|
164
|
+
* Hybrid verification - uses generated tests when available, falls back to predefined tests
|
|
165
|
+
*/
|
|
166
|
+
export declare function verifyResponseHybrid(response: string, context: VerificationContext, responseId?: string): Promise<VerificationReport>;
|
|
90
167
|
//# sourceMappingURL=responseVerifier.d.ts.map
|
|
@@ -1 +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,GAEnB,cAAc,GACd,kBAAkB,GAClB,gBAAgB,GAChB,aAAa,GACb,oBAAoB,GACpB,kBAAkB,GAClB,aAAa,GACb,qBAAqB,GACrB,mBAAmB,GACnB,SAAS,CAAC;AAEd;;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,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"responseVerifier.d.ts","sourceRoot":"","sources":["../../src/core/responseVerifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,40 +18,74 @@ const execAsync = promisify(exec);
|
|
|
18
18
|
* LLM-based claim extraction prompt.
|
|
19
19
|
* Used when pattern matching isn't sufficient.
|
|
20
20
|
*/
|
|
21
|
-
const CLAIM_EXTRACTION_PROMPT = `Analyze this assistant response and extract
|
|
21
|
+
const CLAIM_EXTRACTION_PROMPT = `Analyze this assistant response and extract ALL verifiable claims - anything the assistant claims to have done or accomplished.
|
|
22
22
|
|
|
23
23
|
For each claim, identify:
|
|
24
24
|
1. Type: One of these claim types:
|
|
25
|
+
|
|
26
|
+
FILE OPERATIONS:
|
|
25
27
|
- file_created: A new file was created
|
|
26
28
|
- file_modified: An existing file was changed
|
|
27
29
|
- file_deleted: A file was removed
|
|
30
|
+
- content_contains: A file contains specific content
|
|
31
|
+
|
|
32
|
+
BUILD/TEST:
|
|
28
33
|
- code_compiles: Code builds/compiles without errors
|
|
29
34
|
- tests_pass: Tests run successfully
|
|
35
|
+
|
|
36
|
+
VERSION CONTROL:
|
|
30
37
|
- git_committed: Changes were committed to git
|
|
31
38
|
- package_published: Package was published to npm
|
|
39
|
+
|
|
40
|
+
SYSTEM:
|
|
32
41
|
- command_executed: A shell command was run
|
|
33
42
|
- dependency_installed: A package/dependency was installed
|
|
34
43
|
- service_running: A service/server is running (on a port)
|
|
35
44
|
- url_accessible: A URL is accessible/working
|
|
36
|
-
-
|
|
45
|
+
- env_var_set: Environment variable was set
|
|
46
|
+
|
|
47
|
+
CONFIGURATION:
|
|
48
|
+
- config_changed: Configuration file was updated
|
|
49
|
+
- permission_granted: File permissions were changed
|
|
50
|
+
|
|
51
|
+
API/DATA:
|
|
52
|
+
- api_response: API returned expected response
|
|
53
|
+
- database_updated: Database record was modified
|
|
54
|
+
- data_transformed: Data was transformed correctly
|
|
55
|
+
|
|
56
|
+
SEMANTIC (require deeper analysis):
|
|
57
|
+
- error_fixed: An error/bug was fixed
|
|
58
|
+
- feature_implemented: A feature was implemented
|
|
59
|
+
- refactor_complete: Code was refactored
|
|
60
|
+
|
|
61
|
+
CATCH-ALL:
|
|
62
|
+
- generic: Any other verifiable claim not covered above
|
|
37
63
|
|
|
38
64
|
2. The specific details needed to verify the claim
|
|
39
65
|
|
|
40
66
|
Return a JSON array of claims. Each claim should have:
|
|
41
67
|
- type: one of the types above
|
|
42
|
-
- description: human readable description
|
|
68
|
+
- description: human readable description of what was claimed
|
|
43
69
|
- params: Object with relevant fields:
|
|
44
|
-
- path: file path (for file operations
|
|
70
|
+
- path: file path (for file operations)
|
|
45
71
|
- command: shell command (for command_executed)
|
|
46
72
|
- version: version number (for package_published)
|
|
47
73
|
- hash: git commit hash (for git_committed)
|
|
48
74
|
- package: package name (for dependency_installed)
|
|
49
75
|
- port: port number (for service_running)
|
|
50
|
-
- name: process/service name (for service_running)
|
|
51
|
-
- url: URL (for url_accessible)
|
|
76
|
+
- name: process/service name (for service_running, env_var_set)
|
|
77
|
+
- url: URL (for url_accessible, api_response)
|
|
52
78
|
- content: text to search for (for content_contains)
|
|
79
|
+
- key: config key path like "server.port" (for config_changed)
|
|
80
|
+
- value: expected value (for config_changed, env_var_set)
|
|
81
|
+
- status: HTTP status code (for api_response)
|
|
82
|
+
- body: expected response body (for api_response)
|
|
83
|
+
- mode: file permission mode like "755" (for permission_granted)
|
|
84
|
+
- checkCommand: command that can verify the claim (for database_updated)
|
|
85
|
+
|
|
86
|
+
IMPORTANT: Extract ALL claims, including semantic ones like "I fixed the bug" or "The feature is now working". Use the 'generic' type for claims that don't fit other categories.
|
|
53
87
|
|
|
54
|
-
Only
|
|
88
|
+
Only skip opinions ("I think..."), explanations of what code does, or future plans ("will do", "should work").
|
|
55
89
|
|
|
56
90
|
Response to analyze:
|
|
57
91
|
---
|
|
@@ -826,4 +860,958 @@ export async function quickVerify(response) {
|
|
|
826
860
|
const report = await verifyResponse(response);
|
|
827
861
|
return report.overallVerdict === 'verified' || report.overallVerdict === 'partially_verified';
|
|
828
862
|
}
|
|
863
|
+
/**
|
|
864
|
+
* LLM-based verification prompt for claims that can't be programmatically verified
|
|
865
|
+
*/
|
|
866
|
+
const LLM_VERIFICATION_PROMPT = `You are a verification assistant. Analyze whether the following claim is likely TRUE or FALSE based on the evidence provided.
|
|
867
|
+
|
|
868
|
+
CLAIM: {CLAIM}
|
|
869
|
+
|
|
870
|
+
EVIDENCE/CONTEXT:
|
|
871
|
+
{CONTEXT}
|
|
872
|
+
|
|
873
|
+
Respond with a JSON object:
|
|
874
|
+
{
|
|
875
|
+
"verdict": "verified" | "unverified" | "inconclusive",
|
|
876
|
+
"confidence": "high" | "medium" | "low",
|
|
877
|
+
"reasoning": "Brief explanation of your analysis",
|
|
878
|
+
"suggested_test": "Optional: A command or check that could verify this claim"
|
|
879
|
+
}
|
|
880
|
+
|
|
881
|
+
Be conservative - only mark as "verified" if there's strong evidence. Mark as "inconclusive" if you can't determine the truth.`;
|
|
882
|
+
/**
|
|
883
|
+
* Verify a claim using LLM when runtime verification isn't possible
|
|
884
|
+
*/
|
|
885
|
+
export async function verifyClaimWithLLM(claim, context) {
|
|
886
|
+
const baseResult = {
|
|
887
|
+
claim,
|
|
888
|
+
timestamp: new Date().toISOString()
|
|
889
|
+
};
|
|
890
|
+
if (!context.llmVerifier) {
|
|
891
|
+
return {
|
|
892
|
+
...baseResult,
|
|
893
|
+
verified: false,
|
|
894
|
+
confidence: 'low',
|
|
895
|
+
evidence: 'No LLM verifier available for semantic verification'
|
|
896
|
+
};
|
|
897
|
+
}
|
|
898
|
+
try {
|
|
899
|
+
// Build context string
|
|
900
|
+
const contextParts = [];
|
|
901
|
+
if (context.previousState) {
|
|
902
|
+
contextParts.push(`Previous state: ${JSON.stringify(context.previousState, null, 2)}`);
|
|
903
|
+
}
|
|
904
|
+
if (context.currentState) {
|
|
905
|
+
contextParts.push(`Current state: ${JSON.stringify(context.currentState, null, 2)}`);
|
|
906
|
+
}
|
|
907
|
+
if (context.conversationHistory?.length) {
|
|
908
|
+
contextParts.push(`Recent conversation:\n${context.conversationHistory.slice(-5).join('\n')}`);
|
|
909
|
+
}
|
|
910
|
+
contextParts.push(`Claim evidence: ${claim.evidence}`);
|
|
911
|
+
contextParts.push(`Claim params: ${JSON.stringify(claim.params)}`);
|
|
912
|
+
const prompt = LLM_VERIFICATION_PROMPT
|
|
913
|
+
.replace('{CLAIM}', claim.description)
|
|
914
|
+
.replace('{CONTEXT}', contextParts.join('\n\n'));
|
|
915
|
+
const result = await context.llmVerifier(prompt);
|
|
916
|
+
// Parse LLM response
|
|
917
|
+
const jsonMatch = result.match(/\{[\s\S]*\}/);
|
|
918
|
+
if (!jsonMatch) {
|
|
919
|
+
return {
|
|
920
|
+
...baseResult,
|
|
921
|
+
verified: false,
|
|
922
|
+
confidence: 'low',
|
|
923
|
+
evidence: 'LLM verification returned invalid response'
|
|
924
|
+
};
|
|
925
|
+
}
|
|
926
|
+
const parsed = JSON.parse(jsonMatch[0]);
|
|
927
|
+
return {
|
|
928
|
+
...baseResult,
|
|
929
|
+
verified: parsed.verdict === 'verified',
|
|
930
|
+
confidence: parsed.confidence || 'medium',
|
|
931
|
+
evidence: `LLM Analysis: ${parsed.reasoning}${parsed.suggested_test ? ` (Suggested test: ${parsed.suggested_test})` : ''}`
|
|
932
|
+
};
|
|
933
|
+
}
|
|
934
|
+
catch (err) {
|
|
935
|
+
return {
|
|
936
|
+
...baseResult,
|
|
937
|
+
verified: false,
|
|
938
|
+
confidence: 'low',
|
|
939
|
+
evidence: 'LLM verification failed',
|
|
940
|
+
error: err instanceof Error ? err.message : 'Unknown error'
|
|
941
|
+
};
|
|
942
|
+
}
|
|
943
|
+
}
|
|
944
|
+
/**
|
|
945
|
+
* Generate verification test for extended claim types
|
|
946
|
+
*/
|
|
947
|
+
export function generateExtendedVerificationTest(claim, context) {
|
|
948
|
+
const baseResult = {
|
|
949
|
+
claim,
|
|
950
|
+
timestamp: new Date().toISOString()
|
|
951
|
+
};
|
|
952
|
+
switch (claim.type) {
|
|
953
|
+
case 'api_response':
|
|
954
|
+
return async () => {
|
|
955
|
+
const url = claim.params.url;
|
|
956
|
+
const expectedStatus = claim.params.status;
|
|
957
|
+
const expectedBody = claim.params.body;
|
|
958
|
+
if (!url) {
|
|
959
|
+
return {
|
|
960
|
+
...baseResult,
|
|
961
|
+
verified: false,
|
|
962
|
+
confidence: 'low',
|
|
963
|
+
evidence: 'No API URL provided'
|
|
964
|
+
};
|
|
965
|
+
}
|
|
966
|
+
try {
|
|
967
|
+
const { stdout } = await execAsync(`curl -s -w "\\n%{http_code}" "${url}" 2>&1`, { timeout: 15000 });
|
|
968
|
+
const lines = stdout.trim().split('\n');
|
|
969
|
+
const statusCode = parseInt(lines.pop() || '0', 10);
|
|
970
|
+
const body = lines.join('\n');
|
|
971
|
+
let verified = true;
|
|
972
|
+
const evidenceParts = [];
|
|
973
|
+
if (expectedStatus && statusCode !== expectedStatus) {
|
|
974
|
+
verified = false;
|
|
975
|
+
evidenceParts.push(`Expected status ${expectedStatus}, got ${statusCode}`);
|
|
976
|
+
}
|
|
977
|
+
else {
|
|
978
|
+
evidenceParts.push(`Status: ${statusCode}`);
|
|
979
|
+
}
|
|
980
|
+
if (expectedBody && !body.includes(expectedBody)) {
|
|
981
|
+
verified = false;
|
|
982
|
+
evidenceParts.push(`Expected body to contain "${expectedBody.slice(0, 50)}..."`);
|
|
983
|
+
}
|
|
984
|
+
return {
|
|
985
|
+
...baseResult,
|
|
986
|
+
verified,
|
|
987
|
+
confidence: 'high',
|
|
988
|
+
evidence: evidenceParts.join('. ')
|
|
989
|
+
};
|
|
990
|
+
}
|
|
991
|
+
catch (err) {
|
|
992
|
+
return {
|
|
993
|
+
...baseResult,
|
|
994
|
+
verified: false,
|
|
995
|
+
confidence: 'high',
|
|
996
|
+
evidence: 'API request failed',
|
|
997
|
+
error: err instanceof Error ? err.message : 'Unknown error'
|
|
998
|
+
};
|
|
999
|
+
}
|
|
1000
|
+
};
|
|
1001
|
+
case 'env_var_set':
|
|
1002
|
+
return async () => {
|
|
1003
|
+
const varName = claim.params.name;
|
|
1004
|
+
const expectedValue = claim.params.value;
|
|
1005
|
+
if (!varName) {
|
|
1006
|
+
return {
|
|
1007
|
+
...baseResult,
|
|
1008
|
+
verified: false,
|
|
1009
|
+
confidence: 'low',
|
|
1010
|
+
evidence: 'No environment variable name provided'
|
|
1011
|
+
};
|
|
1012
|
+
}
|
|
1013
|
+
const actualValue = process.env[varName];
|
|
1014
|
+
if (actualValue === undefined) {
|
|
1015
|
+
return {
|
|
1016
|
+
...baseResult,
|
|
1017
|
+
verified: false,
|
|
1018
|
+
confidence: 'high',
|
|
1019
|
+
evidence: `Environment variable ${varName} is not set`
|
|
1020
|
+
};
|
|
1021
|
+
}
|
|
1022
|
+
if (expectedValue && actualValue !== expectedValue) {
|
|
1023
|
+
return {
|
|
1024
|
+
...baseResult,
|
|
1025
|
+
verified: false,
|
|
1026
|
+
confidence: 'high',
|
|
1027
|
+
evidence: `Expected ${varName}="${expectedValue}", got "${actualValue}"`
|
|
1028
|
+
};
|
|
1029
|
+
}
|
|
1030
|
+
return {
|
|
1031
|
+
...baseResult,
|
|
1032
|
+
verified: true,
|
|
1033
|
+
confidence: 'high',
|
|
1034
|
+
evidence: `${varName} is set${expectedValue ? ` to expected value` : `: ${actualValue.slice(0, 50)}`}`
|
|
1035
|
+
};
|
|
1036
|
+
};
|
|
1037
|
+
case 'config_changed':
|
|
1038
|
+
return async () => {
|
|
1039
|
+
const configPath = claim.params.path;
|
|
1040
|
+
const expectedKey = claim.params.key;
|
|
1041
|
+
const expectedValue = claim.params.value;
|
|
1042
|
+
if (!configPath) {
|
|
1043
|
+
return {
|
|
1044
|
+
...baseResult,
|
|
1045
|
+
verified: false,
|
|
1046
|
+
confidence: 'low',
|
|
1047
|
+
evidence: 'No config file path provided'
|
|
1048
|
+
};
|
|
1049
|
+
}
|
|
1050
|
+
try {
|
|
1051
|
+
const resolvedPath = path.isAbsolute(configPath)
|
|
1052
|
+
? configPath
|
|
1053
|
+
: path.resolve(context.workingDirectory, configPath);
|
|
1054
|
+
const content = await fs.readFile(resolvedPath, 'utf-8');
|
|
1055
|
+
// Try to parse as JSON
|
|
1056
|
+
let config;
|
|
1057
|
+
try {
|
|
1058
|
+
config = JSON.parse(content);
|
|
1059
|
+
}
|
|
1060
|
+
catch {
|
|
1061
|
+
// Not JSON, check raw content
|
|
1062
|
+
if (expectedValue && content.includes(String(expectedValue))) {
|
|
1063
|
+
return {
|
|
1064
|
+
...baseResult,
|
|
1065
|
+
verified: true,
|
|
1066
|
+
confidence: 'medium',
|
|
1067
|
+
evidence: `Config file contains expected value`
|
|
1068
|
+
};
|
|
1069
|
+
}
|
|
1070
|
+
return {
|
|
1071
|
+
...baseResult,
|
|
1072
|
+
verified: true,
|
|
1073
|
+
confidence: 'low',
|
|
1074
|
+
evidence: 'Config file exists but format unknown'
|
|
1075
|
+
};
|
|
1076
|
+
}
|
|
1077
|
+
if (expectedKey) {
|
|
1078
|
+
const keys = expectedKey.split('.');
|
|
1079
|
+
let value = config;
|
|
1080
|
+
for (const key of keys) {
|
|
1081
|
+
value = value?.[key];
|
|
1082
|
+
}
|
|
1083
|
+
if (expectedValue !== undefined) {
|
|
1084
|
+
const matches = JSON.stringify(value) === JSON.stringify(expectedValue);
|
|
1085
|
+
return {
|
|
1086
|
+
...baseResult,
|
|
1087
|
+
verified: matches,
|
|
1088
|
+
confidence: 'high',
|
|
1089
|
+
evidence: matches
|
|
1090
|
+
? `${expectedKey} has expected value`
|
|
1091
|
+
: `${expectedKey} = ${JSON.stringify(value)}, expected ${JSON.stringify(expectedValue)}`
|
|
1092
|
+
};
|
|
1093
|
+
}
|
|
1094
|
+
return {
|
|
1095
|
+
...baseResult,
|
|
1096
|
+
verified: value !== undefined,
|
|
1097
|
+
confidence: 'high',
|
|
1098
|
+
evidence: value !== undefined
|
|
1099
|
+
? `${expectedKey} exists: ${JSON.stringify(value).slice(0, 100)}`
|
|
1100
|
+
: `${expectedKey} not found in config`
|
|
1101
|
+
};
|
|
1102
|
+
}
|
|
1103
|
+
return {
|
|
1104
|
+
...baseResult,
|
|
1105
|
+
verified: true,
|
|
1106
|
+
confidence: 'medium',
|
|
1107
|
+
evidence: 'Config file exists and is valid JSON'
|
|
1108
|
+
};
|
|
1109
|
+
}
|
|
1110
|
+
catch (err) {
|
|
1111
|
+
return {
|
|
1112
|
+
...baseResult,
|
|
1113
|
+
verified: false,
|
|
1114
|
+
confidence: 'high',
|
|
1115
|
+
evidence: 'Could not read config file',
|
|
1116
|
+
error: err instanceof Error ? err.message : 'Unknown error'
|
|
1117
|
+
};
|
|
1118
|
+
}
|
|
1119
|
+
};
|
|
1120
|
+
case 'error_fixed':
|
|
1121
|
+
case 'feature_implemented':
|
|
1122
|
+
case 'refactor_complete':
|
|
1123
|
+
// These require semantic verification - use LLM if available
|
|
1124
|
+
return async () => {
|
|
1125
|
+
if (context.llmVerifier) {
|
|
1126
|
+
return verifyClaimWithLLM(claim, context);
|
|
1127
|
+
}
|
|
1128
|
+
// Fall back to checking if related files were modified
|
|
1129
|
+
const relatedPath = claim.params.path;
|
|
1130
|
+
if (relatedPath) {
|
|
1131
|
+
try {
|
|
1132
|
+
const resolvedPath = path.isAbsolute(relatedPath)
|
|
1133
|
+
? relatedPath
|
|
1134
|
+
: path.resolve(context.workingDirectory, relatedPath);
|
|
1135
|
+
const stats = await fs.stat(resolvedPath);
|
|
1136
|
+
const recentlyModified = (Date.now() - stats.mtimeMs) < 10 * 60 * 1000;
|
|
1137
|
+
return {
|
|
1138
|
+
...baseResult,
|
|
1139
|
+
verified: recentlyModified,
|
|
1140
|
+
confidence: 'low',
|
|
1141
|
+
evidence: recentlyModified
|
|
1142
|
+
? `Related file ${relatedPath} was recently modified`
|
|
1143
|
+
: `Related file ${relatedPath} exists but wasn't recently modified`
|
|
1144
|
+
};
|
|
1145
|
+
}
|
|
1146
|
+
catch {
|
|
1147
|
+
return {
|
|
1148
|
+
...baseResult,
|
|
1149
|
+
verified: false,
|
|
1150
|
+
confidence: 'low',
|
|
1151
|
+
evidence: 'Could not verify - no LLM available and related file not found'
|
|
1152
|
+
};
|
|
1153
|
+
}
|
|
1154
|
+
}
|
|
1155
|
+
return {
|
|
1156
|
+
...baseResult,
|
|
1157
|
+
verified: false,
|
|
1158
|
+
confidence: 'low',
|
|
1159
|
+
evidence: 'Semantic verification required but no LLM verifier available'
|
|
1160
|
+
};
|
|
1161
|
+
};
|
|
1162
|
+
case 'data_transformed':
|
|
1163
|
+
return async () => {
|
|
1164
|
+
// Check if we have before/after state to compare
|
|
1165
|
+
if (context.previousState && context.currentState) {
|
|
1166
|
+
const inputKey = claim.params.input;
|
|
1167
|
+
const outputKey = claim.params.output;
|
|
1168
|
+
if (inputKey && outputKey) {
|
|
1169
|
+
const inputExists = context.previousState[inputKey] !== undefined;
|
|
1170
|
+
const outputExists = context.currentState[outputKey] !== undefined;
|
|
1171
|
+
return {
|
|
1172
|
+
...baseResult,
|
|
1173
|
+
verified: inputExists && outputExists,
|
|
1174
|
+
confidence: inputExists && outputExists ? 'medium' : 'low',
|
|
1175
|
+
evidence: `Input "${inputKey}" ${inputExists ? 'found' : 'missing'}, Output "${outputKey}" ${outputExists ? 'found' : 'missing'}`
|
|
1176
|
+
};
|
|
1177
|
+
}
|
|
1178
|
+
}
|
|
1179
|
+
// Fall back to LLM verification
|
|
1180
|
+
if (context.llmVerifier) {
|
|
1181
|
+
return verifyClaimWithLLM(claim, context);
|
|
1182
|
+
}
|
|
1183
|
+
return {
|
|
1184
|
+
...baseResult,
|
|
1185
|
+
verified: false,
|
|
1186
|
+
confidence: 'low',
|
|
1187
|
+
evidence: 'Cannot verify data transformation without state comparison or LLM'
|
|
1188
|
+
};
|
|
1189
|
+
};
|
|
1190
|
+
case 'database_updated':
|
|
1191
|
+
return async () => {
|
|
1192
|
+
// Can't directly verify database changes without connection info
|
|
1193
|
+
// Check if there's a command we can run
|
|
1194
|
+
const checkCommand = claim.params.checkCommand;
|
|
1195
|
+
if (checkCommand) {
|
|
1196
|
+
try {
|
|
1197
|
+
const { stdout } = await execAsync(checkCommand, {
|
|
1198
|
+
timeout: 10000,
|
|
1199
|
+
cwd: context.workingDirectory
|
|
1200
|
+
});
|
|
1201
|
+
return {
|
|
1202
|
+
...baseResult,
|
|
1203
|
+
verified: true,
|
|
1204
|
+
confidence: 'medium',
|
|
1205
|
+
evidence: `Check command output: ${stdout.slice(0, 200)}`
|
|
1206
|
+
};
|
|
1207
|
+
}
|
|
1208
|
+
catch (err) {
|
|
1209
|
+
return {
|
|
1210
|
+
...baseResult,
|
|
1211
|
+
verified: false,
|
|
1212
|
+
confidence: 'medium',
|
|
1213
|
+
evidence: 'Database check command failed',
|
|
1214
|
+
error: err instanceof Error ? err.message : 'Unknown error'
|
|
1215
|
+
};
|
|
1216
|
+
}
|
|
1217
|
+
}
|
|
1218
|
+
// Fall back to LLM
|
|
1219
|
+
if (context.llmVerifier) {
|
|
1220
|
+
return verifyClaimWithLLM(claim, context);
|
|
1221
|
+
}
|
|
1222
|
+
return {
|
|
1223
|
+
...baseResult,
|
|
1224
|
+
verified: false,
|
|
1225
|
+
confidence: 'low',
|
|
1226
|
+
evidence: 'Cannot verify database changes without check command or LLM'
|
|
1227
|
+
};
|
|
1228
|
+
};
|
|
1229
|
+
case 'permission_granted':
|
|
1230
|
+
return async () => {
|
|
1231
|
+
const targetPath = claim.params.path;
|
|
1232
|
+
const expectedMode = claim.params.mode;
|
|
1233
|
+
if (targetPath) {
|
|
1234
|
+
try {
|
|
1235
|
+
const resolvedPath = path.isAbsolute(targetPath)
|
|
1236
|
+
? targetPath
|
|
1237
|
+
: path.resolve(context.workingDirectory, targetPath);
|
|
1238
|
+
const stats = await fs.stat(resolvedPath);
|
|
1239
|
+
const mode = (stats.mode & 0o777).toString(8);
|
|
1240
|
+
if (expectedMode) {
|
|
1241
|
+
const matches = mode === expectedMode;
|
|
1242
|
+
return {
|
|
1243
|
+
...baseResult,
|
|
1244
|
+
verified: matches,
|
|
1245
|
+
confidence: 'high',
|
|
1246
|
+
evidence: matches
|
|
1247
|
+
? `File has expected permissions: ${mode}`
|
|
1248
|
+
: `Expected mode ${expectedMode}, got ${mode}`
|
|
1249
|
+
};
|
|
1250
|
+
}
|
|
1251
|
+
return {
|
|
1252
|
+
...baseResult,
|
|
1253
|
+
verified: true,
|
|
1254
|
+
confidence: 'medium',
|
|
1255
|
+
evidence: `File permissions: ${mode}`
|
|
1256
|
+
};
|
|
1257
|
+
}
|
|
1258
|
+
catch (err) {
|
|
1259
|
+
return {
|
|
1260
|
+
...baseResult,
|
|
1261
|
+
verified: false,
|
|
1262
|
+
confidence: 'high',
|
|
1263
|
+
evidence: 'Could not check file permissions',
|
|
1264
|
+
error: err instanceof Error ? err.message : 'Unknown error'
|
|
1265
|
+
};
|
|
1266
|
+
}
|
|
1267
|
+
}
|
|
1268
|
+
// Fall back to LLM
|
|
1269
|
+
if (context.llmVerifier) {
|
|
1270
|
+
return verifyClaimWithLLM(claim, context);
|
|
1271
|
+
}
|
|
1272
|
+
return {
|
|
1273
|
+
...baseResult,
|
|
1274
|
+
verified: false,
|
|
1275
|
+
confidence: 'low',
|
|
1276
|
+
evidence: 'Cannot verify permission without file path or LLM'
|
|
1277
|
+
};
|
|
1278
|
+
};
|
|
1279
|
+
case 'generic':
|
|
1280
|
+
default:
|
|
1281
|
+
// For generic claims, always try LLM verification first
|
|
1282
|
+
return async () => {
|
|
1283
|
+
if (context.llmVerifier) {
|
|
1284
|
+
return verifyClaimWithLLM(claim, context);
|
|
1285
|
+
}
|
|
1286
|
+
return {
|
|
1287
|
+
...baseResult,
|
|
1288
|
+
verified: false,
|
|
1289
|
+
confidence: 'low',
|
|
1290
|
+
evidence: 'Generic claim requires LLM verification which is not available'
|
|
1291
|
+
};
|
|
1292
|
+
};
|
|
1293
|
+
}
|
|
1294
|
+
}
|
|
1295
|
+
/**
|
|
1296
|
+
* Comprehensive verification using both runtime and LLM-based strategies
|
|
1297
|
+
*/
|
|
1298
|
+
export async function verifyResponseComprehensive(response, context, responseId) {
|
|
1299
|
+
// First extract claims using LLM if available, otherwise pattern matching
|
|
1300
|
+
const claims = context.llmVerifier
|
|
1301
|
+
? await extractClaimsWithLLM(response, context.llmVerifier)
|
|
1302
|
+
: extractClaims(response);
|
|
1303
|
+
const results = [];
|
|
1304
|
+
for (const claim of claims) {
|
|
1305
|
+
// Check if this is a standard claim type that can be runtime-verified
|
|
1306
|
+
const standardTypes = [
|
|
1307
|
+
'file_created', 'file_modified', 'file_deleted', 'code_compiles',
|
|
1308
|
+
'tests_pass', 'git_committed', 'package_published', 'command_executed',
|
|
1309
|
+
'dependency_installed', 'service_running', 'url_accessible', 'content_contains'
|
|
1310
|
+
];
|
|
1311
|
+
let test;
|
|
1312
|
+
if (standardTypes.includes(claim.type)) {
|
|
1313
|
+
test = generateVerificationTest(claim);
|
|
1314
|
+
}
|
|
1315
|
+
else {
|
|
1316
|
+
test = generateExtendedVerificationTest(claim, context);
|
|
1317
|
+
}
|
|
1318
|
+
try {
|
|
1319
|
+
const result = await test();
|
|
1320
|
+
results.push(result);
|
|
1321
|
+
}
|
|
1322
|
+
catch (err) {
|
|
1323
|
+
results.push({
|
|
1324
|
+
claim,
|
|
1325
|
+
verified: false,
|
|
1326
|
+
confidence: 'low',
|
|
1327
|
+
evidence: 'Verification test failed to execute',
|
|
1328
|
+
error: err instanceof Error ? err.message : 'Unknown error',
|
|
1329
|
+
timestamp: new Date().toISOString()
|
|
1330
|
+
});
|
|
1331
|
+
}
|
|
1332
|
+
}
|
|
1333
|
+
const verified = results.filter(r => r.verified).length;
|
|
1334
|
+
const failed = results.filter(r => !r.verified && r.confidence === 'high').length;
|
|
1335
|
+
const inconclusive = results.filter(r => !r.verified && r.confidence !== 'high').length;
|
|
1336
|
+
let overallVerdict;
|
|
1337
|
+
if (failed > 0) {
|
|
1338
|
+
overallVerdict = 'contradicted';
|
|
1339
|
+
}
|
|
1340
|
+
else if (verified === claims.length && claims.length > 0) {
|
|
1341
|
+
overallVerdict = 'verified';
|
|
1342
|
+
}
|
|
1343
|
+
else if (verified > 0) {
|
|
1344
|
+
overallVerdict = 'partially_verified';
|
|
1345
|
+
}
|
|
1346
|
+
else {
|
|
1347
|
+
overallVerdict = 'unverified';
|
|
1348
|
+
}
|
|
1349
|
+
return {
|
|
1350
|
+
responseId: responseId || `response-${Date.now()}`,
|
|
1351
|
+
timestamp: new Date().toISOString(),
|
|
1352
|
+
claims,
|
|
1353
|
+
results,
|
|
1354
|
+
summary: {
|
|
1355
|
+
total: claims.length,
|
|
1356
|
+
verified,
|
|
1357
|
+
failed,
|
|
1358
|
+
inconclusive
|
|
1359
|
+
},
|
|
1360
|
+
overallVerdict
|
|
1361
|
+
};
|
|
1362
|
+
}
|
|
1363
|
+
/**
|
|
1364
|
+
* Determine the best verification strategy for a claim
|
|
1365
|
+
*/
|
|
1366
|
+
export function getVerificationStrategy(claim) {
|
|
1367
|
+
switch (claim.type) {
|
|
1368
|
+
case 'file_created':
|
|
1369
|
+
case 'file_modified':
|
|
1370
|
+
case 'file_deleted':
|
|
1371
|
+
case 'content_contains':
|
|
1372
|
+
case 'config_changed':
|
|
1373
|
+
case 'permission_granted':
|
|
1374
|
+
return 'filesystem';
|
|
1375
|
+
case 'url_accessible':
|
|
1376
|
+
case 'api_response':
|
|
1377
|
+
case 'service_running':
|
|
1378
|
+
return 'network';
|
|
1379
|
+
case 'code_compiles':
|
|
1380
|
+
case 'tests_pass':
|
|
1381
|
+
case 'command_executed':
|
|
1382
|
+
case 'dependency_installed':
|
|
1383
|
+
case 'git_committed':
|
|
1384
|
+
case 'package_published':
|
|
1385
|
+
case 'env_var_set':
|
|
1386
|
+
return 'runtime';
|
|
1387
|
+
case 'error_fixed':
|
|
1388
|
+
case 'feature_implemented':
|
|
1389
|
+
case 'refactor_complete':
|
|
1390
|
+
case 'data_transformed':
|
|
1391
|
+
return 'semantic';
|
|
1392
|
+
case 'database_updated':
|
|
1393
|
+
return 'comparison';
|
|
1394
|
+
case 'generic':
|
|
1395
|
+
default:
|
|
1396
|
+
return 'llm';
|
|
1397
|
+
}
|
|
1398
|
+
}
|
|
1399
|
+
/**
|
|
1400
|
+
* Prompt for LLM to generate verification code
|
|
1401
|
+
*/
|
|
1402
|
+
const VERIFICATION_CODE_GENERATION_PROMPT = `You are a verification code generator. Given a claim that an AI assistant made, generate code to verify if the claim is TRUE.
|
|
1403
|
+
|
|
1404
|
+
CLAIM TO VERIFY:
|
|
1405
|
+
Type: {CLAIM_TYPE}
|
|
1406
|
+
Description: {CLAIM_DESCRIPTION}
|
|
1407
|
+
Evidence: {CLAIM_EVIDENCE}
|
|
1408
|
+
Parameters: {CLAIM_PARAMS}
|
|
1409
|
+
|
|
1410
|
+
WORKING DIRECTORY: {WORKING_DIR}
|
|
1411
|
+
|
|
1412
|
+
Generate a verification test. Choose the most appropriate approach:
|
|
1413
|
+
|
|
1414
|
+
1. SHELL COMMAND - For file operations, git, npm, system checks
|
|
1415
|
+
2. JAVASCRIPT - For complex logic, API calls, JSON parsing
|
|
1416
|
+
3. API - For HTTP endpoints, external services
|
|
1417
|
+
|
|
1418
|
+
IMPORTANT RULES:
|
|
1419
|
+
- Code must be READ-ONLY and NON-DESTRUCTIVE (no writes, no deletes, no modifications)
|
|
1420
|
+
- Code must complete quickly (under 10 seconds)
|
|
1421
|
+
- Code must output a clear result that can be parsed
|
|
1422
|
+
- For shell: output should be parseable (exit code 0 = verified, non-zero = failed)
|
|
1423
|
+
- For JavaScript: must export/return { verified: boolean, evidence: string }
|
|
1424
|
+
- Do NOT use interactive commands
|
|
1425
|
+
- Do NOT access sensitive data or credentials
|
|
1426
|
+
|
|
1427
|
+
Respond with JSON:
|
|
1428
|
+
{
|
|
1429
|
+
"testType": "shell" | "javascript" | "api",
|
|
1430
|
+
"code": "the verification code",
|
|
1431
|
+
"description": "what this test does",
|
|
1432
|
+
"expectedOutcome": "what success looks like",
|
|
1433
|
+
"safeToRun": true | false,
|
|
1434
|
+
"safetyReason": "why it's safe/unsafe"
|
|
1435
|
+
}
|
|
1436
|
+
|
|
1437
|
+
Only output valid JSON, nothing else.`;
|
|
1438
|
+
/**
|
|
1439
|
+
* Generate verification code using LLM
|
|
1440
|
+
*/
|
|
1441
|
+
export async function generateVerificationCode(claim, context) {
|
|
1442
|
+
if (!context.llmVerifier) {
|
|
1443
|
+
return null;
|
|
1444
|
+
}
|
|
1445
|
+
try {
|
|
1446
|
+
const prompt = VERIFICATION_CODE_GENERATION_PROMPT
|
|
1447
|
+
.replace('{CLAIM_TYPE}', claim.type)
|
|
1448
|
+
.replace('{CLAIM_DESCRIPTION}', claim.description)
|
|
1449
|
+
.replace('{CLAIM_EVIDENCE}', claim.evidence)
|
|
1450
|
+
.replace('{CLAIM_PARAMS}', JSON.stringify(claim.params, null, 2))
|
|
1451
|
+
.replace('{WORKING_DIR}', context.workingDirectory);
|
|
1452
|
+
const result = await context.llmVerifier(prompt);
|
|
1453
|
+
// Parse the JSON response
|
|
1454
|
+
const jsonMatch = result.match(/\{[\s\S]*\}/);
|
|
1455
|
+
if (!jsonMatch) {
|
|
1456
|
+
return null;
|
|
1457
|
+
}
|
|
1458
|
+
const parsed = JSON.parse(jsonMatch[0]);
|
|
1459
|
+
return {
|
|
1460
|
+
claim,
|
|
1461
|
+
testType: parsed.testType,
|
|
1462
|
+
code: parsed.code,
|
|
1463
|
+
description: parsed.description,
|
|
1464
|
+
expectedOutcome: parsed.expectedOutcome,
|
|
1465
|
+
safetyCheck: parsed.safeToRun
|
|
1466
|
+
};
|
|
1467
|
+
}
|
|
1468
|
+
catch (err) {
|
|
1469
|
+
console.error('Failed to generate verification code:', err);
|
|
1470
|
+
return null;
|
|
1471
|
+
}
|
|
1472
|
+
}
|
|
1473
|
+
/**
|
|
1474
|
+
* Safety patterns to block dangerous code
|
|
1475
|
+
*/
|
|
1476
|
+
const DANGEROUS_PATTERNS = [
|
|
1477
|
+
/\brm\s+-rf?\b/i, // rm commands
|
|
1478
|
+
/\brmdir\b/i, // rmdir
|
|
1479
|
+
/\bdd\s+if=/i, // dd (disk destroyer)
|
|
1480
|
+
/\bmkfs\b/i, // format filesystem
|
|
1481
|
+
/\b>\s*\/dev\//i, // write to devices
|
|
1482
|
+
/\bchmod\s+777\b/i, // dangerous permissions
|
|
1483
|
+
/\bsudo\b/i, // sudo commands
|
|
1484
|
+
/\bcurl.*\|\s*sh\b/i, // pipe to shell
|
|
1485
|
+
/\bwget.*\|\s*sh\b/i, // pipe to shell
|
|
1486
|
+
/\beval\s*\(/i, // eval in JS
|
|
1487
|
+
/new\s+Function\s*\(/i, // Function constructor
|
|
1488
|
+
/child_process/i, // subprocess in JS (unless we control it)
|
|
1489
|
+
/\bexec\s*\(/i, // exec calls
|
|
1490
|
+
/\bspawn\s*\(/i, // spawn calls
|
|
1491
|
+
/writeFile/i, // file writes
|
|
1492
|
+
/appendFile/i, // file appends
|
|
1493
|
+
/unlink\s*\(/i, // file deletion
|
|
1494
|
+
/rmSync/i, // sync deletion
|
|
1495
|
+
/fs\.rm/i, // fs remove
|
|
1496
|
+
/DROP\s+TABLE/i, // SQL injection
|
|
1497
|
+
/DELETE\s+FROM/i, // SQL deletion
|
|
1498
|
+
/TRUNCATE/i, // SQL truncate
|
|
1499
|
+
/;\s*--/, // SQL comment injection
|
|
1500
|
+
/process\.exit/i, // process exit
|
|
1501
|
+
/require\s*\(\s*['"]child/i, // require child_process
|
|
1502
|
+
];
|
|
1503
|
+
/**
|
|
1504
|
+
* Validate that generated code is safe to execute
|
|
1505
|
+
*/
|
|
1506
|
+
export function validateGeneratedCode(test) {
|
|
1507
|
+
// First check the LLM's own safety assessment
|
|
1508
|
+
if (!test.safetyCheck) {
|
|
1509
|
+
return { safe: false, reason: 'LLM marked code as unsafe' };
|
|
1510
|
+
}
|
|
1511
|
+
// Check against dangerous patterns
|
|
1512
|
+
for (const pattern of DANGEROUS_PATTERNS) {
|
|
1513
|
+
if (pattern.test(test.code)) {
|
|
1514
|
+
return {
|
|
1515
|
+
safe: false,
|
|
1516
|
+
reason: `Dangerous pattern detected: ${pattern.source}`
|
|
1517
|
+
};
|
|
1518
|
+
}
|
|
1519
|
+
}
|
|
1520
|
+
// Additional checks for shell commands
|
|
1521
|
+
if (test.testType === 'shell') {
|
|
1522
|
+
// Only allow specific safe commands
|
|
1523
|
+
const safeShellPrefixes = [
|
|
1524
|
+
'ls', 'cat', 'head', 'tail', 'grep', 'find', 'stat', 'file',
|
|
1525
|
+
'test', 'echo', 'pwd', 'wc', 'diff', 'cmp',
|
|
1526
|
+
'git log', 'git status', 'git show', 'git diff', 'git branch',
|
|
1527
|
+
'npm view', 'npm list', 'npm ls',
|
|
1528
|
+
'node -e', 'node --eval',
|
|
1529
|
+
'curl -s', 'curl --silent', 'wget -q',
|
|
1530
|
+
'jq', 'python -c', 'python3 -c',
|
|
1531
|
+
'lsof', 'netstat', 'ss', 'ps',
|
|
1532
|
+
'which', 'type', 'command -v',
|
|
1533
|
+
];
|
|
1534
|
+
const trimmedCode = test.code.trim().toLowerCase();
|
|
1535
|
+
const startsWithSafe = safeShellPrefixes.some(prefix => trimmedCode.startsWith(prefix.toLowerCase()));
|
|
1536
|
+
if (!startsWithSafe) {
|
|
1537
|
+
// Check if it's a simple test/check command
|
|
1538
|
+
if (!trimmedCode.startsWith('[') && !trimmedCode.startsWith('if ')) {
|
|
1539
|
+
return {
|
|
1540
|
+
safe: false,
|
|
1541
|
+
reason: 'Shell command does not start with a known safe prefix'
|
|
1542
|
+
};
|
|
1543
|
+
}
|
|
1544
|
+
}
|
|
1545
|
+
}
|
|
1546
|
+
// For JavaScript, ensure it's a simple expression
|
|
1547
|
+
if (test.testType === 'javascript') {
|
|
1548
|
+
// Check code length - very long code is suspicious
|
|
1549
|
+
if (test.code.length > 2000) {
|
|
1550
|
+
return { safe: false, reason: 'JavaScript code too long' };
|
|
1551
|
+
}
|
|
1552
|
+
}
|
|
1553
|
+
return { safe: true, reason: 'All safety checks passed' };
|
|
1554
|
+
}
|
|
1555
|
+
/**
|
|
1556
|
+
* Execute a generated verification test
|
|
1557
|
+
*/
|
|
1558
|
+
export async function executeGeneratedTest(test, context) {
|
|
1559
|
+
const baseResult = {
|
|
1560
|
+
claim: test.claim,
|
|
1561
|
+
timestamp: new Date().toISOString()
|
|
1562
|
+
};
|
|
1563
|
+
// Validate safety first
|
|
1564
|
+
const safetyResult = validateGeneratedCode(test);
|
|
1565
|
+
if (!safetyResult.safe) {
|
|
1566
|
+
return {
|
|
1567
|
+
...baseResult,
|
|
1568
|
+
verified: false,
|
|
1569
|
+
confidence: 'low',
|
|
1570
|
+
evidence: `Generated test blocked: ${safetyResult.reason}`,
|
|
1571
|
+
error: 'Safety validation failed'
|
|
1572
|
+
};
|
|
1573
|
+
}
|
|
1574
|
+
try {
|
|
1575
|
+
switch (test.testType) {
|
|
1576
|
+
case 'shell': {
|
|
1577
|
+
const { stdout, stderr } = await execAsync(test.code, {
|
|
1578
|
+
cwd: context.workingDirectory,
|
|
1579
|
+
timeout: 10000, // 10 second timeout
|
|
1580
|
+
maxBuffer: 1024 * 1024 // 1MB max output
|
|
1581
|
+
});
|
|
1582
|
+
const output = (stdout + stderr).trim();
|
|
1583
|
+
// Shell convention: exit 0 = success
|
|
1584
|
+
return {
|
|
1585
|
+
...baseResult,
|
|
1586
|
+
verified: true,
|
|
1587
|
+
confidence: 'high',
|
|
1588
|
+
evidence: `Test passed. Output: ${output.slice(0, 500)}`
|
|
1589
|
+
};
|
|
1590
|
+
}
|
|
1591
|
+
case 'javascript': {
|
|
1592
|
+
// Execute JavaScript in a sandboxed way using node -e
|
|
1593
|
+
const wrappedCode = `
|
|
1594
|
+
const result = (async () => {
|
|
1595
|
+
${test.code}
|
|
1596
|
+
})();
|
|
1597
|
+
result.then(r => console.log(JSON.stringify(r))).catch(e => {
|
|
1598
|
+
console.log(JSON.stringify({ verified: false, evidence: e.message }));
|
|
1599
|
+
});
|
|
1600
|
+
`;
|
|
1601
|
+
const { stdout } = await execAsync(`node -e ${JSON.stringify(wrappedCode)}`, {
|
|
1602
|
+
cwd: context.workingDirectory,
|
|
1603
|
+
timeout: 10000
|
|
1604
|
+
});
|
|
1605
|
+
try {
|
|
1606
|
+
const result = JSON.parse(stdout.trim());
|
|
1607
|
+
return {
|
|
1608
|
+
...baseResult,
|
|
1609
|
+
verified: result.verified,
|
|
1610
|
+
confidence: 'high',
|
|
1611
|
+
evidence: result.evidence
|
|
1612
|
+
};
|
|
1613
|
+
}
|
|
1614
|
+
catch {
|
|
1615
|
+
return {
|
|
1616
|
+
...baseResult,
|
|
1617
|
+
verified: false,
|
|
1618
|
+
confidence: 'medium',
|
|
1619
|
+
evidence: `JavaScript output: ${stdout.slice(0, 500)}`
|
|
1620
|
+
};
|
|
1621
|
+
}
|
|
1622
|
+
}
|
|
1623
|
+
case 'api': {
|
|
1624
|
+
// For API tests, use curl
|
|
1625
|
+
const { stdout } = await execAsync(test.code, {
|
|
1626
|
+
cwd: context.workingDirectory,
|
|
1627
|
+
timeout: 15000
|
|
1628
|
+
});
|
|
1629
|
+
// Try to parse as JSON result
|
|
1630
|
+
try {
|
|
1631
|
+
const result = JSON.parse(stdout.trim());
|
|
1632
|
+
return {
|
|
1633
|
+
...baseResult,
|
|
1634
|
+
verified: Boolean(result.verified ?? result.success ?? result.ok),
|
|
1635
|
+
confidence: 'high',
|
|
1636
|
+
evidence: `API response: ${JSON.stringify(result).slice(0, 500)}`
|
|
1637
|
+
};
|
|
1638
|
+
}
|
|
1639
|
+
catch {
|
|
1640
|
+
// Non-JSON response - check for success indicators
|
|
1641
|
+
const isSuccess = stdout.includes('200') || stdout.includes('success') || stdout.includes('ok');
|
|
1642
|
+
return {
|
|
1643
|
+
...baseResult,
|
|
1644
|
+
verified: isSuccess,
|
|
1645
|
+
confidence: 'medium',
|
|
1646
|
+
evidence: `API output: ${stdout.slice(0, 500)}`
|
|
1647
|
+
};
|
|
1648
|
+
}
|
|
1649
|
+
}
|
|
1650
|
+
default:
|
|
1651
|
+
return {
|
|
1652
|
+
...baseResult,
|
|
1653
|
+
verified: false,
|
|
1654
|
+
confidence: 'low',
|
|
1655
|
+
evidence: `Unknown test type: ${test.testType}`
|
|
1656
|
+
};
|
|
1657
|
+
}
|
|
1658
|
+
}
|
|
1659
|
+
catch (err) {
|
|
1660
|
+
// Command failed (non-zero exit) = verification failed
|
|
1661
|
+
return {
|
|
1662
|
+
...baseResult,
|
|
1663
|
+
verified: false,
|
|
1664
|
+
confidence: 'high',
|
|
1665
|
+
evidence: `Test failed: ${err instanceof Error ? err.message : 'Unknown error'}`,
|
|
1666
|
+
error: err instanceof Error ? err.message : 'Unknown error'
|
|
1667
|
+
};
|
|
1668
|
+
}
|
|
1669
|
+
}
|
|
1670
|
+
/**
|
|
1671
|
+
* Verify a claim using LLM-generated runtime test
|
|
1672
|
+
*/
|
|
1673
|
+
export async function verifyWithGeneratedTest(claim, context) {
|
|
1674
|
+
const baseResult = {
|
|
1675
|
+
claim,
|
|
1676
|
+
timestamp: new Date().toISOString()
|
|
1677
|
+
};
|
|
1678
|
+
// Generate verification code
|
|
1679
|
+
const test = await generateVerificationCode(claim, context);
|
|
1680
|
+
if (!test) {
|
|
1681
|
+
return {
|
|
1682
|
+
...baseResult,
|
|
1683
|
+
verified: false,
|
|
1684
|
+
confidence: 'low',
|
|
1685
|
+
evidence: 'Failed to generate verification test'
|
|
1686
|
+
};
|
|
1687
|
+
}
|
|
1688
|
+
// Execute the generated test
|
|
1689
|
+
return executeGeneratedTest(test, context);
|
|
1690
|
+
}
|
|
1691
|
+
/**
|
|
1692
|
+
* Full verification using LLM-generated tests
|
|
1693
|
+
* This is the most powerful verification method - LLM decides HOW to verify each claim
|
|
1694
|
+
*/
|
|
1695
|
+
export async function verifyResponseWithGeneratedTests(response, context, responseId) {
|
|
1696
|
+
// Extract claims using LLM
|
|
1697
|
+
const claims = context.llmVerifier
|
|
1698
|
+
? await extractClaimsWithLLM(response, context.llmVerifier)
|
|
1699
|
+
: extractClaims(response);
|
|
1700
|
+
const results = [];
|
|
1701
|
+
for (const claim of claims) {
|
|
1702
|
+
// For each claim, generate and run a custom verification test
|
|
1703
|
+
const result = await verifyWithGeneratedTest(claim, context);
|
|
1704
|
+
results.push(result);
|
|
1705
|
+
}
|
|
1706
|
+
const verified = results.filter(r => r.verified).length;
|
|
1707
|
+
const failed = results.filter(r => !r.verified && r.confidence === 'high').length;
|
|
1708
|
+
const inconclusive = results.filter(r => !r.verified && r.confidence !== 'high').length;
|
|
1709
|
+
let overallVerdict;
|
|
1710
|
+
if (failed > 0) {
|
|
1711
|
+
overallVerdict = 'contradicted';
|
|
1712
|
+
}
|
|
1713
|
+
else if (verified === claims.length && claims.length > 0) {
|
|
1714
|
+
overallVerdict = 'verified';
|
|
1715
|
+
}
|
|
1716
|
+
else if (verified > 0) {
|
|
1717
|
+
overallVerdict = 'partially_verified';
|
|
1718
|
+
}
|
|
1719
|
+
else {
|
|
1720
|
+
overallVerdict = 'unverified';
|
|
1721
|
+
}
|
|
1722
|
+
return {
|
|
1723
|
+
responseId: responseId || `response-${Date.now()}`,
|
|
1724
|
+
timestamp: new Date().toISOString(),
|
|
1725
|
+
claims,
|
|
1726
|
+
results,
|
|
1727
|
+
summary: {
|
|
1728
|
+
total: claims.length,
|
|
1729
|
+
verified,
|
|
1730
|
+
failed,
|
|
1731
|
+
inconclusive
|
|
1732
|
+
},
|
|
1733
|
+
overallVerdict
|
|
1734
|
+
};
|
|
1735
|
+
}
|
|
1736
|
+
/**
|
|
1737
|
+
* Hybrid verification - uses generated tests when available, falls back to predefined tests
|
|
1738
|
+
*/
|
|
1739
|
+
export async function verifyResponseHybrid(response, context, responseId) {
|
|
1740
|
+
const claims = context.llmVerifier
|
|
1741
|
+
? await extractClaimsWithLLM(response, context.llmVerifier)
|
|
1742
|
+
: extractClaims(response);
|
|
1743
|
+
const results = [];
|
|
1744
|
+
for (const claim of claims) {
|
|
1745
|
+
let result;
|
|
1746
|
+
// Try LLM-generated test first if LLM is available
|
|
1747
|
+
if (context.llmVerifier) {
|
|
1748
|
+
const generatedTest = await generateVerificationCode(claim, context);
|
|
1749
|
+
if (generatedTest) {
|
|
1750
|
+
const safety = validateGeneratedCode(generatedTest);
|
|
1751
|
+
if (safety.safe) {
|
|
1752
|
+
// Use generated test
|
|
1753
|
+
result = await executeGeneratedTest(generatedTest, context);
|
|
1754
|
+
results.push(result);
|
|
1755
|
+
continue;
|
|
1756
|
+
}
|
|
1757
|
+
}
|
|
1758
|
+
}
|
|
1759
|
+
// Fall back to predefined verification
|
|
1760
|
+
const standardTypes = [
|
|
1761
|
+
'file_created', 'file_modified', 'file_deleted', 'code_compiles',
|
|
1762
|
+
'tests_pass', 'git_committed', 'package_published', 'command_executed',
|
|
1763
|
+
'dependency_installed', 'service_running', 'url_accessible', 'content_contains'
|
|
1764
|
+
];
|
|
1765
|
+
let test;
|
|
1766
|
+
if (standardTypes.includes(claim.type)) {
|
|
1767
|
+
test = generateVerificationTest(claim);
|
|
1768
|
+
}
|
|
1769
|
+
else {
|
|
1770
|
+
test = generateExtendedVerificationTest(claim, context);
|
|
1771
|
+
}
|
|
1772
|
+
try {
|
|
1773
|
+
result = await test();
|
|
1774
|
+
}
|
|
1775
|
+
catch (err) {
|
|
1776
|
+
result = {
|
|
1777
|
+
claim,
|
|
1778
|
+
verified: false,
|
|
1779
|
+
confidence: 'low',
|
|
1780
|
+
evidence: 'Verification failed',
|
|
1781
|
+
error: err instanceof Error ? err.message : 'Unknown error',
|
|
1782
|
+
timestamp: new Date().toISOString()
|
|
1783
|
+
};
|
|
1784
|
+
}
|
|
1785
|
+
results.push(result);
|
|
1786
|
+
}
|
|
1787
|
+
const verified = results.filter(r => r.verified).length;
|
|
1788
|
+
const failed = results.filter(r => !r.verified && r.confidence === 'high').length;
|
|
1789
|
+
const inconclusive = results.filter(r => !r.verified && r.confidence !== 'high').length;
|
|
1790
|
+
let overallVerdict;
|
|
1791
|
+
if (failed > 0) {
|
|
1792
|
+
overallVerdict = 'contradicted';
|
|
1793
|
+
}
|
|
1794
|
+
else if (verified === claims.length && claims.length > 0) {
|
|
1795
|
+
overallVerdict = 'verified';
|
|
1796
|
+
}
|
|
1797
|
+
else if (verified > 0) {
|
|
1798
|
+
overallVerdict = 'partially_verified';
|
|
1799
|
+
}
|
|
1800
|
+
else {
|
|
1801
|
+
overallVerdict = 'unverified';
|
|
1802
|
+
}
|
|
1803
|
+
return {
|
|
1804
|
+
responseId: responseId || `response-${Date.now()}`,
|
|
1805
|
+
timestamp: new Date().toISOString(),
|
|
1806
|
+
claims,
|
|
1807
|
+
results,
|
|
1808
|
+
summary: {
|
|
1809
|
+
total: claims.length,
|
|
1810
|
+
verified,
|
|
1811
|
+
failed,
|
|
1812
|
+
inconclusive
|
|
1813
|
+
},
|
|
1814
|
+
overallVerdict
|
|
1815
|
+
};
|
|
1816
|
+
}
|
|
829
1817
|
//# sourceMappingURL=responseVerifier.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responseVerifier.js","sourceRoot":"","sources":["../../src/core/responseVerifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAiFlC;;;GAGG;AACH,MAAM,uBAAuB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6CAwCa,CAAC;AAE9C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,QAAgB,EAChB,OAA6C;IAE7C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,yCAAyC;QACzC,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,uBAAuB,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QACtF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;QAErC,sBAAsB;QACtB,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAIpC,CAAC;QAEH,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC1B,IAAI,EAAE,KAAK,CAAC,IAAiB;YAC7B,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,QAAQ,EAAE,kBAAkB;YAC5B,MAAM,EAAE,KAAK,CAAC,MAAmC;SAClD,CAAC,CAAC,CAAC;IACN,CAAC;IAAC,MAAM,CAAC;QACP,+CAA+C;QAC/C,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IAEpC,4CAA4C;IAC5C,MAAM,YAAY,GAAG,CAAC,IAAsC,EAAE,IAAY,EAAE,QAAgB,EAAE,EAAE;QAC9F,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI;gBACJ,WAAW,EAAE,QAAQ,IAAI,QAAQ,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE;gBACnF,QAAQ;gBACR,MAAM,EAAE,EAAE,IAAI,EAAE;aACjB,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IAEF,yDAAyD;IACzD,MAAM,oBAAoB,GAAG;QAC3B,oDAAoD;QACpD,uIAAuI;QACvI,wCAAwC;QACxC,iGAAiG;QACjG,yCAAyC;QACzC,wGAAwG;QACxG,+CAA+C;QAC/C,8EAA8E;QAC9E,2BAA2B;QAC3B,uFAAuF;QACvF,8CAA8C;QAC9C,kGAAkG;KACnG,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,oBAAoB,EAAE,CAAC;QAC3C,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,oBAAoB;QAC3C,IAAI,KAAK,CAAC;QACV,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACjD,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACb,YAAY,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;IACH,CAAC;IAED,6DAA6D;IAC7D,MAAM,eAAe,GAAG;QACtB,+CAA+C;QAC/C,uHAAuH;QACvH,uBAAuB;QACvB,6GAA6G;QAC7G,sBAAsB;QACtB,sEAAsE;QACtE,uBAAuB;QACvB,6FAA6F;QAC7F,2BAA2B;QAC3B,6FAA6F;KAC9F,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;QACtC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;QACtB,IAAI,KAAK,CAAC;QACV,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACjD,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACb,YAAY,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;IACH,CAAC;IAED,oCAAoC;IACpC,MAAM,WAAW,GAAG;QAClB,6DAA6D;QAC7D,wCAAwC;QACxC,uDAAuD;QACvD,gDAAgD;KACjD,CAAC;IAEF,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;QAClC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;QACtB,IAAI,KAAK,CAAC;QACV,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACjD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1C,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,kBAAkB;oBACxB,WAAW,EAAE,YAAY,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,gBAAgB;oBAChG,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;oBAClB,MAAM,EAAE,EAAE,OAAO,EAAE;iBACpB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,wCAAwC;IACxC,MAAM,aAAa,GAAG;QACpB,4FAA4F;QAC5F,6EAA6E;QAC7E,2BAA2B;QAC3B,2DAA2D;QAC3D,qCAAqC;QACrC,6CAA6C;KAC9C,CAAC;IAEF,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;QACpC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,eAAe;gBACrB,WAAW,EAAE,8BAA8B;gBAC3C,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;gBAC5C,MAAM,EAAE,EAAE;aACX,CAAC,CAAC;YACH,aAAa,GAAG,IAAI,CAAC;YACrB,MAAM;QACR,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,MAAM,YAAY,GAAG;QACnB,oEAAoE;QACpE,0CAA0C;QAC1C,2BAA2B;QAC3B,kDAAkD;QAClD,iDAAiD;QACjD,0CAA0C;KAC3C,CAAC;IAEF,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;QACnC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;QACtB,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,YAAY,IAAI,KAAK,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,YAAY;gBAClB,WAAW,EAAE,YAAY;gBACzB,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;gBAClB,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE;aACjE,CAAC,CAAC;YACH,YAAY,GAAG,IAAI,CAAC;YACpB,MAAM;QACR,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,MAAM,WAAW,GAAG;QAClB,qFAAqF;QACrF,wDAAwD;QACxD,uCAAuC;QACvC,6BAA6B;QAC7B,2CAA2C;QAC3C,2BAA2B;KAC5B,CAAC;IAEF,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;QAClC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;QACtB,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,WAAW,IAAI,KAAK,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,eAAe;gBACrB,WAAW,EAAE,wBAAwB;gBACrC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;gBAClB,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE;aAC3B,CAAC,CAAC;YACH,WAAW,GAAG,IAAI,CAAC;YACnB,MAAM;QACR,CAAC;IACH,CAAC;IAED,kCAAkC;IAClC,MAAM,eAAe,GAAG;QACtB,0CAA0C;QAC1C,mCAAmC;QACnC,iBAAiB;QACjB,kCAAkC;QAClC,gDAAgD;QAChD,4BAA4B;KAC7B,CAAC;IAEF,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;QACtC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;QACtB,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,eAAe,IAAI,KAAK,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,mBAAmB;gBACzB,WAAW,EAAE,uBAAuB;gBACpC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;gBAClB,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE;aAC9B,CAAC,CAAC;YACH,eAAe,GAAG,IAAI,CAAC;YACvB,MAAM;QACR,CAAC;IACH,CAAC;IAED,gCAAgC;IAChC,MAAM,gBAAgB,GAAG;QACvB,wGAAwG;QACxG,2EAA2E;KAC5E,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE,CAAC;QACvC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;QACtB,IAAI,KAAK,CAAC;QACV,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACjD,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,cAAc;oBACpB,WAAW,EAAE,QAAQ,QAAQ,cAAc;oBAC3C,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;oBAClB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;iBAC3B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,0CAA0C;IAC1C,MAAM,eAAe,GAAG;QACtB,sFAAsF;QACtF,mDAAmD;QACnD,4EAA4E;KAC7E,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;QACtC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;QACtB,IAAI,KAAK,CAAC;QACV,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACjD,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,sBAAsB;oBAC5B,WAAW,EAAE,WAAW,WAAW,gBAAgB;oBACnD,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;oBAClB,MAAM,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;iBACjC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,kCAAkC;IAClC,MAAM,eAAe,GAAG;QACtB,+GAA+G;QAC/G,uDAAuD;QACvD,yEAAyE;QACzE,0DAA0D;KAC3D,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;QACtC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;QACtB,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACpC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;gBAC7B,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,iBAAiB;oBACvB,WAAW,EAAE,2BAA2B,IAAI,EAAE;oBAC9C,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;oBAClB,MAAM,EAAE,EAAE,IAAI,EAAE;iBACjB,CAAC,CAAC;gBACH,MAAM,CAAC,sCAAsC;YAC/C,CAAC;QACH,CAAC;IACH,CAAC;IAED,iCAAiC;IACjC,MAAM,WAAW,GAAG;QAClB,4DAA4D;QAC5D,+CAA+C;QAC/C,4EAA4E;QAC5E,8CAA8C;KAC/C,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;QAClC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;QACtB,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACtB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC,8BAA8B;YAC/E,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,gBAAgB;gBACtB,WAAW,EAAE,OAAO,GAAG,gBAAgB;gBACvC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;gBAClB,MAAM,EAAE,EAAE,GAAG,EAAE;aAChB,CAAC,CAAC;YACH,MAAM,CAAC,kCAAkC;QAC3C,CAAC;IACH,CAAC;IAED,mCAAmC;IACnC,MAAM,eAAe,GAAG;QACtB,mGAAmG;QACnG,6EAA6E;KAC9E,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;QACtC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;QACtB,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,KAAK,EAAE,CAAC;YACV,kCAAkC;YAClC,kCAAkC;YAClC,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAEjD,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,kBAAkB;oBACxB,WAAW,EAAE,QAAQ,QAAQ,6BAA6B;oBAC1D,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;oBAClB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE;iBACpC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAsB;IAC7D,MAAM,UAAU,GAAG;QACjB,KAAK;QACL,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;IAEF,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,cAAc,CAAC;QACpB,KAAK,eAAe;YAClB,OAAO,KAAK,IAAI,EAAE;gBAChB,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,IAAc,CAAC;gBAC7C,IAAI,CAAC;oBACH,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;oBAClG,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBAC1C,MAAM,gBAAgB,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,mBAAmB;oBAE1F,OAAO;wBACL,GAAG,UAAU;wBACb,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE;wBACxB,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;wBAChD,QAAQ,EAAE,sBAAsB,KAAK,CAAC,IAAI,qBAAqB,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE;qBAC3F,CAAC;gBACJ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO;wBACL,GAAG,UAAU;wBACb,QAAQ,EAAE,KAAK;wBACf,UAAU,EAAE,MAAM;wBAClB,QAAQ,EAAE,qBAAqB;wBAC/B,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;qBAC5D,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC;QAEJ,KAAK,cAAc;YACjB,OAAO,KAAK,IAAI,EAAE;gBAChB,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,IAAc,CAAC;gBAC7C,IAAI,CAAC;oBACH,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;oBAClG,MAAM,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBAC5B,OAAO;wBACL,GAAG,UAAU;wBACb,QAAQ,EAAE,KAAK;wBACf,UAAU,EAAE,MAAM;wBAClB,QAAQ,EAAE,6CAA6C;qBACxD,CAAC;gBACJ,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO;wBACL,GAAG,UAAU;wBACb,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,MAAM;wBAClB,QAAQ,EAAE,yCAAyC;qBACpD,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC;QAEJ,KAAK,eAAe;YAClB,OAAO,KAAK,IAAI,EAAE;gBAChB,IAAI,CAAC;oBACH,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,+CAA+C,EAAE;wBAC1F,OAAO,EAAE,KAAK;wBACd,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;qBACnB,CAAC,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;oBAC/B,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAErE,OAAO;wBACL,GAAG,UAAU;wBACb,QAAQ,EAAE,CAAC,SAAS;wBACpB,UAAU,EAAE,MAAM;wBAClB,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,6BAA6B,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,4BAA4B;qBACzG,CAAC;gBACJ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO;wBACL,GAAG,UAAU;wBACb,QAAQ,EAAE,KAAK;wBACf,UAAU,EAAE,MAAM;wBAClB,QAAQ,EAAE,0BAA0B;wBACpC,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;qBAC5D,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC;QAEJ,KAAK,YAAY;YACf,OAAO,KAAK,IAAI,EAAE;gBAChB,IAAI,CAAC;oBACH,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,eAAe,EAAE;wBAC1D,OAAO,EAAE,MAAM;wBACf,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;qBACnB,CAAC,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;oBAC/B,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAE1E,OAAO;wBACL,GAAG,UAAU;wBACb,QAAQ,EAAE,CAAC,SAAS;wBACpB,UAAU,EAAE,MAAM;wBAClB,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,kBAAkB,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB;qBAClF,CAAC;gBACJ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO;wBACL,GAAG,UAAU;wBACb,QAAQ,EAAE,KAAK;wBACf,UAAU,EAAE,MAAM;wBAClB,QAAQ,EAAE,uBAAuB;wBACjC,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;qBAC5D,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC;QAEJ,KAAK,eAAe;YAClB,OAAO,KAAK,IAAI,EAAE;gBAChB,IAAI,CAAC;oBACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,sBAAsB,EAAE;wBACzD,OAAO,EAAE,IAAI;wBACb,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;qBACnB,CAAC,CAAC;oBACH,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,IAAc,CAAC;oBAEzC,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC9C,OAAO;4BACL,GAAG,UAAU;4BACb,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAE,MAAM;4BAClB,QAAQ,EAAE,iBAAiB,MAAM,CAAC,IAAI,EAAE,EAAE;yBAC3C,CAAC;oBACJ,CAAC;oBAED,mCAAmC;oBACnC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,SAAS,CAAC,6BAA6B,EAAE;wBAC3E,OAAO,EAAE,IAAI;qBACd,CAAC,CAAC;oBAEH,OAAO;wBACL,GAAG,UAAU;wBACb,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,QAAQ;wBACpB,QAAQ,EAAE,uBAAuB,SAAS,CAAC,IAAI,EAAE,EAAE;qBACpD,CAAC;gBACJ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO;wBACL,GAAG,UAAU;wBACb,QAAQ,EAAE,KAAK;wBACf,UAAU,EAAE,MAAM;wBAClB,QAAQ,EAAE,kBAAkB;wBAC5B,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;qBAC5D,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC;QAEJ,KAAK,mBAAmB;YACtB,OAAO,KAAK,IAAI,EAAE;gBAChB,IAAI,CAAC;oBACH,4CAA4C;oBAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;oBAC5D,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBACvD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAsC,CAAC;oBAExE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,YAAY,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,eAAe,EAAE;wBACrF,OAAO,EAAE,KAAK;qBACf,CAAC,CAAC;oBAEH,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,OAAO,CAAC;oBAEhD,OAAO;wBACL,GAAG,UAAU;wBACb,QAAQ,EAAE,SAAS;wBACnB,UAAU,EAAE,MAAM;wBAClB,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,0BAA0B;qBAC7F,CAAC;gBACJ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO;wBACL,GAAG,UAAU;wBACb,QAAQ,EAAE,KAAK;wBACf,UAAU,EAAE,QAAQ;wBACpB,QAAQ,EAAE,kCAAkC;wBAC5C,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;qBAC5D,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC;QAEJ,KAAK,kBAAkB;YACrB,+DAA+D;YAC/D,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC;gBAClB,GAAG,UAAU;gBACb,QAAQ,EAAE,IAAI,EAAE,oCAAoC;gBACpD,UAAU,EAAE,KAAK;gBACjB,QAAQ,EAAE,oDAAoD;aAC/D,CAAC,CAAC;QAEL,KAAK,sBAAsB;YACzB,OAAO,KAAK,IAAI,EAAE;gBAChB,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,OAAiB,CAAC;gBACnD,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,OAAO;wBACL,GAAG,UAAU;wBACb,QAAQ,EAAE,KAAK;wBACf,UAAU,EAAE,KAAK;wBACjB,QAAQ,EAAE,0BAA0B;qBACrC,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC;oBACH,0CAA0C;oBAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;oBAC5E,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBAE1B,8BAA8B;oBAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;oBAC5D,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBACvD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAwF,CAAC;oBAE1H,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC,WAAW,CAAC,CAAC;oBAErF,OAAO;wBACL,GAAG,UAAU;wBACb,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;wBACtC,QAAQ,EAAE,MAAM;4BACd,CAAC,CAAC,WAAW,WAAW,eAAe,MAAM,GAAG;4BAChD,CAAC,CAAC,WAAW,WAAW,gDAAgD;qBAC3E,CAAC;gBACJ,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO;wBACL,GAAG,UAAU;wBACb,QAAQ,EAAE,KAAK;wBACf,UAAU,EAAE,MAAM;wBAClB,QAAQ,EAAE,WAAW,WAAW,4BAA4B;qBAC7D,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC;QAEJ,KAAK,iBAAiB;YACpB,OAAO,KAAK,IAAI,EAAE;gBAChB,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,IAA0B,CAAC;gBACrD,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,IAA0B,CAAC;gBAErD,IAAI,CAAC;oBACH,IAAI,IAAI,EAAE,CAAC;wBACT,0BAA0B;wBAC1B,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,YAAY,IAAI,sCAAsC,IAAI,EAAE,EAAE;4BAC/F,OAAO,EAAE,IAAI;yBACd,CAAC,CAAC;wBACH,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;wBAC3C,OAAO;4BACL,GAAG,UAAU;4BACb,QAAQ,EAAE,SAAS;4BACnB,UAAU,EAAE,MAAM;4BAClB,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAC,CAAC,4BAA4B,IAAI,EAAE;yBAC7F,CAAC;oBACJ,CAAC;yBAAM,IAAI,IAAI,EAAE,CAAC;wBAChB,sCAAsC;wBACtC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,aAAa,IAAI,mCAAmC,IAAI,kBAAkB,EAAE;4BAC7G,OAAO,EAAE,IAAI;yBACd,CAAC,CAAC;wBACH,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;wBAC3C,OAAO;4BACL,GAAG,UAAU;4BACb,QAAQ,EAAE,SAAS;4BACnB,UAAU,EAAE,QAAQ;4BACpB,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,YAAY,IAAI,yBAAyB,CAAC,CAAC,CAAC,YAAY,IAAI,aAAa;yBAChG,CAAC;oBACJ,CAAC;oBACD,OAAO;wBACL,GAAG,UAAU;wBACb,QAAQ,EAAE,KAAK;wBACf,UAAU,EAAE,KAAK;wBACjB,QAAQ,EAAE,mDAAmD;qBAC9D,CAAC;gBACJ,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO;wBACL,GAAG,UAAU;wBACb,QAAQ,EAAE,KAAK;wBACf,UAAU,EAAE,QAAQ;wBACpB,QAAQ,EAAE,iCAAiC;qBAC5C,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC;QAEJ,KAAK,gBAAgB;YACnB,OAAO,KAAK,IAAI,EAAE;gBAChB,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,GAAa,CAAC;gBACvC,IAAI,CAAC,GAAG,EAAE,CAAC;oBACT,OAAO;wBACL,GAAG,UAAU;wBACb,QAAQ,EAAE,KAAK;wBACf,UAAU,EAAE,KAAK;wBACjB,QAAQ,EAAE,iBAAiB;qBAC5B,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC;oBACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,2CAA2C,GAAG,QAAQ,EAAE;wBACzF,OAAO,EAAE,KAAK;qBACf,CAAC,CAAC;oBACH,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;oBAC/C,MAAM,YAAY,GAAG,UAAU,IAAI,GAAG,IAAI,UAAU,GAAG,GAAG,CAAC;oBAE3D,OAAO;wBACL,GAAG,UAAU;wBACb,QAAQ,EAAE,YAAY;wBACtB,UAAU,EAAE,MAAM;wBAClB,QAAQ,EAAE,uBAAuB,UAAU,EAAE;qBAC9C,CAAC;gBACJ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO;wBACL,GAAG,UAAU;wBACb,QAAQ,EAAE,KAAK;wBACf,UAAU,EAAE,MAAM;wBAClB,QAAQ,EAAE,uBAAuB;wBACjC,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;qBAC5D,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC;QAEJ,KAAK,kBAAkB;YACrB,OAAO,KAAK,IAAI,EAAE;gBAChB,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,IAAc,CAAC;gBAC7C,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,OAAiB,CAAC;gBAElD,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;oBAC7B,OAAO;wBACL,GAAG,UAAU;wBACb,QAAQ,EAAE,KAAK;wBACf,UAAU,EAAE,KAAK;wBACjB,QAAQ,EAAE,qCAAqC;qBAChD,CAAC;gBACJ,CAAC;gBAED,IAAI,CAAC;oBACH,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;oBAClG,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;oBACzD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;oBAE9C,OAAO;wBACL,GAAG,UAAU;wBACb,QAAQ,EAAE,QAAQ;wBAClB,UAAU,EAAE,MAAM;wBAClB,QAAQ,EAAE,QAAQ;4BAChB,CAAC,CAAC,oCAAoC;4BACtC,CAAC,CAAC,0BAA0B,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM;qBAC5D,CAAC;gBACJ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO;wBACL,GAAG,UAAU;wBACb,QAAQ,EAAE,KAAK;wBACf,UAAU,EAAE,MAAM;wBAClB,QAAQ,EAAE,qBAAqB;wBAC/B,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;qBAC5D,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC;QAEJ;YACE,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC;gBAClB,GAAG,UAAU;gBACb,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,KAAK;gBACjB,QAAQ,EAAE,uBAAuB,KAAK,CAAC,IAAI,EAAE;aAC9C,CAAC,CAAC;IACP,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,QAAgB,EAChB,UAAmB;IAEnB,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,OAAO,GAA8B,EAAE,CAAC;IAE9C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC;gBACX,KAAK;gBACL,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,KAAK;gBACjB,QAAQ,EAAE,qCAAqC;gBAC/C,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;gBAC3D,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;IACxD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IAClF,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IAExF,IAAI,cAAoD,CAAC;IACzD,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACf,cAAc,GAAG,cAAc,CAAC;IAClC,CAAC;SAAM,IAAI,QAAQ,KAAK,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3D,cAAc,GAAG,UAAU,CAAC;IAC9B,CAAC;SAAM,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QACxB,cAAc,GAAG,oBAAoB,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,cAAc,GAAG,YAAY,CAAC;IAChC,CAAC;IAED,OAAO;QACL,UAAU,EAAE,UAAU,IAAI,YAAY,IAAI,CAAC,GAAG,EAAE,EAAE;QAClD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,MAAM;QACN,OAAO;QACP,OAAO,EAAE;YACP,KAAK,EAAE,MAAM,CAAC,MAAM;YACpB,QAAQ;YACR,MAAM;YACN,YAAY;SACb;QACD,cAAc;KACf,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAA0B;IACjE,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;IAC1E,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAC7C,KAAK,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;IAC1E,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,MAAM,YAAY,GAAG;QACnB,QAAQ,EAAE,GAAG;QACb,kBAAkB,EAAE,IAAI;QACxB,UAAU,EAAE,GAAG;QACf,YAAY,EAAE,GAAG;KAClB,CAAC;IAEF,KAAK,CAAC,IAAI,CAAC,YAAY,YAAY,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACrG,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,OAAO,CAAC,KAAK,WAAW,MAAM,CAAC,OAAO,CAAC,QAAQ,cAAc,MAAM,CAAC,OAAO,CAAC,MAAM,SAAS,CAAC,CAAC;IAC1H,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAEpC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAChF,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;YAClD,KAAK,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAC5D,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,KAAK,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;IAE1E,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,QAAgB;IAChD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC9C,OAAO,MAAM,CAAC,cAAc,KAAK,UAAU,IAAI,MAAM,CAAC,cAAc,KAAK,oBAAoB,CAAC;AAChG,CAAC"}
|
|
1
|
+
{"version":3,"file":"responseVerifier.js","sourceRoot":"","sources":["../../src/core/responseVerifier.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "erosolar-cli",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.22",
|
|
4
4
|
"description": "Unified AI agent framework for the command line - Multi-provider support with schema-driven tools, code intelligence, and transparent reasoning",
|
|
5
5
|
"main": "dist/bin/erosolar-optimized.js",
|
|
6
6
|
"type": "module",
|