@sunshaobei/dsh-workflow 0.0.0-stage → 2.1.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 (386) hide show
  1. package/README.md +43 -2
  2. package/cordis.patch.yml +17 -0
  3. package/lib/client.js +14708 -0
  4. package/lib/core.js +137 -0
  5. package/lib/engine-adapter.js +1387 -0
  6. package/lib/host-driver.js +298 -0
  7. package/lib/index.js +536 -0
  8. package/lib/projection.js +159 -0
  9. package/lib/registry.js +218 -0
  10. package/lib/session-records.js +54 -0
  11. package/lib/submission-commit.js +34 -0
  12. package/lib/world-driver.js +275 -0
  13. package/package.json +64 -4
  14. package/vendor/PROVENANCE.md +9 -0
  15. package/vendor/dynamic-workflow/analysis/actor-graph.d.ts +47 -0
  16. package/vendor/dynamic-workflow/analysis/actor-graph.d.ts.map +1 -0
  17. package/vendor/dynamic-workflow/analysis/actor-graph.js +95 -0
  18. package/vendor/dynamic-workflow/analysis/actor-models.d.ts +60 -0
  19. package/vendor/dynamic-workflow/analysis/actor-models.d.ts.map +1 -0
  20. package/vendor/dynamic-workflow/analysis/actor-models.js +208 -0
  21. package/vendor/dynamic-workflow/analysis/actor-names.d.ts +56 -0
  22. package/vendor/dynamic-workflow/analysis/actor-names.d.ts.map +1 -0
  23. package/vendor/dynamic-workflow/analysis/actor-names.js +155 -0
  24. package/vendor/dynamic-workflow/analysis/analyze.d.ts +63 -0
  25. package/vendor/dynamic-workflow/analysis/analyze.d.ts.map +1 -0
  26. package/vendor/dynamic-workflow/analysis/analyze.js +92 -0
  27. package/vendor/dynamic-workflow/analysis/array-methods.d.ts +21 -0
  28. package/vendor/dynamic-workflow/analysis/array-methods.d.ts.map +1 -0
  29. package/vendor/dynamic-workflow/analysis/array-methods.js +132 -0
  30. package/vendor/dynamic-workflow/analysis/artifact-types.d.ts +39 -0
  31. package/vendor/dynamic-workflow/analysis/artifact-types.d.ts.map +1 -0
  32. package/vendor/dynamic-workflow/analysis/artifact-types.js +114 -0
  33. package/vendor/dynamic-workflow/analysis/artifacts.d.ts +67 -0
  34. package/vendor/dynamic-workflow/analysis/artifacts.d.ts.map +1 -0
  35. package/vendor/dynamic-workflow/analysis/artifacts.js +263 -0
  36. package/vendor/dynamic-workflow/analysis/assign.d.ts +42 -0
  37. package/vendor/dynamic-workflow/analysis/assign.d.ts.map +1 -0
  38. package/vendor/dynamic-workflow/analysis/assign.js +287 -0
  39. package/vendor/dynamic-workflow/analysis/callbacks.d.ts +71 -0
  40. package/vendor/dynamic-workflow/analysis/callbacks.d.ts.map +1 -0
  41. package/vendor/dynamic-workflow/analysis/callbacks.js +133 -0
  42. package/vendor/dynamic-workflow/analysis/calls.d.ts +40 -0
  43. package/vendor/dynamic-workflow/analysis/calls.d.ts.map +1 -0
  44. package/vendor/dynamic-workflow/analysis/calls.js +495 -0
  45. package/vendor/dynamic-workflow/analysis/causality-graph-lanes.d.ts +25 -0
  46. package/vendor/dynamic-workflow/analysis/causality-graph-lanes.d.ts.map +1 -0
  47. package/vendor/dynamic-workflow/analysis/causality-graph-lanes.js +161 -0
  48. package/vendor/dynamic-workflow/analysis/causality-graph-types.d.ts +163 -0
  49. package/vendor/dynamic-workflow/analysis/causality-graph-types.d.ts.map +1 -0
  50. package/vendor/dynamic-workflow/analysis/causality-graph-types.js +8 -0
  51. package/vendor/dynamic-workflow/analysis/causality-graph.d.ts +39 -0
  52. package/vendor/dynamic-workflow/analysis/causality-graph.d.ts.map +1 -0
  53. package/vendor/dynamic-workflow/analysis/causality-graph.js +530 -0
  54. package/vendor/dynamic-workflow/analysis/causality-order-calls.d.ts +29 -0
  55. package/vendor/dynamic-workflow/analysis/causality-order-calls.d.ts.map +1 -0
  56. package/vendor/dynamic-workflow/analysis/causality-order-calls.js +266 -0
  57. package/vendor/dynamic-workflow/analysis/causality-order-functions.d.ts +26 -0
  58. package/vendor/dynamic-workflow/analysis/causality-order-functions.d.ts.map +1 -0
  59. package/vendor/dynamic-workflow/analysis/causality-order-functions.js +116 -0
  60. package/vendor/dynamic-workflow/analysis/causality-order-loops.d.ts +5 -0
  61. package/vendor/dynamic-workflow/analysis/causality-order-loops.d.ts.map +1 -0
  62. package/vendor/dynamic-workflow/analysis/causality-order-loops.js +148 -0
  63. package/vendor/dynamic-workflow/analysis/causality-order-settle.d.ts +39 -0
  64. package/vendor/dynamic-workflow/analysis/causality-order-settle.d.ts.map +1 -0
  65. package/vendor/dynamic-workflow/analysis/causality-order-settle.js +263 -0
  66. package/vendor/dynamic-workflow/analysis/causality-order-state.d.ts +110 -0
  67. package/vendor/dynamic-workflow/analysis/causality-order-state.d.ts.map +1 -0
  68. package/vendor/dynamic-workflow/analysis/causality-order-state.js +162 -0
  69. package/vendor/dynamic-workflow/analysis/causality-order-strands.d.ts +79 -0
  70. package/vendor/dynamic-workflow/analysis/causality-order-strands.d.ts.map +1 -0
  71. package/vendor/dynamic-workflow/analysis/causality-order-strands.js +154 -0
  72. package/vendor/dynamic-workflow/analysis/causality-order-types.d.ts +174 -0
  73. package/vendor/dynamic-workflow/analysis/causality-order-types.d.ts.map +1 -0
  74. package/vendor/dynamic-workflow/analysis/causality-order-types.js +1 -0
  75. package/vendor/dynamic-workflow/analysis/causality-order-walk.d.ts +17 -0
  76. package/vendor/dynamic-workflow/analysis/causality-order-walk.d.ts.map +1 -0
  77. package/vendor/dynamic-workflow/analysis/causality-order-walk.js +282 -0
  78. package/vendor/dynamic-workflow/analysis/causality-order.d.ts +60 -0
  79. package/vendor/dynamic-workflow/analysis/causality-order.d.ts.map +1 -0
  80. package/vendor/dynamic-workflow/analysis/causality-order.js +110 -0
  81. package/vendor/dynamic-workflow/analysis/causality-reduce.d.ts +60 -0
  82. package/vendor/dynamic-workflow/analysis/causality-reduce.d.ts.map +1 -0
  83. package/vendor/dynamic-workflow/analysis/causality-reduce.js +198 -0
  84. package/vendor/dynamic-workflow/analysis/classes.d.ts +47 -0
  85. package/vendor/dynamic-workflow/analysis/classes.d.ts.map +1 -0
  86. package/vendor/dynamic-workflow/analysis/classes.js +264 -0
  87. package/vendor/dynamic-workflow/analysis/constants.d.ts +35 -0
  88. package/vendor/dynamic-workflow/analysis/constants.d.ts.map +1 -0
  89. package/vendor/dynamic-workflow/analysis/constants.js +23 -0
  90. package/vendor/dynamic-workflow/analysis/control-flow.d.ts +26 -0
  91. package/vendor/dynamic-workflow/analysis/control-flow.d.ts.map +1 -0
  92. package/vendor/dynamic-workflow/analysis/control-flow.js +132 -0
  93. package/vendor/dynamic-workflow/analysis/core-json.d.ts +45 -0
  94. package/vendor/dynamic-workflow/analysis/core-json.d.ts.map +1 -0
  95. package/vendor/dynamic-workflow/analysis/core-json.js +49 -0
  96. package/vendor/dynamic-workflow/analysis/core.d.ts +194 -0
  97. package/vendor/dynamic-workflow/analysis/core.d.ts.map +1 -0
  98. package/vendor/dynamic-workflow/analysis/core.js +204 -0
  99. package/vendor/dynamic-workflow/analysis/domain.d.ts +269 -0
  100. package/vendor/dynamic-workflow/analysis/domain.d.ts.map +1 -0
  101. package/vendor/dynamic-workflow/analysis/domain.js +523 -0
  102. package/vendor/dynamic-workflow/analysis/facade-misuse.d.ts +56 -0
  103. package/vendor/dynamic-workflow/analysis/facade-misuse.d.ts.map +1 -0
  104. package/vendor/dynamic-workflow/analysis/facade-misuse.js +350 -0
  105. package/vendor/dynamic-workflow/analysis/fanout-cardinality.d.ts +11 -0
  106. package/vendor/dynamic-workflow/analysis/fanout-cardinality.d.ts.map +1 -0
  107. package/vendor/dynamic-workflow/analysis/fanout-cardinality.js +121 -0
  108. package/vendor/dynamic-workflow/analysis/flow-graph.d.ts +113 -0
  109. package/vendor/dynamic-workflow/analysis/flow-graph.d.ts.map +1 -0
  110. package/vendor/dynamic-workflow/analysis/flow-graph.js +411 -0
  111. package/vendor/dynamic-workflow/analysis/flow-phase.d.ts +28 -0
  112. package/vendor/dynamic-workflow/analysis/flow-phase.d.ts.map +1 -0
  113. package/vendor/dynamic-workflow/analysis/flow-phase.js +104 -0
  114. package/vendor/dynamic-workflow/analysis/flow-strands.d.ts +39 -0
  115. package/vendor/dynamic-workflow/analysis/flow-strands.d.ts.map +1 -0
  116. package/vendor/dynamic-workflow/analysis/flow-strands.js +47 -0
  117. package/vendor/dynamic-workflow/analysis/flow-tree.d.ts +35 -0
  118. package/vendor/dynamic-workflow/analysis/flow-tree.d.ts.map +1 -0
  119. package/vendor/dynamic-workflow/analysis/flow-tree.js +33 -0
  120. package/vendor/dynamic-workflow/analysis/graph.d.ts +5 -0
  121. package/vendor/dynamic-workflow/analysis/graph.d.ts.map +1 -0
  122. package/vendor/dynamic-workflow/analysis/graph.js +199 -0
  123. package/vendor/dynamic-workflow/analysis/handoff-graph.d.ts +48 -0
  124. package/vendor/dynamic-workflow/analysis/handoff-graph.d.ts.map +1 -0
  125. package/vendor/dynamic-workflow/analysis/handoff-graph.js +0 -0
  126. package/vendor/dynamic-workflow/analysis/heap-ops.d.ts +14 -0
  127. package/vendor/dynamic-workflow/analysis/heap-ops.d.ts.map +1 -0
  128. package/vendor/dynamic-workflow/analysis/heap-ops.js +70 -0
  129. package/vendor/dynamic-workflow/analysis/hole-id.d.ts +28 -0
  130. package/vendor/dynamic-workflow/analysis/hole-id.d.ts.map +1 -0
  131. package/vendor/dynamic-workflow/analysis/hole-id.js +41 -0
  132. package/vendor/dynamic-workflow/analysis/hole-sites.d.ts +32 -0
  133. package/vendor/dynamic-workflow/analysis/hole-sites.d.ts.map +1 -0
  134. package/vendor/dynamic-workflow/analysis/hole-sites.js +215 -0
  135. package/vendor/dynamic-workflow/analysis/hole-splice.d.ts +45 -0
  136. package/vendor/dynamic-workflow/analysis/hole-splice.d.ts.map +1 -0
  137. package/vendor/dynamic-workflow/analysis/hole-splice.js +100 -0
  138. package/vendor/dynamic-workflow/analysis/interpret.d.ts +26 -0
  139. package/vendor/dynamic-workflow/analysis/interpret.d.ts.map +1 -0
  140. package/vendor/dynamic-workflow/analysis/interpret.js +200 -0
  141. package/vendor/dynamic-workflow/analysis/literals.d.ts +18 -0
  142. package/vendor/dynamic-workflow/analysis/literals.d.ts.map +1 -0
  143. package/vendor/dynamic-workflow/analysis/literals.js +125 -0
  144. package/vendor/dynamic-workflow/analysis/mermaid.d.ts +60 -0
  145. package/vendor/dynamic-workflow/analysis/mermaid.d.ts.map +1 -0
  146. package/vendor/dynamic-workflow/analysis/mermaid.js +477 -0
  147. package/vendor/dynamic-workflow/analysis/patterns.d.ts +31 -0
  148. package/vendor/dynamic-workflow/analysis/patterns.d.ts.map +1 -0
  149. package/vendor/dynamic-workflow/analysis/patterns.js +94 -0
  150. package/vendor/dynamic-workflow/analysis/phase-graph.d.ts +47 -0
  151. package/vendor/dynamic-workflow/analysis/phase-graph.d.ts.map +1 -0
  152. package/vendor/dynamic-workflow/analysis/phase-graph.js +334 -0
  153. package/vendor/dynamic-workflow/analysis/phases.d.ts +24 -0
  154. package/vendor/dynamic-workflow/analysis/phases.d.ts.map +1 -0
  155. package/vendor/dynamic-workflow/analysis/phases.js +54 -0
  156. package/vendor/dynamic-workflow/analysis/promise-ops.d.ts +52 -0
  157. package/vendor/dynamic-workflow/analysis/promise-ops.d.ts.map +1 -0
  158. package/vendor/dynamic-workflow/analysis/promise-ops.js +123 -0
  159. package/vendor/dynamic-workflow/analysis/relays.d.ts +12 -0
  160. package/vendor/dynamic-workflow/analysis/relays.d.ts.map +1 -0
  161. package/vendor/dynamic-workflow/analysis/relays.js +78 -0
  162. package/vendor/dynamic-workflow/analysis/serialize.d.ts +125 -0
  163. package/vendor/dynamic-workflow/analysis/serialize.d.ts.map +1 -0
  164. package/vendor/dynamic-workflow/analysis/serialize.js +321 -0
  165. package/vendor/dynamic-workflow/analysis/site-phases.d.ts +32 -0
  166. package/vendor/dynamic-workflow/analysis/site-phases.d.ts.map +1 -0
  167. package/vendor/dynamic-workflow/analysis/site-phases.js +69 -0
  168. package/vendor/dynamic-workflow/analysis/sites-labels.d.ts +71 -0
  169. package/vendor/dynamic-workflow/analysis/sites-labels.d.ts.map +1 -0
  170. package/vendor/dynamic-workflow/analysis/sites-labels.js +189 -0
  171. package/vendor/dynamic-workflow/analysis/sites.d.ts +267 -0
  172. package/vendor/dynamic-workflow/analysis/sites.d.ts.map +1 -0
  173. package/vendor/dynamic-workflow/analysis/sites.js +225 -0
  174. package/vendor/dynamic-workflow/analysis/state.d.ts +254 -0
  175. package/vendor/dynamic-workflow/analysis/state.d.ts.map +1 -0
  176. package/vendor/dynamic-workflow/analysis/state.js +569 -0
  177. package/vendor/dynamic-workflow/analysis/taint.d.ts +97 -0
  178. package/vendor/dynamic-workflow/analysis/taint.d.ts.map +1 -0
  179. package/vendor/dynamic-workflow/analysis/taint.js +649 -0
  180. package/vendor/dynamic-workflow/analysis/types.d.ts +100 -0
  181. package/vendor/dynamic-workflow/analysis/types.d.ts.map +1 -0
  182. package/vendor/dynamic-workflow/analysis/types.js +1 -0
  183. package/vendor/dynamic-workflow/analysis/world-run.d.ts +27 -0
  184. package/vendor/dynamic-workflow/analysis/world-run.d.ts.map +1 -0
  185. package/vendor/dynamic-workflow/analysis/world-run.js +44 -0
  186. package/vendor/dynamic-workflow/compiler/compile.d.ts +59 -0
  187. package/vendor/dynamic-workflow/compiler/compile.d.ts.map +1 -0
  188. package/vendor/dynamic-workflow/compiler/compile.js +159 -0
  189. package/vendor/dynamic-workflow/compiler/libs.generated.d.ts +3 -0
  190. package/vendor/dynamic-workflow/compiler/libs.generated.d.ts.map +1 -0
  191. package/vendor/dynamic-workflow/compiler/libs.generated.js +64 -0
  192. package/vendor/dynamic-workflow/engine/artifact-spec.d.ts +26 -0
  193. package/vendor/dynamic-workflow/engine/artifact-spec.d.ts.map +1 -0
  194. package/vendor/dynamic-workflow/engine/artifact-spec.js +173 -0
  195. package/vendor/dynamic-workflow/engine/ask-observation-types.d.ts +54 -0
  196. package/vendor/dynamic-workflow/engine/ask-observation-types.d.ts.map +1 -0
  197. package/vendor/dynamic-workflow/engine/ask-observation-types.js +19 -0
  198. package/vendor/dynamic-workflow/engine/cached-ask-facts.d.ts +28 -0
  199. package/vendor/dynamic-workflow/engine/cached-ask-facts.d.ts.map +1 -0
  200. package/vendor/dynamic-workflow/engine/cached-ask-facts.js +35 -0
  201. package/vendor/dynamic-workflow/engine/concurrency.d.ts +151 -0
  202. package/vendor/dynamic-workflow/engine/concurrency.d.ts.map +1 -0
  203. package/vendor/dynamic-workflow/engine/concurrency.js +282 -0
  204. package/vendor/dynamic-workflow/engine/engine-artifacts-primary.d.ts +17 -0
  205. package/vendor/dynamic-workflow/engine/engine-artifacts-primary.d.ts.map +1 -0
  206. package/vendor/dynamic-workflow/engine/engine-artifacts-primary.js +29 -0
  207. package/vendor/dynamic-workflow/engine/engine-artifacts.d.ts +55 -0
  208. package/vendor/dynamic-workflow/engine/engine-artifacts.d.ts.map +1 -0
  209. package/vendor/dynamic-workflow/engine/engine-artifacts.js +367 -0
  210. package/vendor/dynamic-workflow/engine/engine-config.d.ts +90 -0
  211. package/vendor/dynamic-workflow/engine/engine-config.d.ts.map +1 -0
  212. package/vendor/dynamic-workflow/engine/engine-config.js +6 -0
  213. package/vendor/dynamic-workflow/engine/engine-holes.d.ts +116 -0
  214. package/vendor/dynamic-workflow/engine/engine-holes.d.ts.map +1 -0
  215. package/vendor/dynamic-workflow/engine/engine-holes.js +142 -0
  216. package/vendor/dynamic-workflow/engine/engine-launch.d.ts +34 -0
  217. package/vendor/dynamic-workflow/engine/engine-launch.d.ts.map +1 -0
  218. package/vendor/dynamic-workflow/engine/engine-launch.js +26 -0
  219. package/vendor/dynamic-workflow/engine/engine-phase-stamp.d.ts +35 -0
  220. package/vendor/dynamic-workflow/engine/engine-phase-stamp.d.ts.map +1 -0
  221. package/vendor/dynamic-workflow/engine/engine-phase-stamp.js +74 -0
  222. package/vendor/dynamic-workflow/engine/engine-report.d.ts +27 -0
  223. package/vendor/dynamic-workflow/engine/engine-report.d.ts.map +1 -0
  224. package/vendor/dynamic-workflow/engine/engine-report.js +151 -0
  225. package/vendor/dynamic-workflow/engine/engine-resume.d.ts +18 -0
  226. package/vendor/dynamic-workflow/engine/engine-resume.d.ts.map +1 -0
  227. package/vendor/dynamic-workflow/engine/engine-resume.js +38 -0
  228. package/vendor/dynamic-workflow/engine/engine-settlement.d.ts +30 -0
  229. package/vendor/dynamic-workflow/engine/engine-settlement.d.ts.map +1 -0
  230. package/vendor/dynamic-workflow/engine/engine-settlement.js +79 -0
  231. package/vendor/dynamic-workflow/engine/engine-state.d.ts +99 -0
  232. package/vendor/dynamic-workflow/engine/engine-state.d.ts.map +1 -0
  233. package/vendor/dynamic-workflow/engine/engine-state.js +13 -0
  234. package/vendor/dynamic-workflow/engine/engine-world.d.ts +36 -0
  235. package/vendor/dynamic-workflow/engine/engine-world.d.ts.map +1 -0
  236. package/vendor/dynamic-workflow/engine/engine-world.js +189 -0
  237. package/vendor/dynamic-workflow/engine/engine.d.ts +263 -0
  238. package/vendor/dynamic-workflow/engine/engine.d.ts.map +1 -0
  239. package/vendor/dynamic-workflow/engine/engine.js +602 -0
  240. package/vendor/dynamic-workflow/engine/errors.d.ts +87 -0
  241. package/vendor/dynamic-workflow/engine/errors.d.ts.map +1 -0
  242. package/vendor/dynamic-workflow/engine/errors.js +56 -0
  243. package/vendor/dynamic-workflow/engine/hash-mismatch.d.ts +10 -0
  244. package/vendor/dynamic-workflow/engine/hash-mismatch.d.ts.map +1 -0
  245. package/vendor/dynamic-workflow/engine/hash-mismatch.js +15 -0
  246. package/vendor/dynamic-workflow/engine/hash.d.ts +16 -0
  247. package/vendor/dynamic-workflow/engine/hash.d.ts.map +1 -0
  248. package/vendor/dynamic-workflow/engine/hash.js +48 -0
  249. package/vendor/dynamic-workflow/engine/imported-cache-types.d.ts +96 -0
  250. package/vendor/dynamic-workflow/engine/imported-cache-types.d.ts.map +1 -0
  251. package/vendor/dynamic-workflow/engine/imported-cache-types.js +6 -0
  252. package/vendor/dynamic-workflow/engine/imported-cache.d.ts +127 -0
  253. package/vendor/dynamic-workflow/engine/imported-cache.d.ts.map +1 -0
  254. package/vendor/dynamic-workflow/engine/imported-cache.js +244 -0
  255. package/vendor/dynamic-workflow/engine/index.d.ts +11 -0
  256. package/vendor/dynamic-workflow/engine/index.d.ts.map +1 -0
  257. package/vendor/dynamic-workflow/engine/index.js +10 -0
  258. package/vendor/dynamic-workflow/engine/journal-memory.d.ts +32 -0
  259. package/vendor/dynamic-workflow/engine/journal-memory.d.ts.map +1 -0
  260. package/vendor/dynamic-workflow/engine/journal-memory.js +243 -0
  261. package/vendor/dynamic-workflow/engine/journal-read-types.d.ts +72 -0
  262. package/vendor/dynamic-workflow/engine/journal-read-types.d.ts.map +1 -0
  263. package/vendor/dynamic-workflow/engine/journal-read-types.js +28 -0
  264. package/vendor/dynamic-workflow/engine/persona.d.ts +20 -0
  265. package/vendor/dynamic-workflow/engine/persona.d.ts.map +1 -0
  266. package/vendor/dynamic-workflow/engine/persona.js +43 -0
  267. package/vendor/dynamic-workflow/engine/replay-order.d.ts +96 -0
  268. package/vendor/dynamic-workflow/engine/replay-order.d.ts.map +1 -0
  269. package/vendor/dynamic-workflow/engine/replay-order.js +229 -0
  270. package/vendor/dynamic-workflow/engine/run-terminal.d.ts +35 -0
  271. package/vendor/dynamic-workflow/engine/run-terminal.d.ts.map +1 -0
  272. package/vendor/dynamic-workflow/engine/run-terminal.js +7 -0
  273. package/vendor/dynamic-workflow/engine/scheduler-submit.d.ts +22 -0
  274. package/vendor/dynamic-workflow/engine/scheduler-submit.d.ts.map +1 -0
  275. package/vendor/dynamic-workflow/engine/scheduler-submit.js +84 -0
  276. package/vendor/dynamic-workflow/engine/scheduler-types.d.ts +105 -0
  277. package/vendor/dynamic-workflow/engine/scheduler-types.d.ts.map +1 -0
  278. package/vendor/dynamic-workflow/engine/scheduler-types.js +17 -0
  279. package/vendor/dynamic-workflow/engine/scheduler.d.ts +113 -0
  280. package/vendor/dynamic-workflow/engine/scheduler.d.ts.map +1 -0
  281. package/vendor/dynamic-workflow/engine/scheduler.js +484 -0
  282. package/vendor/dynamic-workflow/engine/types.d.ts +979 -0
  283. package/vendor/dynamic-workflow/engine/types.d.ts.map +1 -0
  284. package/vendor/dynamic-workflow/engine/types.js +26 -0
  285. package/vendor/dynamic-workflow/engine/world-read-input.d.ts +10 -0
  286. package/vendor/dynamic-workflow/engine/world-read-input.d.ts.map +1 -0
  287. package/vendor/dynamic-workflow/engine/world-read-input.js +55 -0
  288. package/vendor/dynamic-workflow/facade/artifact-caps.d.ts +48 -0
  289. package/vendor/dynamic-workflow/facade/artifact-caps.d.ts.map +1 -0
  290. package/vendor/dynamic-workflow/facade/artifact-caps.js +47 -0
  291. package/vendor/dynamic-workflow/facade/dts-hole.d.ts +16 -0
  292. package/vendor/dynamic-workflow/facade/dts-hole.d.ts.map +1 -0
  293. package/vendor/dynamic-workflow/facade/dts-hole.js +26 -0
  294. package/vendor/dynamic-workflow/facade/dts-model.d.ts +11 -0
  295. package/vendor/dynamic-workflow/facade/dts-model.d.ts.map +1 -0
  296. package/vendor/dynamic-workflow/facade/dts-model.js +18 -0
  297. package/vendor/dynamic-workflow/facade/dts-stream.d.ts +15 -0
  298. package/vendor/dynamic-workflow/facade/dts-stream.d.ts.map +1 -0
  299. package/vendor/dynamic-workflow/facade/dts-stream.js +41 -0
  300. package/vendor/dynamic-workflow/facade/dts.d.ts +29 -0
  301. package/vendor/dynamic-workflow/facade/dts.d.ts.map +1 -0
  302. package/vendor/dynamic-workflow/facade/dts.js +324 -0
  303. package/vendor/dynamic-workflow/facade/registry.d.ts +218 -0
  304. package/vendor/dynamic-workflow/facade/registry.d.ts.map +1 -0
  305. package/vendor/dynamic-workflow/facade/registry.js +203 -0
  306. package/vendor/dynamic-workflow/facade/report-caps.d.ts +40 -0
  307. package/vendor/dynamic-workflow/facade/report-caps.d.ts.map +1 -0
  308. package/vendor/dynamic-workflow/facade/report-caps.js +39 -0
  309. package/vendor/dynamic-workflow/facade/world-read-caps.d.ts +37 -0
  310. package/vendor/dynamic-workflow/facade/world-read-caps.d.ts.map +1 -0
  311. package/vendor/dynamic-workflow/facade/world-read-caps.js +36 -0
  312. package/vendor/dynamic-workflow/index.d.ts +41 -0
  313. package/vendor/dynamic-workflow/index.d.ts.map +1 -0
  314. package/vendor/dynamic-workflow/index.js +51 -0
  315. package/vendor/dynamic-workflow/lowering/index.d.ts +2 -0
  316. package/vendor/dynamic-workflow/lowering/index.d.ts.map +1 -0
  317. package/vendor/dynamic-workflow/lowering/index.js +1 -0
  318. package/vendor/dynamic-workflow/lowering/lower-hole.d.ts +16 -0
  319. package/vendor/dynamic-workflow/lowering/lower-hole.d.ts.map +1 -0
  320. package/vendor/dynamic-workflow/lowering/lower-hole.js +63 -0
  321. package/vendor/dynamic-workflow/lowering/lower.d.ts +82 -0
  322. package/vendor/dynamic-workflow/lowering/lower.d.ts.map +1 -0
  323. package/vendor/dynamic-workflow/lowering/lower.js +333 -0
  324. package/vendor/dynamic-workflow/projections.d.ts +26 -0
  325. package/vendor/dynamic-workflow/projections.d.ts.map +1 -0
  326. package/vendor/dynamic-workflow/projections.js +23 -0
  327. package/vendor/dynamic-workflow/schema/actor-submit-profiles.d.ts +49 -0
  328. package/vendor/dynamic-workflow/schema/actor-submit-profiles.d.ts.map +1 -0
  329. package/vendor/dynamic-workflow/schema/actor-submit-profiles.js +69 -0
  330. package/vendor/dynamic-workflow/schema/emit.d.ts +55 -0
  331. package/vendor/dynamic-workflow/schema/emit.d.ts.map +1 -0
  332. package/vendor/dynamic-workflow/schema/emit.js +325 -0
  333. package/vendor/dynamic-workflow/schema/jsdoc.d.ts +10 -0
  334. package/vendor/dynamic-workflow/schema/jsdoc.d.ts.map +1 -0
  335. package/vendor/dynamic-workflow/schema/jsdoc.js +83 -0
  336. package/vendor/dynamic-workflow/schema/serialize.d.ts +8 -0
  337. package/vendor/dynamic-workflow/schema/serialize.d.ts.map +1 -0
  338. package/vendor/dynamic-workflow/schema/serialize.js +20 -0
  339. package/vendor/dynamic-workflow/schema/synthesize.d.ts +48 -0
  340. package/vendor/dynamic-workflow/schema/synthesize.d.ts.map +1 -0
  341. package/vendor/dynamic-workflow/schema/synthesize.js +138 -0
  342. package/vendor/dynamic-workflow/schema/types.d.ts +67 -0
  343. package/vendor/dynamic-workflow/schema/types.d.ts.map +1 -0
  344. package/vendor/dynamic-workflow/schema/types.js +18 -0
  345. package/vendor/dynamic-workflow/schema/validate.d.ts +15 -0
  346. package/vendor/dynamic-workflow/schema/validate.d.ts.map +1 -0
  347. package/vendor/dynamic-workflow/schema/validate.js +213 -0
  348. package/vendor/dynamic-workflow/testing/index.d.ts +6 -0
  349. package/vendor/dynamic-workflow/testing/index.d.ts.map +1 -0
  350. package/vendor/dynamic-workflow/testing/index.js +5 -0
  351. package/vendor/dynamic-workflow/testing/journal-contract-artifacts.d.ts +9 -0
  352. package/vendor/dynamic-workflow/testing/journal-contract-artifacts.d.ts.map +1 -0
  353. package/vendor/dynamic-workflow/testing/journal-contract-artifacts.js +195 -0
  354. package/vendor/dynamic-workflow/testing/journal-contract-events.d.ts +9 -0
  355. package/vendor/dynamic-workflow/testing/journal-contract-events.d.ts.map +1 -0
  356. package/vendor/dynamic-workflow/testing/journal-contract-events.js +163 -0
  357. package/vendor/dynamic-workflow/testing/journal-contract-helpers.d.ts +9 -0
  358. package/vendor/dynamic-workflow/testing/journal-contract-helpers.d.ts.map +1 -0
  359. package/vendor/dynamic-workflow/testing/journal-contract-helpers.js +12 -0
  360. package/vendor/dynamic-workflow/testing/journal-contract-isolation.d.ts +9 -0
  361. package/vendor/dynamic-workflow/testing/journal-contract-isolation.d.ts.map +1 -0
  362. package/vendor/dynamic-workflow/testing/journal-contract-isolation.js +46 -0
  363. package/vendor/dynamic-workflow/testing/journal-contract-nodes.d.ts +9 -0
  364. package/vendor/dynamic-workflow/testing/journal-contract-nodes.d.ts.map +1 -0
  365. package/vendor/dynamic-workflow/testing/journal-contract-nodes.js +234 -0
  366. package/vendor/dynamic-workflow/testing/journal-contract-reads.d.ts +11 -0
  367. package/vendor/dynamic-workflow/testing/journal-contract-reads.d.ts.map +1 -0
  368. package/vendor/dynamic-workflow/testing/journal-contract-reads.js +281 -0
  369. package/vendor/dynamic-workflow/testing/journal-contract-runs.d.ts +9 -0
  370. package/vendor/dynamic-workflow/testing/journal-contract-runs.d.ts.map +1 -0
  371. package/vendor/dynamic-workflow/testing/journal-contract-runs.js +396 -0
  372. package/vendor/dynamic-workflow/testing/journal-contract-script.d.ts +12 -0
  373. package/vendor/dynamic-workflow/testing/journal-contract-script.d.ts.map +1 -0
  374. package/vendor/dynamic-workflow/testing/journal-contract-script.js +82 -0
  375. package/vendor/dynamic-workflow/testing/journal-contract.d.ts +15 -0
  376. package/vendor/dynamic-workflow/testing/journal-contract.d.ts.map +1 -0
  377. package/vendor/dynamic-workflow/testing/journal-contract.js +31 -0
  378. package/vendor/dynamic-workflow-runtime/child-cell-streams.js +128 -0
  379. package/vendor/dynamic-workflow-runtime/child-entry-file.js +43 -0
  380. package/vendor/dynamic-workflow-runtime/child-source.js +299 -0
  381. package/vendor/dynamic-workflow-runtime/harness.js +302 -0
  382. package/vendor/dynamic-workflow-runtime/index.js +4 -0
  383. package/vendor/dynamic-workflow-runtime/protocol.js +2 -0
  384. package/vendor/mcode-host/dynamic-workflow-import.js +269 -0
  385. package/vendor/mcode-host/workflow-git-world-read.js +183 -0
  386. package/vendor/mcode-host/workflow-world-read.js +282 -0
@@ -0,0 +1,142 @@
1
+ /**
2
+ * 留白(docs/execution-engine.md「Holes」):脚本向主代理要一段代码,run 停在那一处等它。
3
+ *
4
+ * 与 escalation 不同——那个活在 driver 执行一次 ask 的内部,引擎核心看不见——留白是 Boundary A
5
+ * 的调用:脚本自己在等它,所以引擎像拥有一次 ask 那样拥有它,少一个 driver。与 ask 又有一处
6
+ * 根本不同:**没有 journal 行**。留白不是会自己结算出一个结果的节点,补全产出的东西已经以
7
+ * 有效脚本的身份写在 run 行上(`updateRunScript`),resume 重放有效脚本时体内联执行、shim 不过
8
+ * 线、`hole-reached` 不再出现。
9
+ *
10
+ * 本模块持有引擎的留白状态(停驻表 + 本世已补全的代码表),方法体是自由函数,经
11
+ * {@link EngineState} 接缝读写引擎的其余私有状态;WorkflowEngine 上只留薄委托(拆分原因:
12
+ * engine.ts 顶到 oxlint max-lines 上限 400 行)。
13
+ */
14
+ /**
15
+ * `hole-reached` 与通知上 prompt 的上限(字符):与 escalation 通知的 question / context 同一
16
+ * 把尺(docs/dynamic-workflow/transcript-and-notifications.md)。超出的截断并以 `…` 收尾。
17
+ */
18
+ export const HOLE_PROMPT_MAX_CHARS = 4000;
19
+ /** 截断标记:占最后一个字符的位置,截后总长恰为上限。 */
20
+ const ELLIPSIS = "…";
21
+ /** 引擎的留白状态:按站点的停驻表与本世的补全记忆。纯内存、随引擎实例而生,resume 从空表起。 */
22
+ export class HoleRegistry {
23
+ now;
24
+ /** 站点 → 停在它下面的分支(一个站点可以同时停着好几个序号)。 */
25
+ parked = new Map();
26
+ /** 站点 → 本世记住的补全(后到的 `hole` 直接作答、不停驻)。 */
27
+ filled = new Map();
28
+ constructor(now) {
29
+ this.now = now;
30
+ }
31
+ /** 站点已补全时返回记住的代码,否则 undefined。 */
32
+ remembered(siteId) {
33
+ return this.filled.get(siteId)?.code;
34
+ }
35
+ /** 把一个分支停在站点下,返回它的 promise。 */
36
+ park(instance, name) {
37
+ return new Promise((resolve, reject) => {
38
+ const list = this.parked.get(instance.siteId) ?? [];
39
+ list.push({ instance, name, since: this.now(), resolve, reject });
40
+ this.parked.set(instance.siteId, list);
41
+ });
42
+ }
43
+ /** 这个站点是否有停驻的分支或已记住的补全(`fillHole` 的 not_waiting 判据的反面)。 */
44
+ isWaitingOrFilled(siteId) {
45
+ return (this.parked.get(siteId)?.length ?? 0) > 0 || this.filled.has(siteId);
46
+ }
47
+ /** 现在的时刻(epoch 毫秒):`hole-filled` 的 `filledAt` 与记忆里的同一个瞬间。 */
48
+ clock() {
49
+ return this.now();
50
+ }
51
+ /** 记住补全并放行站点下的每一个分支。 */
52
+ release(siteId, code, filledAt, filledBy) {
53
+ this.filled.set(siteId, { code, filledAt, ...(filledBy === undefined ? {} : { filledBy }) });
54
+ const list = this.parked.get(siteId) ?? [];
55
+ this.parked.delete(siteId);
56
+ for (const entry of list)
57
+ entry.resolve({ code });
58
+ }
59
+ /** run 结算:停驻的分支一律以结算错误拒绝(与 ask 的取消同姿态);补全记忆保留。 */
60
+ rejectAll(error) {
61
+ const lists = [...this.parked.values()];
62
+ this.parked.clear();
63
+ for (const list of lists)
64
+ for (const entry of list)
65
+ entry.reject(error);
66
+ }
67
+ open() {
68
+ const out = [];
69
+ for (const list of this.parked.values()) {
70
+ for (const entry of list) {
71
+ out.push({
72
+ siteId: entry.instance.siteId,
73
+ ordinal: entry.instance.ordinal,
74
+ name: entry.name,
75
+ since: entry.since,
76
+ });
77
+ }
78
+ }
79
+ return out;
80
+ }
81
+ filledList() {
82
+ return [...this.filled.entries()].map(([siteId, fill]) => ({
83
+ siteId,
84
+ filledAt: fill.filledAt,
85
+ ...(fill.filledBy === undefined ? {} : { filledBy: fill.filledBy }),
86
+ }));
87
+ }
88
+ }
89
+ /** 记录前把 prompt 截到上限(超出的以 `…` 收尾,截后总长恰为上限)。 */
90
+ export function boundHolePrompt(prompt) {
91
+ if (prompt.length <= HOLE_PROMPT_MAX_CHARS)
92
+ return prompt;
93
+ return prompt.slice(0, HOLE_PROMPT_MAX_CHARS - ELLIPSIS.length) + ELLIPSIS;
94
+ }
95
+ /**
96
+ * Boundary A 的 `hole`:铸序号(`nextOrdinal` 同时盖出生阶段)、停驻、记 `hole-reached`。
97
+ * **先停驻再记事件**:事件经 driver.emit 同步扇出,一个在 emit 里同步补全的监听者必须能命中
98
+ * 停驻表,否则它拿到的是 `not_waiting`。已补全的站点以记住的代码立刻作答,不停驻、不记事件
99
+ * ——resume 重放有效脚本时 shim 本就不过线,这里只是引擎侧的同一条规则。
100
+ */
101
+ export function reachHole(state, holes, siteId, name, prompt) {
102
+ if (state.isRunSettled())
103
+ return Promise.reject(state.runError());
104
+ const ordinal = state.nextOrdinal(siteId);
105
+ const remembered = holes.remembered(siteId);
106
+ if (remembered !== undefined)
107
+ return Promise.resolve({ code: remembered });
108
+ const instance = { siteId, ordinal };
109
+ const promise = holes.park(instance, name);
110
+ state.record({
111
+ type: "hole-reached",
112
+ instance,
113
+ name,
114
+ ...(prompt === undefined ? {} : { prompt: boundHolePrompt(prompt) }),
115
+ });
116
+ return promise;
117
+ }
118
+ /**
119
+ * `fillHole` 的方法体(docs/execution-engine.md「The engine's part」):一个同步步骤里——换规格表
120
+ * 与阶段表(调用方负责,见 `swapTables`)、写有效脚本、记 `hole-filled`、记住代码、放行停驻的
121
+ * 每一个分支。两条 no-op 不写不发。
122
+ */
123
+ export function fillHole(state, holes, fill, swapTables) {
124
+ if (state.isRunSettled())
125
+ return { ok: false, reason: "settled" };
126
+ if (!holes.isWaitingOrFilled(fill.siteId))
127
+ return { ok: false, reason: "not_waiting" };
128
+ swapTables(fill.askSpecs, fill.sitePhases);
129
+ state.journal.updateRunScript(state.runId, fill.script.text, fill.script.hash);
130
+ const filledAt = holes.clock();
131
+ state.record({
132
+ type: "hole-filled",
133
+ siteId: fill.siteId,
134
+ filledAt,
135
+ ...(fill.filledBy === undefined ? {} : { filledBy: fill.filledBy }),
136
+ phaseNames: fill.phaseNames,
137
+ ...(fill.holes === undefined ? {} : { holes: fill.holes }),
138
+ ...(fill.scriptPath === undefined ? {} : { scriptPath: fill.scriptPath }),
139
+ });
140
+ holes.release(fill.siteId, fill.code, filledAt, fill.filledBy);
141
+ return { ok: true };
142
+ }
@@ -0,0 +1,34 @@
1
+ import type { RunEvent } from "./types.js";
2
+ /**
3
+ * 发起 run 那一轮随 `run-launched` 同车的宿主元数据(EngineConfig.launch):锚点 `inputId`、
4
+ * 脚本声明的阶段表 `phaseNames`、与之按位置对齐的 `phaseAlongside`、本 run 子代理的选型
5
+ * `subagentModel` 与权限模式 `subagentPermissionMode`、脚本点名的模型绑定表 `modelBindings`、脚本来自
6
+ * 哪个文件 `scriptPath`,以及留白下标表 `holes`。八者引擎都不读——字段语义见 types.ts 里
7
+ * `run-launched` 的注释。
8
+ */
9
+ export interface RunLaunchConfig {
10
+ inputId: string;
11
+ phaseNames?: string[];
12
+ subagentModel?: string;
13
+ /** 脚本点名的模型名(逐字)→ 规范串(docs/dynamic-workflow/launch.md「Models the script names」)。 */
14
+ modelBindings?: Record<string, string>;
15
+ /**
16
+ * 本 run 子代理的权限模式(docs/dynamic-workflow/launch.md「Permissions inside a run」):
17
+ * 发起会话的权限模式名。引擎不读,按不透明串记下;宿主读回时校验。
18
+ */
19
+ subagentPermissionMode?: string;
20
+ /** 本 run 脚本文件的绝对路径(docs/dynamic-workflow/launch.md「Script files」)。 */
21
+ scriptPath?: string;
22
+ phaseAlongside?: number[][];
23
+ /** `phaseNames` 里未补全留白的下标(docs/execution-engine.md「Holes」),同车同规。 */
24
+ holes?: number[];
25
+ }
26
+ /**
27
+ * 把 launch 元数据转录成 `run-launched`。未设的键**缺席**而不是落成 undefined 值:读侧
28
+ * (AmendWorkflow 的三态、投影)把「没设」与「设了个空」当两件事。
29
+ */
30
+ export declare function runLaunchedEvent(launch: RunLaunchConfig, origin: {
31
+ toolCallId?: string | undefined;
32
+ parentSessionId?: string | undefined;
33
+ }): RunEvent;
34
+ //# sourceMappingURL=engine-launch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine-launch.d.ts","sourceRoot":"","sources":["../../src/engine/engine-launch.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mFAAmF;IACnF,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;IAC5B,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAChF,QAAQ,CAwBV"}
@@ -0,0 +1,26 @@
1
+ // ============================================================
2
+ // run-launched:发起 run 那一轮的宿主元数据 → 事件
3
+ // ============================================================
4
+ // 引擎不读这些元数据(锚点、阶段表、并行表、子代理选型),只在建 run 那一世紧跟首条
5
+ // `run-started` 逐字转录一次(engine.ts)。构造独立成模块,engine.ts 与 types.ts 才都留在
6
+ // 400 行的 lint 上限之内——它们是两侧同时增长的文件。
7
+ /**
8
+ * 把 launch 元数据转录成 `run-launched`。未设的键**缺席**而不是落成 undefined 值:读侧
9
+ * (AmendWorkflow 的三态、投影)把「没设」与「设了个空」当两件事。
10
+ */
11
+ export function runLaunchedEvent(launch, origin) {
12
+ const { inputId, phaseNames, subagentModel, subagentPermissionMode, modelBindings, scriptPath, phaseAlongside, holes, } = launch;
13
+ return {
14
+ type: "run-launched",
15
+ inputId,
16
+ ...(origin.toolCallId === undefined ? {} : { toolCallId: origin.toolCallId }),
17
+ ...(origin.parentSessionId === undefined ? {} : { parentSessionId: origin.parentSessionId }),
18
+ ...(phaseNames === undefined ? {} : { phaseNames }),
19
+ ...(subagentModel === undefined ? {} : { subagentModel }),
20
+ ...(subagentPermissionMode === undefined ? {} : { subagentPermissionMode }),
21
+ ...(modelBindings === undefined ? {} : { modelBindings }),
22
+ ...(scriptPath === undefined ? {} : { scriptPath }),
23
+ ...(phaseAlongside === undefined ? {} : { phaseAlongside }),
24
+ ...(holes === undefined ? {} : { holes }),
25
+ };
26
+ }
@@ -0,0 +1,35 @@
1
+ /**
2
+ * 出生阶段坐标的两个打戳函数(docs/dynamic-workflow/presentation.md 追记 2026-09-09)。
3
+ *
4
+ * 拆分原因:engine.ts 顶到 oxlint max-lines 上限(400 行)。选中这两个而不是别的,是因为它们
5
+ * 高度同族——同一张 `instancePhases` 表(实例 `siteId@ordinal` → 它**出生时**的阶段名)的仅有
6
+ * 两个读者,一个给事件打戳、一个给 `ProviderStop` 明细补阶段,且都是纯函数:表由调用方(引擎)
7
+ * 拥有并在铸造点写入,这里只读。公开面仍只有 engine.ts 在用。
8
+ */
9
+ import type { RunEvent } from "./types.js";
10
+ import { WorkflowError } from "./types.js";
11
+ /** 实例键(`siteId@ordinal`)→ 它出生时的阶段名。引擎的 `instancePhases` 的只读视图。 */
12
+ export type InstancePhases = ReadonlyMap<string, string>;
13
+ /**
14
+ * 给**出生事件**补上出生阶段:actor 的 `actor-created` 按 actor 查表,节点的 `node-queued`
15
+ * 按 instance 查表,命中缓存的 `node-settled { cached: true }` 同样按 instance——命中的节点
16
+ * 没有 queued,那条 settle 就是它的出生事件。其余事件**原样返回**:调度器的其余发射点零改动,
17
+ * reducer 沿用 `actorSiteId` 的先例向前携带。
18
+ *
19
+ * ask 的 `node-dispatched` 是唯一的例外,它重复自己的出生事实(types.ts 的同名事件),于是
20
+ * 两个阶段名在这里一并补上:`phaseName` 按 instance、`actorPhaseName` 按它的 actor,两次都查
21
+ * 同一张出生表,所以与该实例的 `node-queued`、该 actor 的 `actor-created` 逐字相同。带 `actor`
22
+ * 才补——world-read 的派发不带子代理,保持裸的。
23
+ *
24
+ * 它不是「发出这条事件时的当前阶段」:node-queued 可能被 hold 规则推迟到下一个标记之后才发出,
25
+ * 而出生时刻在上一个阶段;派发更是可能卡在并发上界后面,等到脚本已走过好几个标记。
26
+ */
27
+ export declare function stampBirthPhase(event: RunEvent, instancePhases: InstancePhases): RunEvent;
28
+ /**
29
+ * 给 `ProviderStop` 补上触发停止的子代理的**出生阶段**(docs/execution-engine.md
30
+ * 「通知文案」的 `phase=`):driver 只知道 actor ref,阶段只有引擎知道(与事件流上 `phaseName`
31
+ * 的同一张表)。没有 providerStop、没有 subagent、已带阶段、或该 ref 出生在任何 `phase()`
32
+ * 标记之前 → 原样返回。
33
+ */
34
+ export declare function enrichProviderStopPhase(error: WorkflowError, instancePhases: InstancePhases): WorkflowError;
35
+ //# sourceMappingURL=engine-phase-stamp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine-phase-stamp.d.ts","sourceRoot":"","sources":["../../src/engine/engine-phase-stamp.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAe,aAAa,EAAE,MAAM,YAAY,CAAC;AAExD,kEAAkE;AAClE,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEzD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,GAAG,QAAQ,CA8BzF;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,aAAa,EACpB,cAAc,EAAE,cAAc,GAC7B,aAAa,CAWf"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * 出生阶段坐标的两个打戳函数(docs/dynamic-workflow/presentation.md 追记 2026-09-09)。
3
+ *
4
+ * 拆分原因:engine.ts 顶到 oxlint max-lines 上限(400 行)。选中这两个而不是别的,是因为它们
5
+ * 高度同族——同一张 `instancePhases` 表(实例 `siteId@ordinal` → 它**出生时**的阶段名)的仅有
6
+ * 两个读者,一个给事件打戳、一个给 `ProviderStop` 明细补阶段,且都是纯函数:表由调用方(引擎)
7
+ * 拥有并在铸造点写入,这里只读。公开面仍只有 engine.ts 在用。
8
+ */
9
+ import { refToString, WorkflowError } from "./types.js";
10
+ /**
11
+ * 给**出生事件**补上出生阶段:actor 的 `actor-created` 按 actor 查表,节点的 `node-queued`
12
+ * 按 instance 查表,命中缓存的 `node-settled { cached: true }` 同样按 instance——命中的节点
13
+ * 没有 queued,那条 settle 就是它的出生事件。其余事件**原样返回**:调度器的其余发射点零改动,
14
+ * reducer 沿用 `actorSiteId` 的先例向前携带。
15
+ *
16
+ * ask 的 `node-dispatched` 是唯一的例外,它重复自己的出生事实(types.ts 的同名事件),于是
17
+ * 两个阶段名在这里一并补上:`phaseName` 按 instance、`actorPhaseName` 按它的 actor,两次都查
18
+ * 同一张出生表,所以与该实例的 `node-queued`、该 actor 的 `actor-created` 逐字相同。带 `actor`
19
+ * 才补——world-read 的派发不带子代理,保持裸的。
20
+ *
21
+ * 它不是「发出这条事件时的当前阶段」:node-queued 可能被 hold 规则推迟到下一个标记之后才发出,
22
+ * 而出生时刻在上一个阶段;派发更是可能卡在并发上界后面,等到脚本已走过好几个标记。
23
+ */
24
+ export function stampBirthPhase(event, instancePhases) {
25
+ if (event.type === "actor-created") {
26
+ const phaseName = instancePhases.get(refToString(event.actor));
27
+ return phaseName === undefined ? event : { ...event, phaseName };
28
+ }
29
+ if (event.type === "node-queued") {
30
+ const phaseName = instancePhases.get(refToString(event.instance));
31
+ return phaseName === undefined ? event : { ...event, phaseName };
32
+ }
33
+ if (event.type === "node-dispatched" && event.actor !== undefined) {
34
+ const phaseName = instancePhases.get(refToString(event.instance));
35
+ const actorPhaseName = instancePhases.get(refToString(event.actor));
36
+ if (phaseName === undefined && actorPhaseName === undefined)
37
+ return event;
38
+ return {
39
+ ...event,
40
+ ...(phaseName === undefined ? {} : { phaseName }),
41
+ ...(actorPhaseName === undefined ? {} : { actorPhaseName }),
42
+ };
43
+ }
44
+ if (event.type === "node-settled" && event.cached === true) {
45
+ const phaseName = instancePhases.get(refToString(event.instance));
46
+ return phaseName === undefined ? event : { ...event, phaseName };
47
+ }
48
+ // 留白的到达也是一次出生(docs/execution-engine.md「Holes」):序号与节点同族铸造,出生
49
+ // 阶段同一张表——没有行,事件是它唯一的坐标。
50
+ if (event.type === "hole-reached") {
51
+ const phaseName = instancePhases.get(refToString(event.instance));
52
+ return phaseName === undefined ? event : { ...event, phaseName };
53
+ }
54
+ return event;
55
+ }
56
+ /**
57
+ * 给 `ProviderStop` 补上触发停止的子代理的**出生阶段**(docs/execution-engine.md
58
+ * 「通知文案」的 `phase=`):driver 只知道 actor ref,阶段只有引擎知道(与事件流上 `phaseName`
59
+ * 的同一张表)。没有 providerStop、没有 subagent、已带阶段、或该 ref 出生在任何 `phase()`
60
+ * 标记之前 → 原样返回。
61
+ */
62
+ export function enrichProviderStopPhase(error, instancePhases) {
63
+ const details = error.providerStop;
64
+ if (details === undefined || details.subagent === undefined || details.phase !== undefined) {
65
+ return error;
66
+ }
67
+ const phase = instancePhases.get(details.subagent);
68
+ if (phase === undefined)
69
+ return error;
70
+ return new WorkflowError(error.code, error.message, {
71
+ providerStop: { ...details, phase },
72
+ cause: error.cause,
73
+ });
74
+ }
@@ -0,0 +1,27 @@
1
+ /**
2
+ * engine.ts 顶到 oxlint max-lines 上限(400 行),把 `report()` 的发布路径(序列化探针、
3
+ * replay 去重、标签校验、两个上限、一次写)拆到本文件;公开面仍从 engine.ts 导出。
4
+ *
5
+ * 自由函数经 {@link EngineState} 接缝读写引擎状态;WorkflowEngine.report 只是薄委托。
6
+ */
7
+ import type { EngineState } from "./engine-state.js";
8
+ /**
9
+ * 发布一条中间结果(Boundary A 的 `report`)。同步、无返回值、无 driver 往返:
10
+ * 落一行 journal + 发一个事件就结束。
11
+ *
12
+ * 四件事,顺序是有讲究的:
13
+ *
14
+ * 1. **序列化探针先行**。用 `JSON.stringify` 一次拿到两样东西:item 到底能不能被 JSON
15
+ * 表示,以及它的字节数(上限的度量)。必须在 canonicalJson 之前——带环的 item 会让
16
+ * canonicalJson 递归爆栈,那是一次崩溃而不是一次可读的失败。
17
+ * 2. **replay 命中即跳过**:不发事件、不重写记录。跳过之前先比对 inputHash,不一致按
18
+ * 纯度违约让 run 大声失败。这条比对是**防御性的**(一条报告派生自 journal 已经钉住的
19
+ * 值),但它是免费的,而这里的偏移意味着整个 replay 不可靠——Results 面板的读者绝不
20
+ * 应该在不知情的情况下看到那种东西。
21
+ * 3. **上限先于落库**:单条字节数、条数、run 级字节总数任一超出即 `ReportCapExceeded`
22
+ * 失败整个 run。
23
+ * run 级而非 node 级,因为 `report` 返回 `void`,没有可拒绝进去的地方。
24
+ * 4. **一次写**:`completed`、无 actor 字段。
25
+ */
26
+ export declare function publishReport(state: EngineState, siteId: string, item: unknown, artifactId?: string): void;
27
+ //# sourceMappingURL=engine-report.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine-report.d.ts","sourceRoot":"","sources":["../../src/engine/engine-report.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIrD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,EACb,UAAU,CAAC,EAAE,MAAM,GAClB,IAAI,CA2DN"}
@@ -0,0 +1,151 @@
1
+ /**
2
+ * engine.ts 顶到 oxlint max-lines 上限(400 行),把 `report()` 的发布路径(序列化探针、
3
+ * replay 去重、标签校验、两个上限、一次写)拆到本文件;公开面仍从 engine.ts 导出。
4
+ *
5
+ * 自由函数经 {@link EngineState} 接缝读写引擎状态;WorkflowEngine.report 只是薄委托。
6
+ */
7
+ import { inputHash } from "./hash.js";
8
+ import { REPORT_CAPS } from "../facade/report-caps.js";
9
+ import { declaredPresetIds, isDeclaredPreset } from "./engine-artifacts.js";
10
+ import { hashMismatch } from "./hash-mismatch.js";
11
+ import { refToString, WorkflowError } from "./types.js";
12
+ /**
13
+ * 发布一条中间结果(Boundary A 的 `report`)。同步、无返回值、无 driver 往返:
14
+ * 落一行 journal + 发一个事件就结束。
15
+ *
16
+ * 四件事,顺序是有讲究的:
17
+ *
18
+ * 1. **序列化探针先行**。用 `JSON.stringify` 一次拿到两样东西:item 到底能不能被 JSON
19
+ * 表示,以及它的字节数(上限的度量)。必须在 canonicalJson 之前——带环的 item 会让
20
+ * canonicalJson 递归爆栈,那是一次崩溃而不是一次可读的失败。
21
+ * 2. **replay 命中即跳过**:不发事件、不重写记录。跳过之前先比对 inputHash,不一致按
22
+ * 纯度违约让 run 大声失败。这条比对是**防御性的**(一条报告派生自 journal 已经钉住的
23
+ * 值),但它是免费的,而这里的偏移意味着整个 replay 不可靠——Results 面板的读者绝不
24
+ * 应该在不知情的情况下看到那种东西。
25
+ * 3. **上限先于落库**:单条字节数、条数、run 级字节总数任一超出即 `ReportCapExceeded`
26
+ * 失败整个 run。
27
+ * run 级而非 node 级,因为 `report` 返回 `void`,没有可拒绝进去的地方。
28
+ * 4. **一次写**:`completed`、无 actor 字段。
29
+ */
30
+ export function publishReport(state, siteId, item, artifactId) {
31
+ if (state.isRunSettled())
32
+ return; // 与 log 同:结算之后不再受理
33
+ const ordinal = state.nextOrdinal(siteId);
34
+ const instance = { siteId, ordinal };
35
+ const serialized = probeReportItem(state, instance, item);
36
+ if (serialized === undefined)
37
+ return; // 探针已 failRun
38
+ // inputHash 刻意**只覆盖 item**,标签不进哈希:标签是站点上的编译期字面量,而 resume
39
+ // 要求脚本逐字节相同(script_hash),所以同一 (siteId, ordinal) 的标签不可能变。把它加进
40
+ // 哈希输入的唯一效果,是让**每一条**既有 journal 里的无标签 report 在 resume 时
41
+ // InputHashMismatch——一次没有任何收益的破坏性载荷形变。
42
+ const hash = inputHash(item);
43
+ // 只比对哈希,不读 item(docs/execution-engine.md「Reading the journal」):resume 重放一个
44
+ // 报了 65,536 条的脚本时,每一次命中都去解一条 ≤1 MiB 的 item 再扔掉,是按总字节数付的钱。
45
+ const recorded = state.journal.getNode(state.runId, siteId, ordinal, { withResult: false });
46
+ if (recorded !== undefined) {
47
+ if (recorded.inputHash !== hash) {
48
+ state.failRun(hashMismatch(instance, recorded.inputHash, hash));
49
+ return;
50
+ }
51
+ return; // replay 去重:静默跳过(无事件、不重复 append)
52
+ }
53
+ // 标签在场:它必须已经被声明为**预置**产物。查在上限之前——一个指向不存在看板的标签
54
+ // 是脚本写错了,不是容量事件,两者混在一起会让错误码骗人。
55
+ // failRun 而不是拒绝,理由与 report 的两个上限完全相同:void 返回没有拒绝通道。
56
+ if (artifactId !== undefined && !isDeclaredPreset(state, artifactId)) {
57
+ state.failRun(new WorkflowError("ArtifactUndeclared", `report() tag "${artifactId}" is not a declared preset artifact ` +
58
+ `(at ${refToString(instance)}). Declare it once at the top of the script, e.g. ` +
59
+ `artifact.chart("${artifactId}", …), before tagging reports with it. Declared presets: ` +
60
+ `${declaredPresetIds(state).join(", ") || "(none)"}.`));
61
+ return;
62
+ }
63
+ if (!reserveReport(state, instance, serialized))
64
+ return;
65
+ state.journal.putNode({
66
+ runId: state.runId,
67
+ siteId,
68
+ ordinal,
69
+ kind: "report",
70
+ inputHash: hash,
71
+ status: "completed",
72
+ result: item,
73
+ // 打了标签的 report 行是「看板 = journal 的投影」这条不变式的落点:一个看板的每个点
74
+ // 就是一行 kind = report ∧ artifact_id = 该 id。
75
+ ...(artifactId === undefined ? {} : { artifactId }),
76
+ });
77
+ state.record({
78
+ type: "report",
79
+ instance,
80
+ item,
81
+ ...(artifactId === undefined ? {} : { artifactId }),
82
+ });
83
+ }
84
+ /**
85
+ * report 的**运行期 JSON 护栏**(编译期的可序列化诊断是 suspenders,这里是 belt)。
86
+ * 返回 item 的序列化文本;不可表示时 failRun 并返回 undefined。
87
+ *
88
+ * 为什么用 `JSON.stringify` 而不是 `canonicalJson`:canonicalJson 是**全函数**的(把
89
+ * undefined/函数静默折成 `"null"`,遇到环则递归爆栈),这正是它作为哈希输入该有的样子,
90
+ * 但作为护栏它会把一个残缺的 item 悄悄落进 journal。`JSON.stringify` 相反:环与 bigint
91
+ * 抛错、undefined/函数/symbol 返回 undefined——两种情形都能被抓成一次大声的失败。
92
+ *
93
+ * 错误码选 `DriverError` 而不是 `ReportCapExceeded`:这不是一个上限(上限是数量),而是
94
+ * 「item 不是 JSON」这条契约被破坏,而那条契约的正门是编译期诊断。走到这里说明有东西
95
+ * 绕过了正门(典型是经 `any` 造出的环),所以它是一次契约破裂而不是一次容量事件——
96
+ * 让 `ReportCapExceeded` 只表示上限,读者才能据码行动。
97
+ */
98
+ function probeReportItem(state, instance, item) {
99
+ let serialized;
100
+ try {
101
+ serialized = JSON.stringify(item);
102
+ }
103
+ catch (cause) {
104
+ state.failRun(new WorkflowError("DriverError", `report() item cannot be serialized to JSON (a cycle or a bigint) at ` +
105
+ `${refToString(instance)}. Report a plain JSON value.`, { cause }));
106
+ return undefined;
107
+ }
108
+ if (serialized === undefined) {
109
+ // JSON.stringify 对 undefined / 函数 / symbol 返回 undefined。
110
+ state.failRun(new WorkflowError("DriverError", `report() item is not a JSON value (undefined, a function or a symbol) at ` +
111
+ `${refToString(instance)}. Report a plain JSON value.`));
112
+ return undefined;
113
+ }
114
+ return serialized;
115
+ }
116
+ /**
117
+ * report 的三个上限(单条字节数、条数、run 级字节总数)。任一超出即 failRun 并返回 false。
118
+ *
119
+ * 顺序按「错在哪一条」:单条过大是这一条 item 的问题,与 run 攒了多少无关,所以先判;两个
120
+ * run 级上限在后,且都在计数之前——被拒的那条不进计数,失败信息里的数字才是真的。
121
+ */
122
+ function reserveReport(state, instance, serialized) {
123
+ const bytes = utf8ByteLength(serialized);
124
+ if (bytes > REPORT_CAPS.maxItemSerializedBytes) {
125
+ state.failRun(new WorkflowError("ReportCapExceeded", `report() item at ${refToString(instance)} is ${bytes} bytes, over the ` +
126
+ `${REPORT_CAPS.maxItemSerializedBytes}-byte limit. Report a summary instead.`));
127
+ return false;
128
+ }
129
+ const tally = state.reportTally();
130
+ if (tally.count >= REPORT_CAPS.maxItemsPerRun) {
131
+ state.failRun(new WorkflowError("ReportCapExceeded", `This run already reported ${REPORT_CAPS.maxItemsPerRun} items, the maximum. ` +
132
+ `Report findings, not chatter.`));
133
+ return false;
134
+ }
135
+ if (tally.bytes + bytes > REPORT_CAPS.maxBytesPerRun) {
136
+ state.failRun(new WorkflowError("ReportCapExceeded", `report() item at ${refToString(instance)} would take this run's reports to ` +
137
+ `${tally.bytes + bytes} bytes, over the ${REPORT_CAPS.maxBytesPerRun}-byte limit per run. ` +
138
+ `Report summaries, and publish large results with artifact.file.`));
139
+ return false;
140
+ }
141
+ state.countReport(bytes);
142
+ return true;
143
+ }
144
+ /**
145
+ * 一个字符串的 UTF-8 字节数(report 单条上限的度量)。用 `TextEncoder`(ECMAScript/WHATWG
146
+ * 标准全局)而不是 `Buffer.byteLength`:本包保持零 node 内建依赖。上限论的是**字节**而非
147
+ * 字符——一份中文 findings 的字符数只有字节数的三分之一,按字符计会让上限形同虚设。
148
+ */
149
+ function utf8ByteLength(value) {
150
+ return new TextEncoder().encode(value).length;
151
+ }
@@ -0,0 +1,18 @@
1
+ /**
2
+ * resume 分支从 journal 恢复的 run 级状态(docs/execution-engine.md「Resume by replay」与
3
+ * 「Reading the journal」):结算次序闸、每个 actor 的已记录 ask 数、报告计数、产物状态。
4
+ *
5
+ * 拆出原因:engine.ts 顶到 oxlint max-lines 上限(400 行)。
6
+ *
7
+ * 节点行只读一次、只读要的列:工作行不带结果(次序闸与 ask 计数只看 kind / status / 坐标),
8
+ * 产物行带结果(成员族与版本记录在 `result` 上,且有界),报告行只数条数与字节、不读——一个
9
+ * run 可以有 65,536 条、1 GiB 的 item,恢复它们的计数不需要把任何一条读进内存。
10
+ */
11
+ import type { EngineState, ReportTally } from "./engine-state.js";
12
+ import { type ReplaySettleOrder } from "./replay-order.js";
13
+ import type { AskScheduler } from "./scheduler.js";
14
+ export declare function restoreFromJournal(state: EngineState, scheduler: AskScheduler): {
15
+ replaySettleOrder: ReplaySettleOrder;
16
+ reportTally: ReportTally;
17
+ };
18
+ //# sourceMappingURL=engine-resume.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine-resume.d.ts","sourceRoot":"","sources":["../../src/engine/engine-resume.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAsC,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC/F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,YAAY,GACtB;IAAE,iBAAiB,EAAE,iBAAiB,CAAC;IAAC,WAAW,EAAE,WAAW,CAAA;CAAE,CAwBpE"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * resume 分支从 journal 恢复的 run 级状态(docs/execution-engine.md「Resume by replay」与
3
+ * 「Reading the journal」):结算次序闸、每个 actor 的已记录 ask 数、报告计数、产物状态。
4
+ *
5
+ * 拆出原因:engine.ts 顶到 oxlint max-lines 上限(400 行)。
6
+ *
7
+ * 节点行只读一次、只读要的列:工作行不带结果(次序闸与 ask 计数只看 kind / status / 坐标),
8
+ * 产物行带结果(成员族与版本记录在 `result` 上,且有界),报告行只数条数与字节、不读——一个
9
+ * run 可以有 65,536 条、1 GiB 的 item,恢复它们的计数不需要把任何一条读进内存。
10
+ */
11
+ import { rememberArtifactRow } from "./engine-artifacts.js";
12
+ import { readReplayRows, recoverSettleOrder } from "./replay-order.js";
13
+ export function restoreFromJournal(state, scheduler) {
14
+ const { workRows, artifactRows } = readReplayRows(state.journal, state.runId);
15
+ // 结算次序按本 run 自己的事件恢复(本闸是 replay 正确性的一部分,不是观察面:站点序号依
16
+ // 调用到达顺序,而扇出的到达顺序只有首生的结算次序能复现)。
17
+ const replaySettleOrder = recoverSettleOrder(state.journal, state.runId, [
18
+ ...workRows,
19
+ ...artifactRows,
20
+ ]);
21
+ scheduler.seedRecordedAsks(workRows);
22
+ // 产物状态与报告计数同席恢复:id 归属(种类、预置 spec)与已成功版本数全部由 journal 行派生,
23
+ // 所以崩溃恢复后第 3 版仍然是第 3 版,而不是从 1 重新数起。
24
+ for (const node of artifactRows) {
25
+ if (node.status !== "completed")
26
+ continue;
27
+ rememberArtifactRow(state, node.artifactId, node.result);
28
+ }
29
+ // 报告计数按 kind:"report" 的行恢复:上限是 run 级的,跨 resume 必须连续。条数是 count(*),
30
+ // 字节数是 result_json 的字节和——SQLite 从行头读长度,一条 item 都不读出来。
31
+ return {
32
+ replaySettleOrder,
33
+ reportTally: {
34
+ count: state.journal.countNodes(state.runId, "report"),
35
+ bytes: state.journal.sumResultBytes(state.runId, "report"),
36
+ },
37
+ };
38
+ }
@@ -0,0 +1,30 @@
1
+ /**
2
+ * engine.ts 顶到 oxlint max-lines 上限(400 行),把 run 的三条终态路径
3
+ * (completed / stopped / errored)与它们共用的 finishRun
4
+ * 拆到本文件;公开面仍从 engine.ts 导出。
5
+ *
6
+ * 自由函数经 {@link EngineState} 接缝读写引擎状态;WorkflowEngine 的 complete / stop /
7
+ * failRun 只是薄委托。first-wins 由 `isRunSettled()` 守在每条路径的第一行。
8
+ */
9
+ import type { EngineState } from "./engine-state.js";
10
+ import type { RunStopReason } from "./types.js";
11
+ import { WorkflowError } from "./types.js";
12
+ /**
13
+ * 沙箱脚本成功返回顶层 artifact,结算为 completed。
14
+ *
15
+ * 脚本返回时仍可能有在飞 ask(`Promise.race` 的输家、没有 `await` 的 ask)。它们与 cancel
16
+ * 路径同款中止:driver 侧 cancelAsk、deferred 以 Cancelled reject、补发 node-settled(cancelled)。
17
+ * 不中止的后果是三重的:scheduler 的 liveNodes 永远握着节点、driver 侧 turn 继续烧 token、
18
+ * 事件日志里一个 node-dispatched 永远等不到它的 node-settled。
19
+ */
20
+ export declare function settleCompleted(state: EngineState, artifact: unknown): void;
21
+ /**
22
+ * 外部停止:中止在飞 ask(deferred 以 Cancelled reject、补发 node-settled(cancelled)),run
23
+ * 结算 `stopped(reason)`;已完结的 journal 条目保留(可 resume)。四个 reason 走同一条路:
24
+ * `user` / `model`(cancel 入口传进来的 initiator)、`interrupted`(harness 的沙箱故障)、
25
+ * `provider`(driver 经 `stopRun` 报上来的确定性模型侧错误)。`error` 只对后两者在场。
26
+ */
27
+ export declare function settleStopped(state: EngineState, reason: RunStopReason, error?: WorkflowError, supersededBy?: string): void;
28
+ /** run 级失败(脚本之错):中止在飞 ask(以 run 错误 reject),run 结算 errored。 */
29
+ export declare function settleFailed(state: EngineState, error: WorkflowError): void;
30
+ //# sourceMappingURL=engine-settlement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine-settlement.d.ts","sourceRoot":"","sources":["../../src/engine/engine-settlement.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAkC,aAAa,EAAE,MAAM,YAAY,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI,CAW3E;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,aAAa,EACrB,KAAK,CAAC,EAAE,aAAa,EACrB,YAAY,CAAC,EAAE,MAAM,GACpB,IAAI,CAiBN;AAED,8DAA8D;AAC9D,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI,CAM3E"}