@plurnk/plurnk-service 1.6.0 → 1.6.1

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 (124) hide show
  1. package/.env.defaults +7 -21
  2. package/INSTALL.md +18 -17
  3. package/README.md +1 -1
  4. package/SPEC.md +125 -115
  5. package/dist/build-info.json +1 -1
  6. package/dist/core/ChannelWrite.sql +3 -3
  7. package/dist/core/CoreSchemeServices.d.ts +1 -1
  8. package/dist/core/CoreSchemeServices.d.ts.map +1 -1
  9. package/dist/core/CoreSchemeServices.js +1 -1
  10. package/dist/core/CoreSchemeServices.js.map +1 -1
  11. package/dist/core/Dispatcher.d.ts +2 -2
  12. package/dist/core/Dispatcher.d.ts.map +1 -1
  13. package/dist/core/Dispatcher.js +79 -1115
  14. package/dist/core/Dispatcher.js.map +1 -1
  15. package/dist/core/Engine.d.ts +9 -33
  16. package/dist/core/Engine.d.ts.map +1 -1
  17. package/dist/core/Engine.js +58 -1656
  18. package/dist/core/Engine.js.map +1 -1
  19. package/dist/core/Engine.sql +46 -32
  20. package/dist/core/LogBody.d.ts +1 -0
  21. package/dist/core/LogBody.d.ts.map +1 -1
  22. package/dist/core/LogBody.js +4 -0
  23. package/dist/core/LogBody.js.map +1 -1
  24. package/dist/core/ModelCall.d.ts +2 -2
  25. package/dist/core/ModelCall.d.ts.map +1 -1
  26. package/dist/core/ModelCall.js +4 -2
  27. package/dist/core/ModelCall.js.map +1 -1
  28. package/dist/core/PacketBuilder.d.ts +11 -22
  29. package/dist/core/PacketBuilder.d.ts.map +1 -1
  30. package/dist/core/PacketBuilder.js +66 -168
  31. package/dist/core/PacketBuilder.js.map +1 -1
  32. package/dist/core/ProblemLog.d.ts +1 -1
  33. package/dist/core/ProblemLog.d.ts.map +1 -1
  34. package/dist/core/ProblemLog.js +14 -3
  35. package/dist/core/ProblemLog.js.map +1 -1
  36. package/dist/core/ProposalLifecycle.d.ts +2 -2
  37. package/dist/core/ProposalLifecycle.d.ts.map +1 -1
  38. package/dist/core/ProposalLifecycle.js +14 -5
  39. package/dist/core/ProposalLifecycle.js.map +1 -1
  40. package/dist/core/ProviderInstantiate.js +2 -2
  41. package/dist/core/ProviderInstantiate.js.map +1 -1
  42. package/dist/core/ResourceMutations.d.ts +73 -0
  43. package/dist/core/ResourceMutations.d.ts.map +1 -0
  44. package/dist/core/ResourceMutations.js +1142 -0
  45. package/dist/core/ResourceMutations.js.map +1 -0
  46. package/dist/core/SchemeRegistry.js +3 -3
  47. package/dist/core/SchemeRegistry.js.map +1 -1
  48. package/dist/core/StoredPacket.d.ts +2 -2
  49. package/dist/core/StoredPacket.js +7 -7
  50. package/dist/core/TurnRunner.d.ts +72 -0
  51. package/dist/core/TurnRunner.d.ts.map +1 -0
  52. package/dist/core/TurnRunner.js +1730 -0
  53. package/dist/core/TurnRunner.js.map +1 -0
  54. package/dist/core/caps/DbChannelCaps.js +4 -4
  55. package/dist/core/caps/DbChannelCaps.js.map +1 -1
  56. package/dist/core/content-hash.js +2 -2
  57. package/dist/core/content-hash.js.map +1 -1
  58. package/dist/core/content-weight.d.ts +2 -0
  59. package/dist/core/content-weight.d.ts.map +1 -0
  60. package/dist/core/content-weight.js +4 -0
  61. package/dist/core/content-weight.js.map +1 -0
  62. package/dist/core/content_weight.d.ts +4 -0
  63. package/dist/core/content_weight.d.ts.map +1 -0
  64. package/dist/core/content_weight.js +6 -0
  65. package/dist/core/content_weight.js.map +1 -0
  66. package/dist/core/fork.sql +5 -5
  67. package/dist/core/packet-wire.d.ts +4 -4
  68. package/dist/core/packet-wire.d.ts.map +1 -1
  69. package/dist/core/packet-wire.js +21 -21
  70. package/dist/core/packet-wire.js.map +1 -1
  71. package/dist/core/scheme-types.d.ts +1 -1
  72. package/dist/core/scheme-types.d.ts.map +1 -1
  73. package/dist/digest/Digest.js +1 -1
  74. package/dist/digest/Digest.js.map +1 -1
  75. package/dist/schemes/Exec.d.ts.map +1 -1
  76. package/dist/schemes/Exec.js +26 -10
  77. package/dist/schemes/Exec.js.map +1 -1
  78. package/dist/schemes/ExecOutputScheme.js +1 -1
  79. package/dist/schemes/ExecOutputScheme.js.map +1 -1
  80. package/dist/schemes/File.d.ts.map +1 -1
  81. package/dist/schemes/File.js +1 -1
  82. package/dist/schemes/File.js.map +1 -1
  83. package/dist/schemes/Log.d.ts.map +1 -1
  84. package/dist/schemes/Log.js +2 -2
  85. package/dist/schemes/Log.sql +2 -2
  86. package/dist/schemes/Worker.js +2 -2
  87. package/dist/schemes/Worker.js.map +1 -1
  88. package/dist/schemes/_entry-crud.js +4 -4
  89. package/dist/schemes/_entry-crud.js.map +1 -1
  90. package/dist/schemes/_entry-crud.sql +2 -2
  91. package/dist/schemes/_entry-find.d.ts +5 -5
  92. package/dist/schemes/_entry-find.d.ts.map +1 -1
  93. package/dist/schemes/_entry-find.js +29 -28
  94. package/dist/schemes/_entry-find.js.map +1 -1
  95. package/dist/schemes/_entry-manifest.js +4 -4
  96. package/dist/schemes/_entry-manifest.js.map +1 -1
  97. package/dist/schemes/_entry-ops.d.ts.map +1 -1
  98. package/dist/schemes/_entry-ops.js +3 -3
  99. package/dist/schemes/_entry-ops.js.map +1 -1
  100. package/dist/schemes/_entry-ops.sql +3 -3
  101. package/dist/server/Daemon.d.ts +7 -42
  102. package/dist/server/Daemon.d.ts.map +1 -1
  103. package/dist/server/Daemon.js +124 -887
  104. package/dist/server/Daemon.js.map +1 -1
  105. package/dist/server/DrainSupervisor.d.ts +117 -0
  106. package/dist/server/DrainSupervisor.d.ts.map +1 -0
  107. package/dist/server/DrainSupervisor.js +802 -0
  108. package/dist/server/DrainSupervisor.js.map +1 -0
  109. package/dist/server/lifecycle-recovery.sql +3 -0
  110. package/dist/server/logEntry.d.ts +1 -1
  111. package/dist/server/logEntry.js +1 -1
  112. package/dist/server/seam-entry-read.sql +2 -2
  113. package/dist/service.js +1 -1
  114. package/dist/service.js.map +1 -1
  115. package/migrations/001_schema.sql +20 -10
  116. package/package.json +33 -33
  117. package/dist/core/ruler_count.d.ts +0 -4
  118. package/dist/core/ruler_count.d.ts.map +0 -1
  119. package/dist/core/ruler_count.js +0 -7
  120. package/dist/core/ruler_count.js.map +0 -1
  121. package/dist/core/token-ruler.d.ts +0 -2
  122. package/dist/core/token-ruler.d.ts.map +0 -1
  123. package/dist/core/token-ruler.js +0 -5
  124. package/dist/core/token-ruler.js.map +0 -1
@@ -4,23 +4,12 @@ import type SchemeRegistry from "./SchemeRegistry.ts";
4
4
  import type ExecutorRegistry from "./ExecutorRegistry.ts";
5
5
  import type { GitStatus } from "./git-state.ts";
6
6
  import type { RequestPacket } from "./StoredPacket.ts";
7
- import type { ChatMessage, PromptTokenMeasurement, Provider } from "@plurnk/plurnk-providers";
7
+ import type { ChatMessage, Provider } from "@plurnk/plurnk-providers";
8
8
  export type { ChatMessage } from "@plurnk/plurnk-providers";
9
- export type ContextEnvelopeAdmission = {
10
- readonly admitted: true;
11
- readonly capacity: number;
12
- readonly measurement: PromptTokenMeasurement;
13
- } | {
14
- readonly admitted: false;
15
- readonly reason: "unknown_context_window" | "unknown_output_envelope" | "estimate" | "over_capacity";
16
- readonly detail: string;
17
- readonly capacity: number | null;
18
- readonly measurement?: PromptTokenMeasurement;
19
- };
20
- export interface TokenBudgetOverflow {
21
- readonly usage: number;
22
- readonly ceiling: number;
23
- readonly deficit: number;
9
+ export interface CurationOverflow {
10
+ readonly weight: number;
11
+ readonly budget: number;
12
+ readonly excess: number;
24
13
  }
25
14
  export default class PacketBuilder {
26
15
  #private;
@@ -29,10 +18,8 @@ export default class PacketBuilder {
29
18
  schemes: SchemeRegistry;
30
19
  executors: () => ExecutorRegistry | undefined;
31
20
  });
32
- maxTokensFor(provider: Provider): number | null;
33
- promptBudgetFor(provider: Provider): number | null;
34
- ceilingFor(provider: Provider): number | null;
35
- buildRequestPacket({ initialMessages, requirements, workspaceId, workerId, loopId, currentTurnSeq, provider, gitStatus, notices, transientOpenLogEntryId, }: {
21
+ curationBudgetFor(provider: Provider): number | null;
22
+ buildRequestPacket({ initialMessages, requirements, workspaceId, workerId, loopId, currentTurnSeq, provider, gitStatus, notices, transientOpenLogEntryId, promptProjection, }: {
36
23
  initialMessages: ChatMessage[];
37
24
  requirements?: string;
38
25
  gitStatus: GitStatus | null;
@@ -43,6 +30,7 @@ export default class PacketBuilder {
43
30
  provider: Provider;
44
31
  notices?: readonly Notice[];
45
32
  transientOpenLogEntryId?: number | null;
33
+ promptProjection?: "automatic" | "withheld";
46
34
  }): Promise<RequestPacket>;
47
35
  docEntries(workspaceId: number): Promise<Array<{
48
36
  name: string;
@@ -53,13 +41,14 @@ export default class PacketBuilder {
53
41
  provider: Provider;
54
42
  loopId: number;
55
43
  turnId: number;
56
- recordOverflow: (overflow: TokenBudgetOverflow) => Promise<void>;
44
+ recordOverflow: (overflow: CurationOverflow) => Promise<void>;
57
45
  rebuild: () => Promise<RequestPacket>;
58
46
  }): Promise<{
59
47
  packet: RequestPacket;
60
48
  fit: boolean;
49
+ boundaryRolledBack: boolean;
61
50
  }>;
62
- contextEnvelopeAdmission(packet: RequestPacket, provider: Provider, signal?: AbortSignal): Promise<ContextEnvelopeAdmission>;
51
+ rollbackNewestBoundary(loopId: number, turnId: number): Promise<void>;
63
52
  buildFailurePointers(loopId: number, currentTurnSeq: number): Promise<Array<{
64
53
  status: number;
65
54
  coordinate: string;
@@ -1 +1 @@
1
- {"version":3,"file":"PacketBuilder.d.ts","sourceRoot":"","sources":["../../src/core/PacketBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PacketBuilder.d.ts","sourceRoot":"","sources":["../../src/core/PacketBuilder.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  var _a;
2
2
  import { renderAddress, promptLoopPrefix } from "./plurnk-uri.js";
3
- import { rulerCount } from "./token-ruler.js";
3
+ import { contentWeight } from "./content-weight.js";
4
4
  import { docsExcludeSet } from "./teaching.js";
5
5
  import { Policy } from "@plurnk/plurnk-execs";
6
6
  import WorkspaceSettings from "./workspace-settings.js";
@@ -14,7 +14,7 @@ import { readTeachingSource } from "./teaching-corpus.js";
14
14
  // drift between wire and digest possible.
15
15
  import PacketWire from "./packet-wire.js";
16
16
  import LogEntryProjection from "./LogEntryProjection.js";
17
- import { assertPromptTokenMeasurement, scopeEnvToAlias, resolveActiveAlias } from "@plurnk/plurnk-providers";
17
+ import { scopeEnvToAlias, resolveActiveAlias } from "@plurnk/plurnk-providers";
18
18
  import ProviderInstantiate from "./ProviderInstantiate.js";
19
19
  import BudgetReadout from "./BudgetReadout.js";
20
20
  import ExecutableTools from "./ExecutableTools.js";
@@ -88,25 +88,8 @@ const compactDefinitionTables = (markdown) => {
88
88
  return `| ${cells.map(trimHorizontal).join(" | ")} |${carriageReturn}`;
89
89
  }).join("\n");
90
90
  };
91
- // {§tokenomics-window-partition} — the four partition numbers. REQUIRED (fail-hard, the
92
- // providers-env convention): the ceiling is DERIVED from these, never set directly
93
- // (PLURNK_BUDGET_CEILING is retired — a second settable ceiling contradicted the owning envelopes).
94
- const readPartitionIntFrom = (env, name, min) => {
95
- const raw = env[name];
96
- const n = Number.parseInt(raw ?? "", 10);
97
- if (!Number.isFinite(n) || n < min)
98
- throw new Error(`${name} must be an integer >= ${min}; got ${raw}`);
99
- return n;
100
- };
101
- const readOptionalPositiveIntFrom = (env, name) => {
102
- const raw = env[name];
103
- if (raw === undefined || raw.length === 0)
104
- return null;
105
- const n = Number(raw);
106
- if (!Number.isInteger(n) || n <= 0)
107
- throw new Error(`${name} must be a positive integer; got ${raw}`);
108
- return n;
109
- };
91
+ // {§tokenomics-prompt-projection-share} — the required alias-scoped share of
92
+ // provider-derived input capacity used only for automatic prompt projection.
110
93
  const readRequiredPercentFrom = (env, name) => {
111
94
  const raw = env[name];
112
95
  const match = /^([0-9]+(?:\.[0-9]+)?)%$/.exec(raw ?? "");
@@ -124,101 +107,53 @@ class PacketBuilder {
124
107
  // Boot-discovered runtime executors, late-injected on Engine after daemon
125
108
  // start() — read through a thunk so the post-construction set is visible.
126
109
  #executors;
127
- // {§tokenomics-window-partition} — the partition is PER-ALIAS, resolved per provider in
128
- // #partitionFor and cached by alias; no boot-time global read.
110
+ // {§tokenomics-prompt-projection-share} — prompt projection is alias-scoped
111
+ // through the same environment contract as provider configuration.
129
112
  constructor({ db, schemes, executors }) {
130
113
  this.#db = db;
131
114
  this.#schemes = schemes;
132
115
  this.#executors = executors;
133
- // {§tokenomics-window-partition} — the envelope rides the provider; construction only runs the retired-knob shed
134
- // so a stale operator .env fails at BOOT, not first use.
116
+ // Retired capacity knobs fail at boot rather than silently becoming inert.
135
117
  const bootAlias = resolveActiveAlias(process.env)?.alias ?? "";
136
- this.#safetyFor(bootAlias);
137
- this.#promptBudgetCapFor(bootAlias);
118
+ this.#shedRetiredCapacityKnobs();
138
119
  this.#promptProjectionFor(bootAlias);
139
120
  }
140
- // {§tokenomics-window-partition} — provider generation settings and core packet policy both resolve per alias.
141
- // scopeEnvToAlias resolves PLURNK_SERVICE_*_<alias> over the bare fallback with providers' own
142
- // battle-tested suffix parser. Cached per alias; the boot-global case falls back to the active
143
- // alias when a provider carries no side-table entry (a test Mock).
144
- // Provider context and response reserves remain provider-owned. Core owns only its virtual
145
- // prompt budget and the ruler's packing-safety margin.
146
- static #KNOBS = ["PLURNK_SERVICE_PROMPT_BUDGET", "PLURNK_SERVICE_PROMPT_PROJECTION", "PLURNK_SERVICE_SAFETY"];
147
- #shedChecked = false;
148
- #safetyFor(alias) {
149
- // {§tokenomics-window-partition} hard shed: the three misprefixed partition knobs moved to the
150
- // provider tier; a stale operator .env must never silently lose its envelope to the move.
151
- if (!this.#shedChecked) {
152
- this.#shedChecked = true;
153
- const MOVED = {
154
- CTX: "PLURNK_PROVIDERS_CONTEXT_WINDOW", CONTEXT_WINDOW: "PLURNK_PROVIDERS_CONTEXT_WINDOW",
155
- REASONING: "PLURNK_PROVIDERS_REASONING_RESERVE",
156
- ASSISTANT: "PLURNK_PROVIDERS_COMPLETION_RESERVE", COMPLETION: "PLURNK_PROVIDERS_COMPLETION_RESERVE",
157
- };
158
- for (const k of Object.keys(process.env)) {
159
- const m = /^PLURNK_SERVICE_(CTX|CONTEXT_WINDOW|REASONING|ASSISTANT|COMPLETION)(_.*)?$/.exec(k);
160
- if (m !== null)
161
- throw new Error(`${k} is retired: the envelope is provider-owned — the knob is ${MOVED[m[1]]}${m[2] ?? ""}.`);
162
- }
121
+ // Prompt projection is Core policy, scoped through the same alias contract as providers.
122
+ static #KNOBS = ["PLURNK_SERVICE_PROMPT_PROJECTION"];
123
+ #shedRetiredCapacityKnobs() {
124
+ const retired = {
125
+ PLURNK_SERVICE_PROMPT_BUDGET: "provider input capacity is derived from context and output budgets",
126
+ PLURNK_SERVICE_SAFETY: "provider request-shaped capacity admission owns physical headroom",
127
+ };
128
+ for (const key of Object.keys(process.env)) {
129
+ const match = /^(PLURNK_SERVICE_PROMPT_BUDGET|PLURNK_SERVICE_SAFETY)(?:_.*)?$/u.exec(key);
130
+ const reason = match === null ? undefined : retired[match[1]];
131
+ if (reason !== undefined)
132
+ throw new Error(`${key} is retired: ${reason}.`);
133
+ }
134
+ const moved = {
135
+ CTX: "PLURNK_PROVIDERS_CONTEXT_WINDOW",
136
+ CONTEXT_WINDOW: "PLURNK_PROVIDERS_CONTEXT_WINDOW",
137
+ REASONING: "PLURNK_PROVIDERS_REASONING_BUDGET",
138
+ ASSISTANT: "PLURNK_PROVIDERS_OUTPUT_BUDGET",
139
+ COMPLETION: "PLURNK_PROVIDERS_OUTPUT_BUDGET",
140
+ };
141
+ for (const key of Object.keys(process.env)) {
142
+ const match = /^PLURNK_SERVICE_(CTX|CONTEXT_WINDOW|REASONING|ASSISTANT|COMPLETION)(_.*)?$/u.exec(key);
143
+ if (match !== null)
144
+ throw new Error(`${key} is retired: the provider-owned knob is ${moved[match[1]]}${match[2] ?? ""}.`);
163
145
  }
164
- const view = scopeEnvToAlias(process.env, alias, _a.#KNOBS);
165
- return readPartitionIntFrom(view, "PLURNK_SERVICE_SAFETY", 0);
166
- }
167
- #promptBudgetCapFor(alias) {
168
- const view = scopeEnvToAlias(process.env, alias, _a.#KNOBS);
169
- return readOptionalPositiveIntFrom(view, "PLURNK_SERVICE_PROMPT_BUDGET");
170
146
  }
171
147
  #promptProjectionFor(alias) {
172
148
  const view = scopeEnvToAlias(process.env, alias, _a.#KNOBS);
173
149
  return readRequiredPercentFrom(view, "PLURNK_SERVICE_PROMPT_PROJECTION");
174
150
  }
175
- #partitionFor(provider) {
176
- const alias = ProviderInstantiate.aliasOf(provider) ?? resolveActiveAlias(process.env)?.alias ?? "";
177
- return { reasoning: provider.reasoningReserve ?? null, completion: provider.completionReserve ?? null, safety: this.#safetyFor(alias) };
178
- }
179
- // The generation envelope — REASONING + COMPLETION, one undifferentiated pool, passed on
180
- // every generate({maxTokens}): no decode is unbounded ({§tokenomics-window-partition}). Per
181
- // alias: gemma's measured envelope; a cloud alias's generous default the backend clamps.
182
- maxTokensFor(provider) {
183
- const { reasoning, completion } = this.#partitionFor(provider);
184
- if (reasoning === null || completion === null)
185
- return null; // {§tokenomics-window-unpollable-deliberate}: unknown envelope, no cap; the backend clamps
186
- return reasoning + completion;
187
- }
188
- // {§tokenomics-window-partition} — the natural prompt ceiling is the provider's
189
- // effective context window minus its response reserves and the service's ruler
190
- // safety. An optional service prompt budget may only tighten that result. It is
191
- // model-facing grinder policy, never hard capacity or a generation setting.
192
- // The client-facing gauge, grinder ceiling, and persisted promptBudget use this one value.
193
- promptBudgetFor(provider) {
194
- return this.ceilingFor(provider); // ONE derivation — the gauge denominator IS the grinder ceiling
195
- }
196
- // {§tokenomics-agnostic-ruler} — the ceiling is the real window partition (window − reserves),
197
- // NO calibration ratio: the model-facing measure is the chars/2 ruler (an over-count for
198
- // typical text), so comparing ruler-weight to the real-token ceiling is itself the conservative
199
- // bias - the packet reports less room than the provider usually has; authoritative
200
- // provider request evidence guards the pathological tail at hard admission.
201
- ceilingFor(provider) {
202
- const alias = ProviderInstantiate.aliasOf(provider) ?? resolveActiveAlias(process.env)?.alias ?? "";
203
- const operatorCap = this.#promptBudgetCapFor(alias);
204
- // Unknown provider capacity stays unknown; an explicit virtual ceiling still gauges
205
- // PLURNK's packet without pretending to describe the backend.
206
- if (provider.contextWindow === null)
207
- return operatorCap;
208
- const { reasoning, completion, safety } = this.#partitionFor(provider);
209
- if (reasoning === null || completion === null)
210
- return operatorCap;
211
- const naturalBudget = provider.contextWindow - reasoning - completion - safety;
212
- if (naturalBudget <= 0) {
213
- // {§tokenomics-window-partition} — this contradiction has one cause: pinned absolute reserves
214
- // exceeding the window the provider detected (percent reserves derive and cannot contradict).
215
- throw new Error(`window partition contradiction for alias '${alias}': window ${provider.contextWindow} <= reserves ${reasoning}+${completion}+${safety}. Pinned PLURNK_PROVIDERS_{REASONING,COMPLETION}_RESERVE absolutes exceed the detected window — repin them under it, or use percent reserves, which derive from the window.`);
216
- }
217
- return operatorCap === null ? naturalBudget : Math.min(operatorCap, naturalBudget);
151
+ curationBudgetFor(provider) {
152
+ return provider.inputCapacity;
218
153
  }
219
154
  // {§packet-stored-shape} — assemble the system/user request before the
220
155
  // provider call; complete the same record with the provider response.
221
- async buildRequestPacket({ initialMessages, requirements = "", workspaceId, workerId, loopId, currentTurnSeq, provider, gitStatus, notices = [], transientOpenLogEntryId = null, }) {
156
+ async buildRequestPacket({ initialMessages, requirements = "", workspaceId, workerId, loopId, currentTurnSeq, provider, gitStatus, notices = [], transientOpenLogEntryId = null, promptProjection = "automatic", }) {
222
157
  const byRole = (role) => initialMessages.filter((m) => m.role === role).map((m) => m.content).join("\n\n");
223
158
  // plurnk.md (grammar/dialects) ONLY — the definition is the hot-path grammar.
224
159
  // The resource catalogue is its own `schemes` section below tools ({§schemes-directory}),
@@ -253,16 +188,18 @@ class PacketBuilder {
253
188
  // {§emission-admission}: the definition remains the complete language authority.
254
189
  const log = await this.#buildLog(workerId, transientOpenLogEntryId);
255
190
  const failures = await this.buildFailurePointers(loopId, currentTurnSeq);
256
- const countTokens = rulerCount; // {§tokenomics-agnostic-ruler} — the ONE model-facing ruler (chars/2), not the provider
191
+ const weighContent = contentWeight;
257
192
  // {§tools-loop-affinity}: teaching and dispatch resolve the same loop flags.
258
193
  const activeSchemes = this.#schemes.resolveForLoop(await LoopFlagsReader.read(this.#db, loopId));
259
194
  const tools = this.#collectTools(await this.#workspaceEnabled(workspaceId), await WorkspaceSettings.questionsEnabled(this.#db, workspaceId), activeSchemes);
260
- const ceiling = this.ceilingFor(provider);
195
+ const curationBudget = this.curationBudgetFor(provider);
261
196
  const alias = ProviderInstantiate.aliasOf(provider) ?? resolveActiveAlias(process.env)?.alias ?? "";
262
- const promptProjectionBudget = ceiling === null
263
- ? null
264
- : Math.floor(ceiling * this.#promptProjectionFor(alias));
265
- const budgetReadout = BudgetReadout.draft(ceiling);
197
+ const promptProjectionWeight = promptProjection === "withheld"
198
+ ? 0
199
+ : curationBudget === null
200
+ ? null
201
+ : Math.floor(curationBudget * this.#promptProjectionFor(alias));
202
+ const budgetReadout = BudgetReadout.draft(curationBudget);
266
203
  // The canonical default order, trust boundary, and cache-locality bias are
267
204
  // specified at {§packet-cache-monotone}. Budget placeholders resolve only
268
205
  // after trusted whole-list transforms establish the packet being measured.
@@ -300,7 +237,7 @@ class PacketBuilder {
300
237
  name: "log",
301
238
  slot: "user",
302
239
  header: "Log",
303
- content: PacketWire.renderLog(log, countTokens, promptProjectionBudget === null ? {} : { promptProjectionBudget }),
240
+ content: PacketWire.renderLog(log, weighContent, promptProjectionWeight === null ? {} : { promptProjectionWeight }),
304
241
  },
305
242
  // The per-turn status clump follows the log ({§packet-cache-monotone}).
306
243
  // child-orientation: what this worker holds live — streams then child workers — just above errors. Terse
@@ -310,7 +247,8 @@ class PacketBuilder {
310
247
  { name: "errors", slot: "user", header: "Errors", content: PacketWire.renderFailurePointers(failures) },
311
248
  { name: "notices", slot: "user", header: "Notices", content: PacketWire.renderNotices(notices) },
312
249
  { name: "git", slot: "user", header: "Git Status", content: PacketWire.renderGit(gitStatus, branchAssignment?.branch ?? null) },
313
- // budget — LAW (a hard ceiling the model must obey).
250
+ // Familiar token language is a deliberate final model projection;
251
+ // internally this is curation weight, never provider admission.
314
252
  { name: "budget", slot: "user", header: "Budget", content: budgetReadout },
315
253
  // The prompts section closes the status clump as a paths-only list;
316
254
  // bodies arrive through first-class prompt rows.
@@ -321,21 +259,21 @@ class PacketBuilder {
321
259
  // default list — add, remove, reorder — in-process, before measurement.
322
260
  let drafts = await this.#schemes.transformSections(defaults);
323
261
  const budgetSection = drafts.find((section) => section.name === "budget");
324
- if (budgetSection !== undefined && ceiling !== null) {
325
- const content = BudgetReadout.resolve(budgetSection.content, ceiling, (candidate) => {
262
+ if (budgetSection !== undefined && curationBudget !== null) {
263
+ const content = BudgetReadout.resolve(budgetSection.content, curationBudget, (candidate) => {
326
264
  const candidateDrafts = drafts.map((section) => section === budgetSection ? { ...section, content: candidate } : section);
327
- return countTokens(PacketWire.renderSlot(candidateDrafts, "system"))
328
- + countTokens(PacketWire.renderSlot(candidateDrafts, "user"));
265
+ return weighContent(PacketWire.renderSlot(candidateDrafts, "system"))
266
+ + weighContent(PacketWire.renderSlot(candidateDrafts, "user"));
329
267
  });
330
268
  drafts = drafts.map((section) => section === budgetSection ? { ...section, content } : section);
331
269
  }
332
270
  // Core alone turns validated drafts into measured durable sections.
333
271
  const sections = drafts.map((section) => ({
334
272
  ...section,
335
- tokens: countTokens(PacketWire.renderSection(section)),
273
+ weight: weighContent(PacketWire.renderSection(section)),
336
274
  }));
337
- const packetTokens = countTokens(PacketWire.renderSlot(sections, "system")) + countTokens(PacketWire.renderSlot(sections, "user"));
338
- return { tokens: packetTokens, sections, attributions: [] };
275
+ const renderWeight = weighContent(PacketWire.renderSlot(sections, "system")) + weighContent(PacketWire.renderSlot(sections, "user"));
276
+ return { weight: renderWeight, sections, attributions: [] };
339
277
  }
340
278
  // {§operator-config-workspace-execs} — the capability sheet and executor
341
279
  // documents share one workspace predicate with dispatch.
@@ -388,7 +326,7 @@ class PacketBuilder {
388
326
  }
389
327
  // #note12 — the plugin-provided reference docs (schemes' + execs' `documentation`),
390
328
  // materialized at worker://plurnk/docs/<name>.md by LoopDocs (like operator
391
- // docs) so the catalog can expose each doc's token weight.
329
+ // docs) so the catalog can expose each doc's curation weight.
392
330
  async docEntries(workspaceId) {
393
331
  const out = await this.#schemes.docs(); // scheme docs already drop PLURNK_SERVICE_DOCS_EXCLUDE names
394
332
  // {§send-300-choices} {§teaching-corpus} — the conditional teaching: questions.md
@@ -416,69 +354,29 @@ class PacketBuilder {
416
354
  return out;
417
355
  }
418
356
  // SPEC {§grinder} — the budget grinder. Runs pre-LLM (in runTurn, after the packet
419
- // is built, before provider.generate); fires only on actual ruler overflow. One
357
+ // is built, before provider.generate); fires only when curation weight exceeds
358
+ // the provider-derived curation budget. One
420
359
  // reversible rule: roll back context introduced by the NEWEST turn boundary —
421
360
  // rows born there plus exact older rows it transitioned folded→open — then
422
361
  // rebuild and re-measure.
423
362
  // {§grinder-overflow-only} — fires only on actual overflow, never speculatively
424
363
  async enforceBudget({ packet, provider, loopId, turnId, recordOverflow, rebuild }) {
425
- const ceiling = this.ceilingFor(provider);
426
- const measure = (p) => p.tokens;
427
- // {§tokenomics-window-unpollable-deliberate} — a null policy ceiling never triggers grinding.
428
- if (ceiling === null || measure(packet) <= ceiling) {
429
- return { packet, fit: true };
364
+ const budget = this.curationBudgetFor(provider);
365
+ const measure = (p) => p.weight;
366
+ if (budget === null || measure(packet) <= budget) {
367
+ return { packet, fit: true, boundaryRolledBack: false };
430
368
  }
431
- const usage = measure(packet);
432
- await recordOverflow({ usage, ceiling, deficit: usage - ceiling });
369
+ const weight = measure(packet);
370
+ await recordOverflow({ weight, budget, excess: weight - budget });
433
371
  // ONE rule, every turn ({§grinder-layer1-rollback}): atomically fold/tag
434
372
  // context introduced by the newest boundary. Other older history remains
435
- // model-owned; remaining ruler debt is neither failure nor strike.
373
+ // model-owned; remaining curation debt is neither failure nor strike.
436
374
  await this.#db.engine_grinder_fold_newest_turn({ loop_id: loopId, turn_id: turnId });
437
375
  const current = await rebuild();
438
- return { packet: current, fit: measure(current) <= ceiling };
376
+ return { packet: current, fit: measure(current) <= budget, boundaryRolledBack: true };
439
377
  }
440
- // {§tokenomics-context-envelope-admission}: one request-shaped predicate against
441
- // the effective total context envelope. Provider.contextWindow already includes
442
- // any stricter operator cap; exact or proven-bounded request evidence is required.
443
- async contextEnvelopeAdmission(packet, provider, signal) {
444
- if (provider.contextWindow === null) {
445
- return {
446
- admitted: false,
447
- reason: "unknown_context_window",
448
- detail: `provider ${JSON.stringify(provider.model)} reports no effective context envelope`,
449
- capacity: null,
450
- };
451
- }
452
- const maxTokens = this.maxTokensFor(provider);
453
- if (maxTokens === null) {
454
- return {
455
- admitted: false,
456
- reason: "unknown_output_envelope",
457
- detail: `provider ${JSON.stringify(provider.model)} reports no resolved generation envelope`,
458
- capacity: null,
459
- };
460
- }
461
- const capacity = provider.contextWindow - maxTokens;
462
- const measurement = assertPromptTokenMeasurement(await provider.countPromptTokens(PacketWire.packetToWireMessages(packet), signal), `provider ${JSON.stringify(provider.model)}`);
463
- if (measurement.kind === "estimate") {
464
- return {
465
- admitted: false,
466
- reason: "estimate",
467
- detail: `${measurement.source} is an empirical estimate and cannot verify the effective context envelope: ${measurement.detail}`,
468
- capacity,
469
- measurement,
470
- };
471
- }
472
- if (measurement.tokens > capacity) {
473
- return {
474
- admitted: false,
475
- reason: "over_capacity",
476
- detail: `${measurement.kind} prompt measurement ${measurement.tokens} exceeds effective prompt capacity ${capacity}`,
477
- capacity,
478
- measurement,
479
- };
480
- }
481
- return { admitted: true, capacity, measurement };
378
+ async rollbackNewestBoundary(loopId, turnId) {
379
+ await this.#db.engine_grinder_fold_newest_turn({ loop_id: loopId, turn_id: turnId });
482
380
  }
483
381
  // Every prior-turn operation failure is durable before packet assembly.
484
382
  // The model-facing Errors section is only a terse projection of those rows;
@@ -1 +1 @@
1
- {"version":3,"file":"PacketBuilder.js","sourceRoot":"","sources":["../../src/core/PacketBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PacketBuilder.js","sourceRoot":"","sources":["../../src/core/PacketBuilder.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,7 @@ export interface MintedProblem {
20
20
  }
21
21
  export default class ProblemLog {
22
22
  #private;
23
- constructor(db: Db);
23
+ constructor(db: Db, weigh: (text: string) => number);
24
24
  record(input: RecordProblem): Promise<MintedProblem>;
25
25
  }
26
26
  //# sourceMappingURL=ProblemLog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProblemLog.d.ts","sourceRoot":"","sources":["../../src/core/ProblemLog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG;QAAE,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAA;KAAE,CAAC;CACxE;AAID,MAAM,CAAC,OAAO,OAAO,UAAU;;IAG3B,YAAY,EAAE,EAAE,EAAE,EAEjB;IAEK,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAsDzD;CACJ"}
1
+ {"version":3,"file":"ProblemLog.d.ts","sourceRoot":"","sources":["../../src/core/ProblemLog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG;QAAE,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAA;KAAE,CAAC;CACxE;AAID,MAAM,CAAC,OAAO,OAAO,UAAU;;IAI3B,YAAY,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,EAGlD;IAEK,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CA8DzD;CACJ"}
@@ -1,10 +1,13 @@
1
1
  import Results from "./results.js";
2
+ import LogBody from "./LogBody.js";
2
3
  // Owns durable actionless failures. Instrumentation may observe the resulting row,
3
4
  // but it never creates, transforms, or substitutes for product failure truth.
4
5
  export default class ProblemLog {
5
6
  #db;
6
- constructor(db) {
7
+ #weighContent;
8
+ constructor(db, weigh) {
7
9
  this.#db = db;
10
+ this.#weighContent = weigh;
8
11
  }
9
12
  async record(input) {
10
13
  const coordinate = await this.#db.engine_loop_turn_seqs.get({
@@ -21,6 +24,7 @@ export default class ProblemLog {
21
24
  const failure = result;
22
25
  Results.attachInstance(failure, `log:///${coordinate.loop_seq}/${coordinate.turn_seq}/${input.sequence}/error`);
23
26
  const rx = JSON.stringify(failure);
27
+ const attrs = "{}";
24
28
  const row = await this.#db.engine_insert_log_entry.get({
25
29
  worker_id: input.workerId,
26
30
  loop_id: input.loopId,
@@ -46,10 +50,17 @@ export default class ProblemLog {
46
50
  rx,
47
51
  mimetype_rx: "application/json",
48
52
  status_rx: failure.status,
49
- tokens: 0,
53
+ weight: LogBody.weight({
54
+ op: "error",
55
+ attrs,
56
+ tx: "",
57
+ rx,
58
+ mimetypeTx: "text/plain",
59
+ mimetypeRx: "application/json",
60
+ }, this.#weighContent),
50
61
  state: "failed",
51
62
  outcome: input.outcome ?? failure.problem.type,
52
- attrs: "{}",
63
+ attrs,
53
64
  });
54
65
  if (row === undefined)
55
66
  throw new Error("ProblemLog.record: INSERT ... RETURNING produced no row");
@@ -1 +1 @@
1
- {"version":3,"file":"ProblemLog.js","sourceRoot":"","sources":["../../src/core/ProblemLog.ts"],"names":[],"mappings":"AAEA,OAAO,OAA8B,MAAM,cAAc,CAAC;AAmB1D,mFAAmF;AACnF,8EAA8E;AAC9E,MAAM,CAAC,OAAO,OAAO,UAAU;IAC3B,GAAG,CAAK;IAER,YAAY,EAAM;QACd,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAoB;QAC7B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,GAAG,CAGxD;YACC,OAAO,EAAE,KAAK,CAAC,MAAM;YACrB,OAAO,EAAE,KAAK,CAAC,MAAM;SACxB,CAAC,CAAC;QACH,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,6CAA6C,KAAK,CAAC,MAAM,SAAS,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QACtG,CAAC;QAED,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7D,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACxE,MAAM,IAAI,SAAS,CAAC,sDAAsD,CAAC,CAAC;QAChF,CAAC;QACD,MAAM,OAAO,GAAG,MAA6D,CAAC;QAC9E,OAAO,CAAC,cAAc,CAClB,OAAO,EACP,UAAU,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,QAAQ,CACjF,CAAC;QACF,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,GAAG,CAAiB;YACnE,SAAS,EAAE,KAAK,CAAC,QAAQ;YACzB,OAAO,EAAE,KAAK,CAAC,MAAM;YACrB,OAAO,EAAE,KAAK,CAAC,MAAM;YACrB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,aAAa,EAAE,IAAI;YACnB,EAAE,EAAE,OAAO;YACX,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,IAAI;YAChB,EAAE,EAAE,EAAE;YACN,WAAW,EAAE,YAAY;YACzB,EAAE;YACF,WAAW,EAAE,kBAAkB;YAC/B,SAAS,EAAE,OAAO,CAAC,MAAM;YACzB,MAAM,EAAE,CAAC;YACT,KAAK,EAAE,QAAQ;YACf,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI;YAC9C,KAAK,EAAE,IAAI;SACd,CAAC,CAAC;QACH,IAAI,GAAG,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAClG,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAC3C,CAAC;CACJ"}
1
+ {"version":3,"file":"ProblemLog.js","sourceRoot":"","sources":["../../src/core/ProblemLog.ts"],"names":[],"mappings":"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"}