@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 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 | {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
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 Error(`verification_token_unresolved:${path}`);
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 Error(`verification_token_dot_segment:${path}`);
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 = Object.is(readResultPath(result, predicate.path), predicate.value);
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
- const path = await context.workspacePath(predicate.path);
109
- const metadata = await stat(path);
110
- const passed = metadata.isFile() || metadata.isDirectory();
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, _result, context) {
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
- passed = error instanceof Error && "code" in error && error.code === "ENOENT";
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
- const path = await context.workspacePath(predicate.path);
142
- // Streamed, so a large artifact is hashed in constant memory; a FIFO or a
143
- // device would never end, so only a regular file is read at all.
144
- if (!(await stat(path)).isFile())
145
- throw new Error("verification_hash_requires_regular_file");
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 Error("verification_probe_unavailable");
262
+ throw new Refusal("verification_probe_unavailable");
166
263
  }
167
264
  const url = interpolate(predicate.url, result);
168
- // Caught here rather than by the caller so a transport failure is not
169
- // filed as the provider saying no. Both are `passed: false`; only this one
170
- // is `inconclusive`, and that is what lets an unreachable provider leave a
171
- // mutation `recovery_required` instead of `failed`. The interpolate above
172
- // stays outside: an unresolved token is a caller error, and the provider
173
- // is not implicated in it.
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: url,
282
+ source,
184
283
  };
185
284
  }
186
- const passed = Object.is(readResultPath(observed, predicate.path), predicate.value);
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: url,
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: url,
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
- async filePath(input) {
273
- const candidate = resolve(this.root, input);
274
- if (!inside(this.root, candidate) || relative(this.root, candidate) === "") {
275
- throw new Error("verification_path_outside_workspace");
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
- const actual = await realpath(candidate);
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 Error("verification_path_outside_workspace");
465
+ throw new Refusal("verification_path_outside_workspace");
280
466
  }
281
467
  if ((await this.reserved?.(actual)) === true) {
282
- throw new Error("verification_path_reserved");
468
+ throw new Refusal("verification_path_reserved");
283
469
  }
284
470
  return actual;
285
471
  }
286
472
  async potentiallyAbsentFilePath(input) {
287
- const candidate = resolve(this.root, input);
288
- if (!inside(this.root, candidate) || relative(this.root, candidate) === "") {
289
- throw new Error("verification_path_outside_workspace");
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 Error("verification_path_outside_workspace");
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 Error &&
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 Error("verification_path_outside_workspace");
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 Error(`verification_unsupported:${type}`);
328
- const found = await verifier.check(input, result, context);
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.14",
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/protocol": "0.3.0-alpha.14",
25
- "@melra/receipt-schema": "0.3.0-alpha.14"
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",