@graphrefly/ts 0.0.0 → 0.0.1
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 +135 -0
- package/dist/adapters/index.cjs +105 -66
- package/dist/adapters/index.cjs.map +1 -1
- package/dist/adapters/index.d.cts +11 -136
- package/dist/adapters/index.d.ts +11 -136
- package/dist/adapters/index.js +27 -225
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/observe-storage.d.cts +4 -4
- package/dist/adapters/observe-storage.d.ts +4 -4
- package/dist/adapters/observe-storage.js +1 -0
- package/dist/adapters/observe-storage.js.map +1 -1
- package/dist/adapters/react.cjs +166 -0
- package/dist/adapters/react.cjs.map +1 -0
- package/dist/adapters/react.d.cts +31 -0
- package/dist/adapters/react.d.ts +31 -0
- package/dist/adapters/react.js +51 -0
- package/dist/adapters/react.js.map +1 -0
- package/dist/adapters/solid.cjs +157 -0
- package/dist/adapters/solid.cjs.map +1 -0
- package/dist/adapters/solid.d.cts +26 -0
- package/dist/adapters/solid.d.ts +26 -0
- package/dist/adapters/solid.js +48 -0
- package/dist/adapters/solid.js.map +1 -0
- package/dist/adapters/svelte.cjs +148 -0
- package/dist/adapters/svelte.cjs.map +1 -0
- package/dist/adapters/svelte.d.cts +31 -0
- package/dist/adapters/svelte.d.ts +31 -0
- package/dist/adapters/svelte.js +46 -0
- package/dist/adapters/svelte.js.map +1 -0
- package/dist/adapters/vue.cjs +155 -0
- package/dist/adapters/vue.cjs.map +1 -0
- package/dist/adapters/vue.d.cts +26 -0
- package/dist/adapters/vue.d.ts +26 -0
- package/dist/adapters/vue.js +46 -0
- package/dist/adapters/vue.js.map +1 -0
- package/dist/agent-runtime-BesGDZcB.d.ts +555 -0
- package/dist/agent-runtime-DZTJ3C-p.d.cts +555 -0
- package/dist/agentic-memory-BmRCvh0d.d.ts +517 -0
- package/dist/agentic-memory-DfuVZ-lY.d.cts +517 -0
- package/dist/capability-admission-B0BzqAm5.d.cts +102 -0
- package/dist/capability-admission-g0mn9hpq.d.ts +102 -0
- package/dist/{chunk-JR4IKCR2.js → chunk-2747WN4Y.js} +5 -5
- package/dist/{chunk-2ILL7HQI.js → chunk-3JR3EDB2.js} +17 -17
- package/dist/{chunk-2ILL7HQI.js.map → chunk-3JR3EDB2.js.map} +1 -1
- package/dist/{chunk-GDL26N2T.js → chunk-3KN7NJDR.js} +2 -2
- package/dist/{chunk-DJC4CHLQ.js → chunk-43BKLFZU.js} +9 -9
- package/dist/chunk-6XAIOL3X.js +2407 -0
- package/dist/chunk-6XAIOL3X.js.map +1 -0
- package/dist/{chunk-SCRFRCGR.js → chunk-BSQGE5PS.js} +1 -1
- package/dist/{chunk-Y3ZLRGHC.js → chunk-CZNV3VXM.js} +16 -16
- package/dist/chunk-DGUM43GV.js +11 -0
- package/dist/chunk-DGUM43GV.js.map +1 -0
- package/dist/{chunk-JIMUDQN3.js → chunk-FBUU43PM.js} +2 -2
- package/dist/chunk-H75VXTGT.js +219 -0
- package/dist/chunk-H75VXTGT.js.map +1 -0
- package/dist/{chunk-RIIOUTGM.js → chunk-HKK2JD7Z.js} +12 -9
- package/dist/chunk-HKK2JD7Z.js.map +1 -0
- package/dist/{chunk-D6BG7U6A.js → chunk-IXZBUWSP.js} +3 -3
- package/dist/chunk-PC3BTTBE.js +3217 -0
- package/dist/chunk-PC3BTTBE.js.map +1 -0
- package/dist/chunk-QFY4AFY4.js +879 -0
- package/dist/chunk-QFY4AFY4.js.map +1 -0
- package/dist/{chunk-DK554R7P.js → chunk-S6HXABGL.js} +2 -1
- package/dist/chunk-S6HXABGL.js.map +1 -0
- package/dist/{chunk-PKVBHGBM.js → chunk-SS2A464I.js} +7 -7
- package/dist/chunk-UT3MHJCW.js +49 -0
- package/dist/chunk-UT3MHJCW.js.map +1 -0
- package/dist/{chunk-G4M3NHRJ.js → chunk-V7CIJE4B.js} +3 -3
- package/dist/{chunk-TEW47IVR.js → chunk-VPEFSDME.js} +2 -2
- package/dist/chunk-VTHLCFN4.js +368 -0
- package/dist/chunk-VTHLCFN4.js.map +1 -0
- package/dist/{chunk-SWTLEQL6.js → chunk-WQIA3GFB.js} +2 -2
- package/dist/chunk-WQIA3GFB.js.map +1 -0
- package/dist/{chunk-I3IHOHCJ.js → chunk-XKXWK2KP.js} +108 -64
- package/dist/chunk-XKXWK2KP.js.map +1 -0
- package/dist/{chunk-COHO25CZ.js → chunk-YDSIVHRR.js} +553 -7
- package/dist/chunk-YDSIVHRR.js.map +1 -0
- package/dist/chunk-YXMZ2N6J.js +1884 -0
- package/dist/chunk-YXMZ2N6J.js.map +1 -0
- package/dist/composition/index.cjs +102 -57
- package/dist/composition/index.cjs.map +1 -1
- package/dist/composition/index.d.cts +4 -4
- package/dist/composition/index.d.ts +4 -4
- package/dist/composition/index.js +6 -5
- package/dist/core/index.cjs +102 -57
- package/dist/core/index.cjs.map +1 -1
- package/dist/core/index.d.cts +2 -2
- package/dist/core/index.d.ts +2 -2
- package/dist/core/index.js +5 -4
- package/dist/cqrs/index.cjs.map +1 -1
- package/dist/cqrs/index.d.cts +4 -4
- package/dist/cqrs/index.d.ts +4 -4
- package/dist/cqrs/index.js +3 -2
- package/dist/cqrs/index.js.map +1 -1
- package/dist/cqrs/messaging.cjs +312 -0
- package/dist/cqrs/messaging.cjs.map +1 -0
- package/dist/cqrs/messaging.d.cts +57 -0
- package/dist/cqrs/messaging.d.ts +57 -0
- package/dist/cqrs/messaging.js +274 -0
- package/dist/cqrs/messaging.js.map +1 -0
- package/dist/cqrs/work-queue.cjs +329 -0
- package/dist/cqrs/work-queue.cjs.map +1 -0
- package/dist/cqrs/work-queue.d.cts +90 -0
- package/dist/cqrs/work-queue.d.ts +90 -0
- package/dist/cqrs/work-queue.js +292 -0
- package/dist/cqrs/work-queue.js.map +1 -0
- package/dist/data/index.cjs +19 -0
- package/dist/data/index.cjs.map +1 -0
- package/dist/data/index.d.cts +36 -0
- package/dist/data/index.d.ts +36 -0
- package/dist/data/index.js +1 -0
- package/dist/data/index.js.map +1 -0
- package/dist/data-structures/index.cjs +105 -57
- package/dist/data-structures/index.cjs.map +1 -1
- package/dist/data-structures/index.d.cts +8 -8
- package/dist/data-structures/index.d.ts +8 -8
- package/dist/data-structures/index.js +7 -6
- package/dist/{describe-BZb7AS2y.d.ts → describe-BpyJuWkw.d.ts} +1 -1
- package/dist/{describe-Ciu8SUnN.d.cts → describe-DYMw_l1C.d.cts} +1 -1
- package/dist/executors/work-queue.cjs +342 -0
- package/dist/executors/work-queue.cjs.map +1 -0
- package/dist/executors/work-queue.d.cts +90 -0
- package/dist/executors/work-queue.d.ts +90 -0
- package/dist/executors/work-queue.js +306 -0
- package/dist/executors/work-queue.js.map +1 -0
- package/dist/graph/index.cjs +112 -58
- package/dist/graph/index.cjs.map +1 -1
- package/dist/graph/index.d.cts +9 -9
- package/dist/graph/index.d.ts +9 -9
- package/dist/graph/index.js +18 -17
- package/dist/{graph-DfdF9zy4.d.ts → graph-D-1-SQeC.d.ts} +3 -3
- package/dist/{graph-s23RbbFO.d.cts → graph-DCEWh4T2.d.cts} +3 -3
- package/dist/{index-CAEmLCYF.d.cts → index-72VZC0-E.d.cts} +2 -2
- package/dist/{index-SnzZu3x7.d.ts → index-Bmxeu0nK.d.ts} +2 -2
- package/dist/index.cjs +112 -58
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +11 -10
- package/dist/index.d.ts +11 -10
- package/dist/index.js +118 -113
- package/dist/inspection/boundary.cjs +98 -0
- package/dist/inspection/boundary.cjs.map +1 -0
- package/dist/inspection/boundary.d.cts +61 -0
- package/dist/inspection/boundary.d.ts +61 -0
- package/dist/inspection/boundary.js +75 -0
- package/dist/inspection/boundary.js.map +1 -0
- package/dist/{messages-BZqrGGm1.d.ts → messages-CAzUPPJM.d.cts} +10 -5
- package/dist/{messages-BZqrGGm1.d.cts → messages-CAzUPPJM.d.ts} +10 -5
- package/dist/messaging/index.cjs +744 -613
- package/dist/messaging/index.cjs.map +1 -1
- package/dist/messaging/index.d.cts +216 -160
- package/dist/messaging/index.d.ts +216 -160
- package/dist/messaging/index.js +19 -749
- package/dist/messaging/index.js.map +1 -1
- package/dist/operators/index.cjs +102 -57
- package/dist/operators/index.cjs.map +1 -1
- package/dist/operators/index.d.cts +6 -6
- package/dist/operators/index.d.ts +6 -6
- package/dist/operators/index.js +8 -7
- package/dist/orchestration/index.cjs +3333 -59
- package/dist/orchestration/index.cjs.map +1 -1
- package/dist/orchestration/index.d.cts +7 -4
- package/dist/orchestration/index.d.ts +7 -4
- package/dist/orchestration/index.js +49 -8
- package/dist/orchestration/index.js.map +1 -1
- package/dist/orchestration/messaging.cjs +314 -0
- package/dist/orchestration/messaging.cjs.map +1 -0
- package/dist/orchestration/messaging.d.cts +59 -0
- package/dist/orchestration/messaging.d.ts +59 -0
- package/dist/orchestration/messaging.js +276 -0
- package/dist/orchestration/messaging.js.map +1 -0
- package/dist/orchestration/work-queue.cjs +262 -0
- package/dist/orchestration/work-queue.cjs.map +1 -0
- package/dist/orchestration/work-queue.d.cts +85 -0
- package/dist/orchestration/work-queue.d.ts +85 -0
- package/dist/orchestration/work-queue.js +226 -0
- package/dist/orchestration/work-queue.js.map +1 -0
- package/dist/patterns/event-flow.cjs +447 -0
- package/dist/patterns/event-flow.cjs.map +1 -0
- package/dist/patterns/event-flow.d.cts +115 -0
- package/dist/patterns/event-flow.d.ts +115 -0
- package/dist/patterns/event-flow.js +14 -0
- package/dist/patterns/event-flow.js.map +1 -0
- package/dist/patterns/index.cjs +423 -18
- package/dist/patterns/index.cjs.map +1 -1
- package/dist/patterns/index.d.cts +8 -5
- package/dist/patterns/index.d.ts +8 -5
- package/dist/patterns/index.js +13 -4
- package/dist/{reactive-collection-Cb1II1Fi.d.ts → reactive-collection-BAmfrGjd.d.ts} +9 -9
- package/dist/{reactive-collection-BxBqtIOE.d.cts → reactive-collection-DNV0-gFi.d.cts} +9 -9
- package/dist/{reactive-collection-storage-D-KmjE0J.d.cts → reactive-collection-storage-BNEldDyi.d.cts} +5 -5
- package/dist/{reactive-collection-storage-BNiEc-Gd.d.ts → reactive-collection-storage-YZsAQsWK.d.ts} +5 -5
- package/dist/{reactive-map-D-g3dv8I.d.cts → reactive-map-DRD1LJ2H.d.cts} +6 -6
- package/dist/{reactive-map-BcB4KsQR.d.ts → reactive-map-EsDiCmJk.d.ts} +6 -6
- package/dist/render/index.d.cts +3 -3
- package/dist/render/index.d.ts +3 -3
- package/dist/render/index.js +1 -0
- package/dist/{semantic-memory-graph-BYoIlP35.d.cts → semantic-memory-graph-DKuNzuWw.d.cts} +2 -2
- package/dist/{semantic-memory-graph-CxyXLms3.d.ts → semantic-memory-graph-uwbwJdhe.d.ts} +2 -2
- package/dist/solutions/index.cjs +4478 -2
- package/dist/solutions/index.cjs.map +1 -1
- package/dist/solutions/index.d.cts +13 -519
- package/dist/solutions/index.d.ts +13 -519
- package/dist/solutions/index.js +90 -6
- package/dist/solutions/reactive-layout/browser/index.cjs +449 -0
- package/dist/solutions/reactive-layout/browser/index.cjs.map +1 -0
- package/dist/solutions/reactive-layout/browser/index.d.cts +44 -0
- package/dist/solutions/reactive-layout/browser/index.d.ts +44 -0
- package/dist/solutions/reactive-layout/browser/index.js +69 -0
- package/dist/solutions/reactive-layout/browser/index.js.map +1 -0
- package/dist/solutions/reactive-layout/index.cjs +4266 -0
- package/dist/solutions/reactive-layout/index.cjs.map +1 -0
- package/dist/solutions/reactive-layout/index.d.cts +581 -0
- package/dist/solutions/reactive-layout/index.d.ts +581 -0
- package/dist/solutions/reactive-layout/index.js +86 -0
- package/dist/solutions/reactive-layout/index.js.map +1 -0
- package/dist/solutions/reactive-layout/node-canvas/index.cjs +545 -0
- package/dist/solutions/reactive-layout/node-canvas/index.cjs.map +1 -0
- package/dist/solutions/reactive-layout/node-canvas/index.d.cts +54 -0
- package/dist/solutions/reactive-layout/node-canvas/index.d.ts +54 -0
- package/dist/solutions/reactive-layout/node-canvas/index.js +131 -0
- package/dist/solutions/reactive-layout/node-canvas/index.js.map +1 -0
- package/dist/solutions/reactive-layout/react-native/index.cjs +494 -0
- package/dist/solutions/reactive-layout/react-native/index.cjs.map +1 -0
- package/dist/solutions/reactive-layout/react-native/index.d.cts +51 -0
- package/dist/solutions/reactive-layout/react-native/index.d.ts +51 -0
- package/dist/solutions/reactive-layout/react-native/index.js +77 -0
- package/dist/solutions/reactive-layout/react-native/index.js.map +1 -0
- package/dist/solutions/reactive-layout/skia/index.cjs +547 -0
- package/dist/solutions/reactive-layout/skia/index.cjs.map +1 -0
- package/dist/solutions/reactive-layout/skia/index.d.cts +64 -0
- package/dist/solutions/reactive-layout/skia/index.d.ts +64 -0
- package/dist/solutions/reactive-layout/skia/index.js +70 -0
- package/dist/solutions/reactive-layout/skia/index.js.map +1 -0
- package/dist/solutions/work-item/actions.cjs +2164 -0
- package/dist/solutions/work-item/actions.cjs.map +1 -0
- package/dist/solutions/work-item/actions.d.cts +201 -0
- package/dist/solutions/work-item/actions.d.ts +201 -0
- package/dist/solutions/work-item/actions.js +1454 -0
- package/dist/solutions/work-item/actions.js.map +1 -0
- package/dist/solutions/work-item/scheduling.cjs +2454 -0
- package/dist/solutions/work-item/scheduling.cjs.map +1 -0
- package/dist/solutions/work-item/scheduling.d.cts +433 -0
- package/dist/solutions/work-item/scheduling.d.ts +433 -0
- package/dist/solutions/work-item/scheduling.js +32 -0
- package/dist/solutions/work-item/scheduling.js.map +1 -0
- package/dist/solutions/work-item/work-queue.cjs +306 -0
- package/dist/solutions/work-item/work-queue.cjs.map +1 -0
- package/dist/solutions/work-item/work-queue.d.cts +71 -0
- package/dist/solutions/work-item/work-queue.d.ts +71 -0
- package/dist/solutions/work-item/work-queue.js +270 -0
- package/dist/solutions/work-item/work-queue.js.map +1 -0
- package/dist/sources/browser.cjs +169 -57
- package/dist/sources/browser.cjs.map +1 -1
- package/dist/sources/browser.d.cts +33 -6
- package/dist/sources/browser.d.ts +33 -6
- package/dist/sources/browser.js +73 -6
- package/dist/sources/browser.js.map +1 -1
- package/dist/sources/index.cjs +102 -57
- package/dist/sources/index.cjs.map +1 -1
- package/dist/sources/index.d.cts +5 -5
- package/dist/sources/index.d.ts +5 -5
- package/dist/sources/index.js +6 -5
- package/dist/sources/node.cjs.map +1 -1
- package/dist/sources/node.d.cts +4 -4
- package/dist/sources/node.d.ts +4 -4
- package/dist/sources/node.js +2 -1
- package/dist/sources/node.js.map +1 -1
- package/dist/storage/browser.js +1 -0
- package/dist/storage/browser.js.map +1 -1
- package/dist/storage/index.d.cts +5 -5
- package/dist/storage/index.d.ts +5 -5
- package/dist/storage/index.js +5 -4
- package/dist/storage/node.js +1 -0
- package/dist/storage/node.js.map +1 -1
- package/dist/store-C-joM4gh.d.ts +123 -0
- package/dist/store-CNJwmT-h.d.cts +123 -0
- package/dist/testing/index.cjs +1 -0
- package/dist/testing/index.cjs.map +1 -1
- package/dist/testing/index.d.cts +1 -1
- package/dist/testing/index.d.ts +1 -1
- package/dist/testing/index.js +3 -2
- package/dist/{types-h12mNYbq.d.ts → types-BsJvElYZ.d.ts} +31 -31
- package/dist/{types-bNMSWKqF.d.cts → types-CcPIn7sy.d.cts} +31 -31
- package/dist/work-item-runtime-C3M79vE9.d.ts +228 -0
- package/dist/work-item-runtime-qaVgsL0T.d.cts +228 -0
- package/dist/work-queue/index.cjs +1132 -0
- package/dist/work-queue/index.cjs.map +1 -0
- package/dist/work-queue/index.d.cts +369 -0
- package/dist/work-queue/index.d.ts +369 -0
- package/dist/work-queue/index.js +1078 -0
- package/dist/work-queue/index.js.map +1 -0
- package/package.json +266 -2
- package/dist/chunk-COHO25CZ.js.map +0 -1
- package/dist/chunk-DK554R7P.js.map +0 -1
- package/dist/chunk-I3IHOHCJ.js.map +0 -1
- package/dist/chunk-RIIOUTGM.js.map +0 -1
- package/dist/chunk-SWTLEQL6.js.map +0 -1
- /package/dist/{chunk-JR4IKCR2.js.map → chunk-2747WN4Y.js.map} +0 -0
- /package/dist/{chunk-GDL26N2T.js.map → chunk-3KN7NJDR.js.map} +0 -0
- /package/dist/{chunk-DJC4CHLQ.js.map → chunk-43BKLFZU.js.map} +0 -0
- /package/dist/{chunk-SCRFRCGR.js.map → chunk-BSQGE5PS.js.map} +0 -0
- /package/dist/{chunk-Y3ZLRGHC.js.map → chunk-CZNV3VXM.js.map} +0 -0
- /package/dist/{chunk-JIMUDQN3.js.map → chunk-FBUU43PM.js.map} +0 -0
- /package/dist/{chunk-D6BG7U6A.js.map → chunk-IXZBUWSP.js.map} +0 -0
- /package/dist/{chunk-PKVBHGBM.js.map → chunk-SS2A464I.js.map} +0 -0
- /package/dist/{chunk-G4M3NHRJ.js.map → chunk-V7CIJE4B.js.map} +0 -0
- /package/dist/{chunk-TEW47IVR.js.map → chunk-VPEFSDME.js.map} +0 -0
|
@@ -46,6 +46,7 @@ var TIER = {
|
|
|
46
46
|
START: TIER_START,
|
|
47
47
|
PAUSE: TIER_CONTROL,
|
|
48
48
|
RESUME: TIER_CONTROL,
|
|
49
|
+
PULL: TIER_CONTROL,
|
|
49
50
|
DIRTY: TIER_NOTIFICATION,
|
|
50
51
|
DATA: TIER_VALUE,
|
|
51
52
|
RESOLVED: TIER_VALUE,
|
|
@@ -905,6 +906,17 @@ function notifyTopologyDepsChanged(node, prevDeps, deps) {
|
|
|
905
906
|
function terminalView(t) {
|
|
906
907
|
return t === void 0 ? false : t;
|
|
907
908
|
}
|
|
909
|
+
function normalizePullDemand(demand) {
|
|
910
|
+
if (typeof demand !== "object" || demand === null || Array.isArray(demand)) {
|
|
911
|
+
throw new Error("ctx.up: PULL requires { pullId, params? } demand payload (D269)");
|
|
912
|
+
}
|
|
913
|
+
const pullId = demand.pullId;
|
|
914
|
+
if (typeof pullId !== "string" && typeof pullId !== "symbol") {
|
|
915
|
+
throw new Error("ctx.up: PULL demand requires a string or symbol pullId (D269)");
|
|
916
|
+
}
|
|
917
|
+
const params = demand.params;
|
|
918
|
+
return params === void 0 ? { pullId } : { pullId, params };
|
|
919
|
+
}
|
|
908
920
|
function validateDownPayloads(msgs) {
|
|
909
921
|
for (const m of msgs) {
|
|
910
922
|
if (m[0] === "DATA" && m[1] === void 0) {
|
|
@@ -948,7 +960,7 @@ var Node = class {
|
|
|
948
960
|
const pull = opts.pullId !== void 0;
|
|
949
961
|
if (pull && pausable === false)
|
|
950
962
|
throw new Error(
|
|
951
|
-
"node: pullId is incompatible with pausable:false \u2014 a pull node
|
|
963
|
+
"node: pullId is incompatible with pausable:false \u2014 a pull node uses the pausable delivery-content axis (R-pull / R-pause-modes / D55,D269)"
|
|
952
964
|
);
|
|
953
965
|
let handle;
|
|
954
966
|
if (handleOrFn === null) handle = null;
|
|
@@ -971,7 +983,6 @@ var Node = class {
|
|
|
971
983
|
value.status = "settled";
|
|
972
984
|
}
|
|
973
985
|
const pauseLockset = /* @__PURE__ */ new Set();
|
|
974
|
-
if (pull) pauseLockset.add(pullLock);
|
|
975
986
|
this._core = core ?? new NodeCore();
|
|
976
987
|
const created = this._core.createSlot(
|
|
977
988
|
{
|
|
@@ -1012,7 +1023,9 @@ var Node = class {
|
|
|
1012
1023
|
pauseLockset,
|
|
1013
1024
|
pausedDepWaveOccurred: false,
|
|
1014
1025
|
pauseBuffer: [],
|
|
1015
|
-
demandOwed:
|
|
1026
|
+
demandOwed: void 0,
|
|
1027
|
+
activePull: void 0,
|
|
1028
|
+
pullDirtyOwed: false,
|
|
1016
1029
|
inDeliverDemand: false
|
|
1017
1030
|
},
|
|
1018
1031
|
privateState: { value: SENTINEL, persist: false },
|
|
@@ -1069,10 +1082,11 @@ var Node = class {
|
|
|
1069
1082
|
this._wave.batchDirtyOwed = false;
|
|
1070
1083
|
this._control.pauseBuffer = [];
|
|
1071
1084
|
this._control.pausedDepWaveOccurred = false;
|
|
1072
|
-
this._control.demandOwed =
|
|
1085
|
+
this._control.demandOwed = void 0;
|
|
1086
|
+
this._control.activePull = void 0;
|
|
1087
|
+
this._control.pullDirtyOwed = false;
|
|
1073
1088
|
this._control.inDeliverDemand = false;
|
|
1074
1089
|
this._control.pauseLockset.clear();
|
|
1075
|
-
if (this._slot.pull) this._control.pauseLockset.add(this._slot.pullLock);
|
|
1076
1090
|
this._privateState.value = state.ctxState.value;
|
|
1077
1091
|
this._privateState.persist = state.ctxState.persist;
|
|
1078
1092
|
if (state.version === false) {
|
|
@@ -1111,17 +1125,16 @@ var Node = class {
|
|
|
1111
1125
|
subscriberCountReaders.set(this, () => this._subscriberCount());
|
|
1112
1126
|
activationReaders.set(this, () => this._lifecycle.activated);
|
|
1113
1127
|
}
|
|
1114
|
-
/** R-pull (D55): true while a pull node is
|
|
1128
|
+
/** R-pull (D55/D272): true while a pull node is not serving a PULL demand pulse. */
|
|
1115
1129
|
_isPullQuiet() {
|
|
1116
|
-
return this._slot.pull && this._control.
|
|
1130
|
+
return this._slot.pull && this._control.activePull === void 0;
|
|
1117
1131
|
}
|
|
1118
1132
|
/**
|
|
1119
|
-
* R-pull (
|
|
1120
|
-
* triggers computation). A consumer demands one delivery by cone-routing
|
|
1121
|
-
* reference): `ctx.up([["
|
|
1122
|
-
* `ctx.upNext([["
|
|
1123
|
-
*
|
|
1124
|
-
* for inspection/describe; routing matches by the pullId value carried in the RESUME, by identity.
|
|
1133
|
+
* R-pull (D269/D272): this pull node's pullId (pure data, like {@link cache}/{@link handle} —
|
|
1134
|
+
* never triggers computation). A consumer demands one delivery by cone-routing PULL of it (no
|
|
1135
|
+
* node reference): `ctx.up([["PULL", { pullId }]])` (immediate; loops back → D37 for a self-read
|
|
1136
|
+
* dep) or `ctx.upNext([["PULL", { pullId }]])` (boundary-deferred self-demand). Undefined for a
|
|
1137
|
+
* non-pull node. The author writes the pullId verbatim; routing matches by identity.
|
|
1125
1138
|
*/
|
|
1126
1139
|
get pullId() {
|
|
1127
1140
|
return this._slot.pullLock;
|
|
@@ -1228,10 +1241,10 @@ var Node = class {
|
|
|
1228
1241
|
});
|
|
1229
1242
|
}
|
|
1230
1243
|
/**
|
|
1231
|
-
* Enqueue a deferred up-going control wave (R-up-routing / R-pull /
|
|
1244
|
+
* Enqueue a deferred up-going control/demand wave (R-up-routing / R-pull / D269): at the committed wave
|
|
1232
1245
|
* boundary, route `msgs` up from THIS node (broadcast, or up the single `towardDep` edge). The
|
|
1233
|
-
* deferred form of `ctx.up` — the SELF-demand path: a consumer issues `ctx.upNext([[
|
|
1234
|
-
* pullId]])` to demand a dep it ALSO reads; the demand applies at the boundary (not mid-fn), so
|
|
1246
|
+
* deferred form of `ctx.up` — the SELF-demand path: a consumer issues `ctx.upNext([[PULL,
|
|
1247
|
+
* { pullId }]])` to demand a dep it ALSO reads; the demand applies at the boundary (not mid-fn), so
|
|
1235
1248
|
* the pull node's delivery loops back as a FRESH wave rather than re-entering the consumer (D37 /
|
|
1236
1249
|
* R-reentrancy). Rides the same R-rewire-deferred (D47) drain as ctx.rewireNext.
|
|
1237
1250
|
*/
|
|
@@ -1446,7 +1459,6 @@ var Node = class {
|
|
|
1446
1459
|
this._lifecycle.activated = true;
|
|
1447
1460
|
const seedRestoredDeps = this._restoredActivationPending;
|
|
1448
1461
|
this._restoredActivationPending = false;
|
|
1449
|
-
if (this._slot.pull) this._control.pauseLockset.add(this._slot.pullLock);
|
|
1450
1462
|
this._dep.unsubs = new Array(this._slot.deps.length);
|
|
1451
1463
|
this._dep.idxBoxes = new Array(this._slot.deps.length);
|
|
1452
1464
|
for (const dep of this._slot.deps)
|
|
@@ -1518,7 +1530,9 @@ var Node = class {
|
|
|
1518
1530
|
this._control.pauseLockset.clear();
|
|
1519
1531
|
this._control.pauseBuffer = [];
|
|
1520
1532
|
this._control.pausedDepWaveOccurred = false;
|
|
1521
|
-
this._control.demandOwed =
|
|
1533
|
+
this._control.demandOwed = void 0;
|
|
1534
|
+
this._control.activePull = void 0;
|
|
1535
|
+
this._control.pullDirtyOwed = false;
|
|
1522
1536
|
this._value.replayRing = [];
|
|
1523
1537
|
if (!this._privateState.persist) this._privateState.value = SENTINEL;
|
|
1524
1538
|
}
|
|
@@ -1530,8 +1544,7 @@ var Node = class {
|
|
|
1530
1544
|
return this._lifecycle.subscribers.size;
|
|
1531
1545
|
}
|
|
1532
1546
|
_isRuntimeQuiescentForRelease() {
|
|
1533
|
-
|
|
1534
|
-
return !this._released && this._value.status !== "dirty" && this._value.status !== "pending" && this._wave.pending === 0 && !this._wave.insideRunWave && !this._wave.inDepMutation && !this._wave.rewireRunPending && !this._wave.batchDirtyOwed && this._dep.dirty.every((dirty) => !dirty) && this._control.pauseBuffer.length === 0 && !this._control.pausedDepWaveOccurred && !this._control.demandOwed && !this._control.inDeliverDemand && (this._control.pauseLockset.size === 0 || allowedPullQuietLock);
|
|
1547
|
+
return !this._released && this._value.status !== "dirty" && this._value.status !== "pending" && this._wave.pending === 0 && !this._wave.insideRunWave && !this._wave.inDepMutation && !this._wave.rewireRunPending && !this._wave.batchDirtyOwed && this._dep.dirty.every((dirty) => !dirty) && this._control.pauseBuffer.length === 0 && !this._control.pausedDepWaveOccurred && this._control.demandOwed === void 0 && this._control.activePull === void 0 && !this._control.inDeliverDemand && this._control.pauseLockset.size === 0;
|
|
1535
1548
|
}
|
|
1536
1549
|
_releaseRuntime() {
|
|
1537
1550
|
if (this._released) return;
|
|
@@ -1587,7 +1600,9 @@ var Node = class {
|
|
|
1587
1600
|
this._control.pauseLockset.clear();
|
|
1588
1601
|
this._control.pauseBuffer = [];
|
|
1589
1602
|
this._control.pausedDepWaveOccurred = false;
|
|
1590
|
-
this._control.demandOwed =
|
|
1603
|
+
this._control.demandOwed = void 0;
|
|
1604
|
+
this._control.activePull = void 0;
|
|
1605
|
+
this._control.pullDirtyOwed = false;
|
|
1591
1606
|
this._restoredActivationPending = false;
|
|
1592
1607
|
checkpointReaders.delete(this);
|
|
1593
1608
|
restoreWriters.delete(this);
|
|
@@ -1769,7 +1784,7 @@ var Node = class {
|
|
|
1769
1784
|
this._wave.rewireRunPending = true;
|
|
1770
1785
|
return;
|
|
1771
1786
|
}
|
|
1772
|
-
if (this._slot.pausable === true && this._isPaused()) {
|
|
1787
|
+
if (this._slot.pausable === true && (this._isPaused() || this._isPullQuiet())) {
|
|
1773
1788
|
this._control.pausedDepWaveOccurred = true;
|
|
1774
1789
|
return;
|
|
1775
1790
|
}
|
|
@@ -1909,10 +1924,11 @@ var Node = class {
|
|
|
1909
1924
|
unsubscribeDep: (dep, fn) => this._requestRewireNext({ kind: "remove", dep, fn }),
|
|
1910
1925
|
replaceDeps: (deps, fn) => this._requestRewireNext({ kind: "set", deps, fn })
|
|
1911
1926
|
},
|
|
1912
|
-
// R-up-routing / R-pull (
|
|
1913
|
-
//
|
|
1927
|
+
// R-up-routing / R-pull (D269): deferred up — route a control/demand wave (e.g. PULL)
|
|
1928
|
+
// up the declared cone at the committed boundary. The SELF-demand path: an
|
|
1914
1929
|
// immediate ctx.up whose delivery loops back re-enters this fn (D37 / R-reentrancy).
|
|
1915
1930
|
upNext: (msgs, towardDep) => this._requestUpNext(msgs, towardDep),
|
|
1931
|
+
...this._control.activePull === void 0 ? {} : { pull: this._control.activePull },
|
|
1916
1932
|
[CTX_DEP_CACHE]: { latest: snapshot?.latest ?? this._dep.prev },
|
|
1917
1933
|
[CTX_NODE_BINDING]: {
|
|
1918
1934
|
dispatcher: this._slot.dispatcher,
|
|
@@ -1927,6 +1943,11 @@ var Node = class {
|
|
|
1927
1943
|
_refreshCtx(ctx) {
|
|
1928
1944
|
ctx.waveData = this._dep.waveData;
|
|
1929
1945
|
ctx.terminal = this._dep.terminalInput.map(terminalView);
|
|
1946
|
+
if (this._control.activePull === void 0) {
|
|
1947
|
+
delete ctx.pull;
|
|
1948
|
+
} else {
|
|
1949
|
+
ctx.pull = this._control.activePull;
|
|
1950
|
+
}
|
|
1930
1951
|
ctx[CTX_DEP_CACHE] = { latest: this._dep.prev };
|
|
1931
1952
|
}
|
|
1932
1953
|
_makeState() {
|
|
@@ -2019,7 +2040,7 @@ var Node = class {
|
|
|
2019
2040
|
plannedVersions[i] = plannedVersion;
|
|
2020
2041
|
}
|
|
2021
2042
|
}
|
|
2022
|
-
if (hasTier3 && !this._wave.insideRunWave && !this._wave.emittedDirtyThisWave) {
|
|
2043
|
+
if (hasTier3 && (!this._wave.insideRunWave || this._control.pullDirtyOwed) && !this._wave.emittedDirtyThisWave) {
|
|
2023
2044
|
this._wave.emittedDirtyThisWave = true;
|
|
2024
2045
|
this._value.status = "dirty";
|
|
2025
2046
|
this._emitToSubs(["DIRTY"], { wave: deliveryWave, last: false });
|
|
@@ -2099,13 +2120,18 @@ var Node = class {
|
|
|
2099
2120
|
if (m[0] === "PAUSE") {
|
|
2100
2121
|
this._pauseAcquire(m[1]);
|
|
2101
2122
|
} else if (m[0] === "RESUME") {
|
|
2102
|
-
if (this.
|
|
2103
|
-
if (!this._markDemandRouted(m[1], routeState)) this._onDemand();
|
|
2104
|
-
} else if (this._control.pauseLockset.has(m[1])) {
|
|
2123
|
+
if (this._control.pauseLockset.has(m[1])) {
|
|
2105
2124
|
this._pauseRelease(m[1]);
|
|
2106
2125
|
} else {
|
|
2107
2126
|
this._forwardUp(m, towardDep, routeState);
|
|
2108
2127
|
}
|
|
2128
|
+
} else if (m[0] === "PULL") {
|
|
2129
|
+
const demand = normalizePullDemand(m[1]);
|
|
2130
|
+
if (this._slot.pull && demand.pullId === this._slot.pullLock) {
|
|
2131
|
+
if (!this._markDemandRouted(demand.pullId, routeState)) this._onDemand(demand);
|
|
2132
|
+
} else {
|
|
2133
|
+
this._forwardUp(["PULL", demand], towardDep, routeState);
|
|
2134
|
+
}
|
|
2109
2135
|
} else if (this._slot.deps.length === 0) {
|
|
2110
2136
|
if (m[0] === "INVALIDATE") this._down([["INVALIDATE"]]);
|
|
2111
2137
|
} else {
|
|
@@ -2127,7 +2153,7 @@ var Node = class {
|
|
|
2127
2153
|
* Forward one up-going control message toward deps (R-up-routing): up the single declared edge
|
|
2128
2154
|
* `towardDep` (directed — prunes other branches; only meaningful on the issuer's FIRST hop) or
|
|
2129
2155
|
* broadcast up ALL deps. A depless source has no deps → the message DROPS here (the terminus —
|
|
2130
|
-
* e.g. a cone-routed
|
|
2156
|
+
* e.g. a cone-routed PULL whose pullId no node up this cone holds, R-up-at-source). Recursive
|
|
2131
2157
|
* forwarding carries the same per-wave route state and no `towardDep` → broadcast beyond the
|
|
2132
2158
|
* first hop.
|
|
2133
2159
|
*/
|
|
@@ -2146,9 +2172,7 @@ var Node = class {
|
|
|
2146
2172
|
}
|
|
2147
2173
|
_hasBoundaryPauseLock() {
|
|
2148
2174
|
if (this._slot.pausable === false) return false;
|
|
2149
|
-
|
|
2150
|
-
if (this._slot.pull && this._control.pauseLockset.has(this._slot.pullLock)) locks--;
|
|
2151
|
-
return locks > 0;
|
|
2175
|
+
return this._control.pauseLockset.size > 0;
|
|
2152
2176
|
}
|
|
2153
2177
|
_isAsyncPool() {
|
|
2154
2178
|
return this._slot.handle !== null && this._slot.dispatcher.poolKind(this._slot.handle.poolId) === "async";
|
|
@@ -2159,17 +2183,19 @@ var Node = class {
|
|
|
2159
2183
|
_pauseRelease(lockId) {
|
|
2160
2184
|
if (!this._control.pauseLockset.has(lockId)) return;
|
|
2161
2185
|
this._control.pauseLockset.delete(lockId);
|
|
2162
|
-
if (this._slot.pull && this._control.demandOwed) this._fireOwedDemandIfReady();
|
|
2186
|
+
if (this._slot.pull && this._control.demandOwed !== void 0) this._fireOwedDemandIfReady();
|
|
2163
2187
|
if (this._hasBoundaryPauseLock()) return;
|
|
2164
2188
|
scheduleBoundaryDrain(this._core);
|
|
2165
|
-
if (this.
|
|
2189
|
+
if (this._slot.pull) return;
|
|
2166
2190
|
this._onResume();
|
|
2167
2191
|
}
|
|
2168
2192
|
_onResume() {
|
|
2169
2193
|
if (this._value.terminal !== void 0) {
|
|
2170
2194
|
this._control.pauseBuffer = [];
|
|
2171
2195
|
this._control.pausedDepWaveOccurred = false;
|
|
2172
|
-
this._control.demandOwed =
|
|
2196
|
+
this._control.demandOwed = void 0;
|
|
2197
|
+
this._control.activePull = void 0;
|
|
2198
|
+
this._control.pullDirtyOwed = false;
|
|
2173
2199
|
return;
|
|
2174
2200
|
}
|
|
2175
2201
|
if (this._control.pauseBuffer.length > 0) {
|
|
@@ -2183,41 +2209,38 @@ var Node = class {
|
|
|
2183
2209
|
}
|
|
2184
2210
|
}
|
|
2185
2211
|
/**
|
|
2186
|
-
* R-pull (
|
|
2212
|
+
* R-pull (D269): can this pull node fire a demand NOW? — not terminal, settle-ready (_pending===0),
|
|
2187
2213
|
* and no OTHER (non-pullId) lock holds it paused. The gate that decides fire-now vs OWE.
|
|
2188
2214
|
*/
|
|
2189
2215
|
_canFireDemand() {
|
|
2190
2216
|
if (this._value.terminal !== void 0 || this._wave.pending > 0) return false;
|
|
2191
|
-
|
|
2192
|
-
return this._control.pauseLockset.size <= own;
|
|
2217
|
+
return this._control.pauseLockset.size === 0;
|
|
2193
2218
|
}
|
|
2194
2219
|
/**
|
|
2195
|
-
* R-pull (
|
|
2196
|
-
*
|
|
2197
|
-
* `finally` so a throwing pull fn (graph-less node, no D30 catch) cannot leave the node
|
|
2198
|
-
* permanently non-quiet (the wedge-fix silently disabled) — QA-found robustness fix.
|
|
2220
|
+
* R-pull (D269/D272): deliver ONE demand pulse — install activePull so the demand wave may
|
|
2221
|
+
* emit, fire it, then clear activePull so the node is quiet again (1:1).
|
|
2199
2222
|
*/
|
|
2200
|
-
_deliverPullDemand() {
|
|
2201
|
-
this._control.demandOwed =
|
|
2223
|
+
_deliverPullDemand(demand) {
|
|
2224
|
+
this._control.demandOwed = void 0;
|
|
2225
|
+
this._control.activePull = demand;
|
|
2202
2226
|
this._control.inDeliverDemand = true;
|
|
2203
|
-
this._control.pauseLockset.delete(this._slot.pullLock);
|
|
2204
2227
|
try {
|
|
2205
2228
|
this._firePullDemand();
|
|
2206
2229
|
} finally {
|
|
2207
|
-
this._control.
|
|
2230
|
+
this._control.activePull = void 0;
|
|
2208
2231
|
this._control.inDeliverDemand = false;
|
|
2209
2232
|
}
|
|
2210
2233
|
}
|
|
2211
2234
|
/**
|
|
2212
|
-
* R-pull (
|
|
2235
|
+
* R-pull (D269): a cone-routed PULL of THIS node's pullId arrived (R-up-routing) = a DEMAND.
|
|
2213
2236
|
* Fire immediately if able; else OWE it — pin-5 (a dep DIRTY in flight, _pending>0) or F4/F5 (an
|
|
2214
2237
|
* external PAUSE lock co-holds the node) — and fire when the node next becomes able. A demand
|
|
2215
2238
|
* arriving WHILE a delivery is in flight (synchronous re-entry) is DROPPED (1:1, QA guard).
|
|
2216
2239
|
*/
|
|
2217
|
-
_onDemand() {
|
|
2240
|
+
_onDemand(demand) {
|
|
2218
2241
|
if (this._control.inDeliverDemand) return;
|
|
2219
|
-
if (this._canFireDemand()) this._deliverPullDemand();
|
|
2220
|
-
else this._control.demandOwed =
|
|
2242
|
+
if (this._canFireDemand()) this._deliverPullDemand(demand);
|
|
2243
|
+
else this._control.demandOwed = demand;
|
|
2221
2244
|
}
|
|
2222
2245
|
/**
|
|
2223
2246
|
* R-pull (D55): service ONE demand. Delivery content = the orthogonal pausable mode:
|
|
@@ -2230,33 +2253,53 @@ var Node = class {
|
|
|
2230
2253
|
* `_markDirty` relays the leading DIRTY (not absorbed).
|
|
2231
2254
|
*/
|
|
2232
2255
|
_firePullDemand() {
|
|
2256
|
+
let drainedBuffer = false;
|
|
2233
2257
|
if (this._control.pauseBuffer.length > 0) {
|
|
2234
2258
|
const buf = this._control.pauseBuffer;
|
|
2235
2259
|
this._control.pauseBuffer = [];
|
|
2236
2260
|
for (const wave of buf) this._down(wave);
|
|
2261
|
+
drainedBuffer = true;
|
|
2237
2262
|
}
|
|
2263
|
+
if (drainedBuffer) return;
|
|
2238
2264
|
if (this._control.pausedDepWaveOccurred) {
|
|
2239
2265
|
const gated = this._slot.handle !== null && !this._wave.hasCalledFnOnce && !(this._slot.partial || this._allDepsSettled());
|
|
2240
2266
|
if (this._wave.pending > 0 || gated) return;
|
|
2241
2267
|
this._control.pausedDepWaveOccurred = false;
|
|
2242
|
-
this.
|
|
2243
|
-
this.
|
|
2268
|
+
this._wave.emittedDirtyThisWave = false;
|
|
2269
|
+
this._control.pullDirtyOwed = true;
|
|
2270
|
+
try {
|
|
2271
|
+
this._tryRun();
|
|
2272
|
+
} finally {
|
|
2273
|
+
this._control.pullDirtyOwed = false;
|
|
2274
|
+
}
|
|
2275
|
+
return;
|
|
2276
|
+
}
|
|
2277
|
+
if (this._slot.handle !== null) {
|
|
2278
|
+
if (!this._wave.hasCalledFnOnce && !(this._slot.partial || this._allDepsSettled())) return;
|
|
2279
|
+
this._wave.emittedDirtyThisWave = false;
|
|
2280
|
+
this._control.pullDirtyOwed = true;
|
|
2281
|
+
try {
|
|
2282
|
+
this._runWave();
|
|
2283
|
+
} finally {
|
|
2284
|
+
this._control.pullDirtyOwed = false;
|
|
2285
|
+
}
|
|
2244
2286
|
}
|
|
2245
2287
|
}
|
|
2246
2288
|
/**
|
|
2247
|
-
* R-pull (
|
|
2289
|
+
* R-pull (D269): fire a demand that was OWED (deferred at demand time) once the node becomes
|
|
2248
2290
|
* able — called from the dep-settle arms (DATA/RESOLVED/INVALIDATE/terminal drain _pending, pin-5
|
|
2249
2291
|
* + B1/F6) and from `_pauseRelease` (an external PAUSE lock releases, F4/F5).
|
|
2250
2292
|
*/
|
|
2251
2293
|
_fireOwedDemandIfReady() {
|
|
2252
2294
|
if (this._control.inDeliverDemand) return;
|
|
2253
|
-
if (this._slot.pull && this._control.demandOwed && this._canFireDemand())
|
|
2254
|
-
this._deliverPullDemand();
|
|
2295
|
+
if (this._slot.pull && this._control.demandOwed !== void 0 && this._canFireDemand()) {
|
|
2296
|
+
this._deliverPullDemand(this._control.demandOwed);
|
|
2297
|
+
}
|
|
2255
2298
|
}
|
|
2256
2299
|
/** Should an outgoing settle slice be deferred into the pause buffer? */
|
|
2257
2300
|
_shouldBufferOnPause() {
|
|
2258
2301
|
if (this._slot.pausable === false) return false;
|
|
2259
|
-
if (!this._isPaused()) return false;
|
|
2302
|
+
if (!this._isPaused() && !this._isPullQuiet()) return false;
|
|
2260
2303
|
if (this._slot.pausable === "resumeAll") return true;
|
|
2261
2304
|
if (!this._wave.insideRunWave && this._isAsyncPool() && this._slot.deps.length > 0) return true;
|
|
2262
2305
|
return false;
|
|
@@ -2296,7 +2339,9 @@ var Node = class {
|
|
|
2296
2339
|
this._control.pauseLockset.clear();
|
|
2297
2340
|
this._control.pauseBuffer = [];
|
|
2298
2341
|
this._control.pausedDepWaveOccurred = false;
|
|
2299
|
-
this._control.demandOwed =
|
|
2342
|
+
this._control.demandOwed = void 0;
|
|
2343
|
+
this._control.activePull = void 0;
|
|
2344
|
+
this._control.pullDirtyOwed = false;
|
|
2300
2345
|
this._value.replayRing = [];
|
|
2301
2346
|
const isCompute = this._slot.handle !== null || this._slot.deps.length > 0;
|
|
2302
2347
|
if (isCompute) {
|