Skip to content

Commit 0d9cdde

Browse files
linfangwclaude
andauthored
feat(mcp): rename tools to discover/inspect/call + review fixes (#14)
* feat: add CLI/Agent sections to getting-started docs + fix CLI multi-region gaps - Add QVeris CLI and Agent Setup sections to all three getting-started docs (en-US, zh-CN, cn/zh-CN), reorder sections: CLI → MCP → SDK → API - Fix CLI multi-region support: region-aware account URLs in login/credits, display region in doctor/whoami/config list, pass baseUrl in login validation, store region in session, add QVERIS_REGION to help text Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat(cli): interactive region selection during login When QVERIS_REGION or --base-url is not set, `qveris login` now prompts the user to choose their region (Global/China) before showing the API key URL. This removes the need to set environment variables before first login. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): handle custom region in getSiteUrl and persist baseUrl in session Address PR review feedback: - getSiteUrl() now accepts baseUrl param to infer site URL for custom regions - All callers pass baseUrl to getSiteUrl() - Session now stores baseUrl alongside region for custom region support Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * docs: update CLI docs for interactive region selection and region display - login: document interactive region prompt (Global/China) - whoami: mention region display - doctor: mention region and base URL display - session: document region and baseUrl storage Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * docs: clarify agent/script region usage vs interactive login prompt Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * chore(cli): bump version to 0.4.0 - Interactive region selection during login - Multi-region fixes (region-aware URLs, doctor/whoami/config region display) - Custom region support (getSiteUrl inference, baseUrl in session) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * docs(mcp): add multi-region configuration documentation - README: add QVERIS_REGION and QVERIS_BASE_URL env vars, Region section with key prefix table, priority chain, and China config example - docs/en-US/mcp-server.md: add env var list, region auto-detection note, China region config example - docs/zh-CN/mcp-server.md: same updates in Chinese Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): use resolved baseUrl in all API calls instead of raw flag All commands now pass the region-resolved baseUrl to API calls, ensuring QVERIS_REGION env var and key prefix detection are respected for actual requests, not just for display/session purposes. Fixes: credits, discover, doctor, interactive Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): remove duplicate resolveBaseUrl call in discover.mjs Region and baseUrl are already resolved at function entry (line 11). The second call inside the try block was redundant. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * chore(mcp): bump version to 0.4.1 - Add multi-region documentation to README Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat(mcp): rename tools to discover/inspect/call, aligned with CLI Rename MCP tools to match CLI naming convention: - search_tools → discover - get_tools_by_ids → inspect - execute_tool → call Old names are kept as deprecated aliases with stderr warnings. All schema descriptions updated to reference new names. Documentation updated across README, mcp-server docs, and getting-started pages. Bump version to 0.5.0. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: address code review suggestions - Update stale JSDoc comments referencing old tool names (search_tools → discover, execute_tool → call) in MCP types, get-by-ids, and execute - Make 402 pricing URL region-aware in both MCP client and CLI API client (qveris.cn for CN region, qveris.ai for global) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(mcp): remove misleading "as a JSON string" from call tool description params_to_tool schema type is object, not string. The old description could cause LLMs to serialize params as a JSON string instead of passing a structured object. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 8c125d7 commit 0d9cdde

17 files changed

Lines changed: 171 additions & 119 deletions

docs/cn/zh-CN/getting-started.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,9 @@ CLI 还支持交互模式(`qveris interactive`)、代码生成(`--codegen
4747

4848
如果你的客户端支持 **Model Context Protocol (MCP)**,可以添加官方 QVeris MCP 服务器,立即获得:
4949

50-
- `search_tools`(发现)
51-
- `get_tools_by_ids`(检查)
52-
- `execute_tool`(调用)
50+
- `discover`(发现)
51+
- `inspect`(检查)
52+
- `call`(调用)
5353

5454
完整 MCP 参考文档见 [MCP 服务器文档](mcp-server.md)
5555

@@ -75,9 +75,9 @@ CLI 还支持交互模式(`qveris interactive`)、代码生成(`--codegen
7575
7676
助手会:
7777

78-
- 调用 `search_tools` 发现匹配的能力(如"天气")
79-
- 可选调用 `get_tools_by_ids` 检查最佳候选
80-
- 使用能力 ID 和参数调用 `execute_tool`
78+
- 调用 `discover` 发现匹配的能力(如"天气")
79+
- 可选调用 `inspect` 检查最佳候选
80+
- 使用能力 ID 和参数调用 `call`
8181

8282
---
8383

@@ -361,7 +361,7 @@ console.log(data);
361361
在启用 QVeris 工具时,将以下内容复制粘贴到助手的系统提示词中:
362362

363363
```text
364-
你是一个有用的助手,可以动态发现并调用各种能力来帮助用户。首先思考完成用户任务可能需要哪类能力。然后使用 search_tools 工具,以描述能力的查询词进行搜索,而非直接写出你稍后要传入的具体参数。再使用 execute_tool 工具调用合适的能力,通过 params_to_tool 传入参数。如果能力具有 success_rate 和 avg_execution_time,请在选择时加以参考。你可以参考每个能力提供的示例。你可以在一次响应中发起多个工具调用。
364+
你是一个有用的助手,可以动态发现并调用各种能力来帮助用户。首先思考完成用户任务可能需要哪类能力。然后使用 discover 工具,以描述能力的查询词进行搜索,而非直接写出你稍后要传入的具体参数。再使用 call 工具调用合适的能力,通过 params_to_tool 传入参数。如果能力具有 success_rate 和 avg_execution_time,请在选择时加以参考。你可以参考每个能力提供的示例。你可以在一次响应中发起多个工具调用。
365365
```
366366

367367
---

docs/en-US/getting-started.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,9 @@ The CLI also supports interactive mode (`qveris interactive`), code generation (
4747

4848
If your client supports **Model Context Protocol (MCP)**, you can add the official QVeris MCP server and immediately get:
4949

50-
- `search_tools` (Discover)
51-
- `get_tools_by_ids` (Inspect)
52-
- `execute_tool` (Call)
50+
- `discover` (Discover)
51+
- `inspect` (Inspect)
52+
- `call` (Call)
5353

5454
For the full MCP reference, see [MCP Server documentation](mcp-server.md).
5555

@@ -75,9 +75,9 @@ For the full MCP reference, see [MCP Server documentation](mcp-server.md).
7575
7676
The assistant will:
7777

78-
- call `search_tools` to discover matching capabilities (e.g. "weather")
79-
- optionally call `get_tools_by_ids` to inspect the best candidate
80-
- call `execute_tool` with the capability id + parameters
78+
- call `discover` to find matching capabilities (e.g. "weather")
79+
- optionally call `inspect` to review the best candidate
80+
- call `call` with the capability id + parameters
8181

8282
---
8383

@@ -340,7 +340,7 @@ Supported environments: Claude Code, OpenCode, Cursor, Trae, VS Code, and OpenCl
340340
Use this (copy/paste) in your assistant's system prompt when enabling QVeris tools:
341341

342342
```text
343-
You are a helpful assistant that can dynamically discover and call capabilities to help the user. First think about what kind of capabilities might be useful to accomplish the user's task. Then use the search_tools tool with a query describing the capability, not the specific parameters you will pass later. Then call suitable capabilities using the execute_tool tool, passing parameters through params_to_tool. If a capability has success_rate and avg_execution_time, consider them when selecting which to call. You can reference the examples given for each capability. You can make multiple tool calls in a single response.
343+
You are a helpful assistant that can dynamically discover and call capabilities to help the user. First think about what kind of capabilities might be useful to accomplish the user's task. Then use the discover tool with a query describing the capability, not the specific parameters you will pass later. Then call suitable capabilities using the call tool, passing parameters through params_to_tool. If a capability has success_rate and avg_execution_time, consider them when selecting which to call. You can reference the examples given for each capability. You can make multiple tool calls in a single response.
344344
```
345345

346346
---

docs/en-US/mcp-server.md

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66

77
It gives agents access to QVeris through three MCP tools:
88

9-
- `search_tools` = **Discover**
10-
- `get_tools_by_ids` = **Inspect**
11-
- `execute_tool` = **Call**
9+
- `discover` — Find capabilities by natural language
10+
- `inspect` — Get detailed tool info (params, success rate, examples)
11+
- `call` — Execute a tool with parameters
1212

1313
In other words, the MCP server is the agent-facing transport for the same core QVeris protocol described elsewhere in this repository.
1414

@@ -32,9 +32,11 @@ Both surfaces map to the same QVeris protocol:
3232

3333
| Protocol action | MCP tool | REST API |
3434
|----------------|----------|----------|
35-
| **Discover** | `search_tools` | `POST /search` |
36-
| **Inspect** | `get_tools_by_ids` | `POST /tools/by-ids` |
37-
| **Call** | `execute_tool` | `POST /tools/execute` |
35+
| **Discover** | `discover` | `POST /search` |
36+
| **Inspect** | `inspect` | `POST /tools/by-ids` |
37+
| **Call** | `call` | `POST /tools/execute` |
38+
39+
> **Note:** The old tool names (`search_tools`, `get_tools_by_ids`, `execute_tool`) are still supported as deprecated aliases.
3840
3941
---
4042

@@ -126,9 +128,9 @@ For environment-specific setup guides, see:
126128

127129
## Available MCP Tools
128130

129-
### 1. `search_tools`
131+
### 1. `discover`
130132

131-
Use this tool to discover capabilities with natural language.
133+
Use this tool to find capabilities with natural language.
132134

133135
This is the **Discover** action and is **free**.
134136

@@ -159,7 +161,7 @@ Typical response fields:
159161

160162
---
161163

162-
### 2. `get_tools_by_ids`
164+
### 2. `inspect`
163165

164166
Use this tool to inspect one or more known `tool_id`s before reuse or execution.
165167

@@ -180,7 +182,7 @@ Example:
180182
}
181183
```
182184

183-
Use `get_tools_by_ids` when:
185+
Use `inspect` when:
184186

185187
- Multiple candidates look similar
186188
- You want to re-check parameters before calling
@@ -191,7 +193,7 @@ The response schema matches `/search` for the requested tools, including paramet
191193

192194
---
193195

194-
### 3. `execute_tool`
196+
### 3. `call`
195197

196198
Use this tool to call a discovered QVeris capability.
197199

@@ -236,9 +238,9 @@ For very large outputs, QVeris may return:
236238

237239
For most agent tasks, use this flow:
238240

239-
1. `search_tools` to discover relevant capabilities
240-
2. `get_tools_by_ids` to inspect the best candidate(s) when needed
241-
3. `execute_tool` to call the selected capability
241+
1. `discover` to find relevant capabilities
242+
2. `inspect` to review the best candidate(s) when needed
243+
3. `call` to execute the selected capability
242244

243245
In practice:
244246

docs/zh-CN/getting-started.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,9 @@ CLI 还支持交互模式(`qveris interactive`)、代码生成(`--codegen
4747

4848
如果你的客户端支持 **Model Context Protocol (MCP)**,可以添加官方 QVeris MCP 服务器,立即获得:
4949

50-
- `search_tools`(发现)
51-
- `get_tools_by_ids`(检查)
52-
- `execute_tool`(调用)
50+
- `discover`(发现)
51+
- `inspect`(检查)
52+
- `call`(调用)
5353

5454
完整 MCP 参考文档见 [MCP 服务器文档](mcp-server.md)
5555

@@ -75,9 +75,9 @@ CLI 还支持交互模式(`qveris interactive`)、代码生成(`--codegen
7575
7676
助手会:
7777

78-
- 调用 `search_tools` 发现匹配的能力(如"天气")
79-
- 可选调用 `get_tools_by_ids` 检查最佳候选
80-
- 使用能力 ID 和参数调用 `execute_tool`
78+
- 调用 `discover` 发现匹配的能力(如"天气")
79+
- 可选调用 `inspect` 检查最佳候选
80+
- 使用能力 ID 和参数调用 `call`
8181

8282
---
8383

@@ -340,7 +340,7 @@ console.log(data);
340340
在启用 QVeris 工具时,将以下内容复制粘贴到助手的系统提示词中:
341341

342342
```text
343-
你是一个有用的助手,可以动态发现并调用各种能力来帮助用户。首先思考完成用户任务可能需要哪类能力。然后使用 search_tools 工具,以描述能力的查询词进行搜索,而非直接写出你稍后要传入的具体参数。再使用 execute_tool 工具调用合适的能力,通过 params_to_tool 传入参数。如果能力具有 success_rate 和 avg_execution_time,请在选择时加以参考。你可以参考每个能力提供的示例。你可以在一次响应中发起多个工具调用。
343+
你是一个有用的助手,可以动态发现并调用各种能力来帮助用户。首先思考完成用户任务可能需要哪类能力。然后使用 discover 工具,以描述能力的查询词进行搜索,而非直接写出你稍后要传入的具体参数。再使用 call 工具调用合适的能力,通过 params_to_tool 传入参数。如果能力具有 success_rate 和 avg_execution_time,请在选择时加以参考。你可以参考每个能力提供的示例。你可以在一次响应中发起多个工具调用。
344344
```
345345

346346
---

docs/zh-CN/mcp-server.md

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66

77
它通过三个 MCP 工具为 Agent 提供 QVeris 访问能力:
88

9-
- `search_tools` = **发现(Discover)**
10-
- `get_tools_by_ids` = **检查(Inspect)**
11-
- `execute_tool` = **调用(Call)**
9+
- `discover` — 用自然语言发现能力
10+
- `inspect` — 获取工具详情(参数、成功率、示例)
11+
- `call` — 执行工具并传入参数
1212

1313
换言之,MCP 服务器是本仓库其他文档所描述的 QVeris 核心协议的 Agent 侧传输层。
1414

@@ -32,9 +32,11 @@
3232

3333
| 协议操作 | MCP 工具 | REST API |
3434
|---------|---------|---------|
35-
| **发现** | `search_tools` | `POST /search` |
36-
| **检查** | `get_tools_by_ids` | `POST /tools/by-ids` |
37-
| **调用** | `execute_tool` | `POST /tools/execute` |
35+
| **发现** | `discover` | `POST /search` |
36+
| **检查** | `inspect` | `POST /tools/by-ids` |
37+
| **调用** | `call` | `POST /tools/execute` |
38+
39+
> **注意:** 旧工具名称(`search_tools``get_tools_by_ids``execute_tool`)仍作为弃用别名支持。
3840
3941
---
4042

@@ -126,7 +128,7 @@ QVERIS_BASE_URL=https://... # 可选:覆盖 API 地址
126128

127129
## 可用 MCP 工具
128130

129-
### 1. `search_tools`
131+
### 1. `discover`
130132

131133
使用自然语言发现能力。
132134

@@ -159,7 +161,7 @@ QVERIS_BASE_URL=https://... # 可选:覆盖 API 地址
159161

160162
---
161163

162-
### 2. `get_tools_by_ids`
164+
### 2. `inspect`
163165

164166
在复用或调用之前,检查一个或多个已知 `tool_id` 的详情。
165167

@@ -180,7 +182,7 @@ QVERIS_BASE_URL=https://... # 可选:覆盖 API 地址
180182
}
181183
```
182184

183-
以下情况建议使用 `get_tools_by_ids`
185+
以下情况建议使用 `inspect`
184186

185187
- 多个候选能力看起来类似
186188
- 调用前想重新确认参数
@@ -191,7 +193,7 @@ QVERIS_BASE_URL=https://... # 可选:覆盖 API 地址
191193

192194
---
193195

194-
### 3. `execute_tool`
196+
### 3. `call`
195197

196198
调用已发现的 QVeris 能力。
197199

@@ -236,9 +238,9 @@ QVERIS_BASE_URL=https://... # 可选:覆盖 API 地址
236238

237239
对于大多数 Agent 任务,建议使用以下流程:
238240

239-
1. `search_tools` — 发现相关能力
240-
2. `get_tools_by_ids` — 在需要时检查最佳候选
241-
3. `execute_tool` — 调用所选能力
241+
1. `discover` — 发现相关能力
242+
2. `inspect` — 在需要时检查最佳候选
243+
3. `call` — 调用所选能力
242244

243245
实践中:
244246

packages/cli/src/client/api.mjs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,12 @@ async function requestJson(path, { method = "POST", query = {}, body, timeoutMs
3636
errorDetail = jsonBody.error_message || jsonBody.message || null;
3737
} catch { /* not JSON */ }
3838
if (status === 401 || status === 403) throw new CliError("AUTH_INVALID_KEY", errorDetail);
39-
if (status === 402) throw new CliError("CREDITS_INSUFFICIENT", errorDetail);
39+
if (status === 402) {
40+
const pricingHost = baseUrl.includes("qveris.cn") ? "https://qveris.cn" : "https://qveris.ai";
41+
const err = new CliError("CREDITS_INSUFFICIENT", errorDetail);
42+
err.hint = `Purchase credits at ${pricingHost}/pricing`;
43+
throw err;
44+
}
4045
if (status === 429) throw new CliError("RATE_LIMITED", errorDetail);
4146
const err = new CliError("API_ERROR", `HTTP ${status}: ${errorDetail || rawText}`);
4247
if (jsonBody) err.responseData = jsonBody;

packages/mcp/README.md

Lines changed: 32 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -59,22 +59,22 @@ Add the QVeris server to your MCP client configuration:
5959

6060
Once configured, You could add this to system prompt:
6161

62-
> "You can use qveris MCP Server to dynamically search and execute tools to help the user. First think about what kind of tools might be useful to accomplish the user's task. Then use the search_tools tool with query describing the capability of the tool, not what params you want to pass to the tool later. Then call a suitable searched tool using the execute_tool tool, passing parameters to the searched tool through params_to_tool. You could reference the examples given if any for each tool. You may call make multiple tool calls in a single response."
62+
> "You can use qveris MCP Server to dynamically discover and call tools to help the user. First think about what kind of tools might be useful to accomplish the user's task. Then use the discover tool with a query describing the capability of the tool, not what params you want to pass to the tool later. Then call a suitable tool using the call tool, passing parameters through params_to_tool. You could reference the examples given if any for each tool. You may make multiple tool calls in a single response."
6363
64-
Then your AI assistant can search for and execute tools:
64+
Then your AI assistant can discover and call tools:
6565

6666
> "Find me a weather tool and get the current weather in Tokyo"
6767
6868
The assistant will:
69-
1. Call `search_tools` with query "weather"
70-
2. Review the results and select an appropriate tool
71-
3. Call `execute_tool` with the tool_id and parameters
69+
1. Call `discover` with query "weather"
70+
2. Optionally call `inspect` to review tool details
71+
3. Call `call` with the tool_id and parameters
7272

7373
## Available Tools
7474

75-
### `search_tools`
75+
### `discover`
7676

77-
Search for available tools based on natural language queries.
77+
Discover available tools based on natural language queries.
7878

7979
| Parameter | Type | Required | Description |
8080
|-----------|------|----------|-------------|
@@ -91,47 +91,57 @@ Search for available tools based on natural language queries.
9191
}
9292
```
9393

94-
### `execute_tool`
94+
### `inspect`
9595

96-
Execute a discovered tool with specific parameters.
96+
Inspect tools by their IDs to get detailed information (parameters, success rate, latency, examples).
9797

9898
| Parameter | Type | Required | Description |
9999
|-----------|------|----------|-------------|
100-
| `tool_id` | string || Tool ID from search results |
101-
| `search_id` | string || Search ID from the search that found this tool |
102-
| `params_to_tool` | object || A dictionary of parameters to pass to the tool |
100+
| `tool_ids` | array || Array of tool IDs to retrieve (at least one required) |
101+
| `search_id` | string | | Search ID from the discover call that returned the tool(s) |
103102
| `session_id` | string | | Session identifier (auto-generated if omitted) |
104-
| `max_response_size` | number | | Max response size in bytes (default: 20480) |
105103

106104
**Example:**
107105

108106
```json
109107
{
110-
"tool_id": "openweathermap.weather.execute.v1",
111-
"search_id": "abcd1234-ab12-ab12-ab12-abcdef123456",
112-
"params_to_tool": {"city": "London", "units": "metric"}
108+
"tool_ids": ["openweathermap.weather.execute.v1", "worldbank_refined.search_indicators.v1"],
109+
"search_id": "abcd1234-ab12-ab12-ab12-abcdef123456"
113110
}
114111
```
115112

116-
### `get_tools_by_ids`
113+
### `call`
117114

118-
Get detailed descriptions of tools based on their tool IDs. Useful for retrieving information about specific tools when you already know their IDs from previous searches.
115+
Call a discovered tool with specific parameters.
119116

120117
| Parameter | Type | Required | Description |
121118
|-----------|------|----------|-------------|
122-
| `tool_ids` | array || Array of tool IDs to retrieve (at least one required) |
123-
| `search_id` | string | | Search ID from the search that returned the tool(s) |
119+
| `tool_id` | string || Tool ID from discover results |
120+
| `search_id` | string || Search ID from the discover call that found this tool |
121+
| `params_to_tool` | object || A dictionary of parameters to pass to the tool |
124122
| `session_id` | string | | Session identifier (auto-generated if omitted) |
123+
| `max_response_size` | number | | Max response size in bytes (default: 20480) |
125124

126125
**Example:**
127126

128127
```json
129128
{
130-
"tool_ids": ["openweathermap.weather.execute.v1", "worldbank_refined.search_indicators.v1"],
131-
"search_id": "abcd1234-ab12-ab12-ab12-abcdef123456"
129+
"tool_id": "openweathermap.weather.execute.v1",
130+
"search_id": "abcd1234-ab12-ab12-ab12-abcdef123456",
131+
"params_to_tool": {"city": "London", "units": "metric"}
132132
}
133133
```
134134

135+
### Deprecated tool names
136+
137+
For backward compatibility, the old tool names are still supported but emit a deprecation warning:
138+
139+
| Old name (deprecated) | New name |
140+
|----------------------|----------|
141+
| `search_tools` | `discover` |
142+
| `get_tools_by_ids` | `inspect` |
143+
| `execute_tool` | `call` |
144+
135145
## Session Management
136146

137147
Providing a consistent `session_id` in a same user session in any tool call enables:

packages/mcp/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@qverisai/mcp",
3-
"version": "0.4.0",
3+
"version": "0.5.0",
44
"description": "Official QVeris AI MCP Server SDK - Search and execute tools via natural language",
55
"keywords": [
66
"qveris",

packages/mcp/src/api/client.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,8 @@ export class QverisClient {
131131

132132
// Provide actionable hints for specific status codes
133133
if (status === 402) {
134-
errorMessage = `Insufficient credits. ${errorMessage}. Purchase credits at https://qveris.ai/pricing`;
134+
const pricingHost = this.baseUrl.includes('qveris.cn') ? 'https://qveris.cn' : 'https://qveris.ai';
135+
errorMessage = `Insufficient credits. ${errorMessage}. Purchase credits at ${pricingHost}/pricing`;
135136
}
136137

137138
const error: ApiError = {

0 commit comments

Comments
 (0)