@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.
Files changed (307) hide show
  1. package/README.md +135 -0
  2. package/dist/adapters/index.cjs +105 -66
  3. package/dist/adapters/index.cjs.map +1 -1
  4. package/dist/adapters/index.d.cts +11 -136
  5. package/dist/adapters/index.d.ts +11 -136
  6. package/dist/adapters/index.js +27 -225
  7. package/dist/adapters/index.js.map +1 -1
  8. package/dist/adapters/observe-storage.d.cts +4 -4
  9. package/dist/adapters/observe-storage.d.ts +4 -4
  10. package/dist/adapters/observe-storage.js +1 -0
  11. package/dist/adapters/observe-storage.js.map +1 -1
  12. package/dist/adapters/react.cjs +166 -0
  13. package/dist/adapters/react.cjs.map +1 -0
  14. package/dist/adapters/react.d.cts +31 -0
  15. package/dist/adapters/react.d.ts +31 -0
  16. package/dist/adapters/react.js +51 -0
  17. package/dist/adapters/react.js.map +1 -0
  18. package/dist/adapters/solid.cjs +157 -0
  19. package/dist/adapters/solid.cjs.map +1 -0
  20. package/dist/adapters/solid.d.cts +26 -0
  21. package/dist/adapters/solid.d.ts +26 -0
  22. package/dist/adapters/solid.js +48 -0
  23. package/dist/adapters/solid.js.map +1 -0
  24. package/dist/adapters/svelte.cjs +148 -0
  25. package/dist/adapters/svelte.cjs.map +1 -0
  26. package/dist/adapters/svelte.d.cts +31 -0
  27. package/dist/adapters/svelte.d.ts +31 -0
  28. package/dist/adapters/svelte.js +46 -0
  29. package/dist/adapters/svelte.js.map +1 -0
  30. package/dist/adapters/vue.cjs +155 -0
  31. package/dist/adapters/vue.cjs.map +1 -0
  32. package/dist/adapters/vue.d.cts +26 -0
  33. package/dist/adapters/vue.d.ts +26 -0
  34. package/dist/adapters/vue.js +46 -0
  35. package/dist/adapters/vue.js.map +1 -0
  36. package/dist/agent-runtime-BesGDZcB.d.ts +555 -0
  37. package/dist/agent-runtime-DZTJ3C-p.d.cts +555 -0
  38. package/dist/agentic-memory-BmRCvh0d.d.ts +517 -0
  39. package/dist/agentic-memory-DfuVZ-lY.d.cts +517 -0
  40. package/dist/capability-admission-B0BzqAm5.d.cts +102 -0
  41. package/dist/capability-admission-g0mn9hpq.d.ts +102 -0
  42. package/dist/{chunk-JR4IKCR2.js → chunk-2747WN4Y.js} +5 -5
  43. package/dist/{chunk-2ILL7HQI.js → chunk-3JR3EDB2.js} +17 -17
  44. package/dist/{chunk-2ILL7HQI.js.map → chunk-3JR3EDB2.js.map} +1 -1
  45. package/dist/{chunk-GDL26N2T.js → chunk-3KN7NJDR.js} +2 -2
  46. package/dist/{chunk-DJC4CHLQ.js → chunk-43BKLFZU.js} +9 -9
  47. package/dist/chunk-6XAIOL3X.js +2407 -0
  48. package/dist/chunk-6XAIOL3X.js.map +1 -0
  49. package/dist/{chunk-SCRFRCGR.js → chunk-BSQGE5PS.js} +1 -1
  50. package/dist/{chunk-Y3ZLRGHC.js → chunk-CZNV3VXM.js} +16 -16
  51. package/dist/chunk-DGUM43GV.js +11 -0
  52. package/dist/chunk-DGUM43GV.js.map +1 -0
  53. package/dist/{chunk-JIMUDQN3.js → chunk-FBUU43PM.js} +2 -2
  54. package/dist/chunk-H75VXTGT.js +219 -0
  55. package/dist/chunk-H75VXTGT.js.map +1 -0
  56. package/dist/{chunk-RIIOUTGM.js → chunk-HKK2JD7Z.js} +12 -9
  57. package/dist/chunk-HKK2JD7Z.js.map +1 -0
  58. package/dist/{chunk-D6BG7U6A.js → chunk-IXZBUWSP.js} +3 -3
  59. package/dist/chunk-PC3BTTBE.js +3217 -0
  60. package/dist/chunk-PC3BTTBE.js.map +1 -0
  61. package/dist/chunk-QFY4AFY4.js +879 -0
  62. package/dist/chunk-QFY4AFY4.js.map +1 -0
  63. package/dist/{chunk-DK554R7P.js → chunk-S6HXABGL.js} +2 -1
  64. package/dist/chunk-S6HXABGL.js.map +1 -0
  65. package/dist/{chunk-PKVBHGBM.js → chunk-SS2A464I.js} +7 -7
  66. package/dist/chunk-UT3MHJCW.js +49 -0
  67. package/dist/chunk-UT3MHJCW.js.map +1 -0
  68. package/dist/{chunk-G4M3NHRJ.js → chunk-V7CIJE4B.js} +3 -3
  69. package/dist/{chunk-TEW47IVR.js → chunk-VPEFSDME.js} +2 -2
  70. package/dist/chunk-VTHLCFN4.js +368 -0
  71. package/dist/chunk-VTHLCFN4.js.map +1 -0
  72. package/dist/{chunk-SWTLEQL6.js → chunk-WQIA3GFB.js} +2 -2
  73. package/dist/chunk-WQIA3GFB.js.map +1 -0
  74. package/dist/{chunk-I3IHOHCJ.js → chunk-XKXWK2KP.js} +108 -64
  75. package/dist/chunk-XKXWK2KP.js.map +1 -0
  76. package/dist/{chunk-COHO25CZ.js → chunk-YDSIVHRR.js} +553 -7
  77. package/dist/chunk-YDSIVHRR.js.map +1 -0
  78. package/dist/chunk-YXMZ2N6J.js +1884 -0
  79. package/dist/chunk-YXMZ2N6J.js.map +1 -0
  80. package/dist/composition/index.cjs +102 -57
  81. package/dist/composition/index.cjs.map +1 -1
  82. package/dist/composition/index.d.cts +4 -4
  83. package/dist/composition/index.d.ts +4 -4
  84. package/dist/composition/index.js +6 -5
  85. package/dist/core/index.cjs +102 -57
  86. package/dist/core/index.cjs.map +1 -1
  87. package/dist/core/index.d.cts +2 -2
  88. package/dist/core/index.d.ts +2 -2
  89. package/dist/core/index.js +5 -4
  90. package/dist/cqrs/index.cjs.map +1 -1
  91. package/dist/cqrs/index.d.cts +4 -4
  92. package/dist/cqrs/index.d.ts +4 -4
  93. package/dist/cqrs/index.js +3 -2
  94. package/dist/cqrs/index.js.map +1 -1
  95. package/dist/cqrs/messaging.cjs +312 -0
  96. package/dist/cqrs/messaging.cjs.map +1 -0
  97. package/dist/cqrs/messaging.d.cts +57 -0
  98. package/dist/cqrs/messaging.d.ts +57 -0
  99. package/dist/cqrs/messaging.js +274 -0
  100. package/dist/cqrs/messaging.js.map +1 -0
  101. package/dist/cqrs/work-queue.cjs +329 -0
  102. package/dist/cqrs/work-queue.cjs.map +1 -0
  103. package/dist/cqrs/work-queue.d.cts +90 -0
  104. package/dist/cqrs/work-queue.d.ts +90 -0
  105. package/dist/cqrs/work-queue.js +292 -0
  106. package/dist/cqrs/work-queue.js.map +1 -0
  107. package/dist/data/index.cjs +19 -0
  108. package/dist/data/index.cjs.map +1 -0
  109. package/dist/data/index.d.cts +36 -0
  110. package/dist/data/index.d.ts +36 -0
  111. package/dist/data/index.js +1 -0
  112. package/dist/data/index.js.map +1 -0
  113. package/dist/data-structures/index.cjs +105 -57
  114. package/dist/data-structures/index.cjs.map +1 -1
  115. package/dist/data-structures/index.d.cts +8 -8
  116. package/dist/data-structures/index.d.ts +8 -8
  117. package/dist/data-structures/index.js +7 -6
  118. package/dist/{describe-BZb7AS2y.d.ts → describe-BpyJuWkw.d.ts} +1 -1
  119. package/dist/{describe-Ciu8SUnN.d.cts → describe-DYMw_l1C.d.cts} +1 -1
  120. package/dist/executors/work-queue.cjs +342 -0
  121. package/dist/executors/work-queue.cjs.map +1 -0
  122. package/dist/executors/work-queue.d.cts +90 -0
  123. package/dist/executors/work-queue.d.ts +90 -0
  124. package/dist/executors/work-queue.js +306 -0
  125. package/dist/executors/work-queue.js.map +1 -0
  126. package/dist/graph/index.cjs +112 -58
  127. package/dist/graph/index.cjs.map +1 -1
  128. package/dist/graph/index.d.cts +9 -9
  129. package/dist/graph/index.d.ts +9 -9
  130. package/dist/graph/index.js +18 -17
  131. package/dist/{graph-DfdF9zy4.d.ts → graph-D-1-SQeC.d.ts} +3 -3
  132. package/dist/{graph-s23RbbFO.d.cts → graph-DCEWh4T2.d.cts} +3 -3
  133. package/dist/{index-CAEmLCYF.d.cts → index-72VZC0-E.d.cts} +2 -2
  134. package/dist/{index-SnzZu3x7.d.ts → index-Bmxeu0nK.d.ts} +2 -2
  135. package/dist/index.cjs +112 -58
  136. package/dist/index.cjs.map +1 -1
  137. package/dist/index.d.cts +11 -10
  138. package/dist/index.d.ts +11 -10
  139. package/dist/index.js +118 -113
  140. package/dist/inspection/boundary.cjs +98 -0
  141. package/dist/inspection/boundary.cjs.map +1 -0
  142. package/dist/inspection/boundary.d.cts +61 -0
  143. package/dist/inspection/boundary.d.ts +61 -0
  144. package/dist/inspection/boundary.js +75 -0
  145. package/dist/inspection/boundary.js.map +1 -0
  146. package/dist/{messages-BZqrGGm1.d.ts → messages-CAzUPPJM.d.cts} +10 -5
  147. package/dist/{messages-BZqrGGm1.d.cts → messages-CAzUPPJM.d.ts} +10 -5
  148. package/dist/messaging/index.cjs +744 -613
  149. package/dist/messaging/index.cjs.map +1 -1
  150. package/dist/messaging/index.d.cts +216 -160
  151. package/dist/messaging/index.d.ts +216 -160
  152. package/dist/messaging/index.js +19 -749
  153. package/dist/messaging/index.js.map +1 -1
  154. package/dist/operators/index.cjs +102 -57
  155. package/dist/operators/index.cjs.map +1 -1
  156. package/dist/operators/index.d.cts +6 -6
  157. package/dist/operators/index.d.ts +6 -6
  158. package/dist/operators/index.js +8 -7
  159. package/dist/orchestration/index.cjs +3333 -59
  160. package/dist/orchestration/index.cjs.map +1 -1
  161. package/dist/orchestration/index.d.cts +7 -4
  162. package/dist/orchestration/index.d.ts +7 -4
  163. package/dist/orchestration/index.js +49 -8
  164. package/dist/orchestration/index.js.map +1 -1
  165. package/dist/orchestration/messaging.cjs +314 -0
  166. package/dist/orchestration/messaging.cjs.map +1 -0
  167. package/dist/orchestration/messaging.d.cts +59 -0
  168. package/dist/orchestration/messaging.d.ts +59 -0
  169. package/dist/orchestration/messaging.js +276 -0
  170. package/dist/orchestration/messaging.js.map +1 -0
  171. package/dist/orchestration/work-queue.cjs +262 -0
  172. package/dist/orchestration/work-queue.cjs.map +1 -0
  173. package/dist/orchestration/work-queue.d.cts +85 -0
  174. package/dist/orchestration/work-queue.d.ts +85 -0
  175. package/dist/orchestration/work-queue.js +226 -0
  176. package/dist/orchestration/work-queue.js.map +1 -0
  177. package/dist/patterns/event-flow.cjs +447 -0
  178. package/dist/patterns/event-flow.cjs.map +1 -0
  179. package/dist/patterns/event-flow.d.cts +115 -0
  180. package/dist/patterns/event-flow.d.ts +115 -0
  181. package/dist/patterns/event-flow.js +14 -0
  182. package/dist/patterns/event-flow.js.map +1 -0
  183. package/dist/patterns/index.cjs +423 -18
  184. package/dist/patterns/index.cjs.map +1 -1
  185. package/dist/patterns/index.d.cts +8 -5
  186. package/dist/patterns/index.d.ts +8 -5
  187. package/dist/patterns/index.js +13 -4
  188. package/dist/{reactive-collection-Cb1II1Fi.d.ts → reactive-collection-BAmfrGjd.d.ts} +9 -9
  189. package/dist/{reactive-collection-BxBqtIOE.d.cts → reactive-collection-DNV0-gFi.d.cts} +9 -9
  190. package/dist/{reactive-collection-storage-D-KmjE0J.d.cts → reactive-collection-storage-BNEldDyi.d.cts} +5 -5
  191. package/dist/{reactive-collection-storage-BNiEc-Gd.d.ts → reactive-collection-storage-YZsAQsWK.d.ts} +5 -5
  192. package/dist/{reactive-map-D-g3dv8I.d.cts → reactive-map-DRD1LJ2H.d.cts} +6 -6
  193. package/dist/{reactive-map-BcB4KsQR.d.ts → reactive-map-EsDiCmJk.d.ts} +6 -6
  194. package/dist/render/index.d.cts +3 -3
  195. package/dist/render/index.d.ts +3 -3
  196. package/dist/render/index.js +1 -0
  197. package/dist/{semantic-memory-graph-BYoIlP35.d.cts → semantic-memory-graph-DKuNzuWw.d.cts} +2 -2
  198. package/dist/{semantic-memory-graph-CxyXLms3.d.ts → semantic-memory-graph-uwbwJdhe.d.ts} +2 -2
  199. package/dist/solutions/index.cjs +4478 -2
  200. package/dist/solutions/index.cjs.map +1 -1
  201. package/dist/solutions/index.d.cts +13 -519
  202. package/dist/solutions/index.d.ts +13 -519
  203. package/dist/solutions/index.js +90 -6
  204. package/dist/solutions/reactive-layout/browser/index.cjs +449 -0
  205. package/dist/solutions/reactive-layout/browser/index.cjs.map +1 -0
  206. package/dist/solutions/reactive-layout/browser/index.d.cts +44 -0
  207. package/dist/solutions/reactive-layout/browser/index.d.ts +44 -0
  208. package/dist/solutions/reactive-layout/browser/index.js +69 -0
  209. package/dist/solutions/reactive-layout/browser/index.js.map +1 -0
  210. package/dist/solutions/reactive-layout/index.cjs +4266 -0
  211. package/dist/solutions/reactive-layout/index.cjs.map +1 -0
  212. package/dist/solutions/reactive-layout/index.d.cts +581 -0
  213. package/dist/solutions/reactive-layout/index.d.ts +581 -0
  214. package/dist/solutions/reactive-layout/index.js +86 -0
  215. package/dist/solutions/reactive-layout/index.js.map +1 -0
  216. package/dist/solutions/reactive-layout/node-canvas/index.cjs +545 -0
  217. package/dist/solutions/reactive-layout/node-canvas/index.cjs.map +1 -0
  218. package/dist/solutions/reactive-layout/node-canvas/index.d.cts +54 -0
  219. package/dist/solutions/reactive-layout/node-canvas/index.d.ts +54 -0
  220. package/dist/solutions/reactive-layout/node-canvas/index.js +131 -0
  221. package/dist/solutions/reactive-layout/node-canvas/index.js.map +1 -0
  222. package/dist/solutions/reactive-layout/react-native/index.cjs +494 -0
  223. package/dist/solutions/reactive-layout/react-native/index.cjs.map +1 -0
  224. package/dist/solutions/reactive-layout/react-native/index.d.cts +51 -0
  225. package/dist/solutions/reactive-layout/react-native/index.d.ts +51 -0
  226. package/dist/solutions/reactive-layout/react-native/index.js +77 -0
  227. package/dist/solutions/reactive-layout/react-native/index.js.map +1 -0
  228. package/dist/solutions/reactive-layout/skia/index.cjs +547 -0
  229. package/dist/solutions/reactive-layout/skia/index.cjs.map +1 -0
  230. package/dist/solutions/reactive-layout/skia/index.d.cts +64 -0
  231. package/dist/solutions/reactive-layout/skia/index.d.ts +64 -0
  232. package/dist/solutions/reactive-layout/skia/index.js +70 -0
  233. package/dist/solutions/reactive-layout/skia/index.js.map +1 -0
  234. package/dist/solutions/work-item/actions.cjs +2164 -0
  235. package/dist/solutions/work-item/actions.cjs.map +1 -0
  236. package/dist/solutions/work-item/actions.d.cts +201 -0
  237. package/dist/solutions/work-item/actions.d.ts +201 -0
  238. package/dist/solutions/work-item/actions.js +1454 -0
  239. package/dist/solutions/work-item/actions.js.map +1 -0
  240. package/dist/solutions/work-item/scheduling.cjs +2454 -0
  241. package/dist/solutions/work-item/scheduling.cjs.map +1 -0
  242. package/dist/solutions/work-item/scheduling.d.cts +433 -0
  243. package/dist/solutions/work-item/scheduling.d.ts +433 -0
  244. package/dist/solutions/work-item/scheduling.js +32 -0
  245. package/dist/solutions/work-item/scheduling.js.map +1 -0
  246. package/dist/solutions/work-item/work-queue.cjs +306 -0
  247. package/dist/solutions/work-item/work-queue.cjs.map +1 -0
  248. package/dist/solutions/work-item/work-queue.d.cts +71 -0
  249. package/dist/solutions/work-item/work-queue.d.ts +71 -0
  250. package/dist/solutions/work-item/work-queue.js +270 -0
  251. package/dist/solutions/work-item/work-queue.js.map +1 -0
  252. package/dist/sources/browser.cjs +169 -57
  253. package/dist/sources/browser.cjs.map +1 -1
  254. package/dist/sources/browser.d.cts +33 -6
  255. package/dist/sources/browser.d.ts +33 -6
  256. package/dist/sources/browser.js +73 -6
  257. package/dist/sources/browser.js.map +1 -1
  258. package/dist/sources/index.cjs +102 -57
  259. package/dist/sources/index.cjs.map +1 -1
  260. package/dist/sources/index.d.cts +5 -5
  261. package/dist/sources/index.d.ts +5 -5
  262. package/dist/sources/index.js +6 -5
  263. package/dist/sources/node.cjs.map +1 -1
  264. package/dist/sources/node.d.cts +4 -4
  265. package/dist/sources/node.d.ts +4 -4
  266. package/dist/sources/node.js +2 -1
  267. package/dist/sources/node.js.map +1 -1
  268. package/dist/storage/browser.js +1 -0
  269. package/dist/storage/browser.js.map +1 -1
  270. package/dist/storage/index.d.cts +5 -5
  271. package/dist/storage/index.d.ts +5 -5
  272. package/dist/storage/index.js +5 -4
  273. package/dist/storage/node.js +1 -0
  274. package/dist/storage/node.js.map +1 -1
  275. package/dist/store-C-joM4gh.d.ts +123 -0
  276. package/dist/store-CNJwmT-h.d.cts +123 -0
  277. package/dist/testing/index.cjs +1 -0
  278. package/dist/testing/index.cjs.map +1 -1
  279. package/dist/testing/index.d.cts +1 -1
  280. package/dist/testing/index.d.ts +1 -1
  281. package/dist/testing/index.js +3 -2
  282. package/dist/{types-h12mNYbq.d.ts → types-BsJvElYZ.d.ts} +31 -31
  283. package/dist/{types-bNMSWKqF.d.cts → types-CcPIn7sy.d.cts} +31 -31
  284. package/dist/work-item-runtime-C3M79vE9.d.ts +228 -0
  285. package/dist/work-item-runtime-qaVgsL0T.d.cts +228 -0
  286. package/dist/work-queue/index.cjs +1132 -0
  287. package/dist/work-queue/index.cjs.map +1 -0
  288. package/dist/work-queue/index.d.cts +369 -0
  289. package/dist/work-queue/index.d.ts +369 -0
  290. package/dist/work-queue/index.js +1078 -0
  291. package/dist/work-queue/index.js.map +1 -0
  292. package/package.json +266 -2
  293. package/dist/chunk-COHO25CZ.js.map +0 -1
  294. package/dist/chunk-DK554R7P.js.map +0 -1
  295. package/dist/chunk-I3IHOHCJ.js.map +0 -1
  296. package/dist/chunk-RIIOUTGM.js.map +0 -1
  297. package/dist/chunk-SWTLEQL6.js.map +0 -1
  298. /package/dist/{chunk-JR4IKCR2.js.map → chunk-2747WN4Y.js.map} +0 -0
  299. /package/dist/{chunk-GDL26N2T.js.map → chunk-3KN7NJDR.js.map} +0 -0
  300. /package/dist/{chunk-DJC4CHLQ.js.map → chunk-43BKLFZU.js.map} +0 -0
  301. /package/dist/{chunk-SCRFRCGR.js.map → chunk-BSQGE5PS.js.map} +0 -0
  302. /package/dist/{chunk-Y3ZLRGHC.js.map → chunk-CZNV3VXM.js.map} +0 -0
  303. /package/dist/{chunk-JIMUDQN3.js.map → chunk-FBUU43PM.js.map} +0 -0
  304. /package/dist/{chunk-D6BG7U6A.js.map → chunk-IXZBUWSP.js.map} +0 -0
  305. /package/dist/{chunk-PKVBHGBM.js.map → chunk-SS2A464I.js.map} +0 -0
  306. /package/dist/{chunk-G4M3NHRJ.js.map → chunk-V7CIJE4B.js.map} +0 -0
  307. /package/dist/{chunk-TEW47IVR.js.map → chunk-VPEFSDME.js.map} +0 -0
@@ -1,11 +1,7 @@
1
- import {
2
- strictCanonicalJsonBytes,
3
- strictJsonCodec
4
- } from "./chunk-4VLAQHZI.js";
5
1
  import {
6
2
  CTX_DEP_CACHE,
7
3
  CTX_NODE_BINDING
8
- } from "./chunk-SWTLEQL6.js";
4
+ } from "./chunk-WQIA3GFB.js";
9
5
  import {
10
6
  SENTINEL,
11
7
  errorPayload,
@@ -16,7 +12,11 @@ import {
16
12
  isUpAllowed,
17
13
  isValueTier,
18
14
  messageTier
19
- } from "./chunk-DK554R7P.js";
15
+ } from "./chunk-S6HXABGL.js";
16
+ import {
17
+ strictCanonicalJsonBytes,
18
+ strictJsonCodec
19
+ } from "./chunk-4VLAQHZI.js";
20
20
 
21
21
  // src/batch/boundary.ts
22
22
  var depth = 0;
@@ -801,6 +801,17 @@ function isNodeRuntimeReleased(n) {
801
801
  function terminalView(t) {
802
802
  return t === void 0 ? false : t;
803
803
  }
804
+ function normalizePullDemand(demand) {
805
+ if (typeof demand !== "object" || demand === null || Array.isArray(demand)) {
806
+ throw new Error("ctx.up: PULL requires { pullId, params? } demand payload (D269)");
807
+ }
808
+ const pullId = demand.pullId;
809
+ if (typeof pullId !== "string" && typeof pullId !== "symbol") {
810
+ throw new Error("ctx.up: PULL demand requires a string or symbol pullId (D269)");
811
+ }
812
+ const params = demand.params;
813
+ return params === void 0 ? { pullId } : { pullId, params };
814
+ }
804
815
  function validateDownPayloads(msgs) {
805
816
  for (const m of msgs) {
806
817
  if (m[0] === "DATA" && m[1] === void 0) {
@@ -844,7 +855,7 @@ var Node = class {
844
855
  const pull = opts.pullId !== void 0;
845
856
  if (pull && pausable === false)
846
857
  throw new Error(
847
- "node: pullId is incompatible with pausable:false \u2014 a pull node is demanded via RESUME, which pausable:false ignores (R-pull / R-pause-modes / D55,D59)"
858
+ "node: pullId is incompatible with pausable:false \u2014 a pull node uses the pausable delivery-content axis (R-pull / R-pause-modes / D55,D269)"
848
859
  );
849
860
  let handle;
850
861
  if (handleOrFn === null) handle = null;
@@ -867,7 +878,6 @@ var Node = class {
867
878
  value.status = "settled";
868
879
  }
869
880
  const pauseLockset = /* @__PURE__ */ new Set();
870
- if (pull) pauseLockset.add(pullLock);
871
881
  this._core = core ?? new NodeCore();
872
882
  const created = this._core.createSlot(
873
883
  {
@@ -908,7 +918,9 @@ var Node = class {
908
918
  pauseLockset,
909
919
  pausedDepWaveOccurred: false,
910
920
  pauseBuffer: [],
911
- demandOwed: false,
921
+ demandOwed: void 0,
922
+ activePull: void 0,
923
+ pullDirtyOwed: false,
912
924
  inDeliverDemand: false
913
925
  },
914
926
  privateState: { value: SENTINEL, persist: false },
@@ -965,10 +977,11 @@ var Node = class {
965
977
  this._wave.batchDirtyOwed = false;
966
978
  this._control.pauseBuffer = [];
967
979
  this._control.pausedDepWaveOccurred = false;
968
- this._control.demandOwed = false;
980
+ this._control.demandOwed = void 0;
981
+ this._control.activePull = void 0;
982
+ this._control.pullDirtyOwed = false;
969
983
  this._control.inDeliverDemand = false;
970
984
  this._control.pauseLockset.clear();
971
- if (this._slot.pull) this._control.pauseLockset.add(this._slot.pullLock);
972
985
  this._privateState.value = state.ctxState.value;
973
986
  this._privateState.persist = state.ctxState.persist;
974
987
  if (state.version === false) {
@@ -1007,17 +1020,16 @@ var Node = class {
1007
1020
  subscriberCountReaders.set(this, () => this._subscriberCount());
1008
1021
  activationReaders.set(this, () => this._lifecycle.activated);
1009
1022
  }
1010
- /** R-pull (D55): true while a pull node is quiet (holds its own pullId/demand lock). */
1023
+ /** R-pull (D55/D272): true while a pull node is not serving a PULL demand pulse. */
1011
1024
  _isPullQuiet() {
1012
- return this._slot.pull && this._control.pauseLockset.has(this._slot.pullLock);
1025
+ return this._slot.pull && this._control.activePull === void 0;
1013
1026
  }
1014
1027
  /**
1015
- * R-pull (D55/D59): this pull node's pullId (pure data, like {@link cache}/{@link handle} — never
1016
- * triggers computation). A consumer demands one delivery by cone-routing a RESUME of it (no node
1017
- * reference): `ctx.up([["RESUME", pullId]])` (immediate; loops back → D37 for a self-read dep) or
1018
- * `ctx.upNext([["RESUME", pullId]])` (boundary-deferred self-demand, R-up-routing/R-rewire-deferred).
1019
- * Undefined for a non-pull node. The author writes the pullId verbatim, so this getter is mainly
1020
- * for inspection/describe; routing matches by the pullId value carried in the RESUME, by identity.
1028
+ * R-pull (D269/D272): this pull node's pullId (pure data, like {@link cache}/{@link handle} —
1029
+ * never triggers computation). A consumer demands one delivery by cone-routing PULL of it (no
1030
+ * node reference): `ctx.up([["PULL", { pullId }]])` (immediate; loops back → D37 for a self-read
1031
+ * dep) or `ctx.upNext([["PULL", { pullId }]])` (boundary-deferred self-demand). Undefined for a
1032
+ * non-pull node. The author writes the pullId verbatim; routing matches by identity.
1021
1033
  */
1022
1034
  get pullId() {
1023
1035
  return this._slot.pullLock;
@@ -1124,10 +1136,10 @@ var Node = class {
1124
1136
  });
1125
1137
  }
1126
1138
  /**
1127
- * Enqueue a deferred up-going control wave (R-up-routing / R-pull / D59): at the committed wave
1139
+ * Enqueue a deferred up-going control/demand wave (R-up-routing / R-pull / D269): at the committed wave
1128
1140
  * boundary, route `msgs` up from THIS node (broadcast, or up the single `towardDep` edge). The
1129
- * deferred form of `ctx.up` — the SELF-demand path: a consumer issues `ctx.upNext([[RESUME,
1130
- * pullId]])` to demand a dep it ALSO reads; the demand applies at the boundary (not mid-fn), so
1141
+ * deferred form of `ctx.up` — the SELF-demand path: a consumer issues `ctx.upNext([[PULL,
1142
+ * { pullId }]])` to demand a dep it ALSO reads; the demand applies at the boundary (not mid-fn), so
1131
1143
  * the pull node's delivery loops back as a FRESH wave rather than re-entering the consumer (D37 /
1132
1144
  * R-reentrancy). Rides the same R-rewire-deferred (D47) drain as ctx.rewireNext.
1133
1145
  */
@@ -1342,7 +1354,6 @@ var Node = class {
1342
1354
  this._lifecycle.activated = true;
1343
1355
  const seedRestoredDeps = this._restoredActivationPending;
1344
1356
  this._restoredActivationPending = false;
1345
- if (this._slot.pull) this._control.pauseLockset.add(this._slot.pullLock);
1346
1357
  this._dep.unsubs = new Array(this._slot.deps.length);
1347
1358
  this._dep.idxBoxes = new Array(this._slot.deps.length);
1348
1359
  for (const dep of this._slot.deps)
@@ -1414,7 +1425,9 @@ var Node = class {
1414
1425
  this._control.pauseLockset.clear();
1415
1426
  this._control.pauseBuffer = [];
1416
1427
  this._control.pausedDepWaveOccurred = false;
1417
- this._control.demandOwed = false;
1428
+ this._control.demandOwed = void 0;
1429
+ this._control.activePull = void 0;
1430
+ this._control.pullDirtyOwed = false;
1418
1431
  this._value.replayRing = [];
1419
1432
  if (!this._privateState.persist) this._privateState.value = SENTINEL;
1420
1433
  }
@@ -1426,8 +1439,7 @@ var Node = class {
1426
1439
  return this._lifecycle.subscribers.size;
1427
1440
  }
1428
1441
  _isRuntimeQuiescentForRelease() {
1429
- const allowedPullQuietLock = this._slot.pull && this._control.pauseLockset.size === 1 && this._control.pauseLockset.has(this._slot.pullLock);
1430
- 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);
1442
+ 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;
1431
1443
  }
1432
1444
  _releaseRuntime() {
1433
1445
  if (this._released) return;
@@ -1483,7 +1495,9 @@ var Node = class {
1483
1495
  this._control.pauseLockset.clear();
1484
1496
  this._control.pauseBuffer = [];
1485
1497
  this._control.pausedDepWaveOccurred = false;
1486
- this._control.demandOwed = false;
1498
+ this._control.demandOwed = void 0;
1499
+ this._control.activePull = void 0;
1500
+ this._control.pullDirtyOwed = false;
1487
1501
  this._restoredActivationPending = false;
1488
1502
  checkpointReaders.delete(this);
1489
1503
  restoreWriters.delete(this);
@@ -1665,7 +1679,7 @@ var Node = class {
1665
1679
  this._wave.rewireRunPending = true;
1666
1680
  return;
1667
1681
  }
1668
- if (this._slot.pausable === true && this._isPaused()) {
1682
+ if (this._slot.pausable === true && (this._isPaused() || this._isPullQuiet())) {
1669
1683
  this._control.pausedDepWaveOccurred = true;
1670
1684
  return;
1671
1685
  }
@@ -1805,10 +1819,11 @@ var Node = class {
1805
1819
  unsubscribeDep: (dep, fn) => this._requestRewireNext({ kind: "remove", dep, fn }),
1806
1820
  replaceDeps: (deps, fn) => this._requestRewireNext({ kind: "set", deps, fn })
1807
1821
  },
1808
- // R-up-routing / R-pull (D59): deferred up — route a control wave (e.g. a RESUME pull
1809
- // DEMAND) up the declared cone at the committed boundary. The SELF-demand path: an
1822
+ // R-up-routing / R-pull (D269): deferred up — route a control/demand wave (e.g. PULL)
1823
+ // up the declared cone at the committed boundary. The SELF-demand path: an
1810
1824
  // immediate ctx.up whose delivery loops back re-enters this fn (D37 / R-reentrancy).
1811
1825
  upNext: (msgs, towardDep) => this._requestUpNext(msgs, towardDep),
1826
+ ...this._control.activePull === void 0 ? {} : { pull: this._control.activePull },
1812
1827
  [CTX_DEP_CACHE]: { latest: snapshot?.latest ?? this._dep.prev },
1813
1828
  [CTX_NODE_BINDING]: {
1814
1829
  dispatcher: this._slot.dispatcher,
@@ -1823,6 +1838,11 @@ var Node = class {
1823
1838
  _refreshCtx(ctx) {
1824
1839
  ctx.waveData = this._dep.waveData;
1825
1840
  ctx.terminal = this._dep.terminalInput.map(terminalView);
1841
+ if (this._control.activePull === void 0) {
1842
+ delete ctx.pull;
1843
+ } else {
1844
+ ctx.pull = this._control.activePull;
1845
+ }
1826
1846
  ctx[CTX_DEP_CACHE] = { latest: this._dep.prev };
1827
1847
  }
1828
1848
  _makeState() {
@@ -1915,7 +1935,7 @@ var Node = class {
1915
1935
  plannedVersions[i] = plannedVersion;
1916
1936
  }
1917
1937
  }
1918
- if (hasTier3 && !this._wave.insideRunWave && !this._wave.emittedDirtyThisWave) {
1938
+ if (hasTier3 && (!this._wave.insideRunWave || this._control.pullDirtyOwed) && !this._wave.emittedDirtyThisWave) {
1919
1939
  this._wave.emittedDirtyThisWave = true;
1920
1940
  this._value.status = "dirty";
1921
1941
  this._emitToSubs(["DIRTY"], { wave: deliveryWave, last: false });
@@ -1995,13 +2015,18 @@ var Node = class {
1995
2015
  if (m[0] === "PAUSE") {
1996
2016
  this._pauseAcquire(m[1]);
1997
2017
  } else if (m[0] === "RESUME") {
1998
- if (this._slot.pull && m[1] === this._slot.pullLock) {
1999
- if (!this._markDemandRouted(m[1], routeState)) this._onDemand();
2000
- } else if (this._control.pauseLockset.has(m[1])) {
2018
+ if (this._control.pauseLockset.has(m[1])) {
2001
2019
  this._pauseRelease(m[1]);
2002
2020
  } else {
2003
2021
  this._forwardUp(m, towardDep, routeState);
2004
2022
  }
2023
+ } else if (m[0] === "PULL") {
2024
+ const demand = normalizePullDemand(m[1]);
2025
+ if (this._slot.pull && demand.pullId === this._slot.pullLock) {
2026
+ if (!this._markDemandRouted(demand.pullId, routeState)) this._onDemand(demand);
2027
+ } else {
2028
+ this._forwardUp(["PULL", demand], towardDep, routeState);
2029
+ }
2005
2030
  } else if (this._slot.deps.length === 0) {
2006
2031
  if (m[0] === "INVALIDATE") this._down([["INVALIDATE"]]);
2007
2032
  } else {
@@ -2023,7 +2048,7 @@ var Node = class {
2023
2048
  * Forward one up-going control message toward deps (R-up-routing): up the single declared edge
2024
2049
  * `towardDep` (directed — prunes other branches; only meaningful on the issuer's FIRST hop) or
2025
2050
  * broadcast up ALL deps. A depless source has no deps → the message DROPS here (the terminus —
2026
- * e.g. a cone-routed RESUME whose pullId no node up this cone holds, R-up-at-source). Recursive
2051
+ * e.g. a cone-routed PULL whose pullId no node up this cone holds, R-up-at-source). Recursive
2027
2052
  * forwarding carries the same per-wave route state and no `towardDep` → broadcast beyond the
2028
2053
  * first hop.
2029
2054
  */
@@ -2042,9 +2067,7 @@ var Node = class {
2042
2067
  }
2043
2068
  _hasBoundaryPauseLock() {
2044
2069
  if (this._slot.pausable === false) return false;
2045
- let locks = this._control.pauseLockset.size;
2046
- if (this._slot.pull && this._control.pauseLockset.has(this._slot.pullLock)) locks--;
2047
- return locks > 0;
2070
+ return this._control.pauseLockset.size > 0;
2048
2071
  }
2049
2072
  _isAsyncPool() {
2050
2073
  return this._slot.handle !== null && this._slot.dispatcher.poolKind(this._slot.handle.poolId) === "async";
@@ -2055,17 +2078,19 @@ var Node = class {
2055
2078
  _pauseRelease(lockId) {
2056
2079
  if (!this._control.pauseLockset.has(lockId)) return;
2057
2080
  this._control.pauseLockset.delete(lockId);
2058
- if (this._slot.pull && this._control.demandOwed) this._fireOwedDemandIfReady();
2081
+ if (this._slot.pull && this._control.demandOwed !== void 0) this._fireOwedDemandIfReady();
2059
2082
  if (this._hasBoundaryPauseLock()) return;
2060
2083
  scheduleBoundaryDrain(this._core);
2061
- if (this._control.pauseLockset.size > 0) return;
2084
+ if (this._slot.pull) return;
2062
2085
  this._onResume();
2063
2086
  }
2064
2087
  _onResume() {
2065
2088
  if (this._value.terminal !== void 0) {
2066
2089
  this._control.pauseBuffer = [];
2067
2090
  this._control.pausedDepWaveOccurred = false;
2068
- this._control.demandOwed = false;
2091
+ this._control.demandOwed = void 0;
2092
+ this._control.activePull = void 0;
2093
+ this._control.pullDirtyOwed = false;
2069
2094
  return;
2070
2095
  }
2071
2096
  if (this._control.pauseBuffer.length > 0) {
@@ -2079,41 +2104,38 @@ var Node = class {
2079
2104
  }
2080
2105
  }
2081
2106
  /**
2082
- * R-pull (D59): can this pull node fire a demand NOW? — not terminal, settle-ready (_pending===0),
2107
+ * R-pull (D269): can this pull node fire a demand NOW? — not terminal, settle-ready (_pending===0),
2083
2108
  * and no OTHER (non-pullId) lock holds it paused. The gate that decides fire-now vs OWE.
2084
2109
  */
2085
2110
  _canFireDemand() {
2086
2111
  if (this._value.terminal !== void 0 || this._wave.pending > 0) return false;
2087
- const own = this._control.pauseLockset.has(this._slot.pullLock) ? 1 : 0;
2088
- return this._control.pauseLockset.size <= own;
2112
+ return this._control.pauseLockset.size === 0;
2089
2113
  }
2090
2114
  /**
2091
- * R-pull (D59): deliver ONE demand pulse — release the pullId so the demand wave RELAYS (not
2092
- * absorbed), fire it, then RE-QUIET (1:1). The pullId re-add + the re-entrancy flag are in a
2093
- * `finally` so a throwing pull fn (graph-less node, no D30 catch) cannot leave the node
2094
- * permanently non-quiet (the wedge-fix silently disabled) — QA-found robustness fix.
2115
+ * R-pull (D269/D272): deliver ONE demand pulse — install activePull so the demand wave may
2116
+ * emit, fire it, then clear activePull so the node is quiet again (1:1).
2095
2117
  */
2096
- _deliverPullDemand() {
2097
- this._control.demandOwed = false;
2118
+ _deliverPullDemand(demand) {
2119
+ this._control.demandOwed = void 0;
2120
+ this._control.activePull = demand;
2098
2121
  this._control.inDeliverDemand = true;
2099
- this._control.pauseLockset.delete(this._slot.pullLock);
2100
2122
  try {
2101
2123
  this._firePullDemand();
2102
2124
  } finally {
2103
- this._control.pauseLockset.add(this._slot.pullLock);
2125
+ this._control.activePull = void 0;
2104
2126
  this._control.inDeliverDemand = false;
2105
2127
  }
2106
2128
  }
2107
2129
  /**
2108
- * R-pull (D59): a cone-routed RESUME of THIS node's pullId arrived (R-up-routing) = a DEMAND.
2130
+ * R-pull (D269): a cone-routed PULL of THIS node's pullId arrived (R-up-routing) = a DEMAND.
2109
2131
  * Fire immediately if able; else OWE it — pin-5 (a dep DIRTY in flight, _pending>0) or F4/F5 (an
2110
2132
  * external PAUSE lock co-holds the node) — and fire when the node next becomes able. A demand
2111
2133
  * arriving WHILE a delivery is in flight (synchronous re-entry) is DROPPED (1:1, QA guard).
2112
2134
  */
2113
- _onDemand() {
2135
+ _onDemand(demand) {
2114
2136
  if (this._control.inDeliverDemand) return;
2115
- if (this._canFireDemand()) this._deliverPullDemand();
2116
- else this._control.demandOwed = true;
2137
+ if (this._canFireDemand()) this._deliverPullDemand(demand);
2138
+ else this._control.demandOwed = demand;
2117
2139
  }
2118
2140
  /**
2119
2141
  * R-pull (D55): service ONE demand. Delivery content = the orthogonal pausable mode:
@@ -2126,33 +2148,53 @@ var Node = class {
2126
2148
  * `_markDirty` relays the leading DIRTY (not absorbed).
2127
2149
  */
2128
2150
  _firePullDemand() {
2151
+ let drainedBuffer = false;
2129
2152
  if (this._control.pauseBuffer.length > 0) {
2130
2153
  const buf = this._control.pauseBuffer;
2131
2154
  this._control.pauseBuffer = [];
2132
2155
  for (const wave of buf) this._down(wave);
2156
+ drainedBuffer = true;
2133
2157
  }
2158
+ if (drainedBuffer) return;
2134
2159
  if (this._control.pausedDepWaveOccurred) {
2135
2160
  const gated = this._slot.handle !== null && !this._wave.hasCalledFnOnce && !(this._slot.partial || this._allDepsSettled());
2136
2161
  if (this._wave.pending > 0 || gated) return;
2137
2162
  this._control.pausedDepWaveOccurred = false;
2138
- this._markDirty();
2139
- this._tryRun();
2163
+ this._wave.emittedDirtyThisWave = false;
2164
+ this._control.pullDirtyOwed = true;
2165
+ try {
2166
+ this._tryRun();
2167
+ } finally {
2168
+ this._control.pullDirtyOwed = false;
2169
+ }
2170
+ return;
2171
+ }
2172
+ if (this._slot.handle !== null) {
2173
+ if (!this._wave.hasCalledFnOnce && !(this._slot.partial || this._allDepsSettled())) return;
2174
+ this._wave.emittedDirtyThisWave = false;
2175
+ this._control.pullDirtyOwed = true;
2176
+ try {
2177
+ this._runWave();
2178
+ } finally {
2179
+ this._control.pullDirtyOwed = false;
2180
+ }
2140
2181
  }
2141
2182
  }
2142
2183
  /**
2143
- * R-pull (D55/D59): fire a demand that was OWED (deferred at demand time) once the node becomes
2184
+ * R-pull (D269): fire a demand that was OWED (deferred at demand time) once the node becomes
2144
2185
  * able — called from the dep-settle arms (DATA/RESOLVED/INVALIDATE/terminal drain _pending, pin-5
2145
2186
  * + B1/F6) and from `_pauseRelease` (an external PAUSE lock releases, F4/F5).
2146
2187
  */
2147
2188
  _fireOwedDemandIfReady() {
2148
2189
  if (this._control.inDeliverDemand) return;
2149
- if (this._slot.pull && this._control.demandOwed && this._canFireDemand())
2150
- this._deliverPullDemand();
2190
+ if (this._slot.pull && this._control.demandOwed !== void 0 && this._canFireDemand()) {
2191
+ this._deliverPullDemand(this._control.demandOwed);
2192
+ }
2151
2193
  }
2152
2194
  /** Should an outgoing settle slice be deferred into the pause buffer? */
2153
2195
  _shouldBufferOnPause() {
2154
2196
  if (this._slot.pausable === false) return false;
2155
- if (!this._isPaused()) return false;
2197
+ if (!this._isPaused() && !this._isPullQuiet()) return false;
2156
2198
  if (this._slot.pausable === "resumeAll") return true;
2157
2199
  if (!this._wave.insideRunWave && this._isAsyncPool() && this._slot.deps.length > 0) return true;
2158
2200
  return false;
@@ -2192,7 +2234,9 @@ var Node = class {
2192
2234
  this._control.pauseLockset.clear();
2193
2235
  this._control.pauseBuffer = [];
2194
2236
  this._control.pausedDepWaveOccurred = false;
2195
- this._control.demandOwed = false;
2237
+ this._control.demandOwed = void 0;
2238
+ this._control.activePull = void 0;
2239
+ this._control.pullDirtyOwed = false;
2196
2240
  this._value.replayRing = [];
2197
2241
  const isCompute = this._slot.handle !== null || this._slot.deps.length > 0;
2198
2242
  if (isCompute) {
@@ -2264,4 +2308,4 @@ export {
2264
2308
  node,
2265
2309
  dynamicNode
2266
2310
  };
2267
- //# sourceMappingURL=chunk-I3IHOHCJ.js.map
2311
+ //# sourceMappingURL=chunk-XKXWK2KP.js.map