@czj-git/dsh-plugin-hub 0.1.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/LICENSE +21 -0
- package/README.en.md +357 -0
- package/README.md +357 -0
- package/cordis.patch.yml +8 -0
- package/dist/api.d.ts +246 -0
- package/dist/api.js +243 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.js +107 -0
- package/dist/render.d.ts +11 -0
- package/dist/render.js +41 -0
- package/dist/tool-schema.d.ts +281 -0
- package/dist/tool-schema.js +129 -0
- package/package.json +75 -0
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
/** Canonical structured return schema shared by both Plugin Hub tools. */
|
|
2
|
+
export declare const pluginHubResultSchema: {
|
|
3
|
+
readonly type: "object";
|
|
4
|
+
readonly additionalProperties: false;
|
|
5
|
+
readonly properties: {
|
|
6
|
+
readonly items: {
|
|
7
|
+
readonly type: "array";
|
|
8
|
+
readonly required: true;
|
|
9
|
+
readonly items: {
|
|
10
|
+
readonly type: "object";
|
|
11
|
+
readonly additionalProperties: false;
|
|
12
|
+
readonly properties: {
|
|
13
|
+
readonly id: {
|
|
14
|
+
readonly type: "string";
|
|
15
|
+
readonly required: true;
|
|
16
|
+
};
|
|
17
|
+
readonly slug: {
|
|
18
|
+
readonly type: "string";
|
|
19
|
+
readonly required: true;
|
|
20
|
+
};
|
|
21
|
+
readonly name: {
|
|
22
|
+
readonly type: "string";
|
|
23
|
+
readonly required: true;
|
|
24
|
+
};
|
|
25
|
+
readonly owner: {
|
|
26
|
+
readonly type: "string";
|
|
27
|
+
readonly required: true;
|
|
28
|
+
};
|
|
29
|
+
readonly repo: {
|
|
30
|
+
readonly type: "string";
|
|
31
|
+
readonly required: true;
|
|
32
|
+
};
|
|
33
|
+
readonly description: {
|
|
34
|
+
readonly type: "string";
|
|
35
|
+
readonly required: true;
|
|
36
|
+
};
|
|
37
|
+
readonly type: {
|
|
38
|
+
readonly type: "string";
|
|
39
|
+
readonly required: true;
|
|
40
|
+
readonly enum: readonly ["host", "client", "hybrid"];
|
|
41
|
+
};
|
|
42
|
+
readonly category: {
|
|
43
|
+
readonly type: "string";
|
|
44
|
+
readonly required: true;
|
|
45
|
+
readonly enum: readonly ["agent-workflow", "coding-tools", "models-data", "ui-experience", "integrations", "security-governance", "multimodal-creative", "observability-cost", "other"];
|
|
46
|
+
};
|
|
47
|
+
readonly topics: {
|
|
48
|
+
readonly type: "array";
|
|
49
|
+
readonly required: true;
|
|
50
|
+
readonly items: {
|
|
51
|
+
readonly type: "string";
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
readonly language: {
|
|
55
|
+
readonly type: "string";
|
|
56
|
+
readonly required: true;
|
|
57
|
+
};
|
|
58
|
+
readonly license: {
|
|
59
|
+
readonly type: "string";
|
|
60
|
+
readonly required: true;
|
|
61
|
+
};
|
|
62
|
+
readonly package: {
|
|
63
|
+
readonly type: "object";
|
|
64
|
+
readonly required: true;
|
|
65
|
+
readonly additionalProperties: false;
|
|
66
|
+
readonly properties: {
|
|
67
|
+
readonly name: {
|
|
68
|
+
readonly type: "string";
|
|
69
|
+
readonly required: true;
|
|
70
|
+
};
|
|
71
|
+
readonly version: {
|
|
72
|
+
readonly type: "string";
|
|
73
|
+
readonly required: true;
|
|
74
|
+
};
|
|
75
|
+
readonly source: {
|
|
76
|
+
readonly type: "string";
|
|
77
|
+
readonly required: true;
|
|
78
|
+
readonly enum: readonly ["npm", "github"];
|
|
79
|
+
};
|
|
80
|
+
readonly sourceSpec: {
|
|
81
|
+
readonly type: "string";
|
|
82
|
+
readonly required: true;
|
|
83
|
+
};
|
|
84
|
+
readonly installCommand: {
|
|
85
|
+
readonly type: "string";
|
|
86
|
+
readonly required: true;
|
|
87
|
+
};
|
|
88
|
+
readonly profile: {
|
|
89
|
+
readonly type: "string";
|
|
90
|
+
readonly required: true;
|
|
91
|
+
};
|
|
92
|
+
};
|
|
93
|
+
};
|
|
94
|
+
readonly compatibility: {
|
|
95
|
+
readonly type: "object";
|
|
96
|
+
readonly required: true;
|
|
97
|
+
readonly additionalProperties: false;
|
|
98
|
+
readonly properties: {
|
|
99
|
+
readonly harnessVersion: {
|
|
100
|
+
readonly type: "string";
|
|
101
|
+
readonly required: true;
|
|
102
|
+
};
|
|
103
|
+
readonly verificationLevel: {
|
|
104
|
+
readonly type: "string";
|
|
105
|
+
readonly required: true;
|
|
106
|
+
readonly enum: readonly ["static-checked", "runtime-verified"];
|
|
107
|
+
};
|
|
108
|
+
readonly smokeStatus: {
|
|
109
|
+
readonly type: "string";
|
|
110
|
+
readonly required: true;
|
|
111
|
+
readonly enum: readonly ["static-passed", "passed", "manual-step-required", "failed", "not-run"];
|
|
112
|
+
};
|
|
113
|
+
readonly validatedAt: {
|
|
114
|
+
readonly type: "string";
|
|
115
|
+
readonly required: true;
|
|
116
|
+
};
|
|
117
|
+
};
|
|
118
|
+
};
|
|
119
|
+
readonly metrics: {
|
|
120
|
+
readonly type: "object";
|
|
121
|
+
readonly required: true;
|
|
122
|
+
readonly additionalProperties: false;
|
|
123
|
+
readonly properties: {
|
|
124
|
+
readonly stars: {
|
|
125
|
+
readonly type: "integer";
|
|
126
|
+
readonly required: true;
|
|
127
|
+
};
|
|
128
|
+
readonly starsDelta1d: {
|
|
129
|
+
readonly required: true;
|
|
130
|
+
readonly oneOf: readonly [{
|
|
131
|
+
readonly type: "integer";
|
|
132
|
+
}, {
|
|
133
|
+
readonly type: "null";
|
|
134
|
+
}];
|
|
135
|
+
};
|
|
136
|
+
readonly forks: {
|
|
137
|
+
readonly type: "integer";
|
|
138
|
+
readonly required: true;
|
|
139
|
+
};
|
|
140
|
+
readonly openIssues: {
|
|
141
|
+
readonly type: "integer";
|
|
142
|
+
readonly required: true;
|
|
143
|
+
};
|
|
144
|
+
readonly views: {
|
|
145
|
+
readonly type: "integer";
|
|
146
|
+
readonly required: true;
|
|
147
|
+
};
|
|
148
|
+
};
|
|
149
|
+
};
|
|
150
|
+
readonly timestamps: {
|
|
151
|
+
readonly type: "object";
|
|
152
|
+
readonly required: true;
|
|
153
|
+
readonly additionalProperties: false;
|
|
154
|
+
readonly properties: {
|
|
155
|
+
readonly listedAt: {
|
|
156
|
+
readonly type: "string";
|
|
157
|
+
readonly required: true;
|
|
158
|
+
};
|
|
159
|
+
readonly lastPushedAt: {
|
|
160
|
+
readonly type: "string";
|
|
161
|
+
readonly required: true;
|
|
162
|
+
};
|
|
163
|
+
readonly sourceUpdatedAt: {
|
|
164
|
+
readonly type: "string";
|
|
165
|
+
readonly required: true;
|
|
166
|
+
};
|
|
167
|
+
};
|
|
168
|
+
};
|
|
169
|
+
readonly links: {
|
|
170
|
+
readonly type: "object";
|
|
171
|
+
readonly required: true;
|
|
172
|
+
readonly additionalProperties: false;
|
|
173
|
+
readonly properties: {
|
|
174
|
+
readonly detail: {
|
|
175
|
+
readonly type: "string";
|
|
176
|
+
readonly required: true;
|
|
177
|
+
};
|
|
178
|
+
readonly repository: {
|
|
179
|
+
readonly type: "string";
|
|
180
|
+
readonly required: true;
|
|
181
|
+
};
|
|
182
|
+
};
|
|
183
|
+
};
|
|
184
|
+
};
|
|
185
|
+
};
|
|
186
|
+
};
|
|
187
|
+
readonly pagination: {
|
|
188
|
+
readonly type: "object";
|
|
189
|
+
readonly required: true;
|
|
190
|
+
readonly additionalProperties: false;
|
|
191
|
+
readonly properties: {
|
|
192
|
+
readonly page: {
|
|
193
|
+
readonly type: "integer";
|
|
194
|
+
readonly required: true;
|
|
195
|
+
};
|
|
196
|
+
readonly perPage: {
|
|
197
|
+
readonly type: "integer";
|
|
198
|
+
readonly required: true;
|
|
199
|
+
};
|
|
200
|
+
readonly total: {
|
|
201
|
+
readonly type: "integer";
|
|
202
|
+
readonly required: true;
|
|
203
|
+
};
|
|
204
|
+
readonly totalPages: {
|
|
205
|
+
readonly type: "integer";
|
|
206
|
+
readonly required: true;
|
|
207
|
+
};
|
|
208
|
+
};
|
|
209
|
+
};
|
|
210
|
+
readonly meta: {
|
|
211
|
+
readonly type: "object";
|
|
212
|
+
readonly required: true;
|
|
213
|
+
readonly additionalProperties: false;
|
|
214
|
+
readonly properties: {
|
|
215
|
+
readonly apiVersion: {
|
|
216
|
+
readonly type: "string";
|
|
217
|
+
readonly required: true;
|
|
218
|
+
readonly const: "v1";
|
|
219
|
+
};
|
|
220
|
+
readonly locale: {
|
|
221
|
+
readonly type: "string";
|
|
222
|
+
readonly required: true;
|
|
223
|
+
readonly enum: readonly ["zh", "en"];
|
|
224
|
+
};
|
|
225
|
+
readonly query: {
|
|
226
|
+
readonly type: "string";
|
|
227
|
+
readonly required: true;
|
|
228
|
+
};
|
|
229
|
+
readonly sort: {
|
|
230
|
+
readonly type: "string";
|
|
231
|
+
readonly required: true;
|
|
232
|
+
readonly enum: readonly ["relevance", "growth", "stars", "newest", "active"];
|
|
233
|
+
};
|
|
234
|
+
readonly dataUpdatedAt: {
|
|
235
|
+
readonly type: "string";
|
|
236
|
+
readonly required: true;
|
|
237
|
+
};
|
|
238
|
+
};
|
|
239
|
+
};
|
|
240
|
+
readonly rateLimit: {
|
|
241
|
+
readonly type: "object";
|
|
242
|
+
readonly required: true;
|
|
243
|
+
readonly additionalProperties: false;
|
|
244
|
+
readonly properties: {
|
|
245
|
+
readonly limit: {
|
|
246
|
+
readonly required: true;
|
|
247
|
+
readonly oneOf: readonly [{
|
|
248
|
+
readonly type: "integer";
|
|
249
|
+
}, {
|
|
250
|
+
readonly type: "null";
|
|
251
|
+
}];
|
|
252
|
+
};
|
|
253
|
+
readonly remaining: {
|
|
254
|
+
readonly required: true;
|
|
255
|
+
readonly oneOf: readonly [{
|
|
256
|
+
readonly type: "integer";
|
|
257
|
+
}, {
|
|
258
|
+
readonly type: "null";
|
|
259
|
+
}];
|
|
260
|
+
};
|
|
261
|
+
readonly reset: {
|
|
262
|
+
readonly required: true;
|
|
263
|
+
readonly oneOf: readonly [{
|
|
264
|
+
readonly type: "string";
|
|
265
|
+
}, {
|
|
266
|
+
readonly type: "null";
|
|
267
|
+
}];
|
|
268
|
+
};
|
|
269
|
+
readonly retryAfterSeconds: {
|
|
270
|
+
readonly required: true;
|
|
271
|
+
readonly oneOf: readonly [{
|
|
272
|
+
readonly type: "integer";
|
|
273
|
+
}, {
|
|
274
|
+
readonly type: "null";
|
|
275
|
+
}];
|
|
276
|
+
};
|
|
277
|
+
};
|
|
278
|
+
};
|
|
279
|
+
};
|
|
280
|
+
};
|
|
281
|
+
//# sourceMappingURL=tool-schema.d.ts.map
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/** Canonical structured return schema shared by both Plugin Hub tools. */
|
|
2
|
+
export const pluginHubResultSchema = {
|
|
3
|
+
type: 'object',
|
|
4
|
+
additionalProperties: false,
|
|
5
|
+
properties: {
|
|
6
|
+
items: {
|
|
7
|
+
type: 'array',
|
|
8
|
+
required: true,
|
|
9
|
+
items: {
|
|
10
|
+
type: 'object',
|
|
11
|
+
additionalProperties: false,
|
|
12
|
+
properties: {
|
|
13
|
+
id: { type: 'string', required: true },
|
|
14
|
+
slug: { type: 'string', required: true },
|
|
15
|
+
name: { type: 'string', required: true },
|
|
16
|
+
owner: { type: 'string', required: true },
|
|
17
|
+
repo: { type: 'string', required: true },
|
|
18
|
+
description: { type: 'string', required: true },
|
|
19
|
+
type: { type: 'string', required: true, enum: ['host', 'client', 'hybrid'] },
|
|
20
|
+
category: {
|
|
21
|
+
type: 'string',
|
|
22
|
+
required: true,
|
|
23
|
+
enum: [
|
|
24
|
+
'agent-workflow', 'coding-tools', 'models-data', 'ui-experience', 'integrations',
|
|
25
|
+
'security-governance', 'multimodal-creative', 'observability-cost', 'other',
|
|
26
|
+
],
|
|
27
|
+
},
|
|
28
|
+
topics: { type: 'array', required: true, items: { type: 'string' } },
|
|
29
|
+
language: { type: 'string', required: true },
|
|
30
|
+
license: { type: 'string', required: true },
|
|
31
|
+
package: {
|
|
32
|
+
type: 'object',
|
|
33
|
+
required: true,
|
|
34
|
+
additionalProperties: false,
|
|
35
|
+
properties: {
|
|
36
|
+
name: { type: 'string', required: true },
|
|
37
|
+
version: { type: 'string', required: true },
|
|
38
|
+
source: { type: 'string', required: true, enum: ['npm', 'github'] },
|
|
39
|
+
sourceSpec: { type: 'string', required: true },
|
|
40
|
+
installCommand: { type: 'string', required: true },
|
|
41
|
+
profile: { type: 'string', required: true },
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
compatibility: {
|
|
45
|
+
type: 'object',
|
|
46
|
+
required: true,
|
|
47
|
+
additionalProperties: false,
|
|
48
|
+
properties: {
|
|
49
|
+
harnessVersion: { type: 'string', required: true },
|
|
50
|
+
verificationLevel: { type: 'string', required: true, enum: ['static-checked', 'runtime-verified'] },
|
|
51
|
+
smokeStatus: {
|
|
52
|
+
type: 'string',
|
|
53
|
+
required: true,
|
|
54
|
+
enum: ['static-passed', 'passed', 'manual-step-required', 'failed', 'not-run'],
|
|
55
|
+
},
|
|
56
|
+
validatedAt: { type: 'string', required: true },
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
metrics: {
|
|
60
|
+
type: 'object',
|
|
61
|
+
required: true,
|
|
62
|
+
additionalProperties: false,
|
|
63
|
+
properties: {
|
|
64
|
+
stars: { type: 'integer', required: true },
|
|
65
|
+
starsDelta1d: { required: true, oneOf: [{ type: 'integer' }, { type: 'null' }] },
|
|
66
|
+
forks: { type: 'integer', required: true },
|
|
67
|
+
openIssues: { type: 'integer', required: true },
|
|
68
|
+
views: { type: 'integer', required: true },
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
timestamps: {
|
|
72
|
+
type: 'object',
|
|
73
|
+
required: true,
|
|
74
|
+
additionalProperties: false,
|
|
75
|
+
properties: {
|
|
76
|
+
listedAt: { type: 'string', required: true },
|
|
77
|
+
lastPushedAt: { type: 'string', required: true },
|
|
78
|
+
sourceUpdatedAt: { type: 'string', required: true },
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
links: {
|
|
82
|
+
type: 'object',
|
|
83
|
+
required: true,
|
|
84
|
+
additionalProperties: false,
|
|
85
|
+
properties: {
|
|
86
|
+
detail: { type: 'string', required: true },
|
|
87
|
+
repository: { type: 'string', required: true },
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
pagination: {
|
|
94
|
+
type: 'object',
|
|
95
|
+
required: true,
|
|
96
|
+
additionalProperties: false,
|
|
97
|
+
properties: {
|
|
98
|
+
page: { type: 'integer', required: true },
|
|
99
|
+
perPage: { type: 'integer', required: true },
|
|
100
|
+
total: { type: 'integer', required: true },
|
|
101
|
+
totalPages: { type: 'integer', required: true },
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
meta: {
|
|
105
|
+
type: 'object',
|
|
106
|
+
required: true,
|
|
107
|
+
additionalProperties: false,
|
|
108
|
+
properties: {
|
|
109
|
+
apiVersion: { type: 'string', required: true, const: 'v1' },
|
|
110
|
+
locale: { type: 'string', required: true, enum: ['zh', 'en'] },
|
|
111
|
+
query: { type: 'string', required: true },
|
|
112
|
+
sort: { type: 'string', required: true, enum: ['relevance', 'growth', 'stars', 'newest', 'active'] },
|
|
113
|
+
dataUpdatedAt: { type: 'string', required: true },
|
|
114
|
+
},
|
|
115
|
+
},
|
|
116
|
+
rateLimit: {
|
|
117
|
+
type: 'object',
|
|
118
|
+
required: true,
|
|
119
|
+
additionalProperties: false,
|
|
120
|
+
properties: {
|
|
121
|
+
limit: { required: true, oneOf: [{ type: 'integer' }, { type: 'null' }] },
|
|
122
|
+
remaining: { required: true, oneOf: [{ type: 'integer' }, { type: 'null' }] },
|
|
123
|
+
reset: { required: true, oneOf: [{ type: 'string' }, { type: 'null' }] },
|
|
124
|
+
retryAfterSeconds: { required: true, oneOf: [{ type: 'integer' }, { type: 'null' }] },
|
|
125
|
+
},
|
|
126
|
+
},
|
|
127
|
+
},
|
|
128
|
+
};
|
|
129
|
+
//# sourceMappingURL=tool-schema.js.map
|
package/package.json
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@czj-git/dsh-plugin-hub",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "DeepSeek Harness tools for searching and ranking verified plugins from DSH Plugin Hub",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"default": "./dist/index.js"
|
|
12
|
+
},
|
|
13
|
+
"./api": {
|
|
14
|
+
"types": "./dist/api.d.ts",
|
|
15
|
+
"default": "./dist/api.js"
|
|
16
|
+
},
|
|
17
|
+
"./package.json": "./package.json"
|
|
18
|
+
},
|
|
19
|
+
"files": [
|
|
20
|
+
"dist/**/*.js",
|
|
21
|
+
"dist/**/*.d.ts",
|
|
22
|
+
"cordis.patch.yml",
|
|
23
|
+
"README.md",
|
|
24
|
+
"README.en.md",
|
|
25
|
+
"LICENSE"
|
|
26
|
+
],
|
|
27
|
+
"scripts": {
|
|
28
|
+
"build": "tsc -p tsconfig.json",
|
|
29
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
30
|
+
"test": "tsx --test tests/*.test.ts",
|
|
31
|
+
"check": "npm run typecheck && npm test && npm run build",
|
|
32
|
+
"prepare": "npm run build"
|
|
33
|
+
},
|
|
34
|
+
"dsh": {
|
|
35
|
+
"bundle": {
|
|
36
|
+
"patch": "./cordis.patch.yml"
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"engines": {
|
|
40
|
+
"node": "^22.19.0 || >=24.0.0"
|
|
41
|
+
},
|
|
42
|
+
"keywords": [
|
|
43
|
+
"deepseek-harness",
|
|
44
|
+
"dsh-plugin",
|
|
45
|
+
"plugin-search",
|
|
46
|
+
"plugin-marketplace"
|
|
47
|
+
],
|
|
48
|
+
"license": "MIT",
|
|
49
|
+
"repository": {
|
|
50
|
+
"type": "git",
|
|
51
|
+
"url": "git+https://github.com/czj-git/dsh-plugin-hub.git"
|
|
52
|
+
},
|
|
53
|
+
"homepage": "https://github.com/czj-git/dsh-plugin-hub#readme",
|
|
54
|
+
"bugs": {
|
|
55
|
+
"url": "https://github.com/czj-git/dsh-plugin-hub/issues"
|
|
56
|
+
},
|
|
57
|
+
"publishConfig": {
|
|
58
|
+
"access": "public"
|
|
59
|
+
},
|
|
60
|
+
"dependencies": {
|
|
61
|
+
"@deepseek-ai/schemastery": "^3.18.1",
|
|
62
|
+
"zod": "^4.4.3"
|
|
63
|
+
},
|
|
64
|
+
"peerDependencies": {
|
|
65
|
+
"@deepseek-ai/cordis": "^4.0.1",
|
|
66
|
+
"@deepseek-ai/dsh-tools": ">=0.1.0-rc.7 <0.2.0"
|
|
67
|
+
},
|
|
68
|
+
"devDependencies": {
|
|
69
|
+
"@deepseek-ai/cordis": "4.0.1",
|
|
70
|
+
"@deepseek-ai/dsh-tools": "0.1.0-rc.7",
|
|
71
|
+
"@types/node": "^22.18.0",
|
|
72
|
+
"tsx": "^4.20.6",
|
|
73
|
+
"typescript": "^5.9.2"
|
|
74
|
+
}
|
|
75
|
+
}
|