@actiondock/core 2.7.0 → 2.9.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 +77 -64
- package/dist/catalog/action-catalog.d.ts +56 -0
- package/dist/catalog/action-catalog.js +202 -0
- package/dist/catalog/discovery.d.ts +60 -0
- package/dist/catalog/discovery.js +119 -0
- package/dist/catalog/graph.d.ts +190 -0
- package/dist/catalog/graph.js +589 -0
- package/dist/catalog/index.d.ts +5 -5
- package/dist/catalog/index.js +5 -5
- package/dist/catalog/resolve-action.d.ts +43 -0
- package/dist/catalog/resolve-action.js +119 -0
- package/dist/catalog/resolve-playbook.d.ts +26 -0
- package/dist/catalog/resolve-playbook.js +114 -0
- package/dist/doctor/checks/project.js +27 -8
- package/dist/doctor/checks/registry.js +2 -2
- package/dist/doctor/checks/runtime.js +34 -1
- package/dist/errors.d.ts +106 -10
- package/dist/errors.js +105 -10
- package/dist/execution/service.d.ts +18 -16
- package/dist/execution/service.js +183 -252
- package/dist/execution/types.d.ts +25 -69
- package/dist/execution/types.js +2 -1
- package/dist/filter/intent.d.ts +8 -9
- package/dist/filter/intent.js +49 -10
- package/dist/graph/index.d.ts +4 -0
- package/dist/graph/index.js +4 -0
- package/dist/host/host.d.ts +74 -32
- package/dist/host/host.js +585 -336
- package/dist/host/routing.d.ts +15 -48
- package/dist/host/routing.js +90 -153
- package/dist/host/types.d.ts +50 -17
- package/dist/index.d.ts +21 -24
- package/dist/index.js +19 -23
- package/dist/input/advice.d.ts +5 -1
- package/dist/input/advice.js +163 -214
- package/dist/input/describe.d.ts +1 -1
- package/dist/input/flat-errors.d.ts +5 -6
- package/dist/input/flat-errors.js +6 -6
- package/dist/input/flat-materializer.js +42 -44
- package/dist/invocation/index.d.ts +2 -0
- package/dist/invocation/index.js +2 -0
- package/dist/invocation/policy.d.ts +157 -0
- package/dist/invocation/policy.js +231 -0
- package/dist/invocation/types.d.ts +172 -0
- package/dist/invocation/types.js +97 -0
- package/dist/ipc/diagnostic.d.ts +0 -12
- package/dist/ipc/diagnostic.js +0 -21
- package/dist/ipc/host.d.ts +4 -4
- package/dist/ipc/host.js +44 -47
- package/dist/ipc/index.d.ts +1 -1
- package/dist/ipc/index.js +1 -1
- package/dist/ipc/service.d.ts +40 -0
- package/dist/ipc/service.js +349 -0
- package/dist/ipc/types.d.ts +21 -15
- package/dist/node/index.d.ts +1 -0
- package/dist/node/index.js +1 -0
- package/dist/node/module-loader.d.ts +63 -0
- package/dist/node/module-loader.js +112 -0
- package/dist/package/index.d.ts +23 -0
- package/dist/package/index.js +18 -0
- package/dist/{app/app.d.ts → package/runtime.d.ts} +41 -20
- package/dist/{app/app.js → package/runtime.js} +140 -95
- package/dist/{app → package}/static-index.js +58 -41
- package/dist/package/storage-view.d.ts +13 -0
- package/dist/package/storage-view.js +22 -0
- package/dist/{app → package}/types.d.ts +76 -57
- package/dist/package/types.js +22 -0
- package/dist/platform/index.d.ts +1 -1
- package/dist/platform/index.js +1 -1
- package/dist/platform/node.d.ts +48 -0
- package/dist/platform/node.js +96 -0
- package/dist/platform/types.d.ts +0 -9
- package/dist/process/control-arbiter.d.ts +2 -1
- package/dist/process/control-arbiter.js +1 -2
- package/dist/process/driver.d.ts +9 -8
- package/dist/process/driver.js +11 -22
- package/dist/process/index.d.ts +2 -0
- package/dist/process/index.js +2 -0
- package/dist/process/managed-record.d.ts +2 -2
- package/dist/process/process-driver.d.ts +109 -0
- package/dist/process/process-driver.js +650 -0
- package/dist/process/process-executor.d.ts +47 -0
- package/dist/process/process-executor.js +296 -0
- package/dist/process/process-manager.js +48 -26
- package/dist/process/run-executor.js +12 -12
- package/dist/profile/client-actions.js +2 -2
- package/dist/profile/client-health.js +2 -2
- package/dist/profile/client-query.js +5 -6
- package/dist/profile/client-transport.d.ts +19 -17
- package/dist/profile/client-transport.js +47 -80
- package/dist/profile/client.d.ts +2 -2
- package/dist/profile/client.js +1 -1
- package/dist/profile/index.d.ts +1 -0
- package/dist/profile/index.js +1 -0
- package/dist/profile/manager.d.ts +5 -0
- package/dist/profile/manager.js +41 -6
- package/dist/project/closure.js +2 -2
- package/dist/project/index.d.ts +8 -1
- package/dist/project/index.js +10 -1
- package/dist/project/init.js +2 -2
- package/dist/project/loader.d.ts +1 -1
- package/dist/project/loader.js +26 -29
- package/dist/project/transactions.js +5 -10
- package/dist/project/types.d.ts +5 -0
- package/dist/registry/index.d.ts +3 -1
- package/dist/registry/index.js +2 -1
- package/dist/registry/lock.d.ts +28 -7
- package/dist/registry/lock.js +136 -16
- package/dist/registry/registry.d.ts +1 -5
- package/dist/registry/registry.js +1 -53
- package/dist/registry/scan.d.ts +0 -15
- package/dist/registry/scan.js +0 -59
- package/dist/registry/store.d.ts +42 -0
- package/dist/registry/store.js +43 -0
- package/dist/registry/types.d.ts +0 -24
- package/dist/runtime/action-collection.d.ts +1 -1
- package/dist/runtime/action-registry.d.ts +0 -4
- package/dist/runtime/action-registry.js +0 -7
- package/dist/runtime/context.js +5 -11
- package/dist/runtime/events.js +3 -6
- package/dist/runtime/identity.d.ts +22 -0
- package/dist/runtime/identity.js +10 -0
- package/dist/runtime/index.d.ts +1 -2
- package/dist/runtime/index.js +1 -2
- package/dist/runtime/module-loader.d.ts +2 -34
- package/dist/runtime/module-loader.js +1 -16
- package/dist/runtime/process.d.ts +6 -24
- package/dist/runtime/process.js +1 -118
- package/dist/runtime/run-persistence.js +2 -5
- package/dist/runtime/runner.d.ts +33 -93
- package/dist/runtime/runner.js +132 -364
- package/dist/runtime/standalone.d.ts +23 -8
- package/dist/runtime/standalone.js +100 -147
- package/dist/server/body.d.ts +16 -8
- package/dist/server/body.js +33 -16
- package/dist/server/dispatcher.d.ts +6 -10
- package/dist/server/dispatcher.js +24 -32
- package/dist/server/http-server.d.ts +87 -0
- package/dist/server/http-server.js +304 -0
- package/dist/server/index.d.ts +12 -0
- package/dist/server/index.js +11 -0
- package/dist/server/mcp-endpoint.d.ts +61 -0
- package/dist/server/mcp-endpoint.js +118 -0
- package/dist/server/policy.d.ts +138 -0
- package/dist/server/policy.js +368 -0
- package/dist/server/routes/actions.js +114 -64
- package/dist/server/routes/common.d.ts +18 -33
- package/dist/server/routes/common.js +45 -65
- package/dist/server/routes/config.d.ts +1 -1
- package/dist/server/routes/config.js +55 -65
- package/dist/server/routes/doctor.d.ts +1 -1
- package/dist/server/routes/doctor.js +13 -21
- package/dist/server/routes/health.d.ts +1 -1
- package/dist/server/routes/health.js +4 -5
- package/dist/server/routes/info.d.ts +2 -2
- package/dist/server/routes/info.js +17 -24
- package/dist/server/routes/playbooks.js +23 -36
- package/dist/server/routes/runs.js +151 -141
- package/dist/server/routes/state.d.ts +1 -1
- package/dist/server/routes/state.js +64 -63
- package/dist/server/security.d.ts +11 -0
- package/dist/server/security.js +36 -19
- package/dist/server/server.d.ts +2 -2
- package/dist/server/server.js +224 -238
- package/dist/server/types.d.ts +68 -21
- package/dist/service/factory.d.ts +12 -0
- package/dist/service/factory.js +85 -0
- package/dist/{target → service}/index.d.ts +1 -1
- package/dist/{target → service}/index.js +1 -1
- package/dist/service/local.d.ts +27 -0
- package/dist/service/local.js +138 -0
- package/dist/{target → service}/remote-errors.d.ts +3 -6
- package/dist/service/remote-errors.js +38 -0
- package/dist/{target → service}/remote-polling.d.ts +2 -2
- package/dist/{target → service}/remote-polling.js +8 -8
- package/dist/service/remote.d.ts +34 -0
- package/dist/service/remote.js +634 -0
- package/dist/service/sse-stream.d.ts +24 -0
- package/dist/service/sse-stream.js +139 -0
- package/dist/service/types.d.ts +272 -0
- package/dist/service/types.js +32 -0
- package/dist/storage/data-dir-lock.js +10 -5
- package/dist/storage/driver.d.ts +2 -1
- package/dist/storage/driver.js +3 -52
- package/dist/storage/index.d.ts +1 -0
- package/dist/storage/index.js +1 -0
- package/dist/storage/lock-core.d.ts +2 -6
- package/dist/storage/lock-core.js +4 -17
- package/dist/storage/params.d.ts +2 -8
- package/dist/storage/params.js +2 -8
- package/dist/storage/sqlite-driver.d.ts +40 -0
- package/dist/storage/sqlite-driver.js +116 -0
- package/dist/storage/sqlite.js +21 -6
- package/dist/storage/types.d.ts +4 -4
- package/dist/storage/types.js +2 -2
- package/dist/utils/index.d.ts +53 -0
- package/dist/utils/index.js +99 -4
- package/dist/utils/process.d.ts +10 -0
- package/dist/utils/process.js +21 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +41 -3
- package/dist/app/index.d.ts +0 -2
- package/dist/app/index.js +0 -2
- package/dist/app/types.js +0 -1
- package/dist/catalog/action-index.d.ts +0 -9
- package/dist/catalog/action-index.js +0 -95
- package/dist/catalog/action-resolver.d.ts +0 -20
- package/dist/catalog/action-resolver.js +0 -95
- package/dist/catalog/location-registry.d.ts +0 -15
- package/dist/catalog/location-registry.js +0 -138
- package/dist/catalog/package-catalog.d.ts +0 -7
- package/dist/catalog/package-catalog.js +0 -77
- package/dist/catalog/types.d.ts +0 -68
- package/dist/catalog/types.js +0 -1
- package/dist/export/index.d.ts +0 -1
- package/dist/export/index.js +0 -1
- package/dist/export/templates.d.ts +0 -71
- package/dist/export/templates.js +0 -635
- package/dist/ipc/target.d.ts +0 -74
- package/dist/ipc/target.js +0 -365
- package/dist/platform/default.d.ts +0 -38
- package/dist/platform/default.js +0 -78
- package/dist/project/resolver.d.ts +0 -116
- package/dist/project/resolver.js +0 -376
- package/dist/registry/resolve.d.ts +0 -62
- package/dist/registry/resolve.js +0 -195
- package/dist/runtime/execution-manager.d.ts +0 -48
- package/dist/runtime/execution-manager.js +0 -66
- package/dist/runtime/package-runner-factory.d.ts +0 -82
- package/dist/runtime/package-runner-factory.js +0 -186
- package/dist/target/local.d.ts +0 -53
- package/dist/target/local.js +0 -349
- package/dist/target/remote-errors.js +0 -51
- package/dist/target/remote.d.ts +0 -86
- package/dist/target/remote.js +0 -818
- package/dist/target/target.d.ts +0 -6
- package/dist/target/target.js +0 -37
- package/dist/target/types.d.ts +0 -261
- package/dist/target/types.js +0 -35
- /package/dist/{app → package}/static-index.d.ts +0 -0
- /package/dist/{target → service}/sse-parser.d.ts +0 -0
- /package/dist/{target → service}/sse-parser.js +0 -0
package/dist/host/routing.d.ts
CHANGED
|
@@ -1,43 +1,15 @@
|
|
|
1
1
|
import type { ActionRef, RuntimeError } from "@actiondock/sdk";
|
|
2
|
-
import type {
|
|
3
|
-
import type
|
|
4
|
-
/**
|
|
5
|
-
* 判定异常是否为 not-found 语义(包内确实不存在该 Action)。
|
|
6
|
-
*
|
|
7
|
-
* 遍历匹配短标识符时仅跳过此类错误;存储损坏、模块加载失败等内部错误必须向调用方透传,
|
|
8
|
-
* 严禁被吞没后伪装成 ACTION_NOT_FOUND。
|
|
9
|
-
*/
|
|
10
|
-
export declare function isActionNotFoundLikeError(err: any): boolean;
|
|
2
|
+
import type { PackageInfo, PackageRuntime, ActionSpec, PlaybookSpec, PlaybookSummary } from "../package/types.js";
|
|
3
|
+
import { type ActionCatalog, type PackageGraph } from "../catalog/index.js";
|
|
11
4
|
/**
|
|
12
5
|
* 宽松解析引用:优先结构化解析,失败时按对象或裸短标识符回退。
|
|
6
|
+
* 委派纯领域解析 parseActionRef 单一事实源。
|
|
13
7
|
*/
|
|
14
8
|
export declare function parseRefLoose(ref: ActionRef | string): ActionRef;
|
|
15
9
|
/**
|
|
16
|
-
*
|
|
10
|
+
* 根调用可见性判定:非公开包且存在依赖图时,交由图委托规则裁决。
|
|
17
11
|
*/
|
|
18
|
-
export declare function isRootCallVisible(packageId: string, actionId: string, hostPublicPackageIds: ReadonlySet<string>,
|
|
19
|
-
/**
|
|
20
|
-
* 跨包短标识符歧义消解结果:唯一匹配、歧义多匹配与零匹配三态。
|
|
21
|
-
*/
|
|
22
|
-
export type ShortRefResolution = {
|
|
23
|
-
kind: "unique";
|
|
24
|
-
app: ActionDockApp;
|
|
25
|
-
} | {
|
|
26
|
-
kind: "ambiguous";
|
|
27
|
-
candidates: string[];
|
|
28
|
-
} | {
|
|
29
|
-
kind: "not_found";
|
|
30
|
-
};
|
|
31
|
-
/**
|
|
32
|
-
* 在全部已注册包中按短标识符解析唯一提供方。
|
|
33
|
-
*
|
|
34
|
-
* 可见性过滤遵循根调用规则(公开包直接可见;传递依赖包仅可见 Playbook 委托项);
|
|
35
|
-
* 仅 not-found 语义错误被跳过,其余异常向调用方透传。
|
|
36
|
-
*/
|
|
37
|
-
export declare function resolveShortRef(apps: readonly ActionDockApp[], actionId: string, visibility: {
|
|
38
|
-
hostPublicPackageIds: ReadonlySet<string>;
|
|
39
|
-
resolver?: ActionPackageResolver;
|
|
40
|
-
}): Promise<ShortRefResolution>;
|
|
12
|
+
export declare function isRootCallVisible(packageId: string, actionId: string, hostPublicPackageIds: ReadonlySet<string>, graph?: PackageGraph): boolean;
|
|
41
13
|
/**
|
|
42
14
|
* 按包标识构造未找到错误信息:优先透传链接包加载失败的精准诊断。
|
|
43
15
|
*/
|
|
@@ -48,40 +20,35 @@ export declare function packageNotFoundMessage(packageId: string, failedLinkedPa
|
|
|
48
20
|
/**
|
|
49
21
|
* 静态查询并聚合可见包的 Playbook 规程摘要(带包前缀限定)。
|
|
50
22
|
*/
|
|
51
|
-
export declare function listVisiblePlaybooks(
|
|
23
|
+
export declare function listVisiblePlaybooks(runtimes: readonly PackageRuntime[], visibility: {
|
|
52
24
|
hostPublicPackageIds: ReadonlySet<string>;
|
|
53
|
-
|
|
25
|
+
graph?: PackageGraph;
|
|
54
26
|
}): Promise<PlaybookSummary[]>;
|
|
55
27
|
/**
|
|
56
|
-
* 静态查询指定 Playbook
|
|
57
|
-
* 未声明依赖的传递包、不存在的规程与空匹配分别抛出对应语义错误。
|
|
28
|
+
* 静态查询指定 Playbook 规范:基于 resolvePlaybook 统一纯领域解析。
|
|
58
29
|
*/
|
|
59
|
-
export declare function describeVisiblePlaybook(
|
|
30
|
+
export declare function describeVisiblePlaybook(runtimes: readonly PackageRuntime[], id: string, visibility: {
|
|
60
31
|
hostPublicPackageIds: ReadonlySet<string>;
|
|
61
|
-
|
|
32
|
+
graph?: PackageGraph;
|
|
62
33
|
}): Promise<PlaybookSpec>;
|
|
63
34
|
/**
|
|
64
35
|
* 聚合全部已注册包的元数据信息。
|
|
65
36
|
*/
|
|
66
|
-
export declare function collectPackageInfos(
|
|
37
|
+
export declare function collectPackageInfos(runtimes: readonly PackageRuntime[]): Promise<PackageInfo[]>;
|
|
67
38
|
/**
|
|
68
39
|
* 构造失配类错误响应载荷(ACTION_NOT_FOUND / AMBIGUOUS_ACTION_REF 等)。
|
|
69
40
|
*/
|
|
70
41
|
export declare function buildRuntimeError(code: string, message: string, details?: Record<string, unknown>): RuntimeError;
|
|
71
42
|
/**
|
|
72
|
-
*
|
|
73
|
-
*/
|
|
74
|
-
export declare function ambiguousActionMessage(actionId: string, candidates: readonly string[]): string;
|
|
75
|
-
/**
|
|
76
|
-
* 静态查询指定 Action 规范:包限定引用直查,裸短标识符跨包消歧后返回。
|
|
43
|
+
* 静态查询指定 Action 规范:基于 resolveAction 统一纯领域解析。
|
|
77
44
|
*/
|
|
78
|
-
export declare function
|
|
45
|
+
export declare function describeActionAcrossRuntimes(ref: ActionRef | string, runtimes: readonly PackageRuntime[], visibility: {
|
|
79
46
|
hostPublicPackageIds: ReadonlySet<string>;
|
|
80
|
-
|
|
47
|
+
graph?: PackageGraph;
|
|
81
48
|
}, failedLinkedPackages: ReadonlyMap<string, {
|
|
82
49
|
path: string;
|
|
83
50
|
error: string;
|
|
84
|
-
}
|
|
51
|
+
}>, catalog?: ActionCatalog, graph?: PackageGraph): Promise<ActionSpec>;
|
|
85
52
|
/** existsSync 的可注入探测依赖(纯函数模块保持可测试性) */
|
|
86
53
|
export type ExistsProbe = (path: string) => boolean;
|
|
87
54
|
/**
|
package/dist/host/routing.js
CHANGED
|
@@ -1,76 +1,28 @@
|
|
|
1
1
|
import { existsSync } from "node:fs";
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
*
|
|
6
|
-
* 遍历匹配短标识符时仅跳过此类错误;存储损坏、模块加载失败等内部错误必须向调用方透传,
|
|
7
|
-
* 严禁被吞没后伪装成 ACTION_NOT_FOUND。
|
|
8
|
-
*/
|
|
9
|
-
export function isActionNotFoundLikeError(err) {
|
|
10
|
-
if (!err) {
|
|
11
|
-
return false;
|
|
12
|
-
}
|
|
13
|
-
if (err.code === "ACTION_NOT_FOUND" || err.code === "NOT_FOUND") {
|
|
14
|
-
return true;
|
|
15
|
-
}
|
|
16
|
-
const message = typeof err.message === "string" ? err.message : String(err);
|
|
17
|
-
return (message.startsWith("ACTION_NOT_FOUND:") ||
|
|
18
|
-
/Action '[^']*' not found in package/.test(message));
|
|
19
|
-
}
|
|
2
|
+
import { DefaultActionCatalog, DefaultPackageGraph, parseActionRef, resolveAction, resolvePlaybook, } from "../catalog/index.js";
|
|
3
|
+
import { InvocationPolicy } from "../invocation/policy.js";
|
|
4
|
+
import { ActionDockError, PACKAGE_NOT_FOUND } from "../errors.js";
|
|
20
5
|
/**
|
|
21
6
|
* 宽松解析引用:优先结构化解析,失败时按对象或裸短标识符回退。
|
|
7
|
+
* 委派纯领域解析 parseActionRef 单一事实源。
|
|
22
8
|
*/
|
|
23
9
|
export function parseRefLoose(ref) {
|
|
24
10
|
try {
|
|
25
|
-
return
|
|
11
|
+
return parseActionRef(ref);
|
|
26
12
|
}
|
|
27
13
|
catch {
|
|
28
|
-
return typeof ref === "object" ? ref : { actionId: ref };
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* 根调用可见性判定:非公开包且存在依赖解析器时,交由解析器委托规则裁决。
|
|
33
|
-
*/
|
|
34
|
-
export function isRootCallVisible(packageId, actionId, hostPublicPackageIds, resolver) {
|
|
35
|
-
const isPublic = hostPublicPackageIds.has(packageId);
|
|
36
|
-
if (isPublic) {
|
|
37
|
-
return true;
|
|
14
|
+
return typeof ref === "object" && ref !== null ? ref : { actionId: String(ref) };
|
|
38
15
|
}
|
|
39
|
-
if (resolver && !resolver.canRootCall(packageId, actionId)) {
|
|
40
|
-
return false;
|
|
41
|
-
}
|
|
42
|
-
return true;
|
|
43
16
|
}
|
|
44
17
|
/**
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
* 可见性过滤遵循根调用规则(公开包直接可见;传递依赖包仅可见 Playbook 委托项);
|
|
48
|
-
* 仅 not-found 语义错误被跳过,其余异常向调用方透传。
|
|
18
|
+
* 根调用可见性判定:非公开包且存在依赖图时,交由图委托规则裁决。
|
|
49
19
|
*/
|
|
50
|
-
export
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
await app.describeAction(actionId);
|
|
58
|
-
matches.push(app);
|
|
59
|
-
}
|
|
60
|
-
catch (err) {
|
|
61
|
-
// 仅将 not-found 语义视为「包内无此 Action」;其余异常必须透传,避免内部错误伪装成 ACTION_NOT_FOUND
|
|
62
|
-
if (!isActionNotFoundLikeError(err)) {
|
|
63
|
-
throw err;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
if (matches.length === 1) {
|
|
68
|
-
return { kind: "unique", app: matches[0] };
|
|
69
|
-
}
|
|
70
|
-
if (matches.length > 1) {
|
|
71
|
-
return { kind: "ambiguous", candidates: matches.map((m) => m.packageId) };
|
|
72
|
-
}
|
|
73
|
-
return { kind: "not_found" };
|
|
20
|
+
export function isRootCallVisible(packageId, actionId, hostPublicPackageIds, graph) {
|
|
21
|
+
const policy = new InvocationPolicy();
|
|
22
|
+
return (policy.checkRootVisibility(packageId, actionId, {
|
|
23
|
+
hostPublicPackageIds,
|
|
24
|
+
graph,
|
|
25
|
+
}) === undefined);
|
|
74
26
|
}
|
|
75
27
|
/**
|
|
76
28
|
* 按包标识构造未找到错误信息:优先透传链接包加载失败的精准诊断。
|
|
@@ -85,74 +37,75 @@ export function packageNotFoundMessage(packageId, failedLinkedPackages) {
|
|
|
85
37
|
/**
|
|
86
38
|
* 静态查询并聚合可见包的 Playbook 规程摘要(带包前缀限定)。
|
|
87
39
|
*/
|
|
88
|
-
export async function listVisiblePlaybooks(
|
|
40
|
+
export async function listVisiblePlaybooks(runtimes, visibility) {
|
|
89
41
|
const results = [];
|
|
90
|
-
for (const
|
|
91
|
-
const isPublic = visibility.hostPublicPackageIds.has(
|
|
92
|
-
if (!isPublic && visibility.
|
|
93
|
-
const
|
|
94
|
-
if (!
|
|
42
|
+
for (const runtime of runtimes) {
|
|
43
|
+
const isPublic = visibility.hostPublicPackageIds.has(runtime.packageId);
|
|
44
|
+
if (!isPublic && visibility.graph) {
|
|
45
|
+
const rootNode = visibility.graph.root ? visibility.graph.getNode(visibility.graph.root.id) : undefined;
|
|
46
|
+
if (!rootNode?.directDependencies.has(runtime.packageId)) {
|
|
95
47
|
continue;
|
|
96
48
|
}
|
|
97
49
|
}
|
|
98
|
-
const
|
|
99
|
-
for (const item of
|
|
100
|
-
const qualifiedId =
|
|
101
|
-
? `${
|
|
50
|
+
const runtimePlaybooks = await runtime.listPlaybooks();
|
|
51
|
+
for (const item of runtimePlaybooks) {
|
|
52
|
+
const qualifiedId = runtimes.length > 1 && !item.id.includes("/")
|
|
53
|
+
? `${runtime.packageId}/${item.id}`
|
|
102
54
|
: item.id;
|
|
103
55
|
results.push({
|
|
104
56
|
...item,
|
|
105
57
|
id: qualifiedId,
|
|
106
|
-
packageId:
|
|
58
|
+
packageId: runtime.packageId,
|
|
107
59
|
});
|
|
108
60
|
}
|
|
109
61
|
}
|
|
110
62
|
return results;
|
|
111
63
|
}
|
|
112
64
|
/**
|
|
113
|
-
*
|
|
114
|
-
*
|
|
65
|
+
* 基于 Runtime 列表构造无依赖关系的兜底包图。
|
|
66
|
+
*
|
|
67
|
+
* 无任何可见包图可用时的降级事实源:每个包独立成节点,无直接与传递依赖边。
|
|
115
68
|
*/
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
69
|
+
function buildFallbackGraph(runtimes) {
|
|
70
|
+
return new DefaultPackageGraph(new Map(runtimes.map((a) => [
|
|
71
|
+
a.packageId,
|
|
72
|
+
{
|
|
73
|
+
identity: a.identity,
|
|
74
|
+
packageId: a.packageId,
|
|
75
|
+
root: a.packageRoot || "",
|
|
76
|
+
manifest: a.projectConfig,
|
|
77
|
+
manifestDigest: "",
|
|
78
|
+
version: a.projectConfig?.version || "0.1.0",
|
|
79
|
+
npmPackage: a.packageId,
|
|
80
|
+
directDependencies: new Set(),
|
|
81
|
+
transitiveDependencies: new Set(),
|
|
82
|
+
},
|
|
83
|
+
])));
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* 静态查询指定 Playbook 规范:基于 resolvePlaybook 统一纯领域解析。
|
|
87
|
+
*/
|
|
88
|
+
export async function describeVisiblePlaybook(runtimes, id, visibility) {
|
|
89
|
+
const graph = visibility.graph || buildFallbackGraph(runtimes);
|
|
90
|
+
const resolved = resolvePlaybook(id, { graph });
|
|
91
|
+
const isPublic = visibility.hostPublicPackageIds.has(resolved.packageId);
|
|
92
|
+
if (!isPublic && visibility.graph) {
|
|
93
|
+
const rootNode = visibility.graph.root ? visibility.graph.getNode(visibility.graph.root.id) : undefined;
|
|
94
|
+
if (!rootNode?.directDependencies.has(resolved.packageId)) {
|
|
95
|
+
throw new Error(`UNDECLARED_ACTION_DEPENDENCY: Playbook '${id}' belongs to undeclared transitive package '${resolved.packageId}'`);
|
|
131
96
|
}
|
|
132
|
-
return app.describePlaybook(playbookId);
|
|
133
97
|
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
if (!isPublic && visibility.resolver) {
|
|
138
|
-
const graph = visibility.resolver.resolveSync();
|
|
139
|
-
if (!graph.directDependencyIds.has(app.packageId)) {
|
|
140
|
-
continue;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
return await app.describePlaybook(id);
|
|
144
|
-
}
|
|
145
|
-
catch {
|
|
146
|
-
// 忽略未匹配的包
|
|
147
|
-
}
|
|
98
|
+
const runtime = runtimes.find((a) => a.packageId === resolved.packageId);
|
|
99
|
+
if (!runtime) {
|
|
100
|
+
throw new Error(`Package '${resolved.packageId}' not found in host`);
|
|
148
101
|
}
|
|
149
|
-
|
|
102
|
+
return runtime.describePlaybook(resolved.playbookId);
|
|
150
103
|
}
|
|
151
104
|
/**
|
|
152
105
|
* 聚合全部已注册包的元数据信息。
|
|
153
106
|
*/
|
|
154
|
-
export async function collectPackageInfos(
|
|
155
|
-
return Promise.all(
|
|
107
|
+
export async function collectPackageInfos(runtimes) {
|
|
108
|
+
return Promise.all(runtimes.map((runtime) => runtime.info()));
|
|
156
109
|
}
|
|
157
110
|
/**
|
|
158
111
|
* 构造失配类错误响应载荷(ACTION_NOT_FOUND / AMBIGUOUS_ACTION_REF 等)。
|
|
@@ -165,60 +118,44 @@ export function buildRuntimeError(code, message, details) {
|
|
|
165
118
|
return error;
|
|
166
119
|
}
|
|
167
120
|
/**
|
|
168
|
-
*
|
|
169
|
-
*/
|
|
170
|
-
export function ambiguousActionMessage(actionId, candidates) {
|
|
171
|
-
const joined = candidates.map((c) => `${c}/${actionId}`).join(", ");
|
|
172
|
-
return `Action '${actionId}' is ambiguous and provided by multiple packages: ${joined}. Please specify '<package-id>/${actionId}'.`;
|
|
173
|
-
}
|
|
174
|
-
/**
|
|
175
|
-
* 静态查询指定 Action 规范:包限定引用直查,裸短标识符跨包消歧后返回。
|
|
121
|
+
* 静态查询指定 Action 规范:基于 resolveAction 统一纯领域解析。
|
|
176
122
|
*/
|
|
177
|
-
export async function
|
|
123
|
+
export async function describeActionAcrossRuntimes(ref, runtimes, visibility, failedLinkedPackages, catalog, graph) {
|
|
178
124
|
const parsed = parseRefLoose(ref);
|
|
179
|
-
if (parsed.packageId) {
|
|
180
|
-
|
|
181
|
-
throw new Error(`UNDECLARED_ACTION_DEPENDENCY: Action '${parsed.packageId}/${parsed.actionId}' is not declared as a direct dependency in actiondock.json and is not delegated by a visible playbook`);
|
|
182
|
-
}
|
|
183
|
-
const app = apps.find((a) => a.packageId === parsed.packageId);
|
|
184
|
-
if (!app) {
|
|
185
|
-
throw new Error(packageNotFoundMessage(parsed.packageId, failedLinkedPackages));
|
|
186
|
-
}
|
|
187
|
-
const spec = await app.describeAction(parsed.actionId);
|
|
188
|
-
return {
|
|
189
|
-
...spec,
|
|
190
|
-
packageId: app.packageId,
|
|
191
|
-
};
|
|
125
|
+
if (parsed.packageId && failedLinkedPackages.has(parsed.packageId)) {
|
|
126
|
+
throw new Error(packageNotFoundMessage(parsed.packageId, failedLinkedPackages));
|
|
192
127
|
}
|
|
193
|
-
const
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
128
|
+
const effectiveGraph = graph || visibility.graph || buildFallbackGraph(runtimes);
|
|
129
|
+
const effectiveCatalog = catalog ||
|
|
130
|
+
new DefaultActionCatalog(effectiveGraph, (pkgId) => runtimes.find((a) => a.packageId === pkgId)?.actionsMap);
|
|
131
|
+
let resolved;
|
|
132
|
+
try {
|
|
133
|
+
resolved = resolveAction(ref, {
|
|
134
|
+
graph: effectiveGraph,
|
|
135
|
+
catalog: effectiveCatalog,
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
catch (err) {
|
|
139
|
+
if (err.code === PACKAGE_NOT_FOUND) {
|
|
140
|
+
const parsed = parseRefLoose(ref);
|
|
141
|
+
if (parsed.packageId) {
|
|
142
|
+
throw new ActionDockError(PACKAGE_NOT_FOUND, packageNotFoundMessage(parsed.packageId, failedLinkedPackages));
|
|
206
143
|
}
|
|
207
144
|
}
|
|
145
|
+
throw err;
|
|
208
146
|
}
|
|
209
|
-
if (
|
|
210
|
-
|
|
211
|
-
...matches[0].spec,
|
|
212
|
-
packageId: matches[0].app.packageId,
|
|
213
|
-
};
|
|
147
|
+
if (!isRootCallVisible(resolved.package.id, resolved.ref.actionId, visibility.hostPublicPackageIds, effectiveGraph)) {
|
|
148
|
+
throw new Error(`UNDECLARED_ACTION_DEPENDENCY: Action '${resolved.package.id}/${resolved.ref.actionId}' is not declared as a direct dependency in actiondock.json and is not delegated by a visible playbook`);
|
|
214
149
|
}
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
err.details = { alias: "AMBIGUOUS_ACTION_REF", candidates: matches.map((m) => m.app.packageId) };
|
|
219
|
-
throw err;
|
|
150
|
+
const runtime = runtimes.find((a) => a.packageId === resolved.package.id);
|
|
151
|
+
if (!runtime) {
|
|
152
|
+
throw new Error(packageNotFoundMessage(resolved.package.id, failedLinkedPackages));
|
|
220
153
|
}
|
|
221
|
-
|
|
154
|
+
const spec = await runtime.describeAction(resolved.ref.actionId);
|
|
155
|
+
return {
|
|
156
|
+
...spec,
|
|
157
|
+
packageId: runtime.packageId,
|
|
158
|
+
};
|
|
222
159
|
}
|
|
223
160
|
/**
|
|
224
161
|
* 解析宿主自动加载工程根目录:显式指定优先,其次当前进程工作目录探测。
|
package/dist/host/types.d.ts
CHANGED
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
import type { ActionRef, ExecutionEvent, ExecutionResult, JsonValue, Logger, ProcessAPI, RunRecord } from "@actiondock/sdk";
|
|
2
|
-
import type {
|
|
3
|
-
import type { CancelResult,
|
|
2
|
+
import type { PackageInfo, PackageRuntime, PackageRuntimeOptions, ActionSpec, ActionSummary, ListActionsOptions, PlaybookSpec, PlaybookSummary } from "../package/types.js";
|
|
3
|
+
import type { CancelResult, ExecutionTicket } from "../execution/types.js";
|
|
4
|
+
import type { RunOptions } from "../invocation/types.js";
|
|
4
5
|
import type { Clock } from "../runtime/clock.js";
|
|
5
6
|
import type { EventSink } from "../runtime/events.js";
|
|
6
7
|
import type { RuntimePlatform } from "../platform/types.js";
|
|
8
|
+
import type { ConfigValueView, ListRunsOptions, StateScopeOptions } from "../service/types.js";
|
|
9
|
+
import type { StateEntry } from "../storage/types.js";
|
|
7
10
|
/**
|
|
8
11
|
* ActionDock 宿主容器初始化配置选项。
|
|
9
12
|
*/
|
|
10
13
|
export interface ActionDockHostOptions {
|
|
11
|
-
/**
|
|
12
|
-
packages?: Array<
|
|
14
|
+
/** 显式预注册的包列表(PackageRuntime 实例、PackageRuntimeOptions 配置或包目录物理路径)。Host 统一管理其生命周期,关闭时统一释放。 */
|
|
15
|
+
packages?: Array<PackageRuntime | PackageRuntimeOptions | string>;
|
|
13
16
|
/** 当前工程根目录绝对物理路径 */
|
|
14
17
|
projectRoot?: string;
|
|
15
18
|
/** 是否自动加载当前工程(默认为 true) */
|
|
@@ -17,15 +20,13 @@ export interface ActionDockHostOptions {
|
|
|
17
20
|
/** 是否扫描已软链接的外部包(通过 listLinkedPackages,默认为 false) */
|
|
18
21
|
scanLinkedPackages?: boolean;
|
|
19
22
|
/**
|
|
20
|
-
* 是否以数据目录持有者身份打开包存储:true 时内部创建的
|
|
23
|
+
* 是否以数据目录持有者身份打开包存储:true 时内部创建的 Runtime 存储在打开阶段
|
|
21
24
|
* 收割遗留非终态运行记录。默认 true(Host 本身即持有者);
|
|
22
25
|
* CLI 查询命令创建旁观 Host 时显式置 false,避免误收割并发 serve 进程的在途运行。
|
|
23
26
|
*/
|
|
24
27
|
recoverOrphans?: boolean;
|
|
25
28
|
/** 显式注入的运行时平台适配 */
|
|
26
29
|
platform?: RuntimePlatform;
|
|
27
|
-
/** 全局最大并发活跃运行数 */
|
|
28
|
-
maxActiveRuns?: number;
|
|
29
30
|
/** 全局调用嵌套深度限制(默认 16) */
|
|
30
31
|
maxCallDepth?: number;
|
|
31
32
|
/** 全局子任务数限制(默认 64) */
|
|
@@ -59,15 +60,27 @@ export interface ActionDockHost {
|
|
|
59
60
|
/** 静态查询并返回指定 Action 的规范结构与模式定义 */
|
|
60
61
|
describeAction(ref: ActionRef | string): Promise<ActionSpec>;
|
|
61
62
|
/** 静态列出所有已注册包中可用的 Playbook 规程摘要 */
|
|
62
|
-
listPlaybooks(
|
|
63
|
+
listPlaybooks(options?: {
|
|
64
|
+
intent?: string;
|
|
65
|
+
package?: string;
|
|
66
|
+
}): Promise<PlaybookSummary[]>;
|
|
63
67
|
/** 静态查询并返回指定 Playbook 的规范内容与操作指南 */
|
|
64
68
|
describePlaybook(id: string): Promise<PlaybookSpec>;
|
|
65
69
|
/** 同步执行指定 Action 并等待终态结果 */
|
|
66
|
-
runAction(ref: ActionRef | string, input: JsonValue, options?:
|
|
70
|
+
runAction(ref: ActionRef | string, input: JsonValue, options?: RunOptions): Promise<ExecutionResult>;
|
|
67
71
|
/** 异步启动指定 Action 并立即返回任务执行票据 */
|
|
68
|
-
startAction(ref: ActionRef | string, input: JsonValue, options?:
|
|
72
|
+
startAction(ref: ActionRef | string, input: JsonValue, options?: RunOptions): Promise<ExecutionTicket>;
|
|
69
73
|
/** 查询指定运行标识的记录详情 */
|
|
70
74
|
getRun(runId: string): Promise<RunRecord | undefined>;
|
|
75
|
+
/** 列出运行记录 */
|
|
76
|
+
listRuns(query?: ListRunsOptions): Promise<RunRecord[]>;
|
|
77
|
+
/** 清理运行记录 */
|
|
78
|
+
clearRuns(options?: {
|
|
79
|
+
packageId?: string;
|
|
80
|
+
actionId?: string;
|
|
81
|
+
status?: string;
|
|
82
|
+
olderThanMs?: number;
|
|
83
|
+
}): Promise<number>;
|
|
71
84
|
/** 取消指定在运行的任务 */
|
|
72
85
|
cancelRun(runId: string, reason?: string): Promise<CancelResult>;
|
|
73
86
|
/** 订阅指定运行的事件流 */
|
|
@@ -76,13 +89,33 @@ export interface ActionDockHost {
|
|
|
76
89
|
signal?: AbortSignal;
|
|
77
90
|
maxQueueSize?: number;
|
|
78
91
|
}): AsyncIterable<ExecutionEvent>;
|
|
79
|
-
/**
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
|
|
83
|
-
/**
|
|
84
|
-
|
|
85
|
-
/**
|
|
92
|
+
/** 获取配置项视图 */
|
|
93
|
+
getConfig(packageId: string, key: string): Promise<ConfigValueView>;
|
|
94
|
+
/** 设置配置项 */
|
|
95
|
+
setConfig(packageId: string, key: string, value: JsonValue): Promise<void>;
|
|
96
|
+
/** 删除配置项 */
|
|
97
|
+
deleteConfig(packageId: string, key: string): Promise<boolean>;
|
|
98
|
+
/** 列出指定包(或 global)的全部配置项视图 */
|
|
99
|
+
listConfig(packageId: string): Promise<ConfigValueView[]>;
|
|
100
|
+
/** 获取状态项 */
|
|
101
|
+
getState<T extends JsonValue = JsonValue>(packageId: string, actionId: string, key: string, options?: StateScopeOptions): Promise<T | undefined>;
|
|
102
|
+
/** 设置状态项 */
|
|
103
|
+
setState<T extends JsonValue = JsonValue>(packageId: string, actionId: string, key: string, value: T, options?: StateScopeOptions): Promise<void>;
|
|
104
|
+
/** 删除状态项 */
|
|
105
|
+
deleteState(packageId: string, actionId: string, key: string, options?: StateScopeOptions): Promise<boolean>;
|
|
106
|
+
/** 列出状态项键名 */
|
|
107
|
+
listStateKeys(packageId: string, actionId: string, options?: StateScopeOptions): Promise<string[]>;
|
|
108
|
+
/** 清理状态项 */
|
|
109
|
+
clearState(packageId: string, actionId: string, options?: StateScopeOptions): Promise<number>;
|
|
110
|
+
/** 列出状态项明细 */
|
|
111
|
+
listStateEntries(packageId: string, options?: any): Promise<StateEntry[]>;
|
|
112
|
+
/** 根据包唯一标识获取指定 Runtime 实例 */
|
|
113
|
+
getRuntime(packageId: string): PackageRuntime | undefined;
|
|
114
|
+
/** 获取所有当前已注册的 Runtime 实例列表 */
|
|
115
|
+
listRuntimes(): PackageRuntime[];
|
|
116
|
+
/** 注册新的 Runtime 实例至当前宿主容器 */
|
|
117
|
+
registerRuntime(runtime: PackageRuntime): void;
|
|
118
|
+
/** 优雅关闭宿主容器。统一完整关闭所管理的所有 Runtime 实例并安全释放底层资源。 */
|
|
86
119
|
close(options?: {
|
|
87
120
|
graceMs?: number;
|
|
88
121
|
}): Promise<void>;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,24 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
export
|
|
9
|
-
export
|
|
10
|
-
export
|
|
11
|
-
export
|
|
12
|
-
export
|
|
13
|
-
export
|
|
14
|
-
export
|
|
15
|
-
export
|
|
16
|
-
export
|
|
17
|
-
export
|
|
18
|
-
export
|
|
19
|
-
export
|
|
20
|
-
export
|
|
21
|
-
export
|
|
22
|
-
export * from "./input/index.js";
|
|
23
|
-
export * from "./json/index.js";
|
|
24
|
-
export type { ModuleLoader } from "./runtime/index.js";
|
|
1
|
+
/**
|
|
2
|
+
* ActionDock 核心引擎公共 API 统一收口与出口定义。
|
|
3
|
+
*
|
|
4
|
+
* 遵循架构设计规范铁律:收窄为 Minimal 核心门面,非必要内部工程辅助函数、
|
|
5
|
+
* 平台大对象驱动与解析器工具移至特定子路径导出(./server, ./project, ./registry,
|
|
6
|
+
* ./profile, ./graph, ./package),严格杜绝在根导出泄露内部执行与平台上下文机制。
|
|
7
|
+
*/
|
|
8
|
+
export { ACTIONDOCK_VERSION } from "./version.js";
|
|
9
|
+
export { createActionDock, connectActionDock, } from "./service/factory.js";
|
|
10
|
+
export type { ActionDockService, ActionDockService as ActionDock, DiscoveryPort, ExecutionPort, RunsPort, EventsPort, RunEventSubscriptionOptions, ConfigPort, StatePort, CreateActionDockOptions, ConnectActionDockOptions, RemoteServiceOptions, ConfigValueView, ListRunsOptions, StateScopeOptions, } from "./service/types.js";
|
|
11
|
+
export type { ActionRef, ResolvedActionRef, ExecutionResult, RunRecord, ExecutionEvent, } from "@actiondock/sdk";
|
|
12
|
+
export type { RunOptions, ExecutionTicket, CancelResult, } from "./execution/types.js";
|
|
13
|
+
export type { ActionSpec, ActionSummary, PlaybookSpec, PlaybookSummary, PackageInfo, ListActionsOptions, } from "./package/types.js";
|
|
14
|
+
export { createNodePlatform, type NodePlatformOptions, } from "./platform/node.js";
|
|
15
|
+
export { startActionDockServer, } from "./server/server.js";
|
|
16
|
+
export type { ServerOptions, ServerOptions as ActionDockServerOptions, ActionDockServerInstance, } from "./server/types.js";
|
|
17
|
+
export { initProject } from "./project/init.js";
|
|
18
|
+
export { loadProjectConfig, findProjectRoot, } from "./project/loader.js";
|
|
19
|
+
export type { ProjectConfig, } from "./project/types.js";
|
|
20
|
+
export type { PackageGraph, } from "./catalog/graph.js";
|
|
21
|
+
export { ActionDockError, ProcessError, type ErrorCode, type ActionDockErrorCode, PACKAGE_NOT_FOUND, ACTION_PACKAGE_VERSION_CONFLICT, ACTION_NOT_FOUND, ACTION_LOAD_FAILED, ACTION_FAILED, ACTION_TIMEOUT, ACTION_CANCELLED, INPUT_VALIDATION_FAILED, OUTPUT_VALIDATION_FAILED, INPUT_NOT_JSON, OUTPUT_NOT_JSON, ACTION_SUBRUN_LIMIT, ACTION_CALL_CYCLE, UNDECLARED_ACTION_DEPENDENCY, INVALID_ACTION_REF, IDEMPOTENCY_CONFLICT, EXECUTION_FAILED, UNHANDLED_EXECUTION_ERROR, RUN_REPOSITORY_UNAVAILABLE, RUN_PERSISTENCE_FAILED, STANDALONE_ASYNC_UNSUPPORTED, INVOCATION_UNSUPPORTED, HOST_PROCESS_EXITED, EXECUTION_ABORTED, TIMEOUT, NETWORK_ERROR, REMOTE_STREAM_UNAVAILABLE, CAPABILITY_UNAVAILABLE, STATE_KEY_NOT_FOUND, STORAGE_BUSY, PROJECT_BUSY, PROJECT_RECOVERY_REQUIRED, STORAGE_WORKER_EXITED, EVENT_BACKPRESSURE_LIMIT, EVENT_CURSOR_EXPIRED, PROCESS_OUTPUT_LIMIT, PROCESS_SPAWN_ERROR, PROCESS_CANCELLED, PROCESS_TIMEOUT, UNAUTHORIZED, NOT_FOUND, SERVER_ERROR, BAD_REQUEST, PACKAGE_FORBIDDEN, ACTION_FORBIDDEN, PLAYBOOK_NOT_FOUND, REQUEST_TOO_LARGE, ACTION_START_FAILED, ACTION_EXECUTION_ERROR, ACTIONS_LIST_ERROR, PLAYBOOKS_LIST_ERROR, RUNS_LIST_ERROR, RUNS_CLEAR_ERROR, INFO_ERROR, PACKAGES_INFO_ERROR, DOCTOR_ERROR, RUN_INTERRUPTED, CONFIG_ENV_ERROR, CONFIG_LIST_ERROR, CONFIG_SET_ERROR, CONFIG_DELETE_ERROR, STATE_LIST_ERROR, STATE_CLEAR_ERROR, STATE_KEY_ERROR, DATA_DIR_IN_USE, DATA_DIR_RECOVERY_REQUIRED, UNSUPPORTED_STORAGE_SCHEMA, STORED_ERROR_DECODE_FAILED, PROCESS_FAILED, GENERATED_TYPES_OUTDATED, PROTOCOL_UNSUPPORTED, SERVICE_RESULT_UNKNOWN, MCP_TOOL_NAME_COLLISION, ACCESS_DENIED, UNSUPPORTED_CAPABILITY, CONTROL_BUSY, CONTROL_EXPIRED, CONTROL_REVOKED, PROCESS_QUARANTINED, PROCESS_LOST, REQUEST_CONFLICT, INPUT_OUTCOME_UNKNOWN, OUTPUT_GAP, OUTPUT_UNAVAILABLE, INVALID_CURSOR, QUEUE_FULL, QUOTA_EXCEEDED, INPUT_CLOSED, INVALID_FLAT_ARGUMENT, INVALID_JSON, INVALID_JSON_LITERAL, INPUT_PATH_CONFLICT, FLAT_INPUT_LIMIT_EXCEEDED, INPUT_LIMIT_EXCEEDED, INPUT_POLICY_VIOLATION, INPUT_CONFLICT, INPUT_FILE_NOT_FOUND, INPUT_FILE_READ_FAILED, INVALID_ARGUMENT, PACKAGE_NOT_ALLOWED, INVALID_PACKAGE_ID, PATH_TRAVERSAL, AMBIGUOUS_STATE_KEY, RUN_NOT_FOUND, RUN_ALREADY_FINISHED, IPC_ERROR, } from "./errors.js";
|
package/dist/index.js
CHANGED
|
@@ -1,23 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export
|
|
10
|
-
|
|
11
|
-
export
|
|
12
|
-
|
|
13
|
-
export
|
|
14
|
-
export
|
|
15
|
-
|
|
16
|
-
export
|
|
17
|
-
export
|
|
18
|
-
|
|
19
|
-
export
|
|
20
|
-
export * from "./ipc/index.js";
|
|
21
|
-
export * from "./process/index.js";
|
|
22
|
-
export * from "./input/index.js";
|
|
23
|
-
export * from "./json/index.js";
|
|
1
|
+
/**
|
|
2
|
+
* ActionDock 核心引擎公共 API 统一收口与出口定义。
|
|
3
|
+
*
|
|
4
|
+
* 遵循架构设计规范铁律:收窄为 Minimal 核心门面,非必要内部工程辅助函数、
|
|
5
|
+
* 平台大对象驱动与解析器工具移至特定子路径导出(./server, ./project, ./registry,
|
|
6
|
+
* ./profile, ./graph, ./package),严格杜绝在根导出泄露内部执行与平台上下文机制。
|
|
7
|
+
*/
|
|
8
|
+
// 1. 核心版本号单一事实源
|
|
9
|
+
export { ACTIONDOCK_VERSION } from "./version.js";
|
|
10
|
+
// 2. 统一服务门面与聚合契约接口
|
|
11
|
+
export { createActionDock, connectActionDock, } from "./service/factory.js";
|
|
12
|
+
// 5. 原生平台装配与服务启动
|
|
13
|
+
export { createNodePlatform, } from "./platform/node.js";
|
|
14
|
+
export { startActionDockServer, } from "./server/server.js";
|
|
15
|
+
// 6. 核心工程辅助
|
|
16
|
+
export { initProject } from "./project/init.js";
|
|
17
|
+
export { loadProjectConfig, findProjectRoot, } from "./project/loader.js";
|
|
18
|
+
// 8. 统一错误模型与核心标准错误码常量
|
|
19
|
+
export { ActionDockError, ProcessError, PACKAGE_NOT_FOUND, ACTION_PACKAGE_VERSION_CONFLICT, ACTION_NOT_FOUND, ACTION_LOAD_FAILED, ACTION_FAILED, ACTION_TIMEOUT, ACTION_CANCELLED, INPUT_VALIDATION_FAILED, OUTPUT_VALIDATION_FAILED, INPUT_NOT_JSON, OUTPUT_NOT_JSON, ACTION_SUBRUN_LIMIT, ACTION_CALL_CYCLE, UNDECLARED_ACTION_DEPENDENCY, INVALID_ACTION_REF, IDEMPOTENCY_CONFLICT, EXECUTION_FAILED, UNHANDLED_EXECUTION_ERROR, RUN_REPOSITORY_UNAVAILABLE, RUN_PERSISTENCE_FAILED, STANDALONE_ASYNC_UNSUPPORTED, INVOCATION_UNSUPPORTED, HOST_PROCESS_EXITED, EXECUTION_ABORTED, TIMEOUT, NETWORK_ERROR, REMOTE_STREAM_UNAVAILABLE, CAPABILITY_UNAVAILABLE, STATE_KEY_NOT_FOUND, STORAGE_BUSY, PROJECT_BUSY, PROJECT_RECOVERY_REQUIRED, STORAGE_WORKER_EXITED, EVENT_BACKPRESSURE_LIMIT, EVENT_CURSOR_EXPIRED, PROCESS_OUTPUT_LIMIT, PROCESS_SPAWN_ERROR, PROCESS_CANCELLED, PROCESS_TIMEOUT, UNAUTHORIZED, NOT_FOUND, SERVER_ERROR, BAD_REQUEST, PACKAGE_FORBIDDEN, ACTION_FORBIDDEN, PLAYBOOK_NOT_FOUND, REQUEST_TOO_LARGE, ACTION_START_FAILED, ACTION_EXECUTION_ERROR, ACTIONS_LIST_ERROR, PLAYBOOKS_LIST_ERROR, RUNS_LIST_ERROR, RUNS_CLEAR_ERROR, INFO_ERROR, PACKAGES_INFO_ERROR, DOCTOR_ERROR, RUN_INTERRUPTED, CONFIG_ENV_ERROR, CONFIG_LIST_ERROR, CONFIG_SET_ERROR, CONFIG_DELETE_ERROR, STATE_LIST_ERROR, STATE_CLEAR_ERROR, STATE_KEY_ERROR, DATA_DIR_IN_USE, DATA_DIR_RECOVERY_REQUIRED, UNSUPPORTED_STORAGE_SCHEMA, STORED_ERROR_DECODE_FAILED, PROCESS_FAILED, GENERATED_TYPES_OUTDATED, PROTOCOL_UNSUPPORTED, SERVICE_RESULT_UNKNOWN, MCP_TOOL_NAME_COLLISION, ACCESS_DENIED, UNSUPPORTED_CAPABILITY, CONTROL_BUSY, CONTROL_EXPIRED, CONTROL_REVOKED, PROCESS_QUARANTINED, PROCESS_LOST, REQUEST_CONFLICT, INPUT_OUTCOME_UNKNOWN, OUTPUT_GAP, OUTPUT_UNAVAILABLE, INVALID_CURSOR, QUEUE_FULL, QUOTA_EXCEEDED, INPUT_CLOSED, INVALID_FLAT_ARGUMENT, INVALID_JSON, INVALID_JSON_LITERAL, INPUT_PATH_CONFLICT, FLAT_INPUT_LIMIT_EXCEEDED, INPUT_LIMIT_EXCEEDED, INPUT_POLICY_VIOLATION, INPUT_CONFLICT, INPUT_FILE_NOT_FOUND, INPUT_FILE_READ_FAILED, INVALID_ARGUMENT, PACKAGE_NOT_ALLOWED, INVALID_PACKAGE_ID, PATH_TRAVERSAL, AMBIGUOUS_STATE_KEY, RUN_NOT_FOUND, RUN_ALREADY_FINISHED, IPC_ERROR, } from "./errors.js";
|
package/dist/input/advice.d.ts
CHANGED
|
@@ -52,7 +52,11 @@ export interface CliInputAdviceV1 {
|
|
|
52
52
|
* @returns 遵循技术设计文档规范的结构化输入建议
|
|
53
53
|
*/
|
|
54
54
|
export declare function buildCliInputAdviceV1(schema: unknown): CliInputAdviceV1;
|
|
55
|
-
|
|
55
|
+
/**
|
|
56
|
+
* 扁平编码通用指引文案。
|
|
57
|
+
* 属性名安全判定统一引用 flat-predicates 的单一事实源(含禁止属性排除),
|
|
58
|
+
* 禁止在本文件另建独立正则分叉。
|
|
59
|
+
*/
|
|
56
60
|
export declare const FLAT_ENCODING_GUIDELINES: readonly string[];
|
|
57
61
|
/**
|
|
58
62
|
* 单个字段的输入建议明细。
|