kiokuko-dsh 0.2.16 → 0.2.17

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 (102) hide show
  1. package/PERMISSIONS.md +11 -0
  2. package/README.ja.md +2 -0
  3. package/README.ko.md +2 -0
  4. package/README.md +2 -0
  5. package/README.zh-CN.md +2 -0
  6. package/THIRD_PARTY_NOTICES.md +4 -0
  7. package/dist/deep-thinker/core/contracts.d.ts +5 -5
  8. package/dist/deep-thinker/memory-finalizer.d.ts +1 -1
  9. package/dist/deep-thinker/store.d.ts +1 -1
  10. package/dist/dsh/coding-workflow/host.d.ts.map +1 -1
  11. package/dist/dsh/coding-workflow/host.js +7 -6
  12. package/dist/dsh/coding-workflow/host.js.map +1 -1
  13. package/dist/dsh/composition.js +1 -1
  14. package/dist/dsh/composition.js.map +1 -1
  15. package/dist/dsh/config.d.ts +1 -1
  16. package/dist/dsh/core/host.d.ts.map +1 -1
  17. package/dist/dsh/core/host.js +7 -1
  18. package/dist/dsh/core/host.js.map +1 -1
  19. package/dist/dsh/decisions/contracts.d.ts +1 -0
  20. package/dist/dsh/decisions/contracts.d.ts.map +1 -1
  21. package/dist/dsh/decisions/contracts.js +1 -1
  22. package/dist/dsh/decisions/contracts.js.map +1 -1
  23. package/dist/dsh/decisions/diagnostic-correlation.d.ts +3 -0
  24. package/dist/dsh/decisions/diagnostic-correlation.d.ts.map +1 -0
  25. package/dist/dsh/decisions/diagnostic-correlation.js +7 -0
  26. package/dist/dsh/decisions/diagnostic-correlation.js.map +1 -0
  27. package/dist/dsh/decisions/diagnostics.d.ts +512 -0
  28. package/dist/dsh/decisions/diagnostics.d.ts.map +1 -0
  29. package/dist/dsh/decisions/diagnostics.js +389 -0
  30. package/dist/dsh/decisions/diagnostics.js.map +1 -0
  31. package/dist/dsh/decisions/host.d.ts +2 -1
  32. package/dist/dsh/decisions/host.d.ts.map +1 -1
  33. package/dist/dsh/decisions/host.js +18 -5
  34. package/dist/dsh/decisions/host.js.map +1 -1
  35. package/dist/dsh/decisions/intent-assessment.d.ts +20 -0
  36. package/dist/dsh/decisions/intent-assessment.d.ts.map +1 -0
  37. package/dist/dsh/decisions/intent-assessment.js +104 -0
  38. package/dist/dsh/decisions/intent-assessment.js.map +1 -0
  39. package/dist/dsh/decisions/message-refs.d.ts +6 -0
  40. package/dist/dsh/decisions/message-refs.d.ts.map +1 -0
  41. package/dist/dsh/decisions/message-refs.js +16 -0
  42. package/dist/dsh/decisions/message-refs.js.map +1 -0
  43. package/dist/dsh/decisions/micro-judge.d.ts +58 -0
  44. package/dist/dsh/decisions/micro-judge.d.ts.map +1 -0
  45. package/dist/dsh/decisions/micro-judge.js +160 -0
  46. package/dist/dsh/decisions/micro-judge.js.map +1 -0
  47. package/dist/dsh/decisions/request-intent.d.ts +1 -2
  48. package/dist/dsh/decisions/request-intent.d.ts.map +1 -1
  49. package/dist/dsh/decisions/request-intent.js +16 -18
  50. package/dist/dsh/decisions/request-intent.js.map +1 -1
  51. package/dist/dsh/decisions/service.d.ts +10 -1
  52. package/dist/dsh/decisions/service.d.ts.map +1 -1
  53. package/dist/dsh/decisions/service.js +52 -7
  54. package/dist/dsh/decisions/service.js.map +1 -1
  55. package/dist/dsh/execution-selection.d.ts +5 -5
  56. package/dist/dsh/host-adapter/admission.d.ts.map +1 -1
  57. package/dist/dsh/host-adapter/admission.js +3 -0
  58. package/dist/dsh/host-adapter/admission.js.map +1 -1
  59. package/dist/dsh/host-adapter.d.ts.map +1 -1
  60. package/dist/dsh/host-adapter.js +4 -0
  61. package/dist/dsh/host-adapter.js.map +1 -1
  62. package/dist/dsh/index.d.ts +2 -2
  63. package/dist/dsh/model-configuration.d.ts +6 -6
  64. package/dist/dsh/modules/enno.d.ts +1 -1
  65. package/dist/dsh/on-demand-intake.d.ts +10 -0
  66. package/dist/dsh/on-demand-intake.d.ts.map +1 -1
  67. package/dist/dsh/on-demand-intake.js +63 -9
  68. package/dist/dsh/on-demand-intake.js.map +1 -1
  69. package/dist/dsh/task-state.d.ts.map +1 -1
  70. package/dist/dsh/task-state.js +4 -0
  71. package/dist/dsh/task-state.js.map +1 -1
  72. package/dist/dsh/turn-process.d.ts.map +1 -1
  73. package/dist/dsh/turn-process.js +3 -0
  74. package/dist/dsh/turn-process.js.map +1 -1
  75. package/dist/enno-oduno/store.d.ts.map +1 -1
  76. package/dist/enno-oduno/store.js +2 -0
  77. package/dist/enno-oduno/store.js.map +1 -1
  78. package/dist/locale/en.json +1 -1
  79. package/dist/locale/ja.json +1 -1
  80. package/dist/locale/ko.json +1 -1
  81. package/dist/locale/zh-CN.json +1 -1
  82. package/dist/memory/lifecycle.d.ts +1 -1
  83. package/docs/coding-workflow.md +1 -1
  84. package/docs/decision-diagnostics.md +60 -0
  85. package/docs/guardrail.md +3 -3
  86. package/docs/harness-map.md +2 -0
  87. package/docs/micro-judge.md +34 -0
  88. package/guardrail/manifest.json +0 -22
  89. package/micro-judge/darwin-arm64/kiokuko-micro-judge +0 -0
  90. package/micro-judge/licenses/COPYRIGHT-Rust-1.85.0.txt +384 -0
  91. package/micro-judge/licenses/LICENSE-APACHE +176 -0
  92. package/micro-judge/licenses/LICENSE-MIT +23 -0
  93. package/micro-judge/licenses/manifest.json +5 -0
  94. package/micro-judge/manifest.json +15 -0
  95. package/micro-judge/native-acceptance-darwin-arm64.tap +118 -0
  96. package/micro-judge/native-verification-darwin-arm64.json +20 -0
  97. package/migrations/044_decision_diagnostics.sql +46 -0
  98. package/package.json +13 -8
  99. package/scripts/guardrail-artifacts.mjs +0 -1
  100. package/scripts/verify-micro-judge.mjs +53 -0
  101. package/guardrail/x86_64-apple-darwin/kiokuko-guardrail +0 -0
  102. package/guardrail/x86_64-apple-darwin/manifest.json +0 -71
@@ -0,0 +1,389 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { z } from 'zod';
3
+ import { withImmediateTransaction, withDeferredReadTransaction } from '../../db/transaction.js';
4
+ import { canonicalContentHash } from '../../serialization/validate.js';
5
+ import { requestIntentMessageRefs } from './message-refs.js';
6
+ import { dshTurnRequestId } from '../intake-profile-resolver.js';
7
+ import { requestIntentDiagnosticId } from './diagnostic-correlation.js';
8
+ const digest = z.string().regex(/^[a-f0-9]{64}$/u);
9
+ const id = z.string().regex(/^dgn_[a-f0-9]{32}$/u);
10
+ const nativeId = z.string().min(1).max(256).refine(value => !/[\p{Cc}\p{Cf}]/u.test(value));
11
+ const revision = z.number().int().nonnegative();
12
+ export const DiagnosticBinding = z.object({ runId: nativeId, sessionId: nativeId, repositoryDigest: digest,
13
+ revision, generation: revision, sourceEpoch: z.number().int().positive(),
14
+ workflowRevision: revision.optional(), goalRevision: revision.optional(), scopeRevision: revision.optional() }).strict();
15
+ export const DiagnosticAttempt = z.object({ origin: z.enum(['intake', 'provider']), requestRef: digest,
16
+ sessionId: nativeId.optional(), turn: revision.optional(), inputDigest: digest, contextDigest: digest.optional(),
17
+ binding: DiagnosticBinding.optional(), policyRef: digest, referenceDigests: z.array(digest).max(32).default([]),
18
+ purpose: z.enum(['akinator', 'request-intent', 'skills', 'enno-check', 'lisp', 'memory-reuse', 'compaction', 'model-handoff', 'answer-review', 'model-routing', 'intent-semantic-match']) }).strict();
19
+ export const DIAGNOSTIC_REASONS = ['observed', 'resolved', 'unresolved', 'native_unowned', 'clarification_required', 'target_unknown', 'scope_unknown',
20
+ 'transition_required', 'question_unavailable', 'context_changed', 'answer_queued', 'resume_observed', 'receipt_observed', 'continuation_observed',
21
+ 'assessment_disabled', 'assessment_consistent', 'assessment_clarify', 'assessment_unavailable', 'provider_completed', 'provider_fallback', 'provider_cancelled', 'evaluation_failed'];
22
+ export const DiagnosticEvent = z.object({ kind: z.enum(['reference', 'extraction', 'semantic_match', 'detector', 'route', 'admission', 'task_resume', 'question', 'answer', 'resume', 'provider', 'choice', 'receipt', 'continuation']),
23
+ status: z.enum(['observed', 'not_run', 'waiting', 'queued', 'blocked']), reason: z.enum(DIAGNOSTIC_REASONS),
24
+ parentEventId: digest.optional(), referenceDigest: digest.optional(), targetSessionId: nativeId.optional(),
25
+ binding: DiagnosticBinding.optional(),
26
+ relation: z.enum(['new', 'same_scope_continuation', 'scope_change', 'unknown']).optional(),
27
+ action: z.enum(['answer', 'research', 'verify', 'change', 'operate', 'unknown']).optional(),
28
+ changeScope: z.enum(['implementation', 'document', 'unknown']).optional(),
29
+ source: z.enum(['decision-provider', 'main-model', 'unresolved']).optional(),
30
+ provider: z.enum(['typesafe', 'nimble', 'laya-coreml']).optional(), modelRef: digest.optional(), policyRef: digest.optional(),
31
+ detectorVersionRef: digest.optional(), providerRevisionRef: digest.optional(), elapsedMs: revision.optional(), cacheHit: z.boolean().optional(),
32
+ providerDispatched: z.boolean().optional(),
33
+ semanticVerdict: z.enum(['supported', 'contradicted', 'insufficient', 'unavailable']).optional(),
34
+ assessmentInputDigest: digest.optional(), assessmentOutputDigest: digest.optional(),
35
+ judge: z.object({ state: z.enum(['available', 'unavailable']), inputDigest: digest.optional(), outputDigest: digest.optional(), binaryHash: digest.optional(),
36
+ version: z.literal('kiokuko-fd-v1'), complete: z.boolean().optional(), status: z.enum(['entailed', 'refuted', 'undetermined', 'inconsistent', 'resource_limit']).optional(),
37
+ unavailableReason: z.enum(['unsupported_platform', 'artifact_unavailable', 'artifact_mismatch', 'invalid_input', 'cancelled', 'timeout', 'process_failed', 'output_limit', 'malformed_response']).optional() }).strict().optional(),
38
+ selected: revision.optional(), abstained: revision.optional(), measured: revision.optional(),
39
+ choice: z.object({ questionRef: digest, choiceRef: digest, topProbability: z.number().finite().min(0).max(1), runnerUpProbability: z.number().finite().min(0).max(1),
40
+ margin: z.number().finite().min(-1).max(1), confidence: z.number().finite().min(0).max(1), gate: z.enum(['confidence', 'probability_margin']),
41
+ acceptance: z.object({ minConfidence: z.number().finite().optional(), minProbability: z.number().finite().optional(), minMargin: z.number().finite().optional() }).strict(),
42
+ status: z.enum(['selected', 'abstained']), failedChecks: z.array(z.enum(['confidence', 'probability', 'margin'])).max(3) }).strict().optional(),
43
+ fallback: z.enum(['DECISION_UNAVAILABLE', 'DECISION_AUTH', 'DECISION_TIMEOUT', 'DECISION_CANCELLED', 'DECISION_INVALID_INPUT', 'DECISION_UNSUPPORTED', 'DECISION_TOO_LARGE', 'DECISION_MALFORMED_RESPONSE', 'other']).optional(),
44
+ resultRef: z.object({ requestId: nativeId, inputDigest: digest }).strict().optional(),
45
+ nextDecisionId: id.optional(), receiptId: digest.optional(), continuationId: digest.optional(), evaluationDecisionId: id.optional() }).strict();
46
+ class DiagnosticConflict extends Error {
47
+ code;
48
+ constructor(code) {
49
+ super(code);
50
+ this.code = code;
51
+ }
52
+ }
53
+ const losses = new WeakMap();
54
+ export function diagnosticId() { return `dgn_${randomUUID().replaceAll('-', '')}`; }
55
+ export function diagnosticEventId(decisionId, key) { return canonicalContentHash([decisionId, key]); }
56
+ /** Current source epoch follows the same rule as task-source-history/finalization. */
57
+ export function captureDiagnosticBinding(db, runId, sessionId) {
58
+ const row = db.prepare('SELECT task_revision,task_generation,task_owner_session_id,dsh_session_id,task_repository_root FROM ledger_runs WHERE run_id=?').get(runId);
59
+ if (!row || (row.task_owner_session_id ?? row.dsh_session_id) !== sessionId)
60
+ throw new DiagnosticConflict('stale_binding');
61
+ const epoch = db.prepare('SELECT COALESCE(MAX(source_epoch),0)+1 AS n FROM dsh_task_source_history WHERE run_id=?').get(runId).n;
62
+ const workflow = db.prepare('SELECT snapshot_json FROM dsh_coding_workflows WHERE run_id=?').get(runId);
63
+ // Workflow storage is read through its documented column projection below; no Goal prose is copied.
64
+ const value = workflow ? JSON.parse(String(workflow.snapshot_json)) : undefined;
65
+ return DiagnosticBinding.parse({ runId, sessionId, repositoryDigest: canonicalContentHash(row.task_repository_root),
66
+ revision: row.task_revision, generation: row.task_generation, sourceEpoch: epoch,
67
+ ...(value ? { workflowRevision: value.revision, scopeRevision: value.scopeVersion,
68
+ ...(value.definition?.goal?.revision === undefined ? {} : { goalRevision: value.definition.goal.revision }) } : {}) });
69
+ }
70
+ function validateBinding(db, binding) {
71
+ const current = captureDiagnosticBinding(db, binding.runId, binding.sessionId);
72
+ for (const key of Object.keys(binding))
73
+ if (binding[key] !== current[key])
74
+ throw new DiagnosticConflict('stale_binding');
75
+ }
76
+ export function createDiagnosticAttempt(db, decisionId, raw) {
77
+ withImmediateTransaction(db, () => {
78
+ id.parse(decisionId);
79
+ const value = DiagnosticAttempt.parse(raw), hash = canonicalContentHash(value);
80
+ if (value.binding && value.sessionId !== value.binding.sessionId)
81
+ throw new DiagnosticConflict('causal_conflict');
82
+ const existing = db.prepare('SELECT document_digest FROM dsh_diagnostic_attempts WHERE decision_id=?').get(decisionId);
83
+ if (existing) {
84
+ if (existing.document_digest !== hash)
85
+ throw new DiagnosticConflict('causal_conflict');
86
+ return;
87
+ }
88
+ if (value.binding)
89
+ validateBinding(db, value.binding);
90
+ db.prepare(`INSERT INTO dsh_diagnostic_attempts VALUES(?,?,?,?,?,?,?,?,?)`).run(decisionId, value.requestRef, value.sessionId ?? null, value.turn ?? null, value.binding?.runId ?? null, value.inputDigest, JSON.stringify(value), hash, new Date().toISOString());
91
+ });
92
+ }
93
+ /** Serialize sequence allocation and validate causality inside the caller's managed transaction. */
94
+ export function appendDiagnosticEvent(db, decisionId, eventId, raw) {
95
+ return withImmediateTransaction(db, () => {
96
+ id.parse(decisionId);
97
+ digest.parse(eventId);
98
+ const value = DiagnosticEvent.parse(raw), hash = canonicalContentHash(value);
99
+ const duplicate = db.prepare('SELECT decision_id,document_digest,sequence FROM dsh_diagnostic_events WHERE event_id=?').get(eventId);
100
+ if (duplicate) {
101
+ if (duplicate.decision_id !== decisionId || duplicate.document_digest !== hash)
102
+ throw new DiagnosticConflict('causal_conflict');
103
+ return duplicate.sequence;
104
+ }
105
+ const attempt = db.prepare('SELECT document_json FROM dsh_diagnostic_attempts WHERE decision_id=?').get(decisionId);
106
+ if (!attempt)
107
+ throw new DiagnosticConflict('causal_conflict');
108
+ const owner = DiagnosticAttempt.parse(JSON.parse(String(attempt.document_json)));
109
+ if (value.kind === 'admission' && (!value.binding || value.binding.sessionId !== owner.sessionId || value.targetSessionId !== owner.sessionId))
110
+ throw new DiagnosticConflict('causal_conflict');
111
+ if (value.evaluationDecisionId && !db.prepare("SELECT 1 FROM dsh_diagnostic_attempts WHERE decision_id=? AND request_ref=? AND json_extract(document_json,'$.origin')='provider'")
112
+ .get(value.evaluationDecisionId, owner.requestRef))
113
+ throw new DiagnosticConflict('causal_conflict');
114
+ if (value.binding && !['admission', 'task_resume', 'resume', 'receipt', 'continuation'].includes(value.kind) && owner.binding
115
+ && canonicalContentHash(owner.binding) !== canonicalContentHash(value.binding))
116
+ throw new DiagnosticConflict('causal_conflict');
117
+ if (value.binding)
118
+ validateBinding(db, value.binding);
119
+ else if (owner.binding)
120
+ validateBinding(db, owner.binding);
121
+ if (['resume', 'task_resume'].includes(value.kind) && owner.binding) {
122
+ const admitted = value.binding && db.prepare("SELECT 1 FROM dsh_diagnostic_events WHERE decision_id=? AND kind='admission' AND json_extract(document_json,'$.binding.runId')=?").get(decisionId, value.binding.runId);
123
+ if (!value.binding || value.binding.runId !== owner.binding.runId && !admitted || value.binding.sessionId !== value.targetSessionId
124
+ || value.binding.runId === owner.binding.runId && value.binding.sourceEpoch < owner.binding.sourceEpoch)
125
+ throw new DiagnosticConflict('causal_conflict');
126
+ }
127
+ if (value.parentEventId) {
128
+ const parent = db.prepare('SELECT kind FROM dsh_diagnostic_events WHERE decision_id=? AND event_id=?').get(decisionId, value.parentEventId);
129
+ if (!parent || value.kind === 'answer' && parent.kind !== 'question' || value.kind === 'resume' && parent.kind !== 'answer')
130
+ throw new DiagnosticConflict('causal_conflict');
131
+ }
132
+ else if (value.kind === 'answer' || value.kind === 'resume')
133
+ throw new DiagnosticConflict('causal_conflict');
134
+ if (value.kind === 'answer' && db.prepare("SELECT 1 FROM dsh_diagnostic_events WHERE decision_id=? AND kind='answer' AND parent_event_id=?").get(decisionId, value.parentEventId))
135
+ throw new DiagnosticConflict('causal_conflict');
136
+ if (value.nextDecisionId) {
137
+ const next = db.prepare('SELECT document_json FROM dsh_diagnostic_attempts WHERE decision_id=?').get(value.nextDecisionId);
138
+ const answer = value.parentEventId && db.prepare("SELECT reference_digest FROM dsh_diagnostic_events WHERE event_id=? AND decision_id=? AND kind='answer'").get(value.parentEventId, decisionId);
139
+ if (value.kind !== 'resume' || !next || !answer || value.nextDecisionId === decisionId)
140
+ throw new DiagnosticConflict('causal_conflict');
141
+ const resumed = DiagnosticAttempt.parse(JSON.parse(String(next.document_json)));
142
+ if (resumed.sessionId !== owner.sessionId || resumed.sessionId !== value.targetSessionId || resumed.turn === undefined || owner.turn === undefined || resumed.turn <= owner.turn
143
+ || !resumed.referenceDigests.includes(String(answer.reference_digest)))
144
+ throw new DiagnosticConflict('causal_conflict');
145
+ }
146
+ if (value.resultRef && (owner.requestRef !== canonicalContentHash(value.resultRef.requestId) || owner.inputDigest !== value.resultRef.inputDigest))
147
+ throw new DiagnosticConflict('causal_conflict');
148
+ if (value.resultRef && !db.prepare('SELECT 1 FROM dsh_decision_results WHERE request_id=? AND input_digest=?')
149
+ .get(value.resultRef.requestId, value.resultRef.inputDigest))
150
+ throw new DiagnosticConflict('causal_conflict');
151
+ if (value.receiptId) {
152
+ const receipt = db.prepare('SELECT run_id,dsh_session_id,native_turn FROM dsh_turn_receipts WHERE receipt_id=?').get(value.receiptId);
153
+ const admitted = db.prepare("SELECT 1 FROM dsh_diagnostic_events WHERE decision_id=? AND kind='admission' AND json_extract(document_json,'$.binding.runId')=?").get(decisionId, String(receipt?.run_id ?? ''));
154
+ if (!receipt || receipt.run_id !== owner.binding?.runId && !admitted || receipt.dsh_session_id !== value.targetSessionId || receipt.native_turn !== owner.turn)
155
+ throw new DiagnosticConflict('causal_conflict');
156
+ }
157
+ if (value.continuationId && !db.prepare('SELECT 1 FROM dsh_continuation_outbox WHERE continuation_id=? AND receipt_id=? AND dsh_session_id=?')
158
+ .get(value.continuationId, value.receiptId ?? '', value.targetSessionId ?? ''))
159
+ throw new DiagnosticConflict('causal_conflict');
160
+ const next = db.prepare('SELECT COALESCE(MAX(sequence),0)+1 AS n FROM dsh_diagnostic_events WHERE decision_id=?').get(decisionId).n;
161
+ db.prepare('INSERT INTO dsh_diagnostic_events VALUES(?,?,?,?,?,?,?,?,?,?)').run(eventId, decisionId, next, value.kind, value.parentEventId ?? null, value.referenceDigest ?? null, value.targetSessionId ?? null, JSON.stringify(value), hash, new Date().toISOString());
162
+ return next;
163
+ });
164
+ }
165
+ /** No raw exception is retained. A failed savepoint cannot alter the authoritative operation. */
166
+ export function bestEffortDiagnostic(db, scopeRef, operation) {
167
+ try {
168
+ withImmediateTransaction(db, operation);
169
+ return true;
170
+ }
171
+ catch (error) {
172
+ losses.set(db, (losses.get(db) ?? 0) + 1);
173
+ try {
174
+ withImmediateTransaction(db, () => db.prepare('INSERT INTO dsh_diagnostic_gaps VALUES(?,?,?,?)')
175
+ .run(randomUUID(), canonicalContentHash(scopeRef), error instanceof DiagnosticConflict ? error.code : 'recording_failed', new Date().toISOString()));
176
+ }
177
+ catch { /* DB-wide failure is visible through volatileLosses. */ }
178
+ return false;
179
+ }
180
+ }
181
+ export async function observeDiagnostic(runtime, scope, operation) {
182
+ try {
183
+ await runtime.withDatabase(db => bestEffortDiagnostic(db, scope, () => operation(db)));
184
+ }
185
+ catch {
186
+ losses.set(runtime, (losses.get(runtime) ?? 0) + 1);
187
+ }
188
+ }
189
+ export function diagnosticRuntimeLosses(runtime) { return losses.get(runtime) ?? 0; }
190
+ /** Called only after the real host has bound the admitted run. Source interpretation stays immutable. */
191
+ export function recordDiagnosticAdmission(db, input) {
192
+ bestEffortDiagnostic(db, input.sessionId, () => {
193
+ const binding = captureDiagnosticBinding(db, input.runId, input.sessionId), inputDigest = canonicalContentHash(input.task);
194
+ let decisionId = db.prepare("SELECT decision_id FROM dsh_diagnostic_attempts WHERE session_id=? AND native_turn=? AND input_digest=? AND json_extract(document_json,'$.origin')='intake' ORDER BY created_at DESC LIMIT 1")
195
+ .get(input.sessionId, input.turn, inputDigest)?.decision_id;
196
+ if (!decisionId) {
197
+ decisionId = diagnosticId();
198
+ createDiagnosticAttempt(db, decisionId, { origin: 'intake', purpose: 'request-intent', sessionId: input.sessionId, turn: input.turn,
199
+ requestRef: canonicalContentHash(dshTurnRequestId({ dshSessionId: input.sessionId, turn: input.turn })), inputDigest, binding,
200
+ policyRef: canonicalContentHash(input.decision?.policyVersion ?? 'native-intake-v1'), contextDigest: canonicalContentHash(input.context ?? null),
201
+ referenceDigests: input.context?.messageRefs.map(ref => canonicalContentHash(ref.id)) ?? [] });
202
+ appendDiagnosticEvent(db, decisionId, diagnosticEventId(decisionId, 'reference'), { kind: 'reference', status: 'observed', reason: 'observed' });
203
+ const evaluationId = requestIntentDiagnosticId(input.decision);
204
+ if (input.decision)
205
+ appendDiagnosticEvent(db, decisionId, diagnosticEventId(decisionId, 'extraction'), { kind: 'extraction', status: 'observed', reason: input.decision.source === 'unresolved' ? 'unresolved' : 'resolved',
206
+ relation: input.decision.relation, action: input.decision.action, changeScope: input.decision.changeScope, source: input.decision.source,
207
+ ...(evaluationId && db.prepare('SELECT 1 FROM dsh_diagnostic_attempts WHERE decision_id=?').get(evaluationId) ? { evaluationDecisionId: evaluationId } : {}) });
208
+ }
209
+ appendDiagnosticEvent(db, decisionId, diagnosticEventId(decisionId, ['admission', binding]), { kind: 'admission', status: 'observed', reason: 'observed', binding, targetSessionId: input.sessionId });
210
+ });
211
+ }
212
+ /** Same managed transaction as the authoritative state transition. Never creates a correctness label. */
213
+ export function recordDiagnosticTaskResume(db, runId, sessionId, operationId) {
214
+ bestEffortDiagnostic(db, runId, () => {
215
+ const binding = captureDiagnosticBinding(db, runId, sessionId);
216
+ const attempts = db.prepare(`SELECT DISTINCT a.decision_id FROM dsh_diagnostic_attempts a LEFT JOIN dsh_diagnostic_events e ON e.decision_id=a.decision_id
217
+ WHERE a.run_id=? OR (e.kind='admission' AND json_extract(e.document_json,'$.binding.runId')=?)`).all(runId, runId);
218
+ for (const row of attempts) {
219
+ const decisionId = String(row.decision_id);
220
+ const answer = db.prepare("SELECT event_id FROM dsh_diagnostic_events WHERE decision_id=? AND kind='answer' ORDER BY sequence DESC LIMIT 1").get(decisionId);
221
+ appendDiagnosticEvent(db, decisionId, diagnosticEventId(decisionId, ['task-resume', canonicalContentHash(operationId)]), { kind: answer ? 'resume' : 'task_resume', status: 'observed', reason: 'resume_observed',
222
+ ...(answer ? { parentEventId: String(answer.event_id) } : {}), binding, targetSessionId: sessionId });
223
+ }
224
+ });
225
+ }
226
+ /** The receipt/outbox already exists. Savepoint failure is advisory; outer rollback also rolls back diagnostics. */
227
+ export function recordDiagnosticTurn(db, receiptId) {
228
+ bestEffortDiagnostic(db, receiptId, () => {
229
+ const receipt = db.prepare('SELECT run_id,dsh_session_id,native_turn FROM dsh_turn_receipts WHERE receipt_id=?').get(receiptId);
230
+ if (!receipt)
231
+ throw new DiagnosticConflict('causal_conflict');
232
+ const attempts = db.prepare(`SELECT DISTINCT a.decision_id FROM dsh_diagnostic_attempts a LEFT JOIN dsh_diagnostic_events e ON e.decision_id=a.decision_id
233
+ WHERE a.session_id=? AND a.native_turn=? AND (a.run_id=? OR (e.kind='admission' AND json_extract(e.document_json,'$.binding.runId')=?))`)
234
+ .all(String(receipt.dsh_session_id), Number(receipt.native_turn), String(receipt.run_id), String(receipt.run_id));
235
+ for (const row of attempts) {
236
+ const decisionId = String(row.decision_id), binding = captureDiagnosticBinding(db, String(receipt.run_id), String(receipt.dsh_session_id));
237
+ appendDiagnosticEvent(db, decisionId, diagnosticEventId(decisionId, ['receipt', receiptId]), { kind: 'receipt', status: 'observed', reason: 'receipt_observed', receiptId, targetSessionId: String(receipt.dsh_session_id), binding });
238
+ for (const outbox of db.prepare('SELECT continuation_id FROM dsh_continuation_outbox WHERE receipt_id=?').all(receiptId))
239
+ appendDiagnosticEvent(db, decisionId, diagnosticEventId(decisionId, ['continuation', outbox.continuation_id]), { kind: 'continuation', status: 'observed', reason: 'continuation_observed', receiptId, continuationId: String(outbox.continuation_id), targetSessionId: String(receipt.dsh_session_id), binding });
240
+ }
241
+ });
242
+ }
243
+ /** Runs after the existing Enno receipt trigger, inside its authoritative transaction. */
244
+ export function recordDiagnosticEnnoCommit(db, runId, operation, key) {
245
+ bestEffortDiagnostic(db, runId, () => {
246
+ const intent = db.prepare('SELECT receipt_id FROM dsh_turn_intents WHERE run_id=? AND operation=? AND idempotency_key=?').get(runId, operation, key);
247
+ if (intent)
248
+ recordDiagnosticTurn(db, String(intent.receipt_id));
249
+ });
250
+ }
251
+ /** Trusted, independent adjudication API; never exposed as a model tool or inferred from resume. */
252
+ export function reviewDiagnosticStop(db, decisionId, verdict, reviewRef) {
253
+ withImmediateTransaction(db, () => {
254
+ digest.parse(reviewRef);
255
+ z.enum(['false_stop', 'justified_stop']).parse(verdict);
256
+ if (!db.prepare("SELECT 1 FROM dsh_diagnostic_events WHERE decision_id=? AND kind='question'").get(decisionId))
257
+ throw new DiagnosticConflict('causal_conflict');
258
+ const old = db.prepare('SELECT verdict,review_ref FROM dsh_diagnostic_reviews WHERE decision_id=?').get(decisionId);
259
+ if (old) {
260
+ if (old.verdict !== verdict || old.review_ref !== reviewRef)
261
+ throw new DiagnosticConflict('causal_conflict');
262
+ return;
263
+ }
264
+ db.prepare('INSERT INTO dsh_diagnostic_reviews VALUES(?,?,?,?)').run(decisionId, verdict, reviewRef, new Date().toISOString());
265
+ });
266
+ }
267
+ /** SELECT-only. Never backfill, migrate, probe a provider, dispatch or label an outcome. */
268
+ export function readDecisionDiagnostics(db, sessionId, decisionId) {
269
+ return withDeferredReadTransaction(db, () => readDecisionDiagnosticsSnapshot(db, sessionId, decisionId));
270
+ }
271
+ function readDecisionDiagnosticsSnapshot(db, sessionId, decisionId) {
272
+ nativeId.parse(sessionId);
273
+ if (decisionId)
274
+ id.parse(decisionId);
275
+ const rows = db.prepare(`SELECT DISTINCT a.* FROM dsh_diagnostic_attempts a LEFT JOIN dsh_diagnostic_events e ON e.decision_id=a.decision_id
276
+ WHERE (a.session_id=? OR e.target_session_id=?) AND (? IS NULL OR a.decision_id=?) ORDER BY a.created_at DESC,a.decision_id LIMIT 100`)
277
+ .all(sessionId, sessionId, decisionId ?? null, decisionId ?? null);
278
+ const attempts = rows.map(row => {
279
+ const document = DiagnosticAttempt.parse(JSON.parse(String(row.document_json)));
280
+ const events = db.prepare('SELECT event_id,sequence,document_json FROM dsh_diagnostic_events WHERE decision_id=? ORDER BY sequence').all(String(row.decision_id))
281
+ .map(event => ({ eventId: event.event_id, sequence: event.sequence, ...DiagnosticEvent.parse(JSON.parse(String(event.document_json))) }));
282
+ const runIds = new Set([document.binding?.runId, ...events.filter(e => e.kind === 'admission').map(e => e.binding?.runId)].filter((run) => !!run));
283
+ const receipts = [...runIds].flatMap(runId => db.prepare(`SELECT receipt_id AS receiptId,run_id AS runId,dsh_session_id AS sessionId,native_turn AS turn,outcome_kind AS outcome
284
+ FROM dsh_turn_receipts WHERE run_id=? AND dsh_session_id=? AND native_turn=?`).all(runId, document.sessionId ?? '', document.turn ?? -1));
285
+ const outbox = receipts.flatMap(receipt => db.prepare(`SELECT continuation_id AS continuationId,receipt_id AS receiptId,dsh_session_id AS targetSessionId,status,observed_seq AS observedSequence
286
+ FROM dsh_continuation_outbox WHERE receipt_id=?`).all(String(receipt.receiptId)));
287
+ const missingReceiptLinks = receipts.filter(r => !events.some(e => e.receiptId === r.receiptId && e.kind === 'receipt')).length;
288
+ const missingContinuationLinks = outbox.filter(r => !events.some(e => e.continuationId === r.continuationId)).length;
289
+ return { decisionId: row.decision_id, ...document, events, authoritativeLinks: { receipts, outbox }, missingReceiptLinks, missingContinuationLinks,
290
+ stages: { extraction: events.find(e => e.kind === 'extraction')?.status ?? 'not_run',
291
+ semanticMatch: events.find(e => e.kind === 'semantic_match')?.status ?? 'not_run', detector: events.find(e => e.kind === 'detector')?.status ?? 'not_run' },
292
+ // Shared request identity is a link, not a claim that these independent evaluations are one attempt.
293
+ providerAttempts: db.prepare("SELECT decision_id,document_json FROM dsh_diagnostic_attempts WHERE request_ref=? AND json_extract(document_json,'$.origin')='provider' ORDER BY created_at DESC LIMIT 20")
294
+ .all(document.requestRef).map(v => ({ decisionId: v.decision_id, ...DiagnosticAttempt.parse(JSON.parse(String(v.document_json))),
295
+ events: db.prepare('SELECT document_json FROM dsh_diagnostic_events WHERE decision_id=? ORDER BY sequence LIMIT 301').all(String(v.decision_id)).map(e => DiagnosticEvent.parse(JSON.parse(String(e.document_json)))) })) };
296
+ });
297
+ const metrics = db.prepare(`SELECT count(DISTINCT a.decision_id) AS stopped,count(DISTINCT r.decision_id) AS evaluated,
298
+ count(DISTINCT CASE WHEN r.verdict='false_stop' THEN r.decision_id END) AS falseStops FROM dsh_diagnostic_attempts a
299
+ JOIN dsh_diagnostic_events e ON e.decision_id=a.decision_id AND e.kind='question'
300
+ LEFT JOIN dsh_diagnostic_reviews r ON r.decision_id=a.decision_id WHERE a.session_id=?
301
+ OR EXISTS(SELECT 1 FROM dsh_diagnostic_events linked WHERE linked.decision_id=a.decision_id AND linked.target_session_id=?)`).get(sessionId, sessionId);
302
+ const stopped = Number(metrics.stopped), evaluated = Number(metrics.evaluated), falseStops = Number(metrics.falseStops);
303
+ return { attempts, metrics: { stopped, evaluated, falseStops, falseStopRate: evaluated ? falseStops / evaluated : null, evaluationRate: stopped ? evaluated / stopped : null },
304
+ completeness: { persistedGaps: Number(db.prepare('SELECT count(*) AS n FROM dsh_diagnostic_gaps').get().n), volatileLosses: losses.get(db) ?? 0,
305
+ missingReceiptLinks: attempts.reduce((n, a) => n + a.missingReceiptLinks, 0), missingContinuationLinks: attempts.reduce((n, a) => n + a.missingContinuationLinks, 0) }, truncated: rows.length === 100 };
306
+ }
307
+ /** References originate in captured native input / host-issued question and followup IDs, never model submissions. */
308
+ export function createIntakeDiagnosticSink(runtime) {
309
+ const attempts = new WeakMap();
310
+ return async (input, observation) => {
311
+ const sessionId = input.agent.session?.id;
312
+ if (!sessionId)
313
+ return;
314
+ await observeDiagnostic(runtime, sessionId, db => {
315
+ const context = observation.context, contextDigest = canonicalContentHash(context ?? null);
316
+ let owner = attempts.get(input);
317
+ if (!owner || owner.contextDigest !== contextDigest || !db.prepare('SELECT 1 FROM dsh_diagnostic_attempts WHERE decision_id=?').get(owner.id)) {
318
+ owner = { id: diagnosticId(), contextDigest };
319
+ const runId = context?.activeTask?.taskId ?? context?.activeGoal?.runId;
320
+ const binding = runId ? captureDiagnosticBinding(db, runId, sessionId) : undefined;
321
+ if (binding && context?.activeTask && (binding.revision !== context.activeTask.revision || binding.generation !== context.activeTask.generation))
322
+ throw new DiagnosticConflict('stale_binding');
323
+ if (binding && context?.activeGoal)
324
+ for (const [key, version] of [['workflowRevision', context.activeGoal.workflowRevision], ['goalRevision', context.activeGoal.goalRevision], ['scopeRevision', context.activeGoal.scopeRevision]])
325
+ if (version !== undefined && binding[key] !== version)
326
+ throw new DiagnosticConflict('stale_binding');
327
+ createDiagnosticAttempt(db, owner.id, { origin: 'intake', purpose: 'request-intent', requestRef: canonicalContentHash(dshTurnRequestId({ dshSessionId: sessionId, turn: input.turn })),
328
+ sessionId, turn: input.turn, inputDigest: canonicalContentHash(context?.task ?? requestIntentMessageRefs(input.messages, '')), contextDigest,
329
+ ...(binding ? { binding } : {}), policyRef: canonicalContentHash(observation.decision?.policyVersion ?? 'native-intake-v1'),
330
+ referenceDigests: [...(context?.messageRefs ?? requestIntentMessageRefs(input.messages, '')).map(r => canonicalContentHash(r.id)), ...(context?.proposals ?? []).map(r => canonicalContentHash([r.id, r.revision, r.digest]))] });
331
+ attempts.set(input, owner);
332
+ appendDiagnosticEvent(db, owner.id, diagnosticEventId(owner.id, 'reference'), { kind: 'reference', status: 'observed', reason: 'observed' });
333
+ }
334
+ const evaluationId = requestIntentDiagnosticId(observation.decision);
335
+ const eventKey = [observation.kind, observation.questionRef ?? null, observation.answerRef ?? null, observation.decision ?? null, evaluationId ?? null];
336
+ if (observation.kind === 'assessment_disabled') {
337
+ for (const kind of ['semantic_match', 'detector'])
338
+ appendDiagnosticEvent(db, owner.id, diagnosticEventId(owner.id, ['disabled', kind]), { kind, status: 'not_run', reason: 'assessment_disabled' });
339
+ }
340
+ else if (observation.kind === 'assessment') {
341
+ const a = observation.assessment;
342
+ if (!a)
343
+ throw new DiagnosticConflict('causal_conflict');
344
+ const key = ['assessment', a.semanticInputDigest, a.semanticOutputDigest ?? null, a.detector];
345
+ const reason = a.outcome === 'consistent' ? 'assessment_consistent' : a.outcome === 'clarify' ? 'assessment_clarify' : 'assessment_unavailable';
346
+ const semanticId = diagnosticEventId(owner.id, ['semantic', key]);
347
+ appendDiagnosticEvent(db, owner.id, semanticId, { kind: 'semantic_match', status: 'observed', reason,
348
+ semanticVerdict: a.semantic, assessmentInputDigest: a.semanticInputDigest, ...(a.semanticOutputDigest ? { assessmentOutputDigest: a.semanticOutputDigest } : {}),
349
+ ...(a.providerDecisionId && db.prepare('SELECT 1 FROM dsh_diagnostic_attempts WHERE decision_id=?').get(a.providerDecisionId) ? { evaluationDecisionId: a.providerDecisionId } : {}) });
350
+ const d = a.detector;
351
+ appendDiagnosticEvent(db, owner.id, diagnosticEventId(owner.id, ['detector', key]), { kind: 'detector', status: 'observed', reason, parentEventId: semanticId, elapsedMs: d.elapsedMs,
352
+ judge: d.state === 'available' ? { state: d.state, version: d.result.version, inputDigest: d.result.inputDigest, outputDigest: d.outputDigest, binaryHash: d.binaryHash, complete: d.result.complete, status: d.result.status }
353
+ : { state: d.state, version: 'kiokuko-fd-v1', unavailableReason: d.reason, ...(d.inputDigest ? { inputDigest: d.inputDigest } : {}), ...(d.binaryHash ? { binaryHash: d.binaryHash } : {}) } });
354
+ }
355
+ else if (observation.kind === 'interpretation' || observation.kind === 'native_unowned') {
356
+ const d = observation.decision;
357
+ if (d)
358
+ appendDiagnosticEvent(db, owner.id, diagnosticEventId(owner.id, ['extraction', eventKey]), { kind: 'extraction', status: 'observed', reason: d.source === 'unresolved' ? 'unresolved' : 'resolved',
359
+ relation: d.relation, action: d.action, changeScope: d.changeScope, source: d.source,
360
+ ...(evaluationId && db.prepare('SELECT 1 FROM dsh_diagnostic_attempts WHERE decision_id=?').get(evaluationId) ? { evaluationDecisionId: evaluationId } : {}) });
361
+ appendDiagnosticEvent(db, owner.id, diagnosticEventId(owner.id, ['route', eventKey]), { kind: 'route', status: 'observed', reason: observation.kind === 'native_unowned' ? 'native_unowned' : d?.source === 'unresolved' ? 'unresolved' : 'resolved' });
362
+ }
363
+ else if (observation.kind === 'question') {
364
+ if (!observation.questionRef)
365
+ throw new DiagnosticConflict('causal_conflict');
366
+ appendDiagnosticEvent(db, owner.id, diagnosticEventId(owner.id, ['question', observation.questionRef]), { kind: 'question', status: 'waiting', reason: observation.reason ?? 'clarification_required', referenceDigest: canonicalContentHash(observation.questionRef) });
367
+ }
368
+ else if (observation.kind === 'answer') {
369
+ const parent = db.prepare("SELECT event_id,decision_id FROM dsh_diagnostic_events WHERE kind='question' AND reference_digest=? AND decision_id IN (SELECT decision_id FROM dsh_diagnostic_attempts WHERE session_id=?) ORDER BY created_at DESC LIMIT 1")
370
+ .get(canonicalContentHash(observation.questionRef), sessionId);
371
+ if (!parent || !observation.answerRef)
372
+ throw new DiagnosticConflict('causal_conflict');
373
+ appendDiagnosticEvent(db, String(parent.decision_id), diagnosticEventId(String(parent.decision_id), ['answer', observation.answerRef]), { kind: 'answer', status: 'queued', reason: 'answer_queued', parentEventId: String(parent.event_id), referenceDigest: canonicalContentHash(observation.answerRef) });
374
+ }
375
+ else {
376
+ for (const message of requestIntentMessageRefs(input.messages, '')) {
377
+ const parent = db.prepare("SELECT e.event_id,e.decision_id,a.session_id FROM dsh_diagnostic_events e JOIN dsh_diagnostic_attempts a ON a.decision_id=e.decision_id WHERE e.kind='answer' AND e.reference_digest=? ORDER BY e.created_at DESC LIMIT 1").get(canonicalContentHash(message.id));
378
+ if (!parent || parent.session_id !== sessionId)
379
+ continue;
380
+ const document = db.prepare('SELECT document_json FROM dsh_diagnostic_attempts WHERE decision_id=?').get(String(parent.decision_id));
381
+ const previous = DiagnosticAttempt.parse(JSON.parse(String(document.document_json)));
382
+ const binding = previous.binding ? captureDiagnosticBinding(db, previous.binding.runId, sessionId) : undefined;
383
+ appendDiagnosticEvent(db, String(parent.decision_id), diagnosticEventId(String(parent.decision_id), ['resume', sessionId, input.turn]), { kind: 'resume', status: 'observed', reason: 'resume_observed', parentEventId: String(parent.event_id), targetSessionId: sessionId, nextDecisionId: owner.id, ...(binding ? { binding } : {}) });
384
+ }
385
+ }
386
+ });
387
+ };
388
+ }
389
+ //# sourceMappingURL=diagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../../src/dsh/decisions/diagnostics.ts"],"names":[],"mappings":"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"}
@@ -4,10 +4,11 @@ import type { DshNativeCommandDefinition } from '../commands.js';
4
4
  import type { DshCoreRuntime } from '../core-runtime.js';
5
5
  import { type DecisionConfiguration } from './config.js';
6
6
  import { DecisionService } from './service.js';
7
+ import { type DiagnosticRuntime } from './diagnostics.js';
7
8
  export declare function createDecisionService(ctx: {
8
9
  get(name: string, strict?: boolean): unknown;
9
10
  }, runtime: Pick<DshCoreRuntime, 'withDatabase'>, configuration?: DecisionConfiguration, memoryReuse?: MemoryReuseConfiguration, semanticCompaction?: SemanticCompactionConfiguration, repositoryRoot?: string): DecisionService;
10
11
  export declare function mountDecisionCommand(commands: {
11
12
  register(definition: DshNativeCommandDefinition): () => void;
12
- }, service: DecisionService, modelAutoStatus?: (invocation: Parameters<DshNativeCommandDefinition['handler']>[0]) => Promise<unknown>): () => void;
13
+ }, service: DecisionService, modelAutoStatus?: (invocation: Parameters<DshNativeCommandDefinition['handler']>[0]) => Promise<unknown>, diagnosticRuntime?: DiagnosticRuntime): () => void;
13
14
  //# sourceMappingURL=host.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../../src/dsh/decisions/host.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,+BAA+B,EAAE,MAAM,qCAAqC,CAAA;AACpH,OAAO,EAAqB,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAIxF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAA;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAsD,KAAK,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAK5G,OAAO,EAAE,eAAe,EAAyB,MAAM,cAAc,CAAA;AAGrE,wBAAgB,qBAAqB,CAAC,GAAG,EAAE;IAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAA;CAAE,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,EAAE,aAAa,GAAE,qBAAsD,EAAE,WAAW,GAAE,wBAAsD,EAAE,kBAAkB,GAAE,+BAAoE,EAAE,cAAc,SAAgB,GAAG,eAAe,CAkCja;AACD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE;IAAE,QAAQ,CAAC,UAAU,EAAE,0BAA0B,GAAG,MAAM,IAAI,CAAA;CAAE,EAAE,OAAO,EAAE,eAAe,EACvI,eAAe,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,MAAM,IAAI,CA6BtH"}
1
+ {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../../src/dsh/decisions/host.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,+BAA+B,EAAE,MAAM,qCAAqC,CAAA;AACpH,OAAO,EAAqB,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAIxF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAA;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAsD,KAAK,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAK5G,OAAO,EAAE,eAAe,EAAyB,MAAM,cAAc,CAAA;AAErE,OAAO,EAAoD,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAE3G,wBAAgB,qBAAqB,CAAC,GAAG,EAAE;IAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAA;CAAE,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,EAAE,aAAa,GAAE,qBAAsD,EAAE,WAAW,GAAE,wBAAsD,EAAE,kBAAkB,GAAE,+BAAoE,EAAE,cAAc,SAAgB,GAAG,eAAe,CAkCja;AACD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE;IAAE,QAAQ,CAAC,UAAU,EAAE,0BAA0B,GAAG,MAAM,IAAI,CAAA;CAAE,EAAE,OAAO,EAAE,eAAe,EACvI,eAAe,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,EAAE,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,MAAM,IAAI,CAsC7J"}
@@ -9,11 +9,12 @@ import { LayaCoreMLDecisionProvider, discoverLayaConfiguration } from './laya-co
9
9
  import { LayaV1DecisionProvider } from './laya-v1.js';
10
10
  import { DecisionService, databaseDecisionStore } from './service.js';
11
11
  import { databaseDecisionSelection } from './selection-store.js';
12
+ import { readDecisionDiagnostics, diagnosticRuntimeLosses } from './diagnostics.js';
12
13
  export function createDecisionService(ctx, runtime, configuration = TypedDecisionsConfig.parse({}), memoryReuse = MemoryReuseConfig.parse({}), semanticCompaction = SemanticCompactionConfig.parse({}), repositoryRoot = process.cwd()) {
13
14
  const credentials = typeSafeCredentials(ctx);
14
- return new DecisionService(configuration, config => {
15
+ return new DecisionService(configuration, (config, observer) => {
15
16
  switch (config.provider) {
16
- case 'laya-coreml': return config['laya-coreml']?.protocol === 'v1' ? new LayaV1DecisionProvider(config['laya-coreml']) : new LayaCoreMLDecisionProvider(config['laya-coreml']);
17
+ case 'laya-coreml': return config['laya-coreml']?.protocol === 'v1' ? new LayaV1DecisionProvider(config['laya-coreml'], undefined, observer) : new LayaCoreMLDecisionProvider(config['laya-coreml'], undefined, observer);
17
18
  case 'typesafe': return new TypeSafeDecisionProvider(config.typesafe, async () => {
18
19
  try {
19
20
  return await credentials.resolve();
@@ -21,7 +22,7 @@ export function createDecisionService(ctx, runtime, configuration = TypedDecisio
21
22
  catch {
22
23
  throw new DecisionError('AUTH');
23
24
  }
24
- });
25
+ }, undefined, observer);
25
26
  case 'nimble': return new NimbleDecisionProvider(config.nimble, async () => {
26
27
  if (!config.nimble.credentialRef)
27
28
  return undefined;
@@ -35,7 +36,7 @@ export function createDecisionService(ctx, runtime, configuration = TypedDecisio
35
36
  catch {
36
37
  throw new DecisionError('AUTH');
37
38
  }
38
- });
39
+ }, undefined, observer);
39
40
  }
40
41
  }, databaseDecisionStore(runtime), { memoryReuse, semanticCompaction, repositoryRoot,
41
42
  selectionStore: databaseDecisionSelection(runtime, repositoryRoot, resolveDecisionConfiguration(configuration, repositoryRoot)),
@@ -64,7 +65,7 @@ export function createDecisionService(ctx, runtime, configuration = TypedDecisio
64
65
  }
65
66
  } });
66
67
  }
67
- export function mountDecisionCommand(commands, service, modelAutoStatus) {
68
+ export function mountDecisionCommand(commands, service, modelAutoStatus, diagnosticRuntime) {
68
69
  const usage = '/kioku-decisions use jev | use laya | use nimble | use default | status | probe | install-laya';
69
70
  const providers = { jev: 'typesafe', typesafe: 'typesafe', laya: 'laya-coreml', 'laya-coreml': 'laya-coreml', nimble: 'nimble', default: 'default' };
70
71
  return commands.register({ name: 'kioku-decisions', description: 'Switch Jev / Laya / Nimble or inspect status. install-laya connects to an existing worker or shows setup instructions.', input: { hint: 'use jev | use laya | use nimble | use default | status | probe | install-laya' },
@@ -72,6 +73,18 @@ export function mountDecisionCommand(commands, service, modelAutoStatus) {
72
73
  const action = invocation.rawInput.trim(), args = action.split(/\s+/);
73
74
  try {
74
75
  invocation.signal.throwIfAborted();
76
+ if (args[0] === 'diagnostics') {
77
+ const sessionId = invocation.agent?.session?.id ?? invocation.agent?.sessionId;
78
+ if (!diagnosticRuntime || !sessionId || args.length > 2)
79
+ return { kind: 'error', text: 'DIAGNOSTIC_UNAVAILABLE: select a native session; /kioku-decisions diagnostics [decision_id]' };
80
+ try {
81
+ const view = await diagnosticRuntime.withDatabase(db => readDecisionDiagnostics(db, sessionId, args[1]));
82
+ return { kind: 'success', text: JSON.stringify({ ...view, completeness: { ...view.completeness, runtimeLosses: diagnosticRuntimeLosses(diagnosticRuntime) } }, null, 2) };
83
+ }
84
+ catch {
85
+ return { kind: 'error', text: 'DIAGNOSTIC_UNAVAILABLE: diagnostic storage could not be read.' };
86
+ }
87
+ }
75
88
  if (action === 'install-laya' || args[0] === 'use' && args.length === 2 && Object.hasOwn(providers, args[1])) {
76
89
  await service.selectProvider(action === 'install-laya' ? 'laya-coreml' : providers[args[1]], invocation.signal);
77
90
  const status = service.status();
@@ -1 +1 @@
1
- {"version":3,"file":"host.js","sourceRoot":"","sources":["../../../src/dsh/decisions/host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host.js","sourceRoot":"","sources":["../../../src/dsh/decisions/host.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { RequestIntentContext, RequestIntentDecision } from './request-intent.js';
2
+ import type { DecisionBatch } from './contracts.js';
3
+ import type { DecisionService } from './service.js';
4
+ import { runMicroJudge, type FiniteDomainProblem, type MicroJudgeResult } from './micro-judge.js';
5
+ export declare const INTENT_ASSESSMENT_POLICY = "source-candidate-independent-v1";
6
+ export type SemanticVerdict = 'supported' | 'contradicted' | 'insufficient' | 'unavailable';
7
+ export interface IntentAssessment {
8
+ semantic: SemanticVerdict;
9
+ semanticInputDigest: string;
10
+ semanticOutputDigest?: string;
11
+ providerDecisionId?: string;
12
+ detector: MicroJudgeResult;
13
+ outcome: 'consistent' | 'clarify' | 'unavailable';
14
+ }
15
+ /** Separate inference compares original source against a candidate; extraction scores/results are deliberately excluded. */
16
+ export declare function buildIntentAssessmentBatch(context: RequestIntentContext, candidate: RequestIntentDecision): DecisionBatch;
17
+ /** Relations over host-owned source revisions and reference sets. No model-supplied authorization bit. */
18
+ export declare function compileIntentRelations(context: RequestIntentContext, candidate: RequestIntentDecision, semantic: SemanticVerdict): FiniteDomainProblem;
19
+ export declare function assessRequestIntent(service: DecisionService | undefined, requestId: string, context: RequestIntentContext, candidate: RequestIntentDecision, signal: AbortSignal, options?: Parameters<typeof runMicroJudge>[3]): Promise<IntentAssessment | undefined>;
20
+ //# sourceMappingURL=intent-assessment.d.ts.map