@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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../table/view.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,199 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { isComponent, register } from '@treenity/core';
3
+ import { Render, RenderContext } from '@treenity/react/context';
4
+ import { useChildren } from '@treenity/react/hooks';
5
+ import { useSchema } from '@treenity/react/schema-loader';
6
+ import { Button } from '@treenity/react/ui/button';
7
+ import { Input } from '@treenity/react/ui/input';
8
+ import { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, } from '@treenity/react/ui/pagination';
9
+ import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@treenity/react/ui/table';
10
+ import { useMemo } from 'react';
11
+ import { useDebouncedSync } from './use-debounced-sync';
12
+ // ── Helpers ──
13
+ function resolveField(child, field) {
14
+ if (!field)
15
+ return child;
16
+ const val = child[field];
17
+ if (val && typeof val === 'object')
18
+ return val;
19
+ return child;
20
+ }
21
+ function resolveDisplayType(field, comp) {
22
+ if (!field)
23
+ return comp.$type ?? '';
24
+ const val = comp;
25
+ return val.$type ?? '';
26
+ }
27
+ function cellValue(row, field) {
28
+ return row[field];
29
+ }
30
+ function formatCell(val) {
31
+ if (val == null || val === '')
32
+ return '—';
33
+ if (typeof val === 'boolean')
34
+ return val ? 'Yes' : 'No';
35
+ if (typeof val === 'object')
36
+ return JSON.stringify(val);
37
+ return String(val);
38
+ }
39
+ function CellValue({ value }) {
40
+ if (isComponent(value))
41
+ return _jsx(Render, { value: value });
42
+ return _jsx(_Fragment, { children: formatCell(value) });
43
+ }
44
+ function buildColumnsFromSchema(schema) {
45
+ if (!schema.properties)
46
+ return [];
47
+ return Object.entries(schema.properties)
48
+ .filter(([k]) => !k.startsWith('$'))
49
+ .map(([field, prop]) => ({
50
+ field,
51
+ label: prop.title || field,
52
+ visible: true,
53
+ }));
54
+ }
55
+ function buildColumnsFromData(rows) {
56
+ const keys = new Set();
57
+ for (const row of rows.slice(0, 20)) {
58
+ for (const k of Object.keys(row)) {
59
+ if (!k.startsWith('$'))
60
+ keys.add(k);
61
+ }
62
+ }
63
+ return [...keys].map(field => ({ field, label: field, visible: true }));
64
+ }
65
+ // ── Table View ──
66
+ const TABLE_DEFAULTS = { displayType: '', field: '', pageSize: 25, page: 0, sort: '', sortDir: 'asc', columns: {} };
67
+ function TableView({ value, ctx }) {
68
+ if (!ctx?.node)
69
+ throw new Error('TableView: no node context');
70
+ const node = ctx.node;
71
+ const componentKey = useMemo(() => {
72
+ for (const [k, v] of Object.entries(node)) {
73
+ if (v === value)
74
+ return k;
75
+ }
76
+ for (const [k, v] of Object.entries(node)) {
77
+ if (v && typeof v === 'object' && v.$type === 'ui.table')
78
+ return k;
79
+ }
80
+ return 'table';
81
+ }, [node, value]);
82
+ const [state, update] = useDebouncedSync(node, componentKey, TABLE_DEFAULTS);
83
+ const children = useChildren(node.$path, { watch: true, limit: 1000 });
84
+ // Collect unique types from children (resolved through field)
85
+ const { typeMap, types } = useMemo(() => {
86
+ const map = new Map();
87
+ for (const child of children) {
88
+ const resolved = resolveField(child, state.field);
89
+ const dt = resolveDisplayType(state.field, resolved);
90
+ if (!dt)
91
+ continue;
92
+ const arr = map.get(dt) ?? [];
93
+ arr.push(child);
94
+ map.set(dt, arr);
95
+ }
96
+ return { typeMap: map, types: [...map.keys()] };
97
+ }, [children, state.field]);
98
+ // Active display type
99
+ const activeType = state.displayType && types.includes(state.displayType)
100
+ ? state.displayType
101
+ : types[0] ?? '';
102
+ // Rows for active type
103
+ const rawRows = useMemo(() => {
104
+ const matched = typeMap.get(activeType) ?? [];
105
+ return matched.map(child => ({
106
+ $path: child.$path,
107
+ data: resolveField(child, state.field),
108
+ }));
109
+ }, [typeMap, activeType, state.field]);
110
+ // Columns: from saved config, schema, or data
111
+ const schema = useSchema(activeType);
112
+ const columns = useMemo(() => {
113
+ const saved = state.columns[activeType];
114
+ if (saved?.length)
115
+ return saved.filter(c => c.visible !== false);
116
+ if (schema)
117
+ return buildColumnsFromSchema(schema);
118
+ if (rawRows.length)
119
+ return buildColumnsFromData(rawRows.map(r => r.data));
120
+ return [];
121
+ }, [state.columns, activeType, schema, rawRows]);
122
+ // Filter
123
+ const filtered = useMemo(() => {
124
+ return rawRows.filter(row => {
125
+ for (const col of columns) {
126
+ if (!col.filter)
127
+ continue;
128
+ const val = formatCell(cellValue(row.data, col.field));
129
+ if (!val.toLowerCase().includes(col.filter.toLowerCase()))
130
+ return false;
131
+ }
132
+ return true;
133
+ });
134
+ }, [rawRows, columns]);
135
+ // Sort
136
+ const sorted = useMemo(() => {
137
+ if (!state.sort)
138
+ return filtered;
139
+ const dir = state.sortDir === 'desc' ? -1 : 1;
140
+ return [...filtered].sort((a, b) => {
141
+ const va = cellValue(a.data, state.sort);
142
+ const vb = cellValue(b.data, state.sort);
143
+ if (va == null && vb == null)
144
+ return 0;
145
+ if (va == null)
146
+ return 1;
147
+ if (vb == null)
148
+ return -1;
149
+ if (typeof va === 'number' && typeof vb === 'number')
150
+ return (va - vb) * dir;
151
+ return String(va).localeCompare(String(vb)) * dir;
152
+ });
153
+ }, [filtered, state.sort, state.sortDir]);
154
+ // Paginate
155
+ const totalPages = Math.max(1, Math.ceil(sorted.length / (state.pageSize || 25)));
156
+ const page = Math.min(state.page || 0, totalPages - 1);
157
+ const pageRows = sorted.slice(page * state.pageSize, (page + 1) * state.pageSize);
158
+ // Handlers
159
+ const toggleSort = (field) => {
160
+ if (state.sort === field) {
161
+ update({ sortDir: state.sortDir === 'asc' ? 'desc' : 'asc' });
162
+ }
163
+ else {
164
+ update({ sort: field, sortDir: 'asc' });
165
+ }
166
+ };
167
+ const setColumnFilter = (field, filter) => {
168
+ const current = (state.columns ?? {})[activeType] ?? columns;
169
+ const next = current.map(c => c.field === field ? { ...c, filter } : c);
170
+ update({ columns: { ...(state.columns ?? {}), [activeType]: next }, page: 0 });
171
+ };
172
+ const setPage = (p) => update({ page: p });
173
+ const setDisplayType = (dt) => {
174
+ update({ displayType: dt, page: 0 });
175
+ };
176
+ return (_jsxs("div", { className: "flex flex-col gap-2 text-sm", children: [_jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [types.length > 1 && types.map(t => (_jsxs(Button, { variant: t === activeType ? 'default' : 'outline', size: "sm", className: "h-6 text-xs", onClick: () => setDisplayType(t), children: [t, " ", _jsxs("span", { className: "ml-1 text-muted-foreground", children: ["(", typeMap.get(t)?.length ?? 0, ")"] })] }, t))), _jsxs("span", { className: "ml-auto text-xs text-muted-foreground", children: [sorted.length, " row", sorted.length !== 1 ? 's' : ''] })] }), columns.length > 0 ? (_jsx(RenderContext, { name: "react:compact:cell", children: _jsx("div", { className: "rounded-md border border-border", children: _jsxs(Table, { className: "text-xs", children: [_jsxs(TableHeader, { children: [_jsx(TableRow, { children: columns.map(col => (_jsxs(TableHead, { className: "h-8 cursor-pointer select-none text-xs hover:text-foreground", onClick: () => toggleSort(col.field), children: [_jsx("span", { children: col.label ?? col.field }), state.sort === col.field && (_jsx("span", { className: "ml-1 text-primary", children: state.sortDir === 'asc' ? '↑' : '↓' }))] }, col.field))) }), _jsx(TableRow, { className: "hover:bg-transparent", children: columns.map(col => (_jsx(TableHead, { className: "h-auto px-1 py-1", children: _jsx(Input, { type: "text", placeholder: "filter", className: "h-6 text-xs", value: col.filter ?? '', onChange: e => setColumnFilter(col.field, e.target.value) }) }, col.field))) })] }), _jsxs(TableBody, { children: [pageRows.map(row => (_jsx(TableRow, { children: columns.map(col => (_jsx(TableCell, { className: "max-w-[300px] truncate", children: _jsx(CellValue, { value: cellValue(row.data, col.field) }) }, col.field))) }, row.$path))), pageRows.length === 0 && (_jsx(TableRow, { children: _jsx(TableCell, { colSpan: columns.length, className: "py-4 text-center text-muted-foreground", children: "No data" }) }))] })] }) }) })) : (_jsx("div", { className: "py-4 text-center text-muted-foreground", children: "No children or schema" })), totalPages > 1 && (_jsx(TablePagination, { page: page, totalPages: totalPages, onPageChange: setPage }))] }));
177
+ }
178
+ // ── Pagination ──
179
+ function pageRange(current, total) {
180
+ if (total <= 7)
181
+ return Array.from({ length: total }, (_, i) => i);
182
+ const pages = [0];
183
+ if (current > 2)
184
+ pages.push('ellipsis');
185
+ const start = Math.max(1, current - 1);
186
+ const end = Math.min(total - 2, current + 1);
187
+ for (let i = start; i <= end; i++)
188
+ pages.push(i);
189
+ if (current < total - 3)
190
+ pages.push('ellipsis');
191
+ pages.push(total - 1);
192
+ return pages;
193
+ }
194
+ function TablePagination({ page, totalPages, onPageChange }) {
195
+ const pages = pageRange(page, totalPages);
196
+ return (_jsx(Pagination, { className: "justify-start", children: _jsxs(PaginationContent, { className: "gap-0.5", children: [_jsx(PaginationItem, { children: _jsx(PaginationPrevious, { className: "h-7 cursor-pointer text-xs [&>span]:hidden", onClick: () => page > 0 && onPageChange(page - 1), "aria-disabled": page === 0, tabIndex: page === 0 ? -1 : undefined }) }), pages.map((p, i) => p === 'ellipsis' ? (_jsx(PaginationItem, { children: _jsx(PaginationEllipsis, { className: "size-7" }) }, `e${i}`)) : (_jsx(PaginationItem, { children: _jsx(PaginationLink, { className: "h-7 w-7 cursor-pointer text-xs", isActive: p === page, onClick: () => onPageChange(p), children: p + 1 }) }, p))), _jsx(PaginationItem, { children: _jsx(PaginationNext, { className: "h-7 cursor-pointer text-xs [&>span]:hidden", onClick: () => page < totalPages - 1 && onPageChange(page + 1), "aria-disabled": page >= totalPages - 1, tabIndex: page >= totalPages - 1 ? -1 : undefined }) })] }) }));
197
+ }
198
+ register('ui.table', 'react', TableView);
199
+ //# sourceMappingURL=view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.js","sourceRoot":"","sources":["../../table/view.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import './types';
2
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../tasks/server.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ import './types';
2
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../tasks/server.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,CAAC"}
@@ -0,0 +1,22 @@
1
+ /** Agent task — question/answer workflow with status tracking */
2
+ export declare class Task {
3
+ status: string;
4
+ /** @format textarea */
5
+ question: string;
6
+ from: string;
7
+ /** @format textarea */
8
+ answer: string;
9
+ answeredBy: string;
10
+ answeredAt: number;
11
+ /** @description Answer the task — sets status to answered */
12
+ respond(data: {
13
+ answer: string;
14
+ by?: string;
15
+ }): void;
16
+ /** @description Reject the task — sets status to rejected with optional reason */
17
+ reject(data: {
18
+ reason?: string;
19
+ by?: string;
20
+ }): void;
21
+ }
22
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../tasks/types.ts"],"names":[],"mappings":"AAKA,iEAAiE;AACjE,qBAAa,IAAI;IACf,MAAM,EAAE,MAAM,CAAa;IAC3B,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAM;IACtB,IAAI,EAAE,MAAM,CAAM;IAClB,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAM;IACpB,UAAU,EAAE,MAAM,CAAM;IACxB,UAAU,EAAE,MAAM,CAAK;IAEvB,6DAA6D;IAC7D,OAAO,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE;IAQ7C,kFAAkF;IAClF,MAAM,CAAC,IAAI,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE;CAO9C"}
@@ -0,0 +1,34 @@
1
+ // Task type — agents create tasks, Claude (or humans) answer them
2
+ // Spatial routing: status change → node "moves" between query mount folders
3
+ import { registerType } from '@treenity/core/comp';
4
+ /** Agent task — question/answer workflow with status tracking */
5
+ export class Task {
6
+ status = 'pending';
7
+ /** @format textarea */
8
+ question = '';
9
+ from = '';
10
+ /** @format textarea */
11
+ answer = '';
12
+ answeredBy = '';
13
+ answeredAt = 0;
14
+ /** @description Answer the task — sets status to answered */
15
+ respond(data) {
16
+ if (this.status !== 'pending')
17
+ throw new Error(`Task already ${this.status}`);
18
+ this.status = 'answered';
19
+ this.answer = data.answer;
20
+ this.answeredBy = data.by ?? 'claude';
21
+ this.answeredAt = Date.now();
22
+ }
23
+ /** @description Reject the task — sets status to rejected with optional reason */
24
+ reject(data) {
25
+ if (this.status !== 'pending')
26
+ throw new Error(`Task already ${this.status}`);
27
+ this.status = 'rejected';
28
+ this.answer = data.reason ?? '';
29
+ this.answeredBy = data.by ?? 'claude';
30
+ this.answeredAt = Date.now();
31
+ }
32
+ }
33
+ registerType('task', Task);
34
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../tasks/types.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,4EAA4E;AAE5E,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,iEAAiE;AACjE,MAAM,OAAO,IAAI;IACf,MAAM,GAAW,SAAS,CAAC;IAC3B,uBAAuB;IACvB,QAAQ,GAAW,EAAE,CAAC;IACtB,IAAI,GAAW,EAAE,CAAC;IAClB,uBAAuB;IACvB,MAAM,GAAW,EAAE,CAAC;IACpB,UAAU,GAAW,EAAE,CAAC;IACxB,UAAU,GAAW,CAAC,CAAC;IAEvB,6DAA6D;IAC7D,OAAO,CAAC,IAAqC;QAC3C,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9E,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,IAAI,QAAQ,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC/B,CAAC;IAED,kFAAkF;IAClF,MAAM,CAAC,IAAsC;QAC3C,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9E,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,IAAI,QAAQ,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC/B,CAAC;CACF;AAED,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import './view';
2
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../three/client.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAC"}
@@ -0,0 +1,2 @@
1
+ import './view';
2
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../three/client.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=seed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../../three/seed.ts"],"names":[],"mappings":""}
@@ -0,0 +1,45 @@
1
+ import { registerPrefab } from '@treenity/core/mod';
2
+ registerPrefab('three', 'seed', [
3
+ { $path: 'demo', $type: 'dir' },
4
+ { $path: 'demo/three', $type: 'dir' },
5
+ { $path: 'demo/three/scene', $type: 't3d.scene' },
6
+ // Ground plane
7
+ { $path: 'demo/three/scene/ground', $type: 't3d.object',
8
+ px: 0, py: -0.5, pz: 0, rx: -Math.PI / 2, ry: 0, rz: 0, sx: 1, sy: 1, sz: 1,
9
+ mesh: { $type: 't3d.mesh', geometry: 'plane', width: 10, depth: 10, color: '#334155', roughness: 0.9, receiveShadow: true, castShadow: false },
10
+ },
11
+ // Spinning cube
12
+ { $path: 'demo/three/scene/cube', $type: 't3d.object',
13
+ px: 0, py: 0.5, pz: 0, rx: 0, ry: 0, rz: 0, sx: 1, sy: 1, sz: 1,
14
+ mesh: { $type: 't3d.mesh', geometry: 'box', color: '#6366f1' },
15
+ script: { $type: 't3d.script', code: 'ctx.ref.rotation.y += ctx.dt;', active: true },
16
+ },
17
+ // Metallic sphere
18
+ { $path: 'demo/three/scene/sphere', $type: 't3d.object',
19
+ px: 2, py: 0.5, pz: 0, rx: 0, ry: 0, rz: 0, sx: 1, sy: 1, sz: 1,
20
+ mesh: { $type: 't3d.mesh', geometry: 'sphere', width: 0.5, color: '#f59e0b', metalness: 0.8, roughness: 0.2 },
21
+ },
22
+ // Directional light (sun)
23
+ { $path: 'demo/three/scene/sun', $type: 't3d.object',
24
+ px: 5, py: 10, pz: 5, rx: 0, ry: 0, rz: 0, sx: 1, sy: 1, sz: 1,
25
+ light: { $type: 't3d.light', kind: 'directional', intensity: 1.5, castShadow: true },
26
+ },
27
+ // Ambient fill
28
+ { $path: 'demo/three/scene/ambient', $type: 't3d.object',
29
+ px: 0, py: 0, pz: 0, rx: 0, ry: 0, rz: 0, sx: 1, sy: 1, sz: 1,
30
+ light: { $type: 't3d.light', kind: 'ambient', intensity: 0.3 },
31
+ },
32
+ // Nested group
33
+ { $path: 'demo/three/scene/group', $type: 't3d.object',
34
+ px: -2, py: 0, pz: 0, rx: 0, ry: 0, rz: 0, sx: 1, sy: 1, sz: 1 },
35
+ { $path: 'demo/three/scene/group/torus', $type: 't3d.object',
36
+ px: 0, py: 0.5, pz: 0, rx: 0, ry: 0, rz: 0, sx: 1, sy: 1, sz: 1,
37
+ mesh: { $type: 't3d.mesh', geometry: 'torus', width: 0.4, color: '#ec4899' },
38
+ script: { $type: 't3d.script', code: 'ctx.ref.rotation.x += ctx.dt * 0.7;', active: true },
39
+ },
40
+ { $path: 'demo/three/scene/group/cone', $type: 't3d.object',
41
+ px: 0, py: 1.5, pz: 0, rx: 0, ry: 0, rz: 0, sx: 1, sy: 1, sz: 1,
42
+ mesh: { $type: 't3d.mesh', geometry: 'cone', width: 0.3, height: 0.6, color: '#10b981' },
43
+ },
44
+ ]);
45
+ //# sourceMappingURL=seed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seed.js","sourceRoot":"","sources":["../../three/seed.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import './types';
2
+ import './seed';
3
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../three/server.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,CAAC;AACjB,OAAO,QAAQ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import './types';
2
+ import './seed';
3
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../three/server.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,CAAC;AACjB,OAAO,QAAQ,CAAC"}
@@ -0,0 +1,178 @@
1
+ /** @title 3D Scene — root container for the Three.js viewport */
2
+ export declare class T3dScene {
3
+ }
4
+ /** @title 3D Object — spatial entity in the scene graph */
5
+ export declare class T3dObject {
6
+ /** @title Position X */ px: number;
7
+ /** @title Position Y */ py: number;
8
+ /** @title Position Z */ pz: number;
9
+ /** @title Rotation X (rad) */ rx: number;
10
+ /** @title Rotation Y (rad) */ ry: number;
11
+ /** @title Rotation Z (rad) */ rz: number;
12
+ /** @title Scale X */ sx: number;
13
+ /** @title Scale Y */ sy: number;
14
+ /** @title Scale Z */ sz: number;
15
+ }
16
+ /** @title 3D Mesh — geometry shape */
17
+ export declare class T3dMesh {
18
+ /** @title Geometry */ geometry: 'box' | 'sphere' | 'plane' | 'cylinder' | 'torus' | 'cone' | 'capsule' | 'ring' | 'dodecahedron' | 'icosahedron' | 'octahedron';
19
+ /** @title Width / Radius */ width: number;
20
+ /** @title Height */ height: number;
21
+ /** @title Depth */ depth: number;
22
+ /** @title Segments */ segments: number;
23
+ /** @title Cast Shadow */ castShadow: boolean;
24
+ /** @title Receive Shadow */ receiveShadow: boolean;
25
+ }
26
+ /** @title 3D Material — surface appearance */
27
+ export declare class T3dMaterial {
28
+ /** @title Type */ kind: 'standard' | 'physical' | 'basic' | 'phong' | 'toon' | 'lambert';
29
+ /** @title Color */ color: string;
30
+ /** @title Emissive Color */ emissive: string;
31
+ /** @title Emissive Intensity */ emissiveIntensity: number;
32
+ /** @title Metalness */ metalness: number;
33
+ /** @title Roughness */ roughness: number;
34
+ /** @title Opacity */ opacity: number;
35
+ /** @title Transparent */ transparent: boolean;
36
+ /** @title Wireframe */ wireframe: boolean;
37
+ /** @title Side */ side: 'front' | 'back' | 'double';
38
+ /** @title Flat Shading */ flatShading: boolean;
39
+ /** @title Texture URL */ map: string;
40
+ /** @title Normal Map URL */ normalMap: string;
41
+ /** @title Roughness Map URL */ roughnessMap: string;
42
+ /** @title Metalness Map URL */ metalnessMap: string;
43
+ /** @title Emissive Map URL */ emissiveMap: string;
44
+ /** @title AO Map URL */ aoMap: string;
45
+ /** @title Env Map Intensity */ envMapIntensity: number;
46
+ }
47
+ /** @title 3D Light — light source */
48
+ export declare class T3dLight {
49
+ /** @title Kind */ kind: 'point' | 'directional' | 'spot' | 'ambient' | 'hemisphere' | 'rect-area';
50
+ /** @title Color */ color: string;
51
+ /** @title Ground Color (hemisphere) */ groundColor: string;
52
+ /** @title Intensity */ intensity: number;
53
+ /** @title Distance (0=infinite) */ distance: number;
54
+ /** @title Decay */ decay: number;
55
+ /** @title Cast Shadow */ castShadow: boolean;
56
+ /** @title Spot Angle */ angle: number;
57
+ /** @title Spot Penumbra */ penumbra: number;
58
+ /** @title Shadow Map Size */ shadowMapSize: number;
59
+ /** @title Rect Width */ rectWidth: number;
60
+ /** @title Rect Height */ rectHeight: number;
61
+ }
62
+ /** @title 3D Camera */
63
+ export declare class T3dCamera {
64
+ /** @title Kind */ kind: 'perspective' | 'orthographic';
65
+ /** @title FOV */ fov: number;
66
+ /** @title Near Clip */ near: number;
67
+ /** @title Far Clip */ far: number;
68
+ /** @title Ortho Size */ orthoSize: number;
69
+ /** @title Active */ active: boolean;
70
+ }
71
+ /** @title 3D Rigidbody — physics body */
72
+ export declare class T3dRigidbody {
73
+ /** @title Kind */ kind: 'dynamic' | 'static' | 'kinematic';
74
+ /** @title Mass */ mass: number;
75
+ /** @title Linear Drag */ linearDamping: number;
76
+ /** @title Angular Drag */ angularDamping: number;
77
+ /** @title Use Gravity */ useGravity: boolean;
78
+ /** @title Freeze Position X */ freezePx: boolean;
79
+ /** @title Freeze Position Y */ freezePy: boolean;
80
+ /** @title Freeze Position Z */ freezePz: boolean;
81
+ /** @title Freeze Rotation X */ freezeRx: boolean;
82
+ /** @title Freeze Rotation Y */ freezeRy: boolean;
83
+ /** @title Freeze Rotation Z */ freezeRz: boolean;
84
+ }
85
+ /** @title 3D Collider — collision shape */
86
+ export declare class T3dCollider {
87
+ /** @title Shape */ shape: 'box' | 'sphere' | 'capsule' | 'cylinder' | 'mesh' | 'convex';
88
+ /** @title Is Trigger */ isTrigger: boolean;
89
+ /** @title Size X */ sizeX: number;
90
+ /** @title Size Y */ sizeY: number;
91
+ /** @title Size Z */ sizeZ: number;
92
+ /** @title Radius */ radius: number;
93
+ /** @title Offset X */ offsetX: number;
94
+ /** @title Offset Y */ offsetY: number;
95
+ /** @title Offset Z */ offsetZ: number;
96
+ /** @title Friction */ friction: number;
97
+ /** @title Restitution (bounce) */ restitution: number;
98
+ }
99
+ /** @title 3D Audio — positional sound */
100
+ export declare class T3dAudio {
101
+ /** @title Source URL */ src: string;
102
+ /** @title Volume */ volume: number;
103
+ /** @title Loop */ loop: boolean;
104
+ /** @title Autoplay */ autoplay: boolean;
105
+ /** @title Spatial */ spatial: boolean;
106
+ /** @title Ref Distance */ refDistance: number;
107
+ /** @title Max Distance */ maxDistance: number;
108
+ /** @title Rolloff Factor */ rolloffFactor: number;
109
+ }
110
+ /** @title 3D Particles — particle emitter */
111
+ export declare class T3dParticles {
112
+ /** @title Count */ count: number;
113
+ /** @title Size */ size: number;
114
+ /** @title Color */ color: string;
115
+ /** @title Lifetime (s) */ lifetime: number;
116
+ /** @title Speed */ speed: number;
117
+ /** @title Spread */ spread: number;
118
+ /** @title Shape */ shape: 'sphere' | 'cone' | 'box' | 'point';
119
+ /** @title Emitter */ emitter: 'point' | 'volume';
120
+ /** @title Particle Shape */ particleShape: 'sphere' | 'triangle' | 'plane';
121
+ /** @title Gravity */ gravity: number;
122
+ /** @title Size Over Lifetime */ sizeOverLifetime: boolean;
123
+ /** @title Opacity Over Lifetime */ opacityOverLifetime: boolean;
124
+ /** @title Emissive */ emissive: boolean;
125
+ /** @title Loop */ loop: boolean;
126
+ }
127
+ /** @title 3D Text — floating text in scene */
128
+ export declare class T3dText {
129
+ /** @title Text @format textarea */ text: string;
130
+ /** @title Font Size */ fontSize: number;
131
+ /** @title Color */ color: string;
132
+ /** @title Max Width */ maxWidth: number;
133
+ /** @title Align */ align: 'left' | 'center' | 'right';
134
+ /** @title Anchor X */ anchorX: 'left' | 'center' | 'right';
135
+ /** @title Anchor Y */ anchorY: 'top' | 'middle' | 'bottom';
136
+ /** @title Billboard (face camera) */ billboard: boolean;
137
+ /** @title Outline Width */ outlineWidth: number;
138
+ /** @title Outline Color */ outlineColor: string;
139
+ }
140
+ /** @title 3D Animator — animation state */
141
+ export declare class T3dAnimator {
142
+ /** @title GLTF URL */ src: string;
143
+ /** @title Current Clip */ clip: string;
144
+ /** @title Playing */ playing: boolean;
145
+ /** @title Loop */ loop: boolean;
146
+ /** @title Speed */ speed: number;
147
+ /** @title Crossfade Duration (s) */ crossfadeDuration: number;
148
+ }
149
+ /** @title 3D LOD — level of detail */
150
+ export declare class T3dLod {
151
+ /** @title Distance 0 (high) */ d0: number;
152
+ /** @title Distance 1 (mid) */ d1: number;
153
+ /** @title Distance 2 (low) */ d2: number;
154
+ }
155
+ /** @title 3D Trail — trail renderer behind moving objects */
156
+ export declare class T3dTrail {
157
+ /** @title Width */ width: number;
158
+ /** @title Length (s) */ length: number;
159
+ /** @title Color Start */ colorStart: string;
160
+ /** @title Color End */ colorEnd: string;
161
+ /** @title Attenuation */ attenuation: 'linear' | 'squared' | 'none';
162
+ }
163
+ /** @title 3D Line Renderer */
164
+ export declare class T3dLine {
165
+ /** @title Color */ color: string;
166
+ /** @title Line Width */ lineWidth: number;
167
+ /** @title Dashed */ dashed: boolean;
168
+ /** @title Dash Size */ dashSize: number;
169
+ /** @title Gap Size */ gapSize: number;
170
+ /** @title Points (JSON array of [x,y,z]) @format textarea */ points: string;
171
+ }
172
+ /** @title 3D Script — client-side update loop */
173
+ export declare class T3dScript {
174
+ /** @title Code @format textarea */
175
+ code: string;
176
+ /** @title Active */ active: boolean;
177
+ }
178
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../three/types.ts"],"names":[],"mappings":"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"}