@almadar/std 17.0.2 → 17.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (317) hide show
  1. package/behaviors/lolo/auth/atoms/std-dev-personas.lolo +27 -2
  2. package/behaviors/lolo/cli/atoms/std-orb-goldens.lolo +6 -3
  3. package/behaviors/lolo/cli/atoms/std-orb-lint-mem-handles.lolo +54 -34
  4. package/behaviors/lolo/cli/atoms/std-orb-lint-os-grants.lolo +4 -4
  5. package/behaviors/lolo/cli/atoms/std-orb-mcp.lolo +16 -21
  6. package/behaviors/lolo/cli/atoms/std-orb-packages.lolo +26 -16
  7. package/behaviors/lolo/cli/atoms/std-orb-serve.lolo +24 -4
  8. package/behaviors/lolo/codec/atoms/std-lolo-kotlin.lolo +26 -3
  9. package/behaviors/lolo/codec/atoms/std-lolo-python.lolo +15 -2
  10. package/behaviors/lolo/codec/atoms/std-lolo-rust.lolo +27 -2
  11. package/behaviors/lolo/codec/atoms/std-lolo-source.lolo +251 -60
  12. package/behaviors/lolo/codec/atoms/std-lolo-swift.lolo +24 -1
  13. package/behaviors/lolo/codec/atoms/std-lolo-typescript.lolo +24 -3
  14. package/behaviors/lolo/connect/atoms/std-meta-ads.lolo +4 -4
  15. package/behaviors/lolo/connect/atoms/std-stdio-lines.lolo +7 -4
  16. package/behaviors/lolo/connect/atoms/std-youtube.lolo +9 -9
  17. package/behaviors/lolo/dev/atoms/std-guest-session.lolo +122 -10
  18. package/behaviors/lolo/dev/atoms/std-mock-seed-marks.lolo +66 -0
  19. package/behaviors/lolo/dev/organisms/std-behavior-playground.lolo +5 -2
  20. package/behaviors/lolo/dev/organisms/std-launchpad.lolo +4 -3
  21. package/behaviors/lolo/gpu/atoms/std-gpu-compute.lolo +329 -0
  22. package/behaviors/lolo/net/atoms/std-http-client.lolo +4 -4
  23. package/behaviors/lolo/net/atoms/std-http-fetch.lolo +6 -6
  24. package/behaviors/lolo/net/atoms/std-npm-lookup.lolo +1 -1
  25. package/behaviors/lolo/net/atoms/std-npm-registry.lolo +2 -2
  26. package/behaviors/lolo/spec/auth/dev-personas.replay.goldens.json +263 -2
  27. package/behaviors/lolo/spec/cli/lint-all.lolo +1 -0
  28. package/behaviors/lolo/spec/cli/lint-item-action-event.replay.goldens.json +9 -9
  29. package/behaviors/lolo/spec/cli/lint-mem-handles.replay.goldens.json +3021 -1
  30. package/behaviors/lolo/spec/cli/lint-os-grants.replay.goldens.json +284 -12
  31. package/behaviors/lolo/spec/cli/mcp-server.replay.goldens.json +51 -55
  32. package/behaviors/lolo/spec/cli/orb-compile.replay.goldens.json +10 -4
  33. package/behaviors/lolo/spec/cli/orb-packages.lolo +1 -1
  34. package/behaviors/lolo/spec/codec/lolo-kotlin.replay.goldens.json +7496 -7497
  35. package/behaviors/lolo/spec/codec/lolo-python.replay.goldens.json +341 -3
  36. package/behaviors/lolo/spec/codec/lolo-rust.replay.goldens.json +18931 -6142
  37. package/behaviors/lolo/spec/codec/lolo-source.fixtures/compose-pair.lolo +44 -0
  38. package/behaviors/lolo/spec/codec/lolo-source.fixtures/config-read.lolo +2 -1
  39. package/behaviors/lolo/spec/codec/lolo-source.fixtures/divide-default.lolo +2 -1
  40. package/behaviors/lolo/spec/codec/lolo-source.fixtures/divide-plain.lolo +2 -1
  41. package/behaviors/lolo/spec/codec/lolo-source.fixtures/get-past-end.lolo +2 -1
  42. package/behaviors/lolo/spec/codec/lolo-source.fixtures/list-call.lolo +2 -1
  43. package/behaviors/lolo/spec/codec/lolo-source.fixtures/list-plain.lolo +2 -1
  44. package/behaviors/lolo/spec/codec/lolo-source.fixtures/minus-binary.lolo +2 -1
  45. package/behaviors/lolo/spec/codec/lolo-source.fixtures/minus-unary.lolo +2 -1
  46. package/behaviors/lolo/spec/codec/lolo-source.fixtures/nested-let.lolo +2 -1
  47. package/behaviors/lolo/spec/codec/lolo-source.fixtures/no-machine.lolo +2 -1
  48. package/behaviors/lolo/spec/codec/lolo-source.fixtures/no-template.lolo +2 -1
  49. package/behaviors/lolo/spec/codec/lolo-source.fixtures/nth-past-end.lolo +2 -1
  50. package/behaviors/lolo/spec/codec/lolo-source.fixtures/nth-raw.lolo +2 -1
  51. package/behaviors/lolo/spec/codec/lolo-source.fixtures/ports-call.lolo +2 -1
  52. package/behaviors/lolo/spec/codec/lolo-source.fixtures/range-one.lolo +2 -1
  53. package/behaviors/lolo/spec/codec/lolo-source.fixtures/range-two.lolo +2 -1
  54. package/behaviors/lolo/spec/codec/lolo-source.fixtures/router-trio.lolo +88 -0
  55. package/behaviors/lolo/spec/codec/lolo-source.fixtures/store-pair.lolo +62 -0
  56. package/behaviors/lolo/spec/codec/lolo-source.fixtures/string-literal.lolo +2 -1
  57. package/behaviors/lolo/spec/codec/lolo-source.gen/knobs.py +27 -1
  58. package/behaviors/lolo/spec/codec/lolo-source.gen/src_assemble.in +54 -2
  59. package/behaviors/lolo/spec/codec/lolo-source.gen/src_finish.in +1 -1
  60. package/behaviors/lolo/spec/codec/lolo-source.gen/src_fold.in +24 -4
  61. package/behaviors/lolo/spec/codec/lolo-source.gen/src_head.in +8 -3
  62. package/behaviors/lolo/spec/codec/lolo-source.gen/src_prepare.in +6 -2
  63. package/behaviors/lolo/spec/codec/lolo-source.gen/src_trait.in +12 -2
  64. package/behaviors/lolo/spec/codec/lolo-source.parity/agent-step.lolo +2 -1
  65. package/behaviors/lolo/spec/codec/lolo-source.parity/agent-step.server.lolo +1 -0
  66. package/behaviors/lolo/spec/codec/lolo-source.parity/chunk.lolo +2 -1
  67. package/behaviors/lolo/spec/codec/lolo-source.parity/chunk.server.lolo +1 -0
  68. package/behaviors/lolo/spec/codec/lolo-source.parity/compose-pair.events.json +36 -0
  69. package/behaviors/lolo/spec/codec/lolo-source.parity/compose-pair.replay.goldens.json +91 -0
  70. package/behaviors/lolo/spec/codec/lolo-source.parity/cosine.lolo +2 -1
  71. package/behaviors/lolo/spec/codec/lolo-source.parity/cosine.server.lolo +1 -0
  72. package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/kotlin/compose-pair.kt +31 -0
  73. package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/kotlin/router-trio.kt +31 -0
  74. package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/kotlin/store-pair.kt +31 -0
  75. package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/python/compose-pair.py +18 -0
  76. package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/python/router-trio.py +18 -0
  77. package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/python/store-pair.py +17 -0
  78. package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/rust/compose-pair.rs +37 -0
  79. package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/rust/router-trio.rs +37 -0
  80. package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/rust/store-pair.rs +36 -0
  81. package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/swift/compose-pair.swift +24 -0
  82. package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/swift/router-trio.swift +24 -0
  83. package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/swift/store-pair.swift +23 -0
  84. package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/typescript/compose-pair.mts +24 -0
  85. package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/typescript/router-trio.mts +24 -0
  86. package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/typescript/store-pair.mts +22 -0
  87. package/behaviors/lolo/spec/codec/lolo-source.parity/recall-at-k.lolo +2 -1
  88. package/behaviors/lolo/spec/codec/lolo-source.parity/recall-at-k.server.lolo +1 -0
  89. package/behaviors/lolo/spec/codec/lolo-source.parity/router-trio.events.json +18 -0
  90. package/behaviors/lolo/spec/codec/lolo-source.parity/router-trio.replay.goldens.json +87 -0
  91. package/behaviors/lolo/spec/codec/lolo-source.parity/store-pair.events.json +58 -0
  92. package/behaviors/lolo/spec/codec/lolo-source.parity/store-pair.replay.goldens.json +238 -0
  93. package/behaviors/lolo/spec/codec/lolo-swift.replay.goldens.json +15599 -2204
  94. package/behaviors/lolo/spec/codec/lolo-typescript.replay.goldens.json +28930 -28929
  95. package/behaviors/lolo/spec/connect/bearer-api.replay.goldens.json +1 -1
  96. package/behaviors/lolo/spec/connect/esign.replay.goldens.json +3 -3
  97. package/behaviors/lolo/spec/connect/github.replay.goldens.json +13 -13
  98. package/behaviors/lolo/spec/connect/google-calendar.replay.goldens.json +2 -2
  99. package/behaviors/lolo/spec/connect/image.replay.goldens.json +1 -1
  100. package/behaviors/lolo/spec/connect/meta-ads.replay.goldens.json +2 -2
  101. package/behaviors/lolo/spec/connect/stdio-lines.replay.goldens.json +90 -0
  102. package/behaviors/lolo/spec/connect/twilio.replay.goldens.json +2 -2
  103. package/behaviors/lolo/spec/connect/youtube.replay.goldens.json +1 -1
  104. package/behaviors/lolo/spec/dev/guest-session.replay.goldens.json +824 -0
  105. package/behaviors/lolo/spec/dev/mock-seed-marks.replay.goldens.json +365 -0
  106. package/behaviors/lolo/spec/dev/verify-walk.replay.goldens.json +2 -1
  107. package/behaviors/lolo/spec/gpu/gpu-compute.replay.goldens.json +784 -0
  108. package/behaviors/lolo/spec/mem/mem-buffer.replay.goldens.json +97 -1
  109. package/behaviors/lolo/spec/ml/vector-write.goldens.json +1 -1
  110. package/behaviors/lolo/spec/ml/vector-write.replay.goldens.json +2 -2
  111. package/behaviors/lolo/spec/net/http-client-call-host.replay.goldens.json +3 -3
  112. package/behaviors/lolo/spec/net/http-client-env-host.replay.goldens.json +3 -3
  113. package/behaviors/lolo/spec/net/http-client.replay.goldens.json +56 -56
  114. package/behaviors/lolo/spec/net/http-fetch.replay.goldens.json +2 -2
  115. package/behaviors/lolo/spec/net/npm-lookup.replay.goldens.json +1 -1
  116. package/behaviors/lolo/spec/net/npm-registry.replay.goldens.json +2 -2
  117. package/behaviors/lolo/spec/net/server-declared-traits.replay.goldens.json +6 -3
  118. package/behaviors/lolo/spec/net/server-external-inputs.replay.goldens.json +16 -8
  119. package/behaviors/lolo/spec/net/server-retargeted-leg.replay.goldens.json +4 -2
  120. package/behaviors/lolo/spec/net/server-untargeted-discovery.replay.goldens.json +50 -45
  121. package/behaviors/lolo/spec/ops/llm-spend-board.replay.goldens.json +112 -16
  122. package/behaviors/lolo/spec/store/firestore-twin.replay.goldens.json +1 -1
  123. package/behaviors/lolo/spec/store/row-store-postgres.gen/record_real_sql.py +1 -1
  124. package/behaviors/lolo/spec/ui/game/fx-particles.replay.goldens.json +37 -0
  125. package/behaviors/lolo/ui/avl/atoms/std-avl-cosmic-zoom.lolo +2 -2
  126. package/behaviors/lolo/ui/game/atoms/std-fx-particles.lolo +10 -1
  127. package/behaviors/lolo/ui/game/atoms/ui-draw-fx-layer.lolo +4 -4
  128. package/behaviors/lolo/ui/game/organisms/std-arcade-board-3d.lolo +9 -9
  129. package/behaviors/lolo/ui/game/organisms/std-crew-board-2d.lolo +4 -4
  130. package/behaviors/lolo/ui/game/organisms/std-dungeon-board-2d.lolo +5 -5
  131. package/behaviors/lolo/ui/game/organisms/std-market-board-3d.lolo +9 -9
  132. package/behaviors/lolo/ui/game/organisms/std-objective-board-3d.lolo +9 -9
  133. package/behaviors/lolo/ui/game/organisms/std-platformer-board-2d.lolo +5 -5
  134. package/behaviors/lolo/ui/game/organisms/std-platformer-puzzle.lolo +4 -4
  135. package/behaviors/lolo/ui/game/organisms/std-survival-board-3d.lolo +9 -9
  136. package/behaviors/lolo/ui/game/organisms/std-tactics-board-2d.lolo +5 -5
  137. package/behaviors/lolo/ui/game/organisms/std-tactics-board-3d.lolo +9 -9
  138. package/behaviors/registry/auth/atoms/std-dev-personas.orb +1 -1
  139. package/behaviors/registry/cli/atoms/std-orb-goldens.orb +1 -1
  140. package/behaviors/registry/cli/atoms/std-orb-lint-mem-handles.orb +1 -1
  141. package/behaviors/registry/cli/atoms/std-orb-lint-os-grants.orb +1 -1
  142. package/behaviors/registry/cli/atoms/std-orb-mcp.orb +1 -1
  143. package/behaviors/registry/cli/atoms/std-orb-packages.orb +1 -1
  144. package/behaviors/registry/cli/atoms/std-orb-serve.orb +1 -1
  145. package/behaviors/registry/codec/atoms/std-lolo-kotlin.orb +1 -1
  146. package/behaviors/registry/codec/atoms/std-lolo-python.orb +1 -1
  147. package/behaviors/registry/codec/atoms/std-lolo-rust.orb +1 -1
  148. package/behaviors/registry/codec/atoms/std-lolo-source.orb +1 -1
  149. package/behaviors/registry/codec/atoms/std-lolo-swift.orb +1 -1
  150. package/behaviors/registry/codec/atoms/std-lolo-typescript.orb +1 -1
  151. package/behaviors/registry/connect/atoms/std-meta-ads.orb +1 -1
  152. package/behaviors/registry/connect/atoms/std-stdio-lines.orb +1 -1
  153. package/behaviors/registry/connect/atoms/std-youtube.orb +1 -1
  154. package/behaviors/registry/dev/atoms/std-guest-session.orb +1 -1
  155. package/behaviors/registry/dev/atoms/std-mock-seed-marks.orb +1 -0
  156. package/behaviors/registry/dev/organisms/std-behavior-playground.orb +37 -0
  157. package/behaviors/registry/dev/organisms/std-launchpad.orb +25 -0
  158. package/behaviors/registry/gpu/atoms/std-gpu-compute.orb +1 -0
  159. package/behaviors/registry/net/atoms/std-http-client.orb +1 -1
  160. package/behaviors/registry/net/atoms/std-http-fetch.orb +1 -1
  161. package/behaviors/registry/net/atoms/std-npm-lookup.orb +1 -1
  162. package/behaviors/registry/net/atoms/std-npm-registry.orb +1 -1
  163. package/behaviors/registry/spec/cli/lint-all.orb +1 -1
  164. package/behaviors/registry/spec/cli/orb-packages.orb +1 -1
  165. package/behaviors/registry/spec/codec/lolo-source.fixtures/compose-pair.orb +1 -0
  166. package/behaviors/registry/spec/codec/lolo-source.fixtures/config-read.orb +1 -1
  167. package/behaviors/registry/spec/codec/lolo-source.fixtures/divide-default.orb +1 -1
  168. package/behaviors/registry/spec/codec/lolo-source.fixtures/divide-plain.orb +1 -1
  169. package/behaviors/registry/spec/codec/lolo-source.fixtures/get-past-end.orb +1 -1
  170. package/behaviors/registry/spec/codec/lolo-source.fixtures/list-call.orb +1 -1
  171. package/behaviors/registry/spec/codec/lolo-source.fixtures/list-plain.orb +1 -1
  172. package/behaviors/registry/spec/codec/lolo-source.fixtures/minus-binary.orb +1 -1
  173. package/behaviors/registry/spec/codec/lolo-source.fixtures/minus-unary.orb +1 -1
  174. package/behaviors/registry/spec/codec/lolo-source.fixtures/nested-let.orb +1 -1
  175. package/behaviors/registry/spec/codec/lolo-source.fixtures/no-machine.orb +1 -1
  176. package/behaviors/registry/spec/codec/lolo-source.fixtures/no-template.orb +1 -1
  177. package/behaviors/registry/spec/codec/lolo-source.fixtures/nth-past-end.orb +1 -1
  178. package/behaviors/registry/spec/codec/lolo-source.fixtures/nth-raw.orb +1 -1
  179. package/behaviors/registry/spec/codec/lolo-source.fixtures/ports-call.orb +1 -1
  180. package/behaviors/registry/spec/codec/lolo-source.fixtures/range-one.orb +1 -1
  181. package/behaviors/registry/spec/codec/lolo-source.fixtures/range-two.orb +1 -1
  182. package/behaviors/registry/spec/codec/lolo-source.fixtures/router-trio.orb +1 -0
  183. package/behaviors/registry/spec/codec/lolo-source.fixtures/store-pair.orb +1 -0
  184. package/behaviors/registry/spec/codec/lolo-source.fixtures/string-literal.orb +1 -1
  185. package/behaviors/registry/spec/codec/lolo-source.parity/agent-step.orb +1 -1
  186. package/behaviors/registry/spec/codec/lolo-source.parity/agent-step.server.orb +1 -1
  187. package/behaviors/registry/spec/codec/lolo-source.parity/chunk.orb +1 -1
  188. package/behaviors/registry/spec/codec/lolo-source.parity/chunk.server.orb +1 -1
  189. package/behaviors/registry/spec/codec/lolo-source.parity/cosine.orb +1 -1
  190. package/behaviors/registry/spec/codec/lolo-source.parity/cosine.server.orb +1 -1
  191. package/behaviors/registry/spec/codec/lolo-source.parity/recall-at-k.orb +1 -1
  192. package/behaviors/registry/spec/codec/lolo-source.parity/recall-at-k.server.orb +1 -1
  193. package/behaviors/registry/ui/avl/atoms/std-avl-cosmic-zoom.orb +1 -1
  194. package/behaviors/registry/ui/game/atoms/std-fx-particles.orb +1 -1
  195. package/behaviors/registry/ui/game/atoms/ui-draw-fx-layer.orb +1 -1
  196. package/behaviors/registry/ui/game/organisms/std-arcade-board-3d.orb +20 -13
  197. package/behaviors/registry/ui/game/organisms/std-crew-board-2d.orb +9 -5
  198. package/behaviors/registry/ui/game/organisms/std-dungeon-board-2d.orb +17 -7
  199. package/behaviors/registry/ui/game/organisms/std-market-board-3d.orb +19 -15
  200. package/behaviors/registry/ui/game/organisms/std-objective-board-3d.orb +15 -12
  201. package/behaviors/registry/ui/game/organisms/std-platformer-board-2d.orb +17 -7
  202. package/behaviors/registry/ui/game/organisms/std-platformer-puzzle.orb +4 -0
  203. package/behaviors/registry/ui/game/organisms/std-survival-board-3d.orb +15 -12
  204. package/behaviors/registry/ui/game/organisms/std-tactics-board-2d.orb +13 -6
  205. package/behaviors/registry/ui/game/organisms/std-tactics-board-3d.orb +14 -12
  206. package/canonical-operators.json +1426 -103
  207. package/dist/{chunk-EK22WRB6.js → chunk-2UGHBVU2.js} +2 -2
  208. package/dist/{chunk-GDMH5T4J.js → chunk-3DK7GI2C.js} +2 -2
  209. package/dist/chunk-3MDASC5C.js +26 -0
  210. package/dist/{chunk-K5ZI27PB.js → chunk-3PHO4RRF.js} +1 -1
  211. package/dist/{chunk-7IEMMYM6.js → chunk-4MJCLAZW.js} +1 -1
  212. package/dist/{chunk-W4IEV4BY.js → chunk-55JPIL7A.js} +2 -2
  213. package/dist/{chunk-RUGBZTV3.js → chunk-66BLZLFI.js} +1 -1
  214. package/dist/{chunk-YWFISV7L.js → chunk-66RAJFOD.js} +1 -1
  215. package/dist/{chunk-JWOWWGNZ.js → chunk-6ED4SUC6.js} +1 -1
  216. package/dist/{chunk-LL7P6EII.js → chunk-6KFCHNE2.js} +2 -2
  217. package/dist/{chunk-GFBL2TW6.js → chunk-A4QB3Y6L.js} +1 -1
  218. package/dist/chunk-BVWMLS32.js +123 -0
  219. package/dist/{chunk-5KQCGSNC.js → chunk-CRKVDCY7.js} +1 -1
  220. package/dist/{chunk-WHQDLLC3.js → chunk-EKWEY4OJ.js} +1 -1
  221. package/dist/{chunk-Y3BRVNYK.js → chunk-EU22GCGV.js} +2 -2
  222. package/dist/{chunk-XQPYTDZ4.js → chunk-FB6PKNRS.js} +1 -1
  223. package/dist/{chunk-UX3MDFX6.js → chunk-FSVOJQLP.js} +1 -1
  224. package/dist/{chunk-LDBD2FBQ.js → chunk-GAKLBWBR.js} +1 -1
  225. package/dist/{chunk-C3IEMPRZ.js → chunk-GO3FKBV2.js} +2 -2
  226. package/dist/{chunk-LZSPEHSM.js → chunk-GPDTJHYY.js} +1 -1
  227. package/dist/{chunk-W5ABMOXU.js → chunk-JQBWLH5V.js} +1 -1
  228. package/dist/{chunk-63X6RNY6.js → chunk-KKW3JHTC.js} +1 -1
  229. package/dist/{chunk-5PLJE42Q.js → chunk-LF2EZVAM.js} +1 -1
  230. package/dist/{chunk-RXWBYWQB.js → chunk-LGCKOZP3.js} +2 -2
  231. package/dist/{chunk-JJEADYP7.js → chunk-LMZ6XJFB.js} +2 -2
  232. package/dist/{chunk-CWYSQZJU.js → chunk-M2YQNSAZ.js} +2 -2
  233. package/dist/{chunk-GNCKJV3P.js → chunk-MKWHYBIS.js} +1 -1
  234. package/dist/{chunk-ZB2CLGEG.js → chunk-MXBGYTYF.js} +1 -1
  235. package/dist/{chunk-UN76TRSK.js → chunk-NH6MXHZR.js} +41 -41
  236. package/dist/{chunk-II2VW7T6.js → chunk-ODBIX4DB.js} +1 -1
  237. package/dist/{chunk-3F3CNWOG.js → chunk-OYDQR6DT.js} +2 -2
  238. package/dist/{chunk-FVL6BT6L.js → chunk-PD6POR44.js} +1 -1
  239. package/dist/{chunk-U6USXZ5M.js → chunk-PHFT3QNS.js} +2 -2
  240. package/dist/{chunk-RJYKIZMS.js → chunk-PQZ6PVKG.js} +2 -2
  241. package/dist/{chunk-TQPQXCSZ.js → chunk-Q6NHXIOZ.js} +2 -2
  242. package/dist/{chunk-KYGWVCTM.js → chunk-QMDVYTB7.js} +1 -1
  243. package/dist/{chunk-XKTATY45.js → chunk-RW2KMSG5.js} +4 -4
  244. package/dist/{chunk-UHNSPTFT.js → chunk-SA2ZS24W.js} +1 -1
  245. package/dist/{chunk-6YPUQK36.js → chunk-SFWP4UMK.js} +2 -2
  246. package/dist/{chunk-ZZYLFHBU.js → chunk-TLNEQA4D.js} +1 -1
  247. package/dist/{chunk-RGTBRWWA.js → chunk-TOODE5AD.js} +2 -2
  248. package/dist/{chunk-QGWAHOFR.js → chunk-U57GY7SM.js} +2 -2
  249. package/dist/{chunk-FDJZKB7J.js → chunk-UIDQQJSX.js} +1 -1
  250. package/dist/{chunk-LLH3WXM3.js → chunk-UVFP2B7I.js} +1 -1
  251. package/dist/{chunk-4OF7727E.js → chunk-VEGZPCTZ.js} +2 -2
  252. package/dist/{chunk-73YUPNIT.js → chunk-VXN4V7LC.js} +1 -1
  253. package/dist/{chunk-4D3W6AAE.js → chunk-YHQVZWPG.js} +1 -1
  254. package/dist/{chunk-XXYBHYLM.js → chunk-YQO3TO66.js} +2 -2
  255. package/dist/{chunk-YZAYFR5A.js → chunk-ZSJ3GEOJ.js} +1 -1
  256. package/dist/index.d.ts +3 -3
  257. package/dist/index.js +50 -50
  258. package/dist/modules/anim.js +2 -2
  259. package/dist/modules/array.js +2 -2
  260. package/dist/modules/auth.js +3 -3
  261. package/dist/modules/behavior.js +2 -2
  262. package/dist/modules/bit.js +2 -2
  263. package/dist/modules/browser.js +2 -2
  264. package/dist/modules/bytes.js +2 -2
  265. package/dist/modules/codec.js +3 -3
  266. package/dist/modules/composition.js +2 -2
  267. package/dist/modules/core.js +2 -2
  268. package/dist/modules/csv.js +2 -2
  269. package/dist/modules/ffi.js +3 -3
  270. package/dist/modules/format.js +2 -2
  271. package/dist/modules/geo.js +2 -2
  272. package/dist/modules/gpu.d.ts +12 -0
  273. package/dist/modules/gpu.js +3 -0
  274. package/dist/modules/grid.js +2 -2
  275. package/dist/modules/i18n.js +2 -2
  276. package/dist/modules/index.d.ts +1 -2
  277. package/dist/modules/index.js +45 -46
  278. package/dist/modules/json.js +2 -2
  279. package/dist/modules/kernel.js +3 -3
  280. package/dist/modules/kv.js +3 -3
  281. package/dist/modules/llm.js +2 -2
  282. package/dist/modules/math.js +2 -2
  283. package/dist/modules/mem.js +3 -3
  284. package/dist/modules/object.js +2 -2
  285. package/dist/modules/os-common.d.ts +1 -1
  286. package/dist/modules/os-common.js +2 -2
  287. package/dist/modules/os-desktop.js +3 -3
  288. package/dist/modules/os-dev.js +3 -3
  289. package/dist/modules/os-dir.js +3 -3
  290. package/dist/modules/os-env-stdio.js +3 -3
  291. package/dist/modules/os-fs.js +3 -3
  292. package/dist/modules/os-net.js +3 -3
  293. package/dist/modules/os-path.js +3 -3
  294. package/dist/modules/os-process.js +3 -3
  295. package/dist/modules/os-sys.js +3 -3
  296. package/dist/modules/os-time-users.js +3 -3
  297. package/dist/modules/os.js +13 -13
  298. package/dist/modules/path.js +2 -2
  299. package/dist/modules/prob.js +2 -2
  300. package/dist/modules/program.js +2 -2
  301. package/dist/modules/session.js +2 -2
  302. package/dist/modules/str.js +2 -2
  303. package/dist/modules/time.js +2 -2
  304. package/dist/modules/validate.js +2 -2
  305. package/dist/modules/vector.js +2 -2
  306. package/dist/modules/workspace.js +2 -2
  307. package/dist/modules/xml.js +2 -2
  308. package/dist/modules/yaml.js +2 -2
  309. package/dist/registry.d.ts +2 -2
  310. package/dist/registry.js +49 -49
  311. package/dist/{types-BA4LkhNJ.d.ts → types-CgiGhK6t.d.ts} +17 -3
  312. package/package.json +5 -5
  313. package/dist/chunk-F5TP25JA.js +0 -26
  314. package/dist/chunk-NE4WSTN7.js +0 -26
  315. package/dist/modules/trace.d.ts +0 -15
  316. package/dist/modules/trace.js +0 -2
  317. /package/dist/{chunk-SHSBTDDX.js → chunk-QUQ33UXH.js} +0 -0
@@ -25,13 +25,17 @@
25
25
  events: (array/unique (array/map (object/get @machine "transitions") (fn tr (object/get @tr "event")))),
26
26
  listenTypes: (object/fromEntries (array/map (array/filter @evs (fn ev (> (array/len (default (object/get @ev "payloadSchema") [])) 0))) (fn ev [(object/get @ev "key") FILL{@config.payloadType ## trait => @tn ## event => CASE{(object/get @ev "key") ## "keep"}}]))),
27
27
  emitTypes: (object/fromEntries (array/map (array/filter @ems (fn ev (> (array/len (default (object/get @ev "payloadSchema") [])) 0))) (fn ev [(object/get @ev "event") FILL{@config.payloadType ## trait => @tn ## event => CASE{(object/get @ev "event") ## "keep"}}])))
28
- emitVoid: (array/map (array/filter @ems (fn ev (= (array/len (default (object/get @ev "payloadSchema") [])) 0))) (fn ev (object/get @ev "event"))) }))))))))))
28
+ emitVoid: (array/map (array/filter @ems (fn ev (= (array/len (default (object/get @ev "payloadSchema") [])) 0))) (fn ev (object/get @ev "event")))
29
+ orbital: (object/get @o "name")
30
+ listenRows: (array/map (array/filter (default (object/get @t "listens") []) (fn l (= (object/get (default (object/get @l "source") { kind: "" }) "kind") "trait")))
31
+ (fn l { source: (default (object/get (default (object/get @l "source") { kind: "" }) "trait") ""), event: (object/get @l "event"), trigger: (default (object/get @l "triggers") (object/get @l "event")), guard: (object/get @l "guard" null), map: (object/get @l "payloadMapping" null) })) }))))))))))
29
32
  (set @entity.groups (array/concat
30
33
  (if @config.renderModels (array/map @entity.containers (fn c (array/map (object/get @c "fields") (fn f [0, (object/get @f "default" null)])))) [])
31
34
  (array/map @entity.traits (fn t
32
35
  (array/concat
33
36
  [(array/concat [0] (array/map (object/get @t "knobs") (fn kb (object/get @kb "default" null))))]
34
- (array/map (object/get @t "transitions") (fn tr (array/concat [0, (if (!= (object/get @tr "guard" null) null) (object/get @tr "guard") true)] (default (object/get @tr "effects" []) [])))))))))
37
+ (array/map (object/get @t "transitions") (fn tr (array/concat [0, (if (!= (object/get @tr "guard" null) null) (object/get @tr "guard") true)] (default (object/get @tr "effects" []) []))))
38
+ (array/map (object/get @t "listenRows") (fn lr [0, (if (!= (object/get @lr "guard" null) null) (object/get @lr "guard") true), (default (object/get @lr "map" null) {})])))))))
35
39
  (set @entity.groupCtx (array/concat
36
40
  (if @config.renderModels (array/map @entity.containers (fn c { emitTypes: {}, emitVoid: [], defaults: {} })) [])
37
41
  (array/map @entity.traits (fn t
@@ -56,11 +56,18 @@
56
56
  (emit SOURCE_RENDER_FAILED { error: "a render is already in progress" })
57
57
  LOLO_READ_FAILED -> ready
58
58
  (emit SOURCE_RENDER_FAILED { error: (default @payload.error "the source could not be read") })
59
- LOLO_READ -> rendering
59
+ LOLO_READ -> rendering when (not (array/some (object/get @payload.result "orbitals") (fn co (array/some (object/get @co "traits") (fn ct (!= (object/get @ct "ref" null) null))))))
60
60
  (set @entity.program @payload.result)
61
61
  (emit SRC_PREPARE { })
62
+ LOLO_READ -> reading when (and (array/some (object/get @payload.result "orbitals") (fn co (array/some (object/get @co "traits") (fn ct (!= (object/get @ct "ref" null) null))))) (!= @entity.path ""))
63
+ (program/read @entity.source { resolve: true, text: false, path: @entity.path } { emit: { success: LOLO_RESOLVED, failure: LOLO_READ_FAILED } })
64
+ LOLO_READ -> ready when (and (array/some (object/get @payload.result "orbitals") (fn co (array/some (object/get @co "traits") (fn ct (!= (object/get @ct "ref" null) null))))) (= @entity.path ""))
65
+ (emit SOURCE_RENDER_FAILED { error: "a program that composes behaviors renders from its composed program, which needs the source's absolute path" })
66
+ LOLO_RESOLVED -> rendering
67
+ (set @entity.program @payload.result.program)
68
+ (emit SRC_PREPARE { })
62
69
  LOLO_INSPECTED -> rendering
63
- (set @entity.program @payload.result.authoredProgram)
70
+ (set @entity.program (if (array/some (object/get @payload.result.authoredProgram "orbitals") (fn co (array/some (object/get @co "traits") (fn ct (!= (object/get @ct "ref" null) null))))) @payload.result.program @payload.result.authoredProgram))
64
71
  (set @entity.types @payload.result.types)
65
72
  (set @entity.expected @payload.result.expected)
66
73
  (set @entity.models @payload.result.models)
@@ -124,6 +131,9 @@
124
131
  LOLO_READ { result : SrcProgram! }
125
132
  @description "Internal: the program read by program/read."
126
133
  @tier "internal"
134
+ LOLO_RESOLVED { result : SrcResolved! }
135
+ @description "Internal: the composed program, read by program/read with resolve, of a program that composes behaviors."
136
+ @tier "internal"
127
137
  LOLO_INSPECTED { result : SrcInspect! }
128
138
  @description "Internal: the program and its types read by program/read with inspect."
129
139
  @tier "internal"
@@ -1,5 +1,6 @@
1
1
  app agent-step-example [
2
- version: "1.0.0"
2
+ version: "1.0.0",
3
+ description: "Course example of a tool-using agent loop that plans, acts on a chosen tool, records the observation and answers or stops at a step budget, used as a native renderer parity example against the kernel's answers."
3
4
  ]
4
5
  orbital Agent {
5
6
  entity Run [runtime] {
@@ -1,5 +1,6 @@
1
1
  app agent-step-example [
2
2
  version: "1.0.0",
3
+ description: "Server variant of the course example of a tool-using agent loop that plans, acts on a chosen tool, records the observation and answers or stops at a step budget, composed with the std HTTP server for the native server parity run against the kernel's answers.",
3
4
  net: { "127.0.0.1:4999": [listen] }
4
5
  ]
5
6
  uses Server from "std/behaviors/std-http-server"
@@ -1,5 +1,6 @@
1
1
  app chunk-example [
2
- version: "1.0.0"
2
+ version: "1.0.0",
3
+ description: "Course example of splitting document text into overlapping windows, refusing window settings that cannot make progress, used as a native renderer parity example against the kernel's answers."
3
4
  ]
4
5
  orbital Chunking {
5
6
  entity Doc [runtime] {
@@ -1,5 +1,6 @@
1
1
  app chunk-example [
2
2
  version: "1.0.0",
3
+ description: "Server variant of the course example of splitting document text into overlapping windows, refusing window settings that cannot make progress, composed with the std HTTP server for the native server parity run against the kernel's answers.",
3
4
  net: { "127.0.0.1:4999": [listen] }
4
5
  ]
5
6
  uses Server from "std/behaviors/std-http-server"
@@ -0,0 +1,36 @@
1
+ {
2
+ "steps": [
3
+ {
4
+ "trait": "Arena",
5
+ "event": "INIT",
6
+ "payload": {}
7
+ },
8
+ {
9
+ "trait": "Score",
10
+ "event": "INIT",
11
+ "payload": {}
12
+ },
13
+ {
14
+ "trait": "Arena",
15
+ "event": "HIT",
16
+ "payload": {
17
+ "n": 1
18
+ }
19
+ },
20
+ {
21
+ "trait": "Arena",
22
+ "event": "HIT",
23
+ "payload": {
24
+ "n": 2
25
+ }
26
+ },
27
+ {
28
+ "trait": "Score",
29
+ "event": "UNITS_CHANGED",
30
+ "payload": {
31
+ "enemiesAlive": 0,
32
+ "playersAlive": 1
33
+ }
34
+ }
35
+ ]
36
+ }
@@ -0,0 +1,91 @@
1
+ {
2
+ "atom": "codec/lolo-source.fixtures/compose-pair.lolo",
3
+ "trait": "Arena",
4
+ "orbital": "ArenaOrbital",
5
+ "note": "kernel answers for the composed-mode fixture: a local trait's emit drives a composed std atom with call-site config; each step's ordered emits and its trait's row",
6
+ "cases": [
7
+ {
8
+ "id": "compose-pair",
9
+ "steps": [
10
+ {
11
+ "trait": "Arena",
12
+ "event": "INIT",
13
+ "payload": {},
14
+ "expect": {
15
+ "exactEmits": [],
16
+ "entity": {}
17
+ }
18
+ },
19
+ {
20
+ "trait": "Score",
21
+ "event": "INIT",
22
+ "payload": {},
23
+ "expect": {
24
+ "exactEmits": [],
25
+ "entity": {
26
+ "score": 0,
27
+ "scoreBaseline": 3
28
+ }
29
+ }
30
+ },
31
+ {
32
+ "trait": "Arena",
33
+ "event": "HIT",
34
+ "payload": {
35
+ "n": 1
36
+ },
37
+ "expect": {
38
+ "exactEmits": [
39
+ {
40
+ "event": "WAVE",
41
+ "payload": {
42
+ "enemiesAlive": 2,
43
+ "playersAlive": 1
44
+ }
45
+ }
46
+ ],
47
+ "entity": {
48
+ "enemies": 2
49
+ }
50
+ }
51
+ },
52
+ {
53
+ "trait": "Arena",
54
+ "event": "HIT",
55
+ "payload": {
56
+ "n": 2
57
+ },
58
+ "expect": {
59
+ "exactEmits": [
60
+ {
61
+ "event": "WAVE",
62
+ "payload": {
63
+ "enemiesAlive": 0,
64
+ "playersAlive": 1
65
+ }
66
+ }
67
+ ],
68
+ "entity": {
69
+ "enemies": 0
70
+ }
71
+ }
72
+ },
73
+ {
74
+ "trait": "Score",
75
+ "event": "UNITS_CHANGED",
76
+ "payload": {
77
+ "enemiesAlive": 0,
78
+ "playersAlive": 1
79
+ },
80
+ "expect": {
81
+ "exactEmits": [],
82
+ "entity": {
83
+ "score": 15,
84
+ "scoreBaseline": 0
85
+ }
86
+ }
87
+ }
88
+ ]
89
+ }
90
+ ]
91
+ }
@@ -1,5 +1,6 @@
1
1
  app cosine-example [
2
- version: "1.0.0"
2
+ version: "1.0.0",
3
+ description: "Course example of cosine similarity between two number vectors in one client trait, used as a native renderer parity example against the kernel's answers."
3
4
  ]
4
5
  orbital Similarity {
5
6
  entity Pair [runtime] {
@@ -1,5 +1,6 @@
1
1
  app cosine-example [
2
2
  version: "1.0.0",
3
+ description: "Server variant of the course example of cosine similarity between two number vectors in one client trait, composed with the std HTTP server for the native server parity run against the kernel's answers.",
3
4
  net: { "127.0.0.1:4999": [listen] }
4
5
  ]
5
6
  uses Server from "std/behaviors/std-http-server"
@@ -0,0 +1,31 @@
1
+ import generated.*
2
+ import kotlinx.serialization.json.Json
3
+ import kotlinx.serialization.json.JsonPrimitive
4
+ import kotlinx.serialization.json.buildJsonObject
5
+ import kotlinx.serialization.json.jsonArray
6
+ import kotlinx.serialization.json.jsonObject
7
+ import kotlinx.serialization.json.jsonPrimitive
8
+
9
+ fun main(args: Array<String>) {
10
+ val json = Json { encodeDefaults = true }
11
+ val spec = json.parseToJsonElement(java.io.File(args[0]).readText()).jsonObject
12
+ val row = { json.decodeFromJsonElement(Match.serializer(), buildJsonObject { put("id", JsonPrimitive("1")) }) }
13
+ val program = Program(row(), row())
14
+ spec.getValue("steps").jsonArray.forEachIndexed { i, step ->
15
+ val s = step.jsonObject
16
+ val n = program.log.size
17
+ val key = "ArenaOrbital." + s.getValue("trait").jsonPrimitive.content
18
+ program.dispatch(key, s.getValue("event").jsonPrimitive.content, s.getValue("payload"))
19
+ for ((_, event, payload) in program.log.drop(n)) {
20
+ println(buildJsonObject {
21
+ put("step", JsonPrimitive(i))
22
+ put("event", JsonPrimitive(event))
23
+ put("payload", payload)
24
+ })
25
+ }
26
+ println(buildJsonObject {
27
+ put("step", JsonPrimitive(i))
28
+ put("entity", program.entry(key)?.entity?.invoke() ?: JsonPrimitive("missing"))
29
+ })
30
+ }
31
+ }
@@ -0,0 +1,31 @@
1
+ import generated.*
2
+ import kotlinx.serialization.json.Json
3
+ import kotlinx.serialization.json.JsonPrimitive
4
+ import kotlinx.serialization.json.buildJsonObject
5
+ import kotlinx.serialization.json.jsonArray
6
+ import kotlinx.serialization.json.jsonObject
7
+ import kotlinx.serialization.json.jsonPrimitive
8
+
9
+ fun main(args: Array<String>) {
10
+ val json = Json { encodeDefaults = true }
11
+ val spec = json.parseToJsonElement(java.io.File(args[0]).readText()).jsonObject
12
+ val row = { json.decodeFromJsonElement(Tally.serializer(), buildJsonObject { put("id", JsonPrimitive("1")) }) }
13
+ val program = Program(row(), row(), row())
14
+ spec.getValue("steps").jsonArray.forEachIndexed { i, step ->
15
+ val s = step.jsonObject
16
+ val n = program.log.size
17
+ val key = "TrioOrbital." + s.getValue("trait").jsonPrimitive.content
18
+ program.dispatch(key, s.getValue("event").jsonPrimitive.content, s.getValue("payload"))
19
+ for ((_, event, payload) in program.log.drop(n)) {
20
+ println(buildJsonObject {
21
+ put("step", JsonPrimitive(i))
22
+ put("event", JsonPrimitive(event))
23
+ put("payload", payload)
24
+ })
25
+ }
26
+ println(buildJsonObject {
27
+ put("step", JsonPrimitive(i))
28
+ put("entity", program.entry(key)?.entity?.invoke() ?: JsonPrimitive("missing"))
29
+ })
30
+ }
31
+ }
@@ -0,0 +1,31 @@
1
+ import generated.*
2
+ import kotlinx.serialization.json.Json
3
+ import kotlinx.serialization.json.JsonPrimitive
4
+ import kotlinx.serialization.json.buildJsonObject
5
+ import kotlinx.serialization.json.jsonArray
6
+ import kotlinx.serialization.json.jsonObject
7
+ import kotlinx.serialization.json.jsonPrimitive
8
+
9
+ fun main(args: Array<String>) {
10
+ val json = Json { encodeDefaults = true }
11
+ val spec = json.parseToJsonElement(java.io.File(args[0]).readText()).jsonObject
12
+ val row = json.decodeFromJsonElement(Note.serializer(), buildJsonObject { put("id", JsonPrimitive("1")) })
13
+ val program = Program(row, MemoryStore())
14
+ val key = "StoreOrbital.Notes"
15
+ spec.getValue("steps").jsonArray.forEachIndexed { i, step ->
16
+ val s = step.jsonObject
17
+ val n = program.log.size
18
+ program.dispatch("StoreOrbital." + s.getValue("trait").jsonPrimitive.content, s.getValue("event").jsonPrimitive.content, s.getValue("payload"))
19
+ for ((_, event, payload) in program.log.drop(n)) {
20
+ println(buildJsonObject {
21
+ put("step", JsonPrimitive(i))
22
+ put("event", JsonPrimitive(event))
23
+ put("payload", payload)
24
+ })
25
+ }
26
+ println(buildJsonObject {
27
+ put("step", JsonPrimitive(i))
28
+ put("entity", program.entry(key)?.entity?.invoke() ?: JsonPrimitive("missing"))
29
+ })
30
+ }
31
+ }
@@ -0,0 +1,18 @@
1
+ import dataclasses
2
+ import json
3
+ import sys
4
+
5
+ sys.path[:0] = [sys.argv[1]]
6
+ import rendered
7
+ from orbital_app.generated.entities import Match
8
+
9
+ spec = json.load(open(sys.argv[2]))
10
+ keys = ["ArenaOrbital.Arena", "ArenaOrbital.Score"]
11
+ program = rendered.Program({k: Match(id="1") for k in keys})
12
+ for i, step in enumerate(spec["steps"]):
13
+ n = len(program.log)
14
+ key = "ArenaOrbital." + step["trait"]
15
+ program.dispatch(key, step["event"], step["payload"])
16
+ for _trait, event, out in program.log[n:]:
17
+ print(json.dumps({"step": i, "event": event, "payload": out}, sort_keys=True))
18
+ print(json.dumps({"step": i, "entity": dataclasses.asdict(program.traits[key].entity)}, sort_keys=True))
@@ -0,0 +1,18 @@
1
+ import dataclasses
2
+ import json
3
+ import sys
4
+
5
+ sys.path[:0] = [sys.argv[1]]
6
+ import rendered
7
+ from orbital_app.generated.entities import Tally
8
+
9
+ spec = json.load(open(sys.argv[2]))
10
+ keys = ["TrioOrbital.Lead", "TrioOrbital.Echo", "TrioOrbital.Tail"]
11
+ program = rendered.Program({k: Tally(id="1") for k in keys})
12
+ for i, step in enumerate(spec["steps"]):
13
+ n = len(program.log)
14
+ key = "TrioOrbital." + step["trait"]
15
+ program.dispatch(key, step["event"], step["payload"])
16
+ for _trait, event, out in program.log[n:]:
17
+ print(json.dumps({"step": i, "event": event, "payload": out}, sort_keys=True))
18
+ print(json.dumps({"step": i, "entity": dataclasses.asdict(program.traits[key].entity)}, sort_keys=True))
@@ -0,0 +1,17 @@
1
+ import dataclasses
2
+ import json
3
+ import sys
4
+
5
+ sys.path[:0] = [sys.argv[1]]
6
+ import rendered
7
+ from orbital_app.generated.entities import Note
8
+
9
+ spec = json.load(open(sys.argv[2]))
10
+ key = "StoreOrbital.Notes"
11
+ program = rendered.Program({key: Note(id="1")}, rendered.MemoryStore())
12
+ for i, step in enumerate(spec["steps"]):
13
+ n = len(program.log)
14
+ program.dispatch("StoreOrbital." + step["trait"], step["event"], step["payload"])
15
+ for _trait, event, out in program.log[n:]:
16
+ print(json.dumps({"step": i, "event": event, "payload": out}, sort_keys=True))
17
+ print(json.dumps({"step": i, "entity": dataclasses.asdict(program.traits[key].entity)}, sort_keys=True))
@@ -0,0 +1,37 @@
1
+ mod generated;
2
+ mod lolo;
3
+
4
+ use generated::entities::Match;
5
+ use serde::Deserialize;
6
+
7
+ #[derive(Deserialize)]
8
+ struct Step {
9
+ #[serde(rename = "trait")]
10
+ trait_name: String,
11
+ event: String,
12
+ payload: serde_json::Value,
13
+ }
14
+
15
+ #[derive(Deserialize)]
16
+ struct Spec {
17
+ steps: Vec<Step>,
18
+ }
19
+
20
+ fn row() -> Match {
21
+ serde_json::from_value(serde_json::json!({ "id": "1" })).expect("row")
22
+ }
23
+
24
+ fn main() {
25
+ let path = std::env::args().nth(1).expect("events file argument");
26
+ let spec: Spec = serde_json::from_str(&std::fs::read_to_string(path).expect("read events")).expect("parse events");
27
+ let mut program = lolo::Program::new((row(), row()));
28
+ for (i, step) in spec.steps.into_iter().enumerate() {
29
+ let n = program.router.log.len();
30
+ let key = format!("ArenaOrbital.{}", step.trait_name);
31
+ program.dispatch(&key, &step.event, step.payload);
32
+ for (_, event, payload) in &program.router.log[n..] {
33
+ println!("{}", serde_json::json!({"step": i, "event": event, "payload": payload}));
34
+ }
35
+ println!("{}", serde_json::json!({"step": i, "entity": program.router.entity_of(&key)}));
36
+ }
37
+ }
@@ -0,0 +1,37 @@
1
+ mod generated;
2
+ mod lolo;
3
+
4
+ use generated::entities::Tally;
5
+ use serde::Deserialize;
6
+
7
+ #[derive(Deserialize)]
8
+ struct Step {
9
+ #[serde(rename = "trait")]
10
+ trait_name: String,
11
+ event: String,
12
+ payload: serde_json::Value,
13
+ }
14
+
15
+ #[derive(Deserialize)]
16
+ struct Spec {
17
+ steps: Vec<Step>,
18
+ }
19
+
20
+ fn row() -> Tally {
21
+ serde_json::from_value(serde_json::json!({ "id": "1" })).expect("row")
22
+ }
23
+
24
+ fn main() {
25
+ let path = std::env::args().nth(1).expect("events file argument");
26
+ let spec: Spec = serde_json::from_str(&std::fs::read_to_string(path).expect("read events")).expect("parse events");
27
+ let mut program = lolo::Program::new((row(), row(), row()));
28
+ for (i, step) in spec.steps.into_iter().enumerate() {
29
+ let n = program.router.log.len();
30
+ let key = format!("TrioOrbital.{}", step.trait_name);
31
+ program.dispatch(&key, &step.event, step.payload);
32
+ for (_, event, payload) in &program.router.log[n..] {
33
+ println!("{}", serde_json::json!({"step": i, "event": event, "payload": payload}));
34
+ }
35
+ println!("{}", serde_json::json!({"step": i, "entity": program.router.entity_of(&key)}));
36
+ }
37
+ }
@@ -0,0 +1,36 @@
1
+ mod generated;
2
+ mod lolo;
3
+
4
+ use generated::entities::Note;
5
+ use lolo::Store;
6
+ use serde::Deserialize;
7
+
8
+ #[derive(Deserialize)]
9
+ struct Step {
10
+ #[serde(rename = "trait")]
11
+ trait_name: String,
12
+ event: String,
13
+ payload: serde_json::Value,
14
+ }
15
+
16
+ #[derive(Deserialize)]
17
+ struct Spec {
18
+ steps: Vec<Step>,
19
+ }
20
+
21
+ fn main() {
22
+ let path = std::env::args().nth(1).expect("events file argument");
23
+ let spec: Spec = serde_json::from_str(&std::fs::read_to_string(path).expect("read events")).expect("parse events");
24
+ let row: Note = serde_json::from_value(serde_json::json!({ "id": "1" })).expect("row");
25
+ let store: std::rc::Rc<std::cell::RefCell<dyn Store>> = std::rc::Rc::new(std::cell::RefCell::new(lolo::MemoryStore::default()));
26
+ let mut program = lolo::Program::new((row,), store);
27
+ let key = "StoreOrbital.Notes";
28
+ for (i, step) in spec.steps.into_iter().enumerate() {
29
+ let n = program.router.log.len();
30
+ program.dispatch(&format!("StoreOrbital.{}", step.trait_name), &step.event, step.payload);
31
+ for (_, event, payload) in &program.router.log[n..] {
32
+ println!("{}", serde_json::json!({"step": i, "event": event, "payload": payload}));
33
+ }
34
+ println!("{}", serde_json::json!({"step": i, "entity": program.router.entity_of(key)}));
35
+ }
36
+ }
@@ -0,0 +1,24 @@
1
+ import Foundation
2
+
3
+ func json(_ value: Any) throws -> String {
4
+ String(decoding: try JSONSerialization.data(withJSONObject: value, options: [.sortedKeys, .fragmentsAllowed]), as: UTF8.self)
5
+ }
6
+
7
+ func run() throws {
8
+ let spec = try JSONSerialization.jsonObject(with: Data(contentsOf: URL(fileURLWithPath: CommandLine.arguments[1]))) as? [String: Any] ?? [:]
9
+ let dec = JSONDecoder()
10
+ let row = try JSONSerialization.data(withJSONObject: ["id": "1"])
11
+ let program = Program(try dec.decode(Match.self, from: row), try dec.decode(Match.self, from: row))
12
+ let steps = spec["steps"] as? [[String: Any]] ?? []
13
+ for (i, step) in steps.enumerated() {
14
+ let n = program.log.count
15
+ let key = "ArenaOrbital." + (step["trait"] as? String ?? "")
16
+ program.dispatch(key, step["event"] as? String ?? "", try JSONSerialization.data(withJSONObject: step["payload"] ?? [:]))
17
+ for entry in program.log[n...] {
18
+ print("{\"step\":\(i),\"event\":\(try json(entry.event)),\"payload\":\(String(decoding: entry.payload, as: UTF8.self))}")
19
+ }
20
+ print("{\"step\":\(i),\"entity\":\(String(decoding: program.entry(key)?.entity() ?? Data("{}".utf8), as: UTF8.self))}")
21
+ }
22
+ }
23
+
24
+ try run()
@@ -0,0 +1,24 @@
1
+ import Foundation
2
+
3
+ func json(_ value: Any) throws -> String {
4
+ String(decoding: try JSONSerialization.data(withJSONObject: value, options: [.sortedKeys, .fragmentsAllowed]), as: UTF8.self)
5
+ }
6
+
7
+ func run() throws {
8
+ let spec = try JSONSerialization.jsonObject(with: Data(contentsOf: URL(fileURLWithPath: CommandLine.arguments[1]))) as? [String: Any] ?? [:]
9
+ let dec = JSONDecoder()
10
+ let row = try JSONSerialization.data(withJSONObject: ["id": "1"])
11
+ let program = Program(try dec.decode(Tally.self, from: row), try dec.decode(Tally.self, from: row), try dec.decode(Tally.self, from: row))
12
+ let steps = spec["steps"] as? [[String: Any]] ?? []
13
+ for (i, step) in steps.enumerated() {
14
+ let n = program.log.count
15
+ let key = "TrioOrbital." + (step["trait"] as? String ?? "")
16
+ program.dispatch(key, step["event"] as? String ?? "", try JSONSerialization.data(withJSONObject: step["payload"] ?? [:]))
17
+ for entry in program.log[n...] {
18
+ print("{\"step\":\(i),\"event\":\(try json(entry.event)),\"payload\":\(String(decoding: entry.payload, as: UTF8.self))}")
19
+ }
20
+ print("{\"step\":\(i),\"entity\":\(String(decoding: program.entry(key)?.entity() ?? Data("{}".utf8), as: UTF8.self))}")
21
+ }
22
+ }
23
+
24
+ try run()
@@ -0,0 +1,23 @@
1
+ import Foundation
2
+
3
+ func json(_ value: Any) throws -> String {
4
+ String(decoding: try JSONSerialization.data(withJSONObject: value, options: [.sortedKeys, .fragmentsAllowed]), as: UTF8.self)
5
+ }
6
+
7
+ func run() throws {
8
+ let spec = try JSONSerialization.jsonObject(with: Data(contentsOf: URL(fileURLWithPath: CommandLine.arguments[1]))) as? [String: Any] ?? [:]
9
+ let row = try JSONSerialization.data(withJSONObject: ["id": "1"])
10
+ let program = Program(try JSONDecoder().decode(Note.self, from: row), store: MemoryStore())
11
+ let key = "StoreOrbital.Notes"
12
+ let steps = spec["steps"] as? [[String: Any]] ?? []
13
+ for (i, step) in steps.enumerated() {
14
+ let n = program.log.count
15
+ program.dispatch("StoreOrbital." + (step["trait"] as? String ?? ""), step["event"] as? String ?? "", try JSONSerialization.data(withJSONObject: step["payload"] ?? [:]))
16
+ for entry in program.log[n...] {
17
+ print("{\"step\":\(i),\"event\":\(try json(entry.event)),\"payload\":\(String(decoding: entry.payload, as: UTF8.self))}")
18
+ }
19
+ print("{\"step\":\(i),\"entity\":\(String(decoding: program.entry(key)?.entity() ?? Data("{}".utf8), as: UTF8.self))}")
20
+ }
21
+ }
22
+
23
+ try run()
@@ -0,0 +1,24 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import type { EventPayload } from '@almadar/core';
3
+ import { Program } from './packages/shared/src/traits/rendered.ts';
4
+ import type { Match } from './packages/shared/src/types/entities.ts';
5
+
6
+ interface Step {
7
+ trait: string;
8
+ event: string;
9
+ payload: EventPayload;
10
+ }
11
+ interface Spec {
12
+ steps: Step[];
13
+ }
14
+
15
+ const spec: Spec = JSON.parse(readFileSync(process.argv[2] ?? '', 'utf8'));
16
+ const row = (): Match => ({ id: '1', createdAt: '', updatedAt: '' });
17
+ const program = new Program({ 'ArenaOrbital.Arena': row(), 'ArenaOrbital.Score': row() });
18
+ spec.steps.forEach((step, i) => {
19
+ const n = program.log.length;
20
+ const key = 'ArenaOrbital.' + step.trait;
21
+ program.dispatch(key, step.event, step.payload);
22
+ for (const e of program.log.slice(n)) console.log(JSON.stringify({ step: i, event: e.event, payload: e.payload }));
23
+ console.log(JSON.stringify({ step: i, entity: program.traits[key]?.entity }));
24
+ });
@@ -0,0 +1,24 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import type { EventPayload } from '@almadar/core';
3
+ import { Program } from './packages/shared/src/traits/rendered.ts';
4
+ import type { Tally } from './packages/shared/src/types/entities.ts';
5
+
6
+ interface Step {
7
+ trait: string;
8
+ event: string;
9
+ payload: EventPayload;
10
+ }
11
+ interface Spec {
12
+ steps: Step[];
13
+ }
14
+
15
+ const spec: Spec = JSON.parse(readFileSync(process.argv[2] ?? '', 'utf8'));
16
+ const row = (): Tally => ({ id: '1', createdAt: '', updatedAt: '' });
17
+ const program = new Program({ 'TrioOrbital.Lead': row(), 'TrioOrbital.Echo': row(), 'TrioOrbital.Tail': row() });
18
+ spec.steps.forEach((step, i) => {
19
+ const n = program.log.length;
20
+ const key = 'TrioOrbital.' + step.trait;
21
+ program.dispatch(key, step.event, step.payload);
22
+ for (const e of program.log.slice(n)) console.log(JSON.stringify({ step: i, event: e.event, payload: e.payload }));
23
+ console.log(JSON.stringify({ step: i, entity: program.traits[key]?.entity }));
24
+ });
@@ -0,0 +1,22 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import type { EventPayload } from '@almadar/core';
3
+ import { MemoryStore, Program } from './packages/shared/src/traits/rendered.ts';
4
+
5
+ interface Step {
6
+ trait: string;
7
+ event: string;
8
+ payload: EventPayload;
9
+ }
10
+ interface Spec {
11
+ steps: Step[];
12
+ }
13
+
14
+ const spec: Spec = JSON.parse(readFileSync(process.argv[2] ?? '', 'utf8'));
15
+ const key = 'StoreOrbital.Notes';
16
+ const program = new Program({ [key]: { id: '1', createdAt: '', updatedAt: '' } }, new MemoryStore());
17
+ spec.steps.forEach((step, i) => {
18
+ const n = program.log.length;
19
+ program.dispatch('StoreOrbital.' + step.trait, step.event, step.payload);
20
+ for (const e of program.log.slice(n)) console.log(JSON.stringify({ step: i, event: e.event, payload: e.payload }));
21
+ console.log(JSON.stringify({ step: i, entity: program.traits[key]?.entity }));
22
+ });