鹦鹉( Parakeet )@fungi.computer/parakeet(中文(简体) )
Parakeet从打入的Shiitake会话中调出一个代理谈话. 浏览器 主机使用它的反应视图;终端主机使用它的无头钩来渲染 同样的历史,作曲和地位 通过他们自己的UI.
网站主机挂载相同 Parakeet 在孤立的iframe中组件。 A 类
访问者会议适配器提供访问者范围会议阅读、观看和
即时命令; 证书和录取仍由主机保存 .
markdownPolicy="visitor" 在不加载图像的情况下使Markdown链接
不安全的目的地。 记录了人类的迅速回归 status: "recorded", (中文(简体) ),
不是伪造的代理工作接受书。 关闭视图停止观察,而不是
探员的工作 过 visitor={{ agentName: "Front Desk" }} 隐藏模型,
使用和指挥控制。 斜线前缀文本仍为正常访问者
消息; 访问者模式不登记或执行斜线命令.
设置
安装 @fungi.computer/parakeet 从npm。 它需要兼容的反应和
反应 DOM 配对, TanStack 查询和由主机提供的授权会话.
该表支持18.2或19.2反应,以及后来在这些主要版本内.
npm install @fungi.computer/parakeet react react-dom @tanstack/react-query
浏览器主机导入 @fungi.computer/parakeet/styles.css 一次 一次吗 它包括
Caps/Stipe基金会和对话设施。 不同时装入
@fungi.computer/caps/styles.css 在该文件。 导入 Caps 中 fonts.css
当使用捆绑的字体时,由您的捆绑者处理字体 URL.
一个主机正在编译它自己的 Tailwind 公用设备 /tailwind.css 来源
转而供应自己的 @source。构建的样式表无法扫描您
主持人的附加课.
在浏览器中快速启动
说明:您的主机提供授权 ParakeetSession 和浏览器
处理CSS的捆绑工. 此组件拥有其查询缓存, 并打开
卸载。 它不创建代理,在工具上签名或授予工具.
import { useEffect, useState } from "react";
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
import { Parakeet, type ParakeetSession } from "@fungi.computer/parakeet";
import "@fungi.computer/parakeet/styles.css";
export function Conversation({ session }: { session: ParakeetSession }) {
const [queryClient] = useState(() => new QueryClient());
useEffect(() => () => queryClient.clear(), [queryClient]);
return (
<QueryClientProvider client={queryClient}>
<Parakeet session={session} />
</QueryClientProvider>
);
}
Parakeet从未读取消息的主机元数据本身. 为了显示谁写了台词,
通过 authorOf: 您将元数据读取为 ParakeetAuthor
(单位:千美元){ id, name }) (中文(简体) ). 真菌的应用程序通过 messageAuthor 从
@fungi.computer/agar/agents;没有它,行显示没有作者.
该观点介绍了会议所观察的历史、现场工作、作曲家和 错误。 屏幕阅读器获得与作曲页脚相同的会话状态 透过隐藏的礼貌活区;流出记录符就在外 区域。 会话运输仍由呼叫者拥有. 发表观察意见 不取消接受的工作或关闭借用的代理人。 替换 a 会话,提供新手柄,而不是将快照复制到另一个 可写作的商店.
在触摸主设备时, 输入插入一行并提交发送按钮 草案。 在桌面上, Enter 提交和 Shift+Enter 插入一条新行.
这个 独立作曲测试 练习 提供商、查询缓存、观察和迅速录入的有打字装置. 浏览器合同使用带有固定会话的真实组件. 一个假的 会话检查组件,而不是主机认证或模型提供者.
共享作曲家
ComposerShell 是共享聊天和一代作曲的表面. 它拥有
卡片、字段套装、高度限制和一行非包装控制;呼叫器
提供它们的字段、控制器、托盘内容和动作,而不是另一个工具栏
设置. useComposerTextareaSize(ref, value) 生长在其中任一领域
共享限制。 完整样式表包括此布局; 主机汇编其
拥有 Caps 工作表导入 @fungi.computer/parakeet/composer-shell.css 并行
完成菜单样式表.
真正的Grove/Prints工作室证明是
pnpm --filter @fungi.computer/grove test:composer-parity。它要求两者
工作间( 0)GROVE_WORKBENCH_URL 编号 : PRINTS_WORKBENCH_URL)和检查平等
几何学,一个右尖端的Send键,两个主题中390px没有包接的控制.
COMPOSER_PARITY_SHOTS 可选择保存六个匹配的相邻图像.
核心概念
| 表面 | 它拥有的 |
|---|---|
Parakeet | 浏览器的对话,包括提供者和视图. |
ParakeetProvider 编号 : ParakeetView | 当主机需要在同一对话范围内的自定义控制时,单独组成. |
useTimeline() | 持久历史和可替换的活尾巴,有界限的历史呼喊和模型/使用演示. |
useComposer() | 草案、提交、待工、取消和重试控制. |
useStatus() | 被观察的工作和连接状态,包括目标控制. |
useMarkdown(content) | 解析自定义和终端渲染器的聊天 Markdown. |
两种组成形式都需要主机 QueryClientProvider。 。 。 . Parakeet
拿着 session 直接说 单独组成,通过 session 改为
ParakeetProvider 设置 ParakeetView 和习惯钩消费者 在它下面.
过 commands 和向视图展示道具,而不是提供者.
Parakeet 财务报告和审定财务报表 ParakeetView 共享这些可选演示文稿道具 :
| Prop | 合同 |
|---|---|
composerActionVariant | "primary" 或者说 "outline"。 。 。 . |
renderToolActions | 已完成动作的主机 ToolItem。 。 。 . |
renderAssistantAttachment | 接收已解决的原始回复文本. |
formatAssistantText | 更改显示的回复文本而不更改附件输入 . |
onLink | 接收文本 URL; 返回 true 以防止浏览器导航. |
empty | 替换空对讲内容. |
从 /headless 在终端。 那个条目
避免装入 DOM 演示文稿、 Caps 和 Sprite 关闭 。 根出口
同样的钩子 对于浏览器呼叫者。 他们分享了会场的 TanStack 查询
缓存。 衍生原子选择观察到的值而不是重复会话
事实 历史页面按会话地址共享主机缓存并幸存
提供者重新挂载到缓存到期 。 Page 保留了 4 个100 个消息
页面中,带边框返回光标的会话前仅读取 API.
跳转到最近取消未完成的历史
历史之窗;直播观察仍相隔.
工具调用在共享预测中分组. 浏览器和终端渲染器 接收相同的打入式摘要、错误首节并编辑 diff . 披露状态属于视图. 入球行显示承诺入球; 浪费它让当前被接受的工作运转。 闲聊状态确实如此 不是说目标完成了.
命令和错误
一个主机可以提供它的Whistle运行时间通过 commands。帕拉基特构建
该主机的斜线登记册,其内置和广告的扩展目录.
它拥有解析,完成,稳定的请求身份和交互状态.
浏览器和终端提供同样的问题、选择和通知.
/model 财务报告和审定财务报表 /thinking 使用交互路径.
ParakeetProvider 接受 onToast 暂时命令信息。 东道主
透过它现有的烤面包店主: 终端共享的烤面包
风景或树林 ui.showToast。 。 。 . ParakeetInteractions.toast 财务报告和审定财务报表
subscribeToasts 暴露出相同的渲染器中性接缝。 普通第一顺位
复声是沉默的,包括在对话完成后。 进展、问题和
交割在活动时仍保留在互动中;失败保留重试
或注意UI而不是作为信息过期.
之后 再试一次,最后的信息 或成功通知留在里面 交互是现有的结果行, 直到 Done/ 关闭, 没有额外的祝词 。 A 类 提供无完成通知的生产者不会得到捏造的结果.
账户命令是中立的。 东道主的账户所有人和政策 决定可用的登录方法。 演示文稿层没有获得 认证存储或发布命令授权.
排队时间行提供取消通过
useTimeline().cancelQueued(commandId)。行会立即消失,同时
现有会话所有者决定仅待决取消。 这从不
停止运行回合或恢复给作曲者的文本。 太迟或太晚
未经证实的反应产生警告,并恢复任何仍报告为
已队列; 接受的响应会通过已队列的快照隐藏到
车主的投影赶上了 只有一个排队的手势等待它的主人
一个时间,切换对话框会丢弃其演示文稿状态。 回顾
仍然是单独的恢复到组合的姿态.
作曲家通过请求身份来调和乐观的提示和所有者的事实. 立即提交草案,并增加一个已淡出的信息. 接受会恢复正常的强调;所有者排队的消息仍然会淡出. 若为 注册失败, 准确提交的文本返回给作曲者和主机 收到一个错误的祝词。 任何更新的草稿先留下,然后是空白行 和已恢复的文本; 接受永远不会清除更新的打字。 一个不确定 承认时保留其请求身份,而所有者解决。 一个接受的 解析确认已接受的命令或记录条目;仅确认 撤回恢复草案并允许以新的请求身份重试, 因为旧身份是永久的 重试失败或中断 持久工作还提交新的请求身份, 保存失败的提示 文本和图像货物,包括活页拆迁后的仅图像提示. 这个 不消耗更新的未经同意的草稿。 显示连接失败 失败; 重新连接无法证明未完成或重新提交 自动。 输入的命令错误仍然可见并可以重试 。 东道主 仍然负责会话运输、当前权限和操作员 诊断.
一个所有者接受的取出收据可以命名一个可运行的收录条目:
receipt.commandId === message.id 虽然 message.commandId === null。 。 。 .
该收据证实了持久的记录,而不是取消或模式接纳。 A 类
翻译主机在其持久的元数据中保留了原始作曲身份
并预测为 messages[].requestId 或者说 pending.prompts[].requestId; 其编号
内部录取的钥匙不是那个身份.
API 和实例
使用 生成 API 引用 财务报告和审定财务报表
出口。根拥有浏览器组件, /headless 拥有
共享的钩子, /slash 拥有命令语法,以及 /agent-head 拥有代理
出庭合同.
转写故事 显示已确定, 流出 和失败的答复. 工具组故事 显示 共同预测. 斜线等同测试 检查 共同互动合同. 无头表面试验 检查那个非浏览器 进口独立于 DOM 视图.
贡献和许可证
在最近的对话,命令或渲染测试中添加固定大小写. 从 仓库根 :
pnpm --dir packages/parakeet run test
pnpm --dir packages/parakeet run browser:contract
pnpm --dir packages/parakeet run docs
浏览器合同需要存储器配置的浏览器工具. 单位 检查不能取代这个证据。 Parakeet 持有麻省理工学院许可证;参见 自由主义。 。 。 .
类型脚本消费者依赖性
安装 @modelcontextprotocol/[email protected] 编译时与此软件包并列
其完整的公开声明。 共享提供者 SDK 导入这些类型
通过一个可选的同伴;包装的消费者明确供应. 这个可以
不需要供应商账户或提供商打电话.
包装的消费者准备状态
运行 pnpm run build, (中文(简体) ), pnpm run pack 财务报告和审定财务报表 pnpm run stranger 本包中.
保存的陌生人证明只安装了包裹 tarball 到新鲜npm
消费者,检查准确的运出文件,运行公共运行时间固定和
编译每个 JavaScript 入口, 严格节点Next 且没有库检查
跳过。 此资格不发布 npm 发布或推动仓库
分页.
见 自由主义 许可证和清单 仓库目标.