@plurnk/plurnk-service 1.14.2 → 1.16.0
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/.env.defaults +2 -2
- package/SPEC.md +243 -173
- package/digest-sql/curation/curation.sql +1 -1
- package/dist/build-info.json +1 -1
- package/dist/content/byte-view.d.ts +14 -0
- package/dist/content/byte-view.d.ts.map +1 -0
- package/dist/content/byte-view.js +33 -0
- package/dist/content/byte-view.js.map +1 -0
- package/dist/content/edit-receipt.d.ts.map +1 -1
- package/dist/content/edit-receipt.js +12 -1
- package/dist/content/edit-receipt.js.map +1 -1
- package/dist/content/line-marker.d.ts +2 -1
- package/dist/content/line-marker.d.ts.map +1 -1
- package/dist/content/line-marker.js +1 -0
- package/dist/content/line-marker.js.map +1 -1
- package/dist/content/matcher.d.ts +1 -0
- package/dist/content/matcher.d.ts.map +1 -1
- package/dist/content/matcher.js +1 -0
- package/dist/content/matcher.js.map +1 -1
- package/dist/content/read-projector.d.ts +4 -1
- package/dist/content/read-projector.d.ts.map +1 -1
- package/dist/content/read-projector.js +80 -3
- package/dist/content/read-projector.js.map +1 -1
- package/dist/core/AdmittedTurnExecutor.d.ts +43 -0
- package/dist/core/AdmittedTurnExecutor.d.ts.map +1 -0
- package/dist/core/AdmittedTurnExecutor.js +245 -0
- package/dist/core/AdmittedTurnExecutor.js.map +1 -0
- package/dist/core/BareBatchRunner.d.ts +26 -0
- package/dist/core/BareBatchRunner.d.ts.map +1 -0
- package/dist/core/BareBatchRunner.js +104 -0
- package/dist/core/BareBatchRunner.js.map +1 -0
- package/dist/core/BudgetReadout.d.ts +1 -1
- package/dist/core/BudgetReadout.d.ts.map +1 -1
- package/dist/core/BudgetReadout.js +42 -47
- package/dist/core/BudgetReadout.js.map +1 -1
- package/dist/core/CapabilityResolver.d.ts +2 -1
- package/dist/core/CapabilityResolver.d.ts.map +1 -1
- package/dist/core/CapabilityResolver.js +8 -9
- package/dist/core/CapabilityResolver.js.map +1 -1
- package/dist/core/ChannelWrite.d.ts +1 -1
- package/dist/core/ChannelWrite.d.ts.map +1 -1
- package/dist/core/DataStatementRunner.d.ts +35 -0
- package/dist/core/DataStatementRunner.d.ts.map +1 -0
- package/dist/core/DataStatementRunner.js +252 -0
- package/dist/core/DataStatementRunner.js.map +1 -0
- package/dist/core/Dispatcher.d.ts +8 -3
- package/dist/core/Dispatcher.d.ts.map +1 -1
- package/dist/core/Dispatcher.js +88 -738
- package/dist/core/Dispatcher.js.map +1 -1
- package/dist/core/EditMutations.d.ts +39 -0
- package/dist/core/EditMutations.d.ts.map +1 -0
- package/dist/core/EditMutations.js +418 -0
- package/dist/core/EditMutations.js.map +1 -0
- package/dist/core/Engine.d.ts +2 -23
- package/dist/core/Engine.d.ts.map +1 -1
- package/dist/core/Engine.js +18 -240
- package/dist/core/Engine.js.map +1 -1
- package/dist/core/Engine.sql +24 -23
- package/dist/core/KillHandler.d.ts +32 -0
- package/dist/core/KillHandler.d.ts.map +1 -0
- package/dist/core/KillHandler.js +179 -0
- package/dist/core/KillHandler.js.map +1 -0
- package/dist/core/LogVisibility.d.ts +1 -1
- package/dist/core/LogVisibility.d.ts.map +1 -1
- package/dist/core/LogVisibility.js +3 -4
- package/dist/core/LogVisibility.js.map +1 -1
- package/dist/core/LogWriter.d.ts +42 -0
- package/dist/core/LogWriter.d.ts.map +1 -0
- package/dist/core/LogWriter.js +136 -0
- package/dist/core/LogWriter.js.map +1 -0
- package/dist/core/LoopDriver.d.ts +46 -0
- package/dist/core/LoopDriver.d.ts.map +1 -0
- package/dist/core/LoopDriver.js +263 -0
- package/dist/core/LoopDriver.js.map +1 -0
- package/dist/core/LoopLifecycle.d.ts +2 -1
- package/dist/core/LoopLifecycle.d.ts.map +1 -1
- package/dist/core/MembershipMaterialization.d.ts +7 -0
- package/dist/core/MembershipMaterialization.d.ts.map +1 -0
- package/dist/core/MembershipMaterialization.js +283 -0
- package/dist/core/MembershipMaterialization.js.map +1 -0
- package/dist/core/MutationEffects.d.ts +29 -0
- package/dist/core/MutationEffects.d.ts.map +1 -0
- package/dist/core/MutationEffects.js +318 -0
- package/dist/core/MutationEffects.js.map +1 -0
- package/dist/core/OverflowTurn.d.ts +4 -4
- package/dist/core/OverflowTurn.d.ts.map +1 -1
- package/dist/core/OverflowTurn.js +6 -7
- package/dist/core/OverflowTurn.js.map +1 -1
- package/dist/core/PacketBuilder.d.ts.map +1 -1
- package/dist/core/PacketBuilder.js +31 -9
- package/dist/core/PacketBuilder.js.map +1 -1
- package/dist/core/ResourceMutations.d.ts +12 -36
- package/dist/core/ResourceMutations.d.ts.map +1 -1
- package/dist/core/ResourceMutations.js +27 -1351
- package/dist/core/ResourceMutations.js.map +1 -1
- package/dist/core/ResourceSelector.d.ts +21 -0
- package/dist/core/ResourceSelector.d.ts.map +1 -0
- package/dist/core/ResourceSelector.js +233 -0
- package/dist/core/ResourceSelector.js.map +1 -0
- package/dist/core/ResourceTransfers.d.ts +55 -0
- package/dist/core/ResourceTransfers.d.ts.map +1 -0
- package/dist/core/ResourceTransfers.js +525 -0
- package/dist/core/ResourceTransfers.js.map +1 -0
- package/dist/core/SchemeRegistry.js +2 -2
- package/dist/core/SchemeRegistry.js.map +1 -1
- package/dist/core/SendBroadcastHandler.d.ts +40 -0
- package/dist/core/SendBroadcastHandler.d.ts.map +1 -0
- package/dist/core/SendBroadcastHandler.js +159 -0
- package/dist/core/SendBroadcastHandler.js.map +1 -0
- package/dist/core/StoredPacket.d.ts +11 -0
- package/dist/core/StoredPacket.d.ts.map +1 -1
- package/dist/core/StoredPacket.js +22 -1
- package/dist/core/StoredPacket.js.map +1 -1
- package/dist/core/StrikeRail.d.ts.map +1 -1
- package/dist/core/StrikeRail.js +19 -9
- package/dist/core/StrikeRail.js.map +1 -1
- package/dist/core/TokenCalibration.d.ts +16 -0
- package/dist/core/TokenCalibration.d.ts.map +1 -0
- package/dist/core/TokenCalibration.js +35 -0
- package/dist/core/TokenCalibration.js.map +1 -0
- package/dist/core/ToolResources.d.ts.map +1 -1
- package/dist/core/ToolResources.js +15 -12
- package/dist/core/ToolResources.js.map +1 -1
- package/dist/core/TurnMaterialization.d.ts +37 -0
- package/dist/core/TurnMaterialization.d.ts.map +1 -0
- package/dist/core/TurnMaterialization.js +296 -0
- package/dist/core/TurnMaterialization.js.map +1 -0
- package/dist/core/TurnOps.d.ts.map +1 -1
- package/dist/core/TurnOps.js +6 -8
- package/dist/core/TurnOps.js.map +1 -1
- package/dist/core/TurnRunner.d.ts +15 -27
- package/dist/core/TurnRunner.d.ts.map +1 -1
- package/dist/core/TurnRunner.js +76 -670
- package/dist/core/TurnRunner.js.map +1 -1
- package/dist/core/WorkerControlHandler.d.ts +15 -0
- package/dist/core/WorkerControlHandler.d.ts.map +1 -0
- package/dist/core/WorkerControlHandler.js +89 -0
- package/dist/core/WorkerControlHandler.js.map +1 -0
- package/dist/core/attachments.d.ts +14 -0
- package/dist/core/attachments.d.ts.map +1 -0
- package/dist/core/attachments.js +18 -0
- package/dist/core/attachments.js.map +1 -0
- package/dist/core/fork.d.ts.map +1 -1
- package/dist/core/fork.js +0 -4
- package/dist/core/fork.js.map +1 -1
- package/dist/core/fork.sql +5 -16
- package/dist/core/git-membership.d.ts +15 -0
- package/dist/core/git-membership.d.ts.map +1 -1
- package/dist/core/git-membership.js +4 -273
- package/dist/core/git-membership.js.map +1 -1
- package/dist/core/git-state.d.ts +2 -1
- package/dist/core/git-state.d.ts.map +1 -1
- package/dist/core/mutation-types.d.ts +102 -0
- package/dist/core/mutation-types.d.ts.map +1 -0
- package/dist/core/mutation-types.js +2 -0
- package/dist/core/mutation-types.js.map +1 -0
- package/dist/core/operation-target-groups.js +1 -1
- package/dist/core/operation-target-groups.js.map +1 -1
- package/dist/core/packet-wire.d.ts +7 -6
- package/dist/core/packet-wire.d.ts.map +1 -1
- package/dist/core/packet-wire.js +96 -68
- package/dist/core/packet-wire.js.map +1 -1
- package/dist/core/plurnk-uri.d.ts +0 -1
- package/dist/core/plurnk-uri.d.ts.map +1 -1
- package/dist/core/plurnk-uri.js +1 -1
- package/dist/core/plurnk-uri.js.map +1 -1
- package/dist/core/statement-primary.d.ts +4 -0
- package/dist/core/statement-primary.d.ts.map +1 -0
- package/dist/core/statement-primary.js +3 -0
- package/dist/core/statement-primary.js.map +1 -0
- package/dist/core/teaching-corpus.d.ts +0 -1
- package/dist/core/teaching-corpus.d.ts.map +1 -1
- package/dist/core/teaching-corpus.js +0 -9
- package/dist/core/teaching-corpus.js.map +1 -1
- package/dist/core/turn-scheduler.js +3 -3
- package/dist/core/turn-scheduler.js.map +1 -1
- package/dist/core/turn-signals.d.ts +15 -0
- package/dist/core/turn-signals.d.ts.map +1 -0
- package/dist/core/turn-signals.js +19 -0
- package/dist/core/turn-signals.js.map +1 -0
- package/dist/core/worker-settings.d.ts +0 -1
- package/dist/core/worker-settings.d.ts.map +1 -1
- package/dist/core/worker-settings.js +1 -1
- package/dist/core/worker-settings.js.map +1 -1
- package/dist/digest/Digest.d.ts +3 -16
- package/dist/digest/Digest.d.ts.map +1 -1
- package/dist/digest/Digest.js +10 -958
- package/dist/digest/Digest.js.map +1 -1
- package/dist/digest/DigestRender.d.ts +12 -0
- package/dist/digest/DigestRender.d.ts.map +1 -0
- package/dist/digest/DigestRender.js +641 -0
- package/dist/digest/DigestRender.js.map +1 -0
- package/dist/digest/DigestRequiem.d.ts +13 -0
- package/dist/digest/DigestRequiem.d.ts.map +1 -0
- package/dist/digest/DigestRequiem.js +332 -0
- package/dist/digest/DigestRequiem.js.map +1 -0
- package/dist/digest/digest-rows.d.ts +303 -0
- package/dist/digest/digest-rows.d.ts.map +1 -0
- package/dist/digest/digest-rows.js +2 -0
- package/dist/digest/digest-rows.js.map +1 -0
- package/dist/digest/digest.sql +1 -7
- package/dist/observe/api.d.ts +0 -2
- package/dist/observe/api.d.ts.map +1 -1
- package/dist/observe/api.js +2 -2
- package/dist/observe/api.js.map +1 -1
- package/dist/observe/metrics.d.ts +0 -1
- package/dist/observe/metrics.d.ts.map +1 -1
- package/dist/observe/metrics.js +0 -1
- package/dist/observe/metrics.js.map +1 -1
- package/dist/schemes/Exec.d.ts +4 -1
- package/dist/schemes/Exec.d.ts.map +1 -1
- package/dist/schemes/Exec.js +89 -48
- package/dist/schemes/Exec.js.map +1 -1
- package/dist/schemes/ExecOutputScheme.d.ts +2 -1
- package/dist/schemes/ExecOutputScheme.d.ts.map +1 -1
- package/dist/schemes/ExecOutputScheme.js +3 -3
- package/dist/schemes/ExecOutputScheme.js.map +1 -1
- package/dist/schemes/File.d.ts +4 -1
- package/dist/schemes/File.d.ts.map +1 -1
- package/dist/schemes/File.js +100 -13
- package/dist/schemes/File.js.map +1 -1
- package/dist/schemes/Log.d.ts +4 -5
- package/dist/schemes/Log.d.ts.map +1 -1
- package/dist/schemes/Log.js +26 -118
- package/dist/schemes/Log.js.map +1 -1
- package/dist/schemes/Log.sql +1 -66
- package/dist/schemes/Prompt.js +1 -1
- package/dist/schemes/Prompt.js.map +1 -1
- package/dist/schemes/Worker.d.ts.map +1 -1
- package/dist/schemes/Worker.js +1 -13
- package/dist/schemes/Worker.js.map +1 -1
- package/dist/schemes/_entry-crud.d.ts +3 -1
- package/dist/schemes/_entry-crud.d.ts.map +1 -1
- package/dist/schemes/_entry-crud.js +18 -3
- package/dist/schemes/_entry-crud.js.map +1 -1
- package/dist/schemes/_entry-find.d.ts +4 -2
- package/dist/schemes/_entry-find.d.ts.map +1 -1
- package/dist/schemes/_entry-find.js +79 -10
- package/dist/schemes/_entry-find.js.map +1 -1
- package/dist/schemes/_entry-manifest.d.ts +1 -2
- package/dist/schemes/_entry-manifest.d.ts.map +1 -1
- package/dist/schemes/_entry-ops.d.ts +2 -1
- package/dist/schemes/_entry-ops.d.ts.map +1 -1
- package/dist/schemes/_entry-ops.js +20 -2
- package/dist/schemes/_entry-ops.js.map +1 -1
- package/dist/schemes/_entry-semantic.d.ts +1 -0
- package/dist/schemes/_entry-semantic.d.ts.map +1 -1
- package/dist/schemes/_entry-semantic.js +3 -0
- package/dist/schemes/_entry-semantic.js.map +1 -1
- package/dist/schemes/_entry-semantic.sql +2 -2
- package/dist/schemes/_entry-send.d.ts +0 -1
- package/dist/schemes/_entry-send.d.ts.map +1 -1
- package/dist/schemes/_entry-send.js +5 -80
- package/dist/schemes/_entry-send.js.map +1 -1
- package/dist/schemes/exec-runtime.d.ts +7 -0
- package/dist/schemes/exec-runtime.d.ts.map +1 -0
- package/dist/schemes/exec-runtime.js +2 -0
- package/dist/schemes/exec-runtime.js.map +1 -0
- package/dist/server/ClientReads.d.ts +34 -0
- package/dist/server/ClientReads.d.ts.map +1 -0
- package/dist/server/ClientReads.js +210 -0
- package/dist/server/ClientReads.js.map +1 -0
- package/dist/server/Daemon.d.ts +12 -22
- package/dist/server/Daemon.d.ts.map +1 -1
- package/dist/server/Daemon.js +31 -362
- package/dist/server/Daemon.js.map +1 -1
- package/dist/server/DaemonModule.d.ts +6 -5
- package/dist/server/DaemonModule.d.ts.map +1 -1
- package/dist/server/DrainSupervisor.d.ts +3 -2
- package/dist/server/DrainSupervisor.d.ts.map +1 -1
- package/dist/server/DrainSupervisor.js +7 -3
- package/dist/server/DrainSupervisor.js.map +1 -1
- package/dist/server/Functionality.d.ts +0 -12
- package/dist/server/Functionality.d.ts.map +1 -1
- package/dist/server/Functionality.js.map +1 -1
- package/dist/server/FunctionalityManager.d.ts +0 -1
- package/dist/server/FunctionalityManager.d.ts.map +1 -1
- package/dist/server/FunctionalityManager.js +3 -3
- package/dist/server/FunctionalityManager.js.map +1 -1
- package/dist/server/MembersFunctionality.d.ts +2 -13
- package/dist/server/MembersFunctionality.d.ts.map +1 -1
- package/dist/server/MembersFunctionality.js +4 -4
- package/dist/server/MembersFunctionality.js.map +1 -1
- package/dist/server/SkillsFunctionality.d.ts +1 -7
- package/dist/server/SkillsFunctionality.d.ts.map +1 -1
- package/dist/server/SkillsFunctionality.js +3 -3
- package/dist/server/SkillsFunctionality.js.map +1 -1
- package/dist/server/WorkerModelResolver.d.ts +17 -0
- package/dist/server/WorkerModelResolver.d.ts.map +1 -0
- package/dist/server/WorkerModelResolver.js +166 -0
- package/dist/server/WorkerModelResolver.js.map +1 -0
- package/dist/server/daemon-results.d.ts +5 -0
- package/dist/server/daemon-results.d.ts.map +1 -0
- package/dist/server/daemon-results.js +7 -0
- package/dist/server/daemon-results.js.map +1 -0
- package/dist/server/dispatch-as-plurnk.d.ts.map +1 -1
- package/dist/server/dispatch-as-plurnk.js +4 -6
- package/dist/server/dispatch-as-plurnk.js.map +1 -1
- package/dist/server/logEntry.d.ts +0 -1
- package/dist/server/logEntry.d.ts.map +1 -1
- package/dist/server/logEntry.js +1 -13
- package/dist/server/logEntry.js.map +1 -1
- package/dist/server/logEntry.sql +1 -5
- package/dist/server/loopDocs.d.ts.map +1 -1
- package/dist/server/loopDocs.js +11 -2
- package/dist/server/loopDocs.js.map +1 -1
- package/migrations/001_schema.sql +30 -347
- package/package.json +30 -30
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
// Executing an admitted turn: its ordered statements dispatched, problems and notices recorded, the bare batch when no provider spoke. Split out of TurnRunner, which keeps the delegating entry point.
|
|
2
|
+
import { PlurnkParser } from "@plurnk/plurnk-contracts";
|
|
3
|
+
import Results, { OperationFailureError } from "./results.js";
|
|
4
|
+
import Turn from "./Turn.js";
|
|
5
|
+
import StrikeRail from "./StrikeRail.js";
|
|
6
|
+
import { observed } from "../observe/spans.js";
|
|
7
|
+
import { OPS_DISPATCHED, recordCounter } from "../observe/metrics.js";
|
|
8
|
+
import { scheduleTurnOps } from "./turn-scheduler.js";
|
|
9
|
+
import { expandSafeUriTargetGroup } from "./operation-target-groups.js";
|
|
10
|
+
import { readOptimisticSettlementMs } from "./optimistic-settlement.js";
|
|
11
|
+
import { ENGINE_PROBLEMS, TERMINAL_SEND_SIGNALS, TURN_STATUS_IMPLICIT_CONTINUE } from "./turn-signals.js";
|
|
12
|
+
export default class AdmittedTurnExecutor {
|
|
13
|
+
#db;
|
|
14
|
+
#schemes;
|
|
15
|
+
#notices;
|
|
16
|
+
#problems;
|
|
17
|
+
#dispatcher;
|
|
18
|
+
#bareBatch;
|
|
19
|
+
constructor({ db, schemes, notices, problems, dispatcher, bareBatch }) {
|
|
20
|
+
this.#db = db;
|
|
21
|
+
this.#schemes = schemes;
|
|
22
|
+
this.#notices = notices;
|
|
23
|
+
this.#problems = problems;
|
|
24
|
+
this.#dispatcher = dispatcher;
|
|
25
|
+
this.#bareBatch = bareBatch;
|
|
26
|
+
}
|
|
27
|
+
// {§turn-ops-admission-path} — source acquisition ends before this seam.
|
|
28
|
+
// Every admitted producer program is scheduled, dispatched, recorded, and
|
|
29
|
+
// completed here; inference is only the model-specific way one program is
|
|
30
|
+
// acquired and supplied with BARE capability.
|
|
31
|
+
async executeAdmittedTurn({ statements, source, sourceFolded, sourceModelCallId = null, sourceReasoningItems, origin, workspaceId, workerId, loopId, turnId, fromSequence, maxCommands = Number.POSITIVE_INFINITY, enforceIdle = false, failOnOperationError = false, recoverableParseErrors = [], bare, signal, onDispatch, onSettled, }) {
|
|
32
|
+
// {§turn-shape} — PLAN is a SHOULD; the terminal SEND is the one structural requirement.
|
|
33
|
+
const finalOp = statements.at(-1);
|
|
34
|
+
if (finalOp?.op !== "SEND") {
|
|
35
|
+
throw new Error("an admitted operation batch must end in a disposition SEND");
|
|
36
|
+
}
|
|
37
|
+
const dispositionSignal = finalOp.status;
|
|
38
|
+
if (dispositionSignal === null || !TERMINAL_SEND_SIGNALS.has(dispositionSignal)) {
|
|
39
|
+
throw new Error("an admitted turnOps program must end in a terminal disposition SEND");
|
|
40
|
+
}
|
|
41
|
+
let sendOp = finalOp;
|
|
42
|
+
let turnStatus = dispositionSignal;
|
|
43
|
+
let steerStruck = false;
|
|
44
|
+
const pendingEngineErrors = [];
|
|
45
|
+
const middleCount = statements.filter((statement) => statement.op !== "PLAN" && statement.op !== "SEND").length
|
|
46
|
+
+ recoverableParseErrors.length;
|
|
47
|
+
if (enforceIdle && turnStatus === TURN_STATUS_IMPLICIT_CONTINUE && middleCount === 0) {
|
|
48
|
+
// {§send-idle-turn} — an empty (NEXT) while the worker holds a live stream or child is a
|
|
49
|
+
// mis-spelled wait, not idleness: it parks as (WAIT) and no strike (#441). The correction
|
|
50
|
+
// rides the SEND row's annotation — a park drops transient notices, the row survives the
|
|
51
|
+
// wake. With nothing in flight the idle-turn 409 stands.
|
|
52
|
+
if (await this.#dispatcher.hasLiveWork(workerId)) {
|
|
53
|
+
const note = "an empty NEXT while a stream or child is in flight waits like WAIT - say WAIT to wait on it";
|
|
54
|
+
sendOp = { ...finalOp, status: 202, annotation: finalOp.annotation === null ? note : `${finalOp.annotation} · ${note}` };
|
|
55
|
+
turnStatus = 202;
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
steerStruck = true;
|
|
59
|
+
pendingEngineErrors.push("idle_turn");
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
const turnStatements = sendOp === finalOp ? statements : statements.map((statement) => statement === finalOp ? sendOp : statement);
|
|
63
|
+
let realCommands = 0;
|
|
64
|
+
const admitted = turnStatements.filter((statement) => statement.op === "PLAN"
|
|
65
|
+
|| statement === sendOp
|
|
66
|
+
|| realCommands++ < maxCommands);
|
|
67
|
+
const scheduled = scheduleTurnOps(admitted.flatMap(expandSafeUriTargetGroup));
|
|
68
|
+
await this.#dispatcher.prepareEditBatches(scheduled, { workspaceId, workerId, loopId, turnId, origin, onDispatch, onSettled });
|
|
69
|
+
const droppedCount = statements.length - admitted.length;
|
|
70
|
+
const bareStatements = scheduled.filter((statement) => statement.op === "BARE");
|
|
71
|
+
let bareResults = null;
|
|
72
|
+
const outcomes = [];
|
|
73
|
+
let rowSequence = fromSequence;
|
|
74
|
+
let parseErrorsRecorded = false;
|
|
75
|
+
const recordRecoverableParseErrors = async () => {
|
|
76
|
+
if (parseErrorsRecorded)
|
|
77
|
+
return;
|
|
78
|
+
parseErrorsRecorded = true;
|
|
79
|
+
for (const error of recoverableParseErrors) {
|
|
80
|
+
const envelopeDefault = error.message === PlurnkParser.MISSING_SEND;
|
|
81
|
+
const recorded = await this.#problems.record({
|
|
82
|
+
workerId,
|
|
83
|
+
loopId,
|
|
84
|
+
turnId,
|
|
85
|
+
sequence: rowSequence++,
|
|
86
|
+
origin,
|
|
87
|
+
source: "grammar",
|
|
88
|
+
result: Results.failure("grammar:parser", "invalid-operation-syntax", 400, error.message, {}, {
|
|
89
|
+
line: error.line,
|
|
90
|
+
column: error.column,
|
|
91
|
+
source: error.source,
|
|
92
|
+
stage: "parse",
|
|
93
|
+
...(envelopeDefault ? {} : { siblingsRetained: true }),
|
|
94
|
+
retryable: false,
|
|
95
|
+
}),
|
|
96
|
+
});
|
|
97
|
+
outcomes.push({ op: null, status: recorded.result.status, problemType: recorded.result.problem?.type ?? null });
|
|
98
|
+
onDispatch?.(recorded.id);
|
|
99
|
+
await onSettled?.(recorded.id);
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
for (const statement of scheduled) {
|
|
103
|
+
if (statement === sendOp) {
|
|
104
|
+
await recordRecoverableParseErrors();
|
|
105
|
+
const execHandler = this.#schemes.get("exec");
|
|
106
|
+
await execHandler?.settleTurnSpawns?.(workerId, turnId, readOptimisticSettlementMs(), signal);
|
|
107
|
+
}
|
|
108
|
+
const result = await observed("op.dispatch", { op: statement.op }, async (span) => {
|
|
109
|
+
let dispatchResult;
|
|
110
|
+
if (statement.op === "BARE") {
|
|
111
|
+
if (bare === undefined) {
|
|
112
|
+
throw new Error(`${origin} turnOps cannot execute BARE without provider acquisition context`);
|
|
113
|
+
}
|
|
114
|
+
if (bareResults === null) {
|
|
115
|
+
const batch = await this.#bareBatch.runBareBatch({
|
|
116
|
+
statements: bareStatements,
|
|
117
|
+
provider: bare.provider,
|
|
118
|
+
turnId,
|
|
119
|
+
workspaceId,
|
|
120
|
+
workerId,
|
|
121
|
+
primaryWorkerId: bare.primaryWorkerId,
|
|
122
|
+
loopSequence: bare.loopSequence,
|
|
123
|
+
turnSequence: bare.turnSequence,
|
|
124
|
+
signal: bare.signal,
|
|
125
|
+
});
|
|
126
|
+
bareResults = new Map(batch.map((item) => [item.statement, item]));
|
|
127
|
+
}
|
|
128
|
+
const bareResult = bareResults.get(statement);
|
|
129
|
+
if (bareResult === undefined) {
|
|
130
|
+
throw new Error("BARE statement reached dispatch without its batch result");
|
|
131
|
+
}
|
|
132
|
+
dispatchResult = await this.#dispatcher.recordBareResult({
|
|
133
|
+
statement,
|
|
134
|
+
workspaceId,
|
|
135
|
+
workerId,
|
|
136
|
+
loopId,
|
|
137
|
+
turnId,
|
|
138
|
+
sequence: rowSequence,
|
|
139
|
+
origin,
|
|
140
|
+
onDispatch,
|
|
141
|
+
onSettled,
|
|
142
|
+
}, bareResult.result, bareResult.modelCallId);
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
dispatchResult = await this.#dispatcher.dispatch({
|
|
146
|
+
statement,
|
|
147
|
+
workspaceId,
|
|
148
|
+
workerId,
|
|
149
|
+
loopId,
|
|
150
|
+
turnId,
|
|
151
|
+
sequence: rowSequence,
|
|
152
|
+
origin,
|
|
153
|
+
onDispatch,
|
|
154
|
+
onSettled,
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
span.setAttribute("status", dispatchResult.status);
|
|
158
|
+
recordCounter(OPS_DISPATCHED, { op: statement.op, status: dispatchResult.status });
|
|
159
|
+
return dispatchResult;
|
|
160
|
+
});
|
|
161
|
+
outcomes.push({ op: statement.op, status: result.status, problemType: result.problem?.type ?? null });
|
|
162
|
+
if (failOnOperationError && result.status >= 400)
|
|
163
|
+
throw new OperationFailureError(result);
|
|
164
|
+
for (const normalization of result.scopeNormalizations ?? []) {
|
|
165
|
+
this.#notices.push(workspaceId, workerId, loopId, {
|
|
166
|
+
source: "engine:slicer",
|
|
167
|
+
kind: "scope_normalized",
|
|
168
|
+
level: "warn",
|
|
169
|
+
message: `Scope <${normalization.requested.join(",")}> was normalized to <${normalization.canonical.join(",")}>.`,
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
// {§edit-batch-merges} — every applied resolution is also a notice, so the row's
|
|
173
|
+
// `merged` fact is never the only place it is said.
|
|
174
|
+
for (const merge of result.merged ?? []) {
|
|
175
|
+
this.#notices.push(workspaceId, workerId, loopId, {
|
|
176
|
+
source: "engine:slicer",
|
|
177
|
+
kind: "edit_merged",
|
|
178
|
+
level: "warn",
|
|
179
|
+
message: `EDIT resolution applied: ${merge.rule} - the row's merged fact has the coordinates; verify before building on it.`,
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
if (statement === sendOp && result.status === 409) {
|
|
183
|
+
steerStruck = true;
|
|
184
|
+
turnStatus = TURN_STATUS_IMPLICIT_CONTINUE;
|
|
185
|
+
}
|
|
186
|
+
if (statement === sendOp
|
|
187
|
+
&& result.status !== 409
|
|
188
|
+
&& sendOp.target === null
|
|
189
|
+
&& sendOp.status === 202
|
|
190
|
+
&& result.status !== 202) {
|
|
191
|
+
turnStatus = result.status;
|
|
192
|
+
}
|
|
193
|
+
rowSequence += result.rowsWritten ?? 1;
|
|
194
|
+
}
|
|
195
|
+
await recordRecoverableParseErrors();
|
|
196
|
+
if (droppedCount > 0)
|
|
197
|
+
pendingEngineErrors.push("max_commands_exceeded");
|
|
198
|
+
for (const kind of pendingEngineErrors) {
|
|
199
|
+
const problem = ENGINE_PROBLEMS[kind];
|
|
200
|
+
const extensions = kind === "max_commands_exceeded"
|
|
201
|
+
? {
|
|
202
|
+
operationLimit: maxCommands,
|
|
203
|
+
omittedOperations: droppedCount,
|
|
204
|
+
stage: "dispatch-admission",
|
|
205
|
+
recovery: "Continue with no more than the configured operation limit.",
|
|
206
|
+
retryable: false,
|
|
207
|
+
}
|
|
208
|
+
: {
|
|
209
|
+
stage: "turn",
|
|
210
|
+
recovery: "Perform an operation before continuing with `### SEND0 (NEXT)`.",
|
|
211
|
+
retryable: false,
|
|
212
|
+
};
|
|
213
|
+
await this.#problems.record({
|
|
214
|
+
workerId,
|
|
215
|
+
loopId,
|
|
216
|
+
turnId,
|
|
217
|
+
sequence: rowSequence++,
|
|
218
|
+
origin: "_plurnk",
|
|
219
|
+
source: "rail",
|
|
220
|
+
result: Results.failure("engine:rail", problem.code, problem.status, problem.detail, {}, extensions),
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
if (source !== null) {
|
|
224
|
+
await this.#dispatcher.writeTurnOps({
|
|
225
|
+
verbatim: source,
|
|
226
|
+
workerId,
|
|
227
|
+
loopId,
|
|
228
|
+
turnId,
|
|
229
|
+
sequence: rowSequence,
|
|
230
|
+
origin,
|
|
231
|
+
folded: sourceFolded,
|
|
232
|
+
modelCallId: sourceModelCallId,
|
|
233
|
+
...(sourceReasoningItems !== undefined ? { reasoningItems: sourceReasoningItems } : {}),
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
await Turn.complete(this.#db, turnId, turnStatus);
|
|
237
|
+
return {
|
|
238
|
+
status: turnStatus,
|
|
239
|
+
outcomes,
|
|
240
|
+
fingerprint: StrikeRail.fingerprintTurn(statements),
|
|
241
|
+
steerStruck,
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
//# sourceMappingURL=AdmittedTurnExecutor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdmittedTurnExecutor.js","sourceRoot":"","sources":["../../src/core/AdmittedTurnExecutor.ts"],"names":[],"mappings":"AAAA,wMAAwM;AACxM,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAKxD,OAAO,OAAO,EAAE,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,UAAkC,MAAM,iBAAiB,CAAC;AAGjE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAGxE,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAG1G,MAAM,CAAC,OAAO,OAAO,oBAAoB;IAC5B,GAAG,CAAK;IACR,QAAQ,CAAiB;IACzB,QAAQ,CAAgB;IACxB,SAAS,CAAa;IACtB,WAAW,CAAa;IACxB,UAAU,CAAkB;IAErC,YAAY,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAOlE;QACG,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAChC,CAAC;IAED,yEAAyE;IACzE,0EAA0E;IAC1E,0EAA0E;IAC1E,8CAA8C;IAC9C,KAAK,CAAC,mBAAmB,CAAC,EACtB,UAAU,EACV,MAAM,EACN,YAAY,EACZ,iBAAiB,GAAG,IAAI,EACxB,oBAAoB,EACpB,MAAM,EACN,WAAW,EACX,QAAQ,EACR,MAAM,EACN,MAAM,EACN,YAAY,EACZ,WAAW,GAAG,MAAM,CAAC,iBAAiB,EACtC,WAAW,GAAG,KAAK,EACnB,oBAAoB,GAAG,KAAK,EAC5B,sBAAsB,GAAG,EAAE,EAC3B,IAAI,EACJ,MAAM,EACN,UAAU,EACV,SAAS,GAqBZ;QACG,yFAAyF;QACzF,MAAM,OAAO,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,OAAO,EAAE,EAAE,KAAK,MAAM,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAClF,CAAC;QACD,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;QACzC,IAAI,iBAAiB,KAAK,IAAI,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC9E,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;QAC3F,CAAC;QACD,IAAI,MAAM,GAAG,OAAO,CAAC;QACrB,IAAI,UAAU,GAAW,iBAAiB,CAAC;QAC3C,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,MAAM,mBAAmB,GAAwB,EAAE,CAAC;QACpD,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,MAAM,IAAI,SAAS,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC,MAAM;cACzG,sBAAsB,CAAC,MAAM,CAAC;QACpC,IAAI,WAAW,IAAI,UAAU,KAAK,6BAA6B,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;YACnF,yFAAyF;YACzF,0FAA0F;YAC1F,yFAAyF;YACzF,yDAAyD;YACzD,IAAI,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC/C,MAAM,IAAI,GAAG,6FAA6F,CAAC;gBAC3G,MAAM,GAAG,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,MAAM,IAAI,EAAE,EAAE,CAAC;gBACzH,UAAU,GAAG,GAAG,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACJ,WAAW,GAAG,IAAI,CAAC;gBACnB,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1C,CAAC;QACL,CAAC;QACD,MAAM,cAAc,GAAG,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAEnI,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,MAAM;eACtE,SAAS,KAAK,MAAM;eACpB,YAAY,EAAE,GAAG,WAAW,CAAC,CAAC;QACrC,MAAM,SAAS,GAAG,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAC9E,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,CACrC,SAAS,EACT,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,CAC3E,CAAC;QACF,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QACzD,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,CACnC,CAAC,SAAS,EAA8B,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,MAAM,CACrE,CAAC;QACF,IAAI,WAAW,GAAuD,IAAI,CAAC;QAC3E,MAAM,QAAQ,GAAoB,EAAE,CAAC;QACrC,IAAI,WAAW,GAAG,YAAY,CAAC;QAC/B,IAAI,mBAAmB,GAAG,KAAK,CAAC;QAChC,MAAM,4BAA4B,GAAG,KAAK,IAAmB,EAAE;YAC3D,IAAI,mBAAmB;gBAAE,OAAO;YAChC,mBAAmB,GAAG,IAAI,CAAC;YAC3B,KAAK,MAAM,KAAK,IAAI,sBAAsB,EAAE,CAAC;gBACzC,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,KAAK,YAAY,CAAC,YAAY,CAAC;gBACpE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;oBACzC,QAAQ;oBACR,MAAM;oBACN,MAAM;oBACN,QAAQ,EAAE,WAAW,EAAE;oBACvB,MAAM;oBACN,MAAM,EAAE,SAAS;oBACjB,MAAM,EAAE,OAAO,CAAC,OAAO,CACnB,gBAAgB,EAChB,0BAA0B,EAC1B,GAAG,EACH,KAAK,CAAC,OAAO,EACb,EAAE,EACF;wBACI,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,MAAM,EAAE,KAAK,CAAC,MAAM;wBACpB,MAAM,EAAE,KAAK,CAAC,MAAM;wBACpB,KAAK,EAAE,OAAO;wBACd,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;wBACtD,SAAS,EAAE,KAAK;qBACnB,CACJ;iBACJ,CAAC,CAAC;gBACH,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;gBAChH,UAAU,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC1B,MAAM,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACnC,CAAC;QACL,CAAC,CAAC;QAEF,KAAK,MAAM,SAAS,IAAI,SAAS,EAAE,CAAC;YAChC,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;gBACvB,MAAM,4BAA4B,EAAE,CAAC;gBACrC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAO/B,CAAC;gBACd,MAAM,WAAW,EAAE,gBAAgB,EAAE,CACjC,QAAQ,EACR,MAAM,EACN,0BAA0B,EAAE,EAC5B,MAAM,CACT,CAAC;YACN,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,QAAQ,CACzB,aAAa,EACb,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,EACpB,KAAK,EAAE,IAAI,EAAE,EAAE;gBACX,IAAI,cAA8B,CAAC;gBACnC,IAAI,SAAS,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;oBAC1B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;wBACrB,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,mEAAmE,CAAC,CAAC;oBAClG,CAAC;oBACD,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;wBACvB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;4BAC7C,UAAU,EAAE,cAAc;4BAC1B,QAAQ,EAAE,IAAI,CAAC,QAAQ;4BACvB,MAAM;4BACN,WAAW;4BACX,QAAQ;4BACR,eAAe,EAAE,IAAI,CAAC,eAAe;4BACrC,YAAY,EAAE,IAAI,CAAC,YAAY;4BAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;4BAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;yBACtB,CAAC,CAAC;wBACH,WAAW,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;oBACvE,CAAC;oBACD,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAC9C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;wBAC3B,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;oBAChF,CAAC;oBACD,cAAc,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC;wBACrD,SAAS;wBACT,WAAW;wBACX,QAAQ;wBACR,MAAM;wBACN,MAAM;wBACN,QAAQ,EAAE,WAAW;wBACrB,MAAM;wBACN,UAAU;wBACV,SAAS;qBACZ,EAAE,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;gBAClD,CAAC;qBAAM,CAAC;oBACJ,cAAc,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;wBAC7C,SAAS;wBACT,WAAW;wBACX,QAAQ;wBACR,MAAM;wBACN,MAAM;wBACN,QAAQ,EAAE,WAAW;wBACrB,MAAM;wBACN,UAAU;wBACV,SAAS;qBACZ,CAAC,CAAC;gBACP,CAAC;gBACD,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;gBACnD,aAAa,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;gBACnF,OAAO,cAAc,CAAC;YAC1B,CAAC,CACJ,CAAC;YACF,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;YACtG,IAAI,oBAAoB,IAAI,MAAM,CAAC,MAAM,IAAI,GAAG;gBAAE,MAAM,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC;YAC1F,KAAK,MAAM,aAAa,IAAI,MAAM,CAAC,mBAAmB,IAAI,EAAE,EAAE,CAAC;gBAC3D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE;oBAC9C,MAAM,EAAE,eAAe;oBACvB,IAAI,EAAE,kBAAkB;oBACxB,KAAK,EAAE,MAAM;oBACb,OAAO,EAAE,UAAU,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,wBAAwB,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI;iBACpH,CAAC,CAAC;YACP,CAAC;YACD,iFAAiF;YACjF,oDAAoD;YACpD,KAAK,MAAM,KAAK,IAAK,MAAmD,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;gBACpF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE;oBAC9C,MAAM,EAAE,eAAe;oBACvB,IAAI,EAAE,aAAa;oBACnB,KAAK,EAAE,MAAM;oBACb,OAAO,EAAE,4BAA4B,KAAK,CAAC,IAAI,6EAA6E;iBAC/H,CAAC,CAAC;YACP,CAAC;YACD,IAAI,SAAS,KAAK,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAChD,WAAW,GAAG,IAAI,CAAC;gBACnB,UAAU,GAAG,6BAA6B,CAAC;YAC/C,CAAC;YACD,IACI,SAAS,KAAK,MAAM;mBACjB,MAAM,CAAC,MAAM,KAAK,GAAG;mBACrB,MAAM,CAAC,MAAM,KAAK,IAAI;mBACtB,MAAM,CAAC,MAAM,KAAK,GAAG;mBACrB,MAAM,CAAC,MAAM,KAAK,GAAG,EAC1B,CAAC;gBACC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;YAC/B,CAAC;YACD,WAAW,IAAK,MAAM,CAAC,WAAkC,IAAI,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,4BAA4B,EAAE,CAAC;QACrC,IAAI,YAAY,GAAG,CAAC;YAAE,mBAAmB,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACxE,KAAK,MAAM,IAAI,IAAI,mBAAmB,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,UAAU,GAAG,IAAI,KAAK,uBAAuB;gBAC/C,CAAC,CAAC;oBACE,cAAc,EAAE,WAAW;oBAC3B,iBAAiB,EAAE,YAAY;oBAC/B,KAAK,EAAE,oBAAoB;oBAC3B,QAAQ,EAAE,4DAA4D;oBACtE,SAAS,EAAE,KAAK;iBACnB;gBACD,CAAC,CAAC;oBACE,KAAK,EAAE,MAAM;oBACb,QAAQ,EAAE,iEAAiE;oBAC3E,SAAS,EAAE,KAAK;iBACnB,CAAC;YACN,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;gBACxB,QAAQ;gBACR,MAAM;gBACN,MAAM;gBACN,QAAQ,EAAE,WAAW,EAAE;gBACvB,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,OAAO,CAAC,OAAO,CACnB,aAAa,EACb,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,MAAM,EACd,EAAE,EACF,UAAU,CACb;aACJ,CAAC,CAAC;QACP,CAAC;QACD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YAClB,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;gBAChC,QAAQ,EAAE,MAAM;gBAChB,QAAQ;gBACR,MAAM;gBACN,MAAM;gBACN,QAAQ,EAAE,WAAW;gBACrB,MAAM;gBACN,MAAM,EAAE,YAAY;gBACpB,WAAW,EAAE,iBAAiB;gBAC9B,GAAG,CAAC,oBAAoB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1F,CAAC,CAAC;QACP,CAAC;QACD,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAClD,OAAO;YACH,MAAM,EAAE,UAAU;YAClB,QAAQ;YACR,WAAW,EAAE,UAAU,CAAC,eAAe,CAAC,UAAU,CAAC;YACnD,WAAW;SACd,CAAC;IACN,CAAC;CAGJ"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { BareStatement } from "@plurnk/plurnk-contracts";
|
|
2
|
+
import { type PluginAttributionContext } from "@plurnk/plurnk-meta";
|
|
3
|
+
import type { Db } from "./Db.ts";
|
|
4
|
+
import { type SchemeResult } from "./results.ts";
|
|
5
|
+
import type { Provider } from "@plurnk/plurnk-providers";
|
|
6
|
+
import type { BareBatchResult } from "./TurnRunner.ts";
|
|
7
|
+
export default class BareBatchRunner {
|
|
8
|
+
#private;
|
|
9
|
+
constructor({ db, providerAttributions, providerFailure }: {
|
|
10
|
+
db: Db;
|
|
11
|
+
providerAttributions: (provider: Provider, context: PluginAttributionContext) => string[];
|
|
12
|
+
providerFailure: (error: unknown, signal: AbortSignal | undefined) => SchemeResult;
|
|
13
|
+
});
|
|
14
|
+
runBareBatch({ statements, provider, turnId, workspaceId, workerId, primaryWorkerId, loopSequence, turnSequence, signal, }: {
|
|
15
|
+
statements: readonly BareStatement[];
|
|
16
|
+
provider: Provider;
|
|
17
|
+
turnId: number;
|
|
18
|
+
workspaceId: number;
|
|
19
|
+
workerId: number;
|
|
20
|
+
primaryWorkerId: string;
|
|
21
|
+
loopSequence: number;
|
|
22
|
+
turnSequence: number;
|
|
23
|
+
signal: AbortSignal | undefined;
|
|
24
|
+
}): Promise<BareBatchResult[]>;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=BareBatchRunner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BareBatchRunner.d.ts","sourceRoot":"","sources":["../../src/core/BareBatchRunner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAElC,OAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAK1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,MAAM,CAAC,OAAO,OAAO,eAAe;;IAKhC,YAAY,EAAE,EAAE,EAAE,oBAAoB,EAAE,eAAe,EAAE,EAAE;QACvD,EAAE,EAAE,EAAE,CAAC;QACP,oBAAoB,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,wBAAwB,KAAK,MAAM,EAAE,CAAC;QAC1F,eAAe,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,GAAG,SAAS,KAAK,YAAY,CAAC;KACtF,EAIA;IAEK,YAAY,CAAC,EACf,UAAU,EACV,QAAQ,EACR,MAAM,EACN,WAAW,EACX,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,MAAM,GACT,EAAE;QACC,UAAU,EAAE,SAAS,aAAa,EAAE,CAAC;QACrC,QAAQ,EAAE,QAAQ,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC;KACnC,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAiG7B;CAKJ"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import Results from "./results.js";
|
|
3
|
+
import { observed } from "../observe/spans.js";
|
|
4
|
+
import { GEN_AI_REQUEST_SPAN, genAiRequestOptions, settleGenAiResponse } from "../observe/genai.js";
|
|
5
|
+
import { PROVIDER_CALLS, recordCounter } from "../observe/metrics.js";
|
|
6
|
+
import ModelCall, { ModelCallPersistenceError, ProviderAccountingIntegrityError } from "./ModelCall.js";
|
|
7
|
+
import { ProviderError } from "@plurnk/plurnk-providers";
|
|
8
|
+
import ProviderInstantiate from "./ProviderInstantiate.js";
|
|
9
|
+
export default class BareBatchRunner {
|
|
10
|
+
#db;
|
|
11
|
+
#providerAttributions;
|
|
12
|
+
#providerFailure;
|
|
13
|
+
constructor({ db, providerAttributions, providerFailure }) {
|
|
14
|
+
this.#db = db;
|
|
15
|
+
this.#providerAttributions = providerAttributions;
|
|
16
|
+
this.#providerFailure = providerFailure;
|
|
17
|
+
}
|
|
18
|
+
async runBareBatch({ statements, provider, turnId, workspaceId, workerId, primaryWorkerId, loopSequence, turnSequence, signal, }) {
|
|
19
|
+
const prepared = [];
|
|
20
|
+
for (const statement of statements) {
|
|
21
|
+
const providerWorkerId = randomUUID();
|
|
22
|
+
const attributionContext = Object.freeze({
|
|
23
|
+
workspaceId: String(workspaceId),
|
|
24
|
+
workerId: providerWorkerId,
|
|
25
|
+
primaryWorkerId,
|
|
26
|
+
loop: loopSequence,
|
|
27
|
+
turn: turnSequence,
|
|
28
|
+
attempt: 1,
|
|
29
|
+
});
|
|
30
|
+
const attributions = this.#providerAttributions(provider, attributionContext);
|
|
31
|
+
const modelCall = await ModelCall.open(this.#db, {
|
|
32
|
+
turnId,
|
|
33
|
+
kind: "bare",
|
|
34
|
+
attributions,
|
|
35
|
+
model: provider.model,
|
|
36
|
+
});
|
|
37
|
+
prepared.push({ statement, modelCall, attributions, providerWorkerId });
|
|
38
|
+
}
|
|
39
|
+
const settlements = await Promise.allSettled(prepared.map(async ({ statement, modelCall, attributions, providerWorkerId }) => {
|
|
40
|
+
try {
|
|
41
|
+
const response = await observed(GEN_AI_REQUEST_SPAN, { model: provider.model, attempt: 1, kind: "bare" }, async (span) => {
|
|
42
|
+
try {
|
|
43
|
+
const generated = await provider.generate({
|
|
44
|
+
messages: [{ role: "user", content: statement.body }],
|
|
45
|
+
workerId: providerWorkerId,
|
|
46
|
+
primaryWorkerId,
|
|
47
|
+
signal,
|
|
48
|
+
attributions: attributions.length > 0 ? attributions : undefined,
|
|
49
|
+
workspaceId: String(workspaceId),
|
|
50
|
+
loop: loopSequence,
|
|
51
|
+
turn: turnSequence,
|
|
52
|
+
observeRequest: modelCall.observeRequest,
|
|
53
|
+
callKind: "bare",
|
|
54
|
+
});
|
|
55
|
+
modelCall.assertAccounting(generated.accounting);
|
|
56
|
+
recordCounter(PROVIDER_CALLS, {
|
|
57
|
+
model: provider.model,
|
|
58
|
+
attempt: 1,
|
|
59
|
+
status: "resolved",
|
|
60
|
+
});
|
|
61
|
+
span.setAttribute("status", "resolved");
|
|
62
|
+
settleGenAiResponse(span, generated);
|
|
63
|
+
return generated;
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
if (error instanceof ProviderError) {
|
|
67
|
+
modelCall.assertAccounting(error.accounting);
|
|
68
|
+
}
|
|
69
|
+
throw error;
|
|
70
|
+
}
|
|
71
|
+
}, genAiRequestOptions(ProviderInstantiate.aliasOf(provider) ?? "plurnk", provider.model));
|
|
72
|
+
await modelCall.observeResponse(response);
|
|
73
|
+
return {
|
|
74
|
+
statement,
|
|
75
|
+
modelCallId: modelCall.id,
|
|
76
|
+
result: Results.assert({
|
|
77
|
+
status: 200,
|
|
78
|
+
content: response.assistant.content,
|
|
79
|
+
mimetype: "text/plain",
|
|
80
|
+
}),
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
if (error instanceof ModelCallPersistenceError || error instanceof ProviderAccountingIntegrityError) {
|
|
85
|
+
throw error;
|
|
86
|
+
}
|
|
87
|
+
const failure = this.#providerFailure(error, signal);
|
|
88
|
+
if (error instanceof ProviderError && error.attempt !== undefined) {
|
|
89
|
+
await modelCall.observeResponse(error.attempt, failure);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
await modelCall.fail(failure);
|
|
93
|
+
}
|
|
94
|
+
return { statement, modelCallId: modelCall.id, result: failure };
|
|
95
|
+
}
|
|
96
|
+
}));
|
|
97
|
+
const internalFailure = settlements.find((settlement) => settlement.status === "rejected");
|
|
98
|
+
if (internalFailure !== undefined)
|
|
99
|
+
throw internalFailure.reason;
|
|
100
|
+
signal?.throwIfAborted();
|
|
101
|
+
return settlements.map((settlement) => settlement.value);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=BareBatchRunner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BareBatchRunner.js","sourceRoot":"","sources":["../../src/core/BareBatchRunner.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ interface LargestLogItem {
|
|
|
7
7
|
export default class BudgetReadout {
|
|
8
8
|
#private;
|
|
9
9
|
static draft(ceiling: number | null, responseMax?: number | null): string;
|
|
10
|
-
static resolve(template: string, ceiling: number, measurePacket: MeasurePacket, largestLogItems?: readonly LargestLogItem[]): string;
|
|
10
|
+
static resolve(template: string, ceiling: number, measurePacket: MeasurePacket, largestLogItems?: readonly LargestLogItem[], calibration?: number): string;
|
|
11
11
|
}
|
|
12
12
|
export {};
|
|
13
13
|
//# sourceMappingURL=BudgetReadout.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BudgetReadout.d.ts","sourceRoot":"","sources":["../../src/core/BudgetReadout.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BudgetReadout.d.ts","sourceRoot":"","sources":["../../src/core/BudgetReadout.ts"],"names":[],"mappings":"AAGA,KAAK,aAAa,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;AAEjD,UAAU,cAAc;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CACjC;AAMD,MAAM,CAAC,OAAO,OAAO,aAAa;;IAC9B,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE,WAAW,GAAE,MAAM,GAAG,IAAW,GAAG,MAAM,CAS9E;IAID,MAAM,CAAC,OAAO,CACV,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,aAAa,EAC5B,eAAe,GAAE,SAAS,cAAc,EAAO,EAC/C,WAAW,SAAI,GAChB,MAAM,CAyBR;CAiFJ"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
const TOKENS_ACTIVE_TOTAL_PLACEHOLDER = "{{tokensActiveTotal}}";
|
|
2
|
-
const TOKEN_PERCENT_PLACEHOLDER = "{{tokenPercent}}";
|
|
3
2
|
const MAX_WIDTH_PASSES = 64;
|
|
4
3
|
const PRESSURE_FRACTION = 0.8;
|
|
5
4
|
const LARGEST_LOG_ITEMS_MAX = 5;
|
|
6
|
-
const PRESSURE_MANDATE = "YOU MUST
|
|
5
|
+
const PRESSURE_MANDATE = "YOU MUST KILL superseded, stale, or irrelevant log items and ranges.";
|
|
7
6
|
export default class BudgetReadout {
|
|
8
7
|
static draft(ceiling, responseMax = null) {
|
|
9
8
|
if (ceiling === null)
|
|
@@ -13,16 +12,19 @@ export default class BudgetReadout {
|
|
|
13
12
|
// capacity fact like the ceiling — disclosed, never discovered by truncation.
|
|
14
13
|
// {§provider-flexed-allowance} (#482): the disclosed number stays the
|
|
15
14
|
// configured floor; wire-level overflow tolerance is never advertised.
|
|
16
|
-
const
|
|
17
|
-
return `tokensActiveTotal
|
|
15
|
+
const responseField = responseMax === null ? "" : `,"tokensResponseMax":${responseMax}`;
|
|
16
|
+
return `{"tokensActiveTotal":${TOKENS_ACTIVE_TOTAL_PLACEHOLDER},"tokensActiveMax":${ceiling}${responseField}}`;
|
|
18
17
|
}
|
|
19
|
-
// {§tokenomics-render-weight-budget} —
|
|
20
|
-
// substitution cannot change the measured packet length or oscillate.
|
|
21
|
-
static resolve(template, ceiling, measurePacket, largestLogItems = []) {
|
|
18
|
+
// {§tokenomics-render-weight-budget} — the width only expands, so the final
|
|
19
|
+
// numeric substitution cannot change the measured packet length or oscillate.
|
|
20
|
+
static resolve(template, ceiling, measurePacket, largestLogItems = [], calibration = 1) {
|
|
22
21
|
BudgetReadout.#assertCeiling(ceiling);
|
|
23
22
|
BudgetReadout.#assertTemplate(template);
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
BudgetReadout.#assertCalibration(calibration);
|
|
24
|
+
// {§tokenomics-calibrated-readout} — pressure and the displayed figures judge the calibrated
|
|
25
|
+
// weight; the raw measure still guards the fixed-width substitution.
|
|
26
|
+
const neutral = BudgetReadout.#resolveTemplate(template, measurePacket, calibration);
|
|
27
|
+
if (neutral.calibrated / ceiling < PRESSURE_FRACTION || largestLogItems.length === 0) {
|
|
26
28
|
return neutral.content;
|
|
27
29
|
}
|
|
28
30
|
// {§tokenomics-pressure-inventory} — take the largest useful prefix that
|
|
@@ -34,55 +36,45 @@ export default class BudgetReadout {
|
|
|
34
36
|
: a.tokensActive > b.tokensActive ? -1 : 1)
|
|
35
37
|
.slice(0, LARGEST_LOG_ITEMS_MAX);
|
|
36
38
|
for (let count = ranked.length; count > 0; count -= 1) {
|
|
37
|
-
const
|
|
38
|
-
const resolved = BudgetReadout.#resolveTemplate(
|
|
39
|
-
if (neutral.
|
|
39
|
+
const pressured = BudgetReadout.#withInventory(template, ranked.slice(0, count));
|
|
40
|
+
const resolved = BudgetReadout.#resolveTemplate(pressured, measurePacket, calibration);
|
|
41
|
+
if (neutral.calibrated > ceiling || resolved.calibrated <= ceiling)
|
|
40
42
|
return resolved.content;
|
|
41
43
|
}
|
|
42
44
|
return neutral.content;
|
|
43
45
|
}
|
|
44
|
-
static #resolveTemplate(template,
|
|
45
|
-
let
|
|
46
|
+
static #resolveTemplate(template, measurePacket, calibration) {
|
|
47
|
+
let width = 1;
|
|
46
48
|
for (let pass = 0; pass < MAX_WIDTH_PASSES; pass += 1) {
|
|
47
|
-
const probe = BudgetReadout.#render(template,
|
|
48
|
-
activeTotal: "0".repeat(widths.activeTotal),
|
|
49
|
-
percent: "0".repeat(widths.percent),
|
|
50
|
-
});
|
|
49
|
+
const probe = BudgetReadout.#render(template, width, "0".repeat(width));
|
|
51
50
|
const usage = BudgetReadout.#assertWeight(measurePacket(probe));
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
activeTotal: Math.max(widths.activeTotal, values.activeTotal.length),
|
|
58
|
-
percent: Math.max(widths.percent, values.percent.length),
|
|
59
|
-
};
|
|
60
|
-
if (expanded.activeTotal !== widths.activeTotal
|
|
61
|
-
|| expanded.percent !== widths.percent) {
|
|
62
|
-
widths = expanded;
|
|
51
|
+
const calibrated = Math.round(usage * calibration);
|
|
52
|
+
const value = String(calibrated);
|
|
53
|
+
const expanded = Math.max(width, value.length);
|
|
54
|
+
if (expanded !== width) {
|
|
55
|
+
width = expanded;
|
|
63
56
|
continue;
|
|
64
57
|
}
|
|
65
|
-
const content = BudgetReadout.#render(template,
|
|
58
|
+
const content = BudgetReadout.#render(template, width, value);
|
|
66
59
|
const finalWeight = BudgetReadout.#assertWeight(measurePacket(content));
|
|
67
60
|
if (finalWeight !== usage) {
|
|
68
61
|
throw new Error(`Budget readout measurement changed after fixed-width substitution: ${usage} -> ${finalWeight}`);
|
|
69
62
|
}
|
|
70
|
-
return { content, usage };
|
|
63
|
+
return { content, usage, calibrated };
|
|
71
64
|
}
|
|
72
|
-
throw new Error(`Budget readout field
|
|
65
|
+
throw new Error(`Budget readout field width did not converge after ${MAX_WIDTH_PASSES} passes`);
|
|
73
66
|
}
|
|
74
|
-
static #render(template,
|
|
75
|
-
return template
|
|
76
|
-
.replace(TOKENS_ACTIVE_TOTAL_PLACEHOLDER, values.activeTotal.padStart(widths.activeTotal))
|
|
77
|
-
.replace(TOKEN_PERCENT_PLACEHOLDER, values.percent.padStart(widths.percent));
|
|
67
|
+
static #render(template, width, value) {
|
|
68
|
+
return template.replace(TOKENS_ACTIVE_TOTAL_PLACEHOLDER, value.padStart(width));
|
|
78
69
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
70
|
+
// The inventory rides inside the same JSON object as a `tokensActiveLargest`
|
|
71
|
+
// field, so the block opens as one JSON payload; the recovery mandate follows it.
|
|
72
|
+
static #withInventory(template, items) {
|
|
73
|
+
const largest = items
|
|
74
|
+
.map(({ path, tokensBody, tokensActive }) => JSON.stringify({ path, tokensBody, tokensActive }))
|
|
75
|
+
.join(",");
|
|
76
|
+
const object = template.replace(/\}\s*$/u, () => `,"tokensActiveLargest":[${largest}]}`);
|
|
77
|
+
return `${object}\n\n${PRESSURE_MANDATE}`;
|
|
86
78
|
}
|
|
87
79
|
static #assertLargestLogItem(item) {
|
|
88
80
|
if (!item.path.startsWith("log:///") || /[\r\n]/u.test(item.path)) {
|
|
@@ -100,6 +92,11 @@ export default class BudgetReadout {
|
|
|
100
92
|
throw new TypeError("Budget readout ceiling must be a positive safe integer");
|
|
101
93
|
}
|
|
102
94
|
}
|
|
95
|
+
static #assertCalibration(calibration) {
|
|
96
|
+
if (!Number.isFinite(calibration) || calibration <= 0) {
|
|
97
|
+
throw new TypeError("Budget readout calibration must be a positive finite number");
|
|
98
|
+
}
|
|
99
|
+
}
|
|
103
100
|
static #assertWeight(weight) {
|
|
104
101
|
if (!Number.isSafeInteger(weight) || weight < 0) {
|
|
105
102
|
throw new TypeError("Budget readout packet weight must be a non-negative safe integer");
|
|
@@ -107,10 +104,8 @@ export default class BudgetReadout {
|
|
|
107
104
|
return weight;
|
|
108
105
|
}
|
|
109
106
|
static #assertTemplate(template) {
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
throw new TypeError(`Budget readout template must contain ${placeholder} exactly once`);
|
|
113
|
-
}
|
|
107
|
+
if (template.split(TOKENS_ACTIVE_TOTAL_PLACEHOLDER).length !== 2) {
|
|
108
|
+
throw new TypeError(`Budget readout template must contain ${TOKENS_ACTIVE_TOTAL_PLACEHOLDER} exactly once`);
|
|
114
109
|
}
|
|
115
110
|
}
|
|
116
111
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BudgetReadout.js","sourceRoot":"","sources":["../../src/core/BudgetReadout.ts"],"names":[],"mappings":"AAAA,MAAM,+BAA+B,GAAG,uBAAuB,CAAC;AAChE,MAAM,
|
|
1
|
+
{"version":3,"file":"BudgetReadout.js","sourceRoot":"","sources":["../../src/core/BudgetReadout.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { type CapabilityDescriptor, type CapabilityPolicy, type CapabilityProjec
|
|
|
2
2
|
import type { Db } from "./Db.ts";
|
|
3
3
|
import type ExecutorRegistry from "./ExecutorRegistry.ts";
|
|
4
4
|
import type SchemeRegistry from "./SchemeRegistry.ts";
|
|
5
|
-
|
|
5
|
+
type CapabilityScope = "service" | "workspace" | "worker-bound" | "worker" | "loop";
|
|
6
6
|
export interface CapabilityDenial {
|
|
7
7
|
readonly descriptor: CapabilityDescriptor;
|
|
8
8
|
readonly scope: CapabilityScope;
|
|
@@ -21,4 +21,5 @@ export default class CapabilityResolver {
|
|
|
21
21
|
allowsRuntimeAcross(runtime: string, tool: string | null, workerId: number, policies: readonly CapabilityPolicy[]): boolean;
|
|
22
22
|
static effective(policies: readonly CapabilityPolicy[]): CapabilityPolicy;
|
|
23
23
|
}
|
|
24
|
+
export {};
|
|
24
25
|
//# sourceMappingURL=CapabilityResolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CapabilityResolver.d.ts","sourceRoot":"","sources":["../../src/core/CapabilityResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACvB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"CapabilityResolver.d.ts","sourceRoot":"","sources":["../../src/core/CapabilityResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACvB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAC;AAMtD,KAAK,eAAe,GAAG,SAAS,GAAG,WAAW,GAAG,cAAc,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEpF,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;CACnC;AAED,MAAM,CAAC,OAAO,OAAO,kBAAkB;;IAKnC,YAAY,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,gBAAgB,GAAG,SAAS,EAIzF;IAED,WAAW,CAAC,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,oBAAoB,EAAE,CAmFzF;IAEK,MAAM,CACR,SAAS,EAAE,eAAe,EAC1B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAQlC;IAEK,MAAM,CACR,SAAS,EAAE,eAAe,EAC1B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CAElB;IAEK,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAcrF;IAED,YAAY,CACR,SAAS,EAAE,eAAe,EAC1B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,SAAS,gBAAgB,EAAE,GACtC,OAAO,CAGT;IAEK,aAAa,CACf,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CAWlB;IAED,mBAAmB,CACf,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,SAAS,gBAAgB,EAAE,GACtC,OAAO,CAQT;IAEK,aAAa,CACf,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CAOlB;IAED,mBAAmB,CACf,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,SAAS,gBAAgB,EAAE,GACtC,OAAO,CAET;IAiBD,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,GAAG,gBAAgB,CAExE;CAOJ"}
|