@tbox.cn/app-template-agent 0.10.18 → 0.10.20

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/.gitignore CHANGED
@@ -18,7 +18,7 @@ dist-ssr
18
18
  .env.*
19
19
  !.env.example
20
20
 
21
- # 本地评测产物(tbox-app eval / start -d;报告与轨迹不进版本库)
21
+ # 本地评测产物(仓内 QA 经 tbox-app-dev eval / start -d 驱动;报告与轨迹不进版本库)
22
22
  .eval/
23
23
  .tbox-server.json
24
24
  .tbox-server.log
@@ -1,6 +1,6 @@
1
1
  [
2
2
  {
3
3
  "platform": "alipay",
4
- "source": "@tbox.cn/app-miniapp-container-alipay@0.2.5"
4
+ "source": "@tbox.cn/app-miniapp-container-alipay@0.2.6"
5
5
  }
6
6
  ]
package/AGENTS.md CHANGED
@@ -84,7 +84,7 @@ CLI 免安装,命令均经 `npx --yes @tbox.cn/app-cli <cmd>` 运行(下表
84
84
  | `module list` / `sync` / `diff` / `doctor` | 已装清单 / 增量装配 / 漂移对比 / 结构校验 |
85
85
  | `module update <module>` | 升级模块(codegen → 3-way merge) |
86
86
  | `new <module\|provider\|theme> <name>` | 应用内脚手架(生成 `packages/<id>` 并完成装配) |
87
- | `provider use / bind / unbind / unuse` | 集成绑定(写 `config/integrations.json`;仅字符串厂商——自定义 API 声明直接编辑该文件;bind/use 整槽覆盖既有 provider,含内联声明) |
87
+ | `provider use / bind / unbind / unuse` | 集成绑定(写 `config/integrations.json`;v8 起自定义 API 统一 `provider-custom` 字符串厂商——CLI 全覆盖三层,含 `--module` 模块级单点绑定;bind/use 整槽覆盖既有 provider) |
88
88
  | `theme use <id>` / `theme list` | 主题接线 / 状态 |
89
89
  | `starter --list` / `starter --type <type>` | starter 文档查询(商圈模块清单见 `--type agent-mall`) |
90
90
 
package/ENV.md CHANGED
@@ -133,11 +133,6 @@ dev/src 与 prod/dist bundle 形态恒等):
133
133
  | `AUTH_TOKEN_ISSUER` | token issuer(默认 `agent`;如需 mall 独立身份可显式设 `agent-mall`) |
134
134
  | `AUTH_EMBED_EXTERNAL_TOKEN` | 是否把外部原始 token 内嵌进自有 JWT(external claim,默认 `true`;`false` 则上游调用需另取) |
135
135
  | `AUTH_EXTERNAL_TOKEN_MAX_BYTES` | external 原始 token 上限(bytes,默认 16KB=Node http header 上限)。external claim 使自有 JWT 膨胀 ~1.4x,生产网关 header 上限需 ≥16KB |
136
- | `AUTH_EXTERNAL_EXCHANGE_URL` | 外部 provider 换发地址;配置后 `/api/auth/login(platform=external)` 走 HMAC 转发换发 |
137
- | `AUTH_EXTERNAL_SECRET` | 外部换发 HMAC 密钥 |
138
- | `AUTH_EXTERNAL_PROVIDER` | 外部 provider 名(默认 `external`) |
139
- | `AUTH_EXTERNAL_JWT_PUBLIC_KEY` | 外部已签 JWT 验签公钥(PEM,RS256):外部返回 `{ jwt }` 且无 identity 时解 `sub`;未配置则解码 `payload.sub` |
140
- | `AUTH_EXTERNAL_TIMEOUT_MS` | 外部换发请求超时(毫秒,默认 3000) |
141
136
 
142
137
  ### 真实支付宝登录链路(provider 包换码器自注册)
143
138
 
@@ -150,8 +145,6 @@ dev/src 与 prod/dist bundle 形态恒等):
150
145
  appId 字段已配(漏配 → 该 mall 503,字段名见各 provider 包)。
151
146
  - 登录双形态与复合凭证语义由各 provider 包承载;`AUTH_TOKEN_TTL_MS` 保守建议 ≤2h
152
147
  (上游 Token 寿命未知;自有 JWT 过期即重登换新)。
153
- - ⚠️ 与 `VITE_AUTH_PROVIDER=external` **互斥**:设 external 走 `AUTH_EXTERNAL_*` HMAC 转发旁路,
154
- 换码器被 platform 路由绕过,两者勿同时启用。
155
148
  - 裸跑(无登录槽配置):无换码器注册 → 内置 alipay/weapp;未配 env → **200 guest 降级**
156
149
  (Fix D——内置换码器声明 allowsGuestLogin,`[AUTH] login failed (downgraded to guest)` warn
157
150
  可观测;意图真实支付宝登录却恒 guest 时查该日志)或 browser 轴 guest,匿名降级属预期行为。
@@ -164,7 +157,6 @@ dev/src 与 prod/dist bundle 形态恒等):
164
157
 
165
158
  | 变量 | 说明 |
166
159
  |---|---|
167
- | `VITE_AUTH_PROVIDER` | 登录平台:外部 provider 场景设 `external`(壳内 `getAuthCode` → `/api/auth/login(platform=external)` 转发外部);缺省 `alipay`(本地换码)。消费方:`platform/agent-runtime.ts` 的 `createAuthClient({ loginPlatform })` |
168
160
  | `VITE_API_URL` | 前端 API 地址覆盖(默认同源相对路径,开发期可指向 server)。消费方:`main.tsx` 的 `configureRuntime({ apiBaseUrl })`(007:SDK 零 Vite 依赖,环境值由模板注入) |
169
161
 
170
162
  ## 可选
@@ -178,7 +170,7 @@ dev/src 与 prod/dist bundle 形态恒等):
178
170
  | `TBOX_PRE_TOOL_TIMEOUT_MS` | 前置工具(010)单工具总预算 ms(decide+execute 共享):默认 `2000`;`0` = 整体禁用(预执行全关,行为与未启用逐字节一致)。非法值回退默认 |
179
171
  | `TBOX_TOOL_DEBUG` | 工具调试视图(018):`1` 开 / `0` 关;缺省 = 非 `NODE_ENV=production` 开启。开启时 memory 召回/silent 前置工具以伪工具事件下发前端(不持久化)且 HELLO_ACK 携带旗标解锁客户端 dev 工具视图(出入参展开+技术名+紧凑格式)。**生产勿开**——测试环境开启会使 silent 检索 query 与用户记忆预览(截断 200 字符)对页面访问者可见。非法值回退缺省 |
180
172
  | `TBOX_EARLY_TOOL_EXECUTION` | 尽早工具执行(缺省 `off`):`1`/`true` 开启。模型流中白名单工具(只读查询类,`withEarlyExecution` 标记)参数流完即预执行,多工具轮延迟优化;收益依赖 `parallelToolCalls` 开启;参数漂移自动作废重执行(正确性无损);单工具轮行为等价现状。仅显式 opt-in,观测 journal `tool_preexec` |
181
- | `MALL_HOME_DEV_SERVICES` | 首页「常用服务」开发测试入口展示开关:`true`/`1` 展示,`false`/`0`/缺席隐藏(fail-closed,正式用户零透出;生产部署不配置即隐藏态)。server 启动期解析,经 `GET /api/m/mall-core/config` 下发前端(响应 `{ showDevServices: boolean }`);env 变更需重启进程。注入走外层 source(档位 env 文件/启动器 scripts/app-dev.mjs),`tbox-app dev` 不注入 env 值 |
173
+ | `MALL_HOME_DEV_SERVICES` | 首页「常用服务」开发测试入口展示开关:`true`/`1` 展示,`false`/`0`/缺席隐藏(fail-closed,正式用户零透出;生产部署不配置即隐藏态)。server 启动期解析,经 `GET /api/m/mall-core/config` 下发前端(响应 `{ showDevServices: boolean }`);env 变更需重启进程。注入走外层 source(档位 env 文件/启动器 scripts/app-dev.mjs),`tbox-app-dev dev` 不注入 env 值 |
182
174
  | `HOST` | 服务监听地址(默认 `0.0.0.0`) |
183
175
  | `PORT` | 服务监听端口(默认 `8000`) |
184
176
  | `TBOX_DEV_TOKEN` | 沙箱 dev server 鉴权 token(方案 W;平台运行时注入,**本地无需设置**):形状 `^[A-Za-z0-9_-]{20,128}$`。在场 → protected 双面裁决——dev 面(凭据 + 浏览器导航/同源信号)完整 vite 能力,static 面(无凭据/跨源子资源)dist 静态 + SPA fallback catch-all(GET/HEAD 未命中恒回入口页,对齐生产)+ SSE 刷新,零源码泄漏;缺席 → classic(与历史行为字节级等价)。在场但形状不合规 → fail-closed 全 static。配套:`GET /__tbox_dev_hot_reload`(static 面刷新 SSE,凭据无关);HMR WS 凭据走 query(`tbox_dev_token`,页面 bootstrap 自动补参);protected 面 vite `fs.allow` 收窄(client 源 + 工作区依赖真源)+ `fs.deny` 保留 |
@@ -199,7 +191,7 @@ export TTS_APPKEY=your-tts-appkey # 敏感值勿提交;本地 shell export 注
199
191
  export MALL_HOME_DEV_SERVICES=true
200
192
  ```
201
193
 
202
- # tbox-app dev 配置面
194
+ # tbox-app-dev dev 配置面
203
195
 
204
196
  - `TBOX_CONFIG_DIR`:dev 命令注入的配置目录覆盖(preset `configDir` / `--config-dir` 旗标显式指定的目录绝对路径——config 恒显式);未设时使用默认 `config/`。
205
197
  覆盖面含 `llm_provider.json`(`modelName`/`thinking`):注入时 LLM 装配读档位目录文件,
package/INTEGRATION.md CHANGED
@@ -66,21 +66,25 @@
66
66
 
67
67
  ## 声明落点
68
68
 
69
- | 维度 | 声明范围 | 共享连接参数落点 |
70
- |---|---|---|
71
- | 指定服务 | `services.<slot>` 单槽 | 槽/实例级 `config` |
72
- | 指定模块 | 模块 `declare.owns` 全部服务槽(snapshot 除外) | `modules[<install id>].config` |
73
- | 应用 | 已装业务模块 owns 并集(空装配不适用) | root `config` |
69
+ | 维度 | 绑定(单点) | 激活 | 共享连接参数落点 |
70
+ |---|---|---|---|
71
+ | 指定服务 | `services.<slot>.provider = "provider-custom"` | 节点本身 | 槽/实例级 `config` |
72
+ | 指定模块 | `modules[<install id>].provider = "provider-custom"`(**单点作用于全部 ownedServices**) | owned 槽补 `{}` 通配节点 | `modules[<install id>].config` |
73
+ | 应用 | root `provider = "provider-custom"` | 同左逐槽 | root `config` |
74
+
75
+ 推荐 CLI(等价路径):`tbox-app provider use provider-custom --module <install id>`(模块)/
76
+ `provider use provider-custom`(应用)/ `provider bind <slot> provider-custom`(服务)。
74
77
 
75
78
  关键形态约束:
76
79
 
77
- - **内联 provider 声明(对象形态)恒槽级合法**——`modules[].provider` 与 root
78
- `provider` 只接受字符串厂商名(zod 直接拒,fail-visible)。模块/应用维度 = 逐槽落
79
- 对象声明,共享的是 `config` 层。
80
- - `implementation` 写 `<provider名>@1` 字面量(槽级兄弟键,不在 provider 对象内)。
80
+ - **绑定与激活正交**:provider 选择单点落绑定层;激活 = `services[<slot>]` 节点在场
81
+ (`{}` 空槽 = 通配激活,实例差异化再补 instances 键)。只写绑定不写激活 → 服务保持
82
+ `service-not-configured`(诚实暴露,非错误)。
83
+ - **内联 provider 声明(对象形态)已弃用(v8)**:存量兼容读;迁移 =
84
+ `tbox-app provider migrate --write`(内联 → provider-custom 统一落点,迁移后 ⚠ 待接入,
85
+ 按 provider-custom/INTEGRATION.md 实施转 ok)。
81
86
  - 完整字段语义(各层级联、instances 激活等)单源 = `@tbox.cn/app-contracts` 的
82
- integrations-config(zod 校验,与运行时同一解析面);可复制片段见
83
- `packages/provider-custom/INTEGRATION.md`「内联声明 JSON 片段」。
87
+ integrations-config(zod 校验,与运行时同一解析面)。
84
88
  - **provider 名三处一致**(声明/注册/凭据)规则与失败信号见
85
89
  `packages/provider-custom/INTEGRATION.md`「provider 名三处一致」。
86
90
 
package/README.md CHANGED
@@ -182,7 +182,7 @@ definePreTool(findStoreTool, {
182
182
  | `getToolRequestContext` / `requireToolRequestContext` | `@tbox.cn/app-sdk/server` | 工具 execute 第二参读取运行上下文(fail-soft / 缺失抛 AUTH_FORBIDDEN;上下文统一化) |
183
183
  | `createToolExecContext(reqCtx)` | `@tbox.cn/app-sdk/server` | 测试/直调助手:构造工具 execute 第二参(散键与引擎同构) |
184
184
  | `createPlatformAdapters(session, overrides)` | `@tbox.cn/app-sdk/client` | 自定义 ASR/TTS/upload/feedback 实现(contracts 接口,UI 零改动) |
185
- | `createAuthClient({ loginPlatform, scopeKey })` | `@tbox.cn/app-sdk/client` | 客户端登录配置(`main.tsx`/`platform/agent-runtime.ts`);**应用级单例**——重复调用幂等返回首建实例,首建选项生效 |
185
+ | `createAuthClient({ scopeKey })` | `@tbox.cn/app-sdk/client` | 客户端登录配置(`platform/agent-runtime.ts`);**应用级单例**——重复调用幂等返回首建实例,首建选项生效 |
186
186
  | `configureRuntime({ apiBaseUrl })` | `@tbox.cn/app-sdk/client` | API/WS 地址注入(`main.tsx`;对应 `VITE_API_URL`) |
187
187
  | bridge 透传 | `@tbox.cn/app-sdk/client` 的 `callJsapi` | 业务新能力(扫码/导航/分享等,壳子补 JSAPI 白名单) |
188
188
 
@@ -1,17 +1,13 @@
1
1
  /**
2
2
  * 平台运行时装配(client 平台轴,已下沉 @tbox.cn/app-agent-sdk-client)。
3
3
  * 模板唯一的 SDK 单例持有点:authClient(鉴权)+ platformApi(能力凭证/会话/历史)。
4
- * 环境值(VITE_API_URL / VITE_AUTH_PROVIDER)由 main.tsx 经 configureRuntime / 选项注入(H1)。
4
+ * 环境值(VITE_API_URL)由 main.tsx 经 configureRuntime 注入(H1)。
5
5
  */
6
6
  import { createAuthClient, createPlatformApi } from '@tbox.cn/app-agent-sdk-client';
7
7
  // 读源归位 TIER1():mall-scope-url 契约助手(search-only 语义;壳 URL 改写层契约见包注释)
8
8
  import { readMallIdFromUrl } from '@app/contracts-mall';
9
9
 
10
- /** VITE_AUTH_PROVIDER=external 时壳内换码登录转发外部(服务端需同步配置 AUTH_EXTERNAL_*) */
11
- const AUTH_PROVIDER = import.meta.env.VITE_AUTH_PROVIDER as string | undefined;
12
-
13
10
  export const authClient = createAuthClient({
14
- ...(AUTH_PROVIDER === 'external' ? { loginPlatform: 'external' } : {}),
15
11
  // SPEZ-017:token 缓存域键——URL mallId 变更即失效旧 token 重登(跨 mall 防串域)。
16
12
  // 读源与 chat.ts configureHelloContext 逐字符同源(mall-scope-url.ts 唯一真源,search-only)
17
13
  scopeKey: () => readMallIdFromUrl() ?? '',
@@ -27,8 +27,8 @@ const pxToRemPlugin = pxToRem({
27
27
  });
28
28
 
29
29
  export default defineConfig(async ({ command }) => {
30
- // tbox-app dev 探测行(dev 探针常量;构件区在位时启用原地装配改指,缺席零行为变化。
31
- // guard 断言本标记在场——重定位需同步 cli 探针与 guard 两处)
30
+ // tbox-app-dev dev 探测行(dev 探针常量;构件区在位时启用原地装配改指,缺席零行为变化。
31
+ // guard 断言本标记在场——重定位需同步 dev 探针(cli-dev)与 guard 两处)
32
32
  // __dirname 基准 = apps/client:构件区在模板根(上一级×2)
33
33
  const devOverridePath = resolve(__dirname, '../../.tbox-dev.local/vite-override.mjs');
34
34
  const devPlugins: Plugin[] = [];
@@ -74,7 +74,7 @@ const __dirname = path.dirname(fileURLToPath(import.meta.url));
74
74
  // entry 即 bundle 实文件:src/dist 平级,dev/prod 恒等。被 tsup 内联的模块禁止
75
75
  // 基于自身 import.meta.url 做层级解析(bundle 后层级漂移——config 曾因此解析到
76
76
  // 应用根上一级)。同族锚点:../skills、../../client/dist。
77
- // TBOX_CONFIG_DIR 为 tbox-app dev 的配置面注入锚点(dev 探针常量,guard 守护):
77
+ // TBOX_CONFIG_DIR 为 tbox-app-dev dev 的配置面注入锚点(dev 探针常量,guard 守护):
78
78
  // 注入时为 real-env 档位目录绝对路径;未注入维持默认相对解析。
79
79
  const CONFIG_DIR = process.env.TBOX_CONFIG_DIR
80
80
  ? path.resolve(process.env.TBOX_CONFIG_DIR)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tbox.cn/app-template-agent",
3
- "version": "0.10.18",
3
+ "version": "0.10.20",
4
4
  "description": "tbox AI Agent 全栈模板(多包 pnpm workspace):apps/client + apps/server。唯一模板(W4 单一模板统一化:缺省带 AI 支付体验的 chat 形态;mall 能力经 profiles/mall 加装),能力经 tbox-app module add 模块扩展(shopping-guide/member 等)。",
5
5
  "engines": {
6
6
  "node": ">=24.0.0 <25.0.0"
@@ -37,7 +37,7 @@
37
37
  "typescript-eslint": "8.67.0",
38
38
  "eslint-plugin-react-hooks": "5.2.0",
39
39
  "vite": "6.4.3",
40
- "@tbox.cn/app-sdk-server": "0.25.0"
40
+ "@tbox.cn/app-sdk-server": "0.26.0"
41
41
  },
42
42
  "license": "MIT",
43
43
  "publishConfig": {
@@ -35,8 +35,10 @@
35
35
  | 内联对象 `{ provider, credentialType }` | **本包**(provider-custom) | 未注册 → `PROVIDER_NOT_IMPLEMENTED` |
36
36
  | 字符串厂商名(如 `"mall-demo"`) | 对应正式 provider 包(catalog 来源;`packages/provider-mock` 为样例) | catalog 无此厂商 → **`PROVIDER_NOT_FOUND`** |
37
37
 
38
- **本包 adapter 禁止配字符串声明**:本包零贡献(manifest 无
39
- `declare.providers.slots`),永不进 provider catalog——字符串声明运行时按
38
+ **v8 起:字符串声明 `"provider-custom"` = 唯一推荐声明形态**——本包经
39
+ `declare.providers.id` 自声明入 provider catalog(零槽起步,AI 实施即补槽声明:
40
+ `{ service, provider: 'provider-custom', implementation, credentialType, configSchema? }`)。
41
+ 历史条款「禁止配字符串声明」随零槽形态退役。存量内联对象声明运行时按
40
42
  catalog 查表,必报 `PROVIDER_NOT_FOUND`(错误文案「provider 未命中
41
43
  catalog」≠ 名字拼错,是**形态落错**)。
42
44
 
@@ -62,7 +64,7 @@ catalog」≠ 名字拼错,是**形态落错**)。
62
64
 
63
65
  | ❌ 错误 | 原因 |
64
66
  |---|---|
65
- | `"provider": { "provider": "my-api", "implementation": "my-api@1" }` | `implementation` 不是内联对象字段(zod 拒) |
67
+ | `"provider": { "provider": "my-api", "implementation": "my-api@1" }` | `implementation` 不是内联对象字段(zod 拒)——v8 弃用形态,存量迁移 `tbox-app provider migrate --write` |
66
68
  | `"provider": "my-api"` 而 adapter 在本包 | catalog 查表失配 → `PROVIDER_NOT_FOUND`(见上节) |
67
69
  | `"instances": {}` | 零激活(省略 = 通配激活) |
68
70
 
@@ -117,7 +119,7 @@ import type { ServerContext } from '@tbox.cn/app-agent-sdk-server';
117
119
  import { myApiFactory } from './my-api';
118
120
 
119
121
  // register(ctx) 内:
120
- ctx.integrations?.registerAdapter('my-api', 'inline', myApiFactory);
122
+ ctx.integrations?.registerAdapter('provider-custom', '<implementation>', myApiFactory);
121
123
  ```
122
124
 
123
125
  单 factory 多服务:按 `input.service` 分支返回不同 Port 实现(服务清单见
@@ -22,8 +22,10 @@
22
22
  "pages": [],
23
23
  "tabs": [],
24
24
  "providers": {
25
- "slots": []
25
+ "slots": [],
26
+ "id": "provider-custom"
26
27
  },
27
28
  "consumes": []
28
- }
29
+ },
30
+ "name": "自定义 API"
29
31
  }
@@ -6,9 +6,6 @@ settings:
6
6
 
7
7
  catalogs:
8
8
  default:
9
- '@phosphor-icons/react':
10
- specifier: 2.1.10
11
- version: 2.1.10
12
9
  '@tbox-dev-js/sdk':
13
10
  specifier: 0.1.18
14
11
  version: 0.1.18
@@ -16,23 +13,20 @@ catalogs:
16
13
  specifier: 0.1.0
17
14
  version: 0.1.0
18
15
  '@tbox.cn/app-agent-sdk-client':
19
- specifier: 0.1.6
20
- version: 0.1.6
16
+ specifier: 0.2.0
17
+ version: 0.2.0
21
18
  '@tbox.cn/app-agent-sdk-server':
22
- specifier: 0.2.3
23
- version: 0.2.3
19
+ specifier: 0.3.0
20
+ version: 0.3.0
24
21
  '@tbox.cn/app-contracts':
25
- specifier: 0.13.0
26
- version: 0.13.0
27
- '@tbox.cn/app-contracts-mall':
28
- specifier: 0.13.0
29
- version: 0.13.0
22
+ specifier: 0.13.1
23
+ version: 0.13.1
30
24
  '@tbox.cn/app-sdk-client':
31
25
  specifier: 0.21.3
32
26
  version: 0.21.3
33
27
  '@tbox.cn/app-sdk-server':
34
- specifier: 0.25.0
35
- version: 0.25.0
28
+ specifier: 0.26.0
29
+ version: 0.26.0
36
30
  '@tbox.cn/app-theme-tbox':
37
31
  specifier: 0.1.4
38
32
  version: 0.1.4
@@ -51,9 +45,6 @@ catalogs:
51
45
  '@vitejs/plugin-react':
52
46
  specifier: 4.7.0
53
47
  version: 4.7.0
54
- antd-mobile:
55
- specifier: 5.42.3
56
- version: 5.42.3
57
48
  eslint:
58
49
  specifier: 9.39.5
59
50
  version: 9.39.5
@@ -78,12 +69,6 @@ catalogs:
78
69
  react-dom:
79
70
  specifier: 18.3.1
80
71
  version: 18.3.1
81
- react-markdown:
82
- specifier: 9.1.0
83
- version: 9.1.0
84
- remark-gfm:
85
- specifier: 4.0.1
86
- version: 4.0.1
87
72
  tsup:
88
73
  specifier: 8.5.1
89
74
  version: 8.5.1
@@ -118,7 +103,7 @@ importers:
118
103
  devDependencies:
119
104
  '@tbox.cn/app-sdk-server':
120
105
  specifier: 'catalog:'
121
- version: 0.25.0
106
+ version: 0.26.0
122
107
  eslint:
123
108
  specifier: 'catalog:'
124
109
  version: 9.39.5
@@ -140,15 +125,18 @@ importers:
140
125
  '@app/contracts-mall':
141
126
  specifier: workspace:*
142
127
  version: link:../../packages/contracts-mall
128
+ '@app/module-ai-payment':
129
+ specifier: workspace:*
130
+ version: link:../../packages/module-ai-payment
143
131
  '@app/provider-custom':
144
132
  specifier: workspace:*
145
133
  version: link:../../packages/provider-custom
146
134
  '@tbox.cn/app-agent-sdk-client':
147
135
  specifier: 'catalog:'
148
- version: 0.1.6(@types/react@18.3.31)
136
+ version: 0.2.0(@types/react@18.3.31)
149
137
  '@tbox.cn/app-contracts':
150
138
  specifier: 'catalog:'
151
- version: 0.13.0
139
+ version: 0.13.1
152
140
  '@tbox.cn/app-theme-tbox':
153
141
  specifier: 'catalog:'
154
142
  version: 0.1.4
@@ -203,7 +191,7 @@ importers:
203
191
  version: 0.21.3
204
192
  '@tbox.cn/app-sdk-server':
205
193
  specifier: 'catalog:'
206
- version: 0.25.0
194
+ version: 0.26.0
207
195
  typescript:
208
196
  specifier: 'catalog:'
209
197
  version: 5.9.3
@@ -216,6 +204,9 @@ importers:
216
204
  '@app/contracts-mall':
217
205
  specifier: workspace:*
218
206
  version: link:../../packages/contracts-mall
207
+ '@app/module-ai-payment':
208
+ specifier: workspace:*
209
+ version: link:../../packages/module-ai-payment
219
210
  '@app/provider-custom':
220
211
  specifier: workspace:*
221
212
  version: link:../../packages/provider-custom
@@ -227,10 +218,10 @@ importers:
227
218
  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)
228
219
  '@tbox.cn/app-agent-sdk-server':
229
220
  specifier: 'catalog:'
230
- version: 0.2.3(@tbox-dev-js/sdk@0.1.18)(rxjs@7.8.1)
221
+ version: 0.3.0(@tbox-dev-js/sdk@0.1.18)(rxjs@7.8.1)
231
222
  '@tbox.cn/app-contracts':
232
223
  specifier: 'catalog:'
233
- version: 0.13.0
224
+ version: 0.13.1
234
225
  express:
235
226
  specifier: 'catalog:'
236
227
  version: 4.22.2
@@ -263,85 +254,140 @@ importers:
263
254
  packages/agent-ui-kit:
264
255
  dependencies:
265
256
  '@phosphor-icons/react':
266
- specifier: 'catalog:'
257
+ specifier: 2.1.10
267
258
  version: 2.1.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
268
259
  '@tbox.cn/app-agent-sdk-client':
269
260
  specifier: 'catalog:'
270
- version: 0.1.6(@types/react@18.3.31)
261
+ version: 0.2.0(@types/react@18.3.31)
271
262
  '@tbox.cn/app-contracts':
272
263
  specifier: 'catalog:'
273
- version: 0.13.0
264
+ version: 0.13.1
274
265
  antd-mobile:
275
- specifier: 'catalog:'
266
+ specifier: 5.42.3
276
267
  version: 5.42.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
277
268
  react-markdown:
278
- specifier: 'catalog:'
269
+ specifier: 9.1.0
279
270
  version: 9.1.0(@types/react@18.3.31)(react@18.3.1)
280
271
  remark-gfm:
281
- specifier: 'catalog:'
272
+ specifier: 4.0.1
282
273
  version: 4.0.1
283
274
  zustand:
284
- specifier: 'catalog:'
275
+ specifier: 4.5.7
285
276
  version: 4.5.7(@types/react@18.3.31)(react@18.3.1)
286
277
  devDependencies:
287
278
  '@types/node':
288
- specifier: 'catalog:'
279
+ specifier: 24.13.3
289
280
  version: 24.13.3
290
281
  '@types/react':
291
- specifier: 'catalog:'
282
+ specifier: 18.3.31
292
283
  version: 18.3.31
293
284
  '@types/react-dom':
294
- specifier: 'catalog:'
285
+ specifier: 18.3.7
295
286
  version: 18.3.7(@types/react@18.3.31)
296
287
  happy-dom:
297
- specifier: 'catalog:'
288
+ specifier: 20.11.2
298
289
  version: 20.11.2
299
290
  less:
300
- specifier: 'catalog:'
291
+ specifier: 4.8.1
301
292
  version: 4.8.1
302
293
  react:
303
- specifier: 'catalog:'
294
+ specifier: 18.3.1
304
295
  version: 18.3.1
305
296
  react-dom:
306
- specifier: 'catalog:'
297
+ specifier: 18.3.1
307
298
  version: 18.3.1(react@18.3.1)
308
299
  typescript:
309
- specifier: 'catalog:'
300
+ specifier: 5.9.3
310
301
  version: 5.9.3
311
302
  vite:
312
- specifier: 'catalog:'
303
+ specifier: 6.4.3
313
304
  version: 6.4.3(@types/node@24.13.3)(less@4.8.1)(tsx@4.23.11)
314
305
  vitest:
315
- specifier: 'catalog:'
306
+ specifier: 4.1.10
316
307
  version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(happy-dom@20.11.2)(vite@6.4.3(@types/node@24.13.3)(less@4.8.1)(tsx@4.23.11))
317
308
 
318
309
  packages/contracts-mall:
319
310
  dependencies:
320
- '@tbox.cn/app-contracts-mall':
311
+ '@tbox.cn/app-contracts':
312
+ specifier: 'catalog:'
313
+ version: 0.13.1
314
+ zod:
315
+ specifier: 3.25.76
316
+ version: 3.25.76
317
+ devDependencies:
318
+ happy-dom:
319
+ specifier: 20.11.2
320
+ version: 20.11.2
321
+ tsup:
322
+ specifier: 8.5.1
323
+ version: 8.5.1(postcss@8.5.26)(tsx@4.23.11)(typescript@5.9.3)
324
+ typescript:
325
+ specifier: 5.9.3
326
+ version: 5.9.3
327
+ vitest:
328
+ specifier: 4.1.10
329
+ version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(happy-dom@20.11.2)(vite@6.4.3(@types/node@24.13.3)(less@4.8.1)(tsx@4.23.11))
330
+
331
+ packages/module-ai-payment:
332
+ dependencies:
333
+ '@app/contracts-mall':
334
+ specifier: workspace:*
335
+ version: link:../contracts-mall
336
+ '@phosphor-icons/react':
337
+ specifier: 2.1.10
338
+ version: 2.1.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
339
+ '@tbox.cn/app-agent-sdk-client':
340
+ specifier: 'catalog:'
341
+ version: 0.2.0(@types/react@18.3.31)
342
+ '@tbox.cn/app-agent-sdk-server':
343
+ specifier: 'catalog:'
344
+ version: 0.3.0(@tbox-dev-js/sdk@0.1.18)(rxjs@7.8.1)
345
+ '@tbox.cn/app-contracts':
321
346
  specifier: 'catalog:'
322
- version: 0.13.0
347
+ version: 0.13.1
348
+ react:
349
+ specifier: 18.3.1
350
+ version: 18.3.1
323
351
  devDependencies:
324
352
  '@types/node':
325
353
  specifier: 24.13.3
326
354
  version: 24.13.3
355
+ '@types/react':
356
+ specifier: 18.3.31
357
+ version: 18.3.31
358
+ '@types/react-dom':
359
+ specifier: 18.3.7
360
+ version: 18.3.7(@types/react@18.3.31)
361
+ happy-dom:
362
+ specifier: 20.11.2
363
+ version: 20.11.2
364
+ react-dom:
365
+ specifier: 18.3.1
366
+ version: 18.3.1(react@18.3.1)
367
+ tsup:
368
+ specifier: 8.5.1
369
+ version: 8.5.1(postcss@8.5.26)(tsx@4.23.11)(typescript@5.9.3)
327
370
  typescript:
328
371
  specifier: 5.9.3
329
372
  version: 5.9.3
330
373
  vitest:
331
374
  specifier: 4.1.10
332
375
  version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(happy-dom@20.11.2)(vite@6.4.3(@types/node@24.13.3)(less@4.8.1)(tsx@4.23.11))
376
+ zod:
377
+ specifier: 3.25.76
378
+ version: 3.25.76
333
379
 
334
380
  packages/provider-custom:
335
381
  dependencies:
336
382
  '@tbox.cn/app-agent-sdk-client':
337
383
  specifier: 'catalog:'
338
- version: 0.1.6(@types/react@18.3.31)
384
+ version: 0.2.0(@types/react@18.3.31)
339
385
  '@tbox.cn/app-agent-sdk-server':
340
386
  specifier: 'catalog:'
341
- version: 0.2.3(@tbox-dev-js/sdk@0.1.18)(rxjs@7.8.1)
387
+ version: 0.3.0(@tbox-dev-js/sdk@0.1.18)(rxjs@7.8.1)
342
388
  '@tbox.cn/app-contracts':
343
389
  specifier: 'catalog:'
344
- version: 0.13.0
390
+ version: 0.13.1
345
391
  devDependencies:
346
392
  '@types/node':
347
393
  specifier: 24.13.3
@@ -1365,22 +1411,22 @@ packages:
1365
1411
  '@tbox-dev-js/sdk': '>=0.1.18 <0.2.0'
1366
1412
  zod: '>=3.24.0 <4.0.0'
1367
1413
 
1368
- '@tbox.cn/app-agent-sdk-client@0.1.6':
1369
- resolution: {integrity: sha512-/dCthY+JEccMPGafALYkhPRDRBPHSzPklNfXw63XQqhU7yrvqgeyuOXFrhkSYU5ZFzupZErUndXpiZz/zzJVug==}
1370
- engines: {node: '>=20.0.0'}
1371
-
1372
- '@tbox.cn/app-agent-sdk-server@0.2.3':
1373
- resolution: {integrity: sha512-EeSXpW1Aoy85Z9ZXCKSlziGhxyBeQCWQDRuLdkg7ReVKthNXfFKcAiIiaZIQkSjoZB1OL3Qlg8xl2cLqiXZxHA==}
1414
+ '@tbox.cn/app-agent-sdk-client@0.2.0':
1415
+ resolution: {integrity: sha512-yxK5vLuERzlebTwiw8WxU6e9rm7F1L9tVW4aSUGsIxeU0y8VtRcrh7y8xKbrlXR4WL4XrmYZ6ZoDyOuro9sn5A==}
1374
1416
  engines: {node: '>=20.0.0'}
1375
1417
 
1376
- '@tbox.cn/app-contracts-mall@0.13.0':
1377
- resolution: {integrity: sha512-EzLRs93WoHbqYI9MZV555ru14jTYnUILhClFisJXd3vlXTpHw9T1annSaa4IpkHepsX6AmCT5FxwvRUZcZ6T3A==}
1418
+ '@tbox.cn/app-agent-sdk-server@0.3.0':
1419
+ resolution: {integrity: sha512-thnnPwA0Tkb3yf+HxmeIEDyji6myIJVKvyhzn0WWuVJN7mg9I6+juTimxwRNhqnpZBjue3kExMw75+MvTineYA==}
1378
1420
  engines: {node: '>=20.0.0'}
1379
1421
 
1380
1422
  '@tbox.cn/app-contracts@0.13.0':
1381
1423
  resolution: {integrity: sha512-8sqP/23MoUlbTX9enFNotP5bu7XKFfigDUJ6sEn1Ff2a0rRlSTWzLWmDv9lP70cfZMPjh4MHoLKFoukr8QPvMA==}
1382
1424
  engines: {node: '>=20.0.0'}
1383
1425
 
1426
+ '@tbox.cn/app-contracts@0.13.1':
1427
+ resolution: {integrity: sha512-Cty4qoknyihli6ZMlxOqqTgRqwg0NOh0WOMfIWdB4rHua0QzZkP1jUoeffq5imnpIh7vXdfLhDpv/JwTrHd1XQ==}
1428
+ engines: {node: '>=20.0.0'}
1429
+
1384
1430
  '@tbox.cn/app-sdk-client@0.21.3':
1385
1431
  resolution: {integrity: sha512-64y22k5gzCc9eEQ0IJA1izxPaosNEmoCJ4YrsfHOoHYq2UPJCCmP7RIu3Rn4stPZ4tcmRdMdAi2y5499KObYHw==}
1386
1432
  engines: {node: '>=20.0.0'}
@@ -1389,16 +1435,16 @@ packages:
1389
1435
  resolution: {integrity: sha512-4kcoxnZnPgsO0RwAsjsodOXRhZNQcr9r3INN3Z03/JR2e3E+izkW2YHsgGcdbVSVX81s8gZrkaBbE+xco3wSqg==}
1390
1436
  engines: {node: '>=20.0.0'}
1391
1437
 
1392
- '@tbox.cn/app-sdk-server@0.25.0':
1393
- resolution: {integrity: sha512-wKKbmFnY6YU+mQOoak4UADWe1nWZKKdZeGqzatWC9Ny0W05QtDGLG9ql9kP1IwN3a5S6lFf4A6OBdSwERTFqTw==}
1438
+ '@tbox.cn/app-sdk-server@0.26.0':
1439
+ resolution: {integrity: sha512-VpV3sf4K/2MEsnkuK5EqZUyf9KoSVHeJUm4Al0M6R4Wumg6183apnxB2f38S5wuP30JSJShN/ww63EzRniTrjw==}
1394
1440
  engines: {node: '>=20.0.0'}
1395
1441
  hasBin: true
1396
1442
 
1397
1443
  '@tbox.cn/app-theme-tbox@0.1.4':
1398
1444
  resolution: {integrity: sha512-VF2fjTBFKJ6x/wvM6/T0qi7dmoiN1stNIT2xDerYbBBLCggr7f+H0v6VtuFMSed6tirlcpAlqtBDOctxudHJlQ==}
1399
1445
 
1400
- '@tbox.cn/app-toolkit@0.7.5':
1401
- resolution: {integrity: sha512-ObVkHKElsDz/JazUHkBaIGYYDxZxvQEtjFAk77HXBc0+PSikSRmtb62F99PWGibTnOSLq6wlkGWhk/y+Iy1UOg==}
1446
+ '@tbox.cn/app-toolkit@0.8.0':
1447
+ resolution: {integrity: sha512-urefCf5DCWbH9wM8dSGavA9MNdY4gx7LY16+s9jIlwhahq83mfrCP2h9ombn44ljMrv04G7mnb3vMtNeWs5/Ug==}
1402
1448
  engines: {node: '>=20.0.0'}
1403
1449
 
1404
1450
  '@types/babel__core@7.20.5':
@@ -4108,9 +4154,10 @@ snapshots:
4108
4154
  '@tbox-dev-js/sdk': 0.1.18
4109
4155
  zod: 3.25.76
4110
4156
 
4111
- '@tbox.cn/app-agent-sdk-client@0.1.6(@types/react@18.3.31)':
4157
+ '@tbox.cn/app-agent-sdk-client@0.2.0(@types/react@18.3.31)':
4112
4158
  dependencies:
4113
- '@tbox.cn/app-contracts': 0.13.0
4159
+ '@phosphor-icons/react': 2.1.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
4160
+ '@tbox.cn/app-contracts': 0.13.1
4114
4161
  '@tbox.cn/app-sdk-client': 0.21.3
4115
4162
  '@tbox.cn/app-sdk-core': 0.20.4
4116
4163
  react: 18.3.1
@@ -4120,7 +4167,7 @@ snapshots:
4120
4167
  - '@types/react'
4121
4168
  - immer
4122
4169
 
4123
- '@tbox.cn/app-agent-sdk-server@0.2.3(@tbox-dev-js/sdk@0.1.18)(rxjs@7.8.1)':
4170
+ '@tbox.cn/app-agent-sdk-server@0.3.0(@tbox-dev-js/sdk@0.1.18)(rxjs@7.8.1)':
4124
4171
  dependencies:
4125
4172
  '@ag-ui/core': 0.0.47
4126
4173
  '@ai-sdk/openai-compatible': 2.0.68(zod@3.25.76)
@@ -4128,9 +4175,9 @@ snapshots:
4128
4175
  '@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)
4129
4176
  '@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)
4130
4177
  '@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)
4131
- '@tbox.cn/app-contracts': 0.13.0
4178
+ '@tbox.cn/app-contracts': 0.13.1
4132
4179
  '@tbox.cn/app-sdk-core': 0.20.4
4133
- '@tbox.cn/app-sdk-server': 0.25.0
4180
+ '@tbox.cn/app-sdk-server': 0.26.0
4134
4181
  ai: 6.0.246(zod@3.25.76)
4135
4182
  express: 4.22.2
4136
4183
  gray-matter: 4.0.3
@@ -4148,12 +4195,13 @@ snapshots:
4148
4195
  - utf-8-validate
4149
4196
  - workflow
4150
4197
 
4151
- '@tbox.cn/app-contracts-mall@0.13.0':
4198
+ '@tbox.cn/app-contracts@0.13.0':
4152
4199
  dependencies:
4153
- '@tbox.cn/app-contracts': 0.13.0
4200
+ '@ag-ui/core': 0.0.47
4201
+ react: 18.3.1
4154
4202
  zod: 3.25.76
4155
4203
 
4156
- '@tbox.cn/app-contracts@0.13.0':
4204
+ '@tbox.cn/app-contracts@0.13.1':
4157
4205
  dependencies:
4158
4206
  '@ag-ui/core': 0.0.47
4159
4207
  react: 18.3.1
@@ -4170,12 +4218,12 @@ snapshots:
4170
4218
  dependencies:
4171
4219
  '@tbox.cn/app-contracts': 0.13.0
4172
4220
 
4173
- '@tbox.cn/app-sdk-server@0.25.0':
4221
+ '@tbox.cn/app-sdk-server@0.26.0':
4174
4222
  dependencies:
4175
4223
  '@ag-ui/core': 0.0.47
4176
- '@tbox.cn/app-contracts': 0.13.0
4224
+ '@tbox.cn/app-contracts': 0.13.1
4177
4225
  '@tbox.cn/app-sdk-core': 0.20.4
4178
- '@tbox.cn/app-toolkit': 0.7.5
4226
+ '@tbox.cn/app-toolkit': 0.8.0
4179
4227
  express: 4.22.2
4180
4228
  jose: 6.2.8
4181
4229
  zod: 3.25.76
@@ -4184,7 +4232,7 @@ snapshots:
4184
4232
 
4185
4233
  '@tbox.cn/app-theme-tbox@0.1.4': {}
4186
4234
 
4187
- '@tbox.cn/app-toolkit@0.7.5':
4235
+ '@tbox.cn/app-toolkit@0.8.0':
4188
4236
  dependencies:
4189
4237
  ajv: 8.20.0
4190
4238
  zod: 3.25.76
@@ -40,11 +40,11 @@ catalog:
40
40
  "@tbox.cn/agent-plugin": 0.1.0
41
41
  "@tbox.cn/app-sdk-core": 0.20.4
42
42
  "@tbox.cn/app-sdk-client": 0.21.3
43
- "@tbox.cn/app-sdk-server": 0.25.0
44
- "@tbox.cn/app-agent-sdk-server": 0.2.3
45
- "@tbox.cn/app-agent-sdk-client": 0.1.6
46
- "@tbox.cn/app-contracts": 0.13.0
47
- "@tbox.cn/app-contracts-mall": 0.13.0
43
+ "@tbox.cn/app-sdk-server": 0.26.0
44
+ "@tbox.cn/app-agent-sdk-server": 0.3.0
45
+ "@tbox.cn/app-agent-sdk-client": 0.2.0
46
+ "@tbox.cn/app-contracts": 0.13.1
47
+ "@tbox.cn/app-contracts-mall": 0.13.1
48
48
  "@tbox.cn/app-theme-tbox": 0.1.4
49
49
  zustand: 4.5.7
50
50
  eslint: 9.39.5