@cueai/omni-reader-mcp 1.1.2 → 1.1.3
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/README.md +19 -12
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/dist/result-contract.js +12 -14
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -33,21 +33,21 @@ Bridge 运行时只使用以下产品配置:
|
|
|
33
33
|
始终使用已审核的精确版本,不使用隐式 `latest`:
|
|
34
34
|
|
|
35
35
|
```sh
|
|
36
|
-
npx -y @cueai/omni-reader-mcp@1.1.
|
|
36
|
+
npx -y @cueai/omni-reader-mcp@1.1.3 setup
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
交互 setup 支持 Hermes、Cursor、Claude Desktop 和通用 stdio 配置。非交互安装使用同一参数解析和写入逻辑:
|
|
40
40
|
|
|
41
41
|
```sh
|
|
42
|
-
npx -y @cueai/omni-reader-mcp@1.1.
|
|
43
|
-
npx -y @cueai/omni-reader-mcp@1.1.
|
|
44
|
-
npx -y @cueai/omni-reader-mcp@1.1.
|
|
42
|
+
npx -y @cueai/omni-reader-mcp@1.1.3 setup --client hermes --allowed-root /absolute/minimum/root --yes --json
|
|
43
|
+
npx -y @cueai/omni-reader-mcp@1.1.3 setup --client cursor --add-root /absolute/minimum/root --yes --json
|
|
44
|
+
npx -y @cueai/omni-reader-mcp@1.1.3 setup --client claude-desktop --allowed-root /absolute/minimum/root --yes --json
|
|
45
45
|
```
|
|
46
46
|
|
|
47
47
|
Agent/脚本在 pty 下运行(stdin 仍是 TTY)时,用 `--headless`(别名 `--non-interactive`)显式声明非交互,无需 `--yes` 且绝不读 stdin:
|
|
48
48
|
|
|
49
49
|
```sh
|
|
50
|
-
npx -y @cueai/omni-reader-mcp@1.1.
|
|
50
|
+
npx -y @cueai/omni-reader-mcp@1.1.3 setup --client cursor --allowed-root /absolute/minimum/root --headless --json
|
|
51
51
|
```
|
|
52
52
|
|
|
53
53
|
## 缓存与 journal 隔离
|
|
@@ -89,7 +89,14 @@ Agent 将用户提供的来源字符串直接传给 `parse(source)`:
|
|
|
89
89
|
- `read_result`
|
|
90
90
|
- `discard_result`
|
|
91
91
|
|
|
92
|
-
每个工具都返回 `structuredContent` 和严格 `outputSchema
|
|
92
|
+
每个工具都返回 `structuredContent` 和严格 `outputSchema`,同时为只读取传统 MCP `content[].text` 的客户端提供等价回退:
|
|
93
|
+
|
|
94
|
+
- `parse` 完成且结果可 inline 时,text 直接返回完整 Markdown;
|
|
95
|
+
- processing、artifact、cleanup、cancel、expired 和 failure 状态,text 返回与 `structuredContent` 字段等价的紧凑 JSON;
|
|
96
|
+
- `read_result` 的 text JSON 包含本次 `result.text` 和可选 `next_cursor`,客户端必须追完所有 cursor 后再拼接正文;
|
|
97
|
+
- `discard_result` 的 text JSON 明确返回 `discarded`,不得仅凭调用成功宣称结果已删除。
|
|
98
|
+
|
|
99
|
+
这使不展示 `structuredContent` 的客户端也能取得 operation/result 句柄和完整正文,同时不改变支持结构化结果的客户端契约。
|
|
93
100
|
|
|
94
101
|
## 前台、后台和进度
|
|
95
102
|
|
|
@@ -128,23 +135,23 @@ Agent 不应自动拆分、转码或上传公共站点;应请用户提供符
|
|
|
128
135
|
## 命令
|
|
129
136
|
|
|
130
137
|
```sh
|
|
131
|
-
npx -y @cueai/omni-reader-mcp@1.1.
|
|
132
|
-
npx -y @cueai/omni-reader-mcp@1.1.
|
|
133
|
-
npx -y @cueai/omni-reader-mcp@1.1.
|
|
134
|
-
npx -y @cueai/omni-reader-mcp@1.1.
|
|
138
|
+
npx -y @cueai/omni-reader-mcp@1.1.3 doctor
|
|
139
|
+
npx -y @cueai/omni-reader-mcp@1.1.3 doctor --json
|
|
140
|
+
npx -y @cueai/omni-reader-mcp@1.1.3 clean
|
|
141
|
+
npx -y @cueai/omni-reader-mcp@1.1.3 uninstall --yes --json
|
|
135
142
|
```
|
|
136
143
|
|
|
137
144
|
不带命令运行固定版本会启动 stdio MCP server:
|
|
138
145
|
|
|
139
146
|
```sh
|
|
140
|
-
npx -y @cueai/omni-reader-mcp@1.1.
|
|
147
|
+
npx -y @cueai/omni-reader-mcp@1.1.3
|
|
141
148
|
```
|
|
142
149
|
|
|
143
150
|
`doctor --json` 返回 package/npm/client adapter、Key present/absent、allowed-root 安全状态、endpoint compatibility、artifact、cache mode、onboarding 和 reload 状态;不会输出 Key、私有来源路径或内容。
|
|
144
151
|
|
|
145
152
|
## 卸载与回滚
|
|
146
153
|
|
|
147
|
-
`uninstall --yes --json` 只删除当前受信的 1.1.
|
|
154
|
+
`uninstall --yes --json` 只删除当前受信的 1.1.3 Bridge entry;存在匹配的可信备份时恢复原 URL-only `omni-reader` entry。卸载不会删除用户源文件,也不会静默删除未过期的本地结果。
|
|
148
155
|
|
|
149
156
|
需要回滚 1.1.1 时:
|
|
150
157
|
|
package/dist/constants.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export declare const CUBE_GRANT_PROTOCOL_VERSION = "omni.parse_grant.v1";
|
|
|
6
6
|
export declare const GRANTED_STREAM_PROTOCOL_VERSION = "omni.granted_parse_stream.v1";
|
|
7
7
|
export declare const DEFAULT_CUBE_BASE_URL = "https://mcp.cuecue.cn";
|
|
8
8
|
export declare const DEFAULT_IIIS_GRANTED_BASE_URL = "https://cubefile.ai.iiis.co:9443/omni/granted/";
|
|
9
|
-
export declare const BRIDGE_RELEASE_VERSION = "1.1.
|
|
9
|
+
export declare const BRIDGE_RELEASE_VERSION = "1.1.3";
|
|
10
10
|
export declare const REMOTE_OMNI_MCP_URL = "https://mcp.cuecue.cn/api/omni-reader/mcp/";
|
|
11
11
|
export declare const FOREGROUND_BUDGET_MS = 15000;
|
|
12
12
|
export declare const STATUS_LONG_POLL_MAX_MS = 20000;
|
package/dist/constants.js
CHANGED
|
@@ -6,7 +6,7 @@ export const CUBE_GRANT_PROTOCOL_VERSION = "omni.parse_grant.v1";
|
|
|
6
6
|
export const GRANTED_STREAM_PROTOCOL_VERSION = "omni.granted_parse_stream.v1";
|
|
7
7
|
export const DEFAULT_CUBE_BASE_URL = "https://mcp.cuecue.cn";
|
|
8
8
|
export const DEFAULT_IIIS_GRANTED_BASE_URL = "https://cubefile.ai.iiis.co:9443/omni/granted/";
|
|
9
|
-
export const BRIDGE_RELEASE_VERSION = "1.1.
|
|
9
|
+
export const BRIDGE_RELEASE_VERSION = "1.1.3";
|
|
10
10
|
export const REMOTE_OMNI_MCP_URL = "https://mcp.cuecue.cn/api/omni-reader/mcp/";
|
|
11
11
|
export const FOREGROUND_BUDGET_MS = 15_000;
|
|
12
12
|
export const STATUS_LONG_POLL_MAX_MS = 20_000;
|
package/dist/result-contract.js
CHANGED
|
@@ -210,26 +210,24 @@ export const discardResultToolOutputSchema = z
|
|
|
210
210
|
error: stableErrorSchema.optional(),
|
|
211
211
|
})
|
|
212
212
|
.strict();
|
|
213
|
-
function
|
|
214
|
-
if (value.status === "
|
|
215
|
-
const
|
|
216
|
-
|
|
213
|
+
function textFallback(value) {
|
|
214
|
+
if (value.status === "completed") {
|
|
215
|
+
const result = value.result;
|
|
216
|
+
if (result !== null
|
|
217
|
+
&& typeof result === "object"
|
|
218
|
+
&& !Array.isArray(result)
|
|
219
|
+
&& result.kind === "inline"
|
|
220
|
+
&& typeof result.text === "string") {
|
|
221
|
+
return result.text;
|
|
222
|
+
}
|
|
217
223
|
}
|
|
218
|
-
|
|
219
|
-
return "Omni processing.";
|
|
220
|
-
if (value.status === "cleanup_pending")
|
|
221
|
-
return "Omni cleanup pending.";
|
|
222
|
-
if (value.status === "canceled")
|
|
223
|
-
return "Omni canceled.";
|
|
224
|
-
if (value.status === "expired")
|
|
225
|
-
return "Omni result expired.";
|
|
226
|
-
return "Omni completed.";
|
|
224
|
+
return JSON.stringify(value);
|
|
227
225
|
}
|
|
228
226
|
export function structuredResult(schema, value) {
|
|
229
227
|
const structuredContent = schema.parse(value);
|
|
230
228
|
return {
|
|
231
229
|
...(structuredContent.status === "failed" ? { isError: true } : {}),
|
|
232
230
|
structuredContent,
|
|
233
|
-
content: [{ type: "text", text:
|
|
231
|
+
content: [{ type: "text", text: textFallback(structuredContent) }],
|
|
234
232
|
};
|
|
235
233
|
}
|