@tbox.cn/app-template-agent 0.10.6 → 0.10.8

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
@@ -166,7 +166,7 @@ integrations.config → integrations.configByInstance[instId] → modules[owner]
166
166
  services[slot].instances[instId].credentialRef → services[slot].credentialRef → integrations.credentialRefByInstance[instId] → integrations.credentialRef
167
167
  ```
168
168
 
169
- **implementation 派生**:显式 `slot.implementation` / `inst.implementation` 优先;字符串厂商缺省则按 `supplies[provider\u0000service]` 查表派生(unique→自动取一 / 0→`PROVIDER_NOT_SUPPLIED` / 多→要求显式);内联声明必须显式(zod 已拦)。
169
+ **implementation 派生**:显式 `slot.implementation` / `inst.implementation` 优先;字符串厂商缺省则按 `supplies[provider\u0000service]` 查表派生(unique→自动取一 / 0→`BINDING_UNRESOLVED` / 多→要求显式);内联声明必须显式(zod 已拦)。
170
170
 
171
171
  > 内联声明对象只在 `services[slot].provider` 层合法。`modules[].provider` 与 `integrations.provider` 只接受字符串厂商名——这是 zod 直接拒导致 fail-visible 的常见错点。
172
172
 
@@ -166,6 +166,8 @@ const ownershipMap = buildOwnershipMap(appRoot());
166
166
  const integrations = integrationsConfig
167
167
  ? createIntegrationsRegistry({
168
168
  integrations: integrationsConfig.config,
169
+ // app-config knowledge 台账锚(ref 台账与数据同源旅行——TBOX_INTEGRATIONS_FILE 感知)
170
+ source: integrationsConfig.source,
169
171
  // catalog 真源 = 应用根 .tbox/app.json(上方无条件装载)
170
172
  catalog: providerCatalog,
171
173
  // v6:归属表显式参(装配五行 → 六行)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tbox.cn/app-template-agent",
3
- "version": "0.10.6",
3
+ "version": "0.10.8",
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.1"
39
+ "@tbox.cn/app-sdk-server": "0.21.2"
40
40
  },
41
41
  "license": "MIT",
42
42
  "publishConfig": {
@@ -26,6 +26,102 @@
26
26
  用不同 provider 名分键。adapter 内取凭据值(如自签名):`input.credential()` 惰性 getter
27
27
  (返回 `{ scope, type, value }`;未配 credentialRef → undefined)。
28
28
 
29
+ ## 声明形态 ⇔ 实现落点(先选对形态再动手)
30
+
31
+ | 声明形态(services.<slot>.provider) | adapter 落点 | 失配信号 |
32
+ |---|---|---|
33
+ | 内联对象 `{ provider, credentialType }` | **本包**(provider-custom) | 未注册 → `PROVIDER_NOT_IMPLEMENTED` |
34
+ | 字符串厂商名(如 `"mall-demo"`) | 对应正式 provider 包(catalog 来源;`packages/provider-mock` 为样例) | catalog 无此厂商 → **`PROVIDER_NOT_FOUND`** |
35
+
36
+ **本包 adapter 禁止配字符串声明**:本包零贡献(manifest 无
37
+ `declare.providers.slots`),永不进 provider catalog——字符串声明运行时按
38
+ catalog 查表,必报 `PROVIDER_NOT_FOUND`(错误文案「provider 未命中
39
+ catalog」≠ 名字拼错,是**形态落错**)。
40
+
41
+ ## 内联声明 JSON 片段(可复制形态)
42
+
43
+ `config/integrations.json` 槽级写法(`provider` 对象与 `implementation`
44
+ 是**兄弟键**——implementation 不在对象内;省略 `instances` = 通配激活):
45
+
46
+ ```json
47
+ {
48
+ "services": {
49
+ "parking.query": {
50
+ "provider": { "provider": "my-api", "credentialType": "static-headers-v1" },
51
+ "implementation": "my-api@1",
52
+ "config": { "baseUrl": "https://api.example.com" },
53
+ "credentialRef": "secret://my-api-parking.query"
54
+ }
55
+ }
56
+ }
57
+ ```
58
+
59
+ **错误形态对照**:
60
+
61
+ | ❌ 错误 | 原因 |
62
+ |---|---|
63
+ | `"provider": { "provider": "my-api", "implementation": "my-api@1" }` | `implementation` 不是内联对象字段(zod 拒) |
64
+ | `"provider": "my-api"` 而 adapter 在本包 | catalog 查表失配 → `PROVIDER_NOT_FOUND`(见上节) |
65
+ | `"instances": {}` | 零激活(省略 = 通配激活) |
66
+
67
+ 实参(config 值 / 凭据 stem / 槽名)按用户 API 文档填;凭据真值只进
68
+ `config/credentials/<stem>.json` 嵌套形(格式见「认证与凭据」)。
69
+
70
+ ## 最小代码骨架
71
+
72
+ 类型 import 双源(全部 `import type`——typecheck 首祸排除):
73
+
74
+ - `ServiceAdapterFactory` / `ServerContext` ← `@tbox.cn/app-agent-sdk-server`
75
+ - Port 接口 ← 服务域契约包(mall 域 = `@app/contracts-mall`;消费模块
76
+ `src/server/ports.ts` 的 import 行可反查正确来源——如 `parking.query` 的
77
+ 供给接口 `ParkingQueryPort`;本包 `package.json` 按需补该依赖)
78
+
79
+ ```ts
80
+ // packages/provider-custom/src/server/my-api.ts
81
+ import type { ServiceAdapterFactory } from '@tbox.cn/app-agent-sdk-server';
82
+ import type { ParkingQueryPort } from '@app/contracts-mall';
83
+
84
+ export const myApiFactory: ServiceAdapterFactory = (input) => {
85
+ const impl: ParkingQueryPort = {
86
+ async queryFee(q, req) {
87
+ // input.transport:HTTP 通道(baseUrl/认证/熔断/HTTPS 强制内建)
88
+ const res = await input.transport.request({
89
+ path: '/v1/parking/fee',
90
+ method: 'POST',
91
+ body: { plateNo: req.plateNo },
92
+ });
93
+ return mapFee(res);
94
+ },
95
+ // ...Port 其余方法签名照抄接口定义
96
+ };
97
+ return impl;
98
+ };
99
+ ```
100
+
101
+ **Port 形状检索工作法(零猜测)**:
102
+
103
+ ```sh
104
+ rg "export (interface|type) .*Port" packages/<消费模块>/src/server/ports.ts
105
+ rg "<接口名>" packages/contracts-mall/src/
106
+ ```
107
+
108
+ - Port 方法签名 = 实现清单——逐个照抄(参数/返回值与工具语义一一对应);
109
+ - 厂商响应 → contracts 结构转换后返回,不透传厂商字段名。
110
+
111
+ 注册(`src/server/index.ts` 的 `register(ctx)` 内):
112
+
113
+ ```ts
114
+ import type { ServerContext } from '@tbox.cn/app-agent-sdk-server';
115
+ import { myApiFactory } from './my-api';
116
+
117
+ // register(ctx) 内:
118
+ ctx.integrations?.registerAdapter('my-api', 'inline', myApiFactory);
119
+ ```
120
+
121
+ 单 factory 多服务:按 `input.service` 分支返回不同 Port 实现(服务清单见
122
+ 消费模块 `tbox.module.json` `declare.owns`);或每服务独立 provider 名
123
+ 分键注册。`input` 字段全集见 `src/server/index.ts` 签名示例注释。
124
+
29
125
  ## provider 名三处一致
30
126
 
31
127
  取的 provider 名必须下三处同名(任一处失配则运行时报 `PROVIDER_NOT_IMPLEMENTED`——
@@ -89,8 +185,9 @@ resolveService 惰性查表查不到对应 adapter):
89
185
  ## 完成判据
90
186
 
91
187
  - `pnpm typecheck && pnpm build` 通过;
92
- - 平台重启后该服务的调用不再报 `PROVIDER_NOT_IMPLEMENTED`(resolveService 惰性——调用时
93
- 观测;通配槽下 doctor 不检查凭据,运行时为最终裁判)。
188
+ - 对话或 curl 触发一次该服务的工具调用,确认正常出结果(typecheck/build 与 doctor
189
+ 均不触运行时——resolveService 惰性,调用时才判 `PROVIDER_NOT_IMPLEMENTED`);
190
+ - 通配槽下 doctor 不检查凭据,运行时为最终裁判。
94
191
 
95
192
  ## 真实厂商接入
96
193
 
@@ -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.2
20
- version: 0.1.2
21
- '@tbox.cn/app-agent-sdk-server':
22
19
  specifier: 0.1.3
23
20
  version: 0.1.3
21
+ '@tbox.cn/app-agent-sdk-server':
22
+ specifier: 0.1.4
23
+ version: 0.1.4
24
24
  '@tbox.cn/app-contracts':
25
- specifier: 0.12.2
26
- version: 0.12.2
25
+ specifier: 0.12.3
26
+ version: 0.12.3
27
27
  '@tbox.cn/app-contracts-mall':
28
- specifier: 0.12.2
29
- version: 0.12.2
28
+ specifier: 0.12.4
29
+ version: 0.12.4
30
30
  '@tbox.cn/app-sdk-server':
31
- specifier: 0.21.1
32
- version: 0.21.1
31
+ specifier: 0.21.2
32
+ version: 0.21.2
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.1
118
+ version: 0.21.2
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.2(@types/react@18.3.31)
145
+ version: 0.1.3(@types/react@18.3.31)
146
146
  '@tbox.cn/app-contracts':
147
147
  specifier: 'catalog:'
148
- version: 0.12.2
148
+ version: 0.12.3
149
149
  '@tbox.cn/app-theme-tbox':
150
150
  specifier: 'catalog:'
151
151
  version: 0.1.3
@@ -206,10 +206,10 @@ importers:
206
206
  version: 0.1.0(@mastra/core@1.59.0(ai@6.0.246(zod@3.25.76))(express@4.22.2)(rxjs@7.8.1)(zod@3.25.76))(@tbox-dev-js/sdk@0.1.18)(zod@3.25.76)
207
207
  '@tbox.cn/app-agent-sdk-server':
208
208
  specifier: 'catalog:'
209
- version: 0.1.3(@tbox-dev-js/sdk@0.1.18)(rxjs@7.8.1)
209
+ version: 0.1.4(@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.2
212
+ version: 0.12.3
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.2(@types/react@18.3.31)
249
+ version: 0.1.3(@types/react@18.3.31)
250
250
  '@tbox.cn/app-contracts':
251
251
  specifier: 'catalog:'
252
- version: 0.12.2
252
+ version: 0.12.3
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.2
301
+ version: 0.12.4
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.2(@types/react@18.3.31)
317
+ version: 0.1.3(@types/react@18.3.31)
318
318
  '@tbox.cn/app-agent-sdk-server':
319
319
  specifier: 'catalog:'
320
- version: 0.1.3(@tbox-dev-js/sdk@0.1.18)(rxjs@7.8.1)
320
+ version: 0.1.4(@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.2
323
+ version: 0.12.3
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.2':
1339
- resolution: {integrity: sha512-Ba5n4PUCWsj8+jByOYGGAXS5lzEioBYmaMxvLL0Axvc3Id9gVYF31Jj5H4U+bVzO4Jtbb7huqG9sf3qX69lffw==}
1338
+ '@tbox.cn/app-agent-sdk-client@0.1.3':
1339
+ resolution: {integrity: sha512-oyHvufpJ1bWfoEAm82Kkh07d0NbuK9NQkZGEvprB3UBKEQRgyydKps58K1IHHjVZ/eDMBeGA8DgAxqAbC8rQCw==}
1340
1340
  engines: {node: '>=20.0.0'}
1341
1341
 
1342
- '@tbox.cn/app-agent-sdk-server@0.1.3':
1343
- resolution: {integrity: sha512-guc9GgsiL4fcMSCRALAR2/xen+1qohknmDwAiUSI4PjAR3Wo8rnL2gQQZuc+OaE7PWFdnP2lI1DSFmoerLLjpw==}
1342
+ '@tbox.cn/app-agent-sdk-server@0.1.4':
1343
+ resolution: {integrity: sha512-V4XS+DkanVTdX/5TsgPFgBV/6+iNx0lgA4AjGfhR4eIyV3fhlBU0qS3KN+ZPbfQQfgh95fqenV4n6jMO8iothw==}
1344
1344
  engines: {node: '>=20.0.0'}
1345
1345
 
1346
- '@tbox.cn/app-contracts-mall@0.12.2':
1347
- resolution: {integrity: sha512-/vBCWpvFsCagnUSHbogHFFrnCURic9QUZ//AURasTzZoSv5u5/OetHAQ8JON1ukJ8ItLzfhjRJ1IBvFNMA3xhg==}
1346
+ '@tbox.cn/app-contracts-mall@0.12.4':
1347
+ resolution: {integrity: sha512-h4vFNrKcuJB6IFMG+iScxuXLAkPovNIbl60S6S7nusV14d/swvRrpRKpBwXfM1b6JH8JlgP3z9Z3o/xXhizL9A==}
1348
1348
  engines: {node: '>=20.0.0'}
1349
1349
 
1350
1350
  '@tbox.cn/app-contracts@0.12.0':
@@ -1355,8 +1355,8 @@ 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==}
1358
+ '@tbox.cn/app-contracts@0.12.3':
1359
+ resolution: {integrity: sha512-b71WtU1Kk9rC3lwaefb48ymKPgkdb7MJcJQ0lTeUZu/jSNHsqQ4ZZI9ZUbHQ/rzYvWmZbdxe5H94328jAfJoVA==}
1360
1360
  engines: {node: '>=20.0.0'}
1361
1361
 
1362
1362
  '@tbox.cn/app-sdk-client@0.21.1':
@@ -1371,11 +1371,20 @@ packages:
1371
1371
  resolution: {integrity: sha512-OSncc0sjhcuEQAlcANLCKNP0V+hgVhP0qol6pIyYSxSUUVLf69naiGWC4CBtY7PTIYlhximMw6bIn8tqNYKFXg==}
1372
1372
  engines: {node: '>=20.0.0'}
1373
1373
 
1374
+ '@tbox.cn/app-sdk-core@0.20.2':
1375
+ resolution: {integrity: sha512-KDcFdIrIEOlwDvIqBu29CzR5vDjt0BCADMBrgrd5WlRqjrPM1/jM/RcaRO6gRuElmQCp5LfsoAkVeYTZE/6rpw==}
1376
+ engines: {node: '>=20.0.0'}
1377
+
1374
1378
  '@tbox.cn/app-sdk-server@0.21.1':
1375
1379
  resolution: {integrity: sha512-LCB9gH6n5ILdLDHQUAq1NLrclLjmB0dsqGVHe4Zb4yucUPb16jxk/53NREYq0NzsHiTDxc29IvcreVaxRpVmXw==}
1376
1380
  engines: {node: '>=20.0.0'}
1377
1381
  hasBin: true
1378
1382
 
1383
+ '@tbox.cn/app-sdk-server@0.21.2':
1384
+ resolution: {integrity: sha512-nqBBakAsHjGvG5eO8OLWoC0TTbBFTorrCWZRFLiyKhxHV2OnVThvIZWXTeu08UMBh5se9NFhRfYZxldtAvIwbQ==}
1385
+ engines: {node: '>=20.0.0'}
1386
+ hasBin: true
1387
+
1379
1388
  '@tbox.cn/app-theme-tbox@0.1.3':
1380
1389
  resolution: {integrity: sha512-Wf2umpT/k+Ppy1oKuCDqe6M5yvp4F/tjdGpU7uygGWMaEduwFnoK0EVh4eDcA6dMlERLCAjxFlEUY68xXGq99A==}
1381
1390
 
@@ -4081,11 +4090,11 @@ snapshots:
4081
4090
  '@tbox-dev-js/sdk': 0.1.18
4082
4091
  zod: 3.25.76
4083
4092
 
4084
- '@tbox.cn/app-agent-sdk-client@0.1.2(@types/react@18.3.31)':
4093
+ '@tbox.cn/app-agent-sdk-client@0.1.3(@types/react@18.3.31)':
4085
4094
  dependencies:
4086
- '@tbox.cn/app-contracts': 0.12.1
4095
+ '@tbox.cn/app-contracts': 0.12.3
4087
4096
  '@tbox.cn/app-sdk-client': 0.21.1
4088
- '@tbox.cn/app-sdk-core': 0.20.1
4097
+ '@tbox.cn/app-sdk-core': 0.20.2
4089
4098
  react: 18.3.1
4090
4099
  react-dom: 18.3.1(react@18.3.1)
4091
4100
  zustand: 4.5.7(@types/react@18.3.31)(react@18.3.1)
@@ -4093,7 +4102,7 @@ snapshots:
4093
4102
  - '@types/react'
4094
4103
  - immer
4095
4104
 
4096
- '@tbox.cn/app-agent-sdk-server@0.1.3(@tbox-dev-js/sdk@0.1.18)(rxjs@7.8.1)':
4105
+ '@tbox.cn/app-agent-sdk-server@0.1.4(@tbox-dev-js/sdk@0.1.18)(rxjs@7.8.1)':
4097
4106
  dependencies:
4098
4107
  '@ag-ui/core': 0.0.47
4099
4108
  '@ai-sdk/openai-compatible': 2.0.68(zod@3.25.76)
@@ -4101,8 +4110,8 @@ snapshots:
4101
4110
  '@mastra/core': 1.59.0(ai@6.0.246(zod@3.25.76))(express@4.22.2)(rxjs@7.8.1)(zod@3.25.76)
4102
4111
  '@mastra/observability': 1.16.5(@mastra/core@1.59.0(ai@6.0.246(zod@3.25.76))(express@4.22.2)(rxjs@7.8.1)(zod@3.25.76))(zod@3.25.76)
4103
4112
  '@tbox.cn/agent-plugin': 0.1.0(@mastra/core@1.59.0(ai@6.0.246(zod@3.25.76))(express@4.22.2)(rxjs@7.8.1)(zod@3.25.76))(@tbox-dev-js/sdk@0.1.18)(zod@3.25.76)
4104
- '@tbox.cn/app-contracts': 0.12.2
4105
- '@tbox.cn/app-sdk-core': 0.20.1
4113
+ '@tbox.cn/app-contracts': 0.12.3
4114
+ '@tbox.cn/app-sdk-core': 0.20.2
4106
4115
  '@tbox.cn/app-sdk-server': 0.21.1
4107
4116
  ai: 6.0.246(zod@3.25.76)
4108
4117
  express: 4.22.2
@@ -4121,9 +4130,9 @@ snapshots:
4121
4130
  - utf-8-validate
4122
4131
  - workflow
4123
4132
 
4124
- '@tbox.cn/app-contracts-mall@0.12.2':
4133
+ '@tbox.cn/app-contracts-mall@0.12.4':
4125
4134
  dependencies:
4126
- '@tbox.cn/app-contracts': 0.12.1
4135
+ '@tbox.cn/app-contracts': 0.12.3
4127
4136
  zod: 3.25.76
4128
4137
 
4129
4138
  '@tbox.cn/app-contracts@0.12.0':
@@ -4138,7 +4147,7 @@ snapshots:
4138
4147
  react: 18.3.1
4139
4148
  zod: 3.25.76
4140
4149
 
4141
- '@tbox.cn/app-contracts@0.12.2':
4150
+ '@tbox.cn/app-contracts@0.12.3':
4142
4151
  dependencies:
4143
4152
  '@ag-ui/core': 0.0.47
4144
4153
  react: 18.3.1
@@ -4159,6 +4168,10 @@ snapshots:
4159
4168
  dependencies:
4160
4169
  '@tbox.cn/app-contracts': 0.12.1
4161
4170
 
4171
+ '@tbox.cn/app-sdk-core@0.20.2':
4172
+ dependencies:
4173
+ '@tbox.cn/app-contracts': 0.12.3
4174
+
4162
4175
  '@tbox.cn/app-sdk-server@0.21.1':
4163
4176
  dependencies:
4164
4177
  '@ag-ui/core': 0.0.47
@@ -4171,6 +4184,18 @@ snapshots:
4171
4184
  transitivePeerDependencies:
4172
4185
  - supports-color
4173
4186
 
4187
+ '@tbox.cn/app-sdk-server@0.21.2':
4188
+ dependencies:
4189
+ '@ag-ui/core': 0.0.47
4190
+ '@tbox.cn/app-contracts': 0.12.3
4191
+ '@tbox.cn/app-sdk-core': 0.20.2
4192
+ '@tbox.cn/app-toolkit': 0.7.2
4193
+ express: 4.22.2
4194
+ jose: 6.2.8
4195
+ zod: 3.25.76
4196
+ transitivePeerDependencies:
4197
+ - supports-color
4198
+
4174
4199
  '@tbox.cn/app-theme-tbox@0.1.3': {}
4175
4200
 
4176
4201
  '@tbox.cn/app-toolkit@0.7.2':
@@ -38,13 +38,13 @@ catalog:
38
38
  ws: 8.21.3
39
39
  "@types/ws": 8.18.1
40
40
  "@tbox.cn/agent-plugin": 0.1.0
41
- "@tbox.cn/app-sdk-core": 0.20.1
41
+ "@tbox.cn/app-sdk-core": 0.20.2
42
42
  "@tbox.cn/app-sdk-client": 0.21.1
43
- "@tbox.cn/app-sdk-server": 0.21.1
44
- "@tbox.cn/app-agent-sdk-server": 0.1.3
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
43
+ "@tbox.cn/app-sdk-server": 0.21.2
44
+ "@tbox.cn/app-agent-sdk-server": 0.1.4
45
+ "@tbox.cn/app-agent-sdk-client": 0.1.3
46
+ "@tbox.cn/app-contracts": 0.12.3
47
+ "@tbox.cn/app-contracts-mall": 0.12.4
48
48
  "@tbox.cn/app-theme-tbox": 0.1.3
49
49
  zustand: 4.5.7
50
50
  eslint: 9.39.5