@melra/verifier-core 0.3.0-alpha.14 → 0.3.0-alpha.16
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 +13 -1
- package/dist/index.d.ts +30 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +249 -49
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -53,7 +53,14 @@ What a verifier does **not** decide:
|
|
|
53
53
|
predicate type, over anything `check` returns, so a new type reads as the
|
|
54
54
|
weakest claim (`execution`) rather than declaring itself `independent`.
|
|
55
55
|
- **Whether an unanswerable question passes.** A type with no verifier, and a
|
|
56
|
-
`check` that throws, are failed items
|
|
56
|
+
`check` that throws, are failed items marked `inconclusive`: no answer, not a
|
|
57
|
+
no. The kernel's own refusals (a path outside the workspace, a path the
|
|
58
|
+
filesystem will not take whole, a URL token with nothing to fill it, a type
|
|
59
|
+
with no verifier) are also `unanswerable`, and a
|
|
60
|
+
verifier cannot set that flag itself. `outsideWorkspace(predicate)` says
|
|
61
|
+
before anything runs whether a file predicate's path could only be refused,
|
|
62
|
+
and `unfilledToken(predicate, facts)` whether an `http_resource_matches`
|
|
63
|
+
URL has a `{{token}}` those facts cannot fill.
|
|
57
64
|
- **What a built-in means.** Registering a built-in type is refused
|
|
58
65
|
(`verifier_type_taken`).
|
|
59
66
|
- **Where files are.** The only file access offered is
|
|
@@ -65,6 +72,11 @@ the runtime has it (`createMelraRuntime({ evidenceVerifiers })` in
|
|
|
65
72
|
`@melra/server`). The evidence is stamped `custom:row_exists`, and `custom` can
|
|
66
73
|
never name a built-in.
|
|
67
74
|
|
|
75
|
+
`semantic` is built in and never passes here: it is a question about meaning
|
|
76
|
+
for a judge outside MELRA, and the kernel runs no model. Its item fails as
|
|
77
|
+
inconclusive (`semantic_judgement_unanswered`), and no verifier can be
|
|
78
|
+
registered under that name.
|
|
79
|
+
|
|
68
80
|
Requires Node.js 22 or newer. Full documentation:
|
|
69
81
|
[github.com/XAGI-Lab/melra](https://github.com/XAGI-Lab/melra)
|
|
70
82
|
|
package/dist/index.d.ts
CHANGED
|
@@ -34,7 +34,7 @@ export interface VerificationContext {
|
|
|
34
34
|
* One way to confirm an effect. Returns what it found; `type` and `strength`
|
|
35
35
|
* are stamped by the kernel from the predicate type, so a verifier cannot
|
|
36
36
|
* claim a stronger kind of knowing than its type is entitled to. Throwing
|
|
37
|
-
* fails the predicate.
|
|
37
|
+
* fails the predicate as `inconclusive`: no answer, rather than a no.
|
|
38
38
|
*/
|
|
39
39
|
export interface PredicateVerifier<P extends {
|
|
40
40
|
type: string;
|
|
@@ -66,6 +66,7 @@ export interface VerifierOptions {
|
|
|
66
66
|
}
|
|
67
67
|
export declare class Verifier {
|
|
68
68
|
readonly root: string;
|
|
69
|
+
private readonly lexicalRoot;
|
|
69
70
|
private readonly probe;
|
|
70
71
|
private readonly reserved?;
|
|
71
72
|
private readonly verifiers;
|
|
@@ -85,6 +86,34 @@ export declare class Verifier {
|
|
|
85
86
|
*/
|
|
86
87
|
private resolve;
|
|
87
88
|
static create(root: string, options?: VerifierOptions): Promise<Verifier>;
|
|
89
|
+
private inputPath;
|
|
90
|
+
/**
|
|
91
|
+
* Whether a file predicate names a path refused on its spelling alone,
|
|
92
|
+
* outside the root or the root itself, so asking it can never get an
|
|
93
|
+
* answer. For planning, before the file need exist: no link is followed,
|
|
94
|
+
* and one that leads out is still refused when the predicate is asked.
|
|
95
|
+
*/
|
|
96
|
+
outsideWorkspace(predicate: EvidencePredicate | {
|
|
97
|
+
type: string;
|
|
98
|
+
[field: string]: unknown;
|
|
99
|
+
}): boolean;
|
|
100
|
+
/**
|
|
101
|
+
* The refusal an `http_resource_matches` URL gets when `facts` cannot fill
|
|
102
|
+
* one of its `{{token}}`s, if any. For planning a reconciliation, which is
|
|
103
|
+
* only ever read against facts known before the call: asked, it would be
|
|
104
|
+
* refused every time.
|
|
105
|
+
*/
|
|
106
|
+
unfilledToken(predicate: EvidencePredicate | {
|
|
107
|
+
type: string;
|
|
108
|
+
[field: string]: unknown;
|
|
109
|
+
}, facts: Record<string, unknown>): string | undefined;
|
|
110
|
+
/**
|
|
111
|
+
* `input` under the root before any link is followed; undefined outside it
|
|
112
|
+
* or at the root. Every file path a verifier, built-in or registered, or
|
|
113
|
+
* planning asks about comes through here, so the root's configured spelling
|
|
114
|
+
* is mapped once, for all of them.
|
|
115
|
+
*/
|
|
116
|
+
private spelled;
|
|
88
117
|
private filePath;
|
|
89
118
|
private potentiallyAbsentFilePath;
|
|
90
119
|
verify(predicates: ReadonlyArray<EvidencePredicate | {
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -2,10 +2,19 @@
|
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
import { createHash } from "node:crypto";
|
|
4
4
|
import { createReadStream } from "node:fs";
|
|
5
|
-
import { lstat, realpath, stat } from "node:fs/promises";
|
|
5
|
+
import { lstat, readdir, realpath, stat } from "node:fs/promises";
|
|
6
6
|
import { pipeline } from "node:stream/promises";
|
|
7
|
-
import { dirname, isAbsolute, relative, resolve, sep } from "node:path";
|
|
8
|
-
import { evidenceStrength } from "@melra/receipt-schema";
|
|
7
|
+
import { basename, dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
8
|
+
import { evidenceStrength, redactStructuredValue } from "@melra/receipt-schema";
|
|
9
|
+
/**
|
|
10
|
+
* A question the kernel itself refuses to ask: a path outside the workspace or
|
|
11
|
+
* reserved, a URL token with nothing to fill it, a verifier or probe this
|
|
12
|
+
* runtime does not have. Asked again of the same result it is refused again,
|
|
13
|
+
* so `verify` marks the item `unanswerable`. Not exported, so a verifier
|
|
14
|
+
* cannot make one of its own failures read as the kernel's.
|
|
15
|
+
*/
|
|
16
|
+
class Refusal extends Error {
|
|
17
|
+
}
|
|
9
18
|
function inside(root, candidate) {
|
|
10
19
|
const rel = relative(root, candidate);
|
|
11
20
|
return rel === "" || (!rel.startsWith(`..${sep}`) && rel !== ".." && !isAbsolute(rel));
|
|
@@ -54,20 +63,34 @@ function interpolate(template, result) {
|
|
|
54
63
|
return template.replace(TOKEN, (_match, path) => {
|
|
55
64
|
const value = readResultPath(source, path);
|
|
56
65
|
if (value === undefined || value === null || typeof value === "object") {
|
|
57
|
-
throw new
|
|
66
|
+
throw new Refusal(`verification_token_unresolved:${path}`);
|
|
58
67
|
}
|
|
59
68
|
// `.` and `..` survive percent-encoding as path segments (a URL parser
|
|
60
69
|
// reads `%2E%2E` as `..` too), so `{"id": ".."}` moved the probe up a
|
|
61
70
|
// level onto some other resource and verified that.
|
|
62
71
|
if (value === "." || value === "..")
|
|
63
|
-
throw new
|
|
72
|
+
throw new Refusal(`verification_token_dot_segment:${path}`);
|
|
64
73
|
return encodeURIComponent(String(value));
|
|
65
74
|
});
|
|
66
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* A body cut at the size cap is longer than what arrived, so it is neither the
|
|
78
|
+
* `content` that arrived nor the `bytes` counted, whatever those happen to
|
|
79
|
+
* equal: an exact match on either is no match at all.
|
|
80
|
+
*/
|
|
81
|
+
function cutBody(result, path) {
|
|
82
|
+
// An http body: other results carry `truncated` about something else, such
|
|
83
|
+
// as a terminal `send`, whose `bytes` are what it wrote and whose
|
|
84
|
+
// `truncated` is about the job's output.
|
|
85
|
+
return (result.truncated === true &&
|
|
86
|
+
typeof result.content === "string" &&
|
|
87
|
+
(path === "content" || path === "bytes"));
|
|
88
|
+
}
|
|
67
89
|
const resultEquals = {
|
|
68
90
|
type: "result_equals",
|
|
69
91
|
async check(predicate, result) {
|
|
70
|
-
const passed =
|
|
92
|
+
const passed = !cutBody(result, predicate.path) &&
|
|
93
|
+
Object.is(readResultPath(result, predicate.path), predicate.value);
|
|
71
94
|
return { passed, summary: `${predicate.path} ${passed ? "matched" : "did not match"} expected value` };
|
|
72
95
|
},
|
|
73
96
|
};
|
|
@@ -102,12 +125,39 @@ const pageContains = {
|
|
|
102
125
|
return { passed, summary: `page ${passed ? "contained" : "did not contain"} expected text` };
|
|
103
126
|
},
|
|
104
127
|
};
|
|
128
|
+
/**
|
|
129
|
+
* A path that is not there: the workspace's answer, not a failure to ask.
|
|
130
|
+
* Thrown, it would read as no answer at all, and a reconciliation or a
|
|
131
|
+
* condition waiting on that file would never decide.
|
|
132
|
+
*/
|
|
133
|
+
const missing = (error) => error instanceof Error && "code" in error && (error.code === "ENOENT" || error.code === "ENOTDIR");
|
|
134
|
+
/**
|
|
135
|
+
* A path the OS will not take whole (ENAMETOOLONG) is no answer either way: a
|
|
136
|
+
* name past NAME_MAX cannot exist, but a path past PATH_MAX can, built through
|
|
137
|
+
* relative steps. Read as missing, a file that is there verified as gone. It is
|
|
138
|
+
* the kernel's own refusal, so a check on it fails rather than waits.
|
|
139
|
+
*/
|
|
140
|
+
function refuseTooLong(error) {
|
|
141
|
+
if (error instanceof Error && "code" in error && error.code === "ENAMETOOLONG") {
|
|
142
|
+
throw new Refusal("verification_path_too_long");
|
|
143
|
+
}
|
|
144
|
+
}
|
|
105
145
|
const fileExists = {
|
|
106
146
|
type: "file_exists",
|
|
107
147
|
async check(predicate, _result, context) {
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
148
|
+
let path;
|
|
149
|
+
let passed;
|
|
150
|
+
try {
|
|
151
|
+
path = await context.workspacePath(predicate.path);
|
|
152
|
+
const metadata = await stat(path);
|
|
153
|
+
passed = metadata.isFile() || metadata.isDirectory();
|
|
154
|
+
}
|
|
155
|
+
catch (error) {
|
|
156
|
+
refuseTooLong(error);
|
|
157
|
+
if (!missing(error))
|
|
158
|
+
throw error;
|
|
159
|
+
return { passed: false, summary: "workspace path does not exist", source: predicate.path };
|
|
160
|
+
}
|
|
111
161
|
return {
|
|
112
162
|
passed,
|
|
113
163
|
summary: `workspace path ${passed ? "exists" : "does not exist"}`,
|
|
@@ -115,16 +165,53 @@ const fileExists = {
|
|
|
115
165
|
};
|
|
116
166
|
},
|
|
117
167
|
};
|
|
168
|
+
/**
|
|
169
|
+
* Whether `path`, which lstat reached as `found`, is the source of a move that
|
|
170
|
+
* only changed its case: a case-insensitive disk folds the old spelling onto
|
|
171
|
+
* the renamed file, and a correct rename verified as partial. It is absent
|
|
172
|
+
* only when `path` is that move's own source, what it reached is the move's
|
|
173
|
+
* destination entry and that entry's only name (a hard link is a second one),
|
|
174
|
+
* and the directory no longer lists the old spelling. Anywhere else a path
|
|
175
|
+
* lstat reaches is there, however spelled: a guard asking whether settings.json
|
|
176
|
+
* is absent beside Settings.json must not be told yes.
|
|
177
|
+
*/
|
|
178
|
+
async function renamedByCase(path, found, result, context) {
|
|
179
|
+
if (result.moved !== true || typeof result.path !== "string" || typeof result.destination !== "string")
|
|
180
|
+
return false;
|
|
181
|
+
// As the runtime reported it, relative to the root: an absolute path that
|
|
182
|
+
// spells the root in another case (Windows allows it) is the same source.
|
|
183
|
+
if (context.relative(path) !== result.path)
|
|
184
|
+
return false;
|
|
185
|
+
if (!found.isDirectory() && found.nlink !== 1n)
|
|
186
|
+
return false;
|
|
187
|
+
// The destination's own entry, not where a link there leads; gone, it is
|
|
188
|
+
// not what the old spelling reached.
|
|
189
|
+
const destination = await context
|
|
190
|
+
.workspacePath(result.destination, { mayBeAbsent: true })
|
|
191
|
+
.then((resolved) => lstat(resolved, { bigint: true }))
|
|
192
|
+
.catch(() => undefined);
|
|
193
|
+
if (destination === undefined || destination.dev !== found.dev || destination.ino !== found.ino)
|
|
194
|
+
return false;
|
|
195
|
+
// Compared as the OS sees names: UTF-8 (a lone surrogate becomes U+FFFD),
|
|
196
|
+
// and normalization aside, which such disks ignore too.
|
|
197
|
+
const spelled = (name) => Buffer.from(name).toString("utf8").normalize("NFC");
|
|
198
|
+
const name = spelled(basename(path));
|
|
199
|
+
return !(await readdir(dirname(path))).some((listed) => spelled(listed) === name);
|
|
200
|
+
}
|
|
118
201
|
const fileAbsent = {
|
|
119
202
|
type: "file_absent",
|
|
120
|
-
async check(predicate,
|
|
121
|
-
const path = await context.workspacePath(predicate.path, { mayBeAbsent: true })
|
|
203
|
+
async check(predicate, result, context) {
|
|
204
|
+
const path = await context.workspacePath(predicate.path, { mayBeAbsent: true }).catch((error) => {
|
|
205
|
+
refuseTooLong(error);
|
|
206
|
+
throw error;
|
|
207
|
+
});
|
|
122
208
|
let passed = false;
|
|
123
209
|
try {
|
|
124
|
-
await lstat(path);
|
|
210
|
+
passed = await renamedByCase(path, await lstat(path, { bigint: true }), result, context);
|
|
125
211
|
}
|
|
126
212
|
catch (error) {
|
|
127
|
-
|
|
213
|
+
refuseTooLong(error);
|
|
214
|
+
passed = missing(error);
|
|
128
215
|
if (!passed)
|
|
129
216
|
throw error;
|
|
130
217
|
}
|
|
@@ -138,11 +225,21 @@ const fileAbsent = {
|
|
|
138
225
|
const fileHash = {
|
|
139
226
|
type: "file_hash",
|
|
140
227
|
async check(predicate, _result, context) {
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
228
|
+
let path;
|
|
229
|
+
try {
|
|
230
|
+
path = await context.workspacePath(predicate.path);
|
|
231
|
+
// Streamed, so a large artifact is hashed in constant memory; a FIFO or
|
|
232
|
+
// a device would never end, so only a regular file is read at all.
|
|
233
|
+
if (!(await stat(path)).isFile()) {
|
|
234
|
+
return { passed: false, summary: "workspace path is not a regular file", source: context.relative(path) };
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
catch (error) {
|
|
238
|
+
refuseTooLong(error);
|
|
239
|
+
if (!missing(error))
|
|
240
|
+
throw error;
|
|
241
|
+
return { passed: false, summary: "workspace path does not exist", source: predicate.path };
|
|
242
|
+
}
|
|
146
243
|
const hash = createHash("sha256");
|
|
147
244
|
await pipeline(createReadStream(path), hash);
|
|
148
245
|
const digest = hash.digest("hex");
|
|
@@ -162,15 +259,17 @@ const httpResourceMatches = {
|
|
|
162
259
|
// Fails, never passes. A predicate the runtime cannot evaluate is an
|
|
163
260
|
// unanswered question, and treating it as satisfied would make the
|
|
164
261
|
// strongest evidence type the easiest one to claim.
|
|
165
|
-
throw new
|
|
262
|
+
throw new Refusal("verification_probe_unavailable");
|
|
166
263
|
}
|
|
167
264
|
const url = interpolate(predicate.url, result);
|
|
168
|
-
//
|
|
169
|
-
//
|
|
170
|
-
//
|
|
171
|
-
|
|
172
|
-
//
|
|
173
|
-
// is not
|
|
265
|
+
// What the item names is stored in receipts, so without the query and
|
|
266
|
+
// userinfo a stored request drops too: either can carry a token. The
|
|
267
|
+
// request below still goes to `url` as declared.
|
|
268
|
+
const source = redactStructuredValue({ url }).value.url;
|
|
269
|
+
// Caught here so the item names the URL it could not read. A transport
|
|
270
|
+
// failure is not the provider saying no: it is `inconclusive`, and that is
|
|
271
|
+
// what lets an unreachable provider leave a mutation `recovery_required`
|
|
272
|
+
// instead of `failed`.
|
|
174
273
|
let observed;
|
|
175
274
|
try {
|
|
176
275
|
observed = withParsedBody(await context.probe({ url, method: predicate.method, timeoutMs: predicate.timeoutMs }));
|
|
@@ -180,10 +279,12 @@ const httpResourceMatches = {
|
|
|
180
279
|
passed: false,
|
|
181
280
|
inconclusive: true,
|
|
182
281
|
summary: `independent read unavailable: ${error instanceof Error ? error.message : String(error)}`,
|
|
183
|
-
source
|
|
282
|
+
source,
|
|
184
283
|
};
|
|
185
284
|
}
|
|
186
|
-
const
|
|
285
|
+
const cut = observed.truncated === true;
|
|
286
|
+
const passed = !cutBody(observed, predicate.path) &&
|
|
287
|
+
Object.is(readResultPath(observed, predicate.path), predicate.value);
|
|
187
288
|
// A provider that answered 503 or 429 did not say no; it did not answer.
|
|
188
289
|
// Only a success or "not found" is its word on the resource, so a miss on
|
|
189
290
|
// any other status is as inconclusive as a dropped connection. Read as a
|
|
@@ -195,16 +296,52 @@ const httpResourceMatches = {
|
|
|
195
296
|
passed: false,
|
|
196
297
|
inconclusive: true,
|
|
197
298
|
summary: `independent read unavailable: the provider answered ${status}`,
|
|
198
|
-
source
|
|
299
|
+
source,
|
|
300
|
+
};
|
|
301
|
+
}
|
|
302
|
+
// A body cut at the probe's size cap is not the provider saying no about
|
|
303
|
+
// what is in it: the value may be past the cut, and a cut JSON body is not
|
|
304
|
+
// parsed at all. Its status and headers arrived whole, and so did a 404.
|
|
305
|
+
// The whole body is longer than what arrived, so a `content` or `bytes`
|
|
306
|
+
// that fits within what arrived cannot be it, and that miss is the answer.
|
|
307
|
+
const arrived = Number(observed.bytes ?? 0);
|
|
308
|
+
const unknowable = predicate.path === "content"
|
|
309
|
+
? typeof predicate.value === "string" && Buffer.byteLength(predicate.value) > arrived
|
|
310
|
+
: predicate.path === "bytes"
|
|
311
|
+
? typeof predicate.value === "number" && predicate.value > arrived
|
|
312
|
+
: /^(json|content|bytes)(\.|$)/u.test(predicate.path);
|
|
313
|
+
if (!passed &&
|
|
314
|
+
cut &&
|
|
315
|
+
typeof status === "number" &&
|
|
316
|
+
status >= 200 &&
|
|
317
|
+
status < 300 &&
|
|
318
|
+
unknowable) {
|
|
319
|
+
return {
|
|
320
|
+
passed: false,
|
|
321
|
+
inconclusive: true,
|
|
322
|
+
summary: "independent read unavailable: the response passed the size cap and was cut off",
|
|
323
|
+
source,
|
|
199
324
|
};
|
|
200
325
|
}
|
|
201
326
|
return {
|
|
202
327
|
passed,
|
|
203
328
|
summary: `independent read of ${predicate.path} ${passed ? "matched" : "did not match"} expected value`,
|
|
204
|
-
source
|
|
329
|
+
source,
|
|
205
330
|
};
|
|
206
331
|
},
|
|
207
332
|
};
|
|
333
|
+
/**
|
|
334
|
+
* A question about meaning. The kernel runs no model, so it never answers one:
|
|
335
|
+
* the item fails as inconclusive, and the controller parks the task for a
|
|
336
|
+
* verdict from outside (#54). Built in so planning supports the type and no
|
|
337
|
+
* embedder can register a verifier that answers it.
|
|
338
|
+
*/
|
|
339
|
+
const semantic = {
|
|
340
|
+
type: "semantic",
|
|
341
|
+
async check() {
|
|
342
|
+
return { passed: false, inconclusive: true, summary: "semantic_judgement_unanswered" };
|
|
343
|
+
},
|
|
344
|
+
};
|
|
208
345
|
const BUILT_IN = [
|
|
209
346
|
resultEquals,
|
|
210
347
|
resultContains,
|
|
@@ -215,15 +352,20 @@ const BUILT_IN = [
|
|
|
215
352
|
fileAbsent,
|
|
216
353
|
fileHash,
|
|
217
354
|
httpResourceMatches,
|
|
355
|
+
semantic,
|
|
218
356
|
];
|
|
219
357
|
const BUILT_IN_TYPES = new Set(BUILT_IN.map((verifier) => verifier.type));
|
|
358
|
+
/** The predicates whose `path` is a workspace file. */
|
|
359
|
+
const FILE_TYPES = new Set(["file_exists", "file_absent", "file_hash"]);
|
|
220
360
|
export class Verifier {
|
|
221
361
|
root;
|
|
362
|
+
lexicalRoot;
|
|
222
363
|
probe;
|
|
223
364
|
reserved;
|
|
224
365
|
verifiers = new Map();
|
|
225
|
-
constructor(root, probe, extra, reserved) {
|
|
366
|
+
constructor(root, lexicalRoot, probe, extra, reserved) {
|
|
226
367
|
this.root = root;
|
|
368
|
+
this.lexicalRoot = lexicalRoot;
|
|
227
369
|
this.probe = probe;
|
|
228
370
|
this.reserved = reserved;
|
|
229
371
|
for (const verifier of BUILT_IN)
|
|
@@ -267,44 +409,93 @@ export class Verifier {
|
|
|
267
409
|
};
|
|
268
410
|
}
|
|
269
411
|
static async create(root, options = {}) {
|
|
270
|
-
return new Verifier(await realpath(root), options.probe, options.verifiers ?? [], options.reserved);
|
|
412
|
+
return new Verifier(await realpath(root), resolve(root), options.probe, options.verifiers ?? [], options.reserved);
|
|
271
413
|
}
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
414
|
+
inputPath(input) {
|
|
415
|
+
if (!isAbsolute(input))
|
|
416
|
+
return input;
|
|
417
|
+
const candidate = resolve(input);
|
|
418
|
+
return inside(this.lexicalRoot, candidate)
|
|
419
|
+
? resolve(this.root, relative(this.lexicalRoot, candidate))
|
|
420
|
+
: input;
|
|
421
|
+
}
|
|
422
|
+
/**
|
|
423
|
+
* Whether a file predicate names a path refused on its spelling alone,
|
|
424
|
+
* outside the root or the root itself, so asking it can never get an
|
|
425
|
+
* answer. For planning, before the file need exist: no link is followed,
|
|
426
|
+
* and one that leads out is still refused when the predicate is asked.
|
|
427
|
+
*/
|
|
428
|
+
outsideWorkspace(predicate) {
|
|
429
|
+
const path = predicate.path;
|
|
430
|
+
return FILE_TYPES.has(predicate.type) && typeof path === "string" && this.spelled(path) === undefined;
|
|
431
|
+
}
|
|
432
|
+
/**
|
|
433
|
+
* The refusal an `http_resource_matches` URL gets when `facts` cannot fill
|
|
434
|
+
* one of its `{{token}}`s, if any. For planning a reconciliation, which is
|
|
435
|
+
* only ever read against facts known before the call: asked, it would be
|
|
436
|
+
* refused every time.
|
|
437
|
+
*/
|
|
438
|
+
unfilledToken(predicate, facts) {
|
|
439
|
+
const url = predicate.url;
|
|
440
|
+
if (predicate.type !== "http_resource_matches" || typeof url !== "string")
|
|
441
|
+
return undefined;
|
|
442
|
+
try {
|
|
443
|
+
interpolate(url, facts);
|
|
444
|
+
return undefined;
|
|
276
445
|
}
|
|
277
|
-
|
|
446
|
+
catch (error) {
|
|
447
|
+
return error instanceof Refusal ? error.message : undefined;
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
/**
|
|
451
|
+
* `input` under the root before any link is followed; undefined outside it
|
|
452
|
+
* or at the root. Every file path a verifier, built-in or registered, or
|
|
453
|
+
* planning asks about comes through here, so the root's configured spelling
|
|
454
|
+
* is mapped once, for all of them.
|
|
455
|
+
*/
|
|
456
|
+
spelled(input) {
|
|
457
|
+
const candidate = resolve(this.root, this.inputPath(input));
|
|
458
|
+
return inside(this.root, candidate) && relative(this.root, candidate) !== "" ? candidate : undefined;
|
|
459
|
+
}
|
|
460
|
+
async filePath(input) {
|
|
461
|
+
// Where the path leads is decided before whether it is there, which is an
|
|
462
|
+
// answer, so a refused path gets the same refusal present or absent.
|
|
463
|
+
const actual = await realpath(await this.potentiallyAbsentFilePath(input));
|
|
278
464
|
if (!inside(this.root, actual)) {
|
|
279
|
-
throw new
|
|
465
|
+
throw new Refusal("verification_path_outside_workspace");
|
|
280
466
|
}
|
|
281
467
|
if ((await this.reserved?.(actual)) === true) {
|
|
282
|
-
throw new
|
|
468
|
+
throw new Refusal("verification_path_reserved");
|
|
283
469
|
}
|
|
284
470
|
return actual;
|
|
285
471
|
}
|
|
286
472
|
async potentiallyAbsentFilePath(input) {
|
|
287
|
-
const candidate =
|
|
288
|
-
if (
|
|
289
|
-
throw new
|
|
290
|
-
|
|
473
|
+
const candidate = this.spelled(input);
|
|
474
|
+
if (candidate === undefined)
|
|
475
|
+
throw new Refusal("verification_path_outside_workspace");
|
|
476
|
+
// Before following links, so every reserved name gets the same answer,
|
|
477
|
+
// wherever a link inside it leads; the runtime's check follows them itself.
|
|
478
|
+
if ((await this.reserved?.(candidate)) === true)
|
|
479
|
+
throw new Refusal("verification_path_reserved");
|
|
291
480
|
let probe = candidate;
|
|
292
481
|
while (true) {
|
|
293
482
|
try {
|
|
294
483
|
const actual = await realpath(probe);
|
|
295
484
|
if (!inside(this.root, actual)) {
|
|
296
|
-
throw new
|
|
485
|
+
throw new Refusal("verification_path_outside_workspace");
|
|
486
|
+
}
|
|
487
|
+
// Whether a reserved name is absent is no more answered than whether it exists.
|
|
488
|
+
if ((await this.reserved?.(join(actual, relative(probe, candidate)))) === true) {
|
|
489
|
+
throw new Refusal("verification_path_reserved");
|
|
297
490
|
}
|
|
298
491
|
return candidate;
|
|
299
492
|
}
|
|
300
493
|
catch (error) {
|
|
301
|
-
if (error instanceof
|
|
302
|
-
error.message === "verification_path_outside_workspace") {
|
|
494
|
+
if (error instanceof Refusal)
|
|
303
495
|
throw error;
|
|
304
|
-
}
|
|
305
496
|
const parent = dirname(probe);
|
|
306
497
|
if (parent === probe) {
|
|
307
|
-
throw new
|
|
498
|
+
throw new Refusal("verification_path_outside_workspace");
|
|
308
499
|
}
|
|
309
500
|
probe = parent;
|
|
310
501
|
}
|
|
@@ -324,14 +515,23 @@ export class Verifier {
|
|
|
324
515
|
try {
|
|
325
516
|
// An unregistered type is a question nobody here can answer: it fails.
|
|
326
517
|
if (verifier === undefined)
|
|
327
|
-
throw new
|
|
328
|
-
|
|
518
|
+
throw new Refusal(`verification_unsupported:${type}`);
|
|
519
|
+
// `unanswerable` is the kernel's to say, as `strength` is.
|
|
520
|
+
const { unanswerable: _claimed, ...found } = await verifier.check(input, result, context);
|
|
329
521
|
evidence.push({ ...found, type });
|
|
330
522
|
}
|
|
331
523
|
catch (error) {
|
|
524
|
+
// A throw is no answer — an unresolved token, a missing verifier, a
|
|
525
|
+
// backend that timed out — so it is not a provider's "no" either.
|
|
526
|
+
// Reconciliation reads that difference to keep the task parked.
|
|
332
527
|
evidence.push({
|
|
333
528
|
type,
|
|
334
529
|
passed: false,
|
|
530
|
+
inconclusive: true,
|
|
531
|
+
// Still inconclusive, since nothing was learned about the effect;
|
|
532
|
+
// flagged so a caller deciding whether to ask again need not parse
|
|
533
|
+
// the summary.
|
|
534
|
+
...(error instanceof Refusal ? { unanswerable: true } : {}),
|
|
335
535
|
summary: error instanceof Error ? error.message : String(error),
|
|
336
536
|
});
|
|
337
537
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@melra/verifier-core",
|
|
3
|
-
"version": "0.3.0-alpha.
|
|
3
|
+
"version": "0.3.0-alpha.16",
|
|
4
4
|
"description": "Deterministic evidence predicates and result verification for MELRA.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
"dist"
|
|
22
22
|
],
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@melra/
|
|
25
|
-
"@melra/
|
|
24
|
+
"@melra/receipt-schema": "0.3.0-alpha.16",
|
|
25
|
+
"@melra/protocol": "0.3.0-alpha.16"
|
|
26
26
|
},
|
|
27
27
|
"scripts": {
|
|
28
28
|
"build": "tsc -p tsconfig.json",
|