weifuwu 0.94.1 → 0.95.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +40 -30
- package/dist/client/components/index.js +36 -36
- package/dist/client/layout/index.js +5 -5
- package/dist/client/vdom/index.js +3 -3
- package/dist/client/vdom/jsx-runtime.js +1 -1
- package/dist/client/vdom/testing.js +2 -2
- package/dist/dev/index.js +1 -1
- package/dist/level0/ai/types.d.ts +156 -0
- package/dist/level0/ai/types.ts +164 -0
- package/dist/level0/db/contracts.d.ts +98 -0
- package/dist/level0/db/contracts.ts +113 -0
- package/dist/level0/db/errors.d.ts +51 -0
- package/dist/level0/db/errors.ts +89 -0
- package/dist/level0/db/filter.ts +65 -0
- package/dist/level0/db/generator-contracts.d.ts +56 -0
- package/dist/level0/db/generator-contracts.ts +58 -0
- package/dist/level0/db/ops.ts +153 -0
- package/dist/level0/db/query.ts +560 -0
- package/dist/level0/db/shape.d.ts +131 -0
- package/dist/level0/db/shape.ts +210 -0
- package/dist/level0/router/chain.ts +30 -0
- package/dist/level0/router/context.ts +67 -0
- package/dist/level0/router/ctx-fields.ts +42 -0
- package/dist/level0/router/index.d.ts +17 -0
- package/dist/level0/router/index.js +2 -0
- package/dist/level0/router/index.ts +17 -0
- package/dist/level0/router/pipeline.ts +130 -0
- package/dist/level0/router/trie.d.ts +69 -0
- package/dist/level0/router/trie.ts +202 -0
- package/dist/level0/router/types.ts +34 -0
- package/dist/level0/types.d.ts +112 -0
- package/dist/level0/types.ts +153 -0
- package/dist/level0/vdom/command/create.ts +28 -0
- package/dist/level0/vdom/command/index.ts +39 -0
- package/dist/level0/vdom/command/insert.ts +35 -0
- package/dist/level0/vdom/command/lifecycle.ts +53 -0
- package/dist/level0/vdom/command/props.ts +24 -0
- package/dist/level0/vdom/field/key.ts +35 -0
- package/dist/level0/vdom/node/hole.ts +58 -0
- package/dist/level0/vdom/vnode.d.ts +54 -0
- package/dist/level0/vdom/vnode.ts +102 -0
- package/dist/level0/zod.ts +370 -0
- package/dist/level1/vdom/async-guard.ts +33 -0
- package/dist/level1/vdom/dev/effect-guard.ts +65 -0
- package/dist/level1/vdom/dev/error-counter.ts +62 -0
- package/dist/level1/vdom/hooks/ai-stream.d.ts +46 -0
- package/dist/level1/vdom/hooks/ai-stream.ts +179 -0
- package/dist/level1/vdom/node/children.d.ts +20 -0
- package/dist/level1/vdom/node/children.ts +36 -0
- package/dist/level1/vdom/node/fragment.d.ts +14 -0
- package/dist/level1/vdom/node/fragment.ts +19 -0
- package/dist/level1/vdom/node/index.d.ts +35 -0
- package/dist/level1/vdom/node/index.ts +62 -0
- package/dist/level1/vdom/node/keyed.d.ts +64 -0
- package/dist/level1/vdom/node/keyed.ts +167 -0
- package/dist/level1/vdom/node/portal.ts +15 -0
- package/dist/level1/vdom/observable/index.ts +13 -0
- package/dist/level1/vdom/observable/observable.ts +89 -0
- package/dist/level1/vdom/observable/operators.ts +399 -0
- package/dist/level1/vdom/observable/sources.ts +131 -0
- package/dist/level1/vdom/observable/types.ts +48 -0
- package/dist/level1/vdom/patch/state-machine.d.ts +38 -0
- package/dist/level1/vdom/patch/state-machine.ts +142 -0
- package/dist/level1/vdom/ports.d.ts +87 -0
- package/dist/level1/vdom/ports.ts +100 -0
- package/dist/level1/vdom/store.ts +136 -0
- package/dist/level1/vdom/v2/schedule.d.ts +33 -0
- package/dist/level1/vdom/v2/schedule.ts +91 -0
- package/dist/level1/vdom/v2/spy.ts +26 -0
- package/dist/level2/collect.d.ts +31 -0
- package/dist/level2/collect.ts +89 -0
- package/dist/level2/db/consistency.ts +79 -0
- package/dist/level2/db/memory-sql.d.ts +104 -0
- package/dist/level2/db/memory-sql.ts +948 -0
- package/dist/level2/db/orm.d.ts +117 -0
- package/dist/level2/db/orm.ts +387 -0
- package/dist/level2/db/query-builder.d.ts +19 -0
- package/dist/level2/db/query-builder.ts +244 -0
- package/dist/level2/db/schema.d.ts +78 -0
- package/dist/level2/db/schema.ts +374 -0
- package/dist/level2/db/typed-query.d.ts +113 -0
- package/dist/level2/db/typed-query.ts +153 -0
- package/dist/level2/error-counter.ts +53 -0
- package/dist/level2/hub.d.ts +9 -0
- package/dist/level2/hub.ts +44 -0
- package/dist/level2/response.d.ts +63 -0
- package/dist/level2/response.ts +117 -0
- package/dist/level2/router.d.ts +79 -0
- package/dist/level2/router.ts +365 -0
- package/dist/level2/serve.d.ts +39 -0
- package/dist/level2/serve.ts +349 -0
- package/dist/level2/ws.d.ts +44 -0
- package/dist/level2/ws.ts +148 -0
- package/dist/level3/vdom/browser/Browser.ts +78 -0
- package/dist/level3/vdom/browser/create-client-browser.ts +103 -0
- package/dist/level3/vdom/context/UIContext.d.ts +70 -0
- package/dist/level3/vdom/context/UIContext.ts +69 -0
- package/dist/level3/vdom/context/data.ts +69 -0
- package/dist/level3/vdom/dev/render-health.d.ts +60 -0
- package/dist/level3/vdom/dev/render-health.ts +178 -0
- package/dist/level3/vdom/diff/attrs.d.ts +18 -0
- package/dist/level3/vdom/diff/attrs.ts +54 -0
- package/dist/level3/vdom/diff/cleanup.d.ts +44 -0
- package/dist/level3/vdom/diff/cleanup.ts +154 -0
- package/dist/level3/vdom/field/attributes.ts +74 -0
- package/dist/level3/vdom/field/events.ts +170 -0
- package/dist/level3/vdom/field/input-sync.ts +38 -0
- package/dist/level3/vdom/field/props.ts +59 -0
- package/dist/level3/vdom/field/ref.ts +102 -0
- package/dist/level3/vdom/field/style.ts +63 -0
- package/dist/level3/vdom/hooks/basic.ts +112 -0
- package/dist/level3/vdom/hooks/chat.d.ts +118 -0
- package/dist/level3/vdom/hooks/chat.ts +399 -0
- package/dist/level3/vdom/hooks/controlled.ts +58 -0
- package/dist/level3/vdom/hooks/drag-media.ts +132 -0
- package/dist/level3/vdom/hooks/env.d.ts +183 -0
- package/dist/level3/vdom/hooks/env.ts +330 -0
- package/dist/level3/vdom/hooks/field.d.ts +54 -0
- package/dist/level3/vdom/hooks/field.ts +97 -0
- package/dist/level3/vdom/hooks/input.ts +92 -0
- package/dist/level3/vdom/hooks/observe.ts +257 -0
- package/dist/level3/vdom/hooks/overlay.d.ts +60 -0
- package/dist/level3/vdom/hooks/overlay.ts +105 -0
- package/dist/level3/vdom/hooks/popup-manager.d.ts +113 -0
- package/dist/level3/vdom/hooks/popup-manager.ts +562 -0
- package/dist/level3/vdom/hooks/popup.ts +147 -0
- package/dist/level3/vdom/hooks/signal.ts +41 -0
- package/dist/level3/vdom/hooks/stable.ts +259 -0
- package/dist/level3/vdom/hooks/use-observable.d.ts +13 -0
- package/dist/level3/vdom/hooks/use-observable.ts +53 -0
- package/dist/level3/vdom/node/component.d.ts +92 -0
- package/dist/level3/vdom/node/component.ts +268 -0
- package/dist/level3/vdom/node/native.d.ts +28 -0
- package/dist/level3/vdom/node/native.ts +84 -0
- package/dist/level3/vdom/patch/fields.ts +58 -0
- package/dist/level3/vdom/patch/index.d.ts +74 -0
- package/dist/level3/vdom/patch/index.ts +225 -0
- package/dist/level3/vdom/patch/processors.d.ts +82 -0
- package/dist/level3/vdom/patch/processors.ts +363 -0
- package/dist/level3/vdom/patch/verify.d.ts +17 -0
- package/dist/level3/vdom/patch/verify.ts +47 -0
- package/dist/level3/vdom/protocol.d.ts +98 -0
- package/dist/level3/vdom/protocol.ts +152 -0
- package/dist/level3/vdom/router.d.ts +38 -0
- package/dist/level3/vdom/router.ts +101 -0
- package/dist/level3/vdom/ssr/absorb.d.ts +80 -0
- package/dist/level3/vdom/ssr/absorb.ts +149 -0
- package/dist/level3/vdom/ssr/html.d.ts +32 -0
- package/dist/level3/vdom/ssr/html.ts +116 -0
- package/dist/level3/vdom/transform/component.ts +56 -0
- package/dist/level3/vdom/transform/element.ts +27 -0
- package/dist/level3/vdom/transform/fragment.ts +37 -0
- package/dist/level3/vdom/transform/hole.ts +18 -0
- package/dist/level3/vdom/transform/index.d.ts +46 -0
- package/dist/level3/vdom/transform/index.ts +54 -0
- package/dist/level3/vdom/transform/states.d.ts +22 -0
- package/dist/level3/vdom/transform/states.ts +36 -0
- package/dist/level3/vdom/transform/table.d.ts +28 -0
- package/dist/level3/vdom/transform/table.ts +56 -0
- package/dist/level3/vdom/transform/text.ts +15 -0
- package/dist/level3/vdom/v2/cycle.d.ts +56 -0
- package/dist/level3/vdom/v2/cycle.ts +140 -0
- package/dist/level3/vdom/v2/diff.d.ts +89 -0
- package/dist/level3/vdom/v2/diff.ts +978 -0
- package/dist/level3/vdom/v2/integrate.d.ts +24 -0
- package/dist/level3/vdom/v2/integrate.ts +85 -0
- package/dist/level3/vdom/v2/render.d.ts +28 -0
- package/dist/level3/vdom/v2/render.ts +268 -0
- package/dist/level3/vdom/v2/serve.ts +363 -0
- package/dist/level3/vdom/v2/ssr.d.ts +14 -0
- package/dist/level3/vdom/v2/ssr.ts +105 -0
- package/dist/level4/client/layout/decl.ts +61 -0
- package/dist/level4/client/layout/define.ts +96 -0
- package/dist/level4/client/vdom/create-component.d.ts +42 -0
- package/dist/level4/client/vdom/create-component.ts +77 -0
- package/dist/level4/client/vdom/create-item.d.ts +114 -0
- package/dist/level4/client/vdom/create-item.ts +180 -0
- package/dist/level4/client/vdom/semantic.d.ts +51 -0
- package/dist/level4/client/vdom/semantic.ts +113 -0
- package/dist/level4/server/db/body.d.ts +31 -0
- package/dist/level4/server/db/body.ts +74 -0
- package/dist/level4/server/db/http.d.ts +38 -0
- package/dist/level4/server/db/http.ts +85 -0
- package/dist/level5/client/components/Accordion/Accordion.css +66 -0
- package/dist/level5/client/components/Accordion/Accordion.d.ts +21 -0
- package/dist/level5/client/components/Accordion/Accordion.ts +103 -0
- package/dist/level5/client/components/ActionSheet/ActionSheet.css +152 -0
- package/dist/level5/client/components/ActionSheet/ActionSheet.d.ts +38 -0
- package/dist/level5/client/components/ActionSheet/ActionSheet.ts +150 -0
- package/dist/level5/client/components/Affix/Affix.css +16 -0
- package/dist/level5/client/components/Affix/Affix.d.ts +17 -0
- package/dist/level5/client/components/Affix/Affix.ts +110 -0
- package/dist/level5/client/components/AiChat/AiChat.css +88 -0
- package/dist/level5/client/components/AiChat/AiChat.d.ts +53 -0
- package/dist/level5/client/components/AiChat/AiChat.ts +235 -0
- package/dist/level5/client/components/Alert/Alert.css +42 -0
- package/dist/level5/client/components/Alert/Alert.d.ts +10 -0
- package/dist/level5/client/components/Alert/Alert.ts +40 -0
- package/dist/level5/client/components/AlertGroup/AlertGroup.css +75 -0
- package/dist/level5/client/components/AlertGroup/AlertGroup.d.ts +24 -0
- package/dist/level5/client/components/AlertGroup/AlertGroup.ts +67 -0
- package/dist/level5/client/components/Anchor/Anchor.css +39 -0
- package/dist/level5/client/components/Anchor/Anchor.d.ts +28 -0
- package/dist/level5/client/components/Anchor/Anchor.ts +123 -0
- package/dist/level5/client/components/AppShell/AppShell.css +126 -0
- package/dist/level5/client/components/AppShell/AppShell.d.ts +73 -0
- package/dist/level5/client/components/AppShell/AppShell.ts +162 -0
- package/dist/level5/client/components/ApprovalCard/ApprovalCard.css +111 -0
- package/dist/level5/client/components/ApprovalCard/ApprovalCard.d.ts +36 -0
- package/dist/level5/client/components/ApprovalCard/ApprovalCard.ts +143 -0
- package/dist/level5/client/components/AspectRatio/AspectRatio.css +16 -0
- package/dist/level5/client/components/AspectRatio/AspectRatio.d.ts +11 -0
- package/dist/level5/client/components/AspectRatio/AspectRatio.ts +22 -0
- package/dist/level5/client/components/AuthPage/AuthPage.d.ts +37 -0
- package/dist/level5/client/components/AuthPage/AuthPage.ts +61 -0
- package/dist/level5/client/components/AutoComplete/AutoComplete.css +55 -0
- package/dist/level5/client/components/AutoComplete/AutoComplete.d.ts +40 -0
- package/dist/level5/client/components/AutoComplete/AutoComplete.ts +221 -0
- package/dist/level5/client/components/Avatar/Avatar.css +18 -0
- package/dist/level5/client/components/Avatar/Avatar.d.ts +10 -0
- package/dist/level5/client/components/Avatar/Avatar.ts +42 -0
- package/dist/level5/client/components/AvatarGroup/AvatarGroup.css +29 -0
- package/dist/level5/client/components/AvatarGroup/AvatarGroup.d.ts +22 -0
- package/dist/level5/client/components/AvatarGroup/AvatarGroup.ts +46 -0
- package/dist/level5/client/components/BackTop/BackTop.css +47 -0
- package/dist/level5/client/components/BackTop/BackTop.d.ts +24 -0
- package/dist/level5/client/components/BackTop/BackTop.ts +100 -0
- package/dist/level5/client/components/Badge/Badge.css +49 -0
- package/dist/level5/client/components/Badge/Badge.d.ts +15 -0
- package/dist/level5/client/components/Badge/Badge.ts +41 -0
- package/dist/level5/client/components/Breadcrumb/Breadcrumb.css +39 -0
- package/dist/level5/client/components/Breadcrumb/Breadcrumb.d.ts +10 -0
- package/dist/level5/client/components/Breadcrumb/Breadcrumb.ts +33 -0
- package/dist/level5/client/components/Button/Button.css +65 -0
- package/dist/level5/client/components/Button/Button.d.ts +26 -0
- package/dist/level5/client/components/Button/Button.ts +49 -0
- package/dist/level5/client/components/Calendar/Calendar.css +144 -0
- package/dist/level5/client/components/Calendar/Calendar.d.ts +22 -0
- package/dist/level5/client/components/Calendar/Calendar.ts +123 -0
- package/dist/level5/client/components/Card/Card.css +40 -0
- package/dist/level5/client/components/Card/Card.d.ts +20 -0
- package/dist/level5/client/components/Card/Card.ts +54 -0
- package/dist/level5/client/components/Carousel/Carousel.css +122 -0
- package/dist/level5/client/components/Carousel/Carousel.d.ts +18 -0
- package/dist/level5/client/components/Carousel/Carousel.ts +130 -0
- package/dist/level5/client/components/Cascader/Cascader.css +198 -0
- package/dist/level5/client/components/Cascader/Cascader.d.ts +26 -0
- package/dist/level5/client/components/Cascader/Cascader.ts +308 -0
- package/dist/level5/client/components/Chart/Chart.css +84 -0
- package/dist/level5/client/components/Chart/Chart.d.ts +16 -0
- package/dist/level5/client/components/Chart/Chart.ts +331 -0
- package/dist/level5/client/components/Chart/chart-utils.ts +178 -0
- package/dist/level5/client/components/ChatInput/ChatInput.css +36 -0
- package/dist/level5/client/components/ChatInput/ChatInput.d.ts +69 -0
- package/dist/level5/client/components/ChatInput/ChatInput.ts +174 -0
- package/dist/level5/client/components/Checkbox/Checkbox.css +58 -0
- package/dist/level5/client/components/Checkbox/Checkbox.d.ts +9 -0
- package/dist/level5/client/components/Checkbox/Checkbox.ts +34 -0
- package/dist/level5/client/components/CheckboxGroup/CheckboxGroup.css +29 -0
- package/dist/level5/client/components/CheckboxGroup/CheckboxGroup.d.ts +24 -0
- package/dist/level5/client/components/CheckboxGroup/CheckboxGroup.ts +73 -0
- package/dist/level5/client/components/CitationCard/CitationCard.css +146 -0
- package/dist/level5/client/components/CitationCard/CitationCard.d.ts +39 -0
- package/dist/level5/client/components/CitationCard/CitationCard.ts +112 -0
- package/dist/level5/client/components/CodeBlock/CodeBlock.css +83 -0
- package/dist/level5/client/components/CodeBlock/CodeBlock.d.ts +15 -0
- package/dist/level5/client/components/CodeBlock/CodeBlock.ts +72 -0
- package/dist/level5/client/components/CodeBlock/highlight.ts +82 -0
- package/dist/level5/client/components/CodeEditor/CodeEditor.css +17 -0
- package/dist/level5/client/components/CodeEditor/CodeEditor.d.ts +19 -0
- package/dist/level5/client/components/CodeEditor/CodeEditor.ts +78 -0
- package/dist/level5/client/components/Collapse/Collapse.css +82 -0
- package/dist/level5/client/components/Collapse/Collapse.d.ts +29 -0
- package/dist/level5/client/components/Collapse/Collapse.ts +121 -0
- package/dist/level5/client/components/ColorPicker/ColorPicker.css +131 -0
- package/dist/level5/client/components/ColorPicker/ColorPicker.d.ts +17 -0
- package/dist/level5/client/components/ColorPicker/ColorPicker.ts +100 -0
- package/dist/level5/client/components/Command/Command.css +93 -0
- package/dist/level5/client/components/Command/Command.d.ts +23 -0
- package/dist/level5/client/components/Command/Command.ts +143 -0
- package/dist/level5/client/components/Confirm/Confirm.d.ts +40 -0
- package/dist/level5/client/components/Confirm/Confirm.ts +131 -0
- package/dist/level5/client/components/ContextMenu/ContextMenu.css +71 -0
- package/dist/level5/client/components/ContextMenu/ContextMenu.d.ts +20 -0
- package/dist/level5/client/components/ContextMenu/ContextMenu.ts +126 -0
- package/dist/level5/client/components/CopyButton/CopyButton.css +44 -0
- package/dist/level5/client/components/CopyButton/CopyButton.d.ts +19 -0
- package/dist/level5/client/components/CopyButton/CopyButton.ts +72 -0
- package/dist/level5/client/components/CronPicker/CronPicker.css +1 -0
- package/dist/level5/client/components/CronPicker/CronPicker.d.ts +31 -0
- package/dist/level5/client/components/CronPicker/CronPicker.ts +66 -0
- package/dist/level5/client/components/DatePicker/DatePicker.css +303 -0
- package/dist/level5/client/components/DatePicker/DatePicker.d.ts +21 -0
- package/dist/level5/client/components/DatePicker/DatePicker.ts +343 -0
- package/dist/level5/client/components/DatePicker/calendar-utils.ts +122 -0
- package/dist/level5/client/components/Descriptions/Descriptions.css +53 -0
- package/dist/level5/client/components/Descriptions/Descriptions.d.ts +22 -0
- package/dist/level5/client/components/Descriptions/Descriptions.ts +45 -0
- package/dist/level5/client/components/DiffView/DiffView.css +99 -0
- package/dist/level5/client/components/DiffView/DiffView.d.ts +25 -0
- package/dist/level5/client/components/DiffView/DiffView.ts +120 -0
- package/dist/level5/client/components/DiffView/diff-utils.ts +89 -0
- package/dist/level5/client/components/Divider/Divider.css +41 -0
- package/dist/level5/client/components/Divider/Divider.d.ts +7 -0
- package/dist/level5/client/components/Divider/Divider.ts +24 -0
- package/dist/level5/client/components/Drawer/Drawer.css +150 -0
- package/dist/level5/client/components/Drawer/Drawer.d.ts +20 -0
- package/dist/level5/client/components/Drawer/Drawer.ts +77 -0
- package/dist/level5/client/components/DropZone/DropZone.css +9 -0
- package/dist/level5/client/components/DropZone/DropZone.d.ts +28 -0
- package/dist/level5/client/components/DropZone/DropZone.ts +73 -0
- package/dist/level5/client/components/Dropdown/Dropdown.css +70 -0
- package/dist/level5/client/components/Dropdown/Dropdown.d.ts +23 -0
- package/dist/level5/client/components/Dropdown/Dropdown.ts +120 -0
- package/dist/level5/client/components/Editor/Editor.css +489 -0
- package/dist/level5/client/components/Editor/Editor.d.ts +15 -0
- package/dist/level5/client/components/Editor/Editor.ts +1053 -0
- package/dist/level5/client/components/Editor/edit-events.ts +86 -0
- package/dist/level5/client/components/Editor/model/apply.ts +269 -0
- package/dist/level5/client/components/Editor/model/diff.ts +102 -0
- package/dist/level5/client/components/Editor/model/dom.ts +197 -0
- package/dist/level5/client/components/Editor/model/history.ts +53 -0
- package/dist/level5/client/components/Editor/model/html.ts +282 -0
- package/dist/level5/client/components/Editor/model/inverse.ts +150 -0
- package/dist/level5/client/components/Editor/model/types.ts +89 -0
- package/dist/level5/client/components/Editor/tools/table.ts +66 -0
- package/dist/level5/client/components/Editor/tools/toolbar.d.ts +10 -0
- package/dist/level5/client/components/Editor/tools/toolbar.ts +112 -0
- package/dist/level5/client/components/Editor/tools/types.ts +54 -0
- package/dist/level5/client/components/EmptyState/EmptyState.css +36 -0
- package/dist/level5/client/components/EmptyState/EmptyState.d.ts +10 -0
- package/dist/level5/client/components/EmptyState/EmptyState.ts +27 -0
- package/dist/level5/client/components/ExportCSV/ExportCSV.css +1 -0
- package/dist/level5/client/components/ExportCSV/ExportCSV.d.ts +31 -0
- package/dist/level5/client/components/ExportCSV/ExportCSV.ts +60 -0
- package/dist/level5/client/components/Field/Field.css +44 -0
- package/dist/level5/client/components/Field/Field.d.ts +10 -0
- package/dist/level5/client/components/Field/Field.ts +35 -0
- package/dist/level5/client/components/FilePreview/FilePreview.css +77 -0
- package/dist/level5/client/components/FilePreview/FilePreview.d.ts +43 -0
- package/dist/level5/client/components/FilePreview/FilePreview.ts +413 -0
- package/dist/level5/client/components/FilePreview/markdown.ts +0 -0
- package/dist/level5/client/components/FileTree/FileTree.css +154 -0
- package/dist/level5/client/components/FileTree/FileTree.d.ts +58 -0
- package/dist/level5/client/components/FileTree/FileTree.ts +161 -0
- package/dist/level5/client/components/FileUpload/FileUpload.css +170 -0
- package/dist/level5/client/components/FileUpload/FileUpload.d.ts +21 -0
- package/dist/level5/client/components/FileUpload/FileUpload.ts +169 -0
- package/dist/level5/client/components/FloatButton/FloatButton.css +121 -0
- package/dist/level5/client/components/FloatButton/FloatButton.d.ts +35 -0
- package/dist/level5/client/components/FloatButton/FloatButton.ts +80 -0
- package/dist/level5/client/components/Form/Form.css +7 -0
- package/dist/level5/client/components/Form/Form.d.ts +23 -0
- package/dist/level5/client/components/Form/Form.ts +105 -0
- package/dist/level5/client/components/Grid/Grid.css +22 -0
- package/dist/level5/client/components/Grid/Grid.d.ts +35 -0
- package/dist/level5/client/components/Grid/Grid.ts +80 -0
- package/dist/level5/client/components/Highlight/Highlight.css +9 -0
- package/dist/level5/client/components/Highlight/Highlight.d.ts +14 -0
- package/dist/level5/client/components/Highlight/Highlight.ts +47 -0
- package/dist/level5/client/components/HoverCard/HoverCard.css +43 -0
- package/dist/level5/client/components/HoverCard/HoverCard.d.ts +24 -0
- package/dist/level5/client/components/HoverCard/HoverCard.ts +102 -0
- package/dist/level5/client/components/Icon/Icon.css +7 -0
- package/dist/level5/client/components/Icon/Icon.d.ts +20 -0
- package/dist/level5/client/components/Icon/Icon.ts +154 -0
- package/dist/level5/client/components/ImageCropper/ImageCropper.css +3 -0
- package/dist/level5/client/components/ImageCropper/ImageCropper.d.ts +22 -0
- package/dist/level5/client/components/ImageCropper/ImageCropper.ts +156 -0
- package/dist/level5/client/components/Img/Img.css +42 -0
- package/dist/level5/client/components/Img/Img.d.ts +27 -0
- package/dist/level5/client/components/Img/Img.ts +143 -0
- package/dist/level5/client/components/InView/InView.css +28 -0
- package/dist/level5/client/components/InView/InView.d.ts +17 -0
- package/dist/level5/client/components/InView/InView.ts +65 -0
- package/dist/level5/client/components/InfiniteScroll/InfiniteScroll.css +17 -0
- package/dist/level5/client/components/InfiniteScroll/InfiniteScroll.d.ts +18 -0
- package/dist/level5/client/components/InfiniteScroll/InfiniteScroll.ts +61 -0
- package/dist/level5/client/components/Input/Input.css +82 -0
- package/dist/level5/client/components/Input/Input.d.ts +31 -0
- package/dist/level5/client/components/Input/Input.ts +78 -0
- package/dist/level5/client/components/InputNumber/InputNumber.css +74 -0
- package/dist/level5/client/components/InputNumber/InputNumber.d.ts +26 -0
- package/dist/level5/client/components/InputNumber/InputNumber.ts +140 -0
- package/dist/level5/client/components/JSONViewer/JSONViewer.css +147 -0
- package/dist/level5/client/components/JSONViewer/JSONViewer.d.ts +22 -0
- package/dist/level5/client/components/JSONViewer/JSONViewer.ts +253 -0
- package/dist/level5/client/components/JsonSchemaForm/JsonSchemaForm.css +88 -0
- package/dist/level5/client/components/JsonSchemaForm/JsonSchemaForm.d.ts +49 -0
- package/dist/level5/client/components/JsonSchemaForm/JsonSchemaForm.ts +288 -0
- package/dist/level5/client/components/Kanban/Kanban.css +86 -0
- package/dist/level5/client/components/Kanban/Kanban.d.ts +29 -0
- package/dist/level5/client/components/Kanban/Kanban.ts +120 -0
- package/dist/level5/client/components/Label/Label.css +16 -0
- package/dist/level5/client/components/Label/Label.d.ts +12 -0
- package/dist/level5/client/components/Label/Label.ts +26 -0
- package/dist/level5/client/components/Layout/Layout.css +103 -0
- package/dist/level5/client/components/Layout/Layout.d.ts +61 -0
- package/dist/level5/client/components/Layout/Layout.ts +120 -0
- package/dist/level5/client/components/Link/Link.css +51 -0
- package/dist/level5/client/components/Link/Link.d.ts +23 -0
- package/dist/level5/client/components/Link/Link.ts +47 -0
- package/dist/level5/client/components/List/List.css +45 -0
- package/dist/level5/client/components/List/List.d.ts +22 -0
- package/dist/level5/client/components/List/List.ts +40 -0
- package/dist/level5/client/components/ListScaffold/ListScaffold.css +1 -0
- package/dist/level5/client/components/ListScaffold/ListScaffold.d.ts +40 -0
- package/dist/level5/client/components/ListScaffold/ListScaffold.ts +56 -0
- package/dist/level5/client/components/Loading/Loading.css +29 -0
- package/dist/level5/client/components/Loading/Loading.d.ts +6 -0
- package/dist/level5/client/components/Loading/Loading.ts +18 -0
- package/dist/level5/client/components/LogViewer/LogViewer.css +99 -0
- package/dist/level5/client/components/LogViewer/LogViewer.d.ts +30 -0
- package/dist/level5/client/components/LogViewer/LogViewer.ts +161 -0
- package/dist/level5/client/components/Markdown/Markdown.css +105 -0
- package/dist/level5/client/components/Markdown/Markdown.d.ts +15 -0
- package/dist/level5/client/components/Markdown/Markdown.ts +89 -0
- package/dist/level5/client/components/Markdown/parser.ts +276 -0
- package/dist/level5/client/components/MarkdownEditor/MarkdownEditor.css +8 -0
- package/dist/level5/client/components/MarkdownEditor/MarkdownEditor.d.ts +19 -0
- package/dist/level5/client/components/MarkdownEditor/MarkdownEditor.ts +60 -0
- package/dist/level5/client/components/Math/Math.css +18 -0
- package/dist/level5/client/components/Math/Math.d.ts +16 -0
- package/dist/level5/client/components/Math/Math.ts +126 -0
- package/dist/level5/client/components/Mentions/Mentions.css +76 -0
- package/dist/level5/client/components/Mentions/Mentions.d.ts +20 -0
- package/dist/level5/client/components/Mentions/Mentions.ts +166 -0
- package/dist/level5/client/components/Menu/Menu.css +190 -0
- package/dist/level5/client/components/Menu/Menu.d.ts +37 -0
- package/dist/level5/client/components/Menu/Menu.ts +272 -0
- package/dist/level5/client/components/Menubar/Menubar.css +104 -0
- package/dist/level5/client/components/Menubar/Menubar.d.ts +23 -0
- package/dist/level5/client/components/Menubar/Menubar.ts +164 -0
- package/dist/level5/client/components/MessageBubble/MessageBubble.css +33 -0
- package/dist/level5/client/components/MessageBubble/MessageBubble.d.ts +21 -0
- package/dist/level5/client/components/MessageBubble/MessageBubble.ts +49 -0
- package/dist/level5/client/components/Modal/Modal.css +121 -0
- package/dist/level5/client/components/Modal/Modal.d.ts +23 -0
- package/dist/level5/client/components/Modal/Modal.ts +80 -0
- package/dist/level5/client/components/NavBar/NavBar.css +43 -0
- package/dist/level5/client/components/NavBar/NavBar.d.ts +33 -0
- package/dist/level5/client/components/NavBar/NavBar.ts +47 -0
- package/dist/level5/client/components/NavMenu/NavMenu.css +109 -0
- package/dist/level5/client/components/NavMenu/NavMenu.d.ts +28 -0
- package/dist/level5/client/components/NavMenu/NavMenu.ts +291 -0
- package/dist/level5/client/components/Notification/Notification.css +102 -0
- package/dist/level5/client/components/Notification/Notification.d.ts +74 -0
- package/dist/level5/client/components/Notification/Notification.ts +252 -0
- package/dist/level5/client/components/OfficeEditor/ai/ai-bridge.ts +104 -0
- package/dist/level5/client/components/OfficeEditor/model/apply.ts +274 -0
- package/dist/level5/client/components/OfficeEditor/model/types.ts +184 -0
- package/dist/level5/client/components/PageHeader/PageHeader.css +44 -0
- package/dist/level5/client/components/PageHeader/PageHeader.d.ts +10 -0
- package/dist/level5/client/components/PageHeader/PageHeader.ts +24 -0
- package/dist/level5/client/components/Pagination/Pagination.css +69 -0
- package/dist/level5/client/components/Pagination/Pagination.d.ts +9 -0
- package/dist/level5/client/components/Pagination/Pagination.ts +84 -0
- package/dist/level5/client/components/PasswordInput/PasswordInput.css +26 -0
- package/dist/level5/client/components/PasswordInput/PasswordInput.d.ts +22 -0
- package/dist/level5/client/components/PasswordInput/PasswordInput.ts +84 -0
- package/dist/level5/client/components/PinInput/PinInput.css +35 -0
- package/dist/level5/client/components/PinInput/PinInput.d.ts +19 -0
- package/dist/level5/client/components/PinInput/PinInput.ts +133 -0
- package/dist/level5/client/components/Pipeline/Pipeline.css +70 -0
- package/dist/level5/client/components/Pipeline/Pipeline.d.ts +28 -0
- package/dist/level5/client/components/Pipeline/Pipeline.ts +83 -0
- package/dist/level5/client/components/Pipeline/dag-utils.ts +151 -0
- package/dist/level5/client/components/Popconfirm/Popconfirm.css +73 -0
- package/dist/level5/client/components/Popconfirm/Popconfirm.d.ts +35 -0
- package/dist/level5/client/components/Popconfirm/Popconfirm.ts +119 -0
- package/dist/level5/client/components/Popover/Popover.css +56 -0
- package/dist/level5/client/components/Popover/Popover.d.ts +21 -0
- package/dist/level5/client/components/Popover/Popover.ts +105 -0
- package/dist/level5/client/components/ProgressBar/ProgressBar.css +59 -0
- package/dist/level5/client/components/ProgressBar/ProgressBar.d.ts +14 -0
- package/dist/level5/client/components/ProgressBar/ProgressBar.ts +49 -0
- package/dist/level5/client/components/PromptTemplate/PromptTemplate.css +95 -0
- package/dist/level5/client/components/PromptTemplate/PromptTemplate.d.ts +38 -0
- package/dist/level5/client/components/PromptTemplate/PromptTemplate.ts +118 -0
- package/dist/level5/client/components/QRCode/QRCode.css +4 -0
- package/dist/level5/client/components/QRCode/QRCode.d.ts +21 -0
- package/dist/level5/client/components/QRCode/QRCode.ts +66 -0
- package/dist/level5/client/components/QRCode/qr.ts +331 -0
- package/dist/level5/client/components/RadioGroup/RadioGroup.css +61 -0
- package/dist/level5/client/components/RadioGroup/RadioGroup.d.ts +15 -0
- package/dist/level5/client/components/RadioGroup/RadioGroup.ts +56 -0
- package/dist/level5/client/components/Rate/Rate.css +98 -0
- package/dist/level5/client/components/Rate/Rate.d.ts +19 -0
- package/dist/level5/client/components/Rate/Rate.ts +124 -0
- package/dist/level5/client/components/ReasoningBlock/ReasoningBlock.css +68 -0
- package/dist/level5/client/components/ReasoningBlock/ReasoningBlock.d.ts +26 -0
- package/dist/level5/client/components/ReasoningBlock/ReasoningBlock.ts +59 -0
- package/dist/level5/client/components/RelationGraph/RelationGraph.css +67 -0
- package/dist/level5/client/components/RelationGraph/RelationGraph.d.ts +60 -0
- package/dist/level5/client/components/RelationGraph/RelationGraph.ts +222 -0
- package/dist/level5/client/components/Resizable/Resizable.css +51 -0
- package/dist/level5/client/components/Resizable/Resizable.d.ts +21 -0
- package/dist/level5/client/components/Resizable/Resizable.ts +87 -0
- package/dist/level5/client/components/Result/Result.css +44 -0
- package/dist/level5/client/components/Result/Result.d.ts +18 -0
- package/dist/level5/client/components/Result/Result.ts +43 -0
- package/dist/level5/client/components/Scrollbar/Scrollbar.css +27 -0
- package/dist/level5/client/components/Scrollbar/Scrollbar.d.ts +22 -0
- package/dist/level5/client/components/Scrollbar/Scrollbar.ts +41 -0
- package/dist/level5/client/components/SearchInput/SearchInput.css +72 -0
- package/dist/level5/client/components/SearchInput/SearchInput.d.ts +19 -0
- package/dist/level5/client/components/SearchInput/SearchInput.ts +69 -0
- package/dist/level5/client/components/SegmentedControl/SegmentedControl.css +76 -0
- package/dist/level5/client/components/SegmentedControl/SegmentedControl.d.ts +23 -0
- package/dist/level5/client/components/SegmentedControl/SegmentedControl.ts +57 -0
- package/dist/level5/client/components/Select/Select.css +202 -0
- package/dist/level5/client/components/Select/Select.d.ts +35 -0
- package/dist/level5/client/components/Select/Select.ts +318 -0
- package/dist/level5/client/components/SessionList/SessionList.css +152 -0
- package/dist/level5/client/components/SessionList/SessionList.d.ts +43 -0
- package/dist/level5/client/components/SessionList/SessionList.ts +196 -0
- package/dist/level5/client/components/SheetGrid/SheetGrid.css +174 -0
- package/dist/level5/client/components/SheetGrid/SheetGrid.d.ts +31 -0
- package/dist/level5/client/components/SheetGrid/SheetGrid.ts +373 -0
- package/dist/level5/client/components/Skeleton/Skeleton.css +79 -0
- package/dist/level5/client/components/Skeleton/Skeleton.d.ts +15 -0
- package/dist/level5/client/components/Skeleton/Skeleton.ts +62 -0
- package/dist/level5/client/components/SlideCanvas/SlideCanvas.css +172 -0
- package/dist/level5/client/components/SlideCanvas/SlideCanvas.d.ts +29 -0
- package/dist/level5/client/components/SlideCanvas/SlideCanvas.ts +426 -0
- package/dist/level5/client/components/Slider/Slider.css +233 -0
- package/dist/level5/client/components/Slider/Slider.d.ts +28 -0
- package/dist/level5/client/components/Slider/Slider.ts +291 -0
- package/dist/level5/client/components/SortableList/SortableList.css +27 -0
- package/dist/level5/client/components/SortableList/SortableList.d.ts +24 -0
- package/dist/level5/client/components/SortableList/SortableList.ts +84 -0
- package/dist/level5/client/components/Space/Space.css +15 -0
- package/dist/level5/client/components/Space/Space.d.ts +17 -0
- package/dist/level5/client/components/Space/Space.ts +55 -0
- package/dist/level5/client/components/Sparkline/Sparkline.css +5 -0
- package/dist/level5/client/components/Sparkline/Sparkline.d.ts +24 -0
- package/dist/level5/client/components/Sparkline/Sparkline.ts +77 -0
- package/dist/level5/client/components/Sparkline/sparkline-utils.ts +58 -0
- package/dist/level5/client/components/StatCard/StatCard.css +62 -0
- package/dist/level5/client/components/StatCard/StatCard.d.ts +20 -0
- package/dist/level5/client/components/StatCard/StatCard.ts +127 -0
- package/dist/level5/client/components/StatusDot/StatusDot.css +1 -0
- package/dist/level5/client/components/StatusDot/StatusDot.d.ts +25 -0
- package/dist/level5/client/components/StatusDot/StatusDot.ts +43 -0
- package/dist/level5/client/components/Steps/Steps.css +72 -0
- package/dist/level5/client/components/Steps/Steps.d.ts +13 -0
- package/dist/level5/client/components/Steps/Steps.ts +63 -0
- package/dist/level5/client/components/Switch/Switch.css +63 -0
- package/dist/level5/client/components/Switch/Switch.d.ts +9 -0
- package/dist/level5/client/components/Switch/Switch.ts +37 -0
- package/dist/level5/client/components/TabBar/TabBar.css +101 -0
- package/dist/level5/client/components/TabBar/TabBar.d.ts +36 -0
- package/dist/level5/client/components/TabBar/TabBar.ts +112 -0
- package/dist/level5/client/components/Table/Table.css +141 -0
- package/dist/level5/client/components/Table/Table.d.ts +49 -0
- package/dist/level5/client/components/Table/Table.ts +288 -0
- package/dist/level5/client/components/Tabs/Tabs.css +115 -0
- package/dist/level5/client/components/Tabs/Tabs.d.ts +23 -0
- package/dist/level5/client/components/Tabs/Tabs.ts +149 -0
- package/dist/level5/client/components/Tag/Tag.css +46 -0
- package/dist/level5/client/components/Tag/Tag.d.ts +9 -0
- package/dist/level5/client/components/Tag/Tag.ts +25 -0
- package/dist/level5/client/components/TagsInput/TagsInput.css +72 -0
- package/dist/level5/client/components/TagsInput/TagsInput.d.ts +22 -0
- package/dist/level5/client/components/TagsInput/TagsInput.ts +109 -0
- package/dist/level5/client/components/Textarea/Textarea.css +55 -0
- package/dist/level5/client/components/Textarea/Textarea.d.ts +24 -0
- package/dist/level5/client/components/Textarea/Textarea.ts +71 -0
- package/dist/level5/client/components/ThemeSwitch/ThemeSwitch.css +72 -0
- package/dist/level5/client/components/ThemeSwitch/ThemeSwitch.d.ts +35 -0
- package/dist/level5/client/components/ThemeSwitch/ThemeSwitch.ts +148 -0
- package/dist/level5/client/components/Timeline/Timeline.css +132 -0
- package/dist/level5/client/components/Timeline/Timeline.d.ts +27 -0
- package/dist/level5/client/components/Timeline/Timeline.ts +87 -0
- package/dist/level5/client/components/Toast/Toast.css +96 -0
- package/dist/level5/client/components/Toast/Toast.d.ts +42 -0
- package/dist/level5/client/components/Toast/Toast.ts +127 -0
- package/dist/level5/client/components/ToggleGroup/ToggleGroup.css +70 -0
- package/dist/level5/client/components/ToggleGroup/ToggleGroup.d.ts +34 -0
- package/dist/level5/client/components/ToggleGroup/ToggleGroup.ts +121 -0
- package/dist/level5/client/components/ToolCallCard/ToolCallCard.css +57 -0
- package/dist/level5/client/components/ToolCallCard/ToolCallCard.d.ts +24 -0
- package/dist/level5/client/components/ToolCallCard/ToolCallCard.ts +71 -0
- package/dist/level5/client/components/Tooltip/Tooltip.css +91 -0
- package/dist/level5/client/components/Tooltip/Tooltip.d.ts +18 -0
- package/dist/level5/client/components/Tooltip/Tooltip.ts +84 -0
- package/dist/level5/client/components/Tour/Tour.css +99 -0
- package/dist/level5/client/components/Tour/Tour.d.ts +35 -0
- package/dist/level5/client/components/Tour/Tour.ts +232 -0
- package/dist/level5/client/components/Transfer/Transfer.css +144 -0
- package/dist/level5/client/components/Transfer/Transfer.d.ts +23 -0
- package/dist/level5/client/components/Transfer/Transfer.ts +132 -0
- package/dist/level5/client/components/Tree/Tree.css +166 -0
- package/dist/level5/client/components/Tree/Tree.d.ts +36 -0
- package/dist/level5/client/components/Tree/Tree.ts +340 -0
- package/dist/level5/client/components/TreeSelect/TreeSelect.css +69 -0
- package/dist/level5/client/components/TreeSelect/TreeSelect.d.ts +32 -0
- package/dist/level5/client/components/TreeSelect/TreeSelect.ts +176 -0
- package/dist/level5/client/components/Typography/Typography.css +68 -0
- package/dist/level5/client/components/Typography/Typography.d.ts +40 -0
- package/dist/level5/client/components/Typography/Typography.ts +80 -0
- package/dist/level5/client/components/VideoPlayer/VideoPlayer.css +3 -0
- package/dist/level5/client/components/VideoPlayer/VideoPlayer.d.ts +26 -0
- package/dist/level5/client/components/VideoPlayer/VideoPlayer.ts +74 -0
- package/dist/level5/client/components/VirtualList/VirtualList.css +29 -0
- package/dist/level5/client/components/VirtualList/VirtualList.d.ts +24 -0
- package/dist/level5/client/components/VirtualList/VirtualList.ts +103 -0
- package/dist/level5/client/components/VirtualTable/VirtualTable.css +164 -0
- package/dist/level5/client/components/VirtualTable/VirtualTable.d.ts +41 -0
- package/dist/level5/client/components/VirtualTable/VirtualTable.ts +239 -0
- package/dist/level5/client/components/Watermark/Watermark.css +13 -0
- package/dist/level5/client/components/Watermark/Watermark.d.ts +20 -0
- package/dist/level5/client/components/Watermark/Watermark.ts +79 -0
- package/dist/level5/client/components/Wave/Wave.css +23 -0
- package/dist/level5/client/components/Wave/Wave.d.ts +16 -0
- package/dist/level5/client/components/Wave/Wave.ts +51 -0
- package/dist/level5/client/components/WordCloud/WordCloud.css +68 -0
- package/dist/level5/client/components/WordCloud/WordCloud.d.ts +80 -0
- package/dist/level5/client/components/WordCloud/WordCloud.ts +261 -0
- package/dist/level5/client/layout/_align-self.css +5 -0
- package/dist/level5/client/layout/_app-shell.css +171 -0
- package/dist/level5/client/layout/_base.css +275 -0
- package/dist/level5/client/layout/_block.css +6 -0
- package/dist/level5/client/layout/_border.css +7 -0
- package/dist/level5/client/layout/_cluster.css +11 -0
- package/dist/level5/client/layout/_container.css +9 -0
- package/dist/level5/client/layout/_dark.css +123 -0
- package/dist/level5/client/layout/_flex.css +15 -0
- package/dist/level5/client/layout/_hidden.css +27 -0
- package/dist/level5/client/layout/_layer.css +5 -0
- package/dist/level5/client/layout/_nowrap.css +10 -0
- package/dist/level5/client/layout/_overflow.css +4 -0
- package/dist/level5/client/layout/_popup.css +18 -0
- package/dist/level5/client/layout/_position.css +5 -0
- package/dist/level5/client/layout/_presets.css +48 -0
- package/dist/level5/client/layout/_props.css +26 -0
- package/dist/level5/client/layout/_safe-area.css +7 -0
- package/dist/level5/client/layout/_shrink.css +11 -0
- package/dist/level5/client/layout/_spacing.css +79 -0
- package/dist/level5/client/layout/_split.css +12 -0
- package/dist/level5/client/layout/_sticky.css +5 -0
- package/dist/level5/client/layout/_surface.css +94 -0
- package/dist/level5/client/layout/_text.css +75 -0
- package/dist/level5/client/layout/_tokens.css +312 -0
- package/dist/level5/client/layout/bundle.d.ts +42 -0
- package/dist/level5/client/layout/bundle.ts +190 -0
- package/dist/level5/client/layout/weifuwu-layout.css +1 -0
- package/dist/level5/client/office/docx.ts +509 -0
- package/dist/level5/client/office/pptx.ts +255 -0
- package/dist/level5/client/office/xlsx.ts +270 -0
- package/dist/level5/client/office/xml-serialize.d.ts +18 -0
- package/dist/level5/client/office/xml-serialize.ts +79 -0
- package/dist/level5/client/office/xml.ts +131 -0
- package/dist/level5/client/office/zip.ts +145 -0
- package/dist/level5/client/vdom/commands.ts +55 -0
- package/dist/level5/client/vdom/middlewares/api.d.ts +39 -0
- package/dist/level5/client/vdom/middlewares/api.ts +142 -0
- package/dist/level5/client/vdom/middlewares/auth-i18n.d.ts +41 -0
- package/dist/level5/client/vdom/middlewares/auth-i18n.ts +145 -0
- package/dist/level5/client/vdom/middlewares/ws.d.ts +50 -0
- package/dist/level5/client/vdom/middlewares/ws.ts +199 -0
- package/dist/level5/sandbox/agent.go +129 -0
- package/dist/level5/sandbox/bash.go +116 -0
- package/dist/level5/sandbox/go.mod +3 -0
- package/dist/level5/sandbox/main.go +141 -0
- package/dist/level5/sandbox/tools.go +264 -0
- package/dist/level5/sandbox/util.go +11 -0
- package/dist/level5/server/ai/agent.ts +330 -0
- package/dist/level5/server/ai/approvals.ts +73 -0
- package/dist/level5/server/ai/assemble.d.ts +19 -0
- package/dist/level5/server/ai/assemble.ts +46 -0
- package/dist/level5/server/ai/client.ts +565 -0
- package/dist/level5/server/ai/contracts.d.ts +121 -0
- package/dist/level5/server/ai/contracts.ts +107 -0
- package/dist/level5/server/ai/memory-server.ts +226 -0
- package/dist/level5/server/ai/memory.ts +241 -0
- package/dist/level5/server/ai/multimodal.ts +184 -0
- package/dist/level5/server/ai/openai.ts +41 -0
- package/dist/level5/server/ai/sse.ts +99 -0
- package/dist/level5/server/ai/types.d.ts +5 -0
- package/dist/level5/server/ai/types.ts +5 -0
- package/dist/level5/server/db/gql-from-shape.d.ts +23 -0
- package/dist/level5/server/db/gql-from-shape.ts +285 -0
- package/dist/level5/server/db/memory-redis.d.ts +103 -0
- package/dist/level5/server/db/memory-redis.ts +657 -0
- package/dist/level5/server/db/postgres/connection.d.ts +90 -0
- package/dist/level5/server/db/postgres/connection.ts +704 -0
- package/dist/level5/server/db/postgres/pool.ts +421 -0
- package/dist/level5/server/db/postgres/protocol.ts +398 -0
- package/dist/level5/server/db/postgres/schema.ts +70 -0
- package/dist/level5/server/db/redis/ast.ts +53 -0
- package/dist/level5/server/db/redis/client.d.ts +93 -0
- package/dist/level5/server/db/redis/client.ts +250 -0
- package/dist/level5/server/db/redis/commands.ts +184 -0
- package/dist/level5/server/db/redis/connection.ts +424 -0
- package/dist/level5/server/db/redis/pipeline.ts +71 -0
- package/dist/level5/server/db/redis/pool.d.ts +85 -0
- package/dist/level5/server/db/redis/pool.ts +361 -0
- package/dist/level5/server/db/redis/resp.d.ts +47 -0
- package/dist/level5/server/db/redis/resp.ts +246 -0
- package/dist/level5/server/db/redis/subscriber.d.ts +18 -0
- package/dist/level5/server/db/redis/subscriber.ts +35 -0
- package/dist/level5/server/db/redis-server.ts +347 -0
- package/dist/level5/server/db/rest-from-shape.d.ts +32 -0
- package/dist/level5/server/db/rest-from-shape.ts +138 -0
- package/dist/level5/server/db/server.ts +29 -0
- package/dist/level5/server/email/api.ts +77 -0
- package/dist/level5/server/email/contracts.ts +49 -0
- package/dist/level5/server/email/memory-email-server.ts +129 -0
- package/dist/level5/server/email/memory-email.d.ts +30 -0
- package/dist/level5/server/email/memory-email.ts +53 -0
- package/dist/level5/server/make-executable-schema.ts +40 -0
- package/dist/level5/server/middleware/compress.d.ts +25 -0
- package/dist/level5/server/middleware/compress.ts +91 -0
- package/dist/level5/server/middleware/cors.d.ts +25 -0
- package/dist/level5/server/middleware/cors.ts +81 -0
- package/dist/level5/server/middleware/graphql.d.ts +29 -0
- package/dist/level5/server/middleware/graphql.ts +429 -0
- package/dist/level5/server/middleware/rate-limit.d.ts +72 -0
- package/dist/level5/server/middleware/rate-limit.ts +222 -0
- package/dist/level5/server/middleware/static.d.ts +28 -0
- package/dist/level5/server/middleware/static.ts +205 -0
- package/dist/level5/server/postgres/client.ts +218 -0
- package/dist/level5/server/postgres/types.d.ts +80 -0
- package/dist/level5/server/postgres/types.ts +70 -0
- package/dist/level5/server/redis/client.ts +70 -0
- package/dist/level5/server/redis/types.d.ts +34 -0
- package/dist/level5/server/redis/types.ts +39 -0
- package/dist/level5/server/request.d.ts +23 -0
- package/dist/level5/server/request.ts +37 -0
- package/dist/level5/server/scheduler/cron.ts +182 -0
- package/dist/level5/server/ui/html-safe.ts +14 -0
- package/dist/level5/server/user/app-auth.d.ts +74 -0
- package/dist/level5/server/user/app-auth.ts +148 -0
- package/dist/level5/server/user/password.ts +38 -0
- package/dist/level5/server/user/token.ts +52 -0
- package/dist/level5/server/workflow/contracts.ts +202 -0
- package/dist/level5/server/workflow/expression.ts +489 -0
- package/dist/level5/server/workflow/runner.ts +350 -0
- package/dist/level5/server/workflow/std.ts +110 -0
- package/dist/level5/server/workflow/steps.ts +191 -0
- package/dist/level5/server/workflow/store.d.ts +19 -0
- package/dist/level5/server/workflow/store.ts +30 -0
- package/dist/level5/server/workflow/tojs.ts +248 -0
- package/dist/level5/server/workflow/validate.ts +245 -0
- package/dist/level5/server/workflow/views.ts +238 -0
- package/dist/level5/server/workflow/wfjs.ts +1015 -0
- package/dist/level5/server/workflows/cron.ts +80 -0
- package/dist/level5/server/ws/native/connection.d.ts +62 -0
- package/dist/level5/server/ws/native/connection.ts +287 -0
- package/dist/level5/server/ws/native/frame.d.ts +42 -0
- package/dist/level5/server/ws/native/frame.ts +120 -0
- package/dist/level5/server/ws/native/index.d.ts +5 -0
- package/dist/level5/server/ws/native/index.ts +5 -0
- package/dist/level5/server/ws/native/server.d.ts +8 -0
- package/dist/level5/server/ws/native/server.ts +92 -0
- package/dist/level6/apps/agent-platform/.env.example +32 -0
- package/dist/level6/apps/agent-platform/AI-EXPERIENCE-PLAN.md +124 -0
- package/dist/level6/apps/agent-platform/Dockerfile +37 -0
- package/dist/level6/apps/agent-platform/Dockerfile.sandbox +47 -0
- package/dist/level6/apps/agent-platform/IDEA.md +28 -0
- package/dist/level6/apps/agent-platform/OPTIMIZE-PLAN-2.md +66 -0
- package/dist/level6/apps/agent-platform/OPTIMIZE-PLAN-3.md +51 -0
- package/dist/level6/apps/agent-platform/ORCHESTRATION-PLAN.md +163 -0
- package/dist/level6/apps/agent-platform/README.md +213 -0
- package/dist/level6/apps/agent-platform/ROADMAP.md +59 -0
- package/dist/level6/apps/agent-platform/SANDBOX-AGENT-PLAN.md +125 -0
- package/dist/level6/apps/agent-platform/SANDBOX-TEST-PLAN.md +107 -0
- package/dist/level6/apps/agent-platform/UI-ROLE-TEST-PLAN.md +189 -0
- package/dist/level6/apps/agent-platform/cli.js +3 -0
- package/dist/level6/apps/agent-platform/design/AGENT-PLATFORM-UX-PLAN-2.md +122 -0
- package/dist/level6/apps/agent-platform/design/AGENT-PLATFORM-UX-PLAN.md +106 -0
- package/dist/level6/apps/agent-platform/design/AGENT-TYPES-OPTIMIZE-PLAN.md +94 -0
- package/dist/level6/apps/agent-platform/design/BUSINESS-SCENARIO-PLAN.md +114 -0
- package/dist/level6/apps/agent-platform/design/CHAT-INTERACTION-PLAN.md +125 -0
- package/dist/level6/apps/agent-platform/design/CHAT-UX-PLAN.md +137 -0
- package/dist/level6/apps/agent-platform/design/DELIVERABLES-UX-PLAN.md +53 -0
- package/dist/level6/apps/agent-platform/design/OPTIMIZE-PLAN-4.md +22 -0
- package/dist/level6/apps/agent-platform/design/ROLES-OPTIMIZATION-PLAN.md +141 -0
- package/dist/level6/apps/agent-platform/design/ROLES.md +170 -0
- package/dist/level6/apps/agent-platform/design/SURVEY-BOTS-PLAN.md +149 -0
- package/dist/level6/apps/agent-platform/docs/archive/AGENT-PERSONA-PLAN.md +164 -0
- package/dist/level6/apps/agent-platform/docs/archive/AGENT-TYPES-PLAN.md +75 -0
- package/dist/level6/apps/agent-platform/docs/archive/AGENT-TYPES-RESULTS.md +36 -0
- package/dist/level6/apps/agent-platform/docs/archive/COMMERCIAL-PLAN.md +202 -0
- package/dist/level6/apps/agent-platform/docs/archive/COMMERCIAL-RISKS.md +231 -0
- package/dist/level6/apps/agent-platform/docs/archive/COMPETITIVE-PLAN.md +197 -0
- package/dist/level6/apps/agent-platform/docs/archive/MULTI-AGENT-PLAN.md +177 -0
- package/dist/level6/apps/agent-platform/docs/archive/MULTI-ROLE-PLAN.md +185 -0
- package/dist/level6/apps/agent-platform/docs/archive/OPTIMIZE-PLAN.md +50 -0
- package/dist/level6/apps/agent-platform/docs/archive/PLAN.md +215 -0
- package/dist/level6/apps/agent-platform/docs/archive/PM-OPTIMIZE-PLAN.md +44 -0
- package/dist/level6/apps/agent-platform/docs/archive/README.md +12 -0
- package/dist/level6/apps/agent-platform/docs/archive/SANDBOX-LIFECYCLE-PLAN.md +260 -0
- package/dist/level6/apps/agent-platform/docs/archive/SANDBOX-PLAN.md +207 -0
- package/dist/level6/apps/agent-platform/docs/archive/SANDBOX-TASKS.md +165 -0
- package/dist/level6/apps/agent-platform/docs/archive/STREAM-TRANSPORT.md +81 -0
- package/dist/level6/apps/agent-platform/docs/archive/SURVEY-DEMO-ENHANCE-PLAN.md +145 -0
- package/dist/level6/apps/agent-platform/docs/archive/TEST-PLAN.md +428 -0
- package/dist/level6/apps/agent-platform/docs/archive/THREE-LAYER-REFACTOR-PLAN.md +197 -0
- package/dist/level6/apps/agent-platform/docs/archive/UI-REFACTOR-PLAN.md +44 -0
- package/dist/level6/apps/agent-platform/docs/archive/VERIFY-RESULTS.md +91 -0
- package/dist/level6/apps/agent-platform/docs/archive/WEBHOOK-OPTIMIZE-PLAN.md +61 -0
- package/dist/level6/apps/agent-platform/docs/archive/WEBHOOK-OPTIMIZE-RESULTS.md +34 -0
- package/dist/level6/apps/agent-platform/docs/blind-test.md +46 -0
- package/dist/level6/apps/agent-platform/docs/compliance.md +42 -0
- package/dist/level6/apps/agent-platform/docs/demo-script.md +75 -0
- package/dist/level6/apps/agent-platform/docs/deployment.md +109 -0
- package/dist/level6/apps/agent-platform/docs/permissions.md +49 -0
- package/dist/level6/apps/agent-platform/docs/positioning.md +59 -0
- package/dist/level6/apps/agent-platform/docs/pricing.md +60 -0
- package/dist/level6/apps/agent-platform/docs/sales-playbook.md +104 -0
- package/dist/level6/apps/agent-platform/docs/sandbox-threat-model.md +71 -0
- package/dist/level6/apps/agent-platform/docs/survey-guide.md +96 -0
- package/dist/level6/apps/agent-platform/public/index.html +13 -0
- package/dist/level6/apps/agent-platform/public/survey-campaigns.html +73 -0
- package/dist/level6/apps/agent-platform/public/survey-form.html +273 -0
- package/dist/level6/apps/agent-platform/public/survey-stats.html +264 -0
- package/dist/level6/apps/agent-platform/scripts/audit-any.mjs +29 -0
- package/dist/level6/apps/agent-platform/scripts/audit-page-generations.mjs +38 -0
- package/dist/level6/apps/agent-platform/scripts/audit-route-coverage.mjs +46 -0
- package/dist/level6/apps/agent-platform/scripts/backup.sh +50 -0
- package/dist/level6/apps/agent-platform/scripts/build.mjs +51 -0
- package/dist/level6/apps/agent-platform/scripts/ddl-parse.ts +88 -0
- package/dist/level6/apps/agent-platform/scripts/eval.mjs +91 -0
- package/dist/level6/apps/agent-platform/scripts/orchestration-demo.mjs +97 -0
- package/dist/level6/apps/agent-platform/scripts/persona-eval.mjs +144 -0
- package/dist/level6/apps/agent-platform/scripts/restore.sh +49 -0
- package/dist/level6/apps/agent-platform/scripts/seed-survey-agents.mjs +282 -0
- package/dist/level6/apps/agent-platform/scripts/seed.mjs +624 -0
- package/dist/level6/apps/agent-platform/scripts/shape-check.mjs +79 -0
- package/dist/level6/apps/agent-platform/scripts/survey-acceptance.mjs +98 -0
- package/dist/level6/apps/agent-platform/scripts/survey-demo.mjs +94 -0
- package/dist/level6/apps/agent-platform/scripts/survey-launch.mjs +103 -0
- package/dist/level6/apps/agent-platform/scripts/survey-summary.mjs +80 -0
- package/dist/level6/apps/agent-platform/scripts/upgrade.mjs +109 -0
- package/dist/level6/apps/agent-platform/server.js +586 -0
- package/dist/level6/apps/agent-platform/server.ts +48 -0
- package/dist/level6/apps/agent-platform/skills/builtin/fetch-url/SKILL.md +11 -0
- package/dist/level6/apps/agent-platform/skills/builtin/fetch-url/tools.ts +56 -0
- package/dist/level6/apps/agent-platform/skills/builtin/get-current-time/SKILL.md +11 -0
- package/dist/level6/apps/agent-platform/skills/builtin/get-current-time/tools.ts +38 -0
- package/dist/level6/apps/agent-platform/skills/builtin/process-csv/SKILL.md +11 -0
- package/dist/level6/apps/agent-platform/skills/builtin/process-csv/tools.ts +104 -0
- package/dist/level6/apps/agent-platform/skills/builtin/search-knowledge-base/SKILL.md +15 -0
- package/dist/level6/apps/agent-platform/skills/builtin/search-knowledge-base/tools.ts +51 -0
- package/dist/level6/apps/agent-platform/src/ai/types.ts +5 -0
- package/dist/level6/apps/agent-platform/src/bootstrap/deps.ts +425 -0
- package/dist/level6/apps/agent-platform/src/bootstrap/env.ts +21 -0
- package/dist/level6/apps/agent-platform/src/bootstrap/routes-protected.ts +932 -0
- package/dist/level6/apps/agent-platform/src/bootstrap/routes-public.ts +280 -0
- package/dist/level6/apps/agent-platform/src/db/orm.ts +28 -0
- package/dist/level6/apps/agent-platform/src/db/schema.sql +439 -0
- package/dist/level6/apps/agent-platform/src/db/shapes.ts +414 -0
- package/dist/level6/apps/agent-platform/src/db/tables.ts +540 -0
- package/dist/level6/apps/agent-platform/src/middleware/auth-payload.ts +13 -0
- package/dist/level6/apps/agent-platform/src/middleware/ctx.ts +39 -0
- package/dist/level6/apps/agent-platform/src/middleware/workspace.ts +82 -0
- package/dist/level6/apps/agent-platform/src/routes/admin.ts +259 -0
- package/dist/level6/apps/agent-platform/src/routes/agents.ts +394 -0
- package/dist/level6/apps/agent-platform/src/routes/ai-events.ts +52 -0
- package/dist/level6/apps/agent-platform/src/routes/deliverables.ts +86 -0
- package/dist/level6/apps/agent-platform/src/routes/demo.ts +68 -0
- package/dist/level6/apps/agent-platform/src/routes/departments.ts +618 -0
- package/dist/level6/apps/agent-platform/src/routes/knowledge.ts +405 -0
- package/dist/level6/apps/agent-platform/src/routes/messages.ts +557 -0
- package/dist/level6/apps/agent-platform/src/routes/role-templates.ts +246 -0
- package/dist/level6/apps/agent-platform/src/routes/sandboxes.ts +264 -0
- package/dist/level6/apps/agent-platform/src/routes/skills.ts +102 -0
- package/dist/level6/apps/agent-platform/src/routes/stats.ts +397 -0
- package/dist/level6/apps/agent-platform/src/routes/survey.ts +96 -0
- package/dist/level6/apps/agent-platform/src/routes/workspace.ts +240 -0
- package/dist/level6/apps/agent-platform/src/sandbox/capabilities.json +9 -0
- package/dist/level6/apps/agent-platform/src/sandbox/docker.ts +665 -0
- package/dist/level6/apps/agent-platform/src/sandbox/events.ts +107 -0
- package/dist/level6/apps/agent-platform/src/sandbox/host-client.ts +43 -0
- package/dist/level6/apps/agent-platform/src/sandbox/host-health.ts +67 -0
- package/dist/level6/apps/agent-platform/src/sandbox/host.ts +40 -0
- package/dist/level6/apps/agent-platform/src/sandbox/manager.ts +604 -0
- package/dist/level6/apps/agent-platform/src/sandbox/scheduler.ts +85 -0
- package/dist/level6/apps/agent-platform/src/services/agent-runner.ts +620 -0
- package/dist/level6/apps/agent-platform/src/services/ai-events.ts +114 -0
- package/dist/level6/apps/agent-platform/src/services/answer-cache.ts +94 -0
- package/dist/level6/apps/agent-platform/src/services/artifact-review.ts +130 -0
- package/dist/level6/apps/agent-platform/src/services/artifact-verify.ts +77 -0
- package/dist/level6/apps/agent-platform/src/services/audit.ts +55 -0
- package/dist/level6/apps/agent-platform/src/services/byok.ts +33 -0
- package/dist/level6/apps/agent-platform/src/services/chat.ts +1107 -0
- package/dist/level6/apps/agent-platform/src/services/embedding.ts +107 -0
- package/dist/level6/apps/agent-platform/src/services/event-contracts.ts +95 -0
- package/dist/level6/apps/agent-platform/src/services/group-memory.ts +91 -0
- package/dist/level6/apps/agent-platform/src/services/im-inbound.ts +48 -0
- package/dist/level6/apps/agent-platform/src/services/intent-route.ts +73 -0
- package/dist/level6/apps/agent-platform/src/services/kb-search.ts +146 -0
- package/dist/level6/apps/agent-platform/src/services/license.ts +44 -0
- package/dist/level6/apps/agent-platform/src/services/orchestration.ts +73 -0
- package/dist/level6/apps/agent-platform/src/services/org-manager.ts +62 -0
- package/dist/level6/apps/agent-platform/src/services/permissions.ts +58 -0
- package/dist/level6/apps/agent-platform/src/services/persona.ts +123 -0
- package/dist/level6/apps/agent-platform/src/services/plan.ts +89 -0
- package/dist/level6/apps/agent-platform/src/services/quota-alert.ts +40 -0
- package/dist/level6/apps/agent-platform/src/services/risk-policy.ts +59 -0
- package/dist/level6/apps/agent-platform/src/services/skill-watcher.ts +108 -0
- package/dist/level6/apps/agent-platform/src/services/skills.ts +274 -0
- package/dist/level6/apps/agent-platform/src/services/survey-campaign.ts +475 -0
- package/dist/level6/apps/agent-platform/src/services/survey-setup.ts +67 -0
- package/dist/level6/apps/agent-platform/src/services/task-decisions.ts +39 -0
- package/dist/level6/apps/agent-platform/src/services/task-markers.ts +38 -0
- package/dist/level6/apps/agent-platform/src/services/upload.ts +92 -0
- package/dist/level6/apps/agent-platform/src/services/versions.ts +94 -0
- package/dist/level6/apps/agent-platform/src/services/webhook-platform.ts +34 -0
- package/dist/level6/apps/agent-platform/src/services/webhook.ts +368 -0
- package/dist/level6/apps/agent-platform/src/shape-derived.tsd.ts +24 -0
- package/dist/level6/apps/agent-platform/src/shared/roles.ts +38 -0
- package/dist/level6/apps/agent-platform/src/tools/builtin.ts +563 -0
- package/dist/level6/apps/agent-platform/src/tools/image-gen.ts +51 -0
- package/dist/level6/apps/agent-platform/src/tools/registry.ts +23 -0
- package/dist/level6/apps/agent-platform/src/tools/video-gen.ts +241 -0
- package/dist/level6/apps/agent-platform/src/tools/workspace.ts +167 -0
- package/dist/level6/apps/agent-platform/src/ui/routes.ts +192 -0
- package/dist/level6/apps/agent-platform/tsconfig.json +35 -0
- package/dist/level6/apps/agent-platform/ui/app.css +88 -0
- package/dist/level6/apps/agent-platform/ui/blocks/FilesSection.tsx +321 -0
- package/dist/level6/apps/agent-platform/ui/blocks/KnowledgeSection.tsx +233 -0
- package/dist/level6/apps/agent-platform/ui/blocks/LogsSection.tsx +44 -0
- package/dist/level6/apps/agent-platform/ui/blocks/MessageItem.tsx +332 -0
- package/dist/level6/apps/agent-platform/ui/blocks/PreviewSection.tsx +64 -0
- package/dist/level6/apps/agent-platform/ui/blocks/SkillsSection.tsx +126 -0
- package/dist/level6/apps/agent-platform/ui/blocks/VersionsSection.tsx +67 -0
- package/dist/level6/apps/agent-platform/ui/blocks/app-chrome.tsx +100 -0
- package/dist/level6/apps/agent-platform/ui/blocks/ux.tsx +46 -0
- package/dist/level6/apps/agent-platform/ui/lib/api.ts +82 -0
- package/dist/level6/apps/agent-platform/ui/lib/ctx.d.ts +27 -0
- package/dist/level6/apps/agent-platform/ui/lib/download.ts +84 -0
- package/dist/level6/apps/agent-platform/ui/lib/i18n.ts +31 -0
- package/dist/level6/apps/agent-platform/ui/lib/nav.ts +32 -0
- package/dist/level6/apps/agent-platform/ui/lib/project-store.ts +42 -0
- package/dist/level6/apps/agent-platform/ui/lib/roles.ts +54 -0
- package/dist/level6/apps/agent-platform/ui/lib/track.ts +25 -0
- package/dist/level6/apps/agent-platform/ui/lib/types.ts +374 -0
- package/dist/level6/apps/agent-platform/ui/lib/video-popup.ts +27 -0
- package/dist/level6/apps/agent-platform/ui/lib/wf-events.ts +150 -0
- package/dist/level6/apps/agent-platform/ui/pages/Admin.tsx +289 -0
- package/dist/level6/apps/agent-platform/ui/pages/AgentDetail.tsx +672 -0
- package/dist/level6/apps/agent-platform/ui/pages/Agents.tsx +135 -0
- package/dist/level6/apps/agent-platform/ui/pages/Approvals.tsx +168 -0
- package/dist/level6/apps/agent-platform/ui/pages/Chat.tsx +1147 -0
- package/dist/level6/apps/agent-platform/ui/pages/Dashboard.tsx +228 -0
- package/dist/level6/apps/agent-platform/ui/pages/Deliverables.tsx +180 -0
- package/dist/level6/apps/agent-platform/ui/pages/DepartmentDetail.tsx +375 -0
- package/dist/level6/apps/agent-platform/ui/pages/Departments.tsx +89 -0
- package/dist/level6/apps/agent-platform/ui/pages/Login.tsx +95 -0
- package/dist/level6/apps/agent-platform/ui/pages/NewAgent.tsx +353 -0
- package/dist/level6/apps/agent-platform/ui/pages/NewChat.tsx +96 -0
- package/dist/level6/apps/agent-platform/ui/pages/NewDepartment.tsx +80 -0
- package/dist/level6/apps/agent-platform/ui/pages/Register.tsx +77 -0
- package/dist/level6/apps/agent-platform/ui/pages/Reports.tsx +241 -0
- package/dist/level6/apps/agent-platform/ui/pages/Sandboxes.tsx +206 -0
- package/dist/level6/apps/agent-platform/ui/pages/Settings.tsx +385 -0
- package/dist/level6/apps/agent-platform/ui/pages/Surveys.tsx +139 -0
- package/dist/level6/apps/agent-platform/ui/pages/Templates.tsx +150 -0
- package/dist/level6/apps/agent-platform/ui/pages/WorkflowDetail.tsx +507 -0
- package/dist/level6/apps/agent-platform/ui/pages/Workflows.tsx +207 -0
- package/dist/level6/apps/agent-platform/ui/pages/Workspace.tsx +270 -0
- package/dist/level6/apps/agent-platform/ui/router.ts +58 -0
- package/dist/level6/apps/agent-platform/ui/ssr-entry.ts +14 -0
- package/dist/level6/apps/agent-platform/ui/ssr.ts +81 -0
- package/dist/level6/apps/agent-platform/ui/v3-main.tsx +82 -0
- package/dist/level6/apps/showcase/cli.js +3 -0
- package/dist/level6/apps/showcase/server.js +166 -0
- package/dist/level6/apps/showcase/server.ts +267 -0
- package/dist/level6/apps/showcase/src/app-router.ts +59 -0
- package/dist/level6/apps/showcase/src/data.ts +53 -0
- package/dist/level6/apps/showcase/src/demo-backend.ts +110 -0
- package/dist/level6/apps/showcase/src/demos/ai-chat.tsx +353 -0
- package/dist/level6/apps/showcase/src/demos/code.ts +570 -0
- package/dist/level6/apps/showcase/src/demos/data-display.tsx +1133 -0
- package/dist/level6/apps/showcase/src/demos/data-feedback.tsx +260 -0
- package/dist/level6/apps/showcase/src/demos/form-advanced.tsx +245 -0
- package/dist/level6/apps/showcase/src/demos/form-core.tsx +100 -0
- package/dist/level6/apps/showcase/src/demos/form-select.tsx +135 -0
- package/dist/level6/apps/showcase/src/demos/index.ts +30 -0
- package/dist/level6/apps/showcase/src/demos/navigation.tsx +232 -0
- package/dist/level6/apps/showcase/src/demos/new-batch.tsx +1323 -0
- package/dist/level6/apps/showcase/src/demos/others.tsx +240 -0
- package/dist/level6/apps/showcase/src/demos/overlay-custom.tsx +42 -0
- package/dist/level6/apps/showcase/src/demos/platform-migrate.tsx +75 -0
- package/dist/level6/apps/showcase/src/main.tsx +26 -0
- package/dist/level6/apps/showcase/src/pages/components.tsx +183 -0
- package/dist/level6/apps/showcase/src/pages/not-found.tsx +18 -0
- package/dist/level6/apps/showcase/src/registry/components.ts +1144 -0
- package/dist/level6/apps/showcase/src/registry/index-json.ts +63 -0
- package/dist/level6/apps/showcase/src/registry/tags.ts +20 -0
- package/dist/level6/apps/showcase/src/registry/types.ts +24 -0
- package/dist/level6/apps/showcase/src/shell.tsx +53 -0
- package/dist/level6/apps/showcase/src/ssr.ts +13 -0
- package/dist/level6/apps/showcase/tsconfig.json +32 -0
- package/dist/level6/client/components/index.d.ts +298 -0
- package/dist/level6/client/components/index.js +57 -0
- package/dist/level6/client/components/index.ts +408 -0
- package/dist/level6/client/components/style.css +1 -0
- package/dist/level6/client/layout/index.d.ts +20 -0
- package/dist/level6/client/layout/index.js +17 -0
- package/dist/level6/client/layout/index.ts +20 -0
- package/dist/level6/client/vdom/index.d.ts +83 -0
- package/dist/level6/client/vdom/index.js +5 -0
- package/dist/level6/client/vdom/index.ts +104 -0
- package/dist/level6/client/vdom/jsx-runtime.d.ts +28 -0
- package/dist/level6/client/vdom/jsx-runtime.js +1 -0
- package/dist/level6/client/vdom/jsx-runtime.ts +34 -0
- package/dist/level6/client/vdom/testing.d.ts +46 -0
- package/dist/level6/client/vdom/testing.js +2 -0
- package/dist/level6/client/vdom/testing.ts +188 -0
- package/dist/level6/dev/index.js +46 -0
- package/dist/level6/dev/index.ts +57 -0
- package/dist/level6/index.d.ts +80 -0
- package/dist/level6/index.js +19624 -0
- package/dist/level6/index.ts +125 -0
- package/dist/level6/server/ai/index.d.ts +27 -0
- package/dist/level6/server/ai/index.js +7 -0
- package/dist/level6/server/ai/index.ts +58 -0
- package/dist/level6/server/email/index.d.ts +54 -0
- package/dist/level6/server/email/index.js +1 -0
- package/dist/level6/server/email/index.ts +83 -0
- package/dist/level6/server/messager/index.d.ts +250 -0
- package/dist/level6/server/messager/index.js +1 -0
- package/dist/level6/server/messager/index.ts +712 -0
- package/dist/level6/server/postgres/index.d.ts +2 -0
- package/dist/level6/server/postgres/index.js +17 -0
- package/dist/level6/server/postgres/index.ts +2 -0
- package/dist/level6/server/queue/index.d.ts +98 -0
- package/dist/level6/server/queue/index.js +1 -0
- package/dist/level6/server/queue/index.ts +478 -0
- package/dist/level6/server/redis/index.d.ts +2 -0
- package/dist/level6/server/redis/index.js +3 -0
- package/dist/level6/server/redis/index.ts +2 -0
- package/dist/level6/server/scheduler/index.d.ts +74 -0
- package/dist/level6/server/scheduler/index.js +1 -0
- package/dist/level6/server/scheduler/index.ts +282 -0
- package/dist/level6/server/ui/index.d.ts +64 -0
- package/dist/level6/server/ui/index.js +15 -0
- package/dist/level6/server/ui/index.ts +417 -0
- package/dist/level6/server/user/index.d.ts +461 -0
- package/dist/level6/server/user/index.js +1 -0
- package/dist/level6/server/user/index.ts +1218 -0
- package/dist/level6/server/workflow/index.d.ts +70 -0
- package/dist/level6/server/workflow/index.js +2476 -0
- package/dist/level6/server/workflow/index.ts +103 -0
- package/dist/level6/server/workflows/index.d.ts +267 -0
- package/dist/level6/server/workflows/index.js +24 -0
- package/dist/level6/server/workflows/index.ts +560 -0
- package/dist/level6/shared/router/index.d.ts +5 -0
- package/dist/level6/shared/router/index.ts +5 -0
- package/dist/server/email/index.js +1 -1
- package/dist/server/index.js +1719 -1268
- package/dist/server/messager/index.js +1 -1
- package/dist/server/postgres/index.js +9 -48
- package/dist/server/redis/index.js +2 -2
- package/dist/server/scheduler/index.js +1 -1
- package/dist/server/ui/index.js +9 -9
- package/dist/server/user/index.js +1 -1
- package/dist/server/workflow/index.js +11 -11
- package/docs/client.md +90 -50
- package/docs/layout.md +2 -2
- package/docs/level.md +125 -0
- package/docs/migration.md +95 -0
- package/docs/server.md +42 -34
- package/package.json +36 -122
- package/dist/cli/apps-typecheck.test.d.ts +0 -11
- package/dist/cli/home-flash.test.d.ts +0 -1
- package/dist/client/components/Accordion/Accordion.d.ts +0 -21
- package/dist/client/components/ActionSheet/ActionSheet.d.ts +0 -38
- package/dist/client/components/Affix/Affix.d.ts +0 -17
- package/dist/client/components/AiChat/AiChat.d.ts +0 -53
- package/dist/client/components/Alert/Alert.d.ts +0 -10
- package/dist/client/components/AlertGroup/AlertGroup.d.ts +0 -24
- package/dist/client/components/Anchor/Anchor.d.ts +0 -28
- package/dist/client/components/AppShell/AppShell.d.ts +0 -73
- package/dist/client/components/ApprovalCard/ApprovalCard.d.ts +0 -36
- package/dist/client/components/AspectRatio/AspectRatio.d.ts +0 -11
- package/dist/client/components/AuthPage/AuthPage.d.ts +0 -37
- package/dist/client/components/AutoComplete/AutoComplete.d.ts +0 -40
- package/dist/client/components/Avatar/Avatar.d.ts +0 -10
- package/dist/client/components/AvatarGroup/AvatarGroup.d.ts +0 -22
- package/dist/client/components/BackTop/BackTop.d.ts +0 -24
- package/dist/client/components/Badge/Badge.d.ts +0 -15
- package/dist/client/components/Breadcrumb/Breadcrumb.d.ts +0 -10
- package/dist/client/components/Button/Button.d.ts +0 -26
- package/dist/client/components/Calendar/Calendar.d.ts +0 -22
- package/dist/client/components/Card/Card.d.ts +0 -20
- package/dist/client/components/Carousel/Carousel.d.ts +0 -18
- package/dist/client/components/Cascader/Cascader.d.ts +0 -26
- package/dist/client/components/Chart/Chart.d.ts +0 -16
- package/dist/client/components/ChatInput/ChatInput.d.ts +0 -69
- package/dist/client/components/Checkbox/Checkbox.d.ts +0 -9
- package/dist/client/components/CheckboxGroup/CheckboxGroup.d.ts +0 -24
- package/dist/client/components/CitationCard/CitationCard.d.ts +0 -39
- package/dist/client/components/CodeBlock/CodeBlock.d.ts +0 -15
- package/dist/client/components/CodeEditor/CodeEditor.d.ts +0 -19
- package/dist/client/components/Collapse/Collapse.d.ts +0 -29
- package/dist/client/components/ColorPicker/ColorPicker.d.ts +0 -17
- package/dist/client/components/Command/Command.d.ts +0 -23
- package/dist/client/components/Confirm/Confirm.d.ts +0 -40
- package/dist/client/components/ContextMenu/ContextMenu.d.ts +0 -20
- package/dist/client/components/CopyButton/CopyButton.d.ts +0 -19
- package/dist/client/components/CronPicker/CronPicker.d.ts +0 -31
- package/dist/client/components/DatePicker/DatePicker.d.ts +0 -21
- package/dist/client/components/Descriptions/Descriptions.d.ts +0 -22
- package/dist/client/components/DiffView/DiffView.d.ts +0 -25
- package/dist/client/components/Divider/Divider.d.ts +0 -7
- package/dist/client/components/Drawer/Drawer.d.ts +0 -20
- package/dist/client/components/DropZone/DropZone.d.ts +0 -28
- package/dist/client/components/Dropdown/Dropdown.d.ts +0 -23
- package/dist/client/components/Editor/Editor.d.ts +0 -15
- package/dist/client/components/Editor/tools/toolbar.d.ts +0 -10
- package/dist/client/components/EmptyState/EmptyState.d.ts +0 -10
- package/dist/client/components/ExportCSV/ExportCSV.d.ts +0 -31
- package/dist/client/components/Field/Field.d.ts +0 -10
- package/dist/client/components/FilePreview/FilePreview.d.ts +0 -43
- package/dist/client/components/FileTree/FileTree.d.ts +0 -58
- package/dist/client/components/FileUpload/FileUpload.d.ts +0 -21
- package/dist/client/components/FloatButton/FloatButton.d.ts +0 -35
- package/dist/client/components/Form/Form.d.ts +0 -23
- package/dist/client/components/Grid/Grid.d.ts +0 -35
- package/dist/client/components/Highlight/Highlight.d.ts +0 -14
- package/dist/client/components/HoverCard/HoverCard.d.ts +0 -24
- package/dist/client/components/Icon/Icon.d.ts +0 -20
- package/dist/client/components/ImageCropper/ImageCropper.d.ts +0 -22
- package/dist/client/components/Img/Img.d.ts +0 -27
- package/dist/client/components/InView/InView.d.ts +0 -17
- package/dist/client/components/InfiniteScroll/InfiniteScroll.d.ts +0 -18
- package/dist/client/components/Input/Input.d.ts +0 -31
- package/dist/client/components/InputNumber/InputNumber.d.ts +0 -26
- package/dist/client/components/JSONViewer/JSONViewer.d.ts +0 -22
- package/dist/client/components/JsonSchemaForm/JsonSchemaForm.d.ts +0 -49
- package/dist/client/components/Kanban/Kanban.d.ts +0 -29
- package/dist/client/components/Label/Label.d.ts +0 -12
- package/dist/client/components/Layout/Layout.d.ts +0 -61
- package/dist/client/components/Link/Link.d.ts +0 -23
- package/dist/client/components/List/List.d.ts +0 -22
- package/dist/client/components/ListScaffold/ListScaffold.d.ts +0 -40
- package/dist/client/components/Loading/Loading.d.ts +0 -6
- package/dist/client/components/LogViewer/LogViewer.d.ts +0 -30
- package/dist/client/components/Markdown/Markdown.d.ts +0 -15
- package/dist/client/components/MarkdownEditor/MarkdownEditor.d.ts +0 -19
- package/dist/client/components/Math/Math.d.ts +0 -16
- package/dist/client/components/Mentions/Mentions.d.ts +0 -20
- package/dist/client/components/Menu/Menu.d.ts +0 -37
- package/dist/client/components/Menubar/Menubar.d.ts +0 -23
- package/dist/client/components/MessageBubble/MessageBubble.d.ts +0 -21
- package/dist/client/components/Modal/Modal.d.ts +0 -23
- package/dist/client/components/NavBar/NavBar.d.ts +0 -33
- package/dist/client/components/NavMenu/NavMenu.d.ts +0 -28
- package/dist/client/components/Notification/Notification.d.ts +0 -74
- package/dist/client/components/PageHeader/PageHeader.d.ts +0 -10
- package/dist/client/components/Pagination/Pagination.d.ts +0 -9
- package/dist/client/components/PasswordInput/PasswordInput.d.ts +0 -22
- package/dist/client/components/PinInput/PinInput.d.ts +0 -19
- package/dist/client/components/Pipeline/Pipeline.d.ts +0 -28
- package/dist/client/components/Popconfirm/Popconfirm.d.ts +0 -35
- package/dist/client/components/Popover/Popover.d.ts +0 -21
- package/dist/client/components/ProgressBar/ProgressBar.d.ts +0 -14
- package/dist/client/components/PromptTemplate/PromptTemplate.d.ts +0 -38
- package/dist/client/components/QRCode/QRCode.d.ts +0 -21
- package/dist/client/components/RadioGroup/RadioGroup.d.ts +0 -15
- package/dist/client/components/Rate/Rate.d.ts +0 -19
- package/dist/client/components/ReasoningBlock/ReasoningBlock.d.ts +0 -26
- package/dist/client/components/RelationGraph/RelationGraph.d.ts +0 -60
- package/dist/client/components/Resizable/Resizable.d.ts +0 -21
- package/dist/client/components/Result/Result.d.ts +0 -18
- package/dist/client/components/Scrollbar/Scrollbar.d.ts +0 -22
- package/dist/client/components/SearchInput/SearchInput.d.ts +0 -19
- package/dist/client/components/SegmentedControl/SegmentedControl.d.ts +0 -23
- package/dist/client/components/Select/Select.d.ts +0 -35
- package/dist/client/components/SessionList/SessionList.d.ts +0 -43
- package/dist/client/components/SheetGrid/SheetGrid.d.ts +0 -31
- package/dist/client/components/Skeleton/Skeleton.d.ts +0 -15
- package/dist/client/components/SlideCanvas/SlideCanvas.d.ts +0 -29
- package/dist/client/components/Slider/Slider.d.ts +0 -28
- package/dist/client/components/SortableList/SortableList.d.ts +0 -24
- package/dist/client/components/Space/Space.d.ts +0 -17
- package/dist/client/components/Sparkline/Sparkline.d.ts +0 -24
- package/dist/client/components/StatCard/StatCard.d.ts +0 -20
- package/dist/client/components/StatusDot/StatusDot.d.ts +0 -25
- package/dist/client/components/Steps/Steps.d.ts +0 -13
- package/dist/client/components/Switch/Switch.d.ts +0 -9
- package/dist/client/components/TabBar/TabBar.d.ts +0 -36
- package/dist/client/components/Table/Table.d.ts +0 -49
- package/dist/client/components/Tabs/Tabs.d.ts +0 -23
- package/dist/client/components/Tag/Tag.d.ts +0 -9
- package/dist/client/components/TagsInput/TagsInput.d.ts +0 -22
- package/dist/client/components/Textarea/Textarea.d.ts +0 -24
- package/dist/client/components/ThemeSwitch/ThemeSwitch.d.ts +0 -35
- package/dist/client/components/Timeline/Timeline.d.ts +0 -27
- package/dist/client/components/Toast/Toast.d.ts +0 -42
- package/dist/client/components/ToggleGroup/ToggleGroup.d.ts +0 -34
- package/dist/client/components/ToolCallCard/ToolCallCard.d.ts +0 -24
- package/dist/client/components/Tooltip/Tooltip.d.ts +0 -18
- package/dist/client/components/Tour/Tour.d.ts +0 -35
- package/dist/client/components/Transfer/Transfer.d.ts +0 -23
- package/dist/client/components/Tree/Tree.d.ts +0 -36
- package/dist/client/components/TreeSelect/TreeSelect.d.ts +0 -32
- package/dist/client/components/Typography/Typography.d.ts +0 -40
- package/dist/client/components/VideoPlayer/VideoPlayer.d.ts +0 -26
- package/dist/client/components/VirtualList/VirtualList.d.ts +0 -24
- package/dist/client/components/VirtualTable/VirtualTable.d.ts +0 -41
- package/dist/client/components/Watermark/Watermark.d.ts +0 -20
- package/dist/client/components/Wave/Wave.d.ts +0 -16
- package/dist/client/components/WordCloud/WordCloud.d.ts +0 -80
- package/dist/client/components/index.d.ts +0 -298
- package/dist/client/layout/bundle.d.ts +0 -42
- package/dist/client/layout/index.d.ts +0 -20
- package/dist/client/office/xml-serialize.d.ts +0 -18
- package/dist/client/vdom/context/UIContext.d.ts +0 -69
- package/dist/client/vdom/core/create-component.d.ts +0 -42
- package/dist/client/vdom/core/create-item.d.ts +0 -92
- package/dist/client/vdom/core/diff/attrs.d.ts +0 -18
- package/dist/client/vdom/core/diff/cleanup.d.ts +0 -44
- package/dist/client/vdom/core/field/index.d.ts +0 -19
- package/dist/client/vdom/core/node/children.d.ts +0 -20
- package/dist/client/vdom/core/node/component.d.ts +0 -92
- package/dist/client/vdom/core/node/fragment.d.ts +0 -14
- package/dist/client/vdom/core/node/index.d.ts +0 -35
- package/dist/client/vdom/core/node/keyed.d.ts +0 -64
- package/dist/client/vdom/core/node/native.d.ts +0 -25
- package/dist/client/vdom/core/patch/index.d.ts +0 -74
- package/dist/client/vdom/core/patch/processors.d.ts +0 -82
- package/dist/client/vdom/core/patch/state-machine.d.ts +0 -38
- package/dist/client/vdom/core/patch/verify.d.ts +0 -17
- package/dist/client/vdom/core/protocol.d.ts +0 -100
- package/dist/client/vdom/core/router.d.ts +0 -38
- package/dist/client/vdom/core/ssr/absorb.d.ts +0 -80
- package/dist/client/vdom/core/ssr/html.d.ts +0 -32
- package/dist/client/vdom/core/transform/index.d.ts +0 -46
- package/dist/client/vdom/core/transform/states.d.ts +0 -22
- package/dist/client/vdom/core/transform/table.d.ts +0 -28
- package/dist/client/vdom/core/v2/cycle.d.ts +0 -56
- package/dist/client/vdom/core/v2/diff.d.ts +0 -89
- package/dist/client/vdom/core/v2/integrate.d.ts +0 -24
- package/dist/client/vdom/core/v2/render.d.ts +0 -28
- package/dist/client/vdom/core/v2/schedule.d.ts +0 -33
- package/dist/client/vdom/core/v2/ssr.d.ts +0 -14
- package/dist/client/vdom/core/vnode.d.ts +0 -54
- package/dist/client/vdom/dev/render-health.d.ts +0 -60
- package/dist/client/vdom/hooks/ai-stream.d.ts +0 -46
- package/dist/client/vdom/hooks/chat.d.ts +0 -118
- package/dist/client/vdom/hooks/env.d.ts +0 -183
- package/dist/client/vdom/hooks/field.d.ts +0 -54
- package/dist/client/vdom/hooks/overlay.d.ts +0 -60
- package/dist/client/vdom/hooks/popup-manager.d.ts +0 -113
- package/dist/client/vdom/hooks/use-observable.d.ts +0 -13
- package/dist/client/vdom/index.d.ts +0 -82
- package/dist/client/vdom/jsx-runtime.d.ts +0 -28
- package/dist/client/vdom/middlewares/api.d.ts +0 -46
- package/dist/client/vdom/middlewares/auth-i18n.d.ts +0 -73
- package/dist/client/vdom/middlewares/ws.d.ts +0 -77
- package/dist/client/vdom/testing.d.ts +0 -46
- package/dist/server/ai/assemble.d.ts +0 -19
- package/dist/server/ai/contracts.d.ts +0 -121
- package/dist/server/ai/index.d.ts +0 -27
- package/dist/server/ai/types.d.ts +0 -156
- package/dist/server/core/collect.d.ts +0 -31
- package/dist/server/core/hub.d.ts +0 -2
- package/dist/server/core/router.d.ts +0 -93
- package/dist/server/core/serve.d.ts +0 -32
- package/dist/server/core/ws.d.ts +0 -43
- package/dist/server/db/body.d.ts +0 -31
- package/dist/server/db/contracts.d.ts +0 -84
- package/dist/server/db/errors.d.ts +0 -44
- package/dist/server/db/gql-from-shape.d.ts +0 -42
- package/dist/server/db/http.d.ts +0 -38
- package/dist/server/db/memory-redis.d.ts +0 -103
- package/dist/server/db/memory-sql.d.ts +0 -104
- package/dist/server/db/orm.d.ts +0 -110
- package/dist/server/db/postgres/connection.d.ts +0 -90
- package/dist/server/db/query-builder.d.ts +0 -19
- package/dist/server/db/redis/client.d.ts +0 -93
- package/dist/server/db/redis/pool.d.ts +0 -85
- package/dist/server/db/redis/resp.d.ts +0 -49
- package/dist/server/db/redis/subscriber.d.ts +0 -17
- package/dist/server/db/rest-from-shape.d.ts +0 -56
- package/dist/server/db/schema.d.ts +0 -78
- package/dist/server/db/shape.d.ts +0 -131
- package/dist/server/db/typed-query.d.ts +0 -113
- package/dist/server/email/index.d.ts +0 -54
- package/dist/server/email/memory-email.d.ts +0 -30
- package/dist/server/graphql.d.ts +0 -17
- package/dist/server/index.d.ts +0 -69
- package/dist/server/messager/index.d.ts +0 -249
- package/dist/server/middleware/compress.d.ts +0 -25
- package/dist/server/middleware/cors.d.ts +0 -25
- package/dist/server/middleware/rate-limit.d.ts +0 -72
- package/dist/server/middleware/static.d.ts +0 -28
- package/dist/server/postgres/index.d.ts +0 -2
- package/dist/server/postgres/types.d.ts +0 -80
- package/dist/server/queue/index.d.ts +0 -98
- package/dist/server/redis/index.d.ts +0 -2
- package/dist/server/redis/types.d.ts +0 -34
- package/dist/server/request.d.ts +0 -23
- package/dist/server/response.d.ts +0 -63
- package/dist/server/scheduler/index.d.ts +0 -74
- package/dist/server/types.d.ts +0 -104
- package/dist/server/ui/index.d.ts +0 -64
- package/dist/server/user/app-auth.d.ts +0 -74
- package/dist/server/user/index.d.ts +0 -461
- package/dist/server/workflow/index.d.ts +0 -70
- package/dist/server/workflow/store.d.ts +0 -19
- package/dist/server/workflows/index.d.ts +0 -267
- package/dist/shared/router/trie.d.ts +0 -69
- /package/dist/{server → level0}/db/filter.d.ts +0 -0
- /package/dist/{server → level0}/db/ops.d.ts +0 -0
- /package/dist/{server → level0}/db/query.d.ts +0 -0
- /package/dist/{shared → level0}/router/chain.d.ts +0 -0
- /package/dist/{shared → level0}/router/context.d.ts +0 -0
- /package/dist/{shared → level0}/router/ctx-fields.d.ts +0 -0
- /package/dist/{shared → level0}/router/pipeline.d.ts +0 -0
- /package/dist/{shared → level0}/router/types.d.ts +0 -0
- /package/dist/{client/vdom/core → level0/vdom}/command/create.d.ts +0 -0
- /package/dist/{client/vdom/core → level0/vdom}/command/index.d.ts +0 -0
- /package/dist/{client/vdom/core → level0/vdom}/command/insert.d.ts +0 -0
- /package/dist/{client/vdom/core → level0/vdom}/command/lifecycle.d.ts +0 -0
- /package/dist/{client/vdom/core → level0/vdom}/command/props.d.ts +0 -0
- /package/dist/{client/vdom/core → level0/vdom}/field/key.d.ts +0 -0
- /package/dist/{client/vdom/core → level0/vdom}/node/hole.d.ts +0 -0
- /package/dist/{shared → level0}/zod.d.ts +0 -0
- /package/dist/{client/vdom/core → level1/vdom}/async-guard.d.ts +0 -0
- /package/dist/{client → level1}/vdom/dev/effect-guard.d.ts +0 -0
- /package/dist/{client → level1}/vdom/dev/error-counter.d.ts +0 -0
- /package/dist/{client/vdom/core → level1/vdom}/node/portal.d.ts +0 -0
- /package/dist/{client → level1}/vdom/observable/index.d.ts +0 -0
- /package/dist/{client → level1}/vdom/observable/observable.d.ts +0 -0
- /package/dist/{client → level1}/vdom/observable/operators.d.ts +0 -0
- /package/dist/{client → level1}/vdom/observable/sources.d.ts +0 -0
- /package/dist/{client → level1}/vdom/observable/types.d.ts +0 -0
- /package/dist/{client → level1}/vdom/store.d.ts +0 -0
- /package/dist/{client/vdom/core → level1/vdom}/v2/spy.d.ts +0 -0
- /package/dist/{server → level2}/db/consistency.d.ts +0 -0
- /package/dist/{server/core → level2}/error-counter.d.ts +0 -0
- /package/dist/{client → level3}/vdom/browser/Browser.d.ts +0 -0
- /package/dist/{client → level3}/vdom/browser/create-client-browser.d.ts +0 -0
- /package/dist/{client → level3}/vdom/context/data.d.ts +0 -0
- /package/dist/{client/vdom/core → level3/vdom}/field/attributes.d.ts +0 -0
- /package/dist/{client/vdom/core → level3/vdom}/field/events.d.ts +0 -0
- /package/dist/{client/vdom/core → level3/vdom}/field/input-sync.d.ts +0 -0
- /package/dist/{client/vdom/core → level3/vdom}/field/props.d.ts +0 -0
- /package/dist/{client/vdom/core → level3/vdom}/field/ref.d.ts +0 -0
- /package/dist/{client/vdom/core → level3/vdom}/field/style.d.ts +0 -0
- /package/dist/{client → level3}/vdom/hooks/basic.d.ts +0 -0
- /package/dist/{client → level3}/vdom/hooks/controlled.d.ts +0 -0
- /package/dist/{client → level3}/vdom/hooks/drag-media.d.ts +0 -0
- /package/dist/{client → level3}/vdom/hooks/input.d.ts +0 -0
- /package/dist/{client → level3}/vdom/hooks/observe.d.ts +0 -0
- /package/dist/{client → level3}/vdom/hooks/popup.d.ts +0 -0
- /package/dist/{client → level3}/vdom/hooks/signal.d.ts +0 -0
- /package/dist/{client → level3}/vdom/hooks/stable.d.ts +0 -0
- /package/dist/{client/vdom/core → level3/vdom}/patch/fields.d.ts +0 -0
- /package/dist/{client/vdom/core → level3/vdom}/transform/component.d.ts +0 -0
- /package/dist/{client/vdom/core → level3/vdom}/transform/element.d.ts +0 -0
- /package/dist/{client/vdom/core → level3/vdom}/transform/fragment.d.ts +0 -0
- /package/dist/{client/vdom/core → level3/vdom}/transform/hole.d.ts +0 -0
- /package/dist/{client/vdom/core → level3/vdom}/transform/text.d.ts +0 -0
- /package/dist/{client/vdom/core → level3/vdom}/v2/serve.d.ts +0 -0
- /package/dist/{client → level4/client}/layout/decl.d.ts +0 -0
- /package/dist/{client → level4/client}/layout/define.d.ts +0 -0
- /package/dist/{client → level5/client}/components/Chart/chart-utils.d.ts +0 -0
- /package/dist/{client → level5/client}/components/CodeBlock/highlight.d.ts +0 -0
- /package/dist/{client → level5/client}/components/DatePicker/calendar-utils.d.ts +0 -0
- /package/dist/{client → level5/client}/components/DiffView/diff-utils.d.ts +0 -0
- /package/dist/{client → level5/client}/components/Editor/edit-events.d.ts +0 -0
- /package/dist/{client → level5/client}/components/Editor/model/apply.d.ts +0 -0
- /package/dist/{client → level5/client}/components/Editor/model/diff.d.ts +0 -0
- /package/dist/{client → level5/client}/components/Editor/model/dom.d.ts +0 -0
- /package/dist/{client → level5/client}/components/Editor/model/history.d.ts +0 -0
- /package/dist/{client → level5/client}/components/Editor/model/html.d.ts +0 -0
- /package/dist/{client → level5/client}/components/Editor/model/inverse.d.ts +0 -0
- /package/dist/{client → level5/client}/components/Editor/model/types.d.ts +0 -0
- /package/dist/{client → level5/client}/components/Editor/tools/table.d.ts +0 -0
- /package/dist/{client → level5/client}/components/Editor/tools/types.d.ts +0 -0
- /package/dist/{client → level5/client}/components/FilePreview/markdown.d.ts +0 -0
- /package/dist/{client → level5/client}/components/Markdown/parser.d.ts +0 -0
- /package/dist/{client → level5/client}/components/OfficeEditor/ai/ai-bridge.d.ts +0 -0
- /package/dist/{client → level5/client}/components/OfficeEditor/model/apply.d.ts +0 -0
- /package/dist/{client → level5/client}/components/OfficeEditor/model/types.d.ts +0 -0
- /package/dist/{client → level5/client}/components/Pipeline/dag-utils.d.ts +0 -0
- /package/dist/{client → level5/client}/components/QRCode/qr.d.ts +0 -0
- /package/dist/{client → level5/client}/components/Sparkline/sparkline-utils.d.ts +0 -0
- /package/dist/{client → level5/client}/office/docx.d.ts +0 -0
- /package/dist/{client → level5/client}/office/pptx.d.ts +0 -0
- /package/dist/{client → level5/client}/office/xlsx.d.ts +0 -0
- /package/dist/{client → level5/client}/office/xml.d.ts +0 -0
- /package/dist/{client → level5/client}/office/zip.d.ts +0 -0
- /package/dist/{client → level5/client}/vdom/commands.d.ts +0 -0
- /package/dist/{server → level5/server}/ai/agent.d.ts +0 -0
- /package/dist/{server → level5/server}/ai/approvals.d.ts +0 -0
- /package/dist/{server → level5/server}/ai/client.d.ts +0 -0
- /package/dist/{server → level5/server}/ai/memory-server.d.ts +0 -0
- /package/dist/{server → level5/server}/ai/memory.d.ts +0 -0
- /package/dist/{server → level5/server}/ai/multimodal.d.ts +0 -0
- /package/dist/{server → level5/server}/ai/openai.d.ts +0 -0
- /package/dist/{server → level5/server}/ai/sse.d.ts +0 -0
- /package/dist/{server → level5/server}/db/postgres/pool.d.ts +0 -0
- /package/dist/{server → level5/server}/db/postgres/protocol.d.ts +0 -0
- /package/dist/{server → level5/server}/db/postgres/schema.d.ts +0 -0
- /package/dist/{server → level5/server}/db/redis/commands.d.ts +0 -0
- /package/dist/{server → level5/server}/db/redis/connection.d.ts +0 -0
- /package/dist/{server → level5/server}/db/redis/pipeline.d.ts +0 -0
- /package/dist/{server → level5/server}/db/redis-server.d.ts +0 -0
- /package/dist/{server → level5/server}/db/server.d.ts +0 -0
- /package/dist/{server → level5/server}/email/api.d.ts +0 -0
- /package/dist/{server → level5/server}/email/contracts.d.ts +0 -0
- /package/dist/{server → level5/server}/email/memory-email-server.d.ts +0 -0
- /package/dist/{server → level5/server}/make-executable-schema.d.ts +0 -0
- /package/dist/{server → level5/server}/postgres/client.d.ts +0 -0
- /package/dist/{server → level5/server}/redis/client.d.ts +0 -0
- /package/dist/{server → level5/server}/scheduler/cron.d.ts +0 -0
- /package/dist/{server → level5/server}/ui/html-safe.d.ts +0 -0
- /package/dist/{server → level5/server}/user/password.d.ts +0 -0
- /package/dist/{server → level5/server}/user/token.d.ts +0 -0
- /package/dist/{server → level5/server}/workflow/contracts.d.ts +0 -0
- /package/dist/{server → level5/server}/workflow/expression.d.ts +0 -0
- /package/dist/{server → level5/server}/workflow/runner.d.ts +0 -0
- /package/dist/{server → level5/server}/workflow/std.d.ts +0 -0
- /package/dist/{server → level5/server}/workflow/steps.d.ts +0 -0
- /package/dist/{server → level5/server}/workflow/tojs.d.ts +0 -0
- /package/dist/{server → level5/server}/workflow/validate.d.ts +0 -0
- /package/dist/{server → level5/server}/workflow/views.d.ts +0 -0
- /package/dist/{server → level5/server}/workflow/wfjs.d.ts +0 -0
- /package/dist/{server → level5/server}/workflows/cron.d.ts +0 -0
- /package/dist/{dev → level6/dev}/index.d.ts +0 -0
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
/** Notification:队列式通知:notification.success/error/warning 命令式(antd 对齐)(showcase /components/notification) */
|
|
2
|
+
import type { Component, VNode } from '../../../../level6/client/vdom/index.ts'
|
|
3
|
+
import { createClientBrowser } from '../../../../level6/client/vdom/index.ts'
|
|
4
|
+
import type { UIContext, AppMiddleware } from '../../../../level6/client/vdom/index.ts'
|
|
5
|
+
import { h } from '../../../../level6/client/vdom/index.ts'
|
|
6
|
+
import { Icon } from '../Icon/Icon.ts'
|
|
7
|
+
import type { IconName } from '../Icon/Icon.ts'
|
|
8
|
+
|
|
9
|
+
// 命令式 API:浏览器环境(SSR 不调用)
|
|
10
|
+
const browser = createClientBrowser()
|
|
11
|
+
|
|
12
|
+
export type NotificationType = 'success' | 'error' | 'info' | 'warning'
|
|
13
|
+
export type NotificationPosition = 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'
|
|
14
|
+
|
|
15
|
+
export interface NotificationItem {
|
|
16
|
+
id: string
|
|
17
|
+
type: NotificationType
|
|
18
|
+
title: string
|
|
19
|
+
description?: string
|
|
20
|
+
/** 自动关闭时间(ms),0 = 不自动关闭,默认 4500 */
|
|
21
|
+
duration?: number
|
|
22
|
+
action?: { label: string; onClick: ()=> void }
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export interface NotificationProps {
|
|
26
|
+
items?: NotificationItem[]
|
|
27
|
+
onRemove?: (id: string)=> void
|
|
28
|
+
position?: NotificationPosition
|
|
29
|
+
/** 全局默认自动关闭时间(ms),默认 4500 */
|
|
30
|
+
duration?: number
|
|
31
|
+
/** 最大显示条数,超出移除最早,默认 0 = 不限制 */
|
|
32
|
+
max?: number
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export interface NotificationOptions {
|
|
36
|
+
position?: NotificationPosition
|
|
37
|
+
duration?: number
|
|
38
|
+
max?: number
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function positionClass(pos: NotificationPosition): string {
|
|
42
|
+
const map: Record<NotificationPosition, string> = {
|
|
43
|
+
'top-right': 'wf-notification--tr',
|
|
44
|
+
'top-left': 'wf-notification--tl',
|
|
45
|
+
'bottom-right': 'wf-notification--br',
|
|
46
|
+
'bottom-left': 'wf-notification--bl',
|
|
47
|
+
}
|
|
48
|
+
return map[pos] ?? 'wf-notification--tr'
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function iconFor(type: NotificationType): IconName {
|
|
52
|
+
switch (type) {
|
|
53
|
+
case 'success': return 'check'
|
|
54
|
+
case 'error': return 'close'
|
|
55
|
+
case 'warning': return 'alert'
|
|
56
|
+
case 'info': return 'info'
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/** 通知(对应 antd/EP Notification 队列式):title + description + icon + 操作,聚合角落 */
|
|
61
|
+
/**
|
|
62
|
+
* 命令式中间件:ctx.notification()(队列式——聚合角落——自动消失)
|
|
63
|
+
*
|
|
64
|
+
* 真实 bug(2026-12 showcase QA):NotificationInjected 契约定义了实现缺失
|
|
65
|
+
* ——showcase Notification demo 静默失效(ctx.notification undefined)——
|
|
66
|
+
* 补全:模块级队列 + 常驻容器 + diff 重渲染(Notification 组件真实实例)。
|
|
67
|
+
*/
|
|
68
|
+
import { renderV2 } from '../../../../level3/vdom/v2/render.ts' // v1 退役——v2 引擎
|
|
69
|
+
import { diffV2, disposeSegment as disposeSegmentV2, type SegmentMap } from '../../../../level3/vdom/v2/diff.ts'
|
|
70
|
+
import { collectCommands } from '../../../../level3/vdom/v2/integrate.ts'
|
|
71
|
+
import { CommandApplier } from '../../../../level3/vdom/patch/index.ts'
|
|
72
|
+
import { createComponentRegistry } from '../../../../level3/vdom/node/component.ts'
|
|
73
|
+
import type { ComponentRegistry } from '../../../../level3/vdom/node/component.ts'
|
|
74
|
+
|
|
75
|
+
type NotifHost = {
|
|
76
|
+
container: HTMLDivElement
|
|
77
|
+
applier: CommandApplier
|
|
78
|
+
registry: ComponentRegistry
|
|
79
|
+
items: NotificationItem[]
|
|
80
|
+
seq: number
|
|
81
|
+
currentTree: VNode | null
|
|
82
|
+
ctx: UIContext
|
|
83
|
+
/** v2 段表(弹窗级独立实例——组件工厂不重跑) */
|
|
84
|
+
segments: SegmentMap
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
let notifHost: NotifHost | null = null
|
|
88
|
+
|
|
89
|
+
function ensureHost(): NotifHost {
|
|
90
|
+
if (notifHost) return notifHost
|
|
91
|
+
const container = document.createElement('div')
|
|
92
|
+
container.className = 'wf-notification-host'
|
|
93
|
+
document.body.appendChild(container)
|
|
94
|
+
const registry = createComponentRegistry()
|
|
95
|
+
const applier = new CommandApplier(container, document, registry)
|
|
96
|
+
const ctx = {
|
|
97
|
+
render: async ()=> {},
|
|
98
|
+
onUnmount: ()=> {},
|
|
99
|
+
data: { get: async ()=> undefined, set: ()=> {}, has: ()=> false },
|
|
100
|
+
browser,
|
|
101
|
+
} as unknown as UIContext
|
|
102
|
+
notifHost = { container, applier, registry, items: [], seq: 0, currentTree: null, ctx, segments: new Map() }
|
|
103
|
+
return notifHost
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
async function renderNotifs(host: NotifHost): Promise<void> {
|
|
107
|
+
const vnode = h(Notification, {
|
|
108
|
+
items: host.items,
|
|
109
|
+
onRemove: (id: string)=> { removeNotif(id) },
|
|
110
|
+
}) as VNode
|
|
111
|
+
const obs = host.currentTree
|
|
112
|
+
? diffV2(host.currentTree as never, vnode as never, host.ctx, host.segments, host.registry, ()=> {})
|
|
113
|
+
: renderV2(vnode as never, host.ctx, host.registry, host.segments, ()=> {})
|
|
114
|
+
const cmds = await collectCommands(obs)
|
|
115
|
+
for (const cmd of cmds) host.applier.apply(cmd)
|
|
116
|
+
host.currentTree = vnode
|
|
117
|
+
for (const cmd of cmds) {
|
|
118
|
+
if (cmd.op === 'unmount') disposeSegmentV2(cmd.compId, host.segments)
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
async function removeNotif(id: string): Promise<void> {
|
|
123
|
+
if (!notifHost) return
|
|
124
|
+
notifHost.items = notifHost.items.filter((t)=> t.id !== id)
|
|
125
|
+
if (notifHost.items.length === 0) {
|
|
126
|
+
// **先渲染空列表(2027-08——v1 退役——portal 清理)**:Notification 内容
|
|
127
|
+
// 挂全局 portal(openPopup)——handle.close 发生在 renderFn(空列表
|
|
128
|
+
// 分支)——v1 的 applier.dispose 经 registry onUnmounts 触发;v2 段表
|
|
129
|
+
// 需显式渲染空态触发段卸载 → handle.close → portal 内容移除——
|
|
130
|
+
// 再 dispose host(等待渲染完成——序列确定)
|
|
131
|
+
try { await renderNotifs(notifHost) } catch { /* 空态渲染失败——继续清理 */ }
|
|
132
|
+
notifHost.applier.dispose()
|
|
133
|
+
notifHost.container.remove()
|
|
134
|
+
notifHost = null
|
|
135
|
+
} else {
|
|
136
|
+
void renderNotifs(notifHost)
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
function openNotif(opts: {
|
|
141
|
+
type: NotificationType
|
|
142
|
+
title: string
|
|
143
|
+
description?: string
|
|
144
|
+
duration?: number
|
|
145
|
+
action?: NotificationItem['action']
|
|
146
|
+
}): void {
|
|
147
|
+
const host = ensureHost()
|
|
148
|
+
const item: NotificationItem = { id: `n${++host.seq}`, ...opts }
|
|
149
|
+
host.items = [...host.items, item]
|
|
150
|
+
renderNotifs(host)
|
|
151
|
+
const dur = opts.duration ?? 4500
|
|
152
|
+
if (dur > 0) {
|
|
153
|
+
setTimeout(()=> removeNotif(item.id), dur)
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/** 命令式入口(对齐 antd notification.open 风格——可调用可链式) */
|
|
158
|
+
export const notification: NotificationInjected['notification'] = Object.assign(
|
|
159
|
+
(title: string, opts?: { type?: NotificationType; description?: string; duration?: number; action?: NotificationItem['action'] }): void =>
|
|
160
|
+
openNotif({ type: opts?.type ?? 'info', title, description: opts?.description, duration: opts?.duration, action: opts?.action }),
|
|
161
|
+
{
|
|
162
|
+
open: (o: { type?: NotificationType; title: string; description?: string; duration?: number; action?: NotificationItem['action'] })=>
|
|
163
|
+
openNotif({ type: o.type ?? 'info', title: o.title, description: o.description, duration: o.duration, action: o.action }),
|
|
164
|
+
success: (o: { title: string; description?: string; duration?: number })=> openNotif({ type: 'success', ...o }),
|
|
165
|
+
error: (o: { title: string; description?: string; duration?: number })=> openNotif({ type: 'error', ...o }),
|
|
166
|
+
info: (o: { title: string; description?: string; duration?: number })=> openNotif({ type: 'info', ...o }),
|
|
167
|
+
warning: (o: { title: string; description?: string; duration?: number })=> openNotif({ type: 'warning', ...o }),
|
|
168
|
+
},
|
|
169
|
+
)
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* 命令式中间件:注入 ctx.notification()(AppMiddleware 形态——应用装配)
|
|
173
|
+
*/
|
|
174
|
+
export function notificationMiddleware<C extends Record<string, unknown>>(ctx: C): C & NotificationInjected {
|
|
175
|
+
return Object.assign(ctx, { notification })
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
export const Notification: Component<NotificationProps> = (_init, ctx)=> {
|
|
179
|
+
// 命令式弹窗(唯一形态 openPopup):常驻容器(positioning 'none'——CSS 角落定位)
|
|
180
|
+
/** 命令式句柄(唯一形态——openPopup——组件内部同步样板) */
|
|
181
|
+
let handle: import('../../../../level3/vdom/hooks/popup-manager.ts').PopupHandle | null = null
|
|
182
|
+
|
|
183
|
+
return (props)=> {
|
|
184
|
+
const { items = [], onRemove, position = 'top-right', duration = 4500, max = 0 } = props
|
|
185
|
+
|
|
186
|
+
const visible = max > 0 && items.length > max ? items.slice(-max) : items
|
|
187
|
+
if (visible.length === 0) {
|
|
188
|
+
if (handle) { handle.close(); handle = null }
|
|
189
|
+
return null
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
const cards = visible.map(t =>
|
|
193
|
+
h('div', {
|
|
194
|
+
class: `wf-notification wf-notification--${t.type}`,
|
|
195
|
+
key: t.id,
|
|
196
|
+
role: t.type === 'error' ? 'alert' : 'status',
|
|
197
|
+
'aria-live': t.type === 'error' ? 'assertive' : 'polite',
|
|
198
|
+
'data-id': t.id,
|
|
199
|
+
'data-duration': (t.duration ?? duration) || undefined,
|
|
200
|
+
}, [
|
|
201
|
+
h('span', { class: 'wf-notification-icon' }, h(Icon, { name: iconFor(t.type) })),
|
|
202
|
+
h('div', { class: 'wf-notification-body' }, [
|
|
203
|
+
h('div', { class: 'wf-notification-title' }, t.title),
|
|
204
|
+
t.description ? h('div', { class: 'wf-notification-desc' }, t.description) : null,
|
|
205
|
+
t.action ? h('button', {
|
|
206
|
+
class: 'wf-notification-action',
|
|
207
|
+
type: 'button',
|
|
208
|
+
onClick: (e: Event)=> { e.stopPropagation(); t.action!.onClick() },
|
|
209
|
+
}, t.action.label) : null,
|
|
210
|
+
].filter(Boolean)),
|
|
211
|
+
h('button', {
|
|
212
|
+
type: 'button',
|
|
213
|
+
class: 'wf-notification-close',
|
|
214
|
+
'aria-label': '关闭通知',
|
|
215
|
+
onClick: ()=> onRemove?.(t.id),
|
|
216
|
+
}, h(Icon, { name: 'close', size: 12 })),
|
|
217
|
+
].filter(Boolean))
|
|
218
|
+
)
|
|
219
|
+
|
|
220
|
+
const container = h('div', {
|
|
221
|
+
class: `wf-notification-container ${positionClass(position)}`,
|
|
222
|
+
'data-max': max || undefined,
|
|
223
|
+
}, cards)
|
|
224
|
+
|
|
225
|
+
// 命令式同步(常驻容器——内容更新)
|
|
226
|
+
if (!handle)
|
|
227
|
+
handle = ctx.ui.openPopup({
|
|
228
|
+
key: 'notification',
|
|
229
|
+
positioning: 'none',
|
|
230
|
+
closeOnOutside: false, closeOnEscape: false,
|
|
231
|
+
content: ()=> container,
|
|
232
|
+
onClose: ()=> { handle = null },
|
|
233
|
+
})
|
|
234
|
+
else handle.update(container)
|
|
235
|
+
return null
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
// ── 命令式中间件:ctx.notification() ──────────────────
|
|
240
|
+
// 对齐 antd notification.open / EP ElNotification 风格
|
|
241
|
+
|
|
242
|
+
export interface NotificationInjected {
|
|
243
|
+
notification: {
|
|
244
|
+
(title: string, opts?: { type?: NotificationType; description?: string; duration?: number; action?: NotificationItem['action'] }): void
|
|
245
|
+
open: (opts: { type?: NotificationType; title: string; description?: string; duration?: number; action?: NotificationItem['action'] })=> void
|
|
246
|
+
success: (opts: { title: string; description?: string; duration?: number })=> void
|
|
247
|
+
error: (opts: { title: string; description?: string; duration?: number })=> void
|
|
248
|
+
info: (opts: { title: string; description?: string; duration?: number })=> void
|
|
249
|
+
warning: (opts: { title: string; description?: string; duration?: number })=> void
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* weifuwu/client/components/OfficeEditor/ai — ODES × AI 事件流对接
|
|
3
|
+
*
|
|
4
|
+
* 设计( §9):AI 落地 = 普通 op + ai 元数据。
|
|
5
|
+
* 本模块:AI 回复 → OfficeOp[] 默认解析(按 mode)+ 事件流桥接发射。
|
|
6
|
+
*
|
|
7
|
+
* xlsx formula 模式解析:
|
|
8
|
+
* - 回复含 `=...` → 公式单元格(kind:'f'——值 + formula 字符串保留——不计算)
|
|
9
|
+
* - 纯数字 → kind:'n';true/false → kind:'b';其余 → kind:'s'
|
|
10
|
+
* - 位置:回复内嵌 ref(`A1:` 前缀 / `B2=...`)优先,否则 ctx.ref(活动单元格)
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
import type { AiContext, OfficeOp, OfficeStreamPayload } from '../model/types.ts'
|
|
14
|
+
import type { SheetCell } from '../model/types.ts'
|
|
15
|
+
import { editEmit } from '../../Editor/edit-events.ts'
|
|
16
|
+
import type { DocType } from '../model/types.ts'
|
|
17
|
+
|
|
18
|
+
// ── 回复解析(默认——按 mode) ─────────────────────────────────────────────
|
|
19
|
+
|
|
20
|
+
export interface ParseResult {
|
|
21
|
+
ops: OfficeOp[]
|
|
22
|
+
/** 解析说明(UI 展示;不可解析时建议) */
|
|
23
|
+
note?: string
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/** AI 回复 → cell-set ops(formula 模式) */
|
|
27
|
+
export function parseFormulaReply(text: string, ctx: AiContext): ParseResult {
|
|
28
|
+
const clean = text.trim()
|
|
29
|
+
// 单行或多行——每行一个单元格写入;行内 `ref=value` 或 `ref: value`
|
|
30
|
+
const lines = clean.split('\n').map((l)=> l.trim()).filter(Boolean)
|
|
31
|
+
const ops: OfficeOp[] = []
|
|
32
|
+
const sheet = 0
|
|
33
|
+
let used = false
|
|
34
|
+
for (const line of lines) {
|
|
35
|
+
const m = /^([A-Z]+\d+)\s*[:=]\s*(.*)$/.exec(line)
|
|
36
|
+
if (m) {
|
|
37
|
+
const cell = parseCellValue(m[2].trim())
|
|
38
|
+
ops.push({ type: 'cell-set', sheet, ref: m[1], cell })
|
|
39
|
+
used = true
|
|
40
|
+
continue
|
|
41
|
+
}
|
|
42
|
+
// 无 ref——整行作为活动单元格内容(文本限短值——长文本是自然语言回复)
|
|
43
|
+
if (!used && lines.length === 1) {
|
|
44
|
+
const cell = parseCellValue(line)
|
|
45
|
+
if (cell.kind === 's' && line.length > 16) continue
|
|
46
|
+
ops.push({ type: 'cell-set', sheet, ref: ctx.ref ?? 'A1', cell })
|
|
47
|
+
used = true
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
if (!used) {
|
|
51
|
+
return { ops: [], note: '回复无法解析为单元格内容(期望公式/值或 `A1: 值` 格式)' }
|
|
52
|
+
}
|
|
53
|
+
return { ops }
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function parseCellValue(v: string): SheetCell {
|
|
57
|
+
if (v.startsWith('=')) return { kind: 'f', value: '', formula: v }
|
|
58
|
+
if (/^-?\d+(\.\d+)?$/.test(v)) return { kind: 'n', value: Number(v) }
|
|
59
|
+
if (v === 'true' || v === 'false') return { kind: 'b', value: v === 'true' }
|
|
60
|
+
return { kind: 's', value: v }
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/** AI 回复 → shape-set op(pptx text 模式——选中 shape 文本替换) */
|
|
64
|
+
export function parseShapeTextReply(text: string, ctx: AiContext): ParseResult {
|
|
65
|
+
if (!ctx.shapeId) return { ops: [], note: '未选中形状(先点选文本框再触发 AI)' }
|
|
66
|
+
const clean = text.trim()
|
|
67
|
+
if (!clean) return { ops: [], note: 'AI 回复为空' }
|
|
68
|
+
return {
|
|
69
|
+
ops: [{ type: 'shape-set', slide: 0, shapeId: ctx.shapeId, props: { text: clean } }],
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/** docx/text 模式:回复即正文——Editor ai-apply 语义由 Editor 层处理(本模块不产生 op) */
|
|
74
|
+
export function parseTextReply(_text: string, _ctx: AiContext): ParseResult {
|
|
75
|
+
return { ops: [], note: 'docx 文本 AI 走 Editor ai-apply(选区替换——Editor 层处理)' }
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export function parseReplyByMode(text: string, ctx: AiContext): ParseResult {
|
|
79
|
+
if (ctx.docType === 'xlsx') return parseFormulaReply(text, ctx)
|
|
80
|
+
if (ctx.docType === 'pptx') return parseShapeTextReply(text, ctx)
|
|
81
|
+
return parseTextReply(text, ctx)
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// ── 事件流桥接(edit ↔ ai 关联审计) ───────────────────────────────────────
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* 发射 office 事件(AI 关联——payload.ai.messageId + target = messageId——
|
|
88
|
+
* editEvents ↔ aiEvents 一条链:`__edit_tail(50,'office')` ↔ `__ai_events(n,{messageId})`)
|
|
89
|
+
*/
|
|
90
|
+
export function officeAiEmit(
|
|
91
|
+
payload: Omit<OfficeStreamPayload, 'ai'> & { ai: { messageId: string; status: 'suggested' | 'accepted' | 'rejected' } },
|
|
92
|
+
): void {
|
|
93
|
+
editEmit('office', payload as unknown as Record<string, unknown>, payload.ai.messageId)
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/** 便捷:AI 建议接受 = 普通 op 落地(ai 元数据——接受状态) */
|
|
97
|
+
export function emitAiApply(docType: DocType, op: OfficeOp, messageId: string): void {
|
|
98
|
+
officeAiEmit({ docType, op, ai: { messageId, status: 'accepted' } })
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/** 便捷:AI 建议拒绝(不产生 op——状态记录审计) */
|
|
102
|
+
export function emitAiReject(docType: DocType, messageId: string, reason?: string): void {
|
|
103
|
+
editEmit('office', { docType, ai: { messageId, status: 'rejected' }, reason } as unknown as Record<string, unknown>, messageId)
|
|
104
|
+
}
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* weifuwu/client/components/OfficeEditor/model/apply — ODES 折叠(fold)纯函数
|
|
3
|
+
*
|
|
4
|
+
* 核心不变量:snapshot = fold(全部事件)——apply 每个 op 得到新状态(不可变)。
|
|
5
|
+
* - docx:委托 Editor applyEdit(EditEvent 全量复用——零新逻辑)
|
|
6
|
+
* - xlsx/pptx:各自 apply(纯函数——Map 复制、数组复制)
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import { applyEdit } from '../../Editor/model/apply.ts'
|
|
10
|
+
import { EMPTY_DOC } from '../../Editor/model/types.ts'
|
|
11
|
+
import type { DocState, EditEvent } from '../../Editor/model/types.ts'
|
|
12
|
+
import type {
|
|
13
|
+
DeckState, DocType, OfficeCheckpoint, OfficeOp, OfficeSnapshot,
|
|
14
|
+
SheetCell, SheetOp, SheetState, SlideOp, SlideShape, SlideState, WorkbookState,
|
|
15
|
+
} from './types.ts'
|
|
16
|
+
|
|
17
|
+
// ── 空状态 ──────────────────────────────────────────────────────────────────
|
|
18
|
+
|
|
19
|
+
export function emptySnapshot(docType: DocType): OfficeSnapshot {
|
|
20
|
+
if (docType === 'docx') return { docType, doc: EMPTY_DOC }
|
|
21
|
+
if (docType === 'xlsx') {
|
|
22
|
+
return {
|
|
23
|
+
docType,
|
|
24
|
+
workbook: { sheets: [{ name: 'Sheet1', cols: 1, cells: new Map() }], activeSheet: 0 },
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return {
|
|
28
|
+
docType,
|
|
29
|
+
deck: { slides: [{ shapes: [] }], activeSlide: 0, size: { w: 960, h: 540 } },
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// ── 引用工具(网格) ────────────────────────────────────────────────────────
|
|
34
|
+
|
|
35
|
+
/** 'A1' → { row: 0, col: 0 }(col 字母段、row 数字段) */
|
|
36
|
+
export function parseRef(ref: string): { row: number; col: number } {
|
|
37
|
+
const m = /^([A-Z]+)(\d+)$/.exec(ref.toUpperCase())
|
|
38
|
+
if (!m) return { row: 0, col: 0 }
|
|
39
|
+
let col = 0
|
|
40
|
+
for (const ch of m[1]) col = col * 26 + (ch.charCodeAt(0) - 64)
|
|
41
|
+
return { row: Number(m[2]) - 1, col: col - 1 }
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export function toRef(row: number, col: number): string {
|
|
45
|
+
let c = ''
|
|
46
|
+
let n = col + 1
|
|
47
|
+
while (n > 0) { c = String.fromCharCode(65 + ((n - 1) % 26)) + c; n = Math.floor((n - 1) / 26) }
|
|
48
|
+
return `${c}${row + 1}`
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/** 行列插入后引用平移(单元格重定位;公式字符串不重算——裁剪登记) */
|
|
52
|
+
export function shiftCellRef(ref: string, atRow: number, atCol: number, dRow: number, dCol: number): string | null {
|
|
53
|
+
const { row, col } = parseRef(ref)
|
|
54
|
+
const r = row >= atRow ? row + dRow : row
|
|
55
|
+
const c = col >= atCol ? col + dCol : col
|
|
56
|
+
if (r < 0 || c < 0) return null
|
|
57
|
+
return toRef(r, c)
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// ── xlsx apply ──────────────────────────────────────────────────────────────
|
|
61
|
+
|
|
62
|
+
function cloneSheet(s: SheetState): SheetState {
|
|
63
|
+
return { name: s.name, cols: s.cols, cells: new Map(s.cells) }
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
function applyCellOp(sheet: SheetState, op: Extract<SheetOp, { type: 'cell-set' | 'range-style' }>): SheetState {
|
|
67
|
+
if (op.type === 'cell-set') {
|
|
68
|
+
const next = cloneSheet(sheet)
|
|
69
|
+
if (op.cell === null) next.cells.delete(op.ref.toUpperCase())
|
|
70
|
+
else next.cells.set(op.ref.toUpperCase(), { ...op.cell, style: op.cell.style ? { ...op.cell.style } : undefined })
|
|
71
|
+
const { col } = parseRef(op.ref)
|
|
72
|
+
if (col + 1 > next.cols) next.cols = col + 1
|
|
73
|
+
return next
|
|
74
|
+
}
|
|
75
|
+
const next = cloneSheet(sheet)
|
|
76
|
+
const key = op.ref.toUpperCase()
|
|
77
|
+
const cell = next.cells.get(key)
|
|
78
|
+
if (cell) next.cells.set(key, { ...cell, style: op.style ? { ...op.style } : undefined })
|
|
79
|
+
else next.cells.set(key, { kind: 's', value: '', style: op.style ? { ...op.style } : undefined })
|
|
80
|
+
return next
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
function applyRows(sheet: SheetState, at: number, count: number, dir: 1 | -1): SheetState {
|
|
84
|
+
const next = cloneSheet(sheet)
|
|
85
|
+
const nextMap = new Map<string, SheetCell>()
|
|
86
|
+
for (const [ref, cell] of next.cells) {
|
|
87
|
+
const r = shiftCellRef(ref, at, 0, dir * count, 0)
|
|
88
|
+
if (r) nextMap.set(r, cell)
|
|
89
|
+
}
|
|
90
|
+
next.cells = nextMap
|
|
91
|
+
return next
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
function applyCols(sheet: SheetState, at: number, count: number, dir: 1 | -1): SheetState {
|
|
95
|
+
const next = cloneSheet(sheet)
|
|
96
|
+
const nextMap = new Map<string, SheetCell>()
|
|
97
|
+
for (const [ref, cell] of next.cells) {
|
|
98
|
+
const c = shiftCellRef(ref, 0, at, 0, dir * count)
|
|
99
|
+
if (c) nextMap.set(c, cell)
|
|
100
|
+
}
|
|
101
|
+
next.cells = nextMap
|
|
102
|
+
next.cols = Math.max(next.cols + dir * count, 1)
|
|
103
|
+
return next
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
export function applySheetOp(wb: WorkbookState, op: SheetOp): WorkbookState {
|
|
107
|
+
const sheets = wb.sheets.map(cloneSheet)
|
|
108
|
+
switch (op.type) {
|
|
109
|
+
case 'cell-set':
|
|
110
|
+
case 'range-style': {
|
|
111
|
+
if (op.sheet >= sheets.length) return wb
|
|
112
|
+
sheets[op.sheet] = applyCellOp(sheets[op.sheet], op as Extract<SheetOp, { type: 'cell-set' | 'range-style' }>)
|
|
113
|
+
return { ...wb, sheets }
|
|
114
|
+
}
|
|
115
|
+
case 'insert-rows':
|
|
116
|
+
if (op.sheet >= sheets.length) return wb
|
|
117
|
+
sheets[op.sheet] = applyRows(sheets[op.sheet], op.at, op.count, 1)
|
|
118
|
+
return { ...wb, sheets }
|
|
119
|
+
case 'delete-rows':
|
|
120
|
+
if (op.sheet >= sheets.length) return wb
|
|
121
|
+
sheets[op.sheet] = applyRows(sheets[op.sheet], op.at, op.count, -1)
|
|
122
|
+
return { ...wb, sheets }
|
|
123
|
+
case 'insert-cols':
|
|
124
|
+
if (op.sheet >= sheets.length) return wb
|
|
125
|
+
sheets[op.sheet] = applyCols(sheets[op.sheet], op.at, op.count, 1)
|
|
126
|
+
return { ...wb, sheets }
|
|
127
|
+
case 'delete-cols':
|
|
128
|
+
if (op.sheet >= sheets.length) return wb
|
|
129
|
+
sheets[op.sheet] = applyCols(sheets[op.sheet], op.at, op.count, -1)
|
|
130
|
+
return { ...wb, sheets }
|
|
131
|
+
case 'sheet-add': {
|
|
132
|
+
const s: SheetState = { name: op.name, cols: 1, cells: new Map() }
|
|
133
|
+
return { ...wb, sheets: [...sheets, s], activeSheet: sheets.length }
|
|
134
|
+
}
|
|
135
|
+
case 'sheet-rename':
|
|
136
|
+
if (op.sheet >= sheets.length) return wb
|
|
137
|
+
sheets[op.sheet] = { ...sheets[op.sheet], name: op.name }
|
|
138
|
+
return { ...wb, sheets }
|
|
139
|
+
case 'sheet-delete': {
|
|
140
|
+
if (op.sheet >= sheets.length) return wb
|
|
141
|
+
const next = sheets.filter((_, i)=> i !== op.sheet)
|
|
142
|
+
if (next.length === 0) next.push({ name: 'Sheet1', cols: 1, cells: new Map() })
|
|
143
|
+
return { ...wb, sheets: next, activeSheet: Math.min(wb.activeSheet, next.length - 1) }
|
|
144
|
+
}
|
|
145
|
+
case 'sheet-move': {
|
|
146
|
+
if (op.sheet >= sheets.length || op.to >= sheets.length) return wb
|
|
147
|
+
const next = [...sheets]
|
|
148
|
+
const [s] = next.splice(op.sheet, 1)
|
|
149
|
+
next.splice(op.to, 0, s)
|
|
150
|
+
return { ...wb, sheets: next }
|
|
151
|
+
}
|
|
152
|
+
case 'sheet-active':
|
|
153
|
+
return op.sheet < sheets.length ? { ...wb, activeSheet: op.sheet } : wb
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
// ── pptx apply ──────────────────────────────────────────────────────────────
|
|
158
|
+
|
|
159
|
+
function cloneShape(s: SlideShape): SlideShape {
|
|
160
|
+
return { ...s, props: s.props ? { ...s.props } : undefined }
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
export function applySlideOp(deck: DeckState, op: SlideOp): DeckState {
|
|
164
|
+
const slides = deck.slides.map((sl)=> ({ ...sl, shapes: sl.shapes.map(cloneShape) }))
|
|
165
|
+
switch (op.type) {
|
|
166
|
+
case 'slide-add': {
|
|
167
|
+
const s: SlideState = { shapes: [], layout: op.layout }
|
|
168
|
+
const at = op.at ?? slides.length
|
|
169
|
+
slides.splice(Math.min(at, slides.length), 0, s)
|
|
170
|
+
return { ...deck, slides, activeSlide: Math.min(at, slides.length - 1) }
|
|
171
|
+
}
|
|
172
|
+
case 'slide-delete': {
|
|
173
|
+
if (op.slide >= slides.length) return deck
|
|
174
|
+
slides.splice(op.slide, 1)
|
|
175
|
+
if (slides.length === 0) slides.push({ shapes: [] })
|
|
176
|
+
return { ...deck, slides, activeSlide: Math.min(deck.activeSlide, slides.length - 1) }
|
|
177
|
+
}
|
|
178
|
+
case 'slide-move': {
|
|
179
|
+
if (op.slide >= slides.length || op.to >= slides.length) return deck
|
|
180
|
+
const [s] = slides.splice(op.slide, 1)
|
|
181
|
+
slides.splice(op.to, 0, s)
|
|
182
|
+
return { ...deck, slides }
|
|
183
|
+
}
|
|
184
|
+
case 'slide-active':
|
|
185
|
+
return op.slide < slides.length ? { ...deck, activeSlide: op.slide } : deck
|
|
186
|
+
case 'shape-add': {
|
|
187
|
+
if (op.slide >= slides.length) return deck
|
|
188
|
+
const shapes = [...slides[op.slide].shapes, cloneShape(op.shape)]
|
|
189
|
+
slides[op.slide] = { ...slides[op.slide], shapes }
|
|
190
|
+
return { ...deck, slides }
|
|
191
|
+
}
|
|
192
|
+
case 'shape-remove': {
|
|
193
|
+
if (op.slide >= slides.length) return deck
|
|
194
|
+
const shapes = slides[op.slide].shapes.filter((s)=> s.id !== op.shapeId)
|
|
195
|
+
slides[op.slide] = { ...slides[op.slide], shapes }
|
|
196
|
+
return { ...deck, slides }
|
|
197
|
+
}
|
|
198
|
+
case 'shape-move': {
|
|
199
|
+
if (op.slide >= slides.length) return deck
|
|
200
|
+
const shapes = slides[op.slide].shapes.map((s)=>
|
|
201
|
+
s.id === op.shapeId ? { ...s, x: op.x, y: op.y } : s,
|
|
202
|
+
)
|
|
203
|
+
slides[op.slide] = { ...slides[op.slide], shapes }
|
|
204
|
+
return { ...deck, slides }
|
|
205
|
+
}
|
|
206
|
+
case 'shape-resize': {
|
|
207
|
+
if (op.slide >= slides.length) return deck
|
|
208
|
+
const shapes = slides[op.slide].shapes.map((s)=>
|
|
209
|
+
s.id === op.shapeId ? { ...s, w: op.w, h: op.h } : s,
|
|
210
|
+
)
|
|
211
|
+
slides[op.slide] = { ...slides[op.slide], shapes }
|
|
212
|
+
return { ...deck, slides }
|
|
213
|
+
}
|
|
214
|
+
case 'shape-set': {
|
|
215
|
+
if (op.slide >= slides.length) return deck
|
|
216
|
+
const shapes = slides[op.slide].shapes.map((s)=>
|
|
217
|
+
s.id === op.shapeId ? { ...s, props: { ...(s.props ?? {}), ...op.props } } : s,
|
|
218
|
+
)
|
|
219
|
+
slides[op.slide] = { ...slides[op.slide], shapes }
|
|
220
|
+
return { ...deck, slides }
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
// ── 统一折叠 ────────────────────────────────────────────────────────────────
|
|
226
|
+
|
|
227
|
+
/** 单 op 应用(docx 委托 applyEdit——EditEvent 全量复用) */
|
|
228
|
+
export function applyOfficeOp(snapshot: OfficeSnapshot, op: OfficeOp): OfficeSnapshot {
|
|
229
|
+
if (snapshot.docType === 'docx' && isEditEvent(op)) {
|
|
230
|
+
return { docType: 'docx', doc: applyEdit(snapshot.doc, op) }
|
|
231
|
+
}
|
|
232
|
+
if (snapshot.docType === 'xlsx' && isSheetOp(op)) {
|
|
233
|
+
return { docType: 'xlsx', workbook: applySheetOp(snapshot.workbook, op) }
|
|
234
|
+
}
|
|
235
|
+
if (snapshot.docType === 'pptx' && isSlideOp(op)) {
|
|
236
|
+
return { docType: 'pptx', deck: applySlideOp(snapshot.deck, op as SlideOp) }
|
|
237
|
+
}
|
|
238
|
+
// 类型不匹配(docx 收到 sheet op 等)——不可静默(CS-05):原样返回 + 上层拒绝
|
|
239
|
+
return snapshot
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
function isEditEvent(op: OfficeOp): op is EditEvent {
|
|
243
|
+
const t = (op as { type: string }).type
|
|
244
|
+
return t === 'text-insert' || t === 'text-delete' || t === 'mark-apply' || t === 'mark-restore'
|
|
245
|
+
|| t === 'block-set' || t === 'embed-insert' || t === 'embed-delete' || t === 'ai-apply'
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
function isSheetOp(op: OfficeOp): op is SheetOp {
|
|
249
|
+
const t = (op as { type: string }).type
|
|
250
|
+
return t === 'cell-set' || t === 'range-style' || t === 'insert-rows' || t === 'delete-rows'
|
|
251
|
+
|| t === 'insert-cols' || t === 'delete-cols' || t === 'sheet-add' || t === 'sheet-rename'
|
|
252
|
+
|| t === 'sheet-delete' || t === 'sheet-move' || t === 'sheet-active'
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
function isSlideOp(op: OfficeOp): op is SlideOp {
|
|
256
|
+
const t = (op as { type: string }).type
|
|
257
|
+
return t === 'slide-add' || t === 'slide-delete' || t === 'slide-move' || t === 'slide-active'
|
|
258
|
+
|| t === 'shape-add' || t === 'shape-remove' || t === 'shape-move' || t === 'shape-resize'
|
|
259
|
+
|| t === 'shape-set'
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
/** checkpoint 折叠:snapshot + apply tail 全部 op(不变量:结果 = 全部事件 fold) */
|
|
263
|
+
export function foldOffice(cp: OfficeCheckpoint): OfficeSnapshot {
|
|
264
|
+
let s = cp.snapshot
|
|
265
|
+
for (const op of cp.tail) s = applyOfficeOp(s, op)
|
|
266
|
+
return s
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
/** 校验 op 是否属于 docType 命名空间(跨类型 op 拒绝——诚实裁剪) */
|
|
270
|
+
export function opBelongsTo(op: OfficeOp, docType: DocType): boolean {
|
|
271
|
+
if (docType === 'docx') return isEditEvent(op)
|
|
272
|
+
if (docType === 'xlsx') return isSheetOp(op)
|
|
273
|
+
return isSlideOp(op)
|
|
274
|
+
}
|