@sema-agent/sdk 6.12.0 → 6.14.0
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 +96 -0
- package/dist/client.d.ts +9 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +11 -0
- package/dist/client.js.map +1 -1
- package/dist/errors.d.ts +15 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +27 -2
- package/dist/errors.js.map +1 -1
- package/dist/events.d.ts +18 -0
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js.map +1 -1
- package/dist/index.d.ts +21 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/resources/adoption.d.ts +196 -0
- package/dist/resources/adoption.d.ts.map +1 -0
- package/dist/resources/adoption.js +55 -0
- package/dist/resources/adoption.js.map +1 -0
- package/dist/resources/rules.d.ts +381 -0
- package/dist/resources/rules.d.ts.map +1 -0
- package/dist/resources/rules.js +120 -0
- package/dist/resources/rules.js.map +1 -0
- package/dist/resources/tool-approvals.d.ts +117 -2
- package/dist/resources/tool-approvals.d.ts.map +1 -1
- package/dist/resources/tool-approvals.js +12 -0
- package/dist/resources/tool-approvals.js.map +1 -1
- package/dist/resources/trace.d.ts +30 -1
- package/dist/resources/trace.d.ts.map +1 -1
- package/dist/resources/trace.js +38 -0
- package/dist/resources/trace.js.map +1 -1
- package/dist/types.d.ts +82 -0
- package/dist/types.d.ts.map +1 -1
- package/openapi.yaml +1266 -3
- package/package.json +1 -1
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AACvF;qEACqE;AACrE,OAAO,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC9E,YAAY,EACV,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,mBAAmB,EAAE,UAAU,EAAE,2BAA2B,EACpH,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,uBAAuB,EAChG,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAC1J,cAAc,EAAE,eAAe,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,eAAe,EAAE,cAAc,EAC5G,aAAa,EAAE,sBAAsB,EACrC,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,kBAAkB,EAAE,eAAe,EAAE,aAAa,EACvF,YAAY,EAAE,oBAAoB,EAAE,YAAY,EAAE,eAAe,EACjE,gBAAgB,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -51,6 +51,13 @@ export { newIdempotencyKey } from "./idempotency.js";
|
|
|
51
51
|
/** SDK 宪法例外①②收编(免构造工具)— unauthenticated liveness probe + the single-source URL builder for the
|
|
52
52
|
* teardown fire-and-forget raw. Static on purpose: usable before/without an AgentClient. */
|
|
53
53
|
export { probeHealth, probeAuth, engineUrl } from "./health.js";
|
|
54
|
+
/** #154 车二 —— CC settings 导入两口(`client.rules`)的类型面。两步同意协议:prepare 出预览+票(**零规则
|
|
55
|
+
* 落库,但落一条 pending 记录+一张票 ⇒ 不幂等**),redeem 才够得着写面;票是一次性/有期/principal 绑定的,
|
|
56
|
+
* redeem 的 404 四类同形(禁按成因分支),唯一可分的是 503 `state.rule_import_retry`(票还在,原样重试)。 */
|
|
57
|
+
export { RulesResource } from "./resources/rules.js";
|
|
58
|
+
/** design/183 —— 身份收编面(`client.adoption`)的类型面。回执只有一种包络(首次与幂等重跑同形);
|
|
59
|
+
* `status` 闭集不含 `rejected`(拒一律 typed 409);史实 `immutableReport` 与现势 `current` 各住各的字段。 */
|
|
60
|
+
export { AdoptionResource } from "./resources/adoption.js";
|
|
54
61
|
/** 未知形兜底的窄化谓词 —— 两族帧的类型只描述 v1;先读成 {@link ApprovalFrameEnvelope},窄不下来就
|
|
55
62
|
* 呈通用卡(design/172 §3.1「未知形永不 auto-deny」)。运行期值,消费端要真调它。 */
|
|
56
63
|
export { isApprovalRequestFrameV1, isApprovalRevokeFrameV1 } from "./resources/tool-approvals.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,OAAO,EAAE,WAAW,EAA+C,MAAM,aAAa,CAAC;AACvF;qEACqE;AACrE,OAAO,EAAE,aAAa,EAA4B,MAAM,qBAAqB,CAAC;AA4B9E,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,wEAAwE;AACxE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,yBAAyB,EAAyC,MAAM,oBAAoB,CAAC;AAChK,OAAO,EAAE,aAAa,EAAkB,MAAM,uBAAuB,CAAC;AAEtE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,aAAa,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,iCAAiC,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,eAAe;AAC7mB,6EAA6E;AAC7E,2FAA2F;AAC3F,iCAAiC;AACjC,aAAa;AACb,2FAA2F;AAC3F,yBAAyB,EAAE,0BAA0B,EACrD,WAAW,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,wBAAwB;AAChH,qFAAqF;AACrF,6HAA6H;AAC7H,eAAe,EACf,uBAAuB,EAAE,aAAa,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,oBAAoB,EAC5G,mBAAmB,EAAE,iBAAiB;AACtC,kEAAkE;AAClE,aAAa,EAAE,4BAA4B,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,6BAA6B;AAC7H,+DAA+D;AAC/D,wBAAwB;AACxB,+EAA+E;AAC/E,iEAAiE;AACjE,eAAe,EAAE,2BAA2B,EAAE,YAAY,EAAE,eAAe;AAC3E,sDAAsD;AACtD,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAGnD;yDACyD;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C;6GAC6G;AAC7G,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC;;sGAEsG;AACtG,OAAO,EAAE,+BAA+B,EAAE,MAAM,UAAU,CAAC;AAC3D;6GAC6G;AAC7G,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,6BAA6B,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAGrH,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAA+C,MAAM,2BAA2B,CAAC;AAe3G,qGAAqG;AACrG,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAaxK;oDACoD;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD;6FAC6F;AAC7F,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* adoption — **身份收编**(design/183 form b:纯身份重绑;server `src/http/routes/adoption.ts` +
|
|
3
|
+
* `src/adoption/wire.ts`)。
|
|
4
|
+
*
|
|
5
|
+
* `start({fromPrincipal, toPrincipal})` → POST /v1/adoption — 发起(幂等)
|
|
6
|
+
* `get(adoptionId)` → GET /v1/adoption/{id} — 读状态
|
|
7
|
+
*
|
|
8
|
+
* 形态:一次性的**部署级动作**,不是常驻业务面 —— operator-only、零模型工作(不计费)、没有 SQL 后端的
|
|
9
|
+
* 部署上诚实 501(收编重绑的是多租身份轴,local 后端根本没有那个轴)。
|
|
10
|
+
*
|
|
11
|
+
* ── 三条硬语义(照抄自 server 的 wire schema,消费端按它写围栏)────────────────────────────────────
|
|
12
|
+
* ① **一种包络**:首次成功与一切幂等重跑同形({@link AdoptionReceipt});别处不得另造第二种回执。
|
|
13
|
+
* ⚠️ 「同形」≠「保证同字节」:**终态之后**重跑回放的是**同一份** `immutableReport`(phase 6 一次落库,
|
|
14
|
+
* 此后逐字节原样回放);但 `current` **每次现算**,所以整份回执**没有**逐字节相同的保证 —— 账没动时
|
|
15
|
+
* 它可能恰好相同,动了就不同,两种都合约内。终态之前(`stalled`)连报告本身都是当前行的临时投影
|
|
16
|
+
* —— 判据是 `status`,不是字段名里的 immutable。
|
|
17
|
+
* ② **被拒的收编从不产出回执**:`status` 闭集只有 `adopted`/`stalled`,**没有 `rejected`** —— 拒一律是
|
|
18
|
+
* typed 409(`adoption.source_already_bound` / `adoption.destination_conflict` /
|
|
19
|
+
* `adoption.destination_unrepresentable`,SDK 侧落 {@link import("../errors.js").ConflictError},按
|
|
20
|
+
* `errorCode` 分支)。否则「拒」与「成」共用一个 200 包络,消费端只能读字段猜。
|
|
21
|
+
* ③ **史实与现势分家**:`immutableReport` 是终态快照(**终态之后**恒同),`current` 每次现算。别从其中一半推另一半 ——
|
|
22
|
+
* 尤其别把 `status: "adopted"` 读成「配置也随迁完了」:那笔账在 `current.outstandingConfigs` /
|
|
23
|
+
* `current.residualSourceRows` 上。
|
|
24
|
+
*
|
|
25
|
+
* ⚠️ **收编不给普通写者上栅栏**:「引擎必须先停」是**运维前提**,不是机器保证。一个还在按旧身份注入的
|
|
26
|
+
* 调用方会在终态之后继续往旧身份下写行,而终态 + 幂等短路会让回执一直说 `adopted` ——
|
|
27
|
+
* {@link AdoptionCurrent.residualSourceRows} 就是把那件事变成可见读数的地方。
|
|
28
|
+
*/
|
|
29
|
+
import type { Transport } from "../transport.js";
|
|
30
|
+
/** `POST /v1/adoption` 的请求体(server 侧 `.strict()`:多一个键 = 400)。 */
|
|
31
|
+
export interface AdoptionRequest {
|
|
32
|
+
/** 被收编的旧身份。已绑到**别的**目的地 ⇒ 409 `adoption.source_already_bound`(D7,非本协议射程)。 */
|
|
33
|
+
fromPrincipal: string;
|
|
34
|
+
/** 收编到的既存身份。与 `fromPrincipal` 同名 ⇒ 400(那是提错了的请求,不是一次无操作的成功)。 */
|
|
35
|
+
toPrincipal: string;
|
|
36
|
+
}
|
|
37
|
+
/** 收编来源。form b 只有具名 principal 一形(`local-owner` 是 form a 的形,本版不产出也不接受)。 */
|
|
38
|
+
export interface AdoptionSource {
|
|
39
|
+
kind: "principal";
|
|
40
|
+
principal: string;
|
|
41
|
+
}
|
|
42
|
+
/** per-store 迁移腿的动作词(闭集;form b 只会产出前两个 + `none`)。 */
|
|
43
|
+
export type AdoptionLegAction = "bucket-rebind" | "row-rewrite" | "carried" | "none" | "reset";
|
|
44
|
+
/** 一条迁移腿的回执。 */
|
|
45
|
+
export interface AdoptionLeg {
|
|
46
|
+
/** 腿的稳定标识 = `<表名>#<身份轴列>`(server schema 的真名;下游按它对账)。 */
|
|
47
|
+
store: string;
|
|
48
|
+
action: AdoptionLegAction;
|
|
49
|
+
/**
|
|
50
|
+
* 这条腿**跑的时候**改了几行。
|
|
51
|
+
*
|
|
52
|
+
* 🔴 **不是「本次请求改了几行」**(codex 交叉复审 [medium],亲读 `receiptOf` 验真):腿只在
|
|
53
|
+
* `immutableReport` 里露面,而终态之后那份报告是从 `report_json` 原样读回的 ⇒ **每次重跑都回放首次的
|
|
54
|
+
* 读数**。所以看到一个非 0 值,说明的是「当初那次迁了这么多」,**不是**「刚才这次干了活」;迟到行的
|
|
55
|
+
* 清扫(POST 的 sweep)也不会改写它。要看现在还剩多少,读 {@link AdoptionCurrent.residualSourceRows}。
|
|
56
|
+
* `stalled` 的回执上它是当前行的读数,还会动。
|
|
57
|
+
*/
|
|
58
|
+
rows?: number;
|
|
59
|
+
quarantined?: number;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* 一条受影响的**部署配置**。
|
|
63
|
+
*
|
|
64
|
+
* 🔴 `migrated` 对 server 半场**恒 false**:这些配置全在别的部署单元(BFF / cli / env / core 声明位),
|
|
65
|
+
* 收编动作够不到它们 —— 改不到的配置,不假装改了。清单在场 + `migrated:false` + 账不清,三件一起才是
|
|
66
|
+
* 「配置不迁如实红」的凭据。
|
|
67
|
+
*/
|
|
68
|
+
export interface AdoptionConfigEntry {
|
|
69
|
+
deployment: string;
|
|
70
|
+
key: string;
|
|
71
|
+
requiredValue: string;
|
|
72
|
+
/** 恒 `false`(见上)。 */
|
|
73
|
+
migrated: boolean;
|
|
74
|
+
/** 运维表态位 —— **只作记录,不清账**(手写布尔可以把账清成假绿)。 */
|
|
75
|
+
ack: boolean;
|
|
76
|
+
/** 消费端运行时真读回 `requiredValue` 的 typed 回执时刻。🔴 **`null` = 未见证 = 未清账**。 */
|
|
77
|
+
witnessedAtMs: number | null;
|
|
78
|
+
}
|
|
79
|
+
/** **冻结的机读词表**:server 侧按设计不迁的面。加成员 = 加行为面,减成员 = 下游围栏红。 */
|
|
80
|
+
export type AdoptionNotMigratedFace = "usage-window" | "cost-quota" | "rate-limit" | "approval-exemption-grantor" | "approval-ask-decision-actor" | "image-bake-requested-by";
|
|
81
|
+
/** 一条「按设计不迁」的**正向声明** —— 它存在的全部意义是让「按设计不迁」与「漏了没迁」在黑盒上可分。 */
|
|
82
|
+
export interface AdoptionNotMigrated {
|
|
83
|
+
face: AdoptionNotMigratedFace;
|
|
84
|
+
/** design/183 §12 的裁决号:`D1` = 配额窗清零重计;`D2` = 史实字段不改写。 */
|
|
85
|
+
ruling: "D1" | "D2";
|
|
86
|
+
reason: string;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* 收编报告。
|
|
90
|
+
*
|
|
91
|
+
* 🔴 **「不可变」只在 `status: "adopted"` 之后成立**(codex 交叉复审 [high],亲读 server
|
|
92
|
+
* `runner.ts` 的 `receiptOf` 验真):终态在 phase 6 一次落库(`report_json`),此后逐字节原样回放 —— 那才是
|
|
93
|
+
* 幂等判据。而 `status: "stalled"` 的回执上**还没有那一行**,server 于是拿**当前行**现场投影出一份同形的
|
|
94
|
+
* 报告(`atMs` = 行的 `updated_at_ms`、configs/legs = 当前列)。所以:
|
|
95
|
+
* · `stalled` 的这一份是**临时投影**,下一次读可能整份都不一样(时刻、腿的行数、配置账全会动);
|
|
96
|
+
* · **别把它当审计凭据落盘** —— 要冻结的那一份,等 `status === "adopted"` 再取。
|
|
97
|
+
* 两种形在类型上同形是 server 的裁定(包络只有一种);判据是 `status`,不是这份对象自身。
|
|
98
|
+
*/
|
|
99
|
+
export interface AdoptionReport {
|
|
100
|
+
adoptionId: string;
|
|
101
|
+
/** 本版只做 form b。显式在场是为了 form a 上车后回执可分辨(下游不必按缺席位推断)。 */
|
|
102
|
+
form: "b";
|
|
103
|
+
from: AdoptionSource;
|
|
104
|
+
toPrincipal: string;
|
|
105
|
+
atMs: number;
|
|
106
|
+
affectedDeploymentConfigs: AdoptionConfigEntry[];
|
|
107
|
+
legs: AdoptionLeg[];
|
|
108
|
+
notMigratedByDesign: AdoptionNotMigrated[];
|
|
109
|
+
}
|
|
110
|
+
/** 现势读数 —— **每次现算**(与 {@link AdoptionReport} 的史实分家)。 */
|
|
111
|
+
export interface AdoptionCurrent {
|
|
112
|
+
/** 配置账里 `witnessedAtMs === null` 的项(`<deployment>:<key>`)。空 = 账已清。 */
|
|
113
|
+
outstandingConfigs: string[];
|
|
114
|
+
/** form b 恒 0(零承运 ⇒ 无拒收行);字段在场是为了 form a 上车时包络不变形。 */
|
|
115
|
+
quarantined: number;
|
|
116
|
+
/**
|
|
117
|
+
* **仍挂在旧身份名下的行数**(每次现算)。
|
|
118
|
+
*
|
|
119
|
+
* 📐 **聚合方式:按表去重,不是逐腿求和**(codex 交叉复审 [medium],亲读 `countResidual` 验真):一张表
|
|
120
|
+
* 一次判定、身份轴取并集 —— 一条同时在 owner 轴 / scope 轴 / 载荷三处带旧身份的行**只算一次**;然后按表
|
|
121
|
+
* 相加。所以**别**拿它去和 `legs[].rows` 对账,对不上是设计而不是 bug。
|
|
122
|
+
*
|
|
123
|
+
* 🔴 `> 0` = **旧身份下可能还有行,或者这次根本没数成** —— 两种都意味着「去查」。它**不是**「这个部署
|
|
124
|
+
* 此刻仍在写」的证明(那是最常见的成因,不是唯一成因),哪怕 `status` 已经是 `adopted`。
|
|
125
|
+
* 每次 **POST**(写动词)会顺带把这些迟到行扫进新身份并重报此数;**GET 不扫**(但会推进在飞的弧,
|
|
126
|
+
* 见 {@link AdoptionResource.get})。
|
|
127
|
+
*
|
|
128
|
+
* ⚠️ **`1` 是一个二义读数**(codex 交叉复审 [medium],亲读 server `residualOf` 验真):数不出来时
|
|
129
|
+
* (计数查询抛错 / 解析失败)server **fail-closed 报 1**,而不是报 0 —— 因为 0 是「一切干净」的字面断言,
|
|
130
|
+
* 它没资格在没数到的时候说。所以 `1` 既可能是「真有一行」,也可能是「这次没数成」,wire 上分不出来;
|
|
131
|
+
* 服务端日志里有 `adoption_residual_count_failed`。判据用法:`> 0` ⇒ **去查**(这正是它的用途);
|
|
132
|
+
* 但**别**拿 `=== 1` 当「恰好剩一行」的事实喂给报表。
|
|
133
|
+
*/
|
|
134
|
+
residualSourceRows: number;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* 收编回执的**唯一包络**(首次成功与一切幂等重跑**同形**;同形不保证同字节,见下)。
|
|
138
|
+
*
|
|
139
|
+
* 🔴 `adoptionId` 在**顶层**(server 发的是 `{adoptionId, ...receipt}`),与 `immutableReport.adoptionId`
|
|
140
|
+
* 同值 —— 不是嵌套两层的同一个字段被漏抄。
|
|
141
|
+
* 🔴 **`status` 是读这份回执的先决判别位**:`adopted` 之后 `immutableReport` 才是冻结的史实;`stalled` 上
|
|
142
|
+
* 它是当前行的**临时投影**(逐字理由见 {@link AdoptionReport} 顶注)。
|
|
143
|
+
*/
|
|
144
|
+
export interface AdoptionReceipt {
|
|
145
|
+
adoptionId: string;
|
|
146
|
+
/** `adopted` = 终态在(此时 {@link immutableReport} 才是冻结的);`stalled` = 在飞(锁被别的副本持着 /
|
|
147
|
+
* 崩溃后尚未续完)。**`rejected` 不在闭集里**(拒一律 typed 409)。 */
|
|
148
|
+
status: "adopted" | "stalled";
|
|
149
|
+
/** ⚠️ 只有 `status === "adopted"` 时它才不可变;`stalled` 上是临时投影,见 {@link AdoptionReport}。 */
|
|
150
|
+
immutableReport: AdoptionReport;
|
|
151
|
+
current: AdoptionCurrent;
|
|
152
|
+
}
|
|
153
|
+
export declare class AdoptionResource {
|
|
154
|
+
private readonly t;
|
|
155
|
+
constructor(t: Transport);
|
|
156
|
+
/** POST /v1/adoption — 发起一次身份收编(operator-only)。
|
|
157
|
+
*
|
|
158
|
+
* 幂等:同参数重跑**不会**开第二次收编;终态之后回放的 `immutableReport` 逐字节恒同,但 `current` 每次
|
|
159
|
+
* 现算 ⇒ 整份回执**没有**逐字节相同的保证(可能相同也可能不同;在飞时报告本身还是临时投影,
|
|
160
|
+
* 见 {@link AdoptionReport})。
|
|
161
|
+
* 并发同参 POST 由
|
|
162
|
+
* `adoption_log.from_principal` 的 UNIQUE 仲裁:恰一行落库,两条连接拿到同一个 `adoptionId`。
|
|
163
|
+
*
|
|
164
|
+
* ── 拒(全部不产出回执)────────────────────────────────────────────────────────────────────────
|
|
165
|
+
* · 409 `adoption.source_already_bound` —— 源已绑到**别的**目的地(二次收编/多租转让,D7 拒);
|
|
166
|
+
* · 409 `adoption.destination_conflict` —— 目的地侧已有与源侧重叠的逻辑键(体里带冲突表族:去清理它们);
|
|
167
|
+
* · 409 `adoption.destination_unrepresentable` —— 目的地身份装不进这次收编会**派生**出来的某个键
|
|
168
|
+
* (典型:memory 的 `proj:` 键越过列宽)⇒ **换一个更短的目的地身份**。与上一条分家的理由就是这个:
|
|
169
|
+
* 运维的动作完全不同,折成一格等于让人猜。
|
|
170
|
+
* 三条都是 {@link import("../errors.js").ConflictError},按 `errorCode` 分支(status 分不出来)。
|
|
171
|
+
* · 403 `auth.operator_only`;501 `capability.adoption_store_required`(无 SQL 后端);
|
|
172
|
+
* 400 `request.field_invalid`(同名 / principal 装不进某根被写列)。 */
|
|
173
|
+
start(body: AdoptionRequest, opts?: {
|
|
174
|
+
signal?: AbortSignal;
|
|
175
|
+
}): Promise<AdoptionReceipt>;
|
|
176
|
+
/**
|
|
177
|
+
* GET /v1/adoption/:id — 读一次收编的状态。
|
|
178
|
+
*
|
|
179
|
+
* 🔴 **不是一次无副作用的读**(codex 交叉复审 [high],亲读 server `src/adoption/runner.ts` 的 `get()`
|
|
180
|
+
* 验真):行**已终态**(`adopted` / 已拒)⇒ 纯读;行**在飞**(典型:崩溃之后再没人发过 POST 的部署)
|
|
181
|
+
* ⇒ 这条读面会**顺手把弧推完** —— 与 boot 扫描同一条 `driveUnderLock`,会推进 phase、改身份轴上的行、
|
|
182
|
+
* 写配置账、落终态。server 是**故意**这么设计的(否则一次崩溃就得靠人再发一次 POST),但消费端必须
|
|
183
|
+
* 知道这件事:
|
|
184
|
+
* · 别把它当「安全的预取 / 看板轮询」—— 对一条在飞的弧,读一次就等于替它按下继续;
|
|
185
|
+
* · 与 POST 的真差别只有一条:GET **不扫**迟到行(`sweep=false`),POST 扫;
|
|
186
|
+
* · 重复调用是安全的(advisory 锁 + phase CAS + 幂等身份 ⇒ 重放与调用一次同果),所以 SDK 对 GET 的
|
|
187
|
+
* 自动重试不引入新风险 —— 但「安全地重放一个会推进状态的动作」不等于「这是一次只读」。
|
|
188
|
+
* 想要一次**保证零推进**的观察,今天 wire 上没有那个动词 —— 不要用注释假装有。
|
|
189
|
+
*
|
|
190
|
+
* 404 `not_found.adoption`(→ {@link import("../errors.js").NotFoundError})= 没有这个 id。
|
|
191
|
+
* ⚠️ 被拒的收编在这条路上同样是 typed 409,不是 404:拒的事实是**记着**的。 */
|
|
192
|
+
get(adoptionId: string, opts?: {
|
|
193
|
+
signal?: AbortSignal;
|
|
194
|
+
}): Promise<AdoptionReceipt>;
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=adoption.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adoption.d.ts","sourceRoot":"","sources":["../../src/resources/adoption.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
export class AdoptionResource {
|
|
2
|
+
t;
|
|
3
|
+
constructor(t) {
|
|
4
|
+
this.t = t;
|
|
5
|
+
}
|
|
6
|
+
/** POST /v1/adoption — 发起一次身份收编(operator-only)。
|
|
7
|
+
*
|
|
8
|
+
* 幂等:同参数重跑**不会**开第二次收编;终态之后回放的 `immutableReport` 逐字节恒同,但 `current` 每次
|
|
9
|
+
* 现算 ⇒ 整份回执**没有**逐字节相同的保证(可能相同也可能不同;在飞时报告本身还是临时投影,
|
|
10
|
+
* 见 {@link AdoptionReport})。
|
|
11
|
+
* 并发同参 POST 由
|
|
12
|
+
* `adoption_log.from_principal` 的 UNIQUE 仲裁:恰一行落库,两条连接拿到同一个 `adoptionId`。
|
|
13
|
+
*
|
|
14
|
+
* ── 拒(全部不产出回执)────────────────────────────────────────────────────────────────────────
|
|
15
|
+
* · 409 `adoption.source_already_bound` —— 源已绑到**别的**目的地(二次收编/多租转让,D7 拒);
|
|
16
|
+
* · 409 `adoption.destination_conflict` —— 目的地侧已有与源侧重叠的逻辑键(体里带冲突表族:去清理它们);
|
|
17
|
+
* · 409 `adoption.destination_unrepresentable` —— 目的地身份装不进这次收编会**派生**出来的某个键
|
|
18
|
+
* (典型:memory 的 `proj:` 键越过列宽)⇒ **换一个更短的目的地身份**。与上一条分家的理由就是这个:
|
|
19
|
+
* 运维的动作完全不同,折成一格等于让人猜。
|
|
20
|
+
* 三条都是 {@link import("../errors.js").ConflictError},按 `errorCode` 分支(status 分不出来)。
|
|
21
|
+
* · 403 `auth.operator_only`;501 `capability.adoption_store_required`(无 SQL 后端);
|
|
22
|
+
* 400 `request.field_invalid`(同名 / principal 装不进某根被写列)。 */
|
|
23
|
+
async start(body, opts) {
|
|
24
|
+
return this.t.request({
|
|
25
|
+
method: "POST",
|
|
26
|
+
path: "/v1/adoption",
|
|
27
|
+
body,
|
|
28
|
+
signal: opts?.signal,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* GET /v1/adoption/:id — 读一次收编的状态。
|
|
33
|
+
*
|
|
34
|
+
* 🔴 **不是一次无副作用的读**(codex 交叉复审 [high],亲读 server `src/adoption/runner.ts` 的 `get()`
|
|
35
|
+
* 验真):行**已终态**(`adopted` / 已拒)⇒ 纯读;行**在飞**(典型:崩溃之后再没人发过 POST 的部署)
|
|
36
|
+
* ⇒ 这条读面会**顺手把弧推完** —— 与 boot 扫描同一条 `driveUnderLock`,会推进 phase、改身份轴上的行、
|
|
37
|
+
* 写配置账、落终态。server 是**故意**这么设计的(否则一次崩溃就得靠人再发一次 POST),但消费端必须
|
|
38
|
+
* 知道这件事:
|
|
39
|
+
* · 别把它当「安全的预取 / 看板轮询」—— 对一条在飞的弧,读一次就等于替它按下继续;
|
|
40
|
+
* · 与 POST 的真差别只有一条:GET **不扫**迟到行(`sweep=false`),POST 扫;
|
|
41
|
+
* · 重复调用是安全的(advisory 锁 + phase CAS + 幂等身份 ⇒ 重放与调用一次同果),所以 SDK 对 GET 的
|
|
42
|
+
* 自动重试不引入新风险 —— 但「安全地重放一个会推进状态的动作」不等于「这是一次只读」。
|
|
43
|
+
* 想要一次**保证零推进**的观察,今天 wire 上没有那个动词 —— 不要用注释假装有。
|
|
44
|
+
*
|
|
45
|
+
* 404 `not_found.adoption`(→ {@link import("../errors.js").NotFoundError})= 没有这个 id。
|
|
46
|
+
* ⚠️ 被拒的收编在这条路上同样是 typed 409,不是 404:拒的事实是**记着**的。 */
|
|
47
|
+
async get(adoptionId, opts) {
|
|
48
|
+
return this.t.request({
|
|
49
|
+
method: "GET",
|
|
50
|
+
path: `/v1/adoption/${encodeURIComponent(adoptionId)}`,
|
|
51
|
+
signal: opts?.signal,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=adoption.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adoption.js","sourceRoot":"","sources":["../../src/resources/adoption.ts"],"names":[],"mappings":"AAyKA,MAAM,OAAO,gBAAgB;IACE;IAA7B,YAA6B,CAAY;QAAZ,MAAC,GAAD,CAAC,CAAW;IAAG,CAAC;IAE7C;;;;;;;;;;;;;;;;kEAgB8D;IAC9D,KAAK,CAAC,KAAK,CAAC,IAAqB,EAAE,IAA+B;QAChE,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAkB;YACrC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,cAAc;YACpB,IAAI;YACJ,MAAM,EAAE,IAAI,EAAE,MAAM;SACrB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;yDAeqD;IACrD,KAAK,CAAC,GAAG,CAAC,UAAkB,EAAE,IAA+B;QAC3D,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAkB;YACrC,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,gBAAgB,kBAAkB,CAAC,UAAU,CAAC,EAAE;YACtD,MAAM,EAAE,IAAI,EAAE,MAAM;SACrB,CAAC,CAAC;IACL,CAAC;CACF"}
|