核准
一个持久的批准记录, 许多渲染器。 Mycelium拥有业务许可; 这个包拥有决定的生命周期 旁边。 中央和中央电视台 牡蛎宿主供应家用. 邦赛不是家庭分类账.
安装
npm install @fungi.computer/approvals @fungi.computer/watchdog
核准船舶的无害环境管理和类型脚本申报,从其起讫点开始。 这个 下面的例子使用Node.js 24的本地SQLite适配器,来自Watchdog. 你们的主人 拥有数据库、请求者身份、当前赠款和发送.
快开始
开始拟议写作而不执行 这个一次性的模拟实例
指纹 pending; 对真实请求使用持续、主机拥有的数据库.
import { DatabaseSync } from "node:sqlite";
import { fromNodeSqlite } from "@fungi.computer/watchdog/node-sqlite";
import { ApprovalLedger } from "@fungi.computer/approvals";
const database = new DatabaseSync(":memory:");
try {
const ledger = new ApprovalLedger({
owner: fromNodeSqlite(database),
home: { kind: "team", id: "example-team" },
now: Date.now,
});
const staged = await ledger.request({
requester: {
principalId: "agent:example",
agentId: "example-agent",
sessionId: "example-session",
displayName: "Example",
},
module: "notes",
operation: "saveNote",
access: "write",
reversibility: "reversible",
authorityFence: "grant-generation:1",
idempotencyKey: "turn:1/tool:1/operation:0",
inputJson: '{"text":"hello"}',
});
if (staged.kind !== "record") throw new Error(staged.reason);
console.log(staged.record.state); // "pending"
} finally {
database.close();
}
这里的身份和栅栏是显示主机测试值,而不是字段
从代理或浏览器获得信任。 重试时保留相同的等效键
同一个行动. request 记录和记录
自动批准决定而无需发送. submit 额外应用新程序
政策核准的请求通过当局重新核对而纳入.
实例
使用本地 SQLite 撰写的家例 。 包装
消费者 test/stranger/runtime.mjs 继续通过人类的答案,
应用和结果交接。 它看到一个发送 和一个发送过
连续成功复试;它不是真正的代理运输证明.
为了整合这些步骤,通过 answer 一个刚解决的人类成员和
记录的预期修订。 供应 apply 带有 ApprovalApplyHost数字 :
recheck 阅读请求者的当前权限和栅栏 dispatch
呼叫您现有的操作门。 批准不会授权缺失.
终于, handoff 通过普通消息 API 发送结果
记录它的命令收据。 使用通知的稳定 deliveryId 为接收者服务
相去相减.
合同模式
需要审批的写入返回一个待批准的输入工具结果 随即记录和描述 它不会运行,也不会运行 暂停代理转弯。 经批准后,分类账长期报销,重新核对 准确的栅栏和请求者目前的 Mycelium 权威,发送现有的 最多一次主机操作,并存储应用/拒绝/结果 未知. 已推迟 结果使用现有的普通代理新消息路径。 自动使用 在同一记录中连入。 没有MuleToole.resume,监视狗公园/觉醒,存储 工具暂停,或不安全的执行重放属于此模式.
加入成员的能力显示批准.list/get/answer/setAutoApprove. 演员和现场赠款来自东道方,从未来自请求机构。 读数是 限定范围并预测当前答案/政策权利。 回答绝不允许 请求者对操作的授权 .
自动操作匹配模块(或所有模块)和访问类写/外部, 一个特工可以选择 包括不可逆转的行动,仍记录 不得推翻被撤销的权力。 本地和独家牡蛎所有者 默认 ON; 团队默认关闭 。 只有牡蛎老板在牡蛎上回答. 24小时后等待核准;业主/管理人员配置 期限可以改变。 过期从不批准.
当前执行边界
AuthorityLedger使用由主机提供的本地SQLite拥有者. 它开始稳定 预定效果,在散开收成前快取元数据,私藏 单独输入/输出,按序排列答复和索赔,并输入记录 在不盲目重新发送的情况下完成或未知结果。 一个已知的主机 拒绝不同于App JSON。 转帐孤儿索赔 限定批次; 本地主机必须只使用后缀, 不得在直播时使用 发送.
分类账.capable ({ 行为者,决定}) 约束四种公用方法. 东道主 每一次通话都必须提供新的成员/行动事实和实际持久 应用/在决定后手动; 没有成功形状的默认钩子. 所读列表最多可包含100个记录,并带有一个接续光标. 请求机构无法选择其演员 。 家庭坚持政策 代理/模块/访问家庭.
被推迟的、与会期有关的请求也产生结果交付意图 在请求交易中。 最多100个本地家庭、, 终止通知(包括截止日期已过的请求)。 发送 带有一个稳定的收件人- 侧请求身份并存储真实会话 命令收据。 丢失的确认重试信件身份,而不是 效果; 内置政策批准不会产生额外的代理回合 。 私人输入字节 从来不通知货物。 东道主拥有当前接收者的许可和安全性 普通信息介绍结果.
消费者测试使用 公共Shiitake 记忆主机与借来的本地 SQLite 拥有者, 会话后丢失确认 。 发送接受, 重新打开两者 数据库和所有者,并观察到一个带有相同命令的新消息转折 身份证明 这是真实的会话/存储组件证明,不是部署的家, 运输损失演习或全机安全法.
东道方一体化仍在进行中:本土团队/牡蛎组成, 普通的新消息交接和可配置的过期尚未接通。 这个 当前存储使用24小时默认值。 存储测试和页面/RPC消费者 定律并不确立这些生产行为或十项全主法.
接收政策已修改
运行时间调用分类账. selectAutoApprove ({ agentId, module, access}) 读取 一个有效的布尔。 这是相同的选择请求/提交用途: 持续 代理规则胜出家庭规则,然后一个模块规则胜出所有模块. 设置 AutoApprove 在批准 规则中坚持单个启用字段; 读取 既不是行动,也不是行动。 真正的政策价值不能证明 现有赠款, 权威围栏, 或遏制.
本地是一个有默认 On 的明细分类账之家, 如 Oyster; 团队默认
关闭。 本地适配器供应其本地SQLite所有者. 内装物由
地方沙盒整合,不读此政策。 沙盒出逃设定
requireHumanApproval,所以一般自动处理 不能拓宽一个沙箱
命令。 在本地主机验证了受保护的直接- argv 前缀规则后, 它
套装 prefixPolicyApproved 单项申请;分类账记录一项政策
并且通过普通当局的重新检查进行内部检查。 这个
分类账不解析 shell 文本, 存储前缀, 或是让 Agent 管理它们 .
能力随附的视觉证据
核准记录可选地附有证据:最多4个描述符, 每一个都带有种类的文物,参考:sha256:<64小写六进制>,mediaType图像/png和 字节(整数 1 到 5 MiB). 认可证据计划是保持的效果 斯克马解码器. 这些是防御性的显示天花板,而不是执行权. 参考文献为内容地址,不是URL或发行的不透明文物:名.
只有提交能力才能提供 分类账. sumit( request, host). 仅主机发送 API 请求( 请求, ), )使用同样的解码器. 请求和工具参数无益 一个证据领域。 从不向主机适配器传播代理/工具输入. 元数据 在散开收成之前被快照,并坚持记录; 获取/列出 批准View携带. 即将完成的工具结果保持不变.
图像内容是不信任的只显示数据,即使捕获是由 一个能力。 绝对不要用OCR输入指令 输入为代理文本或处理 作为权威。 此软件包只存储元数据: 它不抓取, 抓取 或验证 PNG 字节。 生产者/仓库适配器和显示器本身 定界文物读取、文摘/长度验证和维护图像 解码. 截图、工作流程结果卡、Grove显示和TUI 交互式打开截图链接是单独所有者的工作,不是由 这个合同。 专才重试保留其原始证据:替代, 在同一效果下添加或删除描述符 身份冲突,绝不默默地改变所审查的图像。 关闭和空 两者都意味着没有证据.