@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,32 @@
1
+ import type { AnalysisCore } from "./core.js";
2
+ import type { ControlFlowGraph } from "./flow-graph.js";
3
+ /**
4
+ * 站点 → 出生阶段**名**的编译期表(docs/analysis.md「Phases」;引擎侧见 execution-engine.md
5
+ * 「Identity: sites, ordinals, phases」)。
6
+ *
7
+ * 引擎给实例打的出生阶段戳原本只看「脚本最近经过的标记」——单线叙事下没错,但两个 future
8
+ * 各自以自己的标记开头并发跑起来后,一个生产者在首次 await 之后发出的第二个 ask,会被戳成
9
+ * 最后一个跑过的标记,也就是消费者那一段。所以戳改成**词法优先**:分析器的时序 walk 早就按
10
+ * 内联语义(helper 内联到调用点、回调放在注册处、future 体放在调用处)给每个 issue 记了当时的
11
+ * 阶段;一个站点的所有 issue(actor 站点则是所有 spawn)都落在**同一个有名阶段**时,那就是它
12
+ * 的出生阶段,与确认窗画给用户的图一致。落在两个阶段(被两处调用的 helper)或只落在 unphased
13
+ * 的站点不进表,引擎对它退回动态当前阶段。
14
+ *
15
+ * 以 trace 而不是投影图为源:投影会给跨阶段的步做 phase copy,而这里要的恰是「是否唯一」。
16
+ * 名字(不是 phase id)进表,因为引擎的戳与 `phase-entered` 事件都用作者的原词。
17
+ */
18
+ /**
19
+ * run 的声明阶段表(execution-engine.md「run-launched」的 `phaseNames` / `holes`):控制流投影
20
+ * 阶段表里**有名**的阶段按序取名——留白按名字站在它的位置上——外加与之对齐的下标表 `holes`,
21
+ * 指出其中哪些是**开放的留白**,侧栏迷你轨道据此把那些站画成虚线。无阶段词汇表时两张表都是
22
+ * 空数组(提交方据此让字段整个缺席)。
23
+ *
24
+ * 与 `createWorkflowPhaseNames`(contracts)同一份来源(控制流投影的阶段表,含只有标记的阶段),
25
+ * 所以补全后重算的表与 launch 时的表按同一条规则对齐。
26
+ */
27
+ export declare function collectPhaseNames(flow: Pick<ControlFlowGraph, "phases" | "holes"> | undefined): {
28
+ phaseNames: string[];
29
+ holes: number[];
30
+ };
31
+ export declare function collectSitePhases(core: AnalysisCore): ReadonlyMap<string, string>;
32
+ //# sourceMappingURL=site-phases.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"site-phases.d.ts","sourceRoot":"","sources":["../../src/analysis/site-phases.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD;;;;;;;;;;;;;;GAcG;AACH;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,SAAS,GAAG;IAC/F,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAUA;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAwBjF"}
@@ -0,0 +1,69 @@
1
+ import { UNPHASED_ID } from "./constants.js";
2
+ /**
3
+ * 站点 → 出生阶段**名**的编译期表(docs/analysis.md「Phases」;引擎侧见 execution-engine.md
4
+ * 「Identity: sites, ordinals, phases」)。
5
+ *
6
+ * 引擎给实例打的出生阶段戳原本只看「脚本最近经过的标记」——单线叙事下没错,但两个 future
7
+ * 各自以自己的标记开头并发跑起来后,一个生产者在首次 await 之后发出的第二个 ask,会被戳成
8
+ * 最后一个跑过的标记,也就是消费者那一段。所以戳改成**词法优先**:分析器的时序 walk 早就按
9
+ * 内联语义(helper 内联到调用点、回调放在注册处、future 体放在调用处)给每个 issue 记了当时的
10
+ * 阶段;一个站点的所有 issue(actor 站点则是所有 spawn)都落在**同一个有名阶段**时,那就是它
11
+ * 的出生阶段,与确认窗画给用户的图一致。落在两个阶段(被两处调用的 helper)或只落在 unphased
12
+ * 的站点不进表,引擎对它退回动态当前阶段。
13
+ *
14
+ * 以 trace 而不是投影图为源:投影会给跨阶段的步做 phase copy,而这里要的恰是「是否唯一」。
15
+ * 名字(不是 phase id)进表,因为引擎的戳与 `phase-entered` 事件都用作者的原词。
16
+ */
17
+ /**
18
+ * run 的声明阶段表(execution-engine.md「run-launched」的 `phaseNames` / `holes`):控制流投影
19
+ * 阶段表里**有名**的阶段按序取名——留白按名字站在它的位置上——外加与之对齐的下标表 `holes`,
20
+ * 指出其中哪些是**开放的留白**,侧栏迷你轨道据此把那些站画成虚线。无阶段词汇表时两张表都是
21
+ * 空数组(提交方据此让字段整个缺席)。
22
+ *
23
+ * 与 `createWorkflowPhaseNames`(contracts)同一份来源(控制流投影的阶段表,含只有标记的阶段),
24
+ * 所以补全后重算的表与 launch 时的表按同一条规则对齐。
25
+ */
26
+ export function collectPhaseNames(flow) {
27
+ const phaseNames = [];
28
+ const holes = [];
29
+ const open = new Set((flow?.holes ?? []).map((hole) => hole.siteId));
30
+ for (const phase of flow?.phases ?? []) {
31
+ if (phase.name === undefined)
32
+ continue;
33
+ if (open.has(phase.id))
34
+ holes.push(phaseNames.length);
35
+ phaseNames.push(phase.name);
36
+ }
37
+ return { holes, phaseNames };
38
+ }
39
+ export function collectSitePhases(core) {
40
+ const nameOf = new Map();
41
+ for (const phase of core.trace.phases)
42
+ nameOf.set(phase.id, phase.name);
43
+ const claims = new Map();
44
+ const claim = (site, phase) => {
45
+ const set = claims.get(site);
46
+ if (set === undefined)
47
+ claims.set(site, new Set([phase]));
48
+ else
49
+ set.add(phase);
50
+ };
51
+ for (const event of core.trace.events) {
52
+ if (event.at === "issue")
53
+ claim(event.step, event.phase);
54
+ else if (event.at === "actor")
55
+ claim(event.actor, event.phase);
56
+ }
57
+ const table = new Map();
58
+ for (const [site, phases] of claims) {
59
+ if (phases.size !== 1)
60
+ continue;
61
+ const [phase] = phases;
62
+ if (phase === undefined || phase === UNPHASED_ID)
63
+ continue;
64
+ const name = nameOf.get(phase);
65
+ if (name !== undefined)
66
+ table.set(site, name);
67
+ }
68
+ return table;
69
+ }
@@ -0,0 +1,71 @@
1
+ import ts from "typescript";
2
+ import type { WorldReadOp } from "../facade/registry.js";
3
+ import type { ScriptLoc } from "../compiler/compile.js";
4
+ import type { NamePattern } from "./types.js";
5
+ import type { CallbackSemantics } from "./callbacks.js";
6
+ import type { IterationCandidate } from "./sites.js";
7
+ /** Resolve a node's symbol, following one alias hop (imports never occur here). */
8
+ export declare function resolveSymbol(node: ts.Node, checker: ts.TypeChecker): ts.Symbol | undefined;
9
+ /** True iff any of the symbol's declarations lives in the facade `.d.ts`. */
10
+ export declare function isFacadeDeclared(symbol: ts.Symbol | undefined): boolean;
11
+ /**
12
+ * 一个实参**无洞字符串字面量**的文本,其余(标识符、带洞模板、任意表达式)一律 undefined。
13
+ *
14
+ * 三处共用一条判定:phase 的名字、产物的 id、report 的标签。三者的规矩完全相同——只有编译期
15
+ * 就闭合的字面量才算数,看不穿的一律留给各自的诊断趟按原表达式定位,**绝不在这里猜一个值
16
+ * 出来**(猜出来的名字会让一条本该被教改写的调用静默通过)。`ts.isStringLiteralLike` 覆盖
17
+ * 无插值的反引号串。
18
+ */
19
+ export declare function literalText(expr: ts.Expression | undefined): string | undefined;
20
+ /**
21
+ * 一套 per-kind 站点计数器(`ask#N` / `actor#N` / …),外加 id 前缀。
22
+ *
23
+ * 前缀是留白的事(docs/analysis.md「Sites」的 Hole sites 段):走查进入一个留白的函数体时
24
+ * **开一套全新的计数器**,体内铸出的每个 id 都带 `<holeId>/`(`hole#a91f3c07/ask#1`),外层
25
+ * 计数器从不看见体内的站点。于是补全一个留白(在脚本中间插入代码)不改动任何已有的 `ask#N` /
26
+ * `actor#N` / …——这是站点 id 稳定性规则从「加标记」到「加函数体」的延伸;活 run 的 journal
27
+ * 键、ask spec、站点阶段表都靠它在补全后幸存。前缀只有**一层**:留白自己的 id 是名字键
28
+ * (hole-id.ts),不带外层前缀,体内再留的留白因此不会让 id 随深度增长;`holeId` 记着
29
+ * 这套计数器属于哪个留白,让体内的留白站点把包着它的留白写进 `fill`。
30
+ * 全局 `order` 不在这里:它是文本输出的归并键,穿过函数体连续计数。
31
+ */
32
+ export declare class SiteCounters {
33
+ private readonly prefix;
34
+ /** 这套计数器所在的留白函数体(顶层没有)。 */
35
+ readonly holeId?: string | undefined;
36
+ private readonly counts;
37
+ constructor(prefix?: string,
38
+ /** 这套计数器所在的留白函数体(顶层没有)。 */
39
+ holeId?: string | undefined);
40
+ /** 铸下一个 `<prefix><kind>#<n>`。 */
41
+ next(kind: string): string;
42
+ /** 进入留白 `holeId` 的函数体:全新一套计数器,前缀就是这个留白的 id(不叠加外层的)。 */
43
+ child(holeId: string): SiteCounters;
44
+ }
45
+ /**
46
+ * ask label: an inline `agent("name", …)` receiver contributes its literal name;
47
+ * a plain identifier receiver contributes its text; otherwise `"ask"`.
48
+ */
49
+ export declare function askLabel(receiver: ts.Expression, checker: ts.TypeChecker): string;
50
+ /**
51
+ * ask label pattern: only for an inline `` agent(`研究员${i}`) `` receiver — the one shape
52
+ * `askLabel` answers `"ask"` for despite the script having said something. A named or
53
+ * identifier receiver already produced a real label, so there is nothing to reconstruct.
54
+ */
55
+ export declare function askLabelPattern(receiver: ts.Expression, checker: ts.TypeChecker): NamePattern | undefined;
56
+ /**
57
+ * actor name: a string-literal first argument, else the binding name when the call
58
+ * directly initializes a variable declaration, else undefined.
59
+ */
60
+ export declare function actorName(call: ts.CallExpression): string | undefined;
61
+ /**
62
+ * actor name pattern: the static shape of a first argument that is a template literal
63
+ * with holes. Only consulted when `actorName` came back undefined — a literal name and a
64
+ * binding name are both real names, and a pattern must never displace one.
65
+ */
66
+ export declare function actorNamePattern(call: ts.CallExpression): NamePattern | undefined;
67
+ /** world-read label: the op name, plus a string-literal first argument when present. */
68
+ export declare function worldReadLabel(op: WorldReadOp, arg: ts.Expression | undefined): string;
69
+ export declare function eachCandidate(call: ts.CallExpression, semantics: CallbackSemantics, order: number, loc: ScriptLoc): IterationCandidate | undefined;
70
+ export declare function forOfCandidate(statement: ts.ForOfStatement, order: number, loc: ScriptLoc): IterationCandidate;
71
+ //# sourceMappingURL=sites-labels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sites-labels.d.ts","sourceRoot":"","sources":["../../src/analysis/sites-labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAOrD,mFAAmF;AACnF,wBAAgB,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,MAAM,GAAG,SAAS,CAM3F;AAED,6EAA6E;AAC7E,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,GAAG,SAAS,GAAG,OAAO,CAMvE;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAE/E;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,YAAY;IAIrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,2BAA2B;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM;IAL1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;gBAGjC,MAAM,SAAK;IAC5B,2BAA2B;IAClB,MAAM,CAAC,EAAE,MAAM,YAAA;IAG1B,iCAAiC;IACjC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAM1B,uDAAuD;IACvD,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;CAGpC;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC,WAAW,GAAG,MAAM,CAOjF;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,EAAE,CAAC,UAAU,EACvB,OAAO,EAAE,EAAE,CAAC,WAAW,GACtB,WAAW,GAAG,SAAS,CAGzB;AAQD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,GAAG,MAAM,GAAG,SAAS,CAYrE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,GAAG,WAAW,GAAG,SAAS,CAEjF;AAkCD,wFAAwF;AACxF,wBAAgB,cAAc,CAAC,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,CAAC,UAAU,GAAG,SAAS,GAAG,MAAM,CAGtF;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,EAAE,CAAC,cAAc,EACvB,SAAS,EAAE,iBAAiB,EAC5B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,SAAS,GACb,kBAAkB,GAAG,SAAS,CAkBhC;AAED,wBAAgB,cAAc,CAC5B,SAAS,EAAE,EAAE,CAAC,cAAc,EAC5B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,SAAS,GACb,kBAAkB,CAapB"}
@@ -0,0 +1,189 @@
1
+ import ts from "typescript";
2
+ import { FACADE_FILE_NAME } from "../facade/dts.js";
3
+ // sites.ts 顶到 oxlint max-lines 上限(400 行),把名字 / 标签辅助(ask 标签与模板
4
+ // 形状、actor 名与模板形状、world-read 标签、字面量文本、迭代候选的构造、计数器)与它们依赖的
5
+ // 符号解析(resolveSymbol / isFacadeDeclared)拆到本文件;公开面仍从 sites.ts 导出(后两者
6
+ // 在那里原样再导出,其余本就不公开)。站点类型留在 sites.ts,这里只按类型导入。
7
+ /** Resolve a node's symbol, following one alias hop (imports never occur here). */
8
+ export function resolveSymbol(node, checker) {
9
+ const symbol = checker.getSymbolAtLocation(node);
10
+ if (symbol !== undefined && (symbol.flags & ts.SymbolFlags.Alias) !== 0) {
11
+ return checker.getAliasedSymbol(symbol);
12
+ }
13
+ return symbol;
14
+ }
15
+ /** True iff any of the symbol's declarations lives in the facade `.d.ts`. */
16
+ export function isFacadeDeclared(symbol) {
17
+ return (symbol?.declarations?.some((declaration) => declaration.getSourceFile().fileName === FACADE_FILE_NAME) ?? false);
18
+ }
19
+ /**
20
+ * 一个实参**无洞字符串字面量**的文本,其余(标识符、带洞模板、任意表达式)一律 undefined。
21
+ *
22
+ * 三处共用一条判定:phase 的名字、产物的 id、report 的标签。三者的规矩完全相同——只有编译期
23
+ * 就闭合的字面量才算数,看不穿的一律留给各自的诊断趟按原表达式定位,**绝不在这里猜一个值
24
+ * 出来**(猜出来的名字会让一条本该被教改写的调用静默通过)。`ts.isStringLiteralLike` 覆盖
25
+ * 无插值的反引号串。
26
+ */
27
+ export function literalText(expr) {
28
+ return expr !== undefined && ts.isStringLiteralLike(expr) ? expr.text : undefined;
29
+ }
30
+ /**
31
+ * 一套 per-kind 站点计数器(`ask#N` / `actor#N` / …),外加 id 前缀。
32
+ *
33
+ * 前缀是留白的事(docs/analysis.md「Sites」的 Hole sites 段):走查进入一个留白的函数体时
34
+ * **开一套全新的计数器**,体内铸出的每个 id 都带 `<holeId>/`(`hole#a91f3c07/ask#1`),外层
35
+ * 计数器从不看见体内的站点。于是补全一个留白(在脚本中间插入代码)不改动任何已有的 `ask#N` /
36
+ * `actor#N` / …——这是站点 id 稳定性规则从「加标记」到「加函数体」的延伸;活 run 的 journal
37
+ * 键、ask spec、站点阶段表都靠它在补全后幸存。前缀只有**一层**:留白自己的 id 是名字键
38
+ * (hole-id.ts),不带外层前缀,体内再留的留白因此不会让 id 随深度增长;`holeId` 记着
39
+ * 这套计数器属于哪个留白,让体内的留白站点把包着它的留白写进 `fill`。
40
+ * 全局 `order` 不在这里:它是文本输出的归并键,穿过函数体连续计数。
41
+ */
42
+ export class SiteCounters {
43
+ prefix;
44
+ holeId;
45
+ counts = new Map();
46
+ constructor(prefix = "",
47
+ /** 这套计数器所在的留白函数体(顶层没有)。 */
48
+ holeId) {
49
+ this.prefix = prefix;
50
+ this.holeId = holeId;
51
+ }
52
+ /** 铸下一个 `<prefix><kind>#<n>`。 */
53
+ next(kind) {
54
+ const n = (this.counts.get(kind) ?? 0) + 1;
55
+ this.counts.set(kind, n);
56
+ return `${this.prefix}${kind}#${n}`;
57
+ }
58
+ /** 进入留白 `holeId` 的函数体:全新一套计数器,前缀就是这个留白的 id(不叠加外层的)。 */
59
+ child(holeId) {
60
+ return new SiteCounters(`${holeId}/`, holeId);
61
+ }
62
+ }
63
+ /**
64
+ * ask label: an inline `agent("name", …)` receiver contributes its literal name;
65
+ * a plain identifier receiver contributes its text; otherwise `"ask"`.
66
+ */
67
+ export function askLabel(receiver, checker) {
68
+ if (ts.isCallExpression(receiver) && isActorCall(receiver, checker)) {
69
+ const first = receiver.arguments[0];
70
+ if (first !== undefined && ts.isStringLiteralLike(first))
71
+ return first.text;
72
+ }
73
+ if (ts.isIdentifier(receiver))
74
+ return receiver.text;
75
+ return "ask";
76
+ }
77
+ /**
78
+ * ask label pattern: only for an inline `` agent(`研究员${i}`) `` receiver — the one shape
79
+ * `askLabel` answers `"ask"` for despite the script having said something. A named or
80
+ * identifier receiver already produced a real label, so there is nothing to reconstruct.
81
+ */
82
+ export function askLabelPattern(receiver, checker) {
83
+ if (!ts.isCallExpression(receiver) || !isActorCall(receiver, checker))
84
+ return undefined;
85
+ return templateAffixes(receiver.arguments[0]);
86
+ }
87
+ function isActorCall(call, checker) {
88
+ if (ts.isPropertyAccessExpression(call.expression))
89
+ return false;
90
+ const symbol = resolveSymbol(call.expression, checker);
91
+ return isFacadeDeclared(symbol) && symbol?.name === "agent";
92
+ }
93
+ /**
94
+ * actor name: a string-literal first argument, else the binding name when the call
95
+ * directly initializes a variable declaration, else undefined.
96
+ */
97
+ export function actorName(call) {
98
+ const first = call.arguments[0];
99
+ if (first !== undefined && ts.isStringLiteralLike(first))
100
+ return first.text;
101
+ const parent = call.parent;
102
+ if (ts.isVariableDeclaration(parent) &&
103
+ parent.initializer === call &&
104
+ ts.isIdentifier(parent.name)) {
105
+ return parent.name.text;
106
+ }
107
+ return undefined;
108
+ }
109
+ /**
110
+ * actor name pattern: the static shape of a first argument that is a template literal
111
+ * with holes. Only consulted when `actorName` came back undefined — a literal name and a
112
+ * binding name are both real names, and a pattern must never displace one.
113
+ */
114
+ export function actorNamePattern(call) {
115
+ return templateAffixes(call.arguments[0]);
116
+ }
117
+ /**
118
+ * 模板字符串两端的字面量:第一个洞之前(`head`)与最后一个洞之后(`tail`)。
119
+ *
120
+ * `ts.isStringLiteralLike` 已经覆盖了无插值的反引号串(那是字面量,走 `name` 那条路),
121
+ * 所以这里只处理真正带洞的 `ts.TemplateExpression`。
122
+ *
123
+ * **中间的字面量刻意丢弃**:`` `a${x}b${y}c` `` 给出 `a` 与 `c`,不是 `a…b…c`。名字是一行
124
+ * 上的标签,不是产生它的那个表达式的渲染。
125
+ */
126
+ function templateAffixes(arg) {
127
+ if (arg === undefined || !ts.isTemplateExpression(arg))
128
+ return undefined;
129
+ const head = meaningfulAffix(arg.head.text);
130
+ const tail = meaningfulAffix(arg.templateSpans.at(-1)?.literal.text);
131
+ if (head === undefined && tail === undefined)
132
+ return undefined;
133
+ return {
134
+ ...(head === undefined ? {} : { head }),
135
+ ...(tail === undefined ? {} : { tail }),
136
+ };
137
+ }
138
+ /**
139
+ * 一个 affix 值不值得显示:trim 后必须至少含一个字母或数字。
140
+ *
141
+ * 为什么要这道门:`` agent(`${x}-`) `` 的 tail 是 `-`,渲染出来是 `…-`——那比「未命名智能体」
142
+ * 更差,读者既得不到名字,还多了一串标点。`\p{L}` 覆盖 CJK,所以「研究员」照常通过。
143
+ */
144
+ function meaningfulAffix(text) {
145
+ const trimmed = text?.trim();
146
+ if (trimmed === undefined || trimmed === "")
147
+ return undefined;
148
+ return /[\p{L}\p{N}]/u.test(trimmed) ? trimmed : undefined;
149
+ }
150
+ /** world-read label: the op name, plus a string-literal first argument when present. */
151
+ export function worldReadLabel(op, arg) {
152
+ if (arg !== undefined && ts.isStringLiteralLike(arg))
153
+ return `${op} ${arg.text}`;
154
+ return op;
155
+ }
156
+ export function eachCandidate(call, semantics, order, loc) {
157
+ const index = semantics.callbacks[0];
158
+ const argument = index === undefined ? undefined : call.arguments[index];
159
+ const iterated = semantics.iterated;
160
+ if (argument === undefined || iterated === undefined)
161
+ return undefined;
162
+ const literal = ts.isArrowFunction(argument) || ts.isFunctionExpression(argument);
163
+ return {
164
+ body: literal ? argument.body : argument,
165
+ ...(literal ? { callback: argument } : { callbackExpr: argument }),
166
+ call,
167
+ element: literal ? argument.parameters[semantics.elementParams?.[0] ?? 0]?.name : undefined,
168
+ form: "array-method",
169
+ iterated,
170
+ loc,
171
+ method: semantics.label,
172
+ order,
173
+ semantics,
174
+ };
175
+ }
176
+ export function forOfCandidate(statement, order, loc) {
177
+ let element;
178
+ if (ts.isVariableDeclarationList(statement.initializer)) {
179
+ element = statement.initializer.declarations[0]?.name;
180
+ }
181
+ return {
182
+ body: statement.statement,
183
+ element,
184
+ form: "for-of",
185
+ iterated: statement.expression,
186
+ loc,
187
+ order,
188
+ };
189
+ }
@@ -0,0 +1,267 @@
1
+ import ts from "typescript";
2
+ import { type ArtifactOp, type WorldReadOp } from "../facade/registry.js";
3
+ import { type ScriptLoc, type WorkflowProgram } from "../compiler/compile.js";
4
+ import type { NamePattern } from "./types.js";
5
+ import { type CallbackSemantics } from "./callbacks.js";
6
+ export { isFacadeDeclared, resolveSymbol } from "./sites-labels.js";
7
+ /**
8
+ * The site table: the raw substrate the taint pass builds on. One walk over the
9
+ * wrapped script body collects every facade call site (resolved via the checker,
10
+ * never by name), keeps their `ts.Node` references, and records iteration
11
+ * candidates and top-level returns. This module owns the table type; it is
12
+ * deliberately NOT re-exported from the package index — only `analyzeWorkflowScript`
13
+ * and the graph types are public.
14
+ *
15
+ * Ordinal ids are per-kind source-order counters (`ask#1`, `join#2`, …); `order`
16
+ * is a single global discovery sequence used to merge the per-kind lists back into
17
+ * source order for serialization. Source order = pre-order AST traversal, which is
18
+ * `ts.forEachChild` order.
19
+ */
20
+ export interface AskSite {
21
+ id: string;
22
+ order: number;
23
+ label: string;
24
+ /** `label` 落到兜底串时,内联 `agent()` receiver 的模板形状;见 `askLabelPattern`。 */
25
+ labelPattern?: NamePattern;
26
+ loc: ScriptLoc;
27
+ /** The `x.ask(...)` call. */
28
+ call: ts.CallExpression;
29
+ /** The receiver of `.ask` (the actor expression). Read for actor/context labels. */
30
+ receiver: ts.Expression;
31
+ /** The instruction argument, if present. The taint pass reads it as a sink. */
32
+ instructions: ts.Expression | undefined;
33
+ }
34
+ export interface ActorSite {
35
+ id: string;
36
+ order: number;
37
+ name: string | undefined;
38
+ /** `name` 缺席而首参是模板字符串时的静态形状;见 `actorNamePattern`。 */
39
+ namePattern?: NamePattern;
40
+ loc: ScriptLoc;
41
+ /** The `agent(...)` call. */
42
+ call: ts.CallExpression;
43
+ }
44
+ /**
45
+ * A `report(...)` call site. A site that becomes **no node in either graph**: lowering
46
+ * needs an id, the journal keys report nodes by site × ordinal for replay dedupe, and
47
+ * the facade-siting rule needs something to point at — but a report emits progress, not
48
+ * order, and nothing can wait for it, so there is nothing for an edge to mean. Its
49
+ * argument is likewise **not a taint sink**.
50
+ *
51
+ * `report#N` is its own per-kind counter, so every existing `ask#N` / `actor#N` /
52
+ * `world-read#N` id stays bit-for-bit unchanged — the invariant the site-id stability
53
+ * rule actually protects. Report sites DO consume the global `order` discovery sequence,
54
+ * which shifts serialization interleaving in text snapshots and nothing else: `order` is
55
+ * a merge key for output, per-kind counters are journal keys.
56
+ */
57
+ export interface ReportSite {
58
+ id: string;
59
+ order: number;
60
+ loc: ScriptLoc;
61
+ /** The `report(...)` call. */
62
+ call: ts.CallExpression;
63
+ /**
64
+ * The reported item expression, if present. Read by the compile-side serializability
65
+ * check (schema/synthesize.ts) — NOT by the taint pass.
66
+ */
67
+ item: ts.Expression | undefined;
68
+ /**
69
+ * The artifact tag (`report(item, "perf")`), set only when the second argument is a
70
+ * string literal without holes. It routes the item to a preset artifact. Absent means
71
+ * either "no tag" or "a tag the compiler could not read"; {@link artifactIdExpr} tells
72
+ * those apart, and the artifacts pass rejects the second case.
73
+ */
74
+ artifactId?: string;
75
+ /**
76
+ * The tag argument, if present. Kept raw so the diagnostics pass can position a
77
+ * rejection on the offending expression rather than on the call (same reason
78
+ * {@link PhaseMarkerSite.nameExpr} is kept).
79
+ */
80
+ artifactIdExpr: ts.Expression | undefined;
81
+ }
82
+ /**
83
+ * An `artifact.*(...)` call site: one publish (`file` / `markdown`) or one preset
84
+ * declaration (`chart` / `table` / `metrics` / `board`).
85
+ *
86
+ * ⚠ 术语:这里的 artifact 是**用户面产物**(脚本发布给用户看的产出),不是同名的引擎内部
87
+ * 概念(顶层返回值 / 站点的类型化输出值,见 `analysis/artifact-types.ts`)。
88
+ *
89
+ * Like {@link ReportSite} it is **sited but drawn in neither graph**: a publish is a
90
+ * deliverable, not a step other steps can wait for, so there is nothing an edge could
91
+ * mean; and its arguments are **not taint sinks** for the same reason `report`'s are not.
92
+ * What it does need an id for is the journal (`artifact#N` × ordinal keys the replay
93
+ * dedupe) and the facade-siting rule.
94
+ *
95
+ * `artifact#N` is its own per-kind counter, so every existing `ask#N` / `actor#N` /
96
+ * `report#N` / `world-read#N` id stays bit-for-bit unchanged. It DOES consume the global
97
+ * `order` discovery sequence, exactly as report sites do.
98
+ */
99
+ export interface ArtifactSite {
100
+ id: string;
101
+ order: number;
102
+ /** The registry op (`file`, `chart`, …), resolved by DECLARING CONTAINER, never by name. */
103
+ op: ArtifactOp;
104
+ loc: ScriptLoc;
105
+ /** The `artifact.file(...)` / `artifact.chart(...)` call. */
106
+ call: ts.CallExpression;
107
+ /** The artifact id — set only when the first argument is a string literal without holes. */
108
+ artifactId?: string;
109
+ /**
110
+ * The id argument, if present. Kept raw so the diagnostics pass can position a rejection
111
+ * on the offending expression.
112
+ */
113
+ artifactIdExpr: ts.Expression | undefined;
114
+ }
115
+ /**
116
+ * A `phase("…")` marker call. The one collected facade call that is **not a site**: no id,
117
+ * no journal row — lowering rewrites it to `__host.enterPhase(name)`, which only makes the
118
+ * engine emit a `phase-entered` event.
119
+ * It is collected so the ordering walk can read the author's grouping, the diagnostics pass
120
+ * can point at a malformed marker, and lowering can find the call by node identity.
121
+ *
122
+ * It therefore consumes **neither the global `order` sequence nor any per-kind counter**:
123
+ * adding markers to a script must not move a single `ask#N` / `report#N` id, nor the
124
+ * serialization interleaving. That is stronger than what `report` needed (which shifts
125
+ * `order` only) and it costs nothing here, because a marker has no id to order.
126
+ */
127
+ export interface PhaseMarkerSite {
128
+ /** The phase name — set only when the argument is a string literal without holes. */
129
+ name?: string;
130
+ loc: ScriptLoc;
131
+ /** The `phase(...)` call. */
132
+ call: ts.CallExpression;
133
+ /**
134
+ * The name argument, if present. Kept raw so the diagnostics pass can position a
135
+ * rejection on the offending expression rather than on the call.
136
+ */
137
+ nameExpr: ts.Expression | undefined;
138
+ }
139
+ export interface WorldReadSite {
140
+ id: string;
141
+ order: number;
142
+ /**
143
+ * Boundary A's op, resolved from the world-read registry by the DECLARING CONTAINER
144
+ * (`files`×`glob` → `"glob"`), never from the bare member name. Not the member name:
145
+ * `git.log` maps to `"git-log"`.
146
+ */
147
+ op: WorldReadOp;
148
+ label: string;
149
+ loc: ScriptLoc;
150
+ /** The `files.glob(...)` / `files.read(...)` call. */
151
+ call: ts.CallExpression;
152
+ /**
153
+ * The call's arguments in source order (`files.glob(p)` → `[p]`). Positional, and
154
+ * plural because ops differ in arity (`files.grep(pattern, glob?)`, `git.status()`);
155
+ * the taint pass treats every one as a sink.
156
+ */
157
+ args: readonly ts.Expression[];
158
+ }
159
+ export interface JoinSite {
160
+ id: string;
161
+ order: number;
162
+ method: "all" | "allSettled";
163
+ label: string;
164
+ loc: ScriptLoc;
165
+ /** The `Promise.all(...)` / `Promise.allSettled(...)` call. */
166
+ call: ts.CallExpression;
167
+ /** The single argument expression (the iterable); ports come from array literals. */
168
+ arg: ts.Expression | undefined;
169
+ }
170
+ /**
171
+ * A fan-out candidate — NOT a graph node yet. The taint pass promotes one to a
172
+ * `fan-out` node iff its body reaches a facade site. Two shapes: a per-element callback
173
+ * call per the callback registry (`xs.map(fn)`, `Array.from(xs, fn)`, … — the callback may
174
+ * be an inline literal OR any expression holding a script function), or a `for...of`.
175
+ */
176
+ export interface IterationCandidate {
177
+ order: number;
178
+ form: "array-method" | "for-of";
179
+ loc: ScriptLoc;
180
+ /** Registry label (`map`, `reduce`, `from`, …); undefined for `for...of`. */
181
+ method?: string;
182
+ /** The call (array-method form only) — the key both listeners look the candidate up by. */
183
+ call?: ts.CallExpression;
184
+ /** The registry entry that made this call a candidate (array-method form only). */
185
+ semantics?: CallbackSemantics;
186
+ /** The inline callback literal (array-method form, when the argument is one). */
187
+ callback?: ts.FunctionExpression | ts.ArrowFunction;
188
+ /**
189
+ * The callback argument when it is NOT a literal (`xs.map(review)`, `xs.map(this.f)`):
190
+ * the taint pass applies whatever script functions its value holds, per element.
191
+ */
192
+ callbackExpr?: ts.Expression;
193
+ /** The body values flow through: the callback body or the `for...of` statement body.
194
+ * For a non-literal callback this is the argument expression itself (no lexical body). */
195
+ body: ts.Node;
196
+ /** The element binding (array method: first callback parameter; `for...of`: the loop variable). */
197
+ element: ts.BindingName | undefined;
198
+ /** The iterated expression: the array-method receiver, or the `for...of` right-hand side. */
199
+ iterated: ts.Expression;
200
+ }
201
+ /**
202
+ * A `hole<T>(name, prompt?, body?)` call site: a typed gap the main agent fills with code
203
+ * while the run waits at it (docs/dynamic-workflow/authoring.md「Holes」, docs/analysis.md
204
+ * 「Sites」). Its id is the key of its NAME (`hole#<hash>`, hole-id.ts), the same at any
205
+ * nesting depth, so every existing id stays unchanged when a fill inserts code; it consumes
206
+ * the global `order` like every other site. A hole whose name is not a literal (9012) falls
207
+ * back to a positional `hole#N`, which never reaches a run.
208
+ *
209
+ * 留白的函数体(`body`)在收集时以**全新的一套 per-kind 计数器**走查,体内铸出的 id 一律带
210
+ * `<holeId>/` 前缀(见 {@link SiteCounters});体内的 `return` 不是顶层 return——它从留白
211
+ * 返回。补全前后,体外的每个 id 逐字不变,这是活 run 能被补全的全部理由。
212
+ */
213
+ export interface HoleSite {
214
+ id: string;
215
+ /** 包着这个留白的那个(已补全的)留白的 id;顶层留白没有。嵌套关系只记在这里,不在 id 里。 */
216
+ fill?: string;
217
+ order: number;
218
+ /** 留白名(也是它的阶段名)——只在首参是无洞字面量时设置。 */
219
+ name?: string;
220
+ /** 名字实参原样保留:9012 的诊断按它定位。 */
221
+ nameExpr: ts.Expression | undefined;
222
+ /** 显式类型实参的源码文本(`hole<Plan>` 的 `Plan`);缺席即 9012。 */
223
+ typeText?: string;
224
+ typeArg?: ts.TypeNode;
225
+ /** 给主代理的提示(第二实参,非函数体时);taint 趟把它当 sink。 */
226
+ prompt?: ts.Expression;
227
+ /** 已补全的留白的函数体(最后一个实参的内联函数字面量);开放的留白没有。 */
228
+ body?: ts.ArrowFunction | ts.FunctionExpression;
229
+ loc: ScriptLoc;
230
+ /** The `hole(...)` call. */
231
+ call: ts.CallExpression;
232
+ /** 调用是顶层 `return` 的(await 过的)操作数:脚本的结尾开着,run 的结果就是补全的返回值。 */
233
+ tail: boolean;
234
+ }
235
+ /** A `return` in the top-level script body (not inside a nested function). */
236
+ export interface TopLevelReturn {
237
+ loc: ScriptLoc;
238
+ /** The returned expression, if any (`return;` has none). Read as the sink. */
239
+ expression: ts.Expression | undefined;
240
+ }
241
+ export interface SiteTable {
242
+ asks: AskSite[];
243
+ actors: ActorSite[];
244
+ worldReads: WorldReadSite[];
245
+ /** `report(...)` sites — sited but drawn in neither graph (see {@link ReportSite}). */
246
+ reports: ReportSite[];
247
+ /** `artifact.*(...)` sites — sited but drawn in neither graph (see {@link ArtifactSite}). */
248
+ artifacts: ArtifactSite[];
249
+ /** `phase("…")` markers — collected but NOT sited (see {@link PhaseMarkerSite}). */
250
+ phases: PhaseMarkerSite[];
251
+ joins: JoinSite[];
252
+ /** `hole<T>(...)` sites — open and filled, body sites included with prefixed ids (see {@link HoleSite}). */
253
+ holes: HoleSite[];
254
+ iterations: IterationCandidate[];
255
+ topLevelReturns: TopLevelReturn[];
256
+ }
257
+ /** Collect the site table by walking the wrapped script's `__workflowScript__` body. */
258
+ export declare function collectSites(workflow: WorkflowProgram): SiteTable;
259
+ /**
260
+ * The authored script body: the wrapper function's block. Exported for the causality
261
+ * pass, which walks the same body in evaluation order. Read-only — it collects nothing
262
+ * into the site table, so site ids stay bit-for-bit identical.
263
+ */
264
+ export declare function findWorkflowBody(scriptFile: ts.SourceFile): ts.Block;
265
+ /** True iff the node introduces its own function scope (a body that runs only when called). */
266
+ export declare function isFunctionLike(node: ts.Node): boolean;
267
+ //# sourceMappingURL=sites.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sites.d.ts","sourceRoot":"","sources":["../../src/analysis/sites.ts"],"names":[],"mappings":"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"}