@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 @@
1
+ {"version":3,"file":"flow-tree.d.ts","sourceRoot":"","sources":["../../src/analysis/flow-tree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhF;;;;;;;;;;;;;;GAcG;AAEH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE7C,2EAA2E;AAC3E,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;CAAE,CA4BhG"}
@@ -0,0 +1,33 @@
1
+ /** Rebuild the tree from the leaf stream, and index every region by id. */
2
+ export function buildTree(trace) {
3
+ const byId = new Map();
4
+ for (const region of trace.regions) {
5
+ byId.set(region.id, { children: [], first: Number.POSITIVE_INFINITY, region, type: "region" });
6
+ }
7
+ for (const region of trace.regions) {
8
+ if (region.parent === undefined)
9
+ continue;
10
+ byId.get(region.parent)?.children.push(byId.get(region.id));
11
+ }
12
+ trace.events.forEach((event, index) => {
13
+ const home = event.regions[event.regions.length - 1] ?? trace.root;
14
+ byId.get(home)?.children.push({ event, index, type: "leaf" });
15
+ });
16
+ // Bottom-up: each child is ordered (and its `first` cached) BEFORE the parent sorts, so
17
+ // the comparator reads a number instead of re-walking the subtree. A comparator that
18
+ // called `order(child)` itself would re-sort and re-walk the whole subtree on every
19
+ // comparison — exponential in nesting depth (a 2,500-region trace of inlined helpers
20
+ // took 45 s before the projection had produced a single edge).
21
+ const firstOf = (node) => (node.type === "leaf" ? node.index : node.first);
22
+ const order = (node) => {
23
+ if (node.type === "leaf")
24
+ return node.index;
25
+ for (const child of node.children)
26
+ node.first = Math.min(node.first, order(child));
27
+ node.children.sort((a, b) => firstOf(a) - firstOf(b));
28
+ return node.first;
29
+ };
30
+ const root = byId.get(trace.root);
31
+ order(root);
32
+ return { byId, root };
33
+ }
@@ -0,0 +1,5 @@
1
+ import type { AnalysisCore } from "./core.js";
2
+ import type { SiteGraph } from "./types.js";
3
+ /** Project the site graph off the core. */
4
+ export declare function projectSiteGraph(core: AnalysisCore): SiteGraph;
5
+ //# sourceMappingURL=graph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/analysis/graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAA6B,MAAM,WAAW,CAAC;AAGzE,OAAO,KAAK,EAAuB,SAAS,EAAY,MAAM,YAAY,CAAC;AAuB3E,2CAA2C;AAC3C,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,CAwI9D"}
@@ -0,0 +1,199 @@
1
+ import { isActorSite } from "./core.js";
2
+ /**
3
+ * The site-graph projection: graph assembly and edge emission over the
4
+ * {@link AnalysisCore} —
5
+ * data edges from each label's site to the sink reading it, the
6
+ * pairwise context relation over asks sharing an actor, dedup, source completion,
7
+ * and relay pruning.
8
+ *
9
+ * A PURE projection: everything
10
+ * position- or checker-shaped — `within` containment, fan-out ordinal renames,
11
+ * artifact types — was digested at core minting (interpret.ts), so this module
12
+ * never imports `typescript` and never sees the AST. The core's ids are final
13
+ * (`fan-out#N`), and its type keys match.
14
+ */
15
+ const SOURCE_NODE = { id: "source", kind: "source", label: "source" };
16
+ const SINK_NODE = { id: "sink", kind: "sink", label: "sink" };
17
+ /** Project the site graph off the core. */
18
+ export function projectSiteGraph(core) {
19
+ const { facts, sites, types } = core;
20
+ const fanoutNodes = sites.fanouts.map((site) => {
21
+ const artifactType = types.siteType.get(site.id);
22
+ return {
23
+ id: site.id,
24
+ kind: "fan-out",
25
+ label: site.label,
26
+ loc: site.loc,
27
+ order: site.order,
28
+ ...(site.within === undefined ? {} : { within: site.within }),
29
+ ...(artifactType === undefined ? {} : { artifactType }),
30
+ };
31
+ });
32
+ // Ask nodes carry their actor-lane membership: the deduped actor site ids their
33
+ // receiver resolves to, ordered by actor source order.
34
+ const actorOrder = new Map(sites.actors.map((actor) => [actor.id, actor.order]));
35
+ const askActors = (id) => [...new Set((facts.askActor.get(id) ?? []).map((occ) => occ.site))].sort((a, b) => (actorOrder.get(a) ?? 0) - (actorOrder.get(b) ?? 0));
36
+ const siteNodes = [
37
+ ...sites.asks.map((site) => {
38
+ const actors = askActors(site.id);
39
+ const artifactType = types.siteType.get(site.id);
40
+ return {
41
+ id: site.id,
42
+ kind: "ask",
43
+ label: site.label,
44
+ ...(site.labelPattern === undefined ? {} : { labelPattern: site.labelPattern }),
45
+ loc: site.loc,
46
+ order: site.order,
47
+ ...(actors.length > 0 ? { actors } : {}),
48
+ ...(site.within === undefined ? {} : { within: site.within }),
49
+ ...(artifactType === undefined ? {} : { artifactType }),
50
+ };
51
+ }),
52
+ ...sites.worldReads.map((site) => plainNode(site, "world-read", types)),
53
+ ...sites.joins.map((site) => plainNode(site, "join", types)),
54
+ ...fanoutNodes,
55
+ // 开放的留白是一个节点:名字是标签,类型实参是它的产物类型(docs/analysis.md「Sites」)。
56
+ ...sites.holes.map((site) => plainNode({ ...site, label: site.name }, "hole", types)),
57
+ ].sort((a, b) => a.order - b.order);
58
+ const edges = [];
59
+ // Resolve the producer's artifact type for a data edge. Port refinement applies ONLY
60
+ // to edges OUT OF a join (the from-side is a join and the occurrence selected an
61
+ // element port): the join's per-element type, falling back to its whole tuple/array
62
+ // type when that element's type is unknown. Edges INTO a join (`intoJoin`) also carry
63
+ // a `port`, but there it is the join's INPUT position — the edge takes the producer's
64
+ // (from-side) whole artifact type, never a port lookup.
65
+ const edgeType = (from, occ, intoJoin) => {
66
+ const whole = types.siteType.get(from);
67
+ if (!intoJoin && occ.port !== undefined) {
68
+ const ports = types.joinPortTypes.get(from);
69
+ if (ports !== undefined)
70
+ return ports[occ.port] ?? whole;
71
+ }
72
+ return whole;
73
+ };
74
+ const dataEdge = (from, to, occ, intoJoin = false) => {
75
+ const type = edgeType(from, occ, intoJoin);
76
+ edges.push({
77
+ exact: occ.exact,
78
+ from,
79
+ kind: "data",
80
+ to,
81
+ ...(occ.port === undefined ? {} : { port: occ.port }),
82
+ ...(type === undefined ? {} : { type }),
83
+ });
84
+ };
85
+ // 1. Data edges into every sink.
86
+ for (const [askId, occs] of facts.askData)
87
+ for (const occ of occs)
88
+ dataEdge(occ.site, askId, occ);
89
+ for (const [worldId, occs] of facts.worldReadData)
90
+ for (const occ of occs)
91
+ dataEdge(occ.site, worldId, occ);
92
+ for (const [joinId, occs] of facts.joinIn)
93
+ for (const occ of occs)
94
+ dataEdge(occ.site, joinId, occ, true);
95
+ for (const [fanoutId, occs] of facts.fanoutIn)
96
+ for (const occ of occs)
97
+ dataEdge(occ.site, fanoutId, occ);
98
+ for (const [holeId, occs] of facts.holeData)
99
+ for (const occ of occs)
100
+ dataEdge(occ.site, holeId, occ);
101
+ for (const occ of facts.returnData)
102
+ dataEdge(occ.site, "sink", occ);
103
+ // 2. Context edges: pairwise over asks whose actor sets intersect, earlier -> later.
104
+ const askOrder = new Map(sites.asks.map((site) => [site.id, site.order]));
105
+ const contextAsks = sites.asks
106
+ .map((site) => ({ actors: facts.askActor.get(site.id) ?? [], id: site.id }))
107
+ .filter((entry) => entry.actors.length > 0);
108
+ for (let i = 0; i < contextAsks.length; i += 1) {
109
+ for (let j = i + 1; j < contextAsks.length; j += 1) {
110
+ const a = contextAsks[i];
111
+ const b = contextAsks[j];
112
+ if (a === undefined || b === undefined)
113
+ continue;
114
+ if (!actorsIntersect(a.actors, b.actors))
115
+ continue;
116
+ const [from, to] = (askOrder.get(a.id) ?? 0) <= (askOrder.get(b.id) ?? 0) ? [a.id, b.id] : [b.id, a.id];
117
+ edges.push({ exact: contextExact(a.actors, b.actors), from, kind: "context", to });
118
+ }
119
+ }
120
+ // 3. Deduplicate by (from, to, kind, port); exact is the OR over witnesses.
121
+ const deduped = dedupeEdges(edges);
122
+ // 4. Source completion: ask/world-read/fan-out nodes with no incoming data edge.
123
+ const hasIncomingData = new Set();
124
+ for (const edge of deduped)
125
+ if (edge.kind === "data")
126
+ hasIncomingData.add(edge.to);
127
+ for (const node of siteNodes) {
128
+ if (node.kind === "join")
129
+ continue;
130
+ if (!hasIncomingData.has(node.id)) {
131
+ deduped.push({ exact: true, from: "source", kind: "data", to: node.id });
132
+ }
133
+ }
134
+ // 5. Prune relay nodes (join / fan-out) that ended up with no incident edges.
135
+ const incident = new Set();
136
+ for (const edge of deduped) {
137
+ incident.add(edge.from);
138
+ incident.add(edge.to);
139
+ }
140
+ const keptNodes = siteNodes.filter((node) => (node.kind !== "join" && node.kind !== "fan-out") || incident.has(node.id));
141
+ // 6. Node order: source, sites in source order (fan-outs merged by order), sink.
142
+ const nodes = [SOURCE_NODE, ...keptNodes.map(stripOrder), SINK_NODE];
143
+ const actors = sites.actors.map((actor) => ({
144
+ id: actor.id,
145
+ loc: actor.loc,
146
+ ...(actor.name === undefined ? {} : { name: actor.name }),
147
+ ...(actor.namePattern === undefined ? {} : { namePattern: actor.namePattern }),
148
+ ...(actor.within === undefined ? {} : { within: actor.within }),
149
+ }));
150
+ return { actors, edges: deduped, nodes };
151
+ }
152
+ function plainNode(site, kind, types) {
153
+ const artifactType = types.siteType.get(site.id);
154
+ return {
155
+ id: site.id,
156
+ kind,
157
+ label: site.label,
158
+ loc: site.loc,
159
+ order: site.order,
160
+ ...(site.within === undefined ? {} : { within: site.within }),
161
+ ...(artifactType === undefined ? {} : { artifactType }),
162
+ };
163
+ }
164
+ function stripOrder({ order: _order, ...node }) {
165
+ return node;
166
+ }
167
+ function actorsIntersect(a, b) {
168
+ const sites = new Set(a.map((occ) => occ.site));
169
+ return b.some((occ) => sites.has(occ.site));
170
+ }
171
+ /** Context exact iff both actor sets are the same singleton and both occs are exact. */
172
+ function contextExact(a, b) {
173
+ if (a.length !== 1 || b.length !== 1)
174
+ return false;
175
+ const [oa] = a;
176
+ const [ob] = b;
177
+ return oa !== undefined && ob !== undefined && oa.site === ob.site && oa.exact && ob.exact;
178
+ }
179
+ function dedupeEdges(edges) {
180
+ const byKey = new Map();
181
+ for (const edge of edges) {
182
+ if (isActorSite(edge.from) && edge.kind === "data")
183
+ continue; // actor labels never make data edges
184
+ const key = `${edge.from}|${edge.to}|${edge.kind}|${edge.port ?? ""}`;
185
+ const existing = byKey.get(key);
186
+ if (existing === undefined) {
187
+ byKey.set(key, { ...edge });
188
+ }
189
+ else {
190
+ if (edge.exact && !existing.exact)
191
+ existing.exact = true;
192
+ // Type is deterministic per (from, port), so witnesses agree; keep the first
193
+ // non-undefined one (a widened witness path can lack the type another kept).
194
+ if (existing.type === undefined && edge.type !== undefined)
195
+ existing.type = edge.type;
196
+ }
197
+ }
198
+ return [...byKey.values()];
199
+ }
@@ -0,0 +1,48 @@
1
+ import type { AnalysisCore } from "./core.js";
2
+ import type { CausalityGraph } from "./causality-graph.js";
3
+ import type { SiteGraph } from "./types.js";
4
+ /**
5
+ * 交接图:板面第二层的主体。每个阶段
6
+ * 的**参与者**是一张卡——该阶段里有 step 的每条车道一张(子代理、工作区、未解析),fan-out
7
+ * 家族在基数已知时按成员出卡;卡之间的**交接**边是因果图(已按类型归约)的阶段内边按卡取商、
8
+ * 去自环、再做无类型贪心不可约归约的结果。与其他每一种箭头同义:runs after。
9
+ *
10
+ * 一个 PURE 投影:只读 core(fan-out 基数与 actor 的 `within` 链)、因果图(step 的车道、
11
+ * 阶段、边的 kind)与站点图(`data` 边的产物类型,检视器素材)。不 import `typescript`。
12
+ */
13
+ export interface HandoffParticipant {
14
+ /** `${phase}:${lane}`,家族成员 `${phase}:${lane}[${index}]`。 */
15
+ id: string;
16
+ /** 阶段 id;脚本无阶段词汇时恒为 `unphased`。 */
17
+ phase: string;
18
+ /** 车道 id:actor 站点 id、`workspace` 或 `unknown`。 */
19
+ lane: string;
20
+ /** 该阶段内落在这条车道上的 step id,源码序,至少一个。 */
21
+ steps: string[];
22
+ /** 字面量基数展开出的成员。 */
23
+ member?: {
24
+ index: number;
25
+ of: number;
26
+ };
27
+ /** 基数未知(或超过展开上限)的家族:一张卡代表全部成员。 */
28
+ many?: true;
29
+ }
30
+ export interface Handoff {
31
+ from: string;
32
+ to: string;
33
+ /** 全部贡献边都是循环回边(carry)。 */
34
+ back?: true;
35
+ /** 阶段内 from 卡的站点 → to 卡的站点的 `data` 边产物类型,按贡献序去重。 */
36
+ types?: string[];
37
+ }
38
+ export interface HandoffGraph {
39
+ participants: HandoffParticipant[];
40
+ handoffs: Handoff[];
41
+ }
42
+ /** 无阶段词汇时的唯一阶段 id;与因果图的兜底阶段同名。 */
43
+ export declare const UNPHASED = "unphased";
44
+ /** 家族按成员出卡的上限:多重性超过它按 `many` 处理。 */
45
+ export declare const FANOUT_EXPAND_CAP = 8;
46
+ /** Project the hand-off graph off the core, the causality graph and the site graph. */
47
+ export declare function projectHandoffGraph(core: AnalysisCore, causality: CausalityGraph, sites: SiteGraph): HandoffGraph;
48
+ //# sourceMappingURL=handoff-graph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handoff-graph.d.ts","sourceRoot":"","sources":["../../src/analysis/handoff-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAQ,MAAM,sBAAsB,CAAC;AAGjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C;;;;;;;;GAQG;AAEH,MAAM,WAAW,kBAAkB;IACjC,4DAA4D;IAC5D,EAAE,EAAE,MAAM,CAAC;IACX,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,qCAAqC;IACrC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,mBAAmB;IACnB,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,kCAAkC;IAClC,IAAI,CAAC,EAAE,IAAI,CAAC;CACb;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,0BAA0B;IAC1B,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,kBAAkB,EAAE,CAAC;IACnC,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED,kCAAkC;AAClC,eAAO,MAAM,QAAQ,aAAa,CAAC;AACnC,oCAAoC;AACpC,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAQnC,uFAAuF;AACvF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,GAAG,YAAY,CAgIjH"}
@@ -0,0 +1,14 @@
1
+ import ts from "typescript";
2
+ import { type AbstractValue } from "./domain.js";
3
+ import type { EvalContext, Evaluator } from "./taint.js";
4
+ /**
5
+ * In-place heap-mutation transfers: `Object.assign` and the receiver-mutating array /
6
+ * collection methods (`push`, `Map.set`, …). Extracted from calls.ts (pure move, no
7
+ * behavior change) to keep that file under the line cap.
8
+ */
9
+ /** `Object.assign` — a free function (not a method) that mutates its target in place. */
10
+ export declare function isObjectAssign(access: ts.PropertyAccessExpression): boolean;
11
+ export declare function handleHeapMutator(ev: Evaluator, node: ts.CallExpression, access: ts.PropertyAccessExpression, ctx: EvalContext): AbstractValue;
12
+ /** `Object.assign(target, ...sources)`: merge each source into the target's live value. */
13
+ export declare function handleObjectAssign(ev: Evaluator, node: ts.CallExpression, ctx: EvalContext): AbstractValue;
14
+ //# sourceMappingURL=heap-ops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heap-ops.d.ts","sourceRoot":"","sources":["../../src/analysis/heap-ops.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAqE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAEpH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEzD;;;;GAIG;AAEH,yFAAyF;AACzF,wBAAgB,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC,wBAAwB,GAAG,OAAO,CAE3E;AAED,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,SAAS,EACb,IAAI,EAAE,EAAE,CAAC,cAAc,EACvB,MAAM,EAAE,EAAE,CAAC,wBAAwB,EACnC,GAAG,EAAE,WAAW,GACf,aAAa,CAyBf;AAED,2FAA2F;AAC3F,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE,WAAW,GAAG,aAAa,CAuB1G"}
@@ -0,0 +1,70 @@
1
+ import ts from "typescript";
2
+ import { adoptFields, collapse, emptyValue, mergeInto, replayMayAliasMerge } from "./domain.js";
3
+ import { mergeIntoRootIdentifier } from "./assign.js";
4
+ /**
5
+ * In-place heap-mutation transfers: `Object.assign` and the receiver-mutating array /
6
+ * collection methods (`push`, `Map.set`, …). Extracted from calls.ts (pure move, no
7
+ * behavior change) to keep that file under the line cap.
8
+ */
9
+ /** `Object.assign` — a free function (not a method) that mutates its target in place. */
10
+ export function isObjectAssign(access) {
11
+ return ts.isIdentifier(access.expression) && access.expression.text === "Object" && access.name.text === "assign";
12
+ }
13
+ export function handleHeapMutator(ev, node, access, ctx) {
14
+ // Resolve the receiver to its LIVE value so a mutator on a nested place
15
+ // (`wrap.items.push(x)`, `state.map.set(k, v)`) writes the shared container, visible
16
+ // through every alias. `Map.set`/`Set.add` fold their args in the same way as the
17
+ // array mutators (key taint included — a sound over-approximation).
18
+ const container = ev.resolvePlace(access.expression, true);
19
+ // An unresolvable receiver (computed element access `state.buffers[i].push(x)`,
20
+ // a call result `log().push(x)`) used to skip BOTH halves of the transfer — the argument
21
+ // taint merged nowhere (a silent total drop of the flow) and the receiver expression was
22
+ // never evaluated, so a facade sink sitting in receiver position was never visited at
23
+ // all. Mirror writeTarget's unresolvable-receiver path (assign.ts): evaluate the receiver
24
+ // for effect and smear each argument into the chain's root identifier.
25
+ if (container === undefined)
26
+ ev.evalExpr(access.expression, ctx);
27
+ for (const arg of node.arguments) {
28
+ const argVal = collapse(ev.evalExpr(arg, ctx));
29
+ if (container !== undefined) {
30
+ if (mergeInto(container, argVal))
31
+ ev.s.changed = true;
32
+ // A conditional-binding / join-element receiver mutated in place reaches every
33
+ // candidate place it may BE (weak, inexact).
34
+ if (replayMayAliasMerge(container, argVal))
35
+ ev.s.changed = true;
36
+ }
37
+ else {
38
+ mergeIntoRootIdentifier(ev, access.expression, argVal);
39
+ }
40
+ }
41
+ return emptyValue();
42
+ }
43
+ /** `Object.assign(target, ...sources)`: merge each source into the target's live value. */
44
+ export function handleObjectAssign(ev, node, ctx) {
45
+ const [targetArg, ...sources] = node.arguments;
46
+ if (targetArg === undefined)
47
+ return emptyValue();
48
+ const targetLive = ev.resolvePlace(targetArg, true);
49
+ const result = ev.evalExpr(targetArg, ctx); // Object.assign returns the target
50
+ for (const src of sources) {
51
+ const srcPlace = ev.resolvePlace(src);
52
+ const srcVal = srcPlace ?? ev.evalExpr(src, ctx);
53
+ if (targetLive !== undefined) {
54
+ // Object.assign shallow-copies: an object-valued source field is copied by
55
+ // REFERENCE, so after the call `target.f` and `src.f` are one shared object and a
56
+ // write through either is visible through the other. When the source is a place,
57
+ // adopt its field objects by reference; container-level occs (and any non-place
58
+ // source, e.g. `{ f: secret }`) still weak-merge in as before, so
59
+ // `Object.assign(target, { f: secret })` makes `target.f` observe secret.
60
+ // The old deep `mergeInto` materialized independent target
61
+ // fields, so a mutation through target's shared sub-object was invisible via src.
62
+ if (srcPlace !== undefined && adoptFields(targetLive, srcPlace))
63
+ ev.s.changed = true;
64
+ if (mergeInto(targetLive, srcVal))
65
+ ev.s.changed = true;
66
+ }
67
+ mergeInto(result, srcVal);
68
+ }
69
+ return result;
70
+ }
@@ -0,0 +1,28 @@
1
+ /**
2
+ * 留白站点 id(docs/analysis.md「Sites」的 Hole sites 段):`hole#<8 位十六进制>`,键是留白的
3
+ * **名字**(FNV-1a 32 位,按 Unicode 码点,名字先 trim),与它嵌套在哪一层无关。
4
+ *
5
+ * 为什么不是位置计数器:补全在脚本中间插入代码,任何按位置编号的方案都会让插入点之后的留白
6
+ * 改号,而 journal 键、ask spec、站点阶段表都靠 id 在补全后幸存。为什么不再是外层 id 前缀
7
+ * (2026-09-28 之前的 `hole#1/hole#1/ask#1`):每嵌套一层长 7 个字符,接龙式补全(每一步在
8
+ * 结尾再留一个留白)八九步就顶到协议里 64 字符的 id 上界,而这条上界是对的——协议载荷必须
9
+ * 有界。名字在整个有效脚本里唯一(9012),所以名字键既在补全前后稳定,又不随深度增长。两个
10
+ * 不同名字撞到同一哈希由 9012 报出(32 位、一个脚本至多几十个留白,概率约 1e-7),从不猜。
11
+ *
12
+ * 函数体里的站点仍带 `<holeId>/` 前缀(`hole#a91f3c07/ask#1`),但只带**一层**:体内再留的
13
+ * 留白自己又是 `hole#<hash>`,它体内的站点带它自己的前缀。嵌套关系不再写在 id 里,而是站点
14
+ * 表上的 `fill` 字段(HoleSite.fill:包着它的那个留白)。
15
+ */
16
+ /** 留白 id 里十六进制的位数;协议侧的 id 上界(64)与它无关,这里只是让 id 短而固定。 */
17
+ export declare const HOLE_ID_HEX_LENGTH = 8;
18
+ /** 留白站点 id 的形状。UI 与稳定性复核靠它认出「这个 id 是一个留白」。 */
19
+ export declare const HOLE_SITE_ID_PATTERN: RegExp;
20
+ /** 从留白的名字铸站点 id。名字先 trim(唯一性也按 trim 后比较)。 */
21
+ export declare function holeSiteId(name: string): string;
22
+ export declare function isHoleSiteId(id: string): boolean;
23
+ /**
24
+ * 一个站点 id 所属的留白:`hole#x/ask#1` → `hole#x`;一个留白自己的 id 或体外的 id → undefined。
25
+ * 只看一层前缀(id 里只有一层);留白自己属于哪个留白要问站点表的 `fill`。
26
+ */
27
+ export declare function holePrefixOf(siteId: string): string | undefined;
28
+ //# sourceMappingURL=hole-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hole-id.d.ts","sourceRoot":"","sources":["../../src/analysis/hole-id.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,uDAAuD;AACvD,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC,8CAA8C;AAC9C,eAAO,MAAM,oBAAoB,QAAwB,CAAC;AAE1D,6CAA6C;AAC7C,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO/C;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG/D"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * 留白站点 id(docs/analysis.md「Sites」的 Hole sites 段):`hole#<8 位十六进制>`,键是留白的
3
+ * **名字**(FNV-1a 32 位,按 Unicode 码点,名字先 trim),与它嵌套在哪一层无关。
4
+ *
5
+ * 为什么不是位置计数器:补全在脚本中间插入代码,任何按位置编号的方案都会让插入点之后的留白
6
+ * 改号,而 journal 键、ask spec、站点阶段表都靠 id 在补全后幸存。为什么不再是外层 id 前缀
7
+ * (2026-09-28 之前的 `hole#1/hole#1/ask#1`):每嵌套一层长 7 个字符,接龙式补全(每一步在
8
+ * 结尾再留一个留白)八九步就顶到协议里 64 字符的 id 上界,而这条上界是对的——协议载荷必须
9
+ * 有界。名字在整个有效脚本里唯一(9012),所以名字键既在补全前后稳定,又不随深度增长。两个
10
+ * 不同名字撞到同一哈希由 9012 报出(32 位、一个脚本至多几十个留白,概率约 1e-7),从不猜。
11
+ *
12
+ * 函数体里的站点仍带 `<holeId>/` 前缀(`hole#a91f3c07/ask#1`),但只带**一层**:体内再留的
13
+ * 留白自己又是 `hole#<hash>`,它体内的站点带它自己的前缀。嵌套关系不再写在 id 里,而是站点
14
+ * 表上的 `fill` 字段(HoleSite.fill:包着它的那个留白)。
15
+ */
16
+ const FNV_OFFSET = 0x811c9dc5;
17
+ const FNV_PRIME = 0x01000193;
18
+ /** 留白 id 里十六进制的位数;协议侧的 id 上界(64)与它无关,这里只是让 id 短而固定。 */
19
+ export const HOLE_ID_HEX_LENGTH = 8;
20
+ /** 留白站点 id 的形状。UI 与稳定性复核靠它认出「这个 id 是一个留白」。 */
21
+ export const HOLE_SITE_ID_PATTERN = /^hole#[0-9a-f]{8}$/u;
22
+ /** 从留白的名字铸站点 id。名字先 trim(唯一性也按 trim 后比较)。 */
23
+ export function holeSiteId(name) {
24
+ let hash = FNV_OFFSET;
25
+ for (const char of name.trim()) {
26
+ hash ^= char.codePointAt(0) ?? 0;
27
+ hash = Math.imul(hash, FNV_PRIME) >>> 0;
28
+ }
29
+ return `hole#${hash.toString(16).padStart(HOLE_ID_HEX_LENGTH, "0")}`;
30
+ }
31
+ export function isHoleSiteId(id) {
32
+ return HOLE_SITE_ID_PATTERN.test(id);
33
+ }
34
+ /**
35
+ * 一个站点 id 所属的留白:`hole#x/ask#1` → `hole#x`;一个留白自己的 id 或体外的 id → undefined。
36
+ * 只看一层前缀(id 里只有一层);留白自己属于哪个留白要问站点表的 `fill`。
37
+ */
38
+ export function holePrefixOf(siteId) {
39
+ const cut = siteId.indexOf("/");
40
+ return cut < 0 ? undefined : siteId.slice(0, cut);
41
+ }
@@ -0,0 +1,32 @@
1
+ /**
2
+ * 留白站点(docs/dynamic-workflow/authoring.md「Holes: `hole<T>()`」,docs/analysis.md「Sites」):
3
+ * 站点的构造(三个重载的实参分派、tail 判定)与编译期规则 9012。
4
+ *
5
+ * 9012 的每条规则都是「运行期才炸不如现在就教改写」的那一类(与 9003 / 9004 同席):
6
+ * - 类型实参必须显式写出:T 是补全被检查的契约,推断出的 `unknown` 不是契约;
7
+ * - 名字是非空字面量、≤128 字符,且在脚本的留白与阶段标记中**唯一**(嵌套补全也算):名字
8
+ * 是留白的阶段名与每个界面显示的身份——两个标记同名是一个阶段,两个留白同名却是两个缺口;
9
+ * - 调用必须被 await:没等值的留白会让脚本越过一个还没有值的缺口;
10
+ * - 不能落在 fan-out **回调**里(数组方法的回调,提升与否都算):元素并发跑,补全得在它们
11
+ * 已经在跑的时候写。`for...of` 体**允许**:带 await 的 for...of 是顺序的——第一轮停在留白,
12
+ * 补全到了,后面每轮跑函数体,正是「循环里的留白补全一次、每轮跑一遍」那一条;
13
+ * - 函数体不得引用留白之后才声明的绑定:函数体是编译器不检查「先用后声明」的闭包,引用
14
+ * 后面的 `const` 到运行期才 TDZ 抛错;
15
+ * - 函数体必须是内联的函数字面量:lowering 要把它原样打印成补全文本,一个标识符没有文本可打。
16
+ */
17
+ import ts from "typescript";
18
+ import type { CompileDiagnostic, ScriptLoc, WorkflowProgram } from "../compiler/compile.js";
19
+ import type { HoleSite, SiteTable } from "./sites.js";
20
+ /** 留白规则的诊断码(9001 = facade-siting、…、9010 = 模型名,顺延)。 */
21
+ export declare const HOLE_CODE = 9012;
22
+ /** 留白名的长度上限:与阶段名同规(docs/dynamic-workflow/authoring.md「Holes」)。 */
23
+ export declare const HOLE_NAME_MAX_CHARS = 128;
24
+ /**
25
+ * 从一个已按声明判定为 facade `hole` 的调用构造站点。三个重载的分派只看实参形状:第二实参是
26
+ * 函数字面量即函数体,否则是提示;第三实参(若有)是函数体。非字面量的函数体既不算提示也不算
27
+ * 函数体——留给 9012 报「必须内联」。
28
+ */
29
+ export declare function holeSiteOf(call: ts.CallExpression, id: string, order: number, loc: ScriptLoc, funcDepth: number, fill: string | undefined): HoleSite;
30
+ /** 校验收集到的留白站点。非空即脚本不可提交(`analyzeWorkflowScript` 与 misuse 同席)。 */
31
+ export declare function collectHoleDiagnostics(workflow: WorkflowProgram, table: SiteTable): CompileDiagnostic[];
32
+ //# sourceMappingURL=hole-sites.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hole-sites.d.ts","sourceRoot":"","sources":["../../src/analysis/hole-sites.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC5F,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGtD,sDAAsD;AACtD,eAAO,MAAM,SAAS,OAAO,CAAC;AAE9B,kEAAkE;AAClE,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAmEvC;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,EAAE,CAAC,cAAc,EACvB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,SAAS,EACd,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,GAAG,SAAS,GACvB,QAAQ,CAmBV;AAkBD,iEAAiE;AACjE,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,eAAe,EACzB,KAAK,EAAE,SAAS,GACf,iBAAiB,EAAE,CA+DrB"}