weifuwu 0.94.0 → 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 +98 -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 -52
- 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,150 @@
|
|
|
1
|
+
/** ActionSheet:动作面板——移动端底部滑出(命令列表 + 取消按钮,usePopup 会话级模态)(showcase /components/actionsheet) */
|
|
2
|
+
/**
|
|
3
|
+
* weifuwu/client/components — ActionSheet 动作面板(移动端底部滑出)
|
|
4
|
+
*
|
|
5
|
+
* 命令列表 + 取消按钮(iOS 风格)——移动端 App 常用弹层(照片选择/分享/
|
|
6
|
+
* 更多操作)。与 Modal/Drawer 同款会话级模态(openPopup presence 退场状态机 +
|
|
7
|
+
* 焦点 trap + 滚动锁)。
|
|
8
|
+
*
|
|
9
|
+
* 纪律:
|
|
10
|
+
* - 受控纪律(§5.2):open 由父控制 + onClose 必须提供
|
|
11
|
+
* - 键盘:role=menu + menuitem,方向键上下移动 + Enter 选择 + Escape 关闭
|
|
12
|
+
* - 选择后自动关闭(onSelect(key) + onClose())
|
|
13
|
+
* - 危险操作项 danger(--wf-color-error-text 语义文字色)
|
|
14
|
+
* - 图标走 Icon 组件(IconName)或任意 VNode
|
|
15
|
+
*/
|
|
16
|
+
import type { Component } from '../../../../level6/client/vdom/index.ts'
|
|
17
|
+
import type { UIContext } from '../../../../level6/client/vdom/index.ts'
|
|
18
|
+
import { h } from '../../../../level6/client/vdom/index.ts'
|
|
19
|
+
import type { IconName } from '../Icon/Icon.ts'
|
|
20
|
+
import { Icon } from '../Icon/Icon.ts'
|
|
21
|
+
|
|
22
|
+
export interface ActionSheetItem {
|
|
23
|
+
key: string
|
|
24
|
+
label: string
|
|
25
|
+
/** 图标:IconName(内置)或任意 VNode(业务自定义) */
|
|
26
|
+
icon?: IconName | any
|
|
27
|
+
/** 危险操作(红色语义文字) */
|
|
28
|
+
danger?: boolean
|
|
29
|
+
disabled?: boolean
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export interface ActionSheetProps {
|
|
33
|
+
open: boolean
|
|
34
|
+
items: ActionSheetItem[]
|
|
35
|
+
/** 点击项回调(选择后组件自动关闭) */
|
|
36
|
+
onSelect?: (key: string)=> void
|
|
37
|
+
onClose: ()=> void
|
|
38
|
+
/** 取消按钮文案(默认「取消」) */
|
|
39
|
+
cancelText?: string
|
|
40
|
+
/** 可选标题(面板顶部) */
|
|
41
|
+
title?: string
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export const ActionSheet: Component<ActionSheetProps> = (_init, ctx: UIContext)=> {
|
|
45
|
+
// ── mount(只一次):行为契约(弹层四件套——presence/trap/lock/Esc/遮罩) ──
|
|
46
|
+
const ov = ctx.ui.useOverlay({ role: 'dialog' })
|
|
47
|
+
/** 键盘焦点项(方向键移动——menu 语义——业务面保留) */
|
|
48
|
+
let focusKey = ''
|
|
49
|
+
|
|
50
|
+
return (props: ActionSheetProps)=> {
|
|
51
|
+
const { open, items, onSelect, onClose, cancelText, title } = props
|
|
52
|
+
|
|
53
|
+
// 键盘:方向键上下 + Enter 选择(menu 语义——跳过 disabled)
|
|
54
|
+
const onKeyDown = (e: KeyboardEvent)=> {
|
|
55
|
+
const idx = items.findIndex((i)=> i.key === focusKey)
|
|
56
|
+
const dir = e.key === 'ArrowDown' ? 1 : e.key === 'ArrowUp' ? -1 : 0
|
|
57
|
+
if (dir !== 0) {
|
|
58
|
+
e.preventDefault()
|
|
59
|
+
let next = -1
|
|
60
|
+
for (let i = 1; i <= items.length; i++) {
|
|
61
|
+
const cand = (idx + dir * i + items.length) % items.length
|
|
62
|
+
if (!items[cand]?.disabled) { next = cand; break }
|
|
63
|
+
}
|
|
64
|
+
if (next === -1) return
|
|
65
|
+
focusKey = items[next].key
|
|
66
|
+
ctx.render()
|
|
67
|
+
// **roving focus(menu 语义——验证实测修复 2027-XX)**:方向键必须移动
|
|
68
|
+
// DOM 焦点(仅更新内部 focusKey 不可观察且被原生「Enter=点击焦点项」
|
|
69
|
+
// 旁路——焦点项与 focusKey 分裂)——渲染后显式聚焦目标项(跳过 disabled)
|
|
70
|
+
const target = document.querySelector<HTMLElement>(`[data-actionsheet-key="${focusKey}"]`)
|
|
71
|
+
target?.focus()
|
|
72
|
+
return
|
|
73
|
+
}
|
|
74
|
+
if (e.key === 'Enter' && focusKey) {
|
|
75
|
+
const item = items.find((i)=> i.key === focusKey)
|
|
76
|
+
if (item && !item.disabled) {
|
|
77
|
+
onSelect?.(item.key)
|
|
78
|
+
onClose()
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
// 渲染期维护焦点项(render-only——面板打开默认第一项;键盘移动后更新)
|
|
83
|
+
if (!items.some((i)=> i.key === focusKey)) focusKey = items[0]?.key ?? ''
|
|
84
|
+
|
|
85
|
+
const overlay = h('div', {
|
|
86
|
+
...ov.maskProps,
|
|
87
|
+
class: 'wf-actionsheet-overlay',
|
|
88
|
+
})
|
|
89
|
+
|
|
90
|
+
const itemEls = items.map((item)=> {
|
|
91
|
+
const icon = typeof item.icon === 'string'
|
|
92
|
+
? h(Icon, { name: item.icon as IconName, size: 18, className: 'wf-actionsheet-icon' })
|
|
93
|
+
: item.icon
|
|
94
|
+
return h('button', {
|
|
95
|
+
key: item.key,
|
|
96
|
+
type: 'button',
|
|
97
|
+
role: 'menuitem',
|
|
98
|
+
'data-actionsheet-key': item.key,
|
|
99
|
+
class: [
|
|
100
|
+
'wf-actionsheet-item',
|
|
101
|
+
item.danger ? 'wf-actionsheet-item--danger' : '',
|
|
102
|
+
item.disabled ? 'wf-actionsheet-item--disabled' : '',
|
|
103
|
+
].filter(Boolean).join(' '),
|
|
104
|
+
disabled: item.disabled || undefined,
|
|
105
|
+
onClick: item.disabled ? undefined : ()=> {
|
|
106
|
+
onSelect?.(item.key)
|
|
107
|
+
onClose()
|
|
108
|
+
},
|
|
109
|
+
}, [
|
|
110
|
+
icon ?? null,
|
|
111
|
+
h('span', { class: 'wf-actionsheet-item-label' }, item.label),
|
|
112
|
+
])
|
|
113
|
+
})
|
|
114
|
+
|
|
115
|
+
const cancelBtn = h('button', {
|
|
116
|
+
type: 'button',
|
|
117
|
+
class: 'wf-actionsheet-cancel',
|
|
118
|
+
onClick: onClose,
|
|
119
|
+
}, cancelText ?? '取消')
|
|
120
|
+
|
|
121
|
+
const panel = h('div', {
|
|
122
|
+
class: 'wf-actionsheet-panel',
|
|
123
|
+
role: 'menu',
|
|
124
|
+
'aria-label': title ?? '操作面板',
|
|
125
|
+
onKeyDown,
|
|
126
|
+
onClick: (e: Event)=> e.stopPropagation(),
|
|
127
|
+
}, [
|
|
128
|
+
title ? h('div', { class: 'wf-actionsheet-title' }, title) : null,
|
|
129
|
+
...itemEls,
|
|
130
|
+
h('div', { class: 'wf-actionsheet-divider' }),
|
|
131
|
+
cancelBtn,
|
|
132
|
+
])
|
|
133
|
+
|
|
134
|
+
const root = h('div', {
|
|
135
|
+
...ov.panelProps,
|
|
136
|
+
class: `wf-actionsheet ${open ? 'wf-actionsheet--enter' : 'wf-actionsheet--exit'}`,
|
|
137
|
+
'aria-label': title ?? '操作面板',
|
|
138
|
+
tabIndex: -1,
|
|
139
|
+
}, [overlay, panel])
|
|
140
|
+
|
|
141
|
+
// 渲染期同步(openPopup 生命周期——受控 + 内容更新——每次渲染恒调用)
|
|
142
|
+
ov.sync(()=> root, {
|
|
143
|
+
open: !!open,
|
|
144
|
+
onOpenChange: (v)=> { if (!v) onClose() },
|
|
145
|
+
presence: true,
|
|
146
|
+
})
|
|
147
|
+
|
|
148
|
+
return null
|
|
149
|
+
}
|
|
150
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/* weifuwu/client/components — Affix */
|
|
2
|
+
|
|
3
|
+
.wf-affix {
|
|
4
|
+
font-family: var(--wf-font-sans);
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.wf-affix-sentinel {
|
|
8
|
+
/* 占位:保持文档流位置,fixed 时内容脱离文档流不塌陷 */
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.wf-affix-content {
|
|
12
|
+
transition: none;
|
|
13
|
+
}
|
|
14
|
+
/* ── 语义标记类(DOM 钩子——无样式:测试定位/用户扩展——:where 零优先级显式声明) ── */
|
|
15
|
+
:where(.wf-affix-content--fixed) {}
|
|
16
|
+
:where(.wf-affix-sentinel--active) {}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** Affix:回到顶部(滚动超 400px 显示)+ 固定导航(距顶 80px 钉住)(showcase /components/affix) */
|
|
2
|
+
import type { Component, VNodeChild } from '../../../../level6/client/vdom/index.ts';
|
|
3
|
+
export interface AffixProps {
|
|
4
|
+
/** 距视口顶部偏移,滚动超过该值后固定(px),默认 0 */
|
|
5
|
+
offsetTop?: number;
|
|
6
|
+
/** 滚动容器(默认 window) */
|
|
7
|
+
target?: () => HTMLElement | Window;
|
|
8
|
+
children?: VNodeChild;
|
|
9
|
+
className?: string;
|
|
10
|
+
[key: string]: any;
|
|
11
|
+
}
|
|
12
|
+
/** 固定定位(对应 antd/EP Affix):滚动超过阈值后固定元素,保持占位与宽度
|
|
13
|
+
* 实现:ctx.ui.useScrollPosition(全局 scroll 监听 + rAF 节流,内置方案)——
|
|
14
|
+
* mount 时算一次阈值(sentinel 文档位置 - offsetTop),滚动位置响应式驱动 fixed 判定。
|
|
15
|
+
* 不用 IO:IO 只在交叉状态变化时回调,瞬间滚动后 sentinel 从视口外下方到视口外上方
|
|
16
|
+
* isIntersecting 都是 false → 不回调(Affix 需要连续位置跟踪,IO 语义不匹配)。 */
|
|
17
|
+
export declare const Affix: Component<AffixProps>;
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/** Affix:回到顶部(滚动超 400px 显示)+ 固定导航(距顶 80px 钉住)(showcase /components/affix) */
|
|
2
|
+
import type {Component, VNodeChild} from '../../../../level6/client/vdom/index.ts'
|
|
3
|
+
import type { UIContext } from '../../../../level6/client/vdom/index.ts'
|
|
4
|
+
import { h } from '../../../../level6/client/vdom/index.ts'
|
|
5
|
+
|
|
6
|
+
export interface AffixProps {
|
|
7
|
+
/** 距视口顶部偏移,滚动超过该值后固定(px),默认 0 */
|
|
8
|
+
offsetTop?: number
|
|
9
|
+
/** 滚动容器(默认 window) */
|
|
10
|
+
target?: ()=> HTMLElement | Window
|
|
11
|
+
children?: VNodeChild
|
|
12
|
+
className?: string
|
|
13
|
+
[key: string]: any
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/** 固定定位(对应 antd/EP Affix):滚动超过阈值后固定元素,保持占位与宽度
|
|
17
|
+
* 实现:ctx.ui.useScrollPosition(全局 scroll 监听 + rAF 节流,内置方案)——
|
|
18
|
+
* mount 时算一次阈值(sentinel 文档位置 - offsetTop),滚动位置响应式驱动 fixed 判定。
|
|
19
|
+
* 不用 IO:IO 只在交叉状态变化时回调,瞬间滚动后 sentinel 从视口外下方到视口外上方
|
|
20
|
+
* isIntersecting 都是 false → 不回调(Affix 需要连续位置跟踪,IO 语义不匹配)。 */
|
|
21
|
+
export const Affix: Component<AffixProps> = (_init, ctx)=> {
|
|
22
|
+
// ── mount(只一次)──
|
|
23
|
+
let wrapEl: HTMLElement | null = null
|
|
24
|
+
let wrapWidth = 0
|
|
25
|
+
// 初始 Infinity:首次 render 时 fixed=false(不误固定);ref 挂载后微任务里算出真实阈值
|
|
26
|
+
let threshold = Infinity
|
|
27
|
+
let lastOffsetTop: number | undefined
|
|
28
|
+
|
|
29
|
+
const propsRef: any = { ..._init }
|
|
30
|
+
|
|
31
|
+
const getScroller = ()=> propsRef.target ? propsRef.target() : window
|
|
32
|
+
const scroll = ctx.ui.useScrollPosition({ getScroller })
|
|
33
|
+
|
|
34
|
+
// 阈值/宽度重算经 usePopupPosition 的 compute(scroll/resize 全局监听 + rAF 节流驱动,
|
|
35
|
+
// 不再自建 window resize 监听)。rect 视口位置 + 当前滚动 = 文档位置;fixed = scrollY >= 文档位置 - offsetTop
|
|
36
|
+
const pos = ctx.ui.usePopupPosition({
|
|
37
|
+
el: ()=> wrapEl,
|
|
38
|
+
isOpen: ()=> true,
|
|
39
|
+
compute: (r)=> {
|
|
40
|
+
const scroller = getScroller()
|
|
41
|
+
// 滚动量经 ctx.browser 统一(scrollingElement 优先——window.scrollY 在
|
|
42
|
+
// 部分环境恒 0 会导致 threshold 漂移);非 window 容器直接读 scrollTop
|
|
43
|
+
const sy = scroller instanceof Window
|
|
44
|
+
? ctx.browser?.scrollTop() ?? 0
|
|
45
|
+
: (scroller as HTMLElement).scrollTop ?? 0
|
|
46
|
+
threshold = r.top + sy - (propsRef.offsetTop ?? 0)
|
|
47
|
+
wrapWidth = r.width
|
|
48
|
+
return { top: 0, left: 0 }
|
|
49
|
+
},
|
|
50
|
+
})
|
|
51
|
+
|
|
52
|
+
const stableRef = (node: HTMLElement | null)=> {
|
|
53
|
+
if (node) {
|
|
54
|
+
wrapEl = node
|
|
55
|
+
// ref 在 appendChild 之前触发(元素未连接文档,rect 无效)→ 微任务里等连接后重算
|
|
56
|
+
queueMicrotask(()=> {
|
|
57
|
+
pos.refresh()
|
|
58
|
+
scroll.refresh()
|
|
59
|
+
})
|
|
60
|
+
} else {
|
|
61
|
+
wrapEl = null
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
return (props)=> {
|
|
66
|
+
Object.assign(propsRef, props)
|
|
67
|
+
const { offsetTop = 0, children, className, ...rest } = props
|
|
68
|
+
|
|
69
|
+
// offsetTop 运行时变化:重算阈值(非滚动帧的布局读取,可接受)
|
|
70
|
+
if (offsetTop !== lastOffsetTop) {
|
|
71
|
+
lastOffsetTop = offsetTop
|
|
72
|
+
if (wrapEl) pos.refresh()
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// **阈值/宽度渲染期直算(2027-XX——竞态根治)**:此前 threshold 由
|
|
76
|
+
// usePopupPosition.compute 副作用更新、fixed 判定由 scroll.y 流驱动渲染
|
|
77
|
+
// ——两线无顺序保证:容器级单次滚动时渲染先跑(threshold 仍初始
|
|
78
|
+
// Infinity → 永不固定)、compute 后更新 → 无后续渲染 → 卡死(实测)。
|
|
79
|
+
// 渲染期直算 = 单一数据流(滚动量响应式 → 渲染 → 读布局算阈值)——
|
|
80
|
+
// 布局读取与 offsetTop 分支同一纪律(非滚动帧可接受)
|
|
81
|
+
if (wrapEl) {
|
|
82
|
+
const rect = wrapEl.getBoundingClientRect()
|
|
83
|
+
const scroller = getScroller()
|
|
84
|
+
if (scroller instanceof Window) {
|
|
85
|
+
// window:rect.top + scrollY = 文档位置
|
|
86
|
+
threshold = rect.top + (ctx.browser?.scrollTop() ?? 0) - offsetTop
|
|
87
|
+
} else {
|
|
88
|
+
// **容器:rect.top − 容器视口 top + scrollTop = 容器内滚动位置**
|
|
89
|
+
//(rect.top 已含 window 滚动与容器视口偏移——直接 + scrollTop 会
|
|
90
|
+
// 混入容器视口偏移——容器级永不固定实证——两滚动作标系不同)
|
|
91
|
+
const sc = scroller as HTMLElement
|
|
92
|
+
threshold = rect.top - sc.getBoundingClientRect().top + sc.scrollTop - offsetTop
|
|
93
|
+
}
|
|
94
|
+
wrapWidth = rect.width
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
const fixed = scroll.y >= threshold
|
|
98
|
+
|
|
99
|
+
return h('div', { class: ['wf-affix', className].filter(Boolean).join(' '), ...rest }, [
|
|
100
|
+
h('div', {
|
|
101
|
+
ref: stableRef,
|
|
102
|
+
class: ['wf-affix-sentinel', fixed ? 'wf-affix-sentinel--active' : ''].join(' '),
|
|
103
|
+
}),
|
|
104
|
+
h('div', {
|
|
105
|
+
class: ['wf-affix-content', fixed ? 'wf-affix-content--fixed' : ''].filter(Boolean).join(' '),
|
|
106
|
+
style: fixed ? { position: 'fixed', top: `${offsetTop}px`, width: `${wrapWidth}px` } : undefined,
|
|
107
|
+
}, children),
|
|
108
|
+
])
|
|
109
|
+
}
|
|
110
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/* weifuwu/client/components — AiChat(标准 AI 对话界面) */
|
|
2
|
+
|
|
3
|
+
.wf-aichat {
|
|
4
|
+
display: flex;
|
|
5
|
+
flex-direction: column;
|
|
6
|
+
gap: var(--wf-gap-sm);
|
|
7
|
+
font-family: var(--wf-font-sans);
|
|
8
|
+
font-size: var(--wf-font-size-sm);
|
|
9
|
+
line-height: var(--wf-line-height);
|
|
10
|
+
color: var(--wf-color-text);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.wf-aichat-list {
|
|
14
|
+
overflow-y: auto;
|
|
15
|
+
display: flex;
|
|
16
|
+
flex-direction: column;
|
|
17
|
+
gap: var(--wf-gap-sm);
|
|
18
|
+
padding: var(--wf-space-sm);
|
|
19
|
+
border: var(--wf-border-width) solid var(--wf-color-border);
|
|
20
|
+
border-radius: var(--wf-radius);
|
|
21
|
+
background: var(--wf-color-bg);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.wf-aichat-empty {
|
|
25
|
+
margin: var(--wf-space-lg) 0;
|
|
26
|
+
text-align: center;
|
|
27
|
+
color: var(--wf-color-text-secondary);
|
|
28
|
+
font-size: var(--wf-font-size-sm);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.wf-aichat-msg {
|
|
32
|
+
display: flex;
|
|
33
|
+
flex-direction: column;
|
|
34
|
+
gap: var(--wf-gap-xs);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.wf-aichat-tools,
|
|
38
|
+
.wf-aichat-approval {
|
|
39
|
+
max-width: 100%;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.wf-aichat-bubble {
|
|
43
|
+
display: inline-block;
|
|
44
|
+
max-width: 85%;
|
|
45
|
+
padding: var(--wf-space-sm) var(--wf-space-md);
|
|
46
|
+
border-radius: var(--wf-radius);
|
|
47
|
+
font-size: var(--wf-font-size-sm);
|
|
48
|
+
white-space: pre-wrap;
|
|
49
|
+
word-break: break-word;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.wf-aichat-msg--user {
|
|
53
|
+
align-items: flex-end;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.wf-aichat-msg--assistant {
|
|
57
|
+
align-items: flex-start;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.wf-aichat-bubble--user {
|
|
61
|
+
background: var(--wf-color-primary);
|
|
62
|
+
color: var(--wf-color-on-brand);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.wf-aichat-bubble--assistant {
|
|
66
|
+
background: var(--wf-color-bg-tertiary);
|
|
67
|
+
color: var(--wf-color-text);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.wf-aichat-status {
|
|
71
|
+
font-size: var(--wf-font-size-xs);
|
|
72
|
+
color: var(--wf-color-info-text);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.wf-aichat-usage {
|
|
76
|
+
font-size: var(--wf-font-size-xs);
|
|
77
|
+
color: var(--wf-color-text-secondary);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.wf-aichat-error {
|
|
81
|
+
font-size: var(--wf-font-size-xs);
|
|
82
|
+
color: var(--wf-color-error-text);
|
|
83
|
+
background: var(--wf-color-error-bg);
|
|
84
|
+
border-radius: var(--wf-radius);
|
|
85
|
+
padding: var(--wf-space-sm);
|
|
86
|
+
}
|
|
87
|
+
/* ── 语义标记类(DOM 钩子——无样式:测试定位/用户扩展——:where 零优先级显式声明) ── */
|
|
88
|
+
:where(.wf-aichat-inputbar--raised) {}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/** AiChat:useChat + 标准对话界面:流式 token / 工具卡 / 审批卡 / 自动滚动,协议对页面透明(showcase /components/aichat) */
|
|
2
|
+
/**
|
|
3
|
+
* AiChat — 标准 AI 对话组件(useChat 的标准展示层)
|
|
4
|
+
*
|
|
5
|
+
* 组件库第一个领域复合组件:接收 ctx.ui.useChat() 返回的 handle // audit-exempt: 用法示例文档(组件契约 = 接收 useChat handle)
|
|
6
|
+
* 渲染完整对话界面:消息气泡、工具调用卡(ToolCallCard)、HITL 审批卡
|
|
7
|
+
* (ApprovalCard)、思考/工具状态、usage、错误 + 重试、输入条 + 自动滚动。
|
|
8
|
+
*
|
|
9
|
+
* 分工:
|
|
10
|
+
* - useChat(hook)= 会话语义 + 协议(数据层)
|
|
11
|
+
* - AiChat(组件)= 标准界面(展示层,5 分钟出可交互对话页)
|
|
12
|
+
* - 需要完全自定义 UI 的应用直接用 useChat + 自有渲染(hook 保持灵活路径)
|
|
13
|
+
*
|
|
14
|
+
* 约定(手动优先):内部无 $,let + 事件;自动滚动经 ref + scroll 事件。
|
|
15
|
+
* 文案默认中文(与 ToolCallCard/ApprovalCard 一致),labels 可覆盖。
|
|
16
|
+
*
|
|
17
|
+
* ```tsx
|
|
18
|
+
* const $ = ctx.ui.useChat({ url: '/api/chat', approveUrl: '/api/approve' }) // audit-exempt: 用法示例文档(组件契约 = 接收 useChat handle)
|
|
19
|
+
* return ()=> h(AiChat, { chat: $ })
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
import type { Component } from '../../../../level6/client/vdom/index.ts';
|
|
23
|
+
import type { ChatHandle as UseChatHandle, ChatMessage as UiMessage } from '../../../../level3/vdom/hooks/chat.ts';
|
|
24
|
+
import type { WfError, WfUsage, WfApprovalRequest } from '../../../server/ai/types.ts';
|
|
25
|
+
import type { JsonSchema } from '../JsonSchemaForm/JsonSchemaForm.ts';
|
|
26
|
+
export interface AiChatLabels {
|
|
27
|
+
send: string;
|
|
28
|
+
stop: string;
|
|
29
|
+
retry: string;
|
|
30
|
+
thinking: string;
|
|
31
|
+
runningTool: (name?: string) => string;
|
|
32
|
+
tokens: (u: WfUsage) => string;
|
|
33
|
+
error: (e: WfError) => string;
|
|
34
|
+
placeholder: string;
|
|
35
|
+
empty: string;
|
|
36
|
+
}
|
|
37
|
+
export interface AiChatProps {
|
|
38
|
+
/** ctx.ui.useChat() 返回的会话 handle(同一 $,状态变化自动重渲染) */ chat: UseChatHandle;
|
|
39
|
+
/** 消息列表最大高度(默认 '70vh') */
|
|
40
|
+
maxHeight?: string;
|
|
41
|
+
/** 界面文案覆盖 */
|
|
42
|
+
labels?: Partial<AiChatLabels>;
|
|
43
|
+
/** 自定义气泡渲染逃生舱(默认纯文本) */
|
|
44
|
+
renderMessage?: (msg: UiMessage) => any;
|
|
45
|
+
/** 工具参数渲染(透传 ToolCallCard) */
|
|
46
|
+
renderToolArgs?: (args: Record<string, unknown>) => any;
|
|
47
|
+
/** 审批修改参数:按审批请求返回工具参数 schema(返回 undefined 则审批卡无修改入口;
|
|
48
|
+
* 提交修改后参数 → chat.approve('modified', …)——后端按 modifiedArgs 执行) */
|
|
49
|
+
approveSchema?: (request: WfApprovalRequest) => JsonSchema | undefined;
|
|
50
|
+
/** 键盘弹起时输入区 fixed 抬升(全屏 chat 布局用;内联卡片默认 false——原生聚焦滚动已够) */
|
|
51
|
+
raiseOnKeyboard?: boolean;
|
|
52
|
+
}
|
|
53
|
+
export declare const AiChat: Component<AiChatProps>;
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
/** AiChat:useChat + 标准对话界面:流式 token / 工具卡 / 审批卡 / 自动滚动,协议对页面透明(showcase /components/aichat) */
|
|
2
|
+
/**
|
|
3
|
+
* AiChat — 标准 AI 对话组件(useChat 的标准展示层)
|
|
4
|
+
*
|
|
5
|
+
* 组件库第一个领域复合组件:接收 ctx.ui.useChat() 返回的 handle // audit-exempt: 用法示例文档(组件契约 = 接收 useChat handle)
|
|
6
|
+
* 渲染完整对话界面:消息气泡、工具调用卡(ToolCallCard)、HITL 审批卡
|
|
7
|
+
* (ApprovalCard)、思考/工具状态、usage、错误 + 重试、输入条 + 自动滚动。
|
|
8
|
+
*
|
|
9
|
+
* 分工:
|
|
10
|
+
* - useChat(hook)= 会话语义 + 协议(数据层)
|
|
11
|
+
* - AiChat(组件)= 标准界面(展示层,5 分钟出可交互对话页)
|
|
12
|
+
* - 需要完全自定义 UI 的应用直接用 useChat + 自有渲染(hook 保持灵活路径)
|
|
13
|
+
*
|
|
14
|
+
* 约定(手动优先):内部无 $,let + 事件;自动滚动经 ref + scroll 事件。
|
|
15
|
+
* 文案默认中文(与 ToolCallCard/ApprovalCard 一致),labels 可覆盖。
|
|
16
|
+
*
|
|
17
|
+
* ```tsx
|
|
18
|
+
* const $ = ctx.ui.useChat({ url: '/api/chat', approveUrl: '/api/approve' }) // audit-exempt: 用法示例文档(组件契约 = 接收 useChat handle)
|
|
19
|
+
* return ()=> h(AiChat, { chat: $ })
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
import type { Component } from '../../../../level6/client/vdom/index.ts'
|
|
24
|
+
import { createClientBrowser } from '../../../../level6/client/vdom/index.ts'
|
|
25
|
+
import { h } from '../../../../level6/client/vdom/index.ts'
|
|
26
|
+
import type { ChatHandle as UseChatHandle, ChatMessage as UiMessage } from '../../../../level3/vdom/hooks/chat.ts'
|
|
27
|
+
import type { WfError, WfUsage, WfApprovalRequest } from '../../../server/ai/types.ts'
|
|
28
|
+
import type { JsonSchema } from '../JsonSchemaForm/JsonSchemaForm.ts'
|
|
29
|
+
import { ToolCallCard } from '../ToolCallCard/ToolCallCard.ts'
|
|
30
|
+
import { ApprovalCard } from '../ApprovalCard/ApprovalCard.ts'
|
|
31
|
+
import { ReasoningBlock } from '../ReasoningBlock/ReasoningBlock.ts'
|
|
32
|
+
import { ChatInput } from '../ChatInput/ChatInput.ts'
|
|
33
|
+
|
|
34
|
+
// ── 类型 ─────────────────────────────────────────────────
|
|
35
|
+
|
|
36
|
+
export interface AiChatLabels {
|
|
37
|
+
send: string
|
|
38
|
+
stop: string
|
|
39
|
+
retry: string
|
|
40
|
+
thinking: string
|
|
41
|
+
runningTool: (name?: string)=> string
|
|
42
|
+
tokens: (u: WfUsage)=> string
|
|
43
|
+
error: (e: WfError)=> string
|
|
44
|
+
placeholder: string
|
|
45
|
+
empty: string
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export interface AiChatProps {
|
|
49
|
+
/** ctx.ui.useChat() 返回的会话 handle(同一 $,状态变化自动重渲染) */ // audit-exempt: 用法示例文档(组件契约 = 接收 useChat handle)
|
|
50
|
+
chat: UseChatHandle
|
|
51
|
+
/** 消息列表最大高度(默认 '70vh') */
|
|
52
|
+
maxHeight?: string
|
|
53
|
+
/** 界面文案覆盖 */
|
|
54
|
+
labels?: Partial<AiChatLabels>
|
|
55
|
+
/** 自定义气泡渲染逃生舱(默认纯文本) */
|
|
56
|
+
renderMessage?: (msg: UiMessage)=> any
|
|
57
|
+
/** 工具参数渲染(透传 ToolCallCard) */
|
|
58
|
+
renderToolArgs?: (args: Record<string, unknown>)=> any
|
|
59
|
+
/** 审批修改参数:按审批请求返回工具参数 schema(返回 undefined 则审批卡无修改入口;
|
|
60
|
+
* 提交修改后参数 → chat.approve('modified', …)——后端按 modifiedArgs 执行) */
|
|
61
|
+
approveSchema?: (request: WfApprovalRequest)=> JsonSchema | undefined
|
|
62
|
+
/** 键盘弹起时输入区 fixed 抬升(全屏 chat 布局用;内联卡片默认 false——原生聚焦滚动已够) */
|
|
63
|
+
raiseOnKeyboard?: boolean
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const defaultLabels: AiChatLabels = {
|
|
67
|
+
send: '发送',
|
|
68
|
+
stop: '停止',
|
|
69
|
+
retry: '重试',
|
|
70
|
+
thinking: '🤔 思考中…',
|
|
71
|
+
runningTool: (name)=> (name ? `执行工具 ${name}` : '执行工具…'),
|
|
72
|
+
tokens: (u)=> `tokens: ${u.prompt_tokens}→${u.completion_tokens}`,
|
|
73
|
+
error: (e)=> `${e.code}: ${e.message}`,
|
|
74
|
+
placeholder: '输入消息,回车发送…',
|
|
75
|
+
empty: '输入消息开始对话。',
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// ── 组件 ─────────────────────────────────────────────────
|
|
79
|
+
|
|
80
|
+
export const AiChat: Component<AiChatProps> = (initProps, ctx)=> {
|
|
81
|
+
const _browser = ctx.browser ?? createClientBrowser()
|
|
82
|
+
// ── 手动状态(组件库约定:let + 事件,不依赖 $)──
|
|
83
|
+
let listEl: HTMLElement | undefined
|
|
84
|
+
let stickToBottom = true
|
|
85
|
+
|
|
86
|
+
// 订阅 chat 变更(render-only 共享原语):chat 是父组件持有的共享会话(活引用,
|
|
87
|
+
// props 浅比较恒等 → 三态 skip 命中),父 dirty 不会驱动本组件重渲染 →
|
|
88
|
+
// 订阅:任何会话状态变化 → 自身重渲染。**跟随最新 chat**(父换 handle → 重新订阅——
|
|
89
|
+
// 防“订阅旧 handle:新会话流式更新但界面无输出”——真实事故:父组件违反稳定契约传新 handle)
|
|
90
|
+
let currentChat: UseChatHandle = initProps.chat
|
|
91
|
+
let unsubChat: (()=> void) | undefined
|
|
92
|
+
const resubscribe = ()=> {
|
|
93
|
+
unsubChat?.()
|
|
94
|
+
const c = currentChat as UseChatHandle & { subscribe?: (cb: ()=> void) => ()=> void }
|
|
95
|
+
unsubChat = c?.subscribe ? c.subscribe(()=> ctx.render()) : undefined
|
|
96
|
+
}
|
|
97
|
+
resubscribe()
|
|
98
|
+
// 卸载退订(ref 纪律:稳定 ref + null 分支只在真卸载触发)
|
|
99
|
+
const rootRef = (el: any)=> { if (!el) { unsubChat?.(); unsubChat = undefined } }
|
|
100
|
+
|
|
101
|
+
// 可视视口跟踪:虚拟键盘弹起时输入区抬升到键盘上方(fixed 底部栏场景)
|
|
102
|
+
const vv = ctx.ui.useVisualViewport()
|
|
103
|
+
|
|
104
|
+
const scrollToBottom = ()=> {
|
|
105
|
+
if (listEl) listEl.scrollTop = listEl.scrollHeight
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// 滚动位置跟踪(useScrollPosition:全局 scroll 监听 + rAF 节流,替代自建 listEl scroll 监听)。
|
|
109
|
+
// y 响应式变化自动 dirty → render 里重算 stickToBottom(贴底判定,距底 <48px 视为贴底)。
|
|
110
|
+
const scroll = ctx.ui.useScrollPosition({ getScroller: ()=> listEl ?? null })
|
|
111
|
+
|
|
112
|
+
// 稳定 ref 函数:跨渲染保持同一引用。
|
|
113
|
+
// weifuwu 的 ref-diff 在 ref 函数引用变化时调用旧 ref(null)——若 ref 内联在 render 里,
|
|
114
|
+
// 每次重渲染都会触发 null 分支(退订 watcher / 移除监听),必须把 ref 定义在 mount 作用域。
|
|
115
|
+
const listRef = (el: any)=> {
|
|
116
|
+
if (el && !listEl) {
|
|
117
|
+
listEl = el
|
|
118
|
+
scroll.refresh() // 初始 y
|
|
119
|
+
queueMicrotask(scrollToBottom)
|
|
120
|
+
} else if (!el && listEl) {
|
|
121
|
+
listEl = undefined
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
// ── render(每次 dirty/props 变化)──
|
|
126
|
+
return (props)=> {
|
|
127
|
+
const { chat, raiseOnKeyboard = false } = props
|
|
128
|
+
const labels: AiChatLabels = { ...defaultLabels, ...props.labels }
|
|
129
|
+
|
|
130
|
+
// §5.3 受控输入纪律:输入态走内部 keyword(IME 组合期间不回流传受控 value——
|
|
131
|
+
// 否则组合被打断,中文输入法无法输入 → 消息发不出 → “没有流式输出”的真实根因)
|
|
132
|
+
// 受控 value = chat.input(共享 handle 的输入态);Enter 时写入 chat.input + send
|
|
133
|
+
if (chat !== currentChat) {
|
|
134
|
+
currentChat = chat
|
|
135
|
+
resubscribe() // 换 handle → 重新订阅(新会话的 notify 才能驱动本组件)
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
// 贴底判定(useScrollPosition 的 y 响应式驱动;scrollHeight/clientHeight 读当前 DOM)
|
|
140
|
+
if (listEl) {
|
|
141
|
+
stickToBottom = listEl.scrollHeight - scroll.y - listEl.clientHeight < 48
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
// 自动滚动:内容更新且用户未上翻 → 微任务内滚到底(render 返回后 patch 已完成)
|
|
145
|
+
if (stickToBottom) queueMicrotask(scrollToBottom)
|
|
146
|
+
|
|
147
|
+
const msgs = (chat.messages ?? []) as UiMessage[]
|
|
148
|
+
const nodes: any[] = []
|
|
149
|
+
|
|
150
|
+
if (msgs.length === 0) {
|
|
151
|
+
nodes.push(h('p', { class: 'wf-aichat-empty' }, labels.empty))
|
|
152
|
+
}
|
|
153
|
+
for (const m of msgs) {
|
|
154
|
+
nodes.push(renderMessage(m, props, labels))
|
|
155
|
+
}
|
|
156
|
+
if (chat.step) {
|
|
157
|
+
nodes.push(
|
|
158
|
+
h('div', { class: 'wf-aichat-status' },
|
|
159
|
+
chat.step.type === 'llm' ? labels.thinking : labels.runningTool(chat.step.name)),
|
|
160
|
+
)
|
|
161
|
+
}
|
|
162
|
+
if (chat.usage) nodes.push(h('div', { class: 'wf-aichat-usage' }, labels.tokens(chat.usage)))
|
|
163
|
+
if (chat.error) nodes.push(h('div', { class: 'wf-aichat-error' }, labels.error(chat.error)))
|
|
164
|
+
|
|
165
|
+
return h('div', { class: 'wf-aichat', ref: rootRef }, [
|
|
166
|
+
h('div', {
|
|
167
|
+
class: 'wf-aichat-list',
|
|
168
|
+
style: { maxHeight: props.maxHeight ?? '70vh' },
|
|
169
|
+
ref: listRef,
|
|
170
|
+
}, nodes),
|
|
171
|
+
// 输入条(ChatInput 独立组件——§5.3 受控输入纪律内置:IME 组合/Enter 发送/streaming 切换)
|
|
172
|
+
h('div', {
|
|
173
|
+
class: `wf-aichat-inputbar${vv.keyboardOpen && raiseOnKeyboard ? ' wf-aichat-inputbar--raised' : ''}`,
|
|
174
|
+
// 键盘弹起(opt-in,全屏 chat 布局):fixed 抬升到键盘上方(bottom = 键盘高度)
|
|
175
|
+
style: vv.keyboardOpen && raiseOnKeyboard
|
|
176
|
+
? { position: 'fixed', left: '0', right: '0', bottom: `${Math.max(0, _browser?.viewportHeight() - (vv.height + vv.offsetTop)) + 8}px`, zIndex: 'var(--wf-z-popover)' }
|
|
177
|
+
: undefined,
|
|
178
|
+
}, [
|
|
179
|
+
h(ChatInput, {
|
|
180
|
+
value: chat.input ?? '',
|
|
181
|
+
onChange: (v: string)=> { chat.setInput(v) }, // 输入期每键同步共享 handle(发送读 state.input)
|
|
182
|
+
onSend: (text: string)=> {
|
|
183
|
+
chat.setInput(text) // 写入共享 handle(send 读 state.input)
|
|
184
|
+
chat.send()
|
|
185
|
+
},
|
|
186
|
+
streaming: chat.streaming,
|
|
187
|
+
onStop: ()=> chat.stop(),
|
|
188
|
+
error: chat.error ? chat.error.message : null,
|
|
189
|
+
onRetry: ()=> chat.retry(),
|
|
190
|
+
labels: { send: labels.send, stop: labels.stop, retry: labels.retry, placeholder: labels.placeholder },
|
|
191
|
+
}),
|
|
192
|
+
]),
|
|
193
|
+
])
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
// ── 单条消息:工具卡 + 审批卡 + 气泡 ──────────────────────
|
|
198
|
+
|
|
199
|
+
function renderMessage(m: UiMessage, props: AiChatProps, _labels: AiChatLabels): any {
|
|
200
|
+
const nodes: any[] = []
|
|
201
|
+
|
|
202
|
+
if (m.toolCalls?.length) {
|
|
203
|
+
const cards = m.toolCalls.map((tc, i)=>
|
|
204
|
+
h(ToolCallCard, {
|
|
205
|
+
key: `${m.id}-tool-${i}`,
|
|
206
|
+
call: tc.call,
|
|
207
|
+
progress: tc.progress,
|
|
208
|
+
result: tc.result,
|
|
209
|
+
renderArgs: props.renderToolArgs,
|
|
210
|
+
}))
|
|
211
|
+
nodes.push(h('div', { class: 'wf-aichat-tools' }, cards))
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
if (m.approval) {
|
|
215
|
+
const card = h(ApprovalCard, {
|
|
216
|
+
request: m.approval,
|
|
217
|
+
argsSchema: props.approveSchema?.(m.approval),
|
|
218
|
+
onApprove: (modifiedArgs?: Record<string, unknown>)=> props.chat.approve(modifiedArgs ? 'modified' : 'approved', undefined, modifiedArgs),
|
|
219
|
+
onReject: (note?: string)=> props.chat.approve('rejected', note ?? '用户拒绝'),
|
|
220
|
+
})
|
|
221
|
+
nodes.push(h('div', { class: 'wf-aichat-approval' }, card))
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
if (m.reasoning) {
|
|
225
|
+
nodes.push(h(ReasoningBlock, {
|
|
226
|
+
content: m.reasoning,
|
|
227
|
+
streaming: m.status === 'streaming',
|
|
228
|
+
}))
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
nodes.push(h('div', { class: `wf-aichat-bubble wf-aichat-bubble--${m.role}` },
|
|
232
|
+
props.renderMessage ? props.renderMessage(m) : (m.content || '…')))
|
|
233
|
+
|
|
234
|
+
return h('div', { key: m.id, class: `wf-aichat-msg wf-aichat-msg--${m.role}` }, nodes)
|
|
235
|
+
}
|