kiokuko-dsh 0.2.21 → 0.2.23

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 (151) hide show
  1. package/README.ja.md +1 -1
  2. package/README.ko.md +1 -1
  3. package/README.md +1 -1
  4. package/README.zh-CN.md +1 -1
  5. package/dist/deep-thinker/current-model.d.ts.map +1 -1
  6. package/dist/deep-thinker/current-model.js +4 -0
  7. package/dist/deep-thinker/current-model.js.map +1 -1
  8. package/dist/dsh/answer-review/contracts.d.ts +1 -0
  9. package/dist/dsh/answer-review/contracts.d.ts.map +1 -1
  10. package/dist/dsh/answer-review/coordinator.js +3 -3
  11. package/dist/dsh/answer-review/coordinator.js.map +1 -1
  12. package/dist/dsh/clarification-context.d.ts +24 -0
  13. package/dist/dsh/clarification-context.d.ts.map +1 -0
  14. package/dist/dsh/clarification-context.js +31 -0
  15. package/dist/dsh/clarification-context.js.map +1 -0
  16. package/dist/dsh/coding-question.d.ts +26 -0
  17. package/dist/dsh/coding-question.d.ts.map +1 -0
  18. package/dist/dsh/coding-question.js +48 -0
  19. package/dist/dsh/coding-question.js.map +1 -0
  20. package/dist/dsh/coding-workflow/contracts.d.ts +2 -2
  21. package/dist/dsh/coding-workflow/host.d.ts +2 -4
  22. package/dist/dsh/coding-workflow/host.d.ts.map +1 -1
  23. package/dist/dsh/coding-workflow/host.js +13 -29
  24. package/dist/dsh/coding-workflow/host.js.map +1 -1
  25. package/dist/dsh/coding-workflow/intent.d.ts.map +1 -1
  26. package/dist/dsh/coding-workflow/intent.js +2 -1
  27. package/dist/dsh/coding-workflow/intent.js.map +1 -1
  28. package/dist/dsh/coding-workflow/service.d.ts +6 -6
  29. package/dist/dsh/coding-workflow/service.d.ts.map +1 -1
  30. package/dist/dsh/coding-workflow/service.js +5 -3
  31. package/dist/dsh/coding-workflow/service.js.map +1 -1
  32. package/dist/dsh/guardrail/contracts.d.ts +33 -1
  33. package/dist/dsh/guardrail/contracts.d.ts.map +1 -1
  34. package/dist/dsh/guardrail/contracts.js +1 -1
  35. package/dist/dsh/guardrail/contracts.js.map +1 -1
  36. package/dist/dsh/guardrail/engine.d.ts +2 -0
  37. package/dist/dsh/guardrail/engine.d.ts.map +1 -1
  38. package/dist/dsh/guardrail/engine.js +18 -7
  39. package/dist/dsh/guardrail/engine.js.map +1 -1
  40. package/dist/dsh/guardrail/evidence.d.ts.map +1 -1
  41. package/dist/dsh/guardrail/evidence.js +29 -1
  42. package/dist/dsh/guardrail/evidence.js.map +1 -1
  43. package/dist/dsh/guardrail/service.d.ts +2 -0
  44. package/dist/dsh/guardrail/service.d.ts.map +1 -1
  45. package/dist/dsh/guardrail/service.js +44 -2
  46. package/dist/dsh/guardrail/service.js.map +1 -1
  47. package/dist/dsh/lisp/ci.d.ts +7 -0
  48. package/dist/dsh/lisp/ci.d.ts.map +1 -1
  49. package/dist/dsh/lisp/ci.js +27 -10
  50. package/dist/dsh/lisp/ci.js.map +1 -1
  51. package/dist/dsh/lisp/coding-choice.d.ts +2 -0
  52. package/dist/dsh/lisp/coding-choice.d.ts.map +1 -1
  53. package/dist/dsh/lisp/coding-choice.js +5 -1
  54. package/dist/dsh/lisp/coding-choice.js.map +1 -1
  55. package/dist/dsh/lisp/coding-preparation.d.ts +4 -5
  56. package/dist/dsh/lisp/coding-preparation.d.ts.map +1 -1
  57. package/dist/dsh/lisp/coding-preparation.js +57 -18
  58. package/dist/dsh/lisp/coding-preparation.js.map +1 -1
  59. package/dist/dsh/lisp/compiled-cache.d.ts.map +1 -1
  60. package/dist/dsh/lisp/compiled-cache.js +4 -3
  61. package/dist/dsh/lisp/compiled-cache.js.map +1 -1
  62. package/dist/dsh/lisp/host-tool-dispatch.d.ts +19 -0
  63. package/dist/dsh/lisp/host-tool-dispatch.d.ts.map +1 -0
  64. package/dist/dsh/lisp/host-tool-dispatch.js +23 -0
  65. package/dist/dsh/lisp/host-tool-dispatch.js.map +1 -0
  66. package/dist/dsh/lisp/manager.d.ts +3 -0
  67. package/dist/dsh/lisp/manager.d.ts.map +1 -1
  68. package/dist/dsh/lisp/manager.js +114 -13
  69. package/dist/dsh/lisp/manager.js.map +1 -1
  70. package/dist/dsh/lisp/sandbox.d.ts.map +1 -1
  71. package/dist/dsh/lisp/sandbox.js +4 -2
  72. package/dist/dsh/lisp/sandbox.js.map +1 -1
  73. package/dist/dsh/lisp/surface.d.ts.map +1 -1
  74. package/dist/dsh/lisp/surface.js +62 -25
  75. package/dist/dsh/lisp/surface.js.map +1 -1
  76. package/dist/dsh/lisp/worker.d.ts +10 -2
  77. package/dist/dsh/lisp/worker.d.ts.map +1 -1
  78. package/dist/dsh/lisp/worker.js +21 -11
  79. package/dist/dsh/lisp/worker.js.map +1 -1
  80. package/dist/dsh/managed-operation-journal.d.ts +115 -0
  81. package/dist/dsh/managed-operation-journal.d.ts.map +1 -0
  82. package/dist/dsh/managed-operation-journal.js +336 -0
  83. package/dist/dsh/managed-operation-journal.js.map +1 -0
  84. package/dist/dsh/managed-operation-runner.d.ts +33 -0
  85. package/dist/dsh/managed-operation-runner.d.ts.map +1 -0
  86. package/dist/dsh/managed-operation-runner.js +104 -0
  87. package/dist/dsh/managed-operation-runner.js.map +1 -0
  88. package/dist/dsh/model-routing.d.ts +8 -4
  89. package/dist/dsh/model-routing.d.ts.map +1 -1
  90. package/dist/dsh/model-routing.js +81 -22
  91. package/dist/dsh/model-routing.js.map +1 -1
  92. package/dist/dsh/models/surface.d.ts.map +1 -1
  93. package/dist/dsh/models/surface.js +7 -1
  94. package/dist/dsh/models/surface.js.map +1 -1
  95. package/dist/dsh/models/vendor/opencode-adapter.d.ts.map +1 -1
  96. package/dist/dsh/models/vendor/opencode-adapter.js +2 -0
  97. package/dist/dsh/models/vendor/opencode-adapter.js.map +1 -1
  98. package/dist/dsh/on-demand-intake.d.ts +12 -0
  99. package/dist/dsh/on-demand-intake.d.ts.map +1 -1
  100. package/dist/dsh/on-demand-intake.js +61 -9
  101. package/dist/dsh/on-demand-intake.js.map +1 -1
  102. package/dist/dsh/owned-execution.d.ts +2 -0
  103. package/dist/dsh/owned-execution.d.ts.map +1 -1
  104. package/dist/dsh/owned-execution.js +242 -110
  105. package/dist/dsh/owned-execution.js.map +1 -1
  106. package/dist/dsh/request-interpretation-guidance.d.ts +26 -0
  107. package/dist/dsh/request-interpretation-guidance.d.ts.map +1 -0
  108. package/dist/dsh/request-interpretation-guidance.js +35 -0
  109. package/dist/dsh/request-interpretation-guidance.js.map +1 -0
  110. package/dist/dsh/semantic-compaction/coordinator.d.ts.map +1 -1
  111. package/dist/dsh/semantic-compaction/coordinator.js +15 -1
  112. package/dist/dsh/semantic-compaction/coordinator.js.map +1 -1
  113. package/dist/dsh/task-completion-guidance.d.ts +25 -0
  114. package/dist/dsh/task-completion-guidance.d.ts.map +1 -0
  115. package/dist/dsh/task-completion-guidance.js +36 -0
  116. package/dist/dsh/task-completion-guidance.js.map +1 -0
  117. package/dist/dsh/task-completion-host.d.ts.map +1 -1
  118. package/dist/dsh/task-completion-host.js +17 -7
  119. package/dist/dsh/task-completion-host.js.map +1 -1
  120. package/dist/dsh/task-completion.d.ts +26 -2
  121. package/dist/dsh/task-completion.d.ts.map +1 -1
  122. package/dist/dsh/task-completion.js +27 -13
  123. package/dist/dsh/task-completion.js.map +1 -1
  124. package/dist/enno-oduno/coding-workflow.d.ts +1 -1
  125. package/dist/locale/en.json +1 -1
  126. package/dist/locale/ja.json +1 -1
  127. package/dist/locale/ko.json +1 -1
  128. package/dist/locale/zh-CN.json +1 -1
  129. package/docs/current-upstream-compatibility-report.md +85 -0
  130. package/docs/dsh-plugin.md +6 -2
  131. package/docs/getting-started.ja.md +1 -1
  132. package/docs/getting-started.md +1 -1
  133. package/docs/guardrail.md +11 -4
  134. package/docs/lisp-prototype-planning.md +1 -1
  135. package/docs/lisp.md +1 -1
  136. package/docs/managed-operation-journal.md +21 -0
  137. package/docs/memory-lifecycle-verification.md +5 -4
  138. package/docs/tool-exposure.md +2 -0
  139. package/guardrail/aarch64-apple-darwin/kiokuko-guardrail +0 -0
  140. package/guardrail/aarch64-apple-darwin/manifest.json +14 -18
  141. package/guardrail/aarch64-unknown-linux-musl/kiokuko-guardrail +0 -0
  142. package/guardrail/aarch64-unknown-linux-musl/manifest.json +14 -16
  143. package/guardrail/build-records.json +198 -0
  144. package/guardrail/manifest.json +25 -137
  145. package/guardrail/x86_64-unknown-linux-musl/kiokuko-guardrail +0 -0
  146. package/guardrail/x86_64-unknown-linux-musl/manifest.json +14 -15
  147. package/migrations/047_managed_operation_journal.sql +21 -0
  148. package/package.json +7 -3
  149. package/scripts/guardrail-artifacts.d.mts +3 -0
  150. package/scripts/guardrail-artifacts.mjs +34 -2
  151. package/scripts/repair-continuation-source.mjs +11 -25
@@ -1,3 +1,4 @@
1
+ import { managedAdmissionDenied } from '../managed-operation-runner.js';
1
2
  import { spawn } from 'node:child_process';
2
3
  import { randomUUID } from 'node:crypto';
3
4
  import { join } from 'node:path';
@@ -14,6 +15,7 @@ export class LispWorker {
14
15
  hostCall;
15
16
  rpcAllowed;
16
17
  beforeJob;
18
+ auditJob;
17
19
  generation = randomUUID();
18
20
  jobs = new Map();
19
21
  #child;
@@ -31,12 +33,13 @@ export class LispWorker {
31
33
  #jobLaunches = 0;
32
34
  #stdout = [];
33
35
  #stderr = [];
34
- constructor(layout, config, hostCall, rpcAllowed = () => true, beforeJob) {
36
+ constructor(layout, config, hostCall, rpcAllowed = () => true, beforeJob, auditJob) {
35
37
  this.layout = layout;
36
38
  this.config = config;
37
39
  this.hostCall = hostCall;
38
40
  this.rpcAllowed = rpcAllowed;
39
41
  this.beforeJob = beforeJob;
42
+ this.auditJob = auditJob;
40
43
  }
41
44
  get busy() { return this.#pending !== undefined; }
42
45
  get healthy() { return !this.#closed && !this.#fatal && this.#child !== undefined; }
@@ -200,8 +203,8 @@ export class LispWorker {
200
203
  this.#jobLaunches++;
201
204
  let job;
202
205
  try {
203
- job = await this.launchJob(input);
204
- this.jobs.set(id, job);
206
+ const launch = async () => { const started = await this.launchJob(input); this.jobs.set(id, started); return started; };
207
+ job = await (this.auditJob ? this.auditJob(input, launch) : launch());
205
208
  }
206
209
  finally {
207
210
  this.#jobLaunches--;
@@ -243,14 +246,21 @@ export class LispWorker {
243
246
  }
244
247
  async launchJob(input) {
245
248
  const pending = this.#pending;
246
- if (!this.beforeJob)
247
- throw new LispError('TASK_REQUIRED', 'プロセス実行には現在の有効なタスクが必要です。');
248
- await this.beforeJob();
249
- const launch = await sandboxLaunch(this.layout, input.program, input.argv, this.generation, false, input.directory);
250
- // Resolving the executable and preparing its sandbox can outlive the task.
251
- await this.beforeJob();
252
- if (this.#closed || this.#fatal || !pending || this.#pending !== pending || pending.abort.signal.aborted)
253
- throw new Error('Worker stopped before job launch');
249
+ const launch = await (async () => {
250
+ try {
251
+ if (!this.beforeJob)
252
+ throw new LispError('TASK_REQUIRED', 'プロセス実行には現在の有効なタスクが必要です。');
253
+ await this.beforeJob();
254
+ const prepared = await sandboxLaunch(this.layout, input.program, input.argv, this.generation, false, input.directory);
255
+ await this.beforeJob();
256
+ if (this.#closed || this.#fatal || !pending || this.#pending !== pending || pending.abort.signal.aborted)
257
+ throw new Error('Worker stopped before job launch');
258
+ return prepared;
259
+ }
260
+ catch (error) {
261
+ return managedAdmissionDenied(error);
262
+ }
263
+ })();
254
264
  const child = spawn(process.execPath, [join(this.layout.library, 'supervisor.mjs'), JSON.stringify({ ...launch, env: undefined, protocol: false })], { cwd: launch.cwd, env: launch.env, stdio: ['pipe', 'pipe', 'pipe'] });
255
265
  const job = { child, done: Promise.resolve() };
256
266
  let bytes = 0, stdout = '', stderr = '';
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/dsh/lisp/worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/dsh/lisp/worker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,115 @@
1
+ import type { SqliteDatabase } from '../db/adapter.js';
2
+ /** Audit of plugin-managed boundaries, not a sandbox or an OS-wide tracer. */
3
+ export declare const MANAGED_JOURNAL_COVERAGE: readonly ["lisp-process-bridge", "owned-process", "owned-file"];
4
+ export type JournalState = 'prepared' | 'dispatching' | 'running' | 'completed' | 'denied' | 'cancelled-before-dispatch' | 'cancelled-confirmed' | 'unknown';
5
+ export type JournalDelivery = 'pending' | 'delivered' | 'not-delivered' | 'unknown';
6
+ export type JournalCause = 'permission-denied' | 'cancelled' | 'timeout' | 'dispatch-error' | 'persistence-error' | 'recovery' | 'host-error';
7
+ export interface JournalBinding {
8
+ taskId: string;
9
+ unitId?: string;
10
+ workerGeneration?: string | number;
11
+ protocolBindGeneration?: number;
12
+ leaseAuthorityGeneration?: number;
13
+ leaseRevision?: number;
14
+ }
15
+ export interface JournalScope {
16
+ scopeId: string;
17
+ sessionId: string;
18
+ requestId?: string;
19
+ parentId: string;
20
+ runtimeIdentity: string;
21
+ binding?: JournalBinding;
22
+ createdAt: number;
23
+ coverage: readonly string[];
24
+ }
25
+ export interface JournalTransition {
26
+ state: JournalState;
27
+ outcome?: 'succeeded' | 'failed';
28
+ receiptRef?: string;
29
+ cause?: JournalCause;
30
+ }
31
+ export interface ManagedOperation extends JournalTransition {
32
+ operationId: string;
33
+ scopeId: string;
34
+ parentId: string;
35
+ sequence: number;
36
+ route: 'native' | 'owned';
37
+ kind: 'process' | 'file';
38
+ binding?: JournalBinding;
39
+ requestDigest: string;
40
+ normalizationVersion: 1;
41
+ runtimeIdentity: string;
42
+ originalRef?: string;
43
+ delivery: JournalDelivery;
44
+ createdAt: number;
45
+ updatedAt: number;
46
+ }
47
+ export interface ManagedJournalSnapshot {
48
+ snapshotId: string;
49
+ scopeId: string;
50
+ scope: JournalScope;
51
+ sealed: boolean;
52
+ collectorComplete: boolean;
53
+ complete: boolean;
54
+ unresolved: number;
55
+ operations: readonly ManagedOperation[];
56
+ createdAt: number;
57
+ }
58
+ export interface JournalLimits {
59
+ maxOperations: number;
60
+ maxOperationsPerScope: number;
61
+ maxScopes: number;
62
+ maxSnapshots: number;
63
+ maxRequestBytes: number;
64
+ retentionMs: number;
65
+ }
66
+ /** Typed canonical encoding distinguishes missing, undefined, null and empty values.
67
+ * This keyed private digest is not a claim of anonymous/public-safe secret hashing. */
68
+ export declare function canonicalJournalRequest(value: unknown): string;
69
+ export declare class ManagedOperationJournal {
70
+ private readonly db;
71
+ readonly limits: JournalLimits;
72
+ constructor(db: SqliteDatabase, limits?: Partial<JournalLimits>);
73
+ private transaction;
74
+ private count;
75
+ private scopeRow;
76
+ readScope(id: string): JournalScope;
77
+ createScope(input: Omit<JournalScope, 'scopeId' | 'createdAt' | 'coverage'>): JournalScope;
78
+ private digest;
79
+ prepare(scopeId: string, input: {
80
+ route: 'native' | 'owned';
81
+ kind: 'process' | 'file';
82
+ request: unknown;
83
+ originalRef?: string;
84
+ }): ManagedOperation;
85
+ /** Enrich authority at the host reservation boundary, before any observed result.
86
+ * Evaluation scopes can contain operations from different units; never rewrite scope identity. */
87
+ bindOperation(id: string, input: {
88
+ binding: JournalBinding;
89
+ runtimeIdentity: string;
90
+ bindScope?: boolean;
91
+ }): ManagedOperation;
92
+ attachOriginalRef(id: string, originalRef: string): ManagedOperation;
93
+ lookupOriginalOperation(originalRef: string): ManagedOperation | undefined;
94
+ snapshotForOriginal(originalRef: string): ManagedJournalSnapshot;
95
+ readOperation(id: string): ManagedOperation;
96
+ private append;
97
+ private save;
98
+ /** Only the successful claimant may dispatch; replay is observation, never execution. */
99
+ claim(id: string, request?: unknown): boolean;
100
+ transition(id: string, next: JournalTransition): ManagedOperation;
101
+ /** Host must first verify original receipt/process identity. No dispatch occurs here. */
102
+ reconcile(id: string, next: JournalTransition & {
103
+ receiptRef: string;
104
+ }): ManagedOperation;
105
+ setDelivery(id: string, delivery: JournalDelivery): ManagedOperation;
106
+ markIncomplete(scopeId: string): void;
107
+ seal(scopeId: string): void;
108
+ recover(scopeId: string): void;
109
+ snapshot(scopeId: string): ManagedJournalSnapshot;
110
+ readSnapshot(id: string): ManagedJournalSnapshot;
111
+ retainSnapshot(id: string): void;
112
+ /** Never expire unresolved operations or scopes referenced by retained evidence. */
113
+ prune(now?: number): number;
114
+ }
115
+ //# sourceMappingURL=managed-operation-journal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"managed-operation-journal.d.ts","sourceRoot":"","sources":["../../src/dsh/managed-operation-journal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,336 @@
1
+ import { createHmac, randomBytes, randomUUID } from 'node:crypto';
2
+ import { withImmediateTransaction } from '../db/transaction.js';
3
+ /** Audit of plugin-managed boundaries, not a sandbox or an OS-wide tracer. */
4
+ export const MANAGED_JOURNAL_COVERAGE = Object.freeze(['lisp-process-bridge', 'owned-process', 'owned-file']);
5
+ const defaults = { maxOperations: 100000, maxOperationsPerScope: 4096, maxScopes: 10000, maxSnapshots: 20000, maxRequestBytes: 1048576, retentionMs: 30 * 86400000 };
6
+ const terminal = new Set(['completed', 'denied', 'cancelled-before-dispatch', 'cancelled-confirmed']);
7
+ const states = new Set(['prepared', 'dispatching', 'running', 'completed', 'denied', 'cancelled-before-dispatch', 'cancelled-confirmed', 'unknown']);
8
+ const causes = new Set(['permission-denied', 'cancelled', 'timeout', 'dispatch-error', 'persistence-error', 'recovery', 'host-error']);
9
+ function fail() { throw new Error('Managed operation journal contract violation'); }
10
+ function freeze(value) { if (value && typeof value === 'object') {
11
+ Object.values(value).forEach(freeze);
12
+ Object.freeze(value);
13
+ } ; return value; }
14
+ function exactKeys(value, allowed) { if (Object.keys(value).some(key => !allowed.includes(key)))
15
+ fail(); }
16
+ function boundedText(value) { if (typeof value !== 'string' || value.length < 1 || value.length > 512)
17
+ fail(); }
18
+ /** Typed canonical encoding distinguishes missing, undefined, null and empty values.
19
+ * This keyed private digest is not a claim of anonymous/public-safe secret hashing. */
20
+ export function canonicalJournalRequest(value) {
21
+ const seen = new Set();
22
+ function encode(v, depth) {
23
+ if (depth > 64)
24
+ fail();
25
+ if (v === undefined)
26
+ return ['undefined'];
27
+ if (v === null)
28
+ return ['null'];
29
+ if (typeof v === 'string' || typeof v === 'boolean')
30
+ return [typeof v, v];
31
+ if (typeof v === 'number' && Number.isFinite(v))
32
+ return ['number', Object.is(v, -0) ? '-0' : String(v)];
33
+ if (typeof v !== 'object' || seen.has(v))
34
+ fail();
35
+ seen.add(v);
36
+ let result;
37
+ if (Array.isArray(v))
38
+ result = ['array', Array.from({ length: v.length }, (_, i) => i in v ? encode(v[i], depth + 1) : ['missing'])];
39
+ else {
40
+ if (Object.getPrototypeOf(v) !== Object.prototype && Object.getPrototypeOf(v) !== null)
41
+ fail();
42
+ result = ['object', Object.keys(v).sort().map(key => [key, encode(v[key], depth + 1)])];
43
+ }
44
+ seen.delete(v);
45
+ return result;
46
+ }
47
+ return JSON.stringify(['managed-request-v1', encode(value, 0)]);
48
+ }
49
+ export class ManagedOperationJournal {
50
+ db;
51
+ limits;
52
+ constructor(db, limits = {}) {
53
+ this.db = db;
54
+ this.limits = { ...defaults, ...limits };
55
+ for (const value of Object.values(this.limits))
56
+ if (!Number.isSafeInteger(value) || value < 1)
57
+ fail();
58
+ }
59
+ transaction(fn) { return withImmediateTransaction(this.db, fn); }
60
+ count(table) { return this.db.prepare(`SELECT COUNT(*) AS n FROM ${table}`).get().n; }
61
+ scopeRow(id) {
62
+ const row = this.db.prepare('SELECT scope_json,sealed,collector_complete FROM dsh_managed_scopes WHERE scope_id=?').get(id);
63
+ if (!row)
64
+ fail();
65
+ return row;
66
+ }
67
+ readScope(id) { return freeze(JSON.parse(this.scopeRow(id).scope_json)); }
68
+ createScope(input) {
69
+ boundedText(input.sessionId);
70
+ boundedText(input.parentId);
71
+ boundedText(input.runtimeIdentity);
72
+ if (input.requestId !== undefined)
73
+ boundedText(input.requestId);
74
+ if (input.binding) {
75
+ exactKeys(input.binding, ['taskId', 'unitId', 'workerGeneration', 'protocolBindGeneration', 'leaseAuthorityGeneration', 'leaseRevision']);
76
+ boundedText(input.binding.taskId);
77
+ if (input.binding.unitId !== undefined)
78
+ boundedText(input.binding.unitId);
79
+ for (const key of ['protocolBindGeneration', 'leaseAuthorityGeneration', 'leaseRevision']) {
80
+ const value = input.binding[key];
81
+ if (value !== undefined && (!Number.isSafeInteger(value) || value < 0))
82
+ fail();
83
+ }
84
+ const worker = input.binding.workerGeneration;
85
+ if (worker !== undefined && typeof worker !== 'string' && (!Number.isSafeInteger(worker) || worker < 0))
86
+ fail();
87
+ }
88
+ return this.transaction(() => {
89
+ if (this.count('dsh_managed_scopes') >= this.limits.maxScopes)
90
+ throw new Error('Managed journal scope capacity exceeded');
91
+ const scope = { sessionId: input.sessionId, parentId: input.parentId, runtimeIdentity: input.runtimeIdentity,
92
+ ...(input.requestId !== undefined ? { requestId: input.requestId } : {}), ...(input.binding ? { binding: JSON.parse(JSON.stringify(input.binding)) } : {}),
93
+ scopeId: randomUUID(), createdAt: Date.now(), coverage: MANAGED_JOURNAL_COVERAGE };
94
+ this.db.prepare('INSERT INTO dsh_managed_scopes(scope_id,scope_json,created_at) VALUES(?,?,?)').run(scope.scopeId, JSON.stringify(scope), scope.createdAt);
95
+ return freeze(scope);
96
+ });
97
+ }
98
+ digest(request) {
99
+ const data = canonicalJournalRequest(request);
100
+ if (Buffer.byteLength(data) > this.limits.maxRequestBytes)
101
+ throw new Error('Managed journal request capacity exceeded');
102
+ let key = this.db.prepare('SELECT secret FROM dsh_managed_journal_keys WHERE id=1').get()?.secret;
103
+ if (!key) {
104
+ key = randomBytes(32).toString('hex');
105
+ this.db.prepare('INSERT INTO dsh_managed_journal_keys VALUES(1,?)').run(key);
106
+ }
107
+ return createHmac('sha256', key).update(data).digest('hex');
108
+ }
109
+ prepare(scopeId, input) {
110
+ if (!['native', 'owned'].includes(input.route) || !['process', 'file'].includes(input.kind))
111
+ fail();
112
+ if (input.originalRef !== undefined)
113
+ boundedText(input.originalRef);
114
+ try {
115
+ return this.transaction(() => {
116
+ const row = this.scopeRow(scopeId);
117
+ if (row.sealed || !row.collector_complete)
118
+ throw new Error('Managed scope is sealed or incomplete');
119
+ const scope = JSON.parse(row.scope_json);
120
+ const n = this.db.prepare('SELECT COUNT(*) AS n FROM dsh_managed_operations WHERE scope_id=?').get(scopeId).n;
121
+ if (n >= this.limits.maxOperationsPerScope || this.count('dsh_managed_operations') >= this.limits.maxOperations)
122
+ throw new Error('Managed journal operation capacity exceeded');
123
+ const now = Date.now(), op = { operationId: randomUUID(), scopeId, parentId: scope.parentId, sequence: n + 1,
124
+ route: input.route, kind: input.kind, ...(scope.binding ? { binding: scope.binding } : {}), requestDigest: this.digest(input.request), normalizationVersion: 1,
125
+ runtimeIdentity: scope.runtimeIdentity, ...(input.originalRef ? { originalRef: input.originalRef } : {}), state: 'prepared', delivery: 'pending', createdAt: now, updatedAt: now };
126
+ this.db.prepare('INSERT INTO dsh_managed_operations VALUES(?,?,?,?,?)').run(op.operationId, scopeId, op.sequence, op.state, JSON.stringify(op));
127
+ this.append(op);
128
+ return freeze(op);
129
+ });
130
+ }
131
+ catch (error) {
132
+ // Admission/storage failure must not later appear as a complete zero-operation scope.
133
+ try {
134
+ this.markIncomplete(scopeId);
135
+ }
136
+ catch { /* A still-failing DB cannot issue evidence. */ }
137
+ throw error;
138
+ }
139
+ }
140
+ /** Enrich authority at the host reservation boundary, before any observed result.
141
+ * Evaluation scopes can contain operations from different units; never rewrite scope identity. */
142
+ bindOperation(id, input) {
143
+ boundedText(input.runtimeIdentity);
144
+ boundedText(input.binding.taskId);
145
+ exactKeys(input, ['binding', 'runtimeIdentity', 'bindScope']);
146
+ exactKeys(input.binding, ['taskId', 'unitId', 'workerGeneration', 'protocolBindGeneration', 'leaseAuthorityGeneration', 'leaseRevision']);
147
+ if (input.binding.unitId !== undefined)
148
+ boundedText(input.binding.unitId);
149
+ if (typeof input.binding.workerGeneration === 'string')
150
+ boundedText(input.binding.workerGeneration);
151
+ else if (input.binding.workerGeneration !== undefined && (!Number.isSafeInteger(input.binding.workerGeneration) || input.binding.workerGeneration < 0))
152
+ fail();
153
+ for (const key of ['protocolBindGeneration', 'leaseAuthorityGeneration', 'leaseRevision']) {
154
+ const value = input.binding[key];
155
+ if (value !== undefined && (!Number.isSafeInteger(value) || value < 0))
156
+ fail();
157
+ }
158
+ return this.transaction(() => {
159
+ const op = this.readOperation(id);
160
+ if (op.state !== 'dispatching')
161
+ fail();
162
+ if (op.binding) {
163
+ for (const [key, value] of Object.entries(op.binding))
164
+ if (input.binding[key] !== value)
165
+ fail();
166
+ if (op.binding.protocolBindGeneration !== undefined && op.runtimeIdentity !== input.runtimeIdentity)
167
+ fail();
168
+ }
169
+ if (input.bindScope) {
170
+ const row = this.scopeRow(op.scopeId);
171
+ const count = this.db.prepare('SELECT COUNT(*) AS n FROM dsh_managed_operations WHERE scope_id=?').get(op.scopeId).n;
172
+ if (row.sealed || count !== 1)
173
+ fail();
174
+ const scope = JSON.parse(row.scope_json);
175
+ const bound = { ...scope, binding: JSON.parse(JSON.stringify(input.binding)), runtimeIdentity: input.runtimeIdentity };
176
+ this.db.prepare('UPDATE dsh_managed_scopes SET scope_json=? WHERE scope_id=?').run(JSON.stringify(bound), op.scopeId);
177
+ }
178
+ return this.save({ ...op, binding: JSON.parse(JSON.stringify(input.binding)), runtimeIdentity: input.runtimeIdentity, updatedAt: Date.now() });
179
+ });
180
+ }
181
+ attachOriginalRef(id, originalRef) {
182
+ boundedText(originalRef);
183
+ return this.transaction(() => {
184
+ const op = this.readOperation(id);
185
+ if (op.originalRef && op.originalRef !== originalRef)
186
+ fail();
187
+ if (op.originalRef === originalRef)
188
+ return op;
189
+ return this.save({ ...op, originalRef, updatedAt: Date.now() });
190
+ });
191
+ }
192
+ lookupOriginalOperation(originalRef) {
193
+ boundedText(originalRef);
194
+ const row = this.db.prepare("SELECT operation_json FROM dsh_managed_operations WHERE json_extract(operation_json,'$.originalRef')=?").get(originalRef);
195
+ return row ? freeze(JSON.parse(row.operation_json)) : undefined;
196
+ }
197
+ snapshotForOriginal(originalRef) {
198
+ const op = this.lookupOriginalOperation(originalRef);
199
+ if (!op)
200
+ fail();
201
+ return this.snapshot(op.scopeId);
202
+ }
203
+ readOperation(id) {
204
+ const row = this.db.prepare('SELECT operation_json FROM dsh_managed_operations WHERE operation_id=?').get(id);
205
+ if (!row)
206
+ fail();
207
+ return freeze(JSON.parse(row.operation_json));
208
+ }
209
+ append(op) {
210
+ const n = this.db.prepare('SELECT COUNT(*) AS n FROM dsh_managed_transitions WHERE operation_id=?').get(op.operationId).n;
211
+ if (n >= 128)
212
+ throw new Error('Managed journal transition capacity exceeded');
213
+ this.db.prepare('INSERT INTO dsh_managed_transitions VALUES(?,?,?)').run(op.operationId, n + 1, JSON.stringify(op));
214
+ }
215
+ save(op) {
216
+ this.db.prepare('UPDATE dsh_managed_operations SET state=?,operation_json=? WHERE operation_id=?').run(op.state, JSON.stringify(op), op.operationId);
217
+ this.append(op);
218
+ return freeze(op);
219
+ }
220
+ /** Only the successful claimant may dispatch; replay is observation, never execution. */
221
+ claim(id, request) {
222
+ return this.transaction(() => {
223
+ const op = this.readOperation(id);
224
+ if (arguments.length > 1 && this.digest(request) !== op.requestDigest)
225
+ throw new Error('Managed operation request mismatch');
226
+ if (op.state !== 'prepared')
227
+ return false;
228
+ const row = this.scopeRow(op.scopeId);
229
+ if (row.sealed || !row.collector_complete)
230
+ return false;
231
+ // SQL CAS as well as the write lock: exactly one claimant can dispatch.
232
+ const claimed = { ...op, state: 'dispatching', updatedAt: Date.now() };
233
+ const rowClaim = this.db.prepare("UPDATE dsh_managed_operations SET state='dispatching',operation_json=? WHERE operation_id=? AND state='prepared' RETURNING operation_id").get(JSON.stringify(claimed), id);
234
+ if (!rowClaim)
235
+ return false;
236
+ this.append(claimed);
237
+ return true;
238
+ });
239
+ }
240
+ transition(id, next) {
241
+ exactKeys(next, ['state', 'outcome', 'receiptRef', 'cause']);
242
+ return this.transaction(() => {
243
+ const op = this.readOperation(id);
244
+ if (!states.has(next.state) || next.state === 'prepared' || next.state === 'dispatching')
245
+ fail();
246
+ if (next.cause !== undefined && !causes.has(next.cause))
247
+ fail();
248
+ if (next.receiptRef !== undefined)
249
+ boundedText(next.receiptRef);
250
+ if (next.state === 'completed' ? !['succeeded', 'failed'].includes(next.outcome ?? '') : next.outcome !== undefined)
251
+ fail();
252
+ if (terminal.has(op.state)) {
253
+ if (op.state === next.state && op.outcome === next.outcome && op.receiptRef === next.receiptRef && op.cause === next.cause)
254
+ return op;
255
+ fail();
256
+ }
257
+ if (op.state === 'unknown' && next.state !== 'unknown')
258
+ throw new Error('Managed operation requires explicit reconciliation');
259
+ if (op.state === 'prepared' && !['denied', 'cancelled-before-dispatch', 'unknown'].includes(next.state))
260
+ fail();
261
+ if (op.state === 'running' && ['denied', 'cancelled-before-dispatch'].includes(next.state))
262
+ fail();
263
+ return this.save({ ...op, ...next, updatedAt: Date.now() });
264
+ });
265
+ }
266
+ /** Host must first verify original receipt/process identity. No dispatch occurs here. */
267
+ reconcile(id, next) {
268
+ exactKeys(next, ['state', 'outcome', 'receiptRef', 'cause']);
269
+ return this.transaction(() => {
270
+ const op = this.readOperation(id);
271
+ if (op.state !== 'unknown' || !terminal.has(next.state))
272
+ fail();
273
+ boundedText(next.receiptRef);
274
+ if (next.state === 'completed' ? !['succeeded', 'failed'].includes(next.outcome ?? '') : next.outcome !== undefined)
275
+ fail();
276
+ if (next.cause !== undefined && !causes.has(next.cause))
277
+ fail();
278
+ return this.save({ ...op, ...next, updatedAt: Date.now() });
279
+ });
280
+ }
281
+ setDelivery(id, delivery) {
282
+ if (!['pending', 'delivered', 'not-delivered', 'unknown'].includes(delivery))
283
+ fail();
284
+ return this.transaction(() => { const op = this.readOperation(id); if (op.delivery === delivery)
285
+ return op; return this.save({ ...op, delivery, updatedAt: Date.now() }); });
286
+ }
287
+ markIncomplete(scopeId) { this.transaction(() => { this.scopeRow(scopeId); this.db.prepare('UPDATE dsh_managed_scopes SET collector_complete=0 WHERE scope_id=?').run(scopeId); }); }
288
+ seal(scopeId) { this.transaction(() => { this.scopeRow(scopeId); this.db.prepare('UPDATE dsh_managed_scopes SET sealed=1 WHERE scope_id=?').run(scopeId); }); }
289
+ recover(scopeId) {
290
+ this.transaction(() => {
291
+ this.scopeRow(scopeId);
292
+ for (const row of this.db.prepare("SELECT operation_id FROM dsh_managed_operations WHERE scope_id=? AND state IN ('dispatching','running')").all(scopeId))
293
+ this.transition(row.operation_id, { state: 'unknown', cause: 'recovery' });
294
+ });
295
+ }
296
+ snapshot(scopeId) {
297
+ return this.transaction(() => {
298
+ if (this.count('dsh_managed_snapshots') >= this.limits.maxSnapshots)
299
+ throw new Error('Managed journal snapshot capacity exceeded');
300
+ const row = this.scopeRow(scopeId), operations = this.db.prepare('SELECT operation_json FROM dsh_managed_operations WHERE scope_id=? ORDER BY sequence').all(scopeId).map(r => JSON.parse(r.operation_json));
301
+ const unresolved = operations.filter(op => !terminal.has(op.state)).length;
302
+ const snapshot = { snapshotId: randomUUID(), scopeId, scope: JSON.parse(row.scope_json), sealed: !!row.sealed, collectorComplete: !!row.collector_complete,
303
+ complete: !!row.sealed && !!row.collector_complete && unresolved === 0, unresolved, operations, createdAt: Date.now() };
304
+ this.db.prepare('INSERT INTO dsh_managed_snapshots(snapshot_id,scope_id,snapshot_json,created_at) VALUES(?,?,?,?)').run(snapshot.snapshotId, scopeId, JSON.stringify(snapshot), snapshot.createdAt);
305
+ return freeze(snapshot);
306
+ });
307
+ }
308
+ readSnapshot(id) {
309
+ const row = this.db.prepare('SELECT snapshot_json FROM dsh_managed_snapshots WHERE snapshot_id=?').get(id);
310
+ if (!row)
311
+ fail();
312
+ return freeze(JSON.parse(row.snapshot_json));
313
+ }
314
+ retainSnapshot(id) { this.transaction(() => { this.readSnapshot(id); this.db.prepare('UPDATE dsh_managed_snapshots SET retained=1 WHERE snapshot_id=?').run(id); }); }
315
+ /** Never expire unresolved operations or scopes referenced by retained evidence. */
316
+ prune(now = Date.now()) {
317
+ return this.transaction(() => {
318
+ const rows = this.db.prepare(`WITH RECURSIVE protected(scope_id) AS (
319
+ SELECT scope_id FROM dsh_managed_snapshots WHERE retained=1
320
+ UNION SELECT scope_id FROM dsh_managed_operations WHERE state NOT IN ('completed','denied','cancelled-before-dispatch','cancelled-confirmed')
321
+ UNION SELECT o.scope_id FROM protected p JOIN dsh_managed_scopes c ON c.scope_id=p.scope_id
322
+ JOIN dsh_managed_operations o ON o.operation_id=json_extract(c.scope_json,'$.parentId')
323
+ ) SELECT scope_id FROM dsh_managed_scopes s WHERE sealed=1 AND created_at<?
324
+ AND NOT EXISTS(SELECT 1 FROM protected p WHERE p.scope_id=s.scope_id)
325
+ AND NOT EXISTS(SELECT 1 FROM dsh_managed_operations o WHERE o.scope_id=s.scope_id AND state NOT IN ('completed','denied','cancelled-before-dispatch','cancelled-confirmed'))`).all(now - this.limits.retentionMs);
326
+ for (const row of rows) {
327
+ this.db.prepare('DELETE FROM dsh_managed_transitions WHERE operation_id IN (SELECT operation_id FROM dsh_managed_operations WHERE scope_id=?)').run(row.scope_id);
328
+ this.db.prepare('DELETE FROM dsh_managed_operations WHERE scope_id=?').run(row.scope_id);
329
+ this.db.prepare('DELETE FROM dsh_managed_snapshots WHERE scope_id=?').run(row.scope_id);
330
+ this.db.prepare('DELETE FROM dsh_managed_scopes WHERE scope_id=?').run(row.scope_id);
331
+ }
332
+ return rows.length;
333
+ });
334
+ }
335
+ }
336
+ //# sourceMappingURL=managed-operation-journal.js.map