@xioflow/kernel 0.2.0 → 0.4.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 (86) hide show
  1. package/README.md +116 -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/confinement/bubblewrap.d.ts +8 -0
  15. package/dist/confinement/bubblewrap.d.ts.map +1 -0
  16. package/dist/confinement/bubblewrap.js +45 -0
  17. package/dist/confinement/bubblewrap.js.map +1 -0
  18. package/dist/confinement/detector.d.ts +4 -0
  19. package/dist/confinement/detector.d.ts.map +1 -0
  20. package/dist/confinement/detector.js +35 -0
  21. package/dist/confinement/detector.js.map +1 -0
  22. package/dist/confinement/index.d.ts +5 -0
  23. package/dist/confinement/index.d.ts.map +1 -0
  24. package/dist/confinement/index.js +5 -0
  25. package/dist/confinement/index.js.map +1 -0
  26. package/dist/confinement/sandbox-exec.d.ts +8 -0
  27. package/dist/confinement/sandbox-exec.d.ts.map +1 -0
  28. package/dist/confinement/sandbox-exec.js +30 -0
  29. package/dist/confinement/sandbox-exec.js.map +1 -0
  30. package/dist/confinement/srt.d.ts +8 -0
  31. package/dist/confinement/srt.d.ts.map +1 -0
  32. package/dist/confinement/srt.js +41 -0
  33. package/dist/confinement/srt.js.map +1 -0
  34. package/dist/domain.d.ts +46 -2
  35. package/dist/domain.d.ts.map +1 -1
  36. package/dist/domain.js +209 -18
  37. package/dist/domain.js.map +1 -1
  38. package/dist/driver/node-driver.d.ts.map +1 -1
  39. package/dist/driver/node-driver.js +46 -36
  40. package/dist/driver/node-driver.js.map +1 -1
  41. package/dist/driver/types.d.ts +13 -0
  42. package/dist/driver/types.d.ts.map +1 -1
  43. package/dist/index.d.ts +4 -0
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +4 -0
  46. package/dist/index.js.map +1 -1
  47. package/dist/quick-run.d.ts +27 -0
  48. package/dist/quick-run.d.ts.map +1 -0
  49. package/dist/quick-run.js +75 -0
  50. package/dist/quick-run.js.map +1 -0
  51. package/dist/recovery/engine.d.ts +7 -0
  52. package/dist/recovery/engine.d.ts.map +1 -1
  53. package/dist/recovery/engine.js +174 -4
  54. package/dist/recovery/engine.js.map +1 -1
  55. package/dist/snapshot/git-shadow.d.ts +49 -0
  56. package/dist/snapshot/git-shadow.d.ts.map +1 -0
  57. package/dist/snapshot/git-shadow.js +359 -0
  58. package/dist/snapshot/git-shadow.js.map +1 -0
  59. package/dist/store/schema.d.ts +1 -1
  60. package/dist/store/schema.d.ts.map +1 -1
  61. package/dist/store/schema.js +31 -0
  62. package/dist/store/schema.js.map +1 -1
  63. package/dist/store/sqlite.d.ts +17 -1
  64. package/dist/store/sqlite.d.ts.map +1 -1
  65. package/dist/store/sqlite.js +193 -58
  66. package/dist/store/sqlite.js.map +1 -1
  67. package/dist/supervisor/drainer.d.ts +17 -0
  68. package/dist/supervisor/drainer.d.ts.map +1 -0
  69. package/dist/supervisor/drainer.js +200 -0
  70. package/dist/supervisor/drainer.js.map +1 -0
  71. package/dist/supervisor/service.d.ts +24 -0
  72. package/dist/supervisor/service.d.ts.map +1 -0
  73. package/dist/supervisor/service.js +588 -0
  74. package/dist/supervisor/service.js.map +1 -0
  75. package/dist/supervisor/supervisor.d.ts +62 -4
  76. package/dist/supervisor/supervisor.d.ts.map +1 -1
  77. package/dist/supervisor/supervisor.js +1037 -562
  78. package/dist/supervisor/supervisor.js.map +1 -1
  79. package/dist/testing/contract-suite.d.ts.map +1 -1
  80. package/dist/testing/contract-suite.js +748 -2
  81. package/dist/testing/contract-suite.js.map +1 -1
  82. package/dist/types.d.ts +175 -2
  83. package/dist/types.d.ts.map +1 -1
  84. package/dist/types.js +39 -1
  85. package/dist/types.js.map +1 -1
  86. package/package.json +1 -1
@@ -1,12 +1,16 @@
1
1
  import { ExecutionDomain } from '../domain.js';
2
2
  import { PlatformDriver, StructuredCommand, StopProcessResult } from '../driver/types.js';
3
- import { ProcessOperationResult, TerminationReason, ResourceBudget } from '../types.js';
3
+ import { ProcessOperationResult, TerminationReason, ResourceBudget, ServiceSpec, ServiceHandle, SnapshotDriver, SnapshotOperationResult, RollbackOperationResult, ConfinementDriver } from '../types.js';
4
4
  export interface ExecuteProcessOptions {
5
5
  runId: string;
6
6
  opId: string;
7
7
  name: string;
8
8
  command: StructuredCommand;
9
- requiredResources: string[];
9
+ requiredResources?: string[];
10
+ mutationRoots?: string[];
11
+ capabilityId?: string;
12
+ confinement?: boolean | string;
13
+ confinementDriver?: ConfinementDriver;
10
14
  timeoutMs?: number;
11
15
  inputFingerprint?: string;
12
16
  maxOutputBytes?: number;
@@ -14,12 +18,32 @@ export interface ExecuteProcessOptions {
14
18
  resourceBudget?: ResourceBudget;
15
19
  waitTimeoutMs?: number;
16
20
  artifactsDir?: string;
21
+ abortSignal?: AbortSignal;
17
22
  /**
18
23
  * 流式投影:每个 stdout/stderr chunk 原样转发,不做缓冲或截断。
19
24
  * 回调抛错不会中断排空,首个错误以 result.streamCallbackError 记录。
20
25
  */
21
26
  onStreamChunk?: (stream: 'stdout' | 'stderr', chunk: Buffer) => void;
22
27
  }
28
+ export interface CaptureSnapshotOptions {
29
+ runId: string;
30
+ opId: string;
31
+ roots?: string[];
32
+ capabilityId?: string;
33
+ includeIgnored?: boolean;
34
+ maxTreeSizeBytes?: number;
35
+ timeoutMs?: number;
36
+ }
37
+ export interface RollbackOptions {
38
+ runId: string;
39
+ opId: string;
40
+ snapshotId: string;
41
+ roots?: string[];
42
+ capabilityId?: string;
43
+ force?: boolean;
44
+ timeoutMs?: number;
45
+ }
46
+ export declare function normalizeResourceName(res: string): string;
23
47
  /**
24
48
  * 规范化计算完整输入的 SHA-256 指纹 (ARCHITECTURE §2 / P0-12)
25
49
  * 覆盖 execPath, args, cwd, 键排序的 envWhiteList, inheritEnv, sha256(stdin), 排序后的 requiredResources, timeoutMs, resourceBudget.
@@ -29,9 +53,44 @@ export declare class ProcessSupervisor {
29
53
  private readonly domain;
30
54
  private readonly driver;
31
55
  private activeOperations;
32
- constructor(domain: ExecutionDomain, driver: PlatformDriver);
56
+ private serviceSupervisor;
57
+ private snapshotDriver;
58
+ private confinementDriver?;
59
+ constructor(domain: ExecutionDomain, driver?: PlatformDriver, snapshotDriver?: SnapshotDriver, confinementDriver?: ConfinementDriver);
33
60
  getDomain(): ExecutionDomain;
34
61
  getDriver(): PlatformDriver;
62
+ getSnapshotDriver(): SnapshotDriver;
63
+ setConfinementDriver(driver: ConfinementDriver): void;
64
+ getConfinementDriver(): ConfinementDriver | undefined;
65
+ startService(spec: ServiceSpec): Promise<ServiceHandle>;
66
+ /**
67
+ * 快照捕获协议 (ARCHITECTURE §3.5 / 契约 #32, #53)
68
+ */
69
+ captureSnapshot(options: CaptureSnapshotOptions): Promise<SnapshotOperationResult>;
70
+ /**
71
+ * 回滚协议 (ARCHITECTURE §3.5 / 契约 #28–#30, #56)
72
+ */
73
+ rollback(options: RollbackOptions): Promise<RollbackOperationResult>;
74
+ /**
75
+ * 分叉工作区 Materialize (ARCHITECTURE §3.5 / 契约 #54)
76
+ */
77
+ materialize(snapshotId: string, newRoot: string): Promise<{
78
+ worktreePath: string;
79
+ }>;
80
+ /**
81
+ * 回收分叉工作区 Dematerialize (ARCHITECTURE §3.5 / 契约 #54)
82
+ */
83
+ dematerialize(newRoot: string, options?: {
84
+ force?: boolean;
85
+ }): Promise<void>;
86
+ /**
87
+ * 回收快照:删除驱动侧的私有 ref 与 store 记录,并写 SNAPSHOT_PRUNED。
88
+ * 宿主按自己的保留策略调用(例如每轮只保留会话基线与当前轮检查点),否则快照 ref 会无限累积。
89
+ * 未知 id 视为已回收(幂等);驱动删除失败直接抛出,store 记录保留,便于重试。
90
+ */
91
+ pruneSnapshots(snapshotIds: string[], options?: {
92
+ runId?: string;
93
+ }): Promise<string[]>;
35
94
  /**
36
95
  * 启动协议:准入检查 -> 先持久化意图 -> 请求驱动启动 -> 登记身份并转 active -> 监督运行 -> 记录结果
37
96
  */
@@ -51,6 +110,5 @@ export declare class ProcessSupervisor {
51
110
  retained: string[];
52
111
  };
53
112
  private finalizeOperation;
54
- private setupStreamDrainer;
55
113
  }
56
114
  //# sourceMappingURL=supervisor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"supervisor.d.ts","sourceRoot":"","sources":["../../src/supervisor/supervisor.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EACL,cAAc,EACd,iBAAiB,EAGjB,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAGL,sBAAsB,EAGtB,iBAAiB,EACjB,cAAc,EAIf,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,iBAAiB,CAAC;IAC3B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACtE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM,CAmC9E;AAuDD,qBAAa,iBAAiB;IAI1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJzB,OAAO,CAAC,gBAAgB,CAAgD;IAExE,YACmB,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,cAAc,EAGxC;IAEM,SAAS,IAAI,eAAe,CAElC;IAEM,SAAS,IAAI,cAAc,CAEjC;IAED;;OAEG;IACU,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAgf3F;IAED;;OAEG;IACU,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,MAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAsB7F;IAEY,kBAAkB,CAC7B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,CAAC,CAiD5B;IAED,OAAO,CAAC,qBAAqB;IAwB7B,OAAO,CAAC,0BAA0B;IA+C3B,cAAc,CAAC,MAAM,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG;QACzE,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAEA;IAED,OAAO,CAAC,iBAAiB;IAqDzB,OAAO,CAAC,kBAAkB;CAmL3B"}
1
+ {"version":3,"file":"supervisor.d.ts","sourceRoot":"","sources":["../../src/supervisor/supervisor.ts"],"names":[],"mappings":"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"}