@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 @@
1
+ {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../brahman/view.tsx"],"names":[],"mappings":"AAIA,OAAO,SAAS,CAAC"}
@@ -0,0 +1,47 @@
1
+ // Brahman — view registrations
2
+ // Registers react + react:list handlers for all brahman types
3
+ import { register } from '@treenity/core';
4
+ import './types';
5
+ import { ActionListItem, BackEditor, BroadcastEditor, EmitTextEditor, EvalEditor, FileEditor, ForwardEditor, GetValueEditor, IfElseEditor, KeywordSelectEditor, MessageEditor, OnErrorEditor, PageNavEditor, ParamsEditor, QuestionEditor, RemoveEditor, ResetHistoryEditor, ResetSessionEditor, SelectLanguageEditor, SetValueEditor, TagEditor, } from './views/action-cards';
6
+ import { BotView } from './views/bot-view';
7
+ import { PageChatEditor } from './views/chat-editor';
8
+ import { PageChatPreview } from './views/chat-preview';
9
+ import { PageLayoutView } from './views/page-layout';
10
+ // ── Node-level views (react context) ──
11
+ register('brahman.bot', 'react', BotView);
12
+ register('brahman.page', 'react', PageLayoutView);
13
+ register('brahman.page', 'react:chat', PageChatPreview);
14
+ register('brahman.page', 'react:chat:edit', PageChatEditor);
15
+ register('brahman.action.message', 'react', MessageEditor);
16
+ register('brahman.action.question', 'react', QuestionEditor);
17
+ register('brahman.action.ifelse', 'react', IfElseEditor);
18
+ register('brahman.action.page', 'react', PageNavEditor);
19
+ register('brahman.action.back', 'react', BackEditor);
20
+ register('brahman.action.tag', 'react', TagEditor);
21
+ register('brahman.action.broadcast', 'react', BroadcastEditor);
22
+ register('brahman.action.getvalue', 'react', GetValueEditor);
23
+ register('brahman.action.setvalue', 'react', SetValueEditor);
24
+ register('brahman.action.params', 'react', ParamsEditor);
25
+ register('brahman.action.file', 'react', FileEditor);
26
+ register('brahman.action.eval', 'react', EvalEditor);
27
+ register('brahman.action.remove', 'react', RemoveEditor);
28
+ register('brahman.action.emittext', 'react', EmitTextEditor);
29
+ register('brahman.action.forward', 'react', ForwardEditor);
30
+ register('brahman.action.resetsession', 'react', ResetSessionEditor);
31
+ register('brahman.action.resethistory', 'react', ResetHistoryEditor);
32
+ register('brahman.action.onerror', 'react', OnErrorEditor);
33
+ register('brahman.action.keywordselect', 'react', KeywordSelectEditor);
34
+ register('brahman.action.selectlang', 'react', SelectLanguageEditor);
35
+ // ── Compact list items (react:list context) ──
36
+ const listTypes = [
37
+ 'brahman.action.message', 'brahman.action.question', 'brahman.action.ifelse',
38
+ 'brahman.action.page', 'brahman.action.back', 'brahman.action.tag',
39
+ 'brahman.action.broadcast', 'brahman.action.getvalue', 'brahman.action.setvalue',
40
+ 'brahman.action.params', 'brahman.action.file', 'brahman.action.eval',
41
+ 'brahman.action.remove', 'brahman.action.emittext', 'brahman.action.forward',
42
+ 'brahman.action.resetsession', 'brahman.action.resethistory', 'brahman.action.onerror',
43
+ 'brahman.action.keywordselect', 'brahman.action.selectlang',
44
+ ];
45
+ for (const t of listTypes)
46
+ register(t, 'react:list', ActionListItem);
47
+ //# sourceMappingURL=view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.js","sourceRoot":"","sources":["../../brahman/view.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ import type { NodeData } from '@treenity/core';
2
+ import { type ReactNode } from 'react';
3
+ export declare function actionIcon(type: string): ReactNode;
4
+ export declare function actionSummary(node: NodeData): string;
5
+ export declare function MessageEditor({ value }: {
6
+ value: NodeData;
7
+ }): import("react/jsx-runtime").JSX.Element | null;
8
+ export declare function QuestionEditor({ value }: {
9
+ value: NodeData;
10
+ }): import("react/jsx-runtime").JSX.Element | null;
11
+ export declare function IfElseEditor({ value }: {
12
+ value: NodeData;
13
+ }): import("react/jsx-runtime").JSX.Element | null;
14
+ export declare function PageNavEditor({ value }: {
15
+ value: NodeData;
16
+ }): import("react/jsx-runtime").JSX.Element | null;
17
+ export declare function BackEditor(): import("react/jsx-runtime").JSX.Element;
18
+ export declare function TagEditor({ value }: {
19
+ value: NodeData;
20
+ }): import("react/jsx-runtime").JSX.Element | null;
21
+ export declare function BroadcastEditor({ value }: {
22
+ value: NodeData;
23
+ }): import("react/jsx-runtime").JSX.Element | null;
24
+ export declare function GetValueEditor({ value }: {
25
+ value: NodeData;
26
+ }): import("react/jsx-runtime").JSX.Element | null;
27
+ export declare function SetValueEditor({ value }: {
28
+ value: NodeData;
29
+ }): import("react/jsx-runtime").JSX.Element | null;
30
+ export declare function ParamsEditor({ value }: {
31
+ value: NodeData;
32
+ }): import("react/jsx-runtime").JSX.Element | null;
33
+ export declare function FileEditor({ value }: {
34
+ value: NodeData;
35
+ }): import("react/jsx-runtime").JSX.Element | null;
36
+ export declare function EvalEditor({ value }: {
37
+ value: NodeData;
38
+ }): import("react/jsx-runtime").JSX.Element | null;
39
+ export declare function RemoveEditor(): import("react/jsx-runtime").JSX.Element;
40
+ export declare function EmitTextEditor({ value }: {
41
+ value: NodeData;
42
+ }): import("react/jsx-runtime").JSX.Element | null;
43
+ export declare function ForwardEditor({ value }: {
44
+ value: NodeData;
45
+ }): import("react/jsx-runtime").JSX.Element | null;
46
+ export declare function ResetSessionEditor(): import("react/jsx-runtime").JSX.Element;
47
+ export declare function ResetHistoryEditor(): import("react/jsx-runtime").JSX.Element;
48
+ export declare function OnErrorEditor({ value }: {
49
+ value: NodeData;
50
+ }): import("react/jsx-runtime").JSX.Element | null;
51
+ export declare function KeywordSelectEditor({ value }: {
52
+ value: NodeData;
53
+ }): import("react/jsx-runtime").JSX.Element | null;
54
+ export declare function SelectLanguageEditor({ value }: {
55
+ value: NodeData;
56
+ }): import("react/jsx-runtime").JSX.Element | null;
57
+ export declare function ActionListItem({ value }: {
58
+ value: NodeData;
59
+ }): import("react/jsx-runtime").JSX.Element;
60
+ //# sourceMappingURL=action-cards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-cards.d.ts","sourceRoot":"","sources":["../../../brahman/views/action-cards.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AA2B/C,OAAO,EAAE,KAAK,SAAS,EAA4C,MAAM,OAAO,CAAC;AA8CjF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAElD;AAID,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CA2BpD;AAyED,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,kDA2B3D;AAED,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,kDAyB5D;AAED,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,kDA4B1D;AAED,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,kDAkC3D;AAED,wBAAgB,UAAU,4CAMzB;AAED,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,kDAgBvD;AAED,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,kDAiB7D;AAED,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,kDAiB5D;AAED,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,kDAiB5D;AAED,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,kDAoB1D;AAED,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,kDAwBxD;AAID,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,kDAiBxD;AAED,wBAAgB,YAAY,4CAM3B;AAED,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,kDAa5D;AAED,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,kDAiB3D;AAED,wBAAgB,kBAAkB,4CAMjC;AAED,wBAAgB,kBAAkB,4CAMjC;AAED,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,kDAiB3D;AAED,wBAAgB,mBAAmB,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,kDAqDjE;AAED,wBAAgB,oBAAoB,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,kDAYlE;AAID,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,2CAU5D"}
@@ -0,0 +1,283 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Checkbox } from '@treenity/react/components/ui/checkbox';
3
+ import { Input } from '@treenity/react/components/ui/input';
4
+ import { set, usePath } from '@treenity/react/hooks';
5
+ import { trpc } from '@treenity/react/trpc';
6
+ import { AlertTriangle, ArrowLeft, Code, Download, File, FileText, Forward, GitBranch, Globe, HelpCircle, History, MessageSquare, Repeat, RotateCcw, Search, Send, Settings2, Tag, Trash2, Upload, } from 'lucide-react';
7
+ import { useCallback, useEffect, useRef, useState } from 'react';
8
+ import { MenuEditor } from './menu-editor';
9
+ import { TStringInput, tstringPreview } from './tstring-input';
10
+ // ── Icon mapping ──
11
+ const ICONS = {
12
+ 'brahman.action.message': _jsx(MessageSquare, { className: "h-4 w-4 text-blue-500" }),
13
+ 'brahman.action.question': _jsx(HelpCircle, { className: "h-4 w-4 text-amber-500" }),
14
+ 'brahman.action.ifelse': _jsx(GitBranch, { className: "h-4 w-4 text-purple-500" }),
15
+ 'brahman.action.page': _jsx(FileText, { className: "h-4 w-4 text-green-500" }),
16
+ 'brahman.action.back': _jsx(ArrowLeft, { className: "h-4 w-4 text-gray-500" }),
17
+ 'brahman.action.tag': _jsx(Tag, { className: "h-4 w-4 text-orange-500" }),
18
+ 'brahman.action.broadcast': _jsx(Send, { className: "h-4 w-4 text-red-500" }),
19
+ 'brahman.action.getvalue': _jsx(Download, { className: "h-4 w-4 text-cyan-500" }),
20
+ 'brahman.action.setvalue': _jsx(Upload, { className: "h-4 w-4 text-cyan-500" }),
21
+ 'brahman.action.params': _jsx(Settings2, { className: "h-4 w-4 text-gray-500" }),
22
+ 'brahman.action.file': _jsx(File, { className: "h-4 w-4 text-indigo-500" }),
23
+ 'brahman.action.eval': _jsx(Code, { className: "h-4 w-4 text-yellow-600" }),
24
+ 'brahman.action.remove': _jsx(Trash2, { className: "h-4 w-4 text-red-500" }),
25
+ 'brahman.action.emittext': _jsx(Repeat, { className: "h-4 w-4 text-teal-500" }),
26
+ 'brahman.action.forward': _jsx(Forward, { className: "h-4 w-4 text-blue-400" }),
27
+ 'brahman.action.resetsession': _jsx(RotateCcw, { className: "h-4 w-4 text-rose-500" }),
28
+ 'brahman.action.resethistory': _jsx(History, { className: "h-4 w-4 text-rose-400" }),
29
+ 'brahman.action.onerror': _jsx(AlertTriangle, { className: "h-4 w-4 text-amber-600" }),
30
+ 'brahman.action.keywordselect': _jsx(Search, { className: "h-4 w-4 text-emerald-500" }),
31
+ 'brahman.action.selectlang': _jsx(Globe, { className: "h-4 w-4 text-sky-500" }),
32
+ };
33
+ export function actionIcon(type) {
34
+ return ICONS[type] ?? _jsx(Settings2, { className: "h-4 w-4 text-muted-foreground" });
35
+ }
36
+ // ── Summary helpers for compact display ──
37
+ export function actionSummary(node) {
38
+ const c = findActionComp(node);
39
+ if (!c)
40
+ return '';
41
+ switch (node.$type) {
42
+ case 'brahman.action.message': return tstringPreview(c.text ?? {});
43
+ case 'brahman.action.question': return `${tstringPreview(c.text ?? {}, 25)} -> ${c.saveTo || '?'}`;
44
+ case 'brahman.action.ifelse': return c.condition || 'no condition';
45
+ case 'brahman.action.page': return c.targetPage || 'no target';
46
+ case 'brahman.action.back': return 'pop history';
47
+ case 'brahman.action.tag': return `${c.tag} = ${c.value}`;
48
+ case 'brahman.action.broadcast': return `to ${(c.userTags ?? []).join(', ') || 'all'}`;
49
+ case 'brahman.action.getvalue': return `${c.path} -> ${c.saveTo}`;
50
+ case 'brahman.action.setvalue': return `${c.value} -> ${c.saveTo}`;
51
+ case 'brahman.action.params': return (c.names ?? []).join(', ') || 'no params';
52
+ case 'brahman.action.file': return c.fileId || 'no file';
53
+ case 'brahman.action.eval': return (c.value ?? '').slice(0, 40) || 'empty';
54
+ case 'brahman.action.remove': return 'delete message';
55
+ case 'brahman.action.emittext': return c.from || 'no text';
56
+ case 'brahman.action.forward': return c.toFrom || 'current chat';
57
+ case 'brahman.action.resetsession': return 'clear session';
58
+ case 'brahman.action.resethistory': return 'clear history';
59
+ case 'brahman.action.onerror': return c.error || 'any error';
60
+ case 'brahman.action.keywordselect': return `${(c.elements ?? []).length} keywords`;
61
+ case 'brahman.action.selectlang': return tstringPreview(c.text ?? {});
62
+ default: return '';
63
+ }
64
+ }
65
+ // Find the action component on a node (node itself if $type matches, then scan)
66
+ function findActionComp(node) {
67
+ if (node.$type?.startsWith('brahman.action.'))
68
+ return node;
69
+ for (const [k, v] of Object.entries(node)) {
70
+ if (k.startsWith('$'))
71
+ continue;
72
+ if (typeof v === 'object' && v && '$type' in v && typeof v.$type === 'string'
73
+ && v.$type.startsWith('brahman.action.')) {
74
+ return v;
75
+ }
76
+ }
77
+ }
78
+ // ── Shared field helpers ──
79
+ function FieldRow({ label, children }) {
80
+ return (_jsxs("div", { className: "flex items-start gap-3", children: [_jsx("label", { className: "text-xs font-medium text-muted-foreground w-28 pt-2 shrink-0", children: label }), _jsx("div", { className: "flex-1", children: children })] }));
81
+ }
82
+ function getLangs(node) {
83
+ // Walk up to find bot config's langs
84
+ // Default fallback
85
+ return ['ru', 'en'];
86
+ }
87
+ // Generic component updater — debounced persist (500ms), instant UI via local state
88
+ function useActionComp(path) {
89
+ const node = usePath(path);
90
+ const [pending, setPending] = useState({});
91
+ const pendingRef = useRef({});
92
+ const timerRef = useRef(undefined);
93
+ const nodeRef = useRef(node);
94
+ nodeRef.current = node;
95
+ const flush = useCallback(() => {
96
+ clearTimeout(timerRef.current);
97
+ const p = pendingRef.current;
98
+ const n = nodeRef.current;
99
+ if (!n || Object.keys(p).length === 0)
100
+ return;
101
+ pendingRef.current = {};
102
+ setPending({});
103
+ set({ ...n, ...p });
104
+ }, []);
105
+ // Flush on unmount (e.g. collapsing the action card)
106
+ useEffect(() => () => { flush(); }, [flush]);
107
+ // pending IS read in render → React Compiler keeps setPending calls
108
+ const display = node && Object.keys(pending).length > 0
109
+ ? { ...node, ...pending }
110
+ : node;
111
+ const comp = display ? findActionComp(display) : undefined;
112
+ function update(patch) {
113
+ if (!node)
114
+ return;
115
+ const next = { ...pendingRef.current, ...patch };
116
+ pendingRef.current = next;
117
+ setPending(next);
118
+ clearTimeout(timerRef.current);
119
+ timerRef.current = setTimeout(flush, 2000);
120
+ }
121
+ return { node: display, comp, update, langs: getLangs(node) };
122
+ }
123
+ // ── Full editors (react context) ──
124
+ export function MessageEditor({ value }) {
125
+ const { comp, update, langs } = useActionComp(value.$path);
126
+ if (!comp)
127
+ return null;
128
+ const msg = comp;
129
+ return (_jsxs("div", { className: "space-y-4 max-w-2xl", children: [_jsx(FieldRow, { label: "Text", children: _jsx(TStringInput, { value: msg.text, onChange: text => update({ text }), langs: langs }) }), _jsx(FieldRow, { label: "Disable links", children: _jsx(Checkbox, { checked: msg.disableLinks, onChange: e => update({ disableLinks: e.target.checked }) }) }), _jsx(MenuEditor, { menuType: msg.menuType, rows: msg.rows, langs: langs, onChangeType: menuType => update({ menuType }), onChangeRows: rows => update({ rows }) })] }));
130
+ }
131
+ export function QuestionEditor({ value }) {
132
+ const { comp, update, langs } = useActionComp(value.$path);
133
+ if (!comp)
134
+ return null;
135
+ const q = comp;
136
+ return (_jsxs("div", { className: "space-y-4 max-w-2xl", children: [_jsx(FieldRow, { label: "Prompt", children: _jsx(TStringInput, { value: q.text, onChange: text => update({ text }), langs: langs }) }), _jsx(FieldRow, { label: "Input type", children: _jsxs("select", { className: "h-8 text-sm border border-border rounded-md bg-background px-2", value: q.inputType, onChange: e => update({ inputType: e.target.value }), children: [_jsx("option", { value: "text", children: "Text" }), _jsx("option", { value: "photo", children: "Photo" })] }) }), _jsx(FieldRow, { label: "Save to", children: _jsx(Input, { className: "font-mono", placeholder: "session.field", value: q.saveTo, onChange: e => update({ saveTo: e.target.value }) }) })] }));
137
+ }
138
+ export function IfElseEditor({ value }) {
139
+ const { comp, update } = useActionComp(value.$path);
140
+ if (!comp)
141
+ return null;
142
+ const ie = comp;
143
+ return (_jsxs("div", { className: "space-y-4 max-w-2xl", children: [_jsx(FieldRow, { label: "Condition", children: _jsx(Input, { className: "font-mono", placeholder: "session.data.role === 'admin'", value: ie.condition, onChange: e => update({ condition: e.target.value }) }) }), _jsx(FieldRow, { label: "Action if true", children: _jsx(Input, { className: "font-mono", placeholder: "/path/to/action", value: ie.actionIf, onChange: e => update({ actionIf: e.target.value }) }) }), _jsx(FieldRow, { label: "Action if false", children: _jsx(Input, { className: "font-mono", placeholder: "/path/to/action", value: ie.actionElse, onChange: e => update({ actionElse: e.target.value }) }) }), _jsx(FieldRow, { label: "Stop after", children: _jsx(Checkbox, { checked: ie.stopAfterAction, onChange: e => update({ stopAfterAction: e.target.checked }) }) })] }));
144
+ }
145
+ export function PageNavEditor({ value }) {
146
+ const { comp, update } = useActionComp(value.$path);
147
+ const [dragOver, setDragOver] = useState(false);
148
+ if (!comp)
149
+ return null;
150
+ return (_jsx("div", { className: "space-y-4 max-w-2xl", children: _jsx(FieldRow, { label: "Target page", children: _jsx("div", { className: `rounded-md transition-colors ${dragOver ? 'ring-1 ring-primary bg-primary/5' : ''}`, onDragOver: e => {
151
+ if (e.dataTransfer.types.includes('application/treenity-path')) {
152
+ e.preventDefault();
153
+ e.dataTransfer.dropEffect = 'link';
154
+ setDragOver(true);
155
+ }
156
+ }, onDragLeave: () => setDragOver(false), onDrop: async (e) => {
157
+ const path = e.dataTransfer.getData('application/treenity-path');
158
+ setDragOver(false);
159
+ if (!path)
160
+ return;
161
+ e.preventDefault();
162
+ const node = await trpc.get.query({ path });
163
+ if (node?.$type === 'brahman.page')
164
+ update({ targetPage: path });
165
+ }, children: _jsx(Input, { className: "font-mono", placeholder: "Drop a page here or type path", value: comp.targetPage ?? '', onChange: e => update({ targetPage: e.target.value }) }) }) }) }));
166
+ }
167
+ export function BackEditor() {
168
+ return (_jsx("div", { className: "text-sm text-muted-foreground py-4", children: "Pops the last page from navigation history. No configuration needed." }));
169
+ }
170
+ export function TagEditor({ value }) {
171
+ const { comp, update } = useActionComp(value.$path);
172
+ if (!comp)
173
+ return null;
174
+ const t = comp;
175
+ return (_jsxs("div", { className: "space-y-4 max-w-2xl", children: [_jsx(FieldRow, { label: "Tag name", children: _jsx(Input, { placeholder: "admin", value: t.tag, onChange: e => update({ tag: e.target.value }) }) }), _jsx(FieldRow, { label: "Value", children: _jsx(Input, { className: "font-mono", placeholder: "true", value: t.value, onChange: e => update({ value: e.target.value }) }) })] }));
176
+ }
177
+ export function BroadcastEditor({ value }) {
178
+ const { comp, update } = useActionComp(value.$path);
179
+ if (!comp)
180
+ return null;
181
+ const b = comp;
182
+ return (_jsxs("div", { className: "space-y-4 max-w-2xl", children: [_jsx(FieldRow, { label: "User tags", children: _jsx(Input, { placeholder: "premium, active", value: b.userTags.join(', '), onChange: e => update({ userTags: e.target.value.split(',').map(s => s.trim()).filter(Boolean) }) }) }), _jsx(FieldRow, { label: "Action path", children: _jsx(Input, { className: "font-mono", placeholder: "/path/to/action", value: b.action, onChange: e => update({ action: e.target.value }) }) })] }));
183
+ }
184
+ export function GetValueEditor({ value }) {
185
+ const { comp, update } = useActionComp(value.$path);
186
+ if (!comp)
187
+ return null;
188
+ const g = comp;
189
+ return (_jsxs("div", { className: "space-y-4 max-w-2xl", children: [_jsx(FieldRow, { label: "Source path", children: _jsx(Input, { className: "font-mono", placeholder: "session.data.name", value: g.path, onChange: e => update({ path: e.target.value }) }) }), _jsx(FieldRow, { label: "Save to", children: _jsx(Input, { className: "font-mono", placeholder: "result", value: g.saveTo, onChange: e => update({ saveTo: e.target.value }) }) })] }));
190
+ }
191
+ export function SetValueEditor({ value }) {
192
+ const { comp, update } = useActionComp(value.$path);
193
+ if (!comp)
194
+ return null;
195
+ const s = comp;
196
+ return (_jsxs("div", { className: "space-y-4 max-w-2xl", children: [_jsx(FieldRow, { label: "Value", children: _jsx(Input, { className: "font-mono", placeholder: "'hello'", value: s.value, onChange: e => update({ value: e.target.value }) }) }), _jsx(FieldRow, { label: "Save to", children: _jsx(Input, { className: "font-mono", placeholder: "session.data.greeting", value: s.saveTo, onChange: e => update({ saveTo: e.target.value }) }) })] }));
197
+ }
198
+ export function ParamsEditor({ value }) {
199
+ const { comp, update } = useActionComp(value.$path);
200
+ if (!comp)
201
+ return null;
202
+ const p = comp;
203
+ return (_jsxs("div", { className: "space-y-4 max-w-2xl", children: [_jsx(FieldRow, { label: "Base64 decode", children: _jsx(Checkbox, { checked: p.base64, onChange: e => update({ base64: e.target.checked }) }) }), _jsx(FieldRow, { label: "Split delimiter", children: _jsx(Input, { className: "w-20 font-mono", value: p.split, onChange: e => update({ split: e.target.value }) }) }), _jsx(FieldRow, { label: "Param names", children: _jsx(Input, { placeholder: "id, name, email", value: p.names.join(', '), onChange: e => update({ names: e.target.value.split(',').map(s => s.trim()).filter(Boolean) }) }) })] }));
204
+ }
205
+ export function FileEditor({ value }) {
206
+ const { comp, update } = useActionComp(value.$path);
207
+ if (!comp)
208
+ return null;
209
+ const f = comp;
210
+ return (_jsxs("div", { className: "space-y-4 max-w-2xl", children: [_jsx(FieldRow, { label: "File path", children: _jsx(Input, { className: "font-mono", placeholder: "/files/image.png", value: f.fileId, onChange: e => update({ fileId: e.target.value }) }) }), _jsx(FieldRow, { label: "Send as", children: _jsxs("select", { className: "h-8 text-sm border border-border rounded-md bg-background px-2", value: f.asType, onChange: e => update({ asType: e.target.value }), children: [_jsx("option", { value: "", children: "Auto-detect" }), _jsx("option", { value: "photo", children: "Photo" }), _jsx("option", { value: "document", children: "Document" }), _jsx("option", { value: "video", children: "Video" }), _jsx("option", { value: "audio", children: "Audio" }), _jsx("option", { value: "voice", children: "Voice" })] }) })] }));
211
+ }
212
+ // ── New action editors ──
213
+ export function EvalEditor({ value }) {
214
+ const { comp, update } = useActionComp(value.$path);
215
+ if (!comp)
216
+ return null;
217
+ const ev = comp;
218
+ return (_jsx("div", { className: "space-y-4 max-w-2xl", children: _jsx(FieldRow, { label: "JavaScript", children: _jsx("textarea", { className: "w-full h-40 text-sm font-mono border border-border rounded-md bg-background p-2 resize-y", placeholder: "// async function body\nawait ctx.reply('Hello');", value: ev.value, onChange: e => update({ value: e.target.value }) }) }) }));
219
+ }
220
+ export function RemoveEditor() {
221
+ return (_jsx("div", { className: "text-sm text-muted-foreground py-4", children: "Deletes the current message. No configuration needed." }));
222
+ }
223
+ export function EmitTextEditor({ value }) {
224
+ const { comp, update } = useActionComp(value.$path);
225
+ if (!comp)
226
+ return null;
227
+ const et = comp;
228
+ return (_jsx("div", { className: "space-y-4 max-w-2xl", children: _jsx(FieldRow, { label: "Text template", children: _jsx(Input, { className: "font-mono", placeholder: "/start or {data.command}", value: et.from, onChange: e => update({ from: e.target.value }) }) }) }));
229
+ }
230
+ export function ForwardEditor({ value }) {
231
+ const { comp, update } = useActionComp(value.$path);
232
+ if (!comp)
233
+ return null;
234
+ const fw = comp;
235
+ return (_jsxs("div", { className: "space-y-4 max-w-2xl", children: [_jsx(FieldRow, { label: "Message ID from", children: _jsx(Input, { className: "font-mono", placeholder: "Empty = current message", value: fw.msgIdFrom, onChange: e => update({ msgIdFrom: e.target.value }) }) }), _jsx(FieldRow, { label: "Forward to", children: _jsx(Input, { className: "font-mono", placeholder: "Chat/user ID or {data.to}", value: fw.toFrom, onChange: e => update({ toFrom: e.target.value }) }) })] }));
236
+ }
237
+ export function ResetSessionEditor() {
238
+ return (_jsx("div", { className: "text-sm text-muted-foreground py-4", children: "Clears all session data. History is preserved. No configuration needed." }));
239
+ }
240
+ export function ResetHistoryEditor() {
241
+ return (_jsx("div", { className: "text-sm text-muted-foreground py-4", children: "Clears navigation history. No configuration needed." }));
242
+ }
243
+ export function OnErrorEditor({ value }) {
244
+ const { comp, update } = useActionComp(value.$path);
245
+ if (!comp)
246
+ return null;
247
+ const oe = comp;
248
+ return (_jsxs("div", { className: "space-y-4 max-w-2xl", children: [_jsx(FieldRow, { label: "Error match", children: _jsx(Input, { placeholder: "Substring to match in error message (empty = any)", value: oe.error, onChange: e => update({ error: e.target.value }) }) }), _jsx(FieldRow, { label: "Action path", children: _jsx(Input, { className: "font-mono", placeholder: "/path/to/action", value: oe.action, onChange: e => update({ action: e.target.value }) }) })] }));
249
+ }
250
+ export function KeywordSelectEditor({ value }) {
251
+ const { comp, update } = useActionComp(value.$path);
252
+ if (!comp)
253
+ return null;
254
+ const ks = comp;
255
+ function updateElement(idx, patch) {
256
+ const elements = [...(ks.elements ?? [])];
257
+ elements[idx] = { ...elements[idx], ...patch };
258
+ update({ elements });
259
+ }
260
+ function addElement() {
261
+ update({ elements: [...(ks.elements ?? []), { keywords: [], message: '' }] });
262
+ }
263
+ function removeElement(idx) {
264
+ const elements = [...(ks.elements ?? [])];
265
+ elements.splice(idx, 1);
266
+ update({ elements });
267
+ }
268
+ return (_jsxs("div", { className: "space-y-4 max-w-2xl", children: [_jsx(FieldRow, { label: "Source text", children: _jsx(Input, { className: "font-mono", placeholder: "{data.text} or empty for message text", value: ks.textFrom, onChange: e => update({ textFrom: e.target.value }) }) }), _jsxs("div", { className: "space-y-2", children: [_jsx("label", { className: "text-xs font-medium text-muted-foreground", children: "Keyword entries" }), (ks.elements ?? []).map((el, i) => (_jsxs("div", { className: "flex gap-2 items-start p-2 border border-border rounded-md", children: [_jsxs("div", { className: "flex-1 space-y-1", children: [_jsx(Input, { placeholder: "keyword1, keyword2", value: el.keywords.join(', '), onChange: e => updateElement(i, {
269
+ keywords: e.target.value.split(',').map(s => s.trim()).filter(Boolean),
270
+ }) }), _jsx(Input, { className: "font-mono", placeholder: "/command or reply text", value: el.message, onChange: e => updateElement(i, { message: e.target.value }) })] }), _jsx("button", { onClick: () => removeElement(i), className: "text-muted-foreground hover:text-destructive p-1", children: _jsx(Trash2, { className: "h-4 w-4" }) })] }, i))), _jsx("button", { onClick: addElement, className: "text-xs text-primary hover:underline", children: "+ Add keyword entry" })] })] }));
271
+ }
272
+ export function SelectLanguageEditor({ value }) {
273
+ const { comp, update, langs } = useActionComp(value.$path);
274
+ if (!comp)
275
+ return null;
276
+ const sl = comp;
277
+ return (_jsx("div", { className: "space-y-4 max-w-2xl", children: _jsx(FieldRow, { label: "Prompt text", children: _jsx(TStringInput, { value: sl.text, onChange: text => update({ text }), langs: langs }) }) }));
278
+ }
279
+ // ── Compact list items (react:list context) ──
280
+ export function ActionListItem({ value }) {
281
+ return (_jsxs("div", { className: "flex items-center gap-2 py-1 flex-1", children: [actionIcon(value.$type), _jsx("span", { className: "text-xs font-medium text-muted-foreground", children: value.$type.split('.').at(-1) }), _jsx("span", { className: "text-sm truncate", children: actionSummary(value) })] }));
282
+ }
283
+ //# sourceMappingURL=action-cards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-cards.js","sourceRoot":"","sources":["../../../brahman/views/action-cards.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { NodeData } from '@treenity/core';
2
+ export declare function BotView({ value }: {
3
+ value: NodeData;
4
+ }): import("react/jsx-runtime").JSX.Element;
5
+ //# sourceMappingURL=bot-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bot-view.d.ts","sourceRoot":"","sources":["../../../brahman/views/bot-view.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAe/C,wBAAgB,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,2CA0DrD"}
@@ -0,0 +1,14 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Render, RenderContext } from '@treenity/react/context';
3
+ import { useChildren } from '@treenity/react/hooks';
4
+ import { Bot } from 'lucide-react';
5
+ function Field({ label, value }) {
6
+ return (_jsxs("div", { className: "flex items-center gap-3", children: [_jsx("span", { className: "text-sm text-muted-foreground w-32 shrink-0", children: label }), _jsx("span", { className: `text-sm ${value ? '' : 'text-muted-foreground/50 italic'}`, children: value || '—' })] }));
7
+ }
8
+ export function BotView({ value }) {
9
+ const bot = value;
10
+ const pages = useChildren(`${value.$path}/pages`, { watch: true, watchNew: true });
11
+ const isActive = !bot.maintenance;
12
+ return (_jsxs("div", { className: "space-y-6 max-w-2xl", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx("div", { className: "p-2.5 rounded-lg bg-primary/10", children: _jsx(Bot, { className: "h-6 w-6 text-primary" }) }), _jsxs("div", { children: [_jsx("div", { className: "text-lg font-semibold", children: bot.name || bot.alias || 'Untitled Bot' }), _jsxs("div", { className: "flex items-center gap-2", children: [bot.alias && _jsx("span", { className: "text-sm text-muted-foreground", children: bot.alias }), _jsx("span", { className: `text-xs px-1.5 py-0.5 rounded ${isActive ? 'bg-green-500/10 text-green-600' : 'bg-yellow-500/10 text-yellow-600'}`, children: isActive ? 'Active' : 'Maintenance' })] })] })] }), _jsxs("div", { className: "space-y-2", children: [_jsx("div", { className: "text-[11px] font-semibold text-muted-foreground uppercase tracking-wider", children: "Configuration" }), _jsx(Field, { label: "Token", value: bot.token ? '••••••' + bot.token.slice(-6) : '' }), _jsx(Field, { label: "Alias", value: bot.alias ?? '' }), _jsx(Field, { label: "Display name", value: bot.name ?? '' }), _jsx(Field, { label: "Languages", value: bot.langs ?? '' }), _jsx(Field, { label: "Proxy", value: bot.proxy ?? '' }), _jsx(Field, { label: "Maintenance", value: bot.maintenance ?? '' })] }), _jsxs("div", { className: "space-y-2", children: [_jsxs("div", { className: "text-[11px] font-semibold text-muted-foreground uppercase tracking-wider", children: ["Pages (", pages.length, ")"] }), _jsx(RenderContext, { name: "react:list", children: _jsx("div", { className: "children-grid", children: pages.map(page => (_jsx(Render, { value: page }, page.$path))) }) }), pages.length === 0 && (_jsx("div", { className: "text-sm text-muted-foreground text-center py-6 border border-dashed border-border rounded-md", children: "No pages yet." }))] })] }));
13
+ }
14
+ //# sourceMappingURL=bot-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bot-view.js","sourceRoot":"","sources":["../../../brahman/views/bot-view.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { NodeData } from '@treenity/core';
2
+ export declare function PageChatEditor({ value }: {
3
+ value: NodeData;
4
+ }): import("react/jsx-runtime").JSX.Element;
5
+ //# sourceMappingURL=chat-editor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-editor.d.ts","sourceRoot":"","sources":["../../../brahman/views/chat-editor.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAsoB/C,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,2CAkH5D"}