@sunshaobei/dsh-workflow 0.0.0-stage → 2.1.2
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 +67 -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,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 引擎的结构化错误(docs/execution-engine.md「Errors are first-class」):稳定错误码、
|
|
3
|
+
* 它的可序列化形态,以及跨 Boundary A 抛出的 {@link WorkflowError} 本身。
|
|
4
|
+
*
|
|
5
|
+
* 独立成文件的理由与 run-terminal.ts 同一条:types.ts 已抵 oxlint 的 400 行门,而这一族
|
|
6
|
+
* 高度自足——它只依赖 schema 的 `Violation` 与终态明细,不依赖词汇表里的任何别的东西。
|
|
7
|
+
* 消费者按惯例仍从 types.ts 取(那边原样再导出),导入路径因此一处都不必改。
|
|
8
|
+
*/
|
|
9
|
+
import type { Violation } from "../schema/types.js";
|
|
10
|
+
import type { ProviderStopDetails } from "./run-terminal.js";
|
|
11
|
+
/**
|
|
12
|
+
* 稳定错误码。区分 node 级(拒绝单个 ask 的 promise)与 run 级(使整个 run 失败):
|
|
13
|
+
* - node 级:ValidationFailed / ResultNotSubmitted / DriverError / Cancelled / ContextLimit /
|
|
14
|
+
* WorldReadCapExceeded——一次世界读取超过它那个 op 的上限(`files.grep`:2000 条命中或
|
|
15
|
+
* 256KB 序列化,先到先拒;`git.diff`:512KB;见 `facade/world-read-caps.ts`)。它是 node 级
|
|
16
|
+
* 而不是 run 级,靠的是**拒绝通道**而不是严重程度:世界读取返回一个脚本能 `catch` 的
|
|
17
|
+
* promise,所以"缩窄 pattern 或加个 glob"是一条脚本真能走的路。也刻意**不**折进
|
|
18
|
+
* DriverError——上限是脚本可以据以重写自己的契约,而靠匹配 message 文本区分两者,
|
|
19
|
+
* 正是这个联合类型存在的目的所要防的。
|
|
20
|
+
* - run 级:InputHashMismatch / UnknownActor / MissingAskSpec /
|
|
21
|
+
* DuplicateActorName——同一个 run 内两次 createActor 得到相同的**非空**有效名
|
|
22
|
+
* (有效名 = normalizePersona 后的 `spec.name`,persona.name 压过 name 实参)。规则对
|
|
23
|
+
* **所有** run 生效而不只是修订 run:具名 actor 是 amend-resume 缓存导入的身份键,而任何
|
|
24
|
+
* run 都是未来修订的潜在前驱,前驱里重名会让导入匹配歧义(docs/execution-engine.md
|
|
25
|
+
* 的「命名唯一性(引擎)」行)。匿名(名缺席或空串)不查、不禁——代价是没有缓存资格。
|
|
26
|
+
* 字面量重名另有编译期 courtesy 诊断(analysis/actor-names.ts),但动态名只有运行期能查,
|
|
27
|
+
* 所以这条才是真正的门。
|
|
28
|
+
* ReportCapExceeded——一个 run 超过 65,536 条报告、单条 item 序列化超过 1 MiB,或全部 item 超过 1 GiB
|
|
29
|
+
* (见 `facade/report-caps.ts`)。它是 run 级而不是 node 级,与上面 WorldReadCapExceeded 的
|
|
30
|
+
* 分界同理、结论相反:`report` 返回 `void`,脚本**没有**可以 catch 的通道,除了 run 无处可放。
|
|
31
|
+
* 也正因如此这两个数字必须宽到讲道理的脚本永远碰不到——脚本作者写不出恢复路径。
|
|
32
|
+
* 同样刻意不折进 DriverError:上限是脚本可据以重写自己的契约。
|
|
33
|
+
* - 构造期(run 尚未开始,引擎构造函数同步抛出):ScriptHashMismatch
|
|
34
|
+
* - 宿主级(**引擎从不产出**):Interrupted——拥有该 run 的进程在结算之前就没了,由宿主在
|
|
35
|
+
* 下一次构造时收敛那行永远停在 running 的记录(`bootstrap/src/app/dynamic-workflow-run-service.ts`
|
|
36
|
+
* 的孤儿收敛,桌面实测 bug 2026-08-19)。它必须是**独立的码**而不是复用 DriverError:脚本
|
|
37
|
+
* 自己抛错也编码成 DriverError(`dynamic-workflow-runtime/src/harness.ts:311`),两者若同码,
|
|
38
|
+
* 「进程被杀」与「脚本真失败」就只能靠 message 文本区分——而这正是本联合类型要避免的。
|
|
39
|
+
* ProviderStop——一个子代理(或工具侧)的模型请求撞上**确定性的**模型侧错误(认证失效、
|
|
40
|
+
* 模型不在套餐里、配额耗尽……,docs/execution-engine.md 的策略表),driver 让
|
|
41
|
+
* run 以 `stopped(provider)` 停下而不是让节点失败;结构化明细在 `providerStop`。它是宿主级
|
|
42
|
+
* 的另一条:引擎只在 `stop("provider", error)` 里原样落库。
|
|
43
|
+
* 流程判断一律用这里的码,绝不匹配错误文本。
|
|
44
|
+
*/
|
|
45
|
+
export type WorkflowErrorCode = "ValidationFailed" | "ResultNotSubmitted" | "DriverError" | "WorldReadCapExceeded" | "Cancelled" | "ContextLimit" | "ReportCapExceeded" | "InputHashMismatch" | "UnknownActor" | "MissingAskSpec" | "DuplicateActorName" | "ScriptHashMismatch" | "Interrupted" | "ProviderStop" | "ArtifactSourceMissing" | "ArtifactPathOutsideWorkspace" | "ArtifactTooLarge" | "ArtifactStoreUnavailable" | "ArtifactVersionCapExceeded" | "ArtifactKindMismatch" | "ArtifactCapExceeded" | "ArtifactSpecInvalid" | "ArtifactRedeclared" | "ArtifactUndeclared" | "ArtifactPrimaryConflict";
|
|
46
|
+
/**
|
|
47
|
+
* 值不匹配的结构化比对(哪一侧变了)。记录里的值是 `expected`,本次传入的是 `got`。
|
|
48
|
+
* 排查 resume 被拒的人需要的是这两个值,而不是从 message 里正则抠——流程判断与展示
|
|
49
|
+
* 都不该依赖错误文本。
|
|
50
|
+
*/
|
|
51
|
+
export interface WorkflowErrorMismatch {
|
|
52
|
+
expected: string;
|
|
53
|
+
got: string;
|
|
54
|
+
}
|
|
55
|
+
/** 错误的可序列化形态,落 journal(dwf_node.error_json / dwf_run.failure_json)。 */
|
|
56
|
+
export interface WorkflowErrorJson {
|
|
57
|
+
code: WorkflowErrorCode;
|
|
58
|
+
message: string;
|
|
59
|
+
violations?: Violation[];
|
|
60
|
+
finalText?: string;
|
|
61
|
+
mismatch?: WorkflowErrorMismatch;
|
|
62
|
+
/** 只在 `code === "ProviderStop"` 时在场。 */
|
|
63
|
+
providerStop?: ProviderStopDetails;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* 跨 Boundary A 抛出的结构化错误。带稳定 code 与可选的 violations / finalText / mismatch,
|
|
67
|
+
* 使脚本侧 try/catch 与上层都能按结构处理,而不依赖字符串匹配。
|
|
68
|
+
*/
|
|
69
|
+
export declare class WorkflowError extends Error {
|
|
70
|
+
readonly code: WorkflowErrorCode;
|
|
71
|
+
readonly violations?: Violation[];
|
|
72
|
+
readonly finalText?: string;
|
|
73
|
+
readonly mismatch?: WorkflowErrorMismatch;
|
|
74
|
+
readonly providerStop?: ProviderStopDetails;
|
|
75
|
+
constructor(code: WorkflowErrorCode, message: string, extra?: {
|
|
76
|
+
violations?: Violation[];
|
|
77
|
+
finalText?: string;
|
|
78
|
+
mismatch?: WorkflowErrorMismatch;
|
|
79
|
+
providerStop?: ProviderStopDetails;
|
|
80
|
+
cause?: unknown;
|
|
81
|
+
});
|
|
82
|
+
/** 转为可序列化形态落 journal。 */
|
|
83
|
+
toJSON(): WorkflowErrorJson;
|
|
84
|
+
/** 从 journal 记录重建(replay 命中失败节点时用)。 */
|
|
85
|
+
static fromJSON(json: WorkflowErrorJson): WorkflowError;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/engine/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,MAAM,iBAAiB,GACzB,kBAAkB,GAClB,oBAAoB,GACpB,aAAa,GACb,sBAAsB,GACtB,WAAW,GACX,cAAc,GACd,mBAAmB,GACnB,mBAAmB,GACnB,cAAc,GACd,gBAAgB,GAChB,oBAAoB,GACpB,oBAAoB,GACpB,aAAa,GACb,cAAc,GASd,uBAAuB,GACvB,8BAA8B,GAC9B,kBAAkB,GAClB,0BAA0B,GAC1B,4BAA4B,GAC5B,sBAAsB,GACtB,qBAAqB,GACrB,qBAAqB,GACrB,oBAAoB,GACpB,oBAAoB,GAGpB,yBAAyB,CAAC;AAE9B;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,uEAAuE;AACvE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IACjC,wCAAwC;IACxC,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACpC;AAED;;;GAGG;AACH,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IAC1C,QAAQ,CAAC,YAAY,CAAC,EAAE,mBAAmB,CAAC;gBAG1C,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE;QACN,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;QACzB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,qBAAqB,CAAC;QACjC,YAAY,CAAC,EAAE,mBAAmB,CAAC;QACnC,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB;IAYH,yBAAyB;IACzB,MAAM,IAAI,iBAAiB;IAS3B,uCAAuC;IACvC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,GAAG,aAAa;CAQxD"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 引擎的结构化错误(docs/execution-engine.md「Errors are first-class」):稳定错误码、
|
|
3
|
+
* 它的可序列化形态,以及跨 Boundary A 抛出的 {@link WorkflowError} 本身。
|
|
4
|
+
*
|
|
5
|
+
* 独立成文件的理由与 run-terminal.ts 同一条:types.ts 已抵 oxlint 的 400 行门,而这一族
|
|
6
|
+
* 高度自足——它只依赖 schema 的 `Violation` 与终态明细,不依赖词汇表里的任何别的东西。
|
|
7
|
+
* 消费者按惯例仍从 types.ts 取(那边原样再导出),导入路径因此一处都不必改。
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* 跨 Boundary A 抛出的结构化错误。带稳定 code 与可选的 violations / finalText / mismatch,
|
|
11
|
+
* 使脚本侧 try/catch 与上层都能按结构处理,而不依赖字符串匹配。
|
|
12
|
+
*/
|
|
13
|
+
export class WorkflowError extends Error {
|
|
14
|
+
code;
|
|
15
|
+
violations;
|
|
16
|
+
finalText;
|
|
17
|
+
mismatch;
|
|
18
|
+
providerStop;
|
|
19
|
+
constructor(code, message, extra) {
|
|
20
|
+
super(message);
|
|
21
|
+
this.name = "WorkflowError";
|
|
22
|
+
this.code = code;
|
|
23
|
+
if (extra?.violations !== undefined)
|
|
24
|
+
this.violations = extra.violations;
|
|
25
|
+
if (extra?.finalText !== undefined)
|
|
26
|
+
this.finalText = extra.finalText;
|
|
27
|
+
if (extra?.mismatch !== undefined)
|
|
28
|
+
this.mismatch = extra.mismatch;
|
|
29
|
+
if (extra?.providerStop !== undefined)
|
|
30
|
+
this.providerStop = extra.providerStop;
|
|
31
|
+
if (extra?.cause !== undefined)
|
|
32
|
+
this.cause = extra.cause;
|
|
33
|
+
}
|
|
34
|
+
/** 转为可序列化形态落 journal。 */
|
|
35
|
+
toJSON() {
|
|
36
|
+
const json = { code: this.code, message: this.message };
|
|
37
|
+
if (this.violations !== undefined)
|
|
38
|
+
json.violations = this.violations;
|
|
39
|
+
if (this.finalText !== undefined)
|
|
40
|
+
json.finalText = this.finalText;
|
|
41
|
+
if (this.mismatch !== undefined)
|
|
42
|
+
json.mismatch = this.mismatch;
|
|
43
|
+
if (this.providerStop !== undefined)
|
|
44
|
+
json.providerStop = this.providerStop;
|
|
45
|
+
return json;
|
|
46
|
+
}
|
|
47
|
+
/** 从 journal 记录重建(replay 命中失败节点时用)。 */
|
|
48
|
+
static fromJSON(json) {
|
|
49
|
+
return new WorkflowError(json.code, json.message, {
|
|
50
|
+
violations: json.violations,
|
|
51
|
+
finalText: json.finalText,
|
|
52
|
+
mismatch: json.mismatch,
|
|
53
|
+
providerStop: json.providerStop,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* replay 命中但 inputHash 不一致时的 run 级错误。ask、世界读取、报告、产物四条 replay 路径共用它。
|
|
3
|
+
*
|
|
4
|
+
* 原本住在 scheduler.ts;dwf-report-limit 与 dwf-model-selection 合并后 scheduler.ts 到了 402 行
|
|
5
|
+
* (oxlint max-lines 上限 400),而这个构造器本就不属于 ask 调度,于是拆出来。
|
|
6
|
+
*/
|
|
7
|
+
import { WorkflowError, type InstanceRef } from "./types.js";
|
|
8
|
+
/** replay 命中但 inputHash 不一致——纯度契约被破坏,run 大声失败。 */
|
|
9
|
+
export declare function hashMismatch(instance: InstanceRef, expected: string, got: string): WorkflowError;
|
|
10
|
+
//# sourceMappingURL=hash-mismatch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hash-mismatch.d.ts","sourceRoot":"","sources":["../../src/engine/hash-mismatch.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAe,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAE1E,kDAAkD;AAClD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,aAAa,CAShG"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* replay 命中但 inputHash 不一致时的 run 级错误。ask、世界读取、报告、产物四条 replay 路径共用它。
|
|
3
|
+
*
|
|
4
|
+
* 原本住在 scheduler.ts;dwf-report-limit 与 dwf-model-selection 合并后 scheduler.ts 到了 402 行
|
|
5
|
+
* (oxlint max-lines 上限 400),而这个构造器本就不属于 ask 调度,于是拆出来。
|
|
6
|
+
*/
|
|
7
|
+
import { refToString, WorkflowError } from "./types.js";
|
|
8
|
+
/** replay 命中但 inputHash 不一致——纯度契约被破坏,run 大声失败。 */
|
|
9
|
+
export function hashMismatch(instance, expected, got) {
|
|
10
|
+
return new WorkflowError("InputHashMismatch", `Replay hit at ${refToString(instance)} but inputHash differs (expected ${expected}, got ` +
|
|
11
|
+
`${got}): the script is not deterministic, so the journal cannot be replayed.`,
|
|
12
|
+
// 结构化 mismatch 与 ScriptHashMismatch 对齐:两个哈希不一致错误共用同一个字段,
|
|
13
|
+
// 读端不必再从 message 文本里抠哈希。
|
|
14
|
+
{ mismatch: { expected, got } });
|
|
15
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 包内自带的确定性哈希:FNV-1a(32 位)作用在规范化 JSON 上。
|
|
3
|
+
* 不用 node:crypto——src/ 保持纯净可移植,哈希只作为 replay 时的防御性一致性校验
|
|
4
|
+
* (不是密码学用途,抗碰撞要求低,确定性与可移植才是重点)。
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* 规范化 JSON 序列化:对象键按 code point 排序,从而对语义相同的值给出稳定字节序。
|
|
8
|
+
* 只覆盖 host 调用会用到的 JSON 值(string/number/boolean/null/array/plain object)。
|
|
9
|
+
* undefined / 函数等非 JSON 值不应出现在这条路径上;遇到时序列化为 "null" 以保持全函数性。
|
|
10
|
+
*/
|
|
11
|
+
export declare function canonicalJson(value: unknown): string;
|
|
12
|
+
/** FNV-1a 32 位哈希,输出 8 位十六进制字符串。 */
|
|
13
|
+
export declare function fnv1a(input: string): string;
|
|
14
|
+
/** 计算一个 host 调用输入的防御性哈希:对规范化 JSON 取 FNV-1a。 */
|
|
15
|
+
export declare function inputHash(value: unknown): string;
|
|
16
|
+
//# sourceMappingURL=hash.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../../src/engine/hash.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAmBpD;AAED,mCAAmC;AACnC,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAW3C;AAED,+CAA+C;AAC/C,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEhD"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 包内自带的确定性哈希:FNV-1a(32 位)作用在规范化 JSON 上。
|
|
3
|
+
* 不用 node:crypto——src/ 保持纯净可移植,哈希只作为 replay 时的防御性一致性校验
|
|
4
|
+
* (不是密码学用途,抗碰撞要求低,确定性与可移植才是重点)。
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* 规范化 JSON 序列化:对象键按 code point 排序,从而对语义相同的值给出稳定字节序。
|
|
8
|
+
* 只覆盖 host 调用会用到的 JSON 值(string/number/boolean/null/array/plain object)。
|
|
9
|
+
* undefined / 函数等非 JSON 值不应出现在这条路径上;遇到时序列化为 "null" 以保持全函数性。
|
|
10
|
+
*/
|
|
11
|
+
export function canonicalJson(value) {
|
|
12
|
+
if (value === null || typeof value !== "object") {
|
|
13
|
+
// 基本类型:交给 JSON.stringify(数字/布尔/字符串),undefined/函数回落为 null。
|
|
14
|
+
const s = JSON.stringify(value);
|
|
15
|
+
return s === undefined ? "null" : s;
|
|
16
|
+
}
|
|
17
|
+
if (Array.isArray(value)) {
|
|
18
|
+
return `[${value.map((v) => canonicalJson(v)).join(",")}]`;
|
|
19
|
+
}
|
|
20
|
+
const obj = value;
|
|
21
|
+
const keys = Object.keys(obj).sort();
|
|
22
|
+
const parts = [];
|
|
23
|
+
for (const key of keys) {
|
|
24
|
+
const v = obj[key];
|
|
25
|
+
// 跳过 undefined 成员,与 JSON.stringify 对象语义一致。
|
|
26
|
+
if (v === undefined)
|
|
27
|
+
continue;
|
|
28
|
+
parts.push(`${JSON.stringify(key)}:${canonicalJson(v)}`);
|
|
29
|
+
}
|
|
30
|
+
return `{${parts.join(",")}}`;
|
|
31
|
+
}
|
|
32
|
+
/** FNV-1a 32 位哈希,输出 8 位十六进制字符串。 */
|
|
33
|
+
export function fnv1a(input) {
|
|
34
|
+
// FNV offset basis / prime(32 位)。用 Math.imul 保证 32 位乘法回绕。
|
|
35
|
+
let hash = 0x811c9dc5;
|
|
36
|
+
for (let i = 0; i < input.length; i++) {
|
|
37
|
+
hash ^= input.charCodeAt(i) & 0xff;
|
|
38
|
+
// 高位字节也纳入,避免只哈希低字节丢失多字节字符的区分度。
|
|
39
|
+
hash ^= (input.charCodeAt(i) >> 8) & 0xff;
|
|
40
|
+
hash = Math.imul(hash, 0x01000193);
|
|
41
|
+
}
|
|
42
|
+
// 转无符号并补零到 8 位十六进制。
|
|
43
|
+
return (hash >>> 0).toString(16).padStart(8, "0");
|
|
44
|
+
}
|
|
45
|
+
/** 计算一个 host 调用输入的防御性哈希:对规范化 JSON 取 FNV-1a。 */
|
|
46
|
+
export function inputHash(value) {
|
|
47
|
+
return fnv1a(canonicalJson(value));
|
|
48
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import type { AskStats, NodeKind, PersonaSpec } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* 一条可导入的已完结 ask:前驱 run 里某具名 actor 第 `actorSeq` 次问答的结果。
|
|
4
|
+
* 数组下标即 actorSeq(见 {@link ImportedActorCandidate.entries}),所以这里不存 seq。
|
|
5
|
+
*/
|
|
6
|
+
export interface ImportedAskEntry {
|
|
7
|
+
/** 前驱记录的 inputHash(对指令正文)。运行期与本次 ask 的哈希逐条比对,一致才命中。 */
|
|
8
|
+
inputHash: string;
|
|
9
|
+
result: unknown;
|
|
10
|
+
stats?: AskStats;
|
|
11
|
+
/**
|
|
12
|
+
* 该 ask 结算后源会话的消息数({@link NodeRecord.messageBoundary})。**必填**:
|
|
13
|
+
* run service 的「无 marker 前驱整体拒绝」门保证每条可导条目都带边界,所以引擎这边
|
|
14
|
+
* 不必有缺席分支——种子截断没有边界就无从谈起。
|
|
15
|
+
*/
|
|
16
|
+
messageBoundary: number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* 前驱停下时**还在飞**的那一条 ask(`actorSeq === entries.length`,紧接前缀之后的 running 行)。
|
|
20
|
+
*
|
|
21
|
+
* 它没有结果可导入,导入的是**它已经跑出来的那段转录**:修订若在同一位置重发同一条指令
|
|
22
|
+
* (`inputHash` 相符),新会话就从这里接着跑,而不是把那半场对话扔掉重来
|
|
23
|
+
* (见 `docs/execution-engine.md`「How the engine consumes the cache」)。
|
|
24
|
+
*/
|
|
25
|
+
export interface ImportedInFlightAsk {
|
|
26
|
+
/** 前驱记录的 inputHash(对指令正文)。与本次 ask 的哈希相符才谈得上续跑。 */
|
|
27
|
+
inputHash: string;
|
|
28
|
+
/**
|
|
29
|
+
* 前驱**整个已结算会话**的消息数(不是某一条 ask 的记账边界——未完结的 ask 没有边界可记)。
|
|
30
|
+
* 它既含前缀那些完整交换,也含这半场未完的问答,正是续跑要接上的位置。
|
|
31
|
+
*/
|
|
32
|
+
messageBoundary: number;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* 前驱 run 里一个具名 actor 的可导入前缀。由 run service 从前驱 journal 构建(纯确定,可重建)。
|
|
36
|
+
*/
|
|
37
|
+
export interface ImportedActorCandidate {
|
|
38
|
+
/** 前驱记录的规范化 persona——运行期 createActor 比对用(不一致即弃该候选)。 */
|
|
39
|
+
persona: PersonaSpec;
|
|
40
|
+
/**
|
|
41
|
+
* 最长全 completed ask 前缀,按 actorSeq 0..n-1 索引。**可以为空**:带 {@link inFlight} 的候选
|
|
42
|
+
* 常常一条都没做完(扇出第一轮在飞时被修订,正是这个形状)。
|
|
43
|
+
*/
|
|
44
|
+
entries: ImportedAskEntry[];
|
|
45
|
+
/**
|
|
46
|
+
* 前驱停下时还在飞的那条 ask(若有)。只在转录源就是前驱自己那一行时导入——那半场对话只
|
|
47
|
+
* 存在于前驱的会话里,从更早祖先解析出的源只有完整前缀。
|
|
48
|
+
*/
|
|
49
|
+
inFlight?: ImportedInFlightAsk;
|
|
50
|
+
/**
|
|
51
|
+
* 经 `resumed_from` 链解析出的转录源会话 id。service 保证在场——链上没有任何祖先
|
|
52
|
+
* 持有该 actor 会话的候选在 service 侧就已弃置(降级为全新 actor),所以这里不是可选。
|
|
53
|
+
*/
|
|
54
|
+
transcriptSourceSessionId: string;
|
|
55
|
+
/**
|
|
56
|
+
* 前驱解析出的模型 pin,随种子带给 driver。**仅当真的导入了转录时生效**:一条也没命中的
|
|
57
|
+
* actor 走全新解析、不带 pin(见 scheduler 的 ensureSession)。
|
|
58
|
+
*/
|
|
59
|
+
resolvedModel?: string;
|
|
60
|
+
}
|
|
61
|
+
/** 一条可导入的世界节点(world-read / world-run),按内容 + 出现序匹配。 */
|
|
62
|
+
export interface ImportedWorldEntry {
|
|
63
|
+
inputHash: string;
|
|
64
|
+
kind: NodeKind;
|
|
65
|
+
result: unknown;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* 注入引擎的导入缓存(amend-resume 的加速结构)。**纯数据**:引擎保持零 I/O,这张表由
|
|
69
|
+
* run service 读前驱 journal 构建。
|
|
70
|
+
* 它不是真相源——每次命中都落一行真 dwf_node,丢了可从 `resumed_from` 重建。
|
|
71
|
+
*/
|
|
72
|
+
export interface ImportedRunCache {
|
|
73
|
+
/** 键 = 有效 actor 名(前驱内唯一且非空的那些)。 */
|
|
74
|
+
actors: ReadonlyMap<string, ImportedActorCandidate>;
|
|
75
|
+
/**
|
|
76
|
+
* 键 = `inputHash({op, args})`;值 = 按前驱 listNodes 插入序排好的队列——同一个
|
|
77
|
+
* `{op,args}` 的第 n 次出现对第 n 条记录,队列头即下一次命中。
|
|
78
|
+
*/
|
|
79
|
+
world: ReadonlyMap<string, ImportedWorldEntry[]>;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* 会话种子:分歧 actor 首次 live 派发时交给 {@link WorkflowDriver.createActorSession},
|
|
83
|
+
* 让新会话以源会话的**全保真转录前缀**开场(spec 的「转录截断」行)。
|
|
84
|
+
*/
|
|
85
|
+
export interface ActorSessionSeed {
|
|
86
|
+
/** 转录来源会话(前驱或更早祖先的该名 actor 会话)。 */
|
|
87
|
+
sourceSessionId: string;
|
|
88
|
+
/**
|
|
89
|
+
* 复制源会话前多少条消息 = 最后一条被消费导入 ask 的 {@link NodeRecord.messageBoundary}。
|
|
90
|
+
* count offset 跨前缀复制不变,所以这个值在链上任何持会话祖先处都直接可用。
|
|
91
|
+
*/
|
|
92
|
+
messageCount: number;
|
|
93
|
+
/** 承袭的模型 pin(转录接续下静默换模型正是 pin 要防的身份突变)。 */
|
|
94
|
+
resolvedModel?: string;
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=imported-cache-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imported-cache-types.d.ts","sourceRoot":"","sources":["../../src/engine/imported-cache-types.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAElE;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB;;;;OAIG;IACH,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,uDAAuD;IACvD,OAAO,EAAE,WAAW,CAAC;IACrB;;;OAGG;IACH,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B;;;OAGG;IACH,yBAAyB,EAAE,MAAM,CAAC;IAClC;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,sDAAsD;AACtD,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,mCAAmC;IACnC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IACpD;;;OAGG;IACH,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;CAClD;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,mCAAmC;IACnC,eAAe,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* amend-resume 导入缓存的**消费态**。
|
|
3
|
+
*
|
|
4
|
+
* 注入的 {@link ImportedRunCache} 是调用方构建的只读数据——run service 读前驱 journal 得到它,
|
|
5
|
+
* 崩溃后 resume 用同一个纯函数重建同一张表。所以「消费到哪了」不能就地写回那张表,必须是引擎
|
|
6
|
+
* 自己的状态:本模块就是这份状态,以及围绕它的全部判定(命中 / 分歧 / 种子)。
|
|
7
|
+
*
|
|
8
|
+
* 从 scheduler.ts 与 engine.ts 拆出来,理由同当初 scheduler 从 engine 拆出来:三个文件各自
|
|
9
|
+
* 聚焦、可读,且满足单文件行数上限。
|
|
10
|
+
*/
|
|
11
|
+
import type { ActorRef, ActorSessionSeed, ImportedActorCandidate, ImportedAskEntry, ImportedRunCache, ImportedWorldEntry, InstanceRef, NodeRecord, PersonaSpec } from "./types.js";
|
|
12
|
+
/**
|
|
13
|
+
* 一个已附着候选的 actor 的导入消费态:消费游标 + 分歧标志。
|
|
14
|
+
*
|
|
15
|
+
* **分歧单调**:`diverged` 一旦为真永不回头查缓存,导入后缀弃置不可复活。
|
|
16
|
+
*/
|
|
17
|
+
export declare class ImportedActorState {
|
|
18
|
+
private readonly candidate;
|
|
19
|
+
/** 已消费的导入条目数 = 下一个可命中的 actorSeq(也是转录截断边界的下标 + 1)。 */
|
|
20
|
+
private consumed;
|
|
21
|
+
private diverged;
|
|
22
|
+
/**
|
|
23
|
+
* 「续跑前驱在飞 ask」的那个 seq(没有续跑即缺席)。至多一个:续跑本身就是分歧,
|
|
24
|
+
* 分歧单调,所以第二次不会再有。
|
|
25
|
+
*/
|
|
26
|
+
private carriedSeq?;
|
|
27
|
+
constructor(candidate: ImportedActorCandidate);
|
|
28
|
+
/**
|
|
29
|
+
* fresh ask 在 seq 上问缓存:命中返回条目(并推进游标),否则置分歧并返回 undefined。
|
|
30
|
+
*
|
|
31
|
+
* 两种不命中同等处理:哈希不符(指令变了)与 `seq >= entries.length`(新脚本在此 actor 上
|
|
32
|
+
* 扩了新 ask)。分歧的**级联**是免费且动态的——上游 ask 转 live 拿到新结果,下游用它插值出的
|
|
33
|
+
* 指令哈希必变,于是下游自动分歧,不需要任何显式传播。
|
|
34
|
+
*
|
|
35
|
+
* 本方法只在导入缓存**开着**时被调用(关门后走 {@link takeIfPure}),所以未命中时可以谈续跑。
|
|
36
|
+
*/
|
|
37
|
+
take(seq: number, hash: string): ImportedAskEntry | undefined;
|
|
38
|
+
/**
|
|
39
|
+
* 缓存关闭后的问法:只有**纯**条目(前驱记下 `worldToolCalls === 0`)还能命中。纯 ask 只依赖指令与
|
|
40
|
+
* 转录前缀——两者都在哈希链里——与工作区无关,所以关门不影响它的答案。碰过外部世界的条目即便同哈希
|
|
41
|
+
* 也不给:它读过的工作区可能已被改写;这个 ask 转 live,actor 从此分歧(转录不再与前驱一致,
|
|
42
|
+
* 后缀条目不可复活)。没有 stats、或 stats 里没有这个键的老条目按「碰过」处理(保守)。
|
|
43
|
+
*
|
|
44
|
+
* 关门后同样不续跑在飞 ask:那半场转录里全是前驱对**旧工作区**的观察,与带工具的条目同理。
|
|
45
|
+
*/
|
|
46
|
+
takeIfPure(seq: number, hash: string): ImportedAskEntry | undefined;
|
|
47
|
+
/**
|
|
48
|
+
* 该 seq 的 ask 的答案是否**读自前驱的转录**:是则返回持有它的会话,否则 undefined。
|
|
49
|
+
*
|
|
50
|
+
* 成立当且仅当此刻仍未分歧、且游标已越过该 seq——分歧单调、准入按 seq 升序,所以这恰好是
|
|
51
|
+
* 「这一条被导入消费了」。两条路径各在判定之后立刻问:fresh ask 在 {@link take} 命中之后,
|
|
52
|
+
* 修订 run 的 resume 在 {@link reconcileRecorded} 之后(结算次序闸可能把事件推迟到同一个
|
|
53
|
+
* actor 更后的行已经置了分歧的时候,那时再问就会把一条导入行说成本 run 自己跑的)。
|
|
54
|
+
*/
|
|
55
|
+
sourceSessionAt(seq: number): string | undefined;
|
|
56
|
+
/** 该 seq 的 ask 是否续跑了前驱的在飞 ask(调度器据此决定 stats 记不记 worldToolCalls)。 */
|
|
57
|
+
carriedAt(seq: number): boolean;
|
|
58
|
+
/**
|
|
59
|
+
* 据一行**已记录**的 ask 重推分歧状态(修订 run 崩溃后 resume 时用)。
|
|
60
|
+
*
|
|
61
|
+
* 分歧状态不落库,而修订 run 的 resume 会把导入缓存整表重建。若不据 journal 行重推分歧点,
|
|
62
|
+
* 一个在原次执行中已于 seq k 分歧的 actor,其 seq k+n 的 fresh ask 可能恰好撞上导入条目的
|
|
63
|
+
* 哈希而被**错误导入**——那等于把一段与本 run 实际转录无关的历史塞回来。逐 seq 拿记录行的
|
|
64
|
+
* inputHash 与导入条目比对,恰好重建了原次执行当时的判定(准入按 seq 升序,hold 规则保证
|
|
65
|
+
* 这一点),因此这个重推是精确的,不是保守近似。`wasLive` 补上哈希看不见的那一种 live
|
|
66
|
+
* (缓存关闭后带工具的 ask,见 scheduler 的 tryImportedSettle)。
|
|
67
|
+
*
|
|
68
|
+
* `queuedBeforeClose` 是续跑判定的那一半事实:续跑与该 ask 的 `node-queued` 在准入的同一个
|
|
69
|
+
* 同步片里发生,所以「当时门开着」等价于「这条 node-queued 早于第一条 import-cache-closed」
|
|
70
|
+
* (见 engine-world.ts 的 recoverImportClosure)。必须精确——错判成续跑会让 seedActorTranscript
|
|
71
|
+
* 往一个**已经分歧**的会话里多抄一段前驱消息(driver 的幂等判据只看目标够不够长)。
|
|
72
|
+
*/
|
|
73
|
+
reconcileRecorded(seq: number, recordedHash: string, wasLive: boolean, queuedBeforeClose: boolean): void;
|
|
74
|
+
/**
|
|
75
|
+
* 分歧 actor 的会话种子:源会话 + 复制多少条消息 + 承袭的模型 pin。
|
|
76
|
+
*
|
|
77
|
+
* 边界取**最后一条被消费**的导入条目的记账值:在 seq k 分歧意味着 0..k-1 的问答都已按缓存
|
|
78
|
+
* 结算,新会话要接着的正是那 k 次完整交换之后的位置(含它们的 repair / nudge 轮)。
|
|
79
|
+
* 一条也没消费就没有种子——全新会话、全新模型解析、不带 pin:pin 是为「转录接续下不静默
|
|
80
|
+
* 换模型」存在的,没有接续就没有它的用武之地。
|
|
81
|
+
*
|
|
82
|
+
* **续跑是例外**:边界改取 `inFlight.messageBoundary`(前驱整个会话),因此一条都没消费也有
|
|
83
|
+
* 种子——那正是「扇出第一轮在飞时被修订」的形状。
|
|
84
|
+
*/
|
|
85
|
+
seed(): ActorSessionSeed | undefined;
|
|
86
|
+
/**
|
|
87
|
+
* 置分歧,并在此顺带判定这次未命中是不是**续跑前驱的在飞 ask**。
|
|
88
|
+
*
|
|
89
|
+
* 续跑的四个条件缺一不可:此前未分歧(否则本 actor 的转录早已不是前驱那条)、`seq` 恰在
|
|
90
|
+
* 前缀之后(在飞 ask 的位置)、整个前缀都已消费、指令哈希与在飞 ask 相符。`cacheOpen`
|
|
91
|
+
* 是第五个:关门之后那半场转录只是对旧工作区的观察,不比缓存的 world 读取更可信。
|
|
92
|
+
*/
|
|
93
|
+
private diverge;
|
|
94
|
+
private seedAt;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* world 节点的导入队列消费态:每个内容哈希一个游标(第 n 次出现对第 n 条记录)。
|
|
98
|
+
* 与 {@link ImportedActorState} 同理,游标是引擎的状态,注入的队列保持只读。
|
|
99
|
+
*/
|
|
100
|
+
export declare class ImportedWorldQueue {
|
|
101
|
+
private readonly world;
|
|
102
|
+
private readonly cursors;
|
|
103
|
+
constructor(world: ReadonlyMap<string, ImportedWorldEntry[]>);
|
|
104
|
+
/** 取该内容哈希的下一条记录,耗尽或从未记录即 undefined(调用方转 live)。 */
|
|
105
|
+
take(hash: string): ImportedWorldEntry | undefined;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* 为一个刚建出的 actor 找导入候选:按**有效名**查表,规范化 persona 一致才收。
|
|
109
|
+
*
|
|
110
|
+
* persona 比对用 `canonicalJson`——它跳过 undefined 成员、对象键排序,恰好就是要的规范化
|
|
111
|
+
* (`{name:"a"}` 与 `{name:"a", system: undefined}` 同值)。不一致即**弃整个候选**,该 actor
|
|
112
|
+
* 全新重跑:全保真转录下这是双重正确的——旧 system prompt 产的转录接新 persona 是身份错乱,
|
|
113
|
+
* 而「我把 persona 修好了」这个意图本来就是要重跑。
|
|
114
|
+
*
|
|
115
|
+
* 匿名 actor 永不附着:名字是缓存身份键,没有名字就没有可比对的坐标(代价已裁决)。
|
|
116
|
+
* 比对之所以在**运行期**而不是提交时静态比对两份脚本:名字与 persona 都是运行期值
|
|
117
|
+
* (`agent()` 的实参可以是动态表达式),静态比对是第二份真相,恰是本包处处要防的。
|
|
118
|
+
*/
|
|
119
|
+
export declare function matchImportedActor(cache: ImportedRunCache | undefined, spec: PersonaSpec): ImportedActorState | undefined;
|
|
120
|
+
/**
|
|
121
|
+
* 一次 ask 缓存命中要落的**真** dwf_node 行(新 siteId、拷贝 result / stats / 边界)。
|
|
122
|
+
*
|
|
123
|
+
* 边界值必须一起拷过去,否则**这个** run 自己就不能再被修订——链式修订靠的正是 count offset
|
|
124
|
+
* 跨前缀复制不变。
|
|
125
|
+
*/
|
|
126
|
+
export declare function importedAskRecord(runId: string, instance: InstanceRef, actor: ActorRef, seq: number, hash: string, entry: ImportedAskEntry): NodeRecord;
|
|
127
|
+
//# sourceMappingURL=imported-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imported-cache.d.ts","sourceRoot":"","sources":["../../src/engine/imported-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EACV,QAAQ,EACR,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,WAAW,EACX,UAAU,EACV,WAAW,EACZ,MAAM,YAAY,CAAC;AAEpB;;;;GAIG;AACH,qBAAa,kBAAkB;IAUjB,OAAO,CAAC,QAAQ,CAAC,SAAS;IATtC,qDAAqD;IACrD,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,QAAQ,CAAS;IACzB;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAC,CAAS;gBAEC,SAAS,EAAE,sBAAsB;IAE9D;;;;;;;;OAQG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAW7D;;;;;;;OAOG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAWnE;;;;;;;OAOG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAMhD,oEAAoE;IACpE,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI/B;;;;;;;;;;;;;;OAcG;IACH,iBAAiB,CACf,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,OAAO,EAChB,iBAAiB,EAAE,OAAO,GACzB,IAAI;IAmBP;;;;;;;;;;OAUG;IACH,IAAI,IAAI,gBAAgB,GAAG,SAAS;IAWpC;;;;;;OAMG;IACH,OAAO,CAAC,OAAO;IAcf,OAAO,CAAC,MAAM;CAQf;AAED;;;GAGG;AACH,qBAAa,kBAAkB;IAGjB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAFlC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;gBAExB,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAE7E,kDAAkD;IAClD,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;CASnD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,gBAAgB,GAAG,SAAS,EACnC,IAAI,EAAE,WAAW,GAChB,kBAAkB,GAAG,SAAS,CAUhC;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,WAAW,EACrB,KAAK,EAAE,QAAQ,EACf,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,gBAAgB,GACtB,UAAU,CAgBZ"}
|