@lesliechan721/agent-skill-eval 0.1.0-beta.8 → 0.1.0-beta.9
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/bin.js +149 -39
- package/dist/bin.js.map +1 -1
- package/dist/codex-eval-app-server.d.ts +199 -0
- package/dist/codex-eval-app-server.js +1366 -0
- package/dist/codex-eval-app-server.js.map +1 -0
- package/dist/codex-eval-cases.d.ts +43 -0
- package/dist/codex-eval-cases.js +327 -0
- package/dist/codex-eval-cases.js.map +1 -0
- package/dist/codex-eval-isolation.d.ts +61 -0
- package/dist/codex-eval-isolation.js +318 -0
- package/dist/codex-eval-isolation.js.map +1 -0
- package/dist/codex-eval-process-tree.d.ts +38 -0
- package/dist/codex-eval-process-tree.js +803 -0
- package/dist/codex-eval-process-tree.js.map +1 -0
- package/dist/codex-eval-runtime-config.d.ts +43 -0
- package/dist/codex-eval-runtime-config.js +607 -0
- package/dist/codex-eval-runtime-config.js.map +1 -0
- package/dist/codex-trigger-eval.d.ts +82 -0
- package/dist/codex-trigger-eval.js +789 -0
- package/dist/codex-trigger-eval.js.map +1 -0
- package/dist/codex-workflow.d.ts +188 -0
- package/dist/codex-workflow.js +1790 -0
- package/dist/codex-workflow.js.map +1 -0
- package/dist/credentials.d.ts +5 -0
- package/dist/credentials.js +30 -0
- package/dist/credentials.js.map +1 -0
- package/dist/custom-process.d.ts +58 -0
- package/dist/custom-process.js +409 -0
- package/dist/custom-process.js.map +1 -0
- package/dist/eval-audit.d.ts +38 -0
- package/dist/eval-audit.js +71 -0
- package/dist/eval-audit.js.map +1 -0
- package/dist/eval-file.d.ts +9 -0
- package/dist/eval-file.js +15 -0
- package/dist/eval-file.js.map +1 -0
- package/dist/eval-result.d.ts +64 -0
- package/dist/eval-result.js +144 -0
- package/dist/eval-result.js.map +1 -0
- package/dist/eval-run.d.ts +23 -0
- package/dist/eval-run.js +539 -0
- package/dist/eval-run.js.map +1 -0
- package/dist/eval-spec.d.ts +57 -0
- package/dist/eval-spec.js +120 -0
- package/dist/eval-spec.js.map +1 -0
- package/dist/eval-suite-binding.d.ts +4 -0
- package/dist/eval-suite-binding.js +19 -0
- package/dist/eval-suite-binding.js.map +1 -0
- package/dist/index.d.ts +34 -9
- package/dist/index.js +18 -6
- package/dist/index.js.map +1 -1
- package/dist/json-schema.js +75 -5
- package/dist/json-schema.js.map +1 -1
- package/dist/output-path.js +2 -2
- package/dist/process-tree.d.ts +19 -1
- package/dist/process-tree.js +321 -65
- package/dist/process-tree.js.map +1 -1
- package/dist/process.d.ts +0 -2
- package/dist/process.js +76 -25
- package/dist/process.js.map +1 -1
- package/dist/provider-doctor.d.ts +33 -0
- package/dist/provider-doctor.js +86 -0
- package/dist/provider-doctor.js.map +1 -0
- package/dist/providers.d.ts +82 -0
- package/dist/providers.js +630 -0
- package/dist/providers.js.map +1 -0
- package/dist/run-paths.d.ts +8 -0
- package/dist/run-paths.js +71 -0
- package/dist/run-paths.js.map +1 -0
- package/dist/runtime-skill.d.ts +6 -0
- package/dist/runtime-skill.js +87 -3
- package/dist/runtime-skill.js.map +1 -1
- package/dist/schemas/digests.json +3 -3
- package/dist/schemas/eval-audit.schema.json +64 -0
- package/dist/schemas/eval-result.schema.json +202 -0
- package/dist/schemas/eval-spec.schema.json +109 -0
- package/dist/schemas.d.ts +1 -3
- package/dist/schemas.js +0 -17
- package/dist/schemas.js.map +1 -1
- package/dist/selected-cases.d.ts +30 -0
- package/dist/selected-cases.js +388 -0
- package/dist/selected-cases.js.map +1 -0
- package/dist/types.d.ts +2 -34
- package/package.json +6 -1
- package/dist/bundle.d.ts +0 -93
- package/dist/bundle.js +0 -216
- package/dist/bundle.js.map +0 -1
- package/dist/capabilities.d.ts +0 -2
- package/dist/capabilities.js +0 -38
- package/dist/capabilities.js.map +0 -1
- package/dist/plan.d.ts +0 -79
- package/dist/plan.js +0 -285
- package/dist/plan.js.map +0 -1
- package/dist/run.d.ts +0 -2
- package/dist/run.js +0 -592
- package/dist/run.js.map +0 -1
- package/dist/schemas/aw-skill-eval-execution-plan.schema.json +0 -220
- package/dist/schemas/eval-run-bundle.schema.json +0 -408
- package/dist/schemas/eval-runtime-capabilities.schema.json +0 -85
package/dist/bin.js
CHANGED
|
@@ -1,80 +1,190 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import process from 'node:process';
|
|
4
|
-
import {
|
|
5
|
-
import { isSchemaName } from './schemas.js';
|
|
4
|
+
import { createEvalResultBinding, doctorEvalProviders, runEvalSpec, validateEvalAuditFile, validateEvalResultFile, validateEvalSpecFile, validateEvalProviderSuiteKind, validateSelectedCasesFile, } from './index.js';
|
|
6
5
|
const help = `Usage: aw-skill-eval <command>
|
|
7
6
|
|
|
8
7
|
Commands:
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
spec validate <spec.json>
|
|
9
|
+
audit validate <audit.json> --spec <spec.json>
|
|
10
|
+
run <spec.json> --audit <audit.json>
|
|
11
|
+
result validate <result.json> --spec <spec.json> --audit <audit.json>
|
|
12
|
+
inspect-result <result.json> --spec <spec.json> --audit <audit.json>
|
|
13
|
+
doctor --json
|
|
15
14
|
`;
|
|
16
15
|
function requirePath(value, usage) {
|
|
17
16
|
if (!value)
|
|
18
17
|
throw new Error(usage);
|
|
19
18
|
return path.resolve(value);
|
|
20
19
|
}
|
|
20
|
+
function optionPath(argv, name, usage) {
|
|
21
|
+
const index = argv.indexOf(name);
|
|
22
|
+
if (index < 0 || !argv[index + 1] || argv.indexOf(name, index + 1) >= 0)
|
|
23
|
+
throw new Error(usage);
|
|
24
|
+
return requirePath(argv[index + 1], usage);
|
|
25
|
+
}
|
|
26
|
+
async function boundSpec(specPath) {
|
|
27
|
+
const validation = await validateEvalSpecFile(specPath);
|
|
28
|
+
if (!validation.valid || !validation.calculated) {
|
|
29
|
+
throw new Error(`EvalSpec is invalid: ${validation.errors.join('; ')}`);
|
|
30
|
+
}
|
|
31
|
+
const cases = await validateSelectedCasesFile(validation.calculated.paths.cases);
|
|
32
|
+
if (!cases.valid || !cases.calculated) {
|
|
33
|
+
throw new Error(`Selected cases are invalid: ${cases.errors.join('; ')}`);
|
|
34
|
+
}
|
|
35
|
+
if (cases.calculated.suite.unitUnderTest !== validation.calculated.spec.source.skill) {
|
|
36
|
+
throw new Error('Selected cases unitUnderTest does not match EvalSpec source.skill.');
|
|
37
|
+
}
|
|
38
|
+
const providerErrors = validateEvalProviderSuiteKind(validation.calculated.spec.provider, cases.calculated.suite.kind);
|
|
39
|
+
if (providerErrors.length > 0)
|
|
40
|
+
throw new Error(providerErrors.join('; '));
|
|
41
|
+
return { spec: validation.calculated, cases: cases.calculated };
|
|
42
|
+
}
|
|
43
|
+
async function boundResult(specPath, auditPath) {
|
|
44
|
+
const binding = await boundSpec(specPath);
|
|
45
|
+
const audit = await validateEvalAuditFile(auditPath, {
|
|
46
|
+
spec: binding.spec.spec,
|
|
47
|
+
selectedCaseIds: binding.cases.cases.map((entry) => entry.id),
|
|
48
|
+
});
|
|
49
|
+
if (!audit.valid || !audit.calculated) {
|
|
50
|
+
throw new Error(`EvalAudit is invalid: ${audit.errors.join('; ')}`);
|
|
51
|
+
}
|
|
52
|
+
return createEvalResultBinding(binding.spec, audit.calculated.auditDigest, binding.cases);
|
|
53
|
+
}
|
|
21
54
|
async function main(argv) {
|
|
22
55
|
if (argv.length === 0 || argv[0] === '--help' || argv[0] === '-h') {
|
|
23
56
|
process.stdout.write(help);
|
|
24
57
|
return;
|
|
25
58
|
}
|
|
26
59
|
const [command, action, value, ...extra] = argv;
|
|
27
|
-
if (
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
process.stdout.write(`${JSON.stringify(getRuntimeCapabilities(), null, 2)}\n`);
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
if (command === 'schema') {
|
|
36
|
-
if (action !== 'print' || !value || !isSchemaName(value) || value === 'eval-runtime-capabilities')
|
|
37
|
-
throw new Error('Usage: aw-skill-eval schema print <aw-skill-eval-execution-plan|eval-run-bundle>');
|
|
38
|
-
process.stdout.write(`${JSON.stringify(await getSchema(value), null, 2)}\n`);
|
|
60
|
+
if (command === 'doctor') {
|
|
61
|
+
if (action !== '--json' || value !== undefined || extra.length > 0) {
|
|
62
|
+
throw new Error('Usage: aw-skill-eval doctor --json');
|
|
63
|
+
}
|
|
64
|
+
process.stdout.write(`${JSON.stringify(await doctorEvalProviders(), null, 2)}\n`);
|
|
39
65
|
return;
|
|
40
66
|
}
|
|
41
|
-
if (command === '
|
|
42
|
-
if (action !== 'validate')
|
|
43
|
-
throw new Error('Usage: aw-skill-eval
|
|
44
|
-
|
|
67
|
+
if (command === 'spec') {
|
|
68
|
+
if (action !== 'validate' || !value || extra.length > 0) {
|
|
69
|
+
throw new Error('Usage: aw-skill-eval spec validate <spec.json>');
|
|
70
|
+
}
|
|
71
|
+
const specPath = requirePath(value, 'Usage: aw-skill-eval spec validate <spec.json>');
|
|
72
|
+
const validation = await validateEvalSpecFile(specPath);
|
|
73
|
+
const cases = validation.valid && validation.calculated
|
|
74
|
+
? await validateSelectedCasesFile(validation.calculated.paths.cases)
|
|
75
|
+
: null;
|
|
76
|
+
const errors = [...validation.errors, ...(cases?.errors ?? [])];
|
|
77
|
+
const unitMatches = !validation.calculated || !cases?.calculated ||
|
|
78
|
+
cases.calculated.suite.unitUnderTest === validation.calculated.spec.source.skill;
|
|
79
|
+
if (!unitMatches)
|
|
80
|
+
errors.push('Selected cases unitUnderTest does not match EvalSpec source.skill.');
|
|
81
|
+
if (validation.calculated && cases?.calculated) {
|
|
82
|
+
errors.push(...validateEvalProviderSuiteKind(validation.calculated.spec.provider, cases.calculated.suite.kind));
|
|
83
|
+
}
|
|
84
|
+
const result = {
|
|
85
|
+
valid: errors.length === 0,
|
|
86
|
+
errors,
|
|
87
|
+
calculated: errors.length === 0 ? validation.calculated : null,
|
|
88
|
+
};
|
|
45
89
|
process.stdout.write(`${JSON.stringify(result, null, 2)}\n`);
|
|
46
90
|
if (!result.valid)
|
|
47
91
|
process.exitCode = 1;
|
|
48
92
|
return;
|
|
49
93
|
}
|
|
50
94
|
if (command === 'run') {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
95
|
+
const runPath = requirePath(action, 'Usage: aw-skill-eval run <spec.json> --audit <audit.json>');
|
|
96
|
+
if (value !== '--audit' || extra.length !== 1) {
|
|
97
|
+
throw new Error('Usage: aw-skill-eval run <spec.json> --audit <audit.json>');
|
|
98
|
+
}
|
|
99
|
+
const controller = new AbortController();
|
|
100
|
+
let receivedSignal = null;
|
|
101
|
+
const handleSignal = (signal) => {
|
|
102
|
+
if (receivedSignal)
|
|
103
|
+
return;
|
|
104
|
+
receivedSignal = signal;
|
|
105
|
+
controller.abort();
|
|
106
|
+
};
|
|
107
|
+
const handleSigint = () => handleSignal('SIGINT');
|
|
108
|
+
const handleSigterm = () => handleSignal('SIGTERM');
|
|
109
|
+
process.on('SIGINT', handleSigint);
|
|
110
|
+
process.on('SIGTERM', handleSigterm);
|
|
111
|
+
try {
|
|
112
|
+
const result = await runEvalSpec(runPath, {
|
|
113
|
+
auditPath: requirePath(extra[0], '--audit requires a path'),
|
|
114
|
+
signal: controller.signal,
|
|
115
|
+
});
|
|
116
|
+
process.stdout.write(`${JSON.stringify(result, null, 2)}\n`);
|
|
117
|
+
}
|
|
118
|
+
finally {
|
|
119
|
+
process.off('SIGINT', handleSigint);
|
|
120
|
+
process.off('SIGTERM', handleSigterm);
|
|
121
|
+
if (receivedSignal)
|
|
122
|
+
process.exitCode = receivedSignal === 'SIGINT' ? 130 : 143;
|
|
123
|
+
}
|
|
57
124
|
return;
|
|
58
125
|
}
|
|
59
|
-
if (command === '
|
|
60
|
-
if (action !== 'validate')
|
|
61
|
-
throw new Error('Usage: aw-skill-eval
|
|
62
|
-
|
|
126
|
+
if (command === 'result') {
|
|
127
|
+
if (action !== 'validate' || !value || extra.length !== 4) {
|
|
128
|
+
throw new Error('Usage: aw-skill-eval result validate <result.json> --spec <spec.json> --audit <audit.json>');
|
|
129
|
+
}
|
|
130
|
+
const specPath = optionPath(extra, '--spec', 'result validate requires one --spec path');
|
|
131
|
+
const auditPath = optionPath(extra, '--audit', 'result validate requires one --audit path');
|
|
132
|
+
const binding = await boundResult(specPath, auditPath);
|
|
133
|
+
const result = await validateEvalResultFile(requirePath(value, 'result validate requires a result path'), binding);
|
|
63
134
|
process.stdout.write(`${JSON.stringify(result, null, 2)}\n`);
|
|
64
135
|
if (!result.valid)
|
|
65
136
|
process.exitCode = 1;
|
|
66
137
|
return;
|
|
67
138
|
}
|
|
68
|
-
if (command === '
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
139
|
+
if (command === 'inspect-result') {
|
|
140
|
+
const options = value === undefined ? [] : [value, ...extra];
|
|
141
|
+
if (!action || options.length !== 4) {
|
|
142
|
+
throw new Error('Usage: aw-skill-eval inspect-result <result.json> --spec <spec.json> --audit <audit.json>');
|
|
143
|
+
}
|
|
144
|
+
const binding = await boundResult(optionPath(options, '--spec', 'inspect-result requires one --spec path'), optionPath(options, '--audit', 'inspect-result requires one --audit path'));
|
|
145
|
+
const validation = await validateEvalResultFile(requirePath(action, 'inspect-result requires a result path'), binding);
|
|
146
|
+
if (!validation.valid || !validation.calculated) {
|
|
147
|
+
process.stdout.write(`${JSON.stringify(validation, null, 2)}\n`);
|
|
148
|
+
process.exitCode = 1;
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
const groups = new Map();
|
|
152
|
+
for (const run of validation.calculated.result.runs) {
|
|
153
|
+
const key = `${run.caseId}\0${run.attempt}`;
|
|
154
|
+
const group = groups.get(key) ?? { caseId: run.caseId, attempt: run.attempt, variants: {} };
|
|
155
|
+
group.variants[run.variant] = {
|
|
156
|
+
status: run.status,
|
|
157
|
+
durationMs: run.durationMs,
|
|
158
|
+
outputDir: run.outputDir,
|
|
159
|
+
usage: run.usage,
|
|
160
|
+
grade: run.grade,
|
|
161
|
+
error: run.error,
|
|
162
|
+
};
|
|
163
|
+
groups.set(key, group);
|
|
164
|
+
}
|
|
165
|
+
process.stdout.write(`${JSON.stringify({
|
|
166
|
+
version: 1,
|
|
167
|
+
summary: validation.calculated.result.summary,
|
|
168
|
+
groups: [...groups.values()],
|
|
169
|
+
}, null, 2)}\n`);
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
if (command === 'audit' && action === 'validate' && value && extra.length === 2 && extra[0] === '--spec') {
|
|
173
|
+
const binding = await boundSpec(requirePath(extra[1], 'audit validate requires a --spec path'));
|
|
174
|
+
const result = await validateEvalAuditFile(requirePath(value, 'audit validate requires an audit path'), {
|
|
175
|
+
spec: binding.spec.spec,
|
|
176
|
+
selectedCaseIds: binding.cases.cases.map((entry) => entry.id),
|
|
177
|
+
});
|
|
178
|
+
process.stdout.write(`${JSON.stringify(result, null, 2)}\n`);
|
|
179
|
+
if (!result.valid)
|
|
180
|
+
process.exitCode = 1;
|
|
72
181
|
return;
|
|
73
182
|
}
|
|
74
183
|
throw new Error(`Unknown command: ${command}. Use --help for usage.`);
|
|
75
184
|
}
|
|
76
185
|
main(process.argv.slice(2)).catch((error) => {
|
|
77
186
|
process.stderr.write(`[ERROR] ${error.message}\n`);
|
|
78
|
-
process.exitCode
|
|
187
|
+
if (!process.exitCode)
|
|
188
|
+
process.exitCode = 1;
|
|
79
189
|
});
|
|
80
190
|
//# sourceMappingURL=bin.js.map
|
package/dist/bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import { type ChildProcess } from 'node:child_process';
|
|
2
|
+
import { type ChildProcessTreeMonitor } from './codex-eval-process-tree.js';
|
|
3
|
+
import { type CodexEvalRuntimeConfig } from './codex-eval-runtime-config.js';
|
|
4
|
+
import { type CodexEvalRpcIsolationEvidence } from './codex-eval-isolation.js';
|
|
5
|
+
import { type AwSkillEvalIsolation } from './codex-eval-cases.js';
|
|
6
|
+
export interface CodexEvalProcessManagementEvidence {
|
|
7
|
+
mode: 'managed' | 'observed' | 'unmanaged-confirmed' | 'not-applicable';
|
|
8
|
+
inspectionAvailable: boolean;
|
|
9
|
+
userAcknowledged: boolean;
|
|
10
|
+
descendantCleanupGuaranteed: boolean;
|
|
11
|
+
limitation?: string;
|
|
12
|
+
diagnostic?: string;
|
|
13
|
+
}
|
|
14
|
+
interface ScriptedReply {
|
|
15
|
+
expectedQuestionCount?: number;
|
|
16
|
+
answersByIndex: string[];
|
|
17
|
+
unexpectedQuestionAnswer: string;
|
|
18
|
+
}
|
|
19
|
+
interface WorkspaceArtifactExpectation {
|
|
20
|
+
path: string;
|
|
21
|
+
exists: boolean;
|
|
22
|
+
contains: string[];
|
|
23
|
+
notContains: string[];
|
|
24
|
+
json?: Record<string, unknown>;
|
|
25
|
+
}
|
|
26
|
+
interface WorkspaceArtifactEvidence {
|
|
27
|
+
path: string;
|
|
28
|
+
exists: boolean;
|
|
29
|
+
kind: 'absent' | 'file' | 'other';
|
|
30
|
+
bytes?: number;
|
|
31
|
+
sha256?: string;
|
|
32
|
+
text?: string;
|
|
33
|
+
}
|
|
34
|
+
export interface ConversationEvalCase {
|
|
35
|
+
id: string;
|
|
36
|
+
prompt: string;
|
|
37
|
+
scriptedReplies: ScriptedReply[];
|
|
38
|
+
expectedOutput: string;
|
|
39
|
+
checks: string[];
|
|
40
|
+
workspaceFiles: Record<string, string>;
|
|
41
|
+
workspaceUnchanged: boolean;
|
|
42
|
+
sandbox: 'read-only' | 'workspace-write';
|
|
43
|
+
allowedWorkspaceChanges: string[];
|
|
44
|
+
artifacts: WorkspaceArtifactExpectation[];
|
|
45
|
+
environmentPathPrepend: string[];
|
|
46
|
+
}
|
|
47
|
+
export interface AppServerRunEvidence {
|
|
48
|
+
variant: 'with_skill' | 'without_skill';
|
|
49
|
+
complete: boolean;
|
|
50
|
+
mechanicalPassed: boolean;
|
|
51
|
+
hostSourceAccessAbsent: boolean | null;
|
|
52
|
+
scriptedReplyMismatches: string[];
|
|
53
|
+
durationMs: number;
|
|
54
|
+
questions: Array<{
|
|
55
|
+
requestId: string;
|
|
56
|
+
step: number;
|
|
57
|
+
questions: Array<{
|
|
58
|
+
id: string;
|
|
59
|
+
header: string;
|
|
60
|
+
question: string;
|
|
61
|
+
options: Array<{
|
|
62
|
+
label: string;
|
|
63
|
+
description: string;
|
|
64
|
+
}> | null;
|
|
65
|
+
}>;
|
|
66
|
+
answers: Record<string, string[]>;
|
|
67
|
+
}>;
|
|
68
|
+
fallbackUserReplies?: Array<{
|
|
69
|
+
step: number;
|
|
70
|
+
eventTraceIndex: number;
|
|
71
|
+
answers: string[];
|
|
72
|
+
}>;
|
|
73
|
+
finalMessages: string[];
|
|
74
|
+
usage: unknown;
|
|
75
|
+
workspaceChanges: string[];
|
|
76
|
+
workspaceArtifacts: WorkspaceArtifactEvidence[];
|
|
77
|
+
diagnostics: string[];
|
|
78
|
+
eventTrace: unknown[];
|
|
79
|
+
isolation: CodexEvalRpcIsolationEvidence | null;
|
|
80
|
+
limitations: string[];
|
|
81
|
+
stderr?: string;
|
|
82
|
+
}
|
|
83
|
+
export declare const CODEX_CONVERSATION_NETWORK_LIMITATION = "Conversation app-server and tool execution network remains enabled because macOS Seatbelt cannot be nested reliably.";
|
|
84
|
+
export declare const CODEX_CONVERSATION_FINAL_ANSWER_FALLBACK_LIMITATION = "For final-answer fallback turns, expected_question_count is checked against answers_by_index length because structured questions are not observable.";
|
|
85
|
+
interface AppServerFrameHandler {
|
|
86
|
+
(frame: Record<string, unknown>): Promise<void> | void;
|
|
87
|
+
}
|
|
88
|
+
export declare function settleAppServerProcessCleanup(options: {
|
|
89
|
+
child: ChildProcess;
|
|
90
|
+
processTreeMonitor: ChildProcessTreeMonitor;
|
|
91
|
+
waitForClose: (timeoutMs: number) => Promise<boolean>;
|
|
92
|
+
}): Promise<void>;
|
|
93
|
+
export type CodexConversationProviderStage = 'workspace-materialization-started' | 'workspace-materialized' | 'containment-admission-started' | 'containment-admitted' | 'session-started' | 'session-initialized' | 'thread-started' | 'turn-started' | 'turn-completed';
|
|
94
|
+
export declare class CodexEvalAttemptControl {
|
|
95
|
+
private readonly options;
|
|
96
|
+
private readonly controller;
|
|
97
|
+
private readonly deadlineAt?;
|
|
98
|
+
private readonly timer?;
|
|
99
|
+
private removeExternalAbort;
|
|
100
|
+
private timedOut;
|
|
101
|
+
private externallyAborted;
|
|
102
|
+
constructor(options: {
|
|
103
|
+
label: string;
|
|
104
|
+
timeoutMs?: number;
|
|
105
|
+
signal?: AbortSignal;
|
|
106
|
+
});
|
|
107
|
+
get signal(): AbortSignal;
|
|
108
|
+
get timeoutExpired(): boolean;
|
|
109
|
+
throwIfStopped(stage: string): void;
|
|
110
|
+
remaining(stage: string): number;
|
|
111
|
+
rpcTimeout(stage: string, capMs?: number): number;
|
|
112
|
+
stopError(stage: string): Error;
|
|
113
|
+
dispose(): void;
|
|
114
|
+
}
|
|
115
|
+
export declare function inspectAppServerConfigWarning(frame: Record<string, unknown>): string | null;
|
|
116
|
+
export declare class EvalAppServerSession {
|
|
117
|
+
private readonly process;
|
|
118
|
+
private readonly processTreeId;
|
|
119
|
+
private readonly processTreeMonitor;
|
|
120
|
+
private readonly pending;
|
|
121
|
+
private readonly handlers;
|
|
122
|
+
private readonly failureHandlers;
|
|
123
|
+
private stdoutBuffer;
|
|
124
|
+
private stderrBuffer;
|
|
125
|
+
private nextId;
|
|
126
|
+
private terminalError?;
|
|
127
|
+
private closing;
|
|
128
|
+
private readonly closed;
|
|
129
|
+
private resolveClosed?;
|
|
130
|
+
private cleanupPromise?;
|
|
131
|
+
private unregisterSignalCleanup;
|
|
132
|
+
constructor(options: {
|
|
133
|
+
codexBin: string;
|
|
134
|
+
cwd: string;
|
|
135
|
+
env: NodeJS.ProcessEnv;
|
|
136
|
+
modelProvider: string;
|
|
137
|
+
sensitiveEnvironmentNames: string[];
|
|
138
|
+
isolation: AwSkillEvalIsolation;
|
|
139
|
+
processManagement?: CodexEvalProcessManagementEvidence;
|
|
140
|
+
configOverrides?: readonly string[];
|
|
141
|
+
hostReadContainmentProfile?: string;
|
|
142
|
+
});
|
|
143
|
+
onFrame(handler: AppServerFrameHandler): () => void;
|
|
144
|
+
onFailure(handler: (error: Error) => void): () => void;
|
|
145
|
+
initialize(timeoutMs?: number): Promise<void>;
|
|
146
|
+
sendRequest(method: string, params: unknown, timeoutMs?: number): Promise<unknown>;
|
|
147
|
+
respond(id: string | number, result: unknown): Promise<void>;
|
|
148
|
+
cleanup(): Promise<void>;
|
|
149
|
+
private cleanupProcess;
|
|
150
|
+
get stderr(): string;
|
|
151
|
+
scrub<T>(value: T): T;
|
|
152
|
+
private waitForClose;
|
|
153
|
+
private write;
|
|
154
|
+
private handleChunk;
|
|
155
|
+
private handleLine;
|
|
156
|
+
private fail;
|
|
157
|
+
}
|
|
158
|
+
export declare function normalizeConversationProviderCase(options: {
|
|
159
|
+
value: Record<string, unknown>;
|
|
160
|
+
expectedSkill: string;
|
|
161
|
+
fixtureRoot: string;
|
|
162
|
+
suitePathPrepend?: string[];
|
|
163
|
+
}): ConversationEvalCase;
|
|
164
|
+
export declare function extractAppServerThreadId(result: unknown): string;
|
|
165
|
+
export declare function runCodexConversationProviderCase(options: {
|
|
166
|
+
evalCase: ConversationEvalCase;
|
|
167
|
+
sourceProjectRoot: string;
|
|
168
|
+
skillMode: 'with-skill' | 'without-skill' | 'previous-version';
|
|
169
|
+
skillName: string;
|
|
170
|
+
skillNames: string[];
|
|
171
|
+
codexBin: string;
|
|
172
|
+
model?: string;
|
|
173
|
+
codexRuntime: CodexEvalRuntimeConfig;
|
|
174
|
+
timeoutMs: number;
|
|
175
|
+
sourceEnv?: NodeJS.ProcessEnv;
|
|
176
|
+
isolation: AwSkillEvalIsolation;
|
|
177
|
+
forbiddenHostRoots?: string[];
|
|
178
|
+
environmentFixtures: Array<{
|
|
179
|
+
fixtureRoot: string;
|
|
180
|
+
relativePath: string;
|
|
181
|
+
}>;
|
|
182
|
+
processManagement?: CodexEvalProcessManagementEvidence;
|
|
183
|
+
workRoot?: string;
|
|
184
|
+
manageTimeout?: boolean;
|
|
185
|
+
signal?: AbortSignal;
|
|
186
|
+
onStage?: (stage: CodexConversationProviderStage) => void;
|
|
187
|
+
}): Promise<AppServerRunEvidence>;
|
|
188
|
+
export declare function runCodexEvalIsolationProbe(options: {
|
|
189
|
+
subjectRoot: string;
|
|
190
|
+
skillName: string;
|
|
191
|
+
skillNames?: string[];
|
|
192
|
+
codexBin: string;
|
|
193
|
+
codexRuntime: CodexEvalRuntimeConfig;
|
|
194
|
+
sourceEnv?: NodeJS.ProcessEnv;
|
|
195
|
+
processManagement?: CodexEvalProcessManagementEvidence;
|
|
196
|
+
timeoutMs?: number;
|
|
197
|
+
signal?: AbortSignal;
|
|
198
|
+
}): Promise<CodexEvalRpcIsolationEvidence>;
|
|
199
|
+
export {};
|