@aldus-runtime/gate-engine 0.2.0-next.3 → 0.2.0-next.30

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.
@@ -14,6 +14,7 @@
14
14
  * because the engine knows their names.
15
15
  */
16
16
  import type { ActorKind } from "@aldus-runtime/core";
17
+ import { type PromotionEvidence, type QualityEnforcement, type QualityLevel } from "@aldus-runtime/core";
17
18
  /**
18
19
  * The four quality levels of contract §12.
19
20
  *
@@ -22,28 +23,26 @@ import type { ActorKind } from "@aldus-runtime/core";
22
23
  * does not, and a model-assisted review may do either depending on whether it has been
23
24
  * calibrated (§12.1).
24
25
  */
25
- export declare const GATE_LEVELS: readonly [
26
- /** Blocks on an objectively testable failure (§12 level 1). */
27
- "hard_gate",
28
- /** Reports a possible issue without blocking (§12 level 2). */
29
- "advisory_signal",
30
- /** Evaluates meaning, stance, style, or claims under uncertainty (§12 level 3). */
31
- "model_assisted",
32
- /** A human owns the judgement, because it is subjective or asymmetric-risk (§12 level 4). */
33
- "human_oracle"];
26
+ /**
27
+ * @deprecated in name only the concept moved to Core (#115) and this is the gate-shaped alias.
28
+ *
29
+ * §12's levels are a property of any quality mechanism, not of gates. They lived here alone until
30
+ * an adopter's blocking evaluator turned out to be a Stage, which could declare none of this. The
31
+ * canonical definition is `QUALITY_LEVELS`; this name is kept because published code consumes it.
32
+ */
33
+ export declare const GATE_LEVELS: readonly ["hard_gate", "advisory_signal", "model_assisted", "human_oracle"];
34
34
  /** @see GATE_LEVELS */
35
- export type GateLevel = (typeof GATE_LEVELS)[number];
35
+ export type GateLevel = QualityLevel;
36
36
  /**
37
- * Whether a gate stops work or merely reports.
37
+ * Whether a gate stops work or merely reports. The gate-shaped alias of `QUALITY_ENFORCEMENTS`.
38
38
  *
39
- * Deliberately a two-state enumeration rather than a boolean. Contract §12.1 permits an
40
- * evaluator to *become* blocking only after calibration, which makes this a promotion with
41
- * evidence behind it — and a field named `blocking: boolean` invites someone to flip it in a
42
- * config file without producing any.
39
+ * Still a two-state enumeration rather than a boolean, for the reason Core records: §12.1 makes
40
+ * blocking a promotion with evidence behind it, and `blocking: boolean` invites someone to flip it
41
+ * in a config file without producing any.
43
42
  */
44
43
  export declare const GATE_ENFORCEMENTS: readonly ["blocking", "advisory"];
45
44
  /** @see GATE_ENFORCEMENTS */
46
- export type GateEnforcement = (typeof GATE_ENFORCEMENTS)[number];
45
+ export type GateEnforcement = QualityEnforcement;
47
46
  /**
48
47
  * Evidence that a model-assisted evaluator was calibrated before it was allowed to block.
49
48
  *
@@ -56,14 +55,7 @@ export type GateEnforcement = (typeof GATE_ENFORCEMENTS)[number];
56
55
  * scope among what promotion must consider, because an evaluator calibrated on one host says
57
56
  * nothing about another. Dimensions are caller-supplied (§4.2), consistent with WP-09's packs.
58
57
  */
59
- export interface PromotionEvidence {
60
- /** Identifier of the calibration report that justified promotion (WP-10). */
61
- reportRef: string;
62
- /** Scope the calibration covers, e.g. `{ host: "example-host", voice: "voice-a" }`. */
63
- scope: Record<string, string>;
64
- /** Known blind spots recorded at promotion time (§12.1, §9.3). */
65
- knownBlindSpots?: string[];
66
- }
58
+ export type { PromotionEvidence };
67
59
  /**
68
60
  * One configured gate.
69
61
  *
@@ -1 +1 @@
1
- {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../src/definition.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAIrD;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW;AACtB,+DAA+D;AAC/D,WAAW;AACX,+DAA+D;AAC/D,iBAAiB;AACjB,mFAAmF;AACnF,gBAAgB;AAChB,6FAA6F;AAC7F,cAAc,CACN,CAAC;AAEX,uBAAuB;AACvB,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAErD;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,YAAI,UAAU,EAAE,UAAU,CAAU,CAAC;AAEnE,6BAA6B;AAC7B,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjE;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,iBAAiB;IAChC,6EAA6E;IAC7E,SAAS,EAAE,MAAM,CAAC;IAClB,uFAAuF;IACvF,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,kEAAkE;IAClE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;OAKG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,KAAK,EAAE,SAAS,CAAC;IACjB,qDAAqD;IACrD,WAAW,EAAE,eAAe,CAAC;IAC7B;;;;;;;;;;OAUG;IACH,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,SAAS,SAAS,EAAE,CAAC;IAC3C;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,qFAAqF;IACrF,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5B;AAED,gDAAgD;AAChD,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,mBAAmB,EAAE,SAAS,SAAS,EAAE,CAAC;IAC1C,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3B;AAUD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,cAAc,GAAG,sBAAsB,CA8DzF;AAED;;;;;;GAMG;AACH,qBAAa,YAAY;;IAGvB,OAAO,eAEN;IAED;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,cAAc,EAAE,GAAG,YAAY,CAsChE;IAED,uCAAuC;IACvC,IAAI,IAAI,sBAAsB,EAAE,CAE/B;IAED,sCAAsC;IACtC,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE3B;IAED,iEAAiE;IACjE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,sBAAsB,GAAG,SAAS,CAEtD;IAED;;;;OAIG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,sBAAsB,CAU9C;IAED,8CAA8C;IAC9C,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,sBAAsB,EAAE,CAErD;IAED;;;;;OAKG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAiBrC;CACF"}
1
+ {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../src/definition.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAC;AAI7B;;;;;;;GAOG;AACH;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,6EAAiB,CAAC;AAE1C,uBAAuB;AACvB,MAAM,MAAM,SAAS,GAAG,YAAY,CAAC;AAErC;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,mCAAuB,CAAC;AAEtD,6BAA6B;AAC7B,MAAM,MAAM,eAAe,GAAG,kBAAkB,CAAC;AAEjD;;;;;;;;;;;GAWG;AACH,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAElC;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;OAKG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,KAAK,EAAE,SAAS,CAAC;IACjB,qDAAqD;IACrD,WAAW,EAAE,eAAe,CAAC;IAC7B;;;;;;;;;;OAUG;IACH,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,SAAS,SAAS,EAAE,CAAC;IAC3C;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,qFAAqF;IACrF,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5B;AAED,gDAAgD;AAChD,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,mBAAmB,EAAE,SAAS,SAAS,EAAE,CAAC;IAC1C,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3B;AAUD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,cAAc,GAAG,sBAAsB,CA8DzF;AAED;;;;;;GAMG;AACH,qBAAa,YAAY;;IAGvB,OAAO,eAEN;IAED;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,cAAc,EAAE,GAAG,YAAY,CAsChE;IAED,uCAAuC;IACvC,IAAI,IAAI,sBAAsB,EAAE,CAE/B;IAED,sCAAsC;IACtC,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE3B;IAED,iEAAiE;IACjE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,sBAAsB,GAAG,SAAS,CAEtD;IAED;;;;OAIG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,sBAAsB,CAU9C;IAED,8CAA8C;IAC9C,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,sBAAsB,EAAE,CAErD;IAED;;;;;OAKG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAiBrC;CACF"}
@@ -13,6 +13,7 @@
13
13
  * adopter is most likely to write. The tests construct them to show the model expresses §13, not
14
14
  * because the engine knows their names.
15
15
  */
16
+ import { QUALITY_ENFORCEMENTS, QUALITY_LEVELS, validateQualityClaim, } from "@aldus-runtime/core";
16
17
  import { GateEngineErrorCodes, gateEngineError } from "./errors.js";
17
18
  /**
18
19
  * The four quality levels of contract §12.
@@ -22,25 +23,22 @@ import { GateEngineErrorCodes, gateEngineError } from "./errors.js";
22
23
  * does not, and a model-assisted review may do either depending on whether it has been
23
24
  * calibrated (§12.1).
24
25
  */
25
- export const GATE_LEVELS = [
26
- /** Blocks on an objectively testable failure (§12 level 1). */
27
- "hard_gate",
28
- /** Reports a possible issue without blocking (§12 level 2). */
29
- "advisory_signal",
30
- /** Evaluates meaning, stance, style, or claims under uncertainty (§12 level 3). */
31
- "model_assisted",
32
- /** A human owns the judgement, because it is subjective or asymmetric-risk (§12 level 4). */
33
- "human_oracle",
34
- ];
35
26
  /**
36
- * Whether a gate stops work or merely reports.
27
+ * @deprecated in name only the concept moved to Core (#115) and this is the gate-shaped alias.
37
28
  *
38
- * Deliberately a two-state enumeration rather than a boolean. Contract §12.1 permits an
39
- * evaluator to *become* blocking only after calibration, which makes this a promotion with
40
- * evidence behind it and a field named `blocking: boolean` invites someone to flip it in a
41
- * config file without producing any.
29
+ * §12's levels are a property of any quality mechanism, not of gates. They lived here alone until
30
+ * an adopter's blocking evaluator turned out to be a Stage, which could declare none of this. The
31
+ * canonical definition is `QUALITY_LEVELS`; this name is kept because published code consumes it.
42
32
  */
43
- export const GATE_ENFORCEMENTS = ["blocking", "advisory"];
33
+ export const GATE_LEVELS = QUALITY_LEVELS;
34
+ /**
35
+ * Whether a gate stops work or merely reports. The gate-shaped alias of `QUALITY_ENFORCEMENTS`.
36
+ *
37
+ * Still a two-state enumeration rather than a boolean, for the reason Core records: §12.1 makes
38
+ * blocking a promotion with evidence behind it, and `blocking: boolean` invites someone to flip it
39
+ * in a config file without producing any.
40
+ */
41
+ export const GATE_ENFORCEMENTS = QUALITY_ENFORCEMENTS;
44
42
  /** Actor kinds a gate accepts when the definition does not say. */
45
43
  function defaultPermittedActorKinds(level) {
46
44
  // §12 level 4 is "human oracle — owns subjective judgment or asymmetric-risk decisions", and
@@ -78,12 +76,15 @@ export function validateGateDefinition(definition) {
78
76
  if (definition.dependsOn?.includes(definition.gateId) === true) {
79
77
  fail("A gate cannot depend on itself.");
80
78
  }
81
- if (definition.level === "model_assisted" && definition.enforcement === "blocking") {
82
- if (definition.promotionEvidence === undefined) {
83
- fail("A model-assisted gate may only block once it has been calibrated against human-labeled " +
84
- "examples (contract §12.1). Set `promotionEvidence`, or leave the gate advisory. " +
85
- "Contract §12 forbids presenting a machine pass as semantic correctness.", { level: definition.level, enforcement: definition.enforcement });
86
- }
79
+ // The shared rule, not a second copy of it (#115). A gate and an evaluator Stage making the same
80
+ // claim are refused for the same reasons in the same words; two implementations of one clause
81
+ // is how §12 came to be enforced in one place and not the other.
82
+ for (const problem of validateQualityClaim({
83
+ level: definition.level,
84
+ enforcement: definition.enforcement,
85
+ promotionEvidence: definition.promotionEvidence,
86
+ })) {
87
+ fail(problem.message, { level: definition.level, enforcement: definition.enforcement });
87
88
  }
88
89
  const permittedActorKinds = definition.permittedActorKinds ?? defaultPermittedActorKinds(definition.level);
89
90
  if (permittedActorKinds.length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"definition.js","sourceRoot":"","sources":["../src/definition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"definition.js","sourceRoot":"","sources":["../src/definition.ts"],"names":[],"mappings":"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"}
package/dist/engine.d.ts CHANGED
@@ -45,7 +45,6 @@ export declare const GATE_STATES: readonly [
45
45
  "blocked_upstream"];
46
46
  /** @see GATE_STATES */
47
47
  export type GateState = (typeof GATE_STATES)[number];
48
- /** The evaluated state of one gate. */
49
48
  export interface GateStatus {
50
49
  gateId: string;
51
50
  state: GateState;
@@ -59,6 +58,17 @@ export interface GateStatus {
59
58
  drift?: SubjectDrift;
60
59
  /** Gates that blocked this one, when `state` is `blocked_upstream`. */
61
60
  blockedBy?: string[];
61
+ /**
62
+ * Bound values nobody has supplied yet, when the gate is otherwise decidable (#91).
63
+ *
64
+ * §13.2 requires an authorization to bind every listed value, so a gate whose subjects are
65
+ * only partly supplied cannot be approved — `assertSubjectsCover` refuses it. Reported here so
66
+ * that a caller can say why before offering the decision, rather than recommending a command
67
+ * that will be rejected.
68
+ *
69
+ * Absent when every bound value is present, which is the ordinary case.
70
+ */
71
+ missingSubjects?: string[];
62
72
  /** Operator-facing explanation of why work may not proceed past this gate. */
63
73
  explanation?: string;
64
74
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
package/dist/engine.js CHANGED
@@ -18,7 +18,7 @@
18
18
  import { SCHEMA_VERSION, newEventId, newGateDecisionId, validate } from "@aldus-runtime/core";
19
19
  import { assertSubjectsCover, detectDrift, } from "./binding.js";
20
20
  import { GateEngineErrorCodes, gateEngineError } from "./errors.js";
21
- import { checkSpend, grantLimitsDigest, } from "./spend.js";
21
+ import { checkSpend, grantTermsDigest, } from "./spend.js";
22
22
  /**
23
23
  * What a gate currently is.
24
24
  *
@@ -46,6 +46,14 @@ export const GATE_STATES = [
46
46
  /** A blocking gate this one depends on is not satisfied (§13.1 cascade). */
47
47
  "blocked_upstream",
48
48
  ];
49
+ /** The evaluated state of one gate. */
50
+ /** `"a"`, `"a and b"`, `"a, b and c"` — for a sentence an operator reads, not a log line. */
51
+ function formatKeys(keys) {
52
+ const quoted = keys.map((key) => `"${key}"`);
53
+ if (quoted.length <= 1)
54
+ return quoted[0] ?? "";
55
+ return `${quoted.slice(0, -1).join(", ")} and ${quoted[quoted.length - 1]}`;
56
+ }
49
57
  /** True if two id lists hold the same ids in the same order. */
50
58
  function sameIds(a, b) {
51
59
  return a.length === b.length && a.every((id, index) => id === b[index]);
@@ -96,6 +104,32 @@ export class GateEngine {
96
104
  },
97
105
  });
98
106
  }
107
+ // A waiver is not an approval, and the two refusals below are what keep it from becoming one.
108
+ //
109
+ // **It must not outlive the content it was granted against.** `expiresOnChange` is a per-
110
+ // decision override of the gate's default, which is defensible for an *approval* whose subject
111
+ // cannot drift. A non-expiring **waiver** says the check stays bypassed whatever the content
112
+ // becomes — that is a config flag disabling a gate, reached through the decision API instead of
113
+ // the config file, and it is precisely what this design exists to avoid.
114
+ //
115
+ // Closing it is also what makes the rest safe. Every gate being waivable — `release.public`
116
+ // included — is defensible **only** because a waiver cannot survive the subjects moving. Leave
117
+ // the override open and every gate needs a non-waivable declaration; close it and none does.
118
+ //
119
+ // **And it must say why.** A waiver with no reason is a blank with a timestamp: the one thing a
120
+ // reader of the approvals log needs from it is the part that would be missing.
121
+ if (input.decision === "waived") {
122
+ if (input.expiresOnChange === false) {
123
+ throw gateEngineError(GateEngineErrorCodes.GATE_WAIVER_INVALID, `A waiver of gate "${gate.gateId}" may not be recorded as non-expiring. A waiver says ` +
124
+ "the check was bypassed rather than passed, so it must not outlive the content it was " +
125
+ "granted against (§13.1, §13.2).", { category: "policy", details: { gateId: gate.gateId } });
126
+ }
127
+ if (input.comment === undefined || input.comment.trim() === "") {
128
+ throw gateEngineError(GateEngineErrorCodes.GATE_WAIVER_INVALID, `A waiver of gate "${gate.gateId}" needs a reason. An approval records that the content ` +
129
+ "was judged; a waiver records that the check was bypassed, and without a reason the " +
130
+ "log carries a blank with a timestamp (§13.3, §19.2).", { category: "validation", details: { gateId: gate.gateId } });
131
+ }
132
+ }
99
133
  const decision = {
100
134
  schemaVersion: SCHEMA_VERSION,
101
135
  decisionId: input.decisionId ?? newGateDecisionId(),
@@ -106,7 +140,8 @@ export class GateEngine {
106
140
  decidedBy: input.decidedBy,
107
141
  decidedAt: input.decidedAt,
108
142
  ...(input.comment !== undefined ? { comment: input.comment } : {}),
109
- expiresOnChange: input.expiresOnChange ?? gate.expiresOnChange,
143
+ // Forced for a waiver, never taken from the gate default or the caller. See above.
144
+ expiresOnChange: input.decision === "waived" ? true : (input.expiresOnChange ?? gate.expiresOnChange),
110
145
  };
111
146
  // Validate before persisting. A malformed decision written to the approvals log is worse
112
147
  // than a rejected call, because §13 treats what is written there as authoritative.
@@ -170,12 +205,22 @@ export class GateEngine {
170
205
  // Append order is authoritative, not `decidedAt`: the log is the durable fact, and two
171
206
  // machines with disagreeing clocks must not be able to reorder which approval is current.
172
207
  const latest = [...decisions].reverse().find((entry) => entry.gateId === gate.gateId);
208
+ const suppliedKeys = new Set(subjects.map((entry) => entry.key));
209
+ const missingSubjects = gate.binds.filter((key) => !suppliedKeys.has(key));
173
210
  if (latest === undefined) {
174
211
  return {
175
212
  ...base,
176
213
  state: "pending",
177
214
  blocking: blocks("pending"),
178
- explanation: `Gate "${gate.gateId}" has no recorded decision.`,
215
+ // Naming the missing values rather than only the absence of a decision: an operator told
216
+ // "no recorded decision" goes looking for who forgot to approve, when the answer is that
217
+ // nothing has produced what the approval would bind (§13.2).
218
+ explanation: missingSubjects.length > 0
219
+ ? `Gate "${gate.gateId}" has no recorded decision, and ` +
220
+ `${formatKeys(missingSubjects)} ${missingSubjects.length === 1 ? "has" : "have"} ` +
221
+ "not been supplied, so it cannot be decided yet."
222
+ : `Gate "${gate.gateId}" has no recorded decision.`,
223
+ ...(missingSubjects.length > 0 ? { missingSubjects } : {}),
179
224
  };
180
225
  }
181
226
  if (latest.decision === "rejected" || latest.decision === "changes_requested") {
@@ -340,7 +385,7 @@ export class GateEngine {
340
385
  "does not carry forward (§13.2).",
341
386
  };
342
387
  }
343
- if (!decision.subjectHashes.includes(grantLimitsDigest(grant))) {
388
+ if (!decision.subjectHashes.includes(grantTermsDigest(grant))) {
344
389
  return {
345
390
  authorized: false,
346
391
  statuses: [status],
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
package/dist/errors.d.ts CHANGED
@@ -30,6 +30,14 @@ export declare const GateEngineErrorCodes: {
30
30
  readonly GATE_ACTOR_NOT_PERMITTED: "ALDUS_GATE_ACTOR_NOT_PERMITTED";
31
31
  /** A decision was submitted that does not bind the subjects its gate requires. */
32
32
  readonly GATE_SUBJECTS_INCOMPLETE: "ALDUS_GATE_SUBJECTS_INCOMPLETE";
33
+ /**
34
+ * A waiver was recorded without a reason, or asked not to expire when its subjects change.
35
+ *
36
+ * Both refusals exist because a waiver is not an approval. An approval says the content was
37
+ * judged and passed; a waiver says the check was **bypassed** — so it must say why, and it must
38
+ * not outlive the content it was granted against.
39
+ */
40
+ readonly GATE_WAIVER_INVALID: "ALDUS_GATE_WAIVER_INVALID";
33
41
  /**
34
42
  * An operation requiring authorization was attempted without a valid one.
35
43
  *
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAErE,6CAA6C;AAC7C,eAAO,MAAM,oBAAoB;IAC/B,oDAAoD;aACpD,cAAc,EAAE,sBAAsB;IACtC,oFAAoF;aACpF,uBAAuB,EAAE,+BAA+B;IACxD;;;;;OAKG;aACH,qBAAqB,EAAE,6BAA6B;IACpD;;;;;;OAMG;aACH,wBAAwB,EAAE,gCAAgC;IAC1D,kFAAkF;aAClF,wBAAwB,EAAE,gCAAgC;IAC1D;;;;;OAKG;aACH,qBAAqB,EAAE,6BAA6B;IACpD;;;;OAIG;aACH,mBAAmB,EAAE,2BAA2B;IAChD,2FAA2F;aAC3F,oBAAoB,EAAE,4BAA4B;IAClD,6EAA6E;aAC7E,iBAAiB,EAAE,yBAAyB;IAC5C,8DAA8D;aAC9D,eAAe,EAAE,uBAAuB;CAChC,CAAC;AAEX,gCAAgC;AAChC,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC;AAEnG,+DAA+D;AAC/D,wBAAgB,eAAe,CAC7B,IAAI,EAAE,mBAAmB,EACzB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IAAE,QAAQ,EAAE,aAAa,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAC3F,UAAU,CAEZ"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAErE,6CAA6C;AAC7C,eAAO,MAAM,oBAAoB;IAC/B,oDAAoD;aACpD,cAAc,EAAE,sBAAsB;IACtC,oFAAoF;aACpF,uBAAuB,EAAE,+BAA+B;IACxD;;;;;OAKG;aACH,qBAAqB,EAAE,6BAA6B;IACpD;;;;;;OAMG;aACH,wBAAwB,EAAE,gCAAgC;IAC1D,kFAAkF;aAClF,wBAAwB,EAAE,gCAAgC;IAC1D;;;;;;OAMG;aACH,mBAAmB,EAAE,2BAA2B;IAChD;;;;;OAKG;aACH,qBAAqB,EAAE,6BAA6B;IACpD;;;;OAIG;aACH,mBAAmB,EAAE,2BAA2B;IAChD,2FAA2F;aAC3F,oBAAoB,EAAE,4BAA4B;IAClD,6EAA6E;aAC7E,iBAAiB,EAAE,yBAAyB;IAC5C,8DAA8D;aAC9D,eAAe,EAAE,uBAAuB;CAChC,CAAC;AAEX,gCAAgC;AAChC,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC;AAEnG,+DAA+D;AAC/D,wBAAgB,eAAe,CAC7B,IAAI,EAAE,mBAAmB,EACzB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IAAE,QAAQ,EAAE,aAAa,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAC3F,UAAU,CAEZ"}
package/dist/errors.js CHANGED
@@ -30,6 +30,14 @@ export const GateEngineErrorCodes = {
30
30
  GATE_ACTOR_NOT_PERMITTED: "ALDUS_GATE_ACTOR_NOT_PERMITTED",
31
31
  /** A decision was submitted that does not bind the subjects its gate requires. */
32
32
  GATE_SUBJECTS_INCOMPLETE: "ALDUS_GATE_SUBJECTS_INCOMPLETE",
33
+ /**
34
+ * A waiver was recorded without a reason, or asked not to expire when its subjects change.
35
+ *
36
+ * Both refusals exist because a waiver is not an approval. An approval says the content was
37
+ * judged and passed; a waiver says the check was **bypassed** — so it must say why, and it must
38
+ * not outlive the content it was granted against.
39
+ */
40
+ GATE_WAIVER_INVALID: "ALDUS_GATE_WAIVER_INVALID",
33
41
  /**
34
42
  * An operation requiring authorization was attempted without a valid one.
35
43
  *
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAsB,MAAM,qBAAqB,CAAC;AAErE,6CAA6C;AAC7C,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,oDAAoD;IACpD,cAAc,EAAE,sBAAsB;IACtC,oFAAoF;IACpF,uBAAuB,EAAE,+BAA+B;IACxD;;;;;OAKG;IACH,qBAAqB,EAAE,6BAA6B;IACpD;;;;;;OAMG;IACH,wBAAwB,EAAE,gCAAgC;IAC1D,kFAAkF;IAClF,wBAAwB,EAAE,gCAAgC;IAC1D;;;;;OAKG;IACH,qBAAqB,EAAE,6BAA6B;IACpD;;;;OAIG;IACH,mBAAmB,EAAE,2BAA2B;IAChD,2FAA2F;IAC3F,oBAAoB,EAAE,4BAA4B;IAClD,6EAA6E;IAC7E,iBAAiB,EAAE,yBAAyB;IAC5C,8DAA8D;IAC9D,eAAe,EAAE,uBAAuB;CAChC,CAAC;AAKX,+DAA+D;AAC/D,MAAM,UAAU,eAAe,CAC7B,IAAyB,EACzB,OAAe,EACf,OAA4F;IAE5F,OAAO,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAsB,MAAM,qBAAqB,CAAC;AAErE,6CAA6C;AAC7C,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,oDAAoD;IACpD,cAAc,EAAE,sBAAsB;IACtC,oFAAoF;IACpF,uBAAuB,EAAE,+BAA+B;IACxD;;;;;OAKG;IACH,qBAAqB,EAAE,6BAA6B;IACpD;;;;;;OAMG;IACH,wBAAwB,EAAE,gCAAgC;IAC1D,kFAAkF;IAClF,wBAAwB,EAAE,gCAAgC;IAC1D;;;;;;OAMG;IACH,mBAAmB,EAAE,2BAA2B;IAChD;;;;;OAKG;IACH,qBAAqB,EAAE,6BAA6B;IACpD;;;;OAIG;IACH,mBAAmB,EAAE,2BAA2B;IAChD,2FAA2F;IAC3F,oBAAoB,EAAE,4BAA4B;IAClD,6EAA6E;IAC7E,iBAAiB,EAAE,yBAAyB;IAC5C,8DAA8D;IAC9D,eAAe,EAAE,uBAAuB;CAChC,CAAC;AAKX,+DAA+D;AAC/D,MAAM,UAAU,eAAe,CAC7B,IAAyB,EACzB,OAAe,EACf,OAA4F;IAE5F,OAAO,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC"}
package/dist/index.d.ts CHANGED
@@ -30,7 +30,7 @@
30
30
  export { GATE_ENFORCEMENTS, GATE_LEVELS, GateRegistry, validateGateDefinition, type GateDefinition, type GateEnforcement, type GateLevel, type PromotionEvidence, type ResolvedGateDefinition, } from "./definition.js";
31
31
  export { assertSubjectsCover, detectDrift, digestBytes, digestSubjectValue, toSubjectHashes, type GateSubject, type SubjectDrift, } from "./binding.js";
32
32
  export { GATE_STATES, GateEngine, type AuthorizationGrant, type AuthorizationRefusal, type AuthorizationResult, type DecideInput, type GateEngineOptions, type GateState, type GateStatus, type SpendAuthorization, type SubjectsByGate, } from "./engine.js";
33
- export { SPEND_LIMIT_SUBJECT_KEY, checkSpend, computeLedger, consumesBudget, costRecordDraw, grantLimitsDigest, type SpendCheck, type SpendGrant, type SpendLedger, type SpendRefusalReason, type SpendRequest, } from "./spend.js";
33
+ export { SPEND_LIMIT_SUBJECT_KEY, availableAuthorization, checkSpendScope, unestimatedPolicyIsSatisfiable, checkSpend, computeLedger, consumesBudget, costRecordDraw, grantTermsDigest, type SpendAvailability, type SpendScopeRefusal, type SpendCheck, type SpendGrant, type SpendLedger, type SpendRefusalReason, type SpendRequest, } from "./spend.js";
34
34
  export { addMoney, assertMoney, compareMoney, formatMoney, isNegativeMoney, isPositiveMoney, subtractMoney, sumMoney, zeroMoney, } from "./money.js";
35
35
  export { MemoryCostReader, MemoryGateDecisionStore, MemoryGateEventSink, type CostReader, type GateDecisionStore, type GateEventSink, } from "./ports.js";
36
36
  export { GateEngineErrorCodes, gateEngineError, type GateEngineErrorCode } from "./errors.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,sBAAsB,EACtB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,GAC5B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,KAAK,WAAW,EAChB,KAAK,YAAY,GAClB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,WAAW,EACX,UAAU,EACV,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,cAAc,GACpB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,uBAAuB,EACvB,UAAU,EACV,aAAa,EACb,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,YAAY,GAClB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,WAAW,EACX,eAAe,EACf,eAAe,EACf,aAAa,EACb,QAAQ,EACR,SAAS,GACV,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,EACnB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,aAAa,GACnB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,sBAAsB,EACtB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,GAC5B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,KAAK,WAAW,EAChB,KAAK,YAAY,GAClB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,WAAW,EACX,UAAU,EACV,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,cAAc,GACpB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,eAAe,EACf,8BAA8B,EAC9B,UAAU,EACV,aAAa,EACb,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,YAAY,GAClB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,WAAW,EACX,eAAe,EACf,eAAe,EACf,aAAa,EACb,QAAQ,EACR,SAAS,GACV,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,EACnB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,aAAa,GACnB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -30,7 +30,7 @@
30
30
  export { GATE_ENFORCEMENTS, GATE_LEVELS, GateRegistry, validateGateDefinition, } from "./definition.js";
31
31
  export { assertSubjectsCover, detectDrift, digestBytes, digestSubjectValue, toSubjectHashes, } from "./binding.js";
32
32
  export { GATE_STATES, GateEngine, } from "./engine.js";
33
- export { SPEND_LIMIT_SUBJECT_KEY, checkSpend, computeLedger, consumesBudget, costRecordDraw, grantLimitsDigest, } from "./spend.js";
33
+ export { SPEND_LIMIT_SUBJECT_KEY, availableAuthorization, checkSpendScope, unestimatedPolicyIsSatisfiable, checkSpend, computeLedger, consumesBudget, costRecordDraw, grantTermsDigest, } from "./spend.js";
34
34
  export { addMoney, assertMoney, compareMoney, formatMoney, isNegativeMoney, isPositiveMoney, subtractMoney, sumMoney, zeroMoney, } from "./money.js";
35
35
  export { MemoryCostReader, MemoryGateDecisionStore, MemoryGateEventSink, } from "./ports.js";
36
36
  export { GateEngineErrorCodes, gateEngineError } from "./errors.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,sBAAsB,GAMvB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,eAAe,GAGhB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,WAAW,EACX,UAAU,GAUX,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,uBAAuB,EACvB,UAAU,EACV,aAAa,EACb,cAAc,EACd,cAAc,EACd,iBAAiB,GAMlB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,WAAW,EACX,eAAe,EACf,eAAe,EACf,aAAa,EACb,QAAQ,EACR,SAAS,GACV,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,GAIpB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAA4B,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,sBAAsB,GAMvB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,eAAe,GAGhB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,WAAW,EACX,UAAU,GAUX,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,eAAe,EACf,8BAA8B,EAC9B,UAAU,EACV,aAAa,EACb,cAAc,EACd,cAAc,EACd,gBAAgB,GAQjB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,WAAW,EACX,eAAe,EACf,eAAe,EACf,aAAa,EACb,QAAQ,EACR,SAAS,GACV,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,GAIpB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAA4B,MAAM,aAAa,CAAC"}