@ccdd/project 4.1.0 → 4.3.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/dist/src/broker/config.js +17 -2
- package/dist/src/broker/config.js.map +1 -1
- package/dist/src/broker/index.d.ts +2 -1
- package/dist/src/broker/index.js +14 -51
- package/dist/src/broker/index.js.map +1 -1
- package/dist/src/cli-cancellation.d.ts +2 -0
- package/dist/src/cli-cancellation.js +15 -0
- package/dist/src/cli-cancellation.js.map +1 -0
- package/dist/src/definitions.d.ts +6 -1
- package/dist/src/executors/final-result.d.ts +21 -0
- package/dist/src/executors/final-result.js +219 -0
- package/dist/src/executors/final-result.js.map +1 -0
- package/dist/src/executors/index.d.ts +0 -1
- package/dist/src/executors/index.js +30 -15
- package/dist/src/executors/index.js.map +1 -1
- package/dist/src/executors/pi.d.ts +3 -1
- package/dist/src/executors/pi.js +61 -30
- package/dist/src/executors/pi.js.map +1 -1
- package/dist/src/project/cli.js +31 -16
- package/dist/src/project/cli.js.map +1 -1
- package/dist/src/project/identity.d.ts +2 -2
- package/dist/src/project/identity.js +22 -2
- package/dist/src/project/identity.js.map +1 -1
- package/dist/src/project/index.js +1 -1
- package/dist/src/project/index.js.map +1 -1
- package/dist/src/project/owner-identity.d.ts +11 -0
- package/dist/src/project/owner-identity.js +41 -0
- package/dist/src/project/owner-identity.js.map +1 -0
- package/dist/src/project/query.d.ts +3 -3
- package/dist/src/project/query.js +5 -4
- package/dist/src/project/query.js.map +1 -1
- package/dist/src/project/types.d.ts +8 -0
- package/dist/src/review/local-claim.js +4 -11
- package/dist/src/review/local-claim.js.map +1 -1
- package/dist/src/review-result.d.ts +5 -0
- package/dist/src/review-result.js +69 -0
- package/dist/src/review-result.js.map +1 -0
- package/dist/src/tools/diagnostics.js +4 -0
- package/dist/src/tools/diagnostics.js.map +1 -1
- package/dist/src/tools/environment-host.js +1 -1
- package/dist/src/tools/environment-host.js.map +1 -1
- package/dist/src/tools/environment.d.ts +17 -0
- package/dist/src/tools/environment.js +20 -17
- package/dist/src/tools/environment.js.map +1 -1
- package/dist/src/tools/schema.d.ts +2 -0
- package/dist/src/tools/schema.js +100 -2
- package/dist/src/tools/schema.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ReviewResult, ReviewToolCall } from './contracts.js';
|
|
2
|
+
export declare function storedObservation(value: unknown, isError?: boolean): ReviewToolCall['observation'];
|
|
3
|
+
export declare function normalizeReviewResult(value: unknown): ReviewResult;
|
|
4
|
+
/** Cache immutable metadata normalization/serialization across final-response candidates. */
|
|
5
|
+
export declare function createReviewResultSizeCheck(metadata: Pick<ReviewResult, 'provider' | 'model' | 'toolCalls'>): (value: unknown) => ReviewResult;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
const object = (value) => value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
2
|
+
const copy = (value) => JSON.parse(JSON.stringify(value));
|
|
3
|
+
export function storedObservation(value, isError = false) {
|
|
4
|
+
if (!object(value) || typeof value.artifactId !== 'string' || typeof value.operation !== 'string' || !/^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$/.test(value.operation))
|
|
5
|
+
return undefined;
|
|
6
|
+
const observation = { artifactId: value.artifactId.slice(0, 64), operation: value.operation };
|
|
7
|
+
if (isError)
|
|
8
|
+
return observation;
|
|
9
|
+
if (value.kind === 'content' || value.kind === 'empty')
|
|
10
|
+
observation.kind = value.kind;
|
|
11
|
+
if (typeof value.detail === 'string')
|
|
12
|
+
observation.detail = value.detail.slice(0, 2000);
|
|
13
|
+
for (const key of ['startLine', 'endLine', 'lineCount', 'totalLines']) {
|
|
14
|
+
const number = value[key];
|
|
15
|
+
if (number === null || (typeof number === 'number' && Number.isSafeInteger(number) && number >= 0))
|
|
16
|
+
observation[key] = number;
|
|
17
|
+
}
|
|
18
|
+
return observation;
|
|
19
|
+
}
|
|
20
|
+
function measureReviewResult(value) {
|
|
21
|
+
if (!object(value) || (value.verdict !== 'GREEN' && value.verdict !== 'RED') || typeof value.summary !== 'string' || !value.summary.trim() ||
|
|
22
|
+
!Array.isArray(value.evidence) || value.evidence.some(item => typeof item !== 'string')) {
|
|
23
|
+
throw new Error('Review result requires GREEN/RED verdict, a summary, and string evidence[].');
|
|
24
|
+
}
|
|
25
|
+
const result = { verdict: value.verdict, summary: value.summary.slice(0, 12_000), evidence: value.evidence.slice(0, 100).map(item => item.slice(0, 4000)) };
|
|
26
|
+
for (const key of ['provider', 'model', 'stdout', 'stderr']) {
|
|
27
|
+
const field = value[key];
|
|
28
|
+
if (typeof field === 'string')
|
|
29
|
+
result[key] = field.slice(0, 24_000);
|
|
30
|
+
}
|
|
31
|
+
for (const key of ['durationMs', 'exitCode']) {
|
|
32
|
+
const field = value[key];
|
|
33
|
+
if (typeof field === 'number' && Number.isFinite(field))
|
|
34
|
+
result[key] = field;
|
|
35
|
+
}
|
|
36
|
+
if (Array.isArray(value.toolCalls))
|
|
37
|
+
result.toolCalls = value.toolCalls.slice(0, 100).filter((item) => object(item) && typeof item.name === 'string').map(item => {
|
|
38
|
+
const call = { name: item.name, ...(item.arguments === undefined ? {} : { arguments: copy(item.arguments) }) };
|
|
39
|
+
const observation = storedObservation(item.observation, item.isError === true);
|
|
40
|
+
if (item.isError === true)
|
|
41
|
+
call.isError = true;
|
|
42
|
+
if (observation)
|
|
43
|
+
call.observation = observation;
|
|
44
|
+
return call;
|
|
45
|
+
});
|
|
46
|
+
return { result, length: JSON.stringify(result).length };
|
|
47
|
+
}
|
|
48
|
+
export function normalizeReviewResult(value) {
|
|
49
|
+
const measured = measureReviewResult(value);
|
|
50
|
+
assertResultSize(measured.length);
|
|
51
|
+
return measured.result;
|
|
52
|
+
}
|
|
53
|
+
function assertResultSize(length) {
|
|
54
|
+
if (length > 256_000)
|
|
55
|
+
throw new Error('Review result exceeds the supported size.');
|
|
56
|
+
}
|
|
57
|
+
/** Cache immutable metadata normalization/serialization across final-response candidates. */
|
|
58
|
+
export function createReviewResultSizeCheck(metadata) {
|
|
59
|
+
const placeholder = { verdict: 'GREEN', summary: '.', evidence: [] };
|
|
60
|
+
// Measure without rejecting here: even an over-limit size must stay cached.
|
|
61
|
+
const metadataSize = measureReviewResult({ ...placeholder, ...metadata }).length - JSON.stringify(placeholder).length;
|
|
62
|
+
return (value) => {
|
|
63
|
+
assertResultSize(metadataSize);
|
|
64
|
+
const measured = measureReviewResult(value);
|
|
65
|
+
assertResultSize(measured.length + metadataSize);
|
|
66
|
+
return measured.result;
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=review-result.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-result.js","sourceRoot":"","sources":["../../src/review-result.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { toolArgumentErrorMessage } from './schema.js';
|
|
1
2
|
const failures = {
|
|
2
3
|
ABORTED: 'Artifact tool diagnosis was cancelled.',
|
|
3
4
|
WORKSPACE_CHANGED: 'The workspace changed during Artifact tool diagnosis.',
|
|
@@ -52,6 +53,9 @@ export class ToolResultError extends Error {
|
|
|
52
53
|
export function safeToolFailure(error, aborted = false) {
|
|
53
54
|
if (aborted)
|
|
54
55
|
return { code: 'ABORTED', message: failures.ABORTED };
|
|
56
|
+
const argumentMessage = toolArgumentErrorMessage(error);
|
|
57
|
+
if (argumentMessage !== undefined)
|
|
58
|
+
return { code: 'ARTIFACT_TOOL_ARGUMENTS_INVALID', message: argumentMessage };
|
|
55
59
|
if (error instanceof ToolResultError) {
|
|
56
60
|
const cause = error.cause;
|
|
57
61
|
if (cause instanceof Error && resultMessages.has(cause.message))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../../src/tools/diagnostics.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../../src/tools/diagnostics.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment-host.js","sourceRoot":"","sources":["../../../src/tools/environment-host.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEpC,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;IAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;AACnG,aAAa,CAAC;IACZ,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI;QAC9B,IAAI,MAAM,CAAC;QACX,IAAI,CAAC;YAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAAC,CAAC;QAC1C,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC;gBAAE,MAAM,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;;gBACxJ,MAAM,KAAK,CAAC;QACnB,CAAC;QACD,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;QAC9I,CAAC;aAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;QACrI,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAC,CAAC;AACH,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"environment-host.js","sourceRoot":"","sources":["../../../src/tools/environment-host.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEpC,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;IAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;AACnG,aAAa,CAAC;IACZ,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI;QAC9B,IAAI,MAAM,CAAC;QACX,IAAI,CAAC;YAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAAC,CAAC;QAC1C,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC;gBAAE,MAAM,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;;gBACxJ,MAAM,KAAK,CAAC;QACnB,CAAC;QACD,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;QAC9I,CAAC;aAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;QACrI,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAC,CAAC;AACH,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,MAAM,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC"}
|
|
@@ -15,5 +15,22 @@ export interface EnvironmentCheckOptions {
|
|
|
15
15
|
signal?: AbortSignal;
|
|
16
16
|
artifactIds?: readonly string[];
|
|
17
17
|
}
|
|
18
|
+
export declare function environmentOutputDirectory(root: string, directory: string): Promise<string>;
|
|
19
|
+
/** Shared bounded executor for readiness and owner identity scripts. Callers enforce workspace integrity. */
|
|
20
|
+
export declare function runEnvironmentScript({ command, args, cwd, outputDir, tmpDir, signal, timeoutMs, label, description }: {
|
|
21
|
+
command: string;
|
|
22
|
+
args: string[];
|
|
23
|
+
cwd: string;
|
|
24
|
+
outputDir: string;
|
|
25
|
+
tmpDir: string;
|
|
26
|
+
signal?: AbortSignal;
|
|
27
|
+
timeoutMs?: number;
|
|
28
|
+
label?: string;
|
|
29
|
+
description?: string;
|
|
30
|
+
}): Promise<{
|
|
31
|
+
ok: boolean;
|
|
32
|
+
message: string;
|
|
33
|
+
stdout: string;
|
|
34
|
+
}>;
|
|
18
35
|
/** Explicit Human claim preparation only. The caller owns workspace integrity checks and the Try Claim lease. */
|
|
19
36
|
export declare function checkEnvironmentRequirements(options: EnvironmentCheckOptions): Promise<EnvironmentCheckResult>;
|
|
@@ -5,7 +5,7 @@ import { fileURLToPath } from 'node:url';
|
|
|
5
5
|
import { matchesToolManifest } from './manifest.js';
|
|
6
6
|
import { readWorkspaceConfig } from '../broker/config.js';
|
|
7
7
|
import { scopedPath, within } from './paths.js';
|
|
8
|
-
async function
|
|
8
|
+
export async function environmentOutputDirectory(root, directory) {
|
|
9
9
|
const target = resolve(directory);
|
|
10
10
|
let ancestor = target;
|
|
11
11
|
while (true) {
|
|
@@ -30,14 +30,14 @@ function checkEnvironment(outputDir, tmpDir) {
|
|
|
30
30
|
XDG_CACHE_HOME: join(tmpDir, 'cache'), CARGO_TARGET_DIR: join(outputDir, 'cargo-target'),
|
|
31
31
|
};
|
|
32
32
|
}
|
|
33
|
-
|
|
33
|
+
/** Shared bounded executor for readiness and owner identity scripts. Callers enforce workspace integrity. */
|
|
34
|
+
export function runEnvironmentScript({ command, args, cwd, outputDir, tmpDir, signal, timeoutMs = 30000, label = 'Environment check', description = 'Environment check passed.' }) {
|
|
34
35
|
signal?.throwIfAborted();
|
|
35
|
-
const timeoutMs = requirement.timeoutMs ?? 30000;
|
|
36
36
|
return new Promise(resolveCheck => {
|
|
37
|
-
const child = spawn(
|
|
38
|
-
cwd
|
|
37
|
+
const child = spawn(command, args, {
|
|
38
|
+
cwd, env: checkEnvironment(outputDir, tmpDir), shell: false, detached: process.platform !== 'win32', stdio: ['ignore', 'pipe', 'pipe'], windowsHide: true,
|
|
39
39
|
});
|
|
40
|
-
const chunks = [];
|
|
40
|
+
const chunks = [], stdout = [];
|
|
41
41
|
let bytes = 0, retained = 0, settled = false, failure, killTimer;
|
|
42
42
|
const kill = (kind) => { try {
|
|
43
43
|
if (process.platform !== 'win32' && child.pid)
|
|
@@ -54,7 +54,7 @@ function runCheck(root, script, requirement, outputDir, tmpDir, signal) {
|
|
|
54
54
|
clearTimeout(killTimer);
|
|
55
55
|
signal?.removeEventListener('abort', abort);
|
|
56
56
|
const diagnostic = Buffer.concat(chunks).toString('utf8').replace(/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/g, '').trim();
|
|
57
|
-
resolveCheck({ ok, message: `${message}${diagnostic ? `\n${diagnostic}` : ''}`.slice(0, 4000) });
|
|
57
|
+
resolveCheck({ ok, message: `${message}${label === 'Environment check' && diagnostic ? `\n${diagnostic}` : ''}`.slice(0, 4000), stdout: Buffer.concat(stdout).toString('utf8') });
|
|
58
58
|
};
|
|
59
59
|
const stop = (message) => {
|
|
60
60
|
if (settled || failure)
|
|
@@ -63,8 +63,8 @@ function runCheck(root, script, requirement, outputDir, tmpDir, signal) {
|
|
|
63
63
|
kill('SIGTERM');
|
|
64
64
|
killTimer = setTimeout(() => { kill('SIGKILL'); finish(false, message); }, 500);
|
|
65
65
|
};
|
|
66
|
-
const abort = () => stop(
|
|
67
|
-
const timer = setTimeout(() => stop(
|
|
66
|
+
const abort = () => stop(`${label} was cancelled.`);
|
|
67
|
+
const timer = setTimeout(() => stop(`${label} timed out after ${timeoutMs} ms.`), timeoutMs);
|
|
68
68
|
const capture = (chunk) => {
|
|
69
69
|
bytes += chunk.length;
|
|
70
70
|
if (retained < 8192) {
|
|
@@ -73,15 +73,16 @@ function runCheck(root, script, requirement, outputDir, tmpDir, signal) {
|
|
|
73
73
|
retained += part.length;
|
|
74
74
|
}
|
|
75
75
|
if (bytes > 65536)
|
|
76
|
-
stop(
|
|
76
|
+
stop(`${label} output exceeded 64 KiB.`);
|
|
77
77
|
};
|
|
78
|
-
child.stdout.on('data',
|
|
78
|
+
child.stdout.on('data', (chunk) => { if (bytes < 65536)
|
|
79
|
+
stdout.push(chunk.subarray(0, 65536 - bytes)); capture(chunk); });
|
|
79
80
|
child.stderr.on('data', capture);
|
|
80
81
|
signal?.addEventListener('abort', abort, { once: true });
|
|
81
|
-
child.on('error', () => { kill('SIGKILL'); finish(false, failure ??
|
|
82
|
+
child.on('error', () => { kill('SIGKILL'); finish(false, failure ?? `${label} could not be started.`); });
|
|
82
83
|
// A readiness check may not leave a background process after its script exits.
|
|
83
84
|
child.on('exit', () => kill('SIGKILL'));
|
|
84
|
-
child.on('close', code => finish(!failure && code === 0, failure ?? (code === 0 ?
|
|
85
|
+
child.on('close', code => finish(!failure && code === 0, failure ?? (code === 0 ? description : `${label} failed (exit ${code ?? 'signal'}): ${description}`)));
|
|
85
86
|
if (signal?.aborted)
|
|
86
87
|
abort();
|
|
87
88
|
});
|
|
@@ -97,15 +98,17 @@ export async function checkEnvironmentRequirements(options) {
|
|
|
97
98
|
const { config } = await readWorkspaceConfig(root, options.signal);
|
|
98
99
|
if (!matchesToolManifest(config, options.configManifest))
|
|
99
100
|
throw Object.assign(new Error('Recorded environment requirements do not match this snapshot configuration.'), { code: 'WORKSPACE_ARTIFACT_MISMATCH' });
|
|
100
|
-
const base = await
|
|
101
|
+
const base = await environmentOutputDirectory(root, options.outputDir), checks = [];
|
|
101
102
|
for (const [id, requirement] of Object.entries(requirements)) {
|
|
102
103
|
if (options.artifactIds && !options.artifactIds.includes(id.split('/')[0]))
|
|
103
104
|
continue;
|
|
104
105
|
options.signal?.throwIfAborted();
|
|
105
|
-
const outputDir = await
|
|
106
|
-
const
|
|
106
|
+
const outputDir = await environmentOutputDirectory(root, join(base, id)), tmpDir = await environmentOutputDirectory(root, join(outputDir, '.tmp'));
|
|
107
|
+
const { ok, message } = await runEnvironmentScript({ command: process.execPath,
|
|
108
|
+
args: [fileURLToPath(new URL('./environment-host.js', import.meta.url)), root, await scopedPath(root, requirement.script)],
|
|
109
|
+
cwd: root, outputDir, tmpDir, signal: options.signal, timeoutMs: requirement.timeoutMs, description: requirement.description });
|
|
107
110
|
options.signal?.throwIfAborted();
|
|
108
|
-
checks.push({ id,
|
|
111
|
+
checks.push({ id, ok, message });
|
|
109
112
|
}
|
|
110
113
|
return { ok: checks.every(check => check.ok), checks };
|
|
111
114
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../src/tools/environment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAMhD,KAAK,UAAU,
|
|
1
|
+
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../src/tools/environment.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,8 @@ import type { EnvironmentRequirement, JsonSchema, ToolMetadata } from './contrac
|
|
|
2
2
|
export declare const object: (value: unknown) => value is Record<string, any>;
|
|
3
3
|
export declare function jsonCopy<T>(value: T): T;
|
|
4
4
|
export declare function validateSchema(schema: unknown): asserts schema is JsonSchema;
|
|
5
|
+
/** Only errors created by argument validation may cross the diagnostic boundary. */
|
|
6
|
+
export declare function toolArgumentErrorMessage(error: unknown): string | undefined;
|
|
5
7
|
export declare function validateArguments(schema: JsonSchema, args: unknown): Record<string, unknown>;
|
|
6
8
|
export declare function metadata(value: unknown): ToolMetadata;
|
|
7
9
|
export declare function projectInputPath(value: unknown): asserts value is string;
|
package/dist/src/tools/schema.js
CHANGED
|
@@ -81,12 +81,110 @@ export function validateSchema(schema) {
|
|
|
81
81
|
walk(schema, 0);
|
|
82
82
|
Compile(Type.Unsafe(schema));
|
|
83
83
|
}
|
|
84
|
+
const argumentFailures = new WeakMap();
|
|
85
|
+
/** Only errors created by argument validation may cross the diagnostic boundary. */
|
|
86
|
+
export function toolArgumentErrorMessage(error) {
|
|
87
|
+
return error instanceof Error ? argumentFailures.get(error) : undefined;
|
|
88
|
+
}
|
|
89
|
+
function diagnosticName(value) {
|
|
90
|
+
// Bound the quoted UTF-8 form; control characters cannot forge diagnostic lines.
|
|
91
|
+
let prefix = '', bytes = 2;
|
|
92
|
+
for (const character of value) {
|
|
93
|
+
bytes += Buffer.byteLength(JSON.stringify(character)) - 2;
|
|
94
|
+
if (bytes > 160)
|
|
95
|
+
return `${JSON.stringify(prefix)} (truncated)`;
|
|
96
|
+
prefix += character;
|
|
97
|
+
}
|
|
98
|
+
return JSON.stringify(prefix);
|
|
99
|
+
}
|
|
100
|
+
const pointerToken = (key) => key.replaceAll('~', '~0').replaceAll('/', '~1');
|
|
101
|
+
function diagnosticPaths(args, instancePath) {
|
|
102
|
+
// TypeBox currently joins property names without JSON Pointer escaping. Recover
|
|
103
|
+
// escaped paths from argument keys only; report alternatives if that join is ambiguous.
|
|
104
|
+
const pending = [{ value: args, raw: '', pointer: '' }], paths = [];
|
|
105
|
+
while (pending.length && paths.length < 6) {
|
|
106
|
+
const current = pending.pop();
|
|
107
|
+
if (current.raw === instancePath) {
|
|
108
|
+
paths.push(diagnosticName(current.pointer));
|
|
109
|
+
continue;
|
|
110
|
+
}
|
|
111
|
+
if (!object(current.value) && !Array.isArray(current.value))
|
|
112
|
+
continue;
|
|
113
|
+
const rest = instancePath.slice(current.raw.length + 1);
|
|
114
|
+
// Try only path prefixes that are actual keys, not every sibling in a container.
|
|
115
|
+
for (let end = 0; end <= rest.length; end++) {
|
|
116
|
+
if (end !== rest.length && rest[end] !== '/')
|
|
117
|
+
continue;
|
|
118
|
+
const key = rest.slice(0, end);
|
|
119
|
+
if (Object.hasOwn(current.value, key))
|
|
120
|
+
pending.push({ value: current.value[key], raw: `${current.raw}/${key}`, pointer: `${current.pointer}/${pointerToken(key)}` });
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return paths.length ? paths.slice(0, 5).join(' or ') + (paths.length > 5 ? ' (more paths omitted)' : '') : diagnosticName(instancePath);
|
|
124
|
+
}
|
|
125
|
+
function argumentReason(error) {
|
|
126
|
+
const names = (values) => values.slice(0, 3).map(diagnosticName).join(', ') + (values.length > 3 ? ' (more properties omitted)' : '');
|
|
127
|
+
switch (error.keyword) {
|
|
128
|
+
case 'additionalProperties': return `unexpected or invalid property: ${names(error.params.additionalProperties)}`;
|
|
129
|
+
case 'required': return `missing required property: ${names(error.params.requiredProperties)}`;
|
|
130
|
+
case 'type': {
|
|
131
|
+
const types = Array.isArray(error.params.type) ? error.params.type : [error.params.type];
|
|
132
|
+
return `expected ${types.filter(type => ['object', 'array', 'string', 'integer', 'number', 'boolean', 'null'].includes(type)).join(' or ') || 'registered type'}`;
|
|
133
|
+
}
|
|
134
|
+
case 'enum': return 'expected one of the registered enum values';
|
|
135
|
+
case 'const': return 'expected the registered constant';
|
|
136
|
+
case 'pattern': return 'must match the registered pattern';
|
|
137
|
+
case 'anyOf': return 'must match at least one registered alternative';
|
|
138
|
+
case 'oneOf': return 'must match exactly one registered alternative';
|
|
139
|
+
case 'not': return 'must not match the excluded schema';
|
|
140
|
+
case 'uniqueItems': return 'array items must be unique';
|
|
141
|
+
default: return 'does not satisfy the registered constraint';
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
function diagnosticLimit(args) {
|
|
145
|
+
// TypeBox Errors is exhaustive, and uniqueItems copies its duplicate-index array
|
|
146
|
+
// for every duplicate. Output truncation alone cannot bound that synchronous work.
|
|
147
|
+
const pending = [{ value: args, pointer: '' }];
|
|
148
|
+
let visited = 0;
|
|
149
|
+
while (pending.length) {
|
|
150
|
+
const { value, pointer } = pending.pop();
|
|
151
|
+
if (++visited > 2048)
|
|
152
|
+
return 'Detailed diagnostics omitted: arguments exceed the 2048-node diagnostic budget. Check the registered input schema.';
|
|
153
|
+
if (Array.isArray(value) && value.length > 512)
|
|
154
|
+
return `Detailed diagnostics omitted: array at instancePath ${diagnosticName(pointer)} exceeds the 512-item diagnostic budget. Check the registered input schema.`;
|
|
155
|
+
if (object(value) || Array.isArray(value)) {
|
|
156
|
+
for (const key of Object.keys(value))
|
|
157
|
+
pending.push({ value: value[key], pointer: `${pointer}/${pointerToken(key)}` });
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
return undefined;
|
|
161
|
+
}
|
|
162
|
+
function argumentMessage(errors, args) {
|
|
163
|
+
let message = 'Tool arguments do not match the registered input schema.';
|
|
164
|
+
const omitted = '\nAdditional diagnostics omitted.';
|
|
165
|
+
let shown = 0;
|
|
166
|
+
for (const error of errors.slice(0, 5)) {
|
|
167
|
+
// Do not forward TypeBox messages or arbitrary params: they can contain values.
|
|
168
|
+
const line = `\n- instancePath ${diagnosticPaths(args, error.instancePath)} [${error.keyword}]: ${argumentReason(error)}.`;
|
|
169
|
+
if (Buffer.byteLength(message + line + omitted) > 4096)
|
|
170
|
+
break;
|
|
171
|
+
message += line;
|
|
172
|
+
shown++;
|
|
173
|
+
}
|
|
174
|
+
return message + (shown < errors.length ? omitted : '');
|
|
175
|
+
}
|
|
84
176
|
export function validateArguments(schema, args) {
|
|
85
177
|
if (!object(args) || Buffer.byteLength(JSON.stringify(args)) > 65536)
|
|
86
178
|
throw new Error('Tool arguments must be an object of at most 64 KiB.');
|
|
87
179
|
const actual = jsonCopy(args);
|
|
88
|
-
|
|
89
|
-
|
|
180
|
+
const validator = Compile(Type.Unsafe(schema));
|
|
181
|
+
if (!validator.Check(actual)) {
|
|
182
|
+
const limit = diagnosticLimit(actual);
|
|
183
|
+
const message = limit ? `Tool arguments do not match the registered input schema.\n${limit}` : argumentMessage(validator.Errors(actual), actual);
|
|
184
|
+
const error = new Error(message);
|
|
185
|
+
argumentFailures.set(error, message);
|
|
186
|
+
throw error;
|
|
187
|
+
}
|
|
90
188
|
return actual;
|
|
91
189
|
}
|
|
92
190
|
export function metadata(value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/tools/schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/tools/schema.ts"],"names":[],"mappings":"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"}
|