@tbox.cn/app-template-agent 0.10.4 → 0.10.5

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/AGENTS.md CHANGED
@@ -104,10 +104,84 @@ CLI 免安装,命令均经 `npx --yes @tbox.cn/app-cli <cmd>` 运行(下表
104
104
  (空装配 chat 形态无业务服务,不适用)。再向用户收集:API 地址、认证方式(密钥值经
105
105
  平台凭据引用,不进 prompt/代码/配置明文)、可选连接参数。用户已给出的不重复问。
106
106
  未实施前调用报 `PROVIDER_NOT_IMPLEMENTED` 属预期中间态。
107
+
108
+ #### integrations.json 结构 schema 参考
109
+
110
+ 完整接口见 `packages/contracts/src/providers.ts`,下表是给落声明用的字段速查。
111
+
112
+ **InlineVendorDeclaration**(providers.ts:140)——**仅 `services.<slot>.provider` 层合法**(`modules[].provider` 与 `integrations.provider` 只接受字符串厂商名):
113
+
114
+ | 字段 | 类型 | 必填 | 说明 |
115
+ |---|---|---|---|
116
+ | `provider` | `string` | ✅ | 厂商名(自定语义化短标识,同一后端多服务共用) |
117
+ | `credentialType` | `string` | ✅ | 认证类型:`'-'`=无凭据(仅 local 供给合法)/ SDK 内置 `static-headers-v1` / 自定如 `bearer-v1` |
118
+ | `configSchema` | `string` | ❌ | schema 文件路径(相对应用 `config/`),**可选**,无强制 schema 格式 |
119
+
120
+ **ConfiguredService**(providers.ts:176)——服务槽绑定:
121
+
122
+ | 字段 | 类型 | 必填 | 说明 |
123
+ |---|---|---|---|
124
+ | `provider` | `string \| InlineVendorDeclaration` | ❌ | 字符串厂商名 **或** 内联声明对象(唯一支持内联对象的层) |
125
+ | `implementation` | `string` | ❌ | `id@version` 字面量;字符串厂商可派生可省,内联声明必须显式 |
126
+ | `config` | `Record<string, unknown>` | ❌ | 服务级连接参数(明文,如 baseUrl/超时) |
127
+ | `credentialRef` | `string` | ❌ | 凭据引用 `secret://<stem>` |
128
+ | `instances` | `Record<instId, ServiceInstanceConfig>` | ❌ | 实例激活表;**省略=通配激活,`{}`=零激活(禁)** |
129
+
130
+ **ModuleConfig**(providers.ts:192)——模块级(key = install id = `tbox.module.json` id):
131
+
132
+ | 字段 | 类型 | 必填 | 说明 |
133
+ |---|---|---|---|
134
+ | `provider` | `string` | ❌ | **仅字符串厂商,不支持内联声明对象** |
135
+ | `config` | `Record<string, unknown>` | ❌ | 模块级共享配置 |
136
+ | `resources` | `Record<id, ResourceSpec>` | ❌ | 资源声明(知识库等,不算 binding 面) |
137
+
138
+ **IntegrationsConfig**(providers.ts:239)——顶层,仅 `services` 必填:
139
+
140
+ | 字段 | 类型 | 必填 | 说明 |
141
+ |---|---|---|---|
142
+ | `services` | `Record<slot, ConfiguredService>` | ✅ | 服务槽绑定 |
143
+ | `provider` | `string` | ❌ | 全局默认厂商(**仅字符串**) |
144
+ | `config` | `Record<string, unknown>` | ❌ | 全局默认配置(明文) |
145
+ | `configByInstance` | `Record<instId, Record>` | ❌ | 按实例的全局配置覆盖 |
146
+ | `credentialRef` | `string` | ❌ | 全局凭据引用 |
147
+ | `credentialRefByInstance` | `Record<instId, string>` | ❌ | 实例级凭据(商户级主写位) |
148
+ | `instances` | `DeploymentInstance[]` | ❌ | 部署实例注册表(参考表) |
149
+ | `defaultInstanceId` | `string \| null` | ❌ | 默认实例 id(单实例免填) |
150
+ | `modules` | `Record<install-id, ModuleConfig>` | ❌ | 模块集成位 |
151
+
152
+ #### 级联优先级链(resolveEffectiveService,providers.ts:336)
153
+
154
+ **provider 头 4 层**(最特异优先):
155
+ ```
156
+ services[slot].instances[instId].provider → services[slot].provider → modules[owner].provider → integrations.provider
157
+ ```
158
+
159
+ **config 5 层浅合并**(后者覆盖前者同字段):
160
+ ```
161
+ integrations.config → integrations.configByInstance[instId] → modules[owner].config → services[slot].config → services[slot].instances[instId].config
162
+ ```
163
+
164
+ **credentialRef 4 层链**:
165
+ ```
166
+ services[slot].instances[instId].credentialRef → services[slot].credentialRef → integrations.credentialRefByInstance[instId] → integrations.credentialRef
167
+ ```
168
+
169
+ **implementation 派生**:显式 `slot.implementation` / `inst.implementation` 优先;字符串厂商缺省则按 `supplies[provider\u0000service]` 查表派生(unique→自动取一 / 0→`PROVIDER_NOT_SUPPLIED` / 多→要求显式);内联声明必须显式(zod 已拦)。
170
+
171
+ > 内联声明对象只在 `services[slot].provider` 层合法。`modules[].provider` 与 `integrations.provider` 只接受字符串厂商名——这是 zod 直接拒导致 fail-visible 的常见错点。
172
+
173
+ #### provider 名三处一致
174
+
175
+ 取的 provider 名必须下三处同名(任何一处失配则 `PROVIDER_NOT_IMPLEMENTED`):
176
+
177
+ 1. `config/integrations.json` 中 `services.<slot>.provider.provider`(内联对象里的 `provider` 字段)
178
+ 2. `packages/provider-custom/src/server/index.ts` 里 `ctx.integrations?.registerAdapter('<同名>', 'inline', factory)` 第一参
179
+ 3. `config/credentials/${provider名}-${service}.json`(如 `my-parking-api-parking.query.json`)的 stem 前缀
180
+
107
181
  2. **落声明**:目标槽已有内联声明则跳过;否则直接编辑 `config/integrations.json`
108
182
  (CLI provider 命令仅支持字符串厂商)按下表范围写入槽级声明(`{ provider,
109
183
  credentialType, configSchema? }` + implementation 字面量,仅槽级合法;provider 名自定
110
- 语义化短标识,同一后端的多服务共用同一 provider 名——单键注册,见
184
+ 语义化短标识,同一后端的多服务共用同一 provider 名——单键注册,三处一致见上文,见
111
185
  `packages/provider-custom/AGENTS.md`;凭据接线见同文件):
112
186
 
113
187
  | 维度 | 声明范围 | 共享连接参数落点 |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tbox.cn/app-template-agent",
3
- "version": "0.10.4",
3
+ "version": "0.10.5",
4
4
  "description": "tbox AI Agent 全栈模板(多包 pnpm workspace):apps/client + apps/server。唯一模板(W4 单一模板统一化:缺省空装配 chat 形态;mall 能力经 profiles/mall 加装),能力经 tbox-app module add 模块扩展(shopping-guide/member 等)。",
5
5
  "engines": {
6
6
  "node": ">=24.0.0 <25.0.0"
@@ -36,7 +36,7 @@
36
36
  "typescript-eslint": "8.67.0",
37
37
  "eslint-plugin-react-hooks": "5.2.0",
38
38
  "vite": "6.4.3",
39
- "@tbox.cn/app-sdk-server": "0.21.0"
39
+ "@tbox.cn/app-sdk-server": "0.21.1"
40
40
  },
41
41
  "license": "MIT",
42
42
  "publishConfig": {
@@ -26,6 +26,22 @@
26
26
  用不同 provider 名分键。adapter 内取凭据值(如自签名):`input.credential()` 惰性 getter
27
27
  (返回 `{ scope, type, value }`;未配 credentialRef → undefined)。
28
28
 
29
+ ## provider 名三处一致
30
+
31
+ 取的 provider 名必须下三处同名(任一处失配则运行时报 `PROVIDER_NOT_IMPLEMENTED`——
32
+ resolveService 惰性查表查不到对应 adapter):
33
+
34
+ 1. **声明侧**:`config/integrations.json` 中 `services.<slot>.provider.provider` 字段
35
+ (内联声明对象内的 `provider` 键;若声明是字符串厂商则该键名直接是名字)
36
+ 2. **注册侧**:`packages/provider-custom/src/server/index.ts` 中
37
+ `ctx.integrations?.registerAdapter('<同名>', 'inline', factory)` 第一参
38
+ 3. **凭据侧**:`config/credentials/${provider名}-${service}.json` 的 stem 前缀
39
+ (服务级);共享 stem = `${provider名}-global`;实例差异化另见
40
+ `${provider名}-${instanceId}-${domain}` 形(凭据文件嵌套形格式见下节)
41
+
42
+ > 多服务单键只是注册侧共享,三处同名规则不放宽——同一 provider 名的全部服务 stem 仍各自
43
+ > 含 `-<service>` 段;只有注册键(registerAdapter 第一参)一次("单键")。
44
+
29
45
  ## 认证与凭据
30
46
 
31
47
  | 认证形态 | credentialType(声明与凭据文件一致) | 机制 |
@@ -45,6 +61,31 @@
45
61
  - 槽 `instances` 省略 = 通配激活(**勿写空对象 `{}`** = 零激活);已绑字符串厂商的槽整组
46
62
  替换前先向用户确认。
47
63
 
64
+ ### config 与 configSchema 的区别
65
+
66
+ | 字段 | 落点 | 类型 | 内容形态 |
67
+ |---|---|---|---|
68
+ | `services[slot].config` / `modules[].config` / root `config` / `instances[].config` 等所有 `config*` 字段 | `config/integrations.json` | `Record<string, unknown>` 真实值 | **明文连接参数**——baseUrl / 路径前缀 / 超时 / 重试等。直接进 integrations.json(可见、非密钥) |
69
+ | `services[slot].provider.configSchema`(内联声明中的可选字段) | `integrations.json` 写路径字符串,文件本体在 `config/<路径>.json` | `string` 路径 + 开发者自写文件 | **可选 schema 制品**——相对应用 `config/` 的路径;当前无强制 schema 格式;写则 doctor 谓词可消费校验,不写则不校验 |
70
+
71
+ **`config` 不替代凭据**:嵌在 `config.*` 字段里的值是"可见的连接配置",不是"凭据真值"。任何形式
72
+ 的密钥(API key / token / 签名 secret / OAuth secret)经 `credentialRef: "secret://<stem>"`
73
+ 引用,真值只进 `config/credentials/<stem>.json`(嵌套形)或平台 env——**禁**直接进 `config.*`
74
+ 字段明文,也禁进 prompt、代码、入库文档。
75
+
76
+ **`configSchema` 不强制**:framework 不要求每条内联声明都配 schema 文件,schema 形态由开发者自选
77
+ (推荐自身可读、可校验的 JSON schema 或自定义格式)。doctor 谓词对存在 `configSchema` 的声明做受
78
+ 控子集校验;不存在则跳过。AI 接自定义集成任务不要因为没 schema 而拒绝落声明。
79
+
80
+ ### 配置值与凭据真值的可见性边界
81
+
82
+ | 数据 | 落点 | 是否进 prompt / 代码 / 入库文档 |
83
+ |---|---|---|
84
+ | `*.config` 字段(baseUrl / 超时 / 路径前缀等连接参数) | `config/integrations.json` 明文 | ⚠ 可见(明文即设计意图),但不应成"密钥代用品" |
85
+ | 凭据真值(API key / token / 签名 secret / OAuth secret 等) | `config/credentials/<stem>.json` 嵌套形 或 平台 env | ❌ 禁入 prompt / 代码 / integrations.json / 入库文档 |
86
+ | `credentialRef: "secret://<stem>"` 引用本身 | `config/integrations.json` 明文 | ✅ 可见(非真值,仅 stem 引用) |
87
+ | AGENTS.md / 模板出厂文档 | 仓库 | ❌ 不含 `secret://` 真值(仅描述引用形态) |
88
+
48
89
  ## 完成判据
49
90
 
50
91
  - `pnpm typecheck && pnpm build` 通过;
@@ -16,20 +16,20 @@ catalogs:
16
16
  specifier: 0.1.0
17
17
  version: 0.1.0
18
18
  '@tbox.cn/app-agent-sdk-client':
19
- specifier: 0.1.1
20
- version: 0.1.1
19
+ specifier: 0.1.2
20
+ version: 0.1.2
21
21
  '@tbox.cn/app-agent-sdk-server':
22
22
  specifier: 0.1.2
23
23
  version: 0.1.2
24
24
  '@tbox.cn/app-contracts':
25
- specifier: 0.12.1
26
- version: 0.12.1
25
+ specifier: 0.12.2
26
+ version: 0.12.2
27
27
  '@tbox.cn/app-contracts-mall':
28
- specifier: 0.12.1
29
- version: 0.12.1
28
+ specifier: 0.12.2
29
+ version: 0.12.2
30
30
  '@tbox.cn/app-sdk-server':
31
- specifier: 0.21.0
32
- version: 0.21.0
31
+ specifier: 0.21.1
32
+ version: 0.21.1
33
33
  '@tbox.cn/app-theme-tbox':
34
34
  specifier: 0.1.3
35
35
  version: 0.1.3
@@ -115,7 +115,7 @@ importers:
115
115
  devDependencies:
116
116
  '@tbox.cn/app-sdk-server':
117
117
  specifier: 'catalog:'
118
- version: 0.21.0
118
+ version: 0.21.1
119
119
  eslint:
120
120
  specifier: 'catalog:'
121
121
  version: 9.39.5
@@ -142,10 +142,10 @@ importers:
142
142
  version: link:../../packages/provider-custom
143
143
  '@tbox.cn/app-agent-sdk-client':
144
144
  specifier: 'catalog:'
145
- version: 0.1.1(@types/react@18.3.31)
145
+ version: 0.1.2(@types/react@18.3.31)
146
146
  '@tbox.cn/app-contracts':
147
147
  specifier: 'catalog:'
148
- version: 0.12.1
148
+ version: 0.12.2
149
149
  '@tbox.cn/app-theme-tbox':
150
150
  specifier: 'catalog:'
151
151
  version: 0.1.3
@@ -209,7 +209,7 @@ importers:
209
209
  version: 0.1.2(@tbox-dev-js/sdk@0.1.18)(rxjs@7.8.1)
210
210
  '@tbox.cn/app-contracts':
211
211
  specifier: 'catalog:'
212
- version: 0.12.1
212
+ version: 0.12.2
213
213
  express:
214
214
  specifier: 'catalog:'
215
215
  version: 4.22.2
@@ -246,10 +246,10 @@ importers:
246
246
  version: 2.1.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
247
247
  '@tbox.cn/app-agent-sdk-client':
248
248
  specifier: 'catalog:'
249
- version: 0.1.1(@types/react@18.3.31)
249
+ version: 0.1.2(@types/react@18.3.31)
250
250
  '@tbox.cn/app-contracts':
251
251
  specifier: 'catalog:'
252
- version: 0.12.1
252
+ version: 0.12.2
253
253
  antd-mobile:
254
254
  specifier: 'catalog:'
255
255
  version: 5.42.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -298,7 +298,7 @@ importers:
298
298
  dependencies:
299
299
  '@tbox.cn/app-contracts-mall':
300
300
  specifier: 'catalog:'
301
- version: 0.12.1
301
+ version: 0.12.2
302
302
  devDependencies:
303
303
  '@types/node':
304
304
  specifier: 24.13.3
@@ -314,13 +314,13 @@ importers:
314
314
  dependencies:
315
315
  '@tbox.cn/app-agent-sdk-client':
316
316
  specifier: 'catalog:'
317
- version: 0.1.1(@types/react@18.3.31)
317
+ version: 0.1.2(@types/react@18.3.31)
318
318
  '@tbox.cn/app-agent-sdk-server':
319
319
  specifier: 'catalog:'
320
320
  version: 0.1.2(@tbox-dev-js/sdk@0.1.18)(rxjs@7.8.1)
321
321
  '@tbox.cn/app-contracts':
322
322
  specifier: 'catalog:'
323
- version: 0.12.1
323
+ version: 0.12.2
324
324
  devDependencies:
325
325
  '@types/node':
326
326
  specifier: 24.13.3
@@ -1335,16 +1335,16 @@ packages:
1335
1335
  '@tbox-dev-js/sdk': '>=0.1.18 <0.2.0'
1336
1336
  zod: '>=3.24.0 <4.0.0'
1337
1337
 
1338
- '@tbox.cn/app-agent-sdk-client@0.1.1':
1339
- resolution: {integrity: sha512-+HynOgllJS7dupTYTQ5R/5Ajpp5ErOVvGl/dz0wNBb/oZQxKgV0/ePQSxrlS1YnFXsiA9mzELdASz6CudOP/4A==}
1338
+ '@tbox.cn/app-agent-sdk-client@0.1.2':
1339
+ resolution: {integrity: sha512-Ba5n4PUCWsj8+jByOYGGAXS5lzEioBYmaMxvLL0Axvc3Id9gVYF31Jj5H4U+bVzO4Jtbb7huqG9sf3qX69lffw==}
1340
1340
  engines: {node: '>=20.0.0'}
1341
1341
 
1342
1342
  '@tbox.cn/app-agent-sdk-server@0.1.2':
1343
1343
  resolution: {integrity: sha512-qS9RDPAGHiFB+FesBtgc2QLZnGNgXrG62fCyPQ663Cb9xfF0Fs0r+fTPXpG2ewsBkoST7c1oy/ZlfMO85o7/pw==}
1344
1344
  engines: {node: '>=20.0.0'}
1345
1345
 
1346
- '@tbox.cn/app-contracts-mall@0.12.1':
1347
- resolution: {integrity: sha512-5A85jjdsvxDTAHWwGGruVTkd/106p1soo1mIWFSarXNkZi97dVmJjYxDaHb8v1yBdLXWZ1kb2yp9/oA2qZy/uQ==}
1346
+ '@tbox.cn/app-contracts-mall@0.12.2':
1347
+ resolution: {integrity: sha512-/vBCWpvFsCagnUSHbogHFFrnCURic9QUZ//AURasTzZoSv5u5/OetHAQ8JON1ukJ8ItLzfhjRJ1IBvFNMA3xhg==}
1348
1348
  engines: {node: '>=20.0.0'}
1349
1349
 
1350
1350
  '@tbox.cn/app-contracts@0.12.0':
@@ -1355,6 +1355,10 @@ packages:
1355
1355
  resolution: {integrity: sha512-h5HXIfk5frNx6hufY2IBE+hISCk3/2n8A7G3EtnAF4JsR91Pm/uwdmn4zYtZOz0r9cL7Wk1SrUMcokMZ9HkbLw==}
1356
1356
  engines: {node: '>=20.0.0'}
1357
1357
 
1358
+ '@tbox.cn/app-contracts@0.12.2':
1359
+ resolution: {integrity: sha512-SnteKq3+kQjwDHb4BN2HX2Eawd7ws84IxPkJziaeKaDGBfJ1RzPRUAQyL/Zo4kJLCzsY3ViE2AEh1SG10r4MXw==}
1360
+ engines: {node: '>=20.0.0'}
1361
+
1358
1362
  '@tbox.cn/app-sdk-client@0.21.1':
1359
1363
  resolution: {integrity: sha512-hN+tIj8kh11PD0HMhq5KUs/nZYjxS+ps3F3HTTmOHWXNXzilYafFxeIWJ1bXKVm1Di5EUIjNaRPUDkP6HAcHvw==}
1360
1364
  engines: {node: '>=20.0.0'}
@@ -1372,6 +1376,11 @@ packages:
1372
1376
  engines: {node: '>=20.0.0'}
1373
1377
  hasBin: true
1374
1378
 
1379
+ '@tbox.cn/app-sdk-server@0.21.1':
1380
+ resolution: {integrity: sha512-LCB9gH6n5ILdLDHQUAq1NLrclLjmB0dsqGVHe4Zb4yucUPb16jxk/53NREYq0NzsHiTDxc29IvcreVaxRpVmXw==}
1381
+ engines: {node: '>=20.0.0'}
1382
+ hasBin: true
1383
+
1375
1384
  '@tbox.cn/app-theme-tbox@0.1.3':
1376
1385
  resolution: {integrity: sha512-Wf2umpT/k+Ppy1oKuCDqe6M5yvp4F/tjdGpU7uygGWMaEduwFnoK0EVh4eDcA6dMlERLCAjxFlEUY68xXGq99A==}
1377
1386
 
@@ -1379,6 +1388,10 @@ packages:
1379
1388
  resolution: {integrity: sha512-ShLYwxsMzhr8V5sjixo4GFGBZbAw4/8CoTnCigrbBcRLtydf2ezLrLDR9jHfi/d5fQworFR5ZBzI7xDSjvR2zA==}
1380
1389
  engines: {node: '>=20.0.0'}
1381
1390
 
1391
+ '@tbox.cn/app-toolkit@0.7.2':
1392
+ resolution: {integrity: sha512-bvq5l7rwwX3EJe0hQm4dnwSh0tuDmoucCkCfX306PvNbhSv0H9uHSljg/jeXh08DBtc2gjIJyvPsfDxrv5X6Uw==}
1393
+ engines: {node: '>=20.0.0'}
1394
+
1382
1395
  '@types/babel__core@7.20.5':
1383
1396
  resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
1384
1397
 
@@ -4077,11 +4090,11 @@ snapshots:
4077
4090
  '@tbox-dev-js/sdk': 0.1.18
4078
4091
  zod: 3.25.76
4079
4092
 
4080
- '@tbox.cn/app-agent-sdk-client@0.1.1(@types/react@18.3.31)':
4093
+ '@tbox.cn/app-agent-sdk-client@0.1.2(@types/react@18.3.31)':
4081
4094
  dependencies:
4082
- '@tbox.cn/app-contracts': 0.12.0
4095
+ '@tbox.cn/app-contracts': 0.12.1
4083
4096
  '@tbox.cn/app-sdk-client': 0.21.1
4084
- '@tbox.cn/app-sdk-core': 0.20.0
4097
+ '@tbox.cn/app-sdk-core': 0.20.1
4085
4098
  react: 18.3.1
4086
4099
  react-dom: 18.3.1(react@18.3.1)
4087
4100
  zustand: 4.5.7(@types/react@18.3.31)(react@18.3.1)
@@ -4117,9 +4130,9 @@ snapshots:
4117
4130
  - utf-8-validate
4118
4131
  - workflow
4119
4132
 
4120
- '@tbox.cn/app-contracts-mall@0.12.1':
4133
+ '@tbox.cn/app-contracts-mall@0.12.2':
4121
4134
  dependencies:
4122
- '@tbox.cn/app-contracts': 0.12.0
4135
+ '@tbox.cn/app-contracts': 0.12.1
4123
4136
  zod: 3.25.76
4124
4137
 
4125
4138
  '@tbox.cn/app-contracts@0.12.0':
@@ -4134,6 +4147,12 @@ snapshots:
4134
4147
  react: 18.3.1
4135
4148
  zod: 3.25.76
4136
4149
 
4150
+ '@tbox.cn/app-contracts@0.12.2':
4151
+ dependencies:
4152
+ '@ag-ui/core': 0.0.47
4153
+ react: 18.3.1
4154
+ zod: 3.25.76
4155
+
4137
4156
  '@tbox.cn/app-sdk-client@0.21.1':
4138
4157
  dependencies:
4139
4158
  '@tbox.cn/app-contracts': 0.12.0
@@ -4161,6 +4180,18 @@ snapshots:
4161
4180
  transitivePeerDependencies:
4162
4181
  - supports-color
4163
4182
 
4183
+ '@tbox.cn/app-sdk-server@0.21.1':
4184
+ dependencies:
4185
+ '@ag-ui/core': 0.0.47
4186
+ '@tbox.cn/app-contracts': 0.12.1
4187
+ '@tbox.cn/app-sdk-core': 0.20.1
4188
+ '@tbox.cn/app-toolkit': 0.7.2
4189
+ express: 4.22.2
4190
+ jose: 6.2.8
4191
+ zod: 3.25.76
4192
+ transitivePeerDependencies:
4193
+ - supports-color
4194
+
4164
4195
  '@tbox.cn/app-theme-tbox@0.1.3': {}
4165
4196
 
4166
4197
  '@tbox.cn/app-toolkit@0.5.0':
@@ -4168,6 +4199,11 @@ snapshots:
4168
4199
  ajv: 8.20.0
4169
4200
  zod: 3.25.76
4170
4201
 
4202
+ '@tbox.cn/app-toolkit@0.7.2':
4203
+ dependencies:
4204
+ ajv: 8.20.0
4205
+ zod: 3.25.76
4206
+
4171
4207
  '@types/babel__core@7.20.5':
4172
4208
  dependencies:
4173
4209
  '@babel/parser': 7.29.8
@@ -40,11 +40,11 @@ catalog:
40
40
  "@tbox.cn/agent-plugin": 0.1.0
41
41
  "@tbox.cn/app-sdk-core": 0.20.1
42
42
  "@tbox.cn/app-sdk-client": 0.21.1
43
- "@tbox.cn/app-sdk-server": 0.21.0
43
+ "@tbox.cn/app-sdk-server": 0.21.1
44
44
  "@tbox.cn/app-agent-sdk-server": 0.1.2
45
- "@tbox.cn/app-agent-sdk-client": 0.1.1
46
- "@tbox.cn/app-contracts": 0.12.1
47
- "@tbox.cn/app-contracts-mall": 0.12.1
45
+ "@tbox.cn/app-agent-sdk-client": 0.1.2
46
+ "@tbox.cn/app-contracts": 0.12.2
47
+ "@tbox.cn/app-contracts-mall": 0.12.2
48
48
  "@tbox.cn/app-theme-tbox": 0.1.3
49
49
  zustand: 4.5.7
50
50
  eslint: 9.39.5