@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
@@ -0,0 +1,30 @@
1
+ import fs from 'node:fs';
2
+ import { resolveRealPath } from '../capability/path-utils.js';
3
+ export class SandboxExecConfinementDriver {
4
+ name = 'sandbox-exec';
5
+ static isAvailable() {
6
+ return process.platform === 'darwin' && fs.existsSync('/usr/bin/sandbox-exec');
7
+ }
8
+ wrap(command, writableRoots) {
9
+ if (!SandboxExecConfinementDriver.isAvailable()) {
10
+ throw new Error("Confinement driver 'sandbox-exec' is not available on this platform");
11
+ }
12
+ const realRoots = writableRoots.map((r) => resolveRealPath(r));
13
+ const profileLines = [
14
+ '(version 1)',
15
+ '(allow default)',
16
+ '(deny file-write*)',
17
+ '(allow file-write* (subpath "/dev"))',
18
+ ];
19
+ for (const root of realRoots) {
20
+ profileLines.push(`(allow file-write* (subpath ${JSON.stringify(root)}))`);
21
+ }
22
+ const profile = profileLines.join('\n');
23
+ return {
24
+ ...command,
25
+ execPath: '/usr/bin/sandbox-exec',
26
+ args: ['-p', profile, command.execPath, ...command.args],
27
+ };
28
+ }
29
+ }
30
+ //# sourceMappingURL=sandbox-exec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sandbox-exec.js","sourceRoot":"","sources":["../../src/confinement/sandbox-exec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AAGzB,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,MAAM,OAAO,4BAA4B;IACvB,IAAI,GAAG,cAAc,CAAC;IAE/B,MAAM,CAAC,WAAW;QACvB,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,EAAE,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;IACjF,CAAC;IAEM,IAAI,CAAC,OAA0B,EAAE,aAAuB;QAC7D,IAAI,CAAC,4BAA4B,CAAC,WAAW,EAAE,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;QACzF,CAAC;QAED,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,MAAM,YAAY,GAAa;YAC7B,aAAa;YACb,iBAAiB;YACjB,oBAAoB;YACpB,sCAAsC;SACvC,CAAC;QAEF,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,YAAY,CAAC,IAAI,CAAC,+BAA+B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7E,CAAC;QAED,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAExC,OAAO;YACL,GAAG,OAAO;YACV,QAAQ,EAAE,uBAAuB;YACjC,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;SACzD,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,8 @@
1
+ import { ConfinementDriver } from '../types.js';
2
+ import { StructuredCommand } from '../driver/types.js';
3
+ export declare class SrtConfinementDriver implements ConfinementDriver {
4
+ readonly name = "srt";
5
+ static isAvailable(): boolean;
6
+ wrap(command: StructuredCommand, writableRoots: string[]): StructuredCommand;
7
+ }
8
+ //# sourceMappingURL=srt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"srt.d.ts","sourceRoot":"","sources":["../../src/confinement/srt.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAiBvD,qBAAa,oBAAqB,YAAW,iBAAiB;IAC5D,SAAgB,IAAI,SAAS;IAE7B,OAAc,WAAW,IAAI,OAAO,CAEnC;IAEM,IAAI,CAAC,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,iBAAiB,CAkBlF;CACF"}
@@ -0,0 +1,41 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import { resolveRealPath } from '../capability/path-utils.js';
4
+ function findExecutable(name) {
5
+ const envPath = process.env.PATH || '';
6
+ const dirs = envPath.split(path.delimiter);
7
+ for (const dir of dirs) {
8
+ const candidate = path.join(dir, name);
9
+ try {
10
+ if (fs.existsSync(candidate) && (fs.statSync(candidate).mode & 0o111)) {
11
+ return candidate;
12
+ }
13
+ }
14
+ catch { }
15
+ }
16
+ return null;
17
+ }
18
+ export class SrtConfinementDriver {
19
+ name = 'srt';
20
+ static isAvailable() {
21
+ return findExecutable('srt') !== null;
22
+ }
23
+ wrap(command, writableRoots) {
24
+ const srtPath = findExecutable('srt');
25
+ if (!srtPath) {
26
+ throw new Error("Confinement driver 'srt' is not available on this system");
27
+ }
28
+ const realRoots = writableRoots.map((r) => resolveRealPath(r));
29
+ const srtArgs = [];
30
+ for (const root of realRoots) {
31
+ srtArgs.push('-w', root);
32
+ }
33
+ srtArgs.push('--', command.execPath, ...command.args);
34
+ return {
35
+ ...command,
36
+ execPath: srtPath,
37
+ args: srtArgs,
38
+ };
39
+ }
40
+ }
41
+ //# sourceMappingURL=srt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"srt.js","sourceRoot":"","sources":["../../src/confinement/srt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,SAAS,cAAc,CAAC,IAAY;IAClC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IACvC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC;YACH,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;gBACtE,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,OAAO,oBAAoB;IACf,IAAI,GAAG,KAAK,CAAC;IAEtB,MAAM,CAAC,WAAW;QACvB,OAAO,cAAc,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;IACxC,CAAC;IAEM,IAAI,CAAC,OAA0B,EAAE,aAAuB;QAC7D,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAC9E,CAAC;QAED,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAEtD,OAAO;YACL,GAAG,OAAO;YACV,QAAQ,EAAE,OAAO;YACjB,IAAI,EAAE,OAAO;SACd,CAAC;IACJ,CAAC;CACF"}
package/dist/domain.d.ts CHANGED
@@ -1,7 +1,25 @@
1
1
  import { SqliteStore } from './store/sqlite.js';
2
2
  import { PlatformDriver } from './driver/types.js';
3
- import { Operation, OwnerRecord, ResourceBudget, DomainBudget, DomainLockedError, ResourceConflictError, EpochFencedError, TerminationReason, AdjudicationRecord } from './types.js';
4
- export { DomainLockedError, ResourceConflictError, EpochFencedError, AdjudicationRecord };
3
+ import { Operation, ResourceLease, OwnerRecord, ResourceBudget, DomainBudget, DomainLockedError, ResourceConflictError, EpochFencedError, TerminationReason, AdjudicationRecord, Task, Run, SnapshotDriver, Capability, CapabilityScope, CapabilityViolationError } from './types.js';
4
+ export { DomainLockedError, ResourceConflictError, EpochFencedError, AdjudicationRecord, CapabilityViolationError };
5
+ export interface DomainStatus {
6
+ domainId: string;
7
+ domainPath: string;
8
+ epoch: number;
9
+ owner: OwnerRecord;
10
+ tasks: Task[];
11
+ runs: Run[];
12
+ activeRuns: Run[];
13
+ operations: (Operation & {
14
+ domainId: string;
15
+ })[];
16
+ unfinishedOperations: (Operation & {
17
+ domainId: string;
18
+ })[];
19
+ leases: (ResourceLease & {
20
+ budget?: ResourceBudget;
21
+ })[];
22
+ }
5
23
  export declare class ExecutionDomain {
6
24
  readonly domainPath: string;
7
25
  readonly domainId: string;
@@ -24,6 +42,8 @@ export declare class ExecutionDomain {
24
42
  getEpoch(): number;
25
43
  setDomainBudget(budget: DomainBudget): void;
26
44
  getDomainBudget(): DomainBudget | undefined;
45
+ get status(): DomainStatus;
46
+ getStatus(): DomainStatus;
27
47
  /**
28
48
  * 启动时优先重建隔离屏障 (Recovery-Before-Execution)
29
49
  */
@@ -54,6 +74,10 @@ export declare class ExecutionDomain {
54
74
  cancelWait(operationId: string): boolean;
55
75
  private processWaitQueue;
56
76
  setDriver(driver: PlatformDriver): void;
77
+ getDriver(): PlatformDriver | undefined;
78
+ private snapshotDriver?;
79
+ setSnapshotDriver(driver: SnapshotDriver): void;
80
+ getSnapshotDriver(): SnapshotDriver | undefined;
57
81
  /**
58
82
  * 内部私有资源释放(走代际栅栏并记录 RESOURCES_RELEASED 事件,§0.2 裁决 1 / N6)
59
83
  * @internal 仅供 supervisor、recovery engine 与 adjudicate 等内核内部组件调用
@@ -84,6 +108,26 @@ export declare class ExecutionDomain {
84
108
  deleted: string[];
85
109
  retained: string[];
86
110
  };
111
+ /**
112
+ * 签发受管 Capability(ARCHITECTURE §0.2 裁决 9 / 契约 #55)
113
+ */
114
+ issueCapability(scope: CapabilityScope, actor: string, ttlMs: number): Capability;
115
+ /**
116
+ * 收窄 Capability 作用域(只能收窄,禁止放宽)
117
+ */
118
+ attenuate(capId: string, narrowerScope: Partial<CapabilityScope>, actor: string, ttlMs?: number): Capability;
119
+ /**
120
+ * 撤销 Capability
121
+ */
122
+ revokeCapability(capId: string, actor: string): void;
123
+ getCapability(capId: string): Capability | null;
124
+ checkCapabilityAdmission(options: {
125
+ capabilityId: string;
126
+ requiredResources?: string[];
127
+ mutationRoots?: string[];
128
+ runId?: string;
129
+ opId?: string;
130
+ }): import("./capability/check.js").CapabilityAdmissionResult;
87
131
  isClosed(): boolean;
88
132
  close(): void;
89
133
  }
@@ -1 +1 @@
1
- {"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../src/domain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../src/domain.ts"],"names":[],"mappings":"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"}
package/dist/domain.js CHANGED
@@ -2,8 +2,9 @@ import fs from 'node:fs';
2
2
  import path from 'node:path';
3
3
  import os from 'node:os';
4
4
  import { SqliteStore } from './store/sqlite.js';
5
- import { DomainLockedError, ResourceConflictError, EpochFencedError, } from './types.js';
6
- export { DomainLockedError, ResourceConflictError, EpochFencedError };
5
+ import { DomainLockedError, ResourceConflictError, EpochFencedError, CapabilityViolationError, } from './types.js';
6
+ import { normalizeScope, validateScopeNarrowing, checkCapabilityAdmission, } from './capability/index.js';
7
+ export { DomainLockedError, ResourceConflictError, EpochFencedError, CapabilityViolationError };
7
8
  export class ExecutionDomain {
8
9
  domainPath;
9
10
  domainId;
@@ -153,6 +154,23 @@ export class ExecutionDomain {
153
154
  getDomainBudget() {
154
155
  return this.domainBudget;
155
156
  }
157
+ get status() {
158
+ return this.getStatus();
159
+ }
160
+ getStatus() {
161
+ return {
162
+ domainId: this.domainId,
163
+ domainPath: this.domainPath,
164
+ epoch: this.getEpoch(),
165
+ owner: this.getOwnerRecord(),
166
+ tasks: this.store.getAllTasks(this.domainId),
167
+ runs: this.store.getAllRuns(this.domainId),
168
+ activeRuns: this.store.getActiveRuns(this.domainId),
169
+ operations: this.store.getAllOperations(this.domainId),
170
+ unfinishedOperations: this.store.getUnfinishedOperations(this.domainId),
171
+ leases: this.store.getPersistedResourceLeases(this.domainId),
172
+ };
173
+ }
156
174
  /**
157
175
  * 启动时优先重建隔离屏障 (Recovery-Before-Execution)
158
176
  */
@@ -238,6 +256,13 @@ export class ExecutionDomain {
238
256
  return new ResourceConflictError(res, existingOwner, operationId, waitedDurationMs);
239
257
  }
240
258
  }
259
+ // 资源当前空闲但已被更早的排队者预订:报出排在前面的那个操作
260
+ for (const res of resources) {
261
+ const earlier = this.waitQueue.find((item) => item.operationId !== operationId && item.resources.includes(res));
262
+ if (earlier) {
263
+ return new ResourceConflictError(res, earlier.operationId, operationId, waitedDurationMs);
264
+ }
265
+ }
241
266
  if (this.domainBudget && this.domainBudget.maxConcurrentOps) {
242
267
  const activeOps = this.getActiveOperationIds();
243
268
  if (activeOps.size >= this.domainBudget.maxConcurrentOps && !activeOps.has(operationId)) {
@@ -287,8 +312,12 @@ export class ExecutionDomain {
287
312
  return;
288
313
  }
289
314
  const startTime = Date.now();
290
- // 如果队列为空,尝试直接分配
291
- if (this.waitQueue.length === 0) {
315
+ // FIFO 公平只约束争用同一资源的请求(与 processWaitQueue 同一口径):
316
+ // 与排队者没有资源交集的新请求直接尝试分配,不被无关的队头阻塞,
317
+ // 也不会因为"队列非空"被当成冲突拒绝(例如不申请任何资源的只读操作)。
318
+ const queuedResources = new Set(this.waitQueue.flatMap((item) => item.resources));
319
+ const overlapsQueue = resources.some((r) => queuedResources.has(r));
320
+ if (!overlapsQueue) {
292
321
  try {
293
322
  this.allocateResources(operationId, resources, 0, budget);
294
323
  return;
@@ -303,7 +332,7 @@ export class ExecutionDomain {
303
332
  }
304
333
  }
305
334
  else {
306
- // 队列中已有排队者:若不愿等待则直接抛出诊断
335
+ // 与更早的排队者争用同一资源:若不愿等待则直接抛出诊断
307
336
  if (maxWaitMs <= 0) {
308
337
  throw this.diagnoseConflict(operationId, resources, 0, budget);
309
338
  }
@@ -414,6 +443,16 @@ export class ExecutionDomain {
414
443
  setDriver(driver) {
415
444
  this.driver = driver;
416
445
  }
446
+ getDriver() {
447
+ return this.driver;
448
+ }
449
+ snapshotDriver;
450
+ setSnapshotDriver(driver) {
451
+ this.snapshotDriver = driver;
452
+ }
453
+ getSnapshotDriver() {
454
+ return this.snapshotDriver;
455
+ }
417
456
  /**
418
457
  * 内部私有资源释放(走代际栅栏并记录 RESOURCES_RELEASED 事件,§0.2 裁决 1 / N6)
419
458
  * @internal 仅供 supervisor、recovery engine 与 adjudicate 等内核内部组件调用
@@ -471,12 +510,19 @@ export class ExecutionDomain {
471
510
  const residualPids = [];
472
511
  const pid = op.processIdentity?.pid;
473
512
  const pgid = op.processIdentity?.pgid;
474
- if (pid) {
513
+ // kill(0) 探活:ESRCH 才是"不存在";EPERM 表示进程存在但无权发信号,必须当作存活
514
+ const probeAlive = (target) => {
475
515
  try {
476
- process.kill(pid, 0);
477
- residualPids.push(pid);
516
+ process.kill(target, 0);
517
+ return true;
478
518
  }
479
- catch { }
519
+ catch (err) {
520
+ return err?.code === 'EPERM';
521
+ }
522
+ };
523
+ let evidenceError;
524
+ if (pid && probeAlive(pid)) {
525
+ residualPids.push(pid);
480
526
  }
481
527
  if (pgid !== undefined) {
482
528
  if (this.driver && this.driver.getGroupEvidence) {
@@ -488,17 +534,17 @@ export class ExecutionDomain {
488
534
  }
489
535
  }
490
536
  }
491
- catch { }
492
- }
493
- else {
494
- try {
495
- process.kill(-pgid, 0);
496
- if (pid && !residualPids.includes(pid)) {
497
- residualPids.push(pid);
498
- }
537
+ catch (err) {
538
+ evidenceError = err?.message ?? String(err);
499
539
  }
500
- catch { }
501
540
  }
541
+ else if (probeAlive(-pgid) && pid && !residualPids.includes(pid)) {
542
+ residualPids.push(pid);
543
+ }
544
+ }
545
+ // 残留扫描本身失败时无法证明"已停止",不能放行 confirmed_stopped
546
+ if (verdict === 'confirmed_stopped' && evidenceError !== undefined) {
547
+ throw new Error(`Cannot adjudicate operation "${opId}" as 'confirmed_stopped': residual scan of process group ${pgid} failed: ${evidenceError}`);
502
548
  }
503
549
  if (verdict === 'confirmed_stopped' && residualPids.length > 0) {
504
550
  throw new Error(`Cannot adjudicate operation "${opId}" as 'confirmed_stopped': residual processes are still alive: [${residualPids.join(', ')}]. Use 'abandon_with_residuals' or ensure processes are terminated first.`);
@@ -637,6 +683,151 @@ export class ExecutionDomain {
637
683
  }
638
684
  return { deleted, retained };
639
685
  }
686
+ /**
687
+ * 签发受管 Capability(ARCHITECTURE §0.2 裁决 9 / 契约 #55)
688
+ */
689
+ issueCapability(scope, actor, ttlMs) {
690
+ if (this.isFenced) {
691
+ throw new EpochFencedError(this.domainId, this.ownerRecord.epoch, this.ownerRecord.epoch);
692
+ }
693
+ const now = new Date();
694
+ const expiresAt = new Date(now.getTime() + ttlMs).toISOString();
695
+ const id = `cap-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
696
+ const normalizedScope = normalizeScope(scope);
697
+ const cap = {
698
+ id,
699
+ domainId: this.domainId,
700
+ scope: normalizedScope,
701
+ issuedBy: actor,
702
+ expiresAt,
703
+ epoch: this.getEpoch(),
704
+ createdAt: now.toISOString(),
705
+ };
706
+ this.store.recordCapability(cap);
707
+ this.store.recordJournalEvent({
708
+ domainId: this.domainId,
709
+ type: 'CAPABILITY_ISSUED',
710
+ payload: {
711
+ capabilityId: id,
712
+ actor,
713
+ scope: normalizedScope,
714
+ expiresAt,
715
+ epoch: cap.epoch,
716
+ },
717
+ timestamp: cap.createdAt,
718
+ });
719
+ return cap;
720
+ }
721
+ /**
722
+ * 收窄 Capability 作用域(只能收窄,禁止放宽)
723
+ */
724
+ attenuate(capId, narrowerScope, actor, ttlMs) {
725
+ if (this.isFenced) {
726
+ throw new EpochFencedError(this.domainId, this.ownerRecord.epoch, this.ownerRecord.epoch);
727
+ }
728
+ const parent = this.store.getCapability(capId);
729
+ if (!parent) {
730
+ throw new CapabilityViolationError('revoked', `Parent capability '${capId}' not found`);
731
+ }
732
+ if (parent.epoch !== this.getEpoch()) {
733
+ throw new CapabilityViolationError('epoch_mismatch', `Parent capability '${capId}' epoch ${parent.epoch} does not match current epoch ${this.getEpoch()}`);
734
+ }
735
+ if (parent.revokedAt) {
736
+ throw new CapabilityViolationError('revoked', `Parent capability '${capId}' is revoked`);
737
+ }
738
+ const now = Date.now();
739
+ const parentExpiry = new Date(parent.expiresAt).getTime();
740
+ if (parentExpiry <= now) {
741
+ throw new CapabilityViolationError('expired', `Parent capability '${capId}' has expired`);
742
+ }
743
+ // 递归校验祖先链是否有效
744
+ let curAncestorId = parent.parentId;
745
+ while (curAncestorId) {
746
+ const anc = this.store.getCapability(curAncestorId);
747
+ if (!anc || anc.revokedAt) {
748
+ throw new CapabilityViolationError('revoked', `Parent capability ancestor '${curAncestorId}' was revoked or not found`);
749
+ }
750
+ if (anc.epoch !== this.getEpoch()) {
751
+ throw new CapabilityViolationError('epoch_mismatch', `Parent capability ancestor '${curAncestorId}' epoch mismatch`);
752
+ }
753
+ if (new Date(anc.expiresAt).getTime() <= now) {
754
+ throw new CapabilityViolationError('expired', `Parent capability ancestor '${curAncestorId}' has expired`);
755
+ }
756
+ curAncestorId = anc.parentId;
757
+ }
758
+ // 校验并生成收窄 scope(放宽时内部抛出 attenuation_widened 错误)
759
+ const childScope = validateScopeNarrowing(parent.scope, narrowerScope);
760
+ let childExpiresAt = parent.expiresAt;
761
+ if (ttlMs !== undefined) {
762
+ const requestedExpiry = now + ttlMs;
763
+ const effectiveExpiry = Math.min(requestedExpiry, parentExpiry);
764
+ childExpiresAt = new Date(effectiveExpiry).toISOString();
765
+ }
766
+ const id = `cap-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
767
+ const childCap = {
768
+ id,
769
+ domainId: this.domainId,
770
+ parentId: parent.id,
771
+ scope: childScope,
772
+ issuedBy: actor,
773
+ expiresAt: childExpiresAt,
774
+ epoch: this.getEpoch(),
775
+ createdAt: new Date().toISOString(),
776
+ };
777
+ this.store.recordCapability(childCap);
778
+ this.store.recordJournalEvent({
779
+ domainId: this.domainId,
780
+ type: 'CAPABILITY_ATTENUATED',
781
+ payload: {
782
+ capabilityId: id,
783
+ parentId: parent.id,
784
+ actor,
785
+ scope: childScope,
786
+ expiresAt: childExpiresAt,
787
+ epoch: childCap.epoch,
788
+ },
789
+ timestamp: childCap.createdAt,
790
+ });
791
+ return childCap;
792
+ }
793
+ /**
794
+ * 撤销 Capability
795
+ */
796
+ revokeCapability(capId, actor) {
797
+ if (this.isFenced) {
798
+ throw new EpochFencedError(this.domainId, this.ownerRecord.epoch, this.ownerRecord.epoch);
799
+ }
800
+ const cap = this.store.getCapability(capId);
801
+ if (!cap)
802
+ return;
803
+ const now = new Date().toISOString();
804
+ this.store.revokeCapability(capId, this.domainId, now);
805
+ this.store.recordJournalEvent({
806
+ domainId: this.domainId,
807
+ type: 'CAPABILITY_REVOKED',
808
+ payload: {
809
+ capabilityId: capId,
810
+ actor,
811
+ revokedAt: now,
812
+ },
813
+ timestamp: now,
814
+ });
815
+ }
816
+ getCapability(capId) {
817
+ return this.store.getCapability(capId);
818
+ }
819
+ checkCapabilityAdmission(options) {
820
+ return checkCapabilityAdmission({
821
+ domainId: this.domainId,
822
+ currentEpoch: this.getEpoch(),
823
+ store: this.store,
824
+ capabilityId: options.capabilityId,
825
+ requiredResources: options.requiredResources,
826
+ mutationRoots: options.mutationRoots,
827
+ runId: options.runId,
828
+ opId: options.opId,
829
+ });
830
+ }
640
831
  isClosed() {
641
832
  return this.lockFd === null;
642
833
  }
@@ -1 +1 @@
1
- {"version":3,"file":"domain.js","sourceRoot":"","sources":["../src/domain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"domain.js","sourceRoot":"","sources":["../src/domain.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"node-driver.d.ts","sourceRoot":"","sources":["../../src/driver/node-driver.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAyBzD,qBAAa,kBAAmB,YAAW,cAAc;IACvD,SAAgB,IAAI,kBAAkB;IACtC,OAAO,CAAC,YAAY,CAAwC;IAC5D,OAAO,CAAC,OAAO,CAAgD;IAElD,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAEhD;IAEY,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,EAAE,CAAC,CAElG;IAED,SAAgB,YAAY,EAAE,oBAAoB,CAahD;IAGF,OAAO,CAAC,aAAa,CACT;IAEZ,OAAO,CAAC,wBAAwB,CAAuC;IACvE,OAAO,CAAC,WAAW,CAA+B;IAErC,KAAK,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA4J5E;IAED,OAAO,CAAC,kBAAkB;IAoB1B,OAAO,CAAC,gBAAgB;IAOX,cAAc,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAyD1F;IAEY,SAAS,CACpB,QAAQ,EAAE,eAAe,EACzB,OAAO,GAAE,MAAa,GACrB,OAAO,CAAC,iBAAiB,CAAC,CAsE5B;IAEY,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,MAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAkC5F;IAEY,aAAa,CACxB,QAAQ,EAAE,eAAe,GACxB,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAWrE;IAED,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,iBAAiB;YAaX,mBAAmB;CAwBlC"}
1
+ {"version":3,"file":"node-driver.d.ts","sourceRoot":"","sources":["../../src/driver/node-driver.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AA+BzD,qBAAa,kBAAmB,YAAW,cAAc;IACvD,SAAgB,IAAI,kBAAkB;IACtC,OAAO,CAAC,YAAY,CAAwC;IAC5D,OAAO,CAAC,OAAO,CAAgD;IAElD,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAEhD;IAEY,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,EAAE,CAAC,CAElG;IAED,SAAgB,YAAY,EAAE,oBAAoB,CAchD;IAGF,OAAO,CAAC,aAAa,CACT;IAEZ,OAAO,CAAC,wBAAwB,CAAuC;IACvE,OAAO,CAAC,WAAW,CAA+B;IAErC,KAAK,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAyK5E;IAED,OAAO,CAAC,kBAAkB;IAoB1B,OAAO,CAAC,gBAAgB;IAOX,cAAc,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,0BAA0B,CAAC,CA2C1F;IAEY,SAAS,CACpB,QAAQ,EAAE,eAAe,EACzB,OAAO,GAAE,MAAa,GACrB,OAAO,CAAC,iBAAiB,CAAC,CAsE5B;IAEY,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,MAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAkC5F;IAEY,aAAa,CACxB,QAAQ,EAAE,eAAe,GACxB,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAWrE;IAED,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,iBAAiB;YAaX,mBAAmB;CAwBlC"}