@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,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 预置产物 spec 的形状校验。
|
|
3
|
+
*
|
|
4
|
+
* ⚠ 术语:artifact = **用户面产物**(脚本发布给用户看的看板),不是 `RunSettlement.artifact`
|
|
5
|
+
* 那个顶层返回值。
|
|
6
|
+
*
|
|
7
|
+
* 为什么校验在**引擎核心**而不是 driver:预置声明根本不过 driver(它没有可执行的效应),
|
|
8
|
+
* 而一个形状不合法的 spec 必须在落 journal 之前被拦下——journal 里的记录是投影与冷恢复的
|
|
9
|
+
* 唯一真相,一条画不出来的 spec 落了库就会在每个读面上重新炸一次。
|
|
10
|
+
*
|
|
11
|
+
* 为什么是手写而不是 zod:本包零运行时依赖(facade / 编译 / 引擎全部只靠 typescript),
|
|
12
|
+
* 而 spec 的形状小到一屏。加一个 schema 库来校验四个对象,代价是把整条纯包的依赖前提改掉。
|
|
13
|
+
*
|
|
14
|
+
* 返回**人可读的一句话**而不是 boolean:这条消息会经 `ArtifactSpecInvalid` 落进 run 的
|
|
15
|
+
* failure_json,读者(模型或作者)要据它改脚本,"invalid spec" 帮不上任何忙。
|
|
16
|
+
*/
|
|
17
|
+
import type { ArtifactPresetOp } from "../facade/registry.js";
|
|
18
|
+
/** 一条不合法的理由;`undefined` 即通过。 */
|
|
19
|
+
type ArtifactSpecProblem = string | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* 校验一个预置 spec。`op` 决定必填字段,公共部分(title / description 的长度)四种都查。
|
|
22
|
+
* 通过的 spec 保证:是普通对象、必填字段在场且形状正确、规范化后不超 8KB。
|
|
23
|
+
*/
|
|
24
|
+
export declare function validateArtifactSpec(op: ArtifactPresetOp, spec: unknown): ArtifactSpecProblem;
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=artifact-spec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifact-spec.d.ts","sourceRoot":"","sources":["../../src/engine/artifact-spec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D,gCAAgC;AAChC,KAAK,mBAAmB,GAAG,MAAM,GAAG,SAAS,CAAC;AAE9C;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,GAAG,mBAAmB,CAgB7F"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 预置产物 spec 的形状校验。
|
|
3
|
+
*
|
|
4
|
+
* ⚠ 术语:artifact = **用户面产物**(脚本发布给用户看的看板),不是 `RunSettlement.artifact`
|
|
5
|
+
* 那个顶层返回值。
|
|
6
|
+
*
|
|
7
|
+
* 为什么校验在**引擎核心**而不是 driver:预置声明根本不过 driver(它没有可执行的效应),
|
|
8
|
+
* 而一个形状不合法的 spec 必须在落 journal 之前被拦下——journal 里的记录是投影与冷恢复的
|
|
9
|
+
* 唯一真相,一条画不出来的 spec 落了库就会在每个读面上重新炸一次。
|
|
10
|
+
*
|
|
11
|
+
* 为什么是手写而不是 zod:本包零运行时依赖(facade / 编译 / 引擎全部只靠 typescript),
|
|
12
|
+
* 而 spec 的形状小到一屏。加一个 schema 库来校验四个对象,代价是把整条纯包的依赖前提改掉。
|
|
13
|
+
*
|
|
14
|
+
* 返回**人可读的一句话**而不是 boolean:这条消息会经 `ArtifactSpecInvalid` 落进 run 的
|
|
15
|
+
* failure_json,读者(模型或作者)要据它改脚本,"invalid spec" 帮不上任何忙。
|
|
16
|
+
*/
|
|
17
|
+
import { ARTIFACT_CAPS } from "../facade/artifact-caps.js";
|
|
18
|
+
import { canonicalJson } from "./hash.js";
|
|
19
|
+
/**
|
|
20
|
+
* 校验一个预置 spec。`op` 决定必填字段,公共部分(title / description 的长度)四种都查。
|
|
21
|
+
* 通过的 spec 保证:是普通对象、必填字段在场且形状正确、规范化后不超 8KB。
|
|
22
|
+
*/
|
|
23
|
+
export function validateArtifactSpec(op, spec) {
|
|
24
|
+
if (!isPlainObject(spec))
|
|
25
|
+
return `${op} spec must be an object literal, got ${describe(spec)}`;
|
|
26
|
+
const common = checkOptions(spec);
|
|
27
|
+
if (common !== undefined)
|
|
28
|
+
return common;
|
|
29
|
+
const shape = checkShape(op, spec);
|
|
30
|
+
if (shape !== undefined)
|
|
31
|
+
return shape;
|
|
32
|
+
// 体积上限最后查:先给出形状上的具体错误,再谈大小——一个既畸形又过大的 spec,作者要先
|
|
33
|
+
// 知道它畸形在哪。
|
|
34
|
+
const bytes = utf8ByteLength(canonicalJson(spec));
|
|
35
|
+
if (bytes > ARTIFACT_CAPS.maxSpecSerializedBytes) {
|
|
36
|
+
return `${op} spec is ${bytes} bytes serialized, over the ${ARTIFACT_CAPS.maxSpecSerializedBytes}-byte limit`;
|
|
37
|
+
}
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
function checkShape(op, spec) {
|
|
41
|
+
if (op === "chart") {
|
|
42
|
+
const x = checkField(spec.x, "x");
|
|
43
|
+
if (x !== undefined)
|
|
44
|
+
return x;
|
|
45
|
+
const y = spec.y;
|
|
46
|
+
if (Array.isArray(y)) {
|
|
47
|
+
if (y.length === 0)
|
|
48
|
+
return "chart spec y is an empty array; give it at least one series";
|
|
49
|
+
for (const [index, entry] of y.entries()) {
|
|
50
|
+
const problem = checkField(entry, `y[${index}]`);
|
|
51
|
+
if (problem !== undefined)
|
|
52
|
+
return problem;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
const problem = checkField(y, "y");
|
|
57
|
+
if (problem !== undefined)
|
|
58
|
+
return problem;
|
|
59
|
+
}
|
|
60
|
+
if (spec.type !== undefined && !["line", "bar", "scatter"].includes(String(spec.type))) {
|
|
61
|
+
return `chart spec type must be "line", "bar" or "scatter", got ${describe(spec.type)}`;
|
|
62
|
+
}
|
|
63
|
+
if (spec.scale !== undefined && !["linear", "log"].includes(String(spec.scale))) {
|
|
64
|
+
return `chart spec scale must be "linear" or "log", got ${describe(spec.scale)}`;
|
|
65
|
+
}
|
|
66
|
+
if (spec.baseline !== undefined)
|
|
67
|
+
return checkField(spec.baseline, "baseline");
|
|
68
|
+
return undefined;
|
|
69
|
+
}
|
|
70
|
+
if (op === "table") {
|
|
71
|
+
const columns = checkFieldList(spec.columns, "columns");
|
|
72
|
+
if (columns !== undefined)
|
|
73
|
+
return columns;
|
|
74
|
+
if (spec.key !== undefined && !isNonEmptyString(spec.key)) {
|
|
75
|
+
return "table spec key must be a non-empty string (the field that identifies a row)";
|
|
76
|
+
}
|
|
77
|
+
return undefined;
|
|
78
|
+
}
|
|
79
|
+
if (op === "metrics")
|
|
80
|
+
return checkFieldList(spec.metrics, "metrics");
|
|
81
|
+
// board
|
|
82
|
+
if (!isNonEmptyString(spec.key))
|
|
83
|
+
return "board spec key must be a non-empty string (the field that identifies a card)";
|
|
84
|
+
if (!isNonEmptyString(spec.status)) {
|
|
85
|
+
return "board spec status must be a non-empty string (the field that picks a card's column)";
|
|
86
|
+
}
|
|
87
|
+
if (!Array.isArray(spec.columns) || spec.columns.length === 0) {
|
|
88
|
+
return "board spec columns must be a non-empty array of strings (the column order)";
|
|
89
|
+
}
|
|
90
|
+
for (const [index, column] of spec.columns.entries()) {
|
|
91
|
+
if (!isNonEmptyString(column))
|
|
92
|
+
return `board spec columns[${index}] must be a non-empty string`;
|
|
93
|
+
}
|
|
94
|
+
// cardTitle 是**字段名**(哪个字段当卡片标题),与 ArtifactOptions.title(看板自己的标题)
|
|
95
|
+
// 是两回事——它们之前撞在同一个键上,改名正是为了让一块板能同时说出两者。
|
|
96
|
+
if (spec.cardTitle !== undefined && !isNonEmptyString(spec.cardTitle)) {
|
|
97
|
+
return "board spec cardTitle must be a non-empty string (the field used as the card title)";
|
|
98
|
+
}
|
|
99
|
+
if (spec.detail !== undefined)
|
|
100
|
+
return checkFieldList(spec.detail, "detail");
|
|
101
|
+
return undefined;
|
|
102
|
+
}
|
|
103
|
+
/** 公共的展示元数据(`ArtifactOptions`):类型与长度。 */
|
|
104
|
+
function checkOptions(spec) {
|
|
105
|
+
if (spec.title !== undefined) {
|
|
106
|
+
if (typeof spec.title !== "string")
|
|
107
|
+
return `spec title must be a string, got ${describe(spec.title)}`;
|
|
108
|
+
if (spec.title.length > ARTIFACT_CAPS.maxTitleLength) {
|
|
109
|
+
return `spec title is ${spec.title.length} characters, over the ${ARTIFACT_CAPS.maxTitleLength} limit`;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
if (spec.description !== undefined) {
|
|
113
|
+
if (typeof spec.description !== "string") {
|
|
114
|
+
return `spec description must be a string, got ${describe(spec.description)}`;
|
|
115
|
+
}
|
|
116
|
+
if (spec.description.length > ARTIFACT_CAPS.maxDescriptionLength) {
|
|
117
|
+
return `spec description is ${spec.description.length} characters, over the ` +
|
|
118
|
+
`${ARTIFACT_CAPS.maxDescriptionLength} limit`;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
if (spec.primary !== undefined && typeof spec.primary !== "boolean") {
|
|
122
|
+
return `spec primary must be a boolean, got ${describe(spec.primary)}`;
|
|
123
|
+
}
|
|
124
|
+
return undefined;
|
|
125
|
+
}
|
|
126
|
+
/** 一个非空的 `ArtifactField` 列表。 */
|
|
127
|
+
function checkFieldList(value, where) {
|
|
128
|
+
if (!Array.isArray(value) || value.length === 0) {
|
|
129
|
+
return `spec ${where} must be a non-empty array of fields ({ field: "…" })`;
|
|
130
|
+
}
|
|
131
|
+
for (const [index, entry] of value.entries()) {
|
|
132
|
+
const problem = checkField(entry, `${where}[${index}]`);
|
|
133
|
+
if (problem !== undefined)
|
|
134
|
+
return problem;
|
|
135
|
+
}
|
|
136
|
+
return undefined;
|
|
137
|
+
}
|
|
138
|
+
/** 一个 `ArtifactField`:`field` 必须是非空字符串(点路径),label / unit 可选。 */
|
|
139
|
+
function checkField(value, where) {
|
|
140
|
+
if (!isPlainObject(value))
|
|
141
|
+
return `spec ${where} must be { field: "…" }, got ${describe(value)}`;
|
|
142
|
+
if (!isNonEmptyString(value.field)) {
|
|
143
|
+
return `spec ${where}.field must be a non-empty string (a dot path into the item, e.g. "timing.after")`;
|
|
144
|
+
}
|
|
145
|
+
for (const key of ["label", "unit"]) {
|
|
146
|
+
if (value[key] !== undefined && typeof value[key] !== "string") {
|
|
147
|
+
return `spec ${where}.${key} must be a string, got ${describe(value[key])}`;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
return undefined;
|
|
151
|
+
}
|
|
152
|
+
function isPlainObject(value) {
|
|
153
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
154
|
+
}
|
|
155
|
+
function isNonEmptyString(value) {
|
|
156
|
+
return typeof value === "string" && value.trim() !== "";
|
|
157
|
+
}
|
|
158
|
+
/** 出错文案里的实得值描述(不打印整个对象——一个 8KB 的 spec 会把 failure_json 塞满)。 */
|
|
159
|
+
function describe(value) {
|
|
160
|
+
if (value === null)
|
|
161
|
+
return "null";
|
|
162
|
+
if (Array.isArray(value))
|
|
163
|
+
return `array (${value.length} items)`;
|
|
164
|
+
if (typeof value === "object")
|
|
165
|
+
return "object";
|
|
166
|
+
if (typeof value === "string")
|
|
167
|
+
return JSON.stringify(value.slice(0, 40));
|
|
168
|
+
return String(value);
|
|
169
|
+
}
|
|
170
|
+
/** UTF-8 字节数(与 report 上限同一把尺)。 */
|
|
171
|
+
function utf8ByteLength(value) {
|
|
172
|
+
return new TextEncoder().encode(value).length;
|
|
173
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* driver 对一条 ask 的**观察**词汇表:用量({@link AskStats})与进度({@link AskProgress})——
|
|
3
|
+
* 同一次 turn 解析上报的两半,一半是账,一半是「还在动吗」。
|
|
4
|
+
*
|
|
5
|
+
* 从 types.ts 拆出的原因与 imported-cache-types.ts 同一条:那份契约已到 oxlint 的 max-lines
|
|
6
|
+
* 上限。公开面不变——types.ts 原地再导出这里的每一个名字,导入路径仍是 `./types.js`。
|
|
7
|
+
*/
|
|
8
|
+
/** driver 每完成一次 ask 上报的用量统计。 */
|
|
9
|
+
export interface AskStats {
|
|
10
|
+
tokens: number;
|
|
11
|
+
toolCalls: number;
|
|
12
|
+
turns: number;
|
|
13
|
+
/**
|
|
14
|
+
* 其中**看或动了外部世界**的调用数:读文件、跑命令、访问网络。
|
|
15
|
+
* 不含只把结果或问题交回引擎的协议工具(`submit_result`、`escalate`),所以一条只作答的 typed ask
|
|
16
|
+
* 这里是 0——那样的 ask 是**纯**的,只依赖指令与转录前缀,导入缓存关闭之后仍可从缓存结算。
|
|
17
|
+
* 老 journal 行没有这个键,一律按「碰过」处理(保守)。
|
|
18
|
+
*/
|
|
19
|
+
worldToolCalls?: number;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* `node-queued` 上 `instructionsHead` 的字符上限(240)。够一两句把这次 ask 交代清楚,
|
|
23
|
+
* 又不至于让事件表长出一份指令副本——完整指令在 `dwf_node.input_json` 那一侧。
|
|
24
|
+
*/
|
|
25
|
+
export declare const INSTRUCTIONS_HEAD_MAX_CHARS = 240;
|
|
26
|
+
/** `node-progress` 上 `lastTool.name` 的字符上限(64):工具名,不是描述。 */
|
|
27
|
+
export declare const LAST_TOOL_NAME_MAX_CHARS = 64;
|
|
28
|
+
/**
|
|
29
|
+
* `node-progress` 上 `lastTool.target` 的字符上限(120):一条给人看的线索(文件路径 /
|
|
30
|
+
* 命令头),不是入参本身——入参可以装下任何东西,而这条事件会被主代理读、被 GUI 画。
|
|
31
|
+
*/
|
|
32
|
+
export declare const LAST_TOOL_TARGET_MAX_CHARS = 120;
|
|
33
|
+
/**
|
|
34
|
+
* 最近一次被观察到的工具调用({@link AskProgress} 的 `lastTool`)。
|
|
35
|
+
* `target` 是给人看的**线索**,不是入参:文件类工具给路径,Bash 给命令头,认不出就缺席。
|
|
36
|
+
*/
|
|
37
|
+
export interface AskLastTool {
|
|
38
|
+
/** 工具名,≤ {@link LAST_TOOL_NAME_MAX_CHARS}。 */
|
|
39
|
+
name: string;
|
|
40
|
+
/** 简短目标,≤ {@link LAST_TOOL_TARGET_MAX_CHARS};无从判断时缺席(不合成占位串)。 */
|
|
41
|
+
target?: string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* 一条 ask 在**turn 解析那一刻**的进度。
|
|
45
|
+
* 与 {@link AskStats} 是同一次 driver 回报的两半:stats 是账(token),progress 是「还在动吗」。
|
|
46
|
+
*/
|
|
47
|
+
export interface AskProgress {
|
|
48
|
+
/** 本 ask 内已解析的 turn 数,从 1 起(nudge 轮计数;repair 轮不计——它们不结束 turn)。 */
|
|
49
|
+
turn: number;
|
|
50
|
+
/** 本 ask 内累计的工具调用数,与 {@link AskStats.toolCalls} 同一个计数器。 */
|
|
51
|
+
toolCalls: number;
|
|
52
|
+
lastTool?: AskLastTool;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=ask-observation-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ask-observation-types.d.ts","sourceRoot":"","sources":["../../src/engine/ask-observation-types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,gCAAgC;AAChC,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAE/C,4DAA4D;AAC5D,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C;;;GAGG;AACH,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAE9C;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* driver 对一条 ask 的**观察**词汇表:用量({@link AskStats})与进度({@link AskProgress})——
|
|
3
|
+
* 同一次 turn 解析上报的两半,一半是账,一半是「还在动吗」。
|
|
4
|
+
*
|
|
5
|
+
* 从 types.ts 拆出的原因与 imported-cache-types.ts 同一条:那份契约已到 oxlint 的 max-lines
|
|
6
|
+
* 上限。公开面不变——types.ts 原地再导出这里的每一个名字,导入路径仍是 `./types.js`。
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* `node-queued` 上 `instructionsHead` 的字符上限(240)。够一两句把这次 ask 交代清楚,
|
|
10
|
+
* 又不至于让事件表长出一份指令副本——完整指令在 `dwf_node.input_json` 那一侧。
|
|
11
|
+
*/
|
|
12
|
+
export const INSTRUCTIONS_HEAD_MAX_CHARS = 240;
|
|
13
|
+
/** `node-progress` 上 `lastTool.name` 的字符上限(64):工具名,不是描述。 */
|
|
14
|
+
export const LAST_TOOL_NAME_MAX_CHARS = 64;
|
|
15
|
+
/**
|
|
16
|
+
* `node-progress` 上 `lastTool.target` 的字符上限(120):一条给人看的线索(文件路径 /
|
|
17
|
+
* 命令头),不是入参本身——入参可以装下任何东西,而这条事件会被主代理读、被 GUI 画。
|
|
18
|
+
*/
|
|
19
|
+
export const LAST_TOOL_TARGET_MAX_CHARS = 120;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ask 的**出生事实**:`node-queued` 带的那几样,以及缓存命中的 `node-settled` 重发的同一份
|
|
3
|
+
* (types.ts 的 `node-settled`;docs/execution-engine.md「Events」)。
|
|
4
|
+
*
|
|
5
|
+
* 从 scheduler.ts 拆出(oxlint max-lines 上限 400 行)。任务摘要的规则也搬到这里:两条出生事件
|
|
6
|
+
* 带的必须是逐字同一个串,同一个函数算就不会漂。
|
|
7
|
+
*/
|
|
8
|
+
import type { ImportedActorState } from "./imported-cache.js";
|
|
9
|
+
import { type ActorRef } from "./types.js";
|
|
10
|
+
/** 缓存命中的 ask 结算在 `{type, instance, outcome, cached, error?}` 之外多带的键。 */
|
|
11
|
+
export interface CachedAskFacts {
|
|
12
|
+
kind: "ask";
|
|
13
|
+
actor: ActorRef;
|
|
14
|
+
actorSeq: number;
|
|
15
|
+
instructionsHead?: string;
|
|
16
|
+
sourceSessionId?: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* 一次缓存命中的出生事实。**在命中判定的那一刻取**:`sourceSessionId` 读的是那一刻的导入消费态
|
|
20
|
+
* ({@link ImportedActorState.sourceSessionAt}),而事件本身可能被结算次序闸推迟。
|
|
21
|
+
*/
|
|
22
|
+
export declare function cachedAskFacts(actor: ActorRef, seq: number, instructions: string, imported: ImportedActorState | undefined): CachedAskFacts;
|
|
23
|
+
/**
|
|
24
|
+
* 作者指令的开头({@link INSTRUCTIONS_HEAD_MAX_CHARS} 个字符,去两端空白,**不加省略号**)。
|
|
25
|
+
* 空指令返回 undefined:缺席的键比一个空串诚实——读面据此退回「不知道它被交代了什么」。
|
|
26
|
+
*/
|
|
27
|
+
export declare function headOfInstructions(instructions: string): string | undefined;
|
|
28
|
+
//# sourceMappingURL=cached-ask-facts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cached-ask-facts.d.ts","sourceRoot":"","sources":["../../src/engine/cached-ask-facts.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAA+B,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAExE,wEAAwE;AACxE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE,QAAQ,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,QAAQ,EACf,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,kBAAkB,GAAG,SAAS,GACvC,cAAc,CAUhB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAM3E"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ask 的**出生事实**:`node-queued` 带的那几样,以及缓存命中的 `node-settled` 重发的同一份
|
|
3
|
+
* (types.ts 的 `node-settled`;docs/execution-engine.md「Events」)。
|
|
4
|
+
*
|
|
5
|
+
* 从 scheduler.ts 拆出(oxlint max-lines 上限 400 行)。任务摘要的规则也搬到这里:两条出生事件
|
|
6
|
+
* 带的必须是逐字同一个串,同一个函数算就不会漂。
|
|
7
|
+
*/
|
|
8
|
+
import { INSTRUCTIONS_HEAD_MAX_CHARS } from "./types.js";
|
|
9
|
+
/**
|
|
10
|
+
* 一次缓存命中的出生事实。**在命中判定的那一刻取**:`sourceSessionId` 读的是那一刻的导入消费态
|
|
11
|
+
* ({@link ImportedActorState.sourceSessionAt}),而事件本身可能被结算次序闸推迟。
|
|
12
|
+
*/
|
|
13
|
+
export function cachedAskFacts(actor, seq, instructions, imported) {
|
|
14
|
+
const instructionsHead = headOfInstructions(instructions);
|
|
15
|
+
const sourceSessionId = imported?.sourceSessionAt(seq);
|
|
16
|
+
return {
|
|
17
|
+
kind: "ask",
|
|
18
|
+
actor,
|
|
19
|
+
actorSeq: seq,
|
|
20
|
+
...(instructionsHead === undefined ? {} : { instructionsHead }),
|
|
21
|
+
...(sourceSessionId === undefined ? {} : { sourceSessionId }),
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* 作者指令的开头({@link INSTRUCTIONS_HEAD_MAX_CHARS} 个字符,去两端空白,**不加省略号**)。
|
|
26
|
+
* 空指令返回 undefined:缺席的键比一个空串诚实——读面据此退回「不知道它被交代了什么」。
|
|
27
|
+
*/
|
|
28
|
+
export function headOfInstructions(instructions) {
|
|
29
|
+
const trimmed = instructions.trim();
|
|
30
|
+
if (trimmed.length === 0)
|
|
31
|
+
return undefined;
|
|
32
|
+
return trimmed.length <= INSTRUCTIONS_HEAD_MAX_CHARS
|
|
33
|
+
? trimmed
|
|
34
|
+
: trimmed.slice(0, INSTRUCTIONS_HEAD_MAX_CHARS);
|
|
35
|
+
}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 自适应并发控制器:一个 provider key 上的纯 AIMD 状态机。
|
|
3
|
+
*
|
|
4
|
+
* 纯包纪律:不读时钟、不做 I/O——`now`(ms since epoch)一律由调用方传入;本类只回答
|
|
5
|
+
* 「cap 现在是多少、能不能准入、这次信号让 cap 变了没有」。谁喂信号、谁排队(bootstrap 的进程级
|
|
6
|
+
* 治理器)都在包外。
|
|
7
|
+
*
|
|
8
|
+
* 度量单位是**模型请求**(每一次尝试):`inFlight` = 已准入、尚未 release 的请求数。
|
|
9
|
+
* 没有 ask 级计数——一个子代理同时只有一个请求在飞,「≤ N 个请求」与「≤ N 个子代理在跑」等价。
|
|
10
|
+
*
|
|
11
|
+
* 批次阻尼靠 **epoch**:每次准入记下当时的 epoch,每次限流裁决 epoch += 1。一个 429 只在
|
|
12
|
+
* 它的请求是在**当前** cap 下发出(epoch 相同)时才评价当前 cap;旧 epoch 的 429 评价的是一个已被
|
|
13
|
+
* 砍掉的 cap,只清 streak、刷新 cooldown。成功同理:只有当前 epoch 的成功计入 streak。
|
|
14
|
+
*
|
|
15
|
+
* 信号方法都返回本次信号引起的 cap 变化列表(通常 0 或 1 条;空闲重置紧接着一次限流时会是 2 条),
|
|
16
|
+
* 调用方原样扇出成 `concurrency-changed` 事件。
|
|
17
|
+
*/
|
|
18
|
+
import type { ConcurrencyChange, ConcurrencyChangeReason } from "./types.js";
|
|
19
|
+
/**
|
|
20
|
+
* 限流即 `cap = max(FLOOR, floor(cap × 0.75))`(系数从 0.5 改为 0.75):
|
|
21
|
+
* 减半对「只多了一两个」的越界反应过猛——闸门是请求级的,一次 429 说明 cap 高了,很少说明高了一倍。
|
|
22
|
+
*/
|
|
23
|
+
export declare const CONCURRENCY_DECREASE_FACTOR = 0.75;
|
|
24
|
+
/** 加性递增步长。 */
|
|
25
|
+
export declare const CONCURRENCY_INCREASE_STEP = 1;
|
|
26
|
+
/**
|
|
27
|
+
* 每 +1 需要的连续成功模型请求数 K。只有一档。该值从 40 降到 4:
|
|
28
|
+
* 探测失败的代价只是一个请求撞一次 429 然后退回 `lastGood`(已证明可用的水位),不值得用 40 次
|
|
29
|
+
* 成功去换一次试探。
|
|
30
|
+
*/
|
|
31
|
+
export declare const CONCURRENCY_INCREASE_AFTER_SUCCESSES = 4;
|
|
32
|
+
/** 永远至少有一个探针在跑。 */
|
|
33
|
+
export declare const CONCURRENCY_FLOOR = 1;
|
|
34
|
+
/** 某 key 空闲这么久(且无在飞)后遗忘学到的 cap,回起点 `initial`(决策 20)。 */
|
|
35
|
+
export declare const CONCURRENCY_IDLE_RESET_MS = 300000;
|
|
36
|
+
/** 会令 cap 减少的限流类原因。 */
|
|
37
|
+
export type ConcurrencyThrottleReason = Extract<ConcurrencyChangeReason, "rate_limited" | "provider_overloaded" | "offpeak_queued">;
|
|
38
|
+
/** 控制器的只读快照(供测试断言与治理器投影 run 头的 `concurrency`)。 */
|
|
39
|
+
export interface ConcurrencyControllerSnapshot {
|
|
40
|
+
readonly key: string;
|
|
41
|
+
/** 起点与空闲重置的落点:默认并发 D。 */
|
|
42
|
+
readonly initial: number;
|
|
43
|
+
/** 自动增长的上界(治理器定,可随时挪动;恒 ≥ initial)。 */
|
|
44
|
+
readonly growthLimit: number;
|
|
45
|
+
readonly cap: number;
|
|
46
|
+
/** 限流裁决计数;准入时发给请求,请求结束时带回来比对。 */
|
|
47
|
+
readonly epoch: number;
|
|
48
|
+
readonly inFlight: number;
|
|
49
|
+
readonly waiters: number;
|
|
50
|
+
readonly successStreak: number;
|
|
51
|
+
readonly cooldownUntil?: number;
|
|
52
|
+
readonly lastRequestAt?: number;
|
|
53
|
+
readonly lastGood?: number;
|
|
54
|
+
readonly lastBad?: number;
|
|
55
|
+
/** 最近一次被拒(不论 epoch)的时刻;五分钟内有它就不起跳({@link ConcurrencyController.seed})。 */
|
|
56
|
+
readonly lastThrottledAt?: number;
|
|
57
|
+
}
|
|
58
|
+
export declare class ConcurrencyController {
|
|
59
|
+
readonly key: string;
|
|
60
|
+
readonly initial: number;
|
|
61
|
+
private cap;
|
|
62
|
+
private growthLimit_;
|
|
63
|
+
private epoch;
|
|
64
|
+
private inFlight;
|
|
65
|
+
private waiters_;
|
|
66
|
+
private successStreak;
|
|
67
|
+
private cooldownUntil?;
|
|
68
|
+
private lastRequestAt?;
|
|
69
|
+
private lastGood?;
|
|
70
|
+
private lastBad?;
|
|
71
|
+
private lastThrottledAt?;
|
|
72
|
+
/**
|
|
73
|
+
* @param key provider key(`${providerId}/${modelId}`),只用于填进 change 事件——控制器自己
|
|
74
|
+
* 对它无感。放在构造参数而不是每次信号传入:一个控制器只服务一个 key,这是身份不是参数。
|
|
75
|
+
* @param initial 默认并发 D(docs/dynamic-workflow/concurrency.md「Two bounds on a run」):cap 的
|
|
76
|
+
* 起点,也是空闲重置的落点。它**不是**上界。
|
|
77
|
+
* @param growthLimit 自动增长的上界;缺省即 `initial`(只回落、不越过起点的旧行为)。治理器按
|
|
78
|
+
* `max(2D, 用过这个 key 的在飞 run 的最大上界)` 给出并随时经 {@link setGrowthLimit} 挪动。
|
|
79
|
+
*/
|
|
80
|
+
constructor(key: string, initial: number, growthLimit?: number);
|
|
81
|
+
snapshot(): ConcurrencyControllerSnapshot;
|
|
82
|
+
/**
|
|
83
|
+
* 闸门(准入条件):在飞请求数低于 cap 且不在 Retry-After 冷却中。纯查询,不做空闲重置——
|
|
84
|
+
* 调用方(治理器)在准入路径上先调 {@link observe}(准入也是一次「信号」,空闲一小时后的第一个
|
|
85
|
+
* run 要立刻从起点 `initial` 起步,决策 20)。
|
|
86
|
+
*/
|
|
87
|
+
canAdmit(now: number): boolean;
|
|
88
|
+
/** 只做空闲重置检查的「空信号」(准入前、observer 放行前用)。 */
|
|
89
|
+
observe(now: number): ConcurrencyChange[];
|
|
90
|
+
/**
|
|
91
|
+
* 一个请求被准入:`inFlight++`、刷新 `lastRequestAt`,返回它所属的 epoch(请求结束时带回来)。
|
|
92
|
+
* 不做空闲重置——调用方已在 {@link observe} 里做过;这里若再做,一个刚被 observe 判定「不空闲」
|
|
93
|
+
* 的准入不可能变成空闲。
|
|
94
|
+
*/
|
|
95
|
+
admitted(now: number): number;
|
|
96
|
+
/**
|
|
97
|
+
* 一个请求成功结束:`inFlight--`;只有**当前 epoch** 的成功使
|
|
98
|
+
* `successStreak++`——旧 epoch 的成功证明的是旧 cap 下退避压低后的负载,不是新 cap 可以更高。
|
|
99
|
+
* `successStreak ≥ K` 即**证明**当前 cap 可用:`lastGood = max(lastGood, cap)`(决策 40:只有
|
|
100
|
+
* 完成的 streak 能设 lastGood,减少 cap 不能)。再满足有等待者 **且** `cap < growthLimit` → +1。
|
|
101
|
+
* 无等待者时 streak 照累积但不兑现(决策 15)。
|
|
102
|
+
*/
|
|
103
|
+
succeeded(now: number, epoch: number): ConcurrencyChange[];
|
|
104
|
+
/**
|
|
105
|
+
* 被限流/过载。一律 `inFlight--`、清 streak、带 Retry-After 则把 cooldown
|
|
106
|
+
* 推到更晚者。
|
|
107
|
+
*
|
|
108
|
+
* 只有 `epoch === 当前 epoch` 的 429 才动 cap:它是在当前 cap 下发出的请求,是对当前 cap 的评价;
|
|
109
|
+
* 旧 epoch 的 429 忽略(不发事件)。当前 epoch 的分两档:在 `lastGood` **之上**探测被限流 → 退回
|
|
110
|
+
* `lastGood`(记 `lastBad`,不按系数减);否则(`lastGood` 缺席或 `cap ≤ lastGood`:墙下移了)→
|
|
111
|
+
* `cap = max(FLOOR, floor(cap × 0.75))`,记 `lastBad = 旧 cap`,并**清掉** `lastGood`——它刚被
|
|
112
|
+
* 证伪,而新 cap 还没被任何 streak 证明(减 cap 不设 lastGood)。两档之后 `epoch += 1`——
|
|
113
|
+
* 即便 cap 已在地板、数值没变,也翻一页:同一批请求只能触发一次裁决。
|
|
114
|
+
*/
|
|
115
|
+
throttled(now: number, epoch: number, reason: ConcurrencyThrottleReason, retryAfterMs?: number): ConcurrencyChange[];
|
|
116
|
+
/** 瞬态但非限流的失败(timeout / 5xx / 网络):`inFlight--`、清 streak,cap 不动。 */
|
|
117
|
+
failedTransient(now: number): ConcurrencyChange[];
|
|
118
|
+
/** 一个请求以永久失败 / 取消终结,或 ticket 只见 release 没见终结事件:只做 `inFlight--`。 */
|
|
119
|
+
ended(now: number): ConcurrencyChange[];
|
|
120
|
+
/** 治理器在队列变化时喂入的等待者数(有需求才加 cap)。 */
|
|
121
|
+
waiters(now: number, count: number): ConcurrencyChange[];
|
|
122
|
+
/**
|
|
123
|
+
* 挪动自动增长的上界(docs/dynamic-workflow/concurrency.md「Increase」)。这是控制器里唯一一个
|
|
124
|
+
* 不归它自己管的数:治理器按「2D 与用过这个 key 的在飞 run 的最大上界取大」算出来,run 来去、
|
|
125
|
+
* retune 都会让它变。恒夹到 ≥ initial。
|
|
126
|
+
*
|
|
127
|
+
* 抬高什么都不立刻改:cap 照旧一级一级爬。压低到 cap 之下则当场把 cap 拉到新上界并发一条
|
|
128
|
+
* `limit_lowered`——否则一个为大 run 学到的高 cap 会留给之后的默认 run 共用,直到空闲重置。
|
|
129
|
+
* 同时夹 `lastGood`、清 streak、翻 epoch:旧 cap 下发出的请求撞的 429 不是对新 cap 的裁决。
|
|
130
|
+
*/
|
|
131
|
+
setGrowthLimit(now: number, limit: number): ConcurrencyChange[];
|
|
132
|
+
/**
|
|
133
|
+
* 起跳(docs/dynamic-workflow/concurrency.md「Seeding」):用户把一个 run 的上界调高时,治理器请
|
|
134
|
+
* cap 直接跳到 `min(target, growthLimit)`,而不是每 K 次成功爬一级——从 8 爬到 32 要约 96 次
|
|
135
|
+
* 成功,用户看到的是「设置没生效」。
|
|
136
|
+
*
|
|
137
|
+
* 清 `lastGood`:起跳点是新的起点,不是在已证明水位之上的探测;否则第一次 429 会一路退回旧的
|
|
138
|
+
* 已证明水位,而不是按系数减(32 → 24 → 18 …)。同时清 `lastBad`、清 streak、翻 epoch。
|
|
139
|
+
*
|
|
140
|
+
* 两种情况不跳:目标不高于 cap;五分钟内(空闲重置同一窗口)有过任何一次拒绝——那时起跳就是
|
|
141
|
+
* 明知故犯地对着刚撞过的墙再冲一波,cap 改为照常一级一级爬。
|
|
142
|
+
*/
|
|
143
|
+
seed(now: number, target: number): ConcurrencyChange[];
|
|
144
|
+
/**
|
|
145
|
+
* 空闲重置(决策 20):`now − lastRequestAt ≥ IDLE_RESET_MS` 且无在飞 → cap 回起点 `initial`,
|
|
146
|
+
* 清 streak / cooldown / lastGood / lastBad,epoch += 1。惰性发生在任一信号到达时(无定时器)。
|
|
147
|
+
*/
|
|
148
|
+
private idleReset;
|
|
149
|
+
private change;
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=concurrency.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"concurrency.d.ts","sourceRoot":"","sources":["../../src/engine/concurrency.ts"],"names":[],"mappings":"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"}
|