@czj-git/dsh-plugin-hub 0.1.0 → 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.
Files changed (44) hide show
  1. package/README.en.md +93 -6
  2. package/README.md +93 -6
  3. package/dist/api.d.ts +4 -199
  4. package/dist/api.d.ts.map +1 -0
  5. package/dist/api.js +5 -90
  6. package/dist/api.js.map +1 -0
  7. package/dist/client/PluginHubSettings.d.ts +19 -0
  8. package/dist/client/PluginHubSettings.d.ts.map +1 -0
  9. package/dist/client/PluginHubSettings.js +172 -0
  10. package/dist/client/PluginHubSettings.js.map +1 -0
  11. package/dist/client/api.d.ts +18 -0
  12. package/dist/client/api.d.ts.map +1 -0
  13. package/dist/client/api.js +59 -0
  14. package/dist/client/api.js.map +1 -0
  15. package/dist/client/index.d.ts +15 -0
  16. package/dist/client/index.d.ts.map +1 -0
  17. package/dist/client/index.js +43 -0
  18. package/dist/client/index.js.map +1 -0
  19. package/dist/client/locales.d.ts +54 -0
  20. package/dist/client/locales.d.ts.map +1 -0
  21. package/dist/client/locales.js +100 -0
  22. package/dist/client/locales.js.map +1 -0
  23. package/dist/client.js +833 -0
  24. package/dist/client.js.map +7 -0
  25. package/dist/index.d.ts.map +1 -0
  26. package/dist/index.js +9 -0
  27. package/dist/index.js.map +1 -0
  28. package/dist/render.d.ts.map +1 -0
  29. package/dist/render.js.map +1 -0
  30. package/dist/schemas.d.ts +285 -0
  31. package/dist/schemas.d.ts.map +1 -0
  32. package/dist/schemas.js +85 -0
  33. package/dist/schemas.js.map +1 -0
  34. package/dist/shared.d.ts +32 -0
  35. package/dist/shared.d.ts.map +1 -0
  36. package/dist/shared.js +26 -0
  37. package/dist/shared.js.map +1 -0
  38. package/dist/tool-schema.d.ts.map +1 -0
  39. package/dist/tool-schema.js.map +1 -0
  40. package/dist/web-route.d.ts +19 -0
  41. package/dist/web-route.d.ts.map +1 -0
  42. package/dist/web-route.js +115 -0
  43. package/dist/web-route.js.map +1 -0
  44. package/package.json +50 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,MAAM,MAAM,0BAA0B,CAAA;AAE7C,OAAO,EAQL,KAAK,eAAe,EACrB,MAAM,UAAU,CAAA;AAMjB,eAAO,MAAM,IAAI,mBAAmB,CAAA;AACpC,eAAO,MAAM,MAAM,UAAY,CAAA;AAE/B,4DAA4D;AAC5D,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,eAAe,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,sCAAsC;AACtC,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,CAKhC,CAAA;AAUF;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAsFxD;AAED,cAAc,UAAU,CAAA"}
package/dist/index.js CHANGED
@@ -6,7 +6,9 @@ import Schema from '@deepseek-ai/schemastery';
6
6
  import { defineTool } from '@deepseek-ai/dsh-tools';
7
7
  import { PluginHubClient, normalizePluginHubBaseUrl, pluginHubCategories, pluginHubLocales, pluginHubSorts, pluginHubSources, pluginHubTypes, } from './api.js';
8
8
  import { rankingLabel, renderPluginHubResult } from './render.js';
9
+ import { PLUGIN_HUB_SEARCH_ROUTE } from './shared.js';
9
10
  import { pluginHubResultSchema } from './tool-schema.js';
11
+ import { createPluginHubSearchHandler } from './web-route.js';
10
12
  export const name = 'dsh-plugin-hub';
11
13
  export const inject = ['tools'];
12
14
  /** Validated plugin configuration. */
@@ -33,6 +35,13 @@ export function apply(ctx, config) {
33
35
  baseUrl: normalizePluginHubBaseUrl(config.baseUrl),
34
36
  timeoutMs: config.timeoutMs,
35
37
  });
38
+ ctx.inject(['webServer'], (httpCtx) => {
39
+ httpCtx.effect(() => httpCtx.webServer.register({
40
+ kind: 'exact',
41
+ path: PLUGIN_HUB_SEARCH_ROUTE,
42
+ handler: createPluginHubSearchHandler(client, config.locale),
43
+ }), 'dsh-plugin-hub: Settings API proxy');
44
+ });
36
45
  ctx.tools.register(defineTool({
37
46
  name: 'dsh_plugin_search',
38
47
  description: 'Search published and verified DeepSeek Harness plugins by task, feature, plugin name, repository, or author. Returns install commands, compatibility, metrics, and source links.',
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,qBAAqB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAkBrF;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAS1F;AAED,+CAA+C;AAC/C,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,aAAa,EAAE,WAAW,CAAC,GAAG,MAAM,CAO9E"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAEA,SAAS,MAAM,CAAC,KAAoB;IAClC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,uBAAuB,CAAA;IAClD,OAAO,aAAa,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAA;AACpD,CAAC;AAED,SAAS,SAAS,CAAC,MAAuB,EAAE,KAAa;IACvD,OAAO;QACL,GAAG,KAAK,GAAG,CAAC,KAAK,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,GAAG;QAC/C,MAAM,MAAM,CAAC,WAAW,EAAE;QAC1B,MAAM,MAAM,CAAC,QAAQ,MAAM,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,YAAY,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;QACjH,eAAe,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE;QAC9C,eAAe,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;QACpC,kBAAkB,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE;KAC5C,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAA6B,EAAE,KAAa;IAChF,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,GAAG,KAAK,mFAAmF,CAAA;IACpG,CAAC;IACD,MAAM,MAAM,GAAG,GAAG,KAAK,KAAK,MAAM,CAAC,UAAU,CAAC,KAAK,qBAAqB,MAAM,CAAC,KAAK,CAAC,MAAM,YAAY,MAAM,CAAC,UAAU,CAAC,IAAI,GAAG,CAAA;IAChI,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,KAAK,IAAI;QAC/C,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,kCAAkC,MAAM,CAAC,SAAS,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAA;IACzI,OAAO,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACvH,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,YAAY,CAAC,IAAyC;IACpE,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ,CAAC,CAAC,OAAO,sBAAsB,CAAA;QAC5C,KAAK,OAAO,CAAC,CAAC,OAAO,mBAAmB,CAAA;QACxC,KAAK,QAAQ,CAAC,CAAC,OAAO,sBAAsB,CAAA;QAC5C,KAAK,QAAQ,CAAC,CAAC,OAAO,yBAAyB,CAAA;IACjD,CAAC;AACH,CAAC"}
@@ -0,0 +1,285 @@
1
+ /** Runtime validation for the public Plugin Hub wire response. */
2
+ import { z } from 'zod';
3
+ /** One published and verified plugin returned by the public API. */
4
+ export declare const pluginHubPluginSchema: z.ZodObject<{
5
+ id: z.ZodString;
6
+ slug: z.ZodString;
7
+ name: z.ZodString;
8
+ owner: z.ZodString;
9
+ repo: z.ZodString;
10
+ description: z.ZodString;
11
+ type: z.ZodEnum<{
12
+ host: "host";
13
+ client: "client";
14
+ hybrid: "hybrid";
15
+ }>;
16
+ category: z.ZodEnum<{
17
+ "agent-workflow": "agent-workflow";
18
+ "coding-tools": "coding-tools";
19
+ "models-data": "models-data";
20
+ "ui-experience": "ui-experience";
21
+ integrations: "integrations";
22
+ "security-governance": "security-governance";
23
+ "multimodal-creative": "multimodal-creative";
24
+ "observability-cost": "observability-cost";
25
+ other: "other";
26
+ }>;
27
+ topics: z.ZodArray<z.ZodString>;
28
+ language: z.ZodString;
29
+ license: z.ZodString;
30
+ package: z.ZodObject<{
31
+ name: z.ZodString;
32
+ version: z.ZodString;
33
+ source: z.ZodEnum<{
34
+ npm: "npm";
35
+ github: "github";
36
+ }>;
37
+ sourceSpec: z.ZodString;
38
+ installCommand: z.ZodString;
39
+ profile: z.ZodString;
40
+ }, z.core.$strip>;
41
+ compatibility: z.ZodObject<{
42
+ harnessVersion: z.ZodString;
43
+ verificationLevel: z.ZodEnum<{
44
+ "static-checked": "static-checked";
45
+ "runtime-verified": "runtime-verified";
46
+ }>;
47
+ smokeStatus: z.ZodEnum<{
48
+ "static-passed": "static-passed";
49
+ passed: "passed";
50
+ "manual-step-required": "manual-step-required";
51
+ failed: "failed";
52
+ "not-run": "not-run";
53
+ }>;
54
+ validatedAt: z.ZodString;
55
+ }, z.core.$strip>;
56
+ metrics: z.ZodObject<{
57
+ stars: z.ZodNumber;
58
+ starsDelta1d: z.ZodNullable<z.ZodNumber>;
59
+ forks: z.ZodNumber;
60
+ openIssues: z.ZodNumber;
61
+ views: z.ZodNumber;
62
+ }, z.core.$strip>;
63
+ timestamps: z.ZodObject<{
64
+ listedAt: z.ZodString;
65
+ lastPushedAt: z.ZodString;
66
+ sourceUpdatedAt: z.ZodString;
67
+ }, z.core.$strip>;
68
+ links: z.ZodObject<{
69
+ detail: z.ZodURL;
70
+ repository: z.ZodURL;
71
+ }, z.core.$strip>;
72
+ }, z.core.$strip>;
73
+ /** Successful public API response before local quota headers are attached. */
74
+ export declare const pluginHubResponseSchema: z.ZodObject<{
75
+ items: z.ZodArray<z.ZodObject<{
76
+ id: z.ZodString;
77
+ slug: z.ZodString;
78
+ name: z.ZodString;
79
+ owner: z.ZodString;
80
+ repo: z.ZodString;
81
+ description: z.ZodString;
82
+ type: z.ZodEnum<{
83
+ host: "host";
84
+ client: "client";
85
+ hybrid: "hybrid";
86
+ }>;
87
+ category: z.ZodEnum<{
88
+ "agent-workflow": "agent-workflow";
89
+ "coding-tools": "coding-tools";
90
+ "models-data": "models-data";
91
+ "ui-experience": "ui-experience";
92
+ integrations: "integrations";
93
+ "security-governance": "security-governance";
94
+ "multimodal-creative": "multimodal-creative";
95
+ "observability-cost": "observability-cost";
96
+ other: "other";
97
+ }>;
98
+ topics: z.ZodArray<z.ZodString>;
99
+ language: z.ZodString;
100
+ license: z.ZodString;
101
+ package: z.ZodObject<{
102
+ name: z.ZodString;
103
+ version: z.ZodString;
104
+ source: z.ZodEnum<{
105
+ npm: "npm";
106
+ github: "github";
107
+ }>;
108
+ sourceSpec: z.ZodString;
109
+ installCommand: z.ZodString;
110
+ profile: z.ZodString;
111
+ }, z.core.$strip>;
112
+ compatibility: z.ZodObject<{
113
+ harnessVersion: z.ZodString;
114
+ verificationLevel: z.ZodEnum<{
115
+ "static-checked": "static-checked";
116
+ "runtime-verified": "runtime-verified";
117
+ }>;
118
+ smokeStatus: z.ZodEnum<{
119
+ "static-passed": "static-passed";
120
+ passed: "passed";
121
+ "manual-step-required": "manual-step-required";
122
+ failed: "failed";
123
+ "not-run": "not-run";
124
+ }>;
125
+ validatedAt: z.ZodString;
126
+ }, z.core.$strip>;
127
+ metrics: z.ZodObject<{
128
+ stars: z.ZodNumber;
129
+ starsDelta1d: z.ZodNullable<z.ZodNumber>;
130
+ forks: z.ZodNumber;
131
+ openIssues: z.ZodNumber;
132
+ views: z.ZodNumber;
133
+ }, z.core.$strip>;
134
+ timestamps: z.ZodObject<{
135
+ listedAt: z.ZodString;
136
+ lastPushedAt: z.ZodString;
137
+ sourceUpdatedAt: z.ZodString;
138
+ }, z.core.$strip>;
139
+ links: z.ZodObject<{
140
+ detail: z.ZodURL;
141
+ repository: z.ZodURL;
142
+ }, z.core.$strip>;
143
+ }, z.core.$strip>>;
144
+ pagination: z.ZodObject<{
145
+ page: z.ZodNumber;
146
+ perPage: z.ZodNumber;
147
+ total: z.ZodNumber;
148
+ totalPages: z.ZodNumber;
149
+ }, z.core.$strip>;
150
+ meta: z.ZodObject<{
151
+ apiVersion: z.ZodLiteral<"v1">;
152
+ locale: z.ZodEnum<{
153
+ zh: "zh";
154
+ en: "en";
155
+ }>;
156
+ query: z.ZodString;
157
+ sort: z.ZodEnum<{
158
+ relevance: "relevance";
159
+ growth: "growth";
160
+ stars: "stars";
161
+ newest: "newest";
162
+ active: "active";
163
+ }>;
164
+ dataUpdatedAt: z.ZodString;
165
+ }, z.core.$strip>;
166
+ }, z.core.$strip>;
167
+ /** Anonymous quota metadata copied from public API response headers. */
168
+ export declare const pluginHubRateLimitSchema: z.ZodObject<{
169
+ limit: z.ZodNullable<z.ZodNumber>;
170
+ remaining: z.ZodNullable<z.ZodNumber>;
171
+ reset: z.ZodNullable<z.ZodString>;
172
+ retryAfterSeconds: z.ZodNullable<z.ZodNumber>;
173
+ }, z.core.$strip>;
174
+ /** Host-proxy response consumed by the Settings client. */
175
+ export declare const pluginHubSearchResultSchema: z.ZodObject<{
176
+ items: z.ZodArray<z.ZodObject<{
177
+ id: z.ZodString;
178
+ slug: z.ZodString;
179
+ name: z.ZodString;
180
+ owner: z.ZodString;
181
+ repo: z.ZodString;
182
+ description: z.ZodString;
183
+ type: z.ZodEnum<{
184
+ host: "host";
185
+ client: "client";
186
+ hybrid: "hybrid";
187
+ }>;
188
+ category: z.ZodEnum<{
189
+ "agent-workflow": "agent-workflow";
190
+ "coding-tools": "coding-tools";
191
+ "models-data": "models-data";
192
+ "ui-experience": "ui-experience";
193
+ integrations: "integrations";
194
+ "security-governance": "security-governance";
195
+ "multimodal-creative": "multimodal-creative";
196
+ "observability-cost": "observability-cost";
197
+ other: "other";
198
+ }>;
199
+ topics: z.ZodArray<z.ZodString>;
200
+ language: z.ZodString;
201
+ license: z.ZodString;
202
+ package: z.ZodObject<{
203
+ name: z.ZodString;
204
+ version: z.ZodString;
205
+ source: z.ZodEnum<{
206
+ npm: "npm";
207
+ github: "github";
208
+ }>;
209
+ sourceSpec: z.ZodString;
210
+ installCommand: z.ZodString;
211
+ profile: z.ZodString;
212
+ }, z.core.$strip>;
213
+ compatibility: z.ZodObject<{
214
+ harnessVersion: z.ZodString;
215
+ verificationLevel: z.ZodEnum<{
216
+ "static-checked": "static-checked";
217
+ "runtime-verified": "runtime-verified";
218
+ }>;
219
+ smokeStatus: z.ZodEnum<{
220
+ "static-passed": "static-passed";
221
+ passed: "passed";
222
+ "manual-step-required": "manual-step-required";
223
+ failed: "failed";
224
+ "not-run": "not-run";
225
+ }>;
226
+ validatedAt: z.ZodString;
227
+ }, z.core.$strip>;
228
+ metrics: z.ZodObject<{
229
+ stars: z.ZodNumber;
230
+ starsDelta1d: z.ZodNullable<z.ZodNumber>;
231
+ forks: z.ZodNumber;
232
+ openIssues: z.ZodNumber;
233
+ views: z.ZodNumber;
234
+ }, z.core.$strip>;
235
+ timestamps: z.ZodObject<{
236
+ listedAt: z.ZodString;
237
+ lastPushedAt: z.ZodString;
238
+ sourceUpdatedAt: z.ZodString;
239
+ }, z.core.$strip>;
240
+ links: z.ZodObject<{
241
+ detail: z.ZodURL;
242
+ repository: z.ZodURL;
243
+ }, z.core.$strip>;
244
+ }, z.core.$strip>>;
245
+ pagination: z.ZodObject<{
246
+ page: z.ZodNumber;
247
+ perPage: z.ZodNumber;
248
+ total: z.ZodNumber;
249
+ totalPages: z.ZodNumber;
250
+ }, z.core.$strip>;
251
+ meta: z.ZodObject<{
252
+ apiVersion: z.ZodLiteral<"v1">;
253
+ locale: z.ZodEnum<{
254
+ zh: "zh";
255
+ en: "en";
256
+ }>;
257
+ query: z.ZodString;
258
+ sort: z.ZodEnum<{
259
+ relevance: "relevance";
260
+ growth: "growth";
261
+ stars: "stars";
262
+ newest: "newest";
263
+ active: "active";
264
+ }>;
265
+ dataUpdatedAt: z.ZodString;
266
+ }, z.core.$strip>;
267
+ rateLimit: z.ZodObject<{
268
+ limit: z.ZodNullable<z.ZodNumber>;
269
+ remaining: z.ZodNullable<z.ZodNumber>;
270
+ reset: z.ZodNullable<z.ZodString>;
271
+ retryAfterSeconds: z.ZodNullable<z.ZodNumber>;
272
+ }, z.core.$strip>;
273
+ }, z.core.$strip>;
274
+ /** Structured public API error response. */
275
+ export declare const pluginHubErrorSchema: z.ZodObject<{
276
+ error: z.ZodObject<{
277
+ code: z.ZodString;
278
+ message: z.ZodString;
279
+ fields: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
280
+ }, z.core.$strip>;
281
+ }, z.core.$strip>;
282
+ export type PluginHubPlugin = z.infer<typeof pluginHubPluginSchema>;
283
+ export type PluginHubRateLimit = z.infer<typeof pluginHubRateLimitSchema>;
284
+ export type PluginHubSearchResult = z.infer<typeof pluginHubSearchResultSchema>;
285
+ //# sourceMappingURL=schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAElE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAWvB,oEAAoE;AACpE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA0ChC,CAAA;AAEF,8EAA8E;AAC9E,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAelC,CAAA;AAEF,wEAAwE;AACxE,eAAO,MAAM,wBAAwB;;;;;iBAKnC,CAAA;AAEF,2DAA2D;AAC3D,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAEtC,CAAA;AAEF,4CAA4C;AAC5C,eAAO,MAAM,oBAAoB;;;;;;iBAM/B,CAAA;AAEF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AACnE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA;AACzE,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAA"}
@@ -0,0 +1,85 @@
1
+ /** Runtime validation for the public Plugin Hub wire response. */
2
+ import { z } from 'zod';
3
+ import { pluginHubCategories, pluginHubLocales, pluginHubSorts, pluginHubSources, pluginHubTypes, } from './shared.js';
4
+ const nullableInteger = z.number().int().nullable();
5
+ /** One published and verified plugin returned by the public API. */
6
+ export const pluginHubPluginSchema = z.object({
7
+ id: z.string(),
8
+ slug: z.string(),
9
+ name: z.string(),
10
+ owner: z.string(),
11
+ repo: z.string(),
12
+ description: z.string(),
13
+ type: z.enum(pluginHubTypes),
14
+ category: z.enum(pluginHubCategories),
15
+ topics: z.array(z.string()),
16
+ language: z.string(),
17
+ license: z.string(),
18
+ package: z.object({
19
+ name: z.string(),
20
+ version: z.string(),
21
+ source: z.enum(pluginHubSources),
22
+ sourceSpec: z.string(),
23
+ installCommand: z.string(),
24
+ profile: z.string(),
25
+ }),
26
+ compatibility: z.object({
27
+ harnessVersion: z.string(),
28
+ verificationLevel: z.enum(['static-checked', 'runtime-verified']),
29
+ smokeStatus: z.enum(['static-passed', 'passed', 'manual-step-required', 'failed', 'not-run']),
30
+ validatedAt: z.string(),
31
+ }),
32
+ metrics: z.object({
33
+ stars: z.number().int(),
34
+ starsDelta1d: nullableInteger,
35
+ forks: z.number().int(),
36
+ openIssues: z.number().int(),
37
+ views: z.number().int(),
38
+ }),
39
+ timestamps: z.object({
40
+ listedAt: z.string(),
41
+ lastPushedAt: z.string(),
42
+ sourceUpdatedAt: z.string(),
43
+ }),
44
+ links: z.object({
45
+ detail: z.url(),
46
+ repository: z.url(),
47
+ }),
48
+ });
49
+ /** Successful public API response before local quota headers are attached. */
50
+ export const pluginHubResponseSchema = z.object({
51
+ items: z.array(pluginHubPluginSchema),
52
+ pagination: z.object({
53
+ page: z.number().int(),
54
+ perPage: z.number().int(),
55
+ total: z.number().int(),
56
+ totalPages: z.number().int(),
57
+ }),
58
+ meta: z.object({
59
+ apiVersion: z.literal('v1'),
60
+ locale: z.enum(pluginHubLocales),
61
+ query: z.string(),
62
+ sort: z.enum(pluginHubSorts),
63
+ dataUpdatedAt: z.string(),
64
+ }),
65
+ });
66
+ /** Anonymous quota metadata copied from public API response headers. */
67
+ export const pluginHubRateLimitSchema = z.object({
68
+ limit: nullableInteger,
69
+ remaining: nullableInteger,
70
+ reset: z.string().nullable(),
71
+ retryAfterSeconds: nullableInteger,
72
+ });
73
+ /** Host-proxy response consumed by the Settings client. */
74
+ export const pluginHubSearchResultSchema = pluginHubResponseSchema.extend({
75
+ rateLimit: pluginHubRateLimitSchema,
76
+ });
77
+ /** Structured public API error response. */
78
+ export const pluginHubErrorSchema = z.object({
79
+ error: z.object({
80
+ code: z.string(),
81
+ message: z.string(),
82
+ fields: z.record(z.string(), z.string()).optional(),
83
+ }),
84
+ });
85
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /** Browser-safe public API vocabulary shared by the Host and Settings client. */
2
+ /** Same-origin Host route used by the Settings client. */
3
+ export declare const PLUGIN_HUB_SEARCH_ROUTE = "/api/dsh-plugin-hub/search";
4
+ /** Canonical public website opened from the Settings page. */
5
+ export declare const PLUGIN_HUB_WEBSITE_URL = "https://dshpluginhub.dev";
6
+ /** Locales supported by DSH Plugin Hub. */
7
+ export declare const pluginHubLocales: readonly ["zh", "en"];
8
+ /** Public plugin categories exposed by DSH Plugin Hub. */
9
+ export declare const pluginHubCategories: readonly ["agent-workflow", "coding-tools", "models-data", "ui-experience", "integrations", "security-governance", "multimodal-creative", "observability-cost", "other"];
10
+ /** Plugin runtime variants supported by the public API. */
11
+ export declare const pluginHubTypes: readonly ["host", "client", "hybrid"];
12
+ /** Installation sources supported by the public API. */
13
+ export declare const pluginHubSources: readonly ["npm", "github"];
14
+ /** Ordering modes supported by the public API. */
15
+ export declare const pluginHubSorts: readonly ["relevance", "growth", "stars", "newest", "active"];
16
+ export type PluginHubLocale = (typeof pluginHubLocales)[number];
17
+ export type PluginHubCategory = (typeof pluginHubCategories)[number];
18
+ export type PluginHubType = (typeof pluginHubTypes)[number];
19
+ export type PluginHubSource = (typeof pluginHubSources)[number];
20
+ export type PluginHubSort = (typeof pluginHubSorts)[number];
21
+ /** Filters accepted by one plugin search request. */
22
+ export interface PluginHubSearchInput {
23
+ query?: string;
24
+ locale?: PluginHubLocale;
25
+ category?: PluginHubCategory;
26
+ type?: PluginHubType;
27
+ source?: PluginHubSource;
28
+ sort?: PluginHubSort;
29
+ page?: number;
30
+ perPage?: number;
31
+ }
32
+ //# sourceMappingURL=shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"AAAA,iFAAiF;AAEjF,0DAA0D;AAC1D,eAAO,MAAM,uBAAuB,+BAA+B,CAAA;AAEnE,8DAA8D;AAC9D,eAAO,MAAM,sBAAsB,6BAA6B,CAAA;AAEhE,2CAA2C;AAC3C,eAAO,MAAM,gBAAgB,uBAAwB,CAAA;AAErD,0DAA0D;AAC1D,eAAO,MAAM,mBAAmB,0KAUtB,CAAA;AAEV,2DAA2D;AAC3D,eAAO,MAAM,cAAc,uCAAwC,CAAA;AAEnE,wDAAwD;AACxD,eAAO,MAAM,gBAAgB,4BAA6B,CAAA;AAE1D,kDAAkD;AAClD,eAAO,MAAM,cAAc,+DAAgE,CAAA;AAE3F,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAA;AAC/D,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAA;AACpE,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAA;AAC3D,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAA;AAC/D,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAA;AAE3D,qDAAqD;AACrD,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,eAAe,CAAA;IACxB,QAAQ,CAAC,EAAE,iBAAiB,CAAA;IAC5B,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB,MAAM,CAAC,EAAE,eAAe,CAAA;IACxB,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB"}
package/dist/shared.js ADDED
@@ -0,0 +1,26 @@
1
+ /** Browser-safe public API vocabulary shared by the Host and Settings client. */
2
+ /** Same-origin Host route used by the Settings client. */
3
+ export const PLUGIN_HUB_SEARCH_ROUTE = '/api/dsh-plugin-hub/search';
4
+ /** Canonical public website opened from the Settings page. */
5
+ export const PLUGIN_HUB_WEBSITE_URL = 'https://dshpluginhub.dev';
6
+ /** Locales supported by DSH Plugin Hub. */
7
+ export const pluginHubLocales = ['zh', 'en'];
8
+ /** Public plugin categories exposed by DSH Plugin Hub. */
9
+ export const pluginHubCategories = [
10
+ 'agent-workflow',
11
+ 'coding-tools',
12
+ 'models-data',
13
+ 'ui-experience',
14
+ 'integrations',
15
+ 'security-governance',
16
+ 'multimodal-creative',
17
+ 'observability-cost',
18
+ 'other',
19
+ ];
20
+ /** Plugin runtime variants supported by the public API. */
21
+ export const pluginHubTypes = ['host', 'client', 'hybrid'];
22
+ /** Installation sources supported by the public API. */
23
+ export const pluginHubSources = ['npm', 'github'];
24
+ /** Ordering modes supported by the public API. */
25
+ export const pluginHubSorts = ['relevance', 'growth', 'stars', 'newest', 'active'];
26
+ //# sourceMappingURL=shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"AAAA,iFAAiF;AAEjF,0DAA0D;AAC1D,MAAM,CAAC,MAAM,uBAAuB,GAAG,4BAA4B,CAAA;AAEnE,8DAA8D;AAC9D,MAAM,CAAC,MAAM,sBAAsB,GAAG,0BAA0B,CAAA;AAEhE,2CAA2C;AAC3C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,IAAI,CAAU,CAAA;AAErD,0DAA0D;AAC1D,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,gBAAgB;IAChB,cAAc;IACd,aAAa;IACb,eAAe;IACf,cAAc;IACd,qBAAqB;IACrB,qBAAqB;IACrB,oBAAoB;IACpB,OAAO;CACC,CAAA;AAEV,2DAA2D;AAC3D,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAA;AAEnE,wDAAwD;AACxD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAU,CAAA;AAE1D,kDAAkD;AAClD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-schema.d.ts","sourceRoot":"","sources":["../src/tool-schema.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8HxB,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-schema.js","sourceRoot":"","sources":["../src/tool-schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /** Same-origin Host proxy used by the browser Settings page. */
2
+ import type { IncomingMessage, ServerResponse } from 'node:http';
3
+ import { type PluginHubClient } from './api.js';
4
+ import { type PluginHubLocale, type PluginHubSearchInput } from './shared.js';
5
+ /**
6
+ * Validate browser query parameters before forwarding them to the public API.
7
+ * @param url - Local request URL.
8
+ * @param defaultLocale - Locale used when the browser omits one.
9
+ * @returns Validated public API search input.
10
+ */
11
+ export declare function parseLocalSearchInput(url: URL, defaultLocale: PluginHubLocale): PluginHubSearchInput;
12
+ /**
13
+ * Create the read-only local HTTP handler for the Settings client.
14
+ * @param client - Validating public API client.
15
+ * @param defaultLocale - Host-configured fallback locale.
16
+ * @returns Node HTTP handler suitable for the Harness WebServer registry.
17
+ */
18
+ export declare function createPluginHubSearchHandler(client: PluginHubClient, defaultLocale: PluginHubLocale): (req: IncomingMessage, res: ServerResponse) => Promise<void>;
19
+ //# sourceMappingURL=web-route.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-route.d.ts","sourceRoot":"","sources":["../src/web-route.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAEhE,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,UAAU,CAAA;AACjB,OAAO,EAQL,KAAK,eAAe,EACpB,KAAK,oBAAoB,EAI1B,MAAM,aAAa,CAAA;AAiBpB;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,aAAa,EAAE,eAAe,GAAG,oBAAoB,CAkBpG;AAUD;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,eAAe,EACvB,aAAa,EAAE,eAAe,GAC7B,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAoD9D"}