@aldus-runtime/gate-engine 0.2.0-next.2 → 0.2.0-next.21
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/dist/definition.d.ts +16 -24
- package/dist/definition.d.ts.map +1 -1
- package/dist/definition.js +23 -22
- package/dist/definition.js.map +1 -1
- package/dist/engine.d.ts +11 -1
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +21 -3
- package/dist/engine.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/spend.d.ts +163 -7
- package/dist/spend.d.ts.map +1 -1
- package/dist/spend.js +152 -6
- package/dist/spend.js.map +1 -1
- package/package.json +3 -3
- package/src/definition.ts +33 -35
- package/src/engine.ts +33 -3
- package/src/index.ts +6 -1
- package/src/spend.ts +313 -7
package/dist/definition.d.ts
CHANGED
|
@@ -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
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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 =
|
|
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
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
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 =
|
|
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
|
|
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
|
*
|
package/dist/definition.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/definition.js
CHANGED
|
@@ -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
|
-
*
|
|
27
|
+
* @deprecated in name only — the concept moved to Core (#115) and this is the gate-shaped alias.
|
|
37
28
|
*
|
|
38
|
-
*
|
|
39
|
-
* evaluator
|
|
40
|
-
*
|
|
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
|
|
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
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
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) {
|
package/dist/definition.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../src/definition.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
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
|
/**
|
package/dist/engine.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAc,UAAU,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAG1F,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EACV,eAAe,EACf,SAAS,EACT,YAAY,EAEb,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC/E,OAAO,EAGL,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,YAAY,EAClB,MAAM,YAAY,CAAC;AAEpB;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW;AACtB,qCAAqC;AACrC,SAAS;AAIT,uDAAuD;AACvD,WAAW;AACX,oEAAoE;AACpE,OAAO;AACP,gCAAgC;AAChC,UAAU;AACV,sCAAsC;AACtC,mBAAmB;AACnB,kFAAkF;AAClF,QAAQ;AACR,4EAA4E;AAC5E,kBAAkB,CACV,CAAC;AAEX,uBAAuB;AACvB,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;
|
|
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,
|
|
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]);
|
|
@@ -170,12 +178,22 @@ export class GateEngine {
|
|
|
170
178
|
// Append order is authoritative, not `decidedAt`: the log is the durable fact, and two
|
|
171
179
|
// machines with disagreeing clocks must not be able to reorder which approval is current.
|
|
172
180
|
const latest = [...decisions].reverse().find((entry) => entry.gateId === gate.gateId);
|
|
181
|
+
const suppliedKeys = new Set(subjects.map((entry) => entry.key));
|
|
182
|
+
const missingSubjects = gate.binds.filter((key) => !suppliedKeys.has(key));
|
|
173
183
|
if (latest === undefined) {
|
|
174
184
|
return {
|
|
175
185
|
...base,
|
|
176
186
|
state: "pending",
|
|
177
187
|
blocking: blocks("pending"),
|
|
178
|
-
|
|
188
|
+
// Naming the missing values rather than only the absence of a decision: an operator told
|
|
189
|
+
// "no recorded decision" goes looking for who forgot to approve, when the answer is that
|
|
190
|
+
// nothing has produced what the approval would bind (§13.2).
|
|
191
|
+
explanation: missingSubjects.length > 0
|
|
192
|
+
? `Gate "${gate.gateId}" has no recorded decision, and ` +
|
|
193
|
+
`${formatKeys(missingSubjects)} ${missingSubjects.length === 1 ? "has" : "have"} ` +
|
|
194
|
+
"not been supplied, so it cannot be decided yet."
|
|
195
|
+
: `Gate "${gate.gateId}" has no recorded decision.`,
|
|
196
|
+
...(missingSubjects.length > 0 ? { missingSubjects } : {}),
|
|
179
197
|
};
|
|
180
198
|
}
|
|
181
199
|
if (latest.decision === "rejected" || latest.decision === "changes_requested") {
|
|
@@ -340,7 +358,7 @@ export class GateEngine {
|
|
|
340
358
|
"does not carry forward (§13.2).",
|
|
341
359
|
};
|
|
342
360
|
}
|
|
343
|
-
if (!decision.subjectHashes.includes(
|
|
361
|
+
if (!decision.subjectHashes.includes(grantTermsDigest(grant))) {
|
|
344
362
|
return {
|
|
345
363
|
authorized: false,
|
|
346
364
|
statuses: [status],
|
package/dist/engine.js.map
CHANGED
|
@@ -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/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,
|
|
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";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,
|
|
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,
|
|
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,
|
|
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"}
|
package/dist/spend.d.ts
CHANGED
|
@@ -11,12 +11,12 @@
|
|
|
11
11
|
* `GateDecision` stores only digests. Carrying the limit in a record beside the decision would
|
|
12
12
|
* let someone raise the ceiling without touching the approval.
|
|
13
13
|
*
|
|
14
|
-
* So a grant does both: it holds the values, and {@link
|
|
14
|
+
* So a grant does both: it holds the values, and {@link grantTermsDigest} is included among the
|
|
15
15
|
* gate's bound subjects. Raising a limit changes that digest, which drifts from `subjectHashes`,
|
|
16
16
|
* which voids the authorization exactly as §13.2 requires. The ceiling cannot move without an
|
|
17
17
|
* operator re-approving it.
|
|
18
18
|
*/
|
|
19
|
-
import type
|
|
19
|
+
import { type CostRecord, type Money, type SpendReservation } from "@aldus-runtime/core";
|
|
20
20
|
/**
|
|
21
21
|
* The subject key under which a grant's limits are bound.
|
|
22
22
|
*
|
|
@@ -40,18 +40,50 @@ export interface SpendGrant {
|
|
|
40
40
|
* back to the approval that permitted it (§19.3 "explicit spend authorization").
|
|
41
41
|
*/
|
|
42
42
|
decisionId: string;
|
|
43
|
+
/**
|
|
44
|
+
* What this grant authorizes spending **on** (§13.2, §4.2).
|
|
45
|
+
*
|
|
46
|
+
* Operation names are adopter-defined open strings — `"agent.execute"`, `"tts.synthesize"`.
|
|
47
|
+
* Core names none.
|
|
48
|
+
*
|
|
49
|
+
* Present so that handing the wrong grant to an execution gateway cannot authorize an unrelated
|
|
50
|
+
* operation. Without it, "a grant" is a pool of money with no statement about what it is for,
|
|
51
|
+
* and the only thing keeping agent spend out of a synthesis ledger is which `decisionId` each
|
|
52
|
+
* happened to carry.
|
|
53
|
+
*/
|
|
54
|
+
scope: {
|
|
55
|
+
operations: readonly string[];
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Whether an execution with no estimate may be dispatched (§13.2, §19.3; ADR-0044).
|
|
59
|
+
*
|
|
60
|
+
* Operator-approved policy, so it lives on the grant and is bound by
|
|
61
|
+
* {@link grantTermsDigest} — changing it invalidates the approval exactly as changing a ceiling
|
|
62
|
+
* or the scope does. It must never be supplied by an execution input or an adapter: a caller
|
|
63
|
+
* that could assert its own permission is the shape #107 exists to prevent.
|
|
64
|
+
*
|
|
65
|
+
* A closed pair rather than a boolean. `permitUnestimated: true` invites being flipped in a
|
|
66
|
+
* config file; naming the reservation it implies makes the consequence part of the decision.
|
|
67
|
+
*
|
|
68
|
+
* Absent reads as `"refuse"`.
|
|
69
|
+
*/
|
|
70
|
+
unestimatedExecution?: "refuse" | "reserve_max_per_request";
|
|
43
71
|
/** Maximum total spend authorized across the Run (§13.2 "maximum authorized cost"). */
|
|
44
72
|
maxTotal: Money;
|
|
45
73
|
/** Maximum spend authorized for any single request (§19.3 "per-request ... limits"). */
|
|
46
74
|
maxPerRequest?: Money;
|
|
47
75
|
}
|
|
48
76
|
/**
|
|
49
|
-
* The digest a gate must bind for the grant's
|
|
77
|
+
* The digest a gate must bind for the grant's **terms** to be tamper-evident (§13.2).
|
|
78
|
+
*
|
|
79
|
+
* Was `grantTermsDigest`, covering the ceilings alone. Scope is now a term too: changing a grant
|
|
80
|
+
* from agent-only to TTS-capable widens what an approval permits exactly as raising its ceiling
|
|
81
|
+
* does, and an approval that survives that change did not bind what it appeared to bind.
|
|
50
82
|
*
|
|
51
|
-
* Only the
|
|
52
|
-
*
|
|
83
|
+
* Only the terms are digested, not the grant's identity: re-issuing an identical grant under a new
|
|
84
|
+
* `grantId` should not read as the operator having approved something different.
|
|
53
85
|
*/
|
|
54
|
-
export declare function
|
|
86
|
+
export declare function grantTermsDigest(grant: SpendGrant): string;
|
|
55
87
|
/**
|
|
56
88
|
* Whether a cost record consumes budget.
|
|
57
89
|
*
|
|
@@ -82,7 +114,34 @@ export interface SpendLedger {
|
|
|
82
114
|
counted: CostRecord[];
|
|
83
115
|
/** Cost records excluded because they were voided. */
|
|
84
116
|
excluded: CostRecord[];
|
|
117
|
+
/**
|
|
118
|
+
* Charges whose amount nobody knows yet (§19.3; #150).
|
|
119
|
+
*
|
|
120
|
+
* A provider may charge a request and withhold or delay the figure. While one of these stands
|
|
121
|
+
* against a grant, **Aldus cannot prove how much authorization remains** — the charge is real
|
|
122
|
+
* and its size is not yet a fact.
|
|
123
|
+
*
|
|
124
|
+
* A record here is never treated as free, voided, or a zero draw. Zero is a numerical assertion;
|
|
125
|
+
* this is an uncertainty state, and the two are not interchangeable.
|
|
126
|
+
*/
|
|
127
|
+
unresolvedUnknown: CostRecord[];
|
|
128
|
+
/**
|
|
129
|
+
* Whether {@link SpendLedger.remaining} is a number anyone may spend against.
|
|
130
|
+
*
|
|
131
|
+
* `false` while any unresolved unknown charge stands. `remaining` still reports the arithmetic
|
|
132
|
+
* over what is known, because an operator wants the figure — but presenting it as headroom
|
|
133
|
+
* would state a safe amount that nothing establishes.
|
|
134
|
+
*/
|
|
135
|
+
remainingIsDeterminate: boolean;
|
|
85
136
|
}
|
|
137
|
+
/**
|
|
138
|
+
* Whether a record is a charge of unknown size (§19.3; #150).
|
|
139
|
+
*
|
|
140
|
+
* An estimate does not resolve it. An estimate is evidence about what a request was expected to
|
|
141
|
+
* cost, and the ruling on #150 is explicit that it does not confirm the final charge — so a record
|
|
142
|
+
* carrying both an estimate and `billingStatus: "unknown"` is still unresolved.
|
|
143
|
+
*/
|
|
144
|
+
export declare function isUnresolvedUnknownCharge(record: CostRecord): boolean;
|
|
86
145
|
/**
|
|
87
146
|
* Total what has been drawn against a grant.
|
|
88
147
|
*
|
|
@@ -91,6 +150,94 @@ export interface SpendLedger {
|
|
|
91
150
|
* silently absorbing it would make one gate's ceiling depend on another's spending.
|
|
92
151
|
*/
|
|
93
152
|
export declare function computeLedger(grant: SpendGrant, costs: readonly CostRecord[]): SpendLedger;
|
|
153
|
+
/**
|
|
154
|
+
* Authorization available to commit, derived rather than maintained (ADR-0044; #155).
|
|
155
|
+
*
|
|
156
|
+
* ```text
|
|
157
|
+
* available = authorized maximum − settled charges − active reservations
|
|
158
|
+
* ```
|
|
159
|
+
*
|
|
160
|
+
* Derived on every read, never stored as a balance. A maintained counter is a second source of
|
|
161
|
+
* truth about money, reconciled by hand against the records it summarises — and every defect this
|
|
162
|
+
* repository has fixed in the cost path has been a value asserting more than what established it.
|
|
163
|
+
*/
|
|
164
|
+
export interface SpendAvailability {
|
|
165
|
+
/** The ceiling the operator approved. */
|
|
166
|
+
authorized: Money;
|
|
167
|
+
/** Charges already recorded against it. */
|
|
168
|
+
settled: Money;
|
|
169
|
+
/** Authorization committed to effects that have not settled. */
|
|
170
|
+
reserved: Money;
|
|
171
|
+
/**
|
|
172
|
+
* What may still be committed. Never negative.
|
|
173
|
+
*
|
|
174
|
+
* **Read {@link SpendAvailability.determinate} before spending against this.** The figure is the
|
|
175
|
+
* arithmetic over what is known, and while an unresolved charge of unknown size stands, what is
|
|
176
|
+
* known is not all there is.
|
|
177
|
+
*/
|
|
178
|
+
available: Money;
|
|
179
|
+
/** Whether {@link SpendAvailability.available} is an amount anyone may commit against. */
|
|
180
|
+
determinate: boolean;
|
|
181
|
+
/**
|
|
182
|
+
* Why it is not, where it is not.
|
|
183
|
+
*
|
|
184
|
+
* Two independent sources, kept apart because they carry different evidence:
|
|
185
|
+
*
|
|
186
|
+
* - reservations in `billing_unknown` whose exposure is not bounded by an enforced ceiling;
|
|
187
|
+
* - cost records of unknown size with no reservation at all, which is every such record written
|
|
188
|
+
* before this protocol existed (#150).
|
|
189
|
+
*/
|
|
190
|
+
indeterminate: {
|
|
191
|
+
unboundedReservations: SpendReservation[];
|
|
192
|
+
unreservedUnknownCharges: CostRecord[];
|
|
193
|
+
};
|
|
194
|
+
/**
|
|
195
|
+
* Reserved-but-unsettled amounts, per **authorization** currency (ADR-0044).
|
|
196
|
+
*
|
|
197
|
+
* Not the provider's billing currency. This states what Aldus set aside; what a provider charged,
|
|
198
|
+
* and in what currency, is a separate fact that may not exist yet. A report may say "USD 2.00
|
|
199
|
+
* remains reserved because billing is unresolved"; it must never restate that as "the provider
|
|
200
|
+
* made an unknown USD charge".
|
|
201
|
+
*/
|
|
202
|
+
reservedUnknownByCurrency: Record<string, string>;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Derive what a grant still authorizes (§19.3; ADR-0044).
|
|
206
|
+
*
|
|
207
|
+
* Composes with #150 rather than replacing it. A charge of unknown size still makes the grant
|
|
208
|
+
* indeterminate — what a reservation adds is the possibility of a *bound*, and only when the
|
|
209
|
+
* execution that produced the charge was actually dispatched under an enforced ceiling. A backend
|
|
210
|
+
* that declares enforcement today is not evidence about a request dispatched by an earlier version
|
|
211
|
+
* (ADR-0030).
|
|
212
|
+
*/
|
|
213
|
+
export declare function availableAuthorization(grant: SpendGrant, costs: readonly CostRecord[], reservations?: readonly SpendReservation[]): SpendAvailability;
|
|
214
|
+
/**
|
|
215
|
+
* Whether a grant can truthfully permit an unestimated execution (ADR-0044; #155).
|
|
216
|
+
*
|
|
217
|
+
* `reserve_max_per_request` promises to reserve the per-request ceiling. A grant that permits it
|
|
218
|
+
* and states no such ceiling promises an amount it does not have — and reserving zero instead
|
|
219
|
+
* would make unestimated executions invisible to concurrency control, which is the case most
|
|
220
|
+
* likely to be dispatched in a loop.
|
|
221
|
+
*
|
|
222
|
+
* Checked at decode **and** before dispatch: a grant assembled from configuration never passes
|
|
223
|
+
* through the constructor that would have caught it.
|
|
224
|
+
*/
|
|
225
|
+
export declare function unestimatedPolicyIsSatisfiable(grant: SpendGrant): string | undefined;
|
|
226
|
+
/** Why a grant does not authorize an operation. */
|
|
227
|
+
export interface SpendScopeRefusal {
|
|
228
|
+
operation: string;
|
|
229
|
+
authorized: readonly string[];
|
|
230
|
+
explanation: string;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Whether a grant authorizes an operation (§13.2, §4.2; #155).
|
|
234
|
+
*
|
|
235
|
+
* Checked before reserving, so handing the wrong grant to an execution gateway cannot authorize
|
|
236
|
+
* unrelated work. Without it a grant is a pool of money with no statement about what it is for,
|
|
237
|
+
* and the only thing separating agent spend from a synthesis ledger is which decision each
|
|
238
|
+
* happened to name.
|
|
239
|
+
*/
|
|
240
|
+
export declare function checkSpendScope(grant: SpendGrant, operation: string): SpendScopeRefusal | undefined;
|
|
94
241
|
/** A request to spend against a grant. */
|
|
95
242
|
export interface SpendRequest {
|
|
96
243
|
/** The amount about to be committed. */
|
|
@@ -99,7 +246,16 @@ export interface SpendRequest {
|
|
|
99
246
|
operation?: string;
|
|
100
247
|
}
|
|
101
248
|
/** Why a spend was refused. */
|
|
102
|
-
export type SpendRefusalReason = "per-request-limit" | "total-limit" | "already-overspent" | "negative-amount"
|
|
249
|
+
export type SpendRefusalReason = "per-request-limit" | "total-limit" | "already-overspent" | "negative-amount"
|
|
250
|
+
/**
|
|
251
|
+
* A charge of unknown size stands against this grant (§19.3; #150).
|
|
252
|
+
*
|
|
253
|
+
* Refused rather than allowed-with-a-warning: while the size of a real charge is unknown, the
|
|
254
|
+
* remaining headroom is not a fact, and spending against a figure nobody can establish is how a
|
|
255
|
+
* ceiling is exceeded without any single decision being wrong. Resolution is a reconciled amount
|
|
256
|
+
* or a new authorization under an explicit policy — both human acts.
|
|
257
|
+
*/
|
|
258
|
+
| "billing-unconfirmed";
|
|
103
259
|
/** The outcome of a stop-on-budget check. */
|
|
104
260
|
export type SpendCheck = {
|
|
105
261
|
allowed: true;
|
package/dist/spend.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spend.d.ts","sourceRoot":"","sources":["../src/spend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"spend.d.ts","sourceRoot":"","sources":["../src/spend.ts"],"names":[],"mappings":"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"}
|