@everylink/vue-chat
v0.1.0-preview.20261012
Published
EveryLink AI Vue chat, floating assistant, Markdown, math and interactive components (preview)
Readme
EveryLink AI Vue 组件包
聊天组件自动显示已授权消息的“本轮参考资料”。也可单独导入 KnowledgeSources 并传入 :snapshot="message.knowledge",或 :inputs-json="run.inputsJson";后者优先。资料以纯文本显示,支持展开原文及核对文档标识,不自动下载或重新检索。详见知识库来源预览。
新增 EveryLinkAssistant 悬浮组件:拖动吸边、靠边隐藏、默认/上传形象、悬浮与完整对话切换,复用同一个聊天实例。配置与 avatarUploader 代码接口见悬浮助手与形象配置。组件包导出 AssistantOptions、AvatarUploader 类型,示例 examples/vue-chat/?assistant 演示业务页面嵌入。
assistant.source: 'runtime' 可直接读取后端统一形象,上传由合作方服务端开发凭据完成;详见应用统一助手形象。此模式初始化时会读取业务身份,退出时需 disconnect/卸载,登录后重建;不会把开发凭据交给浏览器。
复用默认前端同一份组件源码。交付 ESM、TypeScript 声明、CSS、Logo、头像、图标和数学字体,不需要客户复制仓库中的 Vue 源文件。构建同时保留所打包第三方依赖的许可文件 dist/THIRD-PARTY-NOTICES.txt。适用于 Vue 3.5 / Element Plus 2.14;浏览器应用,暂不支持 SSR。
组件版本固定与自主升级说明 SDK/Vue 二包精确组成包、纯数据 @everylink/vue-chat/component-catalog.json 导出、客户安装锁和兼容预检。先独立验签/核批准清单 SHA,再在新 consumer 安装精确二 tgz;实际组成包、签名、安装与渲染范围按本次交付记录核对,流程说明不代替验收。下述单包构建/接入命令保持原用法,不能仅按 0.1.0 版本字符串认定来源或匹配。
公共 npm 预览版安装:
npm install @everylink/[email protected] @everylink/[email protected] [email protected] [email protected]本地 tarball 交付仍可使用。仓库根目录执行:
pnpm --filter @everylink/sdk build
pnpm --filter @everylink/vue-chat build
pnpm --filter @everylink/sdk pack --out ../../.local/everylink-sdk.tgz
pnpm --filter @everylink/vue-chat pack --out ../../.local/everylink-vue-chat.tgz将两个包复制到合作方项目。在 package.json 中配置(pnpm):
{
"dependencies": {
"@everylink/sdk": "file:./everylink-sdk.tgz",
"@everylink/vue-chat": "file:./everylink-vue-chat.tgz",
"vue": "^3.5.20",
"element-plus": "^2.14.7"
}
}安装后,在入口注册组件并导入样式:
import { createApp } from 'vue';
import { installEveryLinkUI } from '@everylink/vue-chat';
import '@everylink/vue-chat/style.css';
import App from './App.vue';
const app = createApp(App);
installEveryLinkUI(app, { themeName: 'default', dark: false });
app.mount('#app');<script setup lang="ts">
import { ref } from 'vue';
import { EveryLinkChat, createChatConfig } from '@everylink/vue-chat';
const chat = ref<InstanceType<typeof EveryLinkChat>>();
const config = createChatConfig({ appId: '实际应用ID', environmentId: 'test' });
// 业务退出/切换用户时:chat.value?.disconnect(),或者卸载组件。
</script>
<template><EveryLinkChat ref="chat" :config="config" /></template>默认启用连续会话、Runtime 附件、知识库和操作确认。配置接口沿用 ChatConfig,支持替换 prepareAttachments / knowledge、renderers、Logo、问题、布局、组件白名单,以及 details / confirmation-result 插槽。固定应用配置后挂载;切换应用或环境须卸载后重建。disconnect() 和 openConfirmation(id?) 通过组件 ref 暴露。
默认补参组件 WorkflowInputCard 也从本包导出,支持 text、number、integer、boolean、date、datetime、single、multiple、files 九类字段。单独使用时传入 runId/session/canRespond/isCurrentClient?,处理 resumed/invalidSession/approval 事件,仍需导入本包 style.css 并调用 installEveryLinkUI。SDK 与组件必须使用本次交付的匹配产物;旧版本构建目录不能因源码已更新就视为具备该导出。字段约束、原任务恢复和附件 UUID 契约见类型化表单与附件引用。
仓库根目录的 pnpm verify:partner-starter 会核对实际 vendor tarball 与安装后 dist 字节,使用安装后的编译器检查九类字段及 Dify metadata,检查 SDK 类型和文件方法、组件公开声明及本地 CSS/字体。它保留原工程类型检查、生产构建和浏览器夹具检查;这些证据不能代替真实 Dify 执行或客户离线验收。
宿主页面上下文通过 createHostContext() 的 update/clear 显式更新,并传给 createChatConfig({ context, ... })。需要宿主后端核验对象归属及签名、发布包设置允许字段;不会抓取 DOM,也不会将页面角色当作执行权限。详见宿主页面上下文接入。
宿主后端必须提供同源 /api/ai/session 并代理 /v1/runtime/*;令牌由真实业务登录签发。默认 Runtime 地址为空,不能在前端放开发者凭据或模型 Key。组件不会提供权限或身份的替代实现。开发者可单独引用 MessageContent、RichResults、ToolConfirmationCard,自行使用 @everylink/sdk 接口。
全套样式和主题目前作用于页面的 html/body,Element Plus 弹层也挂到 body;每页共享一套主题。推荐独立业务路由,已有不同样式体系的宿主使用 iframe 隔离。包导入本身不初始化主题;installEveryLinkUI 显式执行注册和主题初始化。不要把它宣传为 Shadow DOM 隔离组件。容器嵌入可通过 style="height:100%" 指定高度,宿主需提供明确高度且至少 480px。
组件固定机制使用 collect / inspect / lock / preflight;精确命令、pnpm 独立 workspace、本地二包覆盖、第三方依赖缓存及 wx 新建锁见组件固定专题。数学 capability 的真实 ID 是 math-katex;catalog 能力不是业务 scopes,不支持模型提供远程脚本或任意 renderer URL。客户自定义 renderer 使用自己批准的本地源码和原 renderers API,目录编辑不会实现组件。sourceVerification: EXTERNAL_REQUIRED、renderVerification: NOT_RUN 始终保留,包外验签与真实宿主渲染回执另附。
升级预检有 COMPATIBLE / DEGRADED_REVIEW_REQUIRED / BLOCKED;兼容或退出 0 不替代人工审批、严格类型/宿主构建和浏览器检查。保存原依赖锁、组件锁与程序目录,人工切换/回退且不重发补参、批准或业务 invoke;原发布 0.1/0.2、Run 和历史摘要不变。布局切换保留原实例不代表整页更新可迁移草稿/排序/分页等临时状态。
完整示例见仓库 examples/vue-chat;验证命令 pnpm verify:vue-chat 会在仓库外临时目录安装实际 tarball、执行类型检查和生产构建,再检查嵌套 URL 的 Logo、字体、聊天、主题、附件、知识库与退出。API 用确定性夹具,不能替代 Runtime/模型实测。组件许可和正式外部分发流程仍须按产品交付约定落实。
