法拉利哈内斯
Falari 数据客户端 深搜索策略 (DSH):上传文件到 Falari 存储并下载回来,唯一的证书是Agent Key。 这个 相同的6个操作作为工具暴露于模型中,并作为工具暴露于用户 显示面板.
插件带有 Falari 标记 : icon.png 是提供的389×389出物,
(没有收成,没有透明度)
图像与其原WebP字节相同. 侧边栏绘制清晰的矢量艺术
>_ 活在20px时.
状态
| 阶段 | 范围 | 状态 |
|---|---|---|
| M0 导弹 | 站台、安装、面板/设置占位符 | 已完成——安装在 desktop 简介(2026-11-09) |
| M1级 | 代理密钥存储, falari_status 工具,设置页面 | 已完成(v.2.0) |
| M2级 | 引用、上传队列、上传面板, falari_quote 编号 : falari_upload 编号 : falari_task | 已完成(v0.3.0) |
| M3级 | 意向列表,下载/解密, falari_list 编号 : falari_download | 已完成(v. 4.0) |
| M4级 | 可编辑设置、单位测试、测试计划 | 已完成(v0.5.0); 测试网密钥前的现场接收 |
| M5型导弹 | 仓库布局、更改日志、许可证、清单检查 | 已完成(v0.5.0) |
活链验证仍然需要真正的测试网代理密钥:设置页面 每条路线/工具的路径 都包含在离线烟雾测试中 但什么都没有 此处已对测试网进行付费上传 .
全部设计在 文件/计划。 。 。 .
项目
- 开发者 : 平面图
- 网站: https://falari.xyz (英语)
- 软件包 :
@falari/harness
解决问题: DSH 无法启动
早先的一栋建筑将被封存的代理密钥写成额外的字段 api-key
证书记录. 证书店拒绝未知的字段并拒绝
启动 :
credentials-local: record "falari-harness/agent-key" in ~/.dsh/.credentials.yaml
has unknown field "v"
6.8.20 将信封保存在记录中 key 字段并迁移旧
启动时的记录。 如果 DSH 完全无法启动, 请将文件脱机修复 :
node scripts/repair-credentials.mjs --file ~/.dsh/.credentials.yaml
脚本只重写该记录, 首先支持文件, 并打印不 暗号.
安装( 开发)
打开 插件 — 添加 在DeepSeek Harness中将其指向这个目录,或者 从代理会话调用插件管理器工具 :
plugin_manager action=install_bundle target=/path/to/clients/harness
捆绑是作为本地链接安装的(link:...) (中文(简体) ). 用于发布构建
plugin_manager action=install_bundle target=@falari/[email protected]。主机代码更改需要
重新装入的插件行( 切换捆绑出/ 上, 或重新启动 DSH); 客户端代码
更改需要刷新页面.
存储时间可以是预设(永久失效連結/30d/90d/1y/5y/10y)或任何
按天数、月份或年份计算。 收费跟链子一样 RequiredFee数字 :
三十六年后的任何任期均需缴纳
永久价格而不是永远增长.
取消上传打开带有退款分解的确认对话框 (支出、注销率、扣付补偿、终止服务费、数额) 在签名前从链上读取.
状态读取为缓存: 主机的答案来自 <dataDir>/status-cache.json 财务报告和审定财务报表
刷新背景中的链条( 一个 15 s 窗口), 面板保留自己的
localStorage 复制后卡片会在第一个请求返回前制作 .
代理密钥已存储 在 PIN 下加密,从清晰的文字中选择:
从PIN中获取了AES-256-GCM密钥,解密后密钥只存在于记忆中,
和面板按要求或之后锁定 lockIdleMinutes 不活动
(默认60,预设或任何值从0到10080分). 插件行重装
在进程存在时保留解锁。 A 类
已持有平面键的配置文件被标记并重新封存.
Agent 密钥和存储默认在插件中配置, 绝不 全局设置对话框中:
- Falari 数据面板 — 设置标签 ——总是可用的,无论插件 页面使.
- 插件 — Falari 数据 - 捆绑的页面卡,或行 配置
控制,由
plugins.bundle.config编号 :plugins.row.config插槽 . 两者都可能在安装后使用浏览器刷新后出现.
配置
该行接受可选 config 块( 显示默认值) 。 将覆盖置入
配置补丁 :
- id: falari-harness
name: '@falari/harness'
config:
network: testnet # testnet | mainnet (mainnet is not live yet)
defaultPrivacy: public # public | private
defaultDuration: permanent # permanent | 30d | 90d | 1y | 5y | 10y
maxFileSizeBytes: 2147483648
allowUploadOutsideWorkspace: false
allowRemoteRoutes: false # keep the panel routes on loopback only
# gatewayUrl / retrievalUrl / explorerUrl override the network presets
# timeoutMs defaults to 60000
# dataDir defaults to <DSH_PROFILE_DIR>/falari-harness
代理密钥是 没有 配置 : 它住在 DSH 证书存储器中
记录 falari-harness/agent-key。 。 。 .
工具
| 工具 | 目的 |
|---|---|
falari_status | 关键状态、等级、津贴、余额、矿工refresh: true 绕过缓存) |
falari_quote | 上传价格( E)path 或者说 size_bytes)和检查预算 |
falari_upload | 队列工作空间文件; wait: true 最多两分钟 |
falari_task | 读取一个任务或最近列表 |
falari_list | 这个帐户的初衷是最新的 |
falari_download | 下载一个意图, 验证根, 私下解密 |
插件配置页面通过配置文件将这些值写回 配置编辑器,所以保存重新启动插件行.
代理上传仅限于会话工作目录,除非
allowUploadOutsideWorkspace 已启用。 用户在面板中选择的文件是
不受那个警卫的支配.
构建
主机将未出版的Falari SDK(@falari/agent)和
预编译软件包 lib/falari-sdk.cjs因此,安装捆绑不需要
他们的 npm 包 :
npm run build:sdk
拖出新车后运行此功能 sdk/sdk-agent-ts。 。 。 .
仓库
项目位于此目录中, 并作为 npm 软件包发布
@falari/harness; 周围的 Falari 检出只托管它构建的 SDK
和它跟随的文件。 项目之家: https://falari.xyz (英语)。 。 。 .
软件包名称 @falari/harness 是捆绑的身份 : package.json name, (中文(简体) ),
装入器行入 cordis.patch.yml 编辑 id 转至
window.__ModuleLoader__.load 必须保持平等,因为客户模块
扫描与装入器规格匹配已安装的显示名称.
package.json 出口 ., (中文(简体) ), ./client, (中文(简体) ), ./cordis.patch.yml, (中文(简体) ), ./package.json, (中文(简体) ),
./locale/*.json 财务报告和审定财务报表 ./icon,和船舶 index.js, (中文(简体) ), client.js, (中文(简体) ), lib/**,则
补丁, 地方, 图标, README, ChangGELOG 和 LICENSE. 其他的都一样
(单位:千美元)scripts/, (中文(简体) ), docs/)是只存储器. npm pack --dry-run 列出18个文件.
发布是将此目录推向新寄存器; 其它不包含 明显需要改变.
版式
clients/harness/
├── .gitignore
├── CHANGELOG.md # release notes per milestone
├── LICENSE # MIT, © 2026 falari_labs
├── README.md
├── package.json # dsh.bundle + dsh.client manifest, exports, files
├── cordis.patch.yml # inserts the falari-harness row
├── icon.png
├── index.js # Host entry: wiring
├── client.js # Web client half: panel, tabs, settings
├── lib/
│ ├── config.js # row config resolution + edit validation
│ ├── errors.js # shared error shape and mapping
│ ├── routes.js # /api/falari-harness/* (same-origin, loopback)
│ ├── sdk.js # loads the bundled SDK
│ ├── service.js # FalariDataService: key, quote, budget, uploads, downloads
│ ├── tools.js # six falari_* Agent tools
│ └── falari-sdk.cjs # generated by npm run build:sdk (committed on purpose)
├── scripts/
│ ├── build-sdk.sh # esbuild bundle of @falari/agent + precompiles
│ ├── unit-host.mjs # pure-helper unit tests
│ ├── smoke-host.mjs # HTTP route smoke tests against a patched SDK
│ └── smoke-client.mjs # client.js render smoke test in a VM
├── locale/{en,zh}.json # plugin metadata
└── docs/
├── plan.md # v0.1 design and milestone log
└── test-plan.md # automated, live and panel checks
测试
npm test # unit + Host routes + client render, all offline
| 套间 | 它会做什么 |
|---|---|
scripts/unit-host.mjs | 配置验证/ 默认、 名称消毒、 状态和错误映射 |
scripts/smoke-host.mjs | 补丁 SDK 客户端并驱动每个 HTTP 路由 : 状态、 密钥、 引文、 原始上传、 任务动作、 意图、 下载、 配置保存、 来源和回路保护 |
scripts/smoke-client.mjs | 负载 client.js 在 VM 中,服务器将三个插槽组件 |
83张支票今天通过。 手动和现场测试网台阶进入 文件/测试计划。 。 。 .
警卫
- 代理密钥是持有上传权限的无记名证书. 它只储存在
主机证书存储; 浏览器从未接收或坚持原始
far_...字符串, 没有路径返回它 . - 上传路由只接受同源请求; 跨源写入为 以403拒绝.
- 路由只回答回回转端口, 除非
allowRemoteRoutes启用,所以 绑定在较宽地址的收听器不能用于更改密钥或支付 上传. - 浏览器在插件数据目录下将流上传到 0600 临时文件 并一旦任务完成或被取消就删除; 超过24个的文件 启动时会扫描小时.
- 面板显示一个私有文件上传完成后的数据密钥, 因为 失去它使得密码无法恢复.
- 下载只写在配置内
downloadDir(默认)<dataDir>/downloads(a) 减少out_path逃避它将被拒绝 已存在的文件名增益a(1)后缀而不是被覆盖.