oh-my-knowledge 0.22.0 → 0.24.0
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/README.md +63 -63
- package/README.zh.md +64 -62
- package/dist/src/analysis/report-diagnostics.d.ts +28 -3
- package/dist/src/analysis/report-diagnostics.d.ts.map +1 -1
- package/dist/src/analysis/report-diagnostics.js +201 -81
- package/dist/src/analysis/report-diagnostics.js.map +1 -1
- package/dist/src/analysis/sample-diagnostics.d.ts +9 -2
- package/dist/src/analysis/sample-diagnostics.d.ts.map +1 -1
- package/dist/src/analysis/sample-diagnostics.js +224 -25
- package/dist/src/analysis/sample-diagnostics.js.map +1 -1
- package/dist/src/authoring/evolver.d.ts +7 -2
- package/dist/src/authoring/evolver.d.ts.map +1 -1
- package/dist/src/authoring/evolver.js +43 -9
- package/dist/src/authoring/evolver.js.map +1 -1
- package/dist/src/authoring/generator.d.ts +24 -0
- package/dist/src/authoring/generator.d.ts.map +1 -1
- package/dist/src/authoring/generator.js +67 -5
- package/dist/src/authoring/generator.js.map +1 -1
- package/dist/src/cli/coverage-renderer.d.ts +15 -0
- package/dist/src/cli/coverage-renderer.d.ts.map +1 -0
- package/dist/src/cli/coverage-renderer.js +74 -0
- package/dist/src/cli/coverage-renderer.js.map +1 -0
- package/dist/src/cli/i18n-dict.d.ts +1 -1
- package/dist/src/cli/i18n-dict.d.ts.map +1 -1
- package/dist/src/cli/i18n-dict.js +62 -40
- package/dist/src/cli/i18n-dict.js.map +1 -1
- package/dist/src/cli/index.d.ts +3 -0
- package/dist/src/cli/index.d.ts.map +1 -0
- package/dist/src/{cli.js → cli/index.js} +123 -384
- package/dist/src/cli/index.js.map +1 -0
- package/dist/src/cli/parse-run-config.d.ts +56 -0
- package/dist/src/cli/parse-run-config.d.ts.map +1 -0
- package/dist/src/cli/parse-run-config.js +195 -0
- package/dist/src/cli/parse-run-config.js.map +1 -0
- package/dist/src/cli/progress.d.ts +25 -0
- package/dist/src/cli/progress.d.ts.map +1 -0
- package/dist/src/cli/progress.js +62 -0
- package/dist/src/cli/progress.js.map +1 -0
- package/dist/src/cli/update-check.d.ts +3 -0
- package/dist/src/cli/update-check.d.ts.map +1 -0
- package/dist/src/cli/update-check.js +37 -0
- package/dist/src/cli/update-check.js.map +1 -0
- package/dist/src/eval-core/cache.d.ts +7 -5
- package/dist/src/eval-core/cache.d.ts.map +1 -1
- package/dist/src/eval-core/cache.js +11 -7
- package/dist/src/eval-core/cache.js.map +1 -1
- package/dist/src/eval-core/comparability.d.ts +11 -0
- package/dist/src/eval-core/comparability.d.ts.map +1 -0
- package/dist/src/eval-core/comparability.js +271 -0
- package/dist/src/eval-core/comparability.js.map +1 -0
- package/dist/src/eval-core/dependency-checker.d.ts +1 -1
- package/dist/src/eval-core/dependency-checker.js +1 -1
- package/dist/src/eval-core/evaluation-execution.d.ts +5 -2
- package/dist/src/eval-core/evaluation-execution.d.ts.map +1 -1
- package/dist/src/eval-core/evaluation-execution.js +29 -21
- package/dist/src/eval-core/evaluation-execution.js.map +1 -1
- package/dist/src/eval-core/evaluation-job.d.ts +2 -2
- package/dist/src/eval-core/evaluation-job.d.ts.map +1 -1
- package/dist/src/eval-core/evaluation-job.js +2 -2
- package/dist/src/eval-core/evaluation-job.js.map +1 -1
- package/dist/src/eval-core/evaluation-reporting.d.ts +3 -1
- package/dist/src/eval-core/evaluation-reporting.d.ts.map +1 -1
- package/dist/src/eval-core/evaluation-reporting.js +65 -5
- package/dist/src/eval-core/evaluation-reporting.js.map +1 -1
- package/dist/src/eval-core/execution-strategy.js +6 -6
- package/dist/src/eval-core/execution-strategy.js.map +1 -1
- package/dist/src/eval-core/schema.d.ts.map +1 -1
- package/dist/src/eval-core/schema.js +14 -1
- package/dist/src/eval-core/schema.js.map +1 -1
- package/dist/src/eval-core/verdict.d.ts +3 -3
- package/dist/src/eval-core/verdict.js +3 -3
- package/dist/src/eval-workflows/batch-evaluation-workflow.d.ts +111 -0
- package/dist/src/eval-workflows/batch-evaluation-workflow.d.ts.map +1 -0
- package/dist/src/eval-workflows/batch-evaluation-workflow.js +215 -0
- package/dist/src/eval-workflows/batch-evaluation-workflow.js.map +1 -0
- package/dist/src/eval-workflows/evaluation-pipeline.d.ts +7 -5
- package/dist/src/eval-workflows/evaluation-pipeline.d.ts.map +1 -1
- package/dist/src/eval-workflows/evaluation-pipeline.js +13 -8
- package/dist/src/eval-workflows/evaluation-pipeline.js.map +1 -1
- package/dist/src/eval-workflows/evaluation-preparation.d.ts +10 -8
- package/dist/src/eval-workflows/evaluation-preparation.d.ts.map +1 -1
- package/dist/src/eval-workflows/evaluation-preparation.js +8 -4
- package/dist/src/eval-workflows/evaluation-preparation.js.map +1 -1
- package/dist/src/eval-workflows/run-evaluation.d.ts +23 -20
- package/dist/src/eval-workflows/run-evaluation.d.ts.map +1 -1
- package/dist/src/eval-workflows/run-evaluation.js +34 -25
- package/dist/src/eval-workflows/run-evaluation.js.map +1 -1
- package/dist/src/executors/claude-cli.d.ts.map +1 -1
- package/dist/src/executors/claude-cli.js +12 -7
- package/dist/src/executors/claude-cli.js.map +1 -1
- package/dist/src/executors/claude-sdk.d.ts +1 -1
- package/dist/src/executors/claude-sdk.js +1 -1
- package/dist/src/executors/codex-cli-trace.d.ts +10 -0
- package/dist/src/executors/codex-cli-trace.d.ts.map +1 -0
- package/dist/src/executors/codex-cli-trace.js +123 -0
- package/dist/src/executors/codex-cli-trace.js.map +1 -0
- package/dist/src/executors/codex-cli.d.ts +18 -0
- package/dist/src/executors/codex-cli.d.ts.map +1 -0
- package/dist/src/executors/codex-cli.js +254 -0
- package/dist/src/executors/codex-cli.js.map +1 -0
- package/dist/src/executors/codex-sdk.d.ts +18 -0
- package/dist/src/executors/codex-sdk.d.ts.map +1 -0
- package/dist/src/executors/codex-sdk.js +214 -0
- package/dist/src/executors/codex-sdk.js.map +1 -0
- package/dist/src/executors/gemini.d.ts.map +1 -1
- package/dist/src/executors/gemini.js +28 -24
- package/dist/src/executors/gemini.js.map +1 -1
- package/dist/src/executors/index.d.ts.map +1 -1
- package/dist/src/executors/index.js +7 -2
- package/dist/src/executors/index.js.map +1 -1
- package/dist/src/executors/runtime-fingerprint.d.ts +7 -0
- package/dist/src/executors/runtime-fingerprint.d.ts.map +1 -0
- package/dist/src/executors/runtime-fingerprint.js +277 -0
- package/dist/src/executors/runtime-fingerprint.js.map +1 -0
- package/dist/src/executors/script.d.ts.map +1 -1
- package/dist/src/executors/script.js +48 -56
- package/dist/src/executors/script.js.map +1 -1
- package/dist/src/executors/shared.d.ts +78 -1
- package/dist/src/executors/shared.d.ts.map +1 -1
- package/dist/src/executors/shared.js +203 -1
- package/dist/src/executors/shared.js.map +1 -1
- package/dist/src/grading/assertions.d.ts.map +1 -1
- package/dist/src/grading/assertions.js +21 -6
- package/dist/src/grading/assertions.js.map +1 -1
- package/dist/src/grading/gold-dataset.d.ts +1 -1
- package/dist/src/grading/gold-dataset.js +1 -1
- package/dist/src/grading/index.d.ts.map +1 -1
- package/dist/src/grading/index.js +11 -0
- package/dist/src/grading/index.js.map +1 -1
- package/dist/src/grading/judge.d.ts.map +1 -1
- package/dist/src/grading/judge.js +75 -6
- package/dist/src/grading/judge.js.map +1 -1
- package/dist/src/inputs/eval-config.js +2 -2
- package/dist/src/inputs/eval-config.js.map +1 -1
- package/dist/src/inputs/load-samples.d.ts.map +1 -1
- package/dist/src/inputs/load-samples.js +30 -4
- package/dist/src/inputs/load-samples.js.map +1 -1
- package/dist/src/inputs/skill-loader.d.ts +2 -2
- package/dist/src/inputs/skill-loader.d.ts.map +1 -1
- package/dist/src/inputs/skill-loader.js +2 -2
- package/dist/src/inputs/skill-loader.js.map +1 -1
- package/dist/src/renderer/html-renderer.d.ts +5 -4
- package/dist/src/renderer/html-renderer.d.ts.map +1 -1
- package/dist/src/renderer/html-renderer.js +217 -93
- package/dist/src/renderer/html-renderer.js.map +1 -1
- package/dist/src/renderer/layout.d.ts +2 -1
- package/dist/src/renderer/layout.d.ts.map +1 -1
- package/dist/src/renderer/layout.js +30 -42
- package/dist/src/renderer/layout.js.map +1 -1
- package/dist/src/renderer/summary.d.ts +3 -3
- package/dist/src/renderer/summary.d.ts.map +1 -1
- package/dist/src/renderer/summary.js +232 -55
- package/dist/src/renderer/summary.js.map +1 -1
- package/dist/src/renderer/trends.d.ts.map +1 -1
- package/dist/src/renderer/trends.js +5 -3
- package/dist/src/renderer/trends.js.map +1 -1
- package/dist/src/server/report-server.js +4 -4
- package/dist/src/server/report-server.js.map +1 -1
- package/dist/src/server/report-store.d.ts +7 -5
- package/dist/src/server/report-store.d.ts.map +1 -1
- package/dist/src/server/report-store.js +39 -11
- package/dist/src/server/report-store.js.map +1 -1
- package/dist/src/types/eval.d.ts +27 -5
- package/dist/src/types/eval.d.ts.map +1 -1
- package/dist/src/types/executor.d.ts +5 -0
- package/dist/src/types/executor.d.ts.map +1 -1
- package/dist/src/types/judge.d.ts +10 -0
- package/dist/src/types/judge.d.ts.map +1 -1
- package/dist/src/types/report.d.ts +151 -29
- package/dist/src/types/report.d.ts.map +1 -1
- package/dist/src/types/storage.d.ts +7 -7
- package/dist/src/types/storage.d.ts.map +1 -1
- package/package.json +14 -5
- package/dist/src/cli.d.ts +0 -3
- package/dist/src/cli.d.ts.map +0 -1
- package/dist/src/cli.js.map +0 -1
- package/dist/src/eval-workflows/each-evaluation-workflow.d.ts +0 -153
- package/dist/src/eval-workflows/each-evaluation-workflow.d.ts.map +0 -1
- package/dist/src/eval-workflows/each-evaluation-workflow.js +0 -178
- package/dist/src/eval-workflows/each-evaluation-workflow.js.map +0 -1
- package/dist/src/executors/openai-cli.d.ts +0 -3
- package/dist/src/executors/openai-cli.d.ts.map +0 -1
- package/dist/src/executors/openai-cli.js +0 -60
- package/dist/src/executors/openai-cli.js.map +0 -1
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ExecutorRuntimeFingerprint } from '../types/index.js';
|
|
2
|
+
export interface ExecutorRuntimeFingerprintOptions {
|
|
3
|
+
skillDir?: string | null;
|
|
4
|
+
env?: NodeJS.ProcessEnv;
|
|
5
|
+
}
|
|
6
|
+
export declare function getExecutorRuntimeFingerprint(executorName: string, model: string, options?: ExecutorRuntimeFingerprintOptions): ExecutorRuntimeFingerprint;
|
|
7
|
+
//# sourceMappingURL=runtime-fingerprint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-fingerprint.d.ts","sourceRoot":"","sources":["../../../src/executors/runtime-fingerprint.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAGV,0BAA0B,EAG3B,MAAM,mBAAmB,CAAC;AAqL3B,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAMD,wBAAgB,6BAA6B,CAC3C,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,iCAAsC,GAC9C,0BAA0B,CA+F5B"}
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
import { execFileSync } from 'node:child_process';
|
|
2
|
+
import { createHash } from 'node:crypto';
|
|
3
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
4
|
+
import { createRequire } from 'node:module';
|
|
5
|
+
import { delimiter, dirname, isAbsolute, join } from 'node:path';
|
|
6
|
+
import { fileURLToPath } from 'node:url';
|
|
7
|
+
import { buildExecEnv } from './shared.js';
|
|
8
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
9
|
+
const requireFromHere = createRequire(import.meta.url);
|
|
10
|
+
const RUNTIME_CACHE = new Map();
|
|
11
|
+
const UNKNOWN_CAPABILITIES = {
|
|
12
|
+
systemPrompt: 'unknown',
|
|
13
|
+
costUSD: 'unknown',
|
|
14
|
+
trace: 'unknown',
|
|
15
|
+
skillIsolation: 'unknown',
|
|
16
|
+
};
|
|
17
|
+
function hashString(value) {
|
|
18
|
+
return createHash('sha256').update(value).digest('hex').slice(0, 12);
|
|
19
|
+
}
|
|
20
|
+
function canonicalStringify(value) {
|
|
21
|
+
if (value === null || typeof value !== 'object')
|
|
22
|
+
return JSON.stringify(value);
|
|
23
|
+
if (Array.isArray(value))
|
|
24
|
+
return '[' + value.map(canonicalStringify).join(',') + ']';
|
|
25
|
+
const entries = Object.keys(value).sort();
|
|
26
|
+
return '{' + entries.map((k) => JSON.stringify(k) + ':' + canonicalStringify(value[k])).join(',') + '}';
|
|
27
|
+
}
|
|
28
|
+
function packagePathSegments(packageName) {
|
|
29
|
+
return packageName.split('/');
|
|
30
|
+
}
|
|
31
|
+
function findInstalledPackageJson(packageName) {
|
|
32
|
+
const parts = packagePathSegments(packageName);
|
|
33
|
+
let dir = __dirname;
|
|
34
|
+
for (let i = 0; i < 10; i++) {
|
|
35
|
+
const candidate = join(dir, 'node_modules', ...parts, 'package.json');
|
|
36
|
+
if (existsSync(candidate))
|
|
37
|
+
return candidate;
|
|
38
|
+
const parent = dirname(dir);
|
|
39
|
+
if (parent === dir)
|
|
40
|
+
break;
|
|
41
|
+
dir = parent;
|
|
42
|
+
}
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
function findNearestPackageJson(fromPath) {
|
|
46
|
+
let dir = dirname(fromPath);
|
|
47
|
+
for (let i = 0; i < 10; i++) {
|
|
48
|
+
const candidate = join(dir, 'package.json');
|
|
49
|
+
if (existsSync(candidate))
|
|
50
|
+
return candidate;
|
|
51
|
+
const parent = dirname(dir);
|
|
52
|
+
if (parent === dir)
|
|
53
|
+
break;
|
|
54
|
+
dir = parent;
|
|
55
|
+
}
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
function resolvePackageJson(packageName, from) {
|
|
59
|
+
const req = from ? createRequire(from) : requireFromHere;
|
|
60
|
+
try {
|
|
61
|
+
try {
|
|
62
|
+
return req.resolve(`${packageName}/package.json`);
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
const entry = req.resolve(packageName);
|
|
66
|
+
return findNearestPackageJson(entry);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return findInstalledPackageJson(packageName);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
function readPackage(packageName, from) {
|
|
74
|
+
const packageJson = resolvePackageJson(packageName, from);
|
|
75
|
+
if (!packageJson) {
|
|
76
|
+
return { name: packageName, error: 'package.json not found' };
|
|
77
|
+
}
|
|
78
|
+
try {
|
|
79
|
+
const pkg = JSON.parse(readFileSync(packageJson, 'utf-8'));
|
|
80
|
+
return { name: packageName, ...(pkg.version ? { version: pkg.version } : {}) };
|
|
81
|
+
}
|
|
82
|
+
catch (err) {
|
|
83
|
+
return { name: packageName, error: err instanceof Error ? err.message : String(err) };
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
function readPackageField(packageName, field, from) {
|
|
87
|
+
const packageJson = resolvePackageJson(packageName, from);
|
|
88
|
+
if (!packageJson)
|
|
89
|
+
return undefined;
|
|
90
|
+
try {
|
|
91
|
+
const pkg = JSON.parse(readFileSync(packageJson, 'utf-8'));
|
|
92
|
+
return pkg[field];
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
return undefined;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
function readCommand(command, args, env, timeout = 1000) {
|
|
99
|
+
try {
|
|
100
|
+
const output = execFileSync(command, args, {
|
|
101
|
+
encoding: 'utf-8',
|
|
102
|
+
env,
|
|
103
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
104
|
+
timeout,
|
|
105
|
+
}).trim();
|
|
106
|
+
return { output };
|
|
107
|
+
}
|
|
108
|
+
catch (err) {
|
|
109
|
+
return { error: err instanceof Error ? err.message : String(err) };
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
function resolvePathBinary(command, env) {
|
|
113
|
+
if (isAbsolute(command) && existsSync(command))
|
|
114
|
+
return command;
|
|
115
|
+
const pathValue = env.PATH || '';
|
|
116
|
+
const pathExt = process.platform === 'win32'
|
|
117
|
+
? (env.PATHEXT || '.EXE;.CMD;.BAT;.COM').split(';')
|
|
118
|
+
: [''];
|
|
119
|
+
for (const dir of pathValue.split(delimiter).filter(Boolean)) {
|
|
120
|
+
for (const ext of pathExt) {
|
|
121
|
+
const candidate = join(dir, process.platform === 'win32' && ext && !command.toUpperCase().endsWith(ext) ? `${command}${ext}` : command);
|
|
122
|
+
if (existsSync(candidate))
|
|
123
|
+
return candidate;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return undefined;
|
|
127
|
+
}
|
|
128
|
+
function readPathBinary(command, env) {
|
|
129
|
+
const version = readCommand(command, ['--version'], env);
|
|
130
|
+
const path = resolvePathBinary(command, env);
|
|
131
|
+
return {
|
|
132
|
+
name: command,
|
|
133
|
+
source: 'path',
|
|
134
|
+
...(version.output ? { version: version.output.split('\n')[0].trim() } : {}),
|
|
135
|
+
...(path ? { path } : {}),
|
|
136
|
+
...(!version.output && version.error ? { error: version.error } : {}),
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
function withFingerprint(input) {
|
|
140
|
+
const stablePayload = {
|
|
141
|
+
executor: input.executor,
|
|
142
|
+
model: input.model,
|
|
143
|
+
kind: input.kind,
|
|
144
|
+
binary: input.binary
|
|
145
|
+
? {
|
|
146
|
+
name: input.binary.name,
|
|
147
|
+
source: input.binary.source,
|
|
148
|
+
version: input.binary.version,
|
|
149
|
+
status: input.binary.version ? 'ok' : input.binary.error ? 'error' : 'missing',
|
|
150
|
+
package: input.binary.package
|
|
151
|
+
? {
|
|
152
|
+
name: input.binary.package.name,
|
|
153
|
+
version: input.binary.package.version,
|
|
154
|
+
status: input.binary.package.version ? 'ok' : input.binary.package.error ? 'error' : 'missing',
|
|
155
|
+
}
|
|
156
|
+
: undefined,
|
|
157
|
+
}
|
|
158
|
+
: undefined,
|
|
159
|
+
sdk: input.sdk
|
|
160
|
+
? {
|
|
161
|
+
name: input.sdk.name,
|
|
162
|
+
version: input.sdk.version,
|
|
163
|
+
status: input.sdk.version ? 'ok' : input.sdk.error ? 'error' : 'missing',
|
|
164
|
+
}
|
|
165
|
+
: undefined,
|
|
166
|
+
capabilities: input.capabilities,
|
|
167
|
+
};
|
|
168
|
+
return { ...input, fingerprint: hashString(canonicalStringify(stablePayload)) };
|
|
169
|
+
}
|
|
170
|
+
function runtime(executor, model, kind, capabilities, extra = {}) {
|
|
171
|
+
return withFingerprint({
|
|
172
|
+
executor,
|
|
173
|
+
model,
|
|
174
|
+
kind,
|
|
175
|
+
capabilities,
|
|
176
|
+
...extra,
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
function runtimeEnv(options) {
|
|
180
|
+
return options?.env ?? buildExecEnv(options?.skillDir);
|
|
181
|
+
}
|
|
182
|
+
export function getExecutorRuntimeFingerprint(executorName, model, options = {}) {
|
|
183
|
+
const env = runtimeEnv(options);
|
|
184
|
+
const pathHash = hashString(env.PATH || '');
|
|
185
|
+
const cacheKey = `${executorName}\0${model}\0${pathHash}`;
|
|
186
|
+
const cached = RUNTIME_CACHE.get(cacheKey);
|
|
187
|
+
if (cached)
|
|
188
|
+
return cached;
|
|
189
|
+
let fp;
|
|
190
|
+
switch (executorName) {
|
|
191
|
+
case 'claude': {
|
|
192
|
+
fp = runtime(executorName, model, 'agent-cli', {
|
|
193
|
+
systemPrompt: 'native',
|
|
194
|
+
costUSD: 'reported',
|
|
195
|
+
trace: 'native',
|
|
196
|
+
skillIsolation: 'full-no-partial',
|
|
197
|
+
}, { binary: readPathBinary('claude', env) });
|
|
198
|
+
break;
|
|
199
|
+
}
|
|
200
|
+
case 'claude-sdk': {
|
|
201
|
+
const sdkPackageJson = resolvePackageJson('@anthropic-ai/claude-agent-sdk');
|
|
202
|
+
const sdk = readPackage('@anthropic-ai/claude-agent-sdk', sdkPackageJson ?? undefined);
|
|
203
|
+
const claudeCodeVersion = readPackageField('@anthropic-ai/claude-agent-sdk', 'claudeCodeVersion', sdkPackageJson ?? undefined);
|
|
204
|
+
fp = runtime(executorName, model, 'agent-sdk', {
|
|
205
|
+
systemPrompt: 'native',
|
|
206
|
+
costUSD: 'reported',
|
|
207
|
+
trace: 'native',
|
|
208
|
+
skillIsolation: 'full',
|
|
209
|
+
}, {
|
|
210
|
+
sdk,
|
|
211
|
+
binary: {
|
|
212
|
+
name: 'claude-code',
|
|
213
|
+
source: 'bundled',
|
|
214
|
+
...(claudeCodeVersion ? { version: claudeCodeVersion } : {}),
|
|
215
|
+
package: sdk,
|
|
216
|
+
},
|
|
217
|
+
});
|
|
218
|
+
break;
|
|
219
|
+
}
|
|
220
|
+
case 'codex': {
|
|
221
|
+
fp = runtime(executorName, model, 'agent-cli', {
|
|
222
|
+
systemPrompt: 'prepended',
|
|
223
|
+
costUSD: 'not-reported',
|
|
224
|
+
trace: 'best-effort',
|
|
225
|
+
skillIsolation: 'cwd-only',
|
|
226
|
+
}, { binary: readPathBinary('codex', env) });
|
|
227
|
+
break;
|
|
228
|
+
}
|
|
229
|
+
case 'codex-sdk': {
|
|
230
|
+
const sdkPackageJson = resolvePackageJson('@openai/codex-sdk');
|
|
231
|
+
const sdk = readPackage('@openai/codex-sdk', sdkPackageJson ?? undefined);
|
|
232
|
+
const bundledCodex = readPackage('@openai/codex', sdkPackageJson ?? undefined);
|
|
233
|
+
fp = runtime(executorName, model, 'agent-sdk', {
|
|
234
|
+
systemPrompt: 'prepended',
|
|
235
|
+
costUSD: 'not-reported',
|
|
236
|
+
trace: 'best-effort',
|
|
237
|
+
skillIsolation: 'cwd-only',
|
|
238
|
+
}, {
|
|
239
|
+
sdk,
|
|
240
|
+
binary: {
|
|
241
|
+
name: 'codex',
|
|
242
|
+
source: 'bundled',
|
|
243
|
+
...(bundledCodex.version ? { version: bundledCodex.version } : {}),
|
|
244
|
+
package: bundledCodex,
|
|
245
|
+
},
|
|
246
|
+
});
|
|
247
|
+
break;
|
|
248
|
+
}
|
|
249
|
+
case 'gemini': {
|
|
250
|
+
fp = runtime(executorName, model, 'agent-cli', {
|
|
251
|
+
systemPrompt: 'prepended',
|
|
252
|
+
costUSD: 'not-reported',
|
|
253
|
+
trace: 'none',
|
|
254
|
+
skillIsolation: 'none',
|
|
255
|
+
}, { binary: readPathBinary('gemini', env) });
|
|
256
|
+
break;
|
|
257
|
+
}
|
|
258
|
+
case 'anthropic-api':
|
|
259
|
+
case 'openai-api': {
|
|
260
|
+
fp = runtime(executorName, model, 'api', {
|
|
261
|
+
systemPrompt: 'native',
|
|
262
|
+
costUSD: 'not-reported',
|
|
263
|
+
trace: 'none',
|
|
264
|
+
skillIsolation: 'none',
|
|
265
|
+
}, { binary: { name: executorName, source: 'none' } });
|
|
266
|
+
break;
|
|
267
|
+
}
|
|
268
|
+
default: {
|
|
269
|
+
fp = runtime(executorName, model, 'script', UNKNOWN_CAPABILITIES, {
|
|
270
|
+
binary: { name: executorName, source: 'unknown' },
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
RUNTIME_CACHE.set(cacheKey, fp);
|
|
275
|
+
return fp;
|
|
276
|
+
}
|
|
277
|
+
//# sourceMappingURL=runtime-fingerprint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-fingerprint.js","sourceRoot":"","sources":["../../../src/executors/runtime-fingerprint.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"script.d.ts","sourceRoot":"","sources":["../../../src/executors/script.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"script.d.ts","sourceRoot":"","sources":["../../../src/executors/script.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,UAAU,EAAiB,MAAM,mBAAmB,CAAC;AAc/E,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CA0DhE"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
// v0.22 — script executor 由用户自定义,omk 无法保证它实现 skill 隔离。
|
|
1
|
+
import { DEFAULT_TIMEOUT_MS, interruptedExecResult, spawnWithSigintPropagation, timeoutExecResult, } from './shared.js';
|
|
2
|
+
// script executor 由用户自定义,omk 无法保证它实现 skill 隔离。
|
|
4
3
|
// 任何 allowedSkills(包括 [])下都 stderr 一次性 warn,不阻塞执行,
|
|
5
4
|
// 让用户知道 strict-baseline / 显式 allowedSkills 在 script executor 下静默无效。
|
|
6
5
|
let scriptIsolationWarned = false;
|
|
@@ -13,60 +12,53 @@ export function createScriptExecutor(command) {
|
|
|
13
12
|
}
|
|
14
13
|
const input = JSON.stringify({ model, system: system || '', prompt });
|
|
15
14
|
const start = Date.now();
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
timeout: timeoutMs,
|
|
24
|
-
...(cwd && { cwd }),
|
|
25
|
-
});
|
|
26
|
-
let stdout = '';
|
|
27
|
-
let stderr = '';
|
|
28
|
-
child.stdout.on('data', (d) => { stdout += d; });
|
|
29
|
-
child.stderr.on('data', (d) => { stderr += d; });
|
|
30
|
-
child.on('error', (err) => {
|
|
31
|
-
resolve({
|
|
32
|
-
ok: false, error: `executor command failed: ${err.message}`,
|
|
33
|
-
durationMs: Date.now() - start, durationApiMs: 0,
|
|
34
|
-
inputTokens: 0, outputTokens: 0, cacheReadTokens: 0, cacheCreationTokens: 0,
|
|
35
|
-
costUSD: 0, output: null, stopReason: 'error', numTurns: 0,
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
child.on('close', (code) => {
|
|
39
|
-
const durationMs = Date.now() - start;
|
|
40
|
-
if (code !== 0) {
|
|
41
|
-
resolve({
|
|
42
|
-
ok: false, error: stderr.trim() || `executor exited with code ${code}`,
|
|
43
|
-
durationMs, durationApiMs: 0,
|
|
44
|
-
inputTokens: 0, outputTokens: 0, cacheReadTokens: 0, cacheCreationTokens: 0,
|
|
45
|
-
costUSD: 0, output: null, stopReason: 'error', numTurns: 0,
|
|
46
|
-
});
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
try {
|
|
50
|
-
const data = JSON.parse(stdout);
|
|
51
|
-
resolve({
|
|
52
|
-
ok: true, output: data.output || '', durationMs,
|
|
53
|
-
durationApiMs: data.durationApiMs || 0,
|
|
54
|
-
inputTokens: data.inputTokens || 0, outputTokens: data.outputTokens || 0,
|
|
55
|
-
cacheReadTokens: data.cacheReadTokens || 0, cacheCreationTokens: data.cacheCreationTokens || 0,
|
|
56
|
-
costUSD: data.costUSD || 0, stopReason: data.stopReason || 'end', numTurns: data.numTurns || 1,
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
catch {
|
|
60
|
-
resolve({
|
|
61
|
-
ok: true, output: stdout.trim(), durationMs, durationApiMs: 0,
|
|
62
|
-
inputTokens: 0, outputTokens: 0, cacheReadTokens: 0, cacheCreationTokens: 0,
|
|
63
|
-
costUSD: 0, stopReason: 'end', numTurns: 1,
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
child.stdin.write(input);
|
|
68
|
-
child.stdin.end();
|
|
15
|
+
const parts = command.match(/(?:[^\s"']+|"[^"]*"|'[^']*')+/g) || [command];
|
|
16
|
+
const cmd = parts[0].replace(/^["']|["']$/g, '');
|
|
17
|
+
const args = parts.slice(1).map((a) => a.replace(/^["']|["']$/g, ''));
|
|
18
|
+
const { child, done } = spawnWithSigintPropagation(cmd, args, {
|
|
19
|
+
env: { ...process.env },
|
|
20
|
+
timeoutMs,
|
|
21
|
+
...(cwd && { cwd }),
|
|
69
22
|
});
|
|
23
|
+
child.stdin?.write(input);
|
|
24
|
+
child.stdin?.end();
|
|
25
|
+
try {
|
|
26
|
+
const r = await done;
|
|
27
|
+
const durationMs = Date.now() - start;
|
|
28
|
+
try {
|
|
29
|
+
const data = JSON.parse(r.stdout);
|
|
30
|
+
return {
|
|
31
|
+
ok: true, output: data.output || '', durationMs,
|
|
32
|
+
durationApiMs: data.durationApiMs || 0,
|
|
33
|
+
inputTokens: data.inputTokens || 0, outputTokens: data.outputTokens || 0,
|
|
34
|
+
cacheReadTokens: data.cacheReadTokens || 0, cacheCreationTokens: data.cacheCreationTokens || 0,
|
|
35
|
+
costUSD: data.costUSD || 0, stopReason: data.stopReason || 'end', numTurns: data.numTurns || 1,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
return {
|
|
40
|
+
ok: true, output: r.stdout.trim(), durationMs, durationApiMs: 0,
|
|
41
|
+
inputTokens: 0, outputTokens: 0, cacheReadTokens: 0, cacheCreationTokens: 0,
|
|
42
|
+
costUSD: 0, stopReason: 'end', numTurns: 1,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
const durationMs = Date.now() - start;
|
|
48
|
+
const details = err;
|
|
49
|
+
if (details.killedByTimeout)
|
|
50
|
+
return timeoutExecResult(timeoutMs, durationMs);
|
|
51
|
+
if (details.killedBySignal)
|
|
52
|
+
return interruptedExecResult(durationMs);
|
|
53
|
+
const stderr = (details.stderr || '').trim();
|
|
54
|
+
return {
|
|
55
|
+
ok: false,
|
|
56
|
+
error: stderr || details.message || `executor exited with code ${details.code ?? '?'}`,
|
|
57
|
+
durationMs, durationApiMs: 0,
|
|
58
|
+
inputTokens: 0, outputTokens: 0, cacheReadTokens: 0, cacheCreationTokens: 0,
|
|
59
|
+
costUSD: 0, output: null, stopReason: 'error', numTurns: 0,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
70
62
|
};
|
|
71
63
|
}
|
|
72
64
|
//# sourceMappingURL=script.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"script.js","sourceRoot":"","sources":["../../../src/executors/script.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"script.js","sourceRoot":"","sources":["../../../src/executors/script.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { execFile } from 'node:child_process';
|
|
1
|
+
import { execFile, type ChildProcess } from 'node:child_process';
|
|
2
2
|
import type { ExecResult } from '../types/index.js';
|
|
3
3
|
export declare const execFileAsync: typeof execFile.__promisify__;
|
|
4
4
|
export declare const DEFAULT_MODEL = "sonnet";
|
|
@@ -103,6 +103,44 @@ export interface ClaudeSdkResultMessage extends ClaudeSdkBaseMessage {
|
|
|
103
103
|
export interface ClaudeSdkModule {
|
|
104
104
|
query: (opts: ClaudeSdkQueryInput) => AsyncIterable<ClaudeSdkBaseMessage>;
|
|
105
105
|
}
|
|
106
|
+
export interface CodexEvent {
|
|
107
|
+
type?: string;
|
|
108
|
+
turn_id?: string;
|
|
109
|
+
usage?: {
|
|
110
|
+
input_tokens?: number;
|
|
111
|
+
cached_input_tokens?: number;
|
|
112
|
+
output_tokens?: number;
|
|
113
|
+
reasoning_output_tokens?: number;
|
|
114
|
+
};
|
|
115
|
+
elapsed_ms?: number;
|
|
116
|
+
stop_reason?: string;
|
|
117
|
+
item?: {
|
|
118
|
+
id?: string;
|
|
119
|
+
type?: string;
|
|
120
|
+
text?: string;
|
|
121
|
+
command?: string;
|
|
122
|
+
aggregated_output?: string;
|
|
123
|
+
exit_code?: number | null;
|
|
124
|
+
status?: string;
|
|
125
|
+
path?: string;
|
|
126
|
+
content?: string;
|
|
127
|
+
query?: string;
|
|
128
|
+
results?: unknown[];
|
|
129
|
+
changes?: Array<{
|
|
130
|
+
path?: string;
|
|
131
|
+
kind?: string;
|
|
132
|
+
}>;
|
|
133
|
+
server?: string;
|
|
134
|
+
tool?: string;
|
|
135
|
+
arguments?: unknown;
|
|
136
|
+
result?: unknown;
|
|
137
|
+
message?: string;
|
|
138
|
+
};
|
|
139
|
+
error?: {
|
|
140
|
+
message?: string;
|
|
141
|
+
};
|
|
142
|
+
ts?: number;
|
|
143
|
+
}
|
|
106
144
|
export interface ExecutorErrorLike {
|
|
107
145
|
message?: string;
|
|
108
146
|
name?: string;
|
|
@@ -114,4 +152,43 @@ export declare function errorMessage(err: unknown, fallback?: string): string;
|
|
|
114
152
|
export declare function parseJson<T>(content: string): T;
|
|
115
153
|
export declare function buildExecEnv(skillDir?: string | null): NodeJS.ProcessEnv;
|
|
116
154
|
export declare function timeoutExecResult(timeoutMs: number, durationMs: number): ExecResult;
|
|
155
|
+
export declare function interruptedExecResult(durationMs: number): ExecResult;
|
|
156
|
+
export declare function __resetSigintRegistryForTest(): void;
|
|
157
|
+
export interface SpawnHelperResult {
|
|
158
|
+
stdout: string;
|
|
159
|
+
stderr: string;
|
|
160
|
+
code: number | null;
|
|
161
|
+
signal: NodeJS.Signals | null;
|
|
162
|
+
killedByTimeout: boolean;
|
|
163
|
+
killedBySignal: NodeJS.Signals | null;
|
|
164
|
+
}
|
|
165
|
+
export interface SpawnHelperError extends Error {
|
|
166
|
+
stdout?: string;
|
|
167
|
+
stderr?: string;
|
|
168
|
+
code?: number | null;
|
|
169
|
+
signal?: NodeJS.Signals | null;
|
|
170
|
+
killedByTimeout?: boolean;
|
|
171
|
+
killedBySignal?: NodeJS.Signals | null;
|
|
172
|
+
}
|
|
173
|
+
export interface SpawnHelperOptions {
|
|
174
|
+
cwd?: string;
|
|
175
|
+
env?: NodeJS.ProcessEnv;
|
|
176
|
+
/** kill child after this many ms; reject with killedByTimeout=true */
|
|
177
|
+
timeoutMs?: number;
|
|
178
|
+
/** stdout overflow threshold; reject when累计超限 */
|
|
179
|
+
maxBuffer?: number;
|
|
180
|
+
/** external abort signal; abort() 走跟 SIGINT 同一 grace 路径 */
|
|
181
|
+
abortSignal?: AbortSignal;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* spawn child + 注册到全局 SIGINT registry。返回 { child, done } 让 caller 自己
|
|
185
|
+
* 操作 stdin(写入 / 关闭),通过 done 等结果。
|
|
186
|
+
*
|
|
187
|
+
* 适用:claude / codex / gemini / script CLI 子进程。HTTP executor(*-api)用 fetch +
|
|
188
|
+
* AbortSignal.timeout,自带 abort,不走这个。claude-sdk in-process 也不走。
|
|
189
|
+
*/
|
|
190
|
+
export declare function spawnWithSigintPropagation(command: string, args: string[], options?: SpawnHelperOptions): {
|
|
191
|
+
child: ChildProcess;
|
|
192
|
+
done: Promise<SpawnHelperResult>;
|
|
193
|
+
};
|
|
117
194
|
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/executors/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/executors/shared.ts"],"names":[],"mappings":"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"}
|