@dsh-enhanced/assistant-skills 0.1.31 → 0.1.34
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 +56 -9
- package/lib/definition.d.ts +53 -2
- package/lib/definition.d.ts.map +1 -1
- package/lib/definition.js +96 -0
- package/lib/definition.js.map +1 -1
- package/lib/delegated-arm.d.ts +47 -0
- package/lib/delegated-arm.d.ts.map +1 -0
- package/lib/delegated-arm.js +26 -0
- package/lib/delegated-arm.js.map +1 -0
- package/lib/external-holdout.js +1 -1
- package/lib/external-holdout.js.map +1 -1
- package/lib/holdout-authority.d.ts +1 -122
- package/lib/holdout-authority.d.ts.map +1 -1
- package/lib/holdout-authority.js +5 -262
- package/lib/holdout-authority.js.map +1 -1
- package/lib/holdout-cli.d.ts.map +1 -1
- package/lib/holdout-cli.js +2 -0
- package/lib/holdout-cli.js.map +1 -1
- package/lib/holdout-qualification.d.ts +11 -3
- package/lib/holdout-qualification.d.ts.map +1 -1
- package/lib/holdout-qualification.js +19 -9
- package/lib/holdout-qualification.js.map +1 -1
- package/lib/index.d.ts +10 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +4 -0
- package/lib/index.js.map +1 -1
- package/lib/prospective-holdout.d.ts +1 -34
- package/lib/prospective-holdout.d.ts.map +1 -1
- package/lib/prospective-holdout.js +4 -253
- package/lib/prospective-holdout.js.map +1 -1
- package/lib/repair-agent.d.ts +11 -2
- package/lib/repair-agent.d.ts.map +1 -1
- package/lib/repair-agent.js +178 -17
- package/lib/repair-agent.js.map +1 -1
- package/lib/repair-process.d.ts +20 -0
- package/lib/repair-process.d.ts.map +1 -0
- package/lib/repair-process.js +92 -0
- package/lib/repair-process.js.map +1 -0
- package/lib/repair-profile.d.ts +6 -2
- package/lib/repair-profile.d.ts.map +1 -1
- package/lib/repair-profile.js +10 -4
- package/lib/repair-profile.js.map +1 -1
- package/lib/repair-runtime.d.ts +2 -0
- package/lib/repair-runtime.d.ts.map +1 -1
- package/lib/repair-runtime.js +7 -1
- package/lib/repair-runtime.js.map +1 -1
- package/lib/repair-workspace-path.d.ts +17 -0
- package/lib/repair-workspace-path.d.ts.map +1 -0
- package/lib/repair-workspace-path.js +84 -0
- package/lib/repair-workspace-path.js.map +1 -0
- package/lib/replay.d.ts.map +1 -1
- package/lib/replay.js +17 -2
- package/lib/replay.js.map +1 -1
- package/lib/service.d.ts +271 -2
- package/lib/service.d.ts.map +1 -1
- package/lib/service.js +473 -35
- package/lib/service.js.map +1 -1
- package/lib/store.d.ts +47 -0
- package/lib/store.d.ts.map +1 -1
- package/lib/store.js +262 -6
- package/lib/store.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/watch-proof.js +2 -2
- package/lib/watch-proof.js.map +1 -1
- package/package.json +8 -8
package/lib/store.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type FailureCaptureProvenance, type SkillDefinition } from './definition.js';
|
|
2
|
+
import { type RepairProcessWitness } from './repair-process.js';
|
|
2
3
|
export type SkillRunState = 'running' | 'succeeded' | 'failed' | 'unknown';
|
|
3
4
|
export interface SkillRunStep {
|
|
4
5
|
id: string;
|
|
@@ -16,6 +17,7 @@ export interface SkillRun {
|
|
|
16
17
|
state: SkillRunState;
|
|
17
18
|
steps: readonly SkillRunStep[];
|
|
18
19
|
candidateId?: string;
|
|
20
|
+
delegationDigest?: string;
|
|
19
21
|
goalExecutionRunId?: string;
|
|
20
22
|
goalDefinitionDigest?: string;
|
|
21
23
|
nativeGoalId?: string;
|
|
@@ -30,10 +32,24 @@ export interface SkillRunClaim {
|
|
|
30
32
|
version: number;
|
|
31
33
|
inputs: Readonly<Record<string, unknown>>;
|
|
32
34
|
candidateId?: string;
|
|
35
|
+
delegationDigest?: string;
|
|
33
36
|
goalExecutionRunId?: string;
|
|
34
37
|
goalDefinitionDigest?: string;
|
|
35
38
|
nativeGoalId?: string;
|
|
36
39
|
}
|
|
40
|
+
/** A one-shot native benchmark arm. Its definition is never promoted into the skill directory. */
|
|
41
|
+
export interface SkillDelegatedArmBinding {
|
|
42
|
+
protocol: 'assistant-skills/delegated-arm/v1';
|
|
43
|
+
planDigest: string;
|
|
44
|
+
cellId: string;
|
|
45
|
+
variantId: string;
|
|
46
|
+
definitionDigest: string;
|
|
47
|
+
sourceDigest: string;
|
|
48
|
+
recipientScopeDigest: string;
|
|
49
|
+
skillName: string;
|
|
50
|
+
version: number;
|
|
51
|
+
expiresAt: number;
|
|
52
|
+
}
|
|
37
53
|
export interface StoredSkillDefinition extends SkillDefinition {
|
|
38
54
|
version: number;
|
|
39
55
|
parentVersion: number | null;
|
|
@@ -254,6 +270,12 @@ export interface SkillRepairAuthorizationInput {
|
|
|
254
270
|
parentDigest: string;
|
|
255
271
|
maxIterations: number;
|
|
256
272
|
expiresAt: number;
|
|
273
|
+
/** Frozen at arm time. Undefined is accepted only for legacy fixed-route records. */
|
|
274
|
+
modelSelection?: {
|
|
275
|
+
provider: string;
|
|
276
|
+
model: string;
|
|
277
|
+
reasoningEffort?: string;
|
|
278
|
+
};
|
|
257
279
|
profileSequence?: readonly {
|
|
258
280
|
id: string;
|
|
259
281
|
digest: string;
|
|
@@ -288,11 +310,32 @@ export interface SkillRepairContinuation {
|
|
|
288
310
|
createdAt: number;
|
|
289
311
|
updatedAt: number;
|
|
290
312
|
}
|
|
313
|
+
export interface RepairExecutionLease {
|
|
314
|
+
authorizationId: string;
|
|
315
|
+
authorizationDigest: string;
|
|
316
|
+
iteration: number;
|
|
317
|
+
sessionId: string;
|
|
318
|
+
holderId: string;
|
|
319
|
+
fence: number;
|
|
320
|
+
deadlineAt: number;
|
|
321
|
+
process: RepairProcessWitness;
|
|
322
|
+
state: 'active' | 'released';
|
|
323
|
+
pendingModel: number;
|
|
324
|
+
pendingTool: number;
|
|
325
|
+
}
|
|
291
326
|
/** Owner-scoped immutable definitions and no-replay invocation receipts. */
|
|
292
327
|
export declare class SkillStore {
|
|
293
328
|
#private;
|
|
294
329
|
constructor(path: string);
|
|
295
330
|
close(): void;
|
|
331
|
+
reserveDelegatedArm(scope: object, binding: SkillDelegatedArmBinding): void;
|
|
332
|
+
inspectRepairExecution(scope: object, id: string, iteration: number): RepairExecutionLease | undefined;
|
|
333
|
+
claimRepairExecution(scope: object, id: string, iteration: number, sessionId: string, holderId: string, deadlineAt: number, options: {
|
|
334
|
+
recover: boolean;
|
|
335
|
+
}): RepairExecutionLease;
|
|
336
|
+
assertRepairExecution(scope: object, lease: RepairExecutionLease): void;
|
|
337
|
+
beginRepairEffect(scope: object, lease: RepairExecutionLease, kind: 'model' | 'tool'): () => void;
|
|
338
|
+
releaseRepairExecution(scope: object, lease: RepairExecutionLease): void;
|
|
296
339
|
createRepairContinuation(scope: object, input: SkillRepairAuthorizationInput, routeReceipt: unknown): SkillRepairContinuation;
|
|
297
340
|
repairUsage(scope: object, id: string): {
|
|
298
341
|
modelCalls: number;
|
|
@@ -353,6 +396,10 @@ export declare class SkillStore {
|
|
|
353
396
|
claimed: boolean;
|
|
354
397
|
run: SkillRun;
|
|
355
398
|
};
|
|
399
|
+
claimDelegated(scope: object, input: SkillRunClaim, bindingDigest: string): {
|
|
400
|
+
claimed: boolean;
|
|
401
|
+
run: SkillRun;
|
|
402
|
+
};
|
|
356
403
|
finish(scope: object, id: string, state: Exclude<SkillRunState, 'running'>, steps: readonly SkillRunStep[]): SkillRun;
|
|
357
404
|
checkpoint(scope: object, id: string, steps: readonly SkillRunStep[]): SkillRun;
|
|
358
405
|
getRun(scope: object, id: string): SkillRun | undefined;
|
package/lib/store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|
package/lib/store.js
CHANGED
|
@@ -3,6 +3,7 @@ import { dirname, isAbsolute } from 'node:path';
|
|
|
3
3
|
import { DatabaseSync } from 'node:sqlite';
|
|
4
4
|
import { acceptanceDigest } from '@dsh-enhanced/task-acceptance-contract';
|
|
5
5
|
import { validateFailureCaptureProvenance } from './definition.js';
|
|
6
|
+
import { currentRepairProcess, probeRepairProcess } from './repair-process.js';
|
|
6
7
|
function fail(message = 'assistant-skills: store operation rejected') { throw new Error(message); }
|
|
7
8
|
function json(value) {
|
|
8
9
|
if (value === null || typeof value === 'string' || typeof value === 'boolean')
|
|
@@ -40,6 +41,15 @@ function deploymentId(scope, candidateId, comparisonId, qualificationDigest, adm
|
|
|
40
41
|
function repairContinuationId(scope, input) { return `skill-repair-${acceptanceDigest([scope, input.ownerRouteId, input.invocationId])}`; }
|
|
41
42
|
function definitionValid(definition) { return !!definition && typeof definition === 'object' && definition.protocol === 'assistant-skills/definition/v1' && name(definition.name) && json(definition); }
|
|
42
43
|
function digest(value) { return typeof value === 'string' && /^[a-f0-9]{64}$/u.test(value); }
|
|
44
|
+
function delegatedArmBinding(value) {
|
|
45
|
+
if (!value || typeof value !== 'object' || Array.isArray(value) || !json(value))
|
|
46
|
+
return false;
|
|
47
|
+
const binding = value;
|
|
48
|
+
return Object.keys(binding).length === 10 && binding.protocol === 'assistant-skills/delegated-arm/v1'
|
|
49
|
+
&& digest(binding.planDigest) && text(binding.cellId, 256) && text(binding.variantId, 256)
|
|
50
|
+
&& digest(binding.definitionDigest) && digest(binding.sourceDigest) && digest(binding.recipientScopeDigest)
|
|
51
|
+
&& name(binding.skillName) && version(binding.version) && Number.isSafeInteger(binding.expiresAt);
|
|
52
|
+
}
|
|
43
53
|
function canonicalRevision(value) {
|
|
44
54
|
if (!value || typeof value !== 'object' || Array.isArray(value) || !json(value))
|
|
45
55
|
return false;
|
|
@@ -151,12 +161,20 @@ function repairAuthorization(value) {
|
|
|
151
161
|
if (!value || typeof value !== 'object' || Array.isArray(value) || !json(value))
|
|
152
162
|
return false;
|
|
153
163
|
const input = value;
|
|
154
|
-
if (!Object.keys(input).every(key => ['invocationId', 'ownerRouteId', 'source', 'profileId', 'profileDigest', 'skillName', 'parentVersion', 'parentDigest', 'maxIterations', 'expiresAt', 'profileSequence', 'feedbackAuthority'].includes(key))
|
|
164
|
+
if (!Object.keys(input).every(key => ['invocationId', 'ownerRouteId', 'source', 'profileId', 'profileDigest', 'skillName', 'parentVersion', 'parentDigest', 'maxIterations', 'expiresAt', 'modelSelection', 'profileSequence', 'feedbackAuthority'].includes(key))
|
|
155
165
|
|| !['invocationId', 'ownerRouteId', 'source', 'profileId', 'profileDigest', 'skillName', 'parentVersion', 'parentDigest', 'maxIterations', 'expiresAt'].every(key => Object.hasOwn(input, key))
|
|
156
166
|
|| !text(input.invocationId, 256) || !text(input.ownerRouteId, 256) || !text(input.profileId, 256) || !digest(input.profileDigest)
|
|
157
167
|
|| !name(input.skillName) || !version(input.parentVersion) || !digest(input.parentDigest) || !Number.isSafeInteger(input.maxIterations) || input.maxIterations < 1 || input.maxIterations > 4
|
|
158
168
|
|| !Number.isSafeInteger(input.expiresAt) || input.expiresAt <= Date.now() || input.expiresAt > Date.now() + 7 * 86400000)
|
|
159
169
|
return false;
|
|
170
|
+
if (input.modelSelection !== undefined) {
|
|
171
|
+
const selection = input.modelSelection;
|
|
172
|
+
if (!selection || typeof selection !== 'object' || Array.isArray(selection) || !json(selection)
|
|
173
|
+
|| !Object.keys(selection).every(key => ['provider', 'model', 'reasoningEffort'].includes(key))
|
|
174
|
+
|| !Object.hasOwn(selection, 'provider') || !Object.hasOwn(selection, 'model') || !text(selection.provider, 256) || !text(selection.model, 256)
|
|
175
|
+
|| selection.reasoningEffort !== undefined && !text(selection.reasoningEffort, 256))
|
|
176
|
+
return false;
|
|
177
|
+
}
|
|
160
178
|
if (input.profileSequence !== undefined && (!Array.isArray(input.profileSequence) || input.profileSequence.length !== input.maxIterations
|
|
161
179
|
|| input.profileSequence.some(item => !item || typeof item !== 'object' || Object.keys(item).length !== 2 || !text(item.id, 128) || !digest(item.digest))
|
|
162
180
|
|| input.profileSequence[0]?.id !== input.profileId || input.profileSequence[0]?.digest !== input.profileDigest))
|
|
@@ -239,6 +257,7 @@ export class SkillStore {
|
|
|
239
257
|
this.#db.exec(`PRAGMA journal_mode=WAL; PRAGMA synchronous=FULL; PRAGMA busy_timeout=250;
|
|
240
258
|
CREATE TABLE IF NOT EXISTS skill_definitions(scope_key TEXT NOT NULL, name TEXT NOT NULL, version INTEGER NOT NULL, retired INTEGER NOT NULL, definition_json TEXT NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, PRIMARY KEY(scope_key,name,version)) STRICT, WITHOUT ROWID;
|
|
241
259
|
CREATE TABLE IF NOT EXISTS skill_runs(id TEXT PRIMARY KEY, scope_key TEXT NOT NULL, identity_json TEXT NOT NULL, run_json TEXT NOT NULL, state TEXT NOT NULL CHECK(state IN ('running','succeeded','failed','unknown'))) STRICT;
|
|
260
|
+
CREATE TABLE IF NOT EXISTS skill_delegated_arms(scope_key TEXT PRIMARY KEY, plan_digest TEXT NOT NULL, cell_id TEXT NOT NULL, binding_digest TEXT NOT NULL, binding_json TEXT NOT NULL, UNIQUE(plan_digest,cell_id)) STRICT, WITHOUT ROWID;
|
|
242
261
|
CREATE TABLE IF NOT EXISTS skill_candidates(scope_key TEXT NOT NULL, id TEXT NOT NULL, candidate_json TEXT NOT NULL, PRIMARY KEY(scope_key,id)) STRICT, WITHOUT ROWID;
|
|
243
262
|
CREATE TABLE IF NOT EXISTS skill_comparisons(scope_key TEXT NOT NULL,id TEXT NOT NULL,profile_id TEXT NOT NULL,identity_json TEXT NOT NULL,comparison_json TEXT NOT NULL,state TEXT NOT NULL CHECK(state IN ('running','complete','unknown')),PRIMARY KEY(scope_key,id)) STRICT, WITHOUT ROWID;
|
|
244
263
|
CREATE TABLE IF NOT EXISTS skill_watches(scope_key TEXT NOT NULL,id TEXT NOT NULL,watch_json TEXT NOT NULL,state TEXT NOT NULL CHECK(state IN ('watching','rolled-back','expired','revoked','superseded','exhausted')),PRIMARY KEY(scope_key,id)) STRICT, WITHOUT ROWID;
|
|
@@ -246,6 +265,7 @@ export class SkillStore {
|
|
|
246
265
|
CREATE TABLE IF NOT EXISTS skill_captures(scope_key TEXT NOT NULL,id TEXT NOT NULL,capture_json TEXT NOT NULL,state TEXT NOT NULL CHECK(state IN ('pending','captured','revoked','expired','unsupported','unknown')),PRIMARY KEY(scope_key,id)) STRICT, WITHOUT ROWID;
|
|
247
266
|
CREATE TABLE IF NOT EXISTS skill_repair_continuations(scope_key TEXT NOT NULL,id TEXT NOT NULL,authorization_digest TEXT NOT NULL,route_receipt_digest TEXT NOT NULL,revision INTEGER NOT NULL,state TEXT NOT NULL CHECK(state IN ('armed','source-confirmed','creating-repair','repairing','repair-achieved','capturing','candidate-staged','comparing','watching','complete','rejected','revoked','expired','unknown')),continuation_json TEXT NOT NULL,PRIMARY KEY(scope_key,id)) STRICT, WITHOUT ROWID;
|
|
248
267
|
CREATE TABLE IF NOT EXISTS skill_repair_usage(scope_key TEXT NOT NULL,id TEXT NOT NULL,authorization_digest TEXT NOT NULL,model_calls INTEGER NOT NULL CHECK(model_calls>=0),tool_calls INTEGER NOT NULL CHECK(tool_calls>=0),PRIMARY KEY(scope_key,id)) STRICT, WITHOUT ROWID;
|
|
268
|
+
CREATE TABLE IF NOT EXISTS skill_repair_execution(scope_key TEXT NOT NULL,id TEXT NOT NULL,iteration INTEGER NOT NULL,lease_json TEXT NOT NULL,fence INTEGER NOT NULL,state TEXT NOT NULL CHECK(state IN ('active','released')),pending_model INTEGER NOT NULL CHECK(pending_model>=0),pending_tool INTEGER NOT NULL CHECK(pending_tool>=0),PRIMARY KEY(scope_key,id,iteration)) STRICT, WITHOUT ROWID;
|
|
249
269
|
CREATE INDEX IF NOT EXISTS skill_definitions_current ON skill_definitions(scope_key,name,version DESC);
|
|
250
270
|
CREATE INDEX IF NOT EXISTS skill_runs_scope ON skill_runs(scope_key,id);
|
|
251
271
|
CREATE INDEX IF NOT EXISTS skill_watches_scope_state ON skill_watches(scope_key,state);
|
|
@@ -279,9 +299,149 @@ export class SkillStore {
|
|
|
279
299
|
this.#db.prepare("UPDATE skill_deployments SET state='blocked', deployment_json=json_set(deployment_json, '$.state', 'blocked', '$.updatedAt', ?) WHERE state IN ('canary','promoted') AND EXISTS (SELECT 1 FROM json_each(skill_deployments.deployment_json, '$.runIds') claimed JOIN skill_runs run ON run.id=claimed.value AND run.scope_key=skill_deployments.scope_key WHERE run.state IN ('unknown','failed'))").run(Date.now());
|
|
280
300
|
this.#db.prepare("UPDATE skill_comparisons SET state='unknown', comparison_json=json_set(comparison_json, '$.state', 'unknown', '$.updatedAt', ?) WHERE state='running'").run(Date.now());
|
|
281
301
|
this.#db.exec("CREATE UNIQUE INDEX IF NOT EXISTS skill_runs_one_active ON skill_runs(scope_key,json_extract(identity_json,'$.sessionId'),json_extract(identity_json,'$.goalId')) WHERE state='running'");
|
|
302
|
+
this.#db.exec("CREATE UNIQUE INDEX IF NOT EXISTS skill_runs_one_delegated_arm ON skill_runs(scope_key,json_extract(identity_json,'$.delegationDigest')) WHERE json_extract(identity_json,'$.delegationDigest') IS NOT NULL");
|
|
282
303
|
this.#db.exec("CREATE UNIQUE INDEX IF NOT EXISTS skill_comparisons_one_active ON skill_comparisons(scope_key) WHERE state='running'");
|
|
283
304
|
}
|
|
284
305
|
close() { this.#db.close(); }
|
|
306
|
+
reserveDelegatedArm(scope, binding) {
|
|
307
|
+
const key = scopeKey(scope);
|
|
308
|
+
if (!delegatedArmBinding(binding) || binding.recipientScopeDigest !== acceptanceDigest(scope) || binding.expiresAt <= Date.now())
|
|
309
|
+
fail('assistant-skills: invalid delegated arm');
|
|
310
|
+
const saved = clone(binding), bindingDigest = acceptanceDigest(saved);
|
|
311
|
+
this.#db.exec('BEGIN IMMEDIATE');
|
|
312
|
+
try {
|
|
313
|
+
const existing = this.#delegatedArm(key);
|
|
314
|
+
const cell = this.#db.prepare('SELECT scope_key FROM skill_delegated_arms WHERE plan_digest=? AND cell_id=?').get(saved.planDigest, saved.cellId);
|
|
315
|
+
if (existing || cell || this.#db.prepare('SELECT 1 FROM skill_definitions WHERE scope_key=? LIMIT 1').get(key)
|
|
316
|
+
|| this.#db.prepare('SELECT 1 FROM skill_candidates WHERE scope_key=? LIMIT 1').get(key)
|
|
317
|
+
|| this.#db.prepare('SELECT 1 FROM skill_runs WHERE scope_key=? LIMIT 1').get(key))
|
|
318
|
+
fail('assistant-skills: delegated arm unavailable');
|
|
319
|
+
this.#db.prepare('INSERT INTO skill_delegated_arms VALUES(?,?,?,?,?)').run(key, saved.planDigest, saved.cellId, bindingDigest, JSON.stringify(saved));
|
|
320
|
+
this.#db.exec('COMMIT');
|
|
321
|
+
}
|
|
322
|
+
catch (error) {
|
|
323
|
+
try {
|
|
324
|
+
this.#db.exec('ROLLBACK');
|
|
325
|
+
}
|
|
326
|
+
catch { }
|
|
327
|
+
throw error;
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
inspectRepairExecution(scope, id, iteration) {
|
|
331
|
+
const key = scopeKey(scope);
|
|
332
|
+
if (!text(id, 128) || !version(iteration))
|
|
333
|
+
fail('assistant-skills: invalid repair execution reference');
|
|
334
|
+
const value = this.#repairExecution(key, id, iteration);
|
|
335
|
+
return value === undefined ? undefined : clone(value);
|
|
336
|
+
}
|
|
337
|
+
claimRepairExecution(scope, id, iteration, sessionId, holderId, deadlineAt, options) {
|
|
338
|
+
const key = scopeKey(scope);
|
|
339
|
+
if (!text(id, 128) || !version(iteration) || !text(sessionId, 512) || !text(holderId, 512)
|
|
340
|
+
|| !Number.isSafeInteger(deadlineAt) || deadlineAt <= Date.now() || !options || Object.keys(options).length !== 1 || typeof options.recover !== 'boolean')
|
|
341
|
+
fail('assistant-skills: invalid repair execution claim');
|
|
342
|
+
const process = currentRepairProcess();
|
|
343
|
+
this.#db.exec('BEGIN IMMEDIATE');
|
|
344
|
+
try {
|
|
345
|
+
const continuation = this.#repairExecutionAuthorization(key, id, iteration, deadlineAt);
|
|
346
|
+
const current = this.#repairExecution(key, id, iteration);
|
|
347
|
+
if (!options.recover) {
|
|
348
|
+
if (current !== undefined || !process)
|
|
349
|
+
fail('assistant-skills: repair execution recovery required');
|
|
350
|
+
const lease = { authorizationId: id, authorizationDigest: continuation.authorizationDigest, iteration, sessionId, holderId, fence: 1, deadlineAt,
|
|
351
|
+
process, state: 'active', pendingModel: 0, pendingTool: 0 };
|
|
352
|
+
this.#putRepairExecution(key, lease);
|
|
353
|
+
this.#db.exec('COMMIT');
|
|
354
|
+
return clone(lease);
|
|
355
|
+
}
|
|
356
|
+
if (!current || current.authorizationDigest !== continuation.authorizationDigest || current.sessionId !== sessionId || current.iteration !== iteration || current.deadlineAt !== deadlineAt)
|
|
357
|
+
fail('assistant-skills: repair execution recovery unavailable');
|
|
358
|
+
if (current.state === 'released' && current.pendingModel === 0 && current.pendingTool === 0 && this.#sameRepairProcess(current.process, process)) {
|
|
359
|
+
const lease = { ...current, holderId, fence: current.fence + 1, process: process ?? current.process, state: 'active' };
|
|
360
|
+
this.#updateRepairExecution(key, current, lease);
|
|
361
|
+
this.#db.exec('COMMIT');
|
|
362
|
+
return clone(lease);
|
|
363
|
+
}
|
|
364
|
+
if (!['active', 'released'].includes(current.state) || current.pendingModel !== 0 || current.pendingTool !== 0 || !process || probeRepairProcess(current.process) !== 'gone')
|
|
365
|
+
fail('assistant-skills: repair execution holder remains authoritative');
|
|
366
|
+
const lease = { ...current, holderId, fence: current.fence + 1, process, state: 'active' };
|
|
367
|
+
this.#updateRepairExecution(key, current, lease);
|
|
368
|
+
this.#db.exec('COMMIT');
|
|
369
|
+
return clone(lease);
|
|
370
|
+
}
|
|
371
|
+
catch (error) {
|
|
372
|
+
try {
|
|
373
|
+
this.#db.exec('ROLLBACK');
|
|
374
|
+
}
|
|
375
|
+
catch { }
|
|
376
|
+
throw error;
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
assertRepairExecution(scope, lease) {
|
|
380
|
+
const key = scopeKey(scope);
|
|
381
|
+
this.#assertRepairExecution(key, lease, true);
|
|
382
|
+
}
|
|
383
|
+
beginRepairEffect(scope, lease, kind) {
|
|
384
|
+
const key = scopeKey(scope);
|
|
385
|
+
if (kind !== 'model' && kind !== 'tool')
|
|
386
|
+
fail('assistant-skills: invalid repair effect');
|
|
387
|
+
this.#db.exec('BEGIN IMMEDIATE');
|
|
388
|
+
try {
|
|
389
|
+
const current = this.#assertRepairExecution(key, lease, true);
|
|
390
|
+
const field = kind === 'model' ? 'pendingModel' : 'pendingTool';
|
|
391
|
+
const saved = { ...current, [field]: current[field] + 1 };
|
|
392
|
+
this.#updateRepairExecution(key, current, saved);
|
|
393
|
+
this.#db.exec('COMMIT');
|
|
394
|
+
}
|
|
395
|
+
catch (error) {
|
|
396
|
+
try {
|
|
397
|
+
this.#db.exec('ROLLBACK');
|
|
398
|
+
}
|
|
399
|
+
catch { }
|
|
400
|
+
throw error;
|
|
401
|
+
}
|
|
402
|
+
let finished = false;
|
|
403
|
+
return () => {
|
|
404
|
+
if (finished)
|
|
405
|
+
return;
|
|
406
|
+
this.#db.exec('BEGIN IMMEDIATE');
|
|
407
|
+
try {
|
|
408
|
+
const current = this.#repairExecution(key, lease.authorizationId, lease.iteration);
|
|
409
|
+
const field = kind === 'model' ? 'pendingModel' : 'pendingTool';
|
|
410
|
+
if (!current || current.fence !== lease.fence || current.authorizationDigest !== lease.authorizationDigest || current.sessionId !== lease.sessionId
|
|
411
|
+
|| current.holderId !== lease.holderId || current.deadlineAt !== lease.deadlineAt || !this.#sameRepairProcess(current.process, currentRepairProcess())
|
|
412
|
+
|| current.state !== 'active' || current[field] < 1)
|
|
413
|
+
fail('assistant-skills: repair effect fence conflict');
|
|
414
|
+
this.#updateRepairExecution(key, current, { ...current, [field]: current[field] - 1 });
|
|
415
|
+
this.#db.exec('COMMIT');
|
|
416
|
+
finished = true;
|
|
417
|
+
}
|
|
418
|
+
catch (error) {
|
|
419
|
+
try {
|
|
420
|
+
this.#db.exec('ROLLBACK');
|
|
421
|
+
}
|
|
422
|
+
catch { }
|
|
423
|
+
throw error;
|
|
424
|
+
}
|
|
425
|
+
};
|
|
426
|
+
}
|
|
427
|
+
releaseRepairExecution(scope, lease) {
|
|
428
|
+
const key = scopeKey(scope);
|
|
429
|
+
this.#db.exec('BEGIN IMMEDIATE');
|
|
430
|
+
try {
|
|
431
|
+
const current = this.#assertRepairExecution(key, lease, false);
|
|
432
|
+
if (current.pendingModel !== 0 || current.pendingTool !== 0)
|
|
433
|
+
fail('assistant-skills: repair effects remain pending');
|
|
434
|
+
this.#updateRepairExecution(key, current, { ...current, state: 'released' });
|
|
435
|
+
this.#db.exec('COMMIT');
|
|
436
|
+
}
|
|
437
|
+
catch (error) {
|
|
438
|
+
try {
|
|
439
|
+
this.#db.exec('ROLLBACK');
|
|
440
|
+
}
|
|
441
|
+
catch { }
|
|
442
|
+
throw error;
|
|
443
|
+
}
|
|
444
|
+
}
|
|
285
445
|
createRepairContinuation(scope, input, routeReceipt) {
|
|
286
446
|
const key = scopeKey(scope);
|
|
287
447
|
if (!repairAuthorization(input) || !json(routeReceipt))
|
|
@@ -1230,15 +1390,34 @@ export class SkillStore {
|
|
|
1230
1390
|
return saved;
|
|
1231
1391
|
}
|
|
1232
1392
|
claim(scope, input) {
|
|
1393
|
+
return this.#claim(scope, input);
|
|
1394
|
+
}
|
|
1395
|
+
claimDelegated(scope, input, bindingDigest) {
|
|
1396
|
+
if (!digest(bindingDigest))
|
|
1397
|
+
fail('assistant-skills: invalid delegated claim');
|
|
1398
|
+
return this.#claim(scope, input, bindingDigest);
|
|
1399
|
+
}
|
|
1400
|
+
#claim(scope, input, delegationDigest) {
|
|
1233
1401
|
const key = scopeKey(scope);
|
|
1234
1402
|
this.#validateClaim(scope, input);
|
|
1235
1403
|
const id = runId(scope, input.sessionId, input.invocationId);
|
|
1236
1404
|
const identity = clone({ invocationId: input.invocationId, goalId: input.goalId, sessionId: input.sessionId, skillName: input.skillName, version: input.version, inputs: input.inputs, ...(input.goalExecutionRunId === undefined ? {} : { goalExecutionRunId: input.goalExecutionRunId }),
|
|
1237
|
-
...(input.goalDefinitionDigest === undefined ? {} : { goalDefinitionDigest: input.goalDefinitionDigest }), ...(input.nativeGoalId === undefined ? {} : { nativeGoalId: input.nativeGoalId }), ...(input.candidateId === undefined ? {} : { candidateId: input.candidateId })
|
|
1405
|
+
...(input.goalDefinitionDigest === undefined ? {} : { goalDefinitionDigest: input.goalDefinitionDigest }), ...(input.nativeGoalId === undefined ? {} : { nativeGoalId: input.nativeGoalId }), ...(input.candidateId === undefined ? {} : { candidateId: input.candidateId }),
|
|
1406
|
+
...(delegationDigest === undefined ? {} : { delegationDigest }) });
|
|
1238
1407
|
this.#db.exec('BEGIN IMMEDIATE');
|
|
1239
1408
|
try {
|
|
1240
|
-
|
|
1241
|
-
|
|
1409
|
+
const arm = this.#delegatedArm(key);
|
|
1410
|
+
if (delegationDigest === undefined) {
|
|
1411
|
+
if (arm)
|
|
1412
|
+
fail('assistant-skills: delegated arm requires delegated claim');
|
|
1413
|
+
if (input.candidateId !== undefined)
|
|
1414
|
+
this.#validateTrialClaim(key, input);
|
|
1415
|
+
}
|
|
1416
|
+
else {
|
|
1417
|
+
if (!arm || arm.bindingDigest !== delegationDigest || arm.binding.expiresAt <= Date.now() || input.candidateId !== undefined
|
|
1418
|
+
|| arm.binding.skillName !== input.skillName || arm.binding.version !== input.version)
|
|
1419
|
+
fail('assistant-skills: delegated claim unavailable');
|
|
1420
|
+
}
|
|
1242
1421
|
const existing = this.#db.prepare('SELECT identity_json,run_json FROM skill_runs WHERE id=? AND scope_key=?').get(id, key);
|
|
1243
1422
|
if (existing) {
|
|
1244
1423
|
if (acceptanceDigest(identity) !== acceptanceDigest(JSON.parse(existing.identity_json)))
|
|
@@ -1246,7 +1425,10 @@ export class SkillStore {
|
|
|
1246
1425
|
this.#db.exec('COMMIT');
|
|
1247
1426
|
return { claimed: false, run: clone(JSON.parse(existing.run_json)) };
|
|
1248
1427
|
}
|
|
1249
|
-
if (
|
|
1428
|
+
if (delegationDigest !== undefined && this.#db.prepare("SELECT 1 FROM skill_runs WHERE scope_key=? AND json_extract(identity_json,'$.delegationDigest')=? LIMIT 1").get(key, delegationDigest)) {
|
|
1429
|
+
fail('assistant-skills: delegated arm invocation already consumed');
|
|
1430
|
+
}
|
|
1431
|
+
if (delegationDigest === undefined && input.candidateId === undefined) {
|
|
1250
1432
|
const active = this.#latest(key, input.skillName);
|
|
1251
1433
|
if (!active || active.retired || active.version !== input.version)
|
|
1252
1434
|
fail('assistant-skills: inactive skill version');
|
|
@@ -1421,6 +1603,71 @@ export class SkillStore {
|
|
|
1421
1603
|
const row = this.#db.prepare('SELECT continuation_json FROM skill_repair_continuations WHERE scope_key=? AND id=?').get(key, id);
|
|
1422
1604
|
return row === undefined ? undefined : JSON.parse(row.continuation_json);
|
|
1423
1605
|
}
|
|
1606
|
+
#repairExecution(key, id, iteration) {
|
|
1607
|
+
const row = this.#db.prepare('SELECT lease_json FROM skill_repair_execution WHERE scope_key=? AND id=? AND iteration=?').get(key, id, iteration);
|
|
1608
|
+
if (!row)
|
|
1609
|
+
return undefined;
|
|
1610
|
+
try {
|
|
1611
|
+
const lease = JSON.parse(row.lease_json);
|
|
1612
|
+
if (!this.#validRepairExecution(lease) || lease.authorizationId !== id || lease.iteration !== iteration)
|
|
1613
|
+
fail('assistant-skills: invalid repair execution record');
|
|
1614
|
+
return lease;
|
|
1615
|
+
}
|
|
1616
|
+
catch (error) {
|
|
1617
|
+
if (error instanceof Error && error.message.startsWith('assistant-skills:'))
|
|
1618
|
+
throw error;
|
|
1619
|
+
fail('assistant-skills: invalid repair execution record');
|
|
1620
|
+
}
|
|
1621
|
+
}
|
|
1622
|
+
#putRepairExecution(key, lease) {
|
|
1623
|
+
if (!this.#validRepairExecution(lease))
|
|
1624
|
+
fail('assistant-skills: invalid repair execution record');
|
|
1625
|
+
this.#db.prepare('INSERT INTO skill_repair_execution(scope_key,id,iteration,lease_json,fence,state,pending_model,pending_tool) VALUES(?,?,?,?,?,?,?,?) ON CONFLICT(scope_key,id,iteration) DO UPDATE SET lease_json=excluded.lease_json,fence=excluded.fence,state=excluded.state,pending_model=excluded.pending_model,pending_tool=excluded.pending_tool')
|
|
1626
|
+
.run(key, lease.authorizationId, lease.iteration, JSON.stringify(lease), lease.fence, lease.state, lease.pendingModel, lease.pendingTool);
|
|
1627
|
+
}
|
|
1628
|
+
#updateRepairExecution(key, expected, saved) {
|
|
1629
|
+
if (!this.#validRepairExecution(expected) || !this.#validRepairExecution(saved) || expected.authorizationId !== saved.authorizationId || expected.iteration !== saved.iteration)
|
|
1630
|
+
fail('assistant-skills: invalid repair execution record');
|
|
1631
|
+
const result = this.#db.prepare("UPDATE skill_repair_execution SET lease_json=?,fence=?,state=?,pending_model=?,pending_tool=? WHERE scope_key=? AND id=? AND iteration=? AND fence=? AND state=? AND pending_model=? AND pending_tool=? AND json_extract(lease_json, '$.authorizationDigest')=?")
|
|
1632
|
+
.run(JSON.stringify(saved), saved.fence, saved.state, saved.pendingModel, saved.pendingTool, key, expected.authorizationId, expected.iteration, expected.fence, expected.state, expected.pendingModel, expected.pendingTool, expected.authorizationDigest);
|
|
1633
|
+
if (result.changes !== 1)
|
|
1634
|
+
fail('assistant-skills: repair execution fence conflict');
|
|
1635
|
+
}
|
|
1636
|
+
#validRepairExecution(value) {
|
|
1637
|
+
if (!value || typeof value !== 'object' || Array.isArray(value) || !json(value) || Object.keys(value).length !== 11)
|
|
1638
|
+
return false;
|
|
1639
|
+
const lease = value, proc = lease.process;
|
|
1640
|
+
return text(lease.authorizationId, 128) && digest(lease.authorizationDigest) && version(lease.iteration) && text(lease.sessionId, 512) && text(lease.holderId, 512)
|
|
1641
|
+
&& version(lease.fence) && Number.isSafeInteger(lease.deadlineAt) && lease.deadlineAt > 0 && ['active', 'released'].includes(lease.state)
|
|
1642
|
+
&& !!proc && typeof proc === 'object' && Object.keys(proc).length === 4 && typeof proc.bootId === 'string' && /^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/u.test(proc.bootId)
|
|
1643
|
+
&& Number.isSafeInteger(proc.pid) && proc.pid > 0 && typeof proc.startTicks === 'string' && /^[1-9][0-9]{0,63}$/u.test(proc.startTicks)
|
|
1644
|
+
&& typeof proc.pidNamespace === 'string' && /^(?:linux:[0-9]{1,32}:[0-9]{1,32}|local:[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12})$/u.test(proc.pidNamespace)
|
|
1645
|
+
&& Number.isSafeInteger(lease.pendingModel) && lease.pendingModel >= 0 && Number.isSafeInteger(lease.pendingTool) && lease.pendingTool >= 0
|
|
1646
|
+
&& (lease.state !== 'released' || (lease.pendingModel === 0 && lease.pendingTool === 0));
|
|
1647
|
+
}
|
|
1648
|
+
#sameRepairProcess(expected, actual) {
|
|
1649
|
+
return !!actual && expected.bootId === actual.bootId && expected.pidNamespace === actual.pidNamespace && expected.pid === actual.pid && expected.startTicks === actual.startTicks;
|
|
1650
|
+
}
|
|
1651
|
+
#repairExecutionAuthorization(key, id, iteration, deadlineAt) {
|
|
1652
|
+
const continuation = this.#repairContinuation(key, id);
|
|
1653
|
+
if (!continuation || continuation.iteration !== iteration || continuation.authorizationDigest !== acceptanceDigest(continuation.authorization)
|
|
1654
|
+
|| deadlineAt <= Date.now() || continuation.authorization.expiresAt <= Date.now() || deadlineAt > continuation.authorization.expiresAt
|
|
1655
|
+
|| ['complete', 'rejected', 'revoked', 'expired', 'unknown'].includes(continuation.state))
|
|
1656
|
+
fail('assistant-skills: repair execution authorization unavailable');
|
|
1657
|
+
return continuation;
|
|
1658
|
+
}
|
|
1659
|
+
#assertRepairExecution(key, lease, authorization) {
|
|
1660
|
+
if (!this.#validRepairExecution(lease))
|
|
1661
|
+
fail('assistant-skills: invalid repair execution lease');
|
|
1662
|
+
const current = this.#repairExecution(key, lease.authorizationId, lease.iteration);
|
|
1663
|
+
if (!current || current.state !== 'active' || current.fence !== lease.fence || current.authorizationDigest !== lease.authorizationDigest
|
|
1664
|
+
|| current.sessionId !== lease.sessionId || current.holderId !== lease.holderId || current.deadlineAt !== lease.deadlineAt
|
|
1665
|
+
|| !this.#sameRepairProcess(current.process, currentRepairProcess()))
|
|
1666
|
+
fail('assistant-skills: repair execution fence conflict');
|
|
1667
|
+
if (authorization)
|
|
1668
|
+
this.#repairExecutionAuthorization(key, lease.authorizationId, lease.iteration, lease.deadlineAt);
|
|
1669
|
+
return current;
|
|
1670
|
+
}
|
|
1424
1671
|
#watch(key, id) { const row = this.#db.prepare('SELECT watch_json FROM skill_watches WHERE scope_key=? AND id=?').get(key, id); return row ? JSON.parse(row.watch_json) : undefined; }
|
|
1425
1672
|
#watches(key, state) { return this.#db.prepare('SELECT watch_json FROM skill_watches WHERE scope_key=? AND state=?').all(key, state).map(row => JSON.parse(row.watch_json)); }
|
|
1426
1673
|
#putWatch(key, watch) { this.#db.prepare('INSERT INTO skill_watches(scope_key,id,watch_json,state) VALUES(?,?,?,?) ON CONFLICT(scope_key,id) DO UPDATE SET watch_json=excluded.watch_json,state=excluded.state').run(key, watch.id, JSON.stringify(watch), watch.state); }
|
|
@@ -1492,9 +1739,18 @@ export class SkillStore {
|
|
|
1492
1739
|
const row = this.#db.prepare('SELECT run_json FROM skill_runs WHERE scope_key=? AND id=?').get(key, id);
|
|
1493
1740
|
return row === undefined ? undefined : JSON.parse(row.run_json);
|
|
1494
1741
|
}
|
|
1742
|
+
#delegatedArm(key) {
|
|
1743
|
+
const row = this.#db.prepare('SELECT binding_digest,binding_json FROM skill_delegated_arms WHERE scope_key=?').get(key);
|
|
1744
|
+
if (!row)
|
|
1745
|
+
return undefined;
|
|
1746
|
+
const binding = JSON.parse(row.binding_json);
|
|
1747
|
+
if (!digest(row.binding_digest) || !delegatedArmBinding(binding) || acceptanceDigest(binding) !== row.binding_digest)
|
|
1748
|
+
fail('assistant-skills: delegated arm corrupt');
|
|
1749
|
+
return { bindingDigest: row.binding_digest, binding };
|
|
1750
|
+
}
|
|
1495
1751
|
#validateClaim(_scope, input) {
|
|
1496
1752
|
if (!input || !text(input.invocationId, 256) || !text(input.goalId, 256) || !text(input.sessionId, 512) || !name(input.skillName) || !version(input.version) || !input.inputs || typeof input.inputs !== 'object' || Array.isArray(input.inputs) || !json(input.inputs)
|
|
1497
|
-
|| input.goalExecutionRunId !== undefined && !text(input.goalExecutionRunId, 256) || input.goalDefinitionDigest !== undefined && !/^[a-f0-9]{64}$/u.test(input.goalDefinitionDigest) || input.nativeGoalId !== undefined && !text(input.nativeGoalId, 256) || input.candidateId !== undefined && !text(input.candidateId, 128)
|
|
1753
|
+
|| input.goalExecutionRunId !== undefined && !text(input.goalExecutionRunId, 256) || input.goalDefinitionDigest !== undefined && !/^[a-f0-9]{64}$/u.test(input.goalDefinitionDigest) || input.nativeGoalId !== undefined && !text(input.nativeGoalId, 256) || input.candidateId !== undefined && !text(input.candidateId, 128) || input.delegationDigest !== undefined
|
|
1498
1754
|
|| input.candidateId !== undefined && input.goalExecutionRunId === undefined)
|
|
1499
1755
|
fail('assistant-skills: invalid invocation');
|
|
1500
1756
|
if (input.candidateId !== undefined)
|