@askdkc/kiokuko 0.2.2 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ja.md +83 -45
- package/README.ko.md +80 -40
- package/README.md +85 -45
- package/README.zh-CN.md +76 -39
- package/dist/agent-file/render.d.ts +1 -1
- package/dist/agent-file/render.d.ts.map +1 -1
- package/dist/agent-file/render.js +5 -3
- package/dist/agent-file/render.js.map +1 -1
- package/dist/akinator/agent-task.js +2 -2
- package/dist/akinator/agent-task.js.map +1 -1
- package/dist/akinator/capabilities.d.ts +5 -1
- package/dist/akinator/capabilities.d.ts.map +1 -1
- package/dist/akinator/capabilities.js +20 -3
- package/dist/akinator/capabilities.js.map +1 -1
- package/dist/commands/agent.d.ts.map +1 -1
- package/dist/commands/agent.js +36 -9
- package/dist/commands/agent.js.map +1 -1
- package/dist/commands/doctor.d.ts +1 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +33 -0
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +2 -1
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/use.d.ts +1 -0
- package/dist/commands/use.d.ts.map +1 -1
- package/dist/commands/use.js +76 -16
- package/dist/commands/use.js.map +1 -1
- package/dist/enno-oduno/adapters.d.ts +4 -1
- package/dist/enno-oduno/adapters.d.ts.map +1 -1
- package/dist/enno-oduno/adapters.js +100 -63
- package/dist/enno-oduno/adapters.js.map +1 -1
- package/dist/enno-oduno/advisory-store.d.ts +6 -0
- package/dist/enno-oduno/advisory-store.d.ts.map +1 -1
- package/dist/enno-oduno/advisory-store.js +13 -1
- package/dist/enno-oduno/advisory-store.js.map +1 -1
- package/dist/enno-oduno/advisory.d.ts +2 -0
- package/dist/enno-oduno/advisory.d.ts.map +1 -1
- package/dist/enno-oduno/advisory.js +207 -25
- package/dist/enno-oduno/advisory.js.map +1 -1
- package/dist/enno-oduno/confirmation.d.ts.map +1 -1
- package/dist/enno-oduno/confirmation.js +3 -0
- package/dist/enno-oduno/confirmation.js.map +1 -1
- package/dist/enno-oduno/directives.d.ts.map +1 -1
- package/dist/enno-oduno/directives.js +67 -36
- package/dist/enno-oduno/directives.js.map +1 -1
- package/dist/enno-oduno/experts.d.ts +1 -1
- package/dist/enno-oduno/experts.d.ts.map +1 -1
- package/dist/enno-oduno/experts.js +21 -7
- package/dist/enno-oduno/experts.js.map +1 -1
- package/dist/enno-oduno/instructions.d.ts +5 -3
- package/dist/enno-oduno/instructions.d.ts.map +1 -1
- package/dist/enno-oduno/instructions.js +4 -2
- package/dist/enno-oduno/instructions.js.map +1 -1
- package/dist/enno-oduno/plan-recovery.d.ts +15 -0
- package/dist/enno-oduno/plan-recovery.d.ts.map +1 -1
- package/dist/enno-oduno/plan-recovery.js +26 -0
- package/dist/enno-oduno/plan-recovery.js.map +1 -1
- package/dist/enno-oduno/repository-state.d.ts +8 -0
- package/dist/enno-oduno/repository-state.d.ts.map +1 -0
- package/dist/enno-oduno/repository-state.js +139 -0
- package/dist/enno-oduno/repository-state.js.map +1 -0
- package/dist/enno-oduno/role-runner.d.ts.map +1 -1
- package/dist/enno-oduno/role-runner.js +50 -2
- package/dist/enno-oduno/role-runner.js.map +1 -1
- package/dist/enno-oduno/sanitize.d.ts +17 -0
- package/dist/enno-oduno/sanitize.d.ts.map +1 -0
- package/dist/enno-oduno/sanitize.js +88 -0
- package/dist/enno-oduno/sanitize.js.map +1 -0
- package/dist/enno-oduno/schemas.d.ts +314 -29
- package/dist/enno-oduno/schemas.d.ts.map +1 -1
- package/dist/enno-oduno/schemas.js +267 -50
- package/dist/enno-oduno/schemas.js.map +1 -1
- package/dist/enno-oduno/service.d.ts +3 -1
- package/dist/enno-oduno/service.d.ts.map +1 -1
- package/dist/enno-oduno/service.js +416 -146
- package/dist/enno-oduno/service.js.map +1 -1
- package/dist/enno-oduno/store.d.ts +44 -5
- package/dist/enno-oduno/store.d.ts.map +1 -1
- package/dist/enno-oduno/store.js +367 -35
- package/dist/enno-oduno/store.js.map +1 -1
- package/dist/enno-oduno/types.d.ts +106 -6
- package/dist/enno-oduno/types.d.ts.map +1 -1
- package/dist/enno-oduno/types.js +2 -0
- package/dist/enno-oduno/types.js.map +1 -1
- package/dist/enno-oduno/validation-errors.d.ts +92 -0
- package/dist/enno-oduno/validation-errors.d.ts.map +1 -0
- package/dist/enno-oduno/validation-errors.js +151 -0
- package/dist/enno-oduno/validation-errors.js.map +1 -0
- package/dist/enno-oduno/verifier.d.ts +1 -0
- package/dist/enno-oduno/verifier.d.ts.map +1 -1
- package/dist/enno-oduno/verifier.js +99 -16
- package/dist/enno-oduno/verifier.js.map +1 -1
- package/dist/ledger/types.d.ts +1 -1
- package/dist/ledger/types.d.ts.map +1 -1
- package/dist/ledger/types.js +1 -1
- package/dist/ledger/types.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +76 -16
- package/dist/mcp/server.js.map +1 -1
- package/dist/memory/secrets.d.ts.map +1 -1
- package/dist/memory/secrets.js +1 -0
- package/dist/memory/secrets.js.map +1 -1
- package/dist/server/routes/agent-capability-gate.js +2 -2
- package/dist/server/routes/agent-capability-gate.js.map +1 -1
- package/dist/setup/render.js +1 -1
- package/dist/setup/render.js.map +1 -1
- package/dist/setup/standard-skills.d.ts +12 -5
- package/dist/setup/standard-skills.d.ts.map +1 -1
- package/dist/setup/standard-skills.js +12 -2
- package/dist/setup/standard-skills.js.map +1 -1
- package/migrations/017_enno_advisory_protocol_v2.sql +101 -0
- package/migrations/018_enno_repository_routing.sql +5 -0
- package/migrations/019_enno_execution_integrity.sql +149 -0
- package/package.json +1 -1
- package/skills/kiokuko-enno-oduno/SKILL.md +19 -8
- package/skills/kiokuko-single-purpose-functions/SKILL.md +18 -10
- package/skills/kiokuko-single-purpose-functions/references/problem-shaping-and-language.md +84 -0
- package/skills/kiokuko-ui-design-soul/SKILL.md +5 -1
- package/skills/memory-reasoning/SKILL.md +52 -0
- package/templates/AGENTS.md +6 -4
package/dist/enno-oduno/store.js
CHANGED
|
@@ -1,11 +1,98 @@
|
|
|
1
|
-
import { randomUUID } from 'node:crypto';
|
|
1
|
+
import { createHash, randomUUID } from 'node:crypto';
|
|
2
|
+
import path from 'node:path';
|
|
2
3
|
import { withImmediateTransaction } from '../db/transaction.js';
|
|
3
4
|
import { KiokukoError } from '../errors.js';
|
|
4
5
|
import { LedgerStore } from '../ledger/store.js';
|
|
5
|
-
import { canonicalJson } from '../serialization/validate.js';
|
|
6
|
+
import { canonicalContentHash, canonicalJson } from '../serialization/validate.js';
|
|
6
7
|
import { parseStrictJson } from '../setup/strict-json.js';
|
|
7
8
|
import { parseEnnoContract, parseEnnoRequestHandoff, parseOdunoIdeal, parseOdunoMeditation, parseVerifierSpec, parseWorkReportResult, parseWorkPlan, } from './schemas.js';
|
|
8
|
-
import { ENNO_DEFAULT_MAX_ATTEMPTS, ENNO_APPLICABLE_TASK_TYPES, ENNO_CLIENT_KINDS, ENNO_STATUSES, } from './types.js';
|
|
9
|
+
import { ADVISORY_OUTCOMES, ENNO_DEFAULT_MAX_ATTEMPTS, ENNO_APPLICABLE_TASK_TYPES, ENNO_CLIENT_KINDS, ENNO_STATUSES, } from './types.js';
|
|
10
|
+
import { advisoryContextForSnapshot, advisoryInputDigest, advisoryPhaseForStatus, advisorySlotDefinitions, } from './advisory.js';
|
|
11
|
+
import { captureRepositoryState } from './repository-state.js';
|
|
12
|
+
function advisoryPhaseState(database, input) {
|
|
13
|
+
const phase = advisoryPhaseForStatus(input.status);
|
|
14
|
+
if (phase === null || (phase === 'final_review' && !input.finalEvidenceReady))
|
|
15
|
+
return { state: 'not_started' };
|
|
16
|
+
const row = database.prepare(`
|
|
17
|
+
SELECT input_digest AS inputDigest, state
|
|
18
|
+
FROM enno_advisory_rounds
|
|
19
|
+
WHERE run_id = ? AND contract_revision = ? AND mutation_revision = ? AND phase = ?
|
|
20
|
+
ORDER BY created_at DESC, round_id DESC
|
|
21
|
+
LIMIT 1
|
|
22
|
+
`).get(input.runId, input.revision, input.mutationRevision, phase);
|
|
23
|
+
if (row === undefined || row.inputDigest !== input.currentInputDigest) {
|
|
24
|
+
return { state: 'fanout_requested', slots: advisorySlotDefinitions(phase) };
|
|
25
|
+
}
|
|
26
|
+
if (row.state === 'consumed')
|
|
27
|
+
return { state: 'consumed', inputDigest: row.inputDigest };
|
|
28
|
+
if (row.state !== 'aggregated')
|
|
29
|
+
return integrity('Stored advisory lifecycle state is invalid');
|
|
30
|
+
const contributions = database.prepare(`
|
|
31
|
+
SELECT c.slot_id AS slotId, c.outcome
|
|
32
|
+
FROM enno_advisory_contributions AS c
|
|
33
|
+
JOIN enno_advisory_rounds AS r ON r.round_id = c.round_id
|
|
34
|
+
WHERE r.run_id = ? AND r.contract_revision = ? AND r.mutation_revision = ?
|
|
35
|
+
AND r.phase = ? AND r.input_digest = ?
|
|
36
|
+
ORDER BY c.slot_rank
|
|
37
|
+
`).all(input.runId, input.revision, input.mutationRevision, phase, row.inputDigest);
|
|
38
|
+
const slots = advisorySlotDefinitions(phase);
|
|
39
|
+
if (contributions.length !== slots.length)
|
|
40
|
+
return integrity('Stored advisory lifecycle contributions are invalid');
|
|
41
|
+
return {
|
|
42
|
+
state: 'aggregated',
|
|
43
|
+
inputDigest: row.inputDigest,
|
|
44
|
+
requiredDispositionSlots: slots.map((slot, index) => {
|
|
45
|
+
const contribution = contributions[index];
|
|
46
|
+
if (contribution?.slotId !== slot.slotId || !ADVISORY_OUTCOMES.includes(contribution.outcome)) {
|
|
47
|
+
return integrity('Stored advisory lifecycle contributions are invalid');
|
|
48
|
+
}
|
|
49
|
+
const outcome = contribution.outcome;
|
|
50
|
+
return {
|
|
51
|
+
slotId: slot.slotId,
|
|
52
|
+
outcome,
|
|
53
|
+
allowedDispositions: outcome === 'completed'
|
|
54
|
+
? ['adopted', 'not_adopted']
|
|
55
|
+
: ['unavailable'],
|
|
56
|
+
};
|
|
57
|
+
}),
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
export function resolveEnnoIdentity(database, input) {
|
|
61
|
+
if (input.workspace !== undefined && input.orchestrationId !== undefined && input.resumeToken === undefined) {
|
|
62
|
+
return { runId: input.runId, workspace: input.workspace, orchestrationId: input.orchestrationId };
|
|
63
|
+
}
|
|
64
|
+
if (input.resumeToken === undefined || input.workspace !== undefined || input.orchestrationId !== undefined) {
|
|
65
|
+
throw new KiokukoError('VALIDATION_ERROR', 'Enno identity requires either explicit identity or one resume token');
|
|
66
|
+
}
|
|
67
|
+
const tokenHash = createHash('sha256').update(input.resumeToken, 'utf8').digest('hex');
|
|
68
|
+
const row = database.prepare(`
|
|
69
|
+
SELECT ec.run_id AS runId, ec.workspace, ec.orchestration_session_id AS orchestrationId,
|
|
70
|
+
ec.route_epoch AS routeEpoch, rt.route_epoch AS tokenRouteEpoch,
|
|
71
|
+
rt.repository_root AS tokenRepositoryRoot, ec.repository_root AS repositoryRoot,
|
|
72
|
+
rt.client_kind AS tokenClientKind, ec.client_kind AS clientKind,
|
|
73
|
+
rt.client_session_id AS tokenClientSessionId, ec.client_session_id AS clientSessionId,
|
|
74
|
+
rt.expires_at AS expiresAt
|
|
75
|
+
FROM enno_resume_tokens AS rt
|
|
76
|
+
JOIN enno_contracts AS ec ON ec.run_id = rt.run_id
|
|
77
|
+
WHERE rt.token_hash = ? AND rt.run_id = ?
|
|
78
|
+
`).get(tokenHash, input.runId);
|
|
79
|
+
if (row === undefined)
|
|
80
|
+
throw new KiokukoError('CONFLICT', 'Enno resume token is invalid or expired');
|
|
81
|
+
const expiresAt = Date.parse(row.expiresAt);
|
|
82
|
+
if (row.routeEpoch !== row.tokenRouteEpoch || row.repositoryRoot !== row.tokenRepositoryRoot
|
|
83
|
+
|| row.clientKind !== row.tokenClientKind || row.clientSessionId !== row.tokenClientSessionId
|
|
84
|
+
|| !Number.isFinite(expiresAt) || expiresAt <= Date.now()) {
|
|
85
|
+
throw new KiokukoError('CONFLICT', 'Enno resume token is stale');
|
|
86
|
+
}
|
|
87
|
+
return { runId: row.runId, workspace: row.workspace, orchestrationId: row.orchestrationId };
|
|
88
|
+
}
|
|
89
|
+
const OPERATION_LEASE_MS = 6 * 60_000;
|
|
90
|
+
const VERIFIER_LEASE_GRACE_MS = 60_000;
|
|
91
|
+
const VERIFIER_TERMINATION_GRACE_MS = 1_000;
|
|
92
|
+
export function operationLeaseMsForVerifiers(verifiers) {
|
|
93
|
+
const sequentialRuntime = verifiers.reduce((total, verifier) => total + verifier.timeoutMs + VERIFIER_TERMINATION_GRACE_MS, VERIFIER_LEASE_GRACE_MS);
|
|
94
|
+
return Math.max(OPERATION_LEASE_MS, sequentialRuntime);
|
|
95
|
+
}
|
|
9
96
|
function integrity(message) {
|
|
10
97
|
throw new KiokukoError('INTEGRITY_ERROR', message);
|
|
11
98
|
}
|
|
@@ -29,7 +116,8 @@ function validateContractRow(row) {
|
|
|
29
116
|
|| !ENNO_APPLICABLE_TASK_TYPES.includes(row.task_type)
|
|
30
117
|
|| !Number.isSafeInteger(row.revision) || row.revision < 1
|
|
31
118
|
|| !Number.isSafeInteger(row.attempts) || row.attempts < 0 || row.attempts > 20
|
|
32
|
-
|| !Number.isSafeInteger(row.mutation_revision) || row.mutation_revision < 0
|
|
119
|
+
|| !Number.isSafeInteger(row.mutation_revision) || row.mutation_revision < 0
|
|
120
|
+
|| !Number.isSafeInteger(row.route_epoch) || row.route_epoch < 0) {
|
|
33
121
|
integrity('Stored Enno run state is invalid');
|
|
34
122
|
}
|
|
35
123
|
}
|
|
@@ -49,7 +137,23 @@ function persistedState(status) {
|
|
|
49
137
|
return { status: 'enno_verifying', phase: status };
|
|
50
138
|
return { status, phase: null };
|
|
51
139
|
}
|
|
52
|
-
function
|
|
140
|
+
function storedWorkResult(value, repositoryRoot) {
|
|
141
|
+
if (typeof value !== 'object' || value === null || Array.isArray(value))
|
|
142
|
+
return parseWorkReportResult(value);
|
|
143
|
+
const result = value;
|
|
144
|
+
if (!Array.isArray(result.changedPaths))
|
|
145
|
+
return parseWorkReportResult(value);
|
|
146
|
+
const changedPaths = result.changedPaths.map((candidate) => {
|
|
147
|
+
if (typeof candidate !== 'string' || !path.isAbsolute(candidate))
|
|
148
|
+
return candidate;
|
|
149
|
+
const relative = path.relative(repositoryRoot, candidate);
|
|
150
|
+
if (relative.startsWith(`..${path.sep}`) || relative === '..' || path.isAbsolute(relative))
|
|
151
|
+
return candidate;
|
|
152
|
+
return (relative || '.').split(path.sep).join('/');
|
|
153
|
+
});
|
|
154
|
+
return parseWorkReportResult({ ...result, changedPaths });
|
|
155
|
+
}
|
|
156
|
+
function workUnits(database, runId, revision, repositoryRoot) {
|
|
53
157
|
const rows = database.prepare(`
|
|
54
158
|
SELECT work_unit_json, status, attempt_count, result_json
|
|
55
159
|
FROM enno_work_units
|
|
@@ -68,7 +172,7 @@ function workUnits(database, runId, revision) {
|
|
|
68
172
|
attemptCount: row.attempt_count,
|
|
69
173
|
result: row.result_json === null
|
|
70
174
|
? null
|
|
71
|
-
:
|
|
175
|
+
: storedWorkResult(parseCanonicalJson(row.result_json, 'Stored Enno work result is invalid'), repositoryRoot),
|
|
72
176
|
}));
|
|
73
177
|
}
|
|
74
178
|
function assertLedgerIdentity(database, identity, repositoryRoot) {
|
|
@@ -95,7 +199,7 @@ export function readEnnoSnapshot(database, identity) {
|
|
|
95
199
|
}
|
|
96
200
|
if ((row.client_kind !== null && !ENNO_CLIENT_KINDS.includes(row.client_kind))
|
|
97
201
|
|| ((row.client_version !== null || row.client_session_id !== null) && row.client_kind === null)) {
|
|
98
|
-
integrity('Stored Enno client
|
|
202
|
+
integrity('Stored Enno client routing metadata is invalid');
|
|
99
203
|
}
|
|
100
204
|
const contract = parseEnnoContract(parseCanonicalJson(row.contract_json, 'Stored Enno contract is invalid'));
|
|
101
205
|
const handoff = parseEnnoRequestHandoff(parseCanonicalJson(row.handoff_json, 'Stored Enno request handoff is invalid'));
|
|
@@ -117,7 +221,27 @@ export function readEnnoSnapshot(database, identity) {
|
|
|
117
221
|
}
|
|
118
222
|
if (meditation !== null && status !== 'completed')
|
|
119
223
|
integrity('Stored Oduno meditation result is inconsistent');
|
|
120
|
-
|
|
224
|
+
const currentRepositoryDigest = status === 'enno_verifying' && contract.finalVerifiers.length > 0
|
|
225
|
+
? captureRepositoryState(row.repository_root).digest
|
|
226
|
+
: undefined;
|
|
227
|
+
const finalEvidenceReady = contract.finalVerifiers.length > 0
|
|
228
|
+
&& hasFreshFinalVerifierResults(database, {
|
|
229
|
+
runId: row.run_id,
|
|
230
|
+
revision: row.revision,
|
|
231
|
+
mutationRevision: row.mutation_revision,
|
|
232
|
+
verifiers: contract.finalVerifiers,
|
|
233
|
+
...(currentRepositoryDigest === undefined ? {} : { repositoryDigest: currentRepositoryDigest }),
|
|
234
|
+
});
|
|
235
|
+
const finalEvidence = finalEvidenceReady
|
|
236
|
+
? readFreshFinalVerifierResults(database, {
|
|
237
|
+
runId: row.run_id,
|
|
238
|
+
revision: row.revision,
|
|
239
|
+
mutationRevision: row.mutation_revision,
|
|
240
|
+
verifiers: contract.finalVerifiers,
|
|
241
|
+
...(currentRepositoryDigest === undefined ? {} : { repositoryDigest: currentRepositoryDigest }),
|
|
242
|
+
}) ?? []
|
|
243
|
+
: [];
|
|
244
|
+
const snapshot = {
|
|
121
245
|
runId: row.run_id,
|
|
122
246
|
workspace: row.workspace,
|
|
123
247
|
orchestrationId: row.orchestration_session_id,
|
|
@@ -131,13 +255,35 @@ export function readEnnoSnapshot(database, identity) {
|
|
|
131
255
|
confirmationState: row.confirmation_state,
|
|
132
256
|
attempts: row.attempts,
|
|
133
257
|
mutationRevision: row.mutation_revision,
|
|
258
|
+
routeEpoch: row.route_epoch,
|
|
134
259
|
ideal,
|
|
135
260
|
meditation,
|
|
136
261
|
contract,
|
|
137
262
|
handoff,
|
|
138
|
-
workUnits: workUnits(database, identity.runId, row.revision),
|
|
263
|
+
workUnits: workUnits(database, identity.runId, row.revision, row.repository_root),
|
|
264
|
+
finalEvidenceReady,
|
|
265
|
+
finalEvidence,
|
|
139
266
|
blocker: row.blocker,
|
|
267
|
+
advisoryPhaseState: { state: 'not_started' },
|
|
140
268
|
};
|
|
269
|
+
const advisoryPhase = advisoryPhaseForStatus(status);
|
|
270
|
+
const currentInputDigest = advisoryPhase === null || (advisoryPhase === 'final_review' && !finalEvidenceReady)
|
|
271
|
+
? undefined
|
|
272
|
+
: advisoryInputDigest({
|
|
273
|
+
phase: advisoryPhase,
|
|
274
|
+
contractRevision: row.revision,
|
|
275
|
+
mutationRevision: row.mutation_revision,
|
|
276
|
+
allowlistedContext: advisoryContextForSnapshot(snapshot, advisoryPhase),
|
|
277
|
+
});
|
|
278
|
+
snapshot.advisoryPhaseState = advisoryPhaseState(database, {
|
|
279
|
+
runId: row.run_id,
|
|
280
|
+
status,
|
|
281
|
+
revision: row.revision,
|
|
282
|
+
mutationRevision: row.mutation_revision,
|
|
283
|
+
finalEvidenceReady,
|
|
284
|
+
currentInputDigest,
|
|
285
|
+
});
|
|
286
|
+
return snapshot;
|
|
141
287
|
}
|
|
142
288
|
function emptyDiscovery(mode) {
|
|
143
289
|
return {
|
|
@@ -259,21 +405,129 @@ export function setWorkUnitStatusInTransaction(database, input) {
|
|
|
259
405
|
if (updated?.workUnitId !== input.workUnitId)
|
|
260
406
|
throw new KiokukoError('CONFLICT', 'Enno WorkUnit changed concurrently');
|
|
261
407
|
}
|
|
408
|
+
const EXECUTION_LEASE_MS = 15 * 60_000;
|
|
409
|
+
export function claimExecutionLeaseInTransaction(database, snapshot, workUnitId, owner) {
|
|
410
|
+
const nowDate = new Date();
|
|
411
|
+
const now = nowDate.toISOString();
|
|
412
|
+
const existing = database.prepare(`
|
|
413
|
+
SELECT contract_revision AS contractRevision, mutation_revision AS mutationRevision,
|
|
414
|
+
work_unit_id AS workUnitId, route_epoch AS routeEpoch,
|
|
415
|
+
owner_client_kind AS ownerClientKind, owner_session_id AS ownerSessionId,
|
|
416
|
+
lease_expires_at AS expiresAt
|
|
417
|
+
FROM enno_execution_leases WHERE run_id = ?
|
|
418
|
+
`).get(snapshot.runId);
|
|
419
|
+
if (existing !== undefined && existing.expiresAt > now
|
|
420
|
+
&& (existing.contractRevision !== snapshot.revision
|
|
421
|
+
|| existing.mutationRevision !== snapshot.mutationRevision
|
|
422
|
+
|| existing.workUnitId !== workUnitId
|
|
423
|
+
|| existing.routeEpoch !== (snapshot.routeEpoch ?? 0)
|
|
424
|
+
|| existing.ownerClientKind !== owner.clientKind
|
|
425
|
+
|| existing.ownerSessionId !== owner.sessionId)) {
|
|
426
|
+
throw new KiokukoError('CONFLICT', 'Enno WorkUnit is leased to another current actor');
|
|
427
|
+
}
|
|
428
|
+
const leaseToken = randomUUID();
|
|
429
|
+
const tokenHash = createHash('sha256').update(leaseToken, 'utf8').digest('hex');
|
|
430
|
+
const expiresAt = new Date(nowDate.getTime() + EXECUTION_LEASE_MS).toISOString();
|
|
431
|
+
database.prepare(`
|
|
432
|
+
INSERT INTO enno_execution_leases (
|
|
433
|
+
run_id, contract_revision, mutation_revision, work_unit_id, route_epoch,
|
|
434
|
+
owner_client_kind, owner_session_id, lease_token_hash, lease_expires_at,
|
|
435
|
+
heartbeat_at, created_at, updated_at
|
|
436
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
437
|
+
ON CONFLICT(run_id) DO UPDATE SET
|
|
438
|
+
contract_revision = excluded.contract_revision,
|
|
439
|
+
mutation_revision = excluded.mutation_revision,
|
|
440
|
+
work_unit_id = excluded.work_unit_id,
|
|
441
|
+
route_epoch = excluded.route_epoch,
|
|
442
|
+
owner_client_kind = excluded.owner_client_kind,
|
|
443
|
+
owner_session_id = excluded.owner_session_id,
|
|
444
|
+
lease_token_hash = excluded.lease_token_hash,
|
|
445
|
+
lease_expires_at = excluded.lease_expires_at,
|
|
446
|
+
heartbeat_at = excluded.heartbeat_at,
|
|
447
|
+
updated_at = excluded.updated_at
|
|
448
|
+
`).run(snapshot.runId, snapshot.revision, snapshot.mutationRevision, workUnitId, snapshot.routeEpoch ?? 0, owner.clientKind, owner.sessionId, tokenHash, expiresAt, now, now, now);
|
|
449
|
+
return {
|
|
450
|
+
leaseToken,
|
|
451
|
+
routeEpoch: snapshot.routeEpoch ?? 0,
|
|
452
|
+
contractRevision: snapshot.revision,
|
|
453
|
+
mutationRevision: snapshot.mutationRevision,
|
|
454
|
+
workUnitId,
|
|
455
|
+
expiresAt,
|
|
456
|
+
};
|
|
457
|
+
}
|
|
458
|
+
export function assertExecutionLeaseInTransaction(database, snapshot, input) {
|
|
459
|
+
const row = database.prepare(`
|
|
460
|
+
SELECT contract_revision AS contractRevision, mutation_revision AS mutationRevision,
|
|
461
|
+
work_unit_id AS workUnitId, route_epoch AS routeEpoch,
|
|
462
|
+
owner_client_kind AS ownerClientKind, owner_session_id AS ownerSessionId,
|
|
463
|
+
lease_token_hash AS tokenHash, lease_expires_at AS expiresAt
|
|
464
|
+
FROM enno_execution_leases WHERE run_id = ?
|
|
465
|
+
`).get(snapshot.runId);
|
|
466
|
+
if (row === undefined) {
|
|
467
|
+
if (input.leaseToken !== undefined || input.routeEpoch !== undefined) {
|
|
468
|
+
throw new KiokukoError('CONFLICT', 'Enno execution lease is not active');
|
|
469
|
+
}
|
|
470
|
+
return;
|
|
471
|
+
}
|
|
472
|
+
const tokenHash = input.leaseToken === undefined
|
|
473
|
+
? null
|
|
474
|
+
: createHash('sha256').update(input.leaseToken, 'utf8').digest('hex');
|
|
475
|
+
if (row.expiresAt <= new Date().toISOString()
|
|
476
|
+
|| row.contractRevision !== snapshot.revision
|
|
477
|
+
|| row.mutationRevision !== snapshot.mutationRevision
|
|
478
|
+
|| row.workUnitId !== input.workUnitId
|
|
479
|
+
|| row.routeEpoch !== input.routeEpoch
|
|
480
|
+
|| row.routeEpoch !== (snapshot.routeEpoch ?? 0)
|
|
481
|
+
|| row.ownerClientKind !== snapshot.clientKind
|
|
482
|
+
|| row.ownerSessionId !== snapshot.clientSessionId
|
|
483
|
+
|| tokenHash !== row.tokenHash) {
|
|
484
|
+
throw new KiokukoError('CONFLICT', 'Enno execution lease is stale or belongs to another actor');
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
export function releaseExecutionLeaseInTransaction(database, runId) {
|
|
488
|
+
database.prepare('DELETE FROM enno_execution_leases WHERE run_id = ?').run(runId);
|
|
489
|
+
}
|
|
490
|
+
export function renewExecutionLeaseInTransaction(database, snapshot, input, minimumLeaseMs) {
|
|
491
|
+
assertExecutionLeaseInTransaction(database, snapshot, input);
|
|
492
|
+
const existing = database.prepare('SELECT 1 AS present FROM enno_execution_leases WHERE run_id = ?')
|
|
493
|
+
.get(snapshot.runId);
|
|
494
|
+
if (existing === undefined)
|
|
495
|
+
return;
|
|
496
|
+
const now = new Date();
|
|
497
|
+
const leaseExpiresAt = new Date(now.getTime() + Math.max(EXECUTION_LEASE_MS, minimumLeaseMs)).toISOString();
|
|
498
|
+
const updated = database.prepare(`
|
|
499
|
+
UPDATE enno_execution_leases
|
|
500
|
+
SET lease_expires_at = ?, heartbeat_at = ?, updated_at = ?
|
|
501
|
+
WHERE run_id = ?
|
|
502
|
+
RETURNING run_id AS runId
|
|
503
|
+
`).get(leaseExpiresAt, now.toISOString(), now.toISOString(), snapshot.runId);
|
|
504
|
+
if (updated?.runId !== snapshot.runId)
|
|
505
|
+
throw new KiokukoError('CONFLICT', 'Enno execution lease changed concurrently');
|
|
506
|
+
}
|
|
262
507
|
export function startVerifierRunsInTransaction(database, input) {
|
|
508
|
+
const nowDate = new Date();
|
|
509
|
+
const now = nowDate.toISOString();
|
|
510
|
+
database.prepare(`
|
|
511
|
+
UPDATE enno_verifier_runs
|
|
512
|
+
SET status = 'abandoned', failure_code = 'lease_expired', finished_at = ?
|
|
513
|
+
WHERE run_id = ? AND status = 'started' AND lease_expires_at <= ?
|
|
514
|
+
`).run(now, input.runId, now);
|
|
263
515
|
const statement = database.prepare(`
|
|
264
516
|
INSERT INTO enno_verifier_runs (
|
|
265
517
|
verifier_run_id, run_id, work_unit_id, contract_revision, mutation_revision,
|
|
266
|
-
verifier_id, verifier_json, status,
|
|
267
|
-
|
|
518
|
+
verifier_id, verifier_json, status, owner_nonce, lease_expires_at, heartbeat_at,
|
|
519
|
+
repository_state_policy_version, pre_repository_digest, verifier_spec_digest, started_at
|
|
520
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, 'started', ?, ?, ?, ?, ?, ?, ?)
|
|
268
521
|
`);
|
|
269
|
-
const
|
|
522
|
+
const leaseMs = operationLeaseMsForVerifiers(input.verifiers);
|
|
523
|
+
const leaseExpiresAt = new Date(nowDate.getTime() + leaseMs).toISOString();
|
|
270
524
|
return input.verifiers.map((verifier) => {
|
|
271
525
|
const verifierRunId = randomUUID();
|
|
272
|
-
statement.run(verifierRunId, input.runId, input.workUnitId, input.revision, input.mutationRevision, verifier.id, canonicalJson(verifier), now);
|
|
526
|
+
statement.run(verifierRunId, input.runId, input.workUnitId, input.revision, input.mutationRevision, verifier.id, canonicalJson(verifier), randomUUID(), leaseExpiresAt, now, input.repositoryEvidence?.policyVersion ?? null, input.repositoryEvidence?.preDigest ?? null, input.repositoryEvidence?.verifierSpecDigest ?? null, now);
|
|
273
527
|
return verifierRunId;
|
|
274
528
|
});
|
|
275
529
|
}
|
|
276
|
-
export function finishVerifierRunsInTransaction(database, verifierRunIds, results) {
|
|
530
|
+
export function finishVerifierRunsInTransaction(database, verifierRunIds, results, repositoryEvidence) {
|
|
277
531
|
if (verifierRunIds.length !== results.length)
|
|
278
532
|
integrity('Enno verifier result count is inconsistent');
|
|
279
533
|
const finishedAt = new Date().toISOString();
|
|
@@ -284,26 +538,33 @@ export function finishVerifierRunsInTransaction(database, verifierRunIds, result
|
|
|
284
538
|
const updated = database.prepare(`
|
|
285
539
|
UPDATE enno_verifier_runs
|
|
286
540
|
SET status = ?, exit_code = ?, signal = ?, duration_ms = ?,
|
|
287
|
-
stdout_preview = ?, stderr_preview = ?, stdout_digest = ?, stderr_digest = ?,
|
|
541
|
+
stdout_preview = ?, stderr_preview = ?, stdout_digest = ?, stderr_digest = ?,
|
|
542
|
+
post_repository_digest = ?, changed_during_verification = ?, finished_at = ?
|
|
288
543
|
WHERE verifier_run_id = ? AND status = 'started'
|
|
289
544
|
RETURNING verifier_run_id AS verifierRunId
|
|
290
|
-
`).get(result.status, result.exitCode, result.signal, result.durationMs, result.stdoutPreview, result.stderrPreview, result.stdoutDigest, result.stderrDigest, finishedAt, verifierRunId);
|
|
545
|
+
`).get(result.status, result.exitCode, result.signal, result.durationMs, result.stdoutPreview, result.stderrPreview, result.stdoutDigest, result.stderrDigest, repositoryEvidence?.postDigest ?? null, repositoryEvidence === undefined ? null : repositoryEvidence.changedDuringVerification ? 1 : 0, finishedAt, verifierRunId);
|
|
291
546
|
if (updated?.verifierRunId !== verifierRunId)
|
|
292
547
|
throw new KiokukoError('CONFLICT', 'Enno verifier state changed concurrently');
|
|
293
548
|
});
|
|
294
549
|
}
|
|
295
550
|
export function readFreshFinalVerifierResults(database, input) {
|
|
551
|
+
if (input.verifiers.length === 0)
|
|
552
|
+
return undefined;
|
|
296
553
|
const rows = database.prepare(`
|
|
297
554
|
SELECT verifier_id, verifier_json, status, exit_code, signal, duration_ms,
|
|
298
|
-
stdout_preview, stderr_preview, stdout_digest, stderr_digest
|
|
555
|
+
stdout_preview, stderr_preview, stdout_digest, stderr_digest,
|
|
556
|
+
repository_state_policy_version, pre_repository_digest, post_repository_digest,
|
|
557
|
+
verifier_spec_digest, changed_during_verification, finished_at
|
|
299
558
|
FROM enno_verifier_runs
|
|
300
559
|
WHERE run_id = ? AND work_unit_id IS NULL
|
|
301
560
|
AND contract_revision = ? AND mutation_revision = ?
|
|
302
|
-
ORDER BY verifier_id
|
|
561
|
+
ORDER BY verifier_id, finished_at DESC, verifier_run_id DESC
|
|
303
562
|
`).all(input.runId, input.revision, input.mutationRevision);
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
const
|
|
563
|
+
const completedRows = rows.filter((row) => row.status !== 'started' && row.status !== 'abandoned');
|
|
564
|
+
const byId = new Map();
|
|
565
|
+
for (const row of completedRows)
|
|
566
|
+
if (!byId.has(row.verifier_id))
|
|
567
|
+
byId.set(row.verifier_id, row);
|
|
307
568
|
if (byId.size !== input.verifiers.length || input.verifiers.some((verifier) => !byId.has(verifier.id)))
|
|
308
569
|
return undefined;
|
|
309
570
|
for (const verifier of input.verifiers) {
|
|
@@ -311,6 +572,13 @@ export function readFreshFinalVerifierResults(database, input) {
|
|
|
311
572
|
const storedVerifier = parseVerifierSpec(parseCanonicalJson(row.verifier_json, 'Stored Enno verifier is invalid'));
|
|
312
573
|
if (canonicalJson(storedVerifier) !== canonicalJson(verifier))
|
|
313
574
|
return undefined;
|
|
575
|
+
if (row.changed_during_verification === 1)
|
|
576
|
+
return undefined;
|
|
577
|
+
if (input.repositoryDigest !== undefined
|
|
578
|
+
&& (row.pre_repository_digest !== input.repositoryDigest
|
|
579
|
+
|| row.post_repository_digest !== input.repositoryDigest
|
|
580
|
+
|| row.verifier_spec_digest !== canonicalContentHash(input.verifiers)))
|
|
581
|
+
return undefined;
|
|
314
582
|
}
|
|
315
583
|
return input.verifiers.map((verifier) => {
|
|
316
584
|
const row = byId.get(verifier.id);
|
|
@@ -325,52 +593,116 @@ export function readFreshFinalVerifierResults(database, input) {
|
|
|
325
593
|
stderrPreview: row.stderr_preview,
|
|
326
594
|
stdoutDigest: row.stdout_digest,
|
|
327
595
|
stderrDigest: row.stderr_digest,
|
|
596
|
+
...(row.repository_state_policy_version === null ? {} : { repositoryStatePolicyVersion: row.repository_state_policy_version }),
|
|
597
|
+
...(row.post_repository_digest === null ? {} : { repositoryStateDigest: row.post_repository_digest }),
|
|
598
|
+
...(row.changed_during_verification === null ? {} : { changedDuringVerification: row.changed_during_verification === 1 }),
|
|
328
599
|
};
|
|
329
600
|
});
|
|
330
601
|
}
|
|
602
|
+
export function hasFreshFinalVerifierResults(database, input) {
|
|
603
|
+
try {
|
|
604
|
+
return readFreshFinalVerifierResults(database, input) !== undefined;
|
|
605
|
+
}
|
|
606
|
+
catch {
|
|
607
|
+
return false;
|
|
608
|
+
}
|
|
609
|
+
}
|
|
331
610
|
export function readOperationReceipt(database, runId, operation) {
|
|
332
611
|
const row = database.prepare(`
|
|
333
|
-
SELECT request_digest, state, response_json
|
|
612
|
+
SELECT request_digest, state, response_json, lease_expires_at
|
|
334
613
|
FROM enno_operation_receipts
|
|
335
614
|
WHERE run_id = ? AND operation = ? AND idempotency_key = ?
|
|
336
615
|
`).get(runId, operation.operation, operation.idempotencyKey);
|
|
337
616
|
if (row === undefined)
|
|
338
617
|
return undefined;
|
|
339
|
-
if (row.request_digest !== operation.requestDigest
|
|
618
|
+
if (row.request_digest !== operation.requestDigest
|
|
619
|
+
&& !operation.legacyRequestDigests?.includes(row.request_digest)) {
|
|
340
620
|
throw new KiokukoError('CONFLICT', 'Enno idempotency key was reused with different input');
|
|
341
621
|
}
|
|
342
|
-
if (row.
|
|
343
|
-
|
|
622
|
+
if (row.request_digest !== operation.requestDigest) {
|
|
623
|
+
const normalized = database.prepare(`
|
|
624
|
+
UPDATE enno_operation_receipts SET request_digest = ?
|
|
625
|
+
WHERE run_id = ? AND operation = ? AND idempotency_key = ? AND request_digest = ?
|
|
626
|
+
RETURNING run_id AS runId
|
|
627
|
+
`).get(operation.requestDigest, runId, operation.operation, operation.idempotencyKey, row.request_digest);
|
|
628
|
+
if (normalized?.runId !== runId)
|
|
629
|
+
throw new KiokukoError('CONFLICT', 'Enno operation receipt changed concurrently');
|
|
630
|
+
row.request_digest = operation.requestDigest;
|
|
631
|
+
}
|
|
632
|
+
if (row.state === 'started') {
|
|
633
|
+
if (row.lease_expires_at === null || !Number.isFinite(Date.parse(row.lease_expires_at))) {
|
|
634
|
+
return integrity('Stored Enno operation receipt lease is invalid');
|
|
635
|
+
}
|
|
636
|
+
const now = new Date().toISOString();
|
|
637
|
+
if (row.lease_expires_at > now)
|
|
638
|
+
throw new KiokukoError('CONFLICT', 'Enno operation is already in progress');
|
|
639
|
+
const abandoned = database.prepare(`
|
|
640
|
+
UPDATE enno_operation_receipts
|
|
641
|
+
SET state = 'abandoned', failure_code = 'lease_expired', finished_at = ?
|
|
642
|
+
WHERE run_id = ? AND operation = ? AND idempotency_key = ?
|
|
643
|
+
AND request_digest = ? AND state = 'started' AND lease_expires_at <= ?
|
|
644
|
+
RETURNING run_id AS runId
|
|
645
|
+
`).get(now, runId, operation.operation, operation.idempotencyKey, operation.requestDigest, now);
|
|
646
|
+
if (abandoned?.runId !== runId)
|
|
647
|
+
throw new KiokukoError('CONFLICT', 'Enno operation state changed concurrently');
|
|
648
|
+
return undefined;
|
|
649
|
+
}
|
|
650
|
+
if (row.state === 'failed' || row.state === 'abandoned')
|
|
651
|
+
return undefined;
|
|
344
652
|
if (row.response_json === null)
|
|
345
653
|
integrity('Stored Enno operation receipt is invalid');
|
|
346
654
|
return parseCanonicalJson(row.response_json, 'Stored Enno operation receipt is invalid');
|
|
347
655
|
}
|
|
348
|
-
export function startOperationInTransaction(database, runId, operation) {
|
|
656
|
+
export function startOperationInTransaction(database, runId, operation, leaseMs = OPERATION_LEASE_MS) {
|
|
349
657
|
const replay = readOperationReceipt(database, runId, operation);
|
|
350
658
|
if (replay !== undefined)
|
|
351
659
|
throw new KiokukoError('CONFLICT', 'Completed Enno operation must be replayed before mutation');
|
|
660
|
+
if (!Number.isSafeInteger(leaseMs) || leaseMs < OPERATION_LEASE_MS)
|
|
661
|
+
integrity('Enno operation lease duration is invalid');
|
|
662
|
+
const nowDate = new Date();
|
|
663
|
+
const now = nowDate.toISOString();
|
|
664
|
+
database.prepare(`
|
|
665
|
+
UPDATE enno_operation_receipts
|
|
666
|
+
SET state = 'abandoned', failure_code = 'lease_expired', finished_at = ?
|
|
667
|
+
WHERE run_id = ? AND state = 'started' AND lease_expires_at <= ?
|
|
668
|
+
`).run(now, runId, now);
|
|
352
669
|
const active = database.prepare(`
|
|
353
670
|
SELECT operation FROM enno_operation_receipts
|
|
354
|
-
WHERE run_id = ? AND state = 'started'
|
|
671
|
+
WHERE run_id = ? AND state = 'started' AND lease_expires_at > ?
|
|
355
672
|
LIMIT 1
|
|
356
|
-
`).get(runId);
|
|
673
|
+
`).get(runId, now);
|
|
357
674
|
if (active !== undefined)
|
|
358
675
|
throw new KiokukoError('CONFLICT', 'Another Enno operation is already in progress');
|
|
359
|
-
|
|
676
|
+
const ownerNonce = randomUUID();
|
|
677
|
+
const leaseExpiresAt = new Date(nowDate.getTime() + leaseMs).toISOString();
|
|
678
|
+
const started = database.prepare(`
|
|
360
679
|
INSERT INTO enno_operation_receipts (
|
|
361
|
-
run_id, operation, idempotency_key, request_digest, state, response_json,
|
|
362
|
-
|
|
363
|
-
|
|
680
|
+
run_id, operation, idempotency_key, request_digest, state, response_json,
|
|
681
|
+
owner_nonce, lease_expires_at, heartbeat_at, failure_code, created_at, finished_at
|
|
682
|
+
) VALUES (?, ?, ?, ?, 'started', NULL, ?, ?, ?, NULL, ?, NULL)
|
|
683
|
+
ON CONFLICT(run_id, operation, idempotency_key) DO UPDATE SET
|
|
684
|
+
state = 'started', response_json = NULL, owner_nonce = excluded.owner_nonce,
|
|
685
|
+
lease_expires_at = excluded.lease_expires_at, heartbeat_at = excluded.heartbeat_at,
|
|
686
|
+
failure_code = NULL, created_at = excluded.created_at, finished_at = NULL
|
|
687
|
+
WHERE enno_operation_receipts.request_digest = excluded.request_digest
|
|
688
|
+
AND enno_operation_receipts.state IN ('failed', 'abandoned')
|
|
689
|
+
RETURNING run_id AS runId
|
|
690
|
+
`).get(runId, operation.operation, operation.idempotencyKey, operation.requestDigest, ownerNonce, leaseExpiresAt, now, now);
|
|
691
|
+
if (started?.runId !== runId)
|
|
692
|
+
throw new KiokukoError('CONFLICT', 'Enno operation could not be claimed');
|
|
693
|
+
return ownerNonce;
|
|
364
694
|
}
|
|
365
|
-
export function completeOperationInTransaction(database, runId, operation, response) {
|
|
695
|
+
export function completeOperationInTransaction(database, runId, operation, ownerNonce, response) {
|
|
366
696
|
const serialized = canonicalJson(response);
|
|
697
|
+
const finishedAt = new Date().toISOString();
|
|
367
698
|
const updated = database.prepare(`
|
|
368
699
|
UPDATE enno_operation_receipts
|
|
369
700
|
SET state = 'completed', response_json = ?, finished_at = ?
|
|
370
701
|
WHERE run_id = ? AND operation = ? AND idempotency_key = ?
|
|
371
|
-
AND request_digest = ? AND state = 'started'
|
|
702
|
+
AND request_digest = ? AND state = 'started' AND owner_nonce = ?
|
|
703
|
+
AND lease_expires_at > ?
|
|
372
704
|
RETURNING run_id AS runId
|
|
373
|
-
`).get(serialized,
|
|
705
|
+
`).get(serialized, finishedAt, runId, operation.operation, operation.idempotencyKey, operation.requestDigest, ownerNonce, finishedAt);
|
|
374
706
|
if (updated?.runId !== runId)
|
|
375
707
|
throw new KiokukoError('CONFLICT', 'Enno operation receipt changed concurrently');
|
|
376
708
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/enno-oduno/store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/enno-oduno/store.ts"],"names":[],"mappings":"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"}
|