@sema-agent/sdk 26.1.0 → 27.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.
Files changed (78) hide show
  1. package/README.md +81 -1
  2. package/dist/abort.d.ts +25 -0
  3. package/dist/abort.d.ts.map +1 -0
  4. package/dist/abort.js +42 -0
  5. package/dist/abort.js.map +1 -0
  6. package/dist/client.d.ts +8 -3
  7. package/dist/client.d.ts.map +1 -1
  8. package/dist/client.js +5 -4
  9. package/dist/client.js.map +1 -1
  10. package/dist/control-client.d.ts +4 -2
  11. package/dist/control-client.d.ts.map +1 -1
  12. package/dist/control-client.js +3 -3
  13. package/dist/control-client.js.map +1 -1
  14. package/dist/errors.d.ts +32 -10
  15. package/dist/errors.d.ts.map +1 -1
  16. package/dist/errors.js +15 -6
  17. package/dist/errors.js.map +1 -1
  18. package/dist/events.d.ts +3 -0
  19. package/dist/events.d.ts.map +1 -1
  20. package/dist/events.js.map +1 -1
  21. package/dist/model-route-env/index.d.ts +11 -4
  22. package/dist/model-route-env/index.d.ts.map +1 -1
  23. package/dist/model-route-env/index.js +52 -3
  24. package/dist/model-route-env/index.js.map +1 -1
  25. package/dist/registry/auth.d.ts.map +1 -1
  26. package/dist/registry/auth.js +23 -13
  27. package/dist/registry/auth.js.map +1 -1
  28. package/dist/registry/client.d.ts +9 -1
  29. package/dist/registry/client.d.ts.map +1 -1
  30. package/dist/registry/client.js +17 -2
  31. package/dist/registry/client.js.map +1 -1
  32. package/dist/registry/read-body.d.ts +2 -0
  33. package/dist/registry/read-body.d.ts.map +1 -0
  34. package/dist/registry/read-body.js +24 -0
  35. package/dist/registry/read-body.js.map +1 -0
  36. package/dist/registry/scopes-effective.d.ts.map +1 -1
  37. package/dist/registry/scopes-effective.js +4 -2
  38. package/dist/registry/scopes-effective.js.map +1 -1
  39. package/dist/resources/approvals.d.ts +23 -8
  40. package/dist/resources/approvals.d.ts.map +1 -1
  41. package/dist/resources/approvals.js +4 -3
  42. package/dist/resources/approvals.js.map +1 -1
  43. package/dist/resources/attachments.d.ts +2 -1
  44. package/dist/resources/attachments.d.ts.map +1 -1
  45. package/dist/resources/attachments.js +3 -9
  46. package/dist/resources/attachments.js.map +1 -1
  47. package/dist/resources/fleet.d.ts +0 -36
  48. package/dist/resources/fleet.d.ts.map +1 -1
  49. package/dist/resources/fleet.js +40 -1
  50. package/dist/resources/fleet.js.map +1 -1
  51. package/dist/resources/ops.d.ts +2 -1
  52. package/dist/resources/ops.d.ts.map +1 -1
  53. package/dist/resources/ops.js +4 -6
  54. package/dist/resources/ops.js.map +1 -1
  55. package/dist/resources/session-sync.d.ts +11 -3
  56. package/dist/resources/session-sync.d.ts.map +1 -1
  57. package/dist/resources/session-sync.js +7 -8
  58. package/dist/resources/session-sync.js.map +1 -1
  59. package/dist/resources/sessions.d.ts +9 -3
  60. package/dist/resources/sessions.d.ts.map +1 -1
  61. package/dist/resources/sessions.js +10 -12
  62. package/dist/resources/sessions.js.map +1 -1
  63. package/dist/resources/tool-approvals.d.ts +14 -5
  64. package/dist/resources/tool-approvals.d.ts.map +1 -1
  65. package/dist/resources/tool-approvals.js +14 -6
  66. package/dist/resources/tool-approvals.js.map +1 -1
  67. package/dist/sse.d.ts.map +1 -1
  68. package/dist/sse.js +4 -4
  69. package/dist/sse.js.map +1 -1
  70. package/dist/transport.d.ts +61 -21
  71. package/dist/transport.d.ts.map +1 -1
  72. package/dist/transport.js +123 -25
  73. package/dist/transport.js.map +1 -1
  74. package/dist/types.d.ts +30 -8
  75. package/dist/types.d.ts.map +1 -1
  76. package/dist/types.js.map +1 -1
  77. package/openapi.yaml +88 -26
  78. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/registry/auth.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,oDAAoD;AACpD,eAAO,MAAM,mBAAmB;;;;;;CAMtB,CAAC;AAEX,wDAAwD;AACxD,eAAO,MAAM,0BAA0B,iDAAiD,CAAC;AAEzF;;;wCAGwC;AACxC,MAAM,WAAW,kBAAkB;IACjC,+CAA+C;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,gBAAgB,EAAE,MAAM,CAAC;IACzB;oDACgD;IAChD,yBAAyB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,cAAc;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAED;gGACgG;AAChG,MAAM,WAAW,kBAAkB;IACjC,6DAA6D;IAC7D,YAAY,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,QAAQ,CAAC;IACrB,0BAA0B;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAyBD,iEAAiE;AACjE,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAO,GAC7E,OAAO,CAAC,kBAAkB,CAAC,CAS7B;AAED;;;;;qCAKqC;AACrC,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,IAAI,CAAC,kBAAkB,EAAE,aAAa,GAAG,UAAU,GAAG,YAAY,CAAC,EAC3E,IAAI,EAAE;IAAE,MAAM,EAAE,aAAa,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GACjH,OAAO,CAAC,kBAAkB,CAAC,CAwB7B;AAED;;6CAE6C;AAC7C,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE;IAAE,MAAM,EAAE,aAAa,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GAC1E,OAAO,CAAC,kBAAkB,CAAC,CAiB7B;AAED;2DAC2D;AAC3D,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE;IAAE,MAAM,EAAE,aAAa,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GAC1E,OAAO,CAAC,IAAI,CAAC,CAUf"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/registry/auth.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,oDAAoD;AACpD,eAAO,MAAM,mBAAmB;;;;;;CAMtB,CAAC;AAEX,wDAAwD;AACxD,eAAO,MAAM,0BAA0B,iDAAiD,CAAC;AAEzF;;;wCAGwC;AACxC,MAAM,WAAW,kBAAkB;IACjC,+CAA+C;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,gBAAgB,EAAE,MAAM,CAAC;IACzB;oDACgD;IAChD,yBAAyB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,cAAc;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAED;gGACgG;AAChG,MAAM,WAAW,kBAAkB;IACjC,6DAA6D;IAC7D,YAAY,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,QAAQ,CAAC;IACrB,0BAA0B;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AA8BD,iEAAiE;AACjE,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAO,GAC7E,OAAO,CAAC,kBAAkB,CAAC,CAS7B;AAED;;;;;qCAKqC;AACrC,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,IAAI,CAAC,kBAAkB,EAAE,aAAa,GAAG,UAAU,GAAG,YAAY,CAAC,EAC3E,IAAI,EAAE;IAAE,MAAM,EAAE,aAAa,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GACjH,OAAO,CAAC,kBAAkB,CAAC,CA2B7B;AAED;;6CAE6C;AAC7C,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE;IAAE,MAAM,EAAE,aAAa,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GAC1E,OAAO,CAAC,kBAAkB,CAAC,CAiB7B;AAED;2DAC2D;AAC3D,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE;IAAE,MAAM,EAAE,aAAa,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GAC1E,OAAO,CAAC,IAAI,CAAC,CAUf"}
@@ -11,7 +11,9 @@
11
11
  * WIRE CASING:OAuth 标准端点,wire 字段 snake_case(access_token/device_code/…)——故意破本包
12
12
  * camelCase 习惯,勿"修"(settings-schema 同句)。
13
13
  */
14
+ import { sleep as abortableSleep, throwIfAborted } from "../abort.js";
14
15
  import { OAuthFlowError, RegistryApiError } from "./errors.js";
16
+ import { readJsonBody } from "./read-body.js";
15
17
  /** 值拷贝 ← settings-schema AUTH_V1_PATHS(同源锚测试对账)。 */
16
18
  export const REGISTRY_AUTH_PATHS = {
17
19
  deviceCode: "/api/v1/auth/device/code",
@@ -24,14 +26,20 @@ export const REGISTRY_AUTH_PATHS = {
24
26
  export const REGISTRY_DEVICE_GRANT_TYPE = "urn:ietf:params:oauth:grant-type:device_code";
25
27
  const joinUrl = (baseUrl, path) => baseUrl.replace(/\/+$/, "") + path;
26
28
  const postJson = async (fetchImpl, url, body, signal) => {
27
- const res = await fetchImpl(url, {
28
- method: "POST",
29
- headers: { "content-type": "application/json" },
30
- body: JSON.stringify(body),
31
- ...(signal ? { signal } : {}),
32
- });
33
- const parsed = await res.json().catch(() => undefined);
34
- return { status: res.status, body: parsed };
29
+ let res;
30
+ try {
31
+ res = await fetchImpl(url, {
32
+ method: "POST",
33
+ headers: { "content-type": "application/json" },
34
+ body: JSON.stringify(body),
35
+ ...(signal ? { signal } : {}),
36
+ });
37
+ }
38
+ catch (e) {
39
+ throwIfAborted(signal); // 取消律(与 `RegistryClient` 的 catch 同一句):飞行中 abort 而请求失败 ⇒ 以 signal.reason 拒,不论 fetch 拿什么拒
40
+ throw e;
41
+ }
42
+ return { status: res.status, body: await readJsonBody(res, signal) }; // 子路径唯一的读体口:体被 abort 截断 ⇒ signal.reason;读完的体从不因 abort 丢弃
35
43
  };
36
44
  const oauthCodeOf = (body) => {
37
45
  const e = body?.error;
@@ -57,14 +65,16 @@ export async function requestDeviceCode(baseUrl, opts = {}) {
57
65
  * `sleep` 可注入(测试);`signal` 中断轮询。 */
58
66
  export async function pollUntilApproved(baseUrl, device, opts) {
59
67
  const f = opts.fetch ?? fetch;
60
- const sleep = opts.sleep ?? ((ms) => new Promise((r) => setTimeout(r, ms)));
68
+ // 默认睡眠听 `signal`(abort ⇒ 立即醒来;醒后的 `throwIfAborted` 以 `signal.reason` 拒)。`opts.sleep` 是测试接缝,原样用。
69
+ const sleep = opts.sleep ?? ((ms) => abortableSleep(ms, opts.signal).catch(() => undefined));
61
70
  let intervalSeconds = device.interval;
62
71
  for (;;) {
63
- // [2400] RC-8(5.0.0):调用方 abort 是客户端事件,不再盗用服务端码 `expired_token`(其成文语义=
64
- // 「重开流程」,把用户取消编成它 ⇒ 宿主自动重开,取消不掉)。标准 AbortError 形,消费方按 name 分支。
65
- if (opts.signal?.aborted)
66
- throw new DOMException("polling aborted by caller", "AbortError");
72
+ // [2400] RC-8(5.0.0):调用方 abort 是客户端事件,不盗用服务端码 `expired_token`(其成文语义=「重开流程」,
73
+ // 把用户取消编成它 ⇒ 宿主自动重开,取消不掉)。27.0.0 起拒因 = 调用方 `signal.reason`(与传输层同一只 `throwIfAborted`):
74
+ // 裸 `abort()` 时名字仍是 AbortError;`AbortSignal.timeout()` ⇒ TimeoutError;显式原因原样。环首 / 间隔 / 飞行中三个落点同一句。
75
+ throwIfAborted(opts.signal);
67
76
  await sleep(intervalSeconds * 1000);
77
+ throwIfAborted(opts.signal); // 间隔里被 abort:醒来就拒,不再发 device/token
68
78
  const { status, body } = await postJson(f, joinUrl(baseUrl, REGISTRY_AUTH_PATHS.deviceToken), { grant_type: REGISTRY_DEVICE_GRANT_TYPE, device_code: device.device_code }, opts.signal);
69
79
  if (status === 200) {
70
80
  const grant = body;
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/registry/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/registry/auth.ts"],"names":[],"mappings":"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"}
@@ -24,15 +24,23 @@ export declare class RegistryClient {
24
24
  * single-use,两个并发 refresh 里后到的那个必吃 invalid_grant 并把刚续上的会话整个清掉。 */
25
25
  private refreshInFlight;
26
26
  constructor(config: RegistryClientConfig);
27
+ /** 同 {@link RegistryClient.requestRaw}(非 2xx 抛类型错);取消律在共享刷新在飞时的例外见 `requestRaw`。 */
27
28
  request<T>(opts: RegistryRequestOptions): Promise<T>;
28
29
  /** 非抛的原始面(R2 的条件请求用:304/412 等**语义状态**要直出给调用方判别,不是错误)。
29
- * 401 仍在这里走 single-flight refresh + 重试一次——凭证生命周期对所有面统一,绝不旁路。 */
30
+ * 401 仍在这里走 single-flight refresh + 重试一次——凭证生命周期对所有面统一,绝不旁路。
31
+ * 🔴 **取消律的一处例外(共享刷新)**:请求在 401 后加入一次**在飞的共享刷新**再被 abort,不会立即以 `signal.reason` 拒 —— 它等这次刷新落定:
32
+ * 刷新失败 ⇒ 以**刷新自己的错误**拒(不是 `signal.reason`);刷新成功 ⇒ 不再重发、以 `signal.reason` 拒。
33
+ * 另一面:刷新用的是发起它的那个请求的 `signal` —— 发起者 abort ⇒ 刷新随之取消(`fetch` 听 signal 时),加入这次刷新的别的请求哪怕自己没 abort,也以发起者的 `signal.reason` 拒(abort 落在刷新请求在途时两版同;落在读刷新应答体时 26.1.0 拒 `TypeError`)。 */
30
34
  requestRaw(opts: RegistryRequestOptions): Promise<{
31
35
  status: number;
32
36
  body: unknown;
33
37
  headers: Headers;
34
38
  }>;
35
39
  private refreshOnce;
40
+ /** 单发一次(网络重试不在本引擎,见模块头)。取消律与 worker 传输层的重试器同一条规则(同一只 `throwIfAborted`):
41
+ * 已 abort ⇒ 以 `signal.reason` 拒、**不发请求**(本引擎把调用方 signal 经 `abort` 事件桥到自己的 controller,监听器挂在一只**已** abort 的 signal 上永不触发 ——
42
+ * 所以查在取令牌与「没登录」判之后、挂监听之前 —— 没登录的事实先于取消,与 26.1.0 同);飞行中 abort 而请求以失败告终 ⇒ 以 `signal.reason` 拒(内部 controller 的拒因是平台 `AbortError`,不交出去);
43
+ * 读体走子路径唯一的读体口 {@link readJsonBody}(体被 abort 截断 ⇒ `signal.reason`;读完的体从不因 abort 丢弃)。 */
36
44
  private rawRequest;
37
45
  /** 非 2xx ⇒ 本子路径唯一的构造点 {@link toRegistryApiError}(scope-gone 409 ⇒ `ScopeGoneError`,仍是 `RegistryApiError`)。 */
38
46
  private settle;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/registry/client.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,WAAW,oBAAoB;IACnC,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC;uEACmE;IACnE,OAAO,CAAC,eAAe,CAA+B;gBAE1C,MAAM,EAAE,oBAAoB;IAOlC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,CAAC,CAAC;IAI1D;qEACiE;IAC3D,UAAU,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAQ5G,OAAO,CAAC,WAAW;YASL,UAAU;IA0BxB,8GAA8G;IAC9G,OAAO,CAAC,MAAM;CAIf"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/registry/client.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,WAAW,oBAAoB;IACnC,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC;uEACmE;IACnE,OAAO,CAAC,eAAe,CAA+B;gBAE1C,MAAM,EAAE,oBAAoB;IAOxC,oFAAoF;IAC9E,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,CAAC,CAAC;IAI1D;;;;oLAIgL;IAC1K,UAAU,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAQ5G,OAAO,CAAC,WAAW;IASnB;;;6FAGyF;YAC3E,UAAU;IA8BxB,8GAA8G;IAC9G,OAAO,CAAC,MAAM;CAIf"}
@@ -8,7 +8,9 @@
8
8
  * buildHeaders 闭包捕获静态 token,而这里 token 每次请求都可能已被 refresh 换新(必须 per-request
9
9
  * 从 TokenProvider 读)。故 R1 用一个薄 fetch 引擎;若 R2 发现网络重试确有需要,再评估共享底座。
10
10
  */
11
+ import { throwIfAborted } from "../abort.js";
11
12
  import { OAuthFlowError, toRegistryApiError } from "./errors.js";
13
+ import { readJsonBody } from "./read-body.js";
12
14
  import { refreshTokens } from "./auth.js";
13
15
  export class RegistryClient {
14
16
  baseUrl;
@@ -24,11 +26,15 @@ export class RegistryClient {
24
26
  this.fetchImpl = config.fetch ?? fetch;
25
27
  this.timeoutMs = config.timeoutMs ?? 30_000;
26
28
  }
29
+ /** 同 {@link RegistryClient.requestRaw}(非 2xx 抛类型错);取消律在共享刷新在飞时的例外见 `requestRaw`。 */
27
30
  async request(opts) {
28
31
  return this.settle(await this.requestRaw(opts));
29
32
  }
30
33
  /** 非抛的原始面(R2 的条件请求用:304/412 等**语义状态**要直出给调用方判别,不是错误)。
31
- * 401 仍在这里走 single-flight refresh + 重试一次——凭证生命周期对所有面统一,绝不旁路。 */
34
+ * 401 仍在这里走 single-flight refresh + 重试一次——凭证生命周期对所有面统一,绝不旁路。
35
+ * 🔴 **取消律的一处例外(共享刷新)**:请求在 401 后加入一次**在飞的共享刷新**再被 abort,不会立即以 `signal.reason` 拒 —— 它等这次刷新落定:
36
+ * 刷新失败 ⇒ 以**刷新自己的错误**拒(不是 `signal.reason`);刷新成功 ⇒ 不再重发、以 `signal.reason` 拒。
37
+ * 另一面:刷新用的是发起它的那个请求的 `signal` —— 发起者 abort ⇒ 刷新随之取消(`fetch` 听 signal 时),加入这次刷新的别的请求哪怕自己没 abort,也以发起者的 `signal.reason` 拒(abort 落在刷新请求在途时两版同;落在读刷新应答体时 26.1.0 拒 `TypeError`)。 */
32
38
  async requestRaw(opts) {
33
39
  const first = await this.rawRequest(opts);
34
40
  if (first.status !== 401)
@@ -45,10 +51,15 @@ export class RegistryClient {
45
51
  }
46
52
  return this.refreshInFlight;
47
53
  }
54
+ /** 单发一次(网络重试不在本引擎,见模块头)。取消律与 worker 传输层的重试器同一条规则(同一只 `throwIfAborted`):
55
+ * 已 abort ⇒ 以 `signal.reason` 拒、**不发请求**(本引擎把调用方 signal 经 `abort` 事件桥到自己的 controller,监听器挂在一只**已** abort 的 signal 上永不触发 ——
56
+ * 所以查在取令牌与「没登录」判之后、挂监听之前 —— 没登录的事实先于取消,与 26.1.0 同);飞行中 abort 而请求以失败告终 ⇒ 以 `signal.reason` 拒(内部 controller 的拒因是平台 `AbortError`,不交出去);
57
+ * 读体走子路径唯一的读体口 {@link readJsonBody}(体被 abort 截断 ⇒ `signal.reason`;读完的体从不因 abort 丢弃)。 */
48
58
  async rawRequest(opts) {
49
59
  const current = await this.tokens.get();
50
60
  if (!current)
51
61
  throw new OAuthFlowError("invalid_grant", "not logged in (TokenProvider is empty) — run the device flow first");
62
+ throwIfAborted(opts.signal);
52
63
  const ac = new AbortController();
53
64
  const timer = setTimeout(() => ac.abort(), this.timeoutMs);
54
65
  const onOuterAbort = () => ac.abort();
@@ -64,9 +75,13 @@ export class RegistryClient {
64
75
  ...(opts.body !== undefined ? { body: JSON.stringify(opts.body) } : {}),
65
76
  signal: ac.signal,
66
77
  });
67
- const body = await res.json().catch(() => undefined);
78
+ const body = await readJsonBody(res, opts.signal);
68
79
  return { status: res.status, body, headers: res.headers };
69
80
  }
81
+ catch (e) {
82
+ throwIfAborted(opts.signal); // 取消律:飞行中 abort 而请求失败 ⇒ 以 signal.reason 拒,不论 fetch 拿什么拒
83
+ throw e;
84
+ }
70
85
  finally {
71
86
  clearTimeout(timer);
72
87
  opts.signal?.removeEventListener("abort", onOuterAbort);
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/registry/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/registry/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function readJsonBody(res: Response, signal: AbortSignal | undefined): Promise<unknown>;
2
+ //# sourceMappingURL=read-body.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-body.d.ts","sourceRoot":"","sources":["../../src/registry/read-body.ts"],"names":[],"mappings":"AAQA,wBAAsB,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAanG"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * registry 子路径**唯一的读体口**(`RegistryClient.rawRequest` 与设备码 / 刷新 / 登出共用的 `postJson` 都经它读应答体)。一条规则:
3
+ * · 体**读不出**(读到一半被截断)⇒ 调用方已 abort 则以 `signal.reason` 拒(取消不报成「200 空体」/ 丢了码的错 / `TypeError`);没 abort(连接被重置、本引擎自己的超时)⇒ `undefined`(既有读法);
4
+ * · 体**读完了** ⇒ 从不因 abort 丢弃(取消不吞一次已经发生的写 / 换发):JSON 解析失败(空体 / 非 JSON)读作 `undefined`,与是否 abort 无关。
5
+ * 读与解析分两步做,正是为了把「读不出」与「读完了但不是 JSON」分开 —— 一只 `res.json().catch(…)` 分不出这两件事。
6
+ */
7
+ import { throwIfAborted } from "../abort.js";
8
+ export async function readJsonBody(res, signal) {
9
+ let text;
10
+ try {
11
+ text = await res.text();
12
+ }
13
+ catch {
14
+ throwIfAborted(signal);
15
+ return undefined;
16
+ }
17
+ try {
18
+ return text ? JSON.parse(text) : undefined;
19
+ }
20
+ catch {
21
+ return undefined;
22
+ }
23
+ }
24
+ //# sourceMappingURL=read-body.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-body.js","sourceRoot":"","sources":["../../src/registry/read-body.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,GAAa,EAAE,MAA+B;IAC/E,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,cAAc,CAAC,MAAM,CAAC,CAAC;QACvB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAa,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"scopes-effective.d.ts","sourceRoot":"","sources":["../../src/registry/scopes-effective.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,sDAAsD;AACtD,eAAO,MAAM,qBAAqB;;;CAGxB,CAAC;AAEX;;;;+EAI+E;AAC/E,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,WAAW,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC,CAAC;IACrF,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAED;;mGAEmG;AACnG,MAAM,WAAW,mBAAmB;IAClC,6CAA6C;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,QAAQ,CAAC;IACrB,0BAA0B;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,IAAI,EAAE,WAAW,CAAC;IAClB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAED,kEAAkE;AAClE,wBAAgB,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAE/G;AAED;;;kBAGkB;AAClB,wBAAsB,WAAW,CAC/B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GAC9B,OAAO,CAAC,mBAAmB,CAAC,CAK9B;AAED,uEAAuE;AACvE,MAAM,MAAM,eAAe,GAAG;IAAE,MAAM,EAAE,GAAG,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,GAAG,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7G;;oEAEoE;AACpE,wBAAsB,YAAY,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAWvJ"}
1
+ {"version":3,"file":"scopes-effective.d.ts","sourceRoot":"","sources":["../../src/registry/scopes-effective.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,sDAAsD;AACtD,eAAO,MAAM,qBAAqB;;;CAGxB,CAAC;AAEX;;;;+EAI+E;AAC/E,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,WAAW,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC,CAAC;IACrF,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAED;;mGAEmG;AACnG,MAAM,WAAW,mBAAmB;IAClC,6CAA6C;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,QAAQ,CAAC;IACrB,0BAA0B;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,IAAI,EAAE,WAAW,CAAC;IAClB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAED,kEAAkE;AAClE,wBAAgB,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAE/G;AAED;;;kBAGkB;AAClB,wBAAsB,WAAW,CAC/B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GAC9B,OAAO,CAAC,mBAAmB,CAAC,CAK9B;AAED,uEAAuE;AACvE,MAAM,MAAM,eAAe,GAAG;IAAE,MAAM,EAAE,GAAG,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,GAAG,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7G;;oEAEoE;AACpE,wBAAsB,YAAY,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAavJ"}
@@ -23,14 +23,16 @@ export async function switchScope(client, tokens, scope, opts) {
23
23
  * `principal` ⇒ `?principal=` query([1864] C2-10 管理面消费形:查看**别人**的生效配置)。
24
24
  * 走 RegistryClient 同一引擎(Bearer + 401 单飞 refresh 重试)——凭证生命周期不旁路。 */
25
25
  export async function getEffective(client, opts) {
26
+ // 304 只是条件请求的答案(与 worker 传输层同一条律):带了非空 `etag` ⇒ 发 `if-none-match`、304 读作没变;没带 ⇒ 304 与其它非 2xx 同是类型错(调用方没有缓存可复用)。
27
+ const validator = opts?.etag || undefined;
26
28
  const r = await client.requestRaw({
27
29
  method: "GET",
28
30
  path: `/api/v1/effective${opts?.principal ? `?principal=${encodeURIComponent(opts.principal)}` : ""}`,
29
- ...(opts?.etag ? { headers: { "if-none-match": opts.etag } } : {}),
31
+ ...(validator !== undefined ? { headers: { "if-none-match": validator } } : {}),
30
32
  ...(opts?.signal ? { signal: opts.signal } : {}),
31
33
  });
32
34
  const etag = r.headers.get("etag") ?? undefined;
33
- if (r.status === 304)
35
+ if (r.status === 304 && validator !== undefined)
34
36
  return { status: 304, ...(etag !== undefined ? { etag } : {}) };
35
37
  if (r.status >= 200 && r.status < 300)
36
38
  return { status: 200, ...(etag !== undefined ? { etag } : {}), body: r.body };
@@ -1 +1 @@
1
- {"version":3,"file":"scopes-effective.js","sourceRoot":"","sources":["../../src/registry/scopes-effective.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scopes-effective.js","sourceRoot":"","sources":["../../src/registry/scopes-effective.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  import type { Transport } from "../transport.js";
5
5
  import type { ApprovalDecisionResult, AskClass, PendingList } from "../types.js";
6
6
  import type { QuestionAnswer } from "./questions.js";
7
- import type { AskOrigin, BoundGrantAbsence, PersistedRuleMandate, RuleOffersAbsence, ToolApprovalCardWord } from "./tool-approvals.js";
7
+ import type { AskOrigin, AutoModeFallbackCause, BoundGrantAbsence, BoundSkillGrants, PersistedRuleMandate, RuleOffersAbsence, ToolApprovalCardWord } from "./tool-approvals.js";
8
8
  /** One per-session approval exemption ("本会话不再询问", service exemptions ruling — an APPROVAL MEMORY, not a
9
9
  * policy loosen: deny/neverAuto always outrank it). Keyed in CANONICAL tool-name space (service
10
10
  * `ApprovalExemptionRow`, approval-exemption-store.ts). */
@@ -72,6 +72,11 @@ export interface ApprovalStreamEvent {
72
72
  /** 只 `pending` 帧(server ≥7.129.0 / core 7.51.0 #1688):park 行的授予绑定缺席词,= {@link PendingCheckpoint.boundGrantAbsence} 展开(读法同那一键)。
73
73
  * `live_pending` 帧的行顶层**不带** —— 那一位在它的 `frame` 里({@link LivePendingRow.frame})。 */
74
74
  boundGrantAbsence?: BoundGrantAbsence;
75
+ /** 只 `pending` 帧(server ≥7.136.0):停驻的技能卡的授予绑定三位 = {@link PendingCheckpoint.boundGrantDigest} / `.boundGrants` / `.classifierNoRuling` 展开(同一只投影;读法逐键见那三键;在场才带,普通卡三位都缺席)。
76
+ * `live_pending` 帧的行顶层**不带** —— 三位在它的 `frame` 里({@link LivePendingRow.frame})。 */
77
+ boundGrantDigest?: string;
78
+ boundGrants?: BoundSkillGrants;
79
+ classifierNoRuling?: AutoModeFallbackCause;
75
80
  /** 只 `pending` 帧(K-37 扩项;server ≥7.109.0 / S-934 ②):park 行的类对(= {@link PendingCheckpoint.askClass} / `.classes` 展开,两键同在同缺)。
76
81
  * `live_pending` 帧的行顶层**不带** —— 那一对在它的 `frame` 里({@link LivePendingRow.frame})。 */
77
82
  askClass?: AskClass;
@@ -188,17 +193,27 @@ export interface ApprovalDecision {
188
193
  feedback?: string;
189
194
  }
190
195
  /** Accepted shape of a decide that hit a **parked background agent** checkpoint (server 1.267, design/153
191
- * 件3d;ASSISTANT-WIRE-CONTRACT §4a parked variant). The revive drives ASYNCHRONOUSLY — 200 means accepted,
192
- * not completed; a failed drive honestly re-parks the row and the pending re-appears on `list()`.
196
+ * 件3d;ASSISTANT-WIRE-CONTRACT §4a parked variant). **Two arms, read by `status`** —
197
+ * · `status: "resuming"` —— **受理回执**:复活异步驱动,200 = accepted, not completed;a failed drive honestly re-parks the row and the pending re-appears on `list()`;
198
+ * · `status: "failed"`(**server ≥7.136.0**,`decision` 恒 `"deny"`)—— **作废回执**:复活不了的停驻行(后台子代省略了 `name` 的无名行 / 行上没有根会话锚)上 **deny = 作废这张卡**:
199
+ * 卡按自己的 scope CAS 作废、离开待决队列与 `/v1/approvals/stream` 快照,子代由引擎的对账翻成终局 `failed`,被门的工具零执行、不授予 `remember`;**没有任何续跑在飞**(别等一个永远不来的复活)。
200
+ * 这两形的 approve 仍是 `409 decide.row_unrevivable`;作废的 CAS 输了(卡已被窗到期收走 / 另一次作废)⇒ 既有的 `409 decide.gate_moved`。
193
201
  * ⚠️ #316(server ≥7.37):`status === "resuming"` **不再单独判别这形** —— 任务级 decide 在 durable 部署
194
202
  * 上也改答受理形 `{taskId, sessionId, status:"resuming", bindingEnforced:true}`(见 `decide()` 顶注)。
195
- * 判别改用:`decision` 在场 = parked 受理;`sessionId`/`bindingEnforced` 在场 = 任务级受理。 */
196
- export interface ParkedDecideAccepted {
203
+ * 判别改用:`decision` 在场且 `sessionId` 缺席 = parked 回执(两臂都是),再看 `status` 分臂;`sessionId`/`bindingEnforced` 在场 = 任务级受理。
204
+ * 🔴 27.0.0:输出型放宽 —— 此前本型的 `status` 恒为字面 `"resuming"`,把它当字面读的代码(`const s: "resuming" = r.status`)编不过,按 `status` 穷举 switch 补一臂 `"failed"`。
205
+ * 另:本型由 interface 改成**联合型别名**,所以 `interface X extends ParkedDecideAccepted` ⇒ TS2312、`class X implements ParkedDecideAccepted` ⇒ TS2422(改成 `type X = ParkedDecideAccepted & { … }` 或按臂各自声明)。 */
206
+ export type ParkedDecideAccepted = {
197
207
  /** The background agent handle (`a*`). */
198
208
  taskId: string;
199
209
  status: "resuming";
200
210
  decision: "approve" | "deny";
201
- }
211
+ } | {
212
+ /** The background agent handle (`a*`). */
213
+ taskId: string;
214
+ status: "failed";
215
+ decision: "deny";
216
+ };
202
217
  export declare class ApprovalsResource {
203
218
  private readonly t;
204
219
  constructor(t: Transport);
@@ -247,8 +262,8 @@ export declare class ApprovalsResource {
247
262
  * 等于把结果扔掉,腿如实保持同步)。
248
263
  *
249
264
  * **Parked background-agent variant**(server 1.267,ASSISTANT-WIRE-CONTRACT §4a):当该 sessionId 的
250
- * pending checkpoint 属于一个 parked 后台子代时,成功形是 {@link ParkedDecideAccepted}(受理语义,
251
- * `status:"resuming"`,复活异步驱动;失败会诚实 re-park 并重新出现在 `list()`)。该腿的专有 4xx/5xx:
265
+ * pending checkpoint 属于一个 parked 后台子代时,成功形是 {@link ParkedDecideAccepted}(两臂,按 `status` 读:
266
+ * `"resuming"` = 受理语义,复活异步驱动,失败会诚实 re-park 并重新出现在 `list()`;`"failed"`〔server ≥7.136.0〕= 复活不了的行上 deny 的作废回执,卡已关、没有续跑)。该腿的专有 4xx/5xx:
252
267
  * `decide.claim_lost`/`decide.gate_moved`/`decide.not_parked`(409,行被并发 decide/stop 抢走——重查列表)、
253
268
  * `decide.revive_rejected`(409)/`decide.revive_failed`(500,claim 已回滚可重试)、`decide.store_unreachable`
254
269
  * (503)、`decide.parked_question_unsupported`/`decide.parked_answer_unsupported`(400——parked 腿不支持
@@ -1 +1 @@
1
- {"version":3,"file":"approvals.d.ts","sourceRoot":"","sources":["../../src/resources/approvals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"approvals.d.ts","sourceRoot":"","sources":["../../src/resources/approvals.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { readSseFrames, HEARTBEAT_GRACE_MS, isTerminalFrame, STREAM_READ_ADVISORY_CODE } from "../sse.js";
2
+ import { sleep } from "../abort.js";
2
3
  import { APIError } from "../errors.js";
3
4
  /**
4
5
  * `GET /v1/approvals/stream` **读失败**的两只机读错误帧的码(server ≥7.133.0;`event: error` `{ type: "error", errorCode, message }`)。此前读失败只会让这条流静默成「只有心跳」,
@@ -109,8 +110,8 @@ export class ApprovalsResource {
109
110
  * 等于把结果扔掉,腿如实保持同步)。
110
111
  *
111
112
  * **Parked background-agent variant**(server 1.267,ASSISTANT-WIRE-CONTRACT §4a):当该 sessionId 的
112
- * pending checkpoint 属于一个 parked 后台子代时,成功形是 {@link ParkedDecideAccepted}(受理语义,
113
- * `status:"resuming"`,复活异步驱动;失败会诚实 re-park 并重新出现在 `list()`)。该腿的专有 4xx/5xx:
113
+ * pending checkpoint 属于一个 parked 后台子代时,成功形是 {@link ParkedDecideAccepted}(两臂,按 `status` 读:
114
+ * `"resuming"` = 受理语义,复活异步驱动,失败会诚实 re-park 并重新出现在 `list()`;`"failed"`〔server ≥7.136.0〕= 复活不了的行上 deny 的作废回执,卡已关、没有续跑)。该腿的专有 4xx/5xx:
114
115
  * `decide.claim_lost`/`decide.gate_moved`/`decide.not_parked`(409,行被并发 decide/stop 抢走——重查列表)、
115
116
  * `decide.revive_rejected`(409)/`decide.revive_failed`(500,claim 已回滚可重试)、`decide.store_unreachable`
116
117
  * (503)、`decide.parked_question_unsupported`/`decide.parked_answer_unsupported`(400——parked 腿不支持
@@ -228,7 +229,7 @@ export class ApprovalsResource {
228
229
  catch (e) {
229
230
  if (++failures >= 5)
230
231
  throw e;
231
- await new Promise((r) => setTimeout(r, 500 * failures));
232
+ await sleep(500 * failures, opts?.signal).catch(() => undefined); // 重连退避可被 abort 打断:醒来后环首的 aborted 检查安静结束(`sleep` 只会因 abort 而拒)
232
233
  continue;
233
234
  }
234
235
  if (!res.ok)
@@ -1 +1 @@
1
- {"version":3,"file":"approvals.js","sourceRoot":"","sources":["../../src/resources/approvals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"approvals.js","sourceRoot":"","sources":["../../src/resources/approvals.ts"],"names":[],"mappings":"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"}
@@ -42,7 +42,8 @@ export declare class AttachmentsResource {
42
42
  mime?: string;
43
43
  signal?: AbortSignal;
44
44
  }): Promise<AttachmentInfo>;
45
- /** GET /v1/attachments/:id — 取回字节(content-type=存储 mime)。未知/他人 → 404(NotFoundError)。 */
45
+ /** GET /v1/attachments/:id — 取回字节(content-type=存储 mime)。未知/他人 → 404(NotFoundError)。
46
+ * 开请求遇可重试状态(408 / 429 / 5xx,`permanence: "terminal"` 与确定性失败码除外)由本包重试(至多 `maxRetries` 次、只在首字节之前、abort 立即停)—— GET 读口同律,与 `manifest()` 同一只重试器;读体失败不重试。 */
46
47
  get(id: string, opts?: {
47
48
  signal?: AbortSignal;
48
49
  }): Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"attachments.d.ts","sourceRoot":"","sources":["../../src/resources/attachments.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,+CAA+C;AAC/C,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAAD,CAAC,EAAE,SAAS;IAEzC;wEACoE;IAC9D,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAYtH,uFAAuF;IACjF,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,UAAU,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAWpG,mEAAmE;IAC7D,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CASzE"}
1
+ {"version":3,"file":"attachments.d.ts","sourceRoot":"","sources":["../../src/resources/attachments.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,+CAA+C;AAC/C,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAAD,CAAC,EAAE,SAAS;IAEzC;wEACoE;IAC9D,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAYtH;4JACwJ;IAClJ,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,UAAU,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAKpG,mEAAmE;IAC7D,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CASzE"}
@@ -17,16 +17,10 @@ export class AttachmentsResource {
17
17
  throw await this.t.errorFrom(res);
18
18
  return (await res.json());
19
19
  }
20
- /** GET /v1/attachments/:id — 取回字节(content-type=存储 mime)。未知/他人 → 404(NotFoundError)。 */
20
+ /** GET /v1/attachments/:id — 取回字节(content-type=存储 mime)。未知/他人 → 404(NotFoundError)。
21
+ * 开请求遇可重试状态(408 / 429 / 5xx,`permanence: "terminal"` 与确定性失败码除外)由本包重试(至多 `maxRetries` 次、只在首字节之前、abort 立即停)—— GET 读口同律,与 `manifest()` 同一只重试器;读体失败不重试。 */
21
22
  async get(id, opts) {
22
- const res = await this.t.openRaw({
23
- method: "GET",
24
- path: `/v1/attachments/${encodeURIComponent(id)}`,
25
- accept: "*/*",
26
- ...(opts?.signal ? { signal: opts.signal } : {}),
27
- });
28
- if (!res.ok)
29
- throw await this.t.errorFrom(res);
23
+ const res = await this.t.openRawGet({ path: `/v1/attachments/${encodeURIComponent(id)}`, accept: "*/*", signal: opts?.signal }); // success = 2xx only (no validator sent ⇒ a 304 is a typed error too); a failed open throws the typed error after the retrier is done
30
24
  return { bytes: new Uint8Array(await res.arrayBuffer()), mime: res.headers.get("content-type") ?? "application/octet-stream" };
31
25
  }
32
26
  /** DELETE /v1/attachments/:id — 204;未知/他人 → 404(NotFoundError)。 */
@@ -1 +1 @@
1
- {"version":3,"file":"attachments.js","sourceRoot":"","sources":["../../src/resources/attachments.ts"],"names":[],"mappings":"AAqCA,MAAM,OAAO,mBAAmB;IACD;IAA7B,YAA6B,CAAY;QAAZ,MAAC,GAAD,CAAC,CAAW;IAAG,CAAC;IAE7C;wEACoE;IACpE,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,KAAiB,EAAE,IAA8C;QAC1F,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;YAC/B,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,wBAAwB,kBAAkB,CAAC,IAAI,CAAC,EAAE;YACxD,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,IAAI,EAAE,IAAI,IAAI,0BAA0B;YACrD,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjD,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,MAAM,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC/C,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAmB,CAAC;IAC9C,CAAC;IAED,uFAAuF;IACvF,KAAK,CAAC,GAAG,CAAC,EAAU,EAAE,IAA+B;QACnD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;YAC/B,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,mBAAmB,kBAAkB,CAAC,EAAE,CAAC,EAAE;YACjD,MAAM,EAAE,KAAK;YACb,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjD,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,MAAM,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC/C,OAAO,EAAE,KAAK,EAAE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,0BAA0B,EAAE,CAAC;IACjI,CAAC;IAED,mEAAmE;IACnE,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,IAA+B;QACtD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;YAC/B,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,mBAAmB,kBAAkB,CAAC,EAAE,CAAC,EAAE;YACjD,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjD,CAAC,CAAC;QACH,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO;QAC/B,MAAM,MAAM,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;CACF"}
1
+ {"version":3,"file":"attachments.js","sourceRoot":"","sources":["../../src/resources/attachments.ts"],"names":[],"mappings":"AAqCA,MAAM,OAAO,mBAAmB;IACD;IAA7B,YAA6B,CAAY;QAAZ,MAAC,GAAD,CAAC,CAAW;IAAG,CAAC;IAE7C;wEACoE;IACpE,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,KAAiB,EAAE,IAA8C;QAC1F,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;YAC/B,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,wBAAwB,kBAAkB,CAAC,IAAI,CAAC,EAAE;YACxD,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,IAAI,EAAE,IAAI,IAAI,0BAA0B;YACrD,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjD,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,MAAM,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC/C,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAmB,CAAC;IAC9C,CAAC;IAED;4JACwJ;IACxJ,KAAK,CAAC,GAAG,CAAC,EAAU,EAAE,IAA+B;QACnD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,mBAAmB,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,sIAAsI;QACvQ,OAAO,EAAE,KAAK,EAAE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,0BAA0B,EAAE,CAAC;IACjI,CAAC;IAED,mEAAmE;IACnE,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,IAA+B;QACtD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;YAC/B,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,mBAAmB,kBAAkB,CAAC,EAAE,CAAC,EAAE;YACjD,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjD,CAAC,CAAC;QACH,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO;QAC/B,MAAM,MAAM,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;CACF"}
@@ -1,39 +1,3 @@
1
- /**
2
- * MF-Fleet (shell-host data contract) — `GET /v1/fleet/stream` LIVE multi-row fleet view as an SSE PUSH stream.
3
- *
4
- * The fleet view animates a MULTI-ROW tree: every active task's `status/elapsedMs/tokens` and every
5
- * workflow's `doneCount N/M · failedCount` TRANSITION over time. This is a *push* stream, not a one-shot read —
6
- * the service sends a SNAPSHOT on connect, then a per-row delta for every transition, with STABLE per-row
7
- * identity (`row.id`) so the consumer updates the right row in place.
8
- *
9
- * 🔴 THE SDK PRODUCES FRAMES, IT DOES NOT MAINTAIN STATE. `stream()` yields each decoded {@link FleetFrame}; the
10
- * consumer (the shell renderer) owns the active-set Map and does the update-in-place / remove. The shell-local
11
- * render state (`main`/tree-`selection`/`timeline`/`depth`/`viewed`/`bulletColor`, MF-Fleet.md) is NOT on the
12
- * wire and the SDK does NOT synthesize it — only the data that transitions rides the frames.
13
- *
14
- * 🔒 owner-scoped: the route filters to the caller's own active runs (by the credential-derived principal — NOT a
15
- * spoofable header) UNLESS the caller is fleet-wide (an operator / deployment trace token sees every tenant's
16
- * rows, like the trace API). The `scope` field is wire-STRIPPED by the service after the owner-gate — it never
17
- * reaches this SDK, so {@link FleetTaskRow}/{@link FleetWorkflowRow} carry NO `scope`. The connect-time `meta`
18
- * frame's `scoped` flag tells the consumer whether this view is owner-scoped (true) or fleet-wide (false).
19
- * 🔴 **server ≥7.134.0:「service 凭据 + 验过的主体头」= 那位主体** —— 带主体头的 service 凭据读到的是那位主体的行(`meta.scoped: true`),
20
- * 不再是全舰队;`?owner=` / `?scope=` / `?principal=` 对钉住的主体不生效。全舰队视图 = 不带主体头的 service 凭据,或只读令牌。
21
- * (≤7.133.x:出示 service 凭据即全舰队,不看主体头。)同一读法也落在 `GET /v1/sessions`、`GET /v1/agents/roster`、trace / 用量各口与同步族上。
22
- *
23
- * 🔁 SNAPSHOT-RESUME semantics(#13,server ≥1.296 advertises `capabilities.fleet.resume === "snapshot"`):
24
- * a drop ends the iterator, and re-`stream()` IS the resume — the bus is latest-state (not an event log)
25
- * and every connection OPENS with a full `snapshot` frame, so row state cannot be "missed"; transient
26
- * bg_notification frames re-deliver through the durable completion inbox. There is deliberately NO
27
- * last-event-id cursor (it would duplicate what the snapshot already guarantees).
28
- * Mirrors `workflows.stream`/`trace.stream` framing but with the fleet vocabulary
29
- * (`meta`/`snapshot`/`task`/`task_remove`/`workflow`/`workflow_remove`). Deliberately uses the vocabulary-
30
- * agnostic `readSseFrames` (NOT `parseSse`, which is hardcoded to the AgentEvent union + auto-reconnect).
31
- * Gated off (no `fleetBus` wired) → 501 (typed error) before any frame.
32
- *
33
- * Verified against sema-server **5.3.0** (2026-08-02 亲读): handler `streamFleet` (`src/http/routes/fleet.ts`)
34
- * + `src/fleet/fleet-bus.ts` types. (4.3.0 坐标刷新:此前钉的是 commit `1bf7a5c`,在 server 仓已不可定位为
35
- * 近期点 —— 版本号比 commit 短哈希更能被下一个人重放。)
36
- */
37
1
  import type { Transport } from "../transport.js";
38
2
  /** The fleet vocabulary the shell renders (MF-Fleet `FleetTask.status`, byte-aligned to service `FleetTaskStatus`
39
3
  * fleet-bus.ts:27-36). The service maps its run/workflow status onto this NEUTRAL set:
@@ -1 +1 @@
1
- {"version":3,"file":"fleet.d.ts","sourceRoot":"","sources":["../../src/resources/fleet.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD;;;uFAGuF;AACvF,MAAM,MAAM,eAAe,GACvB,QAAQ,GACR,SAAS,GACT,SAAS,GACT,UAAU,GACV,mBAAmB,GACnB,MAAM,GACN,WAAW,GACX,QAAQ,GACR,QAAQ,CAAC;AAEb;;wFAEwF;AACxF,MAAM,WAAW,YAAY;IAC3B,wHAAwH;IACxH,EAAE,EAAE,MAAM,CAAC;IACX;mDAC+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;yDACqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;sHAEkH;IAClH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sFAAsF;IACtF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;gEAE4D;IAC5D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;0EACsE;IACtE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,eAAe,CAAC;IACxB;yEACqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;2FACuF;IACvF,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;8EAE0E;IAC1E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;sCAIkC;IAClC,WAAW,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD;;4DAEwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;uEAEmE;IACnE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;;uFAOmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjI,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrD;;;;;sLAKkL;IAClL,iBAAiB,CAAC,EAAE,QAAQ,CAAC;IAC7B;;;;;;;;;;yDAUqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;;+DAS2D;IAC3D,SAAS,CAAC,EAAE,WAAW,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;CACzC;AAED;sFACsF;AACtF,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX;mDAC+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wFAAwF;IACxF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;iCAG6B;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;8GAE0G;IAC1G,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;qEAEiE;IACjE,MAAM,CAAC,EAAE,IAAI,CAAC;CACf;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,UAAU,GAClB;IACE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,mFAAmF;IACnF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kEAAkE;IAClE,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAO9B,GACD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,YAAY,EAAE,CAAC;IAAC,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GACtF;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,YAAY,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC/C;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX;;;;;;;;;;;;;sDAakD;IAClD,YAAY,CAAC,EAAE,UAAU,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC1C;;;qFAGiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GACD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,gBAAgB,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,YAAY,EAAE,mBAAmB,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC1E,CAAC;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,eAAe,CAAC,GACvD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC;AAEtE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,eAAe,GAAG,4BAA4B,GAAG,2BAA2B,GAAG,qBAAqB,GAAG,yBAAyB,CAAC;AAE7I,mDAAmD;AACnD,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,2BAA2B,CAAC;IAClC,8EAA8E;IAC9E,KAAK,EAAE,MAAM,CAAC;IACd;;8DAE0D;IAC1D,MAAM,EAAE,YAAY,GAAG,UAAU,GAAG,SAAS,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC9D,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;4BAM4B;AAC5B,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,2BAA2B,CAAC;IAClC,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd;;;;;gDAK4C;IAC5C,MAAM,EAAE,cAAc,GAAG,SAAS,GAAG,cAAc,GAAG,UAAU,GAAG,qBAAqB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACzG,yFAAyF;IACzF,QAAQ,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,SAAS,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACnE,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;sIAIsI;AACtI,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,oEAAoE;IACpE,KAAK,EAAE,MAAM,CAAC;IACd;;;;;yGAKqG;IACrG,MAAM,EAAE,iBAAiB,GAAG,yBAAyB,GAAG,SAAS,GAAG,wBAAwB,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,cAAc,GAAG,SAAS,GAAG,cAAc,GAAG,UAAU,GAAG,qBAAqB,GAAG,sBAAsB,GAAG,mBAAmB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACvR,mEAAmE;IACnE,MAAM,EAAE,MAAM,CAAC;IACf,oHAAoH;IACpH,QAAQ,EAAE,MAAM,CAAC;IACjB,6BAA6B;IAC7B,SAAS,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACnE,cAAc;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;oDAMoD;AACpD,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,wBAAwB,CAAC;IAC/B,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd;+IAC2I;IAC3I,MAAM,EAAE,iBAAiB,GAAG,qBAAqB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAClE,uIAAuI;IACvI,IAAI,EAAE,SAAS,GAAG,WAAW,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC9C,wEAAwE;IACxE,QAAQ,EAAE,MAAM,CAAC;IACjB,6BAA6B;IAC7B,SAAS,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACnE,cAAc;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;2EAK2E;AAC3E,MAAM,WAAW,mBAAmB;IAClC,mEAAmE;IACnE,MAAM,EAAE,MAAM,CAAC;IACf,sFAAsF;IACtF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;oGACgG;IAChG,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;2DAEuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvE,WAAW,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrD;kDAC8C;IAC9C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4EAA4E;IAC5E,KAAK,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjI,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;qDACiD;IACjD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;6CACyC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,gFAAgF;AAChF,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,qHAAqH;IACrH,MAAM,EAAE,OAAO,CAAC;IAChB,wFAAwF;IACxF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;iDAE6C;IAC7C,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAAD,CAAC,EAAE,SAAS;IAEzC;;;;;;;;;;;;;OAaG;IACH;;;iEAG6D;IACvD,QAAQ,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,YAAY,EAAE,CAAC;QAAC,SAAS,EAAE,gBAAgB,EAAE,CAAA;KAAE,CAAC;IAoBjJ,MAAM,CAAC,IAAI,CAAC,EAAE;QACnB,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB;;6DAEqD;QACrD,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB;oDAC4C;QAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,GAAG,cAAc,CAAC,UAAU,CAAC;CAoF/B"}
1
+ {"version":3,"file":"fleet.d.ts","sourceRoot":"","sources":["../../src/resources/fleet.ts"],"names":[],"mappings":"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"}