pm-context 2026.10.31 → 2026.11.13

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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 2026.11.13 - 2026-11-13
4
+
5
+ ### Fixed
6
+
7
+ - Abandon prepared releases without usable notes and validate the exact new section ([pm-context-empty-prepared-release](https://github.com/unbraind/pm-context/blob/main/.agents/pm/issues/pm-context-empty-prepared-release.toon))
8
+
3
9
  ## 2026.10.31 - 2026-10-31
4
10
 
5
11
  ### Fixed
@@ -25,8 +31,8 @@
25
31
 
26
32
  ### Other
27
33
 
28
- - Point the npm homepage at the package catalog and link the author ([pm-context-78wz](https://github.com/unbraind/pm-context/blob/main/.agents/pm/chores/pm-context-78wz.toon))
29
34
  - Stop Hound from linting generated dist/ output ([pm-context-hound-generated-dist](https://github.com/unbraind/pm-context/blob/main/.agents/pm/chores/pm-context-hound-generated-dist.toon))
35
+ - Point the npm homepage at the package catalog and link the author ([pm-context-78wz](https://github.com/unbraind/pm-context/blob/main/.agents/pm/chores/pm-context-78wz.toon))
30
36
 
31
37
  ## 2026.10.26 - 2026-10-26
32
38
 
@@ -61,6 +67,10 @@
61
67
  - Certify complete context corpora and recover abandoned receipt locks ([pm-context-pbcw](https://github.com/unbraind/pm-context/blob/main/.agents/pm/tasks/pm-context-pbcw.toon))
62
68
  - Correct tracker reconciliation review evidence for PR 163 ([pm-context-r163](https://github.com/unbraind/pm-context/blob/main/.agents/pm/chores/pm-context-r163.toon))
63
69
 
70
+ ## 2026.10.24 - 2026-10-24
71
+
72
+ No changes.
73
+
64
74
  ## 2026.10.23 - 2026-10-23
65
75
 
66
76
  ### Added
@@ -91,6 +101,22 @@
91
101
 
92
102
  - Closed: Daily Release workflow is failing ([pm-context-github-356cb2a080ed-81](https://github.com/unbraind/pm-context/blob/main/.agents/pm/issues/pm-context-github-356cb2a080ed-81.toon))
93
103
 
104
+ ## 2026.10.20 - 2026-10-20
105
+
106
+ No changes.
107
+
108
+ ## 2026.10.18 - 2026-10-18
109
+
110
+ No changes.
111
+
112
+ ## 2026.10.17 - 2026-10-17
113
+
114
+ No changes.
115
+
116
+ ## 2026.10.16 - 2026-10-16
117
+
118
+ No changes.
119
+
94
120
  ## 2026.10.14 - 2026-10-14
95
121
 
96
122
  ### Fixed
@@ -103,12 +129,28 @@
103
129
 
104
130
  - pm context-usage: report which served context an agent actually used ([pm-context-ci6v](https://github.com/unbraind/pm-context/blob/main/.agents/pm/features/pm-context-ci6v.toon))
105
131
 
132
+ ## 2026.10.11 - 2026-10-11
133
+
134
+ No changes.
135
+
136
+ ## 2026.10.10 - 2026-10-10
137
+
138
+ No changes.
139
+
140
+ ## 2026.10.9 - 2026-10-09
141
+
142
+ No changes.
143
+
106
144
  ## 2026.10.5 - 2026-10-05
107
145
 
108
146
  ### Other
109
147
 
110
148
  - Auto-merge green Dependabot updates and group the pm toolchain into one daily PR ([pm-context-h34i](https://github.com/unbraind/pm-context/blob/main/.agents/pm/tasks/pm-context-h34i.toon))
111
149
 
150
+ ## 2026.10.3 - 2026-10-03
151
+
152
+ No changes.
153
+
112
154
  ## 2026.9.26 - 2026-09-26
113
155
 
114
156
  ### Other
@@ -143,6 +185,10 @@
143
185
 
144
186
  - Certify pm CLI 2026.9.10 and pick up the canonical auditor fixes the lockfile was holding back ([pm-context-syd5](https://github.com/unbraind/pm-context/blob/main/.agents/pm/chores/pm-context-syd5.toon))
145
187
 
188
+ ## 2026.9.9 - 2026-09-09
189
+
190
+ No changes.
191
+
146
192
  ## 2026.9.8 - 2026-09-08
147
193
 
148
194
  ### Security
@@ -171,9 +217,9 @@
171
217
 
172
218
  ### Fixed
173
219
 
174
- - Refuse the unattested publish fallback after provenance failure ([pm-context-fuhi](https://github.com/unbraind/pm-context/blob/main/.agents/pm/issues/pm-context-fuhi.toon))
175
220
  - Preserve append-only provenance history during review repair ([pm-context-9xfx](https://github.com/unbraind/pm-context/blob/main/.agents/pm/issues/pm-context-9xfx.toon))
176
221
  - Make the affinity tiebreak test use one shared instant ([pm-context-hxj5](https://github.com/unbraind/pm-context/blob/main/.agents/pm/issues/pm-context-hxj5.toon))
222
+ - Refuse the unattested publish fallback after provenance failure ([pm-context-fuhi](https://github.com/unbraind/pm-context/blob/main/.agents/pm/issues/pm-context-fuhi.toon))
177
223
 
178
224
  ## 2026.8.28 - 2026-08-28
179
225
 
@@ -248,12 +294,20 @@
248
294
 
249
295
  - Resolve pm-changelog to the release that derives release dates in UTC ([pm-context-6rua](https://github.com/unbraind/pm-context/blob/main/.agents/pm/chores/pm-context-6rua.toon))
250
296
 
297
+ ## 2026.8.3 - 2026-08-03
298
+
299
+ No changes.
300
+
251
301
  ## 2026.8.1 - 2026-08-01
252
302
 
253
303
  ### Fixed
254
304
 
255
305
  - Release commits discard the rebuilt dist, so the git-install path serves the previous version ([pm-context-bbsp](https://github.com/unbraind/pm-context/blob/main/.agents/pm/issues/pm-context-bbsp.toon))
256
306
 
307
+ ## 2026.7.31 - 2026-07-31
308
+
309
+ No changes.
310
+
257
311
  ## 2026.7.29 - 2026-07-29
258
312
 
259
313
  ### Added
@@ -310,12 +364,28 @@
310
364
 
311
365
  - Closed: Recommend pm merge reconcile (2026.7.22) over raw history-repair in Multi-agent merge safety docs ([pm-context-164t](https://github.com/unbraind/pm-context/blob/main/.agents/pm/issues/pm-context-164t.toon))
312
366
 
367
+ ## 2026.7.22 - 2026-07-22
368
+
369
+ No changes.
370
+
371
+ ## 2026.7.20 - 2026-07-20
372
+
373
+ No changes.
374
+
313
375
  ## 2026.7.14 - 2026-07-14
314
376
 
315
377
  ### Fixed
316
378
 
317
379
  - context-pack and context-handoff write rendered output to stderr instead of stdout ([pm-context-ubca](https://github.com/unbraind/pm-context/blob/main/.agents/pm/issues/pm-context-ubca.toon))
318
380
 
381
+ ## 2026.7.13 - 2026-07-13
382
+
383
+ No changes.
384
+
385
+ ## 2026.7.11 - 2026-07-11
386
+
387
+ No changes.
388
+
319
389
  ## 2026.7.10-1 - 2026-07-10
320
390
 
321
391
  ### Added
@@ -341,6 +411,10 @@
341
411
 
342
412
  - Ecosystem release readiness pass 2026-07-06 ([pm-context-m959](https://github.com/unbraind/pm-context/blob/main/.agents/pm/tasks/pm-context-m959.toon))
343
413
 
414
+ ## 2026.7.7 - 2026-07-07
415
+
416
+ No changes.
417
+
344
418
  ## 2026.7.6 - 2026-07-06
345
419
 
346
420
  ### Fixed
@@ -365,6 +439,10 @@
365
439
 
366
440
  - Daily Release publish step runs prepublishOnly post-tag: align npm publish with --ignore-scripts ([pm-context-wvup](https://github.com/unbraind/pm-context/blob/main/.agents/pm/tasks/pm-context-wvup.toon))
367
441
 
442
+ ## 2026.6.10 - 2026-06-10
443
+
444
+ No changes.
445
+
368
446
  ## 2026.6.9 - 2026-06-09
369
447
 
370
448
  ### Added
@@ -372,12 +450,24 @@
372
450
  - Add compact format alias and recent activity section ([pm-context-8vgi](https://github.com/unbraind/pm-context/blob/main/.agents/pm/features/pm-context-8vgi.toon))
373
451
  - Add --neighborhood-depth for transitive context neighbors ([pm-context-qbmf](https://github.com/unbraind/pm-context/blob/main/.agents/pm/features/pm-context-qbmf.toon))
374
452
 
453
+ ## 2026.6.8 - 2026-06-08
454
+
455
+ No changes.
456
+
457
+ ## 2026.6.7-2 - 2026-06-07
458
+
459
+ No changes.
460
+
461
+ ## 2026.6.7-1 - 2026-06-06
462
+
463
+ No changes.
464
+
375
465
  ## 2026.6.7 - 2026-06-06
376
466
 
377
467
  ### Added
378
468
 
379
- - Build initial context pack command ([pm-context-0gyf](https://github.com/unbraind/pm-context/blob/main/.agents/pm/features/pm-context-0gyf.toon))
380
469
  - Add agent handoff digest mode to context packs ([pm-context-opzn](https://github.com/unbraind/pm-context/blob/main/.agents/pm/features/pm-context-opzn.toon))
470
+ - Build initial context pack command ([pm-context-0gyf](https://github.com/unbraind/pm-context/blob/main/.agents/pm/features/pm-context-0gyf.toon))
381
471
 
382
472
  ### Other
383
473
 
package/README.md CHANGED
@@ -568,6 +568,9 @@ See [validation and measured public data](docs/task-phase-validation.md).
568
568
 
569
569
  ## Without git
570
570
 
571
+ `context-reduce` and its saved-packet `--check` work in plain trackers without Git.
572
+ They read SDK-native fields and revisions without creating tracker state.
573
+
571
574
  Next-evidence acquisition plans, criterion evidence packs, item-selected packs, handoffs, usage reports, `context-pack since`, freshness record/resume and `context-witnesses` work in a
572
575
  plain initialized tracker without invoking Git. Corpus reads use `listAllComplete`
573
576
  with extension hooks disabled and re-certify its full-corpus receipt before packing,
@@ -609,3 +612,28 @@ SDK and CLI packets share one strict validation boundary. All arrays must be
609
612
  dense and within the documented bounds; sparse arrays refuse with
610
613
  `INVALID_PACKET` before planning or serialization. Valid v1 packets and saved
611
614
  plans retain their existing contract hashes.
615
+
616
+ Changelog history explicitly includes empty version windows, including the
617
+ package version awaiting release. A version with no qualifying closed tracker
618
+ changes is recorded as “No changes.”
619
+
620
+ ## Answer-sensitive context reduction
621
+
622
+ `pm context-reduce` accepts an explicit finite decision table and source-fragment
623
+ influence declarations. It checks every input combination and omits only fields
624
+ whose declared variables cannot change the answer, retaining a branch proof and
625
+ source revision for every omission. Unsupported predicates keep evidence and
626
+ report `unknown`. This complements evidence packing and deduplication.
627
+
628
+ ```sh
629
+ pm context-reduce --packet routing.json --format toon
630
+ pm context-reduce --packet routing.json --json > reduced.json
631
+ pm context-reduce --packet routing.json --check reduced.json --json
632
+ ```
633
+
634
+ Use [the example](docs/examples/answer-reduction.json) with your item IDs. The
635
+ [contract and SDK guide](docs/answer-reduction.md) explains bounds, proof scope,
636
+ `full` comparison output, typed remedies, and revision revalidation. The public
637
+ tracker benchmark reduced JSON from **7,600 to 2,526 bytes (66.76%)**, including
638
+ proofs, while preserving all four routing combinations. This guarantee applies
639
+ to the caller's declared task; dependencies are never inferred from prose.
@@ -0,0 +1,90 @@
1
+ import { PmCliError } from "@unbrained/pm-cli/sdk";
2
+ import type { SharedEvidenceReader } from "./shared-evidence.ts";
3
+ /** Exact JSON values; numbers are finite and bounded, with no coercion or rounding. */
4
+ export type AnswerValue = string | number | boolean | null;
5
+ /** A finite domain supplied by the task owner, not inferred from source prose. */
6
+ export interface AnswerVariable {
7
+ id: string;
8
+ values: AnswerValue[];
9
+ }
10
+ /** Only eq and neq are evaluated; other named operations make the result unknown. */
11
+ export interface AnswerPredicate {
12
+ variable: string;
13
+ op: string;
14
+ value: AnswerValue;
15
+ }
16
+ /** Ordered first-match rule; all predicates in when must hold. Empty when always matches. */
17
+ export interface AnswerRule {
18
+ when: AnswerPredicate[];
19
+ answer: string;
20
+ }
21
+ /** The caller asserts that this field can affect the answer only through these variables. */
22
+ export interface AnswerFragment {
23
+ id: string;
24
+ item: string;
25
+ field: string;
26
+ variables: string[];
27
+ }
28
+ /** One strict declaration schema for SDK, CLI, saved packets and verification. */
29
+ export interface AnswerReductionRequest {
30
+ contract_revision: string;
31
+ variables: AnswerVariable[];
32
+ rules: AnswerRule[];
33
+ fallback: string;
34
+ fragments: AnswerFragment[];
35
+ }
36
+ /** Matching cofactor digests certify equal answer vectors for each domain branch. */
37
+ export interface AnswerIrrelevanceProof {
38
+ variable: string;
39
+ contexts: number;
40
+ branches: {
41
+ value: AnswerValue;
42
+ answers_sha256: string;
43
+ }[];
44
+ }
45
+ /** Each field is independently revision-bound; missing sources remain explicit unknowns. */
46
+ export interface ReducedAnswerFragment {
47
+ id: string;
48
+ revision: string | null;
49
+ state: "retained" | "omitted" | "unavailable";
50
+ proof_variables: string[];
51
+ value_json: string | null;
52
+ }
53
+ /** Self-contained finite routing table plus checkable declaration and omission certificates. */
54
+ export interface AnswerReduction {
55
+ protocol: "pm-context-answer-reduction/v1";
56
+ basis: "declared-domains-and-fragment-dependencies;not-inferred-semantics";
57
+ contract: AnswerReductionRequest;
58
+ representation: "full" | "reduced";
59
+ state: "proved" | "unknown";
60
+ combinations: number;
61
+ relevant_variables: string[];
62
+ routing: {
63
+ inputs: AnswerValue[];
64
+ answer: string;
65
+ }[];
66
+ proofs: AnswerIrrelevanceProof[];
67
+ fragments: ReducedAnswerFragment[];
68
+ remedy: string;
69
+ }
70
+ /** Host-compatible refusals never expose source contents or private input paths. */
71
+ export declare class AnswerReductionError extends PmCliError {
72
+ /** Machine-readable categories survive both SDK and CLI error boundaries. */
73
+ readonly code: "INVALID_REQUEST" | "INVALID_ARGUMENT" | "INPUT_UNAVAILABLE" | "INVALID_OUTPUT" | "STALE_PACKET";
74
+ /** Corrective action available alongside the host next_steps field. */
75
+ readonly remedy: string;
76
+ constructor(code: AnswerReductionError["code"], remedy: string);
77
+ }
78
+ /** Validate once before reads; preserve declared order because it defines first-match semantics. */
79
+ export declare function parseAnswerReductionRequest(value: unknown): AnswerReductionRequest;
80
+ /** Read bounded stable UTF-8 JSON with the package's existing file-reader contract. */
81
+ export declare function readAnswerReductionJson(path: string): unknown;
82
+ /** Verify shape and certificates using the producer, including every emitted numeric domain. */
83
+ export declare function parseAnswerReduction(value: unknown): AnswerReduction;
84
+ /** Read every declared field through the caller's authoritative adapter; failures stay local. */
85
+ export declare function reduceAnswerContext(input: AnswerReductionRequest, read: SharedEvidenceReader, representation?: AnswerReduction["representation"]): Promise<AnswerReduction>;
86
+ /** Compact, lossless transports share the same producer-derived validator. */
87
+ export declare function encodeAnswerReduction(packet: AnswerReduction, format: "json" | "toon"): string;
88
+ /** Recompute all proofs and reread current revisions; replay cannot bless a stale packet. */
89
+ export declare function validateAnswerReduction(saved: unknown, input: AnswerReductionRequest, read: SharedEvidenceReader): Promise<AnswerReduction>;
90
+ //# sourceMappingURL=answer-reduction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"answer-reduction.d.ts","sourceRoot":"","sources":["../answer-reduction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,238 @@
1
+ /** Exhaustive answer-preserving reduction over an explicitly declared finite task. */
2
+ import { createHash } from "node:crypto";
3
+ import { isDeepStrictEqual, types } from "node:util";
4
+ import { encodeToon as encode } from "@unbrained/pm-cli/sdk/testing";
5
+ import { PmCliError } from "@unbrained/pm-cli/sdk";
6
+ import { isUtf8 } from "node:buffer";
7
+ import { readFreshnessFile } from "./freshness.js";
8
+ /** Saved JSON and newly produced packets share the same UTF-8 byte ceiling. */
9
+ const MAX_PACKET_BYTES = 33554432;
10
+ /** Host-compatible refusals never expose source contents or private input paths. */
11
+ export class AnswerReductionError extends PmCliError {
12
+ /** Corrective action available alongside the host next_steps field. */
13
+ remedy;
14
+ constructor(code, remedy) {
15
+ super(`${code}: ${remedy}`, 2, { code, nextSteps: [remedy] });
16
+ this.remedy = remedy;
17
+ }
18
+ }
19
+ /** Reject exotic objects, hidden keys and accessor/serialization hooks at the boundary. */
20
+ function record(value) {
21
+ return value !== null && typeof value === "object" && !types.isProxy(value) && Object.getPrototypeOf(value) === Object.prototype;
22
+ }
23
+ /** Strict keys also reject nonenumerable additions and getters before reading them. */
24
+ function keys(value, allowed) {
25
+ return Reflect.ownKeys(value).every((key) => {
26
+ const descriptor = Object.getOwnPropertyDescriptor(value, key);
27
+ return typeof key === "string" && allowed.includes(key) && "value" in descriptor && descriptor.enumerable;
28
+ });
29
+ }
30
+ /** Dense, bounded arrays have only their own indexed data properties and length. */
31
+ function dense(value, maximum) {
32
+ return !types.isProxy(value) && Array.isArray(value) && Object.getPrototypeOf(value) === Array.prototype && value.length <= maximum && Reflect.ownKeys(value).length === value.length + 1 && Array.from({ length: value.length }, (_, i) => Object.getOwnPropertyDescriptor(value, i)).every((entry) => entry !== undefined && "value" in entry && entry.enumerable);
33
+ }
34
+ /** Coordinates are opaque identifiers; prototype-like names are safe Map keys. */
35
+ function id(value) { return typeof value === "string" && /^[A-Za-z0-9][A-Za-z0-9_.:-]{0,127}$/.test(value); }
36
+ /** Text preserves whitespace exactly; only empty/blank declarations are refused. */
37
+ function label(value) { return typeof value === "string" && value.length <= 256 && value.trim().length > 0; }
38
+ /** Scalar domains avoid arithmetic and preserve distinctions between strings and numbers. */
39
+ function scalar(value) { return value === null || typeof value === "boolean" || (typeof value === "string" && value.length <= 256) || (typeof value === "number" && Number.isFinite(value) && Math.abs(value) <= 1e12); }
40
+ /** Bound arbitrary SDK JSON traversal, counting string/key UTF-16 code units. */
41
+ function json(value, budget, depth = 0, sdk = false) {
42
+ if (--budget.nodes < 0 || depth > 24)
43
+ return false;
44
+ if (typeof value === "string") {
45
+ budget.chars -= value.length;
46
+ return budget.chars >= 0;
47
+ }
48
+ if (value === null || typeof value === "boolean")
49
+ return true;
50
+ if (typeof value === "number")
51
+ return Number.isFinite(value);
52
+ if (dense(value, 100000))
53
+ return value.every((entry) => json(entry, budget, depth + 1, sdk));
54
+ return record(value) && keys(value, Object.keys(value)) && Object.entries(value).every(([key, entry]) => json(key, budget, depth + 1, sdk) && ((sdk && entry === undefined) || json(entry, budget, depth + 1, sdk)));
55
+ }
56
+ /** Validate once before reads; preserve declared order because it defines first-match semantics. */
57
+ export function parseAnswerReductionRequest(value) {
58
+ const fail = () => new AnswerReductionError("INVALID_REQUEST", "Supply contract_revision, 0-8 unique variables {id,values:1-8 unique JSON scalars}, 0-64 ordered rules {when:[{variable,op,value}],answer}, fallback and 0-64 fragments {id,item,field,variables}. Use dense arrays, at most 4096 combinations and 262144 UTF-8 bytes, finite numbers within +/-1e12, text up to 256 characters, no unknown keys. Predicates must name declared variables; eq/neq values must belong to their domain.");
59
+ if (!record(value) || !keys(value, ["contract_revision", "variables", "rules", "fallback", "fragments"]) || !label(value.contract_revision) || !label(value.fallback) || !dense(value.variables, 8) || !dense(value.rules, 64) || !dense(value.fragments, 64))
60
+ throw fail();
61
+ const domains = new Map();
62
+ let combinations = 1;
63
+ for (const row of value.variables) {
64
+ if (!record(row) || !keys(row, ["id", "values"]) || !id(row.id) || domains.has(row.id) || !dense(row.values, 8) || row.values.length === 0 || !row.values.every(scalar) || new Set(row.values).size !== row.values.length)
65
+ throw fail();
66
+ domains.set(row.id, row.values);
67
+ combinations *= row.values.length;
68
+ }
69
+ if (combinations > 4096)
70
+ throw fail();
71
+ for (const rule of value.rules) {
72
+ if (!record(rule) || !keys(rule, ["when", "answer"]) || !label(rule.answer) || !dense(rule.when, 8))
73
+ throw fail();
74
+ for (const predicate of rule.when) {
75
+ if (!record(predicate) || !keys(predicate, ["variable", "op", "value"]) || !id(predicate.variable) || !domains.has(predicate.variable) || !id(predicate.op) || !scalar(predicate.value) || (["eq", "neq"].includes(predicate.op) && !domains.get(predicate.variable).includes(predicate.value)))
76
+ throw fail();
77
+ }
78
+ }
79
+ const fragments = new Set();
80
+ for (const row of value.fragments) {
81
+ if (!record(row) || !keys(row, ["id", "item", "field", "variables"]) || !id(row.id) || fragments.has(row.id) || !id(row.item) || !id(row.field) || !dense(row.variables, 8) || !row.variables.every((entry) => typeof entry === "string" && domains.has(entry)) || new Set(row.variables).size !== row.variables.length)
82
+ throw fail();
83
+ fragments.add(row.id);
84
+ }
85
+ if (Buffer.byteLength(JSON.stringify(value)) > 262144)
86
+ throw fail();
87
+ return JSON.parse(JSON.stringify(value));
88
+ }
89
+ /** Read bounded stable UTF-8 JSON with the package's existing file-reader contract. */
90
+ export function readAnswerReductionJson(path) {
91
+ try {
92
+ const bytes = readFreshnessFile(path, MAX_PACKET_BYTES);
93
+ if (!isUtf8(bytes))
94
+ throw new Error();
95
+ return JSON.parse(bytes.toString("utf8"));
96
+ }
97
+ catch {
98
+ throw new AnswerReductionError("INPUT_UNAVAILABLE", "Supply stable readable UTF-8 JSON: declarations are limited to 262144 bytes, saved output to 33554432 bytes.");
99
+ }
100
+ }
101
+ /** Enumerate the full Cartesian product in declared variable/value order. */
102
+ function inputs(variables) {
103
+ return variables.reduce((rows, variable) => rows.flatMap((row) => variable.values.map((value) => [...row, value])), [[]]);
104
+ }
105
+ /** Hash exact ordered answer vectors; equality decisions themselves never depend on hashes. */
106
+ function hash(value) { return createHash("sha256").update(JSON.stringify(value)).digest("hex"); }
107
+ /** Exhaustively compare cofactors while fixing every other variable, including interactions. */
108
+ function analyze(contract) {
109
+ const combinations = inputs(contract.variables);
110
+ const known = contract.rules.every((rule) => rule.when.every((predicate) => predicate.op === "eq" || predicate.op === "neq"));
111
+ const proofs = [];
112
+ const indices = new Map(contract.variables.map((variable, i) => [variable.id, i]));
113
+ const answers = known ? combinations.map((row) => contract.rules.find((rule) => rule.when.every((predicate) => predicate.op === "eq" ? row[indices.get(predicate.variable)] === predicate.value : row[indices.get(predicate.variable)] !== predicate.value))?.answer ?? contract.fallback) : [];
114
+ if (known)
115
+ for (const [index, variable] of contract.variables.entries()) {
116
+ const vectors = variable.values.map((value) => answers.filter((_, i) => combinations[i][index] === value));
117
+ if (vectors.every((vector) => isDeepStrictEqual(vector, vectors[0])))
118
+ proofs.push({ variable: variable.id, contexts: vectors[0].length, branches: variable.values.map((value, i) => ({ value, answers_sha256: hash(vectors[i]) })) });
119
+ }
120
+ const irrelevant = new Set(proofs.map((proof) => proof.variable));
121
+ const relevant = contract.variables.filter((variable) => !irrelevant.has(variable.id)).map((variable) => variable.id);
122
+ const routing = new Map();
123
+ if (known)
124
+ combinations.forEach((row, i) => {
125
+ const projected = row.filter((_, index) => !irrelevant.has(contract.variables[index].id));
126
+ routing.set(JSON.stringify(projected), { inputs: projected, answer: answers[i] });
127
+ });
128
+ return { known, combinations: combinations.length, relevant, routing: [...routing.values()], proofs, irrelevant };
129
+ }
130
+ /** One projection path produces packets and validates their certificates and omission decisions. */
131
+ function project(contract, sources, representation) {
132
+ const analysis = analyze(contract);
133
+ const fragments = contract.fragments.map((fragment, i) => {
134
+ const source = sources[i];
135
+ const omitted = source.revision !== null && analysis.known && representation === "reduced" && fragment.variables.every((id) => analysis.irrelevant.has(id));
136
+ return { id: fragment.id, revision: source.revision, state: source.revision === null ? "unavailable" : omitted ? "omitted" : "retained", proof_variables: omitted ? fragment.variables : [], value_json: omitted ? null : source.value_json };
137
+ });
138
+ const known = analysis.known && fragments.every((fragment) => fragment.state !== "unavailable");
139
+ return { protocol: "pm-context-answer-reduction/v1", basis: "declared-domains-and-fragment-dependencies;not-inferred-semantics", contract, representation, state: known ? "proved" : "unknown", combinations: analysis.combinations, relevant_variables: analysis.relevant, routing: analysis.routing, proofs: analysis.proofs, fragments, remedy: known ? "Proof applies only to declared domains and fragment dependencies. Revalidate after source or contract changes." : "Keep unknown evidence. Restore unavailable fields or replace unsupported predicates with an explicit finite eq/neq table, then regenerate." };
140
+ }
141
+ /** Verify shape and certificates using the producer, including every emitted numeric domain. */
142
+ export function parseAnswerReduction(value) {
143
+ const fail = () => new AnswerReductionError("INVALID_OUTPUT", "Regenerate using reduceAnswerContext; retain the complete contract, routing, branch proofs and revision-bound fragments. Use full or reduced representation and finite bounded JSON.");
144
+ if (!json(value, { nodes: 100000, chars: 8388608 }) || !record(value) || !keys(value, ["protocol", "basis", "contract", "representation", "state", "combinations", "relevant_variables", "routing", "proofs", "fragments", "remedy"]) || (value.representation !== "full" && value.representation !== "reduced"))
145
+ throw fail();
146
+ // Structural validation makes serialization safe; include the encoder's newline.
147
+ if (Buffer.byteLength(JSON.stringify(value)) + 1 > MAX_PACKET_BYTES)
148
+ throw fail();
149
+ let contract;
150
+ try {
151
+ contract = parseAnswerReductionRequest(value.contract);
152
+ }
153
+ catch {
154
+ throw fail();
155
+ }
156
+ if (!dense(value.fragments, 64) || value.fragments.length !== contract.fragments.length)
157
+ throw fail();
158
+ const sources = value.fragments.map((row) => {
159
+ if (!record(row) || !keys(row, ["id", "revision", "state", "proof_variables", "value_json"]) || !(row.revision === null || (typeof row.revision === "string" && /^[A-Za-z0-9][A-Za-z0-9_.:-]{0,255}$/.test(row.revision))))
160
+ throw fail();
161
+ if (row.revision === null || row.state === "omitted") {
162
+ if (row.value_json !== null)
163
+ throw fail();
164
+ }
165
+ else {
166
+ if (typeof row.value_json !== "string")
167
+ throw fail();
168
+ try {
169
+ if (!json(JSON.parse(row.value_json), { nodes: 100000, chars: 8388608 }))
170
+ throw fail();
171
+ }
172
+ catch {
173
+ throw fail();
174
+ }
175
+ }
176
+ return { revision: row.revision, value_json: row.value_json };
177
+ });
178
+ const expected = project(contract, sources, value.representation);
179
+ if (!isDeepStrictEqual(value, expected))
180
+ throw fail();
181
+ return expected;
182
+ }
183
+ /** Read every declared field through the caller's authoritative adapter; failures stay local. */
184
+ export async function reduceAnswerContext(input, read, representation = "reduced") {
185
+ const contract = parseAnswerReductionRequest(input);
186
+ if (representation !== "full" && representation !== "reduced")
187
+ throw new AnswerReductionError("INVALID_ARGUMENT", "Use full or reduced representation.");
188
+ const sources = [];
189
+ const budget = { nodes: 100000, chars: 4000000 };
190
+ // Reserve the packet's fixed strings, including the longer unavailable remedy.
191
+ // Accepted sources add their revision, serialized value and possible proof ids.
192
+ const packetBudget = { nodes: 100000, chars: 8388608 };
193
+ const baseline = project(contract, contract.fragments.map(() => ({ revision: null, value_json: null })), representation);
194
+ if (!json(baseline, packetBudget))
195
+ throw new AnswerReductionError("INVALID_REQUEST", "Reduce domain widths, answer lengths or combinations so routing and proofs fit the 8388608 packet string/key character budget before reading evidence.");
196
+ let bytesRemaining = MAX_PACKET_BYTES - Buffer.byteLength(JSON.stringify(baseline)) - 1;
197
+ if (bytesRemaining < 0)
198
+ throw new AnswerReductionError("INVALID_REQUEST", "Reduce escaped domain widths, answer lengths or combinations so routing and proofs fit the 33554432 UTF-8 JSON byte budget before reading evidence.");
199
+ for (const fragment of contract.fragments) {
200
+ try {
201
+ const source = await read({ item: fragment.item, field: fragment.field });
202
+ const remaining = { ...budget };
203
+ if (!record(source) || !keys(source, ["revision", "value"]) || typeof source.revision !== "string" || !/^[A-Za-z0-9][A-Za-z0-9_.:-]{0,255}$/.test(source.revision) || !json(source.value, remaining, 0, true))
204
+ throw new Error();
205
+ const value_json = JSON.stringify(source.value);
206
+ const chars = value_json.length + source.revision.length + fragment.variables.reduce((sum, variable) => sum + variable.length, 0);
207
+ if (chars > packetBudget.chars)
208
+ throw new Error();
209
+ const bytes = Buffer.byteLength(JSON.stringify({ revision: source.revision, value_json, proof_variables: fragment.variables }));
210
+ if (bytes > bytesRemaining)
211
+ throw new Error();
212
+ bytesRemaining -= bytes;
213
+ packetBudget.chars -= chars;
214
+ Object.assign(budget, remaining);
215
+ sources.push({ revision: source.revision, value_json });
216
+ }
217
+ catch {
218
+ sources.push({ revision: null, value_json: null });
219
+ }
220
+ }
221
+ return parseAnswerReduction(project(contract, sources, representation));
222
+ }
223
+ /** Compact, lossless transports share the same producer-derived validator. */
224
+ export function encodeAnswerReduction(packet, format) {
225
+ if (format !== "json" && format !== "toon")
226
+ throw new AnswerReductionError("INVALID_ARGUMENT", "Use --format json or toon.");
227
+ const checked = parseAnswerReduction(packet);
228
+ return `${format === "json" ? JSON.stringify(checked) : encode(checked)}\n`;
229
+ }
230
+ /** Recompute all proofs and reread current revisions; replay cannot bless a stale packet. */
231
+ export async function validateAnswerReduction(saved, input, read) {
232
+ const packet = parseAnswerReduction(saved);
233
+ const current = await reduceAnswerContext(input, read, packet.representation);
234
+ if (!isDeepStrictEqual(packet, current))
235
+ throw new AnswerReductionError("STALE_PACKET", "Regenerate against current SDK revisions and the current decision contract; saved content alone is not a revision key.");
236
+ return current;
237
+ }
238
+ //# sourceMappingURL=answer-reduction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"answer-reduction.js","sourceRoot":"","sources":["../answer-reduction.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"context-receipts.d.ts","sourceRoot":"","sources":["../context-receipts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-receipts.d.ts","sourceRoot":"","sources":["../context-receipts.ts"],"names":[],"mappings":"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"}