@dsh-enhanced/plugin-control-plane 0.1.66 → 0.1.68
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/README.md +96 -22
- package/lib/cli.d.ts.map +1 -1
- package/lib/cli.js +66 -11
- package/lib/cli.js.map +1 -1
- package/lib/creation-capability-execution.d.ts +5 -1
- package/lib/creation-capability-execution.d.ts.map +1 -1
- package/lib/creation-capability-execution.js +42 -0
- package/lib/creation-capability-execution.js.map +1 -1
- package/lib/creation-capability-feedback.d.ts +16 -1
- package/lib/creation-capability-feedback.d.ts.map +1 -1
- package/lib/creation-capability-feedback.js +82 -5
- package/lib/creation-capability-feedback.js.map +1 -1
- package/lib/creation-capability-journal.d.ts.map +1 -1
- package/lib/creation-capability-journal.js +2 -0
- package/lib/creation-capability-journal.js.map +1 -1
- package/lib/creation-capability-runtime.d.ts +47 -1
- package/lib/creation-capability-runtime.d.ts.map +1 -1
- package/lib/creation-capability-runtime.js +105 -1
- package/lib/creation-capability-runtime.js.map +1 -1
- package/lib/creation-capability-types.d.ts +1 -0
- package/lib/creation-capability-types.d.ts.map +1 -1
- package/lib/index.d.ts +3 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -1
- package/lib/linux-source-build.d.ts +13 -2
- package/lib/linux-source-build.d.ts.map +1 -1
- package/lib/linux-source-build.js.map +1 -1
- package/lib/live-qualification-authority.js +2 -2
- package/lib/live-qualification-authority.js.map +1 -1
- package/lib/owner-instruction-drain.d.ts +60 -0
- package/lib/owner-instruction-drain.d.ts.map +1 -0
- package/lib/owner-instruction-drain.js +101 -0
- package/lib/owner-instruction-drain.js.map +1 -0
- package/lib/revision-capability-feedback.d.ts +165 -0
- package/lib/revision-capability-feedback.d.ts.map +1 -0
- package/lib/revision-capability-feedback.js +316 -0
- package/lib/revision-capability-feedback.js.map +1 -0
- package/lib/revision-capability-journal.d.ts +126 -0
- package/lib/revision-capability-journal.d.ts.map +1 -0
- package/lib/revision-capability-journal.js +981 -0
- package/lib/revision-capability-journal.js.map +1 -0
- package/lib/revision-capability-runtime.d.ts +92 -0
- package/lib/revision-capability-runtime.d.ts.map +1 -0
- package/lib/revision-capability-runtime.js +635 -0
- package/lib/revision-capability-runtime.js.map +1 -0
- package/lib/revision-capability-types.d.ts +335 -0
- package/lib/revision-capability-types.d.ts.map +1 -0
- package/lib/revision-capability-types.js +2 -0
- package/lib/revision-capability-types.js.map +1 -0
- package/lib/service.d.ts +199 -4
- package/lib/service.d.ts.map +1 -1
- package/lib/service.js +925 -70
- package/lib/service.js.map +1 -1
- package/lib/source-adoption-authority.js +2 -2
- package/lib/source-adoption-authority.js.map +1 -1
- package/lib/source-approval-authority.js +3 -3
- package/lib/source-approval-authority.js.map +1 -1
- package/lib/source-build.d.ts +33 -53
- package/lib/source-build.d.ts.map +1 -1
- package/lib/source-build.js +28 -408
- package/lib/source-build.js.map +1 -1
- package/lib/source-job-types.d.ts +111 -4
- package/lib/source-job-types.d.ts.map +1 -1
- package/lib/source-jobs.d.ts +72 -3
- package/lib/source-jobs.d.ts.map +1 -1
- package/lib/source-jobs.js +314 -43
- package/lib/source-jobs.js.map +1 -1
- package/lib/source-release-authority.js +2 -2
- package/lib/source-release-authority.js.map +1 -1
- package/lib/source-revision.d.ts +29 -3
- package/lib/source-revision.d.ts.map +1 -1
- package/lib/source-revision.js +40 -9
- package/lib/source-revision.js.map +1 -1
- package/lib/source-workspace.d.ts +11 -4
- package/lib/source-workspace.d.ts.map +1 -1
- package/lib/source-workspace.js +51 -18
- package/lib/source-workspace.js.map +1 -1
- package/lib/sqlite.d.ts +6 -7
- package/lib/sqlite.d.ts.map +1 -1
- package/lib/sqlite.js +255 -17
- package/lib/sqlite.js.map +1 -1
- package/lib/store.d.ts +143 -4
- package/lib/store.d.ts.map +1 -1
- package/lib/store.js +739 -66
- package/lib/store.js.map +1 -1
- package/lib/systemd-host-authority.js +4 -4
- package/lib/systemd-host-authority.js.map +1 -1
- package/lib/task-observation-authority.js +2 -2
- package/lib/task-observation-authority.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/work-item-creation-contract.d.ts +3 -1
- package/lib/work-item-creation-contract.d.ts.map +1 -1
- package/lib/work-item-creation-contract.js +10 -1
- package/lib/work-item-creation-contract.js.map +1 -1
- package/package.json +11 -8
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
import { evaluateRevisionBenefit, revisionBenefitContractDigest, validateRevisionBenefitWindowStats } from '@dsh-enhanced/assistant-growth-contract';
|
|
2
|
+
import { controlPlaneDigest } from './store.js';
|
|
3
|
+
/** Evidence windows are bounded to at most one day, as in the creation ledger. */
|
|
4
|
+
export const REVISION_BENEFIT_MAX_WINDOW_MS = 86_400_000;
|
|
5
|
+
/**
|
|
6
|
+
* Equal-length adjacent windows around the candidate adoption:
|
|
7
|
+
* parent [adoptedAt - W, adoptedAt], candidate [adoptedAt, adoptedAt + W].
|
|
8
|
+
* W is bounded by the candidate signed lifetime, the candidate serving time
|
|
9
|
+
* observed so far, the parent history before adoption and one day.
|
|
10
|
+
*/
|
|
11
|
+
export function revisionBenefitPairedWindows(input) {
|
|
12
|
+
const { candidate, parent, now } = input;
|
|
13
|
+
const adoption = candidate.version.adoptedAt;
|
|
14
|
+
if (!Number.isSafeInteger(now) || !Number.isSafeInteger(adoption) || adoption > now)
|
|
15
|
+
return undefined;
|
|
16
|
+
if (candidate.version.role !== 'revision')
|
|
17
|
+
return undefined;
|
|
18
|
+
if (!Number.isSafeInteger(parent.adoptedAt) || !Number.isSafeInteger(parent.expiresAt) || parent.adoptedAt >= adoption)
|
|
19
|
+
return undefined;
|
|
20
|
+
const lifetime = Math.min(REVISION_BENEFIT_MAX_WINDOW_MS, candidate.version.expiresAt - adoption, now - adoption);
|
|
21
|
+
const history = Math.min(REVISION_BENEFIT_MAX_WINDOW_MS, adoption - parent.adoptedAt);
|
|
22
|
+
const length = Math.min(lifetime, history);
|
|
23
|
+
if (!Number.isSafeInteger(length) || length < 1)
|
|
24
|
+
return undefined;
|
|
25
|
+
const candidateRange = Object.freeze({ start: adoption, end: adoption + length });
|
|
26
|
+
const parentRange = Object.freeze({ start: adoption - length, end: adoption });
|
|
27
|
+
if (candidateRange.end > candidate.version.expiresAt || parentRange.end > parent.expiresAt)
|
|
28
|
+
return undefined;
|
|
29
|
+
return Object.freeze({ candidate: candidateRange, parent: parentRange });
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Observation deadline used by the terminal rollback: the end of the paired
|
|
33
|
+
* candidate window, so the keep/rollback decision uses the same W as the
|
|
34
|
+
* evaluator instead of a lifetime-only cap.
|
|
35
|
+
*/
|
|
36
|
+
export function revisionBenefitObservationDeadline(input) {
|
|
37
|
+
return revisionBenefitPairedWindows(input)?.candidate.end;
|
|
38
|
+
}
|
|
39
|
+
/** True only for equal-length, adjacent parent-then-candidate windows. */
|
|
40
|
+
export function revisionBenefitWindowsArePaired(parent, candidate) {
|
|
41
|
+
return Number.isSafeInteger(parent.start) && Number.isSafeInteger(parent.end) && Number.isSafeInteger(candidate.start)
|
|
42
|
+
&& Number.isSafeInteger(candidate.end) && parent.end === candidate.start
|
|
43
|
+
&& candidate.end - candidate.start === parent.end - parent.start && parent.end > parent.start;
|
|
44
|
+
}
|
|
45
|
+
/** Sums two disjoint evidence sources over the exact same window. */
|
|
46
|
+
export function mergeRevisionBenefitWindows(left, right) {
|
|
47
|
+
if (left.windowStart !== right.windowStart || left.windowEnd !== right.windowEnd)
|
|
48
|
+
return undefined;
|
|
49
|
+
const merged = { ...left,
|
|
50
|
+
taskRevisions: left.taskRevisions + right.taskRevisions,
|
|
51
|
+
correctedOrWithdrawn: left.correctedOrWithdrawn + right.correctedOrWithdrawn,
|
|
52
|
+
failed: left.failed + right.failed, reworked: left.reworked + right.reworked,
|
|
53
|
+
latencyMsTotal: left.latencyMsTotal + right.latencyMsTotal,
|
|
54
|
+
tokensTotal: left.tokensTotal + right.tokensTotal,
|
|
55
|
+
inputTokensTotal: left.inputTokensTotal + right.inputTokensTotal,
|
|
56
|
+
outputTokensTotal: left.outputTokensTotal + right.outputTokensTotal };
|
|
57
|
+
try {
|
|
58
|
+
validateRevisionBenefitWindowStats(merged);
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
return undefined;
|
|
62
|
+
}
|
|
63
|
+
return merged;
|
|
64
|
+
}
|
|
65
|
+
const same = (left, right) => controlPlaneDigest(left) === controlPlaneDigest(right);
|
|
66
|
+
const taskLatencyMs = (execution) => execution?.quiescent && Number.isSafeInteger(execution.completedAt) && Number.isSafeInteger(execution.dispatchedAt)
|
|
67
|
+
&& execution.completedAt >= execution.dispatchedAt ? execution.completedAt - execution.dispatchedAt : undefined;
|
|
68
|
+
/** Exact foreground calls of one version inside the window, grouped per Inbox. */
|
|
69
|
+
function eligibleCalls(input) {
|
|
70
|
+
const { sample, owner } = input, version = sample.version;
|
|
71
|
+
const grouped = new Map();
|
|
72
|
+
for (const call of sample.calls) {
|
|
73
|
+
const foreground = call.foreground;
|
|
74
|
+
if (call.status !== 'completed' || call.attribution !== 'foreground' || foreground === undefined)
|
|
75
|
+
continue;
|
|
76
|
+
if (call.versionPlanId !== version.planId || call.role !== version.role
|
|
77
|
+
|| call.receiptDigest !== version.receiptDigest || call.artifactSha256 !== version.artifactSha256
|
|
78
|
+
|| call.schemaDigest !== version.schemaDigest
|
|
79
|
+
|| !version.tools.some(tool => tool.name === call.toolAlias))
|
|
80
|
+
continue;
|
|
81
|
+
const task = foreground.task;
|
|
82
|
+
if (task.scope.workspace !== owner.workspace || task.scope.preset !== owner.agentPreset
|
|
83
|
+
|| task.owner.principalRecordId !== owner.principalRecordId
|
|
84
|
+
|| task.owner.principalVersion !== owner.principalVersion)
|
|
85
|
+
continue;
|
|
86
|
+
if (!Number.isSafeInteger(call.claimedAt) || call.claimedAt < input.windowStart
|
|
87
|
+
|| call.claimedAt > input.windowEnd || call.claimedAt < version.adoptedAt
|
|
88
|
+
|| call.claimedAt >= version.expiresAt || task.dispatchedAt > call.claimedAt)
|
|
89
|
+
continue;
|
|
90
|
+
if (call.settledAt !== undefined && (!Number.isSafeInteger(call.settledAt)
|
|
91
|
+
|| call.settledAt < call.claimedAt || call.settledAt > input.windowEnd || call.settledAt >= version.expiresAt))
|
|
92
|
+
continue;
|
|
93
|
+
const prior = grouped.get(task.inboxId);
|
|
94
|
+
if (prior !== undefined && prior.sessionId !== task.sessionId)
|
|
95
|
+
return undefined;
|
|
96
|
+
if (prior !== undefined)
|
|
97
|
+
prior.calls.push(call);
|
|
98
|
+
else
|
|
99
|
+
grouped.set(task.inboxId, { sessionId: task.sessionId, calls: [call] });
|
|
100
|
+
}
|
|
101
|
+
return grouped;
|
|
102
|
+
}
|
|
103
|
+
function certifiedTask(input, canonical, inboxId, call) {
|
|
104
|
+
const { owner, delivery } = input;
|
|
105
|
+
const task = call.foreground.task;
|
|
106
|
+
if (!canonical || canonical.projection.subjectKind !== 'foreground-turn'
|
|
107
|
+
|| canonical.projection.subjectRef !== inboxId || canonical.projection.disposition !== 'upsert')
|
|
108
|
+
return undefined;
|
|
109
|
+
const source = delivery.inspectOwnerForegroundLearningTask({ authorityId: owner.authorityId,
|
|
110
|
+
principalId: owner.principalId, workspace: owner.workspace, agentPreset: owner.agentPreset,
|
|
111
|
+
outcomeId: canonical.triggerOutcomeId });
|
|
112
|
+
if (!source || source.protocol !== 'assistant-delivery/owner-foreground-learning/v1' || !same(source.canonical, canonical)
|
|
113
|
+
|| source.source.inboxId !== inboxId || source.source.truncated || !source.source.quiescent
|
|
114
|
+
|| source.source.sessionId !== task.sessionId
|
|
115
|
+
|| source.owner.authorityId !== owner.authorityId || source.owner.authorityHash !== owner.authorityHash
|
|
116
|
+
|| source.owner.principalId !== owner.principalId
|
|
117
|
+
|| source.owner.principalRecordId !== owner.principalRecordId
|
|
118
|
+
|| source.owner.principalVersion !== owner.principalVersion || source.owner.workspace !== owner.workspace
|
|
119
|
+
|| source.owner.agentPreset !== owner.agentPreset
|
|
120
|
+
|| source.owner.bindingVersion !== task.binding.version || source.owner.generation !== task.binding.generation
|
|
121
|
+
|| source.ownerRevision?.action === 'withdraw'
|
|
122
|
+
|| !['owner-feedback', 'independent-verifier'].includes(source.judgement)
|
|
123
|
+
|| !['achieved', 'not-achieved'].includes(source.canonical.objective?.status ?? ''))
|
|
124
|
+
return undefined;
|
|
125
|
+
return source;
|
|
126
|
+
}
|
|
127
|
+
/** Exact Delivery source and execution of one certified foreground task. */
|
|
128
|
+
function originalTaskSource(input, source, inboxId, call) {
|
|
129
|
+
const { owner, delivery } = input, task = call.foreground.task;
|
|
130
|
+
const original = delivery.inspectOwnerForegroundTaskSource({ authorityId: owner.authorityId,
|
|
131
|
+
principalId: owner.principalId, workspace: owner.workspace, agentPreset: owner.agentPreset,
|
|
132
|
+
expectedOwner: { authorityHash: owner.authorityHash, principalRecordId: owner.principalRecordId,
|
|
133
|
+
principalVersion: owner.principalVersion }, inboxId });
|
|
134
|
+
if (!original || source.source.sessionId !== original.binding.sessionId
|
|
135
|
+
|| source.owner.bindingVersion !== original.binding.version || source.owner.generation !== original.binding.generation
|
|
136
|
+
|| original.binding.version !== task.binding.version || original.binding.generation !== task.binding.generation
|
|
137
|
+
|| original.authorityId !== owner.authorityId || original.authorityHash !== owner.authorityHash
|
|
138
|
+
|| original.principalId !== owner.principalId
|
|
139
|
+
|| original.owner.principalRecordId !== owner.principalRecordId
|
|
140
|
+
|| original.owner.principalVersion !== owner.principalVersion)
|
|
141
|
+
return undefined;
|
|
142
|
+
return original;
|
|
143
|
+
}
|
|
144
|
+
function readRows(input, grouped) {
|
|
145
|
+
const { evaluation, owner } = input;
|
|
146
|
+
const scope = evaluation.canonicalHostScope({ workspace: owner.workspace, preset: owner.agentPreset });
|
|
147
|
+
const evidence = [];
|
|
148
|
+
const rows = [];
|
|
149
|
+
let watermark = 0;
|
|
150
|
+
for (const [inboxId, group] of grouped) {
|
|
151
|
+
const canonical = evaluation.getTrustedForegroundLearningProjection({ scope, inboxId });
|
|
152
|
+
const source = certifiedTask(input, canonical, inboxId, group.calls[0]);
|
|
153
|
+
if (!source)
|
|
154
|
+
throw new Error('revision benefit task source is not current');
|
|
155
|
+
const original = originalTaskSource(input, source, inboxId, group.calls[0]);
|
|
156
|
+
if (!original)
|
|
157
|
+
throw new Error('revision benefit task binding changed');
|
|
158
|
+
evidence.push(source.canonical.projection);
|
|
159
|
+
watermark = Math.max(watermark, source.canonical.scopeWatermark);
|
|
160
|
+
const metrics = evaluation.inspectTrustedOutcomeMetrics?.({
|
|
161
|
+
scope, outcomeId: source.canonical.objective?.outcomeId ?? source.canonical.triggerOutcomeId
|
|
162
|
+
});
|
|
163
|
+
const tokens = metrics === undefined || typeof metrics.inputTokens !== 'number' || typeof metrics.outputTokens !== 'number'
|
|
164
|
+
? undefined : { input: metrics.inputTokens, output: metrics.outputTokens };
|
|
165
|
+
const latencyMs = taskLatencyMs(original.execution);
|
|
166
|
+
rows.push({ inboxId, sessionId: group.sessionId,
|
|
167
|
+
callKeys: group.calls.map(call => call.key).sort(),
|
|
168
|
+
status: source.canonical.objective.status,
|
|
169
|
+
ownerRevisionAction: (source.ownerRevision?.action ?? 'initial'),
|
|
170
|
+
...(latencyMs === undefined ? {} : { latencyMs }),
|
|
171
|
+
...(tokens === undefined ? {} : { tokens }) });
|
|
172
|
+
}
|
|
173
|
+
return { rows, evidence, watermark };
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* One revision-benefit window over foreground-attributed entry calls. Rows the
|
|
177
|
+
* owner corrected are excluded from the aggregates and counted separately;
|
|
178
|
+
* withdrawn rows are absent; unmeasured cost/latency stay zero so the evaluator
|
|
179
|
+
* can only return insufficient.
|
|
180
|
+
*/
|
|
181
|
+
export function inspectRevisionCapabilityBenefitWindow(input) {
|
|
182
|
+
if (!Number.isSafeInteger(input.windowStart) || !Number.isSafeInteger(input.windowEnd)
|
|
183
|
+
|| input.windowEnd <= input.windowStart || input.windowEnd < 1)
|
|
184
|
+
return undefined;
|
|
185
|
+
const grouped = eligibleCalls(input);
|
|
186
|
+
if (grouped === undefined)
|
|
187
|
+
return undefined;
|
|
188
|
+
let read;
|
|
189
|
+
if (grouped.size === 0)
|
|
190
|
+
read = { rows: [], evidence: [], watermark: 0 };
|
|
191
|
+
else {
|
|
192
|
+
try {
|
|
193
|
+
const before = readRows(input, grouped);
|
|
194
|
+
const scope = input.evaluation.canonicalHostScope({ workspace: input.owner.workspace, preset: input.owner.agentPreset });
|
|
195
|
+
const fenced = input.evaluation.withTrustedCanonicalTaskWriterFence({ scope,
|
|
196
|
+
scopeWatermark: before.watermark, evidence: before.evidence }, () => {
|
|
197
|
+
const during = readRows(input, grouped);
|
|
198
|
+
if (!same(during, before))
|
|
199
|
+
throw new Error('revision benefit task source changed');
|
|
200
|
+
return during.rows;
|
|
201
|
+
});
|
|
202
|
+
if (!fenced.matched)
|
|
203
|
+
return undefined;
|
|
204
|
+
read = { ...before, rows: fenced.value };
|
|
205
|
+
}
|
|
206
|
+
catch {
|
|
207
|
+
return undefined;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
let correctedOrWithdrawn = 0, failed = 0, reworked = 0;
|
|
211
|
+
let latencyMsTotal = 0, tokensTotal = 0, inputTokensTotal = 0, outputTokensTotal = 0;
|
|
212
|
+
for (const row of read.rows) {
|
|
213
|
+
if (row.ownerRevisionAction !== 'initial') {
|
|
214
|
+
correctedOrWithdrawn += 1;
|
|
215
|
+
continue;
|
|
216
|
+
}
|
|
217
|
+
if (row.status === 'not-achieved')
|
|
218
|
+
failed += 1;
|
|
219
|
+
if (row.callKeys.length > 1)
|
|
220
|
+
reworked += 1;
|
|
221
|
+
latencyMsTotal += row.latencyMs ?? 0;
|
|
222
|
+
if (row.tokens !== undefined) {
|
|
223
|
+
tokensTotal += row.tokens.input + row.tokens.output;
|
|
224
|
+
inputTokensTotal += row.tokens.input;
|
|
225
|
+
outputTokensTotal += row.tokens.output;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
const stats = {
|
|
229
|
+
protocol: 'assistant-growth/revision-benefit-window/v1', artifactSha256: input.sample.version.artifactSha256,
|
|
230
|
+
windowStart: input.windowStart, windowEnd: input.windowEnd, taskRevisions: read.rows.length,
|
|
231
|
+
correctedOrWithdrawn, failed, reworked, latencyMsTotal, tokensTotal, inputTokensTotal, outputTokensTotal,
|
|
232
|
+
};
|
|
233
|
+
try {
|
|
234
|
+
validateRevisionBenefitWindowStats(stats);
|
|
235
|
+
}
|
|
236
|
+
catch {
|
|
237
|
+
return undefined;
|
|
238
|
+
}
|
|
239
|
+
return stats;
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Host-only evaluation over equal, adjacent parent/candidate windows. The
|
|
243
|
+
* evaluator refuses any unpaired window data instead of comparing arbitrary
|
|
244
|
+
* ranges.
|
|
245
|
+
*/
|
|
246
|
+
export function evaluateRevisionBenefitEvidence(input) {
|
|
247
|
+
try {
|
|
248
|
+
const windows = input.windows;
|
|
249
|
+
if (!revisionBenefitWindowsArePaired(windows.parent, windows.candidate))
|
|
250
|
+
return undefined;
|
|
251
|
+
if (input.parent.windowStart !== windows.parent.start || input.parent.windowEnd !== windows.parent.end)
|
|
252
|
+
return undefined;
|
|
253
|
+
const candidate = inspectRevisionCapabilityBenefitWindow({ sample: input.candidate, windowStart: windows.candidate.start,
|
|
254
|
+
windowEnd: windows.candidate.end, owner: input.owner, evaluation: input.evaluation, delivery: input.delivery, now: input.now });
|
|
255
|
+
if (candidate === undefined || candidate.windowStart !== windows.candidate.start || candidate.windowEnd !== windows.candidate.end) {
|
|
256
|
+
return undefined;
|
|
257
|
+
}
|
|
258
|
+
const evaluation = evaluateRevisionBenefit(input.contract, input.parent, candidate, input.now);
|
|
259
|
+
return Object.freeze({ evaluation, contractDigest: revisionBenefitContractDigest(input.contract),
|
|
260
|
+
candidate, parent: input.parent, windows });
|
|
261
|
+
}
|
|
262
|
+
catch {
|
|
263
|
+
return undefined;
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* The bounded negative-benefit decision: only a pinned, post-window `inferior`
|
|
268
|
+
* outcome for the entry's exact current plan rolls back to the parent CAS.
|
|
269
|
+
* Everything else leaves the adoption untouched.
|
|
270
|
+
*/
|
|
271
|
+
export async function autoRollbackInferiorRevision(input) {
|
|
272
|
+
const runtime = input.runtime;
|
|
273
|
+
if (!runtime || !input.benefitConfigured)
|
|
274
|
+
return { rolledBack: false, reason: 'benefit-not-configured' };
|
|
275
|
+
const entry = runtime.listEntries().find(item => item.currentPlanId === input.planId);
|
|
276
|
+
if (entry === undefined)
|
|
277
|
+
return { rolledBack: false, reason: 'entry-not-found' };
|
|
278
|
+
const current = runtime.inspectEntry(entry.entryId);
|
|
279
|
+
if (!current || current.currentPlanId !== input.planId)
|
|
280
|
+
return { rolledBack: false, reason: 'not-current' };
|
|
281
|
+
if (input.pinnedContractDigest === undefined)
|
|
282
|
+
return { rolledBack: false, reason: 'benefit-not-pinned' };
|
|
283
|
+
if (input.observationDeadline !== undefined && input.now >= input.observationDeadline) {
|
|
284
|
+
if (input.outcome !== undefined && input.outcome.contractDigest !== input.pinnedContractDigest) {
|
|
285
|
+
return { rolledBack: false, reason: 'outcome-contract-mismatch' };
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
if (input.observationDeadline !== undefined && input.now >= input.observationDeadline
|
|
289
|
+
&& (input.outcome === undefined || input.outcome.status !== 'non-inferior')) {
|
|
290
|
+
const reason = input.outcome === undefined ? 'observation-expired-unverified' : 'observation-expired-' + input.outcome.status;
|
|
291
|
+
const record = await (input.rollback ?? ((target, value) => target.rollback(value)))(runtime, { entryId: entry.entryId, expectedCurrentPlanId: input.planId });
|
|
292
|
+
return { rolledBack: true, reason, record };
|
|
293
|
+
}
|
|
294
|
+
const windowEnd = input.growthRunCreatedAt === undefined ? undefined
|
|
295
|
+
: input.growthRunCreatedAt + Math.max(1, input.observeWindowMs);
|
|
296
|
+
if (windowEnd === undefined || input.now < windowEnd)
|
|
297
|
+
return { rolledBack: false, reason: 'observation-open' };
|
|
298
|
+
if (input.outcome === undefined || input.outcome.contractDigest !== input.pinnedContractDigest) {
|
|
299
|
+
return { rolledBack: false, reason: 'outcome-missing' };
|
|
300
|
+
}
|
|
301
|
+
if (input.outcome.status !== 'inferior')
|
|
302
|
+
return { rolledBack: false, reason: 'outcome:' + input.outcome.status };
|
|
303
|
+
const record = await (input.rollback ?? ((target, value) => target.rollback(value)))(runtime, { entryId: entry.entryId, expectedCurrentPlanId: input.planId });
|
|
304
|
+
return { rolledBack: true, reason: input.outcome.reason, record };
|
|
305
|
+
}
|
|
306
|
+
/** Host-only terminal read combining the benefit ledger with the revision journal. */
|
|
307
|
+
export function inspectRevisionBenefitTerminal(input) {
|
|
308
|
+
const entryId = input.runtime.inspectBenefitEvidence(input.planId)?.version.entryId;
|
|
309
|
+
const entry = entryId === undefined ? undefined
|
|
310
|
+
: input.runtime.listEntries().find(item => item.entryId === entryId);
|
|
311
|
+
return Object.freeze({ protocol: 'plugin-control-plane/revision-benefit-terminal/v1',
|
|
312
|
+
planId: input.planId, outcome: input.outcome ?? null,
|
|
313
|
+
entry: entry === undefined ? null : { entryId: entry.entryId, currentPlanId: entry.currentPlanId },
|
|
314
|
+
rollback: entryId === undefined ? null : input.runtime.inspectLatestRollback(entryId) ?? null });
|
|
315
|
+
}
|
|
316
|
+
//# sourceMappingURL=revision-capability-feedback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"revision-capability-feedback.js","sourceRoot":"","sources":["../src/revision-capability-feedback.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import type { CreationCapabilityForegroundCallWitness } from './creation-capability-types.js';
|
|
2
|
+
import type { RevisionCapabilityAdoptionReceipt, RevisionCapabilityAdoptionRecord, RevisionCapabilityCall, RevisionCapabilityCallEvidence, RevisionCapabilityConfig, RevisionCapabilityEntry, RevisionCapabilityJournalPort, RevisionCapabilityRollbackRecord, RevisionCapabilityVersion } from './revision-capability-types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Host-only Delivery attestation of the exact foreground owner call that
|
|
5
|
+
* produced one revision entry invocation. Only structure, owner scope, call
|
|
6
|
+
* identity and digests are retained; no task text or arguments.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Host-native tool arguments are normalized by Delivery as JSON.parse then
|
|
10
|
+
* JSON.stringify; mirror that exact normalization so the foreground witness,
|
|
11
|
+
* the journal row and the runtime agree for every key order. Do not substitute
|
|
12
|
+
* a canonicalizing serializer here.
|
|
13
|
+
*/
|
|
14
|
+
export declare function revisionCallArgumentsDigest(value: unknown): string;
|
|
15
|
+
/** Read-only preflight; it never creates a signing key or ledger. */
|
|
16
|
+
export declare function validateRevisionCapabilityConfig(value: unknown): asserts value is RevisionCapabilityConfig;
|
|
17
|
+
/** Stable public identity for preflight separation from acceptance and creation adoption keys. */
|
|
18
|
+
export declare function revisionCapabilityPublicKey(config: RevisionCapabilityConfig): string;
|
|
19
|
+
/**
|
|
20
|
+
* Stable journal authority identity: canonical journal path, the full grant and the signing key file
|
|
21
|
+
* fingerprint. A missing, non-canonical or non-private key fails closed before any ledger exists.
|
|
22
|
+
*/
|
|
23
|
+
export declare function revisionCapabilityAuthorityDigest(input: {
|
|
24
|
+
path: string;
|
|
25
|
+
config: RevisionCapabilityConfig;
|
|
26
|
+
}): string;
|
|
27
|
+
export declare function verifyRevisionCapabilityAdoptionReceipt(value: unknown, authorityDigest: string, publicKey: string, now?: number): value is RevisionCapabilityAdoptionReceipt;
|
|
28
|
+
/** Reservations consume quota before any external action; recovery only marks uncertainty. */
|
|
29
|
+
export declare class RevisionCapabilityJournal implements RevisionCapabilityJournalPort {
|
|
30
|
+
readonly authorityDigest: string;
|
|
31
|
+
readonly publicKey: string;
|
|
32
|
+
private readonly db;
|
|
33
|
+
private readonly key;
|
|
34
|
+
private readonly identity;
|
|
35
|
+
private readonly ledgerPath;
|
|
36
|
+
private readonly config;
|
|
37
|
+
constructor(input: {
|
|
38
|
+
path: string;
|
|
39
|
+
config: RevisionCapabilityConfig;
|
|
40
|
+
});
|
|
41
|
+
private checkFiles;
|
|
42
|
+
private syncDirectory;
|
|
43
|
+
private transaction;
|
|
44
|
+
private count;
|
|
45
|
+
usage(): {
|
|
46
|
+
adoptions: number;
|
|
47
|
+
rollbacks: number;
|
|
48
|
+
calls: number;
|
|
49
|
+
};
|
|
50
|
+
private row;
|
|
51
|
+
private versionRow;
|
|
52
|
+
private decodeEntry;
|
|
53
|
+
private decodeVersion;
|
|
54
|
+
private decodeAdoption;
|
|
55
|
+
inspectAdoption(planId: string): RevisionCapabilityAdoptionRecord | undefined;
|
|
56
|
+
listEntries(): readonly RevisionCapabilityEntry[];
|
|
57
|
+
inspectVersion(planId: string): RevisionCapabilityVersion | undefined;
|
|
58
|
+
inspectEntry(entryId: string): {
|
|
59
|
+
entry: RevisionCapabilityEntry;
|
|
60
|
+
parent: RevisionCapabilityVersion;
|
|
61
|
+
current: RevisionCapabilityVersion;
|
|
62
|
+
} | undefined;
|
|
63
|
+
claim(input: {
|
|
64
|
+
planId: string;
|
|
65
|
+
parentPlanId: string;
|
|
66
|
+
certificateDigest: string;
|
|
67
|
+
}): {
|
|
68
|
+
created: boolean;
|
|
69
|
+
record: RevisionCapabilityAdoptionRecord;
|
|
70
|
+
};
|
|
71
|
+
settle(planId: string, status: 'closed' | 'unknown' | 'rejected', reason: string): void;
|
|
72
|
+
commit(input: {
|
|
73
|
+
entry: {
|
|
74
|
+
entryId: string;
|
|
75
|
+
name: string;
|
|
76
|
+
aliases: readonly string[];
|
|
77
|
+
};
|
|
78
|
+
parent: RevisionCapabilityVersion;
|
|
79
|
+
revision: RevisionCapabilityVersion;
|
|
80
|
+
receipt: RevisionCapabilityAdoptionReceipt;
|
|
81
|
+
expectedCurrentPlanId: string;
|
|
82
|
+
inFlightParentCalls: number;
|
|
83
|
+
}): RevisionCapabilityAdoptionRecord;
|
|
84
|
+
signReceipt(body: Omit<RevisionCapabilityAdoptionReceipt, 'signature'>): RevisionCapabilityAdoptionReceipt;
|
|
85
|
+
private insertVersion;
|
|
86
|
+
rollback(input: {
|
|
87
|
+
entryId: string;
|
|
88
|
+
expectedCurrentPlanId: string;
|
|
89
|
+
authorityId: string;
|
|
90
|
+
}): {
|
|
91
|
+
created: boolean;
|
|
92
|
+
record: RevisionCapabilityRollbackRecord;
|
|
93
|
+
};
|
|
94
|
+
/** Host-only ordered rollback history of one stable entry. */
|
|
95
|
+
listRollbacks(entryId: string): readonly RevisionCapabilityRollbackRecord[];
|
|
96
|
+
private decodeRollback;
|
|
97
|
+
private decodeForeground;
|
|
98
|
+
claimCall(input: {
|
|
99
|
+
entryId: string;
|
|
100
|
+
key: string;
|
|
101
|
+
argumentsDigest: string;
|
|
102
|
+
toolAlias: string;
|
|
103
|
+
versionPlanId: string;
|
|
104
|
+
foreground?: CreationCapabilityForegroundCallWitness;
|
|
105
|
+
}): {
|
|
106
|
+
created: boolean;
|
|
107
|
+
call: RevisionCapabilityCall;
|
|
108
|
+
};
|
|
109
|
+
private decodeCall;
|
|
110
|
+
settleCall(input: {
|
|
111
|
+
entryId: string;
|
|
112
|
+
key: string;
|
|
113
|
+
status: 'completed' | 'unknown';
|
|
114
|
+
result?: unknown;
|
|
115
|
+
}): void;
|
|
116
|
+
private callEvidence;
|
|
117
|
+
listCallEvidence(entryId: string): readonly RevisionCapabilityCallEvidence[];
|
|
118
|
+
/**
|
|
119
|
+
* Calls attributed to one exact retained version. This is the only revision
|
|
120
|
+
* benefit evidence source: it never consults the creation ledger.
|
|
121
|
+
*/
|
|
122
|
+
listBenefitCallEvidence(planId: string): readonly RevisionCapabilityCallEvidence[];
|
|
123
|
+
recoverClaims(): void;
|
|
124
|
+
close(): void;
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=revision-capability-journal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"revision-capability-journal.d.ts","sourceRoot":"","sources":["../src/revision-capability-journal.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,uCAAuC,EAA0B,MAAM,gCAAgC,CAAA;AACrH,OAAO,KAAK,EAAE,iCAAiC,EAAE,gCAAgC,EAAE,sBAAsB,EACvG,8BAA8B,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,6BAA6B,EACvF,gCAAgC,EACzD,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AA0FnE;;;;GAIG;AACH;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAElE;AA+DD,qEAAqE;AACrE,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,wBAAwB,CAoB1G;AAMD,kGAAkG;AAClG,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,wBAAwB,GAAG,MAAM,CAGpF;AAED;;;GAGG;AACH,wBAAgB,iCAAiC,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,wBAAwB,CAAA;CAAE,GAAG,MAAM,CAGnH;AA4BD,wBAAgB,uCAAuC,CAAC,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAChH,GAAG,SAAa,GAAG,KAAK,IAAI,iCAAiC,CAS9D;AAqCD,8FAA8F;AAC9F,qBAAa,yBAA0B,YAAW,6BAA6B;IAC7E,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAc;IACjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAW;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;IACvD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;gBACrC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,wBAAwB,CAAA;KAAE;IAwDrE,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,KAAK;IAGb,KAAK,IAAI;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;IAIhE,OAAO,CAAC,GAAG;IAGX,OAAO,CAAC,UAAU;IAGlB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,aAAa;IA+CrB,OAAO,CAAC,cAAc;IAoBtB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,gCAAgC,GAAG,SAAS;IAK7E,WAAW,IAAI,SAAS,uBAAuB,EAAE;IAKjD,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,yBAAyB,GAAG,SAAS;IAKrE,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,uBAAuB,CAAC;QAAC,MAAM,EAAE,yBAAyB,CAAC;QACjG,OAAO,EAAE,yBAAyB,CAAA;KAAE,GAAG,SAAS;IAWlD,KAAK,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,OAAO,EAAE,OAAO,CAAA;QACnG,MAAM,EAAE,gCAAgC,CAAA;KAAE;IAgB5C,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAavF,MAAM,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;SAAE,CAAA;QAClF,MAAM,EAAE,yBAAyB,CAAC;QAAC,QAAQ,EAAE,yBAAyB,CAAA;QACtE,OAAO,EAAE,iCAAiC,CAAC;QAAC,qBAAqB,EAAE,MAAM,CAAC;QAAC,mBAAmB,EAAE,MAAM,CAAA;KAAE,GACxG,gCAAgC;IAyDlC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,iCAAiC,EAAE,WAAW,CAAC,GAAG,iCAAiC;IAK1G,OAAO,CAAC,aAAa;IAWrB,QAAQ,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,qBAAqB,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GACrF;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,gCAAgC,CAAA;KAAE;IA+BhE,8DAA8D;IAC9D,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,gCAAgC,EAAE;IAO3E,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,gBAAgB;IAOxB,SAAS,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QACjH,UAAU,CAAC,EAAE,uCAAuC,CAAA;KAAE,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,sBAAsB,CAAA;KAAE;IA0B7G,OAAO,CAAC,UAAU;IAelB,UAAU,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAY5G,OAAO,CAAC,YAAY;IAcpB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,8BAA8B,EAAE;IAc5E;;;OAGG;IACH,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,8BAA8B,EAAE;IAWlF,aAAa,IAAI,IAAI;IAMrB,KAAK,IAAI,IAAI;CACd"}
|