@agentplat/inference-control 0.3.0-beta.2 → 0.3.0-beta.4

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.
Files changed (150) hide show
  1. package/README.md +360 -0
  2. package/dist/anytime-semantic-guarantees.d.ts +216 -0
  3. package/dist/anytime-semantic-guarantees.d.ts.map +1 -0
  4. package/dist/anytime-semantic-guarantees.js +817 -0
  5. package/dist/anytime-semantic-guarantees.js.map +1 -0
  6. package/dist/assessor-ensemble-contracts.d.ts +145 -0
  7. package/dist/assessor-ensemble-contracts.d.ts.map +1 -0
  8. package/dist/assessor-ensemble-contracts.js +29 -0
  9. package/dist/assessor-ensemble-contracts.js.map +1 -0
  10. package/dist/assessor-ensemble-runtime.d.ts +55 -0
  11. package/dist/assessor-ensemble-runtime.d.ts.map +1 -0
  12. package/dist/assessor-ensemble-runtime.js +308 -0
  13. package/dist/assessor-ensemble-runtime.js.map +1 -0
  14. package/dist/assessor-ensemble-validation.d.ts +12 -0
  15. package/dist/assessor-ensemble-validation.d.ts.map +1 -0
  16. package/dist/assessor-ensemble-validation.js +156 -0
  17. package/dist/assessor-ensemble-validation.js.map +1 -0
  18. package/dist/assessor-ensemble.d.ts +4 -0
  19. package/dist/assessor-ensemble.d.ts.map +1 -0
  20. package/dist/assessor-ensemble.js +4 -0
  21. package/dist/assessor-ensemble.js.map +1 -0
  22. package/dist/cognitive-adapters.d.ts +92 -0
  23. package/dist/cognitive-adapters.d.ts.map +1 -0
  24. package/dist/cognitive-adapters.js +263 -0
  25. package/dist/cognitive-adapters.js.map +1 -0
  26. package/dist/context-integrity-analyzers.d.ts +35 -0
  27. package/dist/context-integrity-analyzers.d.ts.map +1 -0
  28. package/dist/context-integrity-analyzers.js +387 -0
  29. package/dist/context-integrity-analyzers.js.map +1 -0
  30. package/dist/context-integrity-contracts.d.ts +304 -0
  31. package/dist/context-integrity-contracts.d.ts.map +1 -0
  32. package/dist/context-integrity-contracts.js +24 -0
  33. package/dist/context-integrity-contracts.js.map +1 -0
  34. package/dist/context-integrity-model.d.ts +25 -0
  35. package/dist/context-integrity-model.d.ts.map +1 -0
  36. package/dist/context-integrity-model.js +192 -0
  37. package/dist/context-integrity-model.js.map +1 -0
  38. package/dist/context-integrity-portable-agent.d.ts +79 -0
  39. package/dist/context-integrity-portable-agent.d.ts.map +1 -0
  40. package/dist/context-integrity-portable-agent.js +511 -0
  41. package/dist/context-integrity-portable-agent.js.map +1 -0
  42. package/dist/context-integrity-role-alignment.d.ts +28 -0
  43. package/dist/context-integrity-role-alignment.d.ts.map +1 -0
  44. package/dist/context-integrity-role-alignment.js +95 -0
  45. package/dist/context-integrity-role-alignment.js.map +1 -0
  46. package/dist/context-integrity-runtime.d.ts +95 -0
  47. package/dist/context-integrity-runtime.d.ts.map +1 -0
  48. package/dist/context-integrity-runtime.js +1512 -0
  49. package/dist/context-integrity-runtime.js.map +1 -0
  50. package/dist/context-integrity.d.ts +5 -0
  51. package/dist/context-integrity.d.ts.map +1 -0
  52. package/dist/context-integrity.js +5 -0
  53. package/dist/context-integrity.js.map +1 -0
  54. package/dist/governed-role-evolution.d.ts +172 -0
  55. package/dist/governed-role-evolution.d.ts.map +1 -0
  56. package/dist/governed-role-evolution.js +613 -0
  57. package/dist/governed-role-evolution.js.map +1 -0
  58. package/dist/heterogeneous-agent-composition.d.ts +96 -0
  59. package/dist/heterogeneous-agent-composition.d.ts.map +1 -0
  60. package/dist/heterogeneous-agent-composition.js +512 -0
  61. package/dist/heterogeneous-agent-composition.js.map +1 -0
  62. package/dist/index.d.ts +21 -13
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +21 -13
  65. package/dist/index.js.map +1 -1
  66. package/dist/intervention-adapters.d.ts +29 -0
  67. package/dist/intervention-adapters.d.ts.map +1 -0
  68. package/dist/intervention-adapters.js +107 -0
  69. package/dist/intervention-adapters.js.map +1 -0
  70. package/dist/intervention-contracts.d.ts +311 -0
  71. package/dist/intervention-contracts.d.ts.map +1 -0
  72. package/dist/intervention-contracts.js +28 -0
  73. package/dist/intervention-contracts.js.map +1 -0
  74. package/dist/intervention-runtime.d.ts +86 -0
  75. package/dist/intervention-runtime.d.ts.map +1 -0
  76. package/dist/intervention-runtime.js +958 -0
  77. package/dist/intervention-runtime.js.map +1 -0
  78. package/dist/intervention-validation.d.ts +27 -0
  79. package/dist/intervention-validation.d.ts.map +1 -0
  80. package/dist/intervention-validation.js +273 -0
  81. package/dist/intervention-validation.js.map +1 -0
  82. package/dist/intervention.d.ts +6 -0
  83. package/dist/intervention.d.ts.map +1 -0
  84. package/dist/intervention.js +6 -0
  85. package/dist/intervention.js.map +1 -0
  86. package/dist/model.d.ts +18 -0
  87. package/dist/model.d.ts.map +1 -1
  88. package/dist/model.js +60 -2
  89. package/dist/model.js.map +1 -1
  90. package/dist/operational-cognitive-control.d.ts +208 -0
  91. package/dist/operational-cognitive-control.d.ts.map +1 -0
  92. package/dist/operational-cognitive-control.js +590 -0
  93. package/dist/operational-cognitive-control.js.map +1 -0
  94. package/dist/portable-agent.d.ts +50 -0
  95. package/dist/portable-agent.d.ts.map +1 -0
  96. package/dist/portable-agent.js +243 -0
  97. package/dist/portable-agent.js.map +1 -0
  98. package/dist/reference-controllers.d.ts +121 -0
  99. package/dist/reference-controllers.d.ts.map +1 -0
  100. package/dist/reference-controllers.js +411 -0
  101. package/dist/reference-controllers.js.map +1 -0
  102. package/dist/role-alignment-portable-agent.d.ts +145 -0
  103. package/dist/role-alignment-portable-agent.d.ts.map +1 -0
  104. package/dist/role-alignment-portable-agent.js +484 -0
  105. package/dist/role-alignment-portable-agent.js.map +1 -0
  106. package/dist/role-alignment.d.ts +226 -0
  107. package/dist/role-alignment.d.ts.map +1 -0
  108. package/dist/role-alignment.js +1074 -0
  109. package/dist/role-alignment.js.map +1 -0
  110. package/dist/role-realignment-portable-agent.d.ts +163 -0
  111. package/dist/role-realignment-portable-agent.d.ts.map +1 -0
  112. package/dist/role-realignment-portable-agent.js +634 -0
  113. package/dist/role-realignment-portable-agent.js.map +1 -0
  114. package/dist/role-realignment.d.ts +368 -0
  115. package/dist/role-realignment.d.ts.map +1 -0
  116. package/dist/role-realignment.js +1609 -0
  117. package/dist/role-realignment.js.map +1 -0
  118. package/dist/semantic-alignment-assessors.d.ts +12 -0
  119. package/dist/semantic-alignment-assessors.d.ts.map +1 -0
  120. package/dist/semantic-alignment-assessors.js +55 -0
  121. package/dist/semantic-alignment-assessors.js.map +1 -0
  122. package/dist/semantic-alignment-contracts.d.ts +385 -0
  123. package/dist/semantic-alignment-contracts.d.ts.map +1 -0
  124. package/dist/semantic-alignment-contracts.js +16 -0
  125. package/dist/semantic-alignment-contracts.js.map +1 -0
  126. package/dist/semantic-alignment-memory.d.ts +53 -0
  127. package/dist/semantic-alignment-memory.d.ts.map +1 -0
  128. package/dist/semantic-alignment-memory.js +170 -0
  129. package/dist/semantic-alignment-memory.js.map +1 -0
  130. package/dist/semantic-alignment-runtime.d.ts +67 -0
  131. package/dist/semantic-alignment-runtime.d.ts.map +1 -0
  132. package/dist/semantic-alignment-runtime.js +778 -0
  133. package/dist/semantic-alignment-runtime.js.map +1 -0
  134. package/dist/semantic-alignment-validation.d.ts +31 -0
  135. package/dist/semantic-alignment-validation.d.ts.map +1 -0
  136. package/dist/semantic-alignment-validation.js +477 -0
  137. package/dist/semantic-alignment-validation.js.map +1 -0
  138. package/dist/semantic-alignment.d.ts +8 -0
  139. package/dist/semantic-alignment.d.ts.map +1 -0
  140. package/dist/semantic-alignment.js +8 -0
  141. package/dist/semantic-alignment.js.map +1 -0
  142. package/dist/semantic-horizon-budget.d.ts +118 -0
  143. package/dist/semantic-horizon-budget.d.ts.map +1 -0
  144. package/dist/semantic-horizon-budget.js +536 -0
  145. package/dist/semantic-horizon-budget.js.map +1 -0
  146. package/dist/semantic-metric-engine.d.ts +96 -0
  147. package/dist/semantic-metric-engine.d.ts.map +1 -0
  148. package/dist/semantic-metric-engine.js +396 -0
  149. package/dist/semantic-metric-engine.js.map +1 -0
  150. package/package.json +79 -7
@@ -0,0 +1,590 @@
1
+ import { invokeAnytimeSemanticGuaranteeAppendV1, invokeSemanticHorizonControlV1, isAnytimeSemanticGuaranteeEngineV1, isSemanticHorizonControlV1, validateAnytimeSemanticGuaranteeV1, validateSemanticHorizonDecisionV1, } from "./anytime-semantic-guarantees.js";
2
+ import { ReferenceBlackBoxControllerV1, ReferenceRepresentationControllerV1, } from "./reference-controllers.js";
3
+ import { digestControlJsonV1 } from "./canonical.js";
4
+ import { InMemorySemanticHorizonBudgetStoreV1, SemanticHorizonBudgetLedgerV1, } from "./semantic-horizon-budget.js";
5
+ import { assertControlToken, assertDigest, assertIdentifier, assertSafeInteger, deepFreeze, } from "./validation.js";
6
+ export const OPERATIONAL_COGNITIVE_CHECKPOINTS_V1 = Object.freeze([
7
+ "pre_turn",
8
+ "post_turn",
9
+ "pre_tool",
10
+ "pre_effect",
11
+ ]);
12
+ const operationalCognitiveControllerInvokersV1 = new WeakMap();
13
+ const operationalCognitiveConcreteSemanticBindingV1 = new WeakSet();
14
+ const operationalCognitiveDurableHorizonBudgetBindingV1 = new WeakSet();
15
+ /**
16
+ * Executable, provider-neutral cognitive control loop. It composes the
17
+ * package's existing reference controllers, intervention gates and anytime
18
+ * guarantee engine; it does not create provider, tool or effect authority.
19
+ */
20
+ export class OperationalCognitiveControllerV1 {
21
+ options;
22
+ #blackBox;
23
+ #representation;
24
+ #appendGuarantee;
25
+ #decideHorizon;
26
+ #gateCheckpoint;
27
+ #gateOperation;
28
+ #observers;
29
+ #observerBindings;
30
+ #executeInference;
31
+ #emitObservation;
32
+ #horizonBudget;
33
+ constructor(options) {
34
+ this.options = options;
35
+ const guarantee = options.guarantee;
36
+ const horizonControl = options.horizonControl;
37
+ assertIdentifier(options.controlId, "controlId");
38
+ assertIdentifier(options.guaranteeStateKey, "guaranteeStateKey");
39
+ if ((options.horizonBudgetStateKey !== undefined ||
40
+ options.horizonBudgetMonotonicAnchor !== undefined) &&
41
+ options.horizonBudgetStore === undefined)
42
+ throw new TypeError("operational_horizon_budget_store_required");
43
+ if (options.horizonBudgetStore !== undefined &&
44
+ options.horizonBudgetMonotonicAnchor === undefined)
45
+ throw new TypeError("operational_horizon_budget_monotonic_anchor_required");
46
+ const horizonBudgetStateKey = options.horizonBudgetStateKey ??
47
+ `${options.guaranteeStateKey}:operational:${options.controlId}`;
48
+ assertIdentifier(horizonBudgetStateKey, "horizonBudgetStateKey");
49
+ const horizonBudgetStore = options.horizonBudgetStore ?? new InMemorySemanticHorizonBudgetStoreV1();
50
+ this.#horizonBudget = new SemanticHorizonBudgetLedgerV1({
51
+ stateKey: horizonBudgetStateKey,
52
+ store: horizonBudgetStore,
53
+ monotonicAnchor: options.horizonBudgetMonotonicAnchor,
54
+ maximumCasAttempts: options.horizonBudgetMaximumCasAttempts,
55
+ });
56
+ if (!options.intervention ||
57
+ typeof options.intervention.gateCheckpoint !== "function" ||
58
+ typeof options.intervention.gateOperation !== "function")
59
+ throw new TypeError("operational_intervention_port_required");
60
+ const intervention = options.intervention;
61
+ this.#gateCheckpoint = intervention.gateCheckpoint.bind(intervention);
62
+ this.#gateOperation = intervention.gateOperation.bind(intervention);
63
+ if (!guarantee || typeof guarantee.append !== "function")
64
+ throw new TypeError("operational_anytime_guarantee_port_required");
65
+ if (!horizonControl || typeof horizonControl.decide !== "function")
66
+ throw new TypeError("operational_horizon_control_port_required");
67
+ const inference = options.inference;
68
+ const executeInference = inference?.execute;
69
+ if (!inference || typeof executeInference !== "function")
70
+ throw new TypeError("operational_inference_port_required");
71
+ const observationSink = options.observationSink;
72
+ const emitObservation = observationSink?.emit;
73
+ if (observationSink && typeof emitObservation !== "function")
74
+ throw new TypeError("operational_observation_sink_invalid");
75
+ const concreteGuarantee = isAnytimeSemanticGuaranteeEngineV1(guarantee);
76
+ const structuralHorizonDecision = horizonControl.decide.bind(horizonControl);
77
+ const concreteHorizon = isSemanticHorizonControlV1(horizonControl);
78
+ this.#appendGuarantee = concreteGuarantee
79
+ ? (input) => invokeAnytimeSemanticGuaranteeAppendV1(guarantee, input)
80
+ : guarantee.append.bind(guarantee);
81
+ this.#decideHorizon = concreteHorizon
82
+ ? (guarantee) => invokeSemanticHorizonControlV1(horizonControl, guarantee)
83
+ : structuralHorizonDecision;
84
+ this.#observers = captureOperationalObservers(options.observers);
85
+ this.#observerBindings = deepFreeze([
86
+ this.#observers.coherence,
87
+ this.#observers.objective,
88
+ this.#observers.context,
89
+ this.#observers.uncertainty,
90
+ ].map(({ observerId, observerVersion, observerImplementationDigest, kind, }) => ({
91
+ observerId,
92
+ observerVersion,
93
+ observerImplementationDigest,
94
+ kind,
95
+ })));
96
+ this.#executeInference = executeInference.bind(inference);
97
+ this.#emitObservation = observationSink
98
+ ? emitObservation.bind(observationSink)
99
+ : null;
100
+ this.#blackBox = new ReferenceBlackBoxControllerV1(options.blackBoxPolicy);
101
+ if (options.mode === "representation_aware") {
102
+ if (!options.representationPolicy)
103
+ throw new TypeError("operational_representation_policy_required");
104
+ this.#representation = new ReferenceRepresentationControllerV1(options.representationPolicy);
105
+ }
106
+ else if (options.mode === "black_box") {
107
+ if (options.representationPolicy)
108
+ throw new TypeError("operational_representation_policy_unexpected");
109
+ this.#representation = null;
110
+ }
111
+ else
112
+ throw new TypeError("operational_control_mode_invalid");
113
+ Object.defineProperty(this, "options", {
114
+ value: Object.freeze({
115
+ ...options,
116
+ observers: this.#observers,
117
+ guarantee,
118
+ horizonControl,
119
+ horizonBudgetStore,
120
+ ...(options.horizonBudgetMonotonicAnchor
121
+ ? {
122
+ horizonBudgetMonotonicAnchor: options.horizonBudgetMonotonicAnchor,
123
+ }
124
+ : {}),
125
+ horizonBudgetStateKey,
126
+ inference: Object.freeze({ execute: this.#executeInference }),
127
+ ...(this.#emitObservation
128
+ ? {
129
+ observationSink: Object.freeze({ emit: this.#emitObservation }),
130
+ }
131
+ : {}),
132
+ }),
133
+ writable: false,
134
+ configurable: false,
135
+ enumerable: true,
136
+ });
137
+ const invokers = Object.freeze({
138
+ runTurn: (request) => this.#runTurn(request),
139
+ runPreTool: (request, dispatch) => this.#runPreTool(request, dispatch),
140
+ runPreEffect: (request, commit) => this.#runPreEffect(request, commit),
141
+ reconcilePreEffect: (request, commit) => this.#reconcilePreEffect(request, commit),
142
+ });
143
+ operationalCognitiveControllerInvokersV1.set(this, invokers);
144
+ if (concreteGuarantee && concreteHorizon)
145
+ operationalCognitiveConcreteSemanticBindingV1.add(this);
146
+ if (options.horizonBudgetStore && options.horizonBudgetMonotonicAnchor)
147
+ operationalCognitiveDurableHorizonBudgetBindingV1.add(this);
148
+ Object.defineProperties(this, {
149
+ runTurn: immutableOperationalInvoker(invokers.runTurn),
150
+ runPreTool: immutableOperationalInvoker(invokers.runPreTool),
151
+ runPreEffect: immutableOperationalInvoker(invokers.runPreEffect),
152
+ });
153
+ }
154
+ async runTurn(request) {
155
+ return invokeOperationalCognitiveRunTurnV1(this, request);
156
+ }
157
+ async #runTurn(request) {
158
+ validateTurnRequest(request, this.options.mode);
159
+ const contextDigests = canonicalDigests(request.context.map((item) => item.contentDigest), "contextItemDigests");
160
+ const requestedTools = canonicalTokens(request.requestedToolNames, "requestedToolNames");
161
+ const pre = await this.#observe({
162
+ operationId: request.operationId,
163
+ checkpoint: "pre_turn",
164
+ bindingDigest: request.bindingDigest,
165
+ sequence: request.observationSequence,
166
+ step: request.step,
167
+ logicalTimeMs: request.logicalTimeMs,
168
+ material: request.input,
169
+ contextItemDigests: contextDigests,
170
+ allowedToolNames: requestedTools,
171
+ });
172
+ if (pre.blockingStatus)
173
+ return turnBlocked(pre.blockingStatus, pre.emission.horizonDecision, null, null, null);
174
+ const preGate = await this.#gateCheckpoint({
175
+ operationId: `${request.operationId}:pre-turn`,
176
+ kind: "input",
177
+ step: request.step,
178
+ logicalTimeMs: request.logicalTimeMs,
179
+ payload: request.input,
180
+ });
181
+ if (!preGate.allowed)
182
+ return turnBlocked("blocked", pre.emission.horizonDecision, null, null, preGate.state.stateDigest, ["pre_turn_intervention_blocked"]);
183
+ const blackBox = this.#blackBox.control({
184
+ requestId: request.operationId,
185
+ bindingDigest: request.bindingDigest,
186
+ step: request.step,
187
+ logicalTimeMs: request.logicalTimeMs,
188
+ context: request.context,
189
+ requestedToolNames: requestedTools,
190
+ memoryQueryDigest: request.memoryQueryDigest,
191
+ });
192
+ if (blackBox.receipt.disposition === "abstain")
193
+ return turnBlocked("safe_stopped", pre.emission.horizonDecision, blackBox.receipt, null, preGate.state.stateDigest, blackBox.receipt.reasonCodes);
194
+ let controlledActivation = null;
195
+ let representationReceipt = null;
196
+ if (this.#representation) {
197
+ const representation = request.representation;
198
+ const controlled = this.#representation.intervene({
199
+ requestId: request.operationId,
200
+ bindingDigest: request.bindingDigest,
201
+ activation: representation.activation,
202
+ activationDigest: representation.activationDigest,
203
+ roleVector: representation.roleVector,
204
+ roleVectorDigest: representation.roleVectorDigest,
205
+ prohibitedVectors: representation.prohibitedVectors,
206
+ step: request.step,
207
+ logicalTimeMs: request.logicalTimeMs,
208
+ });
209
+ representationReceipt = controlled.receipt;
210
+ if (controlled.receipt.result === "rejected")
211
+ return turnBlocked("safe_stopped", pre.emission.horizonDecision, blackBox.receipt, controlled.receipt, preGate.state.stateDigest, [controlled.receipt.reasonCode]);
212
+ controlledActivation = controlled.activation;
213
+ }
214
+ if (!(await this.#horizonBudget.consume(pre.emission.horizonDecision, {
215
+ consumptionId: request.operationId,
216
+ bindingDigest: request.bindingDigest,
217
+ })))
218
+ return turnBlocked("replan_required", pre.emission.horizonDecision, blackBox.receipt, representationReceipt, preGate.state.stateDigest, ["semantic_horizon_exhausted"]);
219
+ const output = await this.#executeInference({
220
+ operationId: request.operationId,
221
+ step: request.step,
222
+ logicalTimeMs: request.logicalTimeMs,
223
+ input: request.input,
224
+ context: blackBox.context,
225
+ allowedToolNames: blackBox.allowedToolNames,
226
+ roleReinforcement: blackBox.roleReinforcement,
227
+ blackBoxReceipt: blackBox.receipt,
228
+ controlledActivation,
229
+ representationReceipt,
230
+ });
231
+ if (typeof output !== "string")
232
+ throw new TypeError("operational_inference_output_invalid");
233
+ const post = await this.#observe({
234
+ operationId: request.operationId,
235
+ checkpoint: "post_turn",
236
+ bindingDigest: request.bindingDigest,
237
+ sequence: request.observationSequence + 1,
238
+ step: request.step,
239
+ logicalTimeMs: request.logicalTimeMs,
240
+ material: output,
241
+ contextItemDigests: blackBox.receipt.selectedItemDigests,
242
+ allowedToolNames: blackBox.allowedToolNames,
243
+ });
244
+ const postGate = await this.#gateCheckpoint({
245
+ operationId: `${request.operationId}:post-turn`,
246
+ kind: "output",
247
+ step: request.step,
248
+ logicalTimeMs: request.logicalTimeMs,
249
+ payload: output,
250
+ });
251
+ if (!postGate.allowed)
252
+ return turnBlocked("blocked", post.emission.horizonDecision, blackBox.receipt, representationReceipt, postGate.state.stateDigest, ["post_turn_intervention_blocked"]);
253
+ if (post.blockingStatus)
254
+ return turnBlocked(post.blockingStatus, post.emission.horizonDecision, blackBox.receipt, representationReceipt, postGate.state.stateDigest);
255
+ return deepFreeze({
256
+ status: "completed",
257
+ output,
258
+ horizonDecision: post.emission.horizonDecision,
259
+ blackBoxReceipt: blackBox.receipt,
260
+ representationReceipt,
261
+ interventionStateDigest: postGate.state.stateDigest,
262
+ reasonCodes: post.emission.horizonDecision.reasonCodes,
263
+ });
264
+ }
265
+ /** The tool callback is invoked only after the final pre-tool gate. */
266
+ async runPreTool(request, dispatch) {
267
+ return invokeOperationalCognitiveRunPreToolV1(this, request, dispatch);
268
+ }
269
+ async #runPreTool(request, dispatch) {
270
+ canonicalTokens([request.toolName], "toolName");
271
+ return this.#runBoundary(request, "pre_tool", "tool", dispatch);
272
+ }
273
+ /** The effect callback is invoked only after the final pre-effect gate. */
274
+ async runPreEffect(request, commit) {
275
+ return invokeOperationalCognitiveRunPreEffectV1(this, request, commit);
276
+ }
277
+ async #runPreEffect(request, commit) {
278
+ return this.#runBoundary(request, "pre_effect", "action", commit);
279
+ }
280
+ async #reconcilePreEffect(request, commit) {
281
+ validateBoundaryRequest(request);
282
+ if (typeof commit !== "function")
283
+ throw new TypeError("operational_boundary_callback_required");
284
+ const authorized = await this.#horizonBudget.reconcileConsumption({
285
+ consumptionId: boundaryConsumptionId(request.operationId, "pre_effect"),
286
+ bindingDigest: request.bindingDigest,
287
+ });
288
+ if (!authorized)
289
+ return Object.freeze({ authorized: false, value: null });
290
+ return Object.freeze({ authorized: true, value: await commit() });
291
+ }
292
+ async #runBoundary(request, checkpoint, kind, execute) {
293
+ validateBoundaryRequest(request);
294
+ if (typeof execute !== "function")
295
+ throw new TypeError("operational_boundary_callback_required");
296
+ const observed = await this.#observe({
297
+ operationId: request.operationId,
298
+ checkpoint,
299
+ bindingDigest: request.bindingDigest,
300
+ sequence: request.observationSequence,
301
+ step: request.step,
302
+ logicalTimeMs: request.logicalTimeMs,
303
+ material: request.payload,
304
+ contextItemDigests: canonicalDigests(request.contextItemDigests ?? [], "contextItemDigests"),
305
+ allowedToolNames: canonicalTokens(request.allowedToolNames ?? [], "allowedToolNames"),
306
+ });
307
+ if (observed.blockingStatus)
308
+ return deepFreeze({
309
+ allowed: false,
310
+ value: null,
311
+ horizonDecision: observed.emission.horizonDecision,
312
+ interventionStateDigest: null,
313
+ reasonCodes: observed.emission.horizonDecision.reasonCodes,
314
+ });
315
+ if (kind === "tool" &&
316
+ !this.#blackBox.policy.allowedToolNames.includes(request.toolName))
317
+ return deepFreeze({
318
+ allowed: false,
319
+ value: null,
320
+ horizonDecision: observed.emission.horizonDecision,
321
+ interventionStateDigest: null,
322
+ reasonCodes: ["tool_not_authorized"],
323
+ });
324
+ const gate = await this.#gateOperation({
325
+ operationId: request.operationId,
326
+ kind,
327
+ step: request.step,
328
+ logicalTimeMs: request.logicalTimeMs,
329
+ payload: request.payload,
330
+ });
331
+ if (!gate.allowed)
332
+ return deepFreeze({
333
+ allowed: false,
334
+ value: null,
335
+ horizonDecision: observed.emission.horizonDecision,
336
+ interventionStateDigest: gate.state.stateDigest,
337
+ reasonCodes: [`${checkpoint}_intervention_blocked`],
338
+ });
339
+ if (!(await this.#horizonBudget.consume(observed.emission.horizonDecision, {
340
+ consumptionId: boundaryConsumptionId(request.operationId, checkpoint),
341
+ bindingDigest: request.bindingDigest,
342
+ })))
343
+ return deepFreeze({
344
+ allowed: false,
345
+ value: null,
346
+ horizonDecision: observed.emission.horizonDecision,
347
+ interventionStateDigest: gate.state.stateDigest,
348
+ reasonCodes: ["semantic_horizon_exhausted"],
349
+ });
350
+ return Object.freeze({
351
+ allowed: true,
352
+ value: await execute(),
353
+ horizonDecision: observed.emission.horizonDecision,
354
+ interventionStateDigest: gate.state.stateDigest,
355
+ reasonCodes: observed.emission.horizonDecision.reasonCodes,
356
+ });
357
+ }
358
+ async #observe(request) {
359
+ const full = deepFreeze({
360
+ schemaVersion: 1,
361
+ controlId: this.options.controlId,
362
+ ...request,
363
+ });
364
+ const [coherence, objective, context, uncertainty] = await Promise.all([
365
+ this.#observers.coherence.observe(full),
366
+ this.#observers.objective.observe(full),
367
+ this.#observers.context.observe(full),
368
+ this.#observers.uncertainty.observe(full),
369
+ ]);
370
+ const values = [coherence, objective, context, uncertainty];
371
+ for (const [index, value] of values.entries())
372
+ validateObserverResult(value, `observerResult[${index}]`);
373
+ const metrics = deepFreeze({
374
+ roleCoherenceBps: coherence.valueBasisPoints,
375
+ missionAlignmentBps: objective.valueBasisPoints,
376
+ contextConflictBps: context.valueBasisPoints,
377
+ uncertaintyBps: uncertainty.valueBasisPoints,
378
+ courseActionDiversityBps: null,
379
+ courseActionNoveltyBps: null,
380
+ });
381
+ const observerEvidenceDigests = canonicalDigests(values.flatMap((value) => value.evidenceDigests), "observerEvidenceDigests");
382
+ const reasonCodes = canonicalTokens(values.flatMap((value) => value.reasonCodes), "reasonCodes");
383
+ const body = {
384
+ schemaVersion: 1,
385
+ controlId: full.controlId,
386
+ operationId: full.operationId,
387
+ checkpoint: full.checkpoint,
388
+ sequence: full.sequence,
389
+ step: full.step,
390
+ logicalTimeMs: full.logicalTimeMs,
391
+ metrics,
392
+ observerBindings: this.#observerBindings,
393
+ observerEvidenceDigests,
394
+ reasonCodes,
395
+ };
396
+ const observation = deepFreeze({
397
+ ...body,
398
+ observationDigest: digestControlJsonV1("trace", body),
399
+ });
400
+ const guarantee = validateAnytimeSemanticGuaranteeV1(await this.#appendGuarantee({
401
+ stateKey: this.options.guaranteeStateKey,
402
+ sample: {
403
+ sequence: observation.sequence,
404
+ logicalTimeMs: observation.logicalTimeMs,
405
+ metrics: observation.metrics,
406
+ assessmentDigest: observation.observationDigest,
407
+ },
408
+ }));
409
+ const horizonDecision = validateSemanticHorizonDecisionV1(this.#decideHorizon(guarantee), guarantee);
410
+ await this.#horizonBudget.apply(guarantee, horizonDecision);
411
+ const emission = deepFreeze({
412
+ schemaVersion: 1,
413
+ observation,
414
+ guarantee,
415
+ horizonDecision,
416
+ });
417
+ await this.#emitObservation?.(emission);
418
+ return {
419
+ emission,
420
+ blockingStatus: horizonDecision.directive === "safe_stop"
421
+ ? "safe_stopped"
422
+ : horizonDecision.directive === "replan"
423
+ ? "replan_required"
424
+ : null,
425
+ };
426
+ }
427
+ }
428
+ /**
429
+ * Nominal runtime check for closed compositions. The module-private brand
430
+ * prevents a structural object from replacing the operational control loop
431
+ * with caller-authored success values.
432
+ */
433
+ export function isOperationalCognitiveControllerV1(value) {
434
+ return (typeof value === "object" &&
435
+ value !== null &&
436
+ operationalCognitiveControllerInvokersV1.has(value));
437
+ }
438
+ /** True only when the controller captured the concrete statistical engine and horizon. */
439
+ export function isOperationalCognitiveControllerBoundToSemanticGuaranteesV1(value) {
440
+ return (isOperationalCognitiveControllerV1(value) &&
441
+ operationalCognitiveConcreteSemanticBindingV1.has(value));
442
+ }
443
+ /** True only when reconstruction can reuse an explicitly supplied budget store. */
444
+ export function isOperationalCognitiveControllerBoundToDurableHorizonBudgetV1(value) {
445
+ return (isOperationalCognitiveControllerV1(value) &&
446
+ operationalCognitiveDurableHorizonBudgetBindingV1.has(value));
447
+ }
448
+ /** Invokes the construction-time turn implementation, ignoring public overrides. */
449
+ export function invokeOperationalCognitiveRunTurnV1(controller, request) {
450
+ return operationalInvokers(controller).runTurn(request);
451
+ }
452
+ /** Runs the pre-tool boundary through the library-owned controller closure. */
453
+ export function invokeOperationalCognitiveRunPreToolV1(controller, request, dispatch) {
454
+ return operationalInvokers(controller).runPreTool(request, dispatch);
455
+ }
456
+ /** Runs the pre-effect boundary through the library-owned controller closure. */
457
+ export function invokeOperationalCognitiveRunPreEffectV1(controller, request, commit) {
458
+ return operationalInvokers(controller).runPreEffect(request, commit);
459
+ }
460
+ /**
461
+ * Replays only an already debited pre-effect authorization. It never observes,
462
+ * appends a semantic sample, advances intervention state, or consumes again.
463
+ */
464
+ export function reconcileOperationalCognitivePreEffectV1(controller, request, commit) {
465
+ return operationalInvokers(controller).reconcilePreEffect(request, commit);
466
+ }
467
+ function operationalInvokers(controller) {
468
+ const invokers = typeof controller === "object" && controller !== null
469
+ ? operationalCognitiveControllerInvokersV1.get(controller)
470
+ : undefined;
471
+ if (!invokers)
472
+ throw new TypeError("concrete operational cognitive controller is required");
473
+ return invokers;
474
+ }
475
+ function immutableOperationalInvoker(value) {
476
+ return {
477
+ value,
478
+ writable: false,
479
+ configurable: false,
480
+ enumerable: false,
481
+ };
482
+ }
483
+ function turnBlocked(status, horizonDecision, blackBoxReceipt, representationReceipt, interventionStateDigest, reasonCodes = horizonDecision.reasonCodes) {
484
+ return deepFreeze({
485
+ status,
486
+ output: null,
487
+ horizonDecision,
488
+ blackBoxReceipt,
489
+ representationReceipt,
490
+ interventionStateDigest,
491
+ reasonCodes: [...new Set(reasonCodes)].sort(),
492
+ });
493
+ }
494
+ function captureOperationalObservers(observers) {
495
+ const ids = new Set();
496
+ const capture = (key, kind) => {
497
+ const observer = observers?.[key];
498
+ const observerId = observer?.observerId;
499
+ const observerVersion = observer?.observerVersion;
500
+ const observerImplementationDigest = observer?.observerImplementationDigest;
501
+ const actualKind = observer?.kind;
502
+ const observe = observer?.observe;
503
+ if (!observer || actualKind !== kind || typeof observe !== "function")
504
+ throw new TypeError(`operational_${kind}_observer_required`);
505
+ assertIdentifier(observerId, `${key}.observerId`);
506
+ integer(observerVersion, `${key}.observerVersion`, 1, Number.MAX_SAFE_INTEGER);
507
+ const normalizedVersion = observerVersion;
508
+ assertDigest(observerImplementationDigest, `${key}.observerImplementationDigest`);
509
+ if (ids.has(observerId))
510
+ throw new TypeError("operational_observer_id_duplicate");
511
+ ids.add(observerId);
512
+ const capturedObserve = observe.bind(observer);
513
+ return Object.freeze({
514
+ observerId,
515
+ observerVersion: normalizedVersion,
516
+ observerImplementationDigest,
517
+ kind: actualKind,
518
+ observe: capturedObserve,
519
+ });
520
+ };
521
+ return Object.freeze({
522
+ coherence: capture("coherence", "coherence"),
523
+ objective: capture("objective", "objective_alignment"),
524
+ context: capture("context", "context_conflict"),
525
+ uncertainty: capture("uncertainty", "uncertainty"),
526
+ });
527
+ }
528
+ function validateObserverResult(result, label) {
529
+ if (!result || typeof result !== "object")
530
+ throw new TypeError(`${label}_invalid`);
531
+ if (result.valueBasisPoints !== null)
532
+ integer(result.valueBasisPoints, `${label}.valueBasisPoints`, 0, 10_000);
533
+ canonicalDigests(result.evidenceDigests, `${label}.evidenceDigests`);
534
+ canonicalTokens(result.reasonCodes, `${label}.reasonCodes`);
535
+ }
536
+ function validateTurnRequest(request, mode) {
537
+ validateBaseRequest(request);
538
+ if (!Array.isArray(request.context))
539
+ throw new TypeError("operational_context_invalid");
540
+ if (!Array.isArray(request.requestedToolNames))
541
+ throw new TypeError("operational_requested_tools_invalid");
542
+ if (request.memoryQueryDigest !== null)
543
+ assertDigest(request.memoryQueryDigest, "memoryQueryDigest");
544
+ if (mode === "representation_aware" && !request.representation)
545
+ throw new TypeError("operational_representation_material_required");
546
+ if (mode === "black_box" && request.representation !== null)
547
+ throw new TypeError("operational_representation_material_unexpected");
548
+ if (request.observationSequence >= Number.MAX_SAFE_INTEGER)
549
+ throw new RangeError("observationSequence cannot allocate post-turn sample");
550
+ }
551
+ function validateBoundaryRequest(request) {
552
+ validateBaseRequest(request);
553
+ canonicalDigests(request.contextItemDigests ?? [], "contextItemDigests");
554
+ canonicalTokens(request.allowedToolNames ?? [], "allowedToolNames");
555
+ }
556
+ function boundaryConsumptionId(operationId, checkpoint) {
557
+ return `${operationId}:${checkpoint}`;
558
+ }
559
+ function validateBaseRequest(request) {
560
+ assertIdentifier(request.operationId, "operationId");
561
+ integer(request.observationSequence, "observationSequence", 1, Number.MAX_SAFE_INTEGER);
562
+ integer(request.step, "step", 0, Number.MAX_SAFE_INTEGER);
563
+ integer(request.logicalTimeMs, "logicalTimeMs", 0, Number.MAX_SAFE_INTEGER);
564
+ assertDigest(request.bindingDigest, "bindingDigest");
565
+ const material = request.input ?? request.payload;
566
+ if (typeof material !== "string")
567
+ throw new TypeError("operational_material_invalid");
568
+ }
569
+ function canonicalDigests(values, label) {
570
+ if (!Array.isArray(values))
571
+ throw new TypeError(`${label}_invalid`);
572
+ const canonical = [...new Set(values)].sort();
573
+ for (const value of canonical)
574
+ assertDigest(value, label);
575
+ return Object.freeze(canonical);
576
+ }
577
+ function canonicalTokens(values, label) {
578
+ if (!Array.isArray(values))
579
+ throw new TypeError(`${label}_invalid`);
580
+ const canonical = [...new Set(values)].sort();
581
+ for (const value of canonical)
582
+ assertControlToken(value, label);
583
+ return Object.freeze(canonical);
584
+ }
585
+ function integer(value, label, minimum, maximum) {
586
+ assertSafeInteger(value, label, minimum);
587
+ if (value > maximum)
588
+ throw new RangeError(`${label}_invalid`);
589
+ }
590
+ //# sourceMappingURL=operational-cognitive-control.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operational-cognitive-control.js","sourceRoot":"","sources":["../src/operational-cognitive-control.ts"],"names":[],"mappings":"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"}