@sema-agent/sdk 23.1.0 → 25.0.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 +201 -4
- package/dist/client.d.ts +6 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +8 -1
- package/dist/client.js.map +1 -1
- package/dist/device/index.d.ts +76 -12
- package/dist/device/index.d.ts.map +1 -1
- package/dist/device/index.js +90 -31
- package/dist/device/index.js.map +1 -1
- package/dist/errors.d.ts +318 -6
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +121 -10
- package/dist/errors.js.map +1 -1
- package/dist/events.d.ts +165 -23
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +19 -0
- package/dist/events.js.map +1 -1
- package/dist/health.d.ts +29 -1
- package/dist/health.d.ts.map +1 -1
- package/dist/health.js.map +1 -1
- package/dist/index.d.ts +38 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -4
- package/dist/index.js.map +1 -1
- package/dist/model-route-env/index.d.ts +129 -0
- package/dist/model-route-env/index.d.ts.map +1 -0
- package/dist/model-route-env/index.js +131 -0
- package/dist/model-route-env/index.js.map +1 -0
- package/dist/registry/errors.d.ts +3 -0
- package/dist/registry/errors.d.ts.map +1 -1
- package/dist/registry/errors.js +3 -2
- package/dist/registry/errors.js.map +1 -1
- package/dist/registry/me-config.d.ts +1 -0
- package/dist/registry/me-config.d.ts.map +1 -1
- package/dist/registry/me-config.js +1 -1
- package/dist/registry/me-config.js.map +1 -1
- package/dist/registry/scope-config-feedback.d.ts +1 -0
- package/dist/registry/scope-config-feedback.d.ts.map +1 -1
- package/dist/registry/scope-config-feedback.js +1 -1
- package/dist/registry/scope-config-feedback.js.map +1 -1
- package/dist/resources/adoption.d.ts +8 -2
- package/dist/resources/adoption.d.ts.map +1 -1
- package/dist/resources/adoption.js.map +1 -1
- package/dist/resources/approvals.d.ts +22 -2
- package/dist/resources/approvals.d.ts.map +1 -1
- package/dist/resources/approvals.js +12 -2
- package/dist/resources/approvals.js.map +1 -1
- package/dist/resources/elicitations.d.ts +2 -1
- package/dist/resources/elicitations.d.ts.map +1 -1
- package/dist/resources/elicitations.js.map +1 -1
- package/dist/resources/fleet.d.ts +65 -6
- package/dist/resources/fleet.d.ts.map +1 -1
- package/dist/resources/fleet.js.map +1 -1
- package/dist/resources/ops.d.ts +113 -0
- package/dist/resources/ops.d.ts.map +1 -1
- package/dist/resources/ops.js +10 -0
- package/dist/resources/ops.js.map +1 -1
- package/dist/resources/principal-inbox.d.ts +62 -0
- package/dist/resources/principal-inbox.d.ts.map +1 -0
- package/dist/resources/principal-inbox.js +51 -0
- package/dist/resources/principal-inbox.js.map +1 -0
- package/dist/resources/questions.d.ts +2 -1
- package/dist/resources/questions.d.ts.map +1 -1
- package/dist/resources/questions.js.map +1 -1
- package/dist/resources/session-sync.d.ts +4 -2
- package/dist/resources/session-sync.d.ts.map +1 -1
- package/dist/resources/session-sync.js +4 -2
- package/dist/resources/session-sync.js.map +1 -1
- package/dist/resources/tool-approvals.d.ts +201 -22
- package/dist/resources/tool-approvals.d.ts.map +1 -1
- package/dist/resources/tool-approvals.js +183 -36
- package/dist/resources/tool-approvals.js.map +1 -1
- package/dist/settings.d.ts +73 -1
- package/dist/settings.d.ts.map +1 -1
- package/dist/sse.d.ts +8 -1
- package/dist/sse.d.ts.map +1 -1
- package/dist/sse.js +9 -5
- package/dist/sse.js.map +1 -1
- package/dist/types.d.ts +475 -113
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +11 -5
- package/dist/types.js.map +1 -1
- package/openapi.yaml +1296 -153
- package/package.json +6 -2
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@sema-agent/sdk/model-route-env` —— **模型路由 env 读法**的纯数据 + 纯函数面(九把路由键的闭表、读口、env 腿条目表、车道端口)。
|
|
3
|
+
*
|
|
4
|
+
* ══ 真源不在这里 ══════════════════════════════════════════════════════════════════════════════
|
|
5
|
+
* 🔴 **本文件的真源 = `@sema-agent/server` 的包子路径 `@sema-agent/server/model-route-env`**(server ≥7.133.0;server 树里的 `src/model-route-env.ts` → `src/model-route-gap.ts`)。
|
|
6
|
+
* 本文件是它的**镜像**,一个字都不是本仓的设计:
|
|
7
|
+
* · 要加一把键 / 改一条读法 / 改一个车道判 ⇒ **先去 server 仓改**,再把这里跟上;
|
|
8
|
+
* · **别在这里做设计**。镜像里长出来的第二个判据 = 「壳首启读到的路由」与「引擎起来后服务的路由」分叉的起点。
|
|
9
|
+
*
|
|
10
|
+
* ══ 为什么存在 ═══════════════════════════════════════════════════════════════════════════════
|
|
11
|
+
* 引擎(core)是 BYOM —— 只吃调用方交的路由表与 `baseUrl` / `apiKey`,**从不读** `MODEL_*` / `ANTHROPIC_*` 这些 env 键。「env 里哪几把键是模型路由、空串算不算设了、provider 怎么推断、这只模型走哪条车道、
|
|
12
|
+
* 这条车道的端点 / 凭据取哪一对键」的读法属 server,而**在引擎起之前就要答这句话的调用方**(壳首启、客户端运行时)读这一只 —— 不各抄一份键名与车道判。引擎起来之后以
|
|
13
|
+
* `GET /v1/models` 的 `modelPlane` 为准({@link import("../types.js").ModelPlane}),**不再自己预测**。
|
|
14
|
+
*
|
|
15
|
+
* ══ 为什么是镜像(而不是直接 import server 包)═══════════════════════════════════════════════════
|
|
16
|
+
* 分层公理:usage plane 的消费方依赖 **SDK**,不依赖 server 包(它的依赖闭包是整台服务:存储、HTTP、沙箱……);SDK 有**零运行时依赖**纪律,所以这里不能 `import "@sema-agent/server/model-route-env"`
|
|
17
|
+
* (server 子路径自己的值依赖也要 `@sema-agent/core`:车道判词 `brainLaneOf`)。剩下唯一诚实的形 = **镜像 + 同源锚门**:
|
|
18
|
+
* `packages/sdk/test/live/model-route-env-mirror.test.ts` 对**钉版真 server 的发布字节**比五格 —— 运行时导出名集合 · 常量深等 · 三只纯函数在大量输入上逐条同答(含抛)· `.d.ts` 导出名集合 · 逐型声明体。
|
|
19
|
+
* 锚门红了的分流:server **加了名字 / 加了键** ⇒ 这里补镜像(下一个 minor);server **删名 / 改了值** ⇒ 那是 server 的 BREAKING,本包下一个 major 才跟(镜像不许先删)。
|
|
20
|
+
*
|
|
21
|
+
* ══ 纯 ═════════════════════════════════════════════════════════════════════════════════════
|
|
22
|
+
* 不读 `process.env`、不读文件、不枚举入参快照 —— 只按 {@link MODEL_ROUTE_ENV_KEYS} 点名取值;同入同出,返回值是新对象。**同构**(无 Node 全局,浏览器可 import)。provider 词域外的值在这里按引擎派发的口径读作网关腿
|
|
23
|
+
* (域外拒启是 server 起服那条不变量的事,不在此拒)。
|
|
24
|
+
*
|
|
25
|
+
* ```ts
|
|
26
|
+
* import { readModelRouteEnv, laneAndEndpointFor } from "@sema-agent/sdk/model-route-env";
|
|
27
|
+
* const reading = readModelRouteEnv(process.env); // provider / mainId / 网关与 anthropic 端点 + 凭据在场性
|
|
28
|
+
* const { lane, endpointEnvName, endpointDeclared, apiKeyEnvName } = laneAndEndpointFor(process.env, { provider: reading.provider }, routes);
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
/**
|
|
32
|
+
* 路由读数读的九把 env 键(**闭表**;{@link readModelRouteEnv} 只碰这几把)。
|
|
33
|
+
*/
|
|
34
|
+
export const MODEL_ROUTE_ENV_KEYS = {
|
|
35
|
+
gatewayBaseUrl: "MODEL_GATEWAY_BASEURL",
|
|
36
|
+
gatewayFallbackUrls: "MODEL_GATEWAY_FALLBACK_URLS",
|
|
37
|
+
gatewayApiKey: "MODEL_API_KEY",
|
|
38
|
+
provider: "MODEL_PROVIDER",
|
|
39
|
+
mainId: "MODEL_ID",
|
|
40
|
+
cheapId: "MODEL_CHEAP_ID",
|
|
41
|
+
anthropicApiKey: "ANTHROPIC_API_KEY",
|
|
42
|
+
anthropicAuthToken: "ANTHROPIC_AUTH_TOKEN",
|
|
43
|
+
anthropicBaseUrl: "ANTHROPIC_BASE_URL",
|
|
44
|
+
};
|
|
45
|
+
const declaredValue = (v) => (v !== undefined && v !== "" ? v : undefined);
|
|
46
|
+
const csvOf = (raw) => (raw ?? "")
|
|
47
|
+
.split(",")
|
|
48
|
+
.map((s) => s.trim())
|
|
49
|
+
.filter(Boolean);
|
|
50
|
+
/**
|
|
51
|
+
* **env 模型路由读数的唯一读口**(纯:按 {@link MODEL_ROUTE_ENV_KEYS} 点名取值,不读 `process.env`,不枚举入参)。
|
|
52
|
+
*/
|
|
53
|
+
export function readModelRouteEnv(env) {
|
|
54
|
+
const K = MODEL_ROUTE_ENV_KEYS;
|
|
55
|
+
const anthropicApiKey = declaredValue(env[K.anthropicApiKey]);
|
|
56
|
+
const anthropicAuthToken = declaredValue(env[K.anthropicAuthToken]);
|
|
57
|
+
const anthropicBaseUrl = declaredValue(env[K.anthropicBaseUrl]);
|
|
58
|
+
const anthropicRouteMounted = anthropicApiKey !== undefined || anthropicAuthToken !== undefined;
|
|
59
|
+
const explicitProvider = declaredValue(env[K.provider]);
|
|
60
|
+
const inferAnthropic = anthropicBaseUrl !== undefined && anthropicRouteMounted;
|
|
61
|
+
const mainId = env[K.mainId] ?? "";
|
|
62
|
+
const rawCheapId = env[K.cheapId];
|
|
63
|
+
return {
|
|
64
|
+
gatewayBaseUrl: declaredValue(env[K.gatewayBaseUrl]),
|
|
65
|
+
gatewayFallbackUrls: csvOf(env[K.gatewayFallbackUrls]),
|
|
66
|
+
gatewayApiKey: env[K.gatewayApiKey],
|
|
67
|
+
anthropicApiKey,
|
|
68
|
+
anthropicAuthToken,
|
|
69
|
+
anthropicBaseUrl,
|
|
70
|
+
anthropicRouteMounted,
|
|
71
|
+
provider: explicitProvider ?? (inferAnthropic ? "anthropic" : "gateway"),
|
|
72
|
+
providerSource: explicitProvider !== undefined ? "explicit" : inferAnthropic ? "inferred" : "default",
|
|
73
|
+
mainId,
|
|
74
|
+
cheapSlot: !rawCheapId
|
|
75
|
+
? { kind: "absent" }
|
|
76
|
+
: mainId === ""
|
|
77
|
+
? { kind: "without_main", id: rawCheapId }
|
|
78
|
+
: rawCheapId === mainId
|
|
79
|
+
? { kind: "same_as_main", id: rawCheapId }
|
|
80
|
+
: { kind: "minted", id: rawCheapId },
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
/** 内部缺省别名:env 腿条目表里主槽的第二个名字(与 server 的 `DEFAULT_MODEL_REF` 同值)。 */
|
|
84
|
+
const DEFAULT_MODEL_REF = "default";
|
|
85
|
+
/**
|
|
86
|
+
* **env 腿的条目表** —— 主槽别名 `default` + 主槽 id(+ 铸出的 cheap 槽);没有 `MODEL_ID` ⇒ 空表(不铸占位条目:一个不存在的模型名进可选目录 / 当缺省是被删掉的那种病)。
|
|
87
|
+
*/
|
|
88
|
+
export function envLaneTable(mainId, main, cheap) {
|
|
89
|
+
if (mainId === "")
|
|
90
|
+
return {};
|
|
91
|
+
const table = { [DEFAULT_MODEL_REF]: main, [main.id]: main };
|
|
92
|
+
if (cheap !== undefined)
|
|
93
|
+
table[cheap.id] = cheap;
|
|
94
|
+
return table;
|
|
95
|
+
}
|
|
96
|
+
const declaredRootUrl = (url) => (url !== undefined && url.trim() !== "" ? url : undefined);
|
|
97
|
+
/** 这只模型的 route 词在路由表上落哪条 brain 腿:路由表有它的键且那把键是 `anthropic` ⇒ anthropic 腿;没有 ⇒ 网关腿(引擎路由器落网关 fallback);表里有本部署从不装的键 ⇒ 抛(不折网关)。 */
|
|
98
|
+
function brainLaneFor(provider, routes) {
|
|
99
|
+
const line = typeof provider === "string" && Object.hasOwn(routes, provider) ? provider : undefined;
|
|
100
|
+
if (line === undefined)
|
|
101
|
+
return "gateway";
|
|
102
|
+
if (line === "anthropic")
|
|
103
|
+
return "anthropic";
|
|
104
|
+
throw new Error(`brainLaneFor: the engine's route judge answered route "${line}", which this deployment never mounts (the route table holds only the anthropic route) — the table was built outside mountRoutes`);
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* **车道值级端口**:这只模型在这张路由表上走哪条车道,这条车道的端点 / 凭据取 env 的哪一对键。
|
|
108
|
+
*
|
|
109
|
+
* 车道 = 路由表对 `model.provider` 的答案(引擎路由器对每个请求问的那一只);键名 = {@link MODEL_ROUTE_ENV_KEYS}。`routes` 是引擎路由表的原型(`Object.hasOwn(routes, 词)` 的表;`anthropic` 键在场 ⇔ anthropic 路由装上)。
|
|
110
|
+
* **只交键名不交值**:凭据与端点的值调用方自己从 env 取。纯:不读 `process.env`,只按键表点名取值、不枚举入参。路由表里有本部署从不装的键 ⇒ 抛(响亮臂),不折网关。
|
|
111
|
+
*/
|
|
112
|
+
export function laneAndEndpointFor(env, model, routes) {
|
|
113
|
+
const K = MODEL_ROUTE_ENV_KEYS;
|
|
114
|
+
const reading = readModelRouteEnv(env);
|
|
115
|
+
const lane = brainLaneFor(model.provider, routes);
|
|
116
|
+
switch (lane) {
|
|
117
|
+
case "anthropic":
|
|
118
|
+
return {
|
|
119
|
+
lane,
|
|
120
|
+
endpointEnvName: K.anthropicBaseUrl,
|
|
121
|
+
endpointDeclared: declaredRootUrl(reading.anthropicBaseUrl) !== undefined,
|
|
122
|
+
apiKeyEnvName: reading.anthropicAuthToken !== undefined ? K.anthropicAuthToken : reading.anthropicApiKey !== undefined ? K.anthropicApiKey : undefined,
|
|
123
|
+
};
|
|
124
|
+
case "gateway": {
|
|
125
|
+
const endpointDeclared = declaredRootUrl(reading.gatewayBaseUrl) !== undefined;
|
|
126
|
+
const credentialLoaded = endpointDeclared && reading.gatewayApiKey !== undefined && reading.gatewayApiKey !== "";
|
|
127
|
+
return { lane, endpointEnvName: K.gatewayBaseUrl, endpointDeclared, apiKeyEnvName: credentialLoaded ? K.gatewayApiKey : undefined };
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/model-route-env/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ export declare class RegistryApiError extends Error {
|
|
|
3
3
|
readonly status: number;
|
|
4
4
|
/** 服务端 body(已 parse;parse 失败为 undefined)。诊断用,分支请用 status。 */
|
|
5
5
|
readonly body?: unknown | undefined;
|
|
6
|
+
name: string;
|
|
6
7
|
constructor(status: number, message: string,
|
|
7
8
|
/** 服务端 body(已 parse;parse 失败为 undefined)。诊断用,分支请用 status。 */
|
|
8
9
|
body?: unknown | undefined);
|
|
@@ -22,6 +23,7 @@ export declare class RegistryApiError extends Error {
|
|
|
22
23
|
* `instanceof RegistryApiError` 的 catch 不落空(`RegistryAdmin.rollback` 等经 `RegistryClient.request` 的门,此前正是裸本基类)。
|
|
23
24
|
*/
|
|
24
25
|
export declare class ScopeGoneError extends RegistryApiError {
|
|
26
|
+
name: string;
|
|
25
27
|
constructor(message: string, body?: unknown);
|
|
26
28
|
}
|
|
27
29
|
/**
|
|
@@ -50,6 +52,7 @@ export type OAuthFlowErrorCode = (typeof REGISTRY_OAUTH_ERROR_CODES)[number];
|
|
|
50
52
|
* `invalid_grant`(refresh 已废,回登录——SDK 已顺手清了 TokenProvider)。 */
|
|
51
53
|
export declare class OAuthFlowError extends Error {
|
|
52
54
|
readonly code: OAuthFlowErrorCode;
|
|
55
|
+
name: string;
|
|
53
56
|
constructor(code: OAuthFlowErrorCode, description?: string);
|
|
54
57
|
}
|
|
55
58
|
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/registry/errors.ts"],"names":[],"mappings":"AAMA,sEAAsE;AACtE,qBAAa,gBAAiB,SAAQ,KAAK;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/registry/errors.ts"],"names":[],"mappings":"AAMA,sEAAsE;AACtE,qBAAa,gBAAiB,SAAQ,KAAK;IAGvC,QAAQ,CAAC,MAAM,EAAE,MAAM;IAEvB,6DAA6D;IAC7D,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO;IALhB,IAAI,SAAsB;gBAExB,MAAM,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM;IACf,6DAA6D;IACpD,IAAI,CAAC,EAAE,OAAO,YAAA;CAI1B;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,cAAe,SAAQ,gBAAgB;IACzC,IAAI,SAAoB;gBACrB,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;CAG5C;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAUpG;AAED;;;;;;oCAMoC;AACpC,eAAO,MAAM,0BAA0B,iKAS7B,CAAC;AAEX;+BAC+B;AAC/B,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7E;;gEAEgE;AAChE,qBAAa,cAAe,SAAQ,KAAK;IAGrC,QAAQ,CAAC,IAAI,EAAE,kBAAkB;IAF1B,IAAI,SAAoB;gBAEtB,IAAI,EAAE,kBAAkB,EACjC,WAAW,CAAC,EAAE,MAAM;CAIvB"}
|
package/dist/registry/errors.js
CHANGED
|
@@ -7,13 +7,13 @@ import { classifyRegistryConflict } from "../registry-conflict.js";
|
|
|
7
7
|
export class RegistryApiError extends Error {
|
|
8
8
|
status;
|
|
9
9
|
body;
|
|
10
|
+
name = "RegistryApiError";
|
|
10
11
|
constructor(status, message,
|
|
11
12
|
/** 服务端 body(已 parse;parse 失败为 undefined)。诊断用,分支请用 status。 */
|
|
12
13
|
body) {
|
|
13
14
|
super(message);
|
|
14
15
|
this.status = status;
|
|
15
16
|
this.body = body;
|
|
16
|
-
this.name = new.target.name;
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
/**
|
|
@@ -31,6 +31,7 @@ export class RegistryApiError extends Error {
|
|
|
31
31
|
* `instanceof RegistryApiError` 的 catch 不落空(`RegistryAdmin.rollback` 等经 `RegistryClient.request` 的门,此前正是裸本基类)。
|
|
32
32
|
*/
|
|
33
33
|
export class ScopeGoneError extends RegistryApiError {
|
|
34
|
+
name = "ScopeGoneError";
|
|
34
35
|
constructor(message, body) {
|
|
35
36
|
super(409, message, body);
|
|
36
37
|
}
|
|
@@ -77,10 +78,10 @@ export const REGISTRY_OAUTH_ERROR_CODES = [
|
|
|
77
78
|
* `invalid_grant`(refresh 已废,回登录——SDK 已顺手清了 TokenProvider)。 */
|
|
78
79
|
export class OAuthFlowError extends Error {
|
|
79
80
|
code;
|
|
81
|
+
name = "OAuthFlowError";
|
|
80
82
|
constructor(code, description) {
|
|
81
83
|
super(description ? `${code}: ${description}` : code);
|
|
82
84
|
this.code = code;
|
|
83
|
-
this.name = "OAuthFlowError";
|
|
84
85
|
}
|
|
85
86
|
}
|
|
86
87
|
//# sourceMappingURL=errors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/registry/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,sEAAsE;AACtE,MAAM,OAAO,gBAAiB,SAAQ,KAAK;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/registry/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,sEAAsE;AACtE,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAG9B;IAGA;IALF,IAAI,GAAG,kBAAkB,CAAC;IACnC,YACW,MAAc,EACvB,OAAe;IACf,6DAA6D;IACpD,IAAc;QAEvB,KAAK,CAAC,OAAO,CAAC,CAAC;QALN,WAAM,GAAN,MAAM,CAAQ;QAGd,SAAI,GAAJ,IAAI,CAAU;IAGzB,CAAC;CACF;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,cAAe,SAAQ,gBAAgB;IACzC,IAAI,GAAG,gBAAgB,CAAC;IACjC,YAAY,OAAe,EAAE,IAAc;QACzC,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,IAAa,EAAE,QAAgB;IAChF,MAAM,KAAK,GAAI,IAA+C,EAAE,KAAK,CAAC;IACtE,MAAM,OAAO,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC7D,QAAQ,wBAAwB,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;QAC/C,KAAK,MAAM;YACT,OAAO,IAAI,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC3C,KAAK,UAAU,CAAC;QAChB,KAAK,MAAM;YACT,OAAO,IAAI,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED;;;;;;oCAMoC;AACpC,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,uBAAuB;IACvB,WAAW;IACX,eAAe;IACf,eAAe;IACf,iBAAiB;IACjB,wBAAwB;IACxB,eAAe;IACf,cAAc;CACN,CAAC;AAMX;;gEAEgE;AAChE,MAAM,OAAO,cAAe,SAAQ,KAAK;IAG5B;IAFF,IAAI,GAAG,gBAAgB,CAAC;IACjC,YACW,IAAwB,EACjC,WAAoB;QAEpB,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAH7C,SAAI,GAAJ,IAAI,CAAoB;IAInC,CAAC;CACF"}
|
|
@@ -5,6 +5,7 @@ export type PersonalConfigDomain = "models" | "mcp" | "skills" | "plugins" | (st
|
|
|
5
5
|
* K-17:只装分类为 `"conflict"` 的 409;scope-gone 409 是 {@link import("./errors.js").ScopeGoneError}(不是本类)。 */
|
|
6
6
|
export declare class ConfigCasConflictError extends Error {
|
|
7
7
|
readonly currentUpdatedAt: string | null;
|
|
8
|
+
name: string;
|
|
8
9
|
constructor(currentUpdatedAt: string | null);
|
|
9
10
|
}
|
|
10
11
|
export interface MeConfigValue {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"me-config.d.ts","sourceRoot":"","sources":["../../src/registry/me-config.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,qEAAqE;AACrE,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAK3F;yGACyG;AACzG,qBAAa,sBAAuB,SAAQ,KAAK;
|
|
1
|
+
{"version":3,"file":"me-config.d.ts","sourceRoot":"","sources":["../../src/registry/me-config.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,qEAAqE;AACrE,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAK3F;yGACyG;AACzG,qBAAa,sBAAuB,SAAQ,KAAK;IAEnC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI;IAD3C,IAAI,SAA4B;gBACpB,gBAAgB,EAAE,MAAM,GAAG,IAAI;CAGrD;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;wEACoE;IACpE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAED,qFAAqF;AACrF,wBAAsB,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,oBAAoB,EAAE,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAMjK;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,IAAI,CAAC;IACT,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,2DAA2D;IAC3D,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAED;;;;mBAImB;AACnB,wBAAsB,WAAW,CAC/B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,oBAAoB,EAC5B,GAAG,EAAE,WAAW,EAChB,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAAC,UAAU,CAAC,EAAE;QAAE,KAAK,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAA;KAAE,CAAA;CAAE,GAC9H,OAAO,CAAC,iBAAiB,CAAC,CA0B5B"}
|
|
@@ -13,10 +13,10 @@ const personalPath = (domain, forUser) => forUser ? `/api/v1/users/${encodeURICo
|
|
|
13
13
|
* K-17:只装分类为 `"conflict"` 的 409;scope-gone 409 是 {@link import("./errors.js").ScopeGoneError}(不是本类)。 */
|
|
14
14
|
export class ConfigCasConflictError extends Error {
|
|
15
15
|
currentUpdatedAt;
|
|
16
|
+
name = "ConfigCasConflictError";
|
|
16
17
|
constructor(currentUpdatedAt) {
|
|
17
18
|
super(`personal-config CAS conflict (currentUpdatedAt=${currentUpdatedAt ?? "unknown"}) — refetch, re-merge, retry with the fresh baseUpdatedAt`);
|
|
18
19
|
this.currentUpdatedAt = currentUpdatedAt;
|
|
19
|
-
this.name = "ConfigCasConflictError";
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
/** GET 个人域文档(managed 面传 `forUser`;403/404 的辖区语句 registry 原话直出在 RegistryApiError)。 */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"me-config.js","sourceRoot":"","sources":["../../src/registry/me-config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAMnE,MAAM,YAAY,GAAG,CAAC,MAAc,EAAE,OAAgB,EAAU,EAAE,CAChE,OAAO,CAAC,CAAC,CAAC,iBAAiB,kBAAkB,CAAC,OAAO,CAAC,WAAW,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;AAEpJ;yGACyG;AACzG,MAAM,OAAO,sBAAuB,SAAQ,KAAK;
|
|
1
|
+
{"version":3,"file":"me-config.js","sourceRoot":"","sources":["../../src/registry/me-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ import type { PersonalConfigDomain } from "./me-config.js";
|
|
|
9
9
|
* 不是本类)—— 12.0.1 按状态 409 一律铸本类,调用方的「冲突 ⇒ 重读重发」会把旧草稿写进同名替身空间。 */
|
|
10
10
|
export declare class ScopeConfigCasConflictError extends Error {
|
|
11
11
|
readonly currentVersion?: number | undefined;
|
|
12
|
+
name: string;
|
|
12
13
|
constructor(message: string, currentVersion?: number | undefined);
|
|
13
14
|
}
|
|
14
15
|
/** DRAFT(工作区)读:{value, version}——version 即 PUT 的 CAS 基线。 */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scope-config-feedback.d.ts","sourceRoot":"","sources":["../../src/registry/scope-config-feedback.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAK3D;;;;;;iEAMiE;AACjE,qBAAa,2BAA4B,SAAQ,KAAK;
|
|
1
|
+
{"version":3,"file":"scope-config-feedback.d.ts","sourceRoot":"","sources":["../../src/registry/scope-config-feedback.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAK3D;;;;;;iEAMiE;AACjE,qBAAa,2BAA4B,SAAQ,KAAK;IAIlD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM;IAHzB,IAAI,SAAiC;gBAE5C,OAAO,EAAE,MAAM,EACN,cAAc,CAAC,EAAE,MAAM,YAAA;CAInC;AAMD,4DAA4D;AAC5D,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,EAAE,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC,CAKzN;AAED,sDAAsD;AACtD,wBAAsB,uBAAuB,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,EAAE,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC,CAQ/O;AAED;;;mEAGmE;AACnE,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,oBAAoB,EAC5B,GAAG,EAAE;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,EAC7D,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GAC9B,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAe/C;AAID,+DAA+D;AAC/D,wBAAsB,eAAe,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GAAG,OAAO,CAAC;IAAE,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC,CAKzN;AAED;+DAC+D;AAC/D,wBAAsB,cAAc,CAClC,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GAC9B,OAAO,CAAC;IAAE,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAK7D;AAID;;8CAE8C;AAC9C,wBAAsB,YAAY,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAKlJ;AAID;;yBAEyB;AACzB,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAI1E"}
|
|
@@ -18,10 +18,10 @@ const scopeConfigPath = (space, domain) => `/api/v1/scopes/${encodeURIComponent(
|
|
|
18
18
|
* 不是本类)—— 12.0.1 按状态 409 一律铸本类,调用方的「冲突 ⇒ 重读重发」会把旧草稿写进同名替身空间。 */
|
|
19
19
|
export class ScopeConfigCasConflictError extends Error {
|
|
20
20
|
currentVersion;
|
|
21
|
+
name = "ScopeConfigCasConflictError";
|
|
21
22
|
constructor(message, currentVersion) {
|
|
22
23
|
super(message);
|
|
23
24
|
this.currentVersion = currentVersion;
|
|
24
|
-
this.name = "ScopeConfigCasConflictError";
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
const fail = (r, what) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scope-config-feedback.js","sourceRoot":"","sources":["../../src/registry/scope-config-feedback.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAInE,MAAM,eAAe,GAAG,CAAC,KAAa,EAAE,MAAc,EAAU,EAAE,CAChE,kBAAkB,kBAAkB,CAAC,KAAK,CAAC,WAAW,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;AAErF;;;;;;iEAMiE;AACjE,MAAM,OAAO,2BAA4B,SAAQ,KAAK;
|
|
1
|
+
{"version":3,"file":"scope-config-feedback.js","sourceRoot":"","sources":["../../src/registry/scope-config-feedback.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,7 +43,9 @@ export interface AdoptionSource {
|
|
|
43
43
|
export type AdoptionLegAction = "bucket-rebind" | "row-rewrite" | "carried" | "none" | "reset";
|
|
44
44
|
/** 一条迁移腿的回执。 */
|
|
45
45
|
export interface AdoptionLeg {
|
|
46
|
-
/** 腿的稳定标识 = `<表名>#<身份轴列>`(server schema 的真名;下游按它对账)。
|
|
46
|
+
/** 腿的稳定标识 = `<表名>#<身份轴列>`(server schema 的真名;下游按它对账)。
|
|
47
|
+
* 🔴 **server ≥7.133.0:workflow journal 的属主腿换名** —— `workflow_journal#scope` → **`workflow_journal_owner#scope`**(journal 的属主墙搬进了独立的 `workflow_journal_owner` 表)。
|
|
48
|
+
* 按旧腿名对账的消费方要改读新名(新旧名不会同时出现在一份回执上;≤7.132.x 的 server 仍发旧名)。 */
|
|
47
49
|
store: string;
|
|
48
50
|
action: AdoptionLegAction;
|
|
49
51
|
/**
|
|
@@ -77,7 +79,11 @@ export interface AdoptionConfigEntry {
|
|
|
77
79
|
witnessedAtMs: number | null;
|
|
78
80
|
}
|
|
79
81
|
/** **冻结的机读词表**:server 侧按设计不迁的面。加成员 = 加行为面,减成员 = 下游围栏红。 */
|
|
80
|
-
export type AdoptionNotMigratedFace = "usage-window" | "cost-quota" | "rate-limit" | "approval-exemption-grantor" | "approval-ask-decision-actor" | "image-bake-requested-by"
|
|
82
|
+
export type AdoptionNotMigratedFace = "usage-window" | "cost-quota" | "rate-limit" | "approval-exemption-grantor" | "approval-ask-decision-actor" | "image-bake-requested-by"
|
|
83
|
+
/** server ≥7.132.0:规则店族两张刻意不迁的表(`permission_rule` 那只**活桶**真迁了,同族另两张按 D2 / D1 不迁 —— 「按设计不迁」与「漏了没迁」在黑盒上必须可分)。 */
|
|
84
|
+
| "permission-rule-approval-history" | "permission-rule-import-ticket"
|
|
85
|
+
/** server ≥7.133.0:跨主体投递的三张配额表(`org_delivery_sender_quota` / `_recipient_quota` / `_pair_quota`,小时窗计数)按 D1(清零重计)不迁。 */
|
|
86
|
+
| "org-delivery-quota";
|
|
81
87
|
/** 一条「按设计不迁」的**正向声明** —— 它存在的全部意义是让「按设计不迁」与「漏了没迁」在黑盒上可分。 */
|
|
82
88
|
export interface AdoptionNotMigrated {
|
|
83
89
|
face: AdoptionNotMigratedFace;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adoption.d.ts","sourceRoot":"","sources":["../../src/resources/adoption.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,iEAAiE;AACjE,MAAM,WAAW,eAAe;IAC9B,6EAA6E;IAC7E,aAAa,EAAE,MAAM,CAAC;IACtB,gEAAgE;IAChE,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,0EAA0E;AAC1E,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qDAAqD;AACrD,MAAM,MAAM,iBAAiB,GAAG,eAAe,GAAG,aAAa,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAE/F,gBAAgB;AAChB,MAAM,WAAW,WAAW;IAC1B
|
|
1
|
+
{"version":3,"file":"adoption.d.ts","sourceRoot":"","sources":["../../src/resources/adoption.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adoption.js","sourceRoot":"","sources":["../../src/resources/adoption.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"adoption.js","sourceRoot":"","sources":["../../src/resources/adoption.ts"],"names":[],"mappings":"AAgLA,MAAM,OAAO,gBAAgB;IACE;IAA7B,YAA6B,CAAY;QAAZ,MAAC,GAAD,CAAC,CAAW;IAAG,CAAC;IAE7C;;;;;;;;;;;;;;;;;kEAiB8D;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"}
|
|
@@ -28,7 +28,7 @@ export interface ApprovalExemption {
|
|
|
28
28
|
* · `heartbeat` — 15s 保活;注意它是**真帧**(`data:{"type":"heartbeat"}`),不是裸 `:` 注释行。
|
|
29
29
|
* · `error` — 15 分钟帽:`{errorCode:"STREAM_MAX_DURATION", message}`(之后 server 收流,读口自己重连续读);或(server ≥7.122.0)排空终帧 `{errorCode:"draining", message}`
|
|
30
30
|
* (这台实例进入排空 / 换代,排空进入那一拍收到,码与句同计费提交的 503 `draining`):读口 yield 它之后**结束**(终帧判据 `isTerminalFrame`),重开由调用方按自己的节奏去替代实例;
|
|
31
|
-
* 其余码的 `error`
|
|
31
|
+
* 其余码的 `error` 帧同为终帧(例外:server ≥7.133.0 的 `approvals.read_unavailable` —— 读失败的**流留着**的那一帧,读口 yield 后继续读,**不重连**;`approvals.read_corrupt` 帧后 server 收流,同为终帧;见 {@link APPROVALS_STREAM_READ_ERROR_CODES})。
|
|
32
32
|
* 仍是**开集**(`(string & {})`):不解析增量的消费方可以把任何非 heartbeat 事件当「变了」信号,回头拉
|
|
33
33
|
* 权威列表(`list()`)—— 那条兜底路子一直有效,只是不再是「因为形状没确认」。
|
|
34
34
|
*
|
|
@@ -40,7 +40,7 @@ export interface ApprovalExemption {
|
|
|
40
40
|
* 去 `list()` 或读 run 终局,推面不替它下结论)。载荷 = `{type, approvalId, serverNowMs}`。
|
|
41
41
|
* 🔴 **两词刻意不复用 `pending` / `resolved`**:那两个词的键是 `(sessionId, toolCallId)`、决断口是
|
|
42
42
|
* `POST /v1/approvals/:sessionId/decide`;live 行的键是 `approvalId`、决断口是
|
|
43
|
-
* `POST /v1/tool-approvals/:
|
|
43
|
+
* `POST /v1/tool-approvals/:id/respond` —— 混一个词,消费方迟早把 live 卡送去 decide 口(那是一条
|
|
44
44
|
* 404,而且没有任何 wire 证据能让它自己看出送错了门)。
|
|
45
45
|
* 🔴 **病根值得记住**:workflow 恒后台跑 ⇒ 子代 ask 铸造时刻零活流 ⇒ 转**悬挂**(不拒、不 emit、窗 1h),
|
|
46
46
|
* 而此前**推面为零** —— 三条发现通道(拉 `GET /v1/approvals` / 壳队列 UI / 宿主下一条流的 preamble 补投)
|
|
@@ -77,8 +77,28 @@ export interface ApprovalStreamEvent {
|
|
|
77
77
|
askClass?: AskClass;
|
|
78
78
|
/** 只 `pending` 帧(server ≥7.109.0):这一问属于的全部类,见 {@link PendingCheckpoint.classes}。 */
|
|
79
79
|
classes?: AskClass[];
|
|
80
|
+
/** 只 `pending` 帧(server ≥7.133.0):park 行的非密稳定身份 = {@link PendingCheckpoint.checkpointId} 展开(读不出可信值 ⇒ 键缺席,读作「没有可 join 的身份」)。 */
|
|
81
|
+
checkpointId?: string;
|
|
82
|
+
/** 只 `live_pending` 帧(server ≥7.133.0):**本副本没有引擎腿在等这只问**(`"absent"`,只记真)= {@link LivePendingRow.consumerState} 展开(读法同那一键)。 */
|
|
83
|
+
consumerState?: "absent";
|
|
84
|
+
/** 只 `error` 帧:机读码(见 {@link APPROVALS_STREAM_READ_ERROR_CODES} 与上面 `error` 一条的读失败两码)。 */
|
|
85
|
+
errorCode?: string;
|
|
86
|
+
/** 只 `error` 帧:人读句(脱敏)。 */
|
|
87
|
+
message?: string;
|
|
80
88
|
[k: string]: unknown;
|
|
81
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* `GET /v1/approvals/stream` **读失败**的两只机读错误帧的码(server ≥7.133.0;`event: error` `{ type: "error", errorCode, message }`)。此前读失败只会让这条流静默成「只有心跳」,
|
|
92
|
+
* 消费方读不出「读坏了」与「没有待审」的差别:
|
|
93
|
+
* · `approvals.read_unavailable` —— 这一拍的审批读失败(店暂时读不出);**流留着**(下一拍照常再读)。🔴 **不要按它重连**:它不是终帧 —— 本读口 yield 它之后**继续**读同一条连接
|
|
94
|
+
* (见 {@link import("../sse.js").isTerminalFrame}:这是除 15 分钟帽之外**唯一**不终止读口的 `error` 码);把它读成「没有待审」或「该重连」都是错读 —— 按 `errorCode` 提示「审批读取暂时失败」,
|
|
95
|
+
* 等下一拍的 `pending` / `heartbeat`;
|
|
96
|
+
* · `approvals.read_corrupt` —— 读到了**坏行**(读得出却读不成形):帧后 server **收流**(终帧,读口 yield 后结束)。重开之前先处置那一行,否则每次重开撞同一处。
|
|
97
|
+
* 老 server(≤7.132.x)读失败只有心跳(没有这两帧)。按 `errorCode` 分,**别解析 `message`**。
|
|
98
|
+
*/
|
|
99
|
+
export declare const APPROVALS_STREAM_READ_ERROR_CODES: readonly ["approvals.read_unavailable", "approvals.read_corrupt"];
|
|
100
|
+
/** {@link APPROVALS_STREAM_READ_ERROR_CODES} 的成员型。 */
|
|
101
|
+
export type ApprovalsStreamReadErrorCode = (typeof APPROVALS_STREAM_READ_ERROR_CODES)[number];
|
|
82
102
|
/**
|
|
83
103
|
* 审批决定体的**出处位**闭集 —— server ≥7.118.0 `APPROVAL_DECIDED_BY`(`dist/host-decision.js`)逐字同序:一个审批决定用**一只键**说是谁做的。
|
|
84
104
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approvals.d.ts","sourceRoot":"","sources":["../../src/resources/approvals.ts"],"names":[],"mappings":"AAAA;;mFAEmF;AACnF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,sBAAsB,EAAE,QAAQ,EAAqC,WAAW,EAAE,MAAM,aAAa,CAAC;AACpH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAIvI;;4DAE4D;AAC5D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,8EAA8E;IAC9E,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAiCgC;AAChC,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,GAAG,cAAc,GAAG,eAAe,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC5H;;;;2FAIuF;IACvF,eAAe,CAAC,EAAE,IAAI,CAAC;IAKvB,uDAAuD;IACvD,oBAAoB,CAAC,EAAE,IAAI,CAAC;IAC5B,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,kFAAkF;IAClF,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,wEAAwE;IACxE,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,mOAAmO;IACnO,YAAY,CAAC,EAAE,oBAAoB,CAAC;IACpC,+FAA+F;IAC/F,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;wFACoF;IACpF,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;wFACoF;IACpF,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,oFAAoF;IACpF,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC;IACrB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,mBAAmB,+BAA+C,CAAC;AAChF,+GAA+G;AAC/G,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAErE;;;;;;;;;GASG;AACH,eAAO,MAAM,0BAA0B,wCAAwD,CAAC;AAChG,+CAA+C;AAC/C,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AACjF,6DAA6D;AAC7D,eAAO,MAAM,sBAAsB,0BAA0C,CAAC;AAC9E,2CAA2C;AAC3C,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,SAAS,GAAG,MAAM,CAAC;IAC7B;;;;;;;;yFAQqF;IACrF,MAAM,CAAC,EAAE,cAAc,CAAC;IAQxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAKhB;;;uEAGmE;IACnE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6GAA6G;IAC7G,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;4GACwG;IACxG,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;wFAKoF;IACpF,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,iGAAiG;IACjG,SAAS,CAAC,EAAE,iBAAiB,CAAC;CAC/B;AAED;;;;;+EAK+E;AAC/E,MAAM,WAAW,oBAAoB;IACnC,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,SAAS,GAAG,MAAM,CAAC;CAC9B;AAED,qBAAa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAAD,CAAC,EAAE,SAAS;IAEzC;;;;;;;;;;;;oCAYgC;IAC1B,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAOxF;;;;;;8DAM0D;IACpD,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IAYjF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gGAuD4F;IACtF,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAS7H;;;4KAGwK;IAClK,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,iBAAiB,EAAE,CAAA;KAAE,CAAC;IAStH;;;;;;;uIAOmI;IAC7H,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAe7G;;;;;;;;;;;;;;;6IAeyI;IAClI,MAAM,CAAC,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,cAAc,CAAC,mBAAmB,CAAC;CA2CpG"}
|
|
1
|
+
{"version":3,"file":"approvals.d.ts","sourceRoot":"","sources":["../../src/resources/approvals.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,15 @@
|
|
|
1
|
-
import { readSseFrames, HEARTBEAT_GRACE_MS, isTerminalFrame } from "../sse.js";
|
|
1
|
+
import { readSseFrames, HEARTBEAT_GRACE_MS, isTerminalFrame, STREAM_READ_ADVISORY_CODE } from "../sse.js";
|
|
2
2
|
import { APIError } from "../errors.js";
|
|
3
|
+
/**
|
|
4
|
+
* `GET /v1/approvals/stream` **读失败**的两只机读错误帧的码(server ≥7.133.0;`event: error` `{ type: "error", errorCode, message }`)。此前读失败只会让这条流静默成「只有心跳」,
|
|
5
|
+
* 消费方读不出「读坏了」与「没有待审」的差别:
|
|
6
|
+
* · `approvals.read_unavailable` —— 这一拍的审批读失败(店暂时读不出);**流留着**(下一拍照常再读)。🔴 **不要按它重连**:它不是终帧 —— 本读口 yield 它之后**继续**读同一条连接
|
|
7
|
+
* (见 {@link import("../sse.js").isTerminalFrame}:这是除 15 分钟帽之外**唯一**不终止读口的 `error` 码);把它读成「没有待审」或「该重连」都是错读 —— 按 `errorCode` 提示「审批读取暂时失败」,
|
|
8
|
+
* 等下一拍的 `pending` / `heartbeat`;
|
|
9
|
+
* · `approvals.read_corrupt` —— 读到了**坏行**(读得出却读不成形):帧后 server **收流**(终帧,读口 yield 后结束)。重开之前先处置那一行,否则每次重开撞同一处。
|
|
10
|
+
* 老 server(≤7.132.x)读失败只有心跳(没有这两帧)。按 `errorCode` 分,**别解析 `message`**。
|
|
11
|
+
*/
|
|
12
|
+
export const APPROVALS_STREAM_READ_ERROR_CODES = Object.freeze([STREAM_READ_ADVISORY_CODE, "approvals.read_corrupt"]);
|
|
3
13
|
/**
|
|
4
14
|
* 审批决定体的**出处位**闭集 —— server ≥7.118.0 `APPROVAL_DECIDED_BY`(`dist/host-decision.js`)逐字同序:一个审批决定用**一只键**说是谁做的。
|
|
5
15
|
*
|
|
@@ -76,7 +86,7 @@ export class ApprovalsResource {
|
|
|
76
86
|
// 此前 7 信封 6 拆封各行其是)。迁移:`await approvals.list()` → `(await approvals.list()).pending`。
|
|
77
87
|
// #315(server ≥7.43)第二顶层键 `livePending` = streamApproval 窗内的流内 ask(ADDITIVE/
|
|
78
88
|
// tolerate-absent:键缺席=协调器未装配或老 server;空数组=有面此刻无待批——两义可判别,测 presence)。
|
|
79
|
-
// 🔴 分数组不混编:live 行决议走 POST /v1/tool-approvals/{
|
|
89
|
+
// 🔴 分数组不混编:live 行决议走 POST /v1/tool-approvals/{id}/respond,durable 行走 decide。
|
|
80
90
|
const q = opts?.owner ? `?owner=${encodeURIComponent(opts.owner)}` : ""; // 手拼(同 assistant.inbox 的既有拼法)
|
|
81
91
|
// 信封四键(`pending` / `serverNowMs` / `livePending` / `crashConverged`)的型与在场律见 {@link PendingList}。
|
|
82
92
|
return this.t.request({ method: "GET", path: `/v1/approvals${q}`, signal: opts?.signal });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approvals.js","sourceRoot":"","sources":["../../src/resources/approvals.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"approvals.js","sourceRoot":"","sources":["../../src/resources/approvals.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,11 +24,12 @@
|
|
|
24
24
|
* OPAQUE passthrough (redacted+size-bounded, never interpreted) — the shell MUST still fence it on display.
|
|
25
25
|
* v1 is FORM-MODE only (url-mode is rejected upstream as a phishing surface). */
|
|
26
26
|
import type { Transport } from "../transport.js";
|
|
27
|
+
import type { HitlFrameType } from "../events.js";
|
|
27
28
|
/** A live elicitation frame interleaved on the run's `tasks.streamRaw` connection (service `ElicitationFrame`
|
|
28
29
|
* elicitation.ts:41-54). `type` IS the SSE `event:` name AND is echoed in the payload. The shell renders the
|
|
29
30
|
* `elicitation` frame as a form dialog and dismisses it on `elicitation_complete`. */
|
|
30
31
|
export interface ElicitationFrame {
|
|
31
|
-
type: "elicitation" | "elicitation_complete"
|
|
32
|
+
type: Extract<HitlFrameType, "elicitation" | "elicitation_complete">;
|
|
32
33
|
/** The id to echo back to {@link ElicitationsResource.respond}. */
|
|
33
34
|
elicitationId: string;
|
|
34
35
|
/** Which opted-in MCP server asked (also the trust label core fences `message` against). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elicitations.d.ts","sourceRoot":"","sources":["../../src/resources/elicitations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;kFAwBkF;AAClF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"elicitations.d.ts","sourceRoot":"","sources":["../../src/resources/elicitations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;kFAwBkF;AAClF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD;;uFAEuF;AACvF,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,OAAO,CAAC,aAAa,EAAE,aAAa,GAAG,sBAAsB,CAAC,CAAC;IACrE,mEAAmE;IACnE,aAAa,EAAE,MAAM,CAAC;IACtB,4FAA4F;IAC5F,aAAa,EAAE,MAAM,CAAC;IACtB,kHAAkH;IAClH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;oFACgF;IAChF,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,+EAA+E;IAC/E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;IACzC;;qCAEiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAED;;uFAEuF;AACvF,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;IACxC;6GACyG;IACzG,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;CAChE;AAED,oFAAoF;AACpF,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;CACzC;AAED,qBAAa,oBAAoB;IACnB,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAAD,CAAC,EAAE,SAAS;IAEzC;;;;;;;wGAOoG;IAC9F,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAQhH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elicitations.js","sourceRoot":"","sources":["../../src/resources/elicitations.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"elicitations.js","sourceRoot":"","sources":["../../src/resources/elicitations.ts"],"names":[],"mappings":"AAsEA,MAAM,OAAO,oBAAoB;IACF;IAA7B,YAA6B,CAAY;QAAZ,MAAC,GAAD,CAAC,CAAW;IAAG,CAAC;IAE7C;;;;;;;wGAOoG;IACpG,KAAK,CAAC,OAAO,CAAC,EAAU,EAAE,QAAwB,EAAE,IAA+B;QACjF,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAmB;YACtC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,oBAAoB,kBAAkB,CAAC,EAAE,CAAC,UAAU;YAC1D,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,IAAI,EAAE,MAAM;SACrB,CAAC,CAAC;IACL,CAAC;CACF"}
|