@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.
- package/board/board.test.ts +212 -0
- package/board/client.ts +1 -0
- package/board/seed.ts +26 -0
- package/board/server.ts +5 -0
- package/board/types.ts +87 -0
- package/board/view.tsx +574 -0
- package/brahman/CLAUDE.md +18 -0
- package/brahman/brahman.test.ts +855 -0
- package/brahman/client.ts +2 -0
- package/brahman/helpers.ts +374 -0
- package/brahman/server.ts +2 -0
- package/brahman/service.ts +328 -0
- package/brahman/types.ts +727 -0
- package/brahman/view.tsx +73 -0
- package/brahman/views/action-cards.tsx +615 -0
- package/brahman/views/bot-view.tsx +76 -0
- package/brahman/views/chat-editor.tsx +782 -0
- package/brahman/views/chat-preview.tsx +266 -0
- package/brahman/views/menu-editor.tsx +451 -0
- package/brahman/views/page-layout.tsx +285 -0
- package/brahman/views/tstring-input.tsx +84 -0
- package/cafe/CLAUDE.md +7 -0
- package/cafe/seed.ts +8 -0
- package/cafe/server.ts +2 -0
- package/cafe/types.ts +32 -0
- package/canary/seed.ts +8 -0
- package/canary/server.ts +3 -0
- package/canary/service.ts +101 -0
- package/canary/types.ts +16 -0
- package/dist/board/client.d.ts +2 -0
- package/dist/board/client.d.ts.map +1 -0
- package/dist/board/client.js +2 -0
- package/dist/board/client.js.map +1 -0
- package/dist/board/seed.d.ts +2 -0
- package/dist/board/seed.d.ts.map +1 -0
- package/dist/board/seed.js +23 -0
- package/dist/board/seed.js.map +1 -0
- package/dist/board/server.d.ts +3 -0
- package/dist/board/server.d.ts.map +1 -0
- package/dist/board/server.js +5 -0
- package/dist/board/server.js.map +1 -0
- package/dist/board/types.d.ts +45 -0
- package/dist/board/types.d.ts.map +1 -0
- package/dist/board/types.js +82 -0
- package/dist/board/types.js.map +1 -0
- package/dist/board/view.d.ts +2 -0
- package/dist/board/view.d.ts.map +1 -0
- package/dist/board/view.js +254 -0
- package/dist/board/view.js.map +1 -0
- package/dist/brahman/client.d.ts +3 -0
- package/dist/brahman/client.d.ts.map +1 -0
- package/dist/brahman/client.js +3 -0
- package/dist/brahman/client.js.map +1 -0
- package/dist/brahman/helpers.d.ts +51 -0
- package/dist/brahman/helpers.d.ts.map +1 -0
- package/dist/brahman/helpers.js +321 -0
- package/dist/brahman/helpers.js.map +1 -0
- package/dist/brahman/server.d.ts +3 -0
- package/dist/brahman/server.d.ts.map +1 -0
- package/dist/brahman/server.js +3 -0
- package/dist/brahman/server.js.map +1 -0
- package/dist/brahman/service.d.ts +2 -0
- package/dist/brahman/service.d.ts.map +1 -0
- package/dist/brahman/service.js +310 -0
- package/dist/brahman/service.js.map +1 -0
- package/dist/brahman/types.d.ts +335 -0
- package/dist/brahman/types.d.ts.map +1 -0
- package/dist/brahman/types.js +633 -0
- package/dist/brahman/types.js.map +1 -0
- package/dist/brahman/view.d.ts +2 -0
- package/dist/brahman/view.d.ts.map +1 -0
- package/dist/brahman/view.js +47 -0
- package/dist/brahman/view.js.map +1 -0
- package/dist/brahman/views/action-cards.d.ts +60 -0
- package/dist/brahman/views/action-cards.d.ts.map +1 -0
- package/dist/brahman/views/action-cards.js +283 -0
- package/dist/brahman/views/action-cards.js.map +1 -0
- package/dist/brahman/views/bot-view.d.ts +5 -0
- package/dist/brahman/views/bot-view.d.ts.map +1 -0
- package/dist/brahman/views/bot-view.js +14 -0
- package/dist/brahman/views/bot-view.js.map +1 -0
- package/dist/brahman/views/chat-editor.d.ts +5 -0
- package/dist/brahman/views/chat-editor.d.ts.map +1 -0
- package/dist/brahman/views/chat-editor.js +306 -0
- package/dist/brahman/views/chat-editor.js.map +1 -0
- package/dist/brahman/views/chat-preview.d.ts +5 -0
- package/dist/brahman/views/chat-preview.d.ts.map +1 -0
- package/dist/brahman/views/chat-preview.js +145 -0
- package/dist/brahman/views/chat-preview.js.map +1 -0
- package/dist/brahman/views/menu-editor.d.ts +11 -0
- package/dist/brahman/views/menu-editor.d.ts.map +1 -0
- package/dist/brahman/views/menu-editor.js +171 -0
- package/dist/brahman/views/menu-editor.js.map +1 -0
- package/dist/brahman/views/page-layout.d.ts +5 -0
- package/dist/brahman/views/page-layout.d.ts.map +1 -0
- package/dist/brahman/views/page-layout.js +114 -0
- package/dist/brahman/views/page-layout.js.map +1 -0
- package/dist/brahman/views/tstring-input.d.ts +15 -0
- package/dist/brahman/views/tstring-input.d.ts.map +1 -0
- package/dist/brahman/views/tstring-input.js +23 -0
- package/dist/brahman/views/tstring-input.js.map +1 -0
- package/dist/cafe/seed.d.ts +2 -0
- package/dist/cafe/seed.d.ts.map +1 -0
- package/dist/cafe/seed.js +7 -0
- package/dist/cafe/seed.js.map +1 -0
- package/dist/cafe/server.d.ts +3 -0
- package/dist/cafe/server.d.ts.map +1 -0
- package/dist/cafe/server.js +3 -0
- package/dist/cafe/server.js.map +1 -0
- package/dist/cafe/types.d.ts +2 -0
- package/dist/cafe/types.d.ts.map +1 -0
- package/dist/cafe/types.js +31 -0
- package/dist/cafe/types.js.map +1 -0
- package/dist/canary/seed.d.ts +2 -0
- package/dist/canary/seed.d.ts.map +1 -0
- package/dist/canary/seed.js +7 -0
- package/dist/canary/seed.js.map +1 -0
- package/dist/canary/server.d.ts +4 -0
- package/dist/canary/server.d.ts.map +1 -0
- package/dist/canary/server.js +4 -0
- package/dist/canary/server.js.map +1 -0
- package/dist/canary/service.d.ts +2 -0
- package/dist/canary/service.d.ts.map +1 -0
- package/dist/canary/service.js +101 -0
- package/dist/canary/service.js.map +1 -0
- package/dist/canary/types.d.ts +9 -0
- package/dist/canary/types.d.ts.map +1 -0
- package/dist/canary/types.js +13 -0
- package/dist/canary/types.js.map +1 -0
- package/dist/doc/client.d.ts +3 -0
- package/dist/doc/client.d.ts.map +1 -0
- package/dist/doc/client.js +5 -0
- package/dist/doc/client.js.map +1 -0
- package/dist/doc/fs-codec.d.ts +2 -0
- package/dist/doc/fs-codec.d.ts.map +1 -0
- package/dist/doc/fs-codec.js +44 -0
- package/dist/doc/fs-codec.js.map +1 -0
- package/dist/doc/markdown.d.ts +13 -0
- package/dist/doc/markdown.d.ts.map +1 -0
- package/dist/doc/markdown.js +250 -0
- package/dist/doc/markdown.js.map +1 -0
- package/dist/doc/prefab.d.ts +2 -0
- package/dist/doc/prefab.d.ts.map +1 -0
- package/dist/doc/prefab.js +23 -0
- package/dist/doc/prefab.js.map +1 -0
- package/dist/doc/renderers.d.ts +2 -0
- package/dist/doc/renderers.d.ts.map +1 -0
- package/dist/doc/renderers.js +94 -0
- package/dist/doc/renderers.js.map +1 -0
- package/dist/doc/seed.d.ts +2 -0
- package/dist/doc/seed.d.ts.map +1 -0
- package/dist/doc/seed.js +9 -0
- package/dist/doc/seed.js.map +1 -0
- package/dist/doc/server.d.ts +6 -0
- package/dist/doc/server.d.ts.map +1 -0
- package/dist/doc/server.js +6 -0
- package/dist/doc/server.js.map +1 -0
- package/dist/doc/slash-command.d.ts +3 -0
- package/dist/doc/slash-command.d.ts.map +1 -0
- package/dist/doc/slash-command.js +123 -0
- package/dist/doc/slash-command.js.map +1 -0
- package/dist/doc/slash-menu.d.ts +15 -0
- package/dist/doc/slash-menu.d.ts.map +1 -0
- package/dist/doc/slash-menu.js +54 -0
- package/dist/doc/slash-menu.js.map +1 -0
- package/dist/doc/text.d.ts +2 -0
- package/dist/doc/text.d.ts.map +1 -0
- package/dist/doc/text.js +22 -0
- package/dist/doc/text.js.map +1 -0
- package/dist/doc/toolbar.d.ts +5 -0
- package/dist/doc/toolbar.d.ts.map +1 -0
- package/dist/doc/toolbar.js +15 -0
- package/dist/doc/toolbar.js.map +1 -0
- package/dist/doc/treenity-block-view.d.ts +2 -0
- package/dist/doc/treenity-block-view.d.ts.map +1 -0
- package/dist/doc/treenity-block-view.js +37 -0
- package/dist/doc/treenity-block-view.js.map +1 -0
- package/dist/doc/treenity-block.d.ts +3 -0
- package/dist/doc/treenity-block.d.ts.map +1 -0
- package/dist/doc/treenity-block.js +27 -0
- package/dist/doc/treenity-block.js.map +1 -0
- package/dist/doc/types.d.ts +2 -0
- package/dist/doc/types.d.ts.map +1 -0
- package/dist/doc/types.js +10 -0
- package/dist/doc/types.js.map +1 -0
- package/dist/launcher/client.d.ts +5 -0
- package/dist/launcher/client.d.ts.map +1 -0
- package/dist/launcher/client.js +5 -0
- package/dist/launcher/client.js.map +1 -0
- package/dist/launcher/icons.d.ts +2 -0
- package/dist/launcher/icons.d.ts.map +1 -0
- package/dist/launcher/icons.js +57 -0
- package/dist/launcher/icons.js.map +1 -0
- package/dist/launcher/seed.d.ts +2 -0
- package/dist/launcher/seed.d.ts.map +1 -0
- package/dist/launcher/seed.js +36 -0
- package/dist/launcher/seed.js.map +1 -0
- package/dist/launcher/server.d.ts +3 -0
- package/dist/launcher/server.d.ts.map +1 -0
- package/dist/launcher/server.js +3 -0
- package/dist/launcher/server.js.map +1 -0
- package/dist/launcher/types.d.ts +21 -0
- package/dist/launcher/types.d.ts.map +1 -0
- package/dist/launcher/types.js +47 -0
- package/dist/launcher/types.js.map +1 -0
- package/dist/launcher/view.d.ts +2 -0
- package/dist/launcher/view.d.ts.map +1 -0
- package/dist/launcher/view.js +187 -0
- package/dist/launcher/view.js.map +1 -0
- package/dist/launcher/widgets.d.ts +2 -0
- package/dist/launcher/widgets.d.ts.map +1 -0
- package/dist/launcher/widgets.js +73 -0
- package/dist/launcher/widgets.js.map +1 -0
- package/dist/mindmap/branch.d.ts +17 -0
- package/dist/mindmap/branch.d.ts.map +1 -0
- package/dist/mindmap/branch.js +47 -0
- package/dist/mindmap/branch.js.map +1 -0
- package/dist/mindmap/client.d.ts +3 -0
- package/dist/mindmap/client.d.ts.map +1 -0
- package/dist/mindmap/client.js +3 -0
- package/dist/mindmap/client.js.map +1 -0
- package/dist/mindmap/radial-tree.d.ts +14 -0
- package/dist/mindmap/radial-tree.d.ts.map +1 -0
- package/dist/mindmap/radial-tree.js +184 -0
- package/dist/mindmap/radial-tree.js.map +1 -0
- package/dist/mindmap/sidebar.d.ts +8 -0
- package/dist/mindmap/sidebar.d.ts.map +1 -0
- package/dist/mindmap/sidebar.js +24 -0
- package/dist/mindmap/sidebar.js.map +1 -0
- package/dist/mindmap/types.d.ts +8 -0
- package/dist/mindmap/types.d.ts.map +1 -0
- package/dist/mindmap/types.js +10 -0
- package/dist/mindmap/types.js.map +1 -0
- package/dist/mindmap/use-tree-data.d.ts +14 -0
- package/dist/mindmap/use-tree-data.d.ts.map +1 -0
- package/dist/mindmap/use-tree-data.js +95 -0
- package/dist/mindmap/use-tree-data.js.map +1 -0
- package/dist/mindmap/view.d.ts +3 -0
- package/dist/mindmap/view.d.ts.map +1 -0
- package/dist/mindmap/view.js +141 -0
- package/dist/mindmap/view.js.map +1 -0
- package/dist/sensor-demo/client.d.ts +2 -0
- package/dist/sensor-demo/client.d.ts.map +1 -0
- package/dist/sensor-demo/client.js +2 -0
- package/dist/sensor-demo/client.js.map +1 -0
- package/dist/sensor-demo/server.d.ts +2 -0
- package/dist/sensor-demo/server.d.ts.map +1 -0
- package/dist/sensor-demo/server.js +2 -0
- package/dist/sensor-demo/server.js.map +1 -0
- package/dist/sensor-demo/service.d.ts +2 -0
- package/dist/sensor-demo/service.d.ts.map +1 -0
- package/dist/sensor-demo/service.js +27 -0
- package/dist/sensor-demo/service.js.map +1 -0
- package/dist/sensor-demo/types.d.ts +15 -0
- package/dist/sensor-demo/types.d.ts.map +1 -0
- package/dist/sensor-demo/types.js +18 -0
- package/dist/sensor-demo/types.js.map +1 -0
- package/dist/sensor-demo/view.d.ts +2 -0
- package/dist/sensor-demo/view.d.ts.map +1 -0
- package/dist/sensor-demo/view.js +33 -0
- package/dist/sensor-demo/view.js.map +1 -0
- package/dist/sensor-generator/action.d.ts +2 -0
- package/dist/sensor-generator/action.d.ts.map +1 -0
- package/dist/sensor-generator/action.js +23 -0
- package/dist/sensor-generator/action.js.map +1 -0
- package/dist/sensor-generator/client.d.ts +2 -0
- package/dist/sensor-generator/client.d.ts.map +1 -0
- package/dist/sensor-generator/client.js +2 -0
- package/dist/sensor-generator/client.js.map +1 -0
- package/dist/sensor-generator/server.d.ts +2 -0
- package/dist/sensor-generator/server.d.ts.map +1 -0
- package/dist/sensor-generator/server.js +2 -0
- package/dist/sensor-generator/server.js.map +1 -0
- package/dist/sensor-generator/view.d.ts +2 -0
- package/dist/sensor-generator/view.d.ts.map +1 -0
- package/dist/sensor-generator/view.js +64 -0
- package/dist/sensor-generator/view.js.map +1 -0
- package/dist/sim/client.d.ts +2 -0
- package/dist/sim/client.d.ts.map +1 -0
- package/dist/sim/client.js +2 -0
- package/dist/sim/client.js.map +1 -0
- package/dist/sim/seed.d.ts +2 -0
- package/dist/sim/seed.d.ts.map +1 -0
- package/dist/sim/seed.js +50 -0
- package/dist/sim/seed.js.map +1 -0
- package/dist/sim/server.d.ts +3 -0
- package/dist/sim/server.d.ts.map +1 -0
- package/dist/sim/server.js +3 -0
- package/dist/sim/server.js.map +1 -0
- package/dist/sim/service.d.ts +4 -0
- package/dist/sim/service.d.ts.map +1 -0
- package/dist/sim/service.js +528 -0
- package/dist/sim/service.js.map +1 -0
- package/dist/sim/types.d.ts +63 -0
- package/dist/sim/types.d.ts.map +1 -0
- package/dist/sim/types.js +57 -0
- package/dist/sim/types.js.map +1 -0
- package/dist/sim/view.d.ts +2 -0
- package/dist/sim/view.d.ts.map +1 -0
- package/dist/sim/view.js +205 -0
- package/dist/sim/view.js.map +1 -0
- package/dist/table/client.d.ts +4 -0
- package/dist/table/client.d.ts.map +1 -0
- package/dist/table/client.js +4 -0
- package/dist/table/client.js.map +1 -0
- package/dist/table/edit.d.ts +2 -0
- package/dist/table/edit.d.ts.map +1 -0
- package/dist/table/edit.js +115 -0
- package/dist/table/edit.js.map +1 -0
- package/dist/table/server.d.ts +2 -0
- package/dist/table/server.d.ts.map +1 -0
- package/dist/table/server.js +2 -0
- package/dist/table/server.js.map +1 -0
- package/dist/table/types.d.ts +18 -0
- package/dist/table/types.d.ts.map +1 -0
- package/dist/table/types.js +13 -0
- package/dist/table/types.js.map +1 -0
- package/dist/table/use-debounced-sync.d.ts +8 -0
- package/dist/table/use-debounced-sync.d.ts.map +1 -0
- package/dist/table/use-debounced-sync.js +56 -0
- package/dist/table/use-debounced-sync.js.map +1 -0
- package/dist/table/view.d.ts +2 -0
- package/dist/table/view.d.ts.map +1 -0
- package/dist/table/view.js +199 -0
- package/dist/table/view.js.map +1 -0
- package/dist/tasks/server.d.ts +2 -0
- package/dist/tasks/server.d.ts.map +1 -0
- package/dist/tasks/server.js +2 -0
- package/dist/tasks/server.js.map +1 -0
- package/dist/tasks/types.d.ts +22 -0
- package/dist/tasks/types.d.ts.map +1 -0
- package/dist/tasks/types.js +34 -0
- package/dist/tasks/types.js.map +1 -0
- package/dist/three/client.d.ts +2 -0
- package/dist/three/client.d.ts.map +1 -0
- package/dist/three/client.js +2 -0
- package/dist/three/client.js.map +1 -0
- package/dist/three/seed.d.ts +2 -0
- package/dist/three/seed.d.ts.map +1 -0
- package/dist/three/seed.js +45 -0
- package/dist/three/seed.js.map +1 -0
- package/dist/three/server.d.ts +3 -0
- package/dist/three/server.d.ts.map +1 -0
- package/dist/three/server.js +3 -0
- package/dist/three/server.js.map +1 -0
- package/dist/three/types.d.ts +178 -0
- package/dist/three/types.d.ts.map +1 -0
- package/dist/three/types.js +209 -0
- package/dist/three/types.js.map +1 -0
- package/dist/three/view.d.ts +2 -0
- package/dist/three/view.d.ts.map +1 -0
- package/dist/three/view.js +307 -0
- package/dist/three/view.js.map +1 -0
- package/dist/todo/client.d.ts +3 -0
- package/dist/todo/client.d.ts.map +1 -0
- package/dist/todo/client.js +3 -0
- package/dist/todo/client.js.map +1 -0
- package/dist/todo/seed.d.ts +2 -0
- package/dist/todo/seed.d.ts.map +1 -0
- package/dist/todo/seed.js +8 -0
- package/dist/todo/seed.js.map +1 -0
- package/dist/todo/server.d.ts +3 -0
- package/dist/todo/server.d.ts.map +1 -0
- package/dist/todo/server.js +3 -0
- package/dist/todo/server.js.map +1 -0
- package/dist/todo/types.d.ts +15 -0
- package/dist/todo/types.d.ts.map +1 -0
- package/dist/todo/types.js +29 -0
- package/dist/todo/types.js.map +1 -0
- package/dist/todo/view.d.ts +2 -0
- package/dist/todo/view.d.ts.map +1 -0
- package/dist/todo/view.js +27 -0
- package/dist/todo/view.js.map +1 -0
- package/dist/whisper/client.d.ts +2 -0
- package/dist/whisper/client.d.ts.map +1 -0
- package/dist/whisper/client.js +2 -0
- package/dist/whisper/client.js.map +1 -0
- package/dist/whisper/inbox.d.ts +2 -0
- package/dist/whisper/inbox.d.ts.map +1 -0
- package/dist/whisper/inbox.js +50 -0
- package/dist/whisper/inbox.js.map +1 -0
- package/dist/whisper/route.d.ts +10 -0
- package/dist/whisper/route.d.ts.map +1 -0
- package/dist/whisper/route.js +154 -0
- package/dist/whisper/route.js.map +1 -0
- package/dist/whisper/seed.d.ts +2 -0
- package/dist/whisper/seed.d.ts.map +1 -0
- package/dist/whisper/seed.js +14 -0
- package/dist/whisper/seed.js.map +1 -0
- package/dist/whisper/server.d.ts +5 -0
- package/dist/whisper/server.d.ts.map +1 -0
- package/dist/whisper/server.js +5 -0
- package/dist/whisper/server.js.map +1 -0
- package/dist/whisper/service.d.ts +2 -0
- package/dist/whisper/service.d.ts.map +1 -0
- package/dist/whisper/service.js +26 -0
- package/dist/whisper/service.js.map +1 -0
- package/dist/whisper/types.d.ts +38 -0
- package/dist/whisper/types.d.ts.map +1 -0
- package/dist/whisper/types.js +45 -0
- package/dist/whisper/types.js.map +1 -0
- package/dist/whisper/view.d.ts +2 -0
- package/dist/whisper/view.d.ts.map +1 -0
- package/dist/whisper/view.js +40 -0
- package/dist/whisper/view.js.map +1 -0
- package/doc/CLAUDE.md +49 -0
- package/doc/client.ts +5 -0
- package/doc/editor.css +283 -0
- package/doc/fs-codec.test.ts +119 -0
- package/doc/fs-codec.ts +50 -0
- package/doc/markdown.test.ts +152 -0
- package/doc/markdown.ts +284 -0
- package/doc/prefab.ts +26 -0
- package/doc/renderers.tsx +126 -0
- package/doc/seed.ts +10 -0
- package/doc/server.ts +5 -0
- package/doc/slash-command.ts +136 -0
- package/doc/slash-menu.tsx +91 -0
- package/doc/text.ts +20 -0
- package/doc/toolbar.tsx +86 -0
- package/doc/treenity-block-view.tsx +116 -0
- package/doc/treenity-block.ts +31 -0
- package/doc/types.ts +10 -0
- package/launcher/client.ts +4 -0
- package/launcher/icons.tsx +234 -0
- package/launcher/launcher.css +64 -0
- package/launcher/seed.ts +41 -0
- package/launcher/server.ts +2 -0
- package/launcher/types.ts +53 -0
- package/launcher/view.tsx +401 -0
- package/launcher/widgets.tsx +171 -0
- package/mindmap/branch.tsx +163 -0
- package/mindmap/client.ts +2 -0
- package/mindmap/mindmap.css +243 -0
- package/mindmap/sidebar.tsx +127 -0
- package/mindmap/types.ts +10 -0
- package/mindmap/view.tsx +247 -0
- package/package.json +75 -0
- package/sensor-demo/CLAUDE.md +3 -0
- package/sensor-demo/client.ts +1 -0
- package/sensor-demo/server.ts +1 -0
- package/sensor-demo/service.ts +27 -0
- package/sensor-demo/types.ts +20 -0
- package/sensor-demo/view.tsx +64 -0
- package/sensor-generator/CLAUDE.md +3 -0
- package/sensor-generator/action.ts +28 -0
- package/sensor-generator/client.ts +1 -0
- package/sensor-generator/server.ts +1 -0
- package/sensor-generator/view.tsx +107 -0
- package/sim/CLAUDE.md +16 -0
- package/sim/client.ts +1 -0
- package/sim/seed.ts +55 -0
- package/sim/server.ts +2 -0
- package/sim/service.ts +594 -0
- package/sim/sim.test.ts +282 -0
- package/sim/types.ts +87 -0
- package/sim/view.tsx +446 -0
- package/table/client.ts +3 -0
- package/table/edit.tsx +241 -0
- package/table/server.ts +1 -0
- package/table/types.ts +22 -0
- package/table/use-debounced-sync.ts +67 -0
- package/table/view.tsx +339 -0
- package/tasks/CLAUDE.md +6 -0
- package/tasks/server.ts +1 -0
- package/tasks/types.ts +36 -0
- package/three/CLAUDE.md +6 -0
- package/three/client.ts +1 -0
- package/three/seed.ts +54 -0
- package/three/server.ts +2 -0
- package/three/types.ts +238 -0
- package/three/view.tsx +453 -0
- package/todo/client.ts +2 -0
- package/todo/seed.ts +9 -0
- package/todo/server.ts +2 -0
- package/todo/types.ts +32 -0
- package/todo/view.tsx +67 -0
- package/whisper/CLAUDE.md +16 -0
- package/whisper/client.ts +1 -0
- package/whisper/inbox.ts +54 -0
- package/whisper/route.ts +182 -0
- package/whisper/seed.ts +15 -0
- package/whisper/server.ts +4 -0
- package/whisper/service.ts +29 -0
- package/whisper/types.ts +51 -0
- package/whisper/view.tsx +81 -0
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
// Brahman helpers — template engine, formatting, keyboards, execution runtime
|
|
2
|
+
// Shared between action handlers and bot service
|
|
3
|
+
import { getComponent, resolve as resolveCtx } from '@treenity/core';
|
|
4
|
+
import { InlineKeyboard, Keyboard } from 'grammy';
|
|
5
|
+
import { BrahmanUser, PageConfig } from './types';
|
|
6
|
+
// ── TString formatting ──
|
|
7
|
+
export function formatTString(ts, lang) {
|
|
8
|
+
if (!ts)
|
|
9
|
+
return '';
|
|
10
|
+
return ts[lang] || ts.ru || ts.en || Object.values(ts).find(v => v) || '';
|
|
11
|
+
}
|
|
12
|
+
// ── Template engine (Handlebars-compatible) ──
|
|
13
|
+
// Supports: {field}, {data.nested}, {{#ifEquals a b}}...{{else}}...{{/ifEquals}},
|
|
14
|
+
// {{#tag name}}...{{else}}...{{/tag}}, {{shortDate d}}, {{toFixed n f}},
|
|
15
|
+
// {{switch v c1 v1 c2 v2}}, {{#and v1 v2}}...{{else}}...{{/and}}, {{eval expr}}
|
|
16
|
+
export function resolveVar(path, data) {
|
|
17
|
+
let val = data;
|
|
18
|
+
for (const key of path.split('.')) {
|
|
19
|
+
if (val == null || typeof val !== 'object')
|
|
20
|
+
return undefined;
|
|
21
|
+
val = val[key];
|
|
22
|
+
}
|
|
23
|
+
return val;
|
|
24
|
+
}
|
|
25
|
+
export function renderTemplate(template, data) {
|
|
26
|
+
let result = template;
|
|
27
|
+
// Block helpers: {{#helper args}}...{{else}}...{{/helper}}
|
|
28
|
+
result = result.replace(/\{\{#ifEquals\s+(\S+)\s+['"]?([^'"}\s]+)['"]?\}\}([\s\S]*?)\{\{\/ifEquals\}\}/g, (_, varPath, compareVal, body) => {
|
|
29
|
+
const val = String(resolveVar(varPath, data) ?? '');
|
|
30
|
+
const [truePart, falsePart = ''] = body.split('{{else}}');
|
|
31
|
+
return val === compareVal ? truePart : falsePart;
|
|
32
|
+
});
|
|
33
|
+
result = result.replace(/\{\{#tag\s+(\S+)\}\}([\s\S]*?)\{\{\/tag\}\}/g, (_, tagName, body) => {
|
|
34
|
+
const tags = (data.userTags ?? data.tags ?? []);
|
|
35
|
+
const [truePart, falsePart = ''] = body.split('{{else}}');
|
|
36
|
+
return tags.includes(tagName) ? truePart : falsePart;
|
|
37
|
+
});
|
|
38
|
+
result = result.replace(/\{\{#and\s+([\s\S]*?)\}\}([\s\S]*?)\{\{\/and\}\}/g, (_, varsStr, body) => {
|
|
39
|
+
const vars = varsStr.trim().split(/\s+/);
|
|
40
|
+
const allTrue = vars.every((v) => !!resolveVar(v, data));
|
|
41
|
+
const [truePart, falsePart = ''] = body.split('{{else}}');
|
|
42
|
+
return allTrue ? truePart : falsePart;
|
|
43
|
+
});
|
|
44
|
+
// Inline helpers: {{helperName args}}
|
|
45
|
+
result = result.replace(/\{\{shortDate\s+(\S+)\}\}/g, (_, varPath) => {
|
|
46
|
+
const val = resolveVar(varPath, data);
|
|
47
|
+
if (!val)
|
|
48
|
+
return '';
|
|
49
|
+
const d = new Date(val);
|
|
50
|
+
const dd = String(d.getDate()).padStart(2, '0');
|
|
51
|
+
const mm = String(d.getMonth() + 1).padStart(2, '0');
|
|
52
|
+
const yy = String(d.getFullYear()).slice(-2);
|
|
53
|
+
return `${dd}.${mm}.${yy}`;
|
|
54
|
+
});
|
|
55
|
+
result = result.replace(/\{\{toFixed\s+(\S+)\s+(\d+)\}\}/g, (_, varPath, fraction) => {
|
|
56
|
+
const val = resolveVar(varPath, data);
|
|
57
|
+
return val != null ? Number(val).toFixed(Number(fraction)) : '';
|
|
58
|
+
});
|
|
59
|
+
result = result.replace(/\{\{is\s+(\S+)\}\}/g, (_, varPath) => {
|
|
60
|
+
return resolveVar(varPath, data) ? 'true' : '';
|
|
61
|
+
});
|
|
62
|
+
result = result.replace(/\{\{switch\s+([\s\S]*?)\}\}/g, (_, argsStr) => {
|
|
63
|
+
const args = argsStr.trim().split(/\s+/);
|
|
64
|
+
const val = String(resolveVar(args[0], data) ?? '');
|
|
65
|
+
for (let i = 1; i < args.length - 1; i += 2) {
|
|
66
|
+
if (args[i] === val)
|
|
67
|
+
return args[i + 1] ?? '';
|
|
68
|
+
}
|
|
69
|
+
return '';
|
|
70
|
+
});
|
|
71
|
+
result = result.replace(/\{\{eval\s+([\s\S]*?)\}\}/g, (_, expr) => {
|
|
72
|
+
try {
|
|
73
|
+
const fn = new Function('data', 'session', 'user', `return (${expr})`);
|
|
74
|
+
return String(fn(data, data, data.user) ?? '');
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
return '';
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
// Simple variable interpolation: {field} and {data.nested} and {{field}}
|
|
81
|
+
result = result.replace(/\{\{(\w+(?:\.\w+)*)\}\}/g, (_, path) => {
|
|
82
|
+
const val = resolveVar(path, data);
|
|
83
|
+
return val != null ? String(val) : '';
|
|
84
|
+
});
|
|
85
|
+
result = result.replace(/\{(\w+(?:\.\w+)*)\}/g, (_, path) => {
|
|
86
|
+
const val = resolveVar(path, data);
|
|
87
|
+
return val != null ? String(val) : '';
|
|
88
|
+
});
|
|
89
|
+
return result;
|
|
90
|
+
}
|
|
91
|
+
// ── Tag checking (from old brahman) ──
|
|
92
|
+
// Tags with ! prefix = exclude, without = include (at least one match)
|
|
93
|
+
export function checkTags(userTags, buttonTags) {
|
|
94
|
+
if (!buttonTags.length)
|
|
95
|
+
return true;
|
|
96
|
+
const includes = buttonTags.filter(t => !t.startsWith('!'));
|
|
97
|
+
const excludes = buttonTags.filter(t => t.startsWith('!')).map(t => t.slice(1));
|
|
98
|
+
if (excludes.some(t => userTags.includes(t)))
|
|
99
|
+
return false;
|
|
100
|
+
if (includes.length === 0)
|
|
101
|
+
return true;
|
|
102
|
+
return includes.some(t => userTags.includes(t));
|
|
103
|
+
}
|
|
104
|
+
// ── Keyboard building ──
|
|
105
|
+
export function buildReplyMarkup(rows, type, lang, userTags = []) {
|
|
106
|
+
if (type === 'none')
|
|
107
|
+
return undefined;
|
|
108
|
+
if (type === 'remove')
|
|
109
|
+
return { reply_markup: { remove_keyboard: true } };
|
|
110
|
+
if (type === 'force_reply')
|
|
111
|
+
return { reply_markup: { force_reply: true } };
|
|
112
|
+
if (type === 'keyboard') {
|
|
113
|
+
const kb = new Keyboard();
|
|
114
|
+
for (const row of rows) {
|
|
115
|
+
for (const btn of row.buttons) {
|
|
116
|
+
if (!checkTags(userTags, btn.tags ?? []))
|
|
117
|
+
continue;
|
|
118
|
+
const text = formatTString(btn.title, lang);
|
|
119
|
+
if (!text)
|
|
120
|
+
continue; // Telegram rejects empty button text
|
|
121
|
+
kb.text(text);
|
|
122
|
+
}
|
|
123
|
+
kb.row();
|
|
124
|
+
}
|
|
125
|
+
return { reply_markup: kb.resized() };
|
|
126
|
+
}
|
|
127
|
+
// Inline keyboards (inline, inline_new, inline_close)
|
|
128
|
+
const kb = new InlineKeyboard();
|
|
129
|
+
for (const row of rows) {
|
|
130
|
+
for (const btn of row.buttons) {
|
|
131
|
+
if (!checkTags(userTags, btn.tags ?? []))
|
|
132
|
+
continue;
|
|
133
|
+
const text = formatTString(btn.title, lang);
|
|
134
|
+
if (!text)
|
|
135
|
+
continue; // Telegram rejects empty button text
|
|
136
|
+
if (btn.url) {
|
|
137
|
+
kb.url(text, btn.url);
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
const cbData = btn.action?.type === 'brahman.action.page'
|
|
141
|
+
? `page:${btn.action.target ?? ''}`
|
|
142
|
+
: `btn:${btn.id}`;
|
|
143
|
+
kb.text(text, cbData);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
kb.row();
|
|
147
|
+
}
|
|
148
|
+
return { reply_markup: kb };
|
|
149
|
+
}
|
|
150
|
+
// ── Find action component on a node ──
|
|
151
|
+
export function findActionComp(node) {
|
|
152
|
+
// Node itself is the action (same logic as getComponent: node.$type match → return node)
|
|
153
|
+
if (node.$type?.startsWith('brahman.action.'))
|
|
154
|
+
return node;
|
|
155
|
+
// Fallback: scan nested components
|
|
156
|
+
for (const [k, v] of Object.entries(node)) {
|
|
157
|
+
if (k.startsWith('$'))
|
|
158
|
+
continue;
|
|
159
|
+
if (typeof v === 'object' && v && '$type' in v
|
|
160
|
+
&& typeof v.$type === 'string'
|
|
161
|
+
&& v.$type.startsWith('brahman.action.')) {
|
|
162
|
+
return v;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
// ── StopProcess sentinel (for if-else stopAfterAction) ──
|
|
167
|
+
export class StopProcess extends Error {
|
|
168
|
+
constructor() { super('StopProcess'); }
|
|
169
|
+
}
|
|
170
|
+
// ── Build template context from BrahmanCtx ──
|
|
171
|
+
export function buildTemplateData(bCtx) {
|
|
172
|
+
const userData = getComponent(bCtx.user, BrahmanUser);
|
|
173
|
+
return {
|
|
174
|
+
...bCtx.session,
|
|
175
|
+
user: userData ?? {},
|
|
176
|
+
userTags: bCtx.userTags,
|
|
177
|
+
tags: bCtx.userTags,
|
|
178
|
+
lang: bCtx.lang,
|
|
179
|
+
ctx: {
|
|
180
|
+
user: userData,
|
|
181
|
+
session: bCtx.session,
|
|
182
|
+
},
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
// ── Format template with BrahmanCtx ──
|
|
186
|
+
export function format(template, bCtx) {
|
|
187
|
+
return renderTemplate(template, buildTemplateData(bCtx));
|
|
188
|
+
}
|
|
189
|
+
// ── Format TString + template ──
|
|
190
|
+
export function formatText(ts, bCtx) {
|
|
191
|
+
const raw = formatTString(ts, bCtx.lang);
|
|
192
|
+
return format(raw, bCtx);
|
|
193
|
+
}
|
|
194
|
+
// ── Language flags ──
|
|
195
|
+
export const LANG_FLAGS = {
|
|
196
|
+
ru: '\u{1F1F7}\u{1F1FA}', en: '\u{1F1EC}\u{1F1E7}', de: '\u{1F1E9}\u{1F1EA}',
|
|
197
|
+
uz: '\u{1F1FA}\u{1F1FF}', fr: '\u{1F1EB}\u{1F1F7}', es: '\u{1F1EA}\u{1F1F8}',
|
|
198
|
+
it: '\u{1F1EE}\u{1F1F9}', pt: '\u{1F1F5}\u{1F1F9}', tr: '\u{1F1F9}\u{1F1F7}',
|
|
199
|
+
};
|
|
200
|
+
// ── Language keyboard builder ──
|
|
201
|
+
export function buildLangKeyboard(langs) {
|
|
202
|
+
const kb = new InlineKeyboard();
|
|
203
|
+
for (const l of langs) {
|
|
204
|
+
const flag = LANG_FLAGS[l] || l.toUpperCase();
|
|
205
|
+
kb.text(`${flag} ${l}`, `lang:${l}`);
|
|
206
|
+
}
|
|
207
|
+
return kb;
|
|
208
|
+
}
|
|
209
|
+
// ── Page execution ──
|
|
210
|
+
export async function executePage(pagePath, bCtx) {
|
|
211
|
+
const pageNode = await bCtx.store.get(pagePath);
|
|
212
|
+
if (!pageNode)
|
|
213
|
+
return;
|
|
214
|
+
const pageComp = getComponent(pageNode, PageConfig);
|
|
215
|
+
if (!pageComp)
|
|
216
|
+
return;
|
|
217
|
+
// Push to history
|
|
218
|
+
const history = (bCtx.session.history ?? []);
|
|
219
|
+
history.push(pagePath);
|
|
220
|
+
const { items } = await bCtx.store.getChildren(pagePath + '/_actions');
|
|
221
|
+
const positions = pageComp.positions ?? [];
|
|
222
|
+
const tracked = new Set(positions);
|
|
223
|
+
const sorted = [
|
|
224
|
+
...positions.map(p => items.find(n => n.$path === p)).filter((n) => !!n),
|
|
225
|
+
...items.filter(n => !tracked.has(n.$path) && n.$type?.startsWith('brahman.action.')),
|
|
226
|
+
];
|
|
227
|
+
try {
|
|
228
|
+
await executeActions(sorted, bCtx);
|
|
229
|
+
}
|
|
230
|
+
catch (e) {
|
|
231
|
+
if (e instanceof StopProcess)
|
|
232
|
+
return;
|
|
233
|
+
// Error routing — run 'error' command page if exists
|
|
234
|
+
const errorMsg = e instanceof Error ? e.message : String(e);
|
|
235
|
+
console.error(`[brahman:${bCtx.botPath}] action error:`, errorMsg);
|
|
236
|
+
// 403 = user blocked the bot
|
|
237
|
+
if (errorMsg.includes('403') || errorMsg.includes('Forbidden')) {
|
|
238
|
+
const userData = getComponent(bCtx.user, BrahmanUser);
|
|
239
|
+
if (userData) {
|
|
240
|
+
userData.blocked = true;
|
|
241
|
+
await bCtx.store.set(bCtx.user);
|
|
242
|
+
}
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
245
|
+
// Tree error in session and route to error page
|
|
246
|
+
bCtx.error = e instanceof Error ? e : new Error(String(e));
|
|
247
|
+
bCtx.session.error = { message: errorMsg };
|
|
248
|
+
try {
|
|
249
|
+
const { items: pages } = await bCtx.store.getChildren(`${bCtx.botPath}/pages`);
|
|
250
|
+
const errorPage = pages.find(p => getComponent(p, PageConfig)?.command === '/error');
|
|
251
|
+
if (errorPage)
|
|
252
|
+
await executePage(errorPage.$path, bCtx);
|
|
253
|
+
}
|
|
254
|
+
catch (innerErr) {
|
|
255
|
+
console.error(`[brahman:${bCtx.botPath}] error page failed:`, innerErr);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
// ── Action dispatcher ──
|
|
260
|
+
// Calls action:run (auto-registered by registerType from run() methods on action classes)
|
|
261
|
+
const _neverAbort = new AbortController().signal;
|
|
262
|
+
export async function executeAction(node, bCtx) {
|
|
263
|
+
const handler = resolveCtx(node.$type, 'action:run');
|
|
264
|
+
if (!handler)
|
|
265
|
+
return;
|
|
266
|
+
await handler({ node, store: bCtx.store, signal: _neverAbort }, bCtx);
|
|
267
|
+
}
|
|
268
|
+
// ── Sequential action runner with wait support ──
|
|
269
|
+
// Stops if an action sets session.wait (question asked), stores remaining paths
|
|
270
|
+
export async function executeActions(actions, bCtx) {
|
|
271
|
+
for (let i = 0; i < actions.length; i++) {
|
|
272
|
+
await executeAction(actions[i], bCtx);
|
|
273
|
+
if (bCtx.session.wait) {
|
|
274
|
+
bCtx.session.wait.remaining = actions.slice(i + 1).map(n => n.$path);
|
|
275
|
+
return;
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
// ── Resolve persisted wait state from session ──
|
|
280
|
+
// Called by middleware when a message arrives and session.wait is set
|
|
281
|
+
export async function resolveWait(bCtx, gCtx) {
|
|
282
|
+
const wait = bCtx.session.wait;
|
|
283
|
+
if (!wait)
|
|
284
|
+
return false;
|
|
285
|
+
const msgType = gCtx.message?.text ? 'text' : gCtx.message?.photo ? 'photo' : null;
|
|
286
|
+
if (!msgType || msgType !== wait.type)
|
|
287
|
+
return false;
|
|
288
|
+
// Save answer to session
|
|
289
|
+
if (wait.saveTo) {
|
|
290
|
+
if (wait.type === 'text') {
|
|
291
|
+
bCtx.session[wait.saveTo] = gCtx.message?.text ?? '';
|
|
292
|
+
}
|
|
293
|
+
else {
|
|
294
|
+
const photos = gCtx.message?.photo;
|
|
295
|
+
bCtx.session[wait.saveTo] = photos?.[photos.length - 1]?.file_id ?? '';
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
// Delete messages if configured
|
|
299
|
+
if (wait.deleteMessages) {
|
|
300
|
+
const chatId = gCtx.chat?.id;
|
|
301
|
+
if (chatId) {
|
|
302
|
+
try {
|
|
303
|
+
if (wait.sentMsgId)
|
|
304
|
+
await gCtx.api.deleteMessage(chatId, wait.sentMsgId);
|
|
305
|
+
if (gCtx.message?.message_id)
|
|
306
|
+
await gCtx.api.deleteMessage(chatId, gCtx.message.message_id);
|
|
307
|
+
}
|
|
308
|
+
catch { /* deletion may fail if msg too old */ }
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
// Grab remaining action paths before clearing wait
|
|
312
|
+
const remaining = wait.remaining ?? [];
|
|
313
|
+
delete bCtx.session.wait;
|
|
314
|
+
// Execute remaining actions (may set a new wait if another question is encountered)
|
|
315
|
+
if (remaining.length) {
|
|
316
|
+
const nodes = (await Promise.all(remaining.map(p => bCtx.store.get(p)))).filter(Boolean);
|
|
317
|
+
await executeActions(nodes, bCtx);
|
|
318
|
+
}
|
|
319
|
+
return true;
|
|
320
|
+
}
|
|
321
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../brahman/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../brahman/server.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,CAAC;AACjB,OAAO,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../brahman/server.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,CAAC;AACjB,OAAO,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../brahman/service.ts"],"names":[],"mappings":"AAeA,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,SAAS,QAAsB"}
|