/** * [ref] §6 —— 收编回执的**唯一包络**(form b:纯身份重绑,数据已在 SQL、承运腿为零)。 * * 🔴 为什么 schema 在这里而不是散在路由里(clay 最高宪法「边界必 schema 禁裸 as-cast」):这份包络是 * **跨仓 wire 契约** —— 下游(cli / web-admin / 围栏 E2E)要按字段名逐字钉围栏。请求体在入口 zod 解析, * 响应体从这里的类型铸出,于是「路由改了字段名而围栏不知道」是编译红而不是运行期静默漂移。 * * ── 与 183 §6 的**逐条差异**(如实登记,不假装同形)──────────────────────────────────────────────── * ① `AdoptionReport.credentials` **缺席**。183 的那一格服务的是 form a「云铸新身份 ⇒ 凭据领取位」; * form b 的 `toPrincipal` 是**运维在请求体里点名的既存身份**,本车不铸任何凭据 ⇒ 给一个 `ref` 就是 * 凭空发明一个兑取不到的 claim(而 183 §4.3 恰恰要求该 ref 是 durable 可重复兑取的)。缺席是诚实, * 假字段是谎。form a 承运车落地时由那台车补这一格。 * ② `AdoptionReceipt.current.quarantined` **恒 0**。隔离位是承运腿(对端拒收行)的概念,form b 零承运 * ⇒ 结构位在场、读数恒 0。保留字段是为了 form a 上车时包络不变形(下游围栏不用改)。 * ③ `notMigratedByDesign` 是 **v2 小票新增**的机读位(183 只在散文里说「按设计不迁」)。成员标识符 * ({@link NotMigratedFace})与字段名一样是**冻结的机读词表**,下游按它写正向断言(§10.5:把「按 * 设计不迁」与「漏了没迁」在黑盒上分开)。加成员=加行为面,减成员=下游围栏红。 * * `immutableReport` 逐字节恒同 = 幂等判据(183 §8):它在 phase 6 一次性落库,此后任何重跑原样回放, * **绝不重算**。`current` 反过来每次现算(配置账未见证项、隔离计数),两半各钉各的(§10.6)。 */ import { z } from "zod"; /** 收编来源(form b 只有具名 principal 一形;`local-owner` 是 form a 的形,本车不产出也不接受)。 */ export declare const AdoptionSourceSchema: z.ZodObject<{ kind: z.ZodLiteral<"principal">; principal: z.ZodString; }, z.core.$strict>; export type AdoptionSource = z.infer; /** per-store 腿的动作词(183 §6 闭集;form b 只会产出前两个 + `none`)。 */ export declare const AdoptionLegActionSchema: z.ZodEnum<{ reset: "reset"; none: "none"; "bucket-rebind": "bucket-rebind"; "row-rewrite": "row-rewrite"; carried: "carried"; }>; export type AdoptionLegAction = z.infer; export declare const AdoptionLegSchema: z.ZodObject<{ store: z.ZodString; action: z.ZodEnum<{ reset: "reset"; none: "none"; "bucket-rebind": "bucket-rebind"; "row-rewrite": "row-rewrite"; carried: "carried"; }>; rows: z.ZodOptional; quarantined: z.ZodOptional; }, z.core.$strict>; export type AdoptionLeg = z.infer; /** * 受影响部署配置清单(183 §6 表)。`migrated` 对 server 半场**恒 false**——这些配置全在别的部署单元 * (BFF / cli / env / core 声明位),收编动作**够不到**它们,而 183 §3.3 的明令是「改不到的配置,不假装 * 改了」。清单在场 + `migrated:false` + 配置账不清 = 下游围栏「配置不迁如实红」的凭据(§10.4)。 */ export declare const AdoptionConfigEntrySchema: z.ZodObject<{ deployment: z.ZodString; key: z.ZodString; requiredValue: z.ZodString; migrated: z.ZodBoolean; ack: z.ZodBoolean; witnessedAtMs: z.ZodNullable; }, z.core.$strict>; export type AdoptionConfigEntry = z.infer; /** * **机读词表**:server 侧按设计不迁的面,逐项挂 183 的裁决号。 * * 🔴 这是**冻结的闭集**(下游按成员名写正向断言)。改名/删员 = wire 破坏;新增 = 新行为面,要先过三问。 * 判据形见 183 §10.5:「按设计不迁」与「漏了没迁」在黑盒上必须可分,所以它是**正向声明**而不是沉默。 */ export declare const NOT_MIGRATED_FACES: readonly ["usage-window", "cost-quota", "rate-limit", "approval-exemption-grantor", "approval-ask-decision-actor", "image-bake-requested-by", "permission-rule-approval-history", "permission-rule-import-ticket"]; export type NotMigratedFace = (typeof NOT_MIGRATED_FACES)[number]; export declare const AdoptionNotMigratedSchema: z.ZodObject<{ face: z.ZodEnum<{ "usage-window": "usage-window"; "cost-quota": "cost-quota"; "rate-limit": "rate-limit"; "approval-exemption-grantor": "approval-exemption-grantor"; "approval-ask-decision-actor": "approval-ask-decision-actor"; "image-bake-requested-by": "image-bake-requested-by"; "permission-rule-approval-history": "permission-rule-approval-history"; "permission-rule-import-ticket": "permission-rule-import-ticket"; }>; ruling: z.ZodEnum<{ D1: "D1"; D2: "D2"; }>; reason: z.ZodString; }, z.core.$strict>; export type AdoptionNotMigrated = z.infer; /** 终态快照(**不可变史实**,phase 6 一次落库,逐字节恒同 —— 183 I4 + §8 幂等判据)。 */ export declare const AdoptionReportSchema: z.ZodObject<{ adoptionId: z.ZodString; form: z.ZodLiteral<"b">; from: z.ZodObject<{ kind: z.ZodLiteral<"principal">; principal: z.ZodString; }, z.core.$strict>; toPrincipal: z.ZodString; atMs: z.ZodNumber; affectedDeploymentConfigs: z.ZodArray; }, z.core.$strict>>; legs: z.ZodArray; rows: z.ZodOptional; quarantined: z.ZodOptional; }, z.core.$strict>>; notMigratedByDesign: z.ZodArray; ruling: z.ZodEnum<{ D1: "D1"; D2: "D2"; }>; reason: z.ZodString; }, z.core.$strict>>; }, z.core.$strict>; export type AdoptionReport = z.infer; /** * 唯一回执包络。**首次成功与一切幂等重跑同形**(183 §6 r7);别处不得另造第二种回执。 * * `status`:`adopted` = 终态在;`stalled` = 在飞(锁被别的副本持着 / 崩溃后尚未续完)。 * **`rejected` 不在这个闭集里**:被拒的收编从来不产出回执,POST 与 GET 一律以 typed 409 应答 * (`adoption.destination_conflict` / `adoption.source_already_bound`),否则「拒」与「成」共用一个 200 * 包络,消费端要靠读字段猜——那正是 183 §7.3「拒绝可判别」要消灭的形。 */ export declare const AdoptionReceiptSchema: z.ZodObject<{ status: z.ZodEnum<{ stalled: "stalled"; adopted: "adopted"; }>; immutableReport: z.ZodObject<{ adoptionId: z.ZodString; form: z.ZodLiteral<"b">; from: z.ZodObject<{ kind: z.ZodLiteral<"principal">; principal: z.ZodString; }, z.core.$strict>; toPrincipal: z.ZodString; atMs: z.ZodNumber; affectedDeploymentConfigs: z.ZodArray; }, z.core.$strict>>; legs: z.ZodArray; rows: z.ZodOptional; quarantined: z.ZodOptional; }, z.core.$strict>>; notMigratedByDesign: z.ZodArray; ruling: z.ZodEnum<{ D1: "D1"; D2: "D2"; }>; reason: z.ZodString; }, z.core.$strict>>; }, z.core.$strict>; current: z.ZodObject<{ outstandingConfigs: z.ZodArray; quarantined: z.ZodNumber; residualSourceRows: z.ZodNumber; }, z.core.$strict>; }, z.core.$strict>; export type AdoptionReceipt = z.infer; /** * 库里那三个 JSON 文本列(`legs` / `configs` / `reject_detail`)读回内域时的 schema。 * * 🔴 为什么不是「解析完直接裸铸形」(clay 最高宪法 §2 + `boundary-cast-gate`):DB 行与 HTTP body 同属 * **进程外数据**。裸 `as` 是「库里的字节直接冒充内域类型」—— 一次手改库/一次旧版本残留行,坏形就会带着 * 一个说谎的类型annotation 流进回执,而回执是下游围栏的判据源。 */ export declare const AdoptionLegsSchema: z.ZodArray; rows: z.ZodOptional; quarantined: z.ZodOptional; }, z.core.$strict>>; export declare const AdoptionConfigsSchema: z.ZodArray; }, z.core.$strict>>; export declare const AdoptionRejectDetailSchema: z.ZodObject<{ detail: z.ZodString; conflicts: z.ZodArray>; }, z.core.$strict>; export type AdoptionRejectDetail = z.infer; /** * 拒绝码的**闭集**(与附录 A 的 `adoption.*` 族逐字同名)。住在 wire 契约里而不是实现里,因为落库的 * `adoption_log.reject_code` 与 wire 上的 `errorCode` 必须是**同一个词表** —— 两处各写一份字符串字面量, * 就是「库里记了一个 wire 上不存在的码」这类漂移的入口。路由的 switch 对它穷举:加成员即编译红。 */ export declare const ADOPTION_REJECT_CODES: readonly ["adoption.destination_conflict", "adoption.destination_unrepresentable"]; export type AdoptionRejectCode = (typeof ADOPTION_REJECT_CODES)[number]; /** `POST /v1/adoption` 的请求体。`.strict()` = 写面纪律:多余键是调用方错误,当场 400(不静默吞)。 */ export declare const AdoptionRequestSchema: z.ZodObject<{ fromPrincipal: z.ZodString; toPrincipal: z.ZodString; }, z.core.$strict>; export type AdoptionRequest = z.infer; //# sourceMappingURL=wire.d.ts.map