@xioflow/kernel 0.3.0 → 0.5.0

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 (165) hide show
  1. package/README.md +174 -15
  2. package/dist/capability/check.d.ts +32 -0
  3. package/dist/capability/check.d.ts.map +1 -0
  4. package/dist/capability/check.js +136 -0
  5. package/dist/capability/check.js.map +1 -0
  6. package/dist/capability/index.d.ts +3 -0
  7. package/dist/capability/index.d.ts.map +1 -0
  8. package/dist/capability/index.js +3 -0
  9. package/dist/capability/index.js.map +1 -0
  10. package/dist/capability/path-utils.d.ts +11 -0
  11. package/dist/capability/path-utils.d.ts.map +1 -0
  12. package/dist/capability/path-utils.js +46 -0
  13. package/dist/capability/path-utils.js.map +1 -0
  14. package/dist/cli.d.ts +3 -0
  15. package/dist/cli.d.ts.map +1 -0
  16. package/dist/cli.js +94 -0
  17. package/dist/cli.js.map +1 -0
  18. package/dist/confinement/bubblewrap.d.ts +8 -0
  19. package/dist/confinement/bubblewrap.d.ts.map +1 -0
  20. package/dist/confinement/bubblewrap.js +45 -0
  21. package/dist/confinement/bubblewrap.js.map +1 -0
  22. package/dist/confinement/detector.d.ts +4 -0
  23. package/dist/confinement/detector.d.ts.map +1 -0
  24. package/dist/confinement/detector.js +35 -0
  25. package/dist/confinement/detector.js.map +1 -0
  26. package/dist/confinement/index.d.ts +5 -0
  27. package/dist/confinement/index.d.ts.map +1 -0
  28. package/dist/confinement/index.js +5 -0
  29. package/dist/confinement/index.js.map +1 -0
  30. package/dist/confinement/sandbox-exec.d.ts +8 -0
  31. package/dist/confinement/sandbox-exec.d.ts.map +1 -0
  32. package/dist/confinement/sandbox-exec.js +30 -0
  33. package/dist/confinement/sandbox-exec.js.map +1 -0
  34. package/dist/confinement/srt.d.ts +8 -0
  35. package/dist/confinement/srt.d.ts.map +1 -0
  36. package/dist/confinement/srt.js +41 -0
  37. package/dist/confinement/srt.js.map +1 -0
  38. package/dist/domain.d.ts +26 -2
  39. package/dist/domain.d.ts.map +1 -1
  40. package/dist/domain.js +192 -18
  41. package/dist/domain.js.map +1 -1
  42. package/dist/driver/node-driver.d.ts.map +1 -1
  43. package/dist/driver/node-driver.js +42 -61
  44. package/dist/driver/node-driver.js.map +1 -1
  45. package/dist/driver/reaper-driver.d.ts +62 -0
  46. package/dist/driver/reaper-driver.d.ts.map +1 -0
  47. package/dist/driver/reaper-driver.js +371 -0
  48. package/dist/driver/reaper-driver.js.map +1 -0
  49. package/dist/driver/spawn-support.d.ts +4 -0
  50. package/dist/driver/spawn-support.d.ts.map +1 -0
  51. package/dist/driver/spawn-support.js +31 -0
  52. package/dist/driver/spawn-support.js.map +1 -0
  53. package/dist/driver/types.d.ts +19 -2
  54. package/dist/driver/types.d.ts.map +1 -1
  55. package/dist/fault/crashpoint.d.ts +8 -0
  56. package/dist/fault/crashpoint.d.ts.map +1 -0
  57. package/dist/fault/crashpoint.js +37 -0
  58. package/dist/fault/crashpoint.js.map +1 -0
  59. package/dist/index.d.ts +9 -0
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +6 -0
  62. package/dist/index.js.map +1 -1
  63. package/dist/mcp/server.d.ts +49 -0
  64. package/dist/mcp/server.d.ts.map +1 -0
  65. package/dist/mcp/server.js +233 -0
  66. package/dist/mcp/server.js.map +1 -0
  67. package/dist/mcp/tools.d.ts +32 -0
  68. package/dist/mcp/tools.d.ts.map +1 -0
  69. package/dist/mcp/tools.js +255 -0
  70. package/dist/mcp/tools.js.map +1 -0
  71. package/dist/native/darwin-arm64/xioflow-reaper +0 -0
  72. package/dist/native/darwin-x64/xioflow-reaper +0 -0
  73. package/dist/native/linux-arm64/xioflow-reaper +0 -0
  74. package/dist/native/linux-x64/xioflow-reaper +0 -0
  75. package/dist/otel/otlp.d.ts +37 -0
  76. package/dist/otel/otlp.d.ts.map +1 -0
  77. package/dist/otel/otlp.js +224 -0
  78. package/dist/otel/otlp.js.map +1 -0
  79. package/dist/quick-run.d.ts.map +1 -1
  80. package/dist/quick-run.js +5 -12
  81. package/dist/quick-run.js.map +1 -1
  82. package/dist/recovery/engine.d.ts +7 -0
  83. package/dist/recovery/engine.d.ts.map +1 -1
  84. package/dist/recovery/engine.js +176 -4
  85. package/dist/recovery/engine.js.map +1 -1
  86. package/dist/snapshot/git-shadow.d.ts +57 -0
  87. package/dist/snapshot/git-shadow.d.ts.map +1 -0
  88. package/dist/snapshot/git-shadow.js +364 -0
  89. package/dist/snapshot/git-shadow.js.map +1 -0
  90. package/dist/store/schema.d.ts +1 -1
  91. package/dist/store/schema.d.ts.map +1 -1
  92. package/dist/store/schema.js +31 -0
  93. package/dist/store/schema.js.map +1 -1
  94. package/dist/store/sqlite.d.ts +14 -1
  95. package/dist/store/sqlite.d.ts.map +1 -1
  96. package/dist/store/sqlite.js +150 -58
  97. package/dist/store/sqlite.js.map +1 -1
  98. package/dist/supervisor/admission.d.ts +26 -0
  99. package/dist/supervisor/admission.d.ts.map +1 -0
  100. package/dist/supervisor/admission.js +98 -0
  101. package/dist/supervisor/admission.js.map +1 -0
  102. package/dist/supervisor/drainer.d.ts +17 -0
  103. package/dist/supervisor/drainer.d.ts.map +1 -0
  104. package/dist/supervisor/drainer.js +200 -0
  105. package/dist/supervisor/drainer.js.map +1 -0
  106. package/dist/supervisor/finalize.d.ts +21 -0
  107. package/dist/supervisor/finalize.d.ts.map +1 -0
  108. package/dist/supervisor/finalize.js +66 -0
  109. package/dist/supervisor/finalize.js.map +1 -0
  110. package/dist/supervisor/fingerprint.d.ts +8 -0
  111. package/dist/supervisor/fingerprint.d.ts.map +1 -0
  112. package/dist/supervisor/fingerprint.js +54 -0
  113. package/dist/supervisor/fingerprint.js.map +1 -0
  114. package/dist/supervisor/process-monitor.d.ts +9 -0
  115. package/dist/supervisor/process-monitor.d.ts.map +1 -0
  116. package/dist/supervisor/process-monitor.js +230 -0
  117. package/dist/supervisor/process-monitor.js.map +1 -0
  118. package/dist/supervisor/process-output.d.ts +27 -0
  119. package/dist/supervisor/process-output.d.ts.map +1 -0
  120. package/dist/supervisor/process-output.js +102 -0
  121. package/dist/supervisor/process-output.js.map +1 -0
  122. package/dist/supervisor/process-run.d.ts +30 -0
  123. package/dist/supervisor/process-run.d.ts.map +1 -0
  124. package/dist/supervisor/process-run.js +191 -0
  125. package/dist/supervisor/process-run.js.map +1 -0
  126. package/dist/supervisor/replay.d.ts +14 -0
  127. package/dist/supervisor/replay.d.ts.map +1 -0
  128. package/dist/supervisor/replay.js +70 -0
  129. package/dist/supervisor/replay.js.map +1 -0
  130. package/dist/supervisor/rollback.d.ts +8 -0
  131. package/dist/supervisor/rollback.d.ts.map +1 -0
  132. package/dist/supervisor/rollback.js +153 -0
  133. package/dist/supervisor/rollback.js.map +1 -0
  134. package/dist/supervisor/service.d.ts +24 -0
  135. package/dist/supervisor/service.d.ts.map +1 -0
  136. package/dist/supervisor/service.js +588 -0
  137. package/dist/supervisor/service.js.map +1 -0
  138. package/dist/supervisor/snapshot-ops.d.ts +36 -0
  139. package/dist/supervisor/snapshot-ops.d.ts.map +1 -0
  140. package/dist/supervisor/snapshot-ops.js +243 -0
  141. package/dist/supervisor/snapshot-ops.js.map +1 -0
  142. package/dist/supervisor/supervisor.d.ts +62 -30
  143. package/dist/supervisor/supervisor.d.ts.map +1 -1
  144. package/dist/supervisor/supervisor.js +164 -842
  145. package/dist/supervisor/supervisor.js.map +1 -1
  146. package/dist/supervisor/types.d.ts +64 -0
  147. package/dist/supervisor/types.d.ts.map +1 -0
  148. package/dist/supervisor/types.js +2 -0
  149. package/dist/supervisor/types.js.map +1 -0
  150. package/dist/testing/contract-suite.d.ts.map +1 -1
  151. package/dist/testing/contract-suite.js +619 -12
  152. package/dist/testing/contract-suite.js.map +1 -1
  153. package/dist/types.d.ts +161 -3
  154. package/dist/types.d.ts.map +1 -1
  155. package/dist/types.js +8 -0
  156. package/dist/types.js.map +1 -1
  157. package/dist/workspace/read-tracking.d.ts +23 -0
  158. package/dist/workspace/read-tracking.d.ts.map +1 -0
  159. package/dist/workspace/read-tracking.js +66 -0
  160. package/dist/workspace/read-tracking.js.map +1 -0
  161. package/dist/workspace/transactions.d.ts +89 -0
  162. package/dist/workspace/transactions.d.ts.map +1 -0
  163. package/dist/workspace/transactions.js +277 -0
  164. package/dist/workspace/transactions.js.map +1 -0
  165. package/package.json +8 -2
@@ -1,5 +1,6 @@
1
1
  import { DatabaseSync } from 'node:sqlite';
2
2
  import { SCHEMA_SQL } from './schema.js';
3
+ import { callerLabel, crashpoint, crashpointsEnabled } from '../fault/crashpoint.js';
3
4
  import { EpochFencedError, DomainLockedError, sanitizeConfigSnapshot, } from '../types.js';
4
5
  export class SqliteStore {
5
6
  db;
@@ -17,6 +18,14 @@ export class SqliteStore {
17
18
  }
18
19
  initSchema() {
19
20
  this.db.exec(SCHEMA_SQL);
21
+ // 旧库补列:先查列是否已存在,只在缺列时 ALTER;ALTER 自身失败(磁盘、锁、只读)必须暴露
22
+ const existing = new Set(this.db.prepare('PRAGMA table_info(operations)').all().map((c) => c.name));
23
+ if (!existing.has('mutation_roots')) {
24
+ this.db.exec('ALTER TABLE operations ADD COLUMN mutation_roots TEXT;');
25
+ }
26
+ if (!existing.has('capability_id')) {
27
+ this.db.exec('ALTER TABLE operations ADD COLUMN capability_id TEXT;');
28
+ }
20
29
  }
21
30
  inTransaction = false;
22
31
  transaction(fn) {
@@ -24,10 +33,14 @@ export class SqliteStore {
24
33
  return fn();
25
34
  }
26
35
  this.inTransaction = true;
36
+ // 崩溃点:事务提交前(整笔丢失)与提交后(已持久、内存后续动作未做)
37
+ const label = crashpointsEnabled ? `store:${callerLabel(2)}` : '';
27
38
  this.db.exec('BEGIN IMMEDIATE');
28
39
  try {
29
40
  const result = fn();
41
+ crashpoint(`${label}:before-commit`);
30
42
  this.db.exec('COMMIT');
43
+ crashpoint(`${label}:after-commit`);
31
44
  return result;
32
45
  }
33
46
  catch (err) {
@@ -357,10 +370,14 @@ export class SqliteStore {
357
370
  const now = new Date().toISOString();
358
371
  // 1. 写入 operation 记录,初始状态 intent_registered
359
372
  const opStmt = this.db.prepare(`
360
- INSERT INTO operations (id, run_id, domain_id, kind, name, input_fingerprint, status, required_resources, timeout_ms, resource_budget, output_ref, process_identity, result)
361
- VALUES (?, ?, ?, ?, ?, ?, 'intent_registered', ?, ?, ?, ?, ?, ?)
373
+ INSERT INTO operations (
374
+ id, run_id, domain_id, kind, name, input_fingerprint, status,
375
+ required_resources, mutation_roots, capability_id, timeout_ms,
376
+ resource_budget, output_ref, process_identity, result
377
+ )
378
+ VALUES (?, ?, ?, ?, ?, ?, 'intent_registered', ?, ?, ?, ?, ?, ?, ?, ?)
362
379
  `);
363
- opStmt.run(op.id, op.runId, domainId, op.kind, op.name, op.inputFingerprint, JSON.stringify(op.requiredResources || []), op.timeoutMs || null, op.resourceBudget ? JSON.stringify(op.resourceBudget) : null, op.outputRef || null, op.processIdentity ? JSON.stringify(op.processIdentity) : null, op.result ? JSON.stringify(op.result) : null);
380
+ opStmt.run(op.id, op.runId, domainId, op.kind, op.name, op.inputFingerprint, JSON.stringify(op.requiredResources || []), op.mutationRoots ? JSON.stringify(op.mutationRoots) : null, op.capabilityId || null, op.timeoutMs || null, op.resourceBudget ? JSON.stringify(op.resourceBudget) : null, op.outputRef || null, op.processIdentity ? JSON.stringify(op.processIdentity) : null, op.result ? JSON.stringify(op.result) : null);
364
381
  // 2. 写入 resource_leases 表记录排他资源占用
365
382
  if (op.requiredResources && op.requiredResources.length > 0) {
366
383
  const leaseStmt = this.db.prepare(`
@@ -407,10 +424,14 @@ export class SqliteStore {
407
424
  throw new Error(`Operation "${op.id}" already exists`);
408
425
  }
409
426
  const opStmt = this.db.prepare(`
410
- INSERT INTO operations (id, run_id, domain_id, kind, name, input_fingerprint, status, required_resources, timeout_ms, resource_budget, output_ref, process_identity, result)
411
- VALUES (?, ?, ?, ?, ?, ?, 'done', ?, ?, ?, ?, ?, ?)
427
+ INSERT INTO operations (
428
+ id, run_id, domain_id, kind, name, input_fingerprint, status,
429
+ required_resources, mutation_roots, capability_id, timeout_ms,
430
+ resource_budget, output_ref, process_identity, result
431
+ )
432
+ VALUES (?, ?, ?, ?, ?, ?, 'done', ?, ?, ?, ?, ?, ?, ?, ?)
412
433
  `);
413
- opStmt.run(op.id, op.runId, domainId, op.kind, op.name, op.inputFingerprint, JSON.stringify(op.requiredResources || []), op.timeoutMs || null, op.resourceBudget ? JSON.stringify(op.resourceBudget) : null, op.outputRef || null, op.processIdentity ? JSON.stringify(op.processIdentity) : null, JSON.stringify(result));
434
+ opStmt.run(op.id, op.runId, domainId, op.kind, op.name, op.inputFingerprint, JSON.stringify(op.requiredResources || []), op.mutationRoots ? JSON.stringify(op.mutationRoots) : null, op.capabilityId || null, op.timeoutMs || null, op.resourceBudget ? JSON.stringify(op.resourceBudget) : null, op.outputRef || null, op.processIdentity ? JSON.stringify(op.processIdentity) : null, JSON.stringify(result));
414
435
  this.recordEventAndTransitionState({
415
436
  domainId,
416
437
  runId: op.runId,
@@ -471,11 +492,13 @@ export class SqliteStore {
471
492
  }
472
493
  const stmt = this.db.prepare(`
473
494
  UPDATE operations
474
- SET status = 'done', result = ?, output_ref = COALESCE(?, output_ref)
495
+ SET status = 'done', result = ?, output_ref = COALESCE(?, output_ref),
496
+ capability_id = COALESCE(?, capability_id)
475
497
  WHERE id = ?
476
498
  `);
477
499
  const outputRef = result.outputRef || null;
478
- stmt.run(JSON.stringify(result), outputRef, opId);
500
+ const capabilityId = result.capabilityId || null;
501
+ stmt.run(JSON.stringify(result), outputRef, capabilityId, opId);
479
502
  // 若确认完成且允许释放资源,结清资源
480
503
  if (releaseResources && result.status !== 'indeterminate') {
481
504
  const delLeases = this.db.prepare('DELETE FROM resource_leases WHERE operation_id = ?');
@@ -509,11 +532,7 @@ export class SqliteStore {
509
532
  timestamp: new Date().toISOString(),
510
533
  });
511
534
  }
512
- getOperation(id) {
513
- const stmt = this.db.prepare('SELECT * FROM operations WHERE id = ?');
514
- const row = stmt.get(id);
515
- if (!row)
516
- return null;
535
+ mapOperationRow(row) {
517
536
  return {
518
537
  id: row.id,
519
538
  runId: row.run_id,
@@ -522,6 +541,8 @@ export class SqliteStore {
522
541
  name: row.name,
523
542
  inputFingerprint: row.input_fingerprint,
524
543
  requiredResources: JSON.parse(row.required_resources),
544
+ mutationRoots: row.mutation_roots ? JSON.parse(row.mutation_roots) : undefined,
545
+ capabilityId: row.capability_id || undefined,
525
546
  timeoutMs: row.timeout_ms || undefined,
526
547
  resourceBudget: row.resource_budget ? JSON.parse(row.resource_budget) : undefined,
527
548
  outputRef: row.output_ref || undefined,
@@ -530,24 +551,17 @@ export class SqliteStore {
530
551
  result: row.result ? JSON.parse(row.result) : undefined,
531
552
  };
532
553
  }
554
+ getOperation(id) {
555
+ const stmt = this.db.prepare('SELECT * FROM operations WHERE id = ?');
556
+ const row = stmt.get(id);
557
+ if (!row)
558
+ return null;
559
+ return this.mapOperationRow(row);
560
+ }
533
561
  getOperationsByRun(runId) {
534
562
  const stmt = this.db.prepare('SELECT * FROM operations WHERE run_id = ?');
535
563
  const rows = stmt.all(runId);
536
- return rows.map((row) => ({
537
- id: row.id,
538
- runId: row.run_id,
539
- domainId: row.domain_id,
540
- kind: row.kind,
541
- name: row.name,
542
- inputFingerprint: row.input_fingerprint,
543
- requiredResources: JSON.parse(row.required_resources),
544
- timeoutMs: row.timeout_ms || undefined,
545
- resourceBudget: row.resource_budget ? JSON.parse(row.resource_budget) : undefined,
546
- outputRef: row.output_ref || undefined,
547
- status: row.status,
548
- processIdentity: row.process_identity ? JSON.parse(row.process_identity) : undefined,
549
- result: row.result ? JSON.parse(row.result) : undefined,
550
- }));
564
+ return rows.map((row) => this.mapOperationRow(row));
551
565
  }
552
566
  getUnfinishedOperations(domainId) {
553
567
  const stmt = this.db.prepare(`
@@ -555,21 +569,7 @@ export class SqliteStore {
555
569
  WHERE domain_id = ? AND status IN ('intent_registered', 'active', 'stopping')
556
570
  `);
557
571
  const rows = stmt.all(domainId);
558
- return rows.map((row) => ({
559
- id: row.id,
560
- runId: row.run_id,
561
- domainId: row.domain_id,
562
- kind: row.kind,
563
- name: row.name,
564
- inputFingerprint: row.input_fingerprint,
565
- requiredResources: JSON.parse(row.required_resources),
566
- timeoutMs: row.timeout_ms || undefined,
567
- resourceBudget: row.resource_budget ? JSON.parse(row.resource_budget) : undefined,
568
- outputRef: row.output_ref || undefined,
569
- status: row.status,
570
- processIdentity: row.process_identity ? JSON.parse(row.process_identity) : undefined,
571
- result: row.result ? JSON.parse(row.result) : undefined,
572
- }));
572
+ return rows.map((row) => this.mapOperationRow(row));
573
573
  }
574
574
  getAllOperations(domainId) {
575
575
  const stmt = this.db.prepare(`
@@ -577,21 +577,7 @@ export class SqliteStore {
577
577
  WHERE domain_id = ?
578
578
  `);
579
579
  const rows = stmt.all(domainId);
580
- return rows.map((row) => ({
581
- id: row.id,
582
- runId: row.run_id,
583
- domainId: row.domain_id,
584
- kind: row.kind,
585
- name: row.name,
586
- inputFingerprint: row.input_fingerprint,
587
- requiredResources: JSON.parse(row.required_resources),
588
- timeoutMs: row.timeout_ms || undefined,
589
- resourceBudget: row.resource_budget ? JSON.parse(row.resource_budget) : undefined,
590
- outputRef: row.output_ref || undefined,
591
- status: row.status,
592
- processIdentity: row.process_identity ? JSON.parse(row.process_identity) : undefined,
593
- result: row.result ? JSON.parse(row.result) : undefined,
594
- }));
580
+ return rows.map((row) => this.mapOperationRow(row));
595
581
  }
596
582
  getPersistedResourceLeases(domainId) {
597
583
  const stmt = this.db.prepare('SELECT * FROM resource_leases WHERE domain_id = ?');
@@ -623,6 +609,9 @@ export class SqliteStore {
623
609
  const res = stmt.run(event.domainId, event.runId || null, event.operationId || null, event.type, JSON.stringify(event.payload), event.timestamp);
624
610
  return Number(res.lastInsertRowid);
625
611
  }
612
+ recordJournalEvent(event) {
613
+ return this.recordEventAndTransitionState(event);
614
+ }
626
615
  getJournalEvents(domainId, fromSeq = 0) {
627
616
  const stmt = this.db.prepare(`
628
617
  SELECT * FROM journal_events
@@ -657,6 +646,109 @@ export class SqliteStore {
657
646
  timestamp: row.timestamp,
658
647
  }));
659
648
  }
649
+ recordSnapshot(snapshot) {
650
+ this.verifyEpochFencing(snapshot.domainId);
651
+ const stmt = this.db.prepare(`
652
+ INSERT OR REPLACE INTO snapshots (
653
+ id, domain_id, op_id, driver, roots, coverage, tree_fingerprint, commit_hash, journal_seq, created_at, tree_size_bytes
654
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
655
+ `);
656
+ stmt.run(snapshot.id, snapshot.domainId, snapshot.opId, snapshot.driver, JSON.stringify(snapshot.roots), snapshot.coverage, snapshot.treeFingerprint, snapshot.commitHash ?? null, snapshot.journalSeq ?? null, snapshot.createdAt, snapshot.treeSizeBytes ?? null);
657
+ }
658
+ getSnapshot(id) {
659
+ const stmt = this.db.prepare(`SELECT * FROM snapshots WHERE id = ?`);
660
+ const row = stmt.get(id);
661
+ if (!row)
662
+ return null;
663
+ return this.mapSnapshotRow(row);
664
+ }
665
+ findSnapshotAtOrBefore(domainId, seq) {
666
+ const stmt = this.db.prepare(`
667
+ SELECT * FROM snapshots
668
+ WHERE domain_id = ? AND journal_seq <= ?
669
+ ORDER BY journal_seq DESC
670
+ LIMIT 1
671
+ `);
672
+ const row = stmt.get(domainId, seq);
673
+ if (!row)
674
+ return null;
675
+ return this.mapSnapshotRow(row);
676
+ }
677
+ listSnapshots(domainId) {
678
+ const stmt = this.db.prepare(`
679
+ SELECT * FROM snapshots
680
+ WHERE domain_id = ?
681
+ ORDER BY created_at ASC
682
+ `);
683
+ const rows = stmt.all(domainId);
684
+ return rows.map((r) => this.mapSnapshotRow(r));
685
+ }
686
+ deleteSnapshot(id) {
687
+ const stmt = this.db.prepare(`DELETE FROM snapshots WHERE id = ?`);
688
+ stmt.run(id);
689
+ }
690
+ mapSnapshotRow(row) {
691
+ return {
692
+ id: row.id,
693
+ domainId: row.domain_id,
694
+ opId: row.op_id,
695
+ driver: row.driver,
696
+ roots: JSON.parse(row.roots),
697
+ coverage: row.coverage,
698
+ treeFingerprint: row.tree_fingerprint,
699
+ commitHash: row.commit_hash || undefined,
700
+ journalSeq: row.journal_seq !== null ? Number(row.journal_seq) : undefined,
701
+ createdAt: row.created_at,
702
+ treeSizeBytes: row.tree_size_bytes !== null ? Number(row.tree_size_bytes) : undefined,
703
+ };
704
+ }
705
+ recordCapability(capability) {
706
+ this.verifyEpochFencing(capability.domainId);
707
+ const stmt = this.db.prepare(`
708
+ INSERT OR REPLACE INTO capabilities (
709
+ id, domain_id, parent_id, issued_by, scope, epoch, expires_at, created_at, revoked_at
710
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
711
+ `);
712
+ stmt.run(capability.id, capability.domainId, capability.parentId ?? null, capability.issuedBy, JSON.stringify(capability.scope), capability.epoch, capability.expiresAt, capability.createdAt, capability.revokedAt ?? null);
713
+ }
714
+ getCapability(id) {
715
+ const stmt = this.db.prepare(`SELECT * FROM capabilities WHERE id = ?`);
716
+ const row = stmt.get(id);
717
+ if (!row)
718
+ return null;
719
+ return this.mapCapabilityRow(row);
720
+ }
721
+ listCapabilities(domainId) {
722
+ const stmt = this.db.prepare(`
723
+ SELECT * FROM capabilities
724
+ WHERE domain_id = ?
725
+ ORDER BY created_at ASC
726
+ `);
727
+ const rows = stmt.all(domainId);
728
+ return rows.map((r) => this.mapCapabilityRow(r));
729
+ }
730
+ revokeCapability(id, domainId, revokedAt) {
731
+ this.verifyEpochFencing(domainId);
732
+ const stmt = this.db.prepare(`
733
+ UPDATE capabilities
734
+ SET revoked_at = ?
735
+ WHERE id = ? AND domain_id = ?
736
+ `);
737
+ stmt.run(revokedAt, id, domainId);
738
+ }
739
+ mapCapabilityRow(row) {
740
+ return {
741
+ id: row.id,
742
+ domainId: row.domain_id,
743
+ parentId: row.parent_id || undefined,
744
+ issuedBy: row.issued_by,
745
+ scope: JSON.parse(row.scope),
746
+ epoch: Number(row.epoch),
747
+ expiresAt: row.expires_at,
748
+ createdAt: row.created_at,
749
+ revokedAt: row.revoked_at || undefined,
750
+ };
751
+ }
660
752
  close() {
661
753
  this.db.close();
662
754
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/store/sqlite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/store/sqlite.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { ExecutionDomain } from '../domain.js';
2
+ import { PlatformDriver } from '../driver/types.js';
3
+ import { ConfinementDriver, ResourceBudget } from '../types.js';
4
+ import { ExecuteProcessOptions } from './types.js';
5
+ export type CapabilityAdmission = ReturnType<ExecutionDomain['checkCapabilityAdmission']>;
6
+ /**
7
+ * Capability 准入校验与字段推导(契约 #55)。
8
+ * 会就地改写 `options.requiredResources`(规范化或收窄到 capability 范围):
9
+ * 随后的输入指纹基于改写后的值计算,已持久化操作的重放依赖这一口径,不能改成副本。
10
+ */
11
+ export declare function admitProcessScope(domain: ExecutionDomain, options: ExecuteProcessOptions): {
12
+ mutationRoots?: string[];
13
+ capAdmission?: CapabilityAdmission;
14
+ };
15
+ /** ConfinementDriver 驱动解析(契约 #56):显式驱动 > 按名创建 > 要求默认 > 监督器默认。 */
16
+ export declare function resolveConfinementDriver(options: ExecuteProcessOptions, supervisorDefault: ConfinementDriver | undefined): ConfinementDriver | undefined;
17
+ /** 准入期强校验:hard 预算要求驱动真的具备对应能力,否则显式拒绝而不是静默降级。 */
18
+ export declare function assertHardBudgetSupported(driver: PlatformDriver, budget: ResourceBudget | undefined): void;
19
+ /** N3 契约:未登记的 Run 与终态 Run 都不能登记或重放操作。 */
20
+ export declare function assertRunAcceptsOperations(domain: ExecutionDomain, runId: string, opId: string): void;
21
+ export declare function recordCapabilityUsed(domain: ExecutionDomain, ids: {
22
+ runId: string;
23
+ opId: string;
24
+ capabilityId: string;
25
+ }, capAdmission: CapabilityAdmission): void;
26
+ //# sourceMappingURL=admission.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admission.d.ts","sourceRoot":"","sources":["../../src/supervisor/admission.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAA8B,MAAM,aAAa,CAAC;AAG5F,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,MAAM,mBAAmB,GAAG,UAAU,CAAC,eAAe,CAAC,0BAA0B,CAAC,CAAC,CAAC;AAE1F;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,qBAAqB,GAC7B;IAAE,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,YAAY,CAAC,EAAE,mBAAmB,CAAA;CAAE,CA0BlE;AAED,iEAAiE;AACjE,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,qBAAqB,EAC9B,iBAAiB,EAAE,iBAAiB,GAAG,SAAS,GAC/C,iBAAiB,GAAG,SAAS,CAmB/B;AAED,gDAAgD;AAChD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,GAAG,SAAS,GAAG,IAAI,CAW1G;AAED,yCAAyC;AACzC,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAkBrG;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,eAAe,EACvB,GAAG,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,EAC1D,YAAY,EAAE,mBAAmB,GAChC,IAAI,CAaN"}
@@ -0,0 +1,98 @@
1
+ import { UnsupportedCapabilityError } from '../types.js';
2
+ import { createConfinementDriver } from '../confinement/index.js';
3
+ import { normalizeResourceName } from './fingerprint.js';
4
+ /**
5
+ * Capability 准入校验与字段推导(契约 #55)。
6
+ * 会就地改写 `options.requiredResources`(规范化或收窄到 capability 范围):
7
+ * 随后的输入指纹基于改写后的值计算,已持久化操作的重放依赖这一口径,不能改成副本。
8
+ */
9
+ export function admitProcessScope(domain, options) {
10
+ if (options.capabilityId) {
11
+ let candidateRoots = options.mutationRoots ? [...options.mutationRoots] : [];
12
+ if (candidateRoots.length === 0 && options.command.cwd) {
13
+ candidateRoots = [options.command.cwd];
14
+ }
15
+ const capAdmission = domain.checkCapabilityAdmission({
16
+ capabilityId: options.capabilityId,
17
+ requiredResources: options.requiredResources,
18
+ mutationRoots: candidateRoots.length > 0 ? candidateRoots : undefined,
19
+ runId: options.runId,
20
+ opId: options.opId,
21
+ });
22
+ options.requiredResources = capAdmission.effectiveResources;
23
+ return { mutationRoots: capAdmission.effectiveMutationRoots, capAdmission };
24
+ }
25
+ options.requiredResources = (options.requiredResources || []).map(normalizeResourceName);
26
+ if (options.mutationRoots && options.mutationRoots.length > 0) {
27
+ return { mutationRoots: options.mutationRoots };
28
+ }
29
+ return {
30
+ mutationRoots: options.requiredResources
31
+ .filter((r) => r.startsWith('workspace:write:'))
32
+ .map((r) => r.slice('workspace:write:'.length)),
33
+ };
34
+ }
35
+ /** ConfinementDriver 驱动解析(契约 #56):显式驱动 > 按名创建 > 要求默认 > 监督器默认。 */
36
+ export function resolveConfinementDriver(options, supervisorDefault) {
37
+ if (options.confinementDriver) {
38
+ return options.confinementDriver;
39
+ }
40
+ if (typeof options.confinement === 'string') {
41
+ const driver = createConfinementDriver(options.confinement);
42
+ if (!driver) {
43
+ throw new Error(`Confinement driver '${options.confinement}' is not available on this platform`);
44
+ }
45
+ return driver;
46
+ }
47
+ if (options.confinement === true) {
48
+ const driver = supervisorDefault || createConfinementDriver();
49
+ if (!driver) {
50
+ throw new Error('Confinement was requested but no confinement driver is available on this platform');
51
+ }
52
+ return driver;
53
+ }
54
+ return supervisorDefault;
55
+ }
56
+ /** 准入期强校验:hard 预算要求驱动真的具备对应能力,否则显式拒绝而不是静默降级。 */
57
+ export function assertHardBudgetSupported(driver, budget) {
58
+ if (budget?.enforcement !== 'hard')
59
+ return;
60
+ if (budget.maxMemoryBytes && !driver.capabilities.memoryHardLimit) {
61
+ throw new UnsupportedCapabilityError('memoryHardLimit', driver.name, 'hard');
62
+ }
63
+ if (budget.maxPids && !driver.capabilities.pidsLimit) {
64
+ throw new UnsupportedCapabilityError('pidsLimit', driver.name, 'hard');
65
+ }
66
+ if (budget.maxCpuTimeMs && !driver.capabilities.cpuLimit) {
67
+ throw new UnsupportedCapabilityError('cpuLimit', driver.name, 'hard');
68
+ }
69
+ }
70
+ /** N3 契约:未登记的 Run 与终态 Run 都不能登记或重放操作。 */
71
+ export function assertRunAcceptsOperations(domain, runId, opId) {
72
+ const callingRun = domain.getStore().getRun(runId);
73
+ if (!callingRun) {
74
+ throw new Error(`Run "${runId}" is not registered in domain "${domain.domainId}". ` +
75
+ 'Register the task and run first (store.saveTask() + store.saveRun()), then execute operations for that run.');
76
+ }
77
+ if (callingRun.status === 'succeeded' ||
78
+ callingRun.status === 'failed' ||
79
+ callingRun.status === 'cancelled' ||
80
+ callingRun.status === 'indeterminate') {
81
+ throw new Error(`Cannot register operation "${opId}" for Run "${runId}" because the Run is already finalized with status "${callingRun.status}".`);
82
+ }
83
+ }
84
+ export function recordCapabilityUsed(domain, ids, capAdmission) {
85
+ domain.getStore().recordJournalEvent({
86
+ domainId: domain.domainId,
87
+ runId: ids.runId,
88
+ operationId: ids.opId,
89
+ type: 'CAPABILITY_USED',
90
+ payload: {
91
+ capabilityId: ids.capabilityId,
92
+ scope: capAdmission.capability.scope,
93
+ actor: capAdmission.capability.issuedBy,
94
+ },
95
+ timestamp: new Date().toISOString(),
96
+ });
97
+ }
98
+ //# sourceMappingURL=admission.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admission.js","sourceRoot":"","sources":["../../src/supervisor/admission.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export declare function trimToValidUtf8(buf: Buffer): Buffer;
2
+ export declare function trimStartToValidUtf8(buf: Buffer): Buffer;
3
+ export interface StreamDrainerResult {
4
+ content: string;
5
+ isTruncated: boolean;
6
+ outputRef?: string;
7
+ outputHash?: string;
8
+ bytesSeen: number;
9
+ spillError?: string;
10
+ }
11
+ export interface StreamDrainer {
12
+ getResult: () => StreamDrainerResult;
13
+ finishPromise: Promise<void>;
14
+ forceFinalize: () => void;
15
+ }
16
+ export declare function setupStreamDrainer(stream: NodeJS.ReadableStream, maxBytes: number, spillFilePath?: string, onChunk?: (bytes: number) => void, onData?: (chunk: Buffer) => void, spillInitError?: string): StreamDrainer;
17
+ //# sourceMappingURL=drainer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drainer.d.ts","sourceRoot":"","sources":["../../src/supervisor/drainer.ts"],"names":[],"mappings":"AAGA,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAenD;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMxD;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,mBAAmB,CAAC;IACrC,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,aAAa,EAAE,MAAM,IAAI,CAAC;CAC3B;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,CAAC,cAAc,EAC7B,QAAQ,EAAE,MAAM,EAChB,aAAa,CAAC,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EACjC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EAChC,cAAc,CAAC,EAAE,MAAM,GACtB,aAAa,CA2Kf"}