dsh-plugin-shop 0.8.3 → 0.8.4-beta.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 +11 -8
- package/lib/client.js +1133 -421
- package/lib/index.js +1400 -178
- package/lib/typert.host.js +69 -22
- package/lib/typert.remote-client.js +52 -13
- package/lib/types/client/ShopTab.d.ts +19 -2
- package/lib/types/client/locales.d.ts +42 -2
- package/lib/types/client/module-table.d.ts +131 -0
- package/lib/types/client/present.d.ts +126 -2
- package/lib/types/client/restart-monitor.d.ts +58 -0
- package/lib/types/host/activation.d.ts +12 -9
- package/lib/types/host/bundle-patch.d.ts +35 -0
- package/lib/types/host/catalog.d.ts +9 -3
- package/lib/types/host/compatibility.d.ts +223 -0
- package/lib/types/host/dsh-cli.d.ts +8 -0
- package/lib/types/host/harness.d.ts +109 -0
- package/lib/types/host/hot.d.ts +8 -8
- package/lib/types/host/index.d.ts +197 -28
- package/lib/types/host/install.d.ts +1 -1
- package/lib/types/host/peers.d.ts +181 -10
- package/lib/types/host/profile.d.ts +61 -4
- package/lib/types/host/restart.d.ts +5 -1
- package/lib/types/host/types.d.ts +27 -1
- package/lib/types/own-version.d.ts +18 -2
- package/package.json +2 -1
package/lib/typert.host.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/* Generated by @deepseek-ai/dsh-typert-generator from FaceModel — do not edit. */
|
|
2
|
+
/* dsh-plugin-shop: create() added beside every schema for harness 0.1.7 (scripts/typert-dual-codecs.ts). */
|
|
2
3
|
import { z } from 'zod'
|
|
3
4
|
|
|
4
5
|
const dsh_plugin_shop_shop_catalog_parameter_0$schema = z.union([z.undefined(), z.object({
|
|
@@ -44,6 +45,11 @@ const dsh_plugin_shop_shop_catalog_result$schema = z.object({
|
|
|
44
45
|
})]).optional(),
|
|
45
46
|
'added': z.union([z.undefined(), z.string()]).optional(),
|
|
46
47
|
'peers': z.union([z.undefined(), z.array(z.string())]).optional(),
|
|
48
|
+
'compatibility': z.union([z.undefined(), z.object({
|
|
49
|
+
'dsh': z.union([z.undefined(), z.string()]).optional(),
|
|
50
|
+
'profiles': z.union([z.undefined(), z.array(z.string())]).optional(),
|
|
51
|
+
})]).optional(),
|
|
52
|
+
'dshPeers': z.union([z.undefined(), z.record(z.string(), z.string())]).optional(),
|
|
47
53
|
'unpackedSize': z.union([z.undefined(), z.number()]).optional(),
|
|
48
54
|
'installSize': z.union([z.undefined(), z.number()]).optional(),
|
|
49
55
|
})),
|
|
@@ -55,6 +61,21 @@ const dsh_plugin_shop_shop_catalog_result$schema = z.object({
|
|
|
55
61
|
'notAShop': z.union([z.undefined(), z.array(z.string())]).optional(),
|
|
56
62
|
'stars': z.record(z.string(), z.number()),
|
|
57
63
|
'incompatible': z.record(z.string(), z.array(z.string())),
|
|
64
|
+
'incompatibleHarness': z.record(z.string(), z.object({
|
|
65
|
+
'dsh': z.union([z.undefined(), z.object({
|
|
66
|
+
'range': z.string(),
|
|
67
|
+
'running': z.string(),
|
|
68
|
+
})]).optional(),
|
|
69
|
+
'profile': z.union([z.undefined(), z.object({
|
|
70
|
+
'declared': z.array(z.string()),
|
|
71
|
+
'running': z.string(),
|
|
72
|
+
})]).optional(),
|
|
73
|
+
'peers': z.union([z.undefined(), z.object({
|
|
74
|
+
'refused': z.record(z.string(), z.string()),
|
|
75
|
+
'running': z.string(),
|
|
76
|
+
'allowCommand': z.union([z.literal(null), z.string()]),
|
|
77
|
+
})]).optional(),
|
|
78
|
+
})),
|
|
58
79
|
})
|
|
59
80
|
const dsh_plugin_shop_shop_installed_result$schema = z.array(z.object({
|
|
60
81
|
'name': z.string(),
|
|
@@ -81,7 +102,7 @@ const dsh_plugin_shop_shop_installStart_result$schema = z.union([z.object({
|
|
|
81
102
|
'state': z.union([z.literal("downloading"), z.literal("running"), z.literal("done"), z.literal("failed")]),
|
|
82
103
|
}), z.object({
|
|
83
104
|
'ok': z.literal(false),
|
|
84
|
-
'code': z.union([z.literal("not-in-catalog"), z.literal("denied"), z.literal("version-mismatch"), z.literal("needs-acknowledgement"), z.literal("tarball-integrity"), z.literal("ambiguous-identity"), z.literal("name-taken")]),
|
|
105
|
+
'code': z.union([z.literal("not-in-catalog"), z.literal("denied"), z.literal("version-mismatch"), z.literal("needs-acknowledgement"), z.literal("tarball-integrity"), z.literal("ambiguous-identity"), z.literal("name-taken"), z.literal("desktop-profile")]),
|
|
85
106
|
'detail': z.string(),
|
|
86
107
|
})])
|
|
87
108
|
const dsh_plugin_shop_shop_installStatus_parameter_0$schema = z.object({
|
|
@@ -92,11 +113,12 @@ const dsh_plugin_shop_shop_installStatus_result$schema = z.object({
|
|
|
92
113
|
'state': z.union([z.literal("downloading"), z.literal("running"), z.literal("done"), z.literal("failed")]),
|
|
93
114
|
'log': z.array(z.string()),
|
|
94
115
|
'activation': z.union([z.undefined(), z.literal("live"), z.literal("reload"), z.literal("restart")]).optional(),
|
|
95
|
-
'restartReason': z.union([z.undefined(), z.literal("no-patch"), z.literal("not-simple"), z.literal("host-unsupported"), z.literal("timeout"), z.literal("mount-failed"), z.literal("
|
|
116
|
+
'restartReason': z.union([z.undefined(), z.literal("no-patch"), z.literal("not-simple"), z.literal("host-unsupported"), z.literal("timeout"), z.literal("mount-failed"), z.literal("already-loaded")]).optional(),
|
|
96
117
|
'detail': z.union([z.undefined(), z.string()]).optional(),
|
|
97
118
|
})
|
|
98
119
|
const dsh_plugin_shop_shop_restart_result$schema = z.union([z.object({
|
|
99
120
|
'ok': z.literal(true),
|
|
121
|
+
'logFile': z.union([z.undefined(), z.string()]).optional(),
|
|
100
122
|
}), z.object({
|
|
101
123
|
'ok': z.literal(false),
|
|
102
124
|
'detail': z.string(),
|
|
@@ -137,7 +159,8 @@ const dsh_plugin_shop_shop_version_result$schema = z.object({
|
|
|
137
159
|
'installed': z.string(),
|
|
138
160
|
'latest': z.union([z.literal(null), z.string()]),
|
|
139
161
|
'outdated': z.boolean(),
|
|
140
|
-
'restartBlocked': z.union([z.literal(null), z.literal("windows"), z.literal("systemd"), z.literal("port-zero")]),
|
|
162
|
+
'restartBlocked': z.union([z.literal(null), z.literal("desktop"), z.literal("windows"), z.literal("systemd"), z.literal("port-zero")]),
|
|
163
|
+
'pendingVersion': z.union([z.undefined(), z.literal(null), z.string()]).optional(),
|
|
141
164
|
})
|
|
142
165
|
|
|
143
166
|
export const TYPERT = {
|
|
@@ -162,6 +185,7 @@ export const TYPERT = {
|
|
|
162
185
|
mode: 'strict',
|
|
163
186
|
typeSymbol: 'dsh-plugin-shop#shop/catalog:args',
|
|
164
187
|
schema: dsh_plugin_shop_shop_catalog_parameter_0$schema,
|
|
188
|
+
create: () => dsh_plugin_shop_shop_catalog_parameter_0$schema,
|
|
165
189
|
},
|
|
166
190
|
},
|
|
167
191
|
],
|
|
@@ -169,8 +193,9 @@ export const TYPERT = {
|
|
|
169
193
|
mode: 'strict',
|
|
170
194
|
typeSymbol: 'dsh-plugin-shop/types#ShopCatalogResult',
|
|
171
195
|
schema: dsh_plugin_shop_shop_catalog_result$schema,
|
|
196
|
+
create: () => dsh_plugin_shop_shop_catalog_result$schema,
|
|
172
197
|
},
|
|
173
|
-
sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":
|
|
198
|
+
sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1134,"column":9},
|
|
174
199
|
},
|
|
175
200
|
{
|
|
176
201
|
id: 'dsh-plugin-shop#shop/installed',
|
|
@@ -184,8 +209,9 @@ export const TYPERT = {
|
|
|
184
209
|
mode: 'strict',
|
|
185
210
|
typeSymbol: 'dsh-plugin-shop#shop/installed:result',
|
|
186
211
|
schema: dsh_plugin_shop_shop_installed_result$schema,
|
|
212
|
+
create: () => dsh_plugin_shop_shop_installed_result$schema,
|
|
187
213
|
},
|
|
188
|
-
sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":
|
|
214
|
+
sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1494,"column":9},
|
|
189
215
|
},
|
|
190
216
|
{
|
|
191
217
|
id: 'dsh-plugin-shop#shop/installedSpecs',
|
|
@@ -199,8 +225,9 @@ export const TYPERT = {
|
|
|
199
225
|
mode: 'strict',
|
|
200
226
|
typeSymbol: 'dsh-plugin-shop#shop/installedSpecs:result',
|
|
201
227
|
schema: dsh_plugin_shop_shop_installedSpecs_result$schema,
|
|
228
|
+
create: () => dsh_plugin_shop_shop_installedSpecs_result$schema,
|
|
202
229
|
},
|
|
203
|
-
sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":
|
|
230
|
+
sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1485,"column":9},
|
|
204
231
|
},
|
|
205
232
|
{
|
|
206
233
|
id: 'dsh-plugin-shop#shop/installStart',
|
|
@@ -218,6 +245,7 @@ export const TYPERT = {
|
|
|
218
245
|
mode: 'strict',
|
|
219
246
|
typeSymbol: 'dsh-plugin-shop/types#InstallArgs',
|
|
220
247
|
schema: dsh_plugin_shop_shop_installStart_parameter_0$schema,
|
|
248
|
+
create: () => dsh_plugin_shop_shop_installStart_parameter_0$schema,
|
|
221
249
|
},
|
|
222
250
|
},
|
|
223
251
|
],
|
|
@@ -225,8 +253,9 @@ export const TYPERT = {
|
|
|
225
253
|
mode: 'strict',
|
|
226
254
|
typeSymbol: 'dsh-plugin-shop/types#ShopInstallResult',
|
|
227
255
|
schema: dsh_plugin_shop_shop_installStart_result$schema,
|
|
256
|
+
create: () => dsh_plugin_shop_shop_installStart_result$schema,
|
|
228
257
|
},
|
|
229
|
-
sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":
|
|
258
|
+
sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1260,"column":9},
|
|
230
259
|
},
|
|
231
260
|
{
|
|
232
261
|
id: 'dsh-plugin-shop#shop/installStatus',
|
|
@@ -243,6 +272,7 @@ export const TYPERT = {
|
|
|
243
272
|
mode: 'strict',
|
|
244
273
|
typeSymbol: 'dsh-plugin-shop#shop/installStatus:args',
|
|
245
274
|
schema: dsh_plugin_shop_shop_installStatus_parameter_0$schema,
|
|
275
|
+
create: () => dsh_plugin_shop_shop_installStatus_parameter_0$schema,
|
|
246
276
|
},
|
|
247
277
|
},
|
|
248
278
|
],
|
|
@@ -250,8 +280,9 @@ export const TYPERT = {
|
|
|
250
280
|
mode: 'strict',
|
|
251
281
|
typeSymbol: 'dsh-plugin-shop/types#ShopInstallStatusResult',
|
|
252
282
|
schema: dsh_plugin_shop_shop_installStatus_result$schema,
|
|
283
|
+
create: () => dsh_plugin_shop_shop_installStatus_result$schema,
|
|
253
284
|
},
|
|
254
|
-
sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":
|
|
285
|
+
sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1461,"column":3},
|
|
255
286
|
},
|
|
256
287
|
{
|
|
257
288
|
id: 'dsh-plugin-shop#shop/restart',
|
|
@@ -265,8 +296,9 @@ export const TYPERT = {
|
|
|
265
296
|
mode: 'strict',
|
|
266
297
|
typeSymbol: 'dsh-plugin-shop/types#ShopRestartResult',
|
|
267
298
|
schema: dsh_plugin_shop_shop_restart_result$schema,
|
|
299
|
+
create: () => dsh_plugin_shop_shop_restart_result$schema,
|
|
268
300
|
},
|
|
269
|
-
sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":
|
|
301
|
+
sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1680,"column":9},
|
|
270
302
|
},
|
|
271
303
|
{
|
|
272
304
|
id: 'dsh-plugin-shop#shop/setEnabled',
|
|
@@ -283,6 +315,7 @@ export const TYPERT = {
|
|
|
283
315
|
mode: 'strict',
|
|
284
316
|
typeSymbol: 'dsh-plugin-shop#shop/setEnabled:args',
|
|
285
317
|
schema: dsh_plugin_shop_shop_setEnabled_parameter_0$schema,
|
|
318
|
+
create: () => dsh_plugin_shop_shop_setEnabled_parameter_0$schema,
|
|
286
319
|
},
|
|
287
320
|
},
|
|
288
321
|
],
|
|
@@ -290,8 +323,9 @@ export const TYPERT = {
|
|
|
290
323
|
mode: 'strict',
|
|
291
324
|
typeSymbol: 'dsh-plugin-shop/types#ShopSetEnabledResult',
|
|
292
325
|
schema: dsh_plugin_shop_shop_setEnabled_result$schema,
|
|
326
|
+
create: () => dsh_plugin_shop_shop_setEnabled_result$schema,
|
|
293
327
|
},
|
|
294
|
-
sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":
|
|
328
|
+
sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":887,"column":9},
|
|
295
329
|
},
|
|
296
330
|
{
|
|
297
331
|
id: 'dsh-plugin-shop#shop/uninstallStart',
|
|
@@ -309,6 +343,7 @@ export const TYPERT = {
|
|
|
309
343
|
mode: 'strict',
|
|
310
344
|
typeSymbol: 'dsh-plugin-shop#shop/uninstallStart:args',
|
|
311
345
|
schema: dsh_plugin_shop_shop_uninstallStart_parameter_0$schema,
|
|
346
|
+
create: () => dsh_plugin_shop_shop_uninstallStart_parameter_0$schema,
|
|
312
347
|
},
|
|
313
348
|
},
|
|
314
349
|
],
|
|
@@ -316,8 +351,9 @@ export const TYPERT = {
|
|
|
316
351
|
mode: 'strict',
|
|
317
352
|
typeSymbol: 'dsh-plugin-shop/types#ShopUninstallResult',
|
|
318
353
|
schema: dsh_plugin_shop_shop_uninstallStart_result$schema,
|
|
354
|
+
create: () => dsh_plugin_shop_shop_uninstallStart_result$schema,
|
|
319
355
|
},
|
|
320
|
-
sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":
|
|
356
|
+
sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1601,"column":9},
|
|
321
357
|
},
|
|
322
358
|
{
|
|
323
359
|
id: 'dsh-plugin-shop#shop/updateStart',
|
|
@@ -334,6 +370,7 @@ export const TYPERT = {
|
|
|
334
370
|
mode: 'strict',
|
|
335
371
|
typeSymbol: 'dsh-plugin-shop#shop/updateStart:args',
|
|
336
372
|
schema: dsh_plugin_shop_shop_updateStart_parameter_0$schema,
|
|
373
|
+
create: () => dsh_plugin_shop_shop_updateStart_parameter_0$schema,
|
|
337
374
|
},
|
|
338
375
|
},
|
|
339
376
|
],
|
|
@@ -341,8 +378,9 @@ export const TYPERT = {
|
|
|
341
378
|
mode: 'strict',
|
|
342
379
|
typeSymbol: 'dsh-plugin-shop/types#ShopUpdateResult',
|
|
343
380
|
schema: dsh_plugin_shop_shop_updateStart_result$schema,
|
|
381
|
+
create: () => dsh_plugin_shop_shop_updateStart_result$schema,
|
|
344
382
|
},
|
|
345
|
-
sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":
|
|
383
|
+
sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1777,"column":9},
|
|
346
384
|
},
|
|
347
385
|
{
|
|
348
386
|
id: 'dsh-plugin-shop#shop/version',
|
|
@@ -356,8 +394,9 @@ export const TYPERT = {
|
|
|
356
394
|
mode: 'strict',
|
|
357
395
|
typeSymbol: 'dsh-plugin-shop/types#ShopVersionResult',
|
|
358
396
|
schema: dsh_plugin_shop_shop_version_result$schema,
|
|
397
|
+
create: () => dsh_plugin_shop_shop_version_result$schema,
|
|
359
398
|
},
|
|
360
|
-
sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":
|
|
399
|
+
sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1735,"column":9},
|
|
361
400
|
},
|
|
362
401
|
],
|
|
363
402
|
model: {
|
|
@@ -380,8 +419,8 @@ export const TYPERT = {
|
|
|
380
419
|
"kind": "method",
|
|
381
420
|
"name": "setEnabled",
|
|
382
421
|
"signature": "@Remote('setEnabled') async setEnabled(args: { name: string; enabled: boolean }): Promise<ShopSetEnabledResult>",
|
|
383
|
-
"summary": "Enable or disable one installed plugin, hot (§8):
|
|
384
|
-
"jsDoc": "/** Enable or disable one installed plugin, hot (§8):
|
|
422
|
+
"summary": "Enable or disable one installed plugin, hot (§8): the write sets the `disabled` key of each owned entry's row in the user layer and changes nothing else there (design 2026-09-26-market-borrowings §2) — the CLI's watchUserPatches applies it through HMR.",
|
|
423
|
+
"jsDoc": "/** Enable or disable one installed plugin, hot (§8): the write sets the\n * `disabled` key of each owned entry's row in the user layer and changes\n * nothing else there (design 2026-09-26-market-borrowings §2) — the CLI's\n * watchUserPatches applies it through HMR. The shop's own row and the\n * framework's bundles are never toggleable: disabling the host chain would\n * break HMR itself. */"
|
|
385
424
|
},
|
|
386
425
|
{
|
|
387
426
|
"kind": "method",
|
|
@@ -454,7 +493,7 @@ export const TYPERT = {
|
|
|
454
493
|
},
|
|
455
494
|
{
|
|
456
495
|
"name": "CatalogEntry",
|
|
457
|
-
"declaration": "export interface CatalogEntry {\n name: string;\n version: string;\n integrity: string | null;\n publishedAt: string | null;\n repository: string | null;\n license: string | null;\n tier: 'verified' | 'verified-stale' | 'community';\n metadata: 'declared' | 'derived';\n review?: { reviewedVersion?: string; reviewedCommit?: string; reviewedSha256?: string; repo?: string; reviewer: string; reviewCommit: string; notes: string; };\n catalog?: CatalogSection;\n source: 'npm' | 'github';\n publisher?: string;\n repo?: string;\n subdir?: string;\n tarball?: { url: string; sha256: string; };\n added?: string;\n peers?: string[];\n unpackedSize?: number;\n installSize?: number;\n}"
|
|
496
|
+
"declaration": "export interface CatalogEntry {\n name: string;\n version: string;\n integrity: string | null;\n publishedAt: string | null;\n repository: string | null;\n license: string | null;\n tier: 'verified' | 'verified-stale' | 'community';\n metadata: 'declared' | 'derived';\n review?: { reviewedVersion?: string; reviewedCommit?: string; reviewedSha256?: string; repo?: string; reviewer: string; reviewCommit: string; notes: string; };\n catalog?: CatalogSection;\n source: 'npm' | 'github';\n publisher?: string;\n repo?: string;\n subdir?: string;\n tarball?: { url: string; sha256: string; };\n added?: string;\n peers?: string[];\n compatibility?: { dsh?: string; profiles?: string[]; };\n dshPeers?: Record<string, string>;\n unpackedSize?: number;\n installSize?: number;\n}"
|
|
458
497
|
},
|
|
459
498
|
{
|
|
460
499
|
"name": "CatalogSection",
|
|
@@ -468,9 +507,13 @@ export const TYPERT = {
|
|
|
468
507
|
"name": "DeniedEntry",
|
|
469
508
|
"declaration": "export interface DeniedEntry {\n name: string;\n detail: string;\n replacement?: string;\n}"
|
|
470
509
|
},
|
|
510
|
+
{
|
|
511
|
+
"name": "HarnessVerdict",
|
|
512
|
+
"declaration": "export interface HarnessVerdict {\n dsh?: { range: string; running: string; };\n profile?: { declared: string[]; running: string; };\n peers?: PeerVerdict;\n}"
|
|
513
|
+
},
|
|
471
514
|
{
|
|
472
515
|
"name": "HotRestartReason",
|
|
473
|
-
"declaration": "export type HotRestartReason = 'no-patch' | 'not-simple' | 'host-unsupported' | 'timeout' | 'mount-failed' | '
|
|
516
|
+
"declaration": "export type HotRestartReason = 'no-patch' | 'not-simple' | 'host-unsupported' | 'timeout' | 'mount-failed' | 'already-loaded';"
|
|
474
517
|
},
|
|
475
518
|
{
|
|
476
519
|
"name": "InstallArgs",
|
|
@@ -478,7 +521,7 @@ export const TYPERT = {
|
|
|
478
521
|
},
|
|
479
522
|
{
|
|
480
523
|
"name": "InstallRejectionCode",
|
|
481
|
-
"declaration": "export type InstallRejectionCode = 'not-in-catalog' | 'denied' | 'version-mismatch' | 'needs-acknowledgement' | 'tarball-integrity' | 'ambiguous-identity' | 'name-taken';"
|
|
524
|
+
"declaration": "export type InstallRejectionCode = 'not-in-catalog' | 'denied' | 'version-mismatch' | 'needs-acknowledgement' | 'tarball-integrity' | 'ambiguous-identity' | 'name-taken' | 'desktop-profile';"
|
|
482
525
|
},
|
|
483
526
|
{
|
|
484
527
|
"name": "InstallState",
|
|
@@ -488,17 +531,21 @@ export const TYPERT = {
|
|
|
488
531
|
"name": "InstallStatus",
|
|
489
532
|
"declaration": "export interface InstallStatus {\n state: InstallState;\n log: string[];\n activation?: Activation;\n restartReason?: HotRestartReason;\n detail?: string;\n}"
|
|
490
533
|
},
|
|
534
|
+
{
|
|
535
|
+
"name": "PeerVerdict",
|
|
536
|
+
"declaration": "export interface PeerVerdict {\n refused: Record<string, string>;\n running: string;\n allowCommand: string | null;\n}"
|
|
537
|
+
},
|
|
491
538
|
{
|
|
492
539
|
"name": "RestartBlockedReason",
|
|
493
|
-
"declaration": "export type RestartBlockedReason = 'windows' | 'systemd' | 'port-zero';"
|
|
540
|
+
"declaration": "export type RestartBlockedReason = 'desktop' | 'windows' | 'systemd' | 'port-zero';"
|
|
494
541
|
},
|
|
495
542
|
{
|
|
496
543
|
"name": "RestartOutcome",
|
|
497
|
-
"declaration": "export type RestartOutcome = { ok: true; } | { ok: false; detail: string; };"
|
|
544
|
+
"declaration": "export type RestartOutcome = { ok: true; logFile?: string; } | { ok: false; detail: string; };"
|
|
498
545
|
},
|
|
499
546
|
{
|
|
500
547
|
"name": "ShopCatalogResult",
|
|
501
|
-
"declaration": "export interface ShopCatalogResult {\n schemaVersion: number;\n builtAt: string;\n stale: boolean;\n plugins: CatalogEntry[];\n denied: DeniedEntry[];\n notAShop?: string[];\n stars: Record<string, number>;\n incompatible: Record<string, string[]>;\n}"
|
|
548
|
+
"declaration": "export interface ShopCatalogResult {\n schemaVersion: number;\n builtAt: string;\n stale: boolean;\n plugins: CatalogEntry[];\n denied: DeniedEntry[];\n notAShop?: string[];\n stars: Record<string, number>;\n incompatible: Record<string, string[]>;\n incompatibleHarness: Record<string, HarnessVerdict>;\n}"
|
|
502
549
|
},
|
|
503
550
|
{
|
|
504
551
|
"name": "ShopInstalledEntry",
|
|
@@ -530,7 +577,7 @@ export const TYPERT = {
|
|
|
530
577
|
},
|
|
531
578
|
{
|
|
532
579
|
"name": "ShopVersionResult",
|
|
533
|
-
"declaration": "export interface ShopVersionResult {\n installed: string;\n latest: string | null;\n outdated: boolean;\n restartBlocked: RestartBlockedReason | null;\n}"
|
|
580
|
+
"declaration": "export interface ShopVersionResult {\n installed: string;\n latest: string | null;\n outdated: boolean;\n restartBlocked: RestartBlockedReason | null;\n pendingVersion?: string | null;\n}"
|
|
534
581
|
}
|
|
535
582
|
]
|
|
536
583
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/* Generated by @deepseek-ai/dsh-typert-generator from the Host FaceModel — do not edit. */
|
|
2
|
+
/* dsh-plugin-shop: create() added beside every schema for harness 0.1.7 (scripts/typert-dual-codecs.ts). */
|
|
2
3
|
import { z } from 'zod'
|
|
3
4
|
|
|
4
5
|
const dsh_plugin_shop_shop_catalog_parameter_0$schema = z.union([z.undefined(), z.object({
|
|
@@ -44,6 +45,11 @@ const dsh_plugin_shop_shop_catalog_result$schema = z.object({
|
|
|
44
45
|
})]).optional(),
|
|
45
46
|
'added': z.union([z.undefined(), z.string()]).optional(),
|
|
46
47
|
'peers': z.union([z.undefined(), z.array(z.string())]).optional(),
|
|
48
|
+
'compatibility': z.union([z.undefined(), z.object({
|
|
49
|
+
'dsh': z.union([z.undefined(), z.string()]).optional(),
|
|
50
|
+
'profiles': z.union([z.undefined(), z.array(z.string())]).optional(),
|
|
51
|
+
})]).optional(),
|
|
52
|
+
'dshPeers': z.union([z.undefined(), z.record(z.string(), z.string())]).optional(),
|
|
47
53
|
'unpackedSize': z.union([z.undefined(), z.number()]).optional(),
|
|
48
54
|
'installSize': z.union([z.undefined(), z.number()]).optional(),
|
|
49
55
|
})),
|
|
@@ -55,6 +61,21 @@ const dsh_plugin_shop_shop_catalog_result$schema = z.object({
|
|
|
55
61
|
'notAShop': z.union([z.undefined(), z.array(z.string())]).optional(),
|
|
56
62
|
'stars': z.record(z.string(), z.number()),
|
|
57
63
|
'incompatible': z.record(z.string(), z.array(z.string())),
|
|
64
|
+
'incompatibleHarness': z.record(z.string(), z.object({
|
|
65
|
+
'dsh': z.union([z.undefined(), z.object({
|
|
66
|
+
'range': z.string(),
|
|
67
|
+
'running': z.string(),
|
|
68
|
+
})]).optional(),
|
|
69
|
+
'profile': z.union([z.undefined(), z.object({
|
|
70
|
+
'declared': z.array(z.string()),
|
|
71
|
+
'running': z.string(),
|
|
72
|
+
})]).optional(),
|
|
73
|
+
'peers': z.union([z.undefined(), z.object({
|
|
74
|
+
'refused': z.record(z.string(), z.string()),
|
|
75
|
+
'running': z.string(),
|
|
76
|
+
'allowCommand': z.union([z.literal(null), z.string()]),
|
|
77
|
+
})]).optional(),
|
|
78
|
+
})),
|
|
58
79
|
})
|
|
59
80
|
const dsh_plugin_shop_shop_installed_result$schema = z.array(z.object({
|
|
60
81
|
'name': z.string(),
|
|
@@ -81,7 +102,7 @@ const dsh_plugin_shop_shop_installStart_result$schema = z.union([z.object({
|
|
|
81
102
|
'state': z.union([z.literal("downloading"), z.literal("running"), z.literal("done"), z.literal("failed")]),
|
|
82
103
|
}), z.object({
|
|
83
104
|
'ok': z.literal(false),
|
|
84
|
-
'code': z.union([z.literal("not-in-catalog"), z.literal("denied"), z.literal("version-mismatch"), z.literal("needs-acknowledgement"), z.literal("tarball-integrity"), z.literal("ambiguous-identity"), z.literal("name-taken")]),
|
|
105
|
+
'code': z.union([z.literal("not-in-catalog"), z.literal("denied"), z.literal("version-mismatch"), z.literal("needs-acknowledgement"), z.literal("tarball-integrity"), z.literal("ambiguous-identity"), z.literal("name-taken"), z.literal("desktop-profile")]),
|
|
85
106
|
'detail': z.string(),
|
|
86
107
|
})])
|
|
87
108
|
const dsh_plugin_shop_shop_installStatus_parameter_0$schema = z.object({
|
|
@@ -92,11 +113,12 @@ const dsh_plugin_shop_shop_installStatus_result$schema = z.object({
|
|
|
92
113
|
'state': z.union([z.literal("downloading"), z.literal("running"), z.literal("done"), z.literal("failed")]),
|
|
93
114
|
'log': z.array(z.string()),
|
|
94
115
|
'activation': z.union([z.undefined(), z.literal("live"), z.literal("reload"), z.literal("restart")]).optional(),
|
|
95
|
-
'restartReason': z.union([z.undefined(), z.literal("no-patch"), z.literal("not-simple"), z.literal("host-unsupported"), z.literal("timeout"), z.literal("mount-failed"), z.literal("
|
|
116
|
+
'restartReason': z.union([z.undefined(), z.literal("no-patch"), z.literal("not-simple"), z.literal("host-unsupported"), z.literal("timeout"), z.literal("mount-failed"), z.literal("already-loaded")]).optional(),
|
|
96
117
|
'detail': z.union([z.undefined(), z.string()]).optional(),
|
|
97
118
|
})
|
|
98
119
|
const dsh_plugin_shop_shop_restart_result$schema = z.union([z.object({
|
|
99
120
|
'ok': z.literal(true),
|
|
121
|
+
'logFile': z.union([z.undefined(), z.string()]).optional(),
|
|
100
122
|
}), z.object({
|
|
101
123
|
'ok': z.literal(false),
|
|
102
124
|
'detail': z.string(),
|
|
@@ -137,7 +159,8 @@ const dsh_plugin_shop_shop_version_result$schema = z.object({
|
|
|
137
159
|
'installed': z.string(),
|
|
138
160
|
'latest': z.union([z.literal(null), z.string()]),
|
|
139
161
|
'outdated': z.boolean(),
|
|
140
|
-
'restartBlocked': z.union([z.literal(null), z.literal("windows"), z.literal("systemd"), z.literal("port-zero")]),
|
|
162
|
+
'restartBlocked': z.union([z.literal(null), z.literal("desktop"), z.literal("windows"), z.literal("systemd"), z.literal("port-zero")]),
|
|
163
|
+
'pendingVersion': z.union([z.undefined(), z.literal(null), z.string()]).optional(),
|
|
141
164
|
})
|
|
142
165
|
|
|
143
166
|
export const TYPERT_REMOTE = {
|
|
@@ -159,6 +182,7 @@ export const TYPERT_REMOTE = {
|
|
|
159
182
|
mode: 'strict',
|
|
160
183
|
typeSymbol: 'dsh-plugin-shop#shop/catalog:args',
|
|
161
184
|
schema: dsh_plugin_shop_shop_catalog_parameter_0$schema,
|
|
185
|
+
create: () => dsh_plugin_shop_shop_catalog_parameter_0$schema,
|
|
162
186
|
},
|
|
163
187
|
},
|
|
164
188
|
],
|
|
@@ -166,8 +190,9 @@ export const TYPERT_REMOTE = {
|
|
|
166
190
|
mode: 'strict',
|
|
167
191
|
typeSymbol: 'dsh-plugin-shop/types#ShopCatalogResult',
|
|
168
192
|
schema: dsh_plugin_shop_shop_catalog_result$schema,
|
|
193
|
+
create: () => dsh_plugin_shop_shop_catalog_result$schema,
|
|
169
194
|
},
|
|
170
|
-
sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":
|
|
195
|
+
sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1134,"column":9},
|
|
171
196
|
},
|
|
172
197
|
{
|
|
173
198
|
id: 'dsh-plugin-shop#shop/installed',
|
|
@@ -181,8 +206,9 @@ export const TYPERT_REMOTE = {
|
|
|
181
206
|
mode: 'strict',
|
|
182
207
|
typeSymbol: 'dsh-plugin-shop#shop/installed:result',
|
|
183
208
|
schema: dsh_plugin_shop_shop_installed_result$schema,
|
|
209
|
+
create: () => dsh_plugin_shop_shop_installed_result$schema,
|
|
184
210
|
},
|
|
185
|
-
sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":
|
|
211
|
+
sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1494,"column":9},
|
|
186
212
|
},
|
|
187
213
|
{
|
|
188
214
|
id: 'dsh-plugin-shop#shop/installedSpecs',
|
|
@@ -196,8 +222,9 @@ export const TYPERT_REMOTE = {
|
|
|
196
222
|
mode: 'strict',
|
|
197
223
|
typeSymbol: 'dsh-plugin-shop#shop/installedSpecs:result',
|
|
198
224
|
schema: dsh_plugin_shop_shop_installedSpecs_result$schema,
|
|
225
|
+
create: () => dsh_plugin_shop_shop_installedSpecs_result$schema,
|
|
199
226
|
},
|
|
200
|
-
sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":
|
|
227
|
+
sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1485,"column":9},
|
|
201
228
|
},
|
|
202
229
|
{
|
|
203
230
|
id: 'dsh-plugin-shop#shop/installStart',
|
|
@@ -215,6 +242,7 @@ export const TYPERT_REMOTE = {
|
|
|
215
242
|
mode: 'strict',
|
|
216
243
|
typeSymbol: 'dsh-plugin-shop/types#InstallArgs',
|
|
217
244
|
schema: dsh_plugin_shop_shop_installStart_parameter_0$schema,
|
|
245
|
+
create: () => dsh_plugin_shop_shop_installStart_parameter_0$schema,
|
|
218
246
|
},
|
|
219
247
|
},
|
|
220
248
|
],
|
|
@@ -222,8 +250,9 @@ export const TYPERT_REMOTE = {
|
|
|
222
250
|
mode: 'strict',
|
|
223
251
|
typeSymbol: 'dsh-plugin-shop/types#ShopInstallResult',
|
|
224
252
|
schema: dsh_plugin_shop_shop_installStart_result$schema,
|
|
253
|
+
create: () => dsh_plugin_shop_shop_installStart_result$schema,
|
|
225
254
|
},
|
|
226
|
-
sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":
|
|
255
|
+
sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1260,"column":9},
|
|
227
256
|
},
|
|
228
257
|
{
|
|
229
258
|
id: 'dsh-plugin-shop#shop/installStatus',
|
|
@@ -240,6 +269,7 @@ export const TYPERT_REMOTE = {
|
|
|
240
269
|
mode: 'strict',
|
|
241
270
|
typeSymbol: 'dsh-plugin-shop#shop/installStatus:args',
|
|
242
271
|
schema: dsh_plugin_shop_shop_installStatus_parameter_0$schema,
|
|
272
|
+
create: () => dsh_plugin_shop_shop_installStatus_parameter_0$schema,
|
|
243
273
|
},
|
|
244
274
|
},
|
|
245
275
|
],
|
|
@@ -247,8 +277,9 @@ export const TYPERT_REMOTE = {
|
|
|
247
277
|
mode: 'strict',
|
|
248
278
|
typeSymbol: 'dsh-plugin-shop/types#ShopInstallStatusResult',
|
|
249
279
|
schema: dsh_plugin_shop_shop_installStatus_result$schema,
|
|
280
|
+
create: () => dsh_plugin_shop_shop_installStatus_result$schema,
|
|
250
281
|
},
|
|
251
|
-
sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":
|
|
282
|
+
sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1461,"column":3},
|
|
252
283
|
},
|
|
253
284
|
{
|
|
254
285
|
id: 'dsh-plugin-shop#shop/restart',
|
|
@@ -262,8 +293,9 @@ export const TYPERT_REMOTE = {
|
|
|
262
293
|
mode: 'strict',
|
|
263
294
|
typeSymbol: 'dsh-plugin-shop/types#ShopRestartResult',
|
|
264
295
|
schema: dsh_plugin_shop_shop_restart_result$schema,
|
|
296
|
+
create: () => dsh_plugin_shop_shop_restart_result$schema,
|
|
265
297
|
},
|
|
266
|
-
sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":
|
|
298
|
+
sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1680,"column":9},
|
|
267
299
|
},
|
|
268
300
|
{
|
|
269
301
|
id: 'dsh-plugin-shop#shop/setEnabled',
|
|
@@ -280,6 +312,7 @@ export const TYPERT_REMOTE = {
|
|
|
280
312
|
mode: 'strict',
|
|
281
313
|
typeSymbol: 'dsh-plugin-shop#shop/setEnabled:args',
|
|
282
314
|
schema: dsh_plugin_shop_shop_setEnabled_parameter_0$schema,
|
|
315
|
+
create: () => dsh_plugin_shop_shop_setEnabled_parameter_0$schema,
|
|
283
316
|
},
|
|
284
317
|
},
|
|
285
318
|
],
|
|
@@ -287,8 +320,9 @@ export const TYPERT_REMOTE = {
|
|
|
287
320
|
mode: 'strict',
|
|
288
321
|
typeSymbol: 'dsh-plugin-shop/types#ShopSetEnabledResult',
|
|
289
322
|
schema: dsh_plugin_shop_shop_setEnabled_result$schema,
|
|
323
|
+
create: () => dsh_plugin_shop_shop_setEnabled_result$schema,
|
|
290
324
|
},
|
|
291
|
-
sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":
|
|
325
|
+
sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":887,"column":9},
|
|
292
326
|
},
|
|
293
327
|
{
|
|
294
328
|
id: 'dsh-plugin-shop#shop/uninstallStart',
|
|
@@ -306,6 +340,7 @@ export const TYPERT_REMOTE = {
|
|
|
306
340
|
mode: 'strict',
|
|
307
341
|
typeSymbol: 'dsh-plugin-shop#shop/uninstallStart:args',
|
|
308
342
|
schema: dsh_plugin_shop_shop_uninstallStart_parameter_0$schema,
|
|
343
|
+
create: () => dsh_plugin_shop_shop_uninstallStart_parameter_0$schema,
|
|
309
344
|
},
|
|
310
345
|
},
|
|
311
346
|
],
|
|
@@ -313,8 +348,9 @@ export const TYPERT_REMOTE = {
|
|
|
313
348
|
mode: 'strict',
|
|
314
349
|
typeSymbol: 'dsh-plugin-shop/types#ShopUninstallResult',
|
|
315
350
|
schema: dsh_plugin_shop_shop_uninstallStart_result$schema,
|
|
351
|
+
create: () => dsh_plugin_shop_shop_uninstallStart_result$schema,
|
|
316
352
|
},
|
|
317
|
-
sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":
|
|
353
|
+
sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1601,"column":9},
|
|
318
354
|
},
|
|
319
355
|
{
|
|
320
356
|
id: 'dsh-plugin-shop#shop/updateStart',
|
|
@@ -331,6 +367,7 @@ export const TYPERT_REMOTE = {
|
|
|
331
367
|
mode: 'strict',
|
|
332
368
|
typeSymbol: 'dsh-plugin-shop#shop/updateStart:args',
|
|
333
369
|
schema: dsh_plugin_shop_shop_updateStart_parameter_0$schema,
|
|
370
|
+
create: () => dsh_plugin_shop_shop_updateStart_parameter_0$schema,
|
|
334
371
|
},
|
|
335
372
|
},
|
|
336
373
|
],
|
|
@@ -338,8 +375,9 @@ export const TYPERT_REMOTE = {
|
|
|
338
375
|
mode: 'strict',
|
|
339
376
|
typeSymbol: 'dsh-plugin-shop/types#ShopUpdateResult',
|
|
340
377
|
schema: dsh_plugin_shop_shop_updateStart_result$schema,
|
|
378
|
+
create: () => dsh_plugin_shop_shop_updateStart_result$schema,
|
|
341
379
|
},
|
|
342
|
-
sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":
|
|
380
|
+
sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1777,"column":9},
|
|
343
381
|
},
|
|
344
382
|
{
|
|
345
383
|
id: 'dsh-plugin-shop#shop/version',
|
|
@@ -353,8 +391,9 @@ export const TYPERT_REMOTE = {
|
|
|
353
391
|
mode: 'strict',
|
|
354
392
|
typeSymbol: 'dsh-plugin-shop/types#ShopVersionResult',
|
|
355
393
|
schema: dsh_plugin_shop_shop_version_result$schema,
|
|
394
|
+
create: () => dsh_plugin_shop_shop_version_result$schema,
|
|
356
395
|
},
|
|
357
|
-
sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":
|
|
396
|
+
sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1735,"column":9},
|
|
358
397
|
},
|
|
359
398
|
],
|
|
360
399
|
}
|
|
@@ -10,8 +10,16 @@ import type { InstallArgs, ShopCatalogResult, ShopInstalledEntry, ShopInstallRes
|
|
|
10
10
|
* wire envelope by `index.ts`; `catalog` throws on a wire error so the tab's
|
|
11
11
|
* error state renders. */
|
|
12
12
|
export interface ShopTabInjected {
|
|
13
|
+
/** `reverdict: true` means "judge again against the installation as it
|
|
14
|
+
* stands now" — the host's own snapshot and freshness window, asked with
|
|
15
|
+
* the same plain call as a stash-expired open, never a network refresh. A
|
|
16
|
+
* plain open can still serve the stash; a reverdict always bypasses it (the
|
|
17
|
+
* install or uninstall that triggered it predates whatever the stash
|
|
18
|
+
* holds). It is a client-only instruction: `index.ts` never lets it reach
|
|
19
|
+
* the host RPC, which accepts only `{ refresh?: boolean }`. */
|
|
13
20
|
catalog: (args?: {
|
|
14
21
|
refresh?: boolean;
|
|
22
|
+
reverdict?: boolean;
|
|
15
23
|
}) => Promise<ShopCatalogResult>;
|
|
16
24
|
install: (args: InstallArgs) => Promise<ShopInstallResult>;
|
|
17
25
|
installStatus: (args: {
|
|
@@ -29,6 +37,14 @@ export interface ShopTabInjected {
|
|
|
29
37
|
uninstall: (args: {
|
|
30
38
|
name: string;
|
|
31
39
|
}) => Promise<ShopUninstallResult>;
|
|
40
|
+
/** Tells the client half that this page uninstalled `name`, so the module
|
|
41
|
+
* table's refinement never vouches for it again (the page-removed set,
|
|
42
|
+
* design 2026-09-01-harness-compatibility section 9.1): a graph row or a
|
|
43
|
+
* `loadCache` record can outlive a restart-free uninstall, and would
|
|
44
|
+
* otherwise clear a badge the host is still right to show. Optional — a
|
|
45
|
+
* stub or an old host face may not offer it — and installs need no
|
|
46
|
+
* counterpart, since a reinstalled package resolves on the host again. */
|
|
47
|
+
noteUninstalled?: (name: string) => void;
|
|
32
48
|
restart: () => Promise<ShopRestartResult>;
|
|
33
49
|
version: () => Promise<ShopVersionResult>;
|
|
34
50
|
updateStart: (args: {
|
|
@@ -41,6 +57,7 @@ export interface ShopTabInjected {
|
|
|
41
57
|
}
|
|
42
58
|
/** Full component props assembled by the Settings slot renderer. */
|
|
43
59
|
export type ShopTabProps = PropsRuntime<'settings.plugins.tab'> & PropsLocale<'settings.shop'> & InjectFace<ShopTabInjected>;
|
|
44
|
-
/** The
|
|
45
|
-
*
|
|
60
|
+
/** The tab as the settings slot registers it (`index.ts`): the body inside the
|
|
61
|
+
* shop's own error boundary. Exported under the name the body used to carry,
|
|
62
|
+
* so nothing can register the tab without the boundary. */
|
|
46
63
|
export declare function ShopTab(props: ShopTabProps): ReactNode;
|