npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@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/模型实测。组件许可和正式外部分发流程仍须按产品交付约定落实。