@actiondock/core 2.10.0 → 2.12.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 (252) hide show
  1. package/README.md +1 -2
  2. package/dist/catalog/action-catalog.js +3 -33
  3. package/dist/catalog/discovery.d.ts +0 -3
  4. package/dist/catalog/discovery.js +4 -4
  5. package/dist/catalog/graph.d.ts +0 -4
  6. package/dist/catalog/graph.js +8 -14
  7. package/dist/{profile/client-actions.d.ts → client/actions.d.ts} +1 -1
  8. package/dist/{profile/client-actions.js → client/actions.js} +2 -8
  9. package/dist/{profile/client-config.d.ts → client/config.d.ts} +1 -1
  10. package/dist/{profile/client-config.js → client/config.js} +1 -1
  11. package/dist/client/dispatcher.d.ts +4 -0
  12. package/dist/client/dispatcher.js +21 -0
  13. package/dist/client/health.d.ts +38 -0
  14. package/dist/{profile/client-health.js → client/health.js} +9 -6
  15. package/dist/client/index.d.ts +16 -0
  16. package/dist/client/index.js +20 -0
  17. package/dist/{profile/client-playbooks.d.ts → client/playbooks.d.ts} +1 -1
  18. package/dist/{profile/client-playbooks.js → client/playbooks.js} +1 -1
  19. package/dist/{profile/client-runs.d.ts → client/runs.d.ts} +4 -2
  20. package/dist/{profile/client-runs.js → client/runs.js} +7 -1
  21. package/dist/{profile/client-state.d.ts → client/state.d.ts} +1 -1
  22. package/dist/{profile/client-state.js → client/state.js} +1 -1
  23. package/dist/{profile/client-transport.d.ts → client/transport.d.ts} +29 -10
  24. package/dist/{profile/client-transport.js → client/transport.js} +125 -35
  25. package/dist/doctor/checks/index.d.ts +1 -1
  26. package/dist/doctor/checks/index.js +1 -1
  27. package/dist/doctor/checks/project.js +20 -88
  28. package/dist/doctor/checks/runtime.d.ts +0 -4
  29. package/dist/doctor/checks/runtime.js +0 -28
  30. package/dist/doctor/doctor.js +1 -2
  31. package/dist/errors.d.ts +53 -3
  32. package/dist/errors.js +53 -3
  33. package/dist/execution/service.d.ts +55 -37
  34. package/dist/execution/service.js +601 -212
  35. package/dist/execution/types.d.ts +24 -5
  36. package/dist/host/host.d.ts +42 -22
  37. package/dist/host/host.js +562 -149
  38. package/dist/host/routing.js +6 -6
  39. package/dist/host/types.d.ts +25 -13
  40. package/dist/index.d.ts +9 -4
  41. package/dist/index.js +5 -2
  42. package/dist/input/advice.d.ts +0 -44
  43. package/dist/input/advice.js +7 -141
  44. package/dist/input/flat-materializer.js +1 -1
  45. package/dist/input/flat-parser.js +1 -1
  46. package/dist/input/index.d.ts +0 -1
  47. package/dist/input/index.js +0 -1
  48. package/dist/input/input-resolver.js +1 -1
  49. package/dist/input/validation-mapper.d.ts +1 -1
  50. package/dist/ipc/diagnostic.d.ts +8 -21
  51. package/dist/ipc/diagnostic.js +24 -57
  52. package/dist/ipc/host.js +21 -7
  53. package/dist/ipc/service.d.ts +14 -0
  54. package/dist/ipc/service.js +132 -26
  55. package/dist/ipc/types.d.ts +0 -4
  56. package/dist/package/index.d.ts +4 -5
  57. package/dist/package/index.js +1 -2
  58. package/dist/package/runtime.d.ts +94 -23
  59. package/dist/package/runtime.js +628 -274
  60. package/dist/package/static-index.d.ts +3 -6
  61. package/dist/package/static-index.js +11 -40
  62. package/dist/package/types.d.ts +19 -4
  63. package/dist/platform/index.d.ts +2 -1
  64. package/dist/platform/index.js +2 -1
  65. package/dist/platform/loader-hook.d.ts +32 -0
  66. package/dist/platform/loader-hook.js +90 -0
  67. package/dist/{node → platform}/module-loader.d.ts +13 -0
  68. package/dist/{node → platform}/module-loader.js +51 -4
  69. package/dist/platform/node.d.ts +19 -8
  70. package/dist/platform/node.js +50 -20
  71. package/dist/platform/types.d.ts +7 -47
  72. package/dist/process/context-process.d.ts +3 -18
  73. package/dist/process/context-process.js +3 -44
  74. package/dist/process/control.d.ts +21 -0
  75. package/dist/process/control.js +34 -0
  76. package/dist/process/converters.d.ts +23 -0
  77. package/dist/process/converters.js +92 -0
  78. package/dist/process/cursor.js +2 -22
  79. package/dist/process/{diagnostics-sink.d.ts → diagnostics.d.ts} +0 -7
  80. package/dist/process/{diagnostics-sink.js → diagnostics.js} +6 -8
  81. package/dist/process/index.d.ts +1 -3
  82. package/dist/process/index.js +1 -3
  83. package/dist/process/input-dispatcher.d.ts +4 -13
  84. package/dist/process/input-dispatcher.js +48 -69
  85. package/dist/process/managed-record.d.ts +3 -31
  86. package/dist/process/metadata-store.d.ts +0 -41
  87. package/dist/process/metadata-store.js +2 -341
  88. package/dist/process/process-driver.js +2 -2
  89. package/dist/process/process-manager.d.ts +8 -50
  90. package/dist/process/process-manager.js +28 -417
  91. package/dist/process/quotas.d.ts +14 -0
  92. package/dist/process/quotas.js +29 -0
  93. package/dist/process/run-executor.js +0 -1
  94. package/dist/process/terminal-output-cache.d.ts +20 -34
  95. package/dist/process/terminal-output-cache.js +43 -64
  96. package/dist/profile/index.d.ts +1 -2
  97. package/dist/profile/index.js +1 -2
  98. package/dist/profile/manager.d.ts +2 -4
  99. package/dist/profile/manager.js +10 -40
  100. package/dist/profile/types.d.ts +1 -17
  101. package/dist/project/digest.d.ts +5 -1
  102. package/dist/project/digest.js +81 -219
  103. package/dist/project/index.d.ts +4 -5
  104. package/dist/project/index.js +4 -5
  105. package/dist/project/init.js +2 -2
  106. package/dist/project/loader.d.ts +3 -3
  107. package/dist/project/loader.js +72 -50
  108. package/dist/project/lockfile.js +6 -5
  109. package/dist/project/manifest.js +5 -4
  110. package/dist/project/transactions.d.ts +4 -42
  111. package/dist/project/transactions.js +83 -138
  112. package/dist/project/types-generator.js +2 -1
  113. package/dist/project/types.d.ts +2 -0
  114. package/dist/registry/index.d.ts +0 -1
  115. package/dist/registry/index.js +0 -1
  116. package/dist/registry/lock.d.ts +2 -11
  117. package/dist/registry/lock.js +14 -183
  118. package/dist/registry/registry.d.ts +1 -6
  119. package/dist/registry/registry.js +5 -17
  120. package/dist/runtime/action-registry.d.ts +1 -5
  121. package/dist/runtime/action-registry.js +0 -12
  122. package/dist/runtime/context.js +2 -2
  123. package/dist/runtime/events.d.ts +11 -50
  124. package/dist/runtime/events.js +88 -368
  125. package/dist/runtime/index.d.ts +0 -4
  126. package/dist/runtime/index.js +0 -4
  127. package/dist/runtime/run-persistence.d.ts +2 -0
  128. package/dist/runtime/run-persistence.js +2 -1
  129. package/dist/runtime/standalone-commands.d.ts +18 -0
  130. package/dist/runtime/standalone-commands.js +466 -0
  131. package/dist/runtime/standalone-help.d.ts +20 -0
  132. package/dist/runtime/standalone-help.js +72 -0
  133. package/dist/runtime/standalone.d.ts +1 -44
  134. package/dist/runtime/standalone.js +32 -573
  135. package/dist/schema/validator.d.ts +2 -2
  136. package/dist/schema/validator.js +2 -9
  137. package/dist/server/index.d.ts +0 -2
  138. package/dist/server/index.js +0 -2
  139. package/dist/server/routes/actions.js +1 -1
  140. package/dist/server/routes/info.js +1 -1
  141. package/dist/server/routes/playbooks.js +1 -1
  142. package/dist/server/routes/runs.js +123 -16
  143. package/dist/server/routes/state.js +43 -18
  144. package/dist/server/security.d.ts +1 -1
  145. package/dist/server/security.js +2 -2
  146. package/dist/server/server.js +3 -7
  147. package/dist/service/factory.js +4 -3
  148. package/dist/service/index.d.ts +1 -1
  149. package/dist/service/index.js +1 -1
  150. package/dist/service/remote-errors.d.ts +1 -1
  151. package/dist/service/remote-errors.js +6 -6
  152. package/dist/service/remote-polling.d.ts +3 -0
  153. package/dist/service/remote-polling.js +10 -5
  154. package/dist/service/remote.d.ts +5 -1
  155. package/dist/service/remote.js +108 -17
  156. package/dist/service/sse-stream.js +2 -2
  157. package/dist/service/types.d.ts +22 -19
  158. package/dist/service/types.js +1 -24
  159. package/dist/storage/clock.d.ts +1 -1
  160. package/dist/storage/clock.js +1 -1
  161. package/dist/storage/data-dir-lock.d.ts +10 -22
  162. package/dist/storage/data-dir-lock.js +28 -56
  163. package/dist/storage/file-lock.d.ts +64 -0
  164. package/dist/storage/file-lock.js +447 -0
  165. package/dist/storage/index.d.ts +2 -2
  166. package/dist/storage/index.js +5 -4
  167. package/dist/storage/run-liveness.d.ts +48 -0
  168. package/dist/storage/run-liveness.js +44 -0
  169. package/dist/storage/sqlite-config.d.ts +16 -0
  170. package/dist/storage/sqlite-config.js +59 -0
  171. package/dist/storage/sqlite-driver.d.ts +3 -1
  172. package/dist/storage/sqlite-driver.js +14 -4
  173. package/dist/storage/sqlite-events.d.ts +13 -0
  174. package/dist/storage/sqlite-events.js +48 -0
  175. package/dist/storage/sqlite-runs.d.ts +107 -0
  176. package/dist/storage/sqlite-runs.js +622 -0
  177. package/dist/storage/sqlite-schema.d.ts +5 -0
  178. package/dist/storage/sqlite-schema.js +143 -0
  179. package/dist/storage/sqlite-state.d.ts +33 -0
  180. package/dist/storage/sqlite-state.js +270 -0
  181. package/dist/storage/sqlite.d.ts +30 -57
  182. package/dist/storage/sqlite.js +84 -741
  183. package/dist/storage/types.d.ts +35 -2
  184. package/dist/utils/index.d.ts +18 -14
  185. package/dist/utils/index.js +37 -29
  186. package/dist/utils/semver.d.ts +18 -0
  187. package/dist/utils/semver.js +19 -0
  188. package/dist/utils/warning.d.ts +1 -0
  189. package/dist/utils/warning.js +52 -0
  190. package/dist/{json/value-validator.d.ts → value-validator.d.ts} +9 -0
  191. package/dist/value-validator.js +330 -0
  192. package/dist/version.d.ts +1 -1
  193. package/dist/version.js +1 -1
  194. package/package.json +10 -12
  195. package/dist/execution/index.d.ts +0 -2
  196. package/dist/execution/index.js +0 -2
  197. package/dist/filter/index.d.ts +0 -1
  198. package/dist/filter/index.js +0 -1
  199. package/dist/graph/index.d.ts +0 -4
  200. package/dist/graph/index.js +0 -4
  201. package/dist/input/metadata.d.ts +0 -99
  202. package/dist/input/metadata.js +0 -99
  203. package/dist/invocation/index.d.ts +0 -2
  204. package/dist/invocation/index.js +0 -2
  205. package/dist/ipc/index.d.ts +0 -4
  206. package/dist/ipc/index.js +0 -4
  207. package/dist/json/index.d.ts +0 -1
  208. package/dist/json/index.js +0 -1
  209. package/dist/json/value-validator.js +0 -330
  210. package/dist/node/index.d.ts +0 -1
  211. package/dist/node/index.js +0 -1
  212. package/dist/platform/node-fs.d.ts +0 -37
  213. package/dist/platform/node-fs.js +0 -81
  214. package/dist/process/control-arbiter.d.ts +0 -108
  215. package/dist/process/control-arbiter.js +0 -250
  216. package/dist/process/process-executor.d.ts +0 -47
  217. package/dist/process/process-executor.js +0 -296
  218. package/dist/profile/client-health.d.ts +0 -14
  219. package/dist/profile/client-query.d.ts +0 -30
  220. package/dist/profile/client-query.js +0 -69
  221. package/dist/profile/client.d.ts +0 -26
  222. package/dist/profile/client.js +0 -31
  223. package/dist/project/closure.d.ts +0 -25
  224. package/dist/project/closure.js +0 -74
  225. package/dist/registry/store.d.ts +0 -42
  226. package/dist/registry/store.js +0 -43
  227. package/dist/runtime/clock.d.ts +0 -7
  228. package/dist/runtime/clock.js +0 -7
  229. package/dist/runtime/module-loader.d.ts +0 -2
  230. package/dist/runtime/module-loader.js +0 -1
  231. package/dist/runtime/process.d.ts +0 -8
  232. package/dist/runtime/process.js +0 -1
  233. package/dist/runtime/runner.d.ts +0 -234
  234. package/dist/runtime/runner.js +0 -609
  235. package/dist/schema/index.d.ts +0 -1
  236. package/dist/schema/index.js +0 -1
  237. package/dist/server/dispatcher.d.ts +0 -25
  238. package/dist/server/dispatcher.js +0 -54
  239. package/dist/service/local.d.ts +0 -27
  240. package/dist/service/local.js +0 -141
  241. package/dist/storage/driver.d.ts +0 -10
  242. package/dist/storage/driver.js +0 -10
  243. package/dist/storage/lazy.d.ts +0 -8
  244. package/dist/storage/lazy.js +0 -45
  245. package/dist/storage/lock-core.d.ts +0 -158
  246. package/dist/storage/lock-core.js +0 -872
  247. package/dist/utils/net.d.ts +0 -10
  248. package/dist/utils/net.js +0 -16
  249. package/dist/utils/process.d.ts +0 -10
  250. package/dist/utils/process.js +0 -21
  251. /package/dist/{filter → utils}/intent.d.ts +0 -0
  252. /package/dist/{filter → utils}/intent.js +0 -0
@@ -1,6 +1,6 @@
1
1
  import childProcess from "node:child_process";
2
2
  import { createRequire } from "node:module";
3
- import { INPUT_CLOSED, UNSUPPORTED_CAPABILITY, ProcessError, } from "../errors.js";
3
+ import { ActionDockError, INPUT_CLOSED, PROCESS_NOT_FOUND, UNSUPPORTED_CAPABILITY, ProcessError, } from "../errors.js";
4
4
  import { DEFAULT_ENV_ALLOWLIST, resolveProcessEnv, } from "./driver.js";
5
5
  export { DEFAULT_ENV_ALLOWLIST, resolveProcessEnv };
6
6
  /**
@@ -639,7 +639,7 @@ export class NodeProcessDriver {
639
639
  resolveInstance(handle) {
640
640
  const instance = this.instances.get(handle.id);
641
641
  if (!instance) {
642
- throw new Error(`Process instance not found for handle id: ${handle.id}`);
642
+ throw new ActionDockError(PROCESS_NOT_FOUND, `Process instance not found for handle id: ${handle.id}`);
643
643
  }
644
644
  return instance;
645
645
  }
@@ -1,29 +1,18 @@
1
- import { type CallOptions, type ControlGrant, type Limits, type Logger, type OperationReceipt, type ProcessAcquireInput, type ProcessControlInput, type ProcessInfo, type ProcessListInput, type ProcessListResult, type ProcessReadInput, type ProcessRunInput, type ProcessRunResult, type ProcessStartInput, type ProcessStartResult, type ProcessStopInput, type ProcessWriteInput, type ReadResult } from "@actiondock/sdk";
1
+ import { type CallOptions, type Limits, type Logger, type OperationReceipt, type ProcessControlInput, type ProcessInfo, type ProcessListInput, type ProcessListResult, type ProcessReadInput, type ProcessRunInput, type ProcessRunResult, type ProcessStartInput, type ProcessStartResult, type ProcessStopInput, type ProcessWriteInput, type ReadResult } from "@actiondock/sdk";
2
2
  import { ContextProcessAPI } from "./context-process.js";
3
3
  import type { ProcessDriver } from "./driver.js";
4
4
  import { type ProcessMetadataStore } from "./metadata-store.js";
5
5
  import type { ProcessOwner } from "./managed-record.js";
6
- export type { ManagedProcessRecord, QueuedOperation, AcquireWaiter, ProcessOwner, } from "./managed-record.js";
6
+ export type { ManagedProcessRecord, QueuedOperation, ProcessOwner, } from "./managed-record.js";
7
+ export { formatProcessScope } from "./converters.js";
7
8
  /**
8
- * 宿主与作用域资源配额配置。
9
+ * 宿主资源配额配置。
9
10
  */
10
11
  export interface ProcessManagerQuotas {
11
- /** 每个作用域允许并发存在的活跃进程上限,默认 8 */
12
- maxActiveProcessesPerScope: number;
13
12
  /** 每个宿主允许并发存在的活跃进程上限,默认 64 */
14
13
  maxActiveProcessesPerHost: number;
15
14
  /** 单个进程输出缓冲区保留字节数上限,默认 4MB */
16
15
  maxOutputBufferBytesPerProcess: number;
17
- /** 宿主所有活跃进程累计输出缓冲区字节数总上限,默认 128MB */
18
- maxOutputBufferBytesPerHost: number;
19
- /** 单个进程待写入输入队列保留字节数上限,默认 1MB */
20
- maxPendingQueueBytesPerProcess: number;
21
- /** 宿主所有进程待写入输入队列累计字节数总上限,默认 16MB */
22
- maxPendingQueueBytesPerHost: number;
23
- /** 单个进程并发等待独占控制权或输出日志的长轮询等待者上限,默认 8 */
24
- maxWaitersPerProcess: number;
25
- /** 宿主所有长轮询等待者累计上限,默认 256 */
26
- maxWaitersPerHost: number;
27
16
  }
28
17
  /**
29
18
  * 进程管理器构造选项。
@@ -46,15 +35,11 @@ export interface ProcessManagerOptions {
46
35
  /** 可选结构化日志接口,用于透出持久化失败与驱动终止失败等诊断信息 */
47
36
  logger?: Logger;
48
37
  }
49
- /**
50
- * 格式化生成作用域唯一隔离字符串。
51
- */
52
- export declare function formatProcessScope(owner: ProcessOwner): string;
53
38
  /**
54
39
  * 受管进程核心管理器。
55
40
  *
56
41
  * 职责范畴:
57
- * - 宿主身份与配额检查(每作用域活跃进程、每宿主进程、输出缓冲预算、等待者上限、输入队列容量)。
42
+ * - 宿主身份与配额检查(每宿主进程、单进程输出缓冲上限)。
58
43
  * - 严格归属所有者鉴权校验(基于 tenantId, principalId, packageInstanceId, generationId)。
59
44
  * - 控制权状态机推进(free -> held -> quarantined -> closed)。
60
45
  * - 输入队列去重与串行调度执行。
@@ -78,9 +63,10 @@ export declare class ProcessManager {
78
63
  /** 一次性 run 执行器:仅依赖驱动、错误映射与输入校验,不触碰进程注册表 */
79
64
  private readonly runExecutor;
80
65
  /** 控制权仲裁器:独占控制权状态机全部推进路径的唯一持有者 */
81
- private readonly controlArbiter;
82
66
  /** 输入调度器:输入队列入队、串行调度与接管原语的唯一持有者 */
83
67
  private readonly inputDispatcher;
68
+ private readonly quotaTracker;
69
+ private readonly controlManager;
84
70
  private initPromise;
85
71
  private isShutdown;
86
72
  constructor(options: ProcessManagerOptions);
@@ -137,18 +123,6 @@ export declare class ProcessManager {
137
123
  * 分页列出指定归属所有者可见的受管进程列表。
138
124
  */
139
125
  list(owner: ProcessOwner, input: ProcessListInput, call?: CallOptions): Promise<ProcessListResult>;
140
- /**
141
- * 申请指定受管进程的独占控制令牌。
142
- */
143
- acquire(owner: ProcessOwner, id: string, input: ProcessAcquireInput, call?: CallOptions, runId?: string): Promise<ControlGrant>;
144
- /**
145
- * 延长当前有效控制令牌的存活时间。
146
- */
147
- renew(owner: ProcessOwner, id: string, token: string, ttlMs: number, call?: CallOptions): Promise<ControlGrant>;
148
- /**
149
- * 显式释放控制令牌,允许后续控制者申请。
150
- */
151
- release(owner: ProcessOwner, id: string, token: string, call?: CallOptions): Promise<void>;
152
126
  /**
153
127
  * 向受管进程输入流写入原始字节数据。
154
128
  */
@@ -172,7 +146,7 @@ export declare class ProcessManager {
172
146
  /**
173
147
  * 将进程置入隔离状态,撤销有效控制权并取消待 dispatch 的输入队列。
174
148
  */
175
- quarantineProcess(owner: ProcessOwner, processId: string, token?: string, reason?: string): Promise<void>;
149
+ quarantineProcess(owner: ProcessOwner, processId: string, reason?: string): Promise<void>;
176
150
  /**
177
151
  * 一次性运行外部命令,收集有限输出并支持协作式取消与超时回收。
178
152
  * 实现委托给独立持有的一次性 run 执行器,不触碰受管进程注册表。
@@ -214,25 +188,9 @@ export declare class ProcessManager {
214
188
  * 加载或读取受管进程记录并校验所有者鉴权。
215
189
  */
216
190
  private getOrLoadProcess;
217
- /**
218
- * 统计终态保留日志当前在内存中实际占用的输出缓冲字节总数。
219
- */
220
- private countRetainedOutputBufferBytes;
221
191
  /**
222
192
  * 终态驱逐与驱动释放:进程到达终态且输出已关闭后移除内存记录,
223
193
  * 并防御性释放底层驱动句柄(失败仅记录诊断不中断)。
224
194
  */
225
195
  private maybeEvictProcess;
226
- /**
227
- * 启动受管进程时的配额容量校验。
228
- */
229
- private checkSpawnQuotas;
230
- /**
231
- * 统计当前宿主所有活跃进程累计排队等待控制权的调用者总数。
232
- */
233
- private countHostAcquireWaiters;
234
- /**
235
- * 统计当前宿主所有活跃进程累计输入队列待写入字节总数。
236
- */
237
- private countHostPendingInputBytes;
238
196
  }