@kanyun-ai-infra/agenthub 1.25.0 → 1.27.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/CHANGELOG.md +74 -0
- package/dist/index.cjs +1696 -1588
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +85 -5
- package/dist/index.d.ts +85 -5
- package/dist/index.js +1696 -1588
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/skills/agenthub-sdk/SKILL.md +69 -4
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,80 @@
|
|
|
2
2
|
|
|
3
3
|
本文件从 1.12.0 开始记录;更早的版本见 git 历史中的 `chore(agenthub-sdk): release X.Y.Z` 提交。
|
|
4
4
|
|
|
5
|
+
## 1.27.0
|
|
6
|
+
|
|
7
|
+
本版带上 1.26.0(83d138380,#5880,11-06)之后合入 main 的公开面变化:凭据创建可带幂等键、凭据新增只读的 list / get(#5894),以及 `listArtifacts` 透出超限文件 `oversizedFiles`(#5893)。均为新增,不用新入参时行为与 1.26.0 相同。
|
|
8
|
+
|
|
9
|
+
### 新增(主入口)
|
|
10
|
+
|
|
11
|
+
- `vaults.credentials.create(vaultId, request, { idempotencyKey })`(#5894):幂等键放在 `Idempotency-Key` 请求头里发出。
|
|
12
|
+
- 同一个键加逐字节相同的请求体重试,返回第一次的响应:`vcrd_*` id 相同,库里只有一行。
|
|
13
|
+
- 同一个键换了请求体,返回 409 `IDEMPOTENCY_KEY_CONFLICT`。
|
|
14
|
+
- 并发请求在时限内拿不到回放锁,返回 409 `IDEMPOTENCY_LOCK_TIMEOUT`,用同一个键、同一个请求体重试即可。
|
|
15
|
+
- 回放按租户、调用主体和 vault 隔离,记录保留 24 小时。失败的创建不记录,修好原因后可以用原来的键重试。
|
|
16
|
+
- SDK 自己不缓存,每次调用都会发请求。
|
|
17
|
+
- `vaults.credentials.list(vaultId, { workspaceId, includeArchived? })` 和 `get(vaultId, credentialId, { workspaceId })`(#5894):需要 `vaults:read`。
|
|
18
|
+
- 只返回元数据:不含凭据值、token 尾号、refresh token 和自定义头的值。
|
|
19
|
+
- `list` 按创建时间升序,默认不含已归档的凭据。
|
|
20
|
+
- vault 或凭据不存在、已归档、或调用方无权访问,一律返回 404,彼此区分不出来。
|
|
21
|
+
- 遇到本版没有建模的凭据类型,返回 `UnknownVaultCredentialRecord`,用 `isKnownVaultCredential` 判断后再按 `authType` 收窄。
|
|
22
|
+
- 从这一版起,`vcrd_*` id 不用只靠 `create` 的返回值保存了。
|
|
23
|
+
- `sessions.listArtifacts(sessionId, { turnId })` 的返回新增可选字段 `oversizedFiles: Array<{ path, sizeBytes, limitBytes }>`(#5893):
|
|
24
|
+
- 列出该回合里因为超过单文件 8 MB 上限而被跳过的文件,最多 50 条。
|
|
25
|
+
- 只有请求带了 `turnId` 才会返回。该回合没有跳过文件时不返回;worker 版本早于这个字段时也不返回,所以没有这个字段不代表没有文件被跳过。
|
|
26
|
+
- `path` 是工作区里的相对路径,不是 URL,这些文件在 artifact 存储里没有内容。要交付这么大的文件,改用 `sessions.exportWorkspace` 或仓库交付。
|
|
27
|
+
- 服务端读的是 worker 上报的事件,worker 侧随沙箱基础镜像发布,新镜像 promote 之后的会话才会上报。
|
|
28
|
+
- 新导出类型 `CreateCredentialOptions`、`ListCredentialsOptions`。
|
|
29
|
+
|
|
30
|
+
### 其他类型面变化
|
|
31
|
+
|
|
32
|
+
- `TurnAudioFailureReasonSchema` 的枚举新增 `"interrupted"`(#5867,语音级联打断)。对这个枚举做穷尽 `switch` 的调用方,需要补一个分支。
|
|
33
|
+
|
|
34
|
+
### 随包文档
|
|
35
|
+
|
|
36
|
+
- `SKILL.md`:补上凭据 list / get 和幂等键的用法,删掉「凭据没有 list / get」那句;补上 `oversizedFiles` 的取法和处理建议。随包 skill 版本从 0.35.0 升到 0.36.0。
|
|
37
|
+
|
|
38
|
+
### 导出面核对
|
|
39
|
+
|
|
40
|
+
把 `npm pack @kanyun-ai-infra/agenthub@1.26.0` 解包后的 `dist/index.d.ts` 和本分支的构建产物对比,去掉注释后的差异如下:
|
|
41
|
+
- 新增 `CreateCredentialOptions`、`ListCredentialsOptions`、`SessionArtifactOversizedFile` 三个接口;
|
|
42
|
+
- `SessionArtifactsList` 新增 `oversizedFiles?`;
|
|
43
|
+
- `VaultCredentialsResource` 新增 `list`、`get`;
|
|
44
|
+
- `create` 的 `options` 参数类型从 `VaultRequestOptions` 换成它的子接口 `CreateCredentialOptions`,旧写法照样能通过类型检查;
|
|
45
|
+
- `TurnAudioFailureReasonSchema` 新增 `"interrupted"`(两处)。
|
|
46
|
+
|
|
47
|
+
没有删除。`dist/realtime.d.ts` 无非注释差异。
|
|
48
|
+
|
|
49
|
+
### 迁移说明
|
|
50
|
+
|
|
51
|
+
没有破坏性变化,不需要迁移。
|
|
52
|
+
|
|
53
|
+
## 1.26.0
|
|
54
|
+
|
|
55
|
+
本版带上 1.25.0(87ef69055,#5878,11-06)之后合入 main 的公开面变化:`vaults.credentials` 的 create / update 建模 `net_secret` 凭据(#5879,#5805 SDK 臂)。新增凭据类型属 minor,无破坏性变化,不建 `net_secret` 凭据时行为逐字不变。会话侧的冻结与下发(#5874)、gateway 转发(#5876)不进 SDK 导出面(d.ts diff 为准),只在 JS 运行时以内联常量出现。
|
|
56
|
+
|
|
57
|
+
### 新增(主入口)
|
|
58
|
+
|
|
59
|
+
- `vaults.credentials.create(vaultId, { auth: { type: "net_secret", envName, domains, inject?, accessToken } })`(#5879):让 agent 直接调用非 MCP 的多模态 HTTP 服务(图像 / 语音 / 视频 API),key 由平台按域名注入,不进沙箱。四件事:
|
|
60
|
+
- **三个身份字段不可变**:`envName`(大写蛇形,2–48 字符,不得以 `_BASE_URL` / `_BASE_URL_TEMPLATE` 结尾)、`domains`(1–32 个互异的小写域名,可 `*.` 前缀;无 IP 字面量、端口、单标签通配)、`inject`(缺省 `{ header: "Authorization", prefix: "Bearer " }`;framing / cookie / proxy / `x-pilot-*` 头名被拒)创建后不可改,只许 `update` 改 `displayName` 与原地换 `accessToken`(`rotationSeq` +1,在途会话下一次请求即用新 key)。在 `update` 请求里写这些身份字段(或任何多余键),在发请求前就被本地 zod 拒绝;`customHeaders` / `auth.refresh` / `auth.expiresAt` 对该类型不适用,本地 schema 放行、请求照发,由服务端以 400 `validation_error` 拒绝。同一 vault 里第二个同 `envName` 的活跃凭据是 409 `vault_credential_env_name_conflict`。
|
|
61
|
+
- **返回体不带值与尾号**:create / update 返回的 `net_secret` 行只有元数据(`envName`、`domains`、`inject`、`secretRotatedAt`、`rotationSeq` 等),key 与任何 key 派生值都不出现。
|
|
62
|
+
- **会话里只拿到占位符**(需服务端部署 #5874 / #5876 且平台开关打开):绑定该 vault 的会话每轮拿到 `<NAME>` = 占位 token(24h,不落库)与 `<NAME>_BASE_URL`(登记了唯一精确域名时)或 `<NAME>_BASE_URL_TEMPLATE`(通配 / 多域名,含字面 `{host}`),真实 key 永不进沙箱;agent 把请求发给 `<gateway>/net/v1/<NAME>/<host>/…`,gateway 校验 host 是否落在 `domains` 内、换成真实 key 后转发到 `https://<host>/…`。3xx 原样返回不跟随,agent 自行决定是否按 `Location` 再发;未登记 host 是 403,私网 / 回环地址拒绝。两个绑定 vault 有同名 `envName` 的活跃 `net_secret` 时 `sessions.create` 返回 409 `SESSION_NET_CREDENTIAL_CONFLICT`。
|
|
63
|
+
- **需要平台开 flag 才生效**:下发与转发由平台侧 `v2_net_secret_enabled`(`PILOT_V2_NET_SECRET_ENABLED`)控制,默认关;关态下 create / update 仍可写库(SDK 无开关),会话不下发变量。
|
|
64
|
+
- 服务端没有单条凭据的 list / get 路由,SDK 也不提供;`vcrd_*` id 只在 `create` 的返回里出现一次,调用方自行保存。
|
|
65
|
+
- `CreateCredentialRequest` 的 `auth` 判别联合新增 `net_secret` 臂;`VaultCredentialRecord` 联合新增 `net_secret` 记录(`isKnownVaultCredential` 对它返回 true,可直接按 `authType` 收窄)。
|
|
66
|
+
|
|
67
|
+
### 随包文档
|
|
68
|
+
|
|
69
|
+
- `SKILL.md`:`net_secret` 用法一节(创建、不可变边界、占位符与 gateway 路径、409 冲突、平台开关)已在 #5879 随源码进 main。随包 skill 版本由 0.34.0 升至 0.35.0(npm 1.25.0 包里实测 `version: 0.34.0`)。
|
|
70
|
+
|
|
71
|
+
### 导出面核对
|
|
72
|
+
|
|
73
|
+
`npm pack @kanyun-ai-infra/agenthub@1.25.0` 解包后的 `dist/index.d.ts` 与本分支构建产物逐块对比,全部非注释差异:`CreateCredentialRequestSchema` 的 `auth` 判别联合新增 `net_secret` 臂(`envName` / `domains` / `inject?` / `accessToken` 四行)、凭据响应联合新增 `net_secret` 记录臂(17 行),以及三处 JSDoc 注释把 `net_secret` 加进「已建模类型」列表。没有删除行。`dist/realtime.d.ts` 逐字节相同。JS 运行时 diff(ESM 与 CJS 同内容,zod 别名重编号归一后)为 #5879 的建模臂与 #5874 经 contracts 进入 bundle 的内联常量(`NET_CREDENTIAL_TOKEN_TYPE` / `NET_CREDENTIAL_TOKEN_TTL_SECONDS` / `NetCredentialTokenClaimsSchema` / `FrozenNetCredentialSchema` / `FrozenNetCredentialListSchema`)——它们不被 SDK 导出、无 SDK 方法引用,不构成类型面变化;#5876(gateway)不触及 SDK bundle。
|
|
74
|
+
|
|
75
|
+
### 迁移说明
|
|
76
|
+
|
|
77
|
+
无破坏性变化,不需要迁移。旧版本风险:已发布的 1.25.0 收到 `net_secret` 行时走宽松兜底——`update` 响应作为 `UnknownVaultCredentialRecord` 原样返回不报错;`create` 响应因联合里无该臂会解析失败,要建模 `net_secret` 先升级到 1.26.0。
|
|
78
|
+
|
|
5
79
|
## 1.25.0
|
|
6
80
|
|
|
7
81
|
本版带上 1.24.0(85b344c33,#5864,11-05)之后合入 main 的公开面变化:`sessions.create` 钉 `revisionId` 起会话时显式指定 environment 的两个可选入参(#5871,F6)。无破坏性变化,不传新字段逐字不变。期间合入的 #5872(pending 凭据建壳)不进 SDK 类型面,只新增一个透传错误码。
|