@motrix/mdxp 0.1.1 → 0.2.0

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,7 +33,8 @@ top of it.
33
33
  - **Transport-agnostic.** Works over anything that implements
34
34
  `MessageReader`/`MessageWriter`.
35
35
  - **Platform RAL entry points.** `./node` and `./browser` install the matching
36
- `vscode-jsonrpc` runtime abstraction layer for you.
36
+ `vscode-jsonrpc` runtime abstraction layer and re-export its transport classes,
37
+ so you import everything — connection helper and reader/writer — from one place.
37
38
  - **Agent-ready.** A built-in tool registry emits a JSON-Schema tool catalog you
38
39
  can feed straight into an LLM function-calling API.
39
40
  - **Forward-compatible.** Unknown methods and fields are ignored, not rejected.
@@ -46,10 +47,11 @@ npm install @motrix/mdxp
46
47
  ```
47
48
 
48
49
  Runtime dependency: [`vscode-jsonrpc`](https://www.npmjs.com/package/vscode-jsonrpc)
49
- `^9`, a direct dependency installed alongside this package. The examples below
50
- also import reader/writer classes straight from `vscode-jsonrpc/node` and
51
- `vscode-jsonrpc/browser`; if you do the same, declare `vscode-jsonrpc` in your
52
- own dependencies rather than relying on hoisting. ESM-only; requires
50
+ `^9`, installed alongside this package. Its transport classes (reader/writer)
51
+ and the primitives that surface in this package's API — `MessageReader`,
52
+ `MessageConnection`, `CancellationToken`, `CancellationTokenSource`, … — are
53
+ re-exported from `@motrix/mdxp` (see [Entry points](#entry-points)), so you
54
+ rarely need to import `vscode-jsonrpc` directly. ESM-only; requires
53
55
  Node.js ≥ 18 or a modern bundler.
54
56
 
55
57
  ### Entry points
@@ -63,16 +65,21 @@ Node.js ≥ 18 or a modern bundler.
63
65
  `vscode-jsonrpc` v9 requires a runtime abstraction layer (RAL) to be installed
64
66
  before a connection can be created. Importing `@motrix/mdxp/node` or
65
67
  `@motrix/mdxp/browser` installs the right one into the **same** `vscode-jsonrpc`
66
- instance this package uses, and re-exports the entire public API — so a host
67
- imports everything from a single place.
68
+ instance this package uses, and re-exports the entire public API **plus that
69
+ platform's transport classes** (`StreamMessageReader`/`Writer` for Node,
70
+ `BrowserMessageReader`/`Writer` for the browser) — so a host imports everything,
71
+ including its reader/writer, from a single place.
68
72
 
69
73
  ## Quick start
70
74
 
71
75
  ### Node host (over stdio)
72
76
 
73
77
  ```ts
74
- import { createMdxpConnection } from '@motrix/mdxp/node'
75
- import { StreamMessageReader, StreamMessageWriter } from 'vscode-jsonrpc/node'
78
+ import {
79
+ createMdxpConnection,
80
+ StreamMessageReader,
81
+ StreamMessageWriter,
82
+ } from '@motrix/mdxp/node'
76
83
 
77
84
  const conn = createMdxpConnection(
78
85
  new StreamMessageReader(process.stdin),
@@ -91,9 +98,12 @@ conn.listen()
91
98
  ### Browser host
92
99
 
93
100
  ```ts
94
- // Installs the browser RAL, then re-exports the full API.
95
- import { createMdxpConnection } from '@motrix/mdxp/browser'
96
- import { BrowserMessageReader, BrowserMessageWriter } from 'vscode-jsonrpc/browser'
101
+ // Installs the browser RAL and re-exports the full API + transport classes.
102
+ import {
103
+ createMdxpConnection,
104
+ BrowserMessageReader,
105
+ BrowserMessageWriter,
106
+ } from '@motrix/mdxp/browser'
97
107
 
98
108
  // e.g. a MessagePort / Worker; adapt your WebSocket to reader/writer as needed.
99
109
  const conn = createMdxpConnection(
@@ -245,7 +255,7 @@ conn.onNotification('$/task/error', (p) => {
245
255
  handler observes `token.isCancellationRequested`.
246
256
 
247
257
  ```ts
248
- import { CancellationTokenSource } from 'vscode-jsonrpc'
258
+ import { CancellationTokenSource } from '@motrix/mdxp'
249
259
 
250
260
  const cts = new CancellationTokenSource()
251
261
  const pending = conn.sendRequest('url/resolve', { url }, cts.token)
@@ -321,6 +331,7 @@ const tools = toAgentToolCatalog()
321
331
  | `toAgentToolCatalog()` | function | The `agentFacing` subset as JSON-Schema tools. |
322
332
  | `SERVER_INITIATED_METHODS` | const | Methods the server calls on the client (`url/probe`, `url/resolve`). |
323
333
  | `*Schema` | Zod schema | Every wire shape, for runtime validation. |
334
+ | `MessageReader` · `MessageWriter` · `MessageConnection` · `CancellationToken` · `CancellationTokenSource` · `Disposable` | re-export | `vscode-jsonrpc` primitives used across the API. Platform transport classes (`StreamMessageReader`/`Writer`, `BrowserMessageReader`/`Writer`) are re-exported from `./node` and `./browser`. |
324
335
 
325
336
  ### Methods
326
337
 
package/README.zh-CN.md CHANGED
@@ -28,7 +28,8 @@
28
28
  调用处无需任何 cast。
29
29
  - **transport-agnostic**:只要实现了 `MessageReader`/`MessageWriter`,任何双工流都能用。
30
30
  - **平台 RAL 入口**:`./node` 与 `./browser` 会替你装好对应的 `vscode-jsonrpc`
31
- runtime abstraction layer。
31
+ runtime abstraction layer,并 re-export 它的 transport class —— 连接封装与
32
+ reader/writer 都从同一处 import。
32
33
  - **面向 agent**:内置的 tool registry 可产出一份 JSON-Schema tool catalog,
33
34
  能直接对接 LLM 的 function-calling API。
34
35
  - **forward-compatible**:遇到未知的 method 或字段选择忽略,而非 reject。
@@ -41,10 +42,11 @@ npm install @motrix/mdxp
41
42
  ```
42
43
 
43
44
  运行时依赖:[`vscode-jsonrpc`](https://www.npmjs.com/package/vscode-jsonrpc)
44
- `^9`,是本包的直接 `dependency`,会随本包一并装上。下面的示例还直接从
45
- `vscode-jsonrpc/node` 和 `vscode-jsonrpc/browser` import reader/writer 类;若你也
46
- 这样用,请在自己的 dependencies 里显式声明 `vscode-jsonrpc`,不要依赖 hoisting。
47
- 仅 ESM;需要 Node.js ≥ 18 或现代 bundler。
45
+ `^9`,随本包一并装上。它的 transport class(reader/writer),以及在本包 API 中出现的
46
+ 那些 primitive —— `MessageReader`、`MessageConnection`、`CancellationToken`、
47
+ `CancellationTokenSource` 等 —— 都已从 `@motrix/mdxp` re-export(见
48
+ [入口点](#入口点)),因此你几乎无需直接 import `vscode-jsonrpc`。仅 ESM;需要
49
+ Node.js ≥ 18 或现代 bundler。
48
50
 
49
51
  ### 入口点
50
52
 
@@ -56,16 +58,20 @@ npm install @motrix/mdxp
56
58
 
57
59
  `vscode-jsonrpc` v9 要求先装好一层 runtime abstraction layer(RAL),才能创建连接。
58
60
  import `@motrix/mdxp/node` 或 `@motrix/mdxp/browser` 会把对应的 RAL 装进本包所用的
59
- **同一个** `vscode-jsonrpc` 实例,并 re-export 完整的公开 API —— 于是 host 只需从
60
- 一个入口 import 一切。
61
+ **同一个** `vscode-jsonrpc` 实例,并 re-export 完整的公开 API,**外加该平台的
62
+ transport class**(Node 的 `StreamMessageReader`/`Writer`、浏览器的
63
+ `BrowserMessageReader`/`Writer`)—— 于是 host 连同 reader/writer 都只需从一个入口 import。
61
64
 
62
65
  ## 快速开始
63
66
 
64
67
  ### Node host(走 stdio)
65
68
 
66
69
  ```ts
67
- import { createMdxpConnection } from '@motrix/mdxp/node'
68
- import { StreamMessageReader, StreamMessageWriter } from 'vscode-jsonrpc/node'
70
+ import {
71
+ createMdxpConnection,
72
+ StreamMessageReader,
73
+ StreamMessageWriter,
74
+ } from '@motrix/mdxp/node'
69
75
 
70
76
  const conn = createMdxpConnection(
71
77
  new StreamMessageReader(process.stdin),
@@ -84,9 +90,12 @@ conn.listen()
84
90
  ### 浏览器 host
85
91
 
86
92
  ```ts
87
- // 装好 browser RAL,并 re-export 全量 API。
88
- import { createMdxpConnection } from '@motrix/mdxp/browser'
89
- import { BrowserMessageReader, BrowserMessageWriter } from 'vscode-jsonrpc/browser'
93
+ // 装好 browser RAL,并 re-export 全量 API + transport class。
94
+ import {
95
+ createMdxpConnection,
96
+ BrowserMessageReader,
97
+ BrowserMessageWriter,
98
+ } from '@motrix/mdxp/browser'
90
99
 
91
100
  // 例如一个 MessagePort / Worker;若用 WebSocket,需自行适配成 reader/writer。
92
101
  const conn = createMdxpConnection(
@@ -232,7 +241,7 @@ conn.onNotification('$/task/error', (p) => {
232
241
  `token.isCancellationRequested` 即可响应。
233
242
 
234
243
  ```ts
235
- import { CancellationTokenSource } from 'vscode-jsonrpc'
244
+ import { CancellationTokenSource } from '@motrix/mdxp'
236
245
 
237
246
  const cts = new CancellationTokenSource()
238
247
  const pending = conn.sendRequest('url/resolve', { url }, cts.token)
@@ -306,6 +315,7 @@ const tools = toAgentToolCatalog()
306
315
  | `toAgentToolCatalog()` | function | 取 `agentFacing` 子集,转成 JSON-Schema tools。 |
307
316
  | `SERVER_INITIATED_METHODS` | const | 由 server 向 client 发起的 method(`url/probe`、`url/resolve`)。 |
308
317
  | `*Schema` | Zod schema | 全部 wire 形态,供运行时校验。 |
318
+ | `MessageReader` · `MessageWriter` · `MessageConnection` · `CancellationToken` · `CancellationTokenSource` · `Disposable` | re-export | 本包 API 中用到的 `vscode-jsonrpc` primitive。平台 transport class(`StreamMessageReader`/`Writer`、`BrowserMessageReader`/`Writer`)从 `./node` 与 `./browser` re-export。 |
309
319
 
310
320
  ### Methods
311
321
 
package/dist/browser.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  import 'vscode-jsonrpc/browser';
2
+ export { BrowserMessageReader, BrowserMessageWriter, } from 'vscode-jsonrpc/browser';
2
3
  export * from './index.js';
3
4
  //# sourceMappingURL=browser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAWA,OAAO,wBAAwB,CAAA;AAE/B,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAWA,OAAO,wBAAwB,CAAA;AAM/B,OAAO,EACL,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,wBAAwB,CAAA;AAC/B,cAAc,YAAY,CAAA"}
package/dist/browser.js CHANGED
@@ -10,5 +10,10 @@
10
10
  // `@motrix/mdxp/browser` once at startup. The full public API is re-exported, so
11
11
  // `import { createMdxpConnection } from '@motrix/mdxp/browser'` also works.
12
12
  import 'vscode-jsonrpc/browser';
13
+ // Browser transport classes, re-exported so a browser host imports its
14
+ // reader/writer from the same place as `createMdxpConnection` — no separate
15
+ // `vscode-jsonrpc` import, and guaranteed to be the instance this package
16
+ // installed the RAL into.
17
+ export { BrowserMessageReader, BrowserMessageWriter, } from 'vscode-jsonrpc/browser';
13
18
  export * from './index.js';
14
19
  //# sourceMappingURL=browser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,EAAE;AACF,8EAA8E;AAC9E,0EAA0E;AAC1E,gFAAgF;AAChF,8EAA8E;AAC9E,mCAAmC;AACnC,EAAE;AACF,uEAAuE;AACvE,iFAAiF;AACjF,4EAA4E;AAC5E,OAAO,wBAAwB,CAAA;AAE/B,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,EAAE;AACF,8EAA8E;AAC9E,0EAA0E;AAC1E,gFAAgF;AAChF,8EAA8E;AAC9E,mCAAmC;AACnC,EAAE;AACF,uEAAuE;AACvE,iFAAiF;AACjF,4EAA4E;AAC5E,OAAO,wBAAwB,CAAA;AAE/B,uEAAuE;AACvE,4EAA4E;AAC5E,0EAA0E;AAC1E,0BAA0B;AAC1B,OAAO,EACL,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,wBAAwB,CAAA;AAC/B,cAAc,YAAY,CAAA"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ export type { Disposable, MessageConnection, MessageReader, MessageWriter, } from 'vscode-jsonrpc';
2
+ export { CancellationToken, CancellationTokenSource } from 'vscode-jsonrpc';
1
3
  export type { MdxpConnection, MdxpNotificationMap, MdxpRequestMap, } from './connection.js';
2
4
  export { createMdxpConnection } from './connection.js';
3
5
  export type { ErrorCode, MdxpError, MdxpErrorData } from './errors.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,cAAc,GACf,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACtD,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AACtE,OAAO,EACL,UAAU,EACV,aAAa,EACb,eAAe,EACf,aAAa,GACd,MAAM,aAAa,CAAA;AACpB,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAGrD,cAAc,oBAAoB,CAAA;AAClC,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAGxD,OAAO,EACL,wBAAwB,EACxB,KAAK,EACL,kBAAkB,GACnB,MAAM,YAAY,CAAA;AAEnB,mBAAmB,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,YAAY,EACV,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,aAAa,GACd,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AAC3E,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,cAAc,GACf,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACtD,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AACtE,OAAO,EACL,UAAU,EACV,aAAa,EACb,eAAe,EACf,aAAa,GACd,MAAM,aAAa,CAAA;AACpB,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAGrD,cAAc,oBAAoB,CAAA;AAClC,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAGxD,OAAO,EACL,wBAAwB,EACxB,KAAK,EACL,kBAAkB,GACnB,MAAM,YAAY,CAAA;AAEnB,mBAAmB,YAAY,CAAA"}
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  // MDXP — Motrix Download eXchange Protocol
2
2
  // Public API surface for both Motrix desktop and the browser extension.
3
+ export { CancellationToken, CancellationTokenSource } from 'vscode-jsonrpc';
3
4
  export { createMdxpConnection } from './connection.js';
4
5
  export { ErrorCodes, isMotrixError, isProtocolError, makeMdxpError, } from './errors.js';
5
6
  export { Methods, Notifications } from './methods.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,wEAAwE;AAOxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAEtD,OAAO,EACL,UAAU,EACV,aAAa,EACb,eAAe,EACf,aAAa,GACd,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAErD,qDAAqD;AACrD,cAAc,oBAAoB,CAAA;AAGlC,wCAAwC;AACxC,OAAO,EACL,wBAAwB,EACxB,KAAK,EACL,kBAAkB,GACnB,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,wEAAwE;AAYxE,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AAM3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAEtD,OAAO,EACL,UAAU,EACV,aAAa,EACb,eAAe,EACf,aAAa,GACd,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAErD,qDAAqD;AACrD,cAAc,oBAAoB,CAAA;AAGlC,wCAAwC;AACxC,OAAO,EACL,wBAAwB,EACxB,KAAK,EACL,kBAAkB,GACnB,MAAM,YAAY,CAAA"}
package/dist/node.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  import 'vscode-jsonrpc/node';
2
+ export { IPCMessageReader, IPCMessageWriter, PortMessageReader, PortMessageWriter, SocketMessageReader, SocketMessageWriter, StreamMessageReader, StreamMessageWriter, } from 'vscode-jsonrpc/node';
2
3
  export * from './index.js';
3
4
  //# sourceMappingURL=node.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAYA,OAAO,qBAAqB,CAAA;AAE5B,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAYA,OAAO,qBAAqB,CAAA;AAK5B,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,qBAAqB,CAAA;AAC5B,cAAc,YAAY,CAAA"}
package/dist/node.js CHANGED
@@ -11,5 +11,9 @@
11
11
  // once at bootstrap. The full public API is re-exported for convenience, so
12
12
  // `import { createMdxpConnection } from '@motrix/mdxp/node'` also works.
13
13
  import 'vscode-jsonrpc/node';
14
+ // Node transport classes, re-exported so a Node host imports its reader/writer
15
+ // from the same place as `createMdxpConnection` — no separate `vscode-jsonrpc`
16
+ // import, and guaranteed to be the instance this package installed the RAL into.
17
+ export { IPCMessageReader, IPCMessageWriter, PortMessageReader, PortMessageWriter, SocketMessageReader, SocketMessageWriter, StreamMessageReader, StreamMessageWriter, } from 'vscode-jsonrpc/node';
14
18
  export * from './index.js';
15
19
  //# sourceMappingURL=node.js.map
package/dist/node.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,EAAE;AACF,8EAA8E;AAC9E,0EAA0E;AAC1E,gFAAgF;AAChF,2EAA2E;AAC3E,gFAAgF;AAChF,4BAA4B;AAC5B,EAAE;AACF,mFAAmF;AACnF,4EAA4E;AAC5E,yEAAyE;AACzE,OAAO,qBAAqB,CAAA;AAE5B,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,EAAE;AACF,8EAA8E;AAC9E,0EAA0E;AAC1E,gFAAgF;AAChF,2EAA2E;AAC3E,gFAAgF;AAChF,4BAA4B;AAC5B,EAAE;AACF,mFAAmF;AACnF,4EAA4E;AAC5E,yEAAyE;AACzE,OAAO,qBAAqB,CAAA;AAE5B,+EAA+E;AAC/E,+EAA+E;AAC/E,iFAAiF;AACjF,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,qBAAqB,CAAA;AAC5B,cAAc,YAAY,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@motrix/mdxp",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "description": "Motrix Download eXchange Protocol — JSON-RPC 2.0 wire types and connection helpers",
5
5
  "license": "MIT",
6
6
  "author": "Motrix",
package/src/browser.ts CHANGED
@@ -11,4 +11,12 @@
11
11
  // `import { createMdxpConnection } from '@motrix/mdxp/browser'` also works.
12
12
  import 'vscode-jsonrpc/browser'
13
13
 
14
+ // Browser transport classes, re-exported so a browser host imports its
15
+ // reader/writer from the same place as `createMdxpConnection` — no separate
16
+ // `vscode-jsonrpc` import, and guaranteed to be the instance this package
17
+ // installed the RAL into.
18
+ export {
19
+ BrowserMessageReader,
20
+ BrowserMessageWriter,
21
+ } from 'vscode-jsonrpc/browser'
14
22
  export * from './index.js'
package/src/index.ts CHANGED
@@ -1,6 +1,17 @@
1
1
  // MDXP — Motrix Download eXchange Protocol
2
2
  // Public API surface for both Motrix desktop and the browser extension.
3
3
 
4
+ // vscode-jsonrpc primitives that appear in this package's public API surface,
5
+ // re-exported so consumers import them from `@motrix/mdxp` instead of reaching
6
+ // for a second package. Platform transport classes (StreamMessageReader,
7
+ // BrowserMessageReader, …) are re-exported from `./node` and `./browser`.
8
+ export type {
9
+ Disposable,
10
+ MessageConnection,
11
+ MessageReader,
12
+ MessageWriter,
13
+ } from 'vscode-jsonrpc'
14
+ export { CancellationToken, CancellationTokenSource } from 'vscode-jsonrpc'
4
15
  export type {
5
16
  MdxpConnection,
6
17
  MdxpNotificationMap,
package/src/node.ts CHANGED
@@ -12,4 +12,17 @@
12
12
  // `import { createMdxpConnection } from '@motrix/mdxp/node'` also works.
13
13
  import 'vscode-jsonrpc/node'
14
14
 
15
+ // Node transport classes, re-exported so a Node host imports its reader/writer
16
+ // from the same place as `createMdxpConnection` — no separate `vscode-jsonrpc`
17
+ // import, and guaranteed to be the instance this package installed the RAL into.
18
+ export {
19
+ IPCMessageReader,
20
+ IPCMessageWriter,
21
+ PortMessageReader,
22
+ PortMessageWriter,
23
+ SocketMessageReader,
24
+ SocketMessageWriter,
25
+ StreamMessageReader,
26
+ StreamMessageWriter,
27
+ } from 'vscode-jsonrpc/node'
15
28
  export * from './index.js'