@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
@@ -1 +1 @@
1
- {"typeContractVersion":1,"name":"std-lolo-swift","version":"1.0.0","description":"std-lolo-swift — renders .lolo source as Swift, so a learner who reads an exercise written in .lolo can see the same program as Swift that compiles against the iOS shell's generated models and gives the kernel's answers. It is std-lolo-source with the Swift vocabulary in config and nothing else: LOLO_TO_SWIFT { source, path } answers SWIFT_RENDERED { text, warnings }, or SWIFT_RENDER_FAILED { error } when the source cannot be read or the request carries no path (Swift is typed, so the types come from the kernel checker). Each trait becomes a final class holding state, entity, ports and config, with one on<Event> method per event: an if / else if branch per transition (the from-state and the guard), the effects, then the new state; an emit records (event, payload) in emitted with the payload built as the shell's generated payload struct. The entity and payload structs are the ones Entities.swift and Events.swift of the iOS shell declare in the same module, so the output imports nothing but Foundation. entityNames mirrors the iOS shell's SWIFT_RESERVED_TYPES table (orbital-shell-ios backend.rs): an entity named like a Swift, Foundation or SwiftUI type is generated with the suffix Entity (Task is TaskEntity), and the constructor uses that name. payloadFieldOrder sorted builds a payload struct with its fields by name, the order the shell declares them in, which the memberwise initializer needs; mapEmpty writes the empty map as [:]. Every number is a Double, a string is measured and sliced by Unicode scalar like the kernel, and an answer that is null in the kernel (a division by zero, nth past the end, a missing key) is an Optional that default reads with ??. Kernel-semantics helpers are fileprivate functions written once, and only the ones the output uses. An operator with no Swift template is a named warning and a generic stub that stops when run. persist, fetch, notify, navigate and call-service are called on the ports dictionary of closures and each is listed in warnings; render-ui is a comment. See std-lolo-source for the config knobs and the type placeholders.","orbitals":[{"name":"LoloSwiftOrbital","id":"orb_Y5489285492J4KYHRE1ME7Z5GA","uses":[{"from":"almadar-std/lolo-swift","as":"Spec"},{"from":"std/behaviors/std-lolo-source","as":"Src"}],"entity":{"name":"LoloSwiftRun","id":"ent_MYRMYDDEZ7QFKYZ9S2H13END4R","persistence":"runtime","fields":[{"nullable":false,"name":"id","type":"string","required":true}]},"traits":[{"ref":"Src.traits.LoloSource","id":"trt_1SBFF6YAB355HSG2D9N5YBQW72","name":"LoloSwift","config":{"language":{"type":"unknown","default":"Swift","wired":true},"requiresTypes":{"type":"unknown","default":true,"wired":true},"operators":{"type":"unknown","default":{"/":"_div({{0}}, {{1}})","%":"_mod({{0}}, {{1}})","math/mod":"_mod({{0}}, {{1}})","=#2":"_eq({{0}}, {{1}})","==#2":"_eq({{0}}, {{1}})","!=#2":"(!_eq({{0}}, {{1}}))","str/len":"Double({{0}}.unicodeScalars.count)","str/upper":"{{0}}.uppercased()","str/lower":"{{0}}.lowercased()","str/trim":"{{0}}.trimmingCharacters(in: .whitespacesAndNewlines)","str/trimStart":"_trim_start({{0}})","str/trimEnd":"_trim_end({{0}})","str/capitalize":"_capitalize({{0}})","str/split":"_split({{0}}, {{1}})","str/join":"_join({{0}}, {{1}})","str/concat":"_concat({{*}})","str/includes":"_str_includes({{0}}, {{1}})","str/startsWith":"{{0}}.unicodeScalars.starts(with: {{1}}.unicodeScalars)","str/endsWith":"{{0}}.unicodeScalars.reversed().starts(with: {{1}}.unicodeScalars.reversed())","str/replace":"_replace({{0}}, {{1}}, {{2}}, false)","str/replaceAll":"_replace({{0}}, {{1}}, {{2}}, true)","str/repeat":"_repeat({{0}}, {{1}})","str/reverse":"_reverse_str({{0}})","str/slice#2":"_str_slice({{0}}, {{1}})","str/slice#3":"_str_slice({{0}}, {{1}}, {{2}})","str/padStart#2":"_pad_start({{0}}, {{1}})","str/padStart#3":"_pad_start({{0}}, {{1}}, {{2}})","str/padEnd#2":"_pad_end({{0}}, {{1}})","str/padEnd#3":"_pad_end({{0}}, {{1}}, {{2}})","str/truncate#2":"_truncate({{0}}, {{1}})","str/truncate#3":"_truncate({{0}}, {{1}}, {{2}})","str/to-int":"_to_int({{0}})","array/len":"Double({{0}}.count)","array/first":"{{0}}.first","array/last":"{{0}}.last","array/nth":"_nth({{0}}, {{1}})","array/range#2":"_range({{0}}, {{1}})","array/range#3":"_range({{0}}, {{1}}, {{2}})","array/slice#2":"_slice({{0}}, {{1}})","array/slice#3":"_slice({{0}}, {{1}}, {{2}})","array/take":"_take({{0}}, {{1}})","array/drop":"_drop({{0}}, {{1}})","array/takeLast":"_take_last({{0}}, {{1}})","array/dropLast":"_drop_last({{0}}, {{1}})","array/append":"({{0}} + [{{1}}])","array/prepend":"([{{1}}] + {{0}})","array/includes":"_includes({{0}}, {{1}})","array/indexOf":"_index_of({{0}}, {{1}})","array/reverse":"Array({{0}}.reversed())","array/unique":"_unique({{0}})","array/flatten":"{{0}}.flatMap { $0 }","array/zip":"zip({{0}}, {{1}}).map { [$0.0, $0.1] }","array/reduce":"{{0}}.reduce({{1}}, {{2}})","list":"[{{*}}]","object/get#2":"_get({{0}}, {{1}})","object/get#3":"(_get({{0}}, {{1}}) ?? {{2}})","object/has":"_has({{0}}, {{1}})","object/set":"_set({{0}}, {{1}}, {{2}})","object/merge#2":"{{0}}.merging({{1}}) { _, new in new }","object/pick":"_pick({{0}}, {{1}})","object/omit":"_omit({{0}}, {{1}})","math/abs":"abs({{0}})","math/max":"max({{*}})","math/min":"min({{*}})","math/round#2":"_round({{0}}, {{1}})","math/sqrt":"_sqrt({{0}})","math/ln":"_ln({{0}})","math/log10":"_log10({{0}})","math/pow":"_pow({{0}}, {{1}})","math/sign":"_sign({{0}})","math/clamp":"min(max({{0}}, {{1}}), {{2}})","default":"({{0}} ?? {{1}})","as":"{{0}}","validate/required":"_required({{0}})","validate/length":"(_size({{0}}) == {{1}})","validate/minLength":"(_size({{0}}) >= {{1}})","validate/maxLength":"(_size({{0}}) <= {{1}})","validate/min":"({{0}} >= {{1}})","validate/max":"({{0}} <= {{1}})","validate/range":"({{0}} >= {{1}} && {{0}} <= {{2}})","validate/oneOf":"_includes({{1}}, {{0}})","validate/equals":"_eq({{0}}, {{1}})"},"wired":true},"unary":{"type":"unknown","default":{"-":"(-{{0}})","not":"(!{{0}})","array/range":"_range({{0}})","array/sum":"{{0}}.reduce(0, +)","array/count":"Double({{0}}.count)","array/sort":"{{0}}.sorted()","math/round":"_round({{0}})","array/concat":"{{0}}","object/merge":"{{0}}","array/avg":"_avg({{0}})","array/max":"{{0}}.max()","array/min":"{{0}}.min()"},"wired":true},"infix":{"type":"unknown","default":{"+":"+","-":"-","*":"*","<":"<","<=":"<=",">":">",">=":">=","and":"&&","or":"||","array/concat":"+"},"wired":true},"infixForm":{"type":"unknown","default":"({{*}})","wired":true},"lambdaOperators":{"type":"unknown","default":{"array/map":"{{src}}.map { {{vars}} in {{body}} }","array/filter":"{{src}}.filter { {{vars}} in {{body}} }","array/reject":"{{src}}.filter { {{vars}} in !({{body}}) }","array/some":"{{src}}.contains { {{vars}} in {{body}} }","array/every":"{{src}}.allSatisfy { {{vars}} in {{body}} }","array/count":"Double({{src}}.filter { {{vars}} in {{body}} }.count)","array/find":"{{src}}.first { {{vars}} in {{body}} }","array/findIndex":"({{src}}.firstIndex { {{vars}} in {{body}} }.map { Double($0) } ?? -1)"},"wired":true},"lambdaForm":{"type":"unknown","default":"{ {{params}} in {{body}} }","wired":true},"indexedSource":{"type":"unknown","default":"{{src}}.enumerated().map { (Double($0.offset), $0.element) }","wired":true},"indexedVars":{"type":"unknown","default":"{{index}}, {{item}}","wired":true},"callees":{"type":"unknown","default":{"math/ceil":"ceil","math/floor":"floor","math/sin":"sin","math/cos":"cos","math/tan":"tan","math/atan":"atan","math/atan2":"atan2","math/hypot":"hypot"},"wired":true},"calleeForm":{"type":"unknown","default":"{{callee}}({{*}})","wired":true},"unsupportedForm":{"type":"unknown","default":"_unsupported({{op}})","wired":true},"unsupportedWarn":{"type":"unknown","default":"no {{language}} template for operator {{op}}","wired":true},"helpers":{"type":"unknown","default":{"/":["fileprivate func _div(_ a: Double, _ b: Double) -> Double? { b == 0 ? nil : a / b }"],"%":["fileprivate func _mod(_ a: Double, _ b: Double) -> Double? { b == 0 ? nil : fmod(a, b) }"],"math/mod":["fileprivate func _mod(_ a: Double, _ b: Double) -> Double? { b == 0 ? nil : fmod(a, b) }"],"=":["fileprivate protocol _Eq { func _same(_ o: Self) -> Bool }\nextension String: _Eq { fileprivate func _same(_ o: String) -> Bool { unicodeScalars.elementsEqual(o.unicodeScalars) } }\nextension Double: _Eq { fileprivate func _same(_ o: Double) -> Bool { self == o } }\nextension Bool: _Eq { fileprivate func _same(_ o: Bool) -> Bool { self == o } }\nextension Array: _Eq where Element: _Eq { fileprivate func _same(_ o: [Element]) -> Bool { count == o.count && zip(self, o).allSatisfy { $0._same($1) } } }\nextension Optional: _Eq where Wrapped: _Eq {\n fileprivate func _same(_ o: Wrapped?) -> Bool {\n switch (self, o) {\n case (nil, nil): return true\n case let (a?, b?): return a._same(b)\n default: return false\n }\n }\n}\nextension Dictionary: _Eq where Value: _Eq { fileprivate func _same(_ o: [Key: Value]) -> Bool { count == o.count && allSatisfy { kv in o[kv.key].map { kv.value._same($0) } ?? false } } }\nfileprivate func _eq<T: _Eq>(_ a: T, _ b: T) -> Bool { a._same(b) }"],"==":["fileprivate protocol _Eq { func _same(_ o: Self) -> Bool }\nextension String: _Eq { fileprivate func _same(_ o: String) -> Bool { unicodeScalars.elementsEqual(o.unicodeScalars) } }\nextension Double: _Eq { fileprivate func _same(_ o: Double) -> Bool { self == o } }\nextension Bool: _Eq { fileprivate func _same(_ o: Bool) -> Bool { self == o } }\nextension Array: _Eq where Element: _Eq { fileprivate func _same(_ o: [Element]) -> Bool { count == o.count && zip(self, o).allSatisfy { $0._same($1) } } }\nextension Optional: _Eq where Wrapped: _Eq {\n fileprivate func _same(_ o: Wrapped?) -> Bool {\n switch (self, o) {\n case (nil, nil): return true\n case let (a?, b?): return a._same(b)\n default: return false\n }\n }\n}\nextension Dictionary: _Eq where Value: _Eq { fileprivate func _same(_ o: [Key: Value]) -> Bool { count == o.count && allSatisfy { kv in o[kv.key].map { kv.value._same($0) } ?? false } } }\nfileprivate func _eq<T: _Eq>(_ a: T, _ b: T) -> Bool { a._same(b) }"],"!=":["fileprivate protocol _Eq { func _same(_ o: Self) -> Bool }\nextension String: _Eq { fileprivate func _same(_ o: String) -> Bool { unicodeScalars.elementsEqual(o.unicodeScalars) } }\nextension Double: _Eq { fileprivate func _same(_ o: Double) -> Bool { self == o } }\nextension Bool: _Eq { fileprivate func _same(_ o: Bool) -> Bool { self == o } }\nextension Array: _Eq where Element: _Eq { fileprivate func _same(_ o: [Element]) -> Bool { count == o.count && zip(self, o).allSatisfy { $0._same($1) } } }\nextension Optional: _Eq where Wrapped: _Eq {\n fileprivate func _same(_ o: Wrapped?) -> Bool {\n switch (self, o) {\n case (nil, nil): return true\n case let (a?, b?): return a._same(b)\n default: return false\n }\n }\n}\nextension Dictionary: _Eq where Value: _Eq { fileprivate func _same(_ o: [Key: Value]) -> Bool { count == o.count && allSatisfy { kv in o[kv.key].map { kv.value._same($0) } ?? false } } }\nfileprivate func _eq<T: _Eq>(_ a: T, _ b: T) -> Bool { a._same(b) }"],"str/len":[],"str/upper":[],"str/lower":[],"str/trim":[],"str/trimStart":["fileprivate func _str<S: Sequence>(_ a: S) -> String where S.Element == Unicode.Scalar {\n var v = String.UnicodeScalarView()\n v.append(contentsOf: a)\n return String(v)\n}","fileprivate func _trim_start(_ s: String) -> String { _str(s.unicodeScalars.drop(while: { CharacterSet.whitespacesAndNewlines.contains($0) })) }"],"str/trimEnd":["fileprivate func _str<S: Sequence>(_ a: S) -> String where S.Element == Unicode.Scalar {\n var v = String.UnicodeScalarView()\n v.append(contentsOf: a)\n return String(v)\n}","fileprivate func _trim_end(_ s: String) -> String { _str(s.unicodeScalars.reversed().drop(while: { CharacterSet.whitespacesAndNewlines.contains($0) }).reversed()) }"],"str/capitalize":["fileprivate func _capitalize(_ s: String) -> String {\n guard let f = s.unicodeScalars.first else { return s }\n return String(f).uppercased() + String(s.unicodeScalars.dropFirst()).lowercased()\n}"],"str/split":["fileprivate func _str<S: Sequence>(_ a: S) -> String where S.Element == Unicode.Scalar {\n var v = String.UnicodeScalarView()\n v.append(contentsOf: a)\n return String(v)\n}","fileprivate func _find(_ s: [Unicode.Scalar], _ d: [Unicode.Scalar], _ from: Int) -> Int? {\n var i = from\n while i + d.count <= s.count {\n if s[i..<i + d.count].elementsEqual(d) { return i }\n i += 1\n }\n return nil\n}","fileprivate func _split(_ s: String, _ d: String) -> [String] {\n let sc = Array(s.unicodeScalars), dc = Array(d.unicodeScalars)\n if dc.isEmpty { return sc.map { String($0) } }\n var out: [String] = []\n var at = 0\n while let i = _find(sc, dc, at) {\n out.append(_str(sc[at..<i]))\n at = i + dc.count\n }\n out.append(_str(sc[at...]))\n return out\n}"],"str/join":["fileprivate func _num_text(_ x: Double) -> String {\n if x.isNaN { return \"NaN\" }\n if x.isInfinite { return x < 0 ? \"-Infinity\" : \"Infinity\" }\n if x == 0 { return \"0\" }\n var d = abs(x).description\n var e = 0\n if let i = d.firstIndex(where: { $0 == \"e\" || $0 == \"E\" }) {\n e = Int(d[d.index(after: i)...]) ?? 0\n d = String(d[..<i])\n }\n var digits = d\n var point = d.count\n if let i = d.firstIndex(of: \".\") {\n point = d.distance(from: d.startIndex, to: i)\n digits = d.replacingOccurrences(of: \".\", with: \"\")\n }\n var n = point + e\n while digits.hasPrefix(\"0\") && digits.count > 1 { digits.removeFirst(); n -= 1 }\n while digits.hasSuffix(\"0\") && digits.count > 1 { digits.removeLast() }\n let k = digits.count\n var out: String\n if k <= n && n <= 21 {\n out = digits + String(repeating: \"0\", count: n - k)\n } else if 0 < n && n <= 21 {\n out = String(digits.prefix(n)) + \".\" + String(digits.dropFirst(n))\n } else if -6 < n && n <= 0 {\n out = \"0.\" + String(repeating: \"0\", count: -n) + digits\n } else {\n let m = n - 1\n let sign = m < 0 ? \"-\" : \"+\"\n out = String(digits.prefix(1)) + (k > 1 ? \".\" + String(digits.dropFirst()) : \"\") + \"e\" + sign + String(abs(m))\n }\n return x < 0 ? \"-\" + out : out\n}\nfileprivate protocol _Textual { var _text: String { get } }\nextension String: _Textual { fileprivate var _text: String { self } }\nextension Bool: _Textual { fileprivate var _text: String { self ? \"true\" : \"false\" } }\nextension Double: _Textual { fileprivate var _text: String { _num_text(self) } }\nextension Int: _Textual { fileprivate var _text: String { String(self) } }","fileprivate func _join<T: _Textual>(_ a: [T], _ d: String) -> String { a.map { $0._text }.joined(separator: d) }"],"str/concat":["fileprivate func _num_text(_ x: Double) -> String {\n if x.isNaN { return \"NaN\" }\n if x.isInfinite { return x < 0 ? \"-Infinity\" : \"Infinity\" }\n if x == 0 { return \"0\" }\n var d = abs(x).description\n var e = 0\n if let i = d.firstIndex(where: { $0 == \"e\" || $0 == \"E\" }) {\n e = Int(d[d.index(after: i)...]) ?? 0\n d = String(d[..<i])\n }\n var digits = d\n var point = d.count\n if let i = d.firstIndex(of: \".\") {\n point = d.distance(from: d.startIndex, to: i)\n digits = d.replacingOccurrences(of: \".\", with: \"\")\n }\n var n = point + e\n while digits.hasPrefix(\"0\") && digits.count > 1 { digits.removeFirst(); n -= 1 }\n while digits.hasSuffix(\"0\") && digits.count > 1 { digits.removeLast() }\n let k = digits.count\n var out: String\n if k <= n && n <= 21 {\n out = digits + String(repeating: \"0\", count: n - k)\n } else if 0 < n && n <= 21 {\n out = String(digits.prefix(n)) + \".\" + String(digits.dropFirst(n))\n } else if -6 < n && n <= 0 {\n out = \"0.\" + String(repeating: \"0\", count: -n) + digits\n } else {\n let m = n - 1\n let sign = m < 0 ? \"-\" : \"+\"\n out = String(digits.prefix(1)) + (k > 1 ? \".\" + String(digits.dropFirst()) : \"\") + \"e\" + sign + String(abs(m))\n }\n return x < 0 ? \"-\" + out : out\n}\nfileprivate protocol _Textual { var _text: String { get } }\nextension String: _Textual { fileprivate var _text: String { self } }\nextension Bool: _Textual { fileprivate var _text: String { self ? \"true\" : \"false\" } }\nextension Double: _Textual { fileprivate var _text: String { _num_text(self) } }\nextension Int: _Textual { fileprivate var _text: String { String(self) } }","fileprivate func _concat(_ parts: any _Textual...) -> String { parts.map { $0._text }.joined() }"],"str/includes":["fileprivate func _find(_ s: [Unicode.Scalar], _ d: [Unicode.Scalar], _ from: Int) -> Int? {\n var i = from\n while i + d.count <= s.count {\n if s[i..<i + d.count].elementsEqual(d) { return i }\n i += 1\n }\n return nil\n}","fileprivate func _str_includes(_ s: String, _ d: String) -> Bool { _find(Array(s.unicodeScalars), Array(d.unicodeScalars), 0) != nil }"],"str/startsWith":[],"str/endsWith":[],"str/replace":["fileprivate func _replace(_ s: String, _ d: String, _ r: String, _ all: Bool) -> String {\n let sc = Array(s.unicodeScalars), dc = Array(d.unicodeScalars)\n var out = String.UnicodeScalarView()\n var i = 0\n var done = false\n while i <= sc.count {\n if !done, i + dc.count <= sc.count, sc[i..<i + dc.count].elementsEqual(dc) {\n out.append(contentsOf: r.unicodeScalars)\n done = !all\n if dc.isEmpty {\n if i < sc.count { out.append(sc[i]) }\n i += 1\n } else {\n i += dc.count\n }\n } else {\n if i < sc.count { out.append(sc[i]) }\n i += 1\n }\n }\n return String(out)\n}"],"str/replaceAll":["fileprivate func _replace(_ s: String, _ d: String, _ r: String, _ all: Bool) -> String {\n let sc = Array(s.unicodeScalars), dc = Array(d.unicodeScalars)\n var out = String.UnicodeScalarView()\n var i = 0\n var done = false\n while i <= sc.count {\n if !done, i + dc.count <= sc.count, sc[i..<i + dc.count].elementsEqual(dc) {\n out.append(contentsOf: r.unicodeScalars)\n done = !all\n if dc.isEmpty {\n if i < sc.count { out.append(sc[i]) }\n i += 1\n } else {\n i += dc.count\n }\n } else {\n if i < sc.count { out.append(sc[i]) }\n i += 1\n }\n }\n return String(out)\n}"],"str/repeat":["fileprivate func _whole(_ x: Double) -> Int {\n guard x == x.rounded(), abs(x) < 9007199254740992 else { fatalError(\"expected a whole number\") }\n return Int(x)\n}","fileprivate func _count(_ x: Double) -> Int {\n let k = _whole(x)\n guard k >= 0 else { fatalError(\"expected a whole number from 0\") }\n return k\n}","fileprivate func _repeat(_ s: String, _ n: Double) -> String { String(repeating: s, count: _count(n)) }"],"str/reverse":["fileprivate func _str<S: Sequence>(_ a: S) -> String where S.Element == Unicode.Scalar {\n var v = String.UnicodeScalarView()\n v.append(contentsOf: a)\n return String(v)\n}","fileprivate func _reverse_str(_ s: String) -> String { _str(s.unicodeScalars.reversed()) }"],"str/slice":["fileprivate func _str<S: Sequence>(_ a: S) -> String where S.Element == Unicode.Scalar {\n var v = String.UnicodeScalarView()\n v.append(contentsOf: a)\n return String(v)\n}","fileprivate func _whole(_ x: Double) -> Int {\n guard x == x.rounded(), abs(x) < 9007199254740992 else { fatalError(\"expected a whole number\") }\n return Int(x)\n}","fileprivate func _str_slice(_ s: String, _ a: Double, _ b: Double? = nil) -> String {\n let sc = Array(s.unicodeScalars)\n let n = sc.count\n func at(_ i: Int) -> Int { i < 0 ? max(0, n + i) : min(i, n) }\n let lo = at(_whole(a))\n let hi = b.map { at(_whole($0)) } ?? n\n return lo < hi ? _str(sc[lo..<hi]) : \"\"\n}"],"str/padStart":["fileprivate func _whole(_ x: Double) -> Int {\n guard x == x.rounded(), abs(x) < 9007199254740992 else { fatalError(\"expected a whole number\") }\n return Int(x)\n}","fileprivate func _pad_start(_ s: String, _ n: Double, _ p: String = \" \") -> String {\n guard p.unicodeScalars.count == 1 else { fatalError(\"expected a single padding character\") }\n let k = max(0, _whole(n) - s.unicodeScalars.count)\n return String(repeating: p, count: k) + s\n}"],"str/padEnd":["fileprivate func _whole(_ x: Double) -> Int {\n guard x == x.rounded(), abs(x) < 9007199254740992 else { fatalError(\"expected a whole number\") }\n return Int(x)\n}","fileprivate func _pad_end(_ s: String, _ n: Double, _ p: String = \" \") -> String {\n guard p.unicodeScalars.count == 1 else { fatalError(\"expected a single padding character\") }\n let k = max(0, _whole(n) - s.unicodeScalars.count)\n return s + String(repeating: p, count: k)\n}"],"str/truncate":["fileprivate func _str<S: Sequence>(_ a: S) -> String where S.Element == Unicode.Scalar {\n var v = String.UnicodeScalarView()\n v.append(contentsOf: a)\n return String(v)\n}","fileprivate func _whole(_ x: Double) -> Int {\n guard x == x.rounded(), abs(x) < 9007199254740992 else { fatalError(\"expected a whole number\") }\n return Int(x)\n}","fileprivate func _count(_ x: Double) -> Int {\n let k = _whole(x)\n guard k >= 0 else { fatalError(\"expected a whole number from 0\") }\n return k\n}","fileprivate func _truncate(_ s: String, _ n: Double, _ suffix: String = \"...\") -> String {\n let sc = Array(s.unicodeScalars)\n return Double(sc.count) <= n ? s : _str(sc[0..<_count(n)]) + suffix\n}"],"str/to-int":["fileprivate func _to_int(_ s: String) -> Double? { Int64(s).map { Double($0) } }"],"array/len":[],"array/first":[],"array/last":[],"array/nth":["fileprivate func _whole(_ x: Double) -> Int {\n guard x == x.rounded(), abs(x) < 9007199254740992 else { fatalError(\"expected a whole number\") }\n return Int(x)\n}","fileprivate func _count(_ x: Double) -> Int {\n let k = _whole(x)\n guard k >= 0 else { fatalError(\"expected a whole number from 0\") }\n return k\n}","fileprivate func _nth<T>(_ a: [T], _ i: Double) -> T? {\n let k = _count(i)\n return k < a.count ? a[k] : nil\n}"],"array/range":["fileprivate func _range(_ a: Double, _ b: Double? = nil, _ step: Double = 1) -> [Double] {\n let start = b == nil ? 0 : a\n let end = b ?? a\n guard step != 0, step.isFinite else { fatalError(\"range: step must be a non-zero finite number\") }\n var out: [Double] = []\n var x = start\n while step > 0 ? x < end : x > end {\n out.append(x)\n x += step\n }\n return out\n}"],"array/slice":["fileprivate func _whole(_ x: Double) -> Int {\n guard x == x.rounded(), abs(x) < 9007199254740992 else { fatalError(\"expected a whole number\") }\n return Int(x)\n}","fileprivate func _count(_ x: Double) -> Int {\n let k = _whole(x)\n guard k >= 0 else { fatalError(\"expected a whole number from 0\") }\n return k\n}","fileprivate func _slice<T>(_ a: [T], _ s: Double, _ e: Double? = nil) -> [T] {\n let lo = _count(s)\n let hi = min(e.map { _count($0) } ?? a.count, a.count)\n return lo < hi ? Array(a[lo..<hi]) : []\n}"],"array/take":["fileprivate func _whole(_ x: Double) -> Int {\n guard x == x.rounded(), abs(x) < 9007199254740992 else { fatalError(\"expected a whole number\") }\n return Int(x)\n}","fileprivate func _count(_ x: Double) -> Int {\n let k = _whole(x)\n guard k >= 0 else { fatalError(\"expected a whole number from 0\") }\n return k\n}","fileprivate func _take<T>(_ a: [T], _ n: Double) -> [T] { Array(a.prefix(_count(n))) }"],"array/drop":["fileprivate func _whole(_ x: Double) -> Int {\n guard x == x.rounded(), abs(x) < 9007199254740992 else { fatalError(\"expected a whole number\") }\n return Int(x)\n}","fileprivate func _count(_ x: Double) -> Int {\n let k = _whole(x)\n guard k >= 0 else { fatalError(\"expected a whole number from 0\") }\n return k\n}","fileprivate func _drop<T>(_ a: [T], _ n: Double) -> [T] { Array(a.dropFirst(_count(n))) }"],"array/takeLast":["fileprivate func _whole(_ x: Double) -> Int {\n guard x == x.rounded(), abs(x) < 9007199254740992 else { fatalError(\"expected a whole number\") }\n return Int(x)\n}","fileprivate func _count(_ x: Double) -> Int {\n let k = _whole(x)\n guard k >= 0 else { fatalError(\"expected a whole number from 0\") }\n return k\n}","fileprivate func _take_last<T>(_ a: [T], _ n: Double) -> [T] { Array(a.suffix(_count(n))) }"],"array/dropLast":["fileprivate func _whole(_ x: Double) -> Int {\n guard x == x.rounded(), abs(x) < 9007199254740992 else { fatalError(\"expected a whole number\") }\n return Int(x)\n}","fileprivate func _count(_ x: Double) -> Int {\n let k = _whole(x)\n guard k >= 0 else { fatalError(\"expected a whole number from 0\") }\n return k\n}","fileprivate func _drop_last<T>(_ a: [T], _ n: Double) -> [T] { Array(a.dropLast(_count(n))) }"],"array/append":[],"array/prepend":[],"array/includes":["fileprivate protocol _Eq { func _same(_ o: Self) -> Bool }\nextension String: _Eq { fileprivate func _same(_ o: String) -> Bool { unicodeScalars.elementsEqual(o.unicodeScalars) } }\nextension Double: _Eq { fileprivate func _same(_ o: Double) -> Bool { self == o } }\nextension Bool: _Eq { fileprivate func _same(_ o: Bool) -> Bool { self == o } }\nextension Array: _Eq where Element: _Eq { fileprivate func _same(_ o: [Element]) -> Bool { count == o.count && zip(self, o).allSatisfy { $0._same($1) } } }\nextension Optional: _Eq where Wrapped: _Eq {\n fileprivate func _same(_ o: Wrapped?) -> Bool {\n switch (self, o) {\n case (nil, nil): return true\n case let (a?, b?): return a._same(b)\n default: return false\n }\n }\n}\nextension Dictionary: _Eq where Value: _Eq { fileprivate func _same(_ o: [Key: Value]) -> Bool { count == o.count && allSatisfy { kv in o[kv.key].map { kv.value._same($0) } ?? false } } }\nfileprivate func _eq<T: _Eq>(_ a: T, _ b: T) -> Bool { a._same(b) }","fileprivate func _includes<T: _Eq>(_ a: [T], _ x: T) -> Bool { a.contains { $0._same(x) } }"],"array/indexOf":["fileprivate protocol _Eq { func _same(_ o: Self) -> Bool }\nextension String: _Eq { fileprivate func _same(_ o: String) -> Bool { unicodeScalars.elementsEqual(o.unicodeScalars) } }\nextension Double: _Eq { fileprivate func _same(_ o: Double) -> Bool { self == o } }\nextension Bool: _Eq { fileprivate func _same(_ o: Bool) -> Bool { self == o } }\nextension Array: _Eq where Element: _Eq { fileprivate func _same(_ o: [Element]) -> Bool { count == o.count && zip(self, o).allSatisfy { $0._same($1) } } }\nextension Optional: _Eq where Wrapped: _Eq {\n fileprivate func _same(_ o: Wrapped?) -> Bool {\n switch (self, o) {\n case (nil, nil): return true\n case let (a?, b?): return a._same(b)\n default: return false\n }\n }\n}\nextension Dictionary: _Eq where Value: _Eq { fileprivate func _same(_ o: [Key: Value]) -> Bool { count == o.count && allSatisfy { kv in o[kv.key].map { kv.value._same($0) } ?? false } } }\nfileprivate func _eq<T: _Eq>(_ a: T, _ b: T) -> Bool { a._same(b) }","fileprivate func _index_of<T: _Eq>(_ a: [T], _ x: T) -> Double { Double(a.firstIndex { $0._same(x) } ?? -1) }"],"array/reverse":[],"array/unique":["fileprivate protocol _Eq { func _same(_ o: Self) -> Bool }\nextension String: _Eq { fileprivate func _same(_ o: String) -> Bool { unicodeScalars.elementsEqual(o.unicodeScalars) } }\nextension Double: _Eq { fileprivate func _same(_ o: Double) -> Bool { self == o } }\nextension Bool: _Eq { fileprivate func _same(_ o: Bool) -> Bool { self == o } }\nextension Array: _Eq where Element: _Eq { fileprivate func _same(_ o: [Element]) -> Bool { count == o.count && zip(self, o).allSatisfy { $0._same($1) } } }\nextension Optional: _Eq where Wrapped: _Eq {\n fileprivate func _same(_ o: Wrapped?) -> Bool {\n switch (self, o) {\n case (nil, nil): return true\n case let (a?, b?): return a._same(b)\n default: return false\n }\n }\n}\nextension Dictionary: _Eq where Value: _Eq { fileprivate func _same(_ o: [Key: Value]) -> Bool { count == o.count && allSatisfy { kv in o[kv.key].map { kv.value._same($0) } ?? false } } }\nfileprivate func _eq<T: _Eq>(_ a: T, _ b: T) -> Bool { a._same(b) }","fileprivate func _unique<T: _Eq>(_ a: [T]) -> [T] {\n var out: [T] = []\n for x in a where !out.contains(where: { $0._same(x) }) { out.append(x) }\n return out\n}"],"array/flatten":[],"array/zip":[],"array/reduce":[],"list":[],"object/get":["fileprivate func _get<T>(_ o: [String: T], _ p: String) -> T? {\n guard !p.unicodeScalars.contains(\".\") else { fatalError(\"object/get: a dotted path is not supported on a typed map\") }\n return o[p]\n}"],"object/has":["fileprivate func _has<T>(_ o: [String: T], _ p: String) -> Bool {\n guard !p.unicodeScalars.contains(\".\") else { fatalError(\"object/has: a dotted path is not supported on a typed map\") }\n return o.keys.contains(p)\n}"],"object/set":["fileprivate func _set<T>(_ o: [String: T], _ p: String, _ v: T) -> [String: T] {\n guard !p.unicodeScalars.contains(\".\") else { fatalError(\"object/set: a dotted path is not supported on a typed map\") }\n var out = o\n out[p] = v\n return out\n}"],"object/merge":[],"object/pick":["fileprivate func _pick<T>(_ o: [String: T], _ ks: [String]) -> [String: T] { o.filter { ks.contains($0.key) } }"],"object/omit":["fileprivate func _omit<T>(_ o: [String: T], _ ks: [String]) -> [String: T] { o.filter { !ks.contains($0.key) } }"],"math/abs":[],"math/max":[],"math/min":[],"math/round":["fileprivate func _round(_ x: Double, _ d: Double = 0) -> Double {\n let m = pow(10, d)\n return copysign(floor(abs(x) * m + 0.5) / m, x)\n}"],"math/sqrt":["fileprivate func _sqrt(_ x: Double) -> Double? { x < 0 ? nil : x.squareRoot() }"],"math/ln":["fileprivate func _ln(_ x: Double) -> Double? { x <= 0 ? nil : log(x) }"],"math/log10":["fileprivate func _log10(_ x: Double) -> Double? { x <= 0 ? nil : log10(x) }"],"math/pow":["fileprivate func _pow(_ a: Double, _ b: Double) -> Double? {\n let r = pow(a, b)\n return r.isNaN || r.isInfinite ? nil : r\n}"],"math/sign":["fileprivate func _sign(_ x: Double) -> Double { x > 0 ? 1 : (x < 0 ? -1 : 0) }"],"math/clamp":[],"default":[],"as":[],"validate/required":["fileprivate func _required(_ v: String?) -> Bool { v != nil && v != \"\" }\nfileprivate func _required<T>(_ v: T?) -> Bool { v != nil }"],"validate/length":["fileprivate func _size(_ s: String) -> Double { Double(s.unicodeScalars.count) }\nfileprivate func _size<T>(_ a: [T]) -> Double { Double(a.count) }"],"validate/minLength":["fileprivate func _size(_ s: String) -> Double { Double(s.unicodeScalars.count) }\nfileprivate func _size<T>(_ a: [T]) -> Double { Double(a.count) }"],"validate/maxLength":["fileprivate func _size(_ s: String) -> Double { Double(s.unicodeScalars.count) }\nfileprivate func _size<T>(_ a: [T]) -> Double { Double(a.count) }"],"validate/min":[],"validate/max":[],"validate/range":[],"validate/oneOf":["fileprivate protocol _Eq { func _same(_ o: Self) -> Bool }\nextension String: _Eq { fileprivate func _same(_ o: String) -> Bool { unicodeScalars.elementsEqual(o.unicodeScalars) } }\nextension Double: _Eq { fileprivate func _same(_ o: Double) -> Bool { self == o } }\nextension Bool: _Eq { fileprivate func _same(_ o: Bool) -> Bool { self == o } }\nextension Array: _Eq where Element: _Eq { fileprivate func _same(_ o: [Element]) -> Bool { count == o.count && zip(self, o).allSatisfy { $0._same($1) } } }\nextension Optional: _Eq where Wrapped: _Eq {\n fileprivate func _same(_ o: Wrapped?) -> Bool {\n switch (self, o) {\n case (nil, nil): return true\n case let (a?, b?): return a._same(b)\n default: return false\n }\n }\n}\nextension Dictionary: _Eq where Value: _Eq { fileprivate func _same(_ o: [Key: Value]) -> Bool { count == o.count && allSatisfy { kv in o[kv.key].map { kv.value._same($0) } ?? false } } }\nfileprivate func _eq<T: _Eq>(_ a: T, _ b: T) -> Bool { a._same(b) }","fileprivate func _includes<T: _Eq>(_ a: [T], _ x: T) -> Bool { a.contains { $0._same(x) } }"],"validate/equals":["fileprivate protocol _Eq { func _same(_ o: Self) -> Bool }\nextension String: _Eq { fileprivate func _same(_ o: String) -> Bool { unicodeScalars.elementsEqual(o.unicodeScalars) } }\nextension Double: _Eq { fileprivate func _same(_ o: Double) -> Bool { self == o } }\nextension Bool: _Eq { fileprivate func _same(_ o: Bool) -> Bool { self == o } }\nextension Array: _Eq where Element: _Eq { fileprivate func _same(_ o: [Element]) -> Bool { count == o.count && zip(self, o).allSatisfy { $0._same($1) } } }\nextension Optional: _Eq where Wrapped: _Eq {\n fileprivate func _same(_ o: Wrapped?) -> Bool {\n switch (self, o) {\n case (nil, nil): return true\n case let (a?, b?): return a._same(b)\n default: return false\n }\n }\n}\nextension Dictionary: _Eq where Value: _Eq { fileprivate func _same(_ o: [Key: Value]) -> Bool { count == o.count && allSatisfy { kv in o[kv.key].map { kv.value._same($0) } ?? false } } }\nfileprivate func _eq<T: _Eq>(_ a: T, _ b: T) -> Bool { a._same(b) }"],"-":[],"not":[],"array/sum":[],"array/count":[],"array/sort":[],"array/concat":[],"array/avg":["fileprivate func _avg(_ a: [Double]) -> Double? { a.isEmpty ? nil : a.reduce(0, +) / Double(a.count) }"],"array/max":[],"array/min":[],"unsupported":["fileprivate func _unsupported<T>(_ name: String) -> T { fatalError(\"no native template for operator \" + name) }"]},"wired":true},"helperGap":{"type":"unknown","default":"\n","wired":true},"portEffects":{"type":"unknown","default":["list","persist","fetch","fetch-stream","notify","navigate","navigate-back","call-service","cancel-call","send-server","spawn","despawn","log"],"wired":true},"portCall":{"type":"unknown","default":"self.ports[\"{{name}}\"]?([{{*}}])","wired":true},"portCase":{"type":"unknown","default":"lower","wired":true},"portWarn":{"type":"unknown","default":"{{op}} is called on the ports object","wired":true},"attributeRoots":{"type":"unknown","default":{"entity":"self.entity","state":"self.state","user":"self.user","now":"self.now","locale":"self.locale","trait":"self.trait","event":"self.event","payload":"payload","config":"self.config"},"wired":true},"itemRoots":{"type":"unknown","default":{},"wired":true},"attrAccess":{"type":"unknown","default":".{{name}}","wired":true},"itemAccess":{"type":"unknown","default":"[{{key}}]","wired":true},"indexAccess":{"type":"unknown","default":"[{{0}}]","wired":true},"localAccess":{"type":"unknown","default":"item","wired":true},"entityReadDefault":{"type":"unknown","default":"({{read}} ?? {{default}})","wired":true},"typeNames":{"type":"unknown","default":{"string":"String","string?":"String?","[string]":"[String]","[string]?":"[String]?","[string?]":"[String?]","[[string]]":"[[String]]","[[string]]?":"[[String]]?","Map string string":"[String: String]","Map string string?":"[String: String]?","Map string [string]":"[String: [String]]","[Map string string]":"[[String: String]]","number":"Double","number?":"Double?","[number]":"[Double]","[number]?":"[Double]?","[number?]":"[Double?]","[[number]]":"[[Double]]","[[number]]?":"[[Double]]?","Map string number":"[String: Double]","Map string number?":"[String: Double]?","Map string [number]":"[String: [Double]]","[Map string number]":"[[String: Double]]","int":"Double","int?":"Double?","[int]":"[Double]","[int]?":"[Double]?","[int?]":"[Double?]","[[int]]":"[[Double]]","[[int]]?":"[[Double]]?","Map string int":"[String: Double]","Map string int?":"[String: Double]?","Map string [int]":"[String: [Double]]","[Map string int]":"[[String: Double]]","boolean":"Bool","boolean?":"Bool?","[boolean]":"[Bool]","[boolean]?":"[Bool]?","[boolean?]":"[Bool?]","[[boolean]]":"[[Bool]]","[[boolean]]?":"[[Bool]]?","Map string boolean":"[String: Bool]","Map string boolean?":"[String: Bool]?","Map string [boolean]":"[String: [Bool]]","[Map string boolean]":"[[String: Bool]]"},"wired":true},"typeUnknown":{"type":"unknown","default":"Any","wired":true},"nullLit":{"type":"unknown","default":"nil","wired":true},"trueLit":{"type":"unknown","default":"true","wired":true},"falseLit":{"type":"unknown","default":"false","wired":true},"stringForm":{"type":"unknown","default":"{{json}}","wired":true},"listForm":{"type":"unknown","default":"[{{*}}]","wired":true},"mapOpen":{"type":"unknown","default":"[","wired":true},"mapClose":{"type":"unknown","default":"]","wired":true},"mapPair":{"type":"unknown","default":"{{key}}: {{value}}","wired":true},"mapSep":{"type":"unknown","default":", ","wired":true},"mapEmpty":{"type":"unknown","default":"[:]","wired":true},"letStmt":{"type":"unknown","default":"let {{name}}: {{type}} = {{value}}","wired":true},"letExpr":{"type":"unknown","default":"({ ({{name}}: {{type}}) in {{body}} })({{value}})","wired":true},"condExpr":{"type":"unknown","default":"({{cond}} ? {{then}} : {{else}})","wired":true},"ifOpen":{"type":"unknown","default":"if {{cond}} {","wired":true},"elseOpen":{"type":"unknown","default":"} else {","wired":true},"blockClose":{"type":"unknown","default":"}","wired":true},"emptyBody":{"type":"unknown","default":"","wired":true},"setStyle":{"type":"unknown","default":"assign","wired":true},"setAssign":{"type":"unknown","default":"{{target}} = {{value}}","wired":true},"emitForm":{"type":"unknown","default":"self.emit({{event}}, {{payload}})","wired":true},"voidPayload":{"type":"unknown","default":"[String: String]()","wired":true},"recordForm":{"type":"unknown","default":"{{type}}({{fields}})","wired":true},"recordField":{"type":"unknown","default":"{{name}}: {{value}}","wired":true},"unionArmForm":{"type":"unknown","default":"{{union}}.{{arm}}({{inner}})","wired":true},"unionArmCase":{"type":"unknown","default":"lower-camel","wired":true},"enumForm":{"type":"unknown","default":"{{enum}}.{{member}}","wired":true},"enumMemberCase":{"type":"unknown","default":"split-camel","wired":true},"payloadType":{"type":"unknown","default":"{{trait}}{{event}}Payload","wired":true},"configType":{"type":"unknown","default":"{{trait}}Config","wired":true},"payloadCtor":{"type":"unknown","default":"{{type}}({{fields}})","wired":true},"payloadField":{"type":"unknown","default":"{{name}}: {{value}}","wired":true},"payloadSep":{"type":"unknown","default":", ","wired":true},"payloadFieldOrder":{"type":"unknown","default":"sorted","wired":true},"commentForm":{"type":"unknown","default":"// {{text}}","wired":true},"indent":{"type":"unknown","default":" ","wired":true},"terminator":{"type":"unknown","default":"","wired":true},"classCase":{"type":"unknown","default":"keep","wired":true},"fieldCase":{"type":"unknown","default":"keep","wired":true},"localCase":{"type":"unknown","default":"keep","wired":true},"methodCase":{"type":"unknown","default":"pascal","wired":true},"methodName":{"type":"unknown","default":"on{{event}}","wired":true},"modelImports":{"type":"unknown","default":{"entity":"import Foundation","payload":""},"wired":true},"modelImportEach":{"type":"unknown","default":false,"wired":true},"modelImportSep":{"type":"unknown","default":", ","wired":true},"entityNames":{"type":"unknown","default":{"Any":"AnyEntity","AnyCodable":"AnyCodableEntity","Array":"ArrayEntity","Binding":"BindingEntity","Bool":"BoolEntity","Button":"ButtonEntity","Calendar":"CalendarEntity","Character":"CharacterEntity","Color":"ColorEntity","Data":"DataEntity","Date":"DateEntity","Dictionary":"DictionaryEntity","Double":"DoubleEntity","Environment":"EnvironmentEntity","Error":"ErrorEntity","Float":"FloatEntity","Font":"FontEntity","Form":"FormEntity","Group":"GroupEntity","Image":"ImageEntity","Int":"IntEntity","JSONDecoder":"JSONDecoderEntity","JSONEncoder":"JSONEncoderEntity","Label":"LabelEntity","Link":"LinkEntity","List":"ListEntity","Locale":"LocaleEntity","Menu":"MenuEntity","Never":"NeverEntity","Notification":"NotificationEntity","Optional":"OptionalEntity","Path":"PathEntity","Picker":"PickerEntity","Range":"RangeEntity","Result":"ResultEntity","Section":"SectionEntity","Set":"SetEntity","Shape":"ShapeEntity","Slider":"SliderEntity","State":"StateEntity","Stepper":"StepperEntity","String":"StringEntity","Task":"TaskEntity","Text":"TextEntity","Timer":"TimerEntity","Toggle":"ToggleEntity","URL":"URLEntity","UUID":"UUIDEntity","View":"ViewEntity","Void":"VoidEntity"},"wired":true},"sectionGap":{"type":"unknown","default":"\n\n\n","wired":true},"classOpen":{"type":"unknown","default":"final class {{class}} {","wired":true},"classClose":{"type":"unknown","default":"}","wired":true},"classEmpty":{"type":"unknown","default":"","wired":true},"constructor":{"type":"unknown","default":["{{i}}var state: String","{{i}}var entity: {{entity}}","{{i}}var ports: [String: ([Any]) -> Void]","{{i}}var config = {{configType}}()","{{i}}private(set) var emitted: [(event: String, payload: any Encodable)] = []","","{{i}}init(entity: {{entity}}, ports: [String: ([Any]) -> Void] = [:]) {","{{i}}{{i}}self.state = {{initial}}","{{i}}{{i}}self.entity = entity","{{i}}{{i}}self.ports = ports","{{i}}}"],"wired":true},"emitMethod":{"type":"unknown","default":["{{i}}func emit(_ event: String, _ payload: any Encodable) {","{{i}}{{i}}emitted.append((event: event, payload: payload))","{{i}}}"],"wired":true},"methodOpen":{"type":"unknown","default":"{{i}}func {{method}}(_ payload: {{payloadType}}) {","wired":true},"methodOpenPlain":{"type":"unknown","default":"{{i}}func {{method}}() {","wired":true},"methodClose":{"type":"unknown","default":"{{i}}}","wired":true},"branchFirst":{"type":"unknown","default":"{{i}}{{i}}if {{test}} {","wired":true},"branchNext":{"type":"unknown","default":"{{i}}{{i}}} else if {{test}} {","wired":true},"branchClose":{"type":"unknown","default":"{{i}}{{i}}}","wired":true},"branchTest":{"type":"unknown","default":"{{stateTest}} && {{guard}}","wired":true},"branchTestPlain":{"type":"unknown","default":"{{stateTest}}","wired":true},"stateTest":{"type":"unknown","default":"self.state == {{state}}","wired":true},"stateAssign":{"type":"unknown","default":"self.state = {{state}}","wired":true},"bodyPrefix":{"type":"unknown","default":"{{i}}{{i}}{{i}}","wired":true},"renderModels":{"type":"unknown","default":false,"wired":true},"modelAnnotation":{"type":"unknown","default":"","wired":true},"modelClassOpen":{"type":"unknown","default":"struct {{name}}: Codable {","wired":true},"modelClassClose":{"type":"unknown","default":"}","wired":true},"modelField":{"type":"unknown","default":"{{i}}var {{name}}: {{type}}{{default}}","wired":true},"modelDefault":{"type":"unknown","default":" = {{value}}","wired":true},"modelFactory":{"type":"unknown","default":" = {{value}}","wired":true},"modelEmpty":{"type":"unknown","default":"","wired":true},"modelAlias":{"type":"unknown","default":"typealias {{name}} = {{type}}","wired":true},"typeMap":{"type":"unknown","default":{"string":"String","number":"Double","float":"Double","int":"Int","integer":"Int","boolean":"Bool","bool":"Bool","date":"String","datetime":"String","timestamp":"String","instant":"String","duration":"Double","email":"String","url":"String","uuid":"String","bytes":"[UInt8]"},"wired":true},"typeList":{"type":"unknown","default":"[{{0}}]","wired":true},"typeListBare":{"type":"unknown","default":"[Any]","wired":true},"typeDict":{"type":"unknown","default":"[String: {{0}}]","wired":true},"typeDictBare":{"type":"unknown","default":"[String: Any]","wired":true},"typeLiteral":{"type":"unknown","default":"String","wired":true},"typeNullable":{"type":"unknown","default":"{{0}}?","wired":true},"typeAny":{"type":"unknown","default":"Any","wired":true}},"events":{"LOLO_TO_SOURCE":"LOLO_TO_SWIFT","SOURCE_RENDERED":"SWIFT_RENDERED","SOURCE_RENDER_FAILED":"SWIFT_RENDER_FAILED"}}],"pages":[{"name":"LoloSwiftStart","id":"pag_QQZCTG70SNGCTNYHEP2WMV0KEK","path":"","protocol":"boot","traits":[{"ref":"LoloSwift","refId":"trt_1SBFF6YAB355HSG2D9N5YBQW72"}]}]}],"schemaVersion":1,"ledger":{"schemaVersion":1,"entries":{"ent_MYRMYDDEZ7QFKYZ9S2H13END4R":{"id":"ent_MYRMYDDEZ7QFKYZ9S2H13END4R","kind":"entity","bakedName":"LoloSwiftRun","curName":"LoloSwiftRun","renames":[],"owner":"workspace"},"orb_Y5489285492J4KYHRE1ME7Z5GA":{"id":"orb_Y5489285492J4KYHRE1ME7Z5GA","kind":"orbital","bakedName":"LoloSwiftOrbital","curName":"LoloSwiftOrbital","renames":[],"owner":"workspace"},"pag_QQZCTG70SNGCTNYHEP2WMV0KEK":{"id":"pag_QQZCTG70SNGCTNYHEP2WMV0KEK","kind":"page","bakedName":"LoloSwiftStart","curName":"LoloSwiftStart","renames":[],"owner":"workspace"},"trt_1SBFF6YAB355HSG2D9N5YBQW72":{"id":"trt_1SBFF6YAB355HSG2D9N5YBQW72","kind":"trait","bakedName":"LoloSwift","curName":"LoloSwift","renames":[],"owner":"workspace"}}}}
1
+ {"typeContractVersion":1,"name":"std-lolo-swift","version":"1.0.0","description":"std-lolo-swift — renders .lolo source as Swift, so a learner who reads an exercise written in .lolo can see the same program as Swift that compiles against the iOS shell's generated models and gives the kernel's answers. It is std-lolo-source with the Swift vocabulary in config and nothing else: LOLO_TO_SWIFT { source, path } answers SWIFT_RENDERED { text, warnings }, or SWIFT_RENDER_FAILED { error } when the source cannot be read or the request carries no path (Swift is typed, so the types come from the kernel checker). Each trait becomes a final class holding state, entity, ports and config, with one on<Event> method per event: an if / else if branch per transition (the from-state and the guard), the effects, then the new state; an emit records (event, payload) in emitted with the payload built as the shell's generated payload struct. The entity and payload structs are the ones Entities.swift and Events.swift of the iOS shell declare in the same module, so the output imports nothing but Foundation. entityNames mirrors the iOS shell's SWIFT_RESERVED_TYPES table (orbital-shell-ios backend.rs): an entity named like a Swift, Foundation or SwiftUI type is generated with the suffix Entity (Task is TaskEntity), and the constructor uses that name. payloadFieldOrder sorted builds a payload struct with its fields by name, the order the shell declares them in, which the memberwise initializer needs; mapEmpty writes the empty map as [:]. Every number is a Double, a string is measured and sliced by Unicode scalar like the kernel, and an answer that is null in the kernel (a division by zero, nth past the end, a missing key) is an Optional that default reads with ??. Kernel-semantics helpers are fileprivate functions written once, and only the ones the output uses. An operator with no Swift template is a named warning and a generic stub that stops when run. persist, fetch, notify, navigate and call-service are called on the ports dictionary of closures and each is listed in warnings; render-ui is a comment. See std-lolo-source for the config knobs and the type placeholders.","orbitals":[{"name":"LoloSwiftOrbital","id":"orb_Y5489285492J4KYHRE1ME7Z5GA","uses":[{"from":"almadar-std/lolo-swift","as":"Spec"},{"from":"std/behaviors/std-lolo-source","as":"Src"}],"entity":{"name":"LoloSwiftRun","id":"ent_MYRMYDDEZ7QFKYZ9S2H13END4R","persistence":"runtime","fields":[{"nullable":false,"name":"id","type":"string","required":true}]},"traits":[{"ref":"Src.traits.LoloSource","id":"trt_1SBFF6YAB355HSG2D9N5YBQW72","name":"LoloSwift","config":{"language":{"type":"unknown","default":"Swift","wired":true},"requiresTypes":{"type":"unknown","default":true,"wired":true},"operators":{"type":"unknown","default":{"/":"_div({{0}}, {{1}})","%":"_mod({{0}}, {{1}})","math/mod":"_mod({{0}}, {{1}})","=#2":"_eq({{0}}, {{1}})","==#2":"_eq({{0}}, {{1}})","!=#2":"(!_eq({{0}}, {{1}}))","str/len":"Double({{0}}.unicodeScalars.count)","str/upper":"{{0}}.uppercased()","str/lower":"{{0}}.lowercased()","str/trim":"{{0}}.trimmingCharacters(in: .whitespacesAndNewlines)","str/trimStart":"_trim_start({{0}})","str/trimEnd":"_trim_end({{0}})","str/capitalize":"_capitalize({{0}})","str/split":"_split({{0}}, {{1}})","str/join":"_join({{0}}, {{1}})","str/concat":"_concat({{*}})","str/includes":"_str_includes({{0}}, {{1}})","str/startsWith":"{{0}}.unicodeScalars.starts(with: {{1}}.unicodeScalars)","str/endsWith":"{{0}}.unicodeScalars.reversed().starts(with: {{1}}.unicodeScalars.reversed())","str/replace":"_replace({{0}}, {{1}}, {{2}}, false)","str/replaceAll":"_replace({{0}}, {{1}}, {{2}}, true)","str/repeat":"_repeat({{0}}, {{1}})","str/reverse":"_reverse_str({{0}})","str/slice#2":"_str_slice({{0}}, {{1}})","str/slice#3":"_str_slice({{0}}, {{1}}, {{2}})","str/padStart#2":"_pad_start({{0}}, {{1}})","str/padStart#3":"_pad_start({{0}}, {{1}}, {{2}})","str/padEnd#2":"_pad_end({{0}}, {{1}})","str/padEnd#3":"_pad_end({{0}}, {{1}}, {{2}})","str/truncate#2":"_truncate({{0}}, {{1}})","str/truncate#3":"_truncate({{0}}, {{1}}, {{2}})","str/to-int":"_to_int({{0}})","array/len":"Double({{0}}.count)","array/first":"{{0}}.first","array/last":"{{0}}.last","array/nth":"_nth({{0}}, {{1}})","array/range#2":"_range({{0}}, {{1}})","array/range#3":"_range({{0}}, {{1}}, {{2}})","array/slice#2":"_slice({{0}}, {{1}})","array/slice#3":"_slice({{0}}, {{1}}, {{2}})","array/take":"_take({{0}}, {{1}})","array/drop":"_drop({{0}}, {{1}})","array/takeLast":"_take_last({{0}}, {{1}})","array/dropLast":"_drop_last({{0}}, {{1}})","array/append":"({{0}} + [{{1}}])","array/prepend":"([{{1}}] + {{0}})","array/includes":"_includes({{0}}, {{1}})","array/indexOf":"_index_of({{0}}, {{1}})","array/reverse":"Array({{0}}.reversed())","array/unique":"_unique({{0}})","array/flatten":"{{0}}.flatMap { $0 }","array/zip":"zip({{0}}, {{1}}).map { [$0.0, $0.1] }","array/reduce":"{{0}}.reduce({{1}}, {{2}})","list":"[{{*}}]","object/get#2":"_get({{0}}, {{1}})","object/get#3":"(_get({{0}}, {{1}}) ?? {{2}})","object/has":"_has({{0}}, {{1}})","object/set":"_set({{0}}, {{1}}, {{2}})","object/merge#2":"{{0}}.merging({{1}}) { _, new in new }","object/pick":"_pick({{0}}, {{1}})","object/omit":"_omit({{0}}, {{1}})","math/abs":"abs({{0}})","math/max":"max({{*}})","math/min":"min({{*}})","math/round#2":"_round({{0}}, {{1}})","math/sqrt":"_sqrt({{0}})","math/ln":"_ln({{0}})","math/log10":"_log10({{0}})","math/pow":"_pow({{0}}, {{1}})","math/sign":"_sign({{0}})","math/clamp":"min(max({{0}}, {{1}}), {{2}})","default":"({{0}} ?? {{1}})","as":"{{0}}","validate/required":"_required({{0}})","validate/length":"(_size({{0}}) == {{1}})","validate/minLength":"(_size({{0}}) >= {{1}})","validate/maxLength":"(_size({{0}}) <= {{1}})","validate/min":"({{0}} >= {{1}})","validate/max":"({{0}} <= {{1}})","validate/range":"({{0}} >= {{1}} && {{0}} <= {{2}})","validate/oneOf":"_includes({{1}}, {{0}})","validate/equals":"_eq({{0}}, {{1}})"},"wired":true},"unary":{"type":"unknown","default":{"-":"(-{{0}})","not":"(!{{0}})","array/range":"_range({{0}})","array/sum":"{{0}}.reduce(0, +)","array/count":"Double({{0}}.count)","array/sort":"{{0}}.sorted()","math/round":"_round({{0}})","array/concat":"{{0}}","object/merge":"{{0}}","array/avg":"_avg({{0}})","array/max":"{{0}}.max()","array/min":"{{0}}.min()"},"wired":true},"infix":{"type":"unknown","default":{"+":"+","-":"-","*":"*","<":"<","<=":"<=",">":">",">=":">=","and":"&&","or":"||","array/concat":"+"},"wired":true},"infixForm":{"type":"unknown","default":"({{*}})","wired":true},"lambdaOperators":{"type":"unknown","default":{"array/map":"{{src}}.map { {{vars}} in {{body}} }","array/filter":"{{src}}.filter { {{vars}} in {{body}} }","array/reject":"{{src}}.filter { {{vars}} in !({{body}}) }","array/some":"{{src}}.contains { {{vars}} in {{body}} }","array/every":"{{src}}.allSatisfy { {{vars}} in {{body}} }","array/count":"Double({{src}}.filter { {{vars}} in {{body}} }.count)","array/find":"{{src}}.first { {{vars}} in {{body}} }","array/findIndex":"({{src}}.firstIndex { {{vars}} in {{body}} }.map { Double($0) } ?? -1)"},"wired":true},"lambdaForm":{"type":"unknown","default":"{ {{params}} in {{body}} }","wired":true},"indexedSource":{"type":"unknown","default":"{{src}}.enumerated().map { (Double($0.offset), $0.element) }","wired":true},"indexedVars":{"type":"unknown","default":"{{index}}, {{item}}","wired":true},"callees":{"type":"unknown","default":{"math/ceil":"ceil","math/floor":"floor","math/sin":"sin","math/cos":"cos","math/tan":"tan","math/atan":"atan","math/atan2":"atan2","math/hypot":"hypot"},"wired":true},"calleeForm":{"type":"unknown","default":"{{callee}}({{*}})","wired":true},"unsupportedForm":{"type":"unknown","default":"_unsupported({{op}})","wired":true},"unsupportedWarn":{"type":"unknown","default":"no {{language}} template for operator {{op}}","wired":true},"helpers":{"type":"unknown","default":{"store":["fileprivate protocol _Eq { func _same(_ o: Self) -> Bool }\nextension String: _Eq { fileprivate func _same(_ o: String) -> Bool { unicodeScalars.elementsEqual(o.unicodeScalars) } }\nextension Double: _Eq { fileprivate func _same(_ o: Double) -> Bool { self == o } }\nextension Bool: _Eq { fileprivate func _same(_ o: Bool) -> Bool { self == o } }\nextension Array: _Eq where Element: _Eq { fileprivate func _same(_ o: [Element]) -> Bool { count == o.count && zip(self, o).allSatisfy { $0._same($1) } } }\nextension Optional: _Eq where Wrapped: _Eq {\n fileprivate func _same(_ o: Wrapped?) -> Bool {\n switch (self, o) {\n case (nil, nil): return true\n case let (a?, b?): return a._same(b)\n default: return false\n }\n }\n}\nextension Dictionary: _Eq where Value: _Eq { fileprivate func _same(_ o: [Key: Value]) -> Bool { count == o.count && allSatisfy { kv in o[kv.key].map { kv.value._same($0) } ?? false } } }\nfileprivate func _eq<T: _Eq>(_ a: T, _ b: T) -> Bool { a._same(b) }","enum _JV: Codable, Equatable, ExpressibleByStringLiteral, ExpressibleByFloatLiteral, ExpressibleByIntegerLiteral, ExpressibleByBooleanLiteral {\n case null, bool(Bool), number(Double), string(String), array([_JV]), object([String: _JV])\n\n init(stringLiteral v: String) { self = .string(v) }\n init(floatLiteral v: Double) { self = .number(v) }\n init(integerLiteral v: Int) { self = .number(Double(v)) }\n init(booleanLiteral v: Bool) { self = .bool(v) }\n\n init(from decoder: Decoder) throws {\n let c = try decoder.singleValueContainer()\n if c.decodeNil() { self = .null }\n else if let b = try? c.decode(Bool.self) { self = .bool(b) }\n else if let n = try? c.decode(Double.self) { self = .number(n) }\n else if let v = try? c.decode(String.self) { self = .string(v) }\n else if let a = try? c.decode([_JV].self) { self = .array(a) }\n else { self = .object(try c.decode([String: _JV].self)) }\n }\n\n func encode(to encoder: Encoder) throws {\n var c = encoder.singleValueContainer()\n switch self {\n case .null: try c.encodeNil()\n case .bool(let b): try c.encode(b)\n case .number(let n): try c.encode(n)\n case .string(let v): try c.encode(v)\n case .array(let a): try c.encode(a)\n case .object(let o): try c.encode(o)\n }\n }\n}\n\nextension _JV: _Eq { fileprivate func _same(_ o: _JV) -> Bool { self == o } }\n\nstruct Answer {\n let ok: Bool\n let payload: [String: _JV]\n}\n\nprotocol Store: AnyObject {\n func persist(_ op: String, _ entity: String, _ data: any Encodable) -> Answer\n func fetch(_ entity: String, _ keep: (([String: _JV]) -> Bool)?) -> Answer\n}\n\nfileprivate func _before(_ a: [String: _JV], _ b: [String: _JV]) -> Bool {\n let sa = a[\"createdAt\"].flatMap { $0 == .null ? nil : $0 }\n let sb = b[\"createdAt\"].flatMap { $0 == .null ? nil : $0 }\n switch (sa, sb) {\n case (.some, nil): return true\n case (nil, .some): return false\n case let (.number(x)?, .number(y)?) where x != y: return x < y\n case let (.string(x)?, .string(y)?) where x != y: return x.unicodeScalars.lexicographicallyPrecedes(y.unicodeScalars)\n default: break\n }\n guard case .string(let ia)? = a[\"id\"], case .string(let ib)? = b[\"id\"] else { return false }\n return ia.unicodeScalars.lexicographicallyPrecedes(ib.unicodeScalars)\n}\n\nfinal class MemoryStore: Store {\n private var tables: [String: [(String, [String: _JV])]] = [:]\n private var minted = 0\n\n func persist(_ op: String, _ entity: String, _ data: any Encodable) -> Answer {\n var rows = tables[entity] ?? []\n defer { tables[entity] = rows }\n let value = _decode(_JV.self, _encode(data))\n if op == \"create\", case .object(var row) = value {\n let id: String\n if case .string(let given)? = row[\"id\"], !given.isEmpty {\n id = given\n } else {\n minted += 1\n id = entity + \"-\" + String(minted)\n }\n row[\"id\"] = .string(id)\n rows.append((id, row))\n return Answer(ok: true, payload: row)\n }\n var key = \"\"\n if case .string(let v) = value { key = v }\n if case .object(let o) = value, case .string(let v)? = o[\"id\"] { key = v }\n guard let pos = rows.firstIndex(where: { $0.0 == key }) else {\n return Answer(ok: false, payload: [\"error\": .string(entity + \" \" + key + \" not found\"), \"code\": \"not-found\"])\n }\n if op == \"delete\" {\n rows.remove(at: pos)\n return Answer(ok: true, payload: [\"id\": .string(key), \"deleted\": true])\n }\n if case .object(let o) = value {\n for (k, v) in o { rows[pos].1[k] = v }\n }\n return Answer(ok: true, payload: rows[pos].1)\n }\n\n func fetch(_ entity: String, _ keep: (([String: _JV]) -> Bool)?) -> Answer {\n var rows = (tables[entity] ?? []).map { $0.1 }.filter { keep?($0) ?? true }\n rows.sort(by: _before)\n return Answer(ok: true, payload: [\"data\": .array(rows.map { .object($0) }), \"totalCount\": .number(Double(rows.count))])\n }\n}"],"router":["typealias _Guard = (Data) -> Bool\ntypealias _Map = (Data) -> Data\n\nstruct _Entry {\n let key: String\n let trait: AnyObject\n let state: () -> String\n let entity: () -> Data\n let count: () -> Int\n let from: (Int) -> [(String, Data, Bool)]\n}\n\nstruct _Item {\n let target: String\n let event: String\n let payload: Data\n let source: Data\n let guard_: _Guard?\n let fans: Bool\n let completion: Bool\n}\n\nfunc _encode(_ value: any Encodable) -> Data {\n let encoder = JSONEncoder()\n encoder.outputFormatting = [.sortedKeys]\n return (try? encoder.encode(value)) ?? Data(\"{}\".utf8)\n}\n\nfunc _decode<T: Decodable>(_ type: T.Type, _ data: Data) -> T {\n do {\n return try JSONDecoder().decode(type, from: data)\n } catch {\n fatalError(\"a payload of the declared shape: \\(error)\")\n }\n}\n\nclass _Router {\n var entries: [_Entry] = []\n var handles: [String: [String: [String]]] = [:]\n var rows: [(source: String, event: String, target: String, trigger: String, guard_: _Guard?, mapping: _Map?)] = []\n var log: [(trait: String, event: String, payload: Data)] = []\n\n func add(_ key: String, _ trait: AnyObject, state: @escaping () -> String, entity: @escaping () -> Data, count: @escaping () -> Int, from: @escaping (Int) -> [(String, Data, Bool)]) {\n entries.append(_Entry(key: key, trait: trait, state: state, entity: entity, count: count, from: from))\n }\n\n func row(_ source: String, _ event: String, _ target: String, _ trigger: String, _ guard_: _Guard?, _ mapping: _Map?) {\n rows.append((source: source, event: event, target: target, trigger: trigger, guard_: guard_, mapping: mapping))\n }\n\n func entry(_ key: String) -> _Entry? {\n entries.first { $0.key == key }\n }\n\n func trait(_ key: String) -> AnyObject? {\n entry(key)?.trait\n }\n\n func deliver(_ target: String, _ event: String, _ payload: Data) {}\n\n func targets(_ source: String, _ event: String, _ payload: Data, _ completion: Bool) -> [_Item] {\n rows.filter { $0.source == source && $0.event == event }.map {\n _Item(target: $0.target, event: $0.trigger, payload: $0.mapping.map { m in m(payload) } ?? payload, source: payload, guard_: $0.guard_, fans: false, completion: completion)\n }\n }\n\n func dispatch(_ trait: String, _ event: String, _ payload: Data) {\n var queue = [_Item(target: trait, event: event, payload: payload, source: payload, guard_: nil, fans: true, completion: false)]\n var seen = Set<String>()\n var steps = 0\n while !queue.isEmpty {\n let item = queue.removeFirst()\n guard let e = entry(item.target) else { continue }\n let key = [item.target, item.event, e.state(), String(decoding: item.payload, as: UTF8.self), String(decoding: e.entity(), as: UTF8.self)].joined(separator: \"\\u{1f}\")\n if !item.completion && seen.contains(key) { continue }\n if let g = item.guard_, !g(item.source) { continue }\n if steps >= 2000 { break }\n steps += 1\n seen.insert(key)\n let n = e.count()\n deliver(item.target, item.event, item.payload)\n var fanned = item.fans ? targets(item.target, item.event, item.payload, false) : []\n var own: [_Item] = []\n let newState = e.state()\n for (ev, out, completion) in e.from(n) {\n log.append((trait: item.target, event: ev, payload: out))\n if handles[item.target]?[newState]?.contains(ev) ?? false {\n own.append(_Item(target: item.target, event: ev, payload: out, source: out, guard_: nil, fans: false, completion: completion))\n }\n fanned += targets(item.target, ev, out, completion)\n }\n queue.insert(contentsOf: own, at: 0)\n queue += fanned\n }\n }\n}"],"/":["fileprivate func _div(_ a: Double, _ b: Double) -> Double? { b == 0 ? nil : a / b }"],"%":["fileprivate func _mod(_ a: Double, _ b: Double) -> Double? { b == 0 ? nil : fmod(a, b) }"],"math/mod":["fileprivate func _mod(_ a: Double, _ b: Double) -> Double? { b == 0 ? nil : fmod(a, b) }"],"=":["fileprivate protocol _Eq { func _same(_ o: Self) -> Bool }\nextension String: _Eq { fileprivate func _same(_ o: String) -> Bool { unicodeScalars.elementsEqual(o.unicodeScalars) } }\nextension Double: _Eq { fileprivate func _same(_ o: Double) -> Bool { self == o } }\nextension Bool: _Eq { fileprivate func _same(_ o: Bool) -> Bool { self == o } }\nextension Array: _Eq where Element: _Eq { fileprivate func _same(_ o: [Element]) -> Bool { count == o.count && zip(self, o).allSatisfy { $0._same($1) } } }\nextension Optional: _Eq where Wrapped: _Eq {\n fileprivate func _same(_ o: Wrapped?) -> Bool {\n switch (self, o) {\n case (nil, nil): return true\n case let (a?, b?): return a._same(b)\n default: return false\n }\n }\n}\nextension Dictionary: _Eq where Value: _Eq { fileprivate func _same(_ o: [Key: Value]) -> Bool { count == o.count && allSatisfy { kv in o[kv.key].map { kv.value._same($0) } ?? false } } }\nfileprivate func _eq<T: _Eq>(_ a: T, _ b: T) -> Bool { a._same(b) }"],"==":["fileprivate protocol _Eq { func _same(_ o: Self) -> Bool }\nextension String: _Eq { fileprivate func _same(_ o: String) -> Bool { unicodeScalars.elementsEqual(o.unicodeScalars) } }\nextension Double: _Eq { fileprivate func _same(_ o: Double) -> Bool { self == o } }\nextension Bool: _Eq { fileprivate func _same(_ o: Bool) -> Bool { self == o } }\nextension Array: _Eq where Element: _Eq { fileprivate func _same(_ o: [Element]) -> Bool { count == o.count && zip(self, o).allSatisfy { $0._same($1) } } }\nextension Optional: _Eq where Wrapped: _Eq {\n fileprivate func _same(_ o: Wrapped?) -> Bool {\n switch (self, o) {\n case (nil, nil): return true\n case let (a?, b?): return a._same(b)\n default: return false\n }\n }\n}\nextension Dictionary: _Eq where Value: _Eq { fileprivate func _same(_ o: [Key: Value]) -> Bool { count == o.count && allSatisfy { kv in o[kv.key].map { kv.value._same($0) } ?? false } } }\nfileprivate func _eq<T: _Eq>(_ a: T, _ b: T) -> Bool { a._same(b) }"],"!=":["fileprivate protocol _Eq { func _same(_ o: Self) -> Bool }\nextension String: _Eq { fileprivate func _same(_ o: String) -> Bool { unicodeScalars.elementsEqual(o.unicodeScalars) } }\nextension Double: _Eq { fileprivate func _same(_ o: Double) -> Bool { self == o } }\nextension Bool: _Eq { fileprivate func _same(_ o: Bool) -> Bool { self == o } }\nextension Array: _Eq where Element: _Eq { fileprivate func _same(_ o: [Element]) -> Bool { count == o.count && zip(self, o).allSatisfy { $0._same($1) } } }\nextension Optional: _Eq where Wrapped: _Eq {\n fileprivate func _same(_ o: Wrapped?) -> Bool {\n switch (self, o) {\n case (nil, nil): return true\n case let (a?, b?): return a._same(b)\n default: return false\n }\n }\n}\nextension Dictionary: _Eq where Value: _Eq { fileprivate func _same(_ o: [Key: Value]) -> Bool { count == o.count && allSatisfy { kv in o[kv.key].map { kv.value._same($0) } ?? false } } }\nfileprivate func _eq<T: _Eq>(_ a: T, _ b: T) -> Bool { a._same(b) }"],"str/len":[],"str/upper":[],"str/lower":[],"str/trim":[],"str/trimStart":["fileprivate func _str<S: Sequence>(_ a: S) -> String where S.Element == Unicode.Scalar {\n var v = String.UnicodeScalarView()\n v.append(contentsOf: a)\n return String(v)\n}","fileprivate func _trim_start(_ s: String) -> String { _str(s.unicodeScalars.drop(while: { CharacterSet.whitespacesAndNewlines.contains($0) })) }"],"str/trimEnd":["fileprivate func _str<S: Sequence>(_ a: S) -> String where S.Element == Unicode.Scalar {\n var v = String.UnicodeScalarView()\n v.append(contentsOf: a)\n return String(v)\n}","fileprivate func _trim_end(_ s: String) -> String { _str(s.unicodeScalars.reversed().drop(while: { CharacterSet.whitespacesAndNewlines.contains($0) }).reversed()) }"],"str/capitalize":["fileprivate func _capitalize(_ s: String) -> String {\n guard let f = s.unicodeScalars.first else { return s }\n return String(f).uppercased() + String(s.unicodeScalars.dropFirst()).lowercased()\n}"],"str/split":["fileprivate func _str<S: Sequence>(_ a: S) -> String where S.Element == Unicode.Scalar {\n var v = String.UnicodeScalarView()\n v.append(contentsOf: a)\n return String(v)\n}","fileprivate func _find(_ s: [Unicode.Scalar], _ d: [Unicode.Scalar], _ from: Int) -> Int? {\n var i = from\n while i + d.count <= s.count {\n if s[i..<i + d.count].elementsEqual(d) { return i }\n i += 1\n }\n return nil\n}","fileprivate func _split(_ s: String, _ d: String) -> [String] {\n let sc = Array(s.unicodeScalars), dc = Array(d.unicodeScalars)\n if dc.isEmpty { return sc.map { String($0) } }\n var out: [String] = []\n var at = 0\n while let i = _find(sc, dc, at) {\n out.append(_str(sc[at..<i]))\n at = i + dc.count\n }\n out.append(_str(sc[at...]))\n return out\n}"],"str/join":["fileprivate func _num_text(_ x: Double) -> String {\n if x.isNaN { return \"NaN\" }\n if x.isInfinite { return x < 0 ? \"-Infinity\" : \"Infinity\" }\n if x == 0 { return \"0\" }\n var d = abs(x).description\n var e = 0\n if let i = d.firstIndex(where: { $0 == \"e\" || $0 == \"E\" }) {\n e = Int(d[d.index(after: i)...]) ?? 0\n d = String(d[..<i])\n }\n var digits = d\n var point = d.count\n if let i = d.firstIndex(of: \".\") {\n point = d.distance(from: d.startIndex, to: i)\n digits = d.replacingOccurrences(of: \".\", with: \"\")\n }\n var n = point + e\n while digits.hasPrefix(\"0\") && digits.count > 1 { digits.removeFirst(); n -= 1 }\n while digits.hasSuffix(\"0\") && digits.count > 1 { digits.removeLast() }\n let k = digits.count\n var out: String\n if k <= n && n <= 21 {\n out = digits + String(repeating: \"0\", count: n - k)\n } else if 0 < n && n <= 21 {\n out = String(digits.prefix(n)) + \".\" + String(digits.dropFirst(n))\n } else if -6 < n && n <= 0 {\n out = \"0.\" + String(repeating: \"0\", count: -n) + digits\n } else {\n let m = n - 1\n let sign = m < 0 ? \"-\" : \"+\"\n out = String(digits.prefix(1)) + (k > 1 ? \".\" + String(digits.dropFirst()) : \"\") + \"e\" + sign + String(abs(m))\n }\n return x < 0 ? \"-\" + out : out\n}\nfileprivate protocol _Textual { var _text: String { get } }\nextension String: _Textual { fileprivate var _text: String { self } }\nextension Bool: _Textual { fileprivate var _text: String { self ? \"true\" : \"false\" } }\nextension Double: _Textual { fileprivate var _text: String { _num_text(self) } }\nextension Int: _Textual { fileprivate var _text: String { String(self) } }","fileprivate func _join<T: _Textual>(_ a: [T], _ d: String) -> String { a.map { $0._text }.joined(separator: d) }"],"str/concat":["fileprivate func _num_text(_ x: Double) -> String {\n if x.isNaN { return \"NaN\" }\n if x.isInfinite { return x < 0 ? \"-Infinity\" : \"Infinity\" }\n if x == 0 { return \"0\" }\n var d = abs(x).description\n var e = 0\n if let i = d.firstIndex(where: { $0 == \"e\" || $0 == \"E\" }) {\n e = Int(d[d.index(after: i)...]) ?? 0\n d = String(d[..<i])\n }\n var digits = d\n var point = d.count\n if let i = d.firstIndex(of: \".\") {\n point = d.distance(from: d.startIndex, to: i)\n digits = d.replacingOccurrences(of: \".\", with: \"\")\n }\n var n = point + e\n while digits.hasPrefix(\"0\") && digits.count > 1 { digits.removeFirst(); n -= 1 }\n while digits.hasSuffix(\"0\") && digits.count > 1 { digits.removeLast() }\n let k = digits.count\n var out: String\n if k <= n && n <= 21 {\n out = digits + String(repeating: \"0\", count: n - k)\n } else if 0 < n && n <= 21 {\n out = String(digits.prefix(n)) + \".\" + String(digits.dropFirst(n))\n } else if -6 < n && n <= 0 {\n out = \"0.\" + String(repeating: \"0\", count: -n) + digits\n } else {\n let m = n - 1\n let sign = m < 0 ? \"-\" : \"+\"\n out = String(digits.prefix(1)) + (k > 1 ? \".\" + String(digits.dropFirst()) : \"\") + \"e\" + sign + String(abs(m))\n }\n return x < 0 ? \"-\" + out : out\n}\nfileprivate protocol _Textual { var _text: String { get } }\nextension String: _Textual { fileprivate var _text: String { self } }\nextension Bool: _Textual { fileprivate var _text: String { self ? \"true\" : \"false\" } }\nextension Double: _Textual { fileprivate var _text: String { _num_text(self) } }\nextension Int: _Textual { fileprivate var _text: String { String(self) } }","fileprivate func _concat(_ parts: any _Textual...) -> String { parts.map { $0._text }.joined() }"],"str/includes":["fileprivate func _find(_ s: [Unicode.Scalar], _ d: [Unicode.Scalar], _ from: Int) -> Int? {\n var i = from\n while i + d.count <= s.count {\n if s[i..<i + d.count].elementsEqual(d) { return i }\n i += 1\n }\n return nil\n}","fileprivate func _str_includes(_ s: String, _ d: String) -> Bool { _find(Array(s.unicodeScalars), Array(d.unicodeScalars), 0) != nil }"],"str/startsWith":[],"str/endsWith":[],"str/replace":["fileprivate func _replace(_ s: String, _ d: String, _ r: String, _ all: Bool) -> String {\n let sc = Array(s.unicodeScalars), dc = Array(d.unicodeScalars)\n var out = String.UnicodeScalarView()\n var i = 0\n var done = false\n while i <= sc.count {\n if !done, i + dc.count <= sc.count, sc[i..<i + dc.count].elementsEqual(dc) {\n out.append(contentsOf: r.unicodeScalars)\n done = !all\n if dc.isEmpty {\n if i < sc.count { out.append(sc[i]) }\n i += 1\n } else {\n i += dc.count\n }\n } else {\n if i < sc.count { out.append(sc[i]) }\n i += 1\n }\n }\n return String(out)\n}"],"str/replaceAll":["fileprivate func _replace(_ s: String, _ d: String, _ r: String, _ all: Bool) -> String {\n let sc = Array(s.unicodeScalars), dc = Array(d.unicodeScalars)\n var out = String.UnicodeScalarView()\n var i = 0\n var done = false\n while i <= sc.count {\n if !done, i + dc.count <= sc.count, sc[i..<i + dc.count].elementsEqual(dc) {\n out.append(contentsOf: r.unicodeScalars)\n done = !all\n if dc.isEmpty {\n if i < sc.count { out.append(sc[i]) }\n i += 1\n } else {\n i += dc.count\n }\n } else {\n if i < sc.count { out.append(sc[i]) }\n i += 1\n }\n }\n return String(out)\n}"],"str/repeat":["fileprivate func _whole(_ x: Double) -> Int {\n guard x == x.rounded(), abs(x) < 9007199254740992 else { fatalError(\"expected a whole number\") }\n return Int(x)\n}","fileprivate func _count(_ x: Double) -> Int {\n let k = _whole(x)\n guard k >= 0 else { fatalError(\"expected a whole number from 0\") }\n return k\n}","fileprivate func _repeat(_ s: String, _ n: Double) -> String { String(repeating: s, count: _count(n)) }"],"str/reverse":["fileprivate func _str<S: Sequence>(_ a: S) -> String where S.Element == Unicode.Scalar {\n var v = String.UnicodeScalarView()\n v.append(contentsOf: a)\n return String(v)\n}","fileprivate func _reverse_str(_ s: String) -> String { _str(s.unicodeScalars.reversed()) }"],"str/slice":["fileprivate func _str<S: Sequence>(_ a: S) -> String where S.Element == Unicode.Scalar {\n var v = String.UnicodeScalarView()\n v.append(contentsOf: a)\n return String(v)\n}","fileprivate func _whole(_ x: Double) -> Int {\n guard x == x.rounded(), abs(x) < 9007199254740992 else { fatalError(\"expected a whole number\") }\n return Int(x)\n}","fileprivate func _str_slice(_ s: String, _ a: Double, _ b: Double? = nil) -> String {\n let sc = Array(s.unicodeScalars)\n let n = sc.count\n func at(_ i: Int) -> Int { i < 0 ? max(0, n + i) : min(i, n) }\n let lo = at(_whole(a))\n let hi = b.map { at(_whole($0)) } ?? n\n return lo < hi ? _str(sc[lo..<hi]) : \"\"\n}"],"str/padStart":["fileprivate func _whole(_ x: Double) -> Int {\n guard x == x.rounded(), abs(x) < 9007199254740992 else { fatalError(\"expected a whole number\") }\n return Int(x)\n}","fileprivate func _pad_start(_ s: String, _ n: Double, _ p: String = \" \") -> String {\n guard p.unicodeScalars.count == 1 else { fatalError(\"expected a single padding character\") }\n let k = max(0, _whole(n) - s.unicodeScalars.count)\n return String(repeating: p, count: k) + s\n}"],"str/padEnd":["fileprivate func _whole(_ x: Double) -> Int {\n guard x == x.rounded(), abs(x) < 9007199254740992 else { fatalError(\"expected a whole number\") }\n return Int(x)\n}","fileprivate func _pad_end(_ s: String, _ n: Double, _ p: String = \" \") -> String {\n guard p.unicodeScalars.count == 1 else { fatalError(\"expected a single padding character\") }\n let k = max(0, _whole(n) - s.unicodeScalars.count)\n return s + String(repeating: p, count: k)\n}"],"str/truncate":["fileprivate func _str<S: Sequence>(_ a: S) -> String where S.Element == Unicode.Scalar {\n var v = String.UnicodeScalarView()\n v.append(contentsOf: a)\n return String(v)\n}","fileprivate func _whole(_ x: Double) -> Int {\n guard x == x.rounded(), abs(x) < 9007199254740992 else { fatalError(\"expected a whole number\") }\n return Int(x)\n}","fileprivate func _count(_ x: Double) -> Int {\n let k = _whole(x)\n guard k >= 0 else { fatalError(\"expected a whole number from 0\") }\n return k\n}","fileprivate func _truncate(_ s: String, _ n: Double, _ suffix: String = \"...\") -> String {\n let sc = Array(s.unicodeScalars)\n return Double(sc.count) <= n ? s : _str(sc[0..<_count(n)]) + suffix\n}"],"str/to-int":["fileprivate func _to_int(_ s: String) -> Double? { Int64(s).map { Double($0) } }"],"array/len":[],"array/first":[],"array/last":[],"array/nth":["fileprivate func _whole(_ x: Double) -> Int {\n guard x == x.rounded(), abs(x) < 9007199254740992 else { fatalError(\"expected a whole number\") }\n return Int(x)\n}","fileprivate func _count(_ x: Double) -> Int {\n let k = _whole(x)\n guard k >= 0 else { fatalError(\"expected a whole number from 0\") }\n return k\n}","fileprivate func _nth<T>(_ a: [T], _ i: Double) -> T? {\n let k = _count(i)\n return k < a.count ? a[k] : nil\n}"],"array/range":["fileprivate func _range(_ a: Double, _ b: Double? = nil, _ step: Double = 1) -> [Double] {\n let start = b == nil ? 0 : a\n let end = b ?? a\n guard step != 0, step.isFinite else { fatalError(\"range: step must be a non-zero finite number\") }\n var out: [Double] = []\n var x = start\n while step > 0 ? x < end : x > end {\n out.append(x)\n x += step\n }\n return out\n}"],"array/slice":["fileprivate func _whole(_ x: Double) -> Int {\n guard x == x.rounded(), abs(x) < 9007199254740992 else { fatalError(\"expected a whole number\") }\n return Int(x)\n}","fileprivate func _count(_ x: Double) -> Int {\n let k = _whole(x)\n guard k >= 0 else { fatalError(\"expected a whole number from 0\") }\n return k\n}","fileprivate func _slice<T>(_ a: [T], _ s: Double, _ e: Double? = nil) -> [T] {\n let lo = _count(s)\n let hi = min(e.map { _count($0) } ?? a.count, a.count)\n return lo < hi ? Array(a[lo..<hi]) : []\n}"],"array/take":["fileprivate func _whole(_ x: Double) -> Int {\n guard x == x.rounded(), abs(x) < 9007199254740992 else { fatalError(\"expected a whole number\") }\n return Int(x)\n}","fileprivate func _count(_ x: Double) -> Int {\n let k = _whole(x)\n guard k >= 0 else { fatalError(\"expected a whole number from 0\") }\n return k\n}","fileprivate func _take<T>(_ a: [T], _ n: Double) -> [T] { Array(a.prefix(_count(n))) }"],"array/drop":["fileprivate func _whole(_ x: Double) -> Int {\n guard x == x.rounded(), abs(x) < 9007199254740992 else { fatalError(\"expected a whole number\") }\n return Int(x)\n}","fileprivate func _count(_ x: Double) -> Int {\n let k = _whole(x)\n guard k >= 0 else { fatalError(\"expected a whole number from 0\") }\n return k\n}","fileprivate func _drop<T>(_ a: [T], _ n: Double) -> [T] { Array(a.dropFirst(_count(n))) }"],"array/takeLast":["fileprivate func _whole(_ x: Double) -> Int {\n guard x == x.rounded(), abs(x) < 9007199254740992 else { fatalError(\"expected a whole number\") }\n return Int(x)\n}","fileprivate func _count(_ x: Double) -> Int {\n let k = _whole(x)\n guard k >= 0 else { fatalError(\"expected a whole number from 0\") }\n return k\n}","fileprivate func _take_last<T>(_ a: [T], _ n: Double) -> [T] { Array(a.suffix(_count(n))) }"],"array/dropLast":["fileprivate func _whole(_ x: Double) -> Int {\n guard x == x.rounded(), abs(x) < 9007199254740992 else { fatalError(\"expected a whole number\") }\n return Int(x)\n}","fileprivate func _count(_ x: Double) -> Int {\n let k = _whole(x)\n guard k >= 0 else { fatalError(\"expected a whole number from 0\") }\n return k\n}","fileprivate func _drop_last<T>(_ a: [T], _ n: Double) -> [T] { Array(a.dropLast(_count(n))) }"],"array/append":[],"array/prepend":[],"array/includes":["fileprivate protocol _Eq { func _same(_ o: Self) -> Bool }\nextension String: _Eq { fileprivate func _same(_ o: String) -> Bool { unicodeScalars.elementsEqual(o.unicodeScalars) } }\nextension Double: _Eq { fileprivate func _same(_ o: Double) -> Bool { self == o } }\nextension Bool: _Eq { fileprivate func _same(_ o: Bool) -> Bool { self == o } }\nextension Array: _Eq where Element: _Eq { fileprivate func _same(_ o: [Element]) -> Bool { count == o.count && zip(self, o).allSatisfy { $0._same($1) } } }\nextension Optional: _Eq where Wrapped: _Eq {\n fileprivate func _same(_ o: Wrapped?) -> Bool {\n switch (self, o) {\n case (nil, nil): return true\n case let (a?, b?): return a._same(b)\n default: return false\n }\n }\n}\nextension Dictionary: _Eq where Value: _Eq { fileprivate func _same(_ o: [Key: Value]) -> Bool { count == o.count && allSatisfy { kv in o[kv.key].map { kv.value._same($0) } ?? false } } }\nfileprivate func _eq<T: _Eq>(_ a: T, _ b: T) -> Bool { a._same(b) }","fileprivate func _includes<T: _Eq>(_ a: [T], _ x: T) -> Bool { a.contains { $0._same(x) } }"],"array/indexOf":["fileprivate protocol _Eq { func _same(_ o: Self) -> Bool }\nextension String: _Eq { fileprivate func _same(_ o: String) -> Bool { unicodeScalars.elementsEqual(o.unicodeScalars) } }\nextension Double: _Eq { fileprivate func _same(_ o: Double) -> Bool { self == o } }\nextension Bool: _Eq { fileprivate func _same(_ o: Bool) -> Bool { self == o } }\nextension Array: _Eq where Element: _Eq { fileprivate func _same(_ o: [Element]) -> Bool { count == o.count && zip(self, o).allSatisfy { $0._same($1) } } }\nextension Optional: _Eq where Wrapped: _Eq {\n fileprivate func _same(_ o: Wrapped?) -> Bool {\n switch (self, o) {\n case (nil, nil): return true\n case let (a?, b?): return a._same(b)\n default: return false\n }\n }\n}\nextension Dictionary: _Eq where Value: _Eq { fileprivate func _same(_ o: [Key: Value]) -> Bool { count == o.count && allSatisfy { kv in o[kv.key].map { kv.value._same($0) } ?? false } } }\nfileprivate func _eq<T: _Eq>(_ a: T, _ b: T) -> Bool { a._same(b) }","fileprivate func _index_of<T: _Eq>(_ a: [T], _ x: T) -> Double { Double(a.firstIndex { $0._same(x) } ?? -1) }"],"array/reverse":[],"array/unique":["fileprivate protocol _Eq { func _same(_ o: Self) -> Bool }\nextension String: _Eq { fileprivate func _same(_ o: String) -> Bool { unicodeScalars.elementsEqual(o.unicodeScalars) } }\nextension Double: _Eq { fileprivate func _same(_ o: Double) -> Bool { self == o } }\nextension Bool: _Eq { fileprivate func _same(_ o: Bool) -> Bool { self == o } }\nextension Array: _Eq where Element: _Eq { fileprivate func _same(_ o: [Element]) -> Bool { count == o.count && zip(self, o).allSatisfy { $0._same($1) } } }\nextension Optional: _Eq where Wrapped: _Eq {\n fileprivate func _same(_ o: Wrapped?) -> Bool {\n switch (self, o) {\n case (nil, nil): return true\n case let (a?, b?): return a._same(b)\n default: return false\n }\n }\n}\nextension Dictionary: _Eq where Value: _Eq { fileprivate func _same(_ o: [Key: Value]) -> Bool { count == o.count && allSatisfy { kv in o[kv.key].map { kv.value._same($0) } ?? false } } }\nfileprivate func _eq<T: _Eq>(_ a: T, _ b: T) -> Bool { a._same(b) }","fileprivate func _unique<T: _Eq>(_ a: [T]) -> [T] {\n var out: [T] = []\n for x in a where !out.contains(where: { $0._same(x) }) { out.append(x) }\n return out\n}"],"array/flatten":[],"array/zip":[],"array/reduce":[],"list":[],"object/get":["fileprivate func _get<T>(_ o: [String: T], _ p: String) -> T? {\n guard !p.unicodeScalars.contains(\".\") else { fatalError(\"object/get: a dotted path is not supported on a typed map\") }\n return o[p]\n}"],"object/has":["fileprivate func _has<T>(_ o: [String: T], _ p: String) -> Bool {\n guard !p.unicodeScalars.contains(\".\") else { fatalError(\"object/has: a dotted path is not supported on a typed map\") }\n return o.keys.contains(p)\n}"],"object/set":["fileprivate func _set<T>(_ o: [String: T], _ p: String, _ v: T) -> [String: T] {\n guard !p.unicodeScalars.contains(\".\") else { fatalError(\"object/set: a dotted path is not supported on a typed map\") }\n var out = o\n out[p] = v\n return out\n}"],"object/merge":[],"object/pick":["fileprivate func _pick<T>(_ o: [String: T], _ ks: [String]) -> [String: T] { o.filter { ks.contains($0.key) } }"],"object/omit":["fileprivate func _omit<T>(_ o: [String: T], _ ks: [String]) -> [String: T] { o.filter { !ks.contains($0.key) } }"],"math/abs":[],"math/max":[],"math/min":[],"math/round":["fileprivate func _round(_ x: Double, _ d: Double = 0) -> Double {\n let m = pow(10, d)\n return copysign(floor(abs(x) * m + 0.5) / m, x)\n}"],"math/sqrt":["fileprivate func _sqrt(_ x: Double) -> Double? { x < 0 ? nil : x.squareRoot() }"],"math/ln":["fileprivate func _ln(_ x: Double) -> Double? { x <= 0 ? nil : log(x) }"],"math/log10":["fileprivate func _log10(_ x: Double) -> Double? { x <= 0 ? nil : log10(x) }"],"math/pow":["fileprivate func _pow(_ a: Double, _ b: Double) -> Double? {\n let r = pow(a, b)\n return r.isNaN || r.isInfinite ? nil : r\n}"],"math/sign":["fileprivate func _sign(_ x: Double) -> Double { x > 0 ? 1 : (x < 0 ? -1 : 0) }"],"math/clamp":[],"default":[],"as":[],"validate/required":["fileprivate func _required(_ v: String?) -> Bool { v != nil && v != \"\" }\nfileprivate func _required<T>(_ v: T?) -> Bool { v != nil }"],"validate/length":["fileprivate func _size(_ s: String) -> Double { Double(s.unicodeScalars.count) }\nfileprivate func _size<T>(_ a: [T]) -> Double { Double(a.count) }"],"validate/minLength":["fileprivate func _size(_ s: String) -> Double { Double(s.unicodeScalars.count) }\nfileprivate func _size<T>(_ a: [T]) -> Double { Double(a.count) }"],"validate/maxLength":["fileprivate func _size(_ s: String) -> Double { Double(s.unicodeScalars.count) }\nfileprivate func _size<T>(_ a: [T]) -> Double { Double(a.count) }"],"validate/min":[],"validate/max":[],"validate/range":[],"validate/oneOf":["fileprivate protocol _Eq { func _same(_ o: Self) -> Bool }\nextension String: _Eq { fileprivate func _same(_ o: String) -> Bool { unicodeScalars.elementsEqual(o.unicodeScalars) } }\nextension Double: _Eq { fileprivate func _same(_ o: Double) -> Bool { self == o } }\nextension Bool: _Eq { fileprivate func _same(_ o: Bool) -> Bool { self == o } }\nextension Array: _Eq where Element: _Eq { fileprivate func _same(_ o: [Element]) -> Bool { count == o.count && zip(self, o).allSatisfy { $0._same($1) } } }\nextension Optional: _Eq where Wrapped: _Eq {\n fileprivate func _same(_ o: Wrapped?) -> Bool {\n switch (self, o) {\n case (nil, nil): return true\n case let (a?, b?): return a._same(b)\n default: return false\n }\n }\n}\nextension Dictionary: _Eq where Value: _Eq { fileprivate func _same(_ o: [Key: Value]) -> Bool { count == o.count && allSatisfy { kv in o[kv.key].map { kv.value._same($0) } ?? false } } }\nfileprivate func _eq<T: _Eq>(_ a: T, _ b: T) -> Bool { a._same(b) }","fileprivate func _includes<T: _Eq>(_ a: [T], _ x: T) -> Bool { a.contains { $0._same(x) } }"],"validate/equals":["fileprivate protocol _Eq { func _same(_ o: Self) -> Bool }\nextension String: _Eq { fileprivate func _same(_ o: String) -> Bool { unicodeScalars.elementsEqual(o.unicodeScalars) } }\nextension Double: _Eq { fileprivate func _same(_ o: Double) -> Bool { self == o } }\nextension Bool: _Eq { fileprivate func _same(_ o: Bool) -> Bool { self == o } }\nextension Array: _Eq where Element: _Eq { fileprivate func _same(_ o: [Element]) -> Bool { count == o.count && zip(self, o).allSatisfy { $0._same($1) } } }\nextension Optional: _Eq where Wrapped: _Eq {\n fileprivate func _same(_ o: Wrapped?) -> Bool {\n switch (self, o) {\n case (nil, nil): return true\n case let (a?, b?): return a._same(b)\n default: return false\n }\n }\n}\nextension Dictionary: _Eq where Value: _Eq { fileprivate func _same(_ o: [Key: Value]) -> Bool { count == o.count && allSatisfy { kv in o[kv.key].map { kv.value._same($0) } ?? false } } }\nfileprivate func _eq<T: _Eq>(_ a: T, _ b: T) -> Bool { a._same(b) }"],"-":[],"not":[],"array/sum":[],"array/count":[],"array/sort":[],"array/concat":[],"array/avg":["fileprivate func _avg(_ a: [Double]) -> Double? { a.isEmpty ? nil : a.reduce(0, +) / Double(a.count) }"],"array/max":[],"array/min":[],"unsupported":["fileprivate func _unsupported<T>(_ name: String) -> T { fatalError(\"no native template for operator \" + name) }"]},"wired":true},"helperGap":{"type":"unknown","default":"\n","wired":true},"portEffects":{"type":"unknown","default":["list","persist","fetch","fetch-stream","notify","navigate","navigate-back","call-service","cancel-call","send-server","spawn","despawn","log"],"wired":true},"portCall":{"type":"unknown","default":"self.ports[\"{{name}}\"]?([{{*}}])","wired":true},"portCase":{"type":"unknown","default":"lower","wired":true},"portWarn":{"type":"unknown","default":"{{op}} is called on the ports object","wired":true},"attributeRoots":{"type":"unknown","default":{"entity":"self.entity","state":"self.state","user":"self.user","now":"self.now","locale":"self.locale","trait":"self.trait","event":"self.event","payload":"payload","config":"self.config"},"wired":true},"itemRoots":{"type":"unknown","default":{},"wired":true},"attrAccess":{"type":"unknown","default":".{{name}}","wired":true},"itemAccess":{"type":"unknown","default":"[{{key}}]","wired":true},"indexAccess":{"type":"unknown","default":"[{{0}}]","wired":true},"localAccess":{"type":"unknown","default":"item","wired":true},"entityReadDefault":{"type":"unknown","default":"({{read}} ?? {{default}})","wired":true},"typeNames":{"type":"unknown","default":{"string":"String","string?":"String?","[string]":"[String]","[string]?":"[String]?","[string?]":"[String?]","[[string]]":"[[String]]","[[string]]?":"[[String]]?","Map string string":"[String: String]","Map string string?":"[String: String]?","Map string [string]":"[String: [String]]","[Map string string]":"[[String: String]]","number":"Double","number?":"Double?","[number]":"[Double]","[number]?":"[Double]?","[number?]":"[Double?]","[[number]]":"[[Double]]","[[number]]?":"[[Double]]?","Map string number":"[String: Double]","Map string number?":"[String: Double]?","Map string [number]":"[String: [Double]]","[Map string number]":"[[String: Double]]","int":"Double","int?":"Double?","[int]":"[Double]","[int]?":"[Double]?","[int?]":"[Double?]","[[int]]":"[[Double]]","[[int]]?":"[[Double]]?","Map string int":"[String: Double]","Map string int?":"[String: Double]?","Map string [int]":"[String: [Double]]","[Map string int]":"[[String: Double]]","boolean":"Bool","boolean?":"Bool?","[boolean]":"[Bool]","[boolean]?":"[Bool]?","[boolean?]":"[Bool?]","[[boolean]]":"[[Bool]]","[[boolean]]?":"[[Bool]]?","Map string boolean":"[String: Bool]","Map string boolean?":"[String: Bool]?","Map string [boolean]":"[String: [Bool]]","[Map string boolean]":"[[String: Bool]]"},"wired":true},"typeUnknown":{"type":"unknown","default":"Any","wired":true},"nullLit":{"type":"unknown","default":"nil","wired":true},"trueLit":{"type":"unknown","default":"true","wired":true},"falseLit":{"type":"unknown","default":"false","wired":true},"stringForm":{"type":"unknown","default":"{{json}}","wired":true},"listForm":{"type":"unknown","default":"[{{*}}]","wired":true},"mapOpen":{"type":"unknown","default":"[","wired":true},"mapClose":{"type":"unknown","default":"]","wired":true},"mapPair":{"type":"unknown","default":"{{key}}: {{value}}","wired":true},"mapSep":{"type":"unknown","default":", ","wired":true},"mapEmpty":{"type":"unknown","default":"[:]","wired":true},"letStmt":{"type":"unknown","default":"let {{name}}: {{type}} = {{value}}","wired":true},"letExpr":{"type":"unknown","default":"({ ({{name}}: {{type}}) in {{body}} })({{value}})","wired":true},"condExpr":{"type":"unknown","default":"({{cond}} ? {{then}} : {{else}})","wired":true},"ifOpen":{"type":"unknown","default":"if {{cond}} {","wired":true},"elseOpen":{"type":"unknown","default":"} else {","wired":true},"blockClose":{"type":"unknown","default":"}","wired":true},"emptyBody":{"type":"unknown","default":"","wired":true},"setStyle":{"type":"unknown","default":"assign","wired":true},"setAssign":{"type":"unknown","default":"{{target}} = {{value}}","wired":true},"emitForm":{"type":"unknown","default":"self.emit({{event}}, {{payload}})","wired":true},"voidPayload":{"type":"unknown","default":"[String: String]()","wired":true},"recordForm":{"type":"unknown","default":"{{type}}({{fields}})","wired":true},"recordField":{"type":"unknown","default":"{{name}}: {{value}}","wired":true},"unionArmForm":{"type":"unknown","default":"{{union}}.{{arm}}({{inner}})","wired":true},"unionArmCase":{"type":"unknown","default":"lower-camel","wired":true},"programOpen":{"type":"unknown","default":["final class Program: _Router {","{{i}}init({{entities}}{{store}}) {","{{i}}{{i}}super.init()"],"wired":true},"programEntity":{"type":"unknown","default":"_ e{{n}}: {{entity}}","wired":true},"programEntitySep":{"type":"unknown","default":", ","wired":true},"programTrait":{"type":"unknown","default":"{{i}}{{i}}let t{{n}} = {{class}}(entity: e{{n}}); add({{key}}, t{{n}}, state: { t{{n}}.state }, entity: { _encode(t{{n}}.entity) }, count: { t{{n}}.emitted.count }, from: { n in t{{n}}.emitted[n...].map { ($0.event, _encode($0.payload), false) } })","wired":true},"programHandles":{"type":"unknown","default":"{{i}}{{i}}handles[{{key}}] = {{table}}","wired":true},"programRow":{"type":"unknown","default":"{{i}}{{i}}row({{source}}, {{event}}, {{target}}, {{trigger}}, {{guard}}, {{map}})","wired":true},"deliverOpen":{"type":"unknown","default":["{{i}}}","","{{i}}override func deliver(_ target: String, _ event: String, _ payload: Data) {"],"wired":true},"deliverCase":{"type":"unknown","default":"{{i}}{{i}}if target == {{target}} && event == {{event}}, let t = trait(target) as? {{class}} { t.{{method}}({{arg}}); return }","wired":true},"deliverCasePlain":{"type":"unknown","default":"{{i}}{{i}}if target == {{target}} && event == {{event}}, let t = trait(target) as? {{class}} { t.{{method}}(); return }","wired":true},"deliverClose":{"type":"unknown","default":["{{i}}}"],"wired":true},"programClose":{"type":"unknown","default":["}"],"wired":true},"payloadDecode":{"type":"unknown","default":"_decode({{type}}.self, {{value}})","wired":true},"guardForm":{"type":"unknown","default":["","func {{name}}(_ payload_json: Data) -> Bool {","{{i}}let payload = {{decode}}","{{i}}return {{expr}}","}"],"wired":true},"mapForm":{"type":"unknown","default":["","func {{name}}(_ payload_json: Data) -> Data {","{{i}}let payload = {{decode}}","{{i}}return _encode({{expr}})","}"],"wired":true},"guardName":{"type":"unknown","default":"_guard{{n}}","wired":true},"mapName":{"type":"unknown","default":"_map{{n}}","wired":true},"enumForm":{"type":"unknown","default":"{{enum}}.{{member}}","wired":true},"enumMemberCase":{"type":"unknown","default":"split-camel","wired":true},"payloadType":{"type":"unknown","default":"{{trait}}{{event}}Payload","wired":true},"configType":{"type":"unknown","default":"{{trait}}Config","wired":true},"payloadCtor":{"type":"unknown","default":"{{type}}({{fields}})","wired":true},"payloadField":{"type":"unknown","default":"{{name}}: {{value}}","wired":true},"payloadSep":{"type":"unknown","default":", ","wired":true},"payloadFieldOrder":{"type":"unknown","default":"sorted","wired":true},"commentForm":{"type":"unknown","default":"// {{text}}","wired":true},"indent":{"type":"unknown","default":" ","wired":true},"terminator":{"type":"unknown","default":"","wired":true},"classCase":{"type":"unknown","default":"keep","wired":true},"fieldCase":{"type":"unknown","default":"keep","wired":true},"localCase":{"type":"unknown","default":"keep","wired":true},"methodCase":{"type":"unknown","default":"pascal","wired":true},"methodName":{"type":"unknown","default":"on{{event}}","wired":true},"modelImports":{"type":"unknown","default":{"entity":"import Foundation","payload":""},"wired":true},"modelImportEach":{"type":"unknown","default":false,"wired":true},"modelImportSep":{"type":"unknown","default":", ","wired":true},"entityNames":{"type":"unknown","default":{"Any":"AnyEntity","AnyCodable":"AnyCodableEntity","Array":"ArrayEntity","Binding":"BindingEntity","Bool":"BoolEntity","Button":"ButtonEntity","Calendar":"CalendarEntity","Character":"CharacterEntity","Color":"ColorEntity","Data":"DataEntity","Date":"DateEntity","Dictionary":"DictionaryEntity","Double":"DoubleEntity","Environment":"EnvironmentEntity","Error":"ErrorEntity","Float":"FloatEntity","Font":"FontEntity","Form":"FormEntity","Group":"GroupEntity","Image":"ImageEntity","Int":"IntEntity","JSONDecoder":"JSONDecoderEntity","JSONEncoder":"JSONEncoderEntity","Label":"LabelEntity","Link":"LinkEntity","List":"ListEntity","Locale":"LocaleEntity","Menu":"MenuEntity","Never":"NeverEntity","Notification":"NotificationEntity","Optional":"OptionalEntity","Path":"PathEntity","Picker":"PickerEntity","Range":"RangeEntity","Result":"ResultEntity","Section":"SectionEntity","Set":"SetEntity","Shape":"ShapeEntity","Slider":"SliderEntity","State":"StateEntity","Stepper":"StepperEntity","String":"StringEntity","Task":"TaskEntity","Text":"TextEntity","Timer":"TimerEntity","Toggle":"ToggleEntity","URL":"URLEntity","UUID":"UUIDEntity","View":"ViewEntity","Void":"VoidEntity"},"wired":true},"sectionGap":{"type":"unknown","default":"\n\n\n","wired":true},"classOpen":{"type":"unknown","default":"final class {{class}} {","wired":true},"classClose":{"type":"unknown","default":"}","wired":true},"classEmpty":{"type":"unknown","default":"","wired":true},"constructor":{"type":"unknown","default":["{{i}}var state: String","{{i}}var entity: {{entity}}","{{i}}var ports: [String: ([Any]) -> Void]","{{i}}var config = {{configType}}()","{{i}}private(set) var emitted: [(event: String, payload: any Encodable)] = []","{{withStore}}{{i}}var store: Store? = nil","{{withStore}}{{i}}var completed = Set<Int>()","","{{i}}init(entity: {{entity}}, ports: [String: ([Any]) -> Void] = [:]) {","{{i}}{{i}}self.state = {{initial}}","{{i}}{{i}}self.entity = entity","{{i}}{{i}}self.ports = ports","{{i}}}"],"wired":true},"emitMethod":{"type":"unknown","default":["{{i}}func emit(_ event: String, _ payload: any Encodable) {","{{i}}{{i}}emitted.append((event: event, payload: payload))","{{i}}}"],"wired":true},"completeMethod":{"type":"unknown","default":["","{{i}}func complete(_ answer: Answer, _ success: String?, _ failure: String?) {","{{i}}{{i}}guard let route = answer.ok ? success : failure else { return }","{{i}}{{i}}completed.insert(emitted.count)","{{i}}{{i}}emitted.append((event: route, payload: answer.payload))","{{i}}}","","{{i}}func useStore() -> Store {","{{i}}{{i}}guard let store else { fatalError(\"no store\") }","{{i}}{{i}}return store","{{i}}}"],"wired":true},"routedEffects":{"type":"unknown","default":{"persist":"self.complete(self.useStore().persist({{0}}, {{1}}, {{2}}), {{success}}, {{failure}})","fetch":"self.complete(self.useStore().fetch({{entity}}, {{filter}}), {{success}}, {{failure}})"},"wired":true},"fetchAll":{"type":"unknown","default":"nil","wired":true},"programStoreParam":{"type":"unknown","default":", store: Store","wired":true},"programTraitStore":{"type":"unknown","default":"{{i}}{{i}}let t{{n}} = {{class}}(entity: e{{n}}); t{{n}}.store = store; add({{key}}, t{{n}}, state: { t{{n}}.state }, entity: { _encode(t{{n}}.entity) }, count: { t{{n}}.emitted.count }, from: { n in t{{n}}.emitted[n...].enumerated().map { ($0.element.event, _encode($0.element.payload), t{{n}}.completed.contains(n + $0.offset)) } })","wired":true},"methodOpen":{"type":"unknown","default":"{{i}}func {{method}}(_ payload: {{payloadType}}) {","wired":true},"methodOpenPlain":{"type":"unknown","default":"{{i}}func {{method}}() {","wired":true},"methodClose":{"type":"unknown","default":"{{i}}}","wired":true},"branchFirst":{"type":"unknown","default":"{{i}}{{i}}if {{test}} {","wired":true},"branchNext":{"type":"unknown","default":"{{i}}{{i}}} else if {{test}} {","wired":true},"branchClose":{"type":"unknown","default":"{{i}}{{i}}}","wired":true},"branchTest":{"type":"unknown","default":"{{stateTest}} && {{guard}}","wired":true},"branchTestPlain":{"type":"unknown","default":"{{stateTest}}","wired":true},"stateTest":{"type":"unknown","default":"self.state == {{state}}","wired":true},"stateAssign":{"type":"unknown","default":"self.state = {{state}}","wired":true},"bodyPrefix":{"type":"unknown","default":"{{i}}{{i}}{{i}}","wired":true},"renderModels":{"type":"unknown","default":false,"wired":true},"modelAnnotation":{"type":"unknown","default":"","wired":true},"modelClassOpen":{"type":"unknown","default":"struct {{name}}: Codable {","wired":true},"modelClassClose":{"type":"unknown","default":"}","wired":true},"modelField":{"type":"unknown","default":"{{i}}var {{name}}: {{type}}{{default}}","wired":true},"modelDefault":{"type":"unknown","default":" = {{value}}","wired":true},"modelFactory":{"type":"unknown","default":" = {{value}}","wired":true},"modelEmpty":{"type":"unknown","default":"","wired":true},"modelAlias":{"type":"unknown","default":"typealias {{name}} = {{type}}","wired":true},"typeMap":{"type":"unknown","default":{"string":"String","number":"Double","float":"Double","int":"Int","integer":"Int","boolean":"Bool","bool":"Bool","date":"String","datetime":"String","timestamp":"String","instant":"String","duration":"Double","email":"String","url":"String","uuid":"String","bytes":"[UInt8]"},"wired":true},"typeList":{"type":"unknown","default":"[{{0}}]","wired":true},"typeListBare":{"type":"unknown","default":"[Any]","wired":true},"typeDict":{"type":"unknown","default":"[String: {{0}}]","wired":true},"typeDictBare":{"type":"unknown","default":"[String: Any]","wired":true},"typeLiteral":{"type":"unknown","default":"String","wired":true},"typeNullable":{"type":"unknown","default":"{{0}}?","wired":true},"typeAny":{"type":"unknown","default":"Any","wired":true}},"events":{"LOLO_TO_SOURCE":"LOLO_TO_SWIFT","SOURCE_RENDERED":"SWIFT_RENDERED","SOURCE_RENDER_FAILED":"SWIFT_RENDER_FAILED"}}],"pages":[{"name":"LoloSwiftStart","id":"pag_QQZCTG70SNGCTNYHEP2WMV0KEK","path":"","protocol":"boot","traits":[{"ref":"LoloSwift","refId":"trt_1SBFF6YAB355HSG2D9N5YBQW72"}]}]}],"schemaVersion":1,"ledger":{"schemaVersion":1,"entries":{"ent_MYRMYDDEZ7QFKYZ9S2H13END4R":{"id":"ent_MYRMYDDEZ7QFKYZ9S2H13END4R","kind":"entity","bakedName":"LoloSwiftRun","curName":"LoloSwiftRun","renames":[],"owner":"workspace"},"orb_Y5489285492J4KYHRE1ME7Z5GA":{"id":"orb_Y5489285492J4KYHRE1ME7Z5GA","kind":"orbital","bakedName":"LoloSwiftOrbital","curName":"LoloSwiftOrbital","renames":[],"owner":"workspace"},"pag_QQZCTG70SNGCTNYHEP2WMV0KEK":{"id":"pag_QQZCTG70SNGCTNYHEP2WMV0KEK","kind":"page","bakedName":"LoloSwiftStart","curName":"LoloSwiftStart","renames":[],"owner":"workspace"},"trt_1SBFF6YAB355HSG2D9N5YBQW72":{"id":"trt_1SBFF6YAB355HSG2D9N5YBQW72","kind":"trait","bakedName":"LoloSwift","curName":"LoloSwift","renames":[],"owner":"workspace"}}}}