@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
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import path from 'node:path';
|
|
2
1
|
import * as z from 'zod/v4';
|
|
2
|
+
import { createHash, randomBytes } from 'node:crypto';
|
|
3
3
|
import { withImmediateTransaction } from '../db/transaction.js';
|
|
4
4
|
import { KiokukoError } from '../errors.js';
|
|
5
|
-
import {
|
|
5
|
+
import { detectRepositoryRoot } from '../repository/detect-root.js';
|
|
6
6
|
import { canonicalContentHash } from '../serialization/validate.js';
|
|
7
7
|
import { directiveForRun } from './directives.js';
|
|
8
|
-
import {
|
|
8
|
+
import { PLAN_START_RECOVERY_BLOCKER_PREFIX } from './plan-recovery.js';
|
|
9
|
+
import { appendEnnoEventInTransaction, claimExecutionLeaseInTransaction, readEnnoSnapshot, } from './store.js';
|
|
9
10
|
import { ENNO_CLIENT_KINDS, } from './types.js';
|
|
10
11
|
export const ENNO_ADAPTER_WARNING = 'Kiokuko Enno-Oduno adapter unavailable; allowing the client to stop.';
|
|
11
12
|
export const ENNO_CLIENTS = ENNO_CLIENT_KINDS;
|
|
@@ -16,71 +17,110 @@ const hookInputSchema = z.object({
|
|
|
16
17
|
cwd: z.string().min(1).max(4_096),
|
|
17
18
|
stop_hook_active: z.boolean().optional(),
|
|
18
19
|
}).passthrough();
|
|
19
|
-
function
|
|
20
|
-
const relative = path.relative(root, cwd);
|
|
21
|
-
return relative === '' || (!relative.startsWith('..') && !path.isAbsolute(relative));
|
|
22
|
-
}
|
|
23
|
-
function exactSessionCandidates(database, client, sessionId, cwd) {
|
|
20
|
+
function exactSessionCandidates(database, client, sessionId, repositoryRoot) {
|
|
24
21
|
return database.prepare(`
|
|
25
22
|
SELECT ec.run_id AS runId, ec.workspace, ec.orchestration_session_id AS orchestrationId,
|
|
26
|
-
ec.client_kind AS clientKind, ec.
|
|
27
|
-
ec.
|
|
23
|
+
ec.client_kind AS clientKind, ec.client_version AS clientVersion,
|
|
24
|
+
ec.client_session_id AS clientSessionId,
|
|
25
|
+
ec.repository_root AS repositoryRoot, ec.status, ec.route_epoch AS routeEpoch
|
|
28
26
|
FROM enno_contracts AS ec
|
|
29
27
|
WHERE ec.client_session_id = ?
|
|
30
28
|
AND ec.client_kind = ?
|
|
29
|
+
AND ec.repository_root = ?
|
|
30
|
+
AND (ec.blocker IS NULL OR ec.blocker NOT LIKE ?)
|
|
31
31
|
AND ec.status IN ('zenki_planning', 'goki_executing', 'enno_verifying')
|
|
32
|
-
`).all(sessionId, client)
|
|
33
|
-
.filter((candidate) => isUnder(candidate.repositoryRoot, cwd));
|
|
32
|
+
`).all(sessionId, client, repositoryRoot, `${PLAN_START_RECOVERY_BLOCKER_PREFIX}%`);
|
|
34
33
|
}
|
|
35
|
-
function
|
|
34
|
+
function repositoryCandidates(database, repositoryRoot) {
|
|
36
35
|
return database.prepare(`
|
|
37
36
|
SELECT ec.run_id AS runId, ec.workspace, ec.orchestration_session_id AS orchestrationId,
|
|
38
|
-
ec.client_kind AS clientKind, ec.
|
|
39
|
-
ec.
|
|
37
|
+
ec.client_kind AS clientKind, ec.client_version AS clientVersion,
|
|
38
|
+
ec.client_session_id AS clientSessionId,
|
|
39
|
+
ec.repository_root AS repositoryRoot, ec.status, ec.route_epoch AS routeEpoch
|
|
40
40
|
FROM enno_contracts AS ec
|
|
41
|
-
WHERE ec.
|
|
42
|
-
AND (ec.
|
|
41
|
+
WHERE ec.repository_root = ?
|
|
42
|
+
AND (ec.blocker IS NULL OR ec.blocker NOT LIKE ?)
|
|
43
43
|
AND ec.status IN ('zenki_planning', 'goki_executing', 'enno_verifying')
|
|
44
|
-
`).all(
|
|
45
|
-
.filter((candidate) => isUnder(candidate.repositoryRoot, cwd));
|
|
44
|
+
`).all(repositoryRoot, `${PLAN_START_RECOVERY_BLOCKER_PREFIX}%`);
|
|
46
45
|
}
|
|
47
|
-
function
|
|
46
|
+
function routeCandidateInTransaction(database, candidate, client, sessionId) {
|
|
47
|
+
if (candidate.clientKind === client && candidate.clientSessionId === sessionId)
|
|
48
|
+
return candidate;
|
|
49
|
+
const activeLease = database.prepare(`
|
|
50
|
+
SELECT owner_client_kind AS clientKind, owner_session_id AS sessionId,
|
|
51
|
+
lease_expires_at AS expiresAt
|
|
52
|
+
FROM enno_execution_leases WHERE run_id = ?
|
|
53
|
+
`).get(candidate.runId);
|
|
54
|
+
if (activeLease !== undefined && activeLease.expiresAt > new Date().toISOString()
|
|
55
|
+
&& (activeLease.clientKind !== client || activeLease.sessionId !== sessionId)) {
|
|
56
|
+
throw new KiokukoError('CONFLICT', 'An active Enno WorkUnit lease prevents automatic rerouting');
|
|
57
|
+
}
|
|
48
58
|
const updated = database.prepare(`
|
|
49
59
|
UPDATE enno_contracts
|
|
50
|
-
SET client_kind = ?,
|
|
60
|
+
SET client_kind = ?, client_version = NULL, client_session_id = ?,
|
|
61
|
+
route_epoch = route_epoch + 1, updated_at = ?
|
|
51
62
|
WHERE run_id = ?
|
|
52
63
|
AND orchestration_session_id = ?
|
|
53
|
-
AND
|
|
54
|
-
AND
|
|
55
|
-
|
|
56
|
-
|
|
64
|
+
AND client_kind IS ?
|
|
65
|
+
AND client_version IS ?
|
|
66
|
+
AND client_session_id IS ?
|
|
67
|
+
RETURNING run_id AS runId, route_epoch AS routeEpoch
|
|
68
|
+
`).get(client, sessionId, new Date().toISOString(), candidate.runId, candidate.orchestrationId, candidate.clientKind, candidate.clientVersion, candidate.clientSessionId);
|
|
57
69
|
if (updated?.runId !== candidate.runId) {
|
|
58
|
-
throw new KiokukoError('CONFLICT', 'Enno client
|
|
70
|
+
throw new KiokukoError('CONFLICT', 'Enno client routing changed concurrently');
|
|
59
71
|
}
|
|
60
|
-
|
|
61
|
-
|
|
72
|
+
const firstBinding = candidate.clientSessionId === null;
|
|
73
|
+
appendEnnoEventInTransaction(database, candidate.runId, firstBinding ? 'enno.client_bound' : 'enno.client_rebound', 'enno-oduno', firstBinding ? 'bound' : 'rebound', {
|
|
74
|
+
fromClientKind: candidate.clientKind,
|
|
75
|
+
fromClientSessionId: candidate.clientSessionId,
|
|
76
|
+
fromClientVersion: candidate.clientVersion,
|
|
77
|
+
toClientKind: client,
|
|
78
|
+
toClientSessionId: sessionId,
|
|
79
|
+
toClientVersion: null,
|
|
62
80
|
});
|
|
63
|
-
return {
|
|
81
|
+
return {
|
|
82
|
+
...candidate,
|
|
83
|
+
clientKind: client,
|
|
84
|
+
clientVersion: null,
|
|
85
|
+
clientSessionId: sessionId,
|
|
86
|
+
routeEpoch: updated.routeEpoch,
|
|
87
|
+
};
|
|
64
88
|
}
|
|
65
|
-
function resolveCandidateInTransaction(database, client, sessionId,
|
|
66
|
-
const exact = exactSessionCandidates(database, client, sessionId,
|
|
89
|
+
function resolveCandidateInTransaction(database, client, sessionId, repositoryRoot) {
|
|
90
|
+
const exact = exactSessionCandidates(database, client, sessionId, repositoryRoot);
|
|
67
91
|
if (exact.length > 1)
|
|
68
92
|
return { kind: 'ambiguous' };
|
|
69
93
|
if (exact[0] !== undefined)
|
|
70
94
|
return { kind: 'resolved', candidate: exact[0] };
|
|
71
|
-
const
|
|
72
|
-
if (
|
|
95
|
+
const repository = repositoryCandidates(database, repositoryRoot);
|
|
96
|
+
if (repository.length === 0)
|
|
73
97
|
return { kind: 'none' };
|
|
74
|
-
if (
|
|
98
|
+
if (repository.length > 1)
|
|
75
99
|
return { kind: 'ambiguous' };
|
|
76
|
-
return { kind: 'resolved', candidate:
|
|
100
|
+
return { kind: 'resolved', candidate: routeCandidateInTransaction(database, repository[0], client, sessionId) };
|
|
77
101
|
}
|
|
78
|
-
function continuationPrompt(directive) {
|
|
79
|
-
return `Enno-Oduno requires continuation. Follow this run-bound role directive exactly and do not claim completion early:\n${JSON.stringify(directive)}`;
|
|
102
|
+
function continuationPrompt(directive, resumeToken, routeEpoch, executionLease) {
|
|
103
|
+
return `Enno-Oduno requires continuation. Follow this run-bound role directive exactly and do not claim completion early. Use the supplied resumeToken and routeEpoch for the next Enno operation; do not reuse credentials from an older route:\n${JSON.stringify({ resumeToken, routeEpoch, executionLease, directive })}`;
|
|
104
|
+
}
|
|
105
|
+
function issueResumeTokenInTransaction(database, snapshot) {
|
|
106
|
+
if (snapshot.clientKind === null || snapshot.clientSessionId === null) {
|
|
107
|
+
throw new KiokukoError('INTEGRITY_ERROR', 'Enno resume token requires a bound client route');
|
|
108
|
+
}
|
|
109
|
+
const token = randomBytes(32).toString('base64url');
|
|
110
|
+
const now = new Date();
|
|
111
|
+
const expiresAt = new Date(now.getTime() + 15 * 60_000).toISOString();
|
|
112
|
+
database.prepare('DELETE FROM enno_resume_tokens WHERE expires_at <= ?').run(now.toISOString());
|
|
113
|
+
database.prepare(`
|
|
114
|
+
INSERT INTO enno_resume_tokens (
|
|
115
|
+
token_hash, run_id, repository_root, route_epoch, client_kind,
|
|
116
|
+
client_session_id, expires_at, created_at
|
|
117
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
|
118
|
+
`).run(createHash('sha256').update(token, 'utf8').digest('hex'), snapshot.runId, snapshot.repositoryRoot, snapshot.routeEpoch ?? 0, snapshot.clientKind, snapshot.clientSessionId, expiresAt, now.toISOString());
|
|
119
|
+
return token;
|
|
80
120
|
}
|
|
81
121
|
function claimContinuation(database, client, snapshot, directiveDigest) {
|
|
82
122
|
if (snapshot.clientSessionId === null || snapshot.clientKind !== client) {
|
|
83
|
-
throw new KiokukoError('INTEGRITY_ERROR', 'Enno continuation requires
|
|
123
|
+
throw new KiokukoError('INTEGRITY_ERROR', 'Enno continuation requires the current client route');
|
|
84
124
|
}
|
|
85
125
|
const existing = database.prepare(`
|
|
86
126
|
SELECT contract_revision AS contractRevision, mutation_revision AS mutationRevision,
|
|
@@ -124,20 +164,6 @@ function claimContinuation(database, client, snapshot, directiveDigest) {
|
|
|
124
164
|
`).run(snapshot.runId, client, snapshot.clientSessionId, snapshot.revision, snapshot.mutationRevision, snapshot.attempts, directiveDigest, new Date().toISOString());
|
|
125
165
|
return true;
|
|
126
166
|
}
|
|
127
|
-
function blockForContinuationLimit(database, snapshot) {
|
|
128
|
-
updateContractInTransaction(database, snapshot, {
|
|
129
|
-
contract: snapshot.contract,
|
|
130
|
-
status: 'blocked',
|
|
131
|
-
confirmationState: snapshot.confirmationState,
|
|
132
|
-
blocker: 'Enno-Oduno continuation limit reached',
|
|
133
|
-
});
|
|
134
|
-
appendEnnoEventInTransaction(database, snapshot.runId, 'enno.blocked', 'enno-oduno', 'blocked', {
|
|
135
|
-
reason: 'continuation_limit',
|
|
136
|
-
contractRevision: snapshot.revision,
|
|
137
|
-
attempts: snapshot.attempts,
|
|
138
|
-
});
|
|
139
|
-
terminalizeLedgerRunInTransaction(database, snapshot.runId, 'failed');
|
|
140
|
-
}
|
|
141
167
|
export function decideAdapterContinuation(database, client, rawInput) {
|
|
142
168
|
const parsed = hookInputSchema.safeParse(rawInput);
|
|
143
169
|
if (!parsed.success)
|
|
@@ -145,9 +171,9 @@ export function decideAdapterContinuation(database, client, rawInput) {
|
|
|
145
171
|
const sessionId = parsed.data.session_id ?? parsed.data.sessionId;
|
|
146
172
|
if (sessionId === undefined)
|
|
147
173
|
throw new KiokukoError('VALIDATION_ERROR', 'Enno client session ID is required');
|
|
148
|
-
const
|
|
174
|
+
const repositoryRoot = detectRepositoryRoot({ cwd: parsed.data.cwd }).root;
|
|
149
175
|
const continuation = withImmediateTransaction(database, () => {
|
|
150
|
-
const resolution = resolveCandidateInTransaction(database, client, sessionId,
|
|
176
|
+
const resolution = resolveCandidateInTransaction(database, client, sessionId, repositoryRoot);
|
|
151
177
|
if (resolution.kind !== 'resolved')
|
|
152
178
|
return resolution;
|
|
153
179
|
const candidate = resolution.candidate;
|
|
@@ -157,18 +183,20 @@ export function decideAdapterContinuation(database, client, rawInput) {
|
|
|
157
183
|
orchestrationId: candidate.orchestrationId,
|
|
158
184
|
});
|
|
159
185
|
if (snapshot.clientKind !== client || snapshot.clientSessionId !== sessionId) {
|
|
160
|
-
throw new KiokukoError('INTEGRITY_ERROR', 'Enno client
|
|
186
|
+
throw new KiokukoError('INTEGRITY_ERROR', 'Enno client routing is inconsistent');
|
|
161
187
|
}
|
|
162
188
|
const directive = directiveForRun(snapshot);
|
|
163
189
|
if (directive === null)
|
|
164
190
|
throw new KiokukoError('INTEGRITY_ERROR', 'Enno active run has no role directive');
|
|
165
191
|
const claimed = claimContinuation(database, client, snapshot, canonicalContentHash(directive));
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
192
|
+
const resumeToken = claimed ? issueResumeTokenInTransaction(database, snapshot) : null;
|
|
193
|
+
const executionLease = claimed && directive.role === 'goki' && directive.workUnit !== null
|
|
194
|
+
? claimExecutionLeaseInTransaction(database, snapshot, directive.workUnit.id, { clientKind: client, sessionId })
|
|
195
|
+
: null;
|
|
196
|
+
return { kind: 'continuation', snapshot, directive, claimed, resumeToken, executionLease };
|
|
169
197
|
});
|
|
170
198
|
if (continuation.kind === 'none') {
|
|
171
|
-
return { continue: false, runId: null, status: null, directive: null, reason: null, warning: null };
|
|
199
|
+
return { continue: false, runId: null, status: null, directive: null, reason: null, warning: null, resumeToken: null, routeEpoch: null, executionLease: null };
|
|
172
200
|
}
|
|
173
201
|
if (continuation.kind === 'ambiguous') {
|
|
174
202
|
return {
|
|
@@ -178,6 +206,9 @@ export function decideAdapterContinuation(database, client, rawInput) {
|
|
|
178
206
|
directive: null,
|
|
179
207
|
reason: null,
|
|
180
208
|
warning: 'Multiple Enno-Oduno runs match this client and repository; returning control without guessing.',
|
|
209
|
+
resumeToken: null,
|
|
210
|
+
routeEpoch: null,
|
|
211
|
+
executionLease: null,
|
|
181
212
|
};
|
|
182
213
|
}
|
|
183
214
|
const { snapshot } = continuation;
|
|
@@ -185,10 +216,13 @@ export function decideAdapterContinuation(database, client, rawInput) {
|
|
|
185
216
|
return {
|
|
186
217
|
continue: false,
|
|
187
218
|
runId: snapshot.runId,
|
|
188
|
-
status:
|
|
219
|
+
status: snapshot.status,
|
|
189
220
|
directive: null,
|
|
190
221
|
reason: null,
|
|
191
|
-
warning: 'Enno-Oduno continuation limit reached
|
|
222
|
+
warning: 'Enno-Oduno continuation limit reached for this client session; the run remains active for another local project client.',
|
|
223
|
+
resumeToken: null,
|
|
224
|
+
routeEpoch: snapshot.routeEpoch ?? 0,
|
|
225
|
+
executionLease: null,
|
|
192
226
|
};
|
|
193
227
|
}
|
|
194
228
|
return {
|
|
@@ -196,8 +230,11 @@ export function decideAdapterContinuation(database, client, rawInput) {
|
|
|
196
230
|
runId: snapshot.runId,
|
|
197
231
|
status: snapshot.status,
|
|
198
232
|
directive: continuation.directive,
|
|
199
|
-
reason: continuationPrompt(continuation.directive),
|
|
233
|
+
reason: continuationPrompt(continuation.directive, continuation.resumeToken, snapshot.routeEpoch ?? 0, continuation.executionLease),
|
|
200
234
|
warning: null,
|
|
235
|
+
resumeToken: continuation.resumeToken,
|
|
236
|
+
routeEpoch: snapshot.routeEpoch ?? 0,
|
|
237
|
+
executionLease: continuation.executionLease,
|
|
201
238
|
};
|
|
202
239
|
}
|
|
203
240
|
export function renderStopHookDecision(decision) {
|
|
@@ -210,7 +247,7 @@ export function renderOpenCodeDecision(decision) {
|
|
|
210
247
|
}
|
|
211
248
|
export function failOpenAdapterOutput(client) {
|
|
212
249
|
return client === 'opencode'
|
|
213
|
-
? { continue: false, runId: null, status: null, directive: null, reason: null, warning: ENNO_ADAPTER_WARNING }
|
|
250
|
+
? { continue: false, runId: null, status: null, directive: null, reason: null, warning: ENNO_ADAPTER_WARNING, resumeToken: null, routeEpoch: null, executionLease: null }
|
|
214
251
|
: { systemMessage: ENNO_ADAPTER_WARNING };
|
|
215
252
|
}
|
|
216
253
|
//# sourceMappingURL=adapters.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapters.js","sourceRoot":"","sources":["../../src/enno-oduno/adapters.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"adapters.js","sourceRoot":"","sources":["../../src/enno-oduno/adapters.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,12 @@ export declare function readAdvisoryRound(database: SqliteDatabase, input: {
|
|
|
7
7
|
phase: AdvisoryPhase;
|
|
8
8
|
inputDigest: string;
|
|
9
9
|
}): StoredAdvisoryRound | undefined;
|
|
10
|
+
export declare function readSubmittedAdvisoryRound(database: SqliteDatabase, input: {
|
|
11
|
+
runId: string;
|
|
12
|
+
contractRevision: number;
|
|
13
|
+
mutationRevision: number;
|
|
14
|
+
phase: AdvisoryPhase;
|
|
15
|
+
}): StoredAdvisoryRound | undefined;
|
|
10
16
|
export declare function createAdvisoryRoundInTransaction(database: SqliteDatabase, input: {
|
|
11
17
|
runId: string;
|
|
12
18
|
contractRevision: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advisory-store.d.ts","sourceRoot":"","sources":["../../src/enno-oduno/advisory-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAa,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"advisory-store.d.ts","sourceRoot":"","sources":["../../src/enno-oduno/advisory-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAa,MAAM,kBAAkB,CAAC;AAKlE,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACzB,MAAM,YAAY,CAAC;AA4EpB,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE;IACjE,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,aAAa,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,mBAAmB,GAAG,SAAS,CAGlC;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,aAAa,CAAC;CACtB,GAAG,mBAAmB,GAAG,SAAS,CAUlC;AAED,wBAAgB,gCAAgC,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE;IAChF,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,aAAa,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,SAAS,oBAAoB,EAAE,CAAC;CAChD,GAAG,mBAAmB,CAuCtB;AAED,wBAAgB,wCAAwC,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE;IACxF,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,aAAa,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,mBAAmB,CAatB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { KiokukoError } from '../errors.js';
|
|
2
2
|
import { canonicalJson } from '../serialization/validate.js';
|
|
3
3
|
import { parseStrictJson } from '../setup/strict-json.js';
|
|
4
|
+
import { parseStoredAdvisoryContribution } from './schemas.js';
|
|
4
5
|
import { ADVISORY_PHASES, ADVISORY_POLICY_VERSION, } from './types.js';
|
|
5
6
|
import { advisoryRoundAggregate, normalizeAdvisoryContributions } from './advisory.js';
|
|
6
7
|
function roundRow(database, input) {
|
|
@@ -28,7 +29,7 @@ function parseStoredRound(database, row) {
|
|
|
28
29
|
catch {
|
|
29
30
|
throw new KiokukoError('INTEGRITY_ERROR', 'Stored advisory contribution is invalid');
|
|
30
31
|
}
|
|
31
|
-
return parsed;
|
|
32
|
+
return parseStoredAdvisoryContribution(parsed);
|
|
32
33
|
});
|
|
33
34
|
const normalized = normalizeAdvisoryContributions(row.phase, contributions);
|
|
34
35
|
const aggregate = advisoryRoundAggregate(normalized);
|
|
@@ -51,6 +52,17 @@ export function readAdvisoryRound(database, input) {
|
|
|
51
52
|
const row = roundRow(database, input);
|
|
52
53
|
return row === undefined ? undefined : parseStoredRound(database, row);
|
|
53
54
|
}
|
|
55
|
+
export function readSubmittedAdvisoryRound(database, input) {
|
|
56
|
+
const row = database.prepare(`
|
|
57
|
+
SELECT round_id, run_id, contract_revision, mutation_revision, phase,
|
|
58
|
+
input_digest, policy_version, source, state, degraded, aggregate_json
|
|
59
|
+
FROM enno_advisory_rounds
|
|
60
|
+
WHERE run_id = ? AND contract_revision = ? AND mutation_revision = ? AND phase = ?
|
|
61
|
+
ORDER BY created_at DESC, round_id DESC
|
|
62
|
+
LIMIT 1
|
|
63
|
+
`).get(input.runId, input.contractRevision, input.mutationRevision, input.phase);
|
|
64
|
+
return row === undefined ? undefined : parseStoredRound(database, row);
|
|
65
|
+
}
|
|
54
66
|
export function createAdvisoryRoundInTransaction(database, input) {
|
|
55
67
|
const normalized = normalizeAdvisoryContributions(input.phase, input.contributions);
|
|
56
68
|
const aggregate = advisoryRoundAggregate(normalized);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advisory-store.js","sourceRoot":"","sources":["../../src/enno-oduno/advisory-store.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EACL,eAAe,EACf,uBAAuB,GAIxB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,sBAAsB,EAAE,8BAA8B,EAAE,MAAM,eAAe,CAAC;AAoBvF,SAAS,QAAQ,CAAC,QAAwB,EAAE,KAM3C;IACC,OAAO,QAAQ,CAAC,OAAO,CAAC;;;;;;GAMvB,CAAC,CAAC,GAAG,CAAW,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;AAChH,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAwB,EAAE,GAAa;IAC/D,IAAI,GAAG,CAAC,cAAc,KAAK,uBAAuB,IAAI,GAAG,CAAC,MAAM,KAAK,eAAe,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7H,MAAM,IAAI,YAAY,CAAC,iBAAiB,EAAE,2CAA2C,CAAC,CAAC;IACzF,CAAC;IACD,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC;;;;GAItC,CAAC,CAAC,GAAG,CAAkB,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACjD,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,eAAe,CACtB,IAAI,CAAC,iBAAiB,EACtB,EAAE,kBAAkB,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,EAC/E,yCAAyC,CAC1C,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,YAAY,CAAC,iBAAiB,EAAE,yCAAyC,CAAC,CAAC;QACvF,CAAC;QACD,OAAO,
|
|
1
|
+
{"version":3,"file":"advisory-store.js","sourceRoot":"","sources":["../../src/enno-oduno/advisory-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,8 @@ export declare function advisoryInputDigest(input: {
|
|
|
7
7
|
allowlistedContext: AdvisoryContext;
|
|
8
8
|
}): string;
|
|
9
9
|
export declare function advisoryPhaseForStatus(status: EnnoRunSnapshot['status']): AdvisoryPhase | null;
|
|
10
|
+
export declare function projectRepositoryRelativePath(repositoryRoot: string, value: string): string;
|
|
11
|
+
export declare function advisoryContextForSnapshot(snapshot: EnnoRunSnapshot, phase: AdvisoryPhase): AdvisoryContext;
|
|
10
12
|
export declare function advisoryDirectiveForSnapshot(snapshot: EnnoRunSnapshot): AdvisoryFanoutDirective | undefined;
|
|
11
13
|
export declare function normalizeAdvisoryContributions(phase: AdvisoryPhase, rawContributions: readonly AdvisoryContribution[]): AdvisoryContribution[];
|
|
12
14
|
export declare function advisoryRoundAggregate(contributions: readonly AdvisoryContribution[]): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advisory.d.ts","sourceRoot":"","sources":["../../src/enno-oduno/advisory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"advisory.d.ts","sourceRoot":"","sources":["../../src/enno-oduno/advisory.ts"],"names":[],"mappings":"AAMA,OAAO,EAQL,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAE5B,KAAK,aAAa,EAIlB,KAAK,eAAe,EAErB,MAAM,YAAY,CAAC;AAKpB,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,aAAa,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAO9F;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,KAAK,EAAE,aAAa,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,eAAe,CAAC;CACrC,GAAG,MAAM,CAUT;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,GAAG,aAAa,GAAG,IAAI,CAK9F;AAkBD,wBAAgB,6BAA6B,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAU3F;AAyFD,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,GAAG,eAAe,CAmD3G;AAED,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,eAAe,GAAG,uBAAuB,GAAG,SAAS,CAe3G;AAoBD,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,aAAa,EACpB,gBAAgB,EAAE,SAAS,oBAAoB,EAAE,GAChD,oBAAoB,EAAE,CAmExB;AAED,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,SAAS,oBAAoB,EAAE,GAAG;IACtF,aAAa,EAAE,oBAAoB,EAAE,CAAC;IACtC,QAAQ,EAAE,OAAO,CAAC;CACnB,CAUA"}
|