@motrix/mdxp 0.5.0 → 0.7.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 +53 -1
- package/README.zh-CN.md +45 -1
- package/dist/connection.d.ts +3 -1
- package/dist/connection.d.ts.map +1 -1
- package/dist/connection.js.map +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/methods.d.ts +23 -21
- package/dist/methods.d.ts.map +1 -1
- package/dist/methods.js +2 -0
- package/dist/methods.js.map +1 -1
- package/dist/schemas/download-add.d.ts +7 -7
- package/dist/schemas/download-directories.d.ts +12 -0
- package/dist/schemas/download-directories.d.ts.map +1 -0
- package/dist/schemas/download-directories.js +15 -0
- package/dist/schemas/download-directories.js.map +1 -0
- package/dist/schemas/download.d.ts +9 -8
- package/dist/schemas/download.d.ts.map +1 -1
- package/dist/schemas/download.js +3 -0
- package/dist/schemas/download.js.map +1 -1
- package/dist/schemas/engine.d.ts +6 -6
- package/dist/schemas/events.d.ts +1 -1
- package/dist/schemas/index.d.ts +1 -0
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +1 -0
- package/dist/schemas/index.js.map +1 -1
- package/dist/schemas/initialize.d.ts +6 -4
- package/dist/schemas/initialize.d.ts.map +1 -1
- package/dist/schemas/initialize.js +4 -0
- package/dist/schemas/initialize.js.map +1 -1
- package/dist/schemas/resource.d.ts +2 -2
- package/dist/schemas/selection.d.ts +8 -8
- package/dist/schemas/task.d.ts +38 -32
- package/dist/schemas/task.d.ts.map +1 -1
- package/dist/schemas/task.js +5 -0
- package/dist/schemas/task.js.map +1 -1
- package/dist/schemas/url.d.ts +9 -9
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +16 -1
- package/dist/tools.js.map +1 -1
- package/dist/transports/stdio.js.map +1 -1
- package/dist/transports/ws.js.map +1 -1
- package/dist/types.d.ts +2 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +8 -8
- package/src/connection.ts +6 -0
- package/src/index.ts +5 -1
- package/src/methods.ts +2 -0
- package/src/schemas/download-directories.ts +26 -0
- package/src/schemas/download.ts +3 -0
- package/src/schemas/index.ts +1 -0
- package/src/schemas/initialize.ts +4 -0
- package/src/schemas/task.ts +8 -0
- package/src/tools.ts +20 -0
- package/src/types.ts +6 -0
package/src/connection.ts
CHANGED
|
@@ -11,6 +11,8 @@ import type {
|
|
|
11
11
|
DownloadAddResult,
|
|
12
12
|
DownloadCancelParams,
|
|
13
13
|
DownloadCancelResult,
|
|
14
|
+
DownloadDirectoriesParams,
|
|
15
|
+
DownloadDirectoriesResult,
|
|
14
16
|
DownloadSubmitParams,
|
|
15
17
|
DownloadSubmitResult,
|
|
16
18
|
EngineStatusParams,
|
|
@@ -36,6 +38,8 @@ import type {
|
|
|
36
38
|
TaskRemoveResult,
|
|
37
39
|
TaskResumeParams,
|
|
38
40
|
TaskResumeResult,
|
|
41
|
+
TaskRevealParams,
|
|
42
|
+
TaskRevealResult,
|
|
39
43
|
UrlProbeParams,
|
|
40
44
|
UrlProbeResult,
|
|
41
45
|
UrlResolveParams,
|
|
@@ -46,6 +50,7 @@ import type {
|
|
|
46
50
|
export interface MdxpRequestMap {
|
|
47
51
|
'motrix/initialize': [InitializeParams, InitializeResult]
|
|
48
52
|
'download/submit': [DownloadSubmitParams, DownloadSubmitResult]
|
|
53
|
+
'download/directories': [DownloadDirectoriesParams, DownloadDirectoriesResult]
|
|
49
54
|
'download/cancel': [DownloadCancelParams, DownloadCancelResult]
|
|
50
55
|
'url/probe': [UrlProbeParams, UrlProbeResult]
|
|
51
56
|
'url/resolve': [UrlResolveParams, UrlResolveResult]
|
|
@@ -57,6 +62,7 @@ export interface MdxpRequestMap {
|
|
|
57
62
|
'task/pause': [TaskPauseParams, TaskPauseResult]
|
|
58
63
|
'task/resume': [TaskResumeParams, TaskResumeResult]
|
|
59
64
|
'task/remove': [TaskRemoveParams, TaskRemoveResult]
|
|
65
|
+
'task/reveal': [TaskRevealParams, TaskRevealResult]
|
|
60
66
|
'stats/get': [StatsGetParams, StatsResult]
|
|
61
67
|
'engine/status': [EngineStatusParams, EngineStatusResult]
|
|
62
68
|
}
|
package/src/index.ts
CHANGED
|
@@ -11,7 +11,11 @@ export type {
|
|
|
11
11
|
MessageReader,
|
|
12
12
|
MessageWriter,
|
|
13
13
|
} from 'vscode-jsonrpc'
|
|
14
|
-
export {
|
|
14
|
+
export {
|
|
15
|
+
CancellationToken,
|
|
16
|
+
CancellationTokenSource,
|
|
17
|
+
ResponseError,
|
|
18
|
+
} from 'vscode-jsonrpc'
|
|
15
19
|
export type {
|
|
16
20
|
MdxpConnection,
|
|
17
21
|
MdxpNotificationMap,
|
package/src/methods.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
export const Methods = Object.freeze({
|
|
3
3
|
MotrixInitialize: 'motrix/initialize',
|
|
4
4
|
DownloadSubmit: 'download/submit',
|
|
5
|
+
DownloadDirectories: 'download/directories',
|
|
5
6
|
DownloadCancel: 'download/cancel',
|
|
6
7
|
UrlProbe: 'url/probe',
|
|
7
8
|
UrlResolve: 'url/resolve',
|
|
@@ -13,6 +14,7 @@ export const Methods = Object.freeze({
|
|
|
13
14
|
TaskPause: 'task/pause',
|
|
14
15
|
TaskResume: 'task/resume',
|
|
15
16
|
TaskRemove: 'task/remove',
|
|
17
|
+
TaskReveal: 'task/reveal',
|
|
16
18
|
StatsGet: 'stats/get',
|
|
17
19
|
EngineStatus: 'engine/status',
|
|
18
20
|
} as const)
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { z } from 'zod'
|
|
2
|
+
|
|
3
|
+
/** Native paths belong to the target Motrix host, never the browser machine. */
|
|
4
|
+
export const DownloadDirectoryPathSchema = z
|
|
5
|
+
.string()
|
|
6
|
+
.min(1)
|
|
7
|
+
.max(4096)
|
|
8
|
+
.refine(
|
|
9
|
+
(value) => !value.includes('\0'),
|
|
10
|
+
'Directory paths must not contain NUL'
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
export const DownloadDirectoriesParamsSchema = z.object({}).strict()
|
|
14
|
+
export const DownloadDirectoriesResultSchema = z.object({
|
|
15
|
+
/** Null when the configured default is currently unavailable. */
|
|
16
|
+
defaultSaveDir: DownloadDirectoryPathSchema.nullable(),
|
|
17
|
+
favorites: z.array(DownloadDirectoryPathSchema).max(20),
|
|
18
|
+
recent: z.array(DownloadDirectoryPathSchema).max(10),
|
|
19
|
+
})
|
|
20
|
+
|
|
21
|
+
export type DownloadDirectoriesParams = z.infer<
|
|
22
|
+
typeof DownloadDirectoriesParamsSchema
|
|
23
|
+
>
|
|
24
|
+
export type DownloadDirectoriesResult = z.infer<
|
|
25
|
+
typeof DownloadDirectoriesResultSchema
|
|
26
|
+
>
|
package/src/schemas/download.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod'
|
|
2
|
+
import { DownloadDirectoryPathSchema } from './download-directories.js'
|
|
2
3
|
import { SelectionSchema } from './selection.js'
|
|
3
4
|
|
|
4
5
|
export const DownloadSubmitParamsSchema = z.object({
|
|
@@ -9,6 +10,8 @@ export const DownloadSubmitParamsSchema = z.object({
|
|
|
9
10
|
siteHint: z.string().max(64).optional(),
|
|
10
11
|
}),
|
|
11
12
|
selection: SelectionSchema,
|
|
13
|
+
/** Only when capabilities.downloadDirectories is true; must be a listed path. */
|
|
14
|
+
saveDir: DownloadDirectoryPathSchema.optional(),
|
|
12
15
|
meta: z.object({
|
|
13
16
|
suggestedFilename: z.string().max(255),
|
|
14
17
|
qualityLabel: z.string().max(64),
|
package/src/schemas/index.ts
CHANGED
|
@@ -70,6 +70,10 @@ const ServerCapabilitiesSchema = z.object({
|
|
|
70
70
|
selectionKinds: z.array(z.enum(['direct', 'hls', 'dash', 'mux'])),
|
|
71
71
|
progress: z.boolean(),
|
|
72
72
|
cancellation: z.boolean(),
|
|
73
|
+
/** Optional on the wire for protocol 1.0 compatibility; absent is false. */
|
|
74
|
+
taskReveal: z.boolean().optional().default(false),
|
|
75
|
+
/** Enables download/directories AND download/submit.saveDir; absent is false. */
|
|
76
|
+
downloadDirectories: z.boolean().optional(),
|
|
73
77
|
})
|
|
74
78
|
|
|
75
79
|
export const InitializeResultSchema = z.object({
|
package/src/schemas/task.ts
CHANGED
|
@@ -101,6 +101,12 @@ export const TaskRemoveParamsSchema = z.strictObject({
|
|
|
101
101
|
deleteFiles: z.boolean().optional(),
|
|
102
102
|
})
|
|
103
103
|
|
|
104
|
+
// ─── task/reveal ──────────────────────────────────────────────
|
|
105
|
+
/** Ask the host to reveal a task's output in the platform file manager. */
|
|
106
|
+
export const TaskRevealParamsSchema = z.strictObject({
|
|
107
|
+
taskId: z.string().min(1),
|
|
108
|
+
})
|
|
109
|
+
|
|
104
110
|
export type MdxpTaskStatus = z.infer<typeof MdxpTaskStatusSchema>
|
|
105
111
|
export type MdxpTaskType = z.infer<typeof MdxpTaskTypeSchema>
|
|
106
112
|
export type MdxpTask = z.infer<typeof MdxpTaskSchema>
|
|
@@ -115,3 +121,5 @@ export type TaskResumeParams = z.infer<typeof TaskResumeParamsSchema>
|
|
|
115
121
|
export type TaskResumeResult = OkResult
|
|
116
122
|
export type TaskRemoveParams = z.infer<typeof TaskRemoveParamsSchema>
|
|
117
123
|
export type TaskRemoveResult = OkResult
|
|
124
|
+
export type TaskRevealParams = z.infer<typeof TaskRevealParamsSchema>
|
|
125
|
+
export type TaskRevealResult = OkResult
|
package/src/tools.ts
CHANGED
|
@@ -10,6 +10,10 @@ import {
|
|
|
10
10
|
DownloadAddParamsSchema,
|
|
11
11
|
DownloadAddResultSchema,
|
|
12
12
|
} from './schemas/download-add.js'
|
|
13
|
+
import {
|
|
14
|
+
DownloadDirectoriesParamsSchema,
|
|
15
|
+
DownloadDirectoriesResultSchema,
|
|
16
|
+
} from './schemas/download-directories.js'
|
|
13
17
|
import {
|
|
14
18
|
EngineStatusParamsSchema,
|
|
15
19
|
EngineStatusResultSchema,
|
|
@@ -32,6 +36,7 @@ import {
|
|
|
32
36
|
TaskPauseParamsSchema,
|
|
33
37
|
TaskRemoveParamsSchema,
|
|
34
38
|
TaskResumeParamsSchema,
|
|
39
|
+
TaskRevealParamsSchema,
|
|
35
40
|
} from './schemas/task.js'
|
|
36
41
|
|
|
37
42
|
export interface MdxpToolDef {
|
|
@@ -77,6 +82,14 @@ export const Tools: Readonly<Record<string, MdxpToolDef>> = {
|
|
|
77
82
|
resultSchema: SystemPingResultSchema,
|
|
78
83
|
agentFacing: false,
|
|
79
84
|
},
|
|
85
|
+
[Methods.DownloadDirectories]: {
|
|
86
|
+
method: Methods.DownloadDirectories,
|
|
87
|
+
description:
|
|
88
|
+
'List available default, favorite and recent directories on the Motrix host.',
|
|
89
|
+
paramsSchema: DownloadDirectoriesParamsSchema,
|
|
90
|
+
resultSchema: DownloadDirectoriesResultSchema,
|
|
91
|
+
agentFacing: false,
|
|
92
|
+
},
|
|
80
93
|
[Methods.DownloadSubmit]: {
|
|
81
94
|
method: Methods.DownloadSubmit,
|
|
82
95
|
description:
|
|
@@ -135,6 +148,13 @@ export const Tools: Readonly<Record<string, MdxpToolDef>> = {
|
|
|
135
148
|
resultSchema: OkResultSchema,
|
|
136
149
|
agentFacing: true,
|
|
137
150
|
},
|
|
151
|
+
[Methods.TaskReveal]: {
|
|
152
|
+
method: Methods.TaskReveal,
|
|
153
|
+
description: "Reveal a task's output in the platform file manager.",
|
|
154
|
+
paramsSchema: TaskRevealParamsSchema,
|
|
155
|
+
resultSchema: OkResultSchema,
|
|
156
|
+
agentFacing: false,
|
|
157
|
+
},
|
|
138
158
|
[Methods.StatsGet]: {
|
|
139
159
|
method: Methods.StatsGet,
|
|
140
160
|
description: 'Get aggregate global stats (speeds + task counts).',
|
package/src/types.ts
CHANGED
|
@@ -8,6 +8,10 @@ export type {
|
|
|
8
8
|
DownloadAddParams,
|
|
9
9
|
DownloadAddResult,
|
|
10
10
|
} from './schemas/download-add.js'
|
|
11
|
+
export type {
|
|
12
|
+
DownloadDirectoriesParams,
|
|
13
|
+
DownloadDirectoriesResult,
|
|
14
|
+
} from './schemas/download-directories.js'
|
|
11
15
|
export type {
|
|
12
16
|
EngineFeatureReport,
|
|
13
17
|
EngineState,
|
|
@@ -54,6 +58,8 @@ export type {
|
|
|
54
58
|
TaskRemoveResult,
|
|
55
59
|
TaskResumeParams,
|
|
56
60
|
TaskResumeResult,
|
|
61
|
+
TaskRevealParams,
|
|
62
|
+
TaskRevealResult,
|
|
57
63
|
} from './schemas/task.js'
|
|
58
64
|
export type {
|
|
59
65
|
UrlProbeParams,
|