@dsh-enhanced/plugin-control-plane 0.1.65 → 0.1.67
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +123 -7
- package/lib/attestation.d.ts.map +1 -1
- package/lib/attestation.js +33 -1
- package/lib/attestation.js.map +1 -1
- package/lib/creation-capability-empty-handoff.d.ts +57 -0
- package/lib/creation-capability-empty-handoff.d.ts.map +1 -0
- package/lib/creation-capability-empty-handoff.js +147 -0
- package/lib/creation-capability-empty-handoff.js.map +1 -0
- package/lib/creation-capability-execution.d.ts +13 -0
- package/lib/creation-capability-execution.d.ts.map +1 -0
- package/lib/creation-capability-execution.js +112 -0
- package/lib/creation-capability-execution.js.map +1 -0
- package/lib/creation-capability-feedback.d.ts +58 -1
- package/lib/creation-capability-feedback.d.ts.map +1 -1
- package/lib/creation-capability-feedback.js +532 -50
- package/lib/creation-capability-feedback.js.map +1 -1
- package/lib/creation-capability-handoff-common.d.ts +60 -0
- package/lib/creation-capability-handoff-common.d.ts.map +1 -0
- package/lib/creation-capability-handoff-common.js +195 -0
- package/lib/creation-capability-handoff-common.js.map +1 -0
- package/lib/creation-capability-journal.d.ts +19 -0
- package/lib/creation-capability-journal.d.ts.map +1 -1
- package/lib/creation-capability-journal.js +62 -21
- package/lib/creation-capability-journal.js.map +1 -1
- package/lib/creation-capability-runtime.d.ts +65 -1
- package/lib/creation-capability-runtime.d.ts.map +1 -1
- package/lib/creation-capability-runtime.js +178 -18
- package/lib/creation-capability-runtime.js.map +1 -1
- package/lib/creation-capability-sealed-audit.d.ts +19 -0
- package/lib/creation-capability-sealed-audit.d.ts.map +1 -0
- package/lib/creation-capability-sealed-audit.js +114 -0
- package/lib/creation-capability-sealed-audit.js.map +1 -0
- package/lib/creation-capability-sealed-handoff.d.ts +160 -0
- package/lib/creation-capability-sealed-handoff.d.ts.map +1 -0
- package/lib/creation-capability-sealed-handoff.js +695 -0
- package/lib/creation-capability-sealed-handoff.js.map +1 -0
- package/lib/creation-capability-trend-snapshot.d.ts +70 -0
- package/lib/creation-capability-trend-snapshot.d.ts.map +1 -0
- package/lib/creation-capability-trend-snapshot.js +117 -0
- package/lib/creation-capability-trend-snapshot.js.map +1 -0
- package/lib/creation-capability-types.d.ts +254 -4
- package/lib/creation-capability-types.d.ts.map +1 -1
- package/lib/in-process-reload.d.ts +191 -0
- package/lib/in-process-reload.d.ts.map +1 -0
- package/lib/in-process-reload.js +284 -0
- package/lib/in-process-reload.js.map +1 -0
- package/lib/index.d.ts +15 -4
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +10 -2
- package/lib/index.js.map +1 -1
- package/lib/linux-source-build.d.ts +16 -0
- package/lib/linux-source-build.d.ts.map +1 -0
- package/lib/linux-source-build.js +268 -0
- package/lib/linux-source-build.js.map +1 -0
- package/lib/linux-source-preflight.d.ts +31 -0
- package/lib/linux-source-preflight.d.ts.map +1 -0
- package/lib/linux-source-preflight.js +101 -0
- package/lib/linux-source-preflight.js.map +1 -0
- package/lib/live-qualification-runtime.d.ts +6 -2
- package/lib/live-qualification-runtime.d.ts.map +1 -1
- package/lib/live-qualification-runtime.js +65 -11
- package/lib/live-qualification-runtime.js.map +1 -1
- package/lib/owner-task-gap-types.d.ts +23 -0
- package/lib/owner-task-gap-types.d.ts.map +1 -1
- package/lib/owner-task-gaps.d.ts +4 -0
- package/lib/owner-task-gaps.d.ts.map +1 -1
- package/lib/owner-task-gaps.js +35 -1
- package/lib/owner-task-gaps.js.map +1 -1
- package/lib/revision-capability-journal.d.ts +103 -0
- package/lib/revision-capability-journal.d.ts.map +1 -0
- package/lib/revision-capability-journal.js +872 -0
- package/lib/revision-capability-journal.js.map +1 -0
- package/lib/revision-capability-runtime.d.ts +74 -0
- package/lib/revision-capability-runtime.d.ts.map +1 -0
- package/lib/revision-capability-runtime.js +562 -0
- package/lib/revision-capability-runtime.js.map +1 -0
- package/lib/revision-capability-types.d.ts +289 -0
- package/lib/revision-capability-types.d.ts.map +1 -0
- package/lib/revision-capability-types.js +2 -0
- package/lib/revision-capability-types.js.map +1 -0
- package/lib/scanner-owner-runtime.d.ts +34 -0
- package/lib/scanner-owner-runtime.d.ts.map +1 -0
- package/lib/scanner-owner-runtime.js +99 -0
- package/lib/scanner-owner-runtime.js.map +1 -0
- package/lib/service.d.ts +107 -6
- package/lib/service.d.ts.map +1 -1
- package/lib/service.js +643 -47
- package/lib/service.js.map +1 -1
- package/lib/source-approval-authority.d.ts.map +1 -1
- package/lib/source-approval-authority.js +25 -7
- package/lib/source-approval-authority.js.map +1 -1
- package/lib/source-build-diagnostics.d.ts +31 -0
- package/lib/source-build-diagnostics.d.ts.map +1 -0
- package/lib/source-build-diagnostics.js +110 -0
- package/lib/source-build-diagnostics.js.map +1 -0
- package/lib/source-build.d.ts +25 -2
- package/lib/source-build.d.ts.map +1 -1
- package/lib/source-build.js +145 -26
- package/lib/source-build.js.map +1 -1
- package/lib/source-creation.d.ts +6 -2
- package/lib/source-creation.d.ts.map +1 -1
- package/lib/source-creation.js +11 -2
- package/lib/source-creation.js.map +1 -1
- package/lib/source-job-types.d.ts +3 -1
- package/lib/source-job-types.d.ts.map +1 -1
- package/lib/source-jobs.d.ts +33 -1
- package/lib/source-jobs.d.ts.map +1 -1
- package/lib/source-jobs.js +141 -29
- package/lib/source-jobs.js.map +1 -1
- package/lib/source-workspace.d.ts.map +1 -1
- package/lib/source-workspace.js +0 -1
- package/lib/source-workspace.js.map +1 -1
- package/lib/sqlite.d.ts +1 -1
- package/lib/sqlite.d.ts.map +1 -1
- package/lib/sqlite.js +36 -1
- package/lib/sqlite.js.map +1 -1
- package/lib/store.d.ts +22 -2
- package/lib/store.d.ts.map +1 -1
- package/lib/store.js +477 -177
- package/lib/store.js.map +1 -1
- package/lib/systemd-host-authority.d.ts.map +1 -1
- package/lib/systemd-host-authority.js +4 -0
- package/lib/systemd-host-authority.js.map +1 -1
- package/lib/task-observation-runtime.d.ts +6 -2
- package/lib/task-observation-runtime.d.ts.map +1 -1
- package/lib/task-observation-runtime.js +69 -11
- package/lib/task-observation-runtime.js.map +1 -1
- package/lib/types.d.ts +47 -1
- package/lib/types.d.ts.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/work-item-creation-contract.d.ts +17 -0
- package/lib/work-item-creation-contract.d.ts.map +1 -0
- package/lib/work-item-creation-contract.js +61 -0
- package/lib/work-item-creation-contract.js.map +1 -0
- package/package.json +10 -10
package/README.md
CHANGED
|
@@ -166,6 +166,19 @@ phase operation 和派发 claim 在子进程启动前持久化。外部执行期
|
|
|
166
166
|
|
|
167
167
|
任一有效签名 receipt 返回 `outcome: failed` 时,计划进入 fenced `rollback-pending` 并自动恢复原 profile;一旦进入过 `awaiting-reload`,恢复文件后仍保持 pending,必须由绑定原始 baseline 的 `rollback` 签名回执证明旧 Host 就绪或原本不存在的 profile 已停服,才能结束回退。只有七个部署 phase 全部通过、保存已安装 profile 的核心文件摘要并完成终态 CAS 后才是 `activated`;上一版 backup 保留供使用后回退。格式错误、错误 key/digest/phase/evidence、过期 receipt 或未配置 attestor 都保持当前 awaiting 状态。
|
|
168
168
|
|
|
169
|
+
## 同进程重载切片(config/patch)
|
|
170
|
+
|
|
171
|
+
宿主更新插件当前只能走进程重启。此切片在既有 `reload` phase 下新增 requirement/evidence kind `in-process-reload`,把“同一 Host 进程内重读 profile 的 Cordis Include 配置”作为一条受证明的路径;不新增 phase、不改 ledger schema,输入缺省时旧行为逐字节不变。
|
|
172
|
+
|
|
173
|
+
范围被刻意收窄:只重载 config/patch。pinned Loader 对 ESM import 不做 cache-busting,变更后的 `lib/` 模块代码无法在进程内重新导入,因此 artifact 摘要变化仍必须走既有进程重启 `reload` 合同。artifact 摘要必须与当前挂载一致,否则拒绝。
|
|
174
|
+
|
|
175
|
+
- 进入:plan 必须处于 `awaiting-reload`,activation id/fence、plan id/digest、request digest 全部匹配;`artifactDigest`/`patchDigest` 均为 64 位小写 hex;目标不得 `changesProcessSubtree`,不得持有未被证明的进程/cgroup 权限。
|
|
176
|
+
- 应用:Host **进程**代次不变(`currentHostGeneration === previousHostGeneration`,且等于 request 绑定代次);adapter 自己维护单调 `inProcessGeneration`(从 1 开始,每次完成的挂载尝试 +1,探针失败和 rollback 也计入)。唯一成功条件是真实探针:profile 文件摘要变化、同一 Fiber 原地重启(uid 不变、store 重建、状态 active)、已加载模块实例未被替换、pid/InvocationID 未变、失败数为 0。任何探测失败、无法解析挂载、超时、`reloaded:false` 都只落入 `rollback-pending`,不声称成功。
|
|
177
|
+
- 回执隔离:`in-process-reload` 证据永不满足进程重启 `{kind:'reload'}` 的通过规则(后者仍须 Host generation 推进)。`systemd-host-authority` 明确拒绝该 kind,不会重启 unit 或伪造见证。
|
|
178
|
+
- 拒绝:状态/fence/plan 不匹配、digest 不匹配、artifact 变化、越界 scope 都返回各自独立的 typed refusal(`InProcessReloadRefusal.reason`),不会触碰 Include 树。
|
|
179
|
+
- 永不同进程热重载:control plane 自身、assistant-delivery、assistant-isolation、lark-channel、会改变依赖子树的插件,以及持有没有被证明的进程/cgroup 权限的插件。
|
|
180
|
+
- 未接线:当前没有 store dispatch 构造该 kind 的 requirement,也没有 CLI `reload` verb、systemd unit 变更或自动调用;Host 侧 adapter 工厂未被 `apply()` 注册,默认行为与 `--dump-config` 保持字节不变。adapter 见 [assistant-delivery 的同进程重载 adapter](../assistant-delivery/README.md#同进程重载-adapter未接线)。
|
|
181
|
+
|
|
169
182
|
## 人工 Host attestation
|
|
170
183
|
|
|
171
184
|
未配置可执行 attestor,或部署需要人工控制时,先生成同一个 durable request:
|
|
@@ -198,9 +211,11 @@ schema 17 在成功启用前保存 `package.json`、`pnpm-lock.yaml`、`cordis.p
|
|
|
198
211
|
|
|
199
212
|
## 源码能力 lane 和边界
|
|
200
213
|
|
|
214
|
+
公开 `validateSourceBuildConfig` 只验证构建配置组件;完整部署仍须通过 `normalizeControlPlaneConfig`,Linux repository 后端必须同时配置持久 `sourceJobs`。Linux 的可选 `stateSeal: { path, sha256 }` 固定已初始化 runner 账本的外部 seal,并由运行时在写入前核验;它不会在配置校验期间初始化数据库。Docker/macOS 配置不接受此字段。
|
|
215
|
+
|
|
201
216
|
`source-plan` / `scaffold` 只在 owner 审批的 linked、clean worktree 和固定 generator digest 上生成插件并运行 `pnpm check`。local checks 使用临时 Git index 对 exact scope 计算 staged tree/patch digest,不污染工作树的真实 index。owner 必须在 checks 之后为 exact source digests、scope 和 release policy 签发独立 authorization,随后才能执行 `release-start`。
|
|
202
217
|
|
|
203
|
-
`prepareModifySourcePlan` 是另一条待审批修改路径:它只接受现有非保护插件树内的有界文件集,并用临时 Git index 生成精确 tree
|
|
218
|
+
`prepareModifySourcePlan` 是另一条待审批修改路径:它只接受现有非保护插件树内的有界文件集,并用临时 Git index 生成精确 tree。默认 Docker 后端以 `git archive` stdin 传入 owner 配置的镜像;显式 Linux 原生后端见下文。容器没有 Host bind mount、网络、特权或调用者环境,使用只读根、非 root UID、`cap-drop=ALL`、`no-new-privileges`、固定 CPU/内存/PID/tmpfs 限制和离线 `pnpm install --ignore-scripts`、`pnpm check`、`pnpm pack`。镜像必须由 registry manifest digest 或本地 image content ID 固定,并预热离线 pnpm store。控制面在持久化前重算 tree/patch digest;任意漂移、取消、超时或构建失败都会删除 worktree 而不创建计划。`.git`、`.gitattributes` 与 `.gitmodules` 不能通过该路径修改。
|
|
204
219
|
|
|
205
220
|
`inspectSource` 只从当前 `HEAD` 的 Git objects 读取非保护插件的已跟踪普通文本文件;它不读取工作树。调用者可先请求空 `paths` 获得有界 manifest,再将返回的 `baseCommit` 用作读取和 `prepareModifySourcePlan.expectedBaseCommit` 的精确绑定。HEAD 已移动、二进制/生成/隐藏路径、symlink、submodule 或越界路径都会被拒绝。清单最多 1024 条,内容最多 64 个文件、单文件 64 KiB、合计 256 KiB;返回真实 blob 大小并支持普通可执行文本文件。整个读取请求从服务入口起受 15 秒截止时间控制;取消会终止正在运行的 Git 子进程,异步权限检查的迟到结果不再生效,Fiber 卸载等待请求收尾。
|
|
206
221
|
|
|
@@ -242,7 +257,25 @@ Host 可在调用源码检查时单独请求 `capturePack`,从同一次已核
|
|
|
242
257
|
|
|
243
258
|
普通 owner 失败触发的持久创建任务会自动捕获包,并在同一 SQLite 事务中保存字节、pending 计划和任务终态;旧计划与手工来源保持兼容,不因此获得验收资格。schema 30 的私有 BLOB 账本按 SHA-256 去重,限制 256 件、总计 128 MiB,读写均核对真实字节;额度耗尽拒绝提交,不丢弃在用制品。Host-only `inspectPreparedCreation(planId)` 在当前 owner 与 canonical writer fence 内返回绑定的计划、持久任务、真实 Delivery 来源和包;过期、纠正、换 owner、缺包或损坏均拒绝,不向模型状态工具返回正文。现有 Host/CLI 过期 worktree 维护在完成清理后回收 orphan 或仅被已过期计划引用的包;计划与摘要历史保留。这只提供独立观察的交接,创建计划仍不能走旧修改审批、发布或采用;独立验收与有限工具采用另见下文。
|
|
244
259
|
|
|
245
|
-
###
|
|
260
|
+
### Linux 原生完整源码准备
|
|
261
|
+
|
|
262
|
+
显式配置 `sourceBuild.backend: linux-native` 使用 `assistant-isolation` 的固定工具链、namespace/seccomp 与独立 worker/keeper cgroup,不调用 Docker。必须同时配置持久 `sourceJobs`;构建器与持久任务格式支持修改、创建及修订,并保留原有 owner、scope、基线、版本策略和次数预算。修改准备、创建准备、已有工具的修订 v2 及配对回归均已接通;修改计划的源码审批、发布与源码发布采用在同一 linux-native 边界接通(见下节)。运行时需要已经验证的 cgroup v1 委派;Linux 全新安装默认使用这条原生链路,重复安装读取既有后端与回执,不把重跑安装当作迁移。已有 owner 的升级与迁移须遵守各自独立合同和验收边界。
|
|
263
|
+
|
|
264
|
+
原生配置固定 `runtime`、`cgroupRoots`、私有 `stateRoot`、`authorityDigest`、`expiresAt`、`maxRuns` 和 `maxTotalDurationMs`。另需明确 `timeoutMs`、`outputBytes`、`memoryMiB`、`cpus`、`pidsLimit`、`workspaceMiB`、`temporaryMiB`、`workspaceInodes` 与 `temporaryInodes`;最大允许 30 分钟、16 GiB 内存、16 CPU、1024 PID、8 GiB workspace 和 4 GiB 临时目录。每次请求取调用方与配置 timeout 的较小值,不能扩大授权。
|
|
265
|
+
|
|
266
|
+
完整系统工具环境可同时配置 `userNamespace` 与 `systemSnapshot`,选择 repository 执行合同 schema 3。前者绑定当前 Host owner、系统已分配的 subordinate UID/GID 和映射 helper 摘要;后者固定只读系统工具及库的内容与目录身份。运行时、快照和私有状态目录必须互不重叠,不能只提供其中一个字段。Lark 安装库的 `prepareLinuxRsiRepositoryRuntime` 在独立目录准备该环境及官方 Node 附带的 npm/npx,保留原 runtime 和源码回执;Linux 全新安装的默认原生流程已调用该准备入口,重复安装则读取、核验既有回执。
|
|
267
|
+
|
|
268
|
+
完整检查仍执行精确归档复核、全新 `pnpm install --offline --frozen-lockfile --ignore-scripts`、根 `pnpm check`、输入复核和包内容验证。固定的 Node、原生 pnpm、store/cache 来自只读 runtime;缓存复制到有界 workspace,pnpm 11 使用明确的 `pnpm_config_store_dir`。两遍归档必须匹配长度及 SHA-256,最多 64 MiB;存在有效 `export-subst` 的输入拒绝归档。Git 索引准备与归档子进程受同一取消信号控制。
|
|
269
|
+
|
|
270
|
+
成功结果使用独立 schema 3 `linux-native-repository-v1` evidence,绑定工具链、执行合同、构建脚本、归档、私有收据及包摘要。最多 32 MiB 的二进制包经独立通道返回,只有执行成功、资源消失和内容复核都通过后才能保存计划。重复 source-job key 不重派命令;未知结果不改为成功,也不退还已用预算。Cordis 卸载先等待源码任务关闭,再关闭对应 runner。
|
|
271
|
+
|
|
272
|
+
本次调用能证明尚未启动、且 Host 工作树和相关子进程已清理的失败,会自动结束为 `failed`,不再永久等待不存在的执行收据。证明绑定原任务 claim、运行代次及执行器;预算或存储准入拒绝还要求确认数据库回滚成功。最终状态写入前才消费证明,清理期间的执行器、数据库或同 key 调用变化会使其失效。历史缺失记录、工作树取得失败及无法证明辅助清理的异常仍为 `unknown`;该路径不退款、不重派,也不把缺少记录当作资源已消失。
|
|
273
|
+
|
|
274
|
+
Linux 创建准备可接通独立 `creationVerifications`,必须同时配置双 UID 的 `userNamespace` 与 `systemSnapshot`。Host 私有 `inspectPreparedCreationLinuxBuild` 只读原任务的成功收据、真实包和资源消失证明,并核对当前 owner、信任配置、固定运行时与完整构建 evidence;缺证、未知结果或漂移均拒绝,不重派构建。v3 证书在写入及读回时再次绑定 schema 3 构建证据、基底和不可变计划,不能用旧 Docker/macOS 证书替代。普通 schema 2 原生准备与历史读取保持兼容,但不能据此取得新的 v3 签名。
|
|
275
|
+
|
|
276
|
+
Linux 创建证书可接下述有限动态采用,构建和采用后端必须一致。linux-native 边界现已接通对已有插件的修改链:修订 v2 与配对回归 v2,以及修改计划的源码审批、发布与源码发布采用均消费同一份 schema 3 仓库准备 evidence,不再要求任何 Docker 命令证据;schema 2 macOS 单进程证据永远不能支撑全仓修改。无 Docker 全新安装默认链路及 pre-owner 基础资源迁移已接通;完整活 Home 的 Docker→native 升级仍未验收,不能由 pre-owner 迁移证据替代,进程内代码热加载也不在此链路内;配置后端不支持的组合(如 macOS 全仓修改、linux-native 缺持久 sourceJobs 或双 UID、跨采用链缺上游环节)仍会明确拒绝启动。动态工具采用不改变源码计划的 `pending-approval`,不能据此替换需要完整自迭代链的生产部署。
|
|
277
|
+
|
|
278
|
+
### 持久源码检查任务(Docker 可选,Linux 原生必需)
|
|
246
279
|
|
|
247
280
|
Growth Driver 设置 `pluginSourceProposals.preparationMode: durable` 后,`plugin_source_prepare` 只提交任务,`plugin_source_job_status` 回读当前 owner 的状态。控制面还必须配置独立于模型回合的有限 Host 授权:
|
|
248
281
|
|
|
@@ -260,7 +293,7 @@ sourceJobs:
|
|
|
260
293
|
budgetAmount: 1
|
|
261
294
|
```
|
|
262
295
|
|
|
263
|
-
还需安装兼容的 `assistant-delivery` 和 `assistant-automations` Host peers;后者显式开启现有 scheduler,Policy 允许该 scope 下的 `plugin-control-plane-source` reconcile 及对应后台任务 execute,并配置 `source-check-runs` 的 `automation-runs` 预算。此预算计源码检查和后续恢复轮次,不代表模型 token/费用预算;希望所有作业共享额度时用 Policy 的 `global` 或 `workspace` scope,`subject` 按 automation 分开计费。缺少 peer 或授权时不执行。`sourceBuild`
|
|
296
|
+
还需安装兼容的 `assistant-delivery` 和 `assistant-automations` Host peers;后者显式开启现有 scheduler,Policy 允许该 scope 下的 `plugin-control-plane-source` reconcile 及对应后台任务 execute,并配置 `source-check-runs` 的 `automation-runs` 预算。此预算计源码检查和后续恢复轮次,不代表模型 token/费用预算;希望所有作业共享额度时用 Policy 的 `global` 或 `workspace` scope,`subject` 按 automation 分开计费。缺少 peer 或授权时不执行。`sourceBuild` 决定镜像或原生运行时及检查上限,模型不能改写队列权限、owner、路径或构建限制。
|
|
264
297
|
|
|
265
298
|
任务先冻结完整 Delivery v2 回执、trust 摘要、gap revision/digest、read base、文件内容及构建配置,再以 **paused → 绑定规范化 definition hash → active** 注册到 Automations 的一次性 Host executor。源码只存控制面私有 SQLite;Automation definition 和模型状态投影不包含文件内容。相同 authority 的期限、配置和累计提交上限不可重置;同 key 不同内容拒绝。全账本同时最多一个 `queued/running/unknown` 任务。
|
|
266
299
|
|
|
@@ -361,7 +394,9 @@ Host 从当前受信任基线生成同名 scaffold,将父归档的候选文件
|
|
|
361
394
|
|
|
362
395
|
同一 `revision.id` 的累计额度独立保存,失败/unknown 不返还,幂等请求不重复扣取;同时消费既有 `maxSubmissions` 和 Policy 预算。成功构建产生 `prepared-revise`。原生续跑仅调用独立修订验收;新证书以专用签名域绑定父证书、制品、签名归档与源码摘要及新任务/model/run。claimed unknown 不自动重验;验证结果与精确 staged 源码在同一事务落账。
|
|
363
396
|
|
|
364
|
-
|
|
397
|
+
Linux 修订的原生自动化等待窗口覆盖构建、独立修订验收和可选父行为回归;两项验收分别预留最多 30 分钟。执行及续办仍受原任务/授权期限和各阶段预算约束,不延长已授权期限、不重派 unknown。历史 Docker/macOS 自动化定义保持原样。
|
|
398
|
+
|
|
399
|
+
Host-only `inspectCreatedCapabilityRevisionCandidate(planId)` 验签并核对当前 owner,可在来源更正/撤回、授权和证书到期、制品/worktree 回收及 Host 冷启动后读取历史候选。该候选没有执行回执,不注册工具、不替换父版本、不扩大或续期旧创建/采用额度;配置下节的 `revisionCapabilities` 后,修复完成的计划会在独立验收(及配置的回归门)之后自动替换稳定入口,否则仍停在候选,须另有有限授权和父版本回归验证。旧配置不会自动获得修订能力,owner 安装器目前不生成这一授权。
|
|
365
400
|
|
|
366
401
|
### 修订候选的独立父行为回归门
|
|
367
402
|
|
|
@@ -371,6 +406,48 @@ Host-only `inspectCreatedCapabilityRevisionCandidate(planId)` 验签并核对当
|
|
|
371
406
|
|
|
372
407
|
Host-only `inspectPreparedRevisionRegression` 提供精确父/候选不可变制品;`withPreparedRevisionRegressionFence` 核对当前新任务、model/run、父归档、候选验收、源码与回归引用后同步落账。主账本 schema 34 的 `source_revision_regressions` 独立保存结果,冷启动不重派 settled/claimed 操作;旧计划和额度不改写。`inspectVerifiedRevisionRegression` 只在新窗口与当前来源有效时返回签名证书。成功仍为 `pending-approval`,没有工具、采用收据或版本切换;稳定入口切换与回退必须另外获得有限授权。配置和私有用例读取细节见 [Verifier](../assistant-verifier/README.md)。
|
|
373
408
|
|
|
409
|
+
主账本在入库和历史回读时独立核对 Linux 修订证书的构建运行时及完整准备证据摘要;回归证书须绑定精确候选证书和同族父证书,并匹配双方共享观察器的边界、运行时与准备回执。历史回读只核对保留的不可变元数据,不重建产物、不要求旧授权仍有效,也不授予新的执行权限。
|
|
410
|
+
|
|
411
|
+
### 修订采用的稳定入口替换与精确父版本回退
|
|
412
|
+
|
|
413
|
+
已动态采用的稳定工具入口可以被独立验收的修订版本替换,同时保留精确父版本回退。该路径默认关闭:未配置 `revisionCapabilities` 时,修订验收与回归门之后的计划仍停在 `pending-approval`,旧计划、旧配置和 `control.sqlite` 行为完全不变。启用须同时具备既有 `creationCapabilities`、`revisionVerifications` 和 `sourceJobs.revision`,且采用后端与创建采用 runner 一致:
|
|
414
|
+
|
|
415
|
+
```yaml
|
|
416
|
+
revisionCapabilities:
|
|
417
|
+
authorityId: owner-revision-adoption-1
|
|
418
|
+
keyId: owner-revision-adoption-key
|
|
419
|
+
keyPath: /private/owner/revision-adoption.pem
|
|
420
|
+
owner:
|
|
421
|
+
authorityId: configured-delivery-owner-route
|
|
422
|
+
authorityHash: <delivery-route-sha256>
|
|
423
|
+
principalId: configured-principal
|
|
424
|
+
principalRecordId: <delivery-principal-record>
|
|
425
|
+
principalVersion: 1
|
|
426
|
+
workspace: /absolute/owner/workspace
|
|
427
|
+
agentPreset: primary
|
|
428
|
+
namePrefix: owner-tool- # 须与 creationCapabilities.namePrefix、sourceJobs.revision.namePrefix 相同
|
|
429
|
+
expiresAt: 1800000000000 # 不得晚于 creationCapabilities.expiresAt
|
|
430
|
+
maxAdoptions: 2
|
|
431
|
+
maxInputBytes: 4096
|
|
432
|
+
maxCallRecords: 60
|
|
433
|
+
rollback: # 独立 host-only 回退授权,期限与次数单独计算
|
|
434
|
+
authorityId: owner-revision-rollback-1
|
|
435
|
+
expiresAt: 1800000000000
|
|
436
|
+
maxRollbacks: 1
|
|
437
|
+
retention: # 可选;缺省按验收窗口截止
|
|
438
|
+
maximumLifetimeMs: 2592000000
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
采用、回退、修订验收和创建采用是四份互异授权:回退 `authorityId`、采用 `authorityId`/`keyId` 及 Ed25519 key material 必须分别不同于 `revisionVerifications` 与 `creationCapabilities`;owner 七个稳定字段和 namePrefix 须与创建采用一致。旧配置不自动获得该能力,安装器/预设不生成密钥,只报未配置。
|
|
442
|
+
|
|
443
|
+
原生 SourceJobs 在 `prepared-revise` 续跑中于独立修订验收(以及配置回归时的回归门)都通过后自动采用:先在独立账本 `statePath/revision-adoptions.sqlite` 持久 claim(幂等、先于任何外部动作),再复核当前 owner、精确修订来源与父采用回执;签发专用签名域的回执,绑定父采用回执摘要、父证书与制品、候选制品、新任务/model/run、稳定 alias 摘要和回退期限。随后执行父版本 CAS:只有该稳定入口当前活动版本仍等于父版本时才允许切换,否则失败关闭且不替换。切换顺序是「移交父别名挂载 → 注册候选别名 → 落账 CAS」,落账失败会卸载候选并恢复父挂载;落账成功后才对外视为新版本。失败或 unknown 都消费采用额度且不自动重放;重启只按账本恢复已落账版本,不重新发现、不重签。
|
|
444
|
+
|
|
445
|
+
稳定入口沿用父采用的原生 alias 组,候选工具名、顺序、参数 schema 必须与父版本完全一致(`schemaDigest` 相等);修订只能改变行为/实现,新增工具须走新的创建采用。已挂载的入口按账本当前版本路由每次调用:调用 claim 时冻结版本,之后发生替换或回退不会 mid-call 切换;回退前已开始的父/候选调用继续以原制品完成并记录 `versionPlanId` 归属,后续新调用使用新当前版本。父版本的真实创建运行时在移交时只卸下别名、不取消在途调用;重启时先由创建运行时恢复父挂载,再由修订运行时按账本重新移交,避免别名冲突。
|
|
446
|
+
|
|
447
|
+
Host-only `rollbackRevisionCapabilityAdoption({ entryId, expectedVersionPlanId })` 是唯一回退入口:要求当前认证 owner、独立回退授权未过期且次数未用尽、入口当前活动版本精确等于 `expectedVersionPlanId`,并按修订采用回执恢复父采用回执对应的 exact 父版本。父采用回执缺失/不匹配、父版本已回收/过期或版本链不符一律拒绝;回退不重新验证父版本、不延长任何期限、不返还已用额度,每次记录只追加回退事件。只读诊断有 `inspectRevisionAdoptionReadiness()`(未配置或未就绪返回 `undefined`,就绪返回协议 `dsh-created-capability-revision-adoption-readiness/v1`、剩余采用/回退额度和期限)、`inspectRevisionCapabilityEntry(entryId)` 和 `inspectRevisionCapabilityCalls(entryId)`;均不返回证书、制品字节或密钥材料。
|
|
448
|
+
|
|
449
|
+
边界:修订采用复用同一份有限行为 runner(创建采用授权),不新增加执行预算;账本 schema 1 自行校验 application id、user_version、权威行和精确表集合,未知漂移或改写拒绝打开,升级只允许追加表/列。当前验收覆盖账本、授权校验、采用/父 CAS/入口路由/回退机制与失败关闭路径,使用本地注入的父采用/runner 端口;真实 Verifier + Growth 生产的完整 live 采用、活 Host 冷启动重挂和「修订的再修订」(v2→v3,需要扩展 Verifier 父版本 lane)不在本切片内,未验收。
|
|
450
|
+
|
|
374
451
|
### 新工具插件的有限动态采用
|
|
375
452
|
|
|
376
453
|
可选 `creationCapabilities` 是一次配置的独立 owner 采用授权,必须与 `sourceJobs.creation`、`creationVerifications` 一起启用。其 owner 的七个稳定字段须匹配实际 Delivery owner 来源,命名空间须一致;采用 Ed25519 私钥与验收器私钥的实际 material 和 key id 均须不同。旧 peer 缺少 live Agent 校验或 Evaluation 变化订阅时拒绝启动此能力。示例中的路径、身份、摘要、期限和镜像须替换为实际授权:
|
|
@@ -410,7 +487,9 @@ creationCapabilities:
|
|
|
410
487
|
|
|
411
488
|
原生 SourceJobs 续跑自动消费精确验收凭证、复验工作树和当前 canonical 来源,先持久 claim,再独立发现工具 schema,签发绑定制品、来源、schema、别名、授权和期限的采用回执。`retention` 是显式可选授权,取值为 1 ms 至 30 天;仅对已完成首次采用的版本生效。首次采用仍须新鲜验收凭证、创建授权和完整源码复验。配置 retention 时采用回执使用 v2,使用截止时间固定为采用时刻加 `maximumLifetimeMs`、`creationCapabilities.expiresAt`、`runner.expiresAt` 三者最早者;重启不重新计时。没有 retention 的旧配置和 v1 回执继续在原验收窗口结束时失效。`statePath/creation-adoptions.sqlite` 保存不可变授权、512 KiB 内精确包及累计额度;更换 runner 状态目录不能重置采用额度,修改同一 ledger 的授权定义会拒绝。失败或 unknown 消费额度,不自动重放;重启只恢复已授权的同一凭证和制品,不重新发现或签发。模型没有采用、签名或账本工具。
|
|
412
489
|
|
|
413
|
-
|
|
490
|
+
Linux 采用使用显式 `runner.backend: linux-native`、签名时的完整 `LinuxPluginBehaviorRuntime`、当前 UID 的 `cgroupRoots` 及相同的有限 runner 字段,不配置镜像。仅接受 v3 创建证书;其四项执行绑定随完整证书摘要写入原采用回执,无需新建账本或更换回执协议。首次采用复核原成功构建收据;挂载、恢复及每次调用复核私有 `behavior.json`、签名基底/准备摘要和实际保留观察器。采用后的 v2 保留期不要求旧构建授权、原工具链或编译器继续存在,仍要求精确观察器可用以及当前 owner/任务来源有效。取消与关闭会等待这些检查结束;验收失败不挂载工具,未知调用不重派。Linux 可选校验模块仅在显式配置时加载,基础 Control Plane 不要求安装 Verifier。已有 Docker 账本不能改写为 Linux 账本;保权安装迁移仍是独立交付。
|
|
491
|
+
|
|
492
|
+
Host 用真实 Cordis Fiber 动态注册受控 `evolved_<插件名>_<plan hash>_<序号>` 原生工具入口。候选代码在每次 discovery/invoke 中创建自己的 Cordis Context 并挂载:Docker 使用离线容器,Linux 使用原生父/候选隔离进程,macOS 使用 Seatbelt 受限单进程;Host 不导入候选代码。当前只支持原生 Tools/SystemPrompt 服务的有界纯工具插件;每次调用新建 candidate Context,不支持跨调用候选内存状态或任意 Host 服务桥接。Host 的包读取、临时制品、所选后端进程与隔离资源、私有 ledger 和密钥读取属于本授权;Linux 另读取固定只读运行时和准备回执。候选无法读取 Host 凭据、签名私钥或私有验收数据,无网络,不执行包安装脚本。各后端限制详见 [行为执行器](../assistant-verifier/README.md#新插件包的隔离行为观察)。
|
|
414
493
|
|
|
415
494
|
调用经过原生 ToolRuntime/Policy,须由 Delivery 证明当前注册的真实 Agent、Session 和 owner lineage;Policy 还须允许该 owner scope 下的准确工具别名或有限别名模式。输入、结果和累计调用均有界;同一 Agent Session/call id/参数的已完成调用回读缓存,unknown 不再派发。候选注释不进入 Host 描述,输出作为不可信数据。每次异步检查后、派发前和落账前重验真实调用者与 canonical 来源,撤权或纠正期间的迟到结果不能变成成功。
|
|
416
495
|
|
|
@@ -418,7 +497,15 @@ Host 用真实 Cordis Fiber 动态注册受控 `evolved_<插件名>_<plan hash>_
|
|
|
418
497
|
|
|
419
498
|
Host-only `inspectCreatedCapabilityTaskAssociations(planId)` 将精确采用版本的 `completed` 前台调用关联到后续 Inbox 的当前认证 canonical 结果。它排除原创建任务、unknown、旧记录和无前台证明的调用;同一 plan/Inbox 合并调用 key,不推断不同 Inbox 是同一语义任务。关联同时复验历史证书、冻结来源、当前 owner/会话绑定及 Delivery 的真实任务证据,并在 Evaluation writer fence 内重读原任务和后续任务;更正更新结果版本,撤回、来源漂移或 owner 换代使关联失效。查询返回摘要和认证 `achieved`/`not-achieved` 判断,不返回任务文本、参数或结果,不创建第二份结果账本。
|
|
420
499
|
|
|
421
|
-
|
|
500
|
+
关联是查询时刻的只读快照,后续采用或晋升决策仍须重新取得当前认证证据;它只说明调用与任务结果同时出现,不构成因果收益、成本或延迟的证据。`adoptionStatus` 是账本状态,`withinSignedUseWindow` 只比较原签名期限,不能代替当前挂载、owner 和剩余额度校验。在运行时成功启动的前提下,终止或过期版本及重启后的历史调用仍可关联当前反馈,不重新激活入口或恢复额度;运行时不可用或来源无法复验时返回空;空结果不能解释为负面收益或撤权决定。
|
|
501
|
+
|
|
502
|
+
Host-only `inspectCreatedCapabilityOrdinaryUseReport(planId)` 返回 `dsh-created-capability-ordinary-use-report/v1`,固定 `causal: false`,是同一组关联的描述性计数,不是因果或对照结论。它与关联查询共用同一次 Evaluation writer fence 读取,模型和耗时也在 fence 内重读并比较;缺少回执、fence 不匹配或读取中变化、同一 Inbox 混用会话或任何异常均返回 `undefined`,有效 plan 无关联时返回全零报告。每个 Inbox 只按当前最新认证修订计一个质量样本,更正替换旧判断,撤回移出样本;`associationsDigest` 绑定按 Inbox 排序的精确关联。分层只按 Delivery 冻结的任务模型(provider/model/reasoningEffort),`missing` 与 `inconsistent`(含声明冻结但缺少完整选择)各自成组,不合并、不推测。调用耗时为每个有效调用的 `settledAt - claimedAt`;任务耗时为 Delivery 原任务的 `completedAt - dispatchedAt`,仅在执行已静止且不为负时计入。样本数低于 `minimumSamples`(默认 5,须为正安全整数)时为 `insufficient`:耗时不给 p50/max,质量仍给精确计数,不应读作比率;p50 取最近秩。`unknown.inboxes` 是有候选调用但未计为当前关联的 Inbox 数(无认证判断,或 owner/binding/generation 复核未过),仅为 fence 外调用账本的上界。`regressions` 与 `cost` 固定为 `unmeasured`:回归观察投票属于部署通道,本报告不读取也不推断。报告不返回任务文本、参数、结果或 Inbox/会话标识;空或不足不等于负面结果,报告任何字段都不能用于采用、晋升或撤权。
|
|
503
|
+
|
|
504
|
+
Host-only `inspectCreatedCapabilityAvailabilityAttribution(planId, { windowMs? })` 返回 `dsh-created-capability-availability-attribution/v1`,固定 `causal: false`、`design: 'adoption-before-after-itt-model-stratified'`:以采用时间为界的观察性前后配对(意向处理),不是随机对照。总体是该 owner scope 内全部当前认证(owner-feedback 或 independent-verifier)的前台任务,而不只是调用过该能力的任务;按 Delivery 原任务 `dispatchedAt` 划窗:前窗 `[adoptedAt-W, adoptedAt]`,后窗 `(adoptedAt, adoptedAt+W]`,恰在 `adoptedAt` 派发的任务归前窗(与调用准入 `dispatchedAt > adoptedAt` 一致)。`W = min(windowMs ?? elapsed, elapsed)`,`elapsed = max(0, min(now, expiresAt) - adoptedAt)`,前后窗等长且后窗不超过已过去的签名使用期。每个 Inbox 只取当前最新修订:更正替换旧判断,撤回(retract)计入 `excluded.retracted` 并移出样本;触发任务、work-item、未认证或 owner/binding 复核未过、窗外任务分别计入 `excluded`。分层只按冻结任务模型,永不跨模型合并;每层给出前后质量计数、任务耗时和精确差 `(a1·n0 − a0·n1)/(n0·n1)`(未约分分数),任一臂低于 `minimumSamples`(默认 5)为 `insufficient`。`direction` 只看已配对分层,符号不一致即 `mixed`。`exposure` 报告后窗中有本采用精确调用的任务数,意向处理仍计全部后窗任务;同一 journal 其他采用落在任一窗内时 `concurrentAdoptions` 为 `flagged`,只标记不校正。读取先在 fence 外分页扫描 Evaluation 全 scope 投影(扫描期间 scope watermark 变化或超过 `maxScannedHeads`,默认 5000,即失败关闭),再在 `withTrustedCanonicalScopeWriterFence` 内按同一 watermark 重读并比较全部行;不匹配、行变化、原触发源不再是当前 upsert、缺少回执或任何异常均返回 `undefined`。`rowsDigest` 绑定按 Inbox 排序的行;输出不含任务文本、Inbox 或会话标识。`regressions`/`cost` 固定 `unmeasured`。时间趋势、并发变更和选择效应都未消除,结果不能用于采用、晋升或撤权。无 schema 迁移。
|
|
505
|
+
|
|
506
|
+
Host-only `inspectCreatedCapabilityOrdinaryUseTrend(planId, { windowMs?, preWindows?, maxPostWindows? })` 返回 `dsh-created-capability-ordinary-use-trend/v1`,固定 `causal: false`、`design: 'session-cohort-difference-in-differences-model-stratified'`,是单个采用的长期纵向观察。按 Delivery 原任务 `dispatchedAt` 划等长窗 `(adoptedAt+i·W, adoptedAt+(i+1)·W]`:`W` 默认 7 天,限 [1 小时, 90 天];采用前 `preWindows` 个窗(默认 4,限 [2, 52]),采用后至多 `maxPostWindows` 个窗(默认 12,限 [1, 52])且截止于 `min(now, expiresAt)`:最后一个窗的 `endInclusive` 裁到该时刻并标 `complete: false`、置 `partial-window`,过期后派发的任务计入 `excluded.outsideWindow`,`concurrent-adoptions` 也只数此上界内的其他采用;恰在 `adoptedAt` 派发的任务归采用前。总体、最新修订(更正替换、撤回计入 `excluded.retracted`)、排除项、fence 读取(全 scope 分页、`withTrustedCanonicalScopeWriterFence` 内同一 watermark 重读比较,任何变化或异常为 `undefined`)与可用性归因一致。处理组是在已计数的采用后窗内至少有一个任务带本采用精确调用的会话,其全部任务(含采用前与未调用的任务)计入 treated;同 scope 其余会话为对照 control。每个分层(冻结任务模型,永不合并)每窗给 treated/control 的精确质量计数、调用次数和暴露任务数,任一格低于 `minimumSamples`(默认 5)为 `insufficient`。`differenceInDifferences` 为合并采用前/后的 `(pT1−pT0)−(pC1−pC0)`,另给四格 Price-Bonett 校正值 `adjustedEstimate`(每格 `(y+0.5)/(n+1)`),95% Wald 区间以校正值为中心(假设任务独立),四格任一不足即 `insufficient`。`parallelTrend` 比较两组均已测量的最早与最晚采用前窗的 treated−control 差值漂移,绝对值超过 `parallelTrendThreshold`(默认 0.2)即 `parallel-trend-suspect`,少于两个可测窗为 `untestable`。`flags` 另含 `no-control-cohort`(无对照会话,如单会话 owner DM)、`concurrent-adoptions` 与 `adoption-not-active`(采用记录 `status` 不是 `active`);`assumptions` 明列平行趋势、会话分组的采用后选择、无溢出、任务独立,以及两项已知限制:owner DM `/new` 轮换后旧会话是同一 owner 的时间切分对照而非平行对照;非 active(closed、rejected、unknown)的采用记录在 `min(now, expiresAt)` 前仍按可用计算,只以 flag 提示。服务方法对非法参数(越界或非整数的 `windowMs`、`preWindows`、`maxPostWindows`)与其他失败一样返回 `undefined`,不抛错;纯函数 `inspectCreationCapabilityOrdinaryUseTrend` 对非法参数抛 `TypeError`。纯读,不新增计时器、Loop 或表,不返回任务文本、Inbox 或会话标识;结果不能用于采用、晋升或撤权。
|
|
507
|
+
|
|
508
|
+
Host-only `sealCreatedCapabilityOrdinaryUseTrendSnapshot(planId, options?)` 把同参数的趋势结果封存为 `dsh-created-capability-ordinary-use-trend-snapshot/v1`:`digest` 是不含封存时间的规范 JSON 摘要,另含 `inputsDigest`(收据、制品、schema、scope watermark、rowsDigest、参数与窗口)、`trendDigest`、窗口边界(`preWindows`/`postWindows`、`startExclusive`/`endInclusive`/`complete`)、按趋势顺序冻结的模型分层与 flags,固定 `causal: false`。主账本 schema 35 的 `created_capability_trend_snapshots` 表按 digest 唯一、只追加(UPDATE/DELETE 触发器中止);同输入重复封存返回 `created: false` 与原记录,不产生重复行;`sealedAt` 不入摘要,只保持随追加单调。`inspectCreatedCapabilityOrdinaryUseTrendSnapshots({ planId?, beforeSequence?, limit? })` 为新到旧分页(默认 20、最多 100,`nextBeforeSequence` 取下一页),每行读取时按内嵌趋势重算全部派生字段与摘要并核对 digest/plan 列,任何改动即失败;两个服务方法失败均返回 `undefined`。没有计时器或模型工具入口;快照仍是观察性结果,不能用于采用、晋升或撤权,也不防一个一致重算所有摘要的写入者(无签名)。
|
|
422
509
|
|
|
423
510
|
新 controller 在首次采用 claim 前,从同一个私有 Git index 采集精确 staged 源码,核对独立证书的 tree/patch 摘要,并在采用事务内保存独立签名的源码快照。仅保存插件文本(至多 64 文件、单文件 64 KiB、总计 256 KiB),catalog/lock 只保留索引 OID,不能据此重建整个 workspace。读取 Git blobs 而非工作文件,保留 staged 字节及 BOM;不执行候选脚本。离线读取复验源码字节、Git blob OID、tree 摘要与采用密钥签名;patch 摘要与冻结证书相等,但不声称能在缺少原 base/patch 时重新计算。采用账本 schema v3 将源码独立存储,常规恢复不加载源码;v1/v2 迁移保留旧授权、凭证、调用缓存、unknown 和额度,旧行没有源码且不会推测或补写。旧 controller 不得写 v3,升级须停止旧 writer。
|
|
424
511
|
|
|
@@ -426,7 +513,19 @@ Host-only `inspectCreatedCapabilitySource(planId)` 返回冻结的历史源码
|
|
|
426
513
|
|
|
427
514
|
同一主人 `/new` 后的新任务可在使用授权截止前调用已有入口。任务来源保留原执行绑定,源码作业、Growth run、验收与采用凭证的完整摘要不改写;当前 route 必须仍属于同一主人记录、版本和授权,且会话代次不能倒退。已采用 v2 版本在单个创建作业、计划 TTL、Growth run 和证书到期后,仍可在原使用授权期限内,从冻结的签名 journal 和 Store 计划/作业/来源核对历史证据,并继续检查当前主人和 canonical 纠正/撤回;即使原准备制品被 GC,也只执行 journal 中冻结的包。切换 Session 不续期、不补充额度、不重新派发 unknown,也不授予版本替换权限。
|
|
428
515
|
|
|
429
|
-
Evaluation 纠正/撤回通知自动重验并卸载对应入口;到期、来源漂移也关闭该版本,其他 Host 插件保留。旧 v1 模式的源码 producer 暂缺时只暂停入口,恢复原来源后可重新挂同一凭证。v2 已采用版本不依赖过期的原 Growth producer;其历史验签时间固定为采用时刻,不可用于首次采用或新签收据。源计划可以按原规则从 `pending-approval` 过期并清理原制品;旧修改审批、PR、npm 发布和整 profile 采用门不变。Host-only `inspectCreatedCapability(planId)`
|
|
516
|
+
Evaluation 纠正/撤回通知自动重验并卸载对应入口;到期、来源漂移也关闭该版本,其他 Host 插件保留。旧 v1 模式的源码 producer 暂缺时只暂停入口,恢复原来源后可重新挂同一凭证。v2 已采用版本不依赖过期的原 Growth producer;其历史验签时间固定为采用时刻,不可用于首次采用或新签收据。源计划可以按原规则从 `pending-approval` 过期并清理原制品;旧修改审批、PR、npm 发布和整 profile 采用门不变。Host-only `inspectCreatedCapability(planId)` 返回采用状态和别名。动态卸载是本能力的撤销路径;修订版本替换与精确父版本回退见下节,真实后续收益和普通使用部署仍属完整目标的下一次验收。
|
|
517
|
+
|
|
518
|
+
### 空业务采用账本的内部维护组件
|
|
519
|
+
|
|
520
|
+
包入口导出的 `planEmptyAdoptionHandoff`、`applyEmptyAdoptionHandoff`、`verifyEmptyAdoptionHandoff` 仅供可信 Host/安装器在停服阶段处理 Docker→Linux 的已有私有 stage 副本。完整旧配置、实际密钥和源副本须由调用方独立核验;`hostAnchor` 绑定已认证来源,plan 生成后另在库外冻结其 digest。组件只接受 schema 3、唯一匹配的旧 authority,以及 adoptions、calls、source_archives 三表全部为空;unknown、closed 等历史行也会拒绝。CAS 与不可变审计同事务提交,保留 owner、密钥、全部额度、期限和 retention,不删库或刷新授权。
|
|
521
|
+
|
|
522
|
+
读取核对 SQLite 原始 TEXT 字节和完整 schema;计划冻结物理文件及内容,拒绝 sidecar、漂移和其他事务的重试。停服验收允许同 inode 的 cutover rename,拒绝复制后的新 inode;verify 必须在启动前再次确认空业务表,正常运行后不可把它当历史查询。普通 journal 构造与执行授权不变,后续合法使用仍走既有检查。安装器在停服前及资源迁移前检查真实配置指向的 review/采用历史,并将 plan/proof/文件身份绑定到签名 overlay;正常就绪检查不要求后续业务永远为空。这些维护函数不是模型工具,不支持非空历史迁移、native→native、通用备份恢复或旧 Docker 证书的 Linux 执行资格;完整临时 Home 升级及活 Home 验收仍待完成。
|
|
523
|
+
|
|
524
|
+
非空历史改用 `planSealedAdoptionHandoff`、`applySealedAdoptionHandoff`、`verifySealedAdoptionHandoff`(协议 `dsh-sealed-creation-adoption-handoff/v1`),保留空 handoff 的全部前置检查。plan 逐行记录原始 TEXT 事实与 rowsDigest;`active` 行须是 Docker v1 证书且收据在旧 authority 下验签,列入 `pendingReverification`,由下一 authority 独立重验后才可复用。claimed/authorized/unknown 采用和 claimed/unknown 调用无法再对账,统一按 `unknown` 封存并保留原状态,不进入待重验、不重放、不退额度。空历史、超出 maxAdoptions/maxCallRecords 或收据/证书不符时拒绝。apply 先把计划快照的原始字节写入 `<journal 目录>/creation-adoptions.sealed/<旧 authorityDigest>.sqlite`(目录 0700、文件 0400、O_EXCL;重试只接受相同字节),再在同一 `BEGIN IMMEDIATE` 事务里清空三张业务表、CAS authority,并写入不可变审计表 `creation_sealed_adoption_handoff`;live 文件保持原 inode。删除的行在 VACUUM 前仍留在 SQLite 空闲页,归档文件才是保留的历史记录。`CreationCapabilityJournal` 读取并校验该审计证明(篡改或缺触发器时构造失败),`usage()` 返回 live 行数加继承用量,领取采用和调用时的额度检查及就绪剩余额度都按此合计;无审计表的 journal 行为不变。安装器尚未接入该组件。
|
|
525
|
+
|
|
526
|
+
`readSealedReverificationSource({ physicalPath, expectedProofDigest, planId })` 是只读的来源读取器:以只读方式打开 journal(无 sidecar 时 immutable,不新建 -wal/-shm;-wal 与 -shm 同时存在时按活 WAL 普通只读打开;仅有 -wal、仅有 -shm 或存在回滚 -journal 时拒绝,需先让 Host 正常停服或对停服库 checkpoint 后重试;`readSealedAdoptionHandoffDigest` 同此规则),要求存储证明摘要等于调用方签名的 expectedProofDigest、planId 属于 `pendingReverification` 且封存行为 `active`;再以 immutable 方式打开旧 authority 封存位置的归档,读取前后都核对 dev/ino、字节、摘要与 0400 模式(路径须为规范路径,不跟随符号链接),要求源码归档行 JSON 的 sha 等于封存行 `sourceArchiveDigest`,在旧 authority 公钥下验签并用归档证书执行 `validateCreationCapabilitySource`。只返回以 `plugins/<name>/` 为根的 `README.md`、`src/**`、`tests/**` 文件(Host 生成的元数据跳过,其余越界路径失败)及 archiveRowDigest、filesDigest、oldAuthorityDigest,不返回旧证书、构件、收据或工具。它只提供来源,不授予采用;Host 端口接线与重验/重新采用(S2/S3)尚未实现。文件模式必须为 100644(可执行位不能随重放保留,故拒绝)。可用性限制:读取会重新校验封存计划,需要新旧配置的采用私钥文件仍可读、旧 runner 的 stateRoot 仍存在,否则拒绝。
|
|
527
|
+
|
|
528
|
+
S2 命名隔离:`assertSealedReplayPlanIdIsolated({ physicalPath, expectedProofDigest, planId })` 以同样的只读打开规则和同一存储证明绑定(摘要须等于调用方签名的 expectedProofDigest,并重核计划、归档、next authority、继承用量与 journal 文件身份),拒绝重放用的新 plan id:等于任一封存历史行(全部状态,不只是待重验的 `active`)、忽略大小写后与封存行相同、或忽略大小写后与活账本中任一 `adoptions` 采用行相同(不论该行属于哪个 authority,比只看 next authority 更严,有意 fail-closed);plan id 仍须满足 ASCII `ID` 字母表,非 ASCII 形似字符在比较前即被拒绝。通过时返回冻结的 `{ protocol: 'dsh-sealed-replay-plan-id-isolation/v1', planId, proofDigest, sealedRows }`。它只检查与拒绝,不预留 id、不写任何行、不接入采用:通过只是重放计划的必要条件,不是充分条件;日后的重放路径须在采用前调用它,journal 的 `claim` 仍只按精确 id 拒绝封存行。它同样受上述可用性限制(重核封存计划)。本检查在自己的只读快照中运行、不预留任何东西,而 `CreationCapabilityJournal.claim` 按精确 id 比较、不做大小写折叠,因此日后接线须在 `claim` 的写事务内再跑一次大小写折叠检查(或把大小写折叠下沉到 `claim`),否则并发的 `FRESH`/`fresh` 会同时通过;接线还须为 claim 后崩溃的重试明确续跑路径:活账本已有同名行时本检查会拒绝。
|
|
430
529
|
|
|
431
530
|
### 普通任务修复的有限审批
|
|
432
531
|
|
|
@@ -704,3 +803,20 @@ Host 在冻结批次、签名前后与最终落账时重读来源;最终 Evalu
|
|
|
704
803
|
### 有限真实任务试用采用
|
|
705
804
|
|
|
706
805
|
可显式配置 `sourceAdoptions.liveQualification` 与 `liveQualification`,经独立源码审查和真实 reload/readiness 后,用当前 owner 的普通任务反馈决定采用或回退。合同、独立签名、原生预算、期限、最终 canonical 复核及运行边界见[有限试用采用](../../docs/bounded-live-adoption.md)。缺省严格验收顺序不变;新模式不签发 shadow/零副作用凭证,不限制整个 profile 的曝光次数。
|
|
806
|
+
|
|
807
|
+
|
|
808
|
+
扫描器在启动、原生派发及来源复核前先检查 Automations 的持久退休标记与 Delivery 的当前 owner 状态。仅准确 owner 被持久撤销时,以原定义摘要及版本退休自身扫描 cron;旧任务、unknown、请求、grant 与已用预算原样保留,不再做旧来源失效或自动回退扫描。退休标记跨重启和身份切回保留,相同扫描 ID 不会自动复活。新 owner 必须使用显式配置的新代次,不能转移旧授权。
|
|
809
|
+
|
|
810
|
+
缺失 binding、临时数据库/连接故障不触发永久退休;扫描器保留原生 executor、事件或 cron 恢复入口。退休查询暂不可用时,仅尝试由 Automations 的事务与数据库退休栅栏准入原扫描 cron;明确退休、明确撤销或退休被 Policy 拒绝时不激活。若注册也暂时失败,未完成初始化的实例由现有原生 scheduler wake 重试初始化;成功后只沿原 cron 和预算扫描,不增加业务扫描频率。恢复初始化不派发业务工作或消耗新的学习 admission。Policy 拒绝退休时同样阻止新工作,并报告失败;不把拒绝当退休成功。卸载仍独立取消及有界等待本扫描器拥有的执行,不关闭普通聊天或整个插件。
|
|
811
|
+
|
|
812
|
+
### 后台 WorkItem 失败的工程候选
|
|
813
|
+
|
|
814
|
+
`sourceJobs.creation.workItemFailures: true` 显式允许 Host 从真实 owner 的后台结果反馈准备新插件;修订和 foreground 的既有授权不扩大。独立 creation review 与 `creationCapabilities.workItemFailures` 也须显式开启。缺省或 `false` 从规范配置中消去,原 grant/digest 保持不变;新开启的授权不能复用已存在的旧 grant 重置额度。
|
|
815
|
+
|
|
816
|
+
Host 通过 `recordOwnerWorkItemFailureGap({task,manifest,objective})` 提供预期,控制面重新进入 Delivery → Evaluation → WorkItems 的同步来源围栏,绑定当前 `not-achieved` canonical revision 和完整、有界的原始任务上下文。私有 schema 2 引用只保存 owner、来源/表现/manifest/objective 摘要和字节数,不把正文发布到公共 gap。合法 `/new` 继续沿原冻结 owner 引用;同一来源重试返回同一 gap。新 prepared handoff 为 `dsh-prepared-creation/v2`,不把后台任务伪装成 Inbox。
|
|
817
|
+
|
|
818
|
+
`inspectWorkItemCreationReadiness({owner})` 只读组合当前 SourceJobs、Verifier 和 adoption 的真实有限授权与剩余额度,返回精确 authority pins。缺失、停用、旧协议或 owner 不符返回不可用;支持完整但额度耗尽返回 `available:false`。只有新作者准入要求所有余额为正;已冻结 run 后续阶段与重放由本阶段原子账本判断,不因该 run 已消费上游最后一份额度而失效。探针不创建 runner、journal、claim 或模型调用。
|
|
819
|
+
|
|
820
|
+
当前 run 的最终写入顺序为 Growth 的 Delivery → Evaluation → WorkItems → UsageStore 围栏,再进入控制面真实 SQLite writer 和 review/adoption journal;持锁 callback 只核本地冻结记录,不能反向重入 producer/Delivery。嵌套控制面写入使用 savepoint,异常和 thenable 拒绝会回滚并清理 writer。启用 retention(采用回执 v2)时,能力恢复/调用直接核原签名历史与当前来源围栏,不依赖仍在线的 Growth producer,不延长原授权;无 retention 的采用回执 v1 仍须复核当前 producer。证书 backend 版本不代表来源授权。
|
|
821
|
+
|
|
822
|
+
Linux 后台 `source-run/v2` 创建任务的 Host 总期限包含执行器已有的创建审查窗口,避免构建结束后提前取消独立审查和采用。原来源到期时间、各阶段预算、累计额度和取消规则不变;旧 v1 及非 Linux 的 Host 定义与恢复行为保持原样。
|
package/lib/attestation.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attestation.d.ts","sourceRoot":"","sources":["../src/attestation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,wBAAwB,EACxB,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACxB,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"attestation.d.ts","sourceRoot":"","sources":["../src/attestation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,wBAAwB,EACxB,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACxB,MAAM,YAAY,CAAA;AA0JnB,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,sBAAsB,GAAG,MAAM,CAA2B;AAChH,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,uBAAuB,GAAG,MAAM,CAA4B;AAEpH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,sBAAsB,CAoBlF;AAqDD,qBAAa,+BAAgC,YAAW,wBAAwB;IAE5E,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IACnC,QAAQ,CAAC,iBAAiB,EAAE,MAAM;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,MAAM;gBAHjB,SAAS,EAAE,MAAM,GAAG,MAAM,EAC1B,iBAAiB,EAAE,MAAM,EACzB,aAAa,EAAE,MAAM,EACrB,GAAG,GAAE,MAAM,MAAiB;IAGjC,MAAM,CAAC,YAAY,EAAE,sBAAsB,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,uBAAuB,CAAC;CA8BlJ;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,IAAI,CAAC,sBAAsB,EAAE,WAAW,CAAC,GAAG,MAAM,CAExG"}
|
package/lib/attestation.js
CHANGED
|
@@ -117,6 +117,23 @@ function parseEvidence(value) {
|
|
|
117
117
|
currentHostGeneration: integer(item.currentHostGeneration, 'currentHostGeneration', 1), checks, failures,
|
|
118
118
|
profileRestored: item.profileRestored, probeDigest: text(item.probeDigest, 'probeDigest', DIGEST) };
|
|
119
119
|
}
|
|
120
|
+
if (kind === 'in-process-reload') {
|
|
121
|
+
exact(item, ['kind', 'reloaded', 'previousHostGeneration', 'currentHostGeneration', 'previousInProcessGeneration',
|
|
122
|
+
'currentInProcessGeneration', 'fibersDisposed', 'checks', 'failures', 'probeDigest'], 'in-process reload evidence');
|
|
123
|
+
if (typeof item.reloaded !== 'boolean')
|
|
124
|
+
throw new ControlPlaneStoreError('invalid-input', 'in-process reload evidence reloaded must be boolean');
|
|
125
|
+
const checks = integer(item.checks, 'checks');
|
|
126
|
+
const failures = integer(item.failures, 'failures');
|
|
127
|
+
if (failures > checks)
|
|
128
|
+
throw new ControlPlaneStoreError('invalid-input', 'in-process reload failures exceed checks');
|
|
129
|
+
return { kind, reloaded: item.reloaded,
|
|
130
|
+
previousHostGeneration: integer(item.previousHostGeneration, 'previousHostGeneration'),
|
|
131
|
+
currentHostGeneration: integer(item.currentHostGeneration, 'currentHostGeneration', 1),
|
|
132
|
+
previousInProcessGeneration: integer(item.previousInProcessGeneration, 'previousInProcessGeneration'),
|
|
133
|
+
currentInProcessGeneration: integer(item.currentInProcessGeneration, 'currentInProcessGeneration'),
|
|
134
|
+
fibersDisposed: integer(item.fibersDisposed, 'fibersDisposed', 0), checks, failures,
|
|
135
|
+
probeDigest: text(item.probeDigest, 'probeDigest', DIGEST) };
|
|
136
|
+
}
|
|
120
137
|
throw new ControlPlaneStoreError('invalid-input', 'host attestation evidence kind is invalid');
|
|
121
138
|
}
|
|
122
139
|
function assertRequestPredecessor(request) {
|
|
@@ -179,8 +196,13 @@ export function parseHostAttestationReceipt(value) {
|
|
|
179
196
|
function assertPassedEvidence(receipt, request) {
|
|
180
197
|
const evidence = receipt.evidence;
|
|
181
198
|
const requirements = request.requirements;
|
|
182
|
-
|
|
199
|
+
// An in-process reload is evidence for the existing `reload` phase: the Host
|
|
200
|
+
// process generation must not change, so it must never be satisfiable by (or
|
|
201
|
+
// satisfy) the process-restart `reload` contract.
|
|
202
|
+
const inProcessUnderReload = request.phase === 'reload' && evidence.kind === 'in-process-reload' && requirements.kind === 'in-process-reload';
|
|
203
|
+
if (!inProcessUnderReload && (evidence.kind !== request.phase || requirements.kind !== request.phase)) {
|
|
183
204
|
throw new ControlPlaneStoreError('conflict', 'host evidence is not for the requested phase');
|
|
205
|
+
}
|
|
184
206
|
if (receipt.outcome === 'failed')
|
|
185
207
|
return;
|
|
186
208
|
let passed = false;
|
|
@@ -189,6 +211,16 @@ function assertPassedEvidence(receipt, request) {
|
|
|
189
211
|
&& evidence.previousHostGeneration === requirements.previousHostGeneration
|
|
190
212
|
&& evidence.currentHostGeneration > requirements.previousHostGeneration;
|
|
191
213
|
}
|
|
214
|
+
else if (evidence.kind === 'in-process-reload' && requirements.kind === 'in-process-reload') {
|
|
215
|
+
passed = evidence.reloaded
|
|
216
|
+
&& evidence.previousHostGeneration === requirements.previousHostGeneration
|
|
217
|
+
// An in-process reload must leave the Host process generation untouched.
|
|
218
|
+
&& evidence.currentHostGeneration === requirements.previousHostGeneration
|
|
219
|
+
&& evidence.currentHostGeneration === receipt.hostGeneration
|
|
220
|
+
&& evidence.previousInProcessGeneration === requirements.previousInProcessGeneration
|
|
221
|
+
&& evidence.currentInProcessGeneration === requirements.previousInProcessGeneration + 1
|
|
222
|
+
&& evidence.checks >= requirements.minimumChecks && evidence.failures === 0;
|
|
223
|
+
}
|
|
192
224
|
else if (evidence.kind === 'readiness' && requirements.kind === 'readiness') {
|
|
193
225
|
passed = evidence.checks >= requirements.minimumChecks && evidence.failures === 0;
|
|
194
226
|
}
|
package/lib/attestation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attestation.js","sourceRoot":"","sources":["../src/attestation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"attestation.js","sourceRoot":"","sources":["../src/attestation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { type AdoptionAuthorityIdentity, type FileIdentity, type FileSnapshot } from './creation-capability-handoff-common.js';
|
|
2
|
+
import type { CreationCapabilityConfig } from './creation-capability-types.js';
|
|
3
|
+
declare const PROTOCOL: "dsh-empty-creation-adoption-handoff/v1";
|
|
4
|
+
export type EmptyAdoptionIdentity = AdoptionAuthorityIdentity;
|
|
5
|
+
/** Trusted stopped-Host caller must independently verify the source copy and old/next configuration,
|
|
6
|
+
* and bind that provenance in hostAnchor. Freeze the generated plan digest separately. This API does not
|
|
7
|
+
* attest that an arbitrary empty clone originated from a particular live Home. */
|
|
8
|
+
export interface EmptyAdoptionScope {
|
|
9
|
+
physicalPath: string;
|
|
10
|
+
logicalPath: string;
|
|
11
|
+
transactionId: string;
|
|
12
|
+
hostAnchor: string;
|
|
13
|
+
oldConfig: CreationCapabilityConfig;
|
|
14
|
+
nextConfig: CreationCapabilityConfig;
|
|
15
|
+
now: number;
|
|
16
|
+
expiresAt: number;
|
|
17
|
+
}
|
|
18
|
+
export interface EmptyAdoptionPlan {
|
|
19
|
+
protocol: typeof PROTOCOL;
|
|
20
|
+
transactionId: string;
|
|
21
|
+
hostAnchor: string;
|
|
22
|
+
physicalPath: string;
|
|
23
|
+
oldIdentity: EmptyAdoptionIdentity;
|
|
24
|
+
nextIdentity: EmptyAdoptionIdentity;
|
|
25
|
+
snapshot: FileSnapshot;
|
|
26
|
+
createdAt: number;
|
|
27
|
+
expiresAt: number;
|
|
28
|
+
digest: string;
|
|
29
|
+
}
|
|
30
|
+
export interface EmptyAdoptionProof {
|
|
31
|
+
protocol: typeof PROTOCOL;
|
|
32
|
+
plan: EmptyAdoptionPlan;
|
|
33
|
+
fileIdentity: FileIdentity;
|
|
34
|
+
emptyBusiness: {
|
|
35
|
+
adoptions: 0;
|
|
36
|
+
calls: 0;
|
|
37
|
+
sourceArchives: 0;
|
|
38
|
+
};
|
|
39
|
+
digest: string;
|
|
40
|
+
}
|
|
41
|
+
export declare function planEmptyAdoptionHandoff(scope: EmptyAdoptionScope): Readonly<EmptyAdoptionPlan>;
|
|
42
|
+
export declare function applyEmptyAdoptionHandoff(plan: EmptyAdoptionPlan, input: {
|
|
43
|
+
now: number;
|
|
44
|
+
expectedPlanDigest: string;
|
|
45
|
+
expectedHostAnchor: string;
|
|
46
|
+
}): Readonly<EmptyAdoptionProof>;
|
|
47
|
+
/** Stopped-stage / post-cutover BEFORE START acceptance only: prove current emptiness again.
|
|
48
|
+
* Do not call this after ordinary Host work begins. Later legitimate business is governed by
|
|
49
|
+
* the normal constructor; a general historical proof reader is outside this empty-only API.
|
|
50
|
+
* Rename on the same inode is allowed; copying needs a separate authorized contract. */
|
|
51
|
+
export declare function verifyEmptyAdoptionHandoff(input: {
|
|
52
|
+
physicalPath: string;
|
|
53
|
+
plan: EmptyAdoptionPlan;
|
|
54
|
+
expectedProofDigest: string;
|
|
55
|
+
}): Readonly<EmptyAdoptionProof>;
|
|
56
|
+
export {};
|
|
57
|
+
//# sourceMappingURL=creation-capability-empty-handoff.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"creation-capability-empty-handoff.d.ts","sourceRoot":"","sources":["../src/creation-capability-empty-handoff.ts"],"names":[],"mappings":"AACA,OAAO,EAA2C,KAAK,yBAAyB,EAAE,KAAK,YAAY,EACjG,KAAK,YAAY,EAAE,MAAM,yCAAyC,CAAA;AACpE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AAE9E,QAAA,MAAM,QAAQ,EAAG,wCAAiD,CAAA;AAUlE,MAAM,MAAM,qBAAqB,GAAG,yBAAyB,CAAA;AAC7D;;kFAEkF;AAClF,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,wBAAwB,CAAA;IACnC,UAAU,EAAE,wBAAwB,CAAA;IACpC,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,MAAM,CAAA;CAClB;AACD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,OAAO,QAAQ,CAAA;IACzB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,qBAAqB,CAAA;IAClC,YAAY,EAAE,qBAAqB,CAAA;IACnC,QAAQ,EAAE,YAAY,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;CACf;AACD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,OAAO,QAAQ,CAAA;IACzB,IAAI,EAAE,iBAAiB,CAAA;IACvB,YAAY,EAAE,YAAY,CAAA;IAC1B,aAAa,EAAE;QAAE,SAAS,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,CAAC,CAAC;QAAC,cAAc,EAAE,CAAC,CAAA;KAAE,CAAA;IAC5D,MAAM,EAAE,MAAM,CAAA;CACf;AAiBD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,kBAAkB,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAe/F;AAiBD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAiC/K;AACD;;;wFAGwF;AACxF,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,iBAAiB,CAAC;IAAC,mBAAmB,EAAE,MAAM,CAAA;CAAE,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAY9J"}
|