@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.
- package/README.md +174 -15
- package/dist/capability/check.d.ts +32 -0
- package/dist/capability/check.d.ts.map +1 -0
- package/dist/capability/check.js +136 -0
- package/dist/capability/check.js.map +1 -0
- package/dist/capability/index.d.ts +3 -0
- package/dist/capability/index.d.ts.map +1 -0
- package/dist/capability/index.js +3 -0
- package/dist/capability/index.js.map +1 -0
- package/dist/capability/path-utils.d.ts +11 -0
- package/dist/capability/path-utils.d.ts.map +1 -0
- package/dist/capability/path-utils.js +46 -0
- package/dist/capability/path-utils.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +94 -0
- package/dist/cli.js.map +1 -0
- package/dist/confinement/bubblewrap.d.ts +8 -0
- package/dist/confinement/bubblewrap.d.ts.map +1 -0
- package/dist/confinement/bubblewrap.js +45 -0
- package/dist/confinement/bubblewrap.js.map +1 -0
- package/dist/confinement/detector.d.ts +4 -0
- package/dist/confinement/detector.d.ts.map +1 -0
- package/dist/confinement/detector.js +35 -0
- package/dist/confinement/detector.js.map +1 -0
- package/dist/confinement/index.d.ts +5 -0
- package/dist/confinement/index.d.ts.map +1 -0
- package/dist/confinement/index.js +5 -0
- package/dist/confinement/index.js.map +1 -0
- package/dist/confinement/sandbox-exec.d.ts +8 -0
- package/dist/confinement/sandbox-exec.d.ts.map +1 -0
- package/dist/confinement/sandbox-exec.js +30 -0
- package/dist/confinement/sandbox-exec.js.map +1 -0
- package/dist/confinement/srt.d.ts +8 -0
- package/dist/confinement/srt.d.ts.map +1 -0
- package/dist/confinement/srt.js +41 -0
- package/dist/confinement/srt.js.map +1 -0
- package/dist/domain.d.ts +26 -2
- package/dist/domain.d.ts.map +1 -1
- package/dist/domain.js +192 -18
- package/dist/domain.js.map +1 -1
- package/dist/driver/node-driver.d.ts.map +1 -1
- package/dist/driver/node-driver.js +42 -61
- package/dist/driver/node-driver.js.map +1 -1
- package/dist/driver/reaper-driver.d.ts +62 -0
- package/dist/driver/reaper-driver.d.ts.map +1 -0
- package/dist/driver/reaper-driver.js +371 -0
- package/dist/driver/reaper-driver.js.map +1 -0
- package/dist/driver/spawn-support.d.ts +4 -0
- package/dist/driver/spawn-support.d.ts.map +1 -0
- package/dist/driver/spawn-support.js +31 -0
- package/dist/driver/spawn-support.js.map +1 -0
- package/dist/driver/types.d.ts +19 -2
- package/dist/driver/types.d.ts.map +1 -1
- package/dist/fault/crashpoint.d.ts +8 -0
- package/dist/fault/crashpoint.d.ts.map +1 -0
- package/dist/fault/crashpoint.js +37 -0
- package/dist/fault/crashpoint.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.d.ts +49 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +233 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools.d.ts +32 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +255 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/native/darwin-arm64/xioflow-reaper +0 -0
- package/dist/native/darwin-x64/xioflow-reaper +0 -0
- package/dist/native/linux-arm64/xioflow-reaper +0 -0
- package/dist/native/linux-x64/xioflow-reaper +0 -0
- package/dist/otel/otlp.d.ts +37 -0
- package/dist/otel/otlp.d.ts.map +1 -0
- package/dist/otel/otlp.js +224 -0
- package/dist/otel/otlp.js.map +1 -0
- package/dist/quick-run.d.ts.map +1 -1
- package/dist/quick-run.js +5 -12
- package/dist/quick-run.js.map +1 -1
- package/dist/recovery/engine.d.ts +7 -0
- package/dist/recovery/engine.d.ts.map +1 -1
- package/dist/recovery/engine.js +176 -4
- package/dist/recovery/engine.js.map +1 -1
- package/dist/snapshot/git-shadow.d.ts +57 -0
- package/dist/snapshot/git-shadow.d.ts.map +1 -0
- package/dist/snapshot/git-shadow.js +364 -0
- package/dist/snapshot/git-shadow.js.map +1 -0
- package/dist/store/schema.d.ts +1 -1
- package/dist/store/schema.d.ts.map +1 -1
- package/dist/store/schema.js +31 -0
- package/dist/store/schema.js.map +1 -1
- package/dist/store/sqlite.d.ts +14 -1
- package/dist/store/sqlite.d.ts.map +1 -1
- package/dist/store/sqlite.js +150 -58
- package/dist/store/sqlite.js.map +1 -1
- package/dist/supervisor/admission.d.ts +26 -0
- package/dist/supervisor/admission.d.ts.map +1 -0
- package/dist/supervisor/admission.js +98 -0
- package/dist/supervisor/admission.js.map +1 -0
- package/dist/supervisor/drainer.d.ts +17 -0
- package/dist/supervisor/drainer.d.ts.map +1 -0
- package/dist/supervisor/drainer.js +200 -0
- package/dist/supervisor/drainer.js.map +1 -0
- package/dist/supervisor/finalize.d.ts +21 -0
- package/dist/supervisor/finalize.d.ts.map +1 -0
- package/dist/supervisor/finalize.js +66 -0
- package/dist/supervisor/finalize.js.map +1 -0
- package/dist/supervisor/fingerprint.d.ts +8 -0
- package/dist/supervisor/fingerprint.d.ts.map +1 -0
- package/dist/supervisor/fingerprint.js +54 -0
- package/dist/supervisor/fingerprint.js.map +1 -0
- package/dist/supervisor/process-monitor.d.ts +9 -0
- package/dist/supervisor/process-monitor.d.ts.map +1 -0
- package/dist/supervisor/process-monitor.js +230 -0
- package/dist/supervisor/process-monitor.js.map +1 -0
- package/dist/supervisor/process-output.d.ts +27 -0
- package/dist/supervisor/process-output.d.ts.map +1 -0
- package/dist/supervisor/process-output.js +102 -0
- package/dist/supervisor/process-output.js.map +1 -0
- package/dist/supervisor/process-run.d.ts +30 -0
- package/dist/supervisor/process-run.d.ts.map +1 -0
- package/dist/supervisor/process-run.js +191 -0
- package/dist/supervisor/process-run.js.map +1 -0
- package/dist/supervisor/replay.d.ts +14 -0
- package/dist/supervisor/replay.d.ts.map +1 -0
- package/dist/supervisor/replay.js +70 -0
- package/dist/supervisor/replay.js.map +1 -0
- package/dist/supervisor/rollback.d.ts +8 -0
- package/dist/supervisor/rollback.d.ts.map +1 -0
- package/dist/supervisor/rollback.js +153 -0
- package/dist/supervisor/rollback.js.map +1 -0
- package/dist/supervisor/service.d.ts +24 -0
- package/dist/supervisor/service.d.ts.map +1 -0
- package/dist/supervisor/service.js +588 -0
- package/dist/supervisor/service.js.map +1 -0
- package/dist/supervisor/snapshot-ops.d.ts +36 -0
- package/dist/supervisor/snapshot-ops.d.ts.map +1 -0
- package/dist/supervisor/snapshot-ops.js +243 -0
- package/dist/supervisor/snapshot-ops.js.map +1 -0
- package/dist/supervisor/supervisor.d.ts +62 -30
- package/dist/supervisor/supervisor.d.ts.map +1 -1
- package/dist/supervisor/supervisor.js +164 -842
- package/dist/supervisor/supervisor.js.map +1 -1
- package/dist/supervisor/types.d.ts +64 -0
- package/dist/supervisor/types.d.ts.map +1 -0
- package/dist/supervisor/types.js +2 -0
- package/dist/supervisor/types.js.map +1 -0
- package/dist/testing/contract-suite.d.ts.map +1 -1
- package/dist/testing/contract-suite.js +619 -12
- package/dist/testing/contract-suite.js.map +1 -1
- package/dist/types.d.ts +161 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +8 -0
- package/dist/types.js.map +1 -1
- package/dist/workspace/read-tracking.d.ts +23 -0
- package/dist/workspace/read-tracking.d.ts.map +1 -0
- package/dist/workspace/read-tracking.js +66 -0
- package/dist/workspace/read-tracking.js.map +1 -0
- package/dist/workspace/transactions.d.ts +89 -0
- package/dist/workspace/transactions.d.ts.map +1 -0
- package/dist/workspace/transactions.js +277 -0
- package/dist/workspace/transactions.js.map +1 -0
- package/package.json +8 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/driver/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAkB,MAAM,aAAa,CAAC;AAEzE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAC5B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,GAAG,aAAa,GAAG,kBAAkB,CAAC;AAEzF,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,KAAK,EAAE,cAAc,GAAG,eAAe,GAAG,oBAAoB,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/driver/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const crashpointsEnabled: boolean;
|
|
2
|
+
export declare function crashpoint(label: string): void;
|
|
3
|
+
/**
|
|
4
|
+
* 以调用栈里开启事务的函数名作为崩溃点标签(仅在启用时解析调用栈)。
|
|
5
|
+
* 例如 `SqliteStore.recordOperationResult`、`captureSnapshot`。
|
|
6
|
+
*/
|
|
7
|
+
export declare function callerLabel(depth: number): string;
|
|
8
|
+
//# sourceMappingURL=crashpoint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crashpoint.d.ts","sourceRoot":"","sources":["../../src/fault/crashpoint.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,kBAAkB,SAA+B,CAAC;AAE/D,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAO9C;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKjD"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
/**
|
|
3
|
+
* 崩溃点故障注入(测试专用)。
|
|
4
|
+
*
|
|
5
|
+
* 只在设置了以下环境变量之一时生效,否则 crashpoint() 是一次布尔判断:
|
|
6
|
+
* - XIOFLOW_TEST_CRASHPOINT_TRACE=<file>:把经过的每个崩溃点 id 逐行追加到文件(发现阶段);
|
|
7
|
+
* - XIOFLOW_TEST_CRASHPOINT=<id>:到达该 id 时向自身发送 SIGKILL(注入阶段)。
|
|
8
|
+
*
|
|
9
|
+
* id 形如 `<label>#<第几次到达>`。SIGKILL 不执行任何 finally / exit 钩子,与真实崩溃等价;
|
|
10
|
+
* 故障注入矩阵见 tests/fault/crash-matrix.test.ts。
|
|
11
|
+
*/
|
|
12
|
+
const target = process.env.XIOFLOW_TEST_CRASHPOINT;
|
|
13
|
+
const tracePath = process.env.XIOFLOW_TEST_CRASHPOINT_TRACE;
|
|
14
|
+
const seen = new Map();
|
|
15
|
+
export const crashpointsEnabled = Boolean(target || tracePath);
|
|
16
|
+
export function crashpoint(label) {
|
|
17
|
+
if (!crashpointsEnabled)
|
|
18
|
+
return;
|
|
19
|
+
const n = (seen.get(label) ?? 0) + 1;
|
|
20
|
+
seen.set(label, n);
|
|
21
|
+
const id = `${label}#${n}`;
|
|
22
|
+
if (tracePath)
|
|
23
|
+
fs.appendFileSync(tracePath, `${id}\n`);
|
|
24
|
+
if (id === target)
|
|
25
|
+
process.kill(process.pid, 'SIGKILL');
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* 以调用栈里开启事务的函数名作为崩溃点标签(仅在启用时解析调用栈)。
|
|
29
|
+
* 例如 `SqliteStore.recordOperationResult`、`captureSnapshot`。
|
|
30
|
+
*/
|
|
31
|
+
export function callerLabel(depth) {
|
|
32
|
+
const frames = (new Error().stack ?? '').split('\n').slice(1);
|
|
33
|
+
const frame = frames[depth] ?? '';
|
|
34
|
+
const match = /at (?:async )?([^\s(]+)/.exec(frame);
|
|
35
|
+
return match ? match[1] : 'unknown';
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=crashpoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crashpoint.js","sourceRoot":"","sources":["../../src/fault/crashpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB;;;;;;;;;GASG;AACH,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;AACnD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC;AAC5D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;AAEvC,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC;AAE/D,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,IAAI,CAAC,kBAAkB;QAAE,OAAO;IAChC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACnB,MAAM,EAAE,GAAG,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC;IAC3B,IAAI,SAAS;QAAE,EAAE,CAAC,cAAc,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACvD,IAAI,EAAE,KAAK,MAAM;QAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;AAC1D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,MAAM,MAAM,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACtC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,7 +4,16 @@ export * from './store/schema.js';
|
|
|
4
4
|
export * from './store/sqlite.js';
|
|
5
5
|
export * from './driver/types.js';
|
|
6
6
|
export * from './driver/node-driver.js';
|
|
7
|
+
export * from './driver/reaper-driver.js';
|
|
7
8
|
export * from './supervisor/supervisor.js';
|
|
8
9
|
export * from './recovery/engine.js';
|
|
9
10
|
export * from './quick-run.js';
|
|
11
|
+
export * from './snapshot/git-shadow.js';
|
|
12
|
+
export type { CommitResult, TransactionConflict, TransactionEffects, WorkspaceTransaction, WriteEntry, } from './workspace/transactions.js';
|
|
13
|
+
export type { ReadTracking } from './workspace/read-tracking.js';
|
|
14
|
+
export * from './capability/index.js';
|
|
15
|
+
export * from './confinement/index.js';
|
|
16
|
+
export * from './otel/otlp.js';
|
|
17
|
+
export { KernelMcpServer, SUPPORTED_PROTOCOL_VERSIONS } from './mcp/server.js';
|
|
18
|
+
export type { KernelMcpServerOptions } from './mcp/server.js';
|
|
10
19
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,YAAY,EACV,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,UAAU,GACX,MAAM,6BAA6B,CAAC;AACrC,YAAY,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAC/E,YAAY,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -4,7 +4,13 @@ export * from './store/schema.js';
|
|
|
4
4
|
export * from './store/sqlite.js';
|
|
5
5
|
export * from './driver/types.js';
|
|
6
6
|
export * from './driver/node-driver.js';
|
|
7
|
+
export * from './driver/reaper-driver.js';
|
|
7
8
|
export * from './supervisor/supervisor.js';
|
|
8
9
|
export * from './recovery/engine.js';
|
|
9
10
|
export * from './quick-run.js';
|
|
11
|
+
export * from './snapshot/git-shadow.js';
|
|
12
|
+
export * from './capability/index.js';
|
|
13
|
+
export * from './confinement/index.js';
|
|
14
|
+
export * from './otel/otlp.js';
|
|
15
|
+
export { KernelMcpServer, SUPPORTED_PROTOCOL_VERSIONS } from './mcp/server.js';
|
|
10
16
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AASzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP server(stdio,JSON-RPC 2.0,每行一条消息),零依赖。
|
|
3
|
+
*
|
|
4
|
+
* 启动顺序遵循「先恢复、再执行」(ARCHITECTURE §3.2):获取域、运行恢复引擎,然后才响应请求。
|
|
5
|
+
* stdout 只写协议消息;日志写 stderr。支持 progress 通知(请求带 progressToken 时转发输出块)
|
|
6
|
+
* 与 notifications/cancelled(取消对应的 run_command 操作,走标准停止流水线)。
|
|
7
|
+
*/
|
|
8
|
+
export declare const SUPPORTED_PROTOCOL_VERSIONS: string[];
|
|
9
|
+
export interface KernelMcpServerOptions {
|
|
10
|
+
domainPath: string;
|
|
11
|
+
domainId?: string;
|
|
12
|
+
/** 'auto':helper 可用时用 ReaperPlatformDriver,否则 NodePlatformDriver;实际选择写进 instructions 与每个结果。 */
|
|
13
|
+
driver?: 'auto' | 'node' | 'reaper';
|
|
14
|
+
input?: NodeJS.ReadableStream;
|
|
15
|
+
output?: NodeJS.WritableStream;
|
|
16
|
+
log?: (message: string) => void;
|
|
17
|
+
/** 工具结果中保留的 stdout / stderr 尾部字符数(完整输出见 stdoutRef / stderrRef)。 */
|
|
18
|
+
maxOutputChars?: number;
|
|
19
|
+
/** 周期性把 journal 导出为 OTLP traces;失败写日志且游标不前进,下个周期重试。 */
|
|
20
|
+
otlp?: {
|
|
21
|
+
endpoint: string;
|
|
22
|
+
headers?: Record<string, string>;
|
|
23
|
+
intervalMs?: number;
|
|
24
|
+
serviceName?: string;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export declare class KernelMcpServer {
|
|
28
|
+
private readonly options;
|
|
29
|
+
private readonly log;
|
|
30
|
+
private readonly output;
|
|
31
|
+
private domain?;
|
|
32
|
+
private supervisor?;
|
|
33
|
+
private driver?;
|
|
34
|
+
private instructions;
|
|
35
|
+
private readonly sessionTaskId;
|
|
36
|
+
/** requestId → 该请求启动的操作,用于 notifications/cancelled */
|
|
37
|
+
private readonly inFlight;
|
|
38
|
+
private readonly pending;
|
|
39
|
+
constructor(options: KernelMcpServerOptions);
|
|
40
|
+
/** 获取域并完成恢复后开始服务;输入流结束时等待在途请求、关闭域后返回。 */
|
|
41
|
+
serve(): Promise<void>;
|
|
42
|
+
/** 启动周期导出,返回「停止并最后导出一次」的函数;未配置时为空操作。 */
|
|
43
|
+
private startOtlpExport;
|
|
44
|
+
private handleLine;
|
|
45
|
+
private dispatch;
|
|
46
|
+
private callTool;
|
|
47
|
+
private send;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAcA;;;;;;GAMG;AAEH,eAAO,MAAM,2BAA2B,UAA2D,CAAC;AAEpG,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+FAA+F;IAC/F,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC/B,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uDAAuD;IACvD,IAAI,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1G;AAkCD,qBAAa,eAAe;IAYd,OAAO,CAAC,QAAQ,CAAC,OAAO;IAXpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA4B;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,MAAM,CAAC,CAAkB;IACjC,OAAO,CAAC,UAAU,CAAC,CAAoB;IACvC,OAAO,CAAC,MAAM,CAAC,CAAiB;IAChC,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwC;IACtE,sDAAsD;IACtD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IACtD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IAEpD,YAA6B,OAAO,EAAE,sBAAsB,EAG3D;IAED,yCAAyC;IAC5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CA2BlC;IAED,wCAAwC;IACxC,OAAO,CAAC,eAAe;YAuBT,UAAU;YA0BV,QAAQ;YAwCR,QAAQ;IA0CtB,OAAO,CAAC,IAAI;CAGb"}
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
import crypto from 'node:crypto';
|
|
2
|
+
import fs from 'node:fs';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import readline from 'node:readline';
|
|
5
|
+
import { fileURLToPath } from 'node:url';
|
|
6
|
+
import { ExecutionDomain } from '../domain.js';
|
|
7
|
+
import { NodePlatformDriver } from '../driver/node-driver.js';
|
|
8
|
+
import { ReaperPlatformDriver } from '../driver/reaper-driver.js';
|
|
9
|
+
import { RecoveryEngine } from '../recovery/engine.js';
|
|
10
|
+
import { exportJournalToOtlp } from '../otel/otlp.js';
|
|
11
|
+
import { ProcessSupervisor } from '../supervisor/supervisor.js';
|
|
12
|
+
import { TOOLS } from './tools.js';
|
|
13
|
+
/**
|
|
14
|
+
* MCP server(stdio,JSON-RPC 2.0,每行一条消息),零依赖。
|
|
15
|
+
*
|
|
16
|
+
* 启动顺序遵循「先恢复、再执行」(ARCHITECTURE §3.2):获取域、运行恢复引擎,然后才响应请求。
|
|
17
|
+
* stdout 只写协议消息;日志写 stderr。支持 progress 通知(请求带 progressToken 时转发输出块)
|
|
18
|
+
* 与 notifications/cancelled(取消对应的 run_command 操作,走标准停止流水线)。
|
|
19
|
+
*/
|
|
20
|
+
export const SUPPORTED_PROTOCOL_VERSIONS = ['2025-11-25', '2025-06-18', '2025-03-26', '2024-11-05'];
|
|
21
|
+
class RpcError extends Error {
|
|
22
|
+
code;
|
|
23
|
+
constructor(code, message) {
|
|
24
|
+
super(message);
|
|
25
|
+
this.code = code;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function packageVersion() {
|
|
29
|
+
try {
|
|
30
|
+
const pkg = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '../../package.json');
|
|
31
|
+
return JSON.parse(fs.readFileSync(pkg, 'utf8')).version ?? 'unknown';
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return 'unknown';
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
function selectDriver(choice) {
|
|
38
|
+
if (choice === 'node')
|
|
39
|
+
return new NodePlatformDriver();
|
|
40
|
+
if (choice === 'reaper')
|
|
41
|
+
return new ReaperPlatformDriver();
|
|
42
|
+
return ReaperPlatformDriver.isAvailable() ? new ReaperPlatformDriver() : new NodePlatformDriver();
|
|
43
|
+
}
|
|
44
|
+
export class KernelMcpServer {
|
|
45
|
+
options;
|
|
46
|
+
log;
|
|
47
|
+
output;
|
|
48
|
+
domain;
|
|
49
|
+
supervisor;
|
|
50
|
+
driver;
|
|
51
|
+
instructions = '';
|
|
52
|
+
sessionTaskId = `mcp-session-${crypto.randomUUID()}`;
|
|
53
|
+
/** requestId → 该请求启动的操作,用于 notifications/cancelled */
|
|
54
|
+
inFlight = new Map();
|
|
55
|
+
pending = new Set();
|
|
56
|
+
constructor(options) {
|
|
57
|
+
this.options = options;
|
|
58
|
+
this.log = options.log ?? ((m) => process.stderr.write(`[xioflow-mcp] ${m}\n`));
|
|
59
|
+
this.output = options.output ?? process.stdout;
|
|
60
|
+
}
|
|
61
|
+
/** 获取域并完成恢复后开始服务;输入流结束时等待在途请求、关闭域后返回。 */
|
|
62
|
+
async serve() {
|
|
63
|
+
this.driver = selectDriver(this.options.driver);
|
|
64
|
+
this.domain = ExecutionDomain.acquire(this.options.domainPath, this.options.domainId ?? 'default');
|
|
65
|
+
try {
|
|
66
|
+
const report = await new RecoveryEngine(this.domain, this.driver).recover();
|
|
67
|
+
const isolated = report.recoveredOperations.filter((r) => r.action === 'isolated_indeterminate').length;
|
|
68
|
+
this.log(`domain ${this.options.domainPath} recovered ${report.recoveredOperations.length} operation(s), ${isolated} isolated as indeterminate`);
|
|
69
|
+
this.supervisor = new ProcessSupervisor(this.domain, this.driver);
|
|
70
|
+
this.instructions =
|
|
71
|
+
`xioflow kernel ${packageVersion()} with the ${this.driver.name} driver. ` +
|
|
72
|
+
'Use run_command instead of a plain shell when you need to know for sure what happened: reuse an opId to retry without running twice, ' +
|
|
73
|
+
'and treat "indeterminate" as "stop and ask a human", never as success or failure. ' +
|
|
74
|
+
'Use begin_transaction / commit_transaction when several agents edit the same repository.';
|
|
75
|
+
const stopExport = this.startOtlpExport();
|
|
76
|
+
const lines = readline.createInterface({ input: this.options.input ?? process.stdin, crlfDelay: Infinity });
|
|
77
|
+
for await (const line of lines) {
|
|
78
|
+
if (!line.trim())
|
|
79
|
+
continue;
|
|
80
|
+
const work = this.handleLine(line).catch((err) => this.log(`unhandled: ${err?.stack ?? err}`));
|
|
81
|
+
this.pending.add(work);
|
|
82
|
+
void work.finally(() => this.pending.delete(work));
|
|
83
|
+
}
|
|
84
|
+
await Promise.allSettled([...this.pending]);
|
|
85
|
+
await stopExport();
|
|
86
|
+
}
|
|
87
|
+
finally {
|
|
88
|
+
this.domain.close();
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/** 启动周期导出,返回「停止并最后导出一次」的函数;未配置时为空操作。 */
|
|
92
|
+
startOtlpExport() {
|
|
93
|
+
const otlp = this.options.otlp;
|
|
94
|
+
if (!otlp)
|
|
95
|
+
return async () => { };
|
|
96
|
+
let fromSeq = 0;
|
|
97
|
+
let running = Promise.resolve();
|
|
98
|
+
const exportOnce = () => (running = running.then(async () => {
|
|
99
|
+
try {
|
|
100
|
+
const res = await exportJournalToOtlp(this.domain, { ...otlp, fromSeq });
|
|
101
|
+
fromSeq = res.nextSeq;
|
|
102
|
+
if (res.spanCount > 0)
|
|
103
|
+
this.log(`exported ${res.spanCount} span(s) to ${otlp.endpoint}`);
|
|
104
|
+
}
|
|
105
|
+
catch (err) {
|
|
106
|
+
this.log(`OTLP export failed (will retry): ${err?.message ?? err}`);
|
|
107
|
+
}
|
|
108
|
+
}));
|
|
109
|
+
const timer = setInterval(exportOnce, otlp.intervalMs ?? 5000);
|
|
110
|
+
timer.unref();
|
|
111
|
+
return async () => {
|
|
112
|
+
clearInterval(timer);
|
|
113
|
+
await exportOnce();
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
async handleLine(line) {
|
|
117
|
+
let msg;
|
|
118
|
+
try {
|
|
119
|
+
msg = JSON.parse(line);
|
|
120
|
+
}
|
|
121
|
+
catch {
|
|
122
|
+
this.send({ jsonrpc: '2.0', id: null, error: { code: -32700, message: 'Parse error' } });
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
if (typeof msg.method !== 'string') {
|
|
126
|
+
if (msg.id !== undefined)
|
|
127
|
+
this.log(`ignoring response to request ${String(msg.id)}`);
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
const isNotification = msg.id === undefined || msg.id === null;
|
|
131
|
+
try {
|
|
132
|
+
const result = await this.dispatch(msg.method, msg.params ?? {}, msg.id ?? undefined);
|
|
133
|
+
if (!isNotification)
|
|
134
|
+
this.send({ jsonrpc: '2.0', id: msg.id, result });
|
|
135
|
+
}
|
|
136
|
+
catch (err) {
|
|
137
|
+
if (isNotification) {
|
|
138
|
+
this.log(`notification ${msg.method} failed: ${err?.message ?? err}`);
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
const code = err instanceof RpcError ? err.code : -32603;
|
|
142
|
+
this.send({ jsonrpc: '2.0', id: msg.id, error: { code, message: err?.message ?? String(err) } });
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
async dispatch(method, params, id) {
|
|
146
|
+
switch (method) {
|
|
147
|
+
case 'initialize': {
|
|
148
|
+
const requested = typeof params.protocolVersion === 'string' ? params.protocolVersion : '';
|
|
149
|
+
return {
|
|
150
|
+
protocolVersion: SUPPORTED_PROTOCOL_VERSIONS.includes(requested) ? requested : SUPPORTED_PROTOCOL_VERSIONS[0],
|
|
151
|
+
capabilities: { tools: { listChanged: false } },
|
|
152
|
+
serverInfo: { name: 'xioflow-kernel', title: 'xioflow supervised execution kernel', version: packageVersion() },
|
|
153
|
+
instructions: this.instructions,
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
case 'notifications/initialized':
|
|
157
|
+
return undefined;
|
|
158
|
+
case 'ping':
|
|
159
|
+
return {};
|
|
160
|
+
case 'tools/list':
|
|
161
|
+
return {
|
|
162
|
+
tools: TOOLS.map(({ name, title, description, inputSchema, annotations }) => ({
|
|
163
|
+
name,
|
|
164
|
+
title,
|
|
165
|
+
description,
|
|
166
|
+
inputSchema,
|
|
167
|
+
annotations,
|
|
168
|
+
})),
|
|
169
|
+
};
|
|
170
|
+
case 'tools/call':
|
|
171
|
+
return this.callTool(params, id);
|
|
172
|
+
case 'notifications/cancelled': {
|
|
173
|
+
const opId = this.inFlight.get(String(params.requestId));
|
|
174
|
+
if (opId) {
|
|
175
|
+
this.log(`request ${params.requestId} cancelled by client (${params.reason ?? 'no reason'}), stopping ${opId}`);
|
|
176
|
+
await this.supervisor.cancelOperation(opId).catch((err) => this.log(`cancel ${opId}: ${err.message}`));
|
|
177
|
+
}
|
|
178
|
+
return undefined;
|
|
179
|
+
}
|
|
180
|
+
default:
|
|
181
|
+
throw new RpcError(-32601, `Method not found: ${method}`);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
async callTool(params, id) {
|
|
185
|
+
const tool = TOOLS.find((t) => t.name === params?.name);
|
|
186
|
+
if (!tool)
|
|
187
|
+
throw new RpcError(-32602, `Unknown tool: ${params?.name}`);
|
|
188
|
+
const args = params.arguments ?? {};
|
|
189
|
+
const missing = (tool.inputSchema.required ?? []).filter((k) => args[k] === undefined);
|
|
190
|
+
if (missing.length > 0)
|
|
191
|
+
throw new RpcError(-32602, `${tool.name}: missing required argument(s) ${missing.join(', ')}`);
|
|
192
|
+
const progressToken = params._meta?.progressToken;
|
|
193
|
+
let progress = 0;
|
|
194
|
+
const ctx = {
|
|
195
|
+
domain: this.domain,
|
|
196
|
+
supervisor: this.supervisor,
|
|
197
|
+
driverName: this.driver.name,
|
|
198
|
+
sessionTaskId: this.sessionTaskId,
|
|
199
|
+
maxOutputChars: this.options.maxOutputChars ?? 16_000,
|
|
200
|
+
bindOperation: (opId) => {
|
|
201
|
+
if (id !== undefined)
|
|
202
|
+
this.inFlight.set(String(id), opId);
|
|
203
|
+
},
|
|
204
|
+
onChunk: progressToken === undefined
|
|
205
|
+
? undefined
|
|
206
|
+
: (stream, chunk) => {
|
|
207
|
+
progress += chunk.length;
|
|
208
|
+
this.send({
|
|
209
|
+
jsonrpc: '2.0',
|
|
210
|
+
method: 'notifications/progress',
|
|
211
|
+
params: { progressToken, progress, message: `[${stream}] ${chunk.toString('utf8').slice(0, 2000)}` },
|
|
212
|
+
});
|
|
213
|
+
},
|
|
214
|
+
};
|
|
215
|
+
try {
|
|
216
|
+
const result = await tool.call(ctx, args);
|
|
217
|
+
return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }], structuredContent: result, isError: false };
|
|
218
|
+
}
|
|
219
|
+
catch (err) {
|
|
220
|
+
// 工具执行失败是结果的一部分(MCP 约定),让模型看到原因而不是协议错误
|
|
221
|
+
const error = { error: err?.name ?? 'Error', message: err?.message ?? String(err) };
|
|
222
|
+
return { content: [{ type: 'text', text: JSON.stringify(error, null, 2) }], structuredContent: error, isError: true };
|
|
223
|
+
}
|
|
224
|
+
finally {
|
|
225
|
+
if (id !== undefined)
|
|
226
|
+
this.inFlight.delete(String(id));
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
send(message) {
|
|
230
|
+
this.output.write(`${JSON.stringify(message)}\n`);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ExecutionDomain } from '../domain.js';
|
|
2
|
+
import { ProcessSupervisor } from '../supervisor/supervisor.js';
|
|
3
|
+
/**
|
|
4
|
+
* MCP 工具:把内核原语暴露给任意 MCP 客户端(agent 框架、IDE、CLI agent)。
|
|
5
|
+
* 刻意不暴露 adjudicate:indeterminate 的出口是人工裁决,不交给模型。
|
|
6
|
+
*/
|
|
7
|
+
export interface ToolContext {
|
|
8
|
+
domain: ExecutionDomain;
|
|
9
|
+
supervisor: ProcessSupervisor;
|
|
10
|
+
driverName: string;
|
|
11
|
+
sessionTaskId: string;
|
|
12
|
+
maxOutputChars: number;
|
|
13
|
+
/** 当前请求的流式输出回调(客户端带 progressToken 时才有)。 */
|
|
14
|
+
onChunk?: (stream: 'stdout' | 'stderr', chunk: Buffer) => void;
|
|
15
|
+
/** 把 opId 绑定到当前请求,使 notifications/cancelled 能取消它。 */
|
|
16
|
+
bindOperation(opId: string): void;
|
|
17
|
+
}
|
|
18
|
+
export interface ToolDefinition {
|
|
19
|
+
name: string;
|
|
20
|
+
title: string;
|
|
21
|
+
description: string;
|
|
22
|
+
inputSchema: Record<string, unknown>;
|
|
23
|
+
annotations: {
|
|
24
|
+
readOnlyHint?: boolean;
|
|
25
|
+
destructiveHint?: boolean;
|
|
26
|
+
idempotentHint?: boolean;
|
|
27
|
+
openWorldHint?: boolean;
|
|
28
|
+
};
|
|
29
|
+
call(ctx: ToolContext, args: Record<string, any>): Promise<Record<string, unknown>>;
|
|
30
|
+
}
|
|
31
|
+
export declare const TOOLS: ToolDefinition[];
|
|
32
|
+
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGhE;;;GAGG;AAEH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,eAAe,CAAC;IACxB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,2CAA2C;IAC3C,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/D,qDAAqD;IACrD,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,WAAW,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAC;QAAC,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACtH,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACrF;AA4ED,eAAO,MAAM,KAAK,EAAE,cAAc,EA4LjC,CAAC"}
|