@ryuhq/sdk 0.1.14 → 0.2.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.
Files changed (105) hide show
  1. package/README.md +69 -7
  2. package/dist/action.cjs +839 -0
  3. package/dist/action.d.cts +88 -0
  4. package/dist/action.d.ts +88 -0
  5. package/dist/action.js +8 -0
  6. package/dist/agent-plugin.cjs +46 -0
  7. package/dist/agent-plugin.d.cts +43 -33
  8. package/dist/agent-plugin.d.ts +43 -33
  9. package/dist/agent-plugin.js +1 -1
  10. package/dist/agent.cjs +16 -0
  11. package/dist/agent.d.cts +377 -1
  12. package/dist/agent.d.ts +377 -1
  13. package/dist/agent.js +4 -2
  14. package/dist/app-B0Z9Ew_R.d.cts +141 -0
  15. package/dist/app-C-BDJwfG.d.ts +141 -0
  16. package/dist/builder.cjs +1194 -0
  17. package/dist/builder.d.cts +217 -0
  18. package/dist/builder.d.ts +217 -0
  19. package/dist/builder.js +29 -0
  20. package/dist/chunk-4TPUZDTI.js +94 -0
  21. package/dist/chunk-BC3A7HMO.js +164 -0
  22. package/dist/chunk-FZSFZOIN.js +200 -0
  23. package/dist/{chunk-ODFEUVPW.js → chunk-HACAGK65.js} +1 -18
  24. package/dist/chunk-HLKJZAFK.js +361 -0
  25. package/dist/chunk-IKEDLLFY.js +19 -0
  26. package/dist/{chunk-G6FLVEC4.js → chunk-JX6DDRXV.js} +46 -0
  27. package/dist/{chunk-AO2KJRDD.js → chunk-NZKVOSC2.js} +192 -3
  28. package/dist/chunk-QYFUNJOH.js +83 -0
  29. package/dist/chunk-SN2QBJUF.js +148 -0
  30. package/dist/chunk-TLDPEGC7.js +21 -0
  31. package/dist/chunk-TXSHHZF2.js +0 -0
  32. package/dist/chunk-VLIRNNAE.js +154 -0
  33. package/dist/{chunk-MTUBUPIV.js → chunk-Z57QDDJR.js} +8 -227
  34. package/dist/chunk-ZTJWBRUL.js +282 -0
  35. package/dist/cli.cjs +347 -18
  36. package/dist/cli.js +128 -23
  37. package/dist/client-D5U6ssPc.d.cts +84 -0
  38. package/dist/client-D5U6ssPc.d.ts +84 -0
  39. package/dist/index.cjs +810 -86
  40. package/dist/index.d.cts +19 -634
  41. package/dist/index.d.ts +19 -634
  42. package/dist/index.js +82 -699
  43. package/dist/manifest.cjs +200 -4
  44. package/dist/manifest.d.cts +260 -5
  45. package/dist/manifest.d.ts +260 -5
  46. package/dist/manifest.js +15 -1
  47. package/dist/mcp/client.cjs +180 -0
  48. package/dist/mcp/client.d.cts +49 -0
  49. package/dist/mcp/client.d.ts +49 -0
  50. package/dist/mcp/client.js +10 -0
  51. package/dist/mcp/server.cjs +370 -0
  52. package/dist/mcp/server.d.cts +127 -0
  53. package/dist/mcp/server.d.ts +127 -0
  54. package/dist/mcp/server.js +9 -0
  55. package/dist/mcp.cjs +376 -0
  56. package/dist/mcp.d.cts +2 -0
  57. package/dist/mcp.d.ts +2 -0
  58. package/dist/mcp.js +17 -0
  59. package/dist/model.cjs +141 -0
  60. package/dist/model.d.cts +33 -0
  61. package/dist/model.d.ts +33 -0
  62. package/dist/model.js +18 -0
  63. package/dist/plugin.cjs +46 -0
  64. package/dist/plugin.d.cts +215 -0
  65. package/dist/plugin.d.ts +215 -0
  66. package/dist/plugin.js +8 -0
  67. package/dist/runnable.cjs +1438 -0
  68. package/dist/runnable.d.cts +274 -0
  69. package/dist/runnable.d.ts +274 -0
  70. package/dist/runnable.js +34 -0
  71. package/dist/{index-B6SkaAjJ.d.ts → tool-AjkdFvhE.d.ts} +88 -461
  72. package/dist/{index-BvAB5eMk.d.cts → tool-CgzW92O_.d.cts} +88 -461
  73. package/package.json +48 -3
  74. package/src/agent/loop.test.ts +4 -4
  75. package/src/agent/tools.ts +3 -3
  76. package/src/agent-plugin.test.ts +58 -0
  77. package/src/agent-plugin.ts +109 -36
  78. package/src/builder.ts +9 -0
  79. package/src/cli/dev.test.ts +26 -47
  80. package/src/cli/dev.ts +10 -2
  81. package/src/cli-security.test.ts +109 -0
  82. package/src/cli.ts +141 -25
  83. package/src/contracts-lockstep.test.ts +16 -2
  84. package/src/exports-lockstep.test.ts +93 -0
  85. package/src/generated/plugin-manifest.ts +322 -29
  86. package/src/index.ts +53 -0
  87. package/src/manifest-schema.test.ts +30 -1
  88. package/src/manifest.fixtures.test.ts +22 -6
  89. package/src/manifest.test.ts +165 -10
  90. package/src/manifest.ts +454 -188
  91. package/src/mcp/index.ts +18 -0
  92. package/src/mcp/server.ts +2 -1
  93. package/src/model/index.ts +22 -0
  94. package/src/plugin/ryu-plugin.ts +82 -0
  95. package/src/runnable/action.test.ts +128 -0
  96. package/src/runnable/action.ts +202 -0
  97. package/src/runnable/app.test.ts +2 -0
  98. package/src/runnable/app.ts +50 -14
  99. package/src/runnable/index.ts +20 -3
  100. package/src/runnable/primitives.test.ts +34 -0
  101. package/src/runnable/primitives.ts +116 -0
  102. package/src/runnable/runnable-types.ts +3 -0
  103. package/src/runnable/tool.ts +36 -5
  104. package/src/runnable/turn-hook.ts +8 -3
  105. package/src/slash-command.test.ts +69 -0
@@ -182,6 +182,23 @@ declare const WidgetContributionSchema: z.ZodObject<{
182
182
  default_display_mode: z.ZodDefault<z.ZodString>;
183
183
  }, z.core.$strip>;
184
184
  type WidgetContribution = z.infer<typeof WidgetContributionSchema>;
185
+ /** Metadata-only chat affordance. The host owns rendering and dispatch; the
186
+ * manifest carries identifiers and copy only. */
187
+ declare const ChatWidgetTemplateSchema: z.ZodObject<{
188
+ id: z.ZodString;
189
+ title: z.ZodString;
190
+ description: z.ZodOptional<z.ZodString>;
191
+ triggers: z.ZodDefault<z.ZodArray<z.ZodString>>;
192
+ examples: z.ZodDefault<z.ZodArray<z.ZodString>>;
193
+ backing: z.ZodObject<{
194
+ tool_id: z.ZodOptional<z.ZodString>;
195
+ view_id: z.ZodOptional<z.ZodString>;
196
+ }, z.core.$strip>;
197
+ display_mode: z.ZodString;
198
+ safe_action_ids: z.ZodDefault<z.ZodArray<z.ZodString>>;
199
+ availability: z.ZodDefault<z.ZodString>;
200
+ }, z.core.$strip>;
201
+ type ChatWidgetTemplate = z.infer<typeof ChatWidgetTemplateSchema>;
185
202
  /**
186
203
  * The `config` blob carried by a Ryu App's `kind:"tool"` runnable. Core's strict
187
204
  * `ToolConfig` (`apps/core/src/plugin_manifest/schema.rs`) requires `slug` and
@@ -200,10 +217,80 @@ declare const ToolAppConfigSchema: z.ZodObject<{
200
217
  invoked: z.ZodOptional<z.ZodString>;
201
218
  }, z.core.$strip>;
202
219
  type ToolAppConfig = z.infer<typeof ToolAppConfigSchema>;
220
+ /** One selectable value for a plugin/app slash-command argument. */
221
+ declare const SlashCommandOptionSchema: z.ZodObject<{
222
+ description: z.ZodOptional<z.ZodString>;
223
+ label: z.ZodString;
224
+ value: z.ZodString;
225
+ }, z.core.$loose>;
226
+ type SlashCommandOption = z.infer<typeof SlashCommandOptionSchema>;
227
+ /** A registered free-form option shown alongside an argument's choices. */
228
+ declare const SlashCommandCustomOptionSchema: z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodObject<{
229
+ description: z.ZodOptional<z.ZodString>;
230
+ label: z.ZodOptional<z.ZodString>;
231
+ }, z.core.$loose>]>;
232
+ type SlashCommandCustomOption = z.infer<typeof SlashCommandCustomOptionSchema>;
233
+ /** One sequential argument in a plugin/app slash command. */
234
+ declare const SlashCommandArgumentSchema: z.ZodObject<{
235
+ allow_custom: z.ZodOptional<z.ZodBoolean>;
236
+ custom: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodObject<{
237
+ description: z.ZodOptional<z.ZodString>;
238
+ label: z.ZodOptional<z.ZodString>;
239
+ }, z.core.$loose>]>>;
240
+ description: z.ZodOptional<z.ZodString>;
241
+ name: z.ZodString;
242
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
243
+ description: z.ZodOptional<z.ZodString>;
244
+ label: z.ZodString;
245
+ value: z.ZodString;
246
+ }, z.core.$loose>>>;
247
+ }, z.core.$loose>;
248
+ type SlashCommandArgument = z.infer<typeof SlashCommandArgumentSchema>;
249
+ /**
250
+ * A command registered by a plugin or Ryu App. `args` is the preferred key;
251
+ * `parameters` is accepted as a readable alias for hand-authored manifests.
252
+ * Each argument's options are plugin-owned, so the shell never needs a closed
253
+ * enum for app-specific values.
254
+ */
255
+ declare const SlashCommandContributionSchema: z.ZodObject<{
256
+ args: z.ZodOptional<z.ZodArray<z.ZodObject<{
257
+ allow_custom: z.ZodOptional<z.ZodBoolean>;
258
+ custom: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodObject<{
259
+ description: z.ZodOptional<z.ZodString>;
260
+ label: z.ZodOptional<z.ZodString>;
261
+ }, z.core.$loose>]>>;
262
+ description: z.ZodOptional<z.ZodString>;
263
+ name: z.ZodString;
264
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
265
+ description: z.ZodOptional<z.ZodString>;
266
+ label: z.ZodString;
267
+ value: z.ZodString;
268
+ }, z.core.$loose>>>;
269
+ }, z.core.$loose>>>;
270
+ body: z.ZodOptional<z.ZodString>;
271
+ command: z.ZodString;
272
+ description: z.ZodOptional<z.ZodString>;
273
+ id: z.ZodOptional<z.ZodString>;
274
+ parameters: z.ZodOptional<z.ZodArray<z.ZodObject<{
275
+ allow_custom: z.ZodOptional<z.ZodBoolean>;
276
+ custom: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodObject<{
277
+ description: z.ZodOptional<z.ZodString>;
278
+ label: z.ZodOptional<z.ZodString>;
279
+ }, z.core.$loose>]>>;
280
+ description: z.ZodOptional<z.ZodString>;
281
+ name: z.ZodString;
282
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
283
+ description: z.ZodOptional<z.ZodString>;
284
+ label: z.ZodString;
285
+ value: z.ZodString;
286
+ }, z.core.$loose>>>;
287
+ }, z.core.$loose>>>;
288
+ }, z.core.$loose>;
289
+ type SlashCommandContribution = z.infer<typeof SlashCommandContributionSchema>;
203
290
  /**
204
291
  * The `contributes` block. Mirrors `Contributes` in
205
292
  * `apps/core/src/plugin_manifest/mod.rs`. The declarative UI surfaces
206
- * (`composer_controls` / `settings_tabs` / `slash_commands`) are passed verbatim
293
+ * (`composer_controls` / `chat_features` / `settings_tabs`) are passed verbatim
207
294
  * to the desktop renderer, so they are typed loosely here (records).
208
295
  */
209
296
  declare const ContributesSchema: z.ZodObject<{
@@ -226,8 +313,42 @@ declare const ContributesSchema: z.ZodObject<{
226
313
  payload_example: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
227
314
  }, z.core.$strip>>>;
228
315
  composer_controls: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
316
+ chat_features: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
229
317
  settings_tabs: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
230
- slash_commands: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
318
+ slash_commands: z.ZodDefault<z.ZodArray<z.ZodObject<{
319
+ args: z.ZodOptional<z.ZodArray<z.ZodObject<{
320
+ allow_custom: z.ZodOptional<z.ZodBoolean>;
321
+ custom: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodObject<{
322
+ description: z.ZodOptional<z.ZodString>;
323
+ label: z.ZodOptional<z.ZodString>;
324
+ }, z.core.$loose>]>>;
325
+ description: z.ZodOptional<z.ZodString>;
326
+ name: z.ZodString;
327
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
328
+ description: z.ZodOptional<z.ZodString>;
329
+ label: z.ZodString;
330
+ value: z.ZodString;
331
+ }, z.core.$loose>>>;
332
+ }, z.core.$loose>>>;
333
+ body: z.ZodOptional<z.ZodString>;
334
+ command: z.ZodString;
335
+ description: z.ZodOptional<z.ZodString>;
336
+ id: z.ZodOptional<z.ZodString>;
337
+ parameters: z.ZodOptional<z.ZodArray<z.ZodObject<{
338
+ allow_custom: z.ZodOptional<z.ZodBoolean>;
339
+ custom: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodObject<{
340
+ description: z.ZodOptional<z.ZodString>;
341
+ label: z.ZodOptional<z.ZodString>;
342
+ }, z.core.$loose>]>>;
343
+ description: z.ZodOptional<z.ZodString>;
344
+ name: z.ZodString;
345
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
346
+ description: z.ZodOptional<z.ZodString>;
347
+ label: z.ZodString;
348
+ value: z.ZodString;
349
+ }, z.core.$loose>>>;
350
+ }, z.core.$loose>>>;
351
+ }, z.core.$loose>>>;
231
352
  widgets: z.ZodDefault<z.ZodArray<z.ZodObject<{
232
353
  tool_id: z.ZodString;
233
354
  uri: z.ZodString;
@@ -235,9 +356,24 @@ declare const ContributesSchema: z.ZodObject<{
235
356
  mime: z.ZodDefault<z.ZodString>;
236
357
  default_display_mode: z.ZodDefault<z.ZodString>;
237
358
  }, z.core.$strip>>>;
359
+ chat_widget_templates: z.ZodOptional<z.ZodArray<z.ZodObject<{
360
+ id: z.ZodString;
361
+ title: z.ZodString;
362
+ description: z.ZodOptional<z.ZodString>;
363
+ triggers: z.ZodDefault<z.ZodArray<z.ZodString>>;
364
+ examples: z.ZodDefault<z.ZodArray<z.ZodString>>;
365
+ backing: z.ZodObject<{
366
+ tool_id: z.ZodOptional<z.ZodString>;
367
+ view_id: z.ZodOptional<z.ZodString>;
368
+ }, z.core.$strip>;
369
+ display_mode: z.ZodString;
370
+ safe_action_ids: z.ZodDefault<z.ZodArray<z.ZodString>>;
371
+ availability: z.ZodDefault<z.ZodString>;
372
+ }, z.core.$strip>>>;
238
373
  sidebar_sections: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
239
374
  sidebar_buttons: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
240
375
  dock_panels: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
376
+ live_activities: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
241
377
  data_categories: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
242
378
  lsp_servers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
243
379
  pi_extensions: z.ZodDefault<z.ZodArray<z.ZodObject<{
@@ -250,6 +386,8 @@ declare const ContributesSchema: z.ZodObject<{
250
386
  file: z.ZodOptional<z.ZodString>;
251
387
  source: z.ZodOptional<z.ZodString>;
252
388
  }, z.core.$strip>>>;
389
+ message_actions: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
390
+ selection_actions: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
253
391
  }, z.core.$strip>;
254
392
  type Contributes = z.infer<typeof ContributesSchema>;
255
393
  /**
@@ -359,6 +497,33 @@ declare const EnginesReqSchema: z.ZodObject<{
359
497
  web: z.ZodOptional<z.ZodString>;
360
498
  }, z.core.$strip>;
361
499
  type EnginesReq = z.infer<typeof EnginesReqSchema>;
500
+ declare const McpServerAuthSchema: z.ZodObject<{
501
+ client_id: z.ZodOptional<z.ZodString>;
502
+ type: z.ZodLiteral<"oauth">;
503
+ }, z.core.$strict>;
504
+ declare const McpServerDeclSchema: z.ZodObject<{
505
+ args: z.ZodDefault<z.ZodArray<z.ZodString>>;
506
+ auth: z.ZodOptional<z.ZodObject<{
507
+ client_id: z.ZodOptional<z.ZodString>;
508
+ type: z.ZodLiteral<"oauth">;
509
+ }, z.core.$strict>>;
510
+ command: z.ZodOptional<z.ZodString>;
511
+ command_env: z.ZodOptional<z.ZodString>;
512
+ description: z.ZodOptional<z.ZodString>;
513
+ enabled: z.ZodDefault<z.ZodBoolean>;
514
+ env: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
515
+ headers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
516
+ type: z.ZodOptional<z.ZodEnum<{
517
+ stdio: "stdio";
518
+ http: "http";
519
+ "streamable-http": "streamable-http";
520
+ streamable_http: "streamable_http";
521
+ sse: "sse";
522
+ }>>;
523
+ url: z.ZodOptional<z.ZodURL>;
524
+ }, z.core.$strip>;
525
+ type McpServerAuth = z.infer<typeof McpServerAuthSchema>;
526
+ type McpServerDecl = z.infer<typeof McpServerDeclSchema>;
362
527
  /**
363
528
  * Full schema for a `manifest.json` Plugin manifest. Mirrors `PluginManifest` in
364
529
  * `apps/core/src/plugin_manifest/mod.rs`.
@@ -373,6 +538,7 @@ declare const PluginManifestSchema: z.ZodObject<{
373
538
  id: z.ZodString;
374
539
  name: z.ZodString;
375
540
  version: z.ZodString;
541
+ stability: z.ZodOptional<z.ZodUnknown>;
376
542
  ui_code_sha256: z.ZodOptional<z.ZodNullable<z.ZodString>>;
377
543
  runnables: z.ZodDefault<z.ZodArray<z.ZodObject<{
378
544
  id: z.ZodString;
@@ -387,6 +553,39 @@ declare const PluginManifestSchema: z.ZodObject<{
387
553
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
388
554
  }, z.core.$strip>>>;
389
555
  permission_grants: z.ZodDefault<z.ZodArray<z.ZodString>>;
556
+ permissions: z.ZodOptional<z.ZodObject<{
557
+ fs: z.ZodOptional<z.ZodObject<{
558
+ read: z.ZodDefault<z.ZodArray<z.ZodString>>;
559
+ write: z.ZodDefault<z.ZodArray<z.ZodString>>;
560
+ }, z.core.$strip>>;
561
+ child_process: z.ZodOptional<z.ZodBoolean>;
562
+ run: z.ZodDefault<z.ZodArray<z.ZodString>>;
563
+ network: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodArray<z.ZodString>]>>;
564
+ tool: z.ZodDefault<z.ZodArray<z.ZodString>>;
565
+ }, z.core.$strip>>;
566
+ permission_levels: z.ZodOptional<z.ZodUnknown>;
567
+ mcp_servers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
568
+ args: z.ZodDefault<z.ZodArray<z.ZodString>>;
569
+ auth: z.ZodOptional<z.ZodObject<{
570
+ client_id: z.ZodOptional<z.ZodString>;
571
+ type: z.ZodLiteral<"oauth">;
572
+ }, z.core.$strict>>;
573
+ command: z.ZodOptional<z.ZodString>;
574
+ command_env: z.ZodOptional<z.ZodString>;
575
+ description: z.ZodOptional<z.ZodString>;
576
+ enabled: z.ZodDefault<z.ZodBoolean>;
577
+ env: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
578
+ headers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
579
+ type: z.ZodOptional<z.ZodEnum<{
580
+ stdio: "stdio";
581
+ http: "http";
582
+ "streamable-http": "streamable-http";
583
+ streamable_http: "streamable_http";
584
+ sse: "sse";
585
+ }>>;
586
+ url: z.ZodOptional<z.ZodURL>;
587
+ }, z.core.$strip>>>;
588
+ sidecars: z.ZodOptional<z.ZodUnknown>;
390
589
  companion: z.ZodOptional<z.ZodObject<{
391
590
  label: z.ZodString;
392
591
  icon: z.ZodOptional<z.ZodString>;
@@ -413,8 +612,42 @@ declare const PluginManifestSchema: z.ZodObject<{
413
612
  payload_example: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
414
613
  }, z.core.$strip>>>;
415
614
  composer_controls: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
615
+ chat_features: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
416
616
  settings_tabs: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
417
- slash_commands: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
617
+ slash_commands: z.ZodDefault<z.ZodArray<z.ZodObject<{
618
+ args: z.ZodOptional<z.ZodArray<z.ZodObject<{
619
+ allow_custom: z.ZodOptional<z.ZodBoolean>;
620
+ custom: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodObject<{
621
+ description: z.ZodOptional<z.ZodString>;
622
+ label: z.ZodOptional<z.ZodString>;
623
+ }, z.core.$loose>]>>;
624
+ description: z.ZodOptional<z.ZodString>;
625
+ name: z.ZodString;
626
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
627
+ description: z.ZodOptional<z.ZodString>;
628
+ label: z.ZodString;
629
+ value: z.ZodString;
630
+ }, z.core.$loose>>>;
631
+ }, z.core.$loose>>>;
632
+ body: z.ZodOptional<z.ZodString>;
633
+ command: z.ZodString;
634
+ description: z.ZodOptional<z.ZodString>;
635
+ id: z.ZodOptional<z.ZodString>;
636
+ parameters: z.ZodOptional<z.ZodArray<z.ZodObject<{
637
+ allow_custom: z.ZodOptional<z.ZodBoolean>;
638
+ custom: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodObject<{
639
+ description: z.ZodOptional<z.ZodString>;
640
+ label: z.ZodOptional<z.ZodString>;
641
+ }, z.core.$loose>]>>;
642
+ description: z.ZodOptional<z.ZodString>;
643
+ name: z.ZodString;
644
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
645
+ description: z.ZodOptional<z.ZodString>;
646
+ label: z.ZodString;
647
+ value: z.ZodString;
648
+ }, z.core.$loose>>>;
649
+ }, z.core.$loose>>>;
650
+ }, z.core.$loose>>>;
418
651
  widgets: z.ZodDefault<z.ZodArray<z.ZodObject<{
419
652
  tool_id: z.ZodString;
420
653
  uri: z.ZodString;
@@ -422,9 +655,24 @@ declare const PluginManifestSchema: z.ZodObject<{
422
655
  mime: z.ZodDefault<z.ZodString>;
423
656
  default_display_mode: z.ZodDefault<z.ZodString>;
424
657
  }, z.core.$strip>>>;
658
+ chat_widget_templates: z.ZodOptional<z.ZodArray<z.ZodObject<{
659
+ id: z.ZodString;
660
+ title: z.ZodString;
661
+ description: z.ZodOptional<z.ZodString>;
662
+ triggers: z.ZodDefault<z.ZodArray<z.ZodString>>;
663
+ examples: z.ZodDefault<z.ZodArray<z.ZodString>>;
664
+ backing: z.ZodObject<{
665
+ tool_id: z.ZodOptional<z.ZodString>;
666
+ view_id: z.ZodOptional<z.ZodString>;
667
+ }, z.core.$strip>;
668
+ display_mode: z.ZodString;
669
+ safe_action_ids: z.ZodDefault<z.ZodArray<z.ZodString>>;
670
+ availability: z.ZodDefault<z.ZodString>;
671
+ }, z.core.$strip>>>;
425
672
  sidebar_sections: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
426
673
  sidebar_buttons: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
427
674
  dock_panels: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
675
+ live_activities: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
428
676
  data_categories: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
429
677
  lsp_servers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
430
678
  pi_extensions: z.ZodDefault<z.ZodArray<z.ZodObject<{
@@ -437,6 +685,8 @@ declare const PluginManifestSchema: z.ZodObject<{
437
685
  file: z.ZodOptional<z.ZodString>;
438
686
  source: z.ZodOptional<z.ZodString>;
439
687
  }, z.core.$strip>>>;
688
+ message_actions: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
689
+ selection_actions: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
440
690
  }, z.core.$strip>>;
441
691
  requires: z.ZodOptional<z.ZodObject<{
442
692
  apps: z.ZodDefault<z.ZodArray<z.ZodObject<{
@@ -459,6 +709,7 @@ declare const PluginManifestSchema: z.ZodObject<{
459
709
  web: "web";
460
710
  cli: "cli";
461
711
  }>>>;
712
+ surfaces: z.ZodOptional<z.ZodUnknown>;
462
713
  engines: z.ZodOptional<z.ZodObject<{
463
714
  cli: z.ZodOptional<z.ZodString>;
464
715
  desktop: z.ZodOptional<z.ZodString>;
@@ -492,12 +743,16 @@ declare const PluginManifestSchema: z.ZodObject<{
492
743
  email: z.ZodOptional<z.ZodString>;
493
744
  url: z.ZodOptional<z.ZodString>;
494
745
  }, z.core.$strip>]>>;
746
+ repository: z.ZodOptional<z.ZodString>;
747
+ external: z.ZodOptional<z.ZodBoolean>;
495
748
  homepage: z.ZodOptional<z.ZodString>;
496
749
  keywords: z.ZodOptional<z.ZodArray<z.ZodString>>;
750
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
497
751
  category: z.ZodOptional<z.ZodString>;
498
752
  license: z.ZodOptional<z.ZodString>;
499
753
  iconUrl: z.ZodOptional<z.ZodString>;
500
754
  icon: z.ZodOptional<z.ZodString>;
755
+ banner: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
501
756
  iconDither: z.ZodOptional<z.ZodObject<{
502
757
  from: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
503
758
  to: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
@@ -524,7 +779,7 @@ declare const PluginManifestSchema: z.ZodObject<{
524
779
  actionLabel: z.ZodOptional<z.ZodString>;
525
780
  actionUrl: z.ZodOptional<z.ZodString>;
526
781
  }, z.core.$strip>>]>>;
527
- }, z.core.$strip>;
782
+ }, z.core.$loose>;
528
783
  type PluginManifest = z.infer<typeof PluginManifestSchema>;
529
784
  /**
530
785
  * Validate a plugin id with Core's strict reverse-domain, path-traversal-safe
@@ -543,4 +798,4 @@ declare function validateManifestStrict(manifestJson: string): string;
543
798
  */
544
799
  declare function coreManifestJsonSchema(): unknown;
545
800
 
546
- export { type AppDependency, AppDependencySchema, type CapabilityReq, CapabilityReqSchema, type CompanionSurface, CompanionSurfaceSchema, type Contributes, ContributesSchema, type EnginesReq, EnginesReqSchema, type HookEventContribution, HookEventContributionSchema, type OutputStyleContribution, OutputStyleContributionSchema, type PiExtensionContribution, PiExtensionContributionSchema, type PluginManifest, PluginManifestSchema, type Requires, RequiresSchema, type RunnableKind, RunnableKindSchema, type RunnableMeta, RunnableMetaSchema, type SetupStep, SetupStepSchema, type Surface, SurfaceSchema, type ToolAppConfig, ToolAppConfigSchema, type TurnHookContribution, TurnHookContributionSchema, type WidgetContribution, WidgetContributionSchema, coreManifestJsonSchema, labelImpersonatesSystemChrome, validateManifestStrict, validatePluginId };
801
+ export { type AppDependency, AppDependencySchema, type CapabilityReq, CapabilityReqSchema, type ChatWidgetTemplate, ChatWidgetTemplateSchema, type CompanionSurface, CompanionSurfaceSchema, type Contributes, ContributesSchema, type EnginesReq, EnginesReqSchema, type HookEventContribution, HookEventContributionSchema, type McpServerAuth, McpServerAuthSchema, type McpServerDecl, McpServerDeclSchema, type OutputStyleContribution, OutputStyleContributionSchema, type PiExtensionContribution, PiExtensionContributionSchema, type PluginManifest, PluginManifestSchema, type Requires, RequiresSchema, type RunnableKind, RunnableKindSchema, type RunnableMeta, RunnableMetaSchema, type SetupStep, SetupStepSchema, type SlashCommandArgument, SlashCommandArgumentSchema, type SlashCommandContribution, SlashCommandContributionSchema, type SlashCommandCustomOption, SlashCommandCustomOptionSchema, type SlashCommandOption, SlashCommandOptionSchema, type Surface, SurfaceSchema, type ToolAppConfig, ToolAppConfigSchema, type TurnHookContribution, TurnHookContributionSchema, type WidgetContribution, WidgetContributionSchema, coreManifestJsonSchema, labelImpersonatesSystemChrome, validateManifestStrict, validatePluginId };