@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,128 @@
1
+ // MCode dynamic-workflow-runtime port; imports and workspace directory adapted for DSH.
2
+ export const CELL_STREAMS_BOOTSTRAP = String.raw `
3
+ "use strict";
4
+
5
+ // —— 流水线原语:channel / future ——
6
+ var __channels = [];
7
+ var __parkedReceivers = 0;
8
+ var __CHANNEL_COMPACT_MIN = 1024;
9
+ var __END = Object.freeze({ value: undefined, done: true });
10
+
11
+ function __channel(name) {
12
+ var label = name === undefined || name === null ? "channel #" + (__channels.length + 1) : String(name);
13
+ var state = { label: label, items: [], head: 0, waiters: [], waitHead: 0, closed: false };
14
+ __channels.push(state);
15
+
16
+ function compact() {
17
+ if (state.head >= __CHANNEL_COMPACT_MIN && state.head * 2 >= state.items.length) {
18
+ state.items = state.items.slice(state.head);
19
+ state.head = 0;
20
+ }
21
+ if (state.waitHead >= __CHANNEL_COMPACT_MIN && state.waitHead * 2 >= state.waiters.length) {
22
+ state.waiters = state.waiters.slice(state.waitHead);
23
+ state.waitHead = 0;
24
+ }
25
+ }
26
+ function takeWaiter() {
27
+ if (state.waitHead >= state.waiters.length) return undefined;
28
+ var waiter = state.waiters[state.waitHead];
29
+ state.waiters[state.waitHead] = undefined;
30
+ state.waitHead += 1;
31
+ __parkedReceivers -= 1;
32
+ compact();
33
+ return waiter;
34
+ }
35
+ function next() {
36
+ if (state.head < state.items.length) {
37
+ var item = state.items[state.head];
38
+ state.items[state.head] = undefined;
39
+ state.head += 1;
40
+ compact();
41
+ return Promise.resolve({ value: item, done: false });
42
+ }
43
+ if (state.closed) return Promise.resolve(__END);
44
+ return new Promise(function (resolve) {
45
+ state.waiters.push(resolve);
46
+ __parkedReceivers += 1;
47
+ });
48
+ }
49
+ var channel = {
50
+ send: function (item) {
51
+ if (state.closed) {
52
+ var err = new Error("Channel \"" + state.label + "\" is closed: send() after close(). The stage that produces into a channel owns its close; close it in a finally once every producer has finished.");
53
+ err.name = "ChannelClosed";
54
+ err.code = "ChannelClosed";
55
+ throw err;
56
+ }
57
+ var waiter = takeWaiter();
58
+ if (waiter !== undefined) waiter({ value: item, done: false });
59
+ else state.items.push(item);
60
+ },
61
+ close: function () {
62
+ if (state.closed) return;
63
+ state.closed = true;
64
+ for (var waiter = takeWaiter(); waiter !== undefined; waiter = takeWaiter()) waiter(__END);
65
+ },
66
+ };
67
+ channel[Symbol.asyncIterator] = function () {
68
+ var iterator = {
69
+ next: next,
70
+ return: function () {
71
+ return Promise.resolve(__END);
72
+ },
73
+ };
74
+ iterator[Symbol.asyncIterator] = function () {
75
+ return iterator;
76
+ };
77
+ return iterator;
78
+ };
79
+ return channel;
80
+ }
81
+
82
+ function __future(body) {
83
+ // 立即调用、原样返回其 promise:future 是 async IIFE 的命名形态。同步抛出转成拒绝,
84
+ // 让「一个 stage 的失败」永远走 join 那一条路,而不是从 future() 的调用点同步逃出。
85
+ try {
86
+ var result = body();
87
+ return result instanceof Promise ? result : Promise.resolve(result);
88
+ } catch (e) {
89
+ return Promise.reject(e);
90
+ }
91
+ }
92
+
93
+ // —— 停滞检测(execution-engine.md「The vm cell」)——
94
+ // cell 没有定时器、没有 I/O:能唤醒挂起脚本的只有 host response。于是「没有在飞请求、微任务
95
+ // 已排空、脚本未完成」就是「永远不会再有任何事发生」。外层 realm 在每条 response 投递之后与
96
+ // __execute 起步之后各调一次(setImmediate,在微任务之后),命中即以 error-complete 结束 run,
97
+ // 而不是让 run 永远挂着。有接收者停在 channel 上时报 ChannelDeadlock 并点名通道;否则报
98
+ // ScriptStalled(一个永不兑现的 promise)。
99
+ globalThis.__checkStalled = function () {
100
+ if (__settled || __pending.size > 0) return false;
101
+ var waiting = [];
102
+ for (var i = 0; i < __channels.length; i++) {
103
+ var ch = __channels[i];
104
+ var count = ch.waiters.length - ch.waitHead;
105
+ if (count > 0) waiting.push(count + " on \"" + ch.label + "\"");
106
+ }
107
+ var err;
108
+ if (waiting.length > 0) {
109
+ err = new Error(
110
+ "Deadlock: " + __parkedReceivers + " receiver(s) waiting (" + waiting.join(", ") +
111
+ ") with no request in flight, so nothing can ever send again. Close each channel from the stage that produces into it (ch.close() in a finally) once its producers are done."
112
+ );
113
+ err.name = "ChannelDeadlock";
114
+ err.code = "ChannelDeadlock";
115
+ } else {
116
+ err = new Error(
117
+ "Stalled: the script is suspended with no request in flight and no channel receiver waiting, so nothing can ever resolve what it awaits (a promise that is never settled)."
118
+ );
119
+ err.name = "ScriptStalled";
120
+ err.code = "ScriptStalled";
121
+ }
122
+ __complete(false, err);
123
+ return true;
124
+ };
125
+
126
+ globalThis.__host.channel = __channel;
127
+ globalThis.__host.future = __future;
128
+ `;
@@ -0,0 +1,43 @@
1
+ // MCode dynamic-workflow-runtime port; imports and workspace directory adapted for DSH.
2
+ import { mkdirSync, writeFileSync } from "node:fs";
3
+ import { tmpdir } from "node:os";
4
+ import { join } from "node:path";
5
+ export function workflowRunsDir(cwd) {
6
+ return join(cwd, ".dsh", "workflow-runs");
7
+ }
8
+ export function fallbackWorkflowRunsDir() {
9
+ return join(tmpdir(), "dsh-workflow-runs");
10
+ }
11
+ export function childEntryFileName(runId) {
12
+ return `${runId.replace(/[^A-Za-z0-9._-]/g, "_")}.mjs`;
13
+ }
14
+ export function writeChildEntryFile(input) {
15
+ const projectDir = workflowRunsDir(input.cwd);
16
+ const fileName = childEntryFileName(input.runId);
17
+ try {
18
+ return { path: writeInto(projectDir, fileName, input.source), location: "project" };
19
+ }
20
+ catch (error) {
21
+ const fallbackDir = fallbackWorkflowRunsDir();
22
+ input.onWarning?.({
23
+ kind: "entry_file_fallback",
24
+ projectDir,
25
+ fallbackDir,
26
+ error: error instanceof Error ? error.message : String(error),
27
+ });
28
+ return { path: writeInto(fallbackDir, fileName, input.source), location: "tmpdir" };
29
+ }
30
+ }
31
+ function writeInto(dir, fileName, source) {
32
+ mkdirSync(dir, { recursive: true });
33
+ try {
34
+ writeFileSync(join(dir, ".gitignore"), "*\n", { encoding: "utf8", flag: "wx" });
35
+ }
36
+ catch (error) {
37
+ if (error.code !== "EEXIST")
38
+ throw error;
39
+ }
40
+ const path = join(dir, fileName);
41
+ writeFileSync(path, source, "utf8");
42
+ return path;
43
+ }
@@ -0,0 +1,299 @@
1
+ // MCode dynamic-workflow-runtime port; imports and workspace directory adapted for DSH.
2
+ import { CELL_STREAMS_BOOTSTRAP } from "./child-cell-streams.js";
3
+ export function childMain(deps) {
4
+ const BOOTSTRAP = String.raw `
5
+ "use strict";
6
+
7
+ var __nextLocal = 0;
8
+ var __nextReq = 0;
9
+ var __pending = new Map();
10
+ // 本世已补全的留白:站点 id → 体的文本。同一站点再次到达(循环)时直接求值,不再过线。
11
+ var __fills = new Map();
12
+
13
+ function __emit(obj) {
14
+ __send(JSON.stringify(obj));
15
+ }
16
+
17
+ function __createActor(siteId, name, persona) {
18
+ // 同步造 child-local 句柄并即发即忘 create-actor;父进程据 stdio FIFO 在后续 ask 前完成映射。
19
+ var localId = "local#" + (++__nextLocal);
20
+ __emit({ kind: "create-actor", localId: localId, siteId: siteId, name: name, persona: persona });
21
+ return localId;
22
+ }
23
+
24
+ function __ask(siteId, actor, instructions) {
25
+ var id = "r" + (++__nextReq);
26
+ return new Promise(function (resolve, reject) {
27
+ __pending.set(id, { resolve: resolve, reject: reject });
28
+ __emit({ kind: "request", id: id, type: "ask", siteId: siteId, actor: actor, instructions: instructions });
29
+ });
30
+ }
31
+
32
+ function __worldRead(siteId, op, args) {
33
+ // args 是 lowering 打包好的位置实参数组;本 shim 原样透传,不看 op、不校验元数(归 driver)。
34
+ var id = "r" + (++__nextReq);
35
+ return new Promise(function (resolve, reject) {
36
+ __pending.set(id, { resolve: resolve, reject: reject });
37
+ __emit({ kind: "request", id: id, type: "world-read", siteId: siteId, op: op, args: args });
38
+ });
39
+ }
40
+
41
+ function __evaluateFill(evaluate, code) {
42
+ // evaluate 是 lowering 在站点处发出的 (__src) => eval(__src):直接 eval,闭包住作者代码在
43
+ // 那一点的全部绑定(__host 在内),求出 (async () => { … }) 这个函数;调它,结果即留白的值。
44
+ // 每次到达都新造一个 evaluate,循环里的留白因此看见各轮自己的绑定。求值失败(语法错)与体的
45
+ // 拒绝都在这条 promise 上冒出,落在站点处,脚本可以 catch。
46
+ return Promise.resolve().then(function () {
47
+ return evaluate(code)();
48
+ });
49
+ }
50
+
51
+ function __hole(siteId, name, prompt, evaluate, body) {
52
+ // 已补全(体就在脚本里):直接调体,不过线。同步抛出转成拒绝,与 future 同规。
53
+ if (body !== undefined) {
54
+ try {
55
+ return Promise.resolve(body());
56
+ } catch (e) {
57
+ return Promise.reject(e);
58
+ }
59
+ }
60
+ var remembered = __fills.get(siteId);
61
+ if (remembered !== undefined) return __evaluateFill(evaluate, remembered);
62
+ var id = "r" + (++__nextReq);
63
+ return new Promise(function (resolve, reject) {
64
+ __pending.set(id, { resolve: resolve, reject: reject });
65
+ __emit({ kind: "request", id: id, type: "hole", siteId: siteId, name: name, prompt: prompt });
66
+ }).then(function (answer) {
67
+ __fills.set(siteId, answer.code);
68
+ return __evaluateFill(evaluate, answer.code);
69
+ });
70
+ }
71
+
72
+ function __log(message) {
73
+ __emit({ kind: "event", type: "log", message: String(message) });
74
+ }
75
+
76
+ function __enterPhase(name) {
77
+ // 阶段标记:无站点、不落 journal,只让引擎发一条事件——所以与 log 同走事件通道。
78
+ __emit({ kind: "event", type: "phase-entered", name: String(name) });
79
+ }
80
+
81
+ function __publishArtifact(siteId, op, args) {
82
+ // 内容产物是效应:脚本 await 它、要能 catch 它的拒绝,所以与 ask / world-read 同走
83
+ // request/response。args 是 lowering 打包的位置实参([id, path|content, opts]),原样透传。
84
+ var id = "r" + (++__nextReq);
85
+ return new Promise(function (resolve, reject) {
86
+ __pending.set(id, { resolve: resolve, reject: reject });
87
+ __emit({ kind: "request", id: id, type: "publish-artifact", siteId: siteId, artifactOp: op, args: args });
88
+ });
89
+ }
90
+
91
+ function __declareArtifact(siteId, op, args) {
92
+ // 预置产物是声明:同步返回 void,没有可等的东西,所以走事件通道。它与 report 共用同一条
93
+ // FIFO——一条打了标签的 report 必须晚于它的声明到达父进程,而顺序正是由这一点保证的。
94
+ __emit({ kind: "event", type: "declare-artifact", siteId: siteId, op: op, args: args });
95
+ }
96
+
97
+ function __report(siteId, item, artifactId) {
98
+ // 即发即忘:脚本从不 await 它,所以走 event 通道而不是 request/response。父进程按 siteId ×
99
+ // ordinal 落一行 journal,故本条消息的**到达顺序**是承重的(stdio FIFO 保证它)。
100
+ // item 里若有环,这里的 JSON.stringify 会抛错——就在 report() 的调用点上,脚本要么 catch
101
+ // 要么让 run 失败。两者都比静默发出一条残缺的 item 好;父进程另有同样的护栏。
102
+ // artifactId 缺席时 JSON.stringify 直接把这个键丢掉,线上因此就是"没有标签"。
103
+ __emit({ kind: "event", type: "report", siteId: siteId, item: item, artifactId: artifactId });
104
+ }
105
+
106
+ // —— 运行实参(Boundary A 的 args)——
107
+ // 与预算一样在 context **内**用 JSON.parse 构造,所以脚本拿到的是 context-native 对象,
108
+ // 外层 realm 的 intrinsics 一点都不掺进来(本文件顶部的跨 realm 收敛约束)。
109
+ // ⚠ Object.freeze 是**浅**冻结:嵌套对象未冻结,脚本仍能改动 args.foo.bar。v1 接受这个
110
+ // 界限——它挡的是"手滑重新赋值 args",不是一个安全边界(实参本来就是调用方给的)。
111
+ var __args = Object.freeze(JSON.parse(__argsJson));
112
+
113
+ globalThis.__host = {
114
+ args: __args,
115
+ createActor: __createActor,
116
+ ask: __ask,
117
+ worldRead: __worldRead,
118
+ publishArtifact: __publishArtifact,
119
+ declareArtifact: __declareArtifact,
120
+ report: __report,
121
+ log: __log,
122
+ enterPhase: __enterPhase,
123
+ hole: __hole,
124
+ };
125
+
126
+ // —— 入站 response 消费(由外层 realm 以行字符串调用)——
127
+ globalThis.__deliver = function (line) {
128
+ var msg = JSON.parse(line);
129
+ if (msg.kind !== "response") return;
130
+ var waiter = __pending.get(msg.id);
131
+ if (!waiter) return;
132
+ __pending.delete(msg.id);
133
+ if (msg.ok) {
134
+ waiter.resolve(msg.value);
135
+ return;
136
+ }
137
+ // 拒绝以 context-native Error 过界,带上 code/violations/finalText 供脚本 try/catch 结构化处理。
138
+ var e = msg.error || {};
139
+ var err = new Error(e.message || "workflow host error");
140
+ if (e.name) err.name = e.name;
141
+ if (e.code !== undefined) err.code = e.code;
142
+ if (e.violations !== undefined) err.violations = e.violations;
143
+ if (e.finalText !== undefined) err.finalText = e.finalText;
144
+ waiter.reject(err);
145
+ };
146
+
147
+ // run 是否已发出 complete。停滞检测(deps.streamsBootstrap 里的 __checkStalled)也读写它。
148
+ var __settled = false;
149
+
150
+ function __complete(ok, payload) {
151
+ // 幂等:停滞检测已经以 error-complete 结束 run 之后,脚本(理论上)再完成也不再发第二条。
152
+ if (__settled) return;
153
+ __settled = true;
154
+ if (ok) {
155
+ __emit({ kind: "complete", ok: true, value: payload });
156
+ return;
157
+ }
158
+ var wire;
159
+ if (payload instanceof Error) {
160
+ wire = {
161
+ name: payload.name,
162
+ message: payload.message,
163
+ stack: payload.stack,
164
+ code: payload.code,
165
+ violations: payload.violations,
166
+ finalText: payload.finalText,
167
+ };
168
+ } else {
169
+ wire = { name: "Error", message: String(payload) };
170
+ }
171
+ __emit({ kind: "complete", ok: false, error: wire });
172
+ }
173
+
174
+ // 外层 realm 调用它跑脚本;始终 resolve(错误已转成 complete 消息),便于外层收尾(关 stdin)。
175
+ globalThis.__execute = async function (runFn) {
176
+ try {
177
+ var value = await runFn(globalThis.__host);
178
+ __complete(true, value);
179
+ } catch (e) {
180
+ __complete(false, e);
181
+ }
182
+ };
183
+
184
+ // —— 运行期禁令(belt;编译诊断是 suspenders):Date.now / argless new Date() / Math.random ——
185
+ var __NativeDate = Date;
186
+ class __WorkflowDate extends __NativeDate {
187
+ constructor() {
188
+ if (arguments.length === 0) throw new Error("argless new Date() is disabled in workflows");
189
+ super(...arguments);
190
+ }
191
+ static now() {
192
+ throw new Error("Date.now() is disabled in workflows");
193
+ }
194
+ static parse(value) {
195
+ return __NativeDate.parse(value);
196
+ }
197
+ static UTC() {
198
+ return __NativeDate.UTC.apply(__NativeDate, arguments);
199
+ }
200
+ }
201
+ globalThis.Date = __WorkflowDate;
202
+ Math.random = function () {
203
+ throw new Error("Math.random() is disabled in workflows");
204
+ };
205
+ `;
206
+ const payload = deps.payload;
207
+ const sandbox = {
208
+ __argsJson: JSON.stringify(payload.args ?? {}),
209
+ };
210
+ sandbox.__send = (line) => {
211
+ deps.stdout.write(`${line}\n`);
212
+ };
213
+ deps.vm.createContext(sandbox, { name: "workflow-sandbox" });
214
+ deps.vm.runInContext(BOOTSTRAP, sandbox, { filename: "workflow-bootstrap.js" });
215
+ deps.vm.runInContext(deps.streamsBootstrap, sandbox, { filename: "workflow-streams.js" });
216
+ let runFn;
217
+ try {
218
+ runFn = deps.vm.runInContext(`(async (__host) => {\n${payload.lowered}\n})`, sandbox, {
219
+ filename: "workflow-script.js",
220
+ });
221
+ }
222
+ catch (error) {
223
+ const err = error;
224
+ deps.stdout.write(`${JSON.stringify({
225
+ kind: "complete",
226
+ ok: false,
227
+ error: {
228
+ name: err?.name ?? "SyntaxError",
229
+ message: err?.message ?? String(error),
230
+ stack: err?.stack,
231
+ },
232
+ })}\n`);
233
+ return Promise.resolve();
234
+ }
235
+ const reader = deps.createInterface({ input: deps.stdin });
236
+ reader.on("line", (line) => {
237
+ if (!line.trim())
238
+ return;
239
+ sandbox.__deliver(line);
240
+ setImmediate(() => {
241
+ if (sandbox.__checkStalled())
242
+ reader.close();
243
+ });
244
+ });
245
+ const execution = sandbox.__execute(runFn).then(() => reader.close(), () => reader.close());
246
+ setImmediate(() => {
247
+ if (sandbox.__checkStalled())
248
+ reader.close();
249
+ });
250
+ return execution;
251
+ }
252
+ function safeRunId(runId) {
253
+ return runId.replace(/[^A-Za-z0-9._-]/g, "_");
254
+ }
255
+ export function renderChildEntry(payload, meta) {
256
+ const runId = safeRunId(meta.runId);
257
+ return `// zcode dynamic workflow run ${runId}
258
+ // Generated by @zcode/dynamic-workflow-runtime before every launch; safe to delete once the run has settled.
259
+ import { realpathSync } from "node:fs";
260
+ import { createInterface } from "node:readline";
261
+ import { fileURLToPath } from "node:url";
262
+ import { setFlagsFromString } from "node:v8";
263
+ import vm from "node:vm";
264
+
265
+ export const payload = ${JSON.stringify(payload)};
266
+
267
+ // cell 的第二段引导脚本(channel / future / 停滞检测),与 payload 同样以字面量内嵌。
268
+ export const streamsBootstrap = ${JSON.stringify(CELL_STREAMS_BOOTSTRAP)};
269
+
270
+ const main = ${childMain.toString()};
271
+
272
+ export const start = (deps) => main({ ...deps, payload, streamsBootstrap });
273
+
274
+ if (
275
+ typeof payload.maxOldSpaceSizeMb === "number" &&
276
+ Number.isFinite(payload.maxOldSpaceSizeMb) &&
277
+ payload.maxOldSpaceSizeMb > 0 &&
278
+ !process.execArgv.some((arg) => arg.startsWith("--max-old-space-size"))
279
+ ) {
280
+ try {
281
+ setFlagsFromString("--max-old-space-size=" + Math.trunc(payload.maxOldSpaceSizeMb));
282
+ } catch {
283
+ // best-effort:V8 对启动期已消费的旗标可能不再理会,失败不得影响 run。
284
+ }
285
+ }
286
+
287
+ let isProcessEntry = false;
288
+ try {
289
+ isProcessEntry =
290
+ process.argv[1] !== undefined &&
291
+ realpathSync(process.argv[1]) === realpathSync(fileURLToPath(import.meta.url));
292
+ } catch {
293
+ isProcessEntry = false;
294
+ }
295
+ if (isProcessEntry) {
296
+ void start({ vm, createInterface, stdin: process.stdin, stdout: process.stdout });
297
+ }
298
+ `;
299
+ }