kiokuko 1.0.23 → 1.0.25

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 (108) hide show
  1. package/dist/agent-file/render.d.ts +1 -1
  2. package/dist/agent-file/render.d.ts.map +1 -1
  3. package/dist/agent-file/render.js +6 -2
  4. package/dist/agent-file/render.js.map +1 -1
  5. package/dist/akinator/capabilities.d.ts.map +1 -1
  6. package/dist/akinator/capabilities.js +13 -8
  7. package/dist/akinator/capabilities.js.map +1 -1
  8. package/dist/akinator/capability-binding.d.ts.map +1 -1
  9. package/dist/akinator/capability-binding.js +2 -1
  10. package/dist/akinator/capability-binding.js.map +1 -1
  11. package/dist/assurance/codex-hooks.d.ts +5 -0
  12. package/dist/assurance/codex-hooks.d.ts.map +1 -1
  13. package/dist/assurance/codex-hooks.js +67 -30
  14. package/dist/assurance/codex-hooks.js.map +1 -1
  15. package/dist/assurance/conflicts.d.ts +27 -0
  16. package/dist/assurance/conflicts.d.ts.map +1 -0
  17. package/dist/assurance/conflicts.js +32 -0
  18. package/dist/assurance/conflicts.js.map +1 -0
  19. package/dist/assurance/contracts.d.ts +5 -0
  20. package/dist/assurance/contracts.d.ts.map +1 -1
  21. package/dist/assurance/contracts.js +2 -0
  22. package/dist/assurance/contracts.js.map +1 -1
  23. package/dist/assurance/decisions.d.ts +33 -0
  24. package/dist/assurance/decisions.d.ts.map +1 -0
  25. package/dist/assurance/decisions.js +90 -0
  26. package/dist/assurance/decisions.js.map +1 -0
  27. package/dist/assurance/hook-diagnostics.d.ts.map +1 -1
  28. package/dist/assurance/hook-diagnostics.js +8 -2
  29. package/dist/assurance/hook-diagnostics.js.map +1 -1
  30. package/dist/assurance/inspect.d.ts +9 -0
  31. package/dist/assurance/inspect.d.ts.map +1 -1
  32. package/dist/assurance/inspect.js +8 -3
  33. package/dist/assurance/inspect.js.map +1 -1
  34. package/dist/assurance/instructions.d.ts +1 -1
  35. package/dist/assurance/instructions.d.ts.map +1 -1
  36. package/dist/assurance/instructions.js +2 -1
  37. package/dist/assurance/instructions.js.map +1 -1
  38. package/dist/assurance/refresh.d.ts.map +1 -1
  39. package/dist/assurance/refresh.js +68 -45
  40. package/dist/assurance/refresh.js.map +1 -1
  41. package/dist/assurance/service.d.ts +23 -3
  42. package/dist/assurance/service.d.ts.map +1 -1
  43. package/dist/assurance/service.js +48 -21
  44. package/dist/assurance/service.js.map +1 -1
  45. package/dist/assurance/verification-contracts.d.ts +49 -0
  46. package/dist/assurance/verification-contracts.d.ts.map +1 -0
  47. package/dist/assurance/verification-contracts.js +23 -0
  48. package/dist/assurance/verification-contracts.js.map +1 -0
  49. package/dist/assurance/verification-state.d.ts +33 -0
  50. package/dist/assurance/verification-state.d.ts.map +1 -0
  51. package/dist/assurance/verification-state.js +52 -0
  52. package/dist/assurance/verification-state.js.map +1 -0
  53. package/dist/assurance/verification.d.ts +16 -0
  54. package/dist/assurance/verification.d.ts.map +1 -0
  55. package/dist/assurance/verification.js +67 -0
  56. package/dist/assurance/verification.js.map +1 -0
  57. package/dist/commands/setup.d.ts.map +1 -1
  58. package/dist/commands/setup.js +6 -4
  59. package/dist/commands/setup.js.map +1 -1
  60. package/dist/commands/uninstall.js +5 -5
  61. package/dist/commands/uninstall.js.map +1 -1
  62. package/dist/context/delivery.js +1 -1
  63. package/dist/context/delivery.js.map +1 -1
  64. package/dist/context/memory-obligation.d.ts +2 -0
  65. package/dist/context/memory-obligation.d.ts.map +1 -0
  66. package/dist/context/memory-obligation.js +11 -0
  67. package/dist/context/memory-obligation.js.map +1 -0
  68. package/dist/context/ranking.d.ts +1 -1
  69. package/dist/context/ranking.d.ts.map +1 -1
  70. package/dist/context/ranking.js +4 -0
  71. package/dist/context/ranking.js.map +1 -1
  72. package/dist/context/scoped-broker.d.ts +1 -1
  73. package/dist/context/scoped-broker.d.ts.map +1 -1
  74. package/dist/context/scoped-broker.js +18 -8
  75. package/dist/context/scoped-broker.js.map +1 -1
  76. package/dist/context/scoped-memory-use.d.ts.map +1 -1
  77. package/dist/context/scoped-memory-use.js +5 -10
  78. package/dist/context/scoped-memory-use.js.map +1 -1
  79. package/dist/mcp/request-deadline.d.ts +1 -1
  80. package/dist/mcp/request-deadline.d.ts.map +1 -1
  81. package/dist/mcp/request-deadline.js +2 -0
  82. package/dist/mcp/request-deadline.js.map +1 -1
  83. package/dist/mcp/server.d.ts.map +1 -1
  84. package/dist/mcp/server.js +18 -2
  85. package/dist/mcp/server.js.map +1 -1
  86. package/dist/server/routes/agent-capability-gate.d.ts.map +1 -1
  87. package/dist/server/routes/agent-capability-gate.js +1 -11
  88. package/dist/server/routes/agent-capability-gate.js.map +1 -1
  89. package/dist/server/routes/task-assurance.d.ts.map +1 -1
  90. package/dist/server/routes/task-assurance.js +4 -1
  91. package/dist/server/routes/task-assurance.js.map +1 -1
  92. package/dist/setup/render.d.ts +1 -1
  93. package/dist/setup/render.d.ts.map +1 -1
  94. package/dist/setup/render.js +7 -3
  95. package/dist/setup/render.js.map +1 -1
  96. package/dist/setup/standard-skills.d.ts +12 -0
  97. package/dist/setup/standard-skills.d.ts.map +1 -1
  98. package/dist/setup/standard-skills.js +51 -0
  99. package/dist/setup/standard-skills.js.map +1 -1
  100. package/docs/client-compatibility.md +5 -1
  101. package/docs/memory-assurance.md +134 -17
  102. package/migrations/010_task_verification.sql +40 -0
  103. package/migrations/011_review_decisions.sql +22 -0
  104. package/package.json +1 -1
  105. package/skills/kiokuko-soul/SKILL.md +19 -0
  106. package/skills/memory-reasoning/SKILL.md +5 -0
  107. package/skills/one-shot-software-completion/SKILL.md +8 -2
  108. package/templates/AGENTS.md +5 -3
@@ -1,3 +1,5 @@
1
+ import { inheritDecisions } from './decisions.js';
2
+ import { TaskStateConflict } from './conflicts.js';
1
3
  import { indexingSources, createIndexWork, assertIndexingRunReady } from '../memory/index-service.js';
2
4
  import { scopedMemoryUseSignal } from '../context/scoped-memory-use.js';
3
5
  import path from 'node:path';
@@ -21,7 +23,7 @@ export async function refreshTaskMemory(db, raw, signal) {
21
23
  assertCapabilityCatalogBinding(run.metadata, input.capabilities);
22
24
  const project = await resolveProjectWorkspaceReadOnly(db, input.cwd);
23
25
  if (!project || project.workspace !== run.workspace)
24
- throw new KiokukoError('CONFLICT', 'Refresh repository differs from run');
26
+ throw new TaskStateConflict('repository_mismatch');
25
27
  for (const file of input.changedPaths)
26
28
  if (path.isAbsolute(file) || file.split(/[\\/]/).includes('..')) {
27
29
  throw new KiokukoError('VALIDATION_ERROR', 'Refresh paths must stay within the repository');
@@ -31,66 +33,87 @@ export async function refreshTaskMemory(db, raw, signal) {
31
33
  .get(input.runId, input.requestId);
32
34
  if (prior) {
33
35
  if (prior.request_digest !== digest)
34
- throw new KiokukoError('CONFLICT', 'Refresh request identity conflicts');
36
+ throw new TaskStateConflict('request_id_reused');
35
37
  return JSON.parse(prior.response_json);
36
38
  }
37
39
  const state = assertAssuranceCwd(db, input.runId, input.cwd);
38
40
  if (state.revision !== input.expectedRevision)
39
- throw new KiokukoError('CONFLICT', 'Refresh revision changed');
41
+ throw new TaskStateConflict('assurance_revision_changed', { expectedRevision: input.expectedRevision, currentRevision: state.revision });
40
42
  const retrievalBinding = readTaskContextRequestBinding(run.metadata);
41
43
  const boundBudget = retrievalBinding?.maxContextChars;
42
44
  if (input.maxContextChars !== undefined && typeof boundBudget === 'number' && input.maxContextChars !== boundBudget)
43
- throw new KiokukoError('CONFLICT', 'Refresh context budget differs from the prepared run');
45
+ throw new TaskStateConflict('context_budget_mismatch');
44
46
  const budget = input.maxContextChars ?? (typeof boundBudget === 'number' ? boundBudget : undefined);
45
47
  const current = readContextBrokerRunState(db, input.runId);
46
48
  const resolution = resolveCapabilities({ task: run.title ?? current.taskProfile.target ?? "task", profile: current.taskProfile, recommendedTags: current.recommendedTags, capabilities: input.capabilities, memoryUse: 'none' });
47
49
  if (hasBlockingRequiredCapability(resolution))
48
- throw new KiokukoError('CONFLICT', 'Required capability unavailable');
50
+ throw new TaskStateConflict('required_capability_unavailable');
49
51
  // Rank outside the write transaction; recheck the revision in the broker's atomic persistence gate.
50
52
  if (input.indexing)
51
53
  assertIndexingRunReady(db, input.runId);
52
54
  const indexing = input.indexing ? indexingSources(db, run.workspace, input.indexing.stage, input.indexing.cursor) : undefined;
53
55
  let response = {};
54
- await queryScopedContextGated(db, {
55
- ...(indexing === undefined ? {} : { indexingSourceIds: indexing.map(e => e.id) }),
56
- project, task: run.title ?? current.taskProfile.target ?? "task", taskProfile: current.taskProfile, runId: input.runId,
57
- recommendedTags: current.recommendedTags, changedPaths: input.changedPaths, errorSignatures: input.errorSignatures,
58
- ...(retrievalBinding?.temporal === undefined ? {} : { temporal: retrievalBinding.temporal }),
59
- relatedMode: retrievalBinding?.relatedMode ?? 'off',
60
- ...(budget === undefined ? {} : { characterBudget: budget }),
61
- }, candidate => {
62
- const memoryUse = scopedMemoryUseSignal(db, run.workspace, candidate);
63
- const policy = deriveMemoryPolicy(current.taskProfile, memoryUse, input.capabilities);
64
- return { persist: !policy.contextWithheld, value: policy, assertBeforePersist: () => {
65
- signal?.throwIfAborted();
66
- if (scopedMemoryUseSignal(db, run.workspace, candidate) !== memoryUse)
67
- throw new KiokukoError('CONFLICT', 'Memory capability decision changed during refresh');
68
- if (assuranceState(db, input.runId)?.revision !== input.expectedRevision)
69
- throw new KiokukoError('CONFLICT', 'Refresh lost a concurrent update');
70
- } };
71
- }, {}, (context, policy) => {
72
- const after = assuranceState(db, input.runId);
73
- if (after.revision === input.expectedRevision)
74
- db.prepare('UPDATE task_assurance SET revision=revision+1 WHERE run_id=?').run(input.runId);
75
- bindAssuranceRoot(db, input.runId, project.repositoryRoot, policy.contextWithheld ? 'capability_withheld' : context?.retrieval?.status);
76
- const indexWork = input.indexing && context?.deliveryId && !policy.contextWithheld ? createIndexWork(db, {
77
- runId: input.runId,
78
- deliveryId: context.deliveryId,
79
- workspace: run.workspace,
80
- stage: input.indexing.stage,
81
- sourceIds: context.items.map(item => item.entryId),
82
- remainingCharacters: Math.max(0, (budget ?? 8000) - context.items.reduce((sum, item) => sum + Array.from(item.title + (item.summary ?? '') + item.bodyPreview).length, 0)),
83
- }) : undefined;
84
- const indexResult = indexWork ? {
85
- ...indexWork,
86
- nextCursor: indexing?.at(-1)?.id ?? input.indexing?.cursor,
87
- unprocessed: (indexing ?? []).filter(entry => !context?.items.some(item => item.entryId === entry.id))
88
- .map(entry => ({ entryId: entry.id, reason: 'context_budget_or_capability' })),
89
- } : undefined;
90
- const assurance = taskAssuranceReport(db, input.runId, false);
91
- response = { ...(indexResult ? { indexing: indexResult } : {}), context, memoryPolicy: policy, assurance, nextAction: memoryReviewNextAction(assurance) };
92
- db.prepare('INSERT INTO task_assurance_requests VALUES (?, ?, ?, ?)').run(input.runId, input.requestId, digest, JSON.stringify(response));
93
- });
56
+ try {
57
+ await queryScopedContextGated(db, {
58
+ ...(indexing === undefined ? {} : { indexingSourceIds: indexing.map(e => e.id) }),
59
+ project, task: run.title ?? current.taskProfile.target ?? "task", taskProfile: current.taskProfile, runId: input.runId,
60
+ recommendedTags: current.recommendedTags, changedPaths: input.changedPaths, errorSignatures: input.errorSignatures,
61
+ ...(retrievalBinding?.temporal === undefined ? {} : { temporal: retrievalBinding.temporal }),
62
+ relatedMode: retrievalBinding?.relatedMode ?? 'off',
63
+ ...(budget === undefined ? {} : { characterBudget: budget }),
64
+ }, candidate => {
65
+ const memoryUse = scopedMemoryUseSignal(db, run.workspace, candidate);
66
+ const policy = deriveMemoryPolicy(current.taskProfile, memoryUse, input.capabilities);
67
+ return { persist: !policy.contextWithheld, value: policy, assertBeforePersist: () => {
68
+ signal?.throwIfAborted();
69
+ if (db.prepare('SELECT 1 FROM task_assurance_requests WHERE run_id=? AND request_id=?').get(input.runId, input.requestId))
70
+ throw new TaskStateConflict('request_id_reused');
71
+ if (scopedMemoryUseSignal(db, run.workspace, candidate) !== memoryUse)
72
+ throw new TaskStateConflict('retrieval_state_changed');
73
+ const latest = assertAssuranceCwd(db, input.runId, input.cwd);
74
+ if (latest.revision !== input.expectedRevision)
75
+ throw new TaskStateConflict('assurance_revision_changed', { expectedRevision: input.expectedRevision, currentRevision: latest.revision });
76
+ } };
77
+ }, {}, (context, policy) => {
78
+ if (context?.deliveryId)
79
+ db.prepare('INSERT INTO task_delivery_signals VALUES (?,?) ON CONFLICT(delivery_id) DO UPDATE SET errors_json=excluded.errors_json').run(context.deliveryId, JSON.stringify(input.errorSignatures));
80
+ if (context?.deliveryId)
81
+ inheritDecisions(db, input.runId, context.deliveryId, project.repositoryRoot);
82
+ const after = assuranceState(db, input.runId);
83
+ const retrievalStatus = policy.contextWithheld ? 'capability_withheld' : context?.retrieval?.status ?? after.retrieval_status;
84
+ if (after.revision === input.expectedRevision && after.retrieval_status !== retrievalStatus)
85
+ db.prepare('UPDATE task_assurance SET revision=revision+1 WHERE run_id=?').run(input.runId);
86
+ bindAssuranceRoot(db, input.runId, project.repositoryRoot, retrievalStatus);
87
+ const indexWork = input.indexing && context?.deliveryId && !policy.contextWithheld ? createIndexWork(db, {
88
+ runId: input.runId,
89
+ deliveryId: context.deliveryId,
90
+ workspace: run.workspace,
91
+ stage: input.indexing.stage,
92
+ sourceIds: context.items.map(item => item.entryId),
93
+ remainingCharacters: Math.max(0, (budget ?? 8000) - context.items.reduce((sum, item) => sum + Array.from(item.title + (item.summary ?? '') + item.bodyPreview).length, 0)),
94
+ }) : undefined;
95
+ const indexResult = indexWork ? {
96
+ ...indexWork,
97
+ nextCursor: indexing?.at(-1)?.id ?? input.indexing?.cursor,
98
+ unprocessed: (indexing ?? []).filter(entry => !context?.items.some(item => item.entryId === entry.id))
99
+ .map(entry => ({ entryId: entry.id, reason: 'context_budget_or_capability' })),
100
+ } : undefined;
101
+ const assurance = taskAssuranceReport(db, input.runId, false);
102
+ response = { ...(indexResult ? { indexing: indexResult } : {}), context, memoryPolicy: policy, assurance, nextAction: memoryReviewNextAction(assurance) };
103
+ const receipt = JSON.stringify(response);
104
+ db.prepare('INSERT INTO task_assurance_requests VALUES (?, ?, ?, ?)').run(input.runId, input.requestId, digest, receipt);
105
+ // First delivery and transport replay expose the same persisted representation.
106
+ response = JSON.parse(receipt);
107
+ });
108
+ }
109
+ catch (error) {
110
+ if (error instanceof TaskStateConflict && error.reason === 'request_id_reused') {
111
+ const saved = db.prepare('SELECT request_digest, response_json FROM task_assurance_requests WHERE run_id=? AND request_id=?').get(input.runId, input.requestId);
112
+ if (saved?.request_digest === digest)
113
+ return JSON.parse(saved.response_json);
114
+ }
115
+ throw error;
116
+ }
94
117
  return response;
95
118
  }
96
119
  //# sourceMappingURL=refresh.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"refresh.js","sourceRoot":"","sources":["../../src/assurance/refresh.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"refresh.js","sourceRoot":"","sources":["../../src/assurance/refresh.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import { INTEGRATION_CONTRACT } from '../setup/standard-skills.js';
2
+ import { type TaskVerificationReport } from './verification-state.js';
1
3
  import type { SqliteDatabase, SqliteRow } from '../db/adapter.js';
2
4
  import type { ContextDeliveryView } from '../context/delivery.js';
3
5
  export interface AssuranceState extends SqliteRow {
@@ -18,11 +20,12 @@ export declare function assuranceMutation<T extends {
18
20
  requestId: string;
19
21
  expectedRevision: number;
20
22
  cwd: string;
21
- }, R extends object>(db: SqliteDatabase, input: T, effect: (state: AssuranceState) => R): R & {
23
+ }, R extends object>(db: SqliteDatabase, input: T, effect: (state: AssuranceState) => R, advanceRevision?: boolean): R & {
22
24
  revision: number;
23
25
  };
24
26
  export declare function reviewTaskMemory(db: SqliteDatabase, raw: unknown): {
25
27
  recorded: boolean;
28
+ decisionId: string;
26
29
  provenance: string;
27
30
  untrusted: boolean;
28
31
  } & {
@@ -50,8 +53,20 @@ export declare function insertTaskEvidence(db: SqliteDatabase, input: {
50
53
  outcome: 'passed' | 'failed' | 'skipped' | 'unknown';
51
54
  exitCode: number | null;
52
55
  provenance: 'model_reported' | 'client_observed';
56
+ target?: string;
53
57
  }): string;
54
- export interface AssuranceReport {
58
+ export interface MemoryAssuranceReport {
59
+ contract?: typeof INTEGRATION_CONTRACT;
60
+ invalidated?: Array<{
61
+ entryId: string;
62
+ reason: string;
63
+ }>;
64
+ observationSequence?: number;
65
+ decisions?: Array<{
66
+ entryId: string;
67
+ decisionId: string;
68
+ sourceDeliveryId: string;
69
+ }>;
55
70
  mode: 'legacy_unobserved' | 'tracked';
56
71
  revision: number | null;
57
72
  retrieval: string;
@@ -62,7 +77,12 @@ export interface AssuranceReport {
62
77
  complete: boolean;
63
78
  }
64
79
  /** Execution may start after decisions; passing evidence is required only for completion. */
65
- export declare function memoryReviewNextAction(report: AssuranceReport): 'refresh_memory' | 'review_memory_application' | 'proceed';
80
+ export declare function memoryReviewNextAction(report: MemoryAssuranceReport): 'refresh_memory' | 'review_memory_application' | 'proceed';
81
+ export interface AssuranceReport extends MemoryAssuranceReport {
82
+ verification: TaskVerificationReport;
83
+ completionReady: boolean | null;
84
+ }
85
+ /** complete remains memory-only; callers must use completionReady for the task. */
66
86
  export declare function taskAssuranceReport(db: SqliteDatabase, runId: string, verifyState?: boolean): AssuranceReport;
67
87
  export declare function assertAssuranceCompletion(db: SqliteDatabase, runId: string, outcome: string): void;
68
88
  //# sourceMappingURL=service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/assurance/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/assurance/service.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,7 @@
1
+ import { INTEGRATION_CONTRACT } from '../setup/standard-skills.js';
2
+ import { saveDecision, currentDecision, inheritDecisions, verificationDefinitionHash } from './decisions.js';
3
+ import { taskVerificationReport } from './verification-state.js';
4
+ import { TaskStateConflict } from './conflicts.js';
1
5
  import { realpathSync } from 'node:fs';
2
6
  import path from 'node:path';
3
7
  import { randomUUID } from 'node:crypto';
@@ -14,12 +18,14 @@ export function assuranceState(db, runId) {
14
18
  return db.prepare('SELECT * FROM task_assurance WHERE run_id = ?').get(runId);
15
19
  }
16
20
  export function enrollAssurance(db, runId, now) {
17
- db.prepare('INSERT INTO task_assurance(run_id, updated_at) VALUES (?, ?)').run(runId, now);
21
+ db.prepare('INSERT INTO task_assurance(run_id, updated_at, verification_version) VALUES (?, ?, 1)').run(runId, now);
18
22
  }
19
23
  export function bindAssuranceDelivery(db, delivery) {
20
24
  const state = assuranceState(db, delivery.runId);
21
25
  if (!state || state.delivery_id === delivery.deliveryId)
22
26
  return;
27
+ if (state.repository_root)
28
+ inheritDecisions(db, delivery.runId, delivery.deliveryId, state.repository_root);
23
29
  db.prepare("UPDATE task_assurance SET delivery_id = ?, revision = revision + 1, retrieval_status = ?, updated_at = ? WHERE run_id = ?")
24
30
  .run(delivery.deliveryId, delivery.items.length ? 'delivered' : 'no_match', new Date().toISOString(), delivery.runId);
25
31
  }
@@ -29,17 +35,17 @@ export function bindAssuranceRoot(db, runId, root, retrievalStatus) {
29
35
  return;
30
36
  const canonical = realpathSync(root);
31
37
  if (state.repository_root && state.repository_root !== canonical)
32
- throw new KiokukoError('CONFLICT', 'Run repository root changed');
38
+ throw new TaskStateConflict('repository_mismatch');
33
39
  db.prepare('UPDATE task_assurance SET repository_root = ?, retrieval_status = COALESCE(?, retrieval_status) WHERE run_id = ?')
34
40
  .run(canonical, retrievalStatus ?? null, runId);
35
41
  }
36
42
  export function assertAssuranceCwd(db, runId, cwd) {
37
43
  const run = new LedgerStore(db).readRun(runId);
38
44
  if (!run || run.status !== 'active')
39
- throw new KiokukoError('CONFLICT', 'Task assurance requires an active run');
45
+ throw new TaskStateConflict('run_not_active');
40
46
  const state = assuranceState(db, runId);
41
47
  if (!state)
42
- throw new KiokukoError('CONFLICT', 'Historical run has no assurance contract');
48
+ throw new TaskStateConflict('assurance_unavailable');
43
49
  const canonical = realpathSync(cwd);
44
50
  let root = state.repository_root;
45
51
  if (!root) {
@@ -48,24 +54,24 @@ export function assertAssuranceCwd(db, runId, cwd) {
48
54
  root = rows.find(row => canonical === row.canonical_root || canonical.startsWith(row.canonical_root + path.sep))?.canonical_root ?? null;
49
55
  }
50
56
  if (!root || (canonical !== root && !canonical.startsWith(root + path.sep)))
51
- throw new KiokukoError('CONFLICT', 'Evidence belongs to another repository');
52
- bindAssuranceRoot(db, runId, root);
57
+ throw new TaskStateConflict('repository_mismatch');
53
58
  return { ...state, repository_root: root };
54
59
  }
55
- export function assuranceMutation(db, input, effect) {
60
+ export function assuranceMutation(db, input, effect, advanceRevision = true) {
56
61
  return withImmediateTransaction(db, () => {
57
62
  const digest = canonicalContentHash(input);
58
63
  const prior = db.prepare('SELECT request_digest, response_json FROM task_assurance_requests WHERE run_id = ? AND request_id = ?')
59
64
  .get(input.runId, input.requestId);
60
65
  if (prior) {
61
66
  if (prior.request_digest !== digest)
62
- throw new KiokukoError('CONFLICT', 'Assurance request identity was reused with different content');
67
+ throw new TaskStateConflict('request_id_reused');
63
68
  return JSON.parse(prior.response_json);
64
69
  }
65
70
  const state = assertAssuranceCwd(db, input.runId, input.cwd);
66
71
  if (state.revision !== input.expectedRevision)
67
- throw new KiokukoError('CONFLICT', 'Task assurance revision changed');
68
- const response = { ...effect(state), revision: state.revision + 1 };
72
+ throw new TaskStateConflict('assurance_revision_changed', { expectedRevision: input.expectedRevision, currentRevision: state.revision });
73
+ bindAssuranceRoot(db, input.runId, state.repository_root);
74
+ const response = { ...effect(state), revision: state.revision + Number(advanceRevision) };
69
75
  db.prepare('UPDATE task_assurance SET revision = ?, updated_at = ? WHERE run_id = ?')
70
76
  .run(response.revision, new Date().toISOString(), input.runId);
71
77
  db.prepare('INSERT INTO task_assurance_requests VALUES (?, ?, ?, ?)').run(input.runId, input.requestId, digest, JSON.stringify(response));
@@ -83,13 +89,16 @@ export function reviewTaskMemory(db, raw) {
83
89
  const input = parseAssurance(memoryReviewSchema, raw);
84
90
  return assuranceMutation(db, input, state => {
85
91
  assertCurrentDelivery(state, input.deliveryId);
92
+ if (input.dependencies && canonicalContentHash(sanitizeJson(input.dependencies).value) !== canonicalContentHash(input.dependencies))
93
+ throw new KiokukoError('SECURITY_REJECTION', 'Decision dependencies contain private or secret-like content');
86
94
  const entry = db.prepare(`SELECT e.current_revision FROM context_delivery_entries d JOIN entries e ON e.id = d.entry_id
87
95
  WHERE d.delivery_id = ? AND d.entry_id = ? AND d.entry_revision = ?`).get(input.deliveryId, input.entryId, input.entryRevision);
88
96
  if (!entry || entry.current_revision !== input.entryRevision)
89
97
  throw new KiokukoError('CONFLICT', 'Memory revision changed or was not delivered');
98
+ const inherited = currentDecision(db, input.runId, input.deliveryId, input.entryId, input.entryRevision, state.repository_root);
90
99
  for (const evidenceId of input.evidenceIds) {
91
100
  const evidence = db.prepare('SELECT run_id, delivery_id FROM task_execution_evidence WHERE evidence_id = ?').get(evidenceId);
92
- if (!evidence || evidence.run_id !== input.runId || evidence.delivery_id !== input.deliveryId)
101
+ if (!evidence || evidence.run_id !== input.runId || (evidence.delivery_id !== input.deliveryId && !(inherited?.review.evidenceIds.includes(evidenceId))))
93
102
  throw new KiokukoError('CONFLICT', 'Evidence belongs to another run or delivery');
94
103
  }
95
104
  db.prepare(`INSERT INTO task_memory_reviews VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
@@ -97,7 +106,8 @@ export function reviewTaskMemory(db, raw) {
97
106
  invariant_text=excluded.invariant_text, counterexample=excluded.counterexample, verification=excluded.verification,
98
107
  evidence_ids_json=excluded.evidence_ids_json, created_at=excluded.created_at`)
99
108
  .run(input.runId, input.deliveryId, input.entryId, input.entryRevision, input.decision, safeText(input.basis), safeText(input.invariant ?? ''), safeText(input.counterexample ?? ''), safeText(input.verification ?? ''), JSON.stringify(input.evidenceIds), new Date().toISOString());
100
- return { recorded: true, provenance: 'model_reported', untrusted: true };
109
+ const decisionId = saveDecision(db, input, state.repository_root, { decision: input.decision, evidenceIds: input.evidenceIds, dependencies: input.dependencies });
110
+ return { recorded: true, decisionId, provenance: 'model_reported', untrusted: true };
101
111
  });
102
112
  }
103
113
  /** Only the local hook adapter calls with client_observed. Public APIs always use model_reported. */
@@ -109,16 +119,18 @@ export function recordTaskEvidence(db, raw, provenance = 'model_reported', obser
109
119
  throw new KiokukoError('CONFLICT', 'Validation target changed');
110
120
  const evidenceId = insertTaskEvidence(db, { runId: input.runId, deliveryId: input.deliveryId, root: state.repository_root, cwd: input.cwd,
111
121
  executionDigest: observed?.executionDigest ?? canonicalContentHash(input.execution), stateDigest: input.stateDigest,
112
- outcome: input.outcome, exitCode: input.exitCode, provenance });
122
+ outcome: input.outcome, exitCode: input.exitCode, provenance, target: input.target });
113
123
  observed?.onRecorded(evidenceId);
124
+ db.prepare('UPDATE task_assurance SET observation_sequence=observation_sequence+1 WHERE run_id=?').run(input.runId);
114
125
  return { evidenceId, provenance, outcome: input.outcome };
115
- });
126
+ }, false);
116
127
  }
117
128
  /** Insert only; callers own the transaction, authorization and revision transition. */
118
129
  export function insertTaskEvidence(db, input) {
119
130
  const evidenceId = randomUUID();
120
131
  db.prepare('INSERT INTO task_execution_evidence VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)')
121
132
  .run(evidenceId, input.runId, input.deliveryId, input.root, realpathSync(input.cwd), input.executionDigest, input.stateDigest, input.outcome, input.exitCode, input.provenance, new Date().toISOString());
133
+ db.prepare('INSERT INTO task_execution_targets VALUES (?, ?)').run(evidenceId, input.target ?? `${process.platform}-${process.arch}`);
122
134
  return evidenceId;
123
135
  }
124
136
  /** Execution may start after decisions; passing evidence is required only for completion. */
@@ -127,10 +139,10 @@ export function memoryReviewNextAction(report) {
127
139
  return 'refresh_memory';
128
140
  return report.pending.length ? 'review_memory_application' : 'proceed';
129
141
  }
130
- export function taskAssuranceReport(db, runId, verifyState = true) {
142
+ function memoryAssuranceReport(db, runId, verifyState = true) {
131
143
  const state = assuranceState(db, runId);
132
144
  const report = { mode: state ? 'tracked' : 'legacy_unobserved', revision: state?.revision ?? null,
133
- retrieval: state?.retrieval_status ?? 'unobserved', pending: [], stale: [], missingVerification: [], observed: false, complete: true };
145
+ contract: INTEGRATION_CONTRACT, observationSequence: Number(state?.observation_sequence ?? 0), retrieval: state?.retrieval_status ?? 'unobserved', pending: [], stale: [], missingVerification: [], observed: false, complete: true };
134
146
  if (!state)
135
147
  return report;
136
148
  const profile = readContextBrokerRunState(db, runId).taskProfile;
@@ -153,20 +165,27 @@ export function taskAssuranceReport(db, runId, verifyState = true) {
153
165
  let allObserved = true;
154
166
  const codeChange = profile.taskType === 'build' || profile.taskType === 'debug' || state.observed_changes === 1;
155
167
  for (const item of items) {
156
- if (!hasActionableMemorySelection([{ selectionReasons: JSON.parse(item.selection_reason_json) }]))
168
+ const actionable = hasActionableMemorySelection([{ selectionReasons: JSON.parse(item.selection_reason_json) }]);
169
+ const explicitlyReviewed = db.prepare('SELECT 1 FROM task_memory_decisions WHERE run_id=? AND entry_id=? AND entry_revision=? LIMIT 1').get(runId, item.entry_id, item.entry_revision);
170
+ if (!actionable && !explicitlyReviewed)
157
171
  continue;
158
172
  const current = db.prepare('SELECT current_revision FROM entries WHERE id = ?').get(item.entry_id);
159
173
  if (!current || current.current_revision !== item.entry_revision) {
160
174
  report.stale.push(item.entry_id);
161
175
  continue;
162
176
  }
163
- const review = db.prepare('SELECT decision, evidence_ids_json FROM task_memory_reviews WHERE run_id = ? AND delivery_id = ? AND entry_id = ? AND entry_revision = ?')
164
- .get(runId, state.delivery_id, item.entry_id, item.entry_revision);
177
+ if (state.repository_root && !digest)
178
+ digest = repositoryStateDigest(state.repository_root);
179
+ const independent = state.repository_root ? currentDecision(db, runId, state.delivery_id, item.entry_id, item.entry_revision, state.repository_root, digest ?? undefined) : null;
180
+ const review = independent ? { decision: independent.review.decision, evidence_ids_json: JSON.stringify(independent.review.evidenceIds) } : undefined;
181
+ if (independent)
182
+ (report.decisions ??= []).push({ entryId: item.entry_id, decisionId: independent.record.decision_id, sourceDeliveryId: independent.record.source_delivery_id });
165
183
  if (!review) {
166
184
  report.pending.push(item.entry_id);
185
+ (report.invalidated ??= []).push({ entryId: item.entry_id, reason: explicitlyReviewed ? 'decision_context_changed' : 'decision_required' });
167
186
  continue;
168
187
  }
169
- if (review.decision !== 'adopted' || !codeChange)
188
+ if (review.decision !== 'adopted' || !codeChange || JSON.parse(item.selection_reason_json).includes('general_communication_preference'))
170
189
  continue;
171
190
  adoptedCount += 1;
172
191
  if (!verifyState)
@@ -175,7 +194,7 @@ export function taskAssuranceReport(db, runId, verifyState = true) {
175
194
  digest = repositoryStateDigest(state.repository_root);
176
195
  const ids = JSON.parse(review.evidence_ids_json);
177
196
  const evidence = ids.map(id => db.prepare('SELECT * FROM task_execution_evidence WHERE evidence_id = ?').get(id));
178
- const valid = evidence.length > 0 && evidence.every(e => e && e.run_id === runId && e.delivery_id === state.delivery_id
197
+ const valid = evidence.length > 0 && independent?.review.verificationDefinitionHash === verificationDefinitionHash(db, runId) && evidence.every(e => e && e.run_id === runId && (e.delivery_id === state.delivery_id || independent?.review.evidenceIds.includes(String(e.evidence_id)))
179
198
  && e.repository_root === state.repository_root && e.state_digest === digest && e.outcome === 'passed' && e.exit_code === 0);
180
199
  if (!valid)
181
200
  report.missingVerification.push(item.entry_id);
@@ -186,11 +205,19 @@ export function taskAssuranceReport(db, runId, verifyState = true) {
186
205
  report.observed = verifyState && adoptedCount > 0 && allObserved && report.complete;
187
206
  return report;
188
207
  }
208
+ /** complete remains memory-only; callers must use completionReady for the task. */
209
+ export function taskAssuranceReport(db, runId, verifyState = true) {
210
+ const memory = memoryAssuranceReport(db, runId, verifyState);
211
+ const verification = taskVerificationReport(db, runId, verifyState);
212
+ return { ...memory, verification, completionReady: verification.mode === 'legacy_unobserved' ? null : memory.complete && verification.ready };
213
+ }
189
214
  export function assertAssuranceCompletion(db, runId, outcome) {
190
215
  if (outcome !== 'completed')
191
216
  return;
192
217
  const report = taskAssuranceReport(db, runId);
193
218
  if (!report.complete)
194
219
  throw new KiokukoError('CONFLICT', 'Memory review or regression verification is incomplete', { assurance: report });
220
+ if (report.completionReady === false)
221
+ throw new TaskStateConflict('task_verification_incomplete');
195
222
  }
196
223
  //# sourceMappingURL=service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/assurance/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/assurance/service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import * as z from 'zod/v4';
2
+ export declare const verificationCheckSchema: z.ZodObject<{
3
+ id: z.ZodString;
4
+ target: z.ZodString;
5
+ expected: z.ZodString;
6
+ method: z.ZodString;
7
+ }, z.core.$strict>;
8
+ export declare const verificationDefineSchema: z.ZodObject<{
9
+ reason: z.ZodString;
10
+ checks: z.ZodArray<z.ZodObject<{
11
+ id: z.ZodString;
12
+ target: z.ZodString;
13
+ expected: z.ZodString;
14
+ method: z.ZodString;
15
+ }, z.core.$strict>>;
16
+ runId: z.ZodString;
17
+ requestId: z.ZodString;
18
+ expectedRevision: z.ZodNumber;
19
+ cwd: z.ZodString;
20
+ }, z.core.$strict>;
21
+ export declare const verificationRecordSchema: z.ZodObject<{
22
+ contractVersion: z.ZodNumber;
23
+ checkId: z.ZodString;
24
+ target: z.ZodString;
25
+ source: z.ZodDiscriminatedUnion<[z.ZodObject<{
26
+ kind: z.ZodLiteral<"local">;
27
+ evidenceId: z.ZodString;
28
+ }, z.core.$strict>, z.ZodObject<{
29
+ kind: z.ZodLiteral<"ci">;
30
+ commit: z.ZodString;
31
+ runUrl: z.ZodString;
32
+ jobUrl: z.ZodString;
33
+ conclusion: z.ZodEnum<{
34
+ cancelled: "cancelled";
35
+ unknown: "unknown";
36
+ success: "success";
37
+ skipped: "skipped";
38
+ failure: "failure";
39
+ timed_out: "timed_out";
40
+ }>;
41
+ }, z.core.$strict>], "kind">;
42
+ runId: z.ZodString;
43
+ requestId: z.ZodString;
44
+ expectedRevision: z.ZodNumber;
45
+ cwd: z.ZodString;
46
+ }, z.core.$strict>;
47
+ export type VerificationCheck = z.infer<typeof verificationCheckSchema>;
48
+ export type VerificationSource = z.infer<typeof verificationRecordSchema>['source'];
49
+ //# sourceMappingURL=verification-contracts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verification-contracts.d.ts","sourceRoot":"","sources":["../../src/assurance/verification-contracts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAS5B,eAAO,MAAM,uBAAuB;;;;;kBAAwE,CAAC;AAC7G,eAAO,MAAM,wBAAwB;;;;;;;;;;;;kBAG6F,CAAC;AACnI,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;kBAQ1B,CAAC;AACZ,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC,QAAQ,CAAC,CAAC"}
@@ -0,0 +1,23 @@
1
+ import * as z from 'zod/v4';
2
+ import { assuranceBase } from './contracts.js';
3
+ const text = z.string().trim().min(1).max(1000).refine(value => !/\p{Cc}/u.test(value));
4
+ const id = z.string().regex(/^[A-Za-z0-9][A-Za-z0-9._-]{0,99}$/u);
5
+ const reference = z.string().url().max(2000).refine(value => {
6
+ const url = new URL(value);
7
+ return url.protocol === 'https:' && !url.username && !url.password && !url.search && !url.hash;
8
+ }, 'Use an HTTPS job/run reference without credentials or query parameters');
9
+ export const verificationCheckSchema = z.object({ id, target: text, expected: text, method: text }).strict();
10
+ export const verificationDefineSchema = z.object({
11
+ ...assuranceBase, reason: text,
12
+ checks: z.array(verificationCheckSchema).min(1).max(100),
13
+ }).strict().refine(input => new Set(input.checks.map(check => check.id)).size === input.checks.length, 'Check IDs must be unique');
14
+ export const verificationRecordSchema = z.object({
15
+ ...assuranceBase, contractVersion: z.number().int().positive(), checkId: id, target: text,
16
+ source: z.discriminatedUnion('kind', [
17
+ z.object({ kind: z.literal('local'), evidenceId: z.string().min(1).max(256) }).strict(),
18
+ z.object({ kind: z.literal('ci'), commit: z.string().regex(/^[0-9a-f]{40}(?:[0-9a-f]{24})?$/u), runUrl: reference, jobUrl: reference,
19
+ conclusion: z.enum(['success', 'failure', 'cancelled', 'timed_out', 'skipped', 'unknown']),
20
+ }).strict(),
21
+ ]),
22
+ }).strict();
23
+ //# sourceMappingURL=verification-contracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verification-contracts.js","sourceRoot":"","sources":["../../src/assurance/verification-contracts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACxF,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;AAClE,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;IAC1D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3B,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AACjG,CAAC,EAAE,wEAAwE,CAAC,CAAC;AAC7E,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AAC7G,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,GAAG,aAAa,EAAE,MAAM,EAAE,IAAI;IAC9B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;CACzD,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;AACnI,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,GAAG,aAAa,EAAE,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI;IACzF,MAAM,EAAE,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;QACnC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;QACvF,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,kCAAkC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS;YAClI,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;SAC3F,CAAC,CAAC,MAAM,EAAE;KACZ,CAAC;CACH,CAAC,CAAC,MAAM,EAAE,CAAC"}