@cueai/omni-reader-mcp 1.1.0 → 1.1.1

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 CHANGED
@@ -33,15 +33,15 @@ Bridge 运行时只使用以下产品配置:
33
33
  始终使用已审核的精确版本,不使用隐式 `latest`:
34
34
 
35
35
  ```sh
36
- npx -y @cueai/omni-reader-mcp@1.1.0 setup
36
+ npx -y @cueai/omni-reader-mcp@1.1.1 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.0 setup --client hermes --allowed-root /absolute/minimum/root --yes --json
43
- npx -y @cueai/omni-reader-mcp@1.1.0 setup --client cursor --add-root /absolute/minimum/root --yes --json
44
- npx -y @cueai/omni-reader-mcp@1.1.0 setup --client claude-desktop --allowed-root /absolute/minimum/root --yes --json
42
+ npx -y @cueai/omni-reader-mcp@1.1.1 setup --client hermes --allowed-root /absolute/minimum/root --yes --json
43
+ npx -y @cueai/omni-reader-mcp@1.1.1 setup --client cursor --add-root /absolute/minimum/root --yes --json
44
+ npx -y @cueai/omni-reader-mcp@1.1.1 setup --client claude-desktop --allowed-root /absolute/minimum/root --yes --json
45
45
  ```
46
46
 
47
47
  setup 会:
@@ -112,25 +112,25 @@ Agent 不应自动拆分、转码或上传公共站点;应请用户提供符
112
112
  ## 命令
113
113
 
114
114
  ```sh
115
- npx -y @cueai/omni-reader-mcp@1.1.0 doctor
116
- npx -y @cueai/omni-reader-mcp@1.1.0 doctor --json
117
- npx -y @cueai/omni-reader-mcp@1.1.0 clean
118
- npx -y @cueai/omni-reader-mcp@1.1.0 uninstall --yes --json
115
+ npx -y @cueai/omni-reader-mcp@1.1.1 doctor
116
+ npx -y @cueai/omni-reader-mcp@1.1.1 doctor --json
117
+ npx -y @cueai/omni-reader-mcp@1.1.1 clean
118
+ npx -y @cueai/omni-reader-mcp@1.1.1 uninstall --yes --json
119
119
  ```
120
120
 
121
121
  不带命令运行固定版本会启动 stdio MCP server:
122
122
 
123
123
  ```sh
124
- npx -y @cueai/omni-reader-mcp@1.1.0
124
+ npx -y @cueai/omni-reader-mcp@1.1.1
125
125
  ```
126
126
 
127
127
  `doctor --json` 返回 package/npm/client adapter、Key present/absent、allowed-root 安全状态、endpoint compatibility、artifact、cache mode、onboarding 和 reload 状态;不会输出 Key、私有来源路径或内容。
128
128
 
129
129
  ## 卸载与回滚
130
130
 
131
- `uninstall --yes --json` 只删除当前受信的 1.1.0 Bridge entry;存在匹配的可信备份时恢复原 URL-only `omni-reader` entry。卸载不会删除用户源文件,也不会静默删除未过期的本地结果。
131
+ `uninstall --yes --json` 只删除当前受信的 1.1.1 Bridge entry;存在匹配的可信备份时恢复原 URL-only `omni-reader` entry。卸载不会删除用户源文件,也不会静默删除未过期的本地结果。
132
132
 
133
- 需要回滚 1.1.0 时:
133
+ 需要回滚 1.1.1 时:
134
134
 
135
135
  1. 停止推荐或安装该版本;
136
136
  2. 运行 `uninstall --yes --json` 恢复可信 URL-only entry;
@@ -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.0";
9
+ export declare const BRIDGE_RELEASE_VERSION = "1.1.1";
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.0";
9
+ export const BRIDGE_RELEASE_VERSION = "1.1.1";
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;
@@ -461,8 +461,21 @@ export class OperationManager {
461
461
  }
462
462
  }
463
463
  #shouldReuseByRequestHash(record) {
464
- if (!TERMINAL_STATES.has(record.state))
464
+ if (!TERMINAL_STATES.has(record.state)) {
465
+ // Local uploads may resume mid-flight (restart recovery). URL recovery
466
+ // is only valid BEFORE the remote operation exists (GRANT_PENDING — the
467
+ // retry reuses the same request identity and the server's idempotency
468
+ // key dedupes). Once a URL op is PROCESSING (operationId set), the
469
+ // server owns it and a fresh parse creates a NEW operation id — reusing
470
+ // the stale record pairs old op_id with the server's new one →
471
+ // "changed the operation identifier" → REMOTE_PROTOCOL_ERROR
472
+ // (dogfood 2026-08-06). Reuse URL non-terminal records only when no
473
+ // operation id has been issued yet.
474
+ if (record.sourceKind === "url") {
475
+ return record.operationId === null;
476
+ }
465
477
  return true;
478
+ }
466
479
  if (record.state !== "COMPLETED" || record.operationId === null)
467
480
  return false;
468
481
  if (this.#results.has(record.operationId))
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cueai/omni-reader-mcp",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "description": "Local stdio MCP bridge for direct Omni document parsing",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",