@treenity/mods 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (486) hide show
  1. package/board/board.test.ts +212 -0
  2. package/board/client.ts +1 -0
  3. package/board/seed.ts +26 -0
  4. package/board/server.ts +5 -0
  5. package/board/types.ts +87 -0
  6. package/board/view.tsx +574 -0
  7. package/brahman/CLAUDE.md +18 -0
  8. package/brahman/brahman.test.ts +855 -0
  9. package/brahman/client.ts +2 -0
  10. package/brahman/helpers.ts +374 -0
  11. package/brahman/server.ts +2 -0
  12. package/brahman/service.ts +328 -0
  13. package/brahman/types.ts +727 -0
  14. package/brahman/view.tsx +73 -0
  15. package/brahman/views/action-cards.tsx +615 -0
  16. package/brahman/views/bot-view.tsx +76 -0
  17. package/brahman/views/chat-editor.tsx +782 -0
  18. package/brahman/views/chat-preview.tsx +266 -0
  19. package/brahman/views/menu-editor.tsx +451 -0
  20. package/brahman/views/page-layout.tsx +285 -0
  21. package/brahman/views/tstring-input.tsx +84 -0
  22. package/cafe/CLAUDE.md +7 -0
  23. package/cafe/seed.ts +8 -0
  24. package/cafe/server.ts +2 -0
  25. package/cafe/types.ts +32 -0
  26. package/canary/seed.ts +8 -0
  27. package/canary/server.ts +3 -0
  28. package/canary/service.ts +101 -0
  29. package/canary/types.ts +16 -0
  30. package/dist/board/client.d.ts +2 -0
  31. package/dist/board/client.d.ts.map +1 -0
  32. package/dist/board/client.js +2 -0
  33. package/dist/board/client.js.map +1 -0
  34. package/dist/board/seed.d.ts +2 -0
  35. package/dist/board/seed.d.ts.map +1 -0
  36. package/dist/board/seed.js +23 -0
  37. package/dist/board/seed.js.map +1 -0
  38. package/dist/board/server.d.ts +3 -0
  39. package/dist/board/server.d.ts.map +1 -0
  40. package/dist/board/server.js +5 -0
  41. package/dist/board/server.js.map +1 -0
  42. package/dist/board/types.d.ts +45 -0
  43. package/dist/board/types.d.ts.map +1 -0
  44. package/dist/board/types.js +82 -0
  45. package/dist/board/types.js.map +1 -0
  46. package/dist/board/view.d.ts +2 -0
  47. package/dist/board/view.d.ts.map +1 -0
  48. package/dist/board/view.js +254 -0
  49. package/dist/board/view.js.map +1 -0
  50. package/dist/brahman/client.d.ts +3 -0
  51. package/dist/brahman/client.d.ts.map +1 -0
  52. package/dist/brahman/client.js +3 -0
  53. package/dist/brahman/client.js.map +1 -0
  54. package/dist/brahman/helpers.d.ts +51 -0
  55. package/dist/brahman/helpers.d.ts.map +1 -0
  56. package/dist/brahman/helpers.js +321 -0
  57. package/dist/brahman/helpers.js.map +1 -0
  58. package/dist/brahman/server.d.ts +3 -0
  59. package/dist/brahman/server.d.ts.map +1 -0
  60. package/dist/brahman/server.js +3 -0
  61. package/dist/brahman/server.js.map +1 -0
  62. package/dist/brahman/service.d.ts +2 -0
  63. package/dist/brahman/service.d.ts.map +1 -0
  64. package/dist/brahman/service.js +310 -0
  65. package/dist/brahman/service.js.map +1 -0
  66. package/dist/brahman/types.d.ts +335 -0
  67. package/dist/brahman/types.d.ts.map +1 -0
  68. package/dist/brahman/types.js +633 -0
  69. package/dist/brahman/types.js.map +1 -0
  70. package/dist/brahman/view.d.ts +2 -0
  71. package/dist/brahman/view.d.ts.map +1 -0
  72. package/dist/brahman/view.js +47 -0
  73. package/dist/brahman/view.js.map +1 -0
  74. package/dist/brahman/views/action-cards.d.ts +60 -0
  75. package/dist/brahman/views/action-cards.d.ts.map +1 -0
  76. package/dist/brahman/views/action-cards.js +283 -0
  77. package/dist/brahman/views/action-cards.js.map +1 -0
  78. package/dist/brahman/views/bot-view.d.ts +5 -0
  79. package/dist/brahman/views/bot-view.d.ts.map +1 -0
  80. package/dist/brahman/views/bot-view.js +14 -0
  81. package/dist/brahman/views/bot-view.js.map +1 -0
  82. package/dist/brahman/views/chat-editor.d.ts +5 -0
  83. package/dist/brahman/views/chat-editor.d.ts.map +1 -0
  84. package/dist/brahman/views/chat-editor.js +306 -0
  85. package/dist/brahman/views/chat-editor.js.map +1 -0
  86. package/dist/brahman/views/chat-preview.d.ts +5 -0
  87. package/dist/brahman/views/chat-preview.d.ts.map +1 -0
  88. package/dist/brahman/views/chat-preview.js +145 -0
  89. package/dist/brahman/views/chat-preview.js.map +1 -0
  90. package/dist/brahman/views/menu-editor.d.ts +11 -0
  91. package/dist/brahman/views/menu-editor.d.ts.map +1 -0
  92. package/dist/brahman/views/menu-editor.js +171 -0
  93. package/dist/brahman/views/menu-editor.js.map +1 -0
  94. package/dist/brahman/views/page-layout.d.ts +5 -0
  95. package/dist/brahman/views/page-layout.d.ts.map +1 -0
  96. package/dist/brahman/views/page-layout.js +114 -0
  97. package/dist/brahman/views/page-layout.js.map +1 -0
  98. package/dist/brahman/views/tstring-input.d.ts +15 -0
  99. package/dist/brahman/views/tstring-input.d.ts.map +1 -0
  100. package/dist/brahman/views/tstring-input.js +23 -0
  101. package/dist/brahman/views/tstring-input.js.map +1 -0
  102. package/dist/cafe/seed.d.ts +2 -0
  103. package/dist/cafe/seed.d.ts.map +1 -0
  104. package/dist/cafe/seed.js +7 -0
  105. package/dist/cafe/seed.js.map +1 -0
  106. package/dist/cafe/server.d.ts +3 -0
  107. package/dist/cafe/server.d.ts.map +1 -0
  108. package/dist/cafe/server.js +3 -0
  109. package/dist/cafe/server.js.map +1 -0
  110. package/dist/cafe/types.d.ts +2 -0
  111. package/dist/cafe/types.d.ts.map +1 -0
  112. package/dist/cafe/types.js +31 -0
  113. package/dist/cafe/types.js.map +1 -0
  114. package/dist/canary/seed.d.ts +2 -0
  115. package/dist/canary/seed.d.ts.map +1 -0
  116. package/dist/canary/seed.js +7 -0
  117. package/dist/canary/seed.js.map +1 -0
  118. package/dist/canary/server.d.ts +4 -0
  119. package/dist/canary/server.d.ts.map +1 -0
  120. package/dist/canary/server.js +4 -0
  121. package/dist/canary/server.js.map +1 -0
  122. package/dist/canary/service.d.ts +2 -0
  123. package/dist/canary/service.d.ts.map +1 -0
  124. package/dist/canary/service.js +101 -0
  125. package/dist/canary/service.js.map +1 -0
  126. package/dist/canary/types.d.ts +9 -0
  127. package/dist/canary/types.d.ts.map +1 -0
  128. package/dist/canary/types.js +13 -0
  129. package/dist/canary/types.js.map +1 -0
  130. package/dist/doc/client.d.ts +3 -0
  131. package/dist/doc/client.d.ts.map +1 -0
  132. package/dist/doc/client.js +5 -0
  133. package/dist/doc/client.js.map +1 -0
  134. package/dist/doc/fs-codec.d.ts +2 -0
  135. package/dist/doc/fs-codec.d.ts.map +1 -0
  136. package/dist/doc/fs-codec.js +44 -0
  137. package/dist/doc/fs-codec.js.map +1 -0
  138. package/dist/doc/markdown.d.ts +13 -0
  139. package/dist/doc/markdown.d.ts.map +1 -0
  140. package/dist/doc/markdown.js +250 -0
  141. package/dist/doc/markdown.js.map +1 -0
  142. package/dist/doc/prefab.d.ts +2 -0
  143. package/dist/doc/prefab.d.ts.map +1 -0
  144. package/dist/doc/prefab.js +23 -0
  145. package/dist/doc/prefab.js.map +1 -0
  146. package/dist/doc/renderers.d.ts +2 -0
  147. package/dist/doc/renderers.d.ts.map +1 -0
  148. package/dist/doc/renderers.js +94 -0
  149. package/dist/doc/renderers.js.map +1 -0
  150. package/dist/doc/seed.d.ts +2 -0
  151. package/dist/doc/seed.d.ts.map +1 -0
  152. package/dist/doc/seed.js +9 -0
  153. package/dist/doc/seed.js.map +1 -0
  154. package/dist/doc/server.d.ts +6 -0
  155. package/dist/doc/server.d.ts.map +1 -0
  156. package/dist/doc/server.js +6 -0
  157. package/dist/doc/server.js.map +1 -0
  158. package/dist/doc/slash-command.d.ts +3 -0
  159. package/dist/doc/slash-command.d.ts.map +1 -0
  160. package/dist/doc/slash-command.js +123 -0
  161. package/dist/doc/slash-command.js.map +1 -0
  162. package/dist/doc/slash-menu.d.ts +15 -0
  163. package/dist/doc/slash-menu.d.ts.map +1 -0
  164. package/dist/doc/slash-menu.js +54 -0
  165. package/dist/doc/slash-menu.js.map +1 -0
  166. package/dist/doc/text.d.ts +2 -0
  167. package/dist/doc/text.d.ts.map +1 -0
  168. package/dist/doc/text.js +22 -0
  169. package/dist/doc/text.js.map +1 -0
  170. package/dist/doc/toolbar.d.ts +5 -0
  171. package/dist/doc/toolbar.d.ts.map +1 -0
  172. package/dist/doc/toolbar.js +15 -0
  173. package/dist/doc/toolbar.js.map +1 -0
  174. package/dist/doc/treenity-block-view.d.ts +2 -0
  175. package/dist/doc/treenity-block-view.d.ts.map +1 -0
  176. package/dist/doc/treenity-block-view.js +37 -0
  177. package/dist/doc/treenity-block-view.js.map +1 -0
  178. package/dist/doc/treenity-block.d.ts +3 -0
  179. package/dist/doc/treenity-block.d.ts.map +1 -0
  180. package/dist/doc/treenity-block.js +27 -0
  181. package/dist/doc/treenity-block.js.map +1 -0
  182. package/dist/doc/types.d.ts +2 -0
  183. package/dist/doc/types.d.ts.map +1 -0
  184. package/dist/doc/types.js +10 -0
  185. package/dist/doc/types.js.map +1 -0
  186. package/dist/launcher/client.d.ts +5 -0
  187. package/dist/launcher/client.d.ts.map +1 -0
  188. package/dist/launcher/client.js +5 -0
  189. package/dist/launcher/client.js.map +1 -0
  190. package/dist/launcher/icons.d.ts +2 -0
  191. package/dist/launcher/icons.d.ts.map +1 -0
  192. package/dist/launcher/icons.js +57 -0
  193. package/dist/launcher/icons.js.map +1 -0
  194. package/dist/launcher/seed.d.ts +2 -0
  195. package/dist/launcher/seed.d.ts.map +1 -0
  196. package/dist/launcher/seed.js +36 -0
  197. package/dist/launcher/seed.js.map +1 -0
  198. package/dist/launcher/server.d.ts +3 -0
  199. package/dist/launcher/server.d.ts.map +1 -0
  200. package/dist/launcher/server.js +3 -0
  201. package/dist/launcher/server.js.map +1 -0
  202. package/dist/launcher/types.d.ts +21 -0
  203. package/dist/launcher/types.d.ts.map +1 -0
  204. package/dist/launcher/types.js +47 -0
  205. package/dist/launcher/types.js.map +1 -0
  206. package/dist/launcher/view.d.ts +2 -0
  207. package/dist/launcher/view.d.ts.map +1 -0
  208. package/dist/launcher/view.js +187 -0
  209. package/dist/launcher/view.js.map +1 -0
  210. package/dist/launcher/widgets.d.ts +2 -0
  211. package/dist/launcher/widgets.d.ts.map +1 -0
  212. package/dist/launcher/widgets.js +73 -0
  213. package/dist/launcher/widgets.js.map +1 -0
  214. package/dist/mindmap/branch.d.ts +17 -0
  215. package/dist/mindmap/branch.d.ts.map +1 -0
  216. package/dist/mindmap/branch.js +47 -0
  217. package/dist/mindmap/branch.js.map +1 -0
  218. package/dist/mindmap/client.d.ts +3 -0
  219. package/dist/mindmap/client.d.ts.map +1 -0
  220. package/dist/mindmap/client.js +3 -0
  221. package/dist/mindmap/client.js.map +1 -0
  222. package/dist/mindmap/radial-tree.d.ts +14 -0
  223. package/dist/mindmap/radial-tree.d.ts.map +1 -0
  224. package/dist/mindmap/radial-tree.js +184 -0
  225. package/dist/mindmap/radial-tree.js.map +1 -0
  226. package/dist/mindmap/sidebar.d.ts +8 -0
  227. package/dist/mindmap/sidebar.d.ts.map +1 -0
  228. package/dist/mindmap/sidebar.js +24 -0
  229. package/dist/mindmap/sidebar.js.map +1 -0
  230. package/dist/mindmap/types.d.ts +8 -0
  231. package/dist/mindmap/types.d.ts.map +1 -0
  232. package/dist/mindmap/types.js +10 -0
  233. package/dist/mindmap/types.js.map +1 -0
  234. package/dist/mindmap/use-tree-data.d.ts +14 -0
  235. package/dist/mindmap/use-tree-data.d.ts.map +1 -0
  236. package/dist/mindmap/use-tree-data.js +95 -0
  237. package/dist/mindmap/use-tree-data.js.map +1 -0
  238. package/dist/mindmap/view.d.ts +3 -0
  239. package/dist/mindmap/view.d.ts.map +1 -0
  240. package/dist/mindmap/view.js +141 -0
  241. package/dist/mindmap/view.js.map +1 -0
  242. package/dist/sensor-demo/client.d.ts +2 -0
  243. package/dist/sensor-demo/client.d.ts.map +1 -0
  244. package/dist/sensor-demo/client.js +2 -0
  245. package/dist/sensor-demo/client.js.map +1 -0
  246. package/dist/sensor-demo/server.d.ts +2 -0
  247. package/dist/sensor-demo/server.d.ts.map +1 -0
  248. package/dist/sensor-demo/server.js +2 -0
  249. package/dist/sensor-demo/server.js.map +1 -0
  250. package/dist/sensor-demo/service.d.ts +2 -0
  251. package/dist/sensor-demo/service.d.ts.map +1 -0
  252. package/dist/sensor-demo/service.js +27 -0
  253. package/dist/sensor-demo/service.js.map +1 -0
  254. package/dist/sensor-demo/types.d.ts +15 -0
  255. package/dist/sensor-demo/types.d.ts.map +1 -0
  256. package/dist/sensor-demo/types.js +18 -0
  257. package/dist/sensor-demo/types.js.map +1 -0
  258. package/dist/sensor-demo/view.d.ts +2 -0
  259. package/dist/sensor-demo/view.d.ts.map +1 -0
  260. package/dist/sensor-demo/view.js +33 -0
  261. package/dist/sensor-demo/view.js.map +1 -0
  262. package/dist/sensor-generator/action.d.ts +2 -0
  263. package/dist/sensor-generator/action.d.ts.map +1 -0
  264. package/dist/sensor-generator/action.js +23 -0
  265. package/dist/sensor-generator/action.js.map +1 -0
  266. package/dist/sensor-generator/client.d.ts +2 -0
  267. package/dist/sensor-generator/client.d.ts.map +1 -0
  268. package/dist/sensor-generator/client.js +2 -0
  269. package/dist/sensor-generator/client.js.map +1 -0
  270. package/dist/sensor-generator/server.d.ts +2 -0
  271. package/dist/sensor-generator/server.d.ts.map +1 -0
  272. package/dist/sensor-generator/server.js +2 -0
  273. package/dist/sensor-generator/server.js.map +1 -0
  274. package/dist/sensor-generator/view.d.ts +2 -0
  275. package/dist/sensor-generator/view.d.ts.map +1 -0
  276. package/dist/sensor-generator/view.js +64 -0
  277. package/dist/sensor-generator/view.js.map +1 -0
  278. package/dist/sim/client.d.ts +2 -0
  279. package/dist/sim/client.d.ts.map +1 -0
  280. package/dist/sim/client.js +2 -0
  281. package/dist/sim/client.js.map +1 -0
  282. package/dist/sim/seed.d.ts +2 -0
  283. package/dist/sim/seed.d.ts.map +1 -0
  284. package/dist/sim/seed.js +50 -0
  285. package/dist/sim/seed.js.map +1 -0
  286. package/dist/sim/server.d.ts +3 -0
  287. package/dist/sim/server.d.ts.map +1 -0
  288. package/dist/sim/server.js +3 -0
  289. package/dist/sim/server.js.map +1 -0
  290. package/dist/sim/service.d.ts +4 -0
  291. package/dist/sim/service.d.ts.map +1 -0
  292. package/dist/sim/service.js +528 -0
  293. package/dist/sim/service.js.map +1 -0
  294. package/dist/sim/types.d.ts +63 -0
  295. package/dist/sim/types.d.ts.map +1 -0
  296. package/dist/sim/types.js +57 -0
  297. package/dist/sim/types.js.map +1 -0
  298. package/dist/sim/view.d.ts +2 -0
  299. package/dist/sim/view.d.ts.map +1 -0
  300. package/dist/sim/view.js +205 -0
  301. package/dist/sim/view.js.map +1 -0
  302. package/dist/table/client.d.ts +4 -0
  303. package/dist/table/client.d.ts.map +1 -0
  304. package/dist/table/client.js +4 -0
  305. package/dist/table/client.js.map +1 -0
  306. package/dist/table/edit.d.ts +2 -0
  307. package/dist/table/edit.d.ts.map +1 -0
  308. package/dist/table/edit.js +115 -0
  309. package/dist/table/edit.js.map +1 -0
  310. package/dist/table/server.d.ts +2 -0
  311. package/dist/table/server.d.ts.map +1 -0
  312. package/dist/table/server.js +2 -0
  313. package/dist/table/server.js.map +1 -0
  314. package/dist/table/types.d.ts +18 -0
  315. package/dist/table/types.d.ts.map +1 -0
  316. package/dist/table/types.js +13 -0
  317. package/dist/table/types.js.map +1 -0
  318. package/dist/table/use-debounced-sync.d.ts +8 -0
  319. package/dist/table/use-debounced-sync.d.ts.map +1 -0
  320. package/dist/table/use-debounced-sync.js +56 -0
  321. package/dist/table/use-debounced-sync.js.map +1 -0
  322. package/dist/table/view.d.ts +2 -0
  323. package/dist/table/view.d.ts.map +1 -0
  324. package/dist/table/view.js +199 -0
  325. package/dist/table/view.js.map +1 -0
  326. package/dist/tasks/server.d.ts +2 -0
  327. package/dist/tasks/server.d.ts.map +1 -0
  328. package/dist/tasks/server.js +2 -0
  329. package/dist/tasks/server.js.map +1 -0
  330. package/dist/tasks/types.d.ts +22 -0
  331. package/dist/tasks/types.d.ts.map +1 -0
  332. package/dist/tasks/types.js +34 -0
  333. package/dist/tasks/types.js.map +1 -0
  334. package/dist/three/client.d.ts +2 -0
  335. package/dist/three/client.d.ts.map +1 -0
  336. package/dist/three/client.js +2 -0
  337. package/dist/three/client.js.map +1 -0
  338. package/dist/three/seed.d.ts +2 -0
  339. package/dist/three/seed.d.ts.map +1 -0
  340. package/dist/three/seed.js +45 -0
  341. package/dist/three/seed.js.map +1 -0
  342. package/dist/three/server.d.ts +3 -0
  343. package/dist/three/server.d.ts.map +1 -0
  344. package/dist/three/server.js +3 -0
  345. package/dist/three/server.js.map +1 -0
  346. package/dist/three/types.d.ts +178 -0
  347. package/dist/three/types.d.ts.map +1 -0
  348. package/dist/three/types.js +209 -0
  349. package/dist/three/types.js.map +1 -0
  350. package/dist/three/view.d.ts +2 -0
  351. package/dist/three/view.d.ts.map +1 -0
  352. package/dist/three/view.js +307 -0
  353. package/dist/three/view.js.map +1 -0
  354. package/dist/todo/client.d.ts +3 -0
  355. package/dist/todo/client.d.ts.map +1 -0
  356. package/dist/todo/client.js +3 -0
  357. package/dist/todo/client.js.map +1 -0
  358. package/dist/todo/seed.d.ts +2 -0
  359. package/dist/todo/seed.d.ts.map +1 -0
  360. package/dist/todo/seed.js +8 -0
  361. package/dist/todo/seed.js.map +1 -0
  362. package/dist/todo/server.d.ts +3 -0
  363. package/dist/todo/server.d.ts.map +1 -0
  364. package/dist/todo/server.js +3 -0
  365. package/dist/todo/server.js.map +1 -0
  366. package/dist/todo/types.d.ts +15 -0
  367. package/dist/todo/types.d.ts.map +1 -0
  368. package/dist/todo/types.js +29 -0
  369. package/dist/todo/types.js.map +1 -0
  370. package/dist/todo/view.d.ts +2 -0
  371. package/dist/todo/view.d.ts.map +1 -0
  372. package/dist/todo/view.js +27 -0
  373. package/dist/todo/view.js.map +1 -0
  374. package/dist/whisper/client.d.ts +2 -0
  375. package/dist/whisper/client.d.ts.map +1 -0
  376. package/dist/whisper/client.js +2 -0
  377. package/dist/whisper/client.js.map +1 -0
  378. package/dist/whisper/inbox.d.ts +2 -0
  379. package/dist/whisper/inbox.d.ts.map +1 -0
  380. package/dist/whisper/inbox.js +50 -0
  381. package/dist/whisper/inbox.js.map +1 -0
  382. package/dist/whisper/route.d.ts +10 -0
  383. package/dist/whisper/route.d.ts.map +1 -0
  384. package/dist/whisper/route.js +154 -0
  385. package/dist/whisper/route.js.map +1 -0
  386. package/dist/whisper/seed.d.ts +2 -0
  387. package/dist/whisper/seed.d.ts.map +1 -0
  388. package/dist/whisper/seed.js +14 -0
  389. package/dist/whisper/seed.js.map +1 -0
  390. package/dist/whisper/server.d.ts +5 -0
  391. package/dist/whisper/server.d.ts.map +1 -0
  392. package/dist/whisper/server.js +5 -0
  393. package/dist/whisper/server.js.map +1 -0
  394. package/dist/whisper/service.d.ts +2 -0
  395. package/dist/whisper/service.d.ts.map +1 -0
  396. package/dist/whisper/service.js +26 -0
  397. package/dist/whisper/service.js.map +1 -0
  398. package/dist/whisper/types.d.ts +38 -0
  399. package/dist/whisper/types.d.ts.map +1 -0
  400. package/dist/whisper/types.js +45 -0
  401. package/dist/whisper/types.js.map +1 -0
  402. package/dist/whisper/view.d.ts +2 -0
  403. package/dist/whisper/view.d.ts.map +1 -0
  404. package/dist/whisper/view.js +40 -0
  405. package/dist/whisper/view.js.map +1 -0
  406. package/doc/CLAUDE.md +49 -0
  407. package/doc/client.ts +5 -0
  408. package/doc/editor.css +283 -0
  409. package/doc/fs-codec.test.ts +119 -0
  410. package/doc/fs-codec.ts +50 -0
  411. package/doc/markdown.test.ts +152 -0
  412. package/doc/markdown.ts +284 -0
  413. package/doc/prefab.ts +26 -0
  414. package/doc/renderers.tsx +126 -0
  415. package/doc/seed.ts +10 -0
  416. package/doc/server.ts +5 -0
  417. package/doc/slash-command.ts +136 -0
  418. package/doc/slash-menu.tsx +91 -0
  419. package/doc/text.ts +20 -0
  420. package/doc/toolbar.tsx +86 -0
  421. package/doc/treenity-block-view.tsx +116 -0
  422. package/doc/treenity-block.ts +31 -0
  423. package/doc/types.ts +10 -0
  424. package/launcher/client.ts +4 -0
  425. package/launcher/icons.tsx +234 -0
  426. package/launcher/launcher.css +64 -0
  427. package/launcher/seed.ts +41 -0
  428. package/launcher/server.ts +2 -0
  429. package/launcher/types.ts +53 -0
  430. package/launcher/view.tsx +401 -0
  431. package/launcher/widgets.tsx +171 -0
  432. package/mindmap/branch.tsx +163 -0
  433. package/mindmap/client.ts +2 -0
  434. package/mindmap/mindmap.css +243 -0
  435. package/mindmap/sidebar.tsx +127 -0
  436. package/mindmap/types.ts +10 -0
  437. package/mindmap/view.tsx +247 -0
  438. package/package.json +75 -0
  439. package/sensor-demo/CLAUDE.md +3 -0
  440. package/sensor-demo/client.ts +1 -0
  441. package/sensor-demo/server.ts +1 -0
  442. package/sensor-demo/service.ts +27 -0
  443. package/sensor-demo/types.ts +20 -0
  444. package/sensor-demo/view.tsx +64 -0
  445. package/sensor-generator/CLAUDE.md +3 -0
  446. package/sensor-generator/action.ts +28 -0
  447. package/sensor-generator/client.ts +1 -0
  448. package/sensor-generator/server.ts +1 -0
  449. package/sensor-generator/view.tsx +107 -0
  450. package/sim/CLAUDE.md +16 -0
  451. package/sim/client.ts +1 -0
  452. package/sim/seed.ts +55 -0
  453. package/sim/server.ts +2 -0
  454. package/sim/service.ts +594 -0
  455. package/sim/sim.test.ts +282 -0
  456. package/sim/types.ts +87 -0
  457. package/sim/view.tsx +446 -0
  458. package/table/client.ts +3 -0
  459. package/table/edit.tsx +241 -0
  460. package/table/server.ts +1 -0
  461. package/table/types.ts +22 -0
  462. package/table/use-debounced-sync.ts +67 -0
  463. package/table/view.tsx +339 -0
  464. package/tasks/CLAUDE.md +6 -0
  465. package/tasks/server.ts +1 -0
  466. package/tasks/types.ts +36 -0
  467. package/three/CLAUDE.md +6 -0
  468. package/three/client.ts +1 -0
  469. package/three/seed.ts +54 -0
  470. package/three/server.ts +2 -0
  471. package/three/types.ts +238 -0
  472. package/three/view.tsx +453 -0
  473. package/todo/client.ts +2 -0
  474. package/todo/seed.ts +9 -0
  475. package/todo/server.ts +2 -0
  476. package/todo/types.ts +32 -0
  477. package/todo/view.tsx +67 -0
  478. package/whisper/CLAUDE.md +16 -0
  479. package/whisper/client.ts +1 -0
  480. package/whisper/inbox.ts +54 -0
  481. package/whisper/route.ts +182 -0
  482. package/whisper/seed.ts +15 -0
  483. package/whisper/server.ts +4 -0
  484. package/whisper/service.ts +29 -0
  485. package/whisper/types.ts +51 -0
  486. package/whisper/view.tsx +81 -0
@@ -0,0 +1,528 @@
1
+ // AgentSim — round-based multi-agent simulation (Layer 6)
2
+ // Handlers = MCP-style tools: each entity type exposes action:* handlers
3
+ // Agents discover nearby entities + their capabilities → rich context for AI
4
+ // speak(to?) with hear events, move, remember, interact(target, action)
5
+ // No ANTHROPIC_API_KEY → mock mode (random actions for demo)
6
+ import { createNode, getComponent, getContextsForType, getMeta, register, resolve, } from '@treenity/core';
7
+ import '@treenity/core/contexts/service';
8
+ import { newComp, setComp } from '@treenity/core/comp';
9
+ import { serverNodeHandle } from '@treenity/core/server/actions';
10
+ import { SimAi, SimConfig, SimDescriptive, SimEvents, SimMemory, SimNearby, SimPosition, SimRound, } from './types';
11
+ // ── Helpers ──
12
+ function dist(a, b) {
13
+ return Math.sqrt((a.x - b.x) ** 2 + (a.y - b.y) ** 2);
14
+ }
15
+ function getNearby(agent, all) {
16
+ const pos = getComponent(agent, SimPosition);
17
+ if (!pos)
18
+ return [];
19
+ return all.filter((a) => {
20
+ if (a.$path === agent.$path)
21
+ return false;
22
+ const ap = getComponent(a, SimPosition);
23
+ return ap && dist(pos, ap) <= pos.radius;
24
+ });
25
+ }
26
+ function eName(n) {
27
+ return getComponent(n, SimDescriptive)?.name ?? n.$path.split('/').at(-1);
28
+ }
29
+ function getEntityActions(type) {
30
+ return getContextsForType(type)
31
+ .filter((c) => c.startsWith('action:'))
32
+ .map((c) => {
33
+ const name = c.slice(7);
34
+ const meta = getMeta(type, c);
35
+ return {
36
+ name,
37
+ description: meta?.description,
38
+ params: meta?.params,
39
+ };
40
+ });
41
+ }
42
+ function formatActions(actions) {
43
+ if (!actions.length)
44
+ return '';
45
+ return actions
46
+ .map((a) => {
47
+ let s = a.name;
48
+ if (a.params)
49
+ s += `(${a.params})`;
50
+ if (a.description)
51
+ s += ` — ${a.description}`;
52
+ return s;
53
+ })
54
+ .join('; ');
55
+ }
56
+ // Build environment context string for AI — like collectEnvironment() in original
57
+ function collectEnvironment(agent, allEntities) {
58
+ const near = getNearby(agent, allEntities);
59
+ if (!near.length)
60
+ return 'Nobody and nothing nearby.';
61
+ return near
62
+ .map((n, i) => {
63
+ const d = getComponent(n, SimDescriptive);
64
+ const p = getComponent(n, SimPosition);
65
+ const actions = getEntityActions(n.$type);
66
+ const actionsStr = actions.length ? `\n Actions: ${formatActions(actions)}` : '';
67
+ return `${i + 1}. ${n.$type} "${d?.name ?? n.$path}" ${d?.icon ?? ''} at (${p?.x},${p?.y}): ${d?.description ?? ''}${actionsStr}`;
68
+ })
69
+ .join('\n');
70
+ }
71
+ // Get per-agent event history
72
+ function getAgentEvents(n) {
73
+ const ev = getComponent(n, SimEvents);
74
+ return ev?.entries ?? [];
75
+ }
76
+ // Append event to agent's inbox (capped at 30)
77
+ function pushAgentEvent(n, event) {
78
+ const ev = getComponent(n, SimEvents);
79
+ const entries = [...(ev?.entries ?? []), event].slice(-30);
80
+ setComp(n, SimEvents, { entries });
81
+ }
82
+ // ── LLM tools — base + interact ──
83
+ const BASE_TOOLS = [
84
+ {
85
+ name: 'speak',
86
+ description: 'Say something. If "to" is given, direct message to that entity. Otherwise, all nearby entities hear you.',
87
+ input_schema: {
88
+ type: 'object',
89
+ properties: {
90
+ message: { type: 'string', description: 'What to say' },
91
+ to: { type: 'string', description: 'Name of specific entity to address (optional)' },
92
+ },
93
+ required: ['message'],
94
+ },
95
+ },
96
+ {
97
+ name: 'move',
98
+ description: 'Move to a new position on the map.',
99
+ input_schema: {
100
+ type: 'object',
101
+ properties: {
102
+ x: { type: 'number', description: 'Target X coordinate' },
103
+ y: { type: 'number', description: 'Target Y coordinate' },
104
+ },
105
+ required: ['x', 'y'],
106
+ },
107
+ },
108
+ {
109
+ name: 'remember',
110
+ description: 'Save a thought or observation to your memory.',
111
+ input_schema: {
112
+ type: 'object',
113
+ properties: { text: { type: 'string', description: 'What to remember' } },
114
+ required: ['text'],
115
+ },
116
+ },
117
+ {
118
+ name: 'interact',
119
+ description: 'Call an action on a nearby entity. Use this to interact with items, agents, or objects you can see.',
120
+ input_schema: {
121
+ type: 'object',
122
+ properties: {
123
+ target: { type: 'string', description: 'Name of the entity to interact with' },
124
+ action: { type: 'string', description: 'Action name to invoke (from the entity\'s available actions)' },
125
+ data: { type: 'object', description: 'Parameters for the action' },
126
+ },
127
+ required: ['target', 'action'],
128
+ },
129
+ },
130
+ ];
131
+ // ── LLM call ──
132
+ async function callLLM(agent, allEntities, worldLog, round, model) {
133
+ const apiKey = process.env.ANTHROPIC_API_KEY;
134
+ if (!apiKey)
135
+ return mockThink(agent, allEntities);
136
+ const desc = getComponent(agent, SimDescriptive);
137
+ const pos = getComponent(agent, SimPosition);
138
+ const mem = getComponent(agent, SimMemory);
139
+ const ai = getComponent(agent, SimAi);
140
+ const myName = desc?.name ?? 'agent';
141
+ // Per-agent events (directed + heard)
142
+ const agentEvents = getAgentEvents(agent)
143
+ .slice(-15)
144
+ .map((e) => `[R${e.round}] ${e.from}→${e.to ?? 'all'} ${e.type}: ${JSON.stringify(e.data)}`)
145
+ .join('\n');
146
+ // Environment: nearby entities with capabilities
147
+ const env = collectEnvironment(agent, allEntities);
148
+ const memText = mem?.entries?.length ? mem.entries.slice(-10).join('\n') : '(empty)';
149
+ // My own actions (what others can ask me to do)
150
+ const myActions = getEntityActions(agent.$type);
151
+ const system = `${ai?.systemPrompt ?? `You are ${myName}.`}
152
+
153
+ You are "${myName}" ${desc?.icon ?? ''} — ${desc?.description ?? ''}
154
+ Position: (${pos?.x}, ${pos?.y}), hearing radius: ${pos?.radius}.
155
+ Your available actions others can call on you: ${formatActions(myActions) || 'none'}
156
+
157
+ Environment (nearby entities and their capabilities):
158
+ ${env}
159
+
160
+ Your memory:
161
+ ${memText}
162
+
163
+ ${agentEvents ? `Recent events involving you:\n${agentEvents}` : 'No recent events.'}
164
+
165
+ Round ${round}. Use tools to act. You can speak (optionally TO someone), move, remember, or interact with nearby entities by calling their actions. Be concise. Stay in character.`;
166
+ const res = await fetch('https://api.anthropic.com/v1/messages', {
167
+ method: 'POST',
168
+ headers: {
169
+ 'Content-Type': 'application/json',
170
+ 'x-api-key': apiKey,
171
+ 'anthropic-version': '2023-06-01',
172
+ },
173
+ body: JSON.stringify({
174
+ model: ai?.model ?? model,
175
+ max_tokens: 400,
176
+ system,
177
+ messages: [{ role: 'user', content: "It's your turn. What do you do?" }],
178
+ tools: BASE_TOOLS,
179
+ }),
180
+ });
181
+ if (!res.ok) {
182
+ console.error(`[sim] AI ${res.status}:`, await res.text());
183
+ return [];
184
+ }
185
+ const body = (await res.json());
186
+ return body.content
187
+ .filter((b) => b.type === 'tool_use')
188
+ .map((b) => ({ tool: b.name, ...b.input }));
189
+ }
190
+ // ── Mock mode (no API key) ──
191
+ function mockThink(agent, all) {
192
+ const near = getNearby(agent, all);
193
+ const r = Math.random();
194
+ if (r < 0.35 && near.length > 0) {
195
+ const target = near[Math.floor(Math.random() * near.length)];
196
+ const msgs = ['Hello!', 'Nice day!', 'Interesting...', 'I wonder...', 'Look at that!'];
197
+ // 50% directed, 50% broadcast
198
+ const to = Math.random() < 0.5 ? eName(target) : undefined;
199
+ return [{ tool: 'speak', message: msgs[Math.floor(Math.random() * msgs.length)], to }];
200
+ }
201
+ if (r < 0.6) {
202
+ return [
203
+ { tool: 'move', x: Math.floor(Math.random() * 600), y: Math.floor(Math.random() * 400) },
204
+ ];
205
+ }
206
+ if (r < 0.8) {
207
+ return [{ tool: 'remember', text: `Observation at ${new Date().toLocaleTimeString()}` }];
208
+ }
209
+ // interact with nearby item/agent
210
+ if (near.length > 0) {
211
+ const target = near[Math.floor(Math.random() * near.length)];
212
+ const actions = getEntityActions(target.$type).filter((a) => a.name !== 'update');
213
+ if (actions.length > 0) {
214
+ return [{
215
+ tool: 'interact',
216
+ target: eName(target),
217
+ action: actions[Math.floor(Math.random() * actions.length)].name,
218
+ data: {},
219
+ }];
220
+ }
221
+ }
222
+ return [{ tool: 'remember', text: `Nothing interesting happening` }];
223
+ }
224
+ // ── Node-level actions (UI control) ──
225
+ /** @description Start the agent simulation loop */
226
+ register('sim.world', 'action:start', async (ctx) => {
227
+ const cfg = getComponent(ctx.node, SimConfig);
228
+ setComp(ctx.node, SimConfig, { ...cfg, running: true });
229
+ }, { description: 'Start the simulation' });
230
+ /** @description Stop the agent simulation loop */
231
+ register('sim.world', 'action:stop', async (ctx) => {
232
+ const cfg = getComponent(ctx.node, SimConfig);
233
+ setComp(ctx.node, SimConfig, { ...cfg, running: false });
234
+ }, { description: 'Stop the simulation' });
235
+ /** @description Update simulation settings (roundDelay, model, dimensions) */
236
+ register('sim.world', 'action:set-config', async (ctx, params) => {
237
+ const cfg = getComponent(ctx.node, SimConfig);
238
+ const next = { ...cfg };
239
+ if (params.roundDelay !== undefined)
240
+ next.roundDelay = Number(params.roundDelay);
241
+ if (params.model !== undefined)
242
+ next.model = String(params.model);
243
+ if (params.width !== undefined)
244
+ next.width = Number(params.width);
245
+ if (params.height !== undefined)
246
+ next.height = Number(params.height);
247
+ setComp(ctx.node, SimConfig, next);
248
+ }, { description: 'Update simulation settings', params: 'roundDelay?, model?, width?, height?' });
249
+ /** @description Add an agent or item entity to the simulation world */
250
+ register('sim.world', 'action:add-entity', async (ctx, params) => {
251
+ const id = params.id || `e-${Date.now()}`;
252
+ const type = params.type || 'sim.item';
253
+ const path = `${ctx.node.$path}/${id}`;
254
+ const components = {
255
+ descriptive: newComp(SimDescriptive, {
256
+ name: params.name || id,
257
+ icon: params.icon || '?',
258
+ description: params.description || '',
259
+ }),
260
+ position: newComp(SimPosition, {
261
+ x: params.x ?? 300,
262
+ y: params.y ?? 200,
263
+ radius: params.radius ?? 100,
264
+ }),
265
+ };
266
+ if (type === 'sim.agent') {
267
+ components.ai = newComp(SimAi, { systemPrompt: params.systemPrompt || `You are ${params.name}.` });
268
+ components.memory = newComp(SimMemory, { entries: [] });
269
+ components.events = newComp(SimEvents, { entries: [] });
270
+ }
271
+ await ctx.store.set(createNode(path, type, {}, components));
272
+ }, { description: 'Add agent or item to the world', params: 'name, icon, type?, x?, y?, radius?, systemPrompt?, description?' });
273
+ // Agent actions (callable by other agents via interact, or by UI)
274
+ /** @description Move agent to a new position on the map */
275
+ register('sim.agent', 'action:move', async (ctx, params) => {
276
+ const pos = getComponent(ctx.node, SimPosition);
277
+ const next = { ...pos };
278
+ if (params.x !== undefined)
279
+ next.x = Math.round(Number(params.x));
280
+ if (params.y !== undefined)
281
+ next.y = Math.round(Number(params.y));
282
+ setComp(ctx.node, SimPosition, next);
283
+ }, { description: 'Move to position', params: 'x, y' });
284
+ /** @description Update agent properties (systemPrompt, radius, name, icon, description) */
285
+ register('sim.agent', 'action:update', async (ctx, params) => {
286
+ if (params.systemPrompt !== undefined) {
287
+ const ai = getComponent(ctx.node, SimAi);
288
+ setComp(ctx.node, SimAi, { ...ai, systemPrompt: String(params.systemPrompt) });
289
+ }
290
+ if (params.radius !== undefined) {
291
+ const pos = getComponent(ctx.node, SimPosition);
292
+ setComp(ctx.node, SimPosition, { ...pos, radius: Number(params.radius) });
293
+ }
294
+ if (params.name !== undefined || params.icon !== undefined || params.description !== undefined) {
295
+ const desc = getComponent(ctx.node, SimDescriptive);
296
+ const next = { ...desc };
297
+ if (params.name !== undefined)
298
+ next.name = String(params.name);
299
+ if (params.icon !== undefined)
300
+ next.icon = String(params.icon);
301
+ if (params.description !== undefined)
302
+ next.description = String(params.description);
303
+ setComp(ctx.node, SimDescriptive, next);
304
+ }
305
+ }, { description: 'Update agent properties', params: 'systemPrompt?, radius?, name?, icon?, description?' });
306
+ // Item actions — example extensible types
307
+ /** @description Examine the item and return its description */
308
+ register('sim.item', 'action:examine', async (ctx) => {
309
+ const desc = getComponent(ctx.node, SimDescriptive);
310
+ return { description: desc?.description ?? 'Nothing special.' };
311
+ }, { description: 'Look at the item closely' });
312
+ /** @description Use or interact with the item */
313
+ register('sim.item', 'action:use', async (ctx, params) => {
314
+ const desc = getComponent(ctx.node, SimDescriptive);
315
+ return { result: `You used ${desc?.name ?? 'item'}. ${params.how ?? ''}` };
316
+ }, { description: 'Interact with the item', params: 'how?' });
317
+ // ── World Service ──
318
+ register('sim.world', 'service', async (node, ctx) => {
319
+ let stopped = false;
320
+ const wp = node.$path;
321
+ async function getAllEntities() {
322
+ return (await ctx.store.getChildren(wp)).items.filter((n) => n.$type === 'sim.agent' || n.$type === 'sim.item');
323
+ }
324
+ async function getAgents() {
325
+ return (await ctx.store.getChildren(wp)).items.filter((n) => n.$type === 'sim.agent');
326
+ }
327
+ async function runRound() {
328
+ const world = await ctx.store.get(wp);
329
+ if (!world)
330
+ return;
331
+ const cfg = getComponent(world, SimConfig);
332
+ if (!cfg?.running)
333
+ return;
334
+ const round = getComponent(world, SimRound);
335
+ const num = round.current ?? 0;
336
+ const allEntities = await getAllEntities();
337
+ const agents = allEntities.filter((n) => n.$type === 'sim.agent');
338
+ if (!agents.length)
339
+ return;
340
+ // Phase: thinking
341
+ setComp(world, SimRound, { ...round, phase: 'thinking' });
342
+ await ctx.store.set(world);
343
+ const log = round.log ?? [];
344
+ const model = cfg.model ?? 'claude-haiku-4-5-20251001';
345
+ // All agents think in parallel — quorum
346
+ const results = await Promise.allSettled(agents.map(async (a) => ({
347
+ agent: a,
348
+ tools: await callLLM(a, allEntities, log, num, model),
349
+ })));
350
+ // Execute actions
351
+ const newEntries = [];
352
+ // Map name→path for interact resolution
353
+ const nameToPath = new Map();
354
+ for (const e of allEntities)
355
+ nameToPath.set(eName(e), e.$path);
356
+ for (const r of results) {
357
+ if (r.status !== 'fulfilled')
358
+ continue;
359
+ const { agent, tools } = r.value;
360
+ const agentName = eName(agent);
361
+ const desc = getComponent(agent, SimDescriptive);
362
+ for (const t of tools) {
363
+ const ts = Date.now();
364
+ switch (t.tool) {
365
+ case 'speak': {
366
+ const to = t.to;
367
+ const nearAgents = getNearby(agent, agents);
368
+ const hearers = nearAgents.map(eName);
369
+ // Push event to directed target or all hearers
370
+ for (const hearer of nearAgents) {
371
+ const fresh = await ctx.store.get(hearer.$path);
372
+ if (!fresh)
373
+ continue;
374
+ const hName = eName(fresh);
375
+ const eventType = to && to === hName ? 'speak' : 'hear';
376
+ pushAgentEvent(fresh, {
377
+ round: num,
378
+ type: eventType,
379
+ from: agentName,
380
+ to: to || undefined,
381
+ data: { message: t.message },
382
+ ts,
383
+ });
384
+ await ctx.store.set(fresh);
385
+ }
386
+ newEntries.push({
387
+ round: num,
388
+ agent: agentName,
389
+ icon: desc?.icon ?? '',
390
+ action: to ? `speak→${to}` : 'speak',
391
+ data: { message: t.message },
392
+ heardBy: hearers,
393
+ ts,
394
+ });
395
+ break;
396
+ }
397
+ case 'move': {
398
+ const fresh = await ctx.store.get(agent.$path);
399
+ if (!fresh)
400
+ break;
401
+ const pos = getComponent(fresh, SimPosition);
402
+ setComp(fresh, SimPosition, {
403
+ ...pos,
404
+ x: Math.max(0, Math.min(cfg.width, t.x)),
405
+ y: Math.max(0, Math.min(cfg.height, t.y)),
406
+ });
407
+ await ctx.store.set(fresh);
408
+ newEntries.push({
409
+ round: num,
410
+ agent: agentName,
411
+ icon: desc?.icon ?? '',
412
+ action: 'move',
413
+ data: { x: t.x, y: t.y },
414
+ ts,
415
+ });
416
+ break;
417
+ }
418
+ case 'remember': {
419
+ const fresh = await ctx.store.get(agent.$path);
420
+ if (!fresh)
421
+ break;
422
+ const mem = getComponent(fresh, SimMemory);
423
+ setComp(fresh, SimMemory, {
424
+ entries: [...(mem?.entries ?? []), t.text].slice(-20),
425
+ });
426
+ await ctx.store.set(fresh);
427
+ break;
428
+ }
429
+ case 'interact': {
430
+ const targetName = t.target;
431
+ const action = t.action;
432
+ const data = t.data ?? {};
433
+ const targetPath = nameToPath.get(targetName);
434
+ if (!targetPath)
435
+ break;
436
+ const targetNode = await ctx.store.get(targetPath);
437
+ if (!targetNode)
438
+ break;
439
+ // Check proximity
440
+ const near = getNearby(agent, allEntities);
441
+ if (!near.find((n) => n.$path === targetPath))
442
+ break;
443
+ // Resolve and call target's action handler
444
+ const handler = resolve(targetNode.$type, `action:${action}`);
445
+ if (!handler)
446
+ break;
447
+ const actx = {
448
+ node: targetNode,
449
+ store: ctx.store,
450
+ signal: AbortSignal.timeout(5000),
451
+ nc: serverNodeHandle(ctx.store),
452
+ };
453
+ const result = await handler(actx, data);
454
+ // Persist handler mutations (handlers don't call store.set — executeAction/caller does)
455
+ await ctx.store.set(targetNode);
456
+ // Push event to target agent's inbox
457
+ if (targetNode.$type === 'sim.agent') {
458
+ const freshTarget = await ctx.store.get(targetPath);
459
+ if (freshTarget) {
460
+ pushAgentEvent(freshTarget, {
461
+ round: num,
462
+ type: `interact:${action}`,
463
+ from: agentName,
464
+ data: { ...data, result },
465
+ ts,
466
+ });
467
+ await ctx.store.set(freshTarget);
468
+ }
469
+ }
470
+ newEntries.push({
471
+ round: num,
472
+ agent: agentName,
473
+ icon: desc?.icon ?? '',
474
+ action: `${action}→${targetName}`,
475
+ data: { ...data, result },
476
+ ts,
477
+ });
478
+ break;
479
+ }
480
+ }
481
+ }
482
+ }
483
+ // Recompute proximity links on all entities (engine-owned data)
484
+ const freshEntities = await getAllEntities();
485
+ for (const a of freshEntities) {
486
+ const near = getNearby(a, freshEntities);
487
+ setComp(a, SimNearby, { agents: near.map(eName) });
488
+ await ctx.store.set(a);
489
+ }
490
+ // Advance round
491
+ const worldFresh = await ctx.store.get(wp);
492
+ if (!worldFresh)
493
+ return;
494
+ setComp(worldFresh, SimRound, {
495
+ current: num + 1,
496
+ phase: 'idle',
497
+ log: [...log, ...newEntries].slice(-50),
498
+ });
499
+ await ctx.store.set(worldFresh);
500
+ console.log(`[sim] round ${num} done: ${newEntries.length} events`);
501
+ }
502
+ // Main loop
503
+ (async () => {
504
+ console.log(`[sim] started on ${wp}`);
505
+ while (!stopped) {
506
+ try {
507
+ const w = await ctx.store.get(wp);
508
+ const cfg = w ? getComponent(w, SimConfig) : null;
509
+ if (cfg?.running)
510
+ await runRound();
511
+ await new Promise((r) => setTimeout(r, cfg?.roundDelay ?? 5000));
512
+ }
513
+ catch (e) {
514
+ if (e?.message?.startsWith('OptimisticConcurrencyError')) {
515
+ continue;
516
+ }
517
+ console.error('[sim] error:', e);
518
+ await new Promise((r) => setTimeout(r, 5000));
519
+ }
520
+ }
521
+ })();
522
+ return {
523
+ stop: async () => {
524
+ stopped = true;
525
+ },
526
+ };
527
+ });
528
+ //# sourceMappingURL=service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../sim/service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ /** Agent 2D map position and interaction radius */
2
+ export declare class SimPosition {
3
+ x: number;
4
+ y: number;
5
+ radius: number;
6
+ }
7
+ /** Agent identity — name, icon, description */
8
+ export declare class SimDescriptive {
9
+ name: string;
10
+ icon: string;
11
+ /** @format textarea */
12
+ description: string;
13
+ }
14
+ /** Agent memory — accumulated observations */
15
+ export declare class SimMemory {
16
+ entries: string[];
17
+ }
18
+ /** Simulation world config — dimensions, round timing */
19
+ export declare class SimConfig {
20
+ width: number;
21
+ height: number;
22
+ roundDelay: number;
23
+ running: boolean;
24
+ model?: string;
25
+ }
26
+ /** Current simulation round — phase and event log */
27
+ export declare class SimRound {
28
+ current: number;
29
+ phase: string;
30
+ log: EventEntry[];
31
+ }
32
+ /** Agent event inbox — received events per round */
33
+ export declare class SimEvents {
34
+ entries: AgentEvent[];
35
+ }
36
+ /** Agent AI config — system prompt and model override */
37
+ export declare class SimAi {
38
+ /** @format textarea */
39
+ systemPrompt: string;
40
+ model?: string;
41
+ }
42
+ /** Proximity cache — nearby agents within radius */
43
+ export declare class SimNearby {
44
+ agents: string[];
45
+ }
46
+ export type AgentEvent = {
47
+ round: number;
48
+ type: string;
49
+ from: string;
50
+ to?: string;
51
+ data: Record<string, unknown>;
52
+ ts: number;
53
+ };
54
+ export type EventEntry = {
55
+ round: number;
56
+ agent: string;
57
+ icon: string;
58
+ action: string;
59
+ data: Record<string, unknown>;
60
+ heardBy?: string[];
61
+ ts: number;
62
+ };
63
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../sim/types.ts"],"names":[],"mappings":"AAKA,mDAAmD;AACnD,qBAAa,WAAW;IACtB,CAAC,SAAK;IACN,CAAC,SAAK;IACN,MAAM,SAAO;CACd;AAED,+CAA+C;AAC/C,qBAAa,cAAc;IACzB,IAAI,SAAM;IACV,IAAI,SAAM;IACV,uBAAuB;IACvB,WAAW,SAAM;CAClB;AAED,8CAA8C;AAC9C,qBAAa,SAAS;IACpB,OAAO,EAAE,MAAM,EAAE,CAAM;CACxB;AAED,yDAAyD;AACzD,qBAAa,SAAS;IACpB,KAAK,SAAO;IACZ,MAAM,SAAO;IACb,UAAU,SAAQ;IAClB,OAAO,UAAS;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qDAAqD;AACrD,qBAAa,QAAQ;IACnB,OAAO,SAAK;IACZ,KAAK,SAAU;IACf,GAAG,EAAE,UAAU,EAAE,CAAM;CACxB;AAED,oDAAoD;AACpD,qBAAa,SAAS;IACpB,OAAO,EAAE,UAAU,EAAE,CAAM;CAC5B;AAED,yDAAyD;AACzD,qBAAa,KAAK;IAChB,uBAAuB;IACvB,YAAY,SAAM;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,oDAAoD;AACpD,qBAAa,SAAS;IACpB,MAAM,EAAE,MAAM,EAAE,CAAM;CACvB;AAGD,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAGF,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC"}