enter-rivet-plugin

中文文档
0.1.12发布于 2026/11/03TypeScriptES Module

该项目包含自定义 铆钉 输入插件。

中文使用文档
文档目录18 节
  1. 使用插件
  2. 在铆钉
  3. 在代码中
  4. 黑珍珠OAuth认证
  5. 发布到npm
  6. 手动释放
  7. 未来的GitHub动作工作流
  8. 更新已安装的插件
  9. 制作自己的插件
  10. ⚠️重要注意事项⚠️
  11. 1. 插件定义
  12. 2. 节点的定义
  13. 3. 捆绑销售
  14. 4. NPM
  15. 地方发展
  16. 将OAuth JWT复制到项目上下文中
  17. 运行节点前登录
  18. 自动令牌捕获

铆钉输入插件

该项目包含自定义 铆钉 输入插件。

使用插件

在铆钉

在铆钉中使用这个插件:

  1. 打开插件覆盖在屏幕的顶部。
  2. 转到列表底部的“NPM Plugin”,然后单击“Add”按钮。
  3. 输入“Enter -rivet-plugin”作为包名,并使用“latest”或特定的发布版本。
  4. 点击“添加”按钮将插件安装到您当前的项目中。

在代码中

加载你的插件和铆钉到你的应用程序:

import * as Rivet from "@ironclad/rivet-core";
import enterPlugin from "enter-rivet-plugin";

注册插件与铆钉使用 globalRivetNodeRegistry 或者创建一个新的 NodeRegistration 注意到这一点:

Rivet.globalRivetNodeRegistry.registerPlugin(enterPlugin(Rivet));

黑珍珠OAuth认证

在Rivet,打开 设置→进入,设置 黑珍珠API URL 给受保护的人 API(例如 https://dev.service.app.talismanai.co), OAuth登录URL 转到官方登录页面(例如 https://dev.admin.getenter.ai/login). JSON回调URL和 redirect_uri 不是必需的。

部署项目、数据获取器V1、获取输入、Talisman LLM和智能共享 这个登录流程。当API密钥缺失、为空或仅为空白时,Rivet打开 在发出受保护的请求之前,打开一个隔离的Chrome窗口。正常登录。 Rivet捕获JWT从一个 Authorization: Bearer <jwt> 由 登录应用程序到配置的确切原点 黑珍珠API URL在那之后 请求收到一个成功的HTTP响应。请求谷歌或不相关 起源和被拒绝的令牌将被忽略。如果登录应用程序还没有调用 配置API,在其中打开一个这样做的页面。

Rivet将捕获的令牌重用为 Authorization: Bearer <jwt> 用于插件调用。 JWT exp 当会话存在时,提供会话生存期。与当前的铆钉构建, 同一开放项目的节点和以后的运行重用该会话;并发 请求共享一个登录窗口。关闭项目/应用程序(或断开 节点调试器)清除身份验证缓存。配置API密钥后, OAuth仍然是HTTP 401/403和OAuth重定向的后备方案。获取输入使用 当不需要API调用时,无需登录即可使用图形提供的内容。

使用Rivet桌面构建和重建执行侧车与头部捕获支持。 旧版本在没有配置OAuth URL时保留API-key-only行为。

运行插件回归测试 node --test test/*.test.mjs 和一个兼容的 @ironclad/rivet-core. 在开发期间, RIVET_CORE_MODULE 可以指出来 核心模块;加载TypeScript源代码也需要 tsx。

发布到npm

npm包是 enter-rivet-plugin. Rivet从 https://registry.npmjs.org/enter-rivet-plugin/<tag-or-version>,然后下载 由该元数据识别的tarball并加载 dist/bundle.js。 latest 是一个npm发布标签,而不是一个Git分支。

此存储库中目前没有发布工作流。合并PR; 推送一个Git标签,或者创建一个GitHub版本,都不会将包发布到 自动npm。

手动释放

使用具有发布权限的npm帐户 enter-rivet-plugin 和 完成npm请求的任何身份验证或双因素验证。

  1. 合并预期的更改并更新您的本地 main 付款:

    git switch main
    git pull --ff-only origin main
    yarn install --immutable
    
  2. 检查已发布的版本,选择以前未使用的版本,然后构建。 下面的示例增加本地补丁版本:

    npm view enter-rivet-plugin@latest version
    npm version patch --no-git-tag-version
    yarn build
    npm pack --dry-run --ignore-scripts
    

    检查包内容,包括 dist/bundle.js 以及它的声明。 提交版本更改 package.json 和 package-lock.json,以及 与任何预期生成的分布变化,通过正常的审查 的过程。从结果发布提交发布。

  3. 发布构建的包并更新 latest 标签:

    npm login
    npm whoami
    npm publish --ignore-scripts --access public --tag latest
    

    运行这个显式命令,而不是 yarn publish 或 npm run publish。 现有的 publish 脚本使用无效的 --access private 选项, 调用 npm publish 来自npm的发布生命周期。 --ignore-scripts 绕过 该脚本;首先必须单独完成构建。这unscoped 包是公开发布的。

  4. 验证npm的 latest 标签指向你刚刚发布的版本:

    npm view enter-rivet-plugin dist-tags --json
    

现有的npm包/版本组合不能被覆盖。如果另一个 发布已使用的版本,请选择新版本后再发布 出版。看到 NPM发布文档。

未来的GitHub动作工作流

中创建发布自动化 这个存储库, talismanai/rivet-plugin,在 .github/workflows/publish.yml. 它不是Rivet桌面存储库的一部分。 工作流还没有实现。

一个合适的释放流程是:

  1. 合并版本冲突和预期的插件更改。
  2. 推送一个版本标签,例如 v0.1.11 在发布提交时。
  3. 让工作流验证标签是否匹配 package.json、安装锁定 依赖、构建、检查包,并将其发布到NPM latest。

更喜欢 NPM可信发布 与 GitHub Actions OIDC。在npm包的可信发布者设置中,配置 老板 talismanai、存储库 rivet-plugin、工作流文件名 publish.yml, 允许出版。如果使用GitHub环境,其名称也必须匹配。 出版工作需求 contents: read 和 id-token: write, a支持 github托管的运行器,以及npm可信发布支持的Node/npm版本。 这避免了在GitHub机密中存储长期存在的npm发布令牌。

纠正现有的 publish 脚本在自动化中采用之前,或者保留 显式构建并使用上面所示的显式发布命令。

更新已安装的插件

使用以下条目的项目跟踪在npm下发布的版本 latest 标签:

- id: enter-rivet-plugin@latest
  package: enter-rivet-plugin
  tag: latest
  type: package

当Rivet加载插件时,它会将安装的版本与npm进行比较 版本,如果有新版本可用,则重新安装。重新启动铆钉和 重新打开项目以加载更新。要锁定一个版本,在两个版本中都使用它的版本 id 和 tag例如: [email protected] 和 0.1.11 之后, 版本已发布。

在macOS上,默认安装目录为:

~/Library/Application Support/com.ironcladapp.rivet/plugins/enter-rivet-plugin-latest/package

本地开发同步放置a .git 标记在该目录中。 当它存在时,Rivet会跳过npm重新安装,从而保留本地更改。 使用下面的本地同步命令更新该副本。回到 npm管理的安装,退出Rivet和移动整个 enter-rivet-plugin-latest 将目录缓存在安全的地方;重新打开项目 重新下载已发布的包。

发布插件不会更新Rivet应用程序。OAuth特性 需要一个兼容的铆钉桌面构建和重建执行侧车,加上 用户机器上安装的Chrome/Chromium。

制作自己的插件

⚠️重要注意事项⚠️

  • 你必须捆绑你的插件,或者在ESM文件中包含插件的所有代码。插件加载使用 import(pluginUrl) 因此必须遵守ESM模块的所有规则。这意味着你不能使用 require 或 module.exports 在你的插件代码中。如果需要使用外部库,则必须将它们捆绑在一起。

  • 您也不能导入任何bundle @ironclad/rivet-core 在你的插件。铆钉核心库作为参数传递到默认导出函数中。注意只使用 import type 语句,否则你的插件将无法成功捆绑。

这个存储库有两个绑定的示例 ESBuild 并且只能从 @ironclad/rivet-core。

1. 插件定义

参见 src / index.ts 来定义插件。您的插件必须默认导出一个函数,该函数接受Rivet Core库作为其唯一的参数,并返回一个有效的 RivetPlugin 对象。

2. 节点的定义

参见 src /节点/ ExamplePluginNode.ts 来定义插件的节点。您应该遵循类似的语法来导出Rivet Core库中的函数。

  • 节点必须实现 PluginNodeDefinition<T> 通过调用 pluginNodeDefinition(yourPluginImpl, "Node Name")。
  • 节点实现必须实现 PluginNodeImpl<T>。
  • T 应该是你插件的类型定义。

3. 捆绑销售

看到 bundle.ts 这是一个如何捆绑插件的例子。你可以使用任何你喜欢的捆绑器,但是你必须把你的插件捆绑到一个文件中。你可以使用 ESBuild 将你的插件捆绑到一个文件中。

将所有外部库捆绑在一起是很重要的,因为浏览器不能加载纯导入。

4. NPM

将插件发布到npm,以便Rivet用户可以通过UI或SDK安装它。看到 发布到npm 此存储库的发布过程。

地方发展

  1. 运行 yarn dev 以监视模式启动编译器和打包器。这将自动重新组合和重新绑定您的更改到 dist 文件夹中。这也会将捆绑的文件复制到插件安装目录中。
  2. 每次更改后,必须重新启动Rivet才能看到更改。

对于一次性构建和同步签出源代码:

yarn build
yarn exec tsx bundle.ts --sync

同步副本 dist 和 package.json 铆钉的本地插件 安装并将其标记为本地开发副本。之后重新启动Rivet。 这些命令不会创建npm发布。

将OAuth JWT复制到项目上下文中

在 设置→进入,设置 OAuth令牌上下文密钥 旁边 OAuth登录URL 给一个名字,比如 apiJwt. 留空以禁用复制。在一次成功的 Rivet写道:login,以及无论何时重用经过身份验证的会话 Bearer <jwt> 将该键作为项目上下文中的秘密字符串。 该键的现有值被替换;保留其他上下文条目。

使用一个 上下文 使用该ID和String数据类型读取它。在 第一次运行时,安排执行,以便Context节点在经过身份验证的节点之后运行。 已运行的上下文节点不会自动再次执行。令牌刷新 替换复制的值。上下文值是一个副本,而不是身份验证缓存; 它不会在缓存过期或应用程序关闭后保持登录有效。

这个可选值遵循Rivet现有的项目上下文存储和持久性; 秘密标志在UI中屏蔽它,不加密它。此功能需要 更新后的Enter插件和Rivet版本都支持OAuth上下文镜像。

运行节点前登录

打开一个项目,转到 设置→进入. 集 黑珍珠API URL 和 OAuth登录URL,然后点击 登录 在登录URL旁边。这个总是打开的 一个新的登录,即使缓存了JWT,也不执行API请求 部署项目。结果将替换项目的会话和更新 OAuth令牌上下文密钥 与 Bearer <jwt> 当配置该字段时。 后续节点在桌面和Node执行器中重用会话,包括 当Node执行器在登录后连接时。取消保留现有的 工作会议。关闭设置或切换项目将取消未完成的登录。

自动令牌捕获

集 OAuth登录URL 进入官方平台登录页面。铆钉自动 从该页发起的成功HTTP请求中捕获有效的Bearer JWT。 登录页面使用的API主机名和路径可以在不更新的情况下更改 铆钉的设置,可能不同于 黑珍珠API URL. 请求启动 由谷歌或不相关的浏览器框架排除。手动登录和 节点触发的身份验证使用相同的逻辑。JWT在Black中被重用 Pearl API请求并复制为 Bearer <jwt> 到已配置的上下文键。 不需要配置令牌捕获URL;过时的值将被忽略。

版本与发布记录

enter-rivet-plugin 共发布 39 个版本,首次发布于 2025/04/04;过去 12 个月发布了 19 个版本。

版本发布日期距今
0.1.12latest2026/11/03今天
0.1.112026/10/287 天前
0.1.102026/10/0628 天前
0.1.92026/10/0628 天前
0.1.82026/08/082 个月前
0.1.72026/04/146 个月前

其他发布通道:experimental → 0.0.16-exp.0,exp → 0.0.19-exp.0。

关于 enter-rivet-plugin 的常见问题

enter-rivet-plugin 是什么?

该项目包含自定义 铆钉 输入插件。

如何安装 enter-rivet-plugin?

在项目目录运行 npm install enter-rivet-plugin,或使用 pnpm add / yarn add / bun add。

enter-rivet-plugin 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

enter-rivet-plugin 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

enter-rivet-plugin 可以商用吗?

enter-rivet-plugin 使用 未声明 许可。package.json 没有声明许可证。没有许可证的代码默认保留全部权利,商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括,不构成法律意见,请以许可原文为准。

enter-rivet-plugin 还在维护吗?

最新版本 0.1.12 发布于 2026/11/03(今天);至今共发布 39 个版本,其中过去 12 个月发布了 19 个;首次发布于 2025/04/04。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。