@actiondock/core 2.0.11 → 2.0.12
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/dist/build/templates.d.ts +19 -0
- package/dist/catalog/action-index.d.ts +9 -0
- package/dist/catalog/action-resolver.d.ts +20 -0
- package/dist/catalog/location-registry.d.ts +15 -0
- package/dist/catalog/package-catalog.d.ts +7 -0
- package/dist/catalog/types.d.ts +68 -0
- package/dist/doctor/doctor.d.ts +6 -0
- package/dist/doctor/types.d.ts +23 -0
- package/dist/execution/index.d.ts +2 -0
- package/dist/execution/service.d.ts +74 -0
- package/dist/execution/types.d.ts +74 -0
- package/dist/export/templates.d.ts +33 -0
- package/dist/filter/intent.d.ts +33 -0
- package/{src/index.ts → dist/index.d.ts} +1 -1
- package/dist/index.js +8458 -0
- package/dist/profile/client.d.ts +116 -0
- package/dist/profile/manager.d.ts +47 -0
- package/dist/profile/types.d.ts +61 -0
- package/dist/project/closure.d.ts +25 -0
- package/{src/project/index.ts → dist/project/index.d.ts} +1 -0
- package/dist/project/init.d.ts +27 -0
- package/dist/project/loader.d.ts +105 -0
- package/dist/project/manifest.d.ts +44 -0
- package/dist/project/types.d.ts +131 -0
- package/dist/registry/registry.d.ts +24 -0
- package/dist/registry/types.d.ts +117 -0
- package/dist/runtime/clock.d.ts +21 -0
- package/dist/runtime/context.d.ts +75 -0
- package/dist/runtime/env.d.ts +54 -0
- package/dist/runtime/events.d.ts +61 -0
- package/dist/runtime/execution-manager.d.ts +48 -0
- package/{src/runtime/index.ts → dist/runtime/index.d.ts} +0 -1
- package/dist/runtime/module-loader.d.ts +42 -0
- package/dist/runtime/process.d.ts +11 -0
- package/dist/runtime/runner.d.ts +186 -0
- package/dist/runtime/standalone.d.ts +40 -0
- package/dist/schema/validator.d.ts +28 -0
- package/dist/server/body.d.ts +40 -0
- package/{src/server/index.ts → dist/server/index.d.ts} +0 -1
- package/dist/server/routes/actions.d.ts +5 -0
- package/dist/server/routes/common.d.ts +36 -0
- package/dist/server/routes/config.d.ts +5 -0
- package/dist/server/routes/doctor.d.ts +5 -0
- package/dist/server/routes/health.d.ts +5 -0
- package/dist/server/routes/info.d.ts +5 -0
- package/dist/server/routes/playbooks.d.ts +5 -0
- package/dist/server/routes/runs.d.ts +5 -0
- package/dist/server/routes/state.d.ts +5 -0
- package/dist/server/runtime-registry.d.ts +78 -0
- package/dist/server/security.d.ts +37 -0
- package/dist/server/server.d.ts +15 -0
- package/dist/server/types.d.ts +59 -0
- package/dist/storage/driver.d.ts +15 -0
- package/dist/storage/index.d.ts +44 -0
- package/{src/storage/mask.ts → dist/storage/mask.d.ts} +5 -20
- package/dist/storage/sqlite.d.ts +66 -0
- package/dist/storage/types.d.ts +121 -0
- package/dist/utils/index.d.ts +29 -0
- package/dist/version.d.ts +4 -0
- package/package.json +11 -10
- package/src/build/templates.ts +0 -59
- package/src/catalog/action-index.ts +0 -92
- package/src/catalog/action-resolver.ts +0 -120
- package/src/catalog/location-registry.ts +0 -134
- package/src/catalog/package-catalog.ts +0 -87
- package/src/catalog/types.ts +0 -75
- package/src/doctor/doctor.ts +0 -419
- package/src/doctor/types.ts +0 -25
- package/src/execution/index.ts +0 -2
- package/src/execution/service.ts +0 -322
- package/src/execution/types.ts +0 -73
- package/src/export/templates.ts +0 -590
- package/src/filter/intent.ts +0 -154
- package/src/profile/client.ts +0 -552
- package/src/profile/manager.ts +0 -341
- package/src/profile/types.ts +0 -71
- package/src/project/init.ts +0 -242
- package/src/project/loader.ts +0 -479
- package/src/project/manifest.ts +0 -299
- package/src/project/types.ts +0 -141
- package/src/registry/registry.ts +0 -940
- package/src/registry/types.ts +0 -127
- package/src/runtime/clock.ts +0 -41
- package/src/runtime/context.ts +0 -259
- package/src/runtime/env.ts +0 -172
- package/src/runtime/events.ts +0 -142
- package/src/runtime/execution-manager.ts +0 -74
- package/src/runtime/module-loader.ts +0 -67
- package/src/runtime/process.ts +0 -245
- package/src/runtime/runner.ts +0 -527
- package/src/runtime/standalone.ts +0 -429
- package/src/schema/validator.ts +0 -61
- package/src/server/body.ts +0 -112
- package/src/server/routes/actions.ts +0 -262
- package/src/server/routes/common.ts +0 -126
- package/src/server/routes/config.ts +0 -147
- package/src/server/routes/doctor.ts +0 -29
- package/src/server/routes/health.ts +0 -40
- package/src/server/routes/info.ts +0 -221
- package/src/server/routes/playbooks.ts +0 -109
- package/src/server/routes/runs.ts +0 -301
- package/src/server/routes/state.ts +0 -133
- package/src/server/runtime-registry.ts +0 -115
- package/src/server/security.ts +0 -115
- package/src/server/server.ts +0 -251
- package/src/server/types.ts +0 -57
- package/src/storage/driver.ts +0 -126
- package/src/storage/index.ts +0 -81
- package/src/storage/sqlite.ts +0 -714
- package/src/storage/types.ts +0 -139
- package/src/utils/index.ts +0 -62
- /package/{src/build/index.ts → dist/build/index.d.ts} +0 -0
- /package/{src/catalog/index.ts → dist/catalog/index.d.ts} +0 -0
- /package/{src/doctor/index.ts → dist/doctor/index.d.ts} +0 -0
- /package/{src/export/index.ts → dist/export/index.d.ts} +0 -0
- /package/{src/filter/index.ts → dist/filter/index.d.ts} +0 -0
- /package/{src/profile/index.ts → dist/profile/index.d.ts} +0 -0
- /package/{src/registry/index.ts → dist/registry/index.d.ts} +0 -0
- /package/{src/server/routes/index.ts → dist/server/routes/index.d.ts} +0 -0
package/src/storage/driver.ts
DELETED
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
import { createRequire } from "node:module";
|
|
2
|
-
import type { SqliteDriver } from "./types";
|
|
3
|
-
|
|
4
|
-
export type SqliteDriverFactory = (dbPath: string) => SqliteDriver;
|
|
5
|
-
|
|
6
|
-
/** ESM 环境下可用的 CommonJS require,用于动态加载 node:sqlite / bun:sqlite */
|
|
7
|
-
const cjsRequire = createRequire(import.meta.url);
|
|
8
|
-
|
|
9
|
-
let customDriverFactory: SqliteDriverFactory | undefined;
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* 注册全局默认 SQLite 驱动工厂。
|
|
13
|
-
*/
|
|
14
|
-
export function setSqliteDriverFactory(factory: SqliteDriverFactory): void {
|
|
15
|
-
customDriverFactory = factory;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* 创建默认 SQLite 驱动实例。
|
|
20
|
-
* 优先使用外部注册的工厂,其次根据当前运行时环境自动适配。
|
|
21
|
-
*/
|
|
22
|
-
export function createDefaultSqliteDriver(dbPath: string): SqliteDriver {
|
|
23
|
-
if (customDriverFactory) {
|
|
24
|
-
return customDriverFactory(dbPath);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
// 检查是否在 Bun 运行时环境
|
|
28
|
-
if (typeof (globalThis as any).Bun !== "undefined") {
|
|
29
|
-
try {
|
|
30
|
-
const { Database } = (globalThis as any).Bun.sqlite || cjsRequire("bun:sqlite");
|
|
31
|
-
const db = new Database(dbPath);
|
|
32
|
-
// bun:sqlite 的 statement 未 finalize 时会一直持有数据库文件句柄,
|
|
33
|
-
// Windows 下导致 db.close() 后文件仍被锁(EBUSY 无法删除)。
|
|
34
|
-
// 跟踪全部 prepared statement,close() 时统一 finalize 释放句柄。
|
|
35
|
-
const openStatements = new Set<any>();
|
|
36
|
-
return {
|
|
37
|
-
exec(sql: string) {
|
|
38
|
-
db.exec(sql);
|
|
39
|
-
},
|
|
40
|
-
prepare(sql: string) {
|
|
41
|
-
const stmt = db.prepare(sql);
|
|
42
|
-
openStatements.add(stmt);
|
|
43
|
-
return {
|
|
44
|
-
run(...args: any[]) {
|
|
45
|
-
const params = args.length === 1 && Array.isArray(args[0]) ? args[0] : args;
|
|
46
|
-
const res = stmt.run(...params);
|
|
47
|
-
return { changes: res.changes, lastInsertRowid: res.lastInsertRowid };
|
|
48
|
-
},
|
|
49
|
-
get<T>(...args: any[]): T | undefined {
|
|
50
|
-
const params = args.length === 1 && Array.isArray(args[0]) ? args[0] : args;
|
|
51
|
-
return stmt.get(...params) as T | undefined;
|
|
52
|
-
},
|
|
53
|
-
all<T>(...args: any[]): T[] {
|
|
54
|
-
const params = args.length === 1 && Array.isArray(args[0]) ? args[0] : args;
|
|
55
|
-
return stmt.all(...params) as T[];
|
|
56
|
-
},
|
|
57
|
-
};
|
|
58
|
-
},
|
|
59
|
-
transaction<T>(fn: () => T extends PromiseLike<unknown> ? never : T): T {
|
|
60
|
-
return db.transaction(fn)() as T;
|
|
61
|
-
},
|
|
62
|
-
close() {
|
|
63
|
-
for (const stmt of openStatements) {
|
|
64
|
-
try {
|
|
65
|
-
stmt.finalize();
|
|
66
|
-
} catch {
|
|
67
|
-
// 已 finalize 或重复释放时忽略
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
openStatements.clear();
|
|
71
|
-
db.close();
|
|
72
|
-
},
|
|
73
|
-
};
|
|
74
|
-
} catch {
|
|
75
|
-
// 若在 Bun 下获取 bun:sqlite 失败,回退到标准 Node 驱动尝试
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
// 在 Node.js 环境下使用 node:sqlite
|
|
80
|
-
try {
|
|
81
|
-
const { DatabaseSync } = cjsRequire("node:sqlite");
|
|
82
|
-
const db = new DatabaseSync(dbPath);
|
|
83
|
-
return {
|
|
84
|
-
exec(sql: string) {
|
|
85
|
-
db.exec(sql);
|
|
86
|
-
},
|
|
87
|
-
prepare(sql: string) {
|
|
88
|
-
const stmt = db.prepare(sql);
|
|
89
|
-
return {
|
|
90
|
-
run(...args: any[]) {
|
|
91
|
-
const params = args.length === 1 && Array.isArray(args[0]) ? args[0] : args;
|
|
92
|
-
const res = stmt.run(...params);
|
|
93
|
-
return { changes: res.changes, lastInsertRowid: res.lastInsertRowid };
|
|
94
|
-
},
|
|
95
|
-
get<T>(...args: any[]): T | undefined {
|
|
96
|
-
const params = args.length === 1 && Array.isArray(args[0]) ? args[0] : args;
|
|
97
|
-
return stmt.get(...params) as T | undefined;
|
|
98
|
-
},
|
|
99
|
-
all<T>(...args: any[]): T[] {
|
|
100
|
-
const params = args.length === 1 && Array.isArray(args[0]) ? args[0] : args;
|
|
101
|
-
return stmt.all(...params) as T[];
|
|
102
|
-
},
|
|
103
|
-
};
|
|
104
|
-
},
|
|
105
|
-
transaction<T>(fn: () => T extends PromiseLike<unknown> ? never : T): T {
|
|
106
|
-
db.exec("BEGIN");
|
|
107
|
-
try {
|
|
108
|
-
const res = fn();
|
|
109
|
-
if (res && typeof (res as any).then === "function") {
|
|
110
|
-
throw new Error("Async transactions are not allowed in SQLite");
|
|
111
|
-
}
|
|
112
|
-
db.exec("COMMIT");
|
|
113
|
-
return res;
|
|
114
|
-
} catch (e) {
|
|
115
|
-
db.exec("ROLLBACK");
|
|
116
|
-
throw e;
|
|
117
|
-
}
|
|
118
|
-
},
|
|
119
|
-
close() {
|
|
120
|
-
db.close();
|
|
121
|
-
},
|
|
122
|
-
};
|
|
123
|
-
} catch (err: any) {
|
|
124
|
-
throw new Error(`Failed to initialize SQLite driver: ${err?.message || String(err)}`);
|
|
125
|
-
}
|
|
126
|
-
}
|
package/src/storage/index.ts
DELETED
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import { join } from "node:path";
|
|
2
|
-
import { getActionDockHome } from "../utils";
|
|
3
|
-
import { SqliteRuntimeStorage } from "./sqlite";
|
|
4
|
-
import type { RuntimeStorage, StorageOptions } from "./types";
|
|
5
|
-
|
|
6
|
-
export * from "./driver";
|
|
7
|
-
export * from "./mask";
|
|
8
|
-
export * from "./sqlite";
|
|
9
|
-
export * from "./types";
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* 解析并计算目标 SQLite 数据库文件的绝对路径。
|
|
13
|
-
*
|
|
14
|
-
* 优先级规则:
|
|
15
|
-
* 1. inMemory: true -> 返回 ":memory:"
|
|
16
|
-
* 2. 显式指定 dataDir -> 返回 `<dataDir>/<packageId>/runtime.db`
|
|
17
|
-
* 3. 显式指定 projectRoot(开发态项目) -> 返回 `<projectRoot>/.actiondock/runtime.db`
|
|
18
|
-
* 4. 默认独立二进制存储路径 -> 返回 `~/.actiondock/data/<packageId>/runtime.db`
|
|
19
|
-
*
|
|
20
|
-
* @param packageId 所属 Package ID
|
|
21
|
-
* @param options 路径解析选项
|
|
22
|
-
*/
|
|
23
|
-
export function resolveDatabasePath(
|
|
24
|
-
packageId: string,
|
|
25
|
-
options: { projectRoot?: string; dataDir?: string; inMemory?: boolean } = {}
|
|
26
|
-
): string {
|
|
27
|
-
if (options.inMemory) {
|
|
28
|
-
return ":memory:";
|
|
29
|
-
}
|
|
30
|
-
if (options.dataDir) {
|
|
31
|
-
return join(options.dataDir, packageId, "runtime.db");
|
|
32
|
-
}
|
|
33
|
-
if (options.projectRoot) {
|
|
34
|
-
return join(options.projectRoot, ".actiondock", "runtime.db");
|
|
35
|
-
}
|
|
36
|
-
// 独立执行二进制默认存储路径: ~/.actiondock/data/<package-id>/runtime.db
|
|
37
|
-
return join(getActionDockHome(), ".actiondock", "data", packageId, "runtime.db");
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* 工厂函数:为指定 Package 创建或连接 RuntimeStorage 实例。
|
|
42
|
-
*
|
|
43
|
-
* @param packageId 目标 Package ID
|
|
44
|
-
* @param options 存储配置参数(支持 projectRoot, dataDir, inMemory)
|
|
45
|
-
*/
|
|
46
|
-
export function createStorage(
|
|
47
|
-
packageId: string,
|
|
48
|
-
options: { projectRoot?: string; dataDir?: string; inMemory?: boolean } = {}
|
|
49
|
-
): RuntimeStorage {
|
|
50
|
-
const dbPath = resolveDatabasePath(packageId, options);
|
|
51
|
-
return new SqliteRuntimeStorage({ dbPath, packageId });
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* 工厂函数:创建或连接 ActionDock 全局共享数据库(~/.actiondock/global.db)。
|
|
56
|
-
* 用于跨 Package 共享的全局配置项存储。
|
|
57
|
-
*
|
|
58
|
-
* @param customHomeOrOptions 自定义家目录路径或配置对象(可选)
|
|
59
|
-
* @param dataDirArg 自定义数据存储目录(可选)
|
|
60
|
-
*/
|
|
61
|
-
export function createGlobalStorage(
|
|
62
|
-
customHomeOrOptions?: string | { customHome?: string; dataDir?: string },
|
|
63
|
-
dataDirArg?: string
|
|
64
|
-
): RuntimeStorage {
|
|
65
|
-
let customHome: string | undefined;
|
|
66
|
-
let dataDir: string | undefined;
|
|
67
|
-
|
|
68
|
-
if (typeof customHomeOrOptions === "object" && customHomeOrOptions !== null) {
|
|
69
|
-
customHome = customHomeOrOptions.customHome;
|
|
70
|
-
dataDir = customHomeOrOptions.dataDir;
|
|
71
|
-
} else {
|
|
72
|
-
customHome = customHomeOrOptions;
|
|
73
|
-
dataDir = dataDirArg;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
const dbPath = dataDir
|
|
77
|
-
? join(dataDir, "global.db")
|
|
78
|
-
: join(getActionDockHome(customHome), ".actiondock", "global.db");
|
|
79
|
-
return new SqliteRuntimeStorage({ dbPath, packageId: "__global__" });
|
|
80
|
-
}
|
|
81
|
-
|