@actiondock/core 2.0.11 → 2.2.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 (258) hide show
  1. package/README.md +61 -30
  2. package/dist/app/app.d.ts +73 -0
  3. package/dist/app/app.js +700 -0
  4. package/dist/app/index.d.ts +2 -0
  5. package/dist/app/index.js +2 -0
  6. package/dist/app/types.d.ts +283 -0
  7. package/dist/app/types.js +1 -0
  8. package/dist/catalog/action-index.d.ts +9 -0
  9. package/dist/catalog/action-index.js +93 -0
  10. package/dist/catalog/action-resolver.d.ts +20 -0
  11. package/dist/catalog/action-resolver.js +95 -0
  12. package/dist/catalog/index.d.ts +5 -0
  13. package/dist/catalog/index.js +5 -0
  14. package/dist/catalog/location-registry.d.ts +15 -0
  15. package/dist/catalog/location-registry.js +138 -0
  16. package/dist/catalog/package-catalog.d.ts +7 -0
  17. package/dist/catalog/package-catalog.js +76 -0
  18. package/dist/catalog/types.d.ts +68 -0
  19. package/dist/catalog/types.js +1 -0
  20. package/dist/doctor/doctor.d.ts +7 -0
  21. package/dist/doctor/doctor.js +613 -0
  22. package/dist/doctor/index.d.ts +2 -0
  23. package/dist/doctor/index.js +2 -0
  24. package/dist/doctor/types.d.ts +23 -0
  25. package/dist/doctor/types.js +1 -0
  26. package/dist/errors.d.ts +122 -0
  27. package/dist/errors.js +123 -0
  28. package/dist/execution/index.d.ts +2 -0
  29. package/dist/execution/index.js +2 -0
  30. package/dist/execution/service.d.ts +79 -0
  31. package/dist/execution/service.js +633 -0
  32. package/dist/execution/types.d.ts +131 -0
  33. package/dist/execution/types.js +1 -0
  34. package/dist/export/index.d.ts +1 -0
  35. package/dist/export/index.js +1 -0
  36. package/dist/export/templates.d.ts +71 -0
  37. package/dist/export/templates.js +621 -0
  38. package/dist/filter/index.d.ts +1 -0
  39. package/dist/filter/index.js +1 -0
  40. package/dist/filter/intent.d.ts +33 -0
  41. package/dist/filter/intent.js +123 -0
  42. package/dist/host/host.d.ts +55 -0
  43. package/dist/host/host.js +740 -0
  44. package/dist/host/index.d.ts +2 -0
  45. package/dist/host/index.js +2 -0
  46. package/dist/host/types.d.ts +81 -0
  47. package/dist/host/types.js +1 -0
  48. package/dist/index.d.ts +21 -0
  49. package/dist/index.js +20 -0
  50. package/dist/ipc/diagnostic.d.ts +65 -0
  51. package/dist/ipc/diagnostic.js +129 -0
  52. package/dist/ipc/host.d.ts +7 -0
  53. package/dist/ipc/host.js +93 -0
  54. package/dist/ipc/index.d.ts +4 -0
  55. package/dist/ipc/index.js +4 -0
  56. package/dist/ipc/target.d.ts +56 -0
  57. package/dist/ipc/target.js +297 -0
  58. package/dist/ipc/types.d.ts +42 -0
  59. package/dist/ipc/types.js +1 -0
  60. package/dist/platform/default.d.ts +32 -0
  61. package/dist/platform/default.js +40 -0
  62. package/dist/platform/index.d.ts +3 -0
  63. package/dist/platform/index.js +3 -0
  64. package/dist/platform/node-fs.d.ts +37 -0
  65. package/dist/platform/node-fs.js +81 -0
  66. package/dist/platform/types.d.ts +104 -0
  67. package/dist/platform/types.js +1 -0
  68. package/dist/profile/client.d.ts +162 -0
  69. package/dist/profile/client.js +467 -0
  70. package/dist/profile/index.d.ts +3 -0
  71. package/dist/profile/index.js +3 -0
  72. package/dist/profile/manager.d.ts +47 -0
  73. package/dist/profile/manager.js +294 -0
  74. package/dist/profile/types.d.ts +61 -0
  75. package/dist/profile/types.js +1 -0
  76. package/dist/project/closure.d.ts +25 -0
  77. package/dist/project/closure.js +68 -0
  78. package/dist/project/digest.d.ts +29 -0
  79. package/dist/project/digest.js +324 -0
  80. package/dist/project/index.d.ts +10 -0
  81. package/dist/project/index.js +10 -0
  82. package/dist/project/init.d.ts +26 -0
  83. package/dist/project/init.js +175 -0
  84. package/dist/project/loader.d.ts +99 -0
  85. package/dist/project/loader.js +484 -0
  86. package/dist/project/lockfile.d.ts +55 -0
  87. package/dist/project/lockfile.js +175 -0
  88. package/dist/project/manifest.d.ts +22 -0
  89. package/dist/project/manifest.js +220 -0
  90. package/dist/project/resolver.d.ts +116 -0
  91. package/dist/project/resolver.js +376 -0
  92. package/dist/project/transactions.d.ts +103 -0
  93. package/dist/project/transactions.js +1203 -0
  94. package/dist/project/types-generator.d.ts +33 -0
  95. package/dist/project/types-generator.js +168 -0
  96. package/dist/project/types.d.ts +107 -0
  97. package/dist/project/types.js +1 -0
  98. package/dist/registry/index.d.ts +5 -0
  99. package/dist/registry/index.js +5 -0
  100. package/dist/registry/lock.d.ts +27 -0
  101. package/dist/registry/lock.js +93 -0
  102. package/dist/registry/registry.d.ts +45 -0
  103. package/dist/registry/registry.js +611 -0
  104. package/dist/registry/resolve.d.ts +62 -0
  105. package/dist/registry/resolve.js +195 -0
  106. package/dist/registry/scan.d.ts +38 -0
  107. package/dist/registry/scan.js +135 -0
  108. package/dist/registry/types.d.ts +117 -0
  109. package/dist/registry/types.js +1 -0
  110. package/dist/runtime/action-collection.d.ts +27 -0
  111. package/dist/runtime/action-collection.js +57 -0
  112. package/dist/runtime/clock.d.ts +19 -0
  113. package/dist/runtime/clock.js +17 -0
  114. package/dist/runtime/context.d.ts +86 -0
  115. package/dist/runtime/context.js +242 -0
  116. package/dist/runtime/env.d.ts +56 -0
  117. package/dist/runtime/env.js +159 -0
  118. package/dist/runtime/events.d.ts +93 -0
  119. package/dist/runtime/events.js +604 -0
  120. package/dist/runtime/execution-manager.d.ts +48 -0
  121. package/dist/runtime/execution-manager.js +66 -0
  122. package/dist/runtime/index.d.ts +10 -0
  123. package/dist/runtime/index.js +10 -0
  124. package/dist/runtime/module-loader.d.ts +34 -0
  125. package/dist/runtime/module-loader.js +16 -0
  126. package/dist/runtime/process.d.ts +9 -0
  127. package/dist/runtime/process.js +146 -0
  128. package/dist/runtime/runner.d.ts +293 -0
  129. package/dist/runtime/runner.js +984 -0
  130. package/dist/runtime/standalone.d.ts +89 -0
  131. package/dist/runtime/standalone.js +536 -0
  132. package/dist/schema/validator.d.ts +28 -0
  133. package/dist/schema/validator.js +116 -0
  134. package/dist/server/body.d.ts +40 -0
  135. package/dist/server/body.js +93 -0
  136. package/dist/server/index.d.ts +5 -0
  137. package/dist/server/index.js +5 -0
  138. package/dist/server/routes/actions.d.ts +5 -0
  139. package/dist/server/routes/actions.js +298 -0
  140. package/dist/server/routes/common.d.ts +47 -0
  141. package/dist/server/routes/common.js +104 -0
  142. package/dist/server/routes/config.d.ts +6 -0
  143. package/dist/server/routes/config.js +173 -0
  144. package/dist/server/routes/doctor.d.ts +5 -0
  145. package/dist/server/routes/doctor.js +63 -0
  146. package/dist/server/routes/health.d.ts +5 -0
  147. package/dist/server/routes/health.js +35 -0
  148. package/dist/server/routes/index.d.ts +9 -0
  149. package/dist/server/routes/index.js +9 -0
  150. package/dist/server/routes/info.d.ts +7 -0
  151. package/dist/server/routes/info.js +158 -0
  152. package/dist/server/routes/playbooks.d.ts +5 -0
  153. package/dist/server/routes/playbooks.js +134 -0
  154. package/dist/server/routes/runs.d.ts +5 -0
  155. package/dist/server/routes/runs.js +343 -0
  156. package/dist/server/routes/state.d.ts +6 -0
  157. package/dist/server/routes/state.js +169 -0
  158. package/dist/server/security.d.ts +44 -0
  159. package/dist/server/security.js +101 -0
  160. package/dist/server/server.d.ts +15 -0
  161. package/dist/server/server.js +355 -0
  162. package/dist/server/types.d.ts +78 -0
  163. package/dist/server/types.js +1 -0
  164. package/dist/storage/data-dir-lock.d.ts +119 -0
  165. package/dist/storage/data-dir-lock.js +1016 -0
  166. package/dist/storage/driver.d.ts +9 -0
  167. package/dist/storage/driver.js +59 -0
  168. package/dist/storage/index.d.ts +64 -0
  169. package/dist/storage/index.js +98 -0
  170. package/dist/storage/lazy.d.ts +8 -0
  171. package/dist/storage/lazy.js +44 -0
  172. package/dist/storage/mask.d.ts +26 -0
  173. package/dist/storage/mask.js +48 -0
  174. package/dist/storage/params.d.ts +13 -0
  175. package/dist/storage/params.js +32 -0
  176. package/dist/storage/sqlite.d.ts +79 -0
  177. package/dist/storage/sqlite.js +689 -0
  178. package/dist/storage/types.d.ts +172 -0
  179. package/dist/storage/types.js +14 -0
  180. package/dist/target/index.d.ts +4 -0
  181. package/dist/target/index.js +4 -0
  182. package/dist/target/local.d.ts +52 -0
  183. package/dist/target/local.js +343 -0
  184. package/dist/target/remote.d.ts +76 -0
  185. package/dist/target/remote.js +839 -0
  186. package/dist/target/target.d.ts +6 -0
  187. package/dist/target/target.js +35 -0
  188. package/dist/target/types.d.ts +246 -0
  189. package/dist/target/types.js +34 -0
  190. package/dist/utils/index.d.ts +49 -0
  191. package/dist/utils/index.js +180 -0
  192. package/dist/version.d.ts +4 -0
  193. package/dist/version.js +4 -0
  194. package/package.json +13 -13
  195. package/src/build/index.ts +0 -1
  196. package/src/build/templates.ts +0 -59
  197. package/src/catalog/action-index.ts +0 -92
  198. package/src/catalog/action-resolver.ts +0 -120
  199. package/src/catalog/index.ts +0 -5
  200. package/src/catalog/location-registry.ts +0 -134
  201. package/src/catalog/package-catalog.ts +0 -87
  202. package/src/catalog/types.ts +0 -75
  203. package/src/doctor/doctor.ts +0 -419
  204. package/src/doctor/index.ts +0 -2
  205. package/src/doctor/types.ts +0 -25
  206. package/src/execution/index.ts +0 -2
  207. package/src/execution/service.ts +0 -322
  208. package/src/execution/types.ts +0 -73
  209. package/src/export/index.ts +0 -1
  210. package/src/export/templates.ts +0 -590
  211. package/src/filter/index.ts +0 -1
  212. package/src/filter/intent.ts +0 -154
  213. package/src/index.ts +0 -16
  214. package/src/profile/client.ts +0 -552
  215. package/src/profile/index.ts +0 -3
  216. package/src/profile/manager.ts +0 -341
  217. package/src/profile/types.ts +0 -71
  218. package/src/project/index.ts +0 -4
  219. package/src/project/init.ts +0 -242
  220. package/src/project/loader.ts +0 -479
  221. package/src/project/manifest.ts +0 -299
  222. package/src/project/types.ts +0 -141
  223. package/src/registry/index.ts +0 -2
  224. package/src/registry/registry.ts +0 -940
  225. package/src/registry/types.ts +0 -127
  226. package/src/runtime/clock.ts +0 -41
  227. package/src/runtime/context.ts +0 -259
  228. package/src/runtime/env.ts +0 -172
  229. package/src/runtime/events.ts +0 -142
  230. package/src/runtime/execution-manager.ts +0 -74
  231. package/src/runtime/index.ts +0 -10
  232. package/src/runtime/module-loader.ts +0 -67
  233. package/src/runtime/process.ts +0 -245
  234. package/src/runtime/runner.ts +0 -527
  235. package/src/runtime/standalone.ts +0 -429
  236. package/src/schema/validator.ts +0 -61
  237. package/src/server/body.ts +0 -112
  238. package/src/server/index.ts +0 -7
  239. package/src/server/routes/actions.ts +0 -262
  240. package/src/server/routes/common.ts +0 -126
  241. package/src/server/routes/config.ts +0 -147
  242. package/src/server/routes/doctor.ts +0 -29
  243. package/src/server/routes/health.ts +0 -40
  244. package/src/server/routes/index.ts +0 -9
  245. package/src/server/routes/info.ts +0 -221
  246. package/src/server/routes/playbooks.ts +0 -109
  247. package/src/server/routes/runs.ts +0 -301
  248. package/src/server/routes/state.ts +0 -133
  249. package/src/server/runtime-registry.ts +0 -115
  250. package/src/server/security.ts +0 -115
  251. package/src/server/server.ts +0 -251
  252. package/src/server/types.ts +0 -57
  253. package/src/storage/driver.ts +0 -126
  254. package/src/storage/index.ts +0 -81
  255. package/src/storage/mask.ts +0 -34
  256. package/src/storage/sqlite.ts +0 -714
  257. package/src/storage/types.ts +0 -139
  258. package/src/utils/index.ts +0 -62
@@ -1,139 +0,0 @@
1
- import type { JsonValue, RuntimeError, RunRecord } from "@actiondock/sdk";
2
- import type { Clock } from "../runtime/clock";
3
-
4
- /**
5
- * SQLite 基础参数值类型。
6
- */
7
- export type SqlValue = null | number | string | Uint8Array;
8
-
9
- /**
10
- * SQLite 位置参数数组。
11
- */
12
- export type SqlParams = readonly SqlValue[];
13
-
14
- /**
15
- * 编译后的 SQLite 参数化语句接口。
16
- */
17
- export interface SqliteStatement {
18
- run(...params: any[]): { changes: number; lastInsertRowid?: number | bigint };
19
- get<T>(...params: any[]): T | undefined;
20
- all<T>(...params: any[]): T[];
21
- }
22
-
23
- /**
24
- * 统一 SQLite 驱动层接口。
25
- */
26
- export interface SqliteDriver {
27
- exec(sql: string): void;
28
- prepare(sql: string): SqliteStatement;
29
- transaction<T>(fn: () => T extends PromiseLike<unknown> ? never : T): T;
30
- close(): void;
31
- }
32
-
33
- /**
34
- * 数据库中存储的配置条目实体。
35
- */
36
- export interface ConfigEntry {
37
- /** 所属 Package ID */
38
- packageId: string;
39
- /** 配置键名 */
40
- key: string;
41
- /** 配置值(JSON 序列化存储) */
42
- value: unknown;
43
- /** 最近更新时间(ISO 8601 格式) */
44
- updatedAt: string;
45
- }
46
-
47
- /**
48
- * 数据库中存储的状态条目实体。
49
- */
50
- export interface StateEntry {
51
- /** 所属 Package ID */
52
- packageId: string;
53
- /** 状态隔离命名空间 */
54
- namespace: string;
55
- /** 状态键名 */
56
- key: string;
57
- /** 复合完整键名 */
58
- fullKey: string;
59
- /** 状态值(JSON 序列化存储) */
60
- value: unknown;
61
- /** 最近更新时间(ISO 8601 格式) */
62
- updatedAt: string;
63
- /** 自动过期时间戳(ISO 8601 格式,null/undefined 表示不过期) */
64
- expiresAt?: string;
65
- }
66
-
67
- /**
68
- * 初始化存储引擎所需的选项。
69
- */
70
- export interface StorageOptions {
71
- /** SQLite 数据库文件绝对路径,或 ":memory:" 表示内存数据库 */
72
- dbPath?: string;
73
- /** 所绑定的 Package ID */
74
- packageId: string;
75
- /** 显式注入的 SQLite 底层驱动 */
76
- driver?: SqliteDriver;
77
- /** 可选注入的时间提供器,便于与模拟时钟联动 */
78
- clock?: Clock;
79
- }
80
-
81
- /**
82
- * Action 执行终态枚举。
83
- */
84
- export type TerminalRunStatus =
85
- | "success"
86
- | "failed"
87
- | "cancelled"
88
- | "timed_out"
89
- | "interrupted";
90
-
91
- /**
92
- * 统一运行时存储抽象接口。
93
- */
94
- export interface RuntimeStorage {
95
- /** 数据库是否处于打开状态 */
96
- readonly isOpen?: boolean;
97
- /** 数据库是否已关闭 */
98
- readonly closed?: boolean;
99
-
100
- // --- Config 配置管理 ---
101
- getConfig<T = unknown>(key: string): T | undefined;
102
- listConfig(): Record<string, unknown>;
103
- setConfig(key: string, value: unknown): void;
104
- deleteConfig(key: string): boolean;
105
-
106
- // --- State 状态管理 ---
107
- getState<T = unknown>(namespace: string, key: string): Promise<T | undefined>;
108
- findState<T = unknown>(
109
- targetKey: string,
110
- namespace?: string
111
- ): Promise<StateEntry | undefined>;
112
- setState<T = unknown>(
113
- namespace: string,
114
- key: string,
115
- value: T,
116
- ttl?: number
117
- ): Promise<void>;
118
- deleteState(namespace: string, key: string): Promise<boolean>;
119
- deleteStateSmart(targetKey: string, namespace?: string): Promise<boolean>;
120
- clearState(options?: { namespace?: string; all?: boolean; prefix?: string }): Promise<number>;
121
- listStateKeys(namespace?: string | null, prefix?: string): Promise<string[]>;
122
- listStateEntries(options?: { namespace?: string; prefix?: string }): Promise<StateEntry[]>;
123
-
124
- // --- Runs 运行记录管理 ---
125
- createRun(record: RunRecord): void;
126
- updateRun(
127
- id: string,
128
- status: TerminalRunStatus,
129
- output?: unknown,
130
- error?: RuntimeError,
131
- finishedAt?: string
132
- ): void;
133
- getRun(id: string): RunRecord | null;
134
- listRuns(options?: { actionId?: string; limit?: number }): RunRecord[];
135
- clearRuns(options?: { actionId?: string; status?: string }): number;
136
-
137
- /** 关闭底层 SQLite 数据库连接并释放句柄 */
138
- close(): void;
139
- }
@@ -1,62 +0,0 @@
1
- import { homedir } from "node:os";
2
-
3
- export { findExecutable } from "@actiondock/sdk";
4
-
5
- /**
6
- * Parses duration strings like "500ms", "30s", "5m", "1h", "1d" or pure numbers into milliseconds.
7
- */
8
- export function parseDuration(input?: string): number | undefined {
9
- if (!input || !input.trim()) {
10
- return undefined;
11
- }
12
-
13
- const str = input.trim();
14
- if (/^\d+$/.test(str)) {
15
- return parseInt(str, 10);
16
- }
17
-
18
- const match = str.match(/^(\d+(?:\.\d+)?)\s*(ms|s|m|h|d)$/i);
19
- if (!match) {
20
- throw new Error(
21
- `Invalid duration format: '${input}'. Supported formats: 500ms, 30s, 5m, 1h`
22
- );
23
- }
24
-
25
- const val = parseFloat(match[1]);
26
- const unit = match[2].toLowerCase();
27
-
28
- switch (unit) {
29
- case "ms":
30
- return Math.round(val);
31
- case "s":
32
- return Math.round(val * 1000);
33
- case "m":
34
- return Math.round(val * 60 * 1000);
35
- case "h":
36
- return Math.round(val * 60 * 60 * 1000);
37
- case "d":
38
- return Math.round(val * 24 * 60 * 60 * 1000);
39
- default:
40
- return undefined;
41
- }
42
- }
43
-
44
- /**
45
- * Extracts a concise slug from a package or action identifier (e.g. '@scope/pkg' -> 'pkg', 'team.action' -> 'action').
46
- */
47
- export function getPackageSlug(id: string): string {
48
- if (id.includes("/")) {
49
- return id.split("/").pop()!;
50
- }
51
- if (id.includes(".")) {
52
- return id.split(".").pop()!;
53
- }
54
- return id;
55
- }
56
-
57
- /**
58
- * Resolves the root ActionDock user home directory based on customHome, ACTIONDOCK_HOME, or user homedir.
59
- */
60
- export function getActionDockHome(customHome?: string): string {
61
- return customHome || process.env.ACTIONDOCK_HOME || homedir();
62
- }