@askdkc/kiokuko 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/README.ja.md +5 -1
  2. package/README.ko.md +5 -1
  3. package/README.md +12 -1
  4. package/README.zh-CN.md +5 -1
  5. package/dist/agent-file/render.d.ts +1 -1
  6. package/dist/agent-file/render.d.ts.map +1 -1
  7. package/dist/agent-file/render.js +5 -3
  8. package/dist/agent-file/render.js.map +1 -1
  9. package/dist/akinator/agent-task.d.ts +1 -1
  10. package/dist/akinator/agent-task.d.ts.map +1 -1
  11. package/dist/akinator/agent-task.js +10 -1
  12. package/dist/akinator/agent-task.js.map +1 -1
  13. package/dist/akinator/skill-discovery-attempt.d.ts +6 -1
  14. package/dist/akinator/skill-discovery-attempt.d.ts.map +1 -1
  15. package/dist/akinator/skill-discovery-attempt.js +100 -23
  16. package/dist/akinator/skill-discovery-attempt.js.map +1 -1
  17. package/dist/enno-oduno/advisory-store.d.ts +25 -0
  18. package/dist/enno-oduno/advisory-store.d.ts.map +1 -0
  19. package/dist/enno-oduno/advisory-store.js +93 -0
  20. package/dist/enno-oduno/advisory-store.js.map +1 -0
  21. package/dist/enno-oduno/advisory.d.ts +16 -0
  22. package/dist/enno-oduno/advisory.d.ts.map +1 -0
  23. package/dist/enno-oduno/advisory.js +128 -0
  24. package/dist/enno-oduno/advisory.js.map +1 -0
  25. package/dist/enno-oduno/confirmation.d.ts +4 -0
  26. package/dist/enno-oduno/confirmation.d.ts.map +1 -0
  27. package/dist/enno-oduno/confirmation.js +124 -0
  28. package/dist/enno-oduno/confirmation.js.map +1 -0
  29. package/dist/enno-oduno/directives.d.ts.map +1 -1
  30. package/dist/enno-oduno/directives.js +30 -4
  31. package/dist/enno-oduno/directives.js.map +1 -1
  32. package/dist/enno-oduno/instructions.d.ts +4 -1
  33. package/dist/enno-oduno/instructions.d.ts.map +1 -1
  34. package/dist/enno-oduno/instructions.js +8 -1
  35. package/dist/enno-oduno/instructions.js.map +1 -1
  36. package/dist/enno-oduno/schemas.d.ts +53 -0
  37. package/dist/enno-oduno/schemas.d.ts.map +1 -1
  38. package/dist/enno-oduno/schemas.js +46 -1
  39. package/dist/enno-oduno/schemas.js.map +1 -1
  40. package/dist/enno-oduno/service.d.ts +3 -1
  41. package/dist/enno-oduno/service.d.ts.map +1 -1
  42. package/dist/enno-oduno/service.js +195 -31
  43. package/dist/enno-oduno/service.js.map +1 -1
  44. package/dist/enno-oduno/store.d.ts +7 -1
  45. package/dist/enno-oduno/store.d.ts.map +1 -1
  46. package/dist/enno-oduno/store.js +47 -4
  47. package/dist/enno-oduno/store.js.map +1 -1
  48. package/dist/enno-oduno/types.d.ts +166 -0
  49. package/dist/enno-oduno/types.d.ts.map +1 -1
  50. package/dist/enno-oduno/types.js +23 -0
  51. package/dist/enno-oduno/types.js.map +1 -1
  52. package/dist/ledger/types.d.ts +1 -1
  53. package/dist/ledger/types.d.ts.map +1 -1
  54. package/dist/ledger/types.js +1 -1
  55. package/dist/ledger/types.js.map +1 -1
  56. package/dist/mcp/server.d.ts +1 -0
  57. package/dist/mcp/server.d.ts.map +1 -1
  58. package/dist/mcp/server.js +17 -7
  59. package/dist/mcp/server.js.map +1 -1
  60. package/dist/setup/render.d.ts.map +1 -1
  61. package/dist/setup/render.js +4 -2
  62. package/dist/setup/render.js.map +1 -1
  63. package/dist/skills/discovery-service.d.ts.map +1 -1
  64. package/dist/skills/discovery-service.js +5 -2
  65. package/dist/skills/discovery-service.js.map +1 -1
  66. package/migrations/015_skill_discovery_attempt_digests.sql +90 -0
  67. package/migrations/016_enno_advisory_rounds.sql +67 -0
  68. package/package.json +1 -1
  69. package/skills/kiokuko-enno-oduno/SKILL.md +22 -1
  70. package/templates/AGENTS.md +4 -2
@@ -4,6 +4,7 @@ import { canonicalJson } from '../serialization/validate.js';
4
4
  import { parseStrictJson } from '../setup/strict-json.js';
5
5
  import { SkillProviderError } from '../skills/providers/schema.js';
6
6
  import { SkillSourceError } from '../skills/source/errors.js';
7
+ import { ENNO_MAX_EXTERNAL_SKILLS, ENNO_MAX_TOTAL_SKILL_QUERIES } from '../enno-oduno/types.js';
7
8
  const HASH = /^[0-9a-f]{64}$/u;
8
9
  const INVALID_TEXT = /[\p{Cc}\p{Cf}\p{Cs}\uFFFD]/u;
9
10
  const MAX_SUMMARY_JSON_CHARS = 256 * 1024;
@@ -211,25 +212,61 @@ function validateFailure(value) {
211
212
  }
212
213
  return integrity();
213
214
  }
214
- function attemptRow(database, runId, phase) {
215
+ function attemptRow(database, identity) {
215
216
  return database.prepare(`
216
- SELECT run_id, phase, request_digest, state, summary_json, failure_json, started_at, finished_at
217
+ SELECT run_id, phase, request_digest,
218
+ reserved_query_count, reserved_selection_count,
219
+ consumed_query_count, consumed_selection_count,
220
+ state, summary_json, failure_json, started_at, finished_at
217
221
  FROM agent_task_skill_discovery_attempts
218
- WHERE run_id = ? AND phase = ?
222
+ WHERE run_id = ? AND phase = ? AND request_digest = ?
223
+ `).get(identity.runId, identity.phase, identity.requestDigest);
224
+ }
225
+ function allAttemptRows(database, runId) {
226
+ return database.prepare(`
227
+ SELECT run_id, phase, request_digest,
228
+ reserved_query_count, reserved_selection_count,
229
+ consumed_query_count, consumed_selection_count,
230
+ state, summary_json, failure_json, started_at, finished_at
231
+ FROM agent_task_skill_discovery_attempts
232
+ WHERE run_id = ?
233
+ `).all(runId);
234
+ }
235
+ function activeAttemptRow(database, runId, phase) {
236
+ return database.prepare(`
237
+ SELECT run_id, phase, request_digest,
238
+ reserved_query_count, reserved_selection_count,
239
+ consumed_query_count, consumed_selection_count,
240
+ state, summary_json, failure_json, started_at, finished_at
241
+ FROM agent_task_skill_discovery_attempts
242
+ WHERE run_id = ? AND phase = ? AND state = 'started'
243
+ LIMIT 1
219
244
  `).get(runId, phase);
220
245
  }
246
+ function boundedBudget(value, maximum) {
247
+ return nonNegativeSafeInteger(value) && value <= maximum;
248
+ }
221
249
  function validateAttemptRow(row, identity) {
222
- if (row.run_id !== identity.runId
223
- || row.phase !== identity.phase
250
+ if (typeof row.run_id !== 'string'
251
+ || typeof row.phase !== 'string'
252
+ || !['intake', 'zenki'].includes(row.phase)
224
253
  || typeof row.request_digest !== 'string'
225
254
  || !HASH.test(row.request_digest)
226
- || row.request_digest !== identity.requestDigest
255
+ || !boundedBudget(row.reserved_query_count, ENNO_MAX_TOTAL_SKILL_QUERIES)
256
+ || !boundedBudget(row.reserved_selection_count, ENNO_MAX_EXTERNAL_SKILLS)
257
+ || !boundedBudget(row.consumed_query_count, row.reserved_query_count)
258
+ || !boundedBudget(row.consumed_selection_count, row.reserved_selection_count)
227
259
  || !canonicalTimestamp(row.started_at)
228
260
  || !['started', 'completed', 'failed'].includes(String(row.state))) {
229
261
  integrity();
230
262
  }
263
+ if (identity !== undefined && (row.run_id !== identity.runId
264
+ || row.phase !== identity.phase
265
+ || row.request_digest !== identity.requestDigest))
266
+ integrity();
231
267
  if (row.state === 'started') {
232
- if (row.summary_json !== null || row.failure_json !== null || row.finished_at !== null)
268
+ if (row.consumed_query_count !== 0 || row.consumed_selection_count !== 0
269
+ || row.summary_json !== null || row.failure_json !== null || row.finished_at !== null)
233
270
  integrity();
234
271
  return;
235
272
  }
@@ -299,29 +336,60 @@ function resolveExistingAttempt(existing, identity) {
299
336
  throwStoredFailure(validateFailure(parseCanonicalStoredJson(existing.failure_json, MAX_FAILURE_JSON_CHARS)));
300
337
  }
301
338
  export function readAgentTaskSkillDiscoveryAttempt(database, identity) {
302
- const existing = attemptRow(database, identity.runId, identity.phase);
339
+ const existing = attemptRow(database, identity);
303
340
  return existing === undefined ? undefined : resolveExistingAttempt(existing, identity);
304
341
  }
305
- export function claimAgentTaskSkillDiscoveryAttempt(database, identity) {
342
+ function usedDiscoveryBudget(database, runId) {
343
+ let queryBudget = 0;
344
+ let selectionBudget = 0;
345
+ for (const row of allAttemptRows(database, runId)) {
346
+ validateAttemptRow(row);
347
+ const active = row.state === 'started';
348
+ queryBudget += active ? row.reserved_query_count : row.consumed_query_count;
349
+ selectionBudget += active ? row.reserved_selection_count : row.consumed_selection_count;
350
+ }
351
+ if (queryBudget > ENNO_MAX_TOTAL_SKILL_QUERIES || selectionBudget > ENNO_MAX_EXTERNAL_SKILLS)
352
+ integrity();
353
+ return { queryBudget, selectionBudget };
354
+ }
355
+ export function claimAgentTaskSkillDiscoveryAttempt(database, identity, requestedBudget = {
356
+ queryBudget: ENNO_MAX_TOTAL_SKILL_QUERIES,
357
+ selectionBudget: ENNO_MAX_EXTERNAL_SKILLS,
358
+ }) {
306
359
  if (!boundedText(identity.runId, 256)
307
360
  || !HASH.test(identity.requestDigest)
308
361
  || (identity.phase !== 'intake' && identity.phase !== 'zenki')
309
- || !DISCOVERY_MODES.includes(identity.mode)) {
362
+ || !DISCOVERY_MODES.includes(identity.mode)
363
+ || !boundedBudget(requestedBudget.queryBudget, ENNO_MAX_TOTAL_SKILL_QUERIES)
364
+ || !boundedBudget(requestedBudget.selectionBudget, ENNO_MAX_EXTERNAL_SKILLS)) {
310
365
  throw new KiokukoError('VALIDATION_ERROR', 'Task Skill discovery attempt identity is invalid');
311
366
  }
312
367
  return withImmediateTransaction(database, () => {
313
- const existing = attemptRow(database, identity.runId, identity.phase);
368
+ const existing = attemptRow(database, identity);
314
369
  if (existing === undefined) {
370
+ const active = activeAttemptRow(database, identity.runId, identity.phase);
371
+ if (active !== undefined) {
372
+ validateAttemptRow(active);
373
+ throw new KiokukoError('CONFLICT', 'Task Skill discovery is already in progress or did not complete');
374
+ }
375
+ const used = usedDiscoveryBudget(database, identity.runId);
376
+ const queryBudget = Math.min(requestedBudget.queryBudget, ENNO_MAX_TOTAL_SKILL_QUERIES - used.queryBudget);
377
+ const selectionBudget = Math.min(requestedBudget.selectionBudget, ENNO_MAX_EXTERNAL_SKILLS - used.selectionBudget);
378
+ const grantedQueryBudget = queryBudget === 0 || selectionBudget === 0 ? 0 : queryBudget;
379
+ const grantedSelectionBudget = queryBudget === 0 || selectionBudget === 0 ? 0 : selectionBudget;
315
380
  database.prepare(`
316
381
  INSERT INTO agent_task_skill_discovery_attempts (
317
- run_id, phase, request_digest, state, summary_json, failure_json, started_at, finished_at
318
- ) VALUES (?, ?, ?, 'started', NULL, NULL, ?, NULL)
319
- `).run(identity.runId, identity.phase, identity.requestDigest, new Date().toISOString());
320
- const inserted = attemptRow(database, identity.runId, identity.phase);
382
+ run_id, phase, request_digest,
383
+ reserved_query_count, reserved_selection_count,
384
+ consumed_query_count, consumed_selection_count,
385
+ state, summary_json, failure_json, started_at, finished_at
386
+ ) VALUES (?, ?, ?, ?, ?, 0, 0, 'started', NULL, NULL, ?, NULL)
387
+ `).run(identity.runId, identity.phase, identity.requestDigest, grantedQueryBudget, grantedSelectionBudget, new Date().toISOString());
388
+ const inserted = attemptRow(database, identity);
321
389
  if (inserted === undefined)
322
390
  integrity();
323
391
  validateAttemptRow(inserted, identity);
324
- return { kind: 'execute' };
392
+ return { kind: 'execute', queryBudget: grantedQueryBudget, selectionBudget: grantedSelectionBudget };
325
393
  }
326
394
  return resolveExistingAttempt(existing, identity);
327
395
  });
@@ -332,23 +400,29 @@ export function completeAgentTaskSkillDiscoveryAttempt(database, identity, summa
332
400
  if (serialized.length > MAX_SUMMARY_JSON_CHARS)
333
401
  integrity();
334
402
  return withImmediateTransaction(database, () => {
335
- const existing = attemptRow(database, identity.runId, identity.phase);
403
+ const existing = attemptRow(database, identity);
336
404
  if (existing === undefined)
337
405
  integrity();
338
406
  validateAttemptRow(existing, identity);
339
407
  if (existing.state !== 'started')
340
408
  integrity();
409
+ const reservedQueries = existing.reserved_query_count;
410
+ const reservedSelections = existing.reserved_selection_count;
411
+ if (validated.queries.length > reservedQueries
412
+ || validated.selected.length > reservedSelections) {
413
+ integrity();
414
+ }
341
415
  assertBeforeComplete?.();
342
416
  const finishedAt = new Date().toISOString();
343
417
  const updated = database.prepare(`
344
418
  UPDATE agent_task_skill_discovery_attempts
345
- SET state = 'completed', summary_json = ?, finished_at = ?
419
+ SET state = 'completed', summary_json = ?, consumed_query_count = ?, consumed_selection_count = ?, finished_at = ?
346
420
  WHERE run_id = ? AND phase = ? AND request_digest = ? AND state = 'started'
347
421
  RETURNING state, summary_json
348
- `).get(serialized, finishedAt, identity.runId, identity.phase, identity.requestDigest);
422
+ `).get(serialized, validated.queries.length, validated.selected.length, finishedAt, identity.runId, identity.phase, identity.requestDigest);
349
423
  if (updated?.state !== 'completed' || updated.summary_json !== serialized)
350
424
  integrity();
351
- const completed = attemptRow(database, identity.runId, identity.phase);
425
+ const completed = attemptRow(database, identity);
352
426
  if (completed === undefined)
353
427
  integrity();
354
428
  validateAttemptRow(completed, identity);
@@ -362,7 +436,7 @@ export function failAgentTaskSkillDiscoveryAttempt(database, identity, cause) {
362
436
  const serialized = canonicalJson(normalized.failure);
363
437
  try {
364
438
  withImmediateTransaction(database, () => {
365
- const existing = attemptRow(database, identity.runId, identity.phase);
439
+ const existing = attemptRow(database, identity);
366
440
  if (existing === undefined)
367
441
  integrity();
368
442
  validateAttemptRow(existing, identity);
@@ -370,13 +444,16 @@ export function failAgentTaskSkillDiscoveryAttempt(database, identity, cause) {
370
444
  integrity();
371
445
  const updated = database.prepare(`
372
446
  UPDATE agent_task_skill_discovery_attempts
373
- SET state = 'failed', failure_json = ?, finished_at = ?
447
+ SET state = 'failed', failure_json = ?,
448
+ consumed_query_count = reserved_query_count,
449
+ consumed_selection_count = reserved_selection_count,
450
+ finished_at = ?
374
451
  WHERE run_id = ? AND phase = ? AND request_digest = ? AND state = 'started'
375
452
  RETURNING state, failure_json
376
453
  `).get(serialized, new Date().toISOString(), identity.runId, identity.phase, identity.requestDigest);
377
454
  if (updated?.state !== 'failed' || updated.failure_json !== serialized)
378
455
  integrity();
379
- const failed = attemptRow(database, identity.runId, identity.phase);
456
+ const failed = attemptRow(database, identity);
380
457
  if (failed === undefined)
381
458
  integrity();
382
459
  validateAttemptRow(failed, identity);
@@ -1 +1 @@
1
- {"version":3,"file":"skill-discovery-attempt.js","sourceRoot":"","sources":["../../src/akinator/skill-discovery-attempt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skill-discovery-attempt.js","sourceRoot":"","sources":["../../src/akinator/skill-discovery-attempt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { SqliteDatabase } from '../db/adapter.js';
2
+ import { type AdvisoryContribution, type AdvisoryPhase, type StoredAdvisoryRound } from './types.js';
3
+ export declare function readAdvisoryRound(database: SqliteDatabase, input: {
4
+ runId: string;
5
+ contractRevision: number;
6
+ mutationRevision: number;
7
+ phase: AdvisoryPhase;
8
+ inputDigest: string;
9
+ }): StoredAdvisoryRound | undefined;
10
+ export declare function createAdvisoryRoundInTransaction(database: SqliteDatabase, input: {
11
+ runId: string;
12
+ contractRevision: number;
13
+ mutationRevision: number;
14
+ phase: AdvisoryPhase;
15
+ inputDigest: string;
16
+ contributions: readonly AdvisoryContribution[];
17
+ }): StoredAdvisoryRound;
18
+ export declare function ensureAdvisoryRoundConsumedInTransaction(database: SqliteDatabase, input: {
19
+ runId: string;
20
+ contractRevision: number;
21
+ mutationRevision: number;
22
+ phase: AdvisoryPhase;
23
+ inputDigest: string;
24
+ }): StoredAdvisoryRound;
25
+ //# sourceMappingURL=advisory-store.d.ts.map
@@ -0,0 +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;AAIlE,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,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"}
@@ -0,0 +1,93 @@
1
+ import { KiokukoError } from '../errors.js';
2
+ import { canonicalJson } from '../serialization/validate.js';
3
+ import { parseStrictJson } from '../setup/strict-json.js';
4
+ import { ADVISORY_PHASES, ADVISORY_POLICY_VERSION, } from './types.js';
5
+ import { advisoryRoundAggregate, normalizeAdvisoryContributions } from './advisory.js';
6
+ function roundRow(database, input) {
7
+ return database.prepare(`
8
+ SELECT round_id, run_id, contract_revision, mutation_revision, phase,
9
+ input_digest, policy_version, source, state, degraded, aggregate_json
10
+ FROM enno_advisory_rounds
11
+ WHERE run_id = ? AND contract_revision = ? AND mutation_revision = ?
12
+ AND phase = ? AND input_digest = ?
13
+ `).get(input.runId, input.contractRevision, input.mutationRevision, input.phase, input.inputDigest);
14
+ }
15
+ function parseStoredRound(database, row) {
16
+ if (row.policy_version !== ADVISORY_POLICY_VERSION || row.source !== 'host_reported' || !ADVISORY_PHASES.includes(row.phase)) {
17
+ throw new KiokukoError('INTEGRITY_ERROR', 'Stored advisory round metadata is invalid');
18
+ }
19
+ const contributions = database.prepare(`
20
+ SELECT contribution_json
21
+ FROM enno_advisory_contributions
22
+ WHERE round_id = ? ORDER BY slot_rank
23
+ `).all(row.round_id).map((item) => {
24
+ let parsed;
25
+ try {
26
+ parsed = parseStrictJson(item.contribution_json, { allowTrailingComma: false, disallowComments: true, allowEmptyContent: false }, 'Stored advisory contribution is invalid');
27
+ }
28
+ catch {
29
+ throw new KiokukoError('INTEGRITY_ERROR', 'Stored advisory contribution is invalid');
30
+ }
31
+ return parsed;
32
+ });
33
+ const normalized = normalizeAdvisoryContributions(row.phase, contributions);
34
+ const aggregate = advisoryRoundAggregate(normalized);
35
+ if (Boolean(row.degraded) !== aggregate.degraded || canonicalJson(aggregate) !== row.aggregate_json) {
36
+ throw new KiokukoError('INTEGRITY_ERROR', 'Stored advisory round aggregate is invalid');
37
+ }
38
+ return {
39
+ phase: row.phase,
40
+ contractRevision: row.contract_revision,
41
+ mutationRevision: row.mutation_revision,
42
+ inputDigest: row.input_digest,
43
+ policyVersion: row.policy_version,
44
+ source: row.source,
45
+ state: row.state,
46
+ degraded: aggregate.degraded,
47
+ contributions: normalized,
48
+ };
49
+ }
50
+ export function readAdvisoryRound(database, input) {
51
+ const row = roundRow(database, input);
52
+ return row === undefined ? undefined : parseStoredRound(database, row);
53
+ }
54
+ export function createAdvisoryRoundInTransaction(database, input) {
55
+ const normalized = normalizeAdvisoryContributions(input.phase, input.contributions);
56
+ const aggregate = advisoryRoundAggregate(normalized);
57
+ const now = new Date().toISOString();
58
+ const roundId = `${input.runId}-${input.phase}-${input.contractRevision}-${input.mutationRevision}-${input.inputDigest.slice(0, 16)}`;
59
+ database.prepare(`
60
+ INSERT INTO enno_advisory_rounds (
61
+ round_id, run_id, contract_revision, mutation_revision, phase,
62
+ input_digest, policy_version, source, state, degraded, aggregate_json, created_at, updated_at
63
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, 'host_reported', 'aggregated', ?, ?, ?, ?)
64
+ `).run(roundId, input.runId, input.contractRevision, input.mutationRevision, input.phase, input.inputDigest, ADVISORY_POLICY_VERSION, aggregate.degraded ? 1 : 0, canonicalJson(aggregate), now, now);
65
+ const statement = database.prepare(`
66
+ INSERT INTO enno_advisory_contributions (
67
+ round_id, slot_id, slot_rank, outcome, contribution_json, created_at
68
+ ) VALUES (?, ?, ?, ?, ?, ?)
69
+ `);
70
+ normalized.forEach((contribution, rank) => statement.run(roundId, contribution.slotId, rank, contribution.outcome, canonicalJson(contribution), now));
71
+ const created = roundRow(database, input);
72
+ if (created === undefined)
73
+ throw new KiokukoError('INTEGRITY_ERROR', 'Advisory round was not persisted');
74
+ return parseStoredRound(database, created);
75
+ }
76
+ export function ensureAdvisoryRoundConsumedInTransaction(database, input) {
77
+ const existing = roundRow(database, input);
78
+ if (existing === undefined)
79
+ throw new KiokukoError('CONFLICT', 'Required advisory round was not submitted');
80
+ const round = parseStoredRound(database, existing);
81
+ if (round.state === 'consumed')
82
+ return round;
83
+ const updated = database.prepare(`
84
+ UPDATE enno_advisory_rounds
85
+ SET state = 'consumed', updated_at = ?
86
+ WHERE round_id = ? AND state = 'aggregated'
87
+ RETURNING round_id
88
+ `).get(new Date().toISOString(), existing.round_id);
89
+ if (updated?.round_id !== existing.round_id)
90
+ throw new KiokukoError('CONFLICT', 'Advisory round changed concurrently');
91
+ return { ...round, state: 'consumed' };
92
+ }
93
+ //# sourceMappingURL=advisory-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advisory-store.js","sourceRoot":"","sources":["../../src/enno-oduno/advisory-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { type AdvisoryContext, type AdvisoryContribution, type AdvisoryFanoutDirective, type AdvisoryPhase, type EnnoRunSnapshot } from './types.js';
2
+ export declare function advisorySlotDefinitions(phase: AdvisoryPhase): AdvisoryFanoutDirective['slots'];
3
+ export declare function advisoryInputDigest(input: {
4
+ phase: AdvisoryPhase;
5
+ contractRevision: number;
6
+ mutationRevision: number;
7
+ allowlistedContext: AdvisoryContext;
8
+ }): string;
9
+ export declare function advisoryPhaseForStatus(status: EnnoRunSnapshot['status']): AdvisoryPhase | null;
10
+ export declare function advisoryDirectiveForSnapshot(snapshot: EnnoRunSnapshot): AdvisoryFanoutDirective | undefined;
11
+ export declare function normalizeAdvisoryContributions(phase: AdvisoryPhase, rawContributions: readonly AdvisoryContribution[]): AdvisoryContribution[];
12
+ export declare function advisoryRoundAggregate(contributions: readonly AdvisoryContribution[]): {
13
+ contributions: AdvisoryContribution[];
14
+ degraded: boolean;
15
+ };
16
+ //# sourceMappingURL=advisory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advisory.d.ts","sourceRoot":"","sources":["../../src/enno-oduno/advisory.ts"],"names":[],"mappings":"AAGA,OAAO,EAQL,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,aAAa,EAElB,KAAK,eAAe,EACrB,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;AAoBD,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,eAAe,GAAG,uBAAuB,GAAG,SAAS,CAY3G;AAoBD,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,aAAa,EACpB,gBAAgB,EAAE,SAAS,oBAAoB,EAAE,GAChD,oBAAoB,EAAE,CAmCxB;AAED,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,SAAS,oBAAoB,EAAE,GAAG;IACtF,aAAa,EAAE,oBAAoB,EAAE,CAAC;IACtC,QAAQ,EAAE,OAAO,CAAC;CACnB,CAUA"}
@@ -0,0 +1,128 @@
1
+ import { canonicalContentHash, canonicalJson } from '../serialization/validate.js';
2
+ import { findSecret, findSecretInValue } from '../memory/secrets.js';
3
+ import { KiokukoError } from '../errors.js';
4
+ import { ADVISORY_FAILURE_CODES, ADVISORY_MAX_ROUND_BYTES, ADVISORY_MAX_SLOT_BYTES, ADVISORY_OUTCOMES, ADVISORY_POLICY_VERSION, ADVISORY_SLOT_DEFINITIONS, } from './types.js';
5
+ const phaseSlots = (phase) => ADVISORY_SLOT_DEFINITIONS.filter((slot) => slot.phase === phase);
6
+ const secretArgument = /(?:^|\s)--?(?:api[-_]?key|access[-_]?token|refresh[-_]?token|client[-_]?secret|password|passwd|secret)(?:=|\s+)\S+/iu;
7
+ export function advisorySlotDefinitions(phase) {
8
+ return phaseSlots(phase).map((slot) => ({
9
+ slotId: slot.slotId,
10
+ rank: slot.rank,
11
+ role: slot.role,
12
+ instructions: `Act only as the ${slot.role}. Read-only isolation must be provided and verified by the parent host. Return a structured contribution for slot ${slot.slotId}; do not edit files, call Kiokuko tools, or claim independent execution guarantees.`,
13
+ }));
14
+ }
15
+ export function advisoryInputDigest(input) {
16
+ return canonicalContentHash({
17
+ version: 1,
18
+ phase: input.phase,
19
+ contractRevision: input.contractRevision,
20
+ mutationRevision: input.mutationRevision,
21
+ slotDefinitions: advisorySlotDefinitions(input.phase),
22
+ advisoryPolicyVersion: ADVISORY_POLICY_VERSION,
23
+ allowlistedContext: input.allowlistedContext,
24
+ });
25
+ }
26
+ export function advisoryPhaseForStatus(status) {
27
+ if (status === 'oduno_ideal')
28
+ return 'ideal';
29
+ if (status === 'zenki_planning')
30
+ return 'planning';
31
+ if (status === 'enno_verifying')
32
+ return 'final_review';
33
+ return null;
34
+ }
35
+ function advisoryContextForSnapshot(snapshot, phase) {
36
+ const objective = phase === 'ideal'
37
+ ? snapshot.handoff.objective
38
+ : phase === 'planning'
39
+ ? snapshot.ideal?.objective ?? snapshot.handoff.objective
40
+ : snapshot.contract.workPlan.objective;
41
+ const reference = phase === 'final_review'
42
+ ? `Review the completed WorkPlan against its final verifiers: ${snapshot.contract.finalVerifiers.map((verifier) => verifier.id).join(', ')}`
43
+ : snapshot.handoff.objective;
44
+ return {
45
+ objective,
46
+ scope: [...snapshot.contract.scope],
47
+ constraints: [...snapshot.handoff.constraints],
48
+ acceptanceCriteria: snapshot.contract.acceptanceCriteria.map((criterion) => criterion.description),
49
+ reference,
50
+ };
51
+ }
52
+ export function advisoryDirectiveForSnapshot(snapshot) {
53
+ const phase = advisoryPhaseForStatus(snapshot.status);
54
+ if (phase === null)
55
+ return undefined;
56
+ return {
57
+ protocolVersion: 1,
58
+ phase,
59
+ policyVersion: ADVISORY_POLICY_VERSION,
60
+ readOnlyRequired: true,
61
+ hostMustVerifyIsolation: true,
62
+ context: advisoryContextForSnapshot(snapshot, phase),
63
+ slots: advisorySlotDefinitions(phase),
64
+ };
65
+ }
66
+ function unsafeText(value) {
67
+ if (typeof value !== 'string')
68
+ return false;
69
+ return findSecret(value) !== undefined || secretArgument.test(value);
70
+ }
71
+ function contributionContainsSecret(contribution) {
72
+ return findSecretInValue(contribution) !== undefined
73
+ || unsafeText(canonicalJson(contribution));
74
+ }
75
+ function unsafeContribution(slotId) {
76
+ return { slotId, outcome: 'failed', reasonCode: 'unsafe_output' };
77
+ }
78
+ function canonicalByteLength(value) {
79
+ return Buffer.byteLength(canonicalJson(value), 'utf8');
80
+ }
81
+ export function normalizeAdvisoryContributions(phase, rawContributions) {
82
+ const slots = phaseSlots(phase);
83
+ const expected = new Set(slots.map((slot) => slot.slotId));
84
+ if (rawContributions.length !== slots.length) {
85
+ throw new KiokukoError('VALIDATION_ERROR', 'An advisory round requires exactly three slot contributions');
86
+ }
87
+ const bySlot = new Map();
88
+ for (const contribution of rawContributions) {
89
+ if (!expected.has(contribution.slotId) || bySlot.has(contribution.slotId)) {
90
+ throw new KiokukoError('VALIDATION_ERROR', 'Advisory slots must be exactly the fixed slots for the phase');
91
+ }
92
+ if (!ADVISORY_OUTCOMES.includes(contribution.outcome)) {
93
+ throw new KiokukoError('VALIDATION_ERROR', 'Advisory outcome is invalid');
94
+ }
95
+ if (contribution.outcome === 'completed' && contributionContainsSecret(contribution)) {
96
+ bySlot.set(contribution.slotId, unsafeContribution(contribution.slotId));
97
+ continue;
98
+ }
99
+ if (contribution.outcome !== 'completed'
100
+ && (!contribution.reasonCode || !ADVISORY_FAILURE_CODES.includes(contribution.reasonCode))) {
101
+ throw new KiokukoError('VALIDATION_ERROR', 'Advisory failures require a fixed reason code');
102
+ }
103
+ bySlot.set(contribution.slotId, { ...contribution });
104
+ }
105
+ if (bySlot.size !== slots.length) {
106
+ throw new KiokukoError('VALIDATION_ERROR', 'Advisory slots are missing or duplicated');
107
+ }
108
+ const normalized = slots.map((slot) => bySlot.get(slot.slotId));
109
+ if (normalized.some((contribution) => canonicalByteLength(contribution) > ADVISORY_MAX_SLOT_BYTES)) {
110
+ throw new KiokukoError('VALIDATION_ERROR', 'An advisory contribution exceeds the 16 KiB slot limit');
111
+ }
112
+ if (canonicalByteLength(normalized) > ADVISORY_MAX_ROUND_BYTES) {
113
+ throw new KiokukoError('VALIDATION_ERROR', 'The advisory round exceeds the 48 KiB aggregate limit');
114
+ }
115
+ return normalized;
116
+ }
117
+ export function advisoryRoundAggregate(contributions) {
118
+ return {
119
+ contributions: contributions.map((contribution) => ({
120
+ ...contribution,
121
+ ...(contribution.recommendations === undefined ? {} : { recommendations: [...contribution.recommendations] }),
122
+ ...(contribution.risks === undefined ? {} : { risks: [...contribution.risks] }),
123
+ ...(contribution.evidence === undefined ? {} : { evidence: contribution.evidence.map((evidence) => ({ ...evidence })) }),
124
+ })),
125
+ degraded: contributions.every((contribution) => contribution.outcome !== 'completed'),
126
+ };
127
+ }
128
+ //# sourceMappingURL=advisory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advisory.js","sourceRoot":"","sources":["../../src/enno-oduno/advisory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EACvB,iBAAiB,EAEjB,uBAAuB,EACvB,yBAAyB,GAO1B,MAAM,YAAY,CAAC;AAEpB,MAAM,UAAU,GAAG,CAAC,KAAoB,EAAE,EAAE,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;AAC9G,MAAM,cAAc,GAAG,sHAAsH,CAAC;AAE9I,MAAM,UAAU,uBAAuB,CAAC,KAAoB;IAC1D,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACtC,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,YAAY,EAAE,mBAAmB,IAAI,CAAC,IAAI,qHAAqH,IAAI,CAAC,MAAM,qFAAqF;KAChQ,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAKnC;IACC,OAAO,oBAAoB,CAAC;QAC1B,OAAO,EAAE,CAAC;QACV,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,eAAe,EAAE,uBAAuB,CAAC,KAAK,CAAC,KAAK,CAAC;QACrD,qBAAqB,EAAE,uBAAuB;QAC9C,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;KAC7C,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAiC;IACtE,IAAI,MAAM,KAAK,aAAa;QAAE,OAAO,OAAO,CAAC;IAC7C,IAAI,MAAM,KAAK,gBAAgB;QAAE,OAAO,UAAU,CAAC;IACnD,IAAI,MAAM,KAAK,gBAAgB;QAAE,OAAO,cAAc,CAAC;IACvD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,0BAA0B,CAAC,QAAyB,EAAE,KAAoB;IACjF,MAAM,SAAS,GAAG,KAAK,KAAK,OAAO;QACjC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS;QAC5B,CAAC,CAAC,KAAK,KAAK,UAAU;YACpB,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,IAAI,QAAQ,CAAC,OAAO,CAAC,SAAS;YACzD,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;IAC3C,MAAM,SAAS,GAAG,KAAK,KAAK,cAAc;QACxC,CAAC,CAAC,8DAA8D,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC5I,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC;IAC/B,OAAO;QACL,SAAS;QACT,KAAK,EAAE,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;QACnC,WAAW,EAAE,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC;QAC9C,kBAAkB,EAAE,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC;QAClG,SAAS;KACV,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,QAAyB;IACpE,MAAM,KAAK,GAAG,sBAAsB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACtD,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IACrC,OAAO;QACL,eAAe,EAAE,CAAC;QAClB,KAAK;QACL,aAAa,EAAE,uBAAuB;QACtC,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,OAAO,EAAE,0BAA0B,CAAC,QAAQ,EAAE,KAAK,CAAC;QACpD,KAAK,EAAE,uBAAuB,CAAC,KAAK,CAAC;KACtC,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,OAAO,UAAU,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,0BAA0B,CAAC,YAAkC;IACpE,OAAO,iBAAiB,CAAC,YAAY,CAAC,KAAK,SAAS;WAC/C,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAsB;IAChD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC;AACpE,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IACzC,OAAO,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,KAAoB,EACpB,gBAAiD;IAEjD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAChC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3D,IAAI,gBAAgB,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QAC7C,MAAM,IAAI,YAAY,CAAC,kBAAkB,EAAE,6DAA6D,CAAC,CAAC;IAC5G,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAwC,CAAC;IAC/D,KAAK,MAAM,YAAY,IAAI,gBAAgB,EAAE,CAAC;QAC5C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1E,MAAM,IAAI,YAAY,CAAC,kBAAkB,EAAE,8DAA8D,CAAC,CAAC;QAC7G,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,YAAY,CAAC,kBAAkB,EAAE,6BAA6B,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,YAAY,CAAC,OAAO,KAAK,WAAW,IAAI,0BAA0B,CAAC,YAAY,CAAC,EAAE,CAAC;YACrF,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,kBAAkB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;YACzE,SAAS;QACX,CAAC;QACD,IAAI,YAAY,CAAC,OAAO,KAAK,WAAW;eACnC,CAAC,CAAC,YAAY,CAAC,UAAU,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YAC7F,MAAM,IAAI,YAAY,CAAC,kBAAkB,EAAE,+CAA+C,CAAC,CAAC;QAC9F,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,GAAG,YAAY,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QACjC,MAAM,IAAI,YAAY,CAAC,kBAAkB,EAAE,0CAA0C,CAAC,CAAC;IACzF,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAE,CAAC,CAAC;IACjE,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,mBAAmB,CAAC,YAAY,CAAC,GAAG,uBAAuB,CAAC,EAAE,CAAC;QACnG,MAAM,IAAI,YAAY,CAAC,kBAAkB,EAAE,wDAAwD,CAAC,CAAC;IACvG,CAAC;IACD,IAAI,mBAAmB,CAAC,UAAU,CAAC,GAAG,wBAAwB,EAAE,CAAC;QAC/D,MAAM,IAAI,YAAY,CAAC,kBAAkB,EAAE,uDAAuD,CAAC,CAAC;IACtG,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,aAA8C;IAInF,OAAO;QACL,aAAa,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;YAClD,GAAG,YAAY;YACf,GAAG,CAAC,YAAY,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,GAAG,YAAY,CAAC,eAAe,CAAC,EAAE,CAAC;YAC7G,GAAG,CAAC,YAAY,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/E,GAAG,CAAC,YAAY,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC;SACzH,CAAC,CAAC;QACH,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,KAAK,WAAW,CAAC;KACtF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { EnnoRunSnapshot, UserFacingConfirmation } from './types.js';
2
+ export declare const MAX_CONFIRMATION_JSON_BYTES: number;
3
+ export declare function buildUserFacingConfirmation(snapshot: EnnoRunSnapshot): UserFacingConfirmation | undefined;
4
+ //# sourceMappingURL=confirmation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confirmation.d.ts","sourceRoot":"","sources":["../../src/enno-oduno/confirmation.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAIV,eAAe,EAGf,sBAAsB,EAOvB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,2BAA2B,QAAY,CAAC;AAyGrD,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,eAAe,GAAG,sBAAsB,GAAG,SAAS,CA4BzG"}