@deepseek-ai/dsh-plugin-manager 0.1.7-alpha.2 → 0.1.7-rc.2

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.
@@ -25,7 +25,7 @@ const _deepseek_ai_dsh_plugin_manager_pluginManager_inspect_result$schema = () =
25
25
  'host': z.string().readonly().optional(),
26
26
  }), z.object({
27
27
  'status': z.literal("refused").readonly(),
28
- 'problem': z.union([z.literal("network"), z.literal("unknown"), z.literal("invalid-spec"), z.literal("already-installed"), z.literal("not-found"), z.literal("not-a-package"), z.literal("not-a-bundle")]).readonly(),
28
+ 'problem': z.union([z.literal("network"), z.literal("unknown"), z.literal("invalid-spec"), z.literal("not-found"), z.literal("already-installed"), z.literal("not-a-package"), z.literal("not-a-bundle")]).readonly(),
29
29
  'reason': z.string().readonly(),
30
30
  'registries': z.array(z.union([z.literal(null), z.string()])).readonly().optional(),
31
31
  })]))
@@ -46,8 +46,14 @@ const _deepseek_ai_dsh_plugin_manager_pluginManager_installBundle_result$schema
46
46
  'target': z.string(),
47
47
  'enabled': z.boolean().optional(),
48
48
  'error': z.object({
49
- 'code': z.union([z.literal("management-required"), z.literal("unaddressable"), z.literal("unknown-plugin"), z.literal("invalid-spec"), z.literal("ambiguous-install"), z.literal("not-bundle"), z.literal("not-removable"), z.literal("stop-profile"), z.literal("bundle-in-use"), z.literal("stale-approval"), z.literal("operation-error")]),
49
+ 'code': z.union([z.literal("management-required"), z.literal("unaddressable"), z.literal("unknown-plugin"), z.literal("invalid-spec"), z.literal("ambiguous-install"), z.literal("not-bundle"), z.literal("not-removable"), z.literal("stop-profile"), z.literal("bundle-in-use"), z.literal("stale-approval"), z.literal("incompatible-version"), z.literal("operation-error")]),
50
50
  'diagnostic': z.string().optional(),
51
+ 'incompatible': z.array(z.object({
52
+ 'name': z.string(),
53
+ 'version': z.string(),
54
+ 'runtimeVersion': z.string(),
55
+ 'peers': z.record(z.string(), z.string()),
56
+ })).optional(),
51
57
  }).optional(),
52
58
  'warnings': z.array(z.string()).optional(),
53
59
  'packageResult': z.object({
@@ -55,7 +61,14 @@ const _deepseek_ai_dsh_plugin_manager_pluginManager_installBundle_result$schema
55
61
  'output': z.string(),
56
62
  'truncated': z.boolean(),
57
63
  'logPath': z.string(),
58
- 'kind': z.union([z.literal("network"), z.literal("unknown"), z.literal("timeout"), z.literal("integrity"), z.literal("not-found"), z.literal("pnpm-missing"), z.literal("no-matching-version"), z.literal("disk-full"), z.literal("permission"), z.literal("build-blocked")]).optional(),
64
+ 'kind': z.union([z.literal("network"), z.literal("unknown"), z.literal("timeout"), z.literal("integrity"), z.literal("pnpm-missing"), z.literal("not-found"), z.literal("no-matching-version"), z.literal("disk-full"), z.literal("permission"), z.literal("build-blocked")]).optional(),
65
+ 'timedOut': z.boolean().optional(),
66
+ 'incompatible': z.array(z.object({
67
+ 'name': z.string(),
68
+ 'version': z.string(),
69
+ 'runtimeVersion': z.string(),
70
+ 'peers': z.record(z.string(), z.string()),
71
+ })).optional(),
59
72
  }).optional(),
60
73
  'bundle': z.string().optional(),
61
74
  'pendingBuilds': z.array(z.string()).optional(),
@@ -84,8 +97,14 @@ const _deepseek_ai_dsh_plugin_manager_pluginManager_listBundles_result$schema =
84
97
  'removable': z.boolean(),
85
98
  'readOnlyReason': z.union([z.literal("management-required"), z.literal("unaddressable")]).optional(),
86
99
  'error': z.object({
87
- 'code': z.union([z.literal("management-required"), z.literal("unaddressable"), z.literal("unknown-plugin"), z.literal("invalid-spec"), z.literal("ambiguous-install"), z.literal("not-bundle"), z.literal("not-removable"), z.literal("stop-profile"), z.literal("bundle-in-use"), z.literal("stale-approval"), z.literal("operation-error")]),
100
+ 'code': z.union([z.literal("management-required"), z.literal("unaddressable"), z.literal("unknown-plugin"), z.literal("invalid-spec"), z.literal("ambiguous-install"), z.literal("not-bundle"), z.literal("not-removable"), z.literal("stop-profile"), z.literal("bundle-in-use"), z.literal("stale-approval"), z.literal("incompatible-version"), z.literal("operation-error")]),
88
101
  'diagnostic': z.string().optional(),
102
+ 'incompatible': z.array(z.object({
103
+ 'name': z.string(),
104
+ 'version': z.string(),
105
+ 'runtimeVersion': z.string(),
106
+ 'peers': z.record(z.string(), z.string()),
107
+ })).optional(),
89
108
  }).optional(),
90
109
  'rows': z.array(z.object({
91
110
  'rowId': z.string(),
@@ -142,6 +161,11 @@ const _deepseek_ai_dsh_plugin_manager_pluginManager_listPlugins_result$schema =
142
161
  'patchId': z.never().optional(),
143
162
  'readOnlyReason': z.union([z.literal("management-required"), z.literal("unaddressable")]),
144
163
  }))])))
164
+ let _deepseek_ai_dsh_plugin_manager_pluginManager_listVersionExemptions_result$schema$value
165
+ const _deepseek_ai_dsh_plugin_manager_pluginManager_listVersionExemptions_result$schema = () => (_deepseek_ai_dsh_plugin_manager_pluginManager_listVersionExemptions_result$schema$value ??= z.object({
166
+ 'exemptions': z.record(z.string(), z.array(z.string())),
167
+ 'warnings': z.array(z.string()),
168
+ }))
145
169
  let _deepseek_ai_dsh_plugin_manager_pluginManager_registries_result$schema$value
146
170
  const _deepseek_ai_dsh_plugin_manager_pluginManager_registries_result$schema = () => (_deepseek_ai_dsh_plugin_manager_pluginManager_registries_result$schema$value ??= z.object({
147
171
  'registry': z.union([z.literal(null), z.string()]).readonly(),
@@ -158,8 +182,14 @@ const _deepseek_ai_dsh_plugin_manager_pluginManager_removeBundle_result$schema =
158
182
  'target': z.string(),
159
183
  'enabled': z.boolean().optional(),
160
184
  'error': z.object({
161
- 'code': z.union([z.literal("management-required"), z.literal("unaddressable"), z.literal("unknown-plugin"), z.literal("invalid-spec"), z.literal("ambiguous-install"), z.literal("not-bundle"), z.literal("not-removable"), z.literal("stop-profile"), z.literal("bundle-in-use"), z.literal("stale-approval"), z.literal("operation-error")]),
185
+ 'code': z.union([z.literal("management-required"), z.literal("unaddressable"), z.literal("unknown-plugin"), z.literal("invalid-spec"), z.literal("ambiguous-install"), z.literal("not-bundle"), z.literal("not-removable"), z.literal("stop-profile"), z.literal("bundle-in-use"), z.literal("stale-approval"), z.literal("incompatible-version"), z.literal("operation-error")]),
162
186
  'diagnostic': z.string().optional(),
187
+ 'incompatible': z.array(z.object({
188
+ 'name': z.string(),
189
+ 'version': z.string(),
190
+ 'runtimeVersion': z.string(),
191
+ 'peers': z.record(z.string(), z.string()),
192
+ })).optional(),
163
193
  }).optional(),
164
194
  'warnings': z.array(z.string()).optional(),
165
195
  'packageResult': z.object({
@@ -167,7 +197,14 @@ const _deepseek_ai_dsh_plugin_manager_pluginManager_removeBundle_result$schema =
167
197
  'output': z.string(),
168
198
  'truncated': z.boolean(),
169
199
  'logPath': z.string(),
170
- 'kind': z.union([z.literal("network"), z.literal("unknown"), z.literal("timeout"), z.literal("integrity"), z.literal("not-found"), z.literal("pnpm-missing"), z.literal("no-matching-version"), z.literal("disk-full"), z.literal("permission"), z.literal("build-blocked")]).optional(),
200
+ 'kind': z.union([z.literal("network"), z.literal("unknown"), z.literal("timeout"), z.literal("integrity"), z.literal("pnpm-missing"), z.literal("not-found"), z.literal("no-matching-version"), z.literal("disk-full"), z.literal("permission"), z.literal("build-blocked")]).optional(),
201
+ 'timedOut': z.boolean().optional(),
202
+ 'incompatible': z.array(z.object({
203
+ 'name': z.string(),
204
+ 'version': z.string(),
205
+ 'runtimeVersion': z.string(),
206
+ 'peers': z.record(z.string(), z.string()),
207
+ })).optional(),
171
208
  }).optional(),
172
209
  'bundle': z.string().optional(),
173
210
  'pendingBuilds': z.array(z.string()).optional(),
@@ -187,8 +224,14 @@ const _deepseek_ai_dsh_plugin_manager_pluginManager_setBundleEnabled_result$sche
187
224
  'target': z.string(),
188
225
  'enabled': z.boolean().optional(),
189
226
  'error': z.object({
190
- 'code': z.union([z.literal("management-required"), z.literal("unaddressable"), z.literal("unknown-plugin"), z.literal("invalid-spec"), z.literal("ambiguous-install"), z.literal("not-bundle"), z.literal("not-removable"), z.literal("stop-profile"), z.literal("bundle-in-use"), z.literal("stale-approval"), z.literal("operation-error")]),
227
+ 'code': z.union([z.literal("management-required"), z.literal("unaddressable"), z.literal("unknown-plugin"), z.literal("invalid-spec"), z.literal("ambiguous-install"), z.literal("not-bundle"), z.literal("not-removable"), z.literal("stop-profile"), z.literal("bundle-in-use"), z.literal("stale-approval"), z.literal("incompatible-version"), z.literal("operation-error")]),
191
228
  'diagnostic': z.string().optional(),
229
+ 'incompatible': z.array(z.object({
230
+ 'name': z.string(),
231
+ 'version': z.string(),
232
+ 'runtimeVersion': z.string(),
233
+ 'peers': z.record(z.string(), z.string()),
234
+ })).optional(),
192
235
  }).optional(),
193
236
  'warnings': z.array(z.string()).optional(),
194
237
  'packageResult': z.object({
@@ -196,7 +239,14 @@ const _deepseek_ai_dsh_plugin_manager_pluginManager_setBundleEnabled_result$sche
196
239
  'output': z.string(),
197
240
  'truncated': z.boolean(),
198
241
  'logPath': z.string(),
199
- 'kind': z.union([z.literal("network"), z.literal("unknown"), z.literal("timeout"), z.literal("integrity"), z.literal("not-found"), z.literal("pnpm-missing"), z.literal("no-matching-version"), z.literal("disk-full"), z.literal("permission"), z.literal("build-blocked")]).optional(),
242
+ 'kind': z.union([z.literal("network"), z.literal("unknown"), z.literal("timeout"), z.literal("integrity"), z.literal("pnpm-missing"), z.literal("not-found"), z.literal("no-matching-version"), z.literal("disk-full"), z.literal("permission"), z.literal("build-blocked")]).optional(),
243
+ 'timedOut': z.boolean().optional(),
244
+ 'incompatible': z.array(z.object({
245
+ 'name': z.string(),
246
+ 'version': z.string(),
247
+ 'runtimeVersion': z.string(),
248
+ 'peers': z.record(z.string(), z.string()),
249
+ })).optional(),
200
250
  }).optional(),
201
251
  'bundle': z.string().optional(),
202
252
  'pendingBuilds': z.array(z.string()).optional(),
@@ -216,8 +266,60 @@ const _deepseek_ai_dsh_plugin_manager_pluginManager_setPluginEnabled_result$sche
216
266
  'target': z.string(),
217
267
  'enabled': z.boolean().optional(),
218
268
  'error': z.object({
219
- 'code': z.union([z.literal("management-required"), z.literal("unaddressable"), z.literal("unknown-plugin"), z.literal("invalid-spec"), z.literal("ambiguous-install"), z.literal("not-bundle"), z.literal("not-removable"), z.literal("stop-profile"), z.literal("bundle-in-use"), z.literal("stale-approval"), z.literal("operation-error")]),
269
+ 'code': z.union([z.literal("management-required"), z.literal("unaddressable"), z.literal("unknown-plugin"), z.literal("invalid-spec"), z.literal("ambiguous-install"), z.literal("not-bundle"), z.literal("not-removable"), z.literal("stop-profile"), z.literal("bundle-in-use"), z.literal("stale-approval"), z.literal("incompatible-version"), z.literal("operation-error")]),
270
+ 'diagnostic': z.string().optional(),
271
+ 'incompatible': z.array(z.object({
272
+ 'name': z.string(),
273
+ 'version': z.string(),
274
+ 'runtimeVersion': z.string(),
275
+ 'peers': z.record(z.string(), z.string()),
276
+ })).optional(),
277
+ }).optional(),
278
+ 'warnings': z.array(z.string()).optional(),
279
+ 'packageResult': z.object({
280
+ 'exitCode': z.number(),
281
+ 'output': z.string(),
282
+ 'truncated': z.boolean(),
283
+ 'logPath': z.string(),
284
+ 'kind': z.union([z.literal("network"), z.literal("unknown"), z.literal("timeout"), z.literal("integrity"), z.literal("pnpm-missing"), z.literal("not-found"), z.literal("no-matching-version"), z.literal("disk-full"), z.literal("permission"), z.literal("build-blocked")]).optional(),
285
+ 'timedOut': z.boolean().optional(),
286
+ 'incompatible': z.array(z.object({
287
+ 'name': z.string(),
288
+ 'version': z.string(),
289
+ 'runtimeVersion': z.string(),
290
+ 'peers': z.record(z.string(), z.string()),
291
+ })).optional(),
292
+ }).optional(),
293
+ 'bundle': z.string().optional(),
294
+ 'pendingBuilds': z.array(z.string()).optional(),
295
+ 'approvedBuilds': z.array(z.string()).optional(),
296
+ 'registries': z.array(z.union([z.literal(null), z.string()])).optional(),
297
+ 'failedAt': z.union([z.literal("registry"), z.literal("spec-host")]).optional(),
298
+ }))
299
+ let _deepseek_ai_dsh_plugin_manager_pluginManager_setVersionExemption_parameter_0$schema$value
300
+ const _deepseek_ai_dsh_plugin_manager_pluginManager_setVersionExemption_parameter_0$schema = () => (_deepseek_ai_dsh_plugin_manager_pluginManager_setVersionExemption_parameter_0$schema$value ??= z.string())
301
+ let _deepseek_ai_dsh_plugin_manager_pluginManager_setVersionExemption_parameter_1$schema$value
302
+ const _deepseek_ai_dsh_plugin_manager_pluginManager_setVersionExemption_parameter_1$schema = () => (_deepseek_ai_dsh_plugin_manager_pluginManager_setVersionExemption_parameter_1$schema$value ??= z.string())
303
+ let _deepseek_ai_dsh_plugin_manager_pluginManager_setVersionExemption_parameter_2$schema$value
304
+ const _deepseek_ai_dsh_plugin_manager_pluginManager_setVersionExemption_parameter_2$schema = () => (_deepseek_ai_dsh_plugin_manager_pluginManager_setVersionExemption_parameter_2$schema$value ??= z.boolean())
305
+ let _deepseek_ai_dsh_plugin_manager_pluginManager_setVersionExemption_parameter_3$schema$value
306
+ const _deepseek_ai_dsh_plugin_manager_pluginManager_setVersionExemption_parameter_3$schema = () => (_deepseek_ai_dsh_plugin_manager_pluginManager_setVersionExemption_parameter_3$schema$value ??= z.union([z.undefined(), z.literal(false), z.literal(true)]))
307
+ let _deepseek_ai_dsh_plugin_manager_pluginManager_setVersionExemption_result$schema$value
308
+ const _deepseek_ai_dsh_plugin_manager_pluginManager_setVersionExemption_result$schema = () => (_deepseek_ai_dsh_plugin_manager_pluginManager_setVersionExemption_result$schema$value ??= z.object({
309
+ 'changed': z.boolean(),
310
+ 'application': z.union([z.literal("cancelled"), z.literal("failed"), z.literal("applied"), z.literal("restart-required"), z.literal("overridden")]),
311
+ 'stage': z.union([z.literal("remove"), z.literal("install"), z.literal("enable")]),
312
+ 'target': z.string(),
313
+ 'enabled': z.boolean().optional(),
314
+ 'error': z.object({
315
+ 'code': z.union([z.literal("management-required"), z.literal("unaddressable"), z.literal("unknown-plugin"), z.literal("invalid-spec"), z.literal("ambiguous-install"), z.literal("not-bundle"), z.literal("not-removable"), z.literal("stop-profile"), z.literal("bundle-in-use"), z.literal("stale-approval"), z.literal("incompatible-version"), z.literal("operation-error")]),
220
316
  'diagnostic': z.string().optional(),
317
+ 'incompatible': z.array(z.object({
318
+ 'name': z.string(),
319
+ 'version': z.string(),
320
+ 'runtimeVersion': z.string(),
321
+ 'peers': z.record(z.string(), z.string()),
322
+ })).optional(),
221
323
  }).optional(),
222
324
  'warnings': z.array(z.string()).optional(),
223
325
  'packageResult': z.object({
@@ -225,7 +327,14 @@ const _deepseek_ai_dsh_plugin_manager_pluginManager_setPluginEnabled_result$sche
225
327
  'output': z.string(),
226
328
  'truncated': z.boolean(),
227
329
  'logPath': z.string(),
228
- 'kind': z.union([z.literal("network"), z.literal("unknown"), z.literal("timeout"), z.literal("integrity"), z.literal("not-found"), z.literal("pnpm-missing"), z.literal("no-matching-version"), z.literal("disk-full"), z.literal("permission"), z.literal("build-blocked")]).optional(),
330
+ 'kind': z.union([z.literal("network"), z.literal("unknown"), z.literal("timeout"), z.literal("integrity"), z.literal("pnpm-missing"), z.literal("not-found"), z.literal("no-matching-version"), z.literal("disk-full"), z.literal("permission"), z.literal("build-blocked")]).optional(),
331
+ 'timedOut': z.boolean().optional(),
332
+ 'incompatible': z.array(z.object({
333
+ 'name': z.string(),
334
+ 'version': z.string(),
335
+ 'runtimeVersion': z.string(),
336
+ 'peers': z.record(z.string(), z.string()),
337
+ })).optional(),
229
338
  }).optional(),
230
339
  'bundle': z.string().optional(),
231
340
  'pendingBuilds': z.array(z.string()).optional(),
@@ -243,8 +352,14 @@ const _deepseek_ai_dsh_plugin_manager_pluginManager_waitForInstall_result$schema
243
352
  'target': z.string(),
244
353
  'enabled': z.boolean().optional(),
245
354
  'error': z.object({
246
- 'code': z.union([z.literal("management-required"), z.literal("unaddressable"), z.literal("unknown-plugin"), z.literal("invalid-spec"), z.literal("ambiguous-install"), z.literal("not-bundle"), z.literal("not-removable"), z.literal("stop-profile"), z.literal("bundle-in-use"), z.literal("stale-approval"), z.literal("operation-error")]),
355
+ 'code': z.union([z.literal("management-required"), z.literal("unaddressable"), z.literal("unknown-plugin"), z.literal("invalid-spec"), z.literal("ambiguous-install"), z.literal("not-bundle"), z.literal("not-removable"), z.literal("stop-profile"), z.literal("bundle-in-use"), z.literal("stale-approval"), z.literal("incompatible-version"), z.literal("operation-error")]),
247
356
  'diagnostic': z.string().optional(),
357
+ 'incompatible': z.array(z.object({
358
+ 'name': z.string(),
359
+ 'version': z.string(),
360
+ 'runtimeVersion': z.string(),
361
+ 'peers': z.record(z.string(), z.string()),
362
+ })).optional(),
248
363
  }).optional(),
249
364
  'warnings': z.array(z.string()).optional(),
250
365
  'packageResult': z.object({
@@ -252,7 +367,14 @@ const _deepseek_ai_dsh_plugin_manager_pluginManager_waitForInstall_result$schema
252
367
  'output': z.string(),
253
368
  'truncated': z.boolean(),
254
369
  'logPath': z.string(),
255
- 'kind': z.union([z.literal("network"), z.literal("unknown"), z.literal("timeout"), z.literal("integrity"), z.literal("not-found"), z.literal("pnpm-missing"), z.literal("no-matching-version"), z.literal("disk-full"), z.literal("permission"), z.literal("build-blocked")]).optional(),
370
+ 'kind': z.union([z.literal("network"), z.literal("unknown"), z.literal("timeout"), z.literal("integrity"), z.literal("pnpm-missing"), z.literal("not-found"), z.literal("no-matching-version"), z.literal("disk-full"), z.literal("permission"), z.literal("build-blocked")]).optional(),
371
+ 'timedOut': z.boolean().optional(),
372
+ 'incompatible': z.array(z.object({
373
+ 'name': z.string(),
374
+ 'version': z.string(),
375
+ 'runtimeVersion': z.string(),
376
+ 'peers': z.record(z.string(), z.string()),
377
+ })).optional(),
256
378
  }).optional(),
257
379
  'bundle': z.string().optional(),
258
380
  'pendingBuilds': z.array(z.string()).optional(),
@@ -290,7 +412,7 @@ export const TYPERT = {
290
412
  typeSymbol: '@deepseek-ai/dsh-plugin-manager/types#PluginInstallCancellation',
291
413
  create: _deepseek_ai_dsh_plugin_manager_pluginManager_cancelInstall_result$schema,
292
414
  },
293
- sourceLocation: {"file":"packages/boot/plugin-manager/src/index.ts","line":516,"column":9},
415
+ sourceLocation: {"file":"packages/boot/plugin-manager/src/index.ts","line":585,"column":9},
294
416
  },
295
417
  {
296
418
  id: '@deepseek-ai/dsh-plugin-manager#pluginManager/inspect',
@@ -327,7 +449,7 @@ export const TYPERT = {
327
449
  typeSymbol: '@deepseek-ai/dsh-plugin-manager/types#PluginSpecInspection',
328
450
  create: _deepseek_ai_dsh_plugin_manager_pluginManager_inspect_result$schema,
329
451
  },
330
- sourceLocation: {"file":"packages/boot/plugin-manager/src/index.ts","line":299,"column":9},
452
+ sourceLocation: {"file":"packages/boot/plugin-manager/src/index.ts","line":341,"column":9},
331
453
  },
332
454
  {
333
455
  id: '@deepseek-ai/dsh-plugin-manager#pluginManager/installBundle',
@@ -363,7 +485,7 @@ export const TYPERT = {
363
485
  typeSymbol: '@deepseek-ai/dsh-plugin-manager/types#ChangeResult',
364
486
  create: _deepseek_ai_dsh_plugin_manager_pluginManager_installBundle_result$schema,
365
487
  },
366
- sourceLocation: {"file":"packages/boot/plugin-manager/src/index.ts","line":418,"column":3},
488
+ sourceLocation: {"file":"packages/boot/plugin-manager/src/index.ts","line":462,"column":3},
367
489
  },
368
490
  {
369
491
  id: '@deepseek-ai/dsh-plugin-manager#pluginManager/listBundles',
@@ -378,7 +500,7 @@ export const TYPERT = {
378
500
  typeSymbol: '@deepseek-ai/dsh-plugin-manager#pluginManager/listBundles:result',
379
501
  create: _deepseek_ai_dsh_plugin_manager_pluginManager_listBundles_result$schema,
380
502
  },
381
- sourceLocation: {"file":"packages/boot/plugin-manager/src/index.ts","line":241,"column":3},
503
+ sourceLocation: {"file":"packages/boot/plugin-manager/src/index.ts","line":280,"column":3},
382
504
  },
383
505
  {
384
506
  id: '@deepseek-ai/dsh-plugin-manager#pluginManager/listPlugins',
@@ -393,7 +515,22 @@ export const TYPERT = {
393
515
  typeSymbol: '@deepseek-ai/dsh-plugin-manager#pluginManager/listPlugins:result',
394
516
  create: _deepseek_ai_dsh_plugin_manager_pluginManager_listPlugins_result$schema,
395
517
  },
396
- sourceLocation: {"file":"packages/boot/plugin-manager/src/index.ts","line":217,"column":9},
518
+ sourceLocation: {"file":"packages/boot/plugin-manager/src/index.ts","line":256,"column":9},
519
+ },
520
+ {
521
+ id: '@deepseek-ai/dsh-plugin-manager#pluginManager/listVersionExemptions',
522
+ service: 'pluginManager',
523
+ namespace: 'pluginManager',
524
+ method: 'listVersionExemptions',
525
+ invocation: { kind: 'direct' },
526
+ parameters: [
527
+ ],
528
+ result: {
529
+ mode: 'strict',
530
+ typeSymbol: '@deepseek-ai/dsh-plugin-manager#pluginManager/listVersionExemptions:result',
531
+ create: _deepseek_ai_dsh_plugin_manager_pluginManager_listVersionExemptions_result$schema,
532
+ },
533
+ sourceLocation: {"file":"packages/boot/plugin-manager/src/index.ts","line":232,"column":3},
397
534
  },
398
535
  {
399
536
  id: '@deepseek-ai/dsh-plugin-manager#pluginManager/registries',
@@ -408,7 +545,7 @@ export const TYPERT = {
408
545
  typeSymbol: '@deepseek-ai/dsh-plugin-manager/types#PluginRegistries',
409
546
  create: _deepseek_ai_dsh_plugin_manager_pluginManager_registries_result$schema,
410
547
  },
411
- sourceLocation: {"file":"packages/boot/plugin-manager/src/index.ts","line":283,"column":9},
548
+ sourceLocation: {"file":"packages/boot/plugin-manager/src/index.ts","line":325,"column":9},
412
549
  },
413
550
  {
414
551
  id: '@deepseek-ai/dsh-plugin-manager#pluginManager/removeBundle',
@@ -433,7 +570,7 @@ export const TYPERT = {
433
570
  typeSymbol: '@deepseek-ai/dsh-plugin-manager/types#ChangeResult',
434
571
  create: _deepseek_ai_dsh_plugin_manager_pluginManager_removeBundle_result$schema,
435
572
  },
436
- sourceLocation: {"file":"packages/boot/plugin-manager/src/index.ts","line":532,"column":3},
573
+ sourceLocation: {"file":"packages/boot/plugin-manager/src/index.ts","line":601,"column":3},
437
574
  },
438
575
  {
439
576
  id: '@deepseek-ai/dsh-plugin-manager#pluginManager/setBundleEnabled',
@@ -468,7 +605,7 @@ export const TYPERT = {
468
605
  typeSymbol: '@deepseek-ai/dsh-plugin-manager/types#ChangeResult',
469
606
  create: _deepseek_ai_dsh_plugin_manager_pluginManager_setBundleEnabled_result$schema,
470
607
  },
471
- sourceLocation: {"file":"packages/boot/plugin-manager/src/index.ts","line":401,"column":3},
608
+ sourceLocation: {"file":"packages/boot/plugin-manager/src/index.ts","line":443,"column":3},
472
609
  },
473
610
  {
474
611
  id: '@deepseek-ai/dsh-plugin-manager#pluginManager/setPluginEnabled',
@@ -503,7 +640,63 @@ export const TYPERT = {
503
640
  typeSymbol: '@deepseek-ai/dsh-plugin-manager/types#ChangeResult',
504
641
  create: _deepseek_ai_dsh_plugin_manager_pluginManager_setPluginEnabled_result$schema,
505
642
  },
506
- sourceLocation: {"file":"packages/boot/plugin-manager/src/index.ts","line":383,"column":3},
643
+ sourceLocation: {"file":"packages/boot/plugin-manager/src/index.ts","line":425,"column":3},
644
+ },
645
+ {
646
+ id: '@deepseek-ai/dsh-plugin-manager#pluginManager/setVersionExemption',
647
+ service: 'pluginManager',
648
+ namespace: 'pluginManager',
649
+ method: 'setVersionExemption',
650
+ invocation: { kind: 'direct' },
651
+ parameters: [
652
+ {
653
+ name: 'packageVersion',
654
+ wire: 'packageVersion',
655
+ source: 'json',
656
+ codec: {
657
+ mode: 'strict',
658
+ typeSymbol: '@deepseek-ai/dsh-plugin-manager#pluginManager/setVersionExemption:packageVersion',
659
+ create: _deepseek_ai_dsh_plugin_manager_pluginManager_setVersionExemption_parameter_0$schema,
660
+ },
661
+ },
662
+ {
663
+ name: 'runtimeVersion',
664
+ wire: 'runtimeVersion',
665
+ source: 'json',
666
+ codec: {
667
+ mode: 'strict',
668
+ typeSymbol: '@deepseek-ai/dsh-plugin-manager#pluginManager/setVersionExemption:runtimeVersion',
669
+ create: _deepseek_ai_dsh_plugin_manager_pluginManager_setVersionExemption_parameter_1$schema,
670
+ },
671
+ },
672
+ {
673
+ name: 'enabled',
674
+ wire: 'enabled',
675
+ source: 'json',
676
+ codec: {
677
+ mode: 'strict',
678
+ typeSymbol: '@deepseek-ai/dsh-plugin-manager#pluginManager/setVersionExemption:enabled',
679
+ create: _deepseek_ai_dsh_plugin_manager_pluginManager_setVersionExemption_parameter_2$schema,
680
+ },
681
+ },
682
+ {
683
+ name: 'acceptRisk',
684
+ wire: 'acceptRisk',
685
+ source: 'json',
686
+ acceptsUndefined: true,
687
+ codec: {
688
+ mode: 'strict',
689
+ typeSymbol: '@deepseek-ai/dsh-plugin-manager#pluginManager/setVersionExemption:acceptRisk',
690
+ create: _deepseek_ai_dsh_plugin_manager_pluginManager_setVersionExemption_parameter_3$schema,
691
+ },
692
+ },
693
+ ],
694
+ result: {
695
+ mode: 'strict',
696
+ typeSymbol: '@deepseek-ai/dsh-plugin-manager/types#ChangeResult',
697
+ create: _deepseek_ai_dsh_plugin_manager_pluginManager_setVersionExemption_result$schema,
698
+ },
699
+ sourceLocation: {"file":"packages/boot/plugin-manager/src/index.ts","line":245,"column":3},
507
700
  },
508
701
  {
509
702
  id: '@deepseek-ai/dsh-plugin-manager#pluginManager/waitForInstall',
@@ -528,7 +721,7 @@ export const TYPERT = {
528
721
  typeSymbol: '@deepseek-ai/dsh-plugin-manager#pluginManager/waitForInstall:result',
529
722
  create: _deepseek_ai_dsh_plugin_manager_pluginManager_waitForInstall_result$schema,
530
723
  },
531
- sourceLocation: {"file":"packages/boot/plugin-manager/src/index.ts","line":506,"column":9},
724
+ sourceLocation: {"file":"packages/boot/plugin-manager/src/index.ts","line":575,"column":9},
532
725
  },
533
726
  ],
534
727
  model: {
@@ -541,6 +734,20 @@ export const TYPERT = {
541
734
  "key": "pluginManager",
542
735
  "exportName": "PluginManager",
543
736
  "members": [
737
+ {
738
+ "kind": "method",
739
+ "name": "listVersionExemptions",
740
+ "signature": "@Remote listVersionExemptions(): { exemptions: Record<string, string[]>; warnings: string[] }",
741
+ "summary": "Read exact plugin-version exemptions saved in this profile.",
742
+ "jsDoc": "/** Read exact plugin-version exemptions saved in this profile.\n * @returns Accepted package-name@version keys with the runtime versions they may run on, and any\n * record or file problem the reader rejected, which the caller reports instead of failing.\n */"
743
+ },
744
+ {
745
+ "kind": "method",
746
+ "name": "setVersionExemption",
747
+ "signature": "@Remote setVersionExemption(packageVersion: string, runtimeVersion: string, enabled: boolean, acceptRisk?: boolean): Promise<ChangeResult>",
748
+ "summary": "Grant or revoke one exact plugin/runtime exemption and reevaluate live plugins.",
749
+ "jsDoc": "/** Grant or revoke one exact plugin/runtime exemption and reevaluate live plugins.\n * @param packageVersion Exact manifest package name followed by @ and its version; never an installation spec or alias.\n * @param runtimeVersion Exact current DSH version for grants; revocation may name a previous runtime.\n * @param enabled Whether to grant rather than revoke the exemption.\n * @param acceptRisk Required true for grants after the user accepts possible crashes and data loss.\n * @returns Saved and runtime outcomes. Startup-only profiles require restart.\n */"
750
+ },
544
751
  {
545
752
  "kind": "method",
546
753
  "name": "listPlugins",
@@ -588,7 +795,7 @@ export const TYPERT = {
588
795
  "name": "installBundle",
589
796
  "signature": "@Remote installBundle(spec: string, options?: InstallBundleOptions): Promise<ChangeResult>",
590
797
  "summary": "Install a package using the same pnpm implementation as dsh plugin.",
591
- "jsDoc": "/**\n * Install a package using the same pnpm implementation as dsh plugin. A run\n * that fails, is cancelled, or adds a package without a bundle patch restores\n * `package.json` and `pnpm-lock.yaml` as they were; downloaded files can stay.\n * @param spec One package spec, including local paths relative to the invocation directory.\n * @param options Whether to activate the installed bundle (defaults to true), the request id a cancellation names,\n * the pending build scripts to allow for this profile before pnpm runs, and the registry asked first.\n * @returns Package-manager diagnostics, the registries asked, and the observed activation outcome.\n */"
798
+ "jsDoc": "/**\n * Install a package using the same pnpm implementation as dsh plugin. GitHub\n * repositories get a connection check bounded by githubConnectionTimeoutMs before pnpm starts;\n * only network failures or timeouts stop installation, while pnpm owns authentication and transport fallback. A run\n * that fails, is cancelled, or adds a package without a bundle patch restores\n * `package.json` and `pnpm-lock.yaml` as they were; downloaded files can stay.\n * @param spec One package spec, including local paths relative to the invocation directory.\n * @param options Whether to activate the installed bundle (defaults to true), the request id a cancellation names,\n * the pending build scripts to allow for this profile before pnpm runs, and the registry asked first.\n * @returns Package-manager diagnostics, the registries asked, and the observed activation outcome.\n */"
592
799
  },
593
800
  {
594
801
  "kind": "method",
@@ -602,7 +809,7 @@ export const TYPERT = {
602
809
  "name": "cancelInstall",
603
810
  "signature": "@Remote async cancelInstall(requestId: PluginInstallRequestId): Promise<PluginInstallCancellation>",
604
811
  "summary": "Stop an installation this manager owns and wait until its files are back.",
605
- "jsDoc": "/** Stop an installation this manager owns and wait until its files are back.\n * @param requestId The id the installation was started with.\n * @returns `cancelled` once pnpm exited and the files are restored, `too-late` once the bundle is being\n * applied, `not-running` for any other id.\n */"
812
+ "jsDoc": "/** Stop an installation this manager owns and wait until its files are back.\n * @param requestId The id the installation was started with.\n * @returns `cancelled` once the Git check or pnpm exited and the files are restored, `too-late` once the bundle is being\n * applied, `not-running` for any other id.\n */"
606
813
  },
607
814
  {
608
815
  "kind": "method",
@@ -629,6 +836,10 @@ export const TYPERT = {
629
836
  "name": "ChangeResult",
630
837
  "declaration": "export interface ChangeResult {\n changed: boolean;\n application: 'applied' | 'restart-required' | 'overridden' | 'failed' | 'cancelled';\n stage: 'install' | 'enable' | 'remove';\n target: string;\n enabled?: boolean;\n error?: ManagementError;\n warnings?: string[];\n packageResult?: PackageResult;\n bundle?: string;\n pendingBuilds?: string[];\n approvedBuilds?: string[];\n registries?: Registry[];\n failedAt?: 'registry' | 'spec-host';\n}"
631
838
  },
839
+ {
840
+ "name": "IncompatiblePlugin",
841
+ "declaration": "export interface IncompatiblePlugin {\n name: string;\n version: string;\n runtimeVersion: string;\n peers: Record<string, string>;\n}"
842
+ },
632
843
  {
633
844
  "name": "InspectOptions",
634
845
  "declaration": "export interface InspectOptions {\n readonly registry?: Registry;\n}"
@@ -647,11 +858,11 @@ export const TYPERT = {
647
858
  },
648
859
  {
649
860
  "name": "ManagementError",
650
- "declaration": "export interface ManagementError {\n code: ReadOnlyReason | 'unknown-plugin' | 'invalid-spec' | 'ambiguous-install' | 'not-bundle' | 'not-removable' | 'stop-profile' | 'bundle-in-use' | 'stale-approval' | 'operation-error';\n diagnostic?: string;\n}"
861
+ "declaration": "export interface ManagementError {\n code: ReadOnlyReason | 'unknown-plugin' | 'invalid-spec' | 'ambiguous-install' | 'not-bundle' | 'not-removable' | 'stop-profile' | 'bundle-in-use' | 'stale-approval' | 'incompatible-version' | 'operation-error';\n diagnostic?: string;\n incompatible?: IncompatiblePlugin[];\n}"
651
862
  },
652
863
  {
653
864
  "name": "PackageResult",
654
- "declaration": "export interface PackageResult {\n exitCode: number;\n output: string;\n truncated: boolean;\n logPath: string;\n kind?: PluginInstallFailureKind;\n}"
865
+ "declaration": "export interface PackageResult {\n exitCode: number;\n output: string;\n truncated: boolean;\n logPath: string;\n kind?: PluginInstallFailureKind;\n timedOut?: boolean;\n incompatible?: IncompatiblePlugin[];\n}"
655
866
  },
656
867
  {
657
868
  "name": "PluginEntryId",
@@ -13,10 +13,12 @@ declare module '@deepseek-ai/dsh-typert-protocol' {
13
13
  installBundle: (spec: string, options?: InstallBundleOptions) => Promise<RemoteResult<ChangeResult>>
14
14
  listBundles: () => Promise<RemoteResult<BundleInfo[]>>
15
15
  listPlugins: () => Promise<RemoteResult<PluginInfo[]>>
16
+ listVersionExemptions: () => Promise<RemoteResult<{ exemptions: Record<string, string[]>; warnings: string[]; }>>
16
17
  registries: () => Promise<RemoteResult<PluginRegistries>>
17
18
  removeBundle: (name: string) => Promise<RemoteResult<ChangeResult>>
18
19
  setBundleEnabled: (name: string, enabled: boolean) => Promise<RemoteResult<ChangeResult>>
19
20
  setPluginEnabled: (id: PluginEntryId, enabled: boolean) => Promise<RemoteResult<ChangeResult>>
21
+ setVersionExemption: (packageVersion: string, runtimeVersion: string, enabled: boolean, acceptRisk?: boolean) => Promise<RemoteResult<ChangeResult>>
20
22
  waitForInstall: (requestId: PluginInstallRequestId) => Promise<RemoteResult<ChangeResult | null>>
21
23
  }
22
24
  interface TypertRemoteMap {
@@ -25,10 +27,12 @@ declare module '@deepseek-ai/dsh-typert-protocol' {
25
27
  'pluginManager/installBundle': (spec: string, options?: InstallBundleOptions) => Promise<RemoteResult<ChangeResult>>
26
28
  'pluginManager/listBundles': () => Promise<RemoteResult<BundleInfo[]>>
27
29
  'pluginManager/listPlugins': () => Promise<RemoteResult<PluginInfo[]>>
30
+ 'pluginManager/listVersionExemptions': () => Promise<RemoteResult<{ exemptions: Record<string, string[]>; warnings: string[]; }>>
28
31
  'pluginManager/registries': () => Promise<RemoteResult<PluginRegistries>>
29
32
  'pluginManager/removeBundle': (name: string) => Promise<RemoteResult<ChangeResult>>
30
33
  'pluginManager/setBundleEnabled': (name: string, enabled: boolean) => Promise<RemoteResult<ChangeResult>>
31
34
  'pluginManager/setPluginEnabled': (id: PluginEntryId, enabled: boolean) => Promise<RemoteResult<ChangeResult>>
35
+ 'pluginManager/setVersionExemption': (packageVersion: string, runtimeVersion: string, enabled: boolean, acceptRisk?: boolean) => Promise<RemoteResult<ChangeResult>>
32
36
  'pluginManager/waitForInstall': (requestId: PluginInstallRequestId) => Promise<RemoteResult<ChangeResult | null>>
33
37
  }
34
38
  interface TypertRemoteNamespaceMap {