agentic-engineering-harness 0.8.3 → 0.8.4
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 +2 -0
- package/dist/agents/outputContracts.js +1 -1
- package/dist/agents/outputContracts.js.map +1 -1
- package/dist/agents/parallelism.js +3 -2
- package/dist/agents/parallelism.js.map +1 -1
- package/dist/agents/permissions.js +1 -1
- package/dist/agents/permissions.js.map +1 -1
- package/dist/agents/waveExecutor.js +25 -15
- package/dist/agents/waveExecutor.js.map +1 -1
- package/dist/certification/adapters.d.ts +4 -0
- package/dist/certification/adapters.js +17 -0
- package/dist/certification/adapters.js.map +1 -0
- package/dist/certification/artifacts.d.ts +3 -0
- package/dist/certification/artifacts.js +18 -0
- package/dist/certification/artifacts.js.map +1 -0
- package/dist/certification/bootstrap.d.ts +33 -0
- package/dist/certification/bootstrap.js +138 -0
- package/dist/certification/bootstrap.js.map +1 -0
- package/dist/certification/codex.d.ts +26 -0
- package/dist/certification/codex.js +125 -0
- package/dist/certification/codex.js.map +1 -0
- package/dist/certification/core.d.ts +15 -0
- package/dist/certification/core.js +300 -0
- package/dist/certification/core.js.map +1 -0
- package/dist/certification/index.d.ts +9 -0
- package/dist/certification/index.js +10 -0
- package/dist/certification/index.js.map +1 -0
- package/dist/certification/oracle.d.ts +11 -0
- package/dist/certification/oracle.js +29 -0
- package/dist/certification/oracle.js.map +1 -0
- package/dist/certification/policy.d.ts +3 -0
- package/dist/certification/policy.js +59 -0
- package/dist/certification/policy.js.map +1 -0
- package/dist/certification/provider.d.ts +27 -0
- package/dist/certification/provider.js +170 -0
- package/dist/certification/provider.js.map +1 -0
- package/dist/certification/types.d.ts +234 -0
- package/dist/certification/types.js +2 -0
- package/dist/certification/types.js.map +1 -0
- package/dist/cli.js +27 -0
- package/dist/cli.js.map +1 -1
- package/dist/context/gateway.d.ts +1 -0
- package/dist/context/gateway.js +13 -5
- package/dist/context/gateway.js.map +1 -1
- package/dist/context/retrieval/persisted.d.ts +3 -2
- package/dist/context/retrieval/persisted.js +23 -7
- package/dist/context/retrieval/persisted.js.map +1 -1
- package/dist/context/retrieval/server.js +7 -4
- package/dist/context/retrieval/server.js.map +1 -1
- package/dist/core/config.js +1 -0
- package/dist/core/config.js.map +1 -1
- package/dist/core/controlPlane.d.ts +1 -0
- package/dist/core/controlPlane.js +12 -0
- package/dist/core/controlPlane.js.map +1 -1
- package/dist/core/git.d.ts +12 -2
- package/dist/core/git.js +31 -5
- package/dist/core/git.js.map +1 -1
- package/dist/core/run.d.ts +2 -0
- package/dist/core/run.js +3 -2
- package/dist/core/run.js.map +1 -1
- package/dist/core/sdd.js +1 -1
- package/dist/core/sdd.js.map +1 -1
- package/dist/core/seal.js +4 -3
- package/dist/core/seal.js.map +1 -1
- package/dist/core/types.d.ts +15 -0
- package/dist/core/verify.js +7 -3
- package/dist/core/verify.js.map +1 -1
- package/dist/distributed/queue.js +24 -6
- package/dist/distributed/queue.js.map +1 -1
- package/dist/distributed/types.d.ts +1 -0
- package/dist/distributed/worker.d.ts +6 -1
- package/dist/distributed/worker.js +25 -6
- package/dist/distributed/worker.js.map +1 -1
- package/dist/evidence/graph.js +2 -2
- package/dist/evidence/graph.js.map +1 -1
- package/dist/metrics/usage.js +8 -0
- package/dist/metrics/usage.js.map +1 -1
- package/dist/operations/change.d.ts +4 -0
- package/dist/operations/change.js +34 -11
- package/dist/operations/change.js.map +1 -1
- package/dist/operations/changeHandoff.d.ts +4 -0
- package/dist/operations/changeHandoff.js +2 -2
- package/dist/operations/changeHandoff.js.map +1 -1
- package/dist/operations/completion.js +38 -27
- package/dist/operations/completion.js.map +1 -1
- package/dist/operations/controller.js +142 -10
- package/dist/operations/controller.js.map +1 -1
- package/dist/operations/livenessV2.js +14 -12
- package/dist/operations/livenessV2.js.map +1 -1
- package/dist/operations/monitorProcess.js +11 -1
- package/dist/operations/monitorProcess.js.map +1 -1
- package/dist/operations/state.d.ts +2 -0
- package/dist/operations/state.js +31 -8
- package/dist/operations/state.js.map +1 -1
- package/dist/operations/supervisor.js +11 -2
- package/dist/operations/supervisor.js.map +1 -1
- package/dist/paseo/capabilities.js +0 -2
- package/dist/paseo/capabilities.js.map +1 -1
- package/dist/paseo/launchSpec.js +5 -3
- package/dist/paseo/launchSpec.js.map +1 -1
- package/dist/paseo/runtime.d.ts +1 -1
- package/dist/paseo/runtime.js +1 -1
- package/dist/paseo/runtime.js.map +1 -1
- package/dist/paseo/runtimeCore.d.ts +4 -0
- package/dist/paseo/runtimeCore.js +27 -2
- package/dist/paseo/runtimeCore.js.map +1 -1
- package/dist/paseo/sdk.d.ts +8 -0
- package/dist/paseo/sdk.js +85 -17
- package/dist/paseo/sdk.js.map +1 -1
- package/dist/paseo/start.js +2 -2
- package/dist/paseo/start.js.map +1 -1
- package/dist/security/sandbox.d.ts +1 -0
- package/dist/security/sandbox.js +20 -2
- package/dist/security/sandbox.js.map +1 -1
- package/dist/utils/process.d.ts +10 -0
- package/dist/utils/process.js +171 -6
- package/dist/utils/process.js.map +1 -1
- package/dist/utils/repositoryPath.d.ts +4 -0
- package/dist/utils/repositoryPath.js +23 -0
- package/dist/utils/repositoryPath.js.map +1 -0
- package/dist/validators/opa.js +2 -2
- package/dist/validators/quickAcceptance.d.ts +7 -0
- package/dist/validators/quickAcceptance.js +40 -0
- package/dist/validators/quickAcceptance.js.map +1 -0
- package/dist/workers/agentPrompt.js +247 -32
- package/dist/workers/agentPrompt.js.map +1 -1
- package/dist/workers/direct.js +9 -10
- package/dist/workers/direct.js.map +1 -1
- package/dist/workers/directProcess.d.ts +19 -0
- package/dist/workers/directProcess.js +147 -0
- package/dist/workers/directProcess.js.map +1 -0
- package/dist/workers/podman.js +2 -2
- package/dist/workers/podman.js.map +1 -1
- package/dist/workers/resultCommit.js +1 -1
- package/dist/workers/resultCommit.js.map +1 -1
- package/dist/workers/resultGateway.d.ts +27 -2
- package/dist/workers/resultGateway.js +64 -11
- package/dist/workers/resultGateway.js.map +1 -1
- package/docs/CERTIFICATION.md +31 -0
- package/package.json +2 -2
- package/schemas/project.schema.json +1 -0
package/dist/utils/process.js
CHANGED
|
@@ -6,6 +6,20 @@ export function clearToolchainEnvCache() { toolchainPathCache.clear(); }
|
|
|
6
6
|
export async function runProcess(command, options) {
|
|
7
7
|
const started = Date.now();
|
|
8
8
|
const inherited = { ...process.env, ...(options.env ?? {}) };
|
|
9
|
+
// Controller identity is authoritative only inside the controller/AEH
|
|
10
|
+
// process itself. Never leak it into arbitrary shell commands such as
|
|
11
|
+
// npm test, whose explicit repository root must remain authoritative.
|
|
12
|
+
// The managed-agent envelope is authoritative only inside the process that
|
|
13
|
+
// owns it. Repository commands and tools must not inherit it: otherwise a
|
|
14
|
+
// bounded child can be mistaken for an AEH participant and re-enter the
|
|
15
|
+
// controller, or observe another operation's routing state.
|
|
16
|
+
for (const name of [
|
|
17
|
+
"AEH_OPERATION_ID", "AEH_OPERATION_KIND", "AEH_CONTROL_ROOT", "AEH_OPERATION_STATE_REDIRECT", "AEH_OPERATION_WORKSPACE_ID",
|
|
18
|
+
"AEH_MANAGED_AGENT", "AEH_LOGICAL_AGENT", "AEH_AGENT_ROLE", "AEH_PARENT_OPERATION_ID", "AEH_PARENT_OPERATION_KIND", "AEH_AGENT_PHASE",
|
|
19
|
+
"AEH_INTERACTIVE_LEAD", "AEH_ORCHESTRATION_ALLOWED", "AEH_ALLOW_NESTED_OPERATION", "AEH_OPERATION_SUPERVISOR", "AEH_PARENT_AGENT_ID",
|
|
20
|
+
"AEH_SUPERVISOR_GENERATION", "AEH_CONTEXT_OPERATION_ID", "AEH_CONTEXT_PHASE", "AEH_CONTEXT_ROOT", "AEH_ENTRY_FILE"
|
|
21
|
+
])
|
|
22
|
+
delete inherited[name];
|
|
9
23
|
if (options.toolchain !== false) {
|
|
10
24
|
const prefix = await toolchainPathPrefix(options.cwd);
|
|
11
25
|
if (prefix)
|
|
@@ -16,6 +30,7 @@ export async function runProcess(command, options) {
|
|
|
16
30
|
cwd: options.cwd,
|
|
17
31
|
shell: options.shell ?? true,
|
|
18
32
|
env: inherited,
|
|
33
|
+
detached: process.platform !== "win32",
|
|
19
34
|
stdio: [options.stdin === undefined ? "ignore" : "pipe", "pipe", "pipe"]
|
|
20
35
|
});
|
|
21
36
|
let stdout = "";
|
|
@@ -27,17 +42,167 @@ export async function runProcess(command, options) {
|
|
|
27
42
|
reject(error); });
|
|
28
43
|
child.stdin?.end(options.stdin);
|
|
29
44
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
45
|
+
let settled = false;
|
|
46
|
+
let timer;
|
|
47
|
+
let killTimer;
|
|
48
|
+
let forceSettleTimer;
|
|
49
|
+
let terminated = false;
|
|
50
|
+
let timedOut = false;
|
|
51
|
+
let exited = false;
|
|
52
|
+
let exitCode = null;
|
|
53
|
+
let exitSignal = null;
|
|
54
|
+
let unregister = async () => undefined;
|
|
55
|
+
const registered = registerManagedProcessHandle(child.pid);
|
|
56
|
+
void registered.then((cleanup) => {
|
|
57
|
+
unregister = cleanup;
|
|
58
|
+
if (settled)
|
|
59
|
+
void unregister();
|
|
60
|
+
});
|
|
61
|
+
const kill = (signal) => {
|
|
62
|
+
try {
|
|
63
|
+
if (process.platform !== "win32" && child.pid)
|
|
64
|
+
process.kill(-child.pid, signal);
|
|
65
|
+
else
|
|
66
|
+
child.kill(signal);
|
|
67
|
+
}
|
|
68
|
+
catch { /* process already exited */ }
|
|
69
|
+
};
|
|
70
|
+
const terminate = () => {
|
|
71
|
+
if (terminated)
|
|
72
|
+
return;
|
|
73
|
+
terminated = true;
|
|
74
|
+
kill("SIGTERM");
|
|
75
|
+
killTimer = setTimeout(() => kill("SIGKILL"), 250);
|
|
76
|
+
killTimer.unref();
|
|
77
|
+
forceSettleTimer = setTimeout(() => finish(exitCode ?? 124, exitSignal ?? "SIGKILL", true), 1_000);
|
|
78
|
+
forceSettleTimer.unref();
|
|
79
|
+
};
|
|
80
|
+
if (options.timeoutMs)
|
|
81
|
+
timer = setTimeout(() => { timedOut = true; terminate(); }, options.timeoutMs);
|
|
82
|
+
const onAbort = () => terminate();
|
|
83
|
+
if (options.signal?.aborted)
|
|
84
|
+
onAbort();
|
|
85
|
+
else
|
|
86
|
+
options.signal?.addEventListener("abort", onAbort, { once: true });
|
|
87
|
+
child.on("error", (error) => {
|
|
88
|
+
if (settled)
|
|
89
|
+
return;
|
|
90
|
+
settled = true;
|
|
35
91
|
if (timer)
|
|
36
92
|
clearTimeout(timer);
|
|
37
|
-
|
|
93
|
+
if (killTimer)
|
|
94
|
+
clearTimeout(killTimer);
|
|
95
|
+
if (forceSettleTimer)
|
|
96
|
+
clearTimeout(forceSettleTimer);
|
|
97
|
+
options.signal?.removeEventListener("abort", onAbort);
|
|
98
|
+
void unregister().finally(() => reject(error));
|
|
99
|
+
});
|
|
100
|
+
child.on("exit", (code, signal) => {
|
|
101
|
+
exited = true;
|
|
102
|
+
exitCode = code;
|
|
103
|
+
exitSignal = signal;
|
|
104
|
+
if (!settled && !forceSettleTimer) {
|
|
105
|
+
forceSettleTimer = setTimeout(() => finish(code ?? 1, signal, false), 1_000);
|
|
106
|
+
forceSettleTimer.unref();
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
child.on("close", (code) => {
|
|
110
|
+
finish(code ?? exitCode ?? 1, exitSignal, false);
|
|
38
111
|
});
|
|
112
|
+
function finish(code, signal, forced) {
|
|
113
|
+
if (settled)
|
|
114
|
+
return;
|
|
115
|
+
settled = true;
|
|
116
|
+
if (timer)
|
|
117
|
+
clearTimeout(timer);
|
|
118
|
+
if (killTimer)
|
|
119
|
+
clearTimeout(killTimer);
|
|
120
|
+
if (forceSettleTimer)
|
|
121
|
+
clearTimeout(forceSettleTimer);
|
|
122
|
+
options.signal?.removeEventListener("abort", onAbort);
|
|
123
|
+
if (forced || !exited) {
|
|
124
|
+
child.stdout?.destroy();
|
|
125
|
+
child.stderr?.destroy();
|
|
126
|
+
child.stdin?.destroy();
|
|
127
|
+
}
|
|
128
|
+
void unregister().finally(() => resolve({
|
|
129
|
+
exitCode: code,
|
|
130
|
+
stdout,
|
|
131
|
+
stderr,
|
|
132
|
+
durationMs: Date.now() - started,
|
|
133
|
+
timedOut
|
|
134
|
+
}));
|
|
135
|
+
}
|
|
39
136
|
});
|
|
40
137
|
}
|
|
138
|
+
export async function listManagedProcessHandles(root, operationId) {
|
|
139
|
+
const directory = managedProcessDirectory(root, operationId);
|
|
140
|
+
let entries;
|
|
141
|
+
try {
|
|
142
|
+
entries = await fs.readdir(directory);
|
|
143
|
+
}
|
|
144
|
+
catch {
|
|
145
|
+
return [];
|
|
146
|
+
}
|
|
147
|
+
const handles = [];
|
|
148
|
+
for (const entry of entries) {
|
|
149
|
+
if (!entry.endsWith(".json"))
|
|
150
|
+
continue;
|
|
151
|
+
try {
|
|
152
|
+
const value = JSON.parse(await fs.readFile(path.join(directory, entry), "utf8"));
|
|
153
|
+
if (Number.isInteger(value.pid) && Number(value.pid) > 0) {
|
|
154
|
+
handles.push({ pid: Number(value.pid), processGroupId: Number.isInteger(value.processGroupId) && Number(value.processGroupId) > 0 ? Number(value.processGroupId) : Number(value.pid) });
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
catch { /* stale or partially-written handle */ }
|
|
158
|
+
}
|
|
159
|
+
return handles;
|
|
160
|
+
}
|
|
161
|
+
export async function clearManagedProcessHandles(root, operationId) {
|
|
162
|
+
await fs.rm(managedProcessDirectory(root, operationId), { recursive: true, force: true }).catch(() => undefined);
|
|
163
|
+
}
|
|
164
|
+
export async function terminateManagedProcessGroup(pid, graceMs = 250) {
|
|
165
|
+
if (!Number.isInteger(pid) || pid <= 0 || pid === process.pid)
|
|
166
|
+
return;
|
|
167
|
+
const signal = (value) => {
|
|
168
|
+
try {
|
|
169
|
+
if (process.platform !== "win32") {
|
|
170
|
+
try {
|
|
171
|
+
process.kill(-pid, value);
|
|
172
|
+
}
|
|
173
|
+
catch {
|
|
174
|
+
process.kill(pid, value);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
else
|
|
178
|
+
process.kill(pid, value);
|
|
179
|
+
}
|
|
180
|
+
catch { /* process already exited */ }
|
|
181
|
+
};
|
|
182
|
+
signal("SIGTERM");
|
|
183
|
+
await new Promise((resolve) => setTimeout(resolve, graceMs));
|
|
184
|
+
signal("SIGKILL");
|
|
185
|
+
}
|
|
186
|
+
export async function registerManagedProcessHandle(pid) {
|
|
187
|
+
const operationId = process.env.AEH_OPERATION_ID?.trim();
|
|
188
|
+
const controlRoot = process.env.AEH_CONTROL_ROOT?.trim();
|
|
189
|
+
if (!pid || !operationId || !controlRoot || process.env.AEH_OPERATION_STATE_REDIRECT !== "1")
|
|
190
|
+
return async () => undefined;
|
|
191
|
+
const directory = managedProcessDirectory(controlRoot, operationId);
|
|
192
|
+
const file = path.join(directory, `${pid}.json`);
|
|
193
|
+
try {
|
|
194
|
+
await fs.mkdir(directory, { recursive: true });
|
|
195
|
+
await fs.writeFile(file, `${JSON.stringify({ pid, processGroupId: pid, startedAt: new Date().toISOString() })}\n`, { flag: "wx" });
|
|
196
|
+
return async () => { await fs.rm(file, { force: true }).catch(() => undefined); };
|
|
197
|
+
}
|
|
198
|
+
catch {
|
|
199
|
+
return async () => undefined;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
function managedProcessDirectory(root, operationId) {
|
|
203
|
+
const safeOperationId = operationId.replace(/[^A-Za-z0-9._-]/g, "_");
|
|
204
|
+
return path.resolve(root, ".harness", "operations", `${safeOperationId}.processes`);
|
|
205
|
+
}
|
|
41
206
|
export async function commandExists(command, cwd) {
|
|
42
207
|
const result = await runProcess(`command -v ${shell(command)}`, { cwd });
|
|
43
208
|
return result.exitCode === 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/utils/process.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/utils/process.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** Resolve a repository-relative artifact without permitting lexical escapes. */
|
|
2
|
+
export declare function repositoryPath(root: string, relative: string): string;
|
|
3
|
+
/** Resolve an existing repository artifact and reject symlink escapes. */
|
|
4
|
+
export declare function existingRepositoryPath(root: string, relative: string): Promise<string>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import fs from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
/** Resolve a repository-relative artifact without permitting lexical escapes. */
|
|
4
|
+
export function repositoryPath(root, relative) {
|
|
5
|
+
if (!relative.trim() || path.isAbsolute(relative))
|
|
6
|
+
throw new Error(`Repository artifact path must be relative: ${relative}`);
|
|
7
|
+
const absoluteRoot = path.resolve(root);
|
|
8
|
+
const absolute = path.resolve(absoluteRoot, relative);
|
|
9
|
+
const within = path.relative(absoluteRoot, absolute);
|
|
10
|
+
if (within.startsWith("..") || path.isAbsolute(within))
|
|
11
|
+
throw new Error(`Repository artifact path escapes the project root: ${relative}`);
|
|
12
|
+
return absolute;
|
|
13
|
+
}
|
|
14
|
+
/** Resolve an existing repository artifact and reject symlink escapes. */
|
|
15
|
+
export async function existingRepositoryPath(root, relative) {
|
|
16
|
+
const absoluteRoot = await fs.realpath(path.resolve(root));
|
|
17
|
+
const candidate = await fs.realpath(repositoryPath(absoluteRoot, relative));
|
|
18
|
+
const within = path.relative(absoluteRoot, candidate);
|
|
19
|
+
if (within.startsWith("..") || path.isAbsolute(within))
|
|
20
|
+
throw new Error(`Repository artifact path escapes the project root: ${relative}`);
|
|
21
|
+
return candidate;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=repositoryPath.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repositoryPath.js","sourceRoot":"","sources":["../../src/utils/repositoryPath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,iFAAiF;AACjF,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,QAAgB;IAC3D,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,QAAQ,EAAE,CAAC,CAAC;IAC7H,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACrD,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,QAAQ,EAAE,CAAC,CAAC;IAC1I,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,0EAA0E;AAC1E,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,IAAY,EAAE,QAAgB;IACzE,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IACtD,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,QAAQ,EAAE,CAAC,CAAC;IAC1I,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
package/dist/validators/opa.js
CHANGED
|
@@ -8,10 +8,10 @@ export async function runOpaPolicies(root, config, contract, changedFiles, froze
|
|
|
8
8
|
if (!config.validation?.opa?.enabled)
|
|
9
9
|
return { id: "policy.opa", category: "policy", status: "SKIP", message: "OPA policy evaluation disabled." };
|
|
10
10
|
if (!(await commandExists("opa", root)))
|
|
11
|
-
return { id: "policy.opa", category: "policy", status: "
|
|
11
|
+
return { id: "policy.opa", category: "policy", status: "FAIL", message: "OPA is enabled but the opa executable is not installed." };
|
|
12
12
|
const policyDirs = config.validation.opa.policyDirs ?? [];
|
|
13
13
|
if (!policyDirs.length)
|
|
14
|
-
return { id: "policy.opa", category: "policy", status: "
|
|
14
|
+
return { id: "policy.opa", category: "policy", status: "FAIL", message: "OPA is enabled but no policyDirs are configured." };
|
|
15
15
|
const args = policyDirs.map((dir) => `--data ${quote(path.resolve(policyRoot, dir))}`).join(" ");
|
|
16
16
|
const input = buildOpaInput(contract, changedFiles, frozenChangedFiles, evidence, executionIdentity);
|
|
17
17
|
const command = `printf %s ${quote(JSON.stringify(input))} | opa eval --format=json ${args} --stdin-input data`;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { TaskContract, ValidationCheck } from "../core/types.js";
|
|
2
|
+
/**
|
|
3
|
+
* QUICK acceptance is deliberately small and deterministic. Unsupported
|
|
4
|
+
* natural-language acceptance fails closed instead of being treated as worker
|
|
5
|
+
* testimony, which keeps strict evidence meaningful.
|
|
6
|
+
*/
|
|
7
|
+
export declare function validateQuickAcceptance(root: string, contract: TaskContract, changedFiles: string[], scopeChecks: ValidationCheck[]): Promise<ValidationCheck[]>;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import fs from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
/**
|
|
4
|
+
* QUICK acceptance is deliberately small and deterministic. Unsupported
|
|
5
|
+
* natural-language acceptance fails closed instead of being treated as worker
|
|
6
|
+
* testimony, which keeps strict evidence meaningful.
|
|
7
|
+
*/
|
|
8
|
+
export async function validateQuickAcceptance(root, contract, changedFiles, scopeChecks) {
|
|
9
|
+
const acceptance = contract.quick?.acceptance ?? [];
|
|
10
|
+
const scopePass = scopeChecks.find((check) => check.id === "diff.allowed-scope")?.status === "PASS";
|
|
11
|
+
return Promise.all(acceptance.map(async (statement, index) => {
|
|
12
|
+
const id = `quick.acceptance.${index + 1}`;
|
|
13
|
+
const text = statement.trim();
|
|
14
|
+
const content = text.match(/^(.+?)\s+contains exactly\s+[\u0060'\"]([\s\S]*?)[\u0060'\"]\.?$/i);
|
|
15
|
+
if (content) {
|
|
16
|
+
const relative = stripQuotes(content[1].trim());
|
|
17
|
+
const target = path.resolve(root, relative);
|
|
18
|
+
const boundary = path.relative(root, target);
|
|
19
|
+
if (!relative || boundary.startsWith("..") || path.isAbsolute(boundary))
|
|
20
|
+
return fail(id, `QUICK acceptance path escapes the workspace: ${relative}`);
|
|
21
|
+
const actual = await fs.readFile(target, "utf8").catch(() => undefined);
|
|
22
|
+
const expected = content[2];
|
|
23
|
+
const normalizedActual = actual === undefined ? undefined : normalizeText(actual);
|
|
24
|
+
const normalizedExpected = normalizeText(expected);
|
|
25
|
+
return normalizedActual === normalizedExpected
|
|
26
|
+
? { id, category: "acceptance", status: "PASS", message: `${relative} contains the requested exact content.`, details: { path: relative, bytes: Buffer.byteLength(actual, "utf8") } }
|
|
27
|
+
: fail(id, `${relative} does not contain the requested exact content.`, { path: relative, expected: normalizedExpected, actual: normalizedActual });
|
|
28
|
+
}
|
|
29
|
+
if (/^(?:do not|don't|no)\s+(?:modify|change|touch)\s+any other\s+(?:product\s+)?files?\.?$/i.test(text) || /^no other\s+(?:product\s+)?files?\s+(?:is|are)\s+modified\.?$/i.test(text)) {
|
|
30
|
+
return scopePass
|
|
31
|
+
? { id, category: "acceptance", status: "PASS", message: "No file outside the declared QUICK scope changed.", details: { changedFiles } }
|
|
32
|
+
: fail(id, "A file outside the declared QUICK scope changed.", { changedFiles });
|
|
33
|
+
}
|
|
34
|
+
return fail(id, "QUICK acceptance has no deterministic evaluator; rewrite it as exact file content or explicit no-other-file scope.", { statement: text });
|
|
35
|
+
}));
|
|
36
|
+
}
|
|
37
|
+
function stripQuotes(value) { return value.replace(/^[\u0060'\"]|[\u0060'\"]$/g, ""); }
|
|
38
|
+
function normalizeText(value) { return value.replaceAll("\r\n", "\n").replace(/\n$/, ""); }
|
|
39
|
+
function fail(id, message, details) { return { id, category: "acceptance", status: "FAIL", message, details }; }
|
|
40
|
+
//# sourceMappingURL=quickAcceptance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quickAcceptance.js","sourceRoot":"","sources":["../../src/validators/quickAcceptance.ts"],"names":[],"mappings":"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"}
|