@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.
- package/README.md +43 -2
- package/cordis.patch.yml +17 -0
- package/lib/client.js +14708 -0
- package/lib/core.js +137 -0
- package/lib/engine-adapter.js +1387 -0
- package/lib/host-driver.js +298 -0
- package/lib/index.js +536 -0
- package/lib/projection.js +159 -0
- package/lib/registry.js +218 -0
- package/lib/session-records.js +54 -0
- package/lib/submission-commit.js +34 -0
- package/lib/world-driver.js +275 -0
- package/package.json +64 -4
- package/vendor/PROVENANCE.md +9 -0
- package/vendor/dynamic-workflow/analysis/actor-graph.d.ts +47 -0
- package/vendor/dynamic-workflow/analysis/actor-graph.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/actor-graph.js +95 -0
- package/vendor/dynamic-workflow/analysis/actor-models.d.ts +60 -0
- package/vendor/dynamic-workflow/analysis/actor-models.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/actor-models.js +208 -0
- package/vendor/dynamic-workflow/analysis/actor-names.d.ts +56 -0
- package/vendor/dynamic-workflow/analysis/actor-names.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/actor-names.js +155 -0
- package/vendor/dynamic-workflow/analysis/analyze.d.ts +63 -0
- package/vendor/dynamic-workflow/analysis/analyze.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/analyze.js +92 -0
- package/vendor/dynamic-workflow/analysis/array-methods.d.ts +21 -0
- package/vendor/dynamic-workflow/analysis/array-methods.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/array-methods.js +132 -0
- package/vendor/dynamic-workflow/analysis/artifact-types.d.ts +39 -0
- package/vendor/dynamic-workflow/analysis/artifact-types.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/artifact-types.js +114 -0
- package/vendor/dynamic-workflow/analysis/artifacts.d.ts +67 -0
- package/vendor/dynamic-workflow/analysis/artifacts.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/artifacts.js +263 -0
- package/vendor/dynamic-workflow/analysis/assign.d.ts +42 -0
- package/vendor/dynamic-workflow/analysis/assign.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/assign.js +287 -0
- package/vendor/dynamic-workflow/analysis/callbacks.d.ts +71 -0
- package/vendor/dynamic-workflow/analysis/callbacks.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/callbacks.js +133 -0
- package/vendor/dynamic-workflow/analysis/calls.d.ts +40 -0
- package/vendor/dynamic-workflow/analysis/calls.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/calls.js +495 -0
- package/vendor/dynamic-workflow/analysis/causality-graph-lanes.d.ts +25 -0
- package/vendor/dynamic-workflow/analysis/causality-graph-lanes.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/causality-graph-lanes.js +161 -0
- package/vendor/dynamic-workflow/analysis/causality-graph-types.d.ts +163 -0
- package/vendor/dynamic-workflow/analysis/causality-graph-types.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/causality-graph-types.js +8 -0
- package/vendor/dynamic-workflow/analysis/causality-graph.d.ts +39 -0
- package/vendor/dynamic-workflow/analysis/causality-graph.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/causality-graph.js +530 -0
- package/vendor/dynamic-workflow/analysis/causality-order-calls.d.ts +29 -0
- package/vendor/dynamic-workflow/analysis/causality-order-calls.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/causality-order-calls.js +266 -0
- package/vendor/dynamic-workflow/analysis/causality-order-functions.d.ts +26 -0
- package/vendor/dynamic-workflow/analysis/causality-order-functions.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/causality-order-functions.js +116 -0
- package/vendor/dynamic-workflow/analysis/causality-order-loops.d.ts +5 -0
- package/vendor/dynamic-workflow/analysis/causality-order-loops.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/causality-order-loops.js +148 -0
- package/vendor/dynamic-workflow/analysis/causality-order-settle.d.ts +39 -0
- package/vendor/dynamic-workflow/analysis/causality-order-settle.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/causality-order-settle.js +263 -0
- package/vendor/dynamic-workflow/analysis/causality-order-state.d.ts +110 -0
- package/vendor/dynamic-workflow/analysis/causality-order-state.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/causality-order-state.js +162 -0
- package/vendor/dynamic-workflow/analysis/causality-order-strands.d.ts +79 -0
- package/vendor/dynamic-workflow/analysis/causality-order-strands.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/causality-order-strands.js +154 -0
- package/vendor/dynamic-workflow/analysis/causality-order-types.d.ts +174 -0
- package/vendor/dynamic-workflow/analysis/causality-order-types.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/causality-order-types.js +1 -0
- package/vendor/dynamic-workflow/analysis/causality-order-walk.d.ts +17 -0
- package/vendor/dynamic-workflow/analysis/causality-order-walk.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/causality-order-walk.js +282 -0
- package/vendor/dynamic-workflow/analysis/causality-order.d.ts +60 -0
- package/vendor/dynamic-workflow/analysis/causality-order.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/causality-order.js +110 -0
- package/vendor/dynamic-workflow/analysis/causality-reduce.d.ts +60 -0
- package/vendor/dynamic-workflow/analysis/causality-reduce.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/causality-reduce.js +198 -0
- package/vendor/dynamic-workflow/analysis/classes.d.ts +47 -0
- package/vendor/dynamic-workflow/analysis/classes.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/classes.js +264 -0
- package/vendor/dynamic-workflow/analysis/constants.d.ts +35 -0
- package/vendor/dynamic-workflow/analysis/constants.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/constants.js +23 -0
- package/vendor/dynamic-workflow/analysis/control-flow.d.ts +26 -0
- package/vendor/dynamic-workflow/analysis/control-flow.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/control-flow.js +132 -0
- package/vendor/dynamic-workflow/analysis/core-json.d.ts +45 -0
- package/vendor/dynamic-workflow/analysis/core-json.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/core-json.js +49 -0
- package/vendor/dynamic-workflow/analysis/core.d.ts +194 -0
- package/vendor/dynamic-workflow/analysis/core.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/core.js +204 -0
- package/vendor/dynamic-workflow/analysis/domain.d.ts +269 -0
- package/vendor/dynamic-workflow/analysis/domain.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/domain.js +523 -0
- package/vendor/dynamic-workflow/analysis/facade-misuse.d.ts +56 -0
- package/vendor/dynamic-workflow/analysis/facade-misuse.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/facade-misuse.js +350 -0
- package/vendor/dynamic-workflow/analysis/fanout-cardinality.d.ts +11 -0
- package/vendor/dynamic-workflow/analysis/fanout-cardinality.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/fanout-cardinality.js +121 -0
- package/vendor/dynamic-workflow/analysis/flow-graph.d.ts +113 -0
- package/vendor/dynamic-workflow/analysis/flow-graph.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/flow-graph.js +411 -0
- package/vendor/dynamic-workflow/analysis/flow-phase.d.ts +28 -0
- package/vendor/dynamic-workflow/analysis/flow-phase.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/flow-phase.js +104 -0
- package/vendor/dynamic-workflow/analysis/flow-strands.d.ts +39 -0
- package/vendor/dynamic-workflow/analysis/flow-strands.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/flow-strands.js +47 -0
- package/vendor/dynamic-workflow/analysis/flow-tree.d.ts +35 -0
- package/vendor/dynamic-workflow/analysis/flow-tree.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/flow-tree.js +33 -0
- package/vendor/dynamic-workflow/analysis/graph.d.ts +5 -0
- package/vendor/dynamic-workflow/analysis/graph.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/graph.js +199 -0
- package/vendor/dynamic-workflow/analysis/handoff-graph.d.ts +48 -0
- package/vendor/dynamic-workflow/analysis/handoff-graph.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/handoff-graph.js +0 -0
- package/vendor/dynamic-workflow/analysis/heap-ops.d.ts +14 -0
- package/vendor/dynamic-workflow/analysis/heap-ops.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/heap-ops.js +70 -0
- package/vendor/dynamic-workflow/analysis/hole-id.d.ts +28 -0
- package/vendor/dynamic-workflow/analysis/hole-id.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/hole-id.js +41 -0
- package/vendor/dynamic-workflow/analysis/hole-sites.d.ts +32 -0
- package/vendor/dynamic-workflow/analysis/hole-sites.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/hole-sites.js +215 -0
- package/vendor/dynamic-workflow/analysis/hole-splice.d.ts +45 -0
- package/vendor/dynamic-workflow/analysis/hole-splice.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/hole-splice.js +100 -0
- package/vendor/dynamic-workflow/analysis/interpret.d.ts +26 -0
- package/vendor/dynamic-workflow/analysis/interpret.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/interpret.js +200 -0
- package/vendor/dynamic-workflow/analysis/literals.d.ts +18 -0
- package/vendor/dynamic-workflow/analysis/literals.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/literals.js +125 -0
- package/vendor/dynamic-workflow/analysis/mermaid.d.ts +60 -0
- package/vendor/dynamic-workflow/analysis/mermaid.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/mermaid.js +477 -0
- package/vendor/dynamic-workflow/analysis/patterns.d.ts +31 -0
- package/vendor/dynamic-workflow/analysis/patterns.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/patterns.js +94 -0
- package/vendor/dynamic-workflow/analysis/phase-graph.d.ts +47 -0
- package/vendor/dynamic-workflow/analysis/phase-graph.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/phase-graph.js +334 -0
- package/vendor/dynamic-workflow/analysis/phases.d.ts +24 -0
- package/vendor/dynamic-workflow/analysis/phases.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/phases.js +54 -0
- package/vendor/dynamic-workflow/analysis/promise-ops.d.ts +52 -0
- package/vendor/dynamic-workflow/analysis/promise-ops.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/promise-ops.js +123 -0
- package/vendor/dynamic-workflow/analysis/relays.d.ts +12 -0
- package/vendor/dynamic-workflow/analysis/relays.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/relays.js +78 -0
- package/vendor/dynamic-workflow/analysis/serialize.d.ts +125 -0
- package/vendor/dynamic-workflow/analysis/serialize.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/serialize.js +321 -0
- package/vendor/dynamic-workflow/analysis/site-phases.d.ts +32 -0
- package/vendor/dynamic-workflow/analysis/site-phases.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/site-phases.js +69 -0
- package/vendor/dynamic-workflow/analysis/sites-labels.d.ts +71 -0
- package/vendor/dynamic-workflow/analysis/sites-labels.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/sites-labels.js +189 -0
- package/vendor/dynamic-workflow/analysis/sites.d.ts +267 -0
- package/vendor/dynamic-workflow/analysis/sites.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/sites.js +225 -0
- package/vendor/dynamic-workflow/analysis/state.d.ts +254 -0
- package/vendor/dynamic-workflow/analysis/state.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/state.js +569 -0
- package/vendor/dynamic-workflow/analysis/taint.d.ts +97 -0
- package/vendor/dynamic-workflow/analysis/taint.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/taint.js +649 -0
- package/vendor/dynamic-workflow/analysis/types.d.ts +100 -0
- package/vendor/dynamic-workflow/analysis/types.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/types.js +1 -0
- package/vendor/dynamic-workflow/analysis/world-run.d.ts +27 -0
- package/vendor/dynamic-workflow/analysis/world-run.d.ts.map +1 -0
- package/vendor/dynamic-workflow/analysis/world-run.js +44 -0
- package/vendor/dynamic-workflow/compiler/compile.d.ts +59 -0
- package/vendor/dynamic-workflow/compiler/compile.d.ts.map +1 -0
- package/vendor/dynamic-workflow/compiler/compile.js +159 -0
- package/vendor/dynamic-workflow/compiler/libs.generated.d.ts +3 -0
- package/vendor/dynamic-workflow/compiler/libs.generated.d.ts.map +1 -0
- package/vendor/dynamic-workflow/compiler/libs.generated.js +64 -0
- package/vendor/dynamic-workflow/engine/artifact-spec.d.ts +26 -0
- package/vendor/dynamic-workflow/engine/artifact-spec.d.ts.map +1 -0
- package/vendor/dynamic-workflow/engine/artifact-spec.js +173 -0
- package/vendor/dynamic-workflow/engine/ask-observation-types.d.ts +54 -0
- package/vendor/dynamic-workflow/engine/ask-observation-types.d.ts.map +1 -0
- package/vendor/dynamic-workflow/engine/ask-observation-types.js +19 -0
- package/vendor/dynamic-workflow/engine/cached-ask-facts.d.ts +28 -0
- package/vendor/dynamic-workflow/engine/cached-ask-facts.d.ts.map +1 -0
- package/vendor/dynamic-workflow/engine/cached-ask-facts.js +35 -0
- package/vendor/dynamic-workflow/engine/concurrency.d.ts +151 -0
- package/vendor/dynamic-workflow/engine/concurrency.d.ts.map +1 -0
- package/vendor/dynamic-workflow/engine/concurrency.js +282 -0
- package/vendor/dynamic-workflow/engine/engine-artifacts-primary.d.ts +17 -0
- package/vendor/dynamic-workflow/engine/engine-artifacts-primary.d.ts.map +1 -0
- package/vendor/dynamic-workflow/engine/engine-artifacts-primary.js +29 -0
- package/vendor/dynamic-workflow/engine/engine-artifacts.d.ts +55 -0
- package/vendor/dynamic-workflow/engine/engine-artifacts.d.ts.map +1 -0
- package/vendor/dynamic-workflow/engine/engine-artifacts.js +367 -0
- package/vendor/dynamic-workflow/engine/engine-config.d.ts +90 -0
- package/vendor/dynamic-workflow/engine/engine-config.d.ts.map +1 -0
- package/vendor/dynamic-workflow/engine/engine-config.js +6 -0
- package/vendor/dynamic-workflow/engine/engine-holes.d.ts +116 -0
- package/vendor/dynamic-workflow/engine/engine-holes.d.ts.map +1 -0
- package/vendor/dynamic-workflow/engine/engine-holes.js +142 -0
- package/vendor/dynamic-workflow/engine/engine-launch.d.ts +34 -0
- package/vendor/dynamic-workflow/engine/engine-launch.d.ts.map +1 -0
- package/vendor/dynamic-workflow/engine/engine-launch.js +26 -0
- package/vendor/dynamic-workflow/engine/engine-phase-stamp.d.ts +35 -0
- package/vendor/dynamic-workflow/engine/engine-phase-stamp.d.ts.map +1 -0
- package/vendor/dynamic-workflow/engine/engine-phase-stamp.js +74 -0
- package/vendor/dynamic-workflow/engine/engine-report.d.ts +27 -0
- package/vendor/dynamic-workflow/engine/engine-report.d.ts.map +1 -0
- package/vendor/dynamic-workflow/engine/engine-report.js +151 -0
- package/vendor/dynamic-workflow/engine/engine-resume.d.ts +18 -0
- package/vendor/dynamic-workflow/engine/engine-resume.d.ts.map +1 -0
- package/vendor/dynamic-workflow/engine/engine-resume.js +38 -0
- package/vendor/dynamic-workflow/engine/engine-settlement.d.ts +30 -0
- package/vendor/dynamic-workflow/engine/engine-settlement.d.ts.map +1 -0
- package/vendor/dynamic-workflow/engine/engine-settlement.js +79 -0
- package/vendor/dynamic-workflow/engine/engine-state.d.ts +99 -0
- package/vendor/dynamic-workflow/engine/engine-state.d.ts.map +1 -0
- package/vendor/dynamic-workflow/engine/engine-state.js +13 -0
- package/vendor/dynamic-workflow/engine/engine-world.d.ts +36 -0
- package/vendor/dynamic-workflow/engine/engine-world.d.ts.map +1 -0
- package/vendor/dynamic-workflow/engine/engine-world.js +189 -0
- package/vendor/dynamic-workflow/engine/engine.d.ts +263 -0
- package/vendor/dynamic-workflow/engine/engine.d.ts.map +1 -0
- package/vendor/dynamic-workflow/engine/engine.js +602 -0
- package/vendor/dynamic-workflow/engine/errors.d.ts +87 -0
- package/vendor/dynamic-workflow/engine/errors.d.ts.map +1 -0
- package/vendor/dynamic-workflow/engine/errors.js +56 -0
- package/vendor/dynamic-workflow/engine/hash-mismatch.d.ts +10 -0
- package/vendor/dynamic-workflow/engine/hash-mismatch.d.ts.map +1 -0
- package/vendor/dynamic-workflow/engine/hash-mismatch.js +15 -0
- package/vendor/dynamic-workflow/engine/hash.d.ts +16 -0
- package/vendor/dynamic-workflow/engine/hash.d.ts.map +1 -0
- package/vendor/dynamic-workflow/engine/hash.js +48 -0
- package/vendor/dynamic-workflow/engine/imported-cache-types.d.ts +96 -0
- package/vendor/dynamic-workflow/engine/imported-cache-types.d.ts.map +1 -0
- package/vendor/dynamic-workflow/engine/imported-cache-types.js +6 -0
- package/vendor/dynamic-workflow/engine/imported-cache.d.ts +127 -0
- package/vendor/dynamic-workflow/engine/imported-cache.d.ts.map +1 -0
- package/vendor/dynamic-workflow/engine/imported-cache.js +244 -0
- package/vendor/dynamic-workflow/engine/index.d.ts +11 -0
- package/vendor/dynamic-workflow/engine/index.d.ts.map +1 -0
- package/vendor/dynamic-workflow/engine/index.js +10 -0
- package/vendor/dynamic-workflow/engine/journal-memory.d.ts +32 -0
- package/vendor/dynamic-workflow/engine/journal-memory.d.ts.map +1 -0
- package/vendor/dynamic-workflow/engine/journal-memory.js +243 -0
- package/vendor/dynamic-workflow/engine/journal-read-types.d.ts +72 -0
- package/vendor/dynamic-workflow/engine/journal-read-types.d.ts.map +1 -0
- package/vendor/dynamic-workflow/engine/journal-read-types.js +28 -0
- package/vendor/dynamic-workflow/engine/persona.d.ts +20 -0
- package/vendor/dynamic-workflow/engine/persona.d.ts.map +1 -0
- package/vendor/dynamic-workflow/engine/persona.js +43 -0
- package/vendor/dynamic-workflow/engine/replay-order.d.ts +96 -0
- package/vendor/dynamic-workflow/engine/replay-order.d.ts.map +1 -0
- package/vendor/dynamic-workflow/engine/replay-order.js +229 -0
- package/vendor/dynamic-workflow/engine/run-terminal.d.ts +35 -0
- package/vendor/dynamic-workflow/engine/run-terminal.d.ts.map +1 -0
- package/vendor/dynamic-workflow/engine/run-terminal.js +7 -0
- package/vendor/dynamic-workflow/engine/scheduler-submit.d.ts +22 -0
- package/vendor/dynamic-workflow/engine/scheduler-submit.d.ts.map +1 -0
- package/vendor/dynamic-workflow/engine/scheduler-submit.js +84 -0
- package/vendor/dynamic-workflow/engine/scheduler-types.d.ts +105 -0
- package/vendor/dynamic-workflow/engine/scheduler-types.d.ts.map +1 -0
- package/vendor/dynamic-workflow/engine/scheduler-types.js +17 -0
- package/vendor/dynamic-workflow/engine/scheduler.d.ts +113 -0
- package/vendor/dynamic-workflow/engine/scheduler.d.ts.map +1 -0
- package/vendor/dynamic-workflow/engine/scheduler.js +484 -0
- package/vendor/dynamic-workflow/engine/types.d.ts +979 -0
- package/vendor/dynamic-workflow/engine/types.d.ts.map +1 -0
- package/vendor/dynamic-workflow/engine/types.js +26 -0
- package/vendor/dynamic-workflow/engine/world-read-input.d.ts +10 -0
- package/vendor/dynamic-workflow/engine/world-read-input.d.ts.map +1 -0
- package/vendor/dynamic-workflow/engine/world-read-input.js +55 -0
- package/vendor/dynamic-workflow/facade/artifact-caps.d.ts +48 -0
- package/vendor/dynamic-workflow/facade/artifact-caps.d.ts.map +1 -0
- package/vendor/dynamic-workflow/facade/artifact-caps.js +47 -0
- package/vendor/dynamic-workflow/facade/dts-hole.d.ts +16 -0
- package/vendor/dynamic-workflow/facade/dts-hole.d.ts.map +1 -0
- package/vendor/dynamic-workflow/facade/dts-hole.js +26 -0
- package/vendor/dynamic-workflow/facade/dts-model.d.ts +11 -0
- package/vendor/dynamic-workflow/facade/dts-model.d.ts.map +1 -0
- package/vendor/dynamic-workflow/facade/dts-model.js +18 -0
- package/vendor/dynamic-workflow/facade/dts-stream.d.ts +15 -0
- package/vendor/dynamic-workflow/facade/dts-stream.d.ts.map +1 -0
- package/vendor/dynamic-workflow/facade/dts-stream.js +41 -0
- package/vendor/dynamic-workflow/facade/dts.d.ts +29 -0
- package/vendor/dynamic-workflow/facade/dts.d.ts.map +1 -0
- package/vendor/dynamic-workflow/facade/dts.js +324 -0
- package/vendor/dynamic-workflow/facade/registry.d.ts +218 -0
- package/vendor/dynamic-workflow/facade/registry.d.ts.map +1 -0
- package/vendor/dynamic-workflow/facade/registry.js +203 -0
- package/vendor/dynamic-workflow/facade/report-caps.d.ts +40 -0
- package/vendor/dynamic-workflow/facade/report-caps.d.ts.map +1 -0
- package/vendor/dynamic-workflow/facade/report-caps.js +39 -0
- package/vendor/dynamic-workflow/facade/world-read-caps.d.ts +37 -0
- package/vendor/dynamic-workflow/facade/world-read-caps.d.ts.map +1 -0
- package/vendor/dynamic-workflow/facade/world-read-caps.js +36 -0
- package/vendor/dynamic-workflow/index.d.ts +41 -0
- package/vendor/dynamic-workflow/index.d.ts.map +1 -0
- package/vendor/dynamic-workflow/index.js +51 -0
- package/vendor/dynamic-workflow/lowering/index.d.ts +2 -0
- package/vendor/dynamic-workflow/lowering/index.d.ts.map +1 -0
- package/vendor/dynamic-workflow/lowering/index.js +1 -0
- package/vendor/dynamic-workflow/lowering/lower-hole.d.ts +16 -0
- package/vendor/dynamic-workflow/lowering/lower-hole.d.ts.map +1 -0
- package/vendor/dynamic-workflow/lowering/lower-hole.js +63 -0
- package/vendor/dynamic-workflow/lowering/lower.d.ts +82 -0
- package/vendor/dynamic-workflow/lowering/lower.d.ts.map +1 -0
- package/vendor/dynamic-workflow/lowering/lower.js +333 -0
- package/vendor/dynamic-workflow/projections.d.ts +26 -0
- package/vendor/dynamic-workflow/projections.d.ts.map +1 -0
- package/vendor/dynamic-workflow/projections.js +23 -0
- package/vendor/dynamic-workflow/schema/actor-submit-profiles.d.ts +49 -0
- package/vendor/dynamic-workflow/schema/actor-submit-profiles.d.ts.map +1 -0
- package/vendor/dynamic-workflow/schema/actor-submit-profiles.js +69 -0
- package/vendor/dynamic-workflow/schema/emit.d.ts +55 -0
- package/vendor/dynamic-workflow/schema/emit.d.ts.map +1 -0
- package/vendor/dynamic-workflow/schema/emit.js +325 -0
- package/vendor/dynamic-workflow/schema/jsdoc.d.ts +10 -0
- package/vendor/dynamic-workflow/schema/jsdoc.d.ts.map +1 -0
- package/vendor/dynamic-workflow/schema/jsdoc.js +83 -0
- package/vendor/dynamic-workflow/schema/serialize.d.ts +8 -0
- package/vendor/dynamic-workflow/schema/serialize.d.ts.map +1 -0
- package/vendor/dynamic-workflow/schema/serialize.js +20 -0
- package/vendor/dynamic-workflow/schema/synthesize.d.ts +48 -0
- package/vendor/dynamic-workflow/schema/synthesize.d.ts.map +1 -0
- package/vendor/dynamic-workflow/schema/synthesize.js +138 -0
- package/vendor/dynamic-workflow/schema/types.d.ts +67 -0
- package/vendor/dynamic-workflow/schema/types.d.ts.map +1 -0
- package/vendor/dynamic-workflow/schema/types.js +18 -0
- package/vendor/dynamic-workflow/schema/validate.d.ts +15 -0
- package/vendor/dynamic-workflow/schema/validate.d.ts.map +1 -0
- package/vendor/dynamic-workflow/schema/validate.js +213 -0
- package/vendor/dynamic-workflow/testing/index.d.ts +6 -0
- package/vendor/dynamic-workflow/testing/index.d.ts.map +1 -0
- package/vendor/dynamic-workflow/testing/index.js +5 -0
- package/vendor/dynamic-workflow/testing/journal-contract-artifacts.d.ts +9 -0
- package/vendor/dynamic-workflow/testing/journal-contract-artifacts.d.ts.map +1 -0
- package/vendor/dynamic-workflow/testing/journal-contract-artifacts.js +195 -0
- package/vendor/dynamic-workflow/testing/journal-contract-events.d.ts +9 -0
- package/vendor/dynamic-workflow/testing/journal-contract-events.d.ts.map +1 -0
- package/vendor/dynamic-workflow/testing/journal-contract-events.js +163 -0
- package/vendor/dynamic-workflow/testing/journal-contract-helpers.d.ts +9 -0
- package/vendor/dynamic-workflow/testing/journal-contract-helpers.d.ts.map +1 -0
- package/vendor/dynamic-workflow/testing/journal-contract-helpers.js +12 -0
- package/vendor/dynamic-workflow/testing/journal-contract-isolation.d.ts +9 -0
- package/vendor/dynamic-workflow/testing/journal-contract-isolation.d.ts.map +1 -0
- package/vendor/dynamic-workflow/testing/journal-contract-isolation.js +46 -0
- package/vendor/dynamic-workflow/testing/journal-contract-nodes.d.ts +9 -0
- package/vendor/dynamic-workflow/testing/journal-contract-nodes.d.ts.map +1 -0
- package/vendor/dynamic-workflow/testing/journal-contract-nodes.js +234 -0
- package/vendor/dynamic-workflow/testing/journal-contract-reads.d.ts +11 -0
- package/vendor/dynamic-workflow/testing/journal-contract-reads.d.ts.map +1 -0
- package/vendor/dynamic-workflow/testing/journal-contract-reads.js +281 -0
- package/vendor/dynamic-workflow/testing/journal-contract-runs.d.ts +9 -0
- package/vendor/dynamic-workflow/testing/journal-contract-runs.d.ts.map +1 -0
- package/vendor/dynamic-workflow/testing/journal-contract-runs.js +396 -0
- package/vendor/dynamic-workflow/testing/journal-contract-script.d.ts +12 -0
- package/vendor/dynamic-workflow/testing/journal-contract-script.d.ts.map +1 -0
- package/vendor/dynamic-workflow/testing/journal-contract-script.js +82 -0
- package/vendor/dynamic-workflow/testing/journal-contract.d.ts +15 -0
- package/vendor/dynamic-workflow/testing/journal-contract.d.ts.map +1 -0
- package/vendor/dynamic-workflow/testing/journal-contract.js +31 -0
- package/vendor/dynamic-workflow-runtime/child-cell-streams.js +128 -0
- package/vendor/dynamic-workflow-runtime/child-entry-file.js +43 -0
- package/vendor/dynamic-workflow-runtime/child-source.js +299 -0
- package/vendor/dynamic-workflow-runtime/harness.js +302 -0
- package/vendor/dynamic-workflow-runtime/index.js +4 -0
- package/vendor/dynamic-workflow-runtime/protocol.js +2 -0
- package/vendor/mcode-host/dynamic-workflow-import.js +269 -0
- package/vendor/mcode-host/workflow-git-world-read.js +183 -0
- package/vendor/mcode-host/workflow-world-read.js +282 -0
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import type { ScriptLoc } from "../compiler/compile.js";
|
|
2
|
+
import type { TaintOcc } from "./domain.js";
|
|
3
|
+
import type { OrderTrace } from "./causality-order.js";
|
|
4
|
+
import type { NamePattern } from "./types.js";
|
|
5
|
+
/**
|
|
6
|
+
* The analysis core: the single, self-contained artifact one interpretation of a
|
|
7
|
+
* workflow script produces. It carries the
|
|
8
|
+
* data-dependency half (the taint facts) AND the temporal half (the ordering trace) in
|
|
9
|
+
* one value, and every graph the analyzer serves — site graph, causality graph, actor
|
|
10
|
+
* graph — is a pure projection of it.
|
|
11
|
+
*
|
|
12
|
+
* The design principle is **no position dependence**: anything that needs raw source
|
|
13
|
+
* offsets or the TypeScript checker is resolved when the core is minted
|
|
14
|
+
* (interpret.ts), never by a projection. That is what "projections never look at the
|
|
15
|
+
* code again" means mechanically, and it is checkable: a projection module must not
|
|
16
|
+
* import `typescript`.
|
|
17
|
+
*
|
|
18
|
+
* - `within` containment (site lexically inside a promoted fan-out body) is resolved
|
|
19
|
+
* onto each site entry here — the projection reads a string, not a span;
|
|
20
|
+
* - fan-out ids are FINAL (`fan-out#N`); the taint pass's provisional `fan-out@order`
|
|
21
|
+
* vocabulary dies at minting, including inside every occurrence and type key;
|
|
22
|
+
* - artifact types are materialized strings (the checker's answers), keyed by final id.
|
|
23
|
+
*
|
|
24
|
+
* `ScriptLoc` (line:column) fields remain — they are rendering data, not AST access.
|
|
25
|
+
*/
|
|
26
|
+
/** An `ask` site, AST-free. `within` is the enclosing promoted fan-out, when any. */
|
|
27
|
+
export interface CoreAskSite {
|
|
28
|
+
id: string;
|
|
29
|
+
order: number;
|
|
30
|
+
label: string;
|
|
31
|
+
labelPattern?: NamePattern;
|
|
32
|
+
loc: ScriptLoc;
|
|
33
|
+
within?: string;
|
|
34
|
+
}
|
|
35
|
+
/** A world-read or join site, AST-free. */
|
|
36
|
+
export interface CoreSimpleSite {
|
|
37
|
+
id: string;
|
|
38
|
+
order: number;
|
|
39
|
+
label: string;
|
|
40
|
+
loc: ScriptLoc;
|
|
41
|
+
within?: string;
|
|
42
|
+
}
|
|
43
|
+
/** An `agent()` site, AST-free. */
|
|
44
|
+
export interface CoreActorSite {
|
|
45
|
+
id: string;
|
|
46
|
+
order: number;
|
|
47
|
+
loc: ScriptLoc;
|
|
48
|
+
name?: string;
|
|
49
|
+
namePattern?: NamePattern;
|
|
50
|
+
within?: string;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* A PROMOTED fan-out, under its final `fan-out#N` id (source order). Non-promoted
|
|
54
|
+
* iteration candidates are not part of the core — they are graph nodes in nothing.
|
|
55
|
+
*/
|
|
56
|
+
export interface CoreFanoutSite {
|
|
57
|
+
id: string;
|
|
58
|
+
order: number;
|
|
59
|
+
label: string;
|
|
60
|
+
loc: ScriptLoc;
|
|
61
|
+
within?: string;
|
|
62
|
+
/**
|
|
63
|
+
* 字面量基数:被迭代的是无展开的数组字面量
|
|
64
|
+
* 或从未被写入的 `const` 字面量绑定时的元素个数;其余缺席。铸造期算好,投影只读。
|
|
65
|
+
*/
|
|
66
|
+
cardinality?: number;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* An OPEN `hole<T>()` site, AST-free (docs/analysis.md「Sites」). A filled hole is not a
|
|
70
|
+
* step and is not listed here — it survives only as a phase in the trace.
|
|
71
|
+
*/
|
|
72
|
+
export interface CoreHoleSite {
|
|
73
|
+
id: string;
|
|
74
|
+
/** The filled hole whose body holds this hole (docs/analysis.md「Sites」); absent at the top level. */
|
|
75
|
+
fill?: string;
|
|
76
|
+
order: number;
|
|
77
|
+
/** The hole's literal name (its phase name; unique by rule 9012). */
|
|
78
|
+
name: string;
|
|
79
|
+
/** The author's spelling of the type argument (`Plan`), the contract the fill is checked against. */
|
|
80
|
+
type: string;
|
|
81
|
+
loc: ScriptLoc;
|
|
82
|
+
/** The call is the (awaited) operand of a top-level `return`: the script's end is open. */
|
|
83
|
+
tail?: true;
|
|
84
|
+
within?: string;
|
|
85
|
+
}
|
|
86
|
+
export interface CoreSites {
|
|
87
|
+
asks: CoreAskSite[];
|
|
88
|
+
worldReads: CoreSimpleSite[];
|
|
89
|
+
joins: CoreSimpleSite[];
|
|
90
|
+
actors: CoreActorSite[];
|
|
91
|
+
fanouts: CoreFanoutSite[];
|
|
92
|
+
/** Open holes, source order (see {@link CoreHoleSite}). */
|
|
93
|
+
holes: CoreHoleSite[];
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* The edge-bearing taint facts, exactly {@link TaintFacts} minus `promoted` (folded
|
|
97
|
+
* into {@link CoreSites.fanouts}) — with every occurrence site and every `fanoutIn`
|
|
98
|
+
* key already renamed to final ids.
|
|
99
|
+
*/
|
|
100
|
+
export interface CoreFacts {
|
|
101
|
+
askData: Map<string, TaintOcc[]>;
|
|
102
|
+
askActor: Map<string, TaintOcc[]>;
|
|
103
|
+
worldReadData: Map<string, TaintOcc[]>;
|
|
104
|
+
joinIn: Map<string, TaintOcc[]>;
|
|
105
|
+
fanoutIn: Map<string, TaintOcc[]>;
|
|
106
|
+
/** Artifact occurrences reaching each open hole's prompt. */
|
|
107
|
+
holeData: Map<string, TaintOcc[]>;
|
|
108
|
+
returnData: TaintOcc[];
|
|
109
|
+
}
|
|
110
|
+
/** The checker's answers, materialized. Keys are final site ids. */
|
|
111
|
+
export interface CoreTypes {
|
|
112
|
+
/** Whole-value artifact type per producer site. */
|
|
113
|
+
siteType: Map<string, string>;
|
|
114
|
+
/** Per-element awaited types of a join over a static array literal. */
|
|
115
|
+
joinPortTypes: Map<string, (string | undefined)[]>;
|
|
116
|
+
}
|
|
117
|
+
export interface AnalysisCore {
|
|
118
|
+
sites: CoreSites;
|
|
119
|
+
facts: CoreFacts;
|
|
120
|
+
/** The raw temporal trace — issue/settle/spawn events, regions, controls, phases. */
|
|
121
|
+
trace: OrderTrace;
|
|
122
|
+
types: CoreTypes;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Site-id vocabulary: is this label an actor site? (Actor labels never make data edges.)
|
|
126
|
+
*
|
|
127
|
+
* 修复原因:留白函数体里的站点带留白 id 的前缀(`hole#21b40fca/actor#1`,docs/analysis.md「Sites」),
|
|
128
|
+
* 原先的 `startsWith("actor#")` 认不出它们,于是补全体内的 ask 全部解析不到 receiver、落到
|
|
129
|
+
* `unknown` 车道。按**最后一段**判种类。
|
|
130
|
+
*/
|
|
131
|
+
export declare function isActorSite(site: string): boolean;
|
|
132
|
+
/**
|
|
133
|
+
* Canonical, deterministic text form of the core — its golden and debugging surface,
|
|
134
|
+
* fourth sibling of the three graph serializers. Grammar, by fixed section order:
|
|
135
|
+
*
|
|
136
|
+
* ask ask#1 "scanner" @3:24 order=1 within=fan-out#1 type="Flaky"
|
|
137
|
+
* world-read world-read#1 "glob src" @1:20 order=0
|
|
138
|
+
* join join#1 "join" @4:9 order=3 ports="A",-,"B"
|
|
139
|
+
* actor actor#1 "planner" @2:17 order=2
|
|
140
|
+
* fan-out fan-out#1 "fan-out" @5:11 order=4 type="Review[]"
|
|
141
|
+
* hole hole#1 "决定分组" @7:14 order=5 type="Plan" tail
|
|
142
|
+
* fact ask-data ask#2 <- ask#1 exact
|
|
143
|
+
* fact ask-actor ask#2 <- actor#1 exact
|
|
144
|
+
* fact world-read-data world-read#2 <- ask#1 inexact
|
|
145
|
+
* fact join-in join#1 <- ask#1 exact port=0
|
|
146
|
+
* fact fan-out-in fan-out#1 <- ask#1 exact
|
|
147
|
+
* fact hole-data hole#1 <- ask#1 exact
|
|
148
|
+
* fact return <- ask#2 exact
|
|
149
|
+
* region seq#1 seq entered
|
|
150
|
+
* region loop#1 loop parent=seq#1 @3:1 bound=3 label="helper"
|
|
151
|
+
* region choice#1 choice parent=loop#1 @5:3 entered exhaustive
|
|
152
|
+
* region choice#2 choice parent=seq#1 @9:1 entered fallthrough
|
|
153
|
+
* region branch#1 branch parent=choice#1 @5:12
|
|
154
|
+
* region branch#4 branch parent=seq#1 @20:1 label="onDone" detached
|
|
155
|
+
* region call#1 call parent=seq#1 @7:15 entered label="helper"
|
|
156
|
+
* region fanout#1 fanout parent=seq#1 @9:15 label="map" strand
|
|
157
|
+
* region try#1 try parent=seq#1 @12:1 entered
|
|
158
|
+
* region attempt#1 attempt parent=try#1 @12:5 entered
|
|
159
|
+
* region catch#1 catch parent=try#1 @15:3
|
|
160
|
+
* region finally#1 finally parent=try#1 @18:3 entered
|
|
161
|
+
* issue ask#1 in=seq#1>loop#1 phase=unphased
|
|
162
|
+
* settle ask#1,ask#2 in=seq#1
|
|
163
|
+
* settle ask#4 in=seq#1 joins=fanout#1
|
|
164
|
+
* settle in=seq#1 joins=call#1
|
|
165
|
+
* settle maybe ask#3 in=seq#1
|
|
166
|
+
* spawn actor#1 in=seq#1
|
|
167
|
+
* mark phase#1 in=seq#1
|
|
168
|
+
* jump continue loop#1 in=seq#1>loop#1>choice#1>branch#1 phase=phase#1
|
|
169
|
+
* jump return call#1 in=seq#1>call#1 phase=unphased
|
|
170
|
+
* jump throw attempt#1 in=seq#1>try#1>attempt#1 phase=unphased
|
|
171
|
+
* control branch#1 by=ask#1 maybe=ask#2
|
|
172
|
+
* phase phase#1 "gate" @2:1
|
|
173
|
+
* phase hole#21b40fca "决定分组" @7:14
|
|
174
|
+
*
|
|
175
|
+
* A `hole` line is an OPEN hole (a filled one is not a step; `tail` marks the tail form and
|
|
176
|
+
* `type=` is the author's spelling of the type argument); `fill=` on a phase names the filled
|
|
177
|
+
* hole whose body wrote it (docs/analysis.md「Sites」).
|
|
178
|
+
*
|
|
179
|
+
* Sites come first in source (`order`) order, kinds interleaved; `type=` carries the
|
|
180
|
+
* materialized artifact type and `ports=` a join's per-port types (`-` = unknown).
|
|
181
|
+
* Fact lines are grouped by kind in the order above; within a kind, by the sink
|
|
182
|
+
* site's source order, occurrences in stored (emission) order. Trace events are NOT
|
|
183
|
+
* sorted — their sequence IS the temporal content; regions/controls/phases follow in
|
|
184
|
+
* creation order. `issue` always carries its phase (`unphased` outside every marker's
|
|
185
|
+
* extent), and a `settle` line carries `maybe` only when the barrier was a may-claim and
|
|
186
|
+
* `joins=` only when it waited for strands (`strand` on the region line marks those). A
|
|
187
|
+
* settle that ONLY joined strands names no step and prints without the step token.
|
|
188
|
+
*
|
|
189
|
+
* The structural regions (`choice` / `call` / `try` / `attempt` / `catch` / `finally`) and
|
|
190
|
+
* the `mark` / `jump` leaves are the control-flow projection's input; the causality projection looks through
|
|
191
|
+
* them. A `jump` names its resolved target region; `throw` targeting the root is uncaught.
|
|
192
|
+
*/
|
|
193
|
+
export declare function serializeCore(core: AnalysisCore): string;
|
|
194
|
+
//# sourceMappingURL=core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/analysis/core.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Site-id vocabulary: is this label an actor site? (Actor labels never make data edges.)
|
|
3
|
+
*
|
|
4
|
+
* 修复原因:留白函数体里的站点带留白 id 的前缀(`hole#21b40fca/actor#1`,docs/analysis.md「Sites」),
|
|
5
|
+
* 原先的 `startsWith("actor#")` 认不出它们,于是补全体内的 ask 全部解析不到 receiver、落到
|
|
6
|
+
* `unknown` 车道。按**最后一段**判种类。
|
|
7
|
+
*/
|
|
8
|
+
export function isActorSite(site) {
|
|
9
|
+
return /(^|\/)actor#/.test(site);
|
|
10
|
+
}
|
|
11
|
+
/** Quote a string field: embedded `"` escaped as `\"` (same rule as serialize.ts). */
|
|
12
|
+
function quote(text) {
|
|
13
|
+
return `"${text.replace(/"/g, '\\"')}"`;
|
|
14
|
+
}
|
|
15
|
+
function renderPattern(pattern) {
|
|
16
|
+
if (pattern === undefined)
|
|
17
|
+
return "";
|
|
18
|
+
let out = "";
|
|
19
|
+
if (pattern.head !== undefined)
|
|
20
|
+
out += ` head=${quote(pattern.head)}`;
|
|
21
|
+
if (pattern.tail !== undefined)
|
|
22
|
+
out += ` tail=${quote(pattern.tail)}`;
|
|
23
|
+
return out;
|
|
24
|
+
}
|
|
25
|
+
function at(loc) {
|
|
26
|
+
return `@${loc.line}:${loc.column}`;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Canonical, deterministic text form of the core — its golden and debugging surface,
|
|
30
|
+
* fourth sibling of the three graph serializers. Grammar, by fixed section order:
|
|
31
|
+
*
|
|
32
|
+
* ask ask#1 "scanner" @3:24 order=1 within=fan-out#1 type="Flaky"
|
|
33
|
+
* world-read world-read#1 "glob src" @1:20 order=0
|
|
34
|
+
* join join#1 "join" @4:9 order=3 ports="A",-,"B"
|
|
35
|
+
* actor actor#1 "planner" @2:17 order=2
|
|
36
|
+
* fan-out fan-out#1 "fan-out" @5:11 order=4 type="Review[]"
|
|
37
|
+
* hole hole#1 "决定分组" @7:14 order=5 type="Plan" tail
|
|
38
|
+
* fact ask-data ask#2 <- ask#1 exact
|
|
39
|
+
* fact ask-actor ask#2 <- actor#1 exact
|
|
40
|
+
* fact world-read-data world-read#2 <- ask#1 inexact
|
|
41
|
+
* fact join-in join#1 <- ask#1 exact port=0
|
|
42
|
+
* fact fan-out-in fan-out#1 <- ask#1 exact
|
|
43
|
+
* fact hole-data hole#1 <- ask#1 exact
|
|
44
|
+
* fact return <- ask#2 exact
|
|
45
|
+
* region seq#1 seq entered
|
|
46
|
+
* region loop#1 loop parent=seq#1 @3:1 bound=3 label="helper"
|
|
47
|
+
* region choice#1 choice parent=loop#1 @5:3 entered exhaustive
|
|
48
|
+
* region choice#2 choice parent=seq#1 @9:1 entered fallthrough
|
|
49
|
+
* region branch#1 branch parent=choice#1 @5:12
|
|
50
|
+
* region branch#4 branch parent=seq#1 @20:1 label="onDone" detached
|
|
51
|
+
* region call#1 call parent=seq#1 @7:15 entered label="helper"
|
|
52
|
+
* region fanout#1 fanout parent=seq#1 @9:15 label="map" strand
|
|
53
|
+
* region try#1 try parent=seq#1 @12:1 entered
|
|
54
|
+
* region attempt#1 attempt parent=try#1 @12:5 entered
|
|
55
|
+
* region catch#1 catch parent=try#1 @15:3
|
|
56
|
+
* region finally#1 finally parent=try#1 @18:3 entered
|
|
57
|
+
* issue ask#1 in=seq#1>loop#1 phase=unphased
|
|
58
|
+
* settle ask#1,ask#2 in=seq#1
|
|
59
|
+
* settle ask#4 in=seq#1 joins=fanout#1
|
|
60
|
+
* settle in=seq#1 joins=call#1
|
|
61
|
+
* settle maybe ask#3 in=seq#1
|
|
62
|
+
* spawn actor#1 in=seq#1
|
|
63
|
+
* mark phase#1 in=seq#1
|
|
64
|
+
* jump continue loop#1 in=seq#1>loop#1>choice#1>branch#1 phase=phase#1
|
|
65
|
+
* jump return call#1 in=seq#1>call#1 phase=unphased
|
|
66
|
+
* jump throw attempt#1 in=seq#1>try#1>attempt#1 phase=unphased
|
|
67
|
+
* control branch#1 by=ask#1 maybe=ask#2
|
|
68
|
+
* phase phase#1 "gate" @2:1
|
|
69
|
+
* phase hole#21b40fca "决定分组" @7:14
|
|
70
|
+
*
|
|
71
|
+
* A `hole` line is an OPEN hole (a filled one is not a step; `tail` marks the tail form and
|
|
72
|
+
* `type=` is the author's spelling of the type argument); `fill=` on a phase names the filled
|
|
73
|
+
* hole whose body wrote it (docs/analysis.md「Sites」).
|
|
74
|
+
*
|
|
75
|
+
* Sites come first in source (`order`) order, kinds interleaved; `type=` carries the
|
|
76
|
+
* materialized artifact type and `ports=` a join's per-port types (`-` = unknown).
|
|
77
|
+
* Fact lines are grouped by kind in the order above; within a kind, by the sink
|
|
78
|
+
* site's source order, occurrences in stored (emission) order. Trace events are NOT
|
|
79
|
+
* sorted — their sequence IS the temporal content; regions/controls/phases follow in
|
|
80
|
+
* creation order. `issue` always carries its phase (`unphased` outside every marker's
|
|
81
|
+
* extent), and a `settle` line carries `maybe` only when the barrier was a may-claim and
|
|
82
|
+
* `joins=` only when it waited for strands (`strand` on the region line marks those). A
|
|
83
|
+
* settle that ONLY joined strands names no step and prints without the step token.
|
|
84
|
+
*
|
|
85
|
+
* The structural regions (`choice` / `call` / `try` / `attempt` / `catch` / `finally`) and
|
|
86
|
+
* the `mark` / `jump` leaves are the control-flow projection's input; the causality projection looks through
|
|
87
|
+
* them. A `jump` names its resolved target region; `throw` targeting the root is uncaught.
|
|
88
|
+
*/
|
|
89
|
+
export function serializeCore(core) {
|
|
90
|
+
return `${[
|
|
91
|
+
...renderSites(core),
|
|
92
|
+
...renderFacts(core.facts),
|
|
93
|
+
...core.trace.regions.map((region) => `region ${region.id} ${region.kind}` +
|
|
94
|
+
(region.parent === undefined ? "" : ` parent=${region.parent}`) +
|
|
95
|
+
(region.loc === undefined ? "" : ` ${at(region.loc)}`) +
|
|
96
|
+
(region.entered ? " entered" : "") +
|
|
97
|
+
(region.exhaustive ? " exhaustive" : "") +
|
|
98
|
+
(region.fallthrough ? " fallthrough" : "") +
|
|
99
|
+
(region.recursive ? " recursive" : "") +
|
|
100
|
+
(region.detached ? " detached" : "") +
|
|
101
|
+
(region.bound === undefined ? "" : ` bound=${region.bound}`) +
|
|
102
|
+
(region.label === undefined ? "" : ` label=${quote(region.label)}`) +
|
|
103
|
+
(region.strand ? " strand" : "")),
|
|
104
|
+
...core.trace.events.map(renderEvent),
|
|
105
|
+
...core.trace.controls.map((control) => `control ${control.region}` +
|
|
106
|
+
(control.controllers.length > 0 ? ` by=${control.controllers.join(",")}` : "") +
|
|
107
|
+
(control.maybeControllers.length > 0 ? ` maybe=${control.maybeControllers.join(",")}` : "")),
|
|
108
|
+
...core.trace.phases.map((phase) => `phase ${phase.id} ${quote(phase.name)} ${at(phase.loc)}` +
|
|
109
|
+
(phase.fill === undefined ? "" : ` fill=${phase.fill}`)),
|
|
110
|
+
].join("\n")}\n`;
|
|
111
|
+
}
|
|
112
|
+
function renderSites(core) {
|
|
113
|
+
const typeOf = (id) => {
|
|
114
|
+
const type = core.types.siteType.get(id);
|
|
115
|
+
return type === undefined ? "" : ` type=${quote(type)}`;
|
|
116
|
+
};
|
|
117
|
+
const withinOf = (within) => within === undefined ? "" : ` within=${within}`;
|
|
118
|
+
const lines = [
|
|
119
|
+
...core.sites.asks.map((site) => ({
|
|
120
|
+
line: `ask ${site.id} ${quote(site.label)}${renderPattern(site.labelPattern)} ${at(site.loc)}` +
|
|
121
|
+
` order=${site.order}${withinOf(site.within)}${typeOf(site.id)}`,
|
|
122
|
+
order: site.order,
|
|
123
|
+
})),
|
|
124
|
+
...core.sites.worldReads.map((site) => ({
|
|
125
|
+
line: `world-read ${site.id} ${quote(site.label)} ${at(site.loc)}` +
|
|
126
|
+
` order=${site.order}${withinOf(site.within)}${typeOf(site.id)}`,
|
|
127
|
+
order: site.order,
|
|
128
|
+
})),
|
|
129
|
+
...core.sites.joins.map((site) => {
|
|
130
|
+
const ports = core.types.joinPortTypes.get(site.id);
|
|
131
|
+
const portsText = ports === undefined
|
|
132
|
+
? ""
|
|
133
|
+
: ` ports=${ports.map((port) => (port === undefined ? "-" : quote(port))).join(",")}`;
|
|
134
|
+
return {
|
|
135
|
+
line: `join ${site.id} ${quote(site.label)} ${at(site.loc)}` +
|
|
136
|
+
` order=${site.order}${withinOf(site.within)}${typeOf(site.id)}${portsText}`,
|
|
137
|
+
order: site.order,
|
|
138
|
+
};
|
|
139
|
+
}),
|
|
140
|
+
...core.sites.actors.map((site) => ({
|
|
141
|
+
line: `actor ${site.id}${site.name === undefined ? "" : ` ${quote(site.name)}`}` +
|
|
142
|
+
`${renderPattern(site.namePattern)} ${at(site.loc)} order=${site.order}${withinOf(site.within)}`,
|
|
143
|
+
order: site.order,
|
|
144
|
+
})),
|
|
145
|
+
...core.sites.fanouts.map((site) => ({
|
|
146
|
+
line: `fan-out ${site.id} ${quote(site.label)} ${at(site.loc)}` +
|
|
147
|
+
` order=${site.order}${withinOf(site.within)}` +
|
|
148
|
+
`${site.cardinality === undefined ? "" : ` count=${site.cardinality}`}${typeOf(site.id)}`,
|
|
149
|
+
order: site.order,
|
|
150
|
+
})),
|
|
151
|
+
...core.sites.holes.map((site) => ({
|
|
152
|
+
line: `hole ${site.id} ${quote(site.name)} ${at(site.loc)} order=${site.order}` +
|
|
153
|
+
`${withinOf(site.within)} type=${quote(site.type)}${site.tail ? " tail" : ""}`,
|
|
154
|
+
order: site.order,
|
|
155
|
+
})),
|
|
156
|
+
];
|
|
157
|
+
return lines.sort((a, b) => a.order - b.order).map((entry) => entry.line);
|
|
158
|
+
}
|
|
159
|
+
function renderFacts(facts) {
|
|
160
|
+
const occText = (occ) => `${occ.site} ${occ.exact ? "exact" : "inexact"}${occ.port === undefined ? "" : ` port=${occ.port}`}`;
|
|
161
|
+
const group = (kind, map) => {
|
|
162
|
+
// Emission (state.ts) fills these maps in deterministic evaluation order; sorting
|
|
163
|
+
// by sink id keeps the section readable and independent of that order.
|
|
164
|
+
const entries = [...map.entries()].sort(([a], [b]) => a.localeCompare(b));
|
|
165
|
+
const lines = [];
|
|
166
|
+
for (const [sink, occs] of entries) {
|
|
167
|
+
for (const occ of occs)
|
|
168
|
+
lines.push(`fact ${kind} ${sink} <- ${occText(occ)}`);
|
|
169
|
+
}
|
|
170
|
+
return lines;
|
|
171
|
+
};
|
|
172
|
+
return [
|
|
173
|
+
...group("ask-data", facts.askData),
|
|
174
|
+
...group("ask-actor", facts.askActor),
|
|
175
|
+
...group("world-read-data", facts.worldReadData),
|
|
176
|
+
...group("join-in", facts.joinIn),
|
|
177
|
+
...group("fan-out-in", facts.fanoutIn),
|
|
178
|
+
...group("hole-data", facts.holeData),
|
|
179
|
+
...facts.returnData.map((occ) => `fact return <- ${occText(occ)}`),
|
|
180
|
+
];
|
|
181
|
+
}
|
|
182
|
+
function renderEvent(event) {
|
|
183
|
+
const chain = (regions) => regions.length === 0 ? "" : ` in=${regions.join(">")}`;
|
|
184
|
+
if (event.at === "issue") {
|
|
185
|
+
return `issue ${event.step}${chain(event.regions)} phase=${event.phase}`;
|
|
186
|
+
}
|
|
187
|
+
if (event.at === "settle") {
|
|
188
|
+
// A join-only barrier carries no steps; the token is omitted rather than written as an
|
|
189
|
+
// empty string, so the line keeps single spaces throughout.
|
|
190
|
+
return ("settle" +
|
|
191
|
+
(event.maybe ? " maybe" : "") +
|
|
192
|
+
(event.steps.length === 0 ? "" : ` ${event.steps.join(",")}`) +
|
|
193
|
+
chain(event.regions) +
|
|
194
|
+
(event.joins === undefined || event.joins.length === 0
|
|
195
|
+
? ""
|
|
196
|
+
: ` joins=${event.joins.join(",")}`));
|
|
197
|
+
}
|
|
198
|
+
if (event.at === "mark")
|
|
199
|
+
return `mark ${event.phase}${chain(event.regions)}`;
|
|
200
|
+
if (event.at === "jump") {
|
|
201
|
+
return `jump ${event.kind} ${event.target}${chain(event.regions)} phase=${event.phase}`;
|
|
202
|
+
}
|
|
203
|
+
return `spawn ${event.actor}${chain(event.regions)}`;
|
|
204
|
+
}
|