@ai-sdk/harness-opencode 1.0.101 → 1.0.103

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/dist/index.d.ts CHANGED
@@ -1,6 +1,8 @@
1
- import * as _ai_sdk_provider_utils from '@ai-sdk/provider-utils';
2
1
  import * as _ai_sdk_harness from '@ai-sdk/harness';
3
2
  import { HarnessV1Authentication, HarnessV1CredentialForwarding, HarnessV1PortEndpoint, HarnessV1, HarnessV1BuiltinTool } from '@ai-sdk/harness';
3
+ import * as _ai_sdk_provider from '@ai-sdk/provider';
4
+ import * as _ai_sdk_provider_utils from '@ai-sdk/provider-utils';
5
+ import { Experimental_SandboxSession } from '@ai-sdk/provider-utils';
4
6
 
5
7
  type OpenCodeAuthenticationMode = HarnessV1Authentication<'anthropic' | 'openai'>;
6
8
 
@@ -48,6 +50,346 @@ type OpenCodeHarnessSettings = {
48
50
  readonly mintBridgeToken?: (sandboxId: string) => string;
49
51
  };
50
52
  declare const OPENCODE_BUILTIN_TOOLS: {
53
+ readonly askUserQuestions: {
54
+ readonly nativeName: "question";
55
+ readonly toolUseKind: "readonly";
56
+ readonly title?: string;
57
+ readonly providerOptions?: _ai_sdk_provider_utils.ProviderOptions;
58
+ readonly metadata?: _ai_sdk_provider.JSONObject;
59
+ readonly inputSchema: _ai_sdk_provider_utils.FlexibleSchema<{
60
+ allowPartialAnswers: boolean;
61
+ questions: {
62
+ id: string;
63
+ question: string;
64
+ header?: string | undefined;
65
+ options?: {
66
+ id: string;
67
+ label: string;
68
+ description?: string | undefined;
69
+ preview?: string | undefined;
70
+ }[] | undefined;
71
+ allowMultiple?: boolean | undefined;
72
+ allowFreeForm?: boolean | {
73
+ secret: boolean;
74
+ } | undefined;
75
+ }[];
76
+ }>;
77
+ readonly contextSchema?: _ai_sdk_provider_utils.FlexibleSchema<any> | undefined;
78
+ readonly needsApproval?: boolean | _ai_sdk_provider_utils.ToolNeedsApprovalFunction<{
79
+ allowPartialAnswers: boolean;
80
+ questions: {
81
+ id: string;
82
+ question: string;
83
+ header?: string | undefined;
84
+ options?: {
85
+ id: string;
86
+ label: string;
87
+ description?: string | undefined;
88
+ preview?: string | undefined;
89
+ }[] | undefined;
90
+ allowMultiple?: boolean | undefined;
91
+ allowFreeForm?: boolean | {
92
+ secret: boolean;
93
+ } | undefined;
94
+ }[];
95
+ }, any> | undefined;
96
+ readonly onInputStart?: ((options: _ai_sdk_provider_utils.ToolExecutionOptions<any>) => void | PromiseLike<void>) | undefined;
97
+ readonly onInputDelta?: ((options: {
98
+ inputTextDelta: string;
99
+ } & _ai_sdk_provider_utils.ToolExecutionOptions<any>) => void | PromiseLike<void>) | undefined;
100
+ readonly onInputAvailable?: ((options: {
101
+ input: {
102
+ allowPartialAnswers: boolean;
103
+ questions: {
104
+ id: string;
105
+ question: string;
106
+ header?: string | undefined;
107
+ options?: {
108
+ id: string;
109
+ label: string;
110
+ description?: string | undefined;
111
+ preview?: string | undefined;
112
+ }[] | undefined;
113
+ allowMultiple?: boolean | undefined;
114
+ allowFreeForm?: boolean | {
115
+ secret: boolean;
116
+ } | undefined;
117
+ }[];
118
+ };
119
+ } & _ai_sdk_provider_utils.ToolExecutionOptions<any>) => void | PromiseLike<void>) | undefined;
120
+ readonly toModelOutput?: ((options: {
121
+ toolCallId: string;
122
+ input: {
123
+ allowPartialAnswers: boolean;
124
+ questions: {
125
+ id: string;
126
+ question: string;
127
+ header?: string | undefined;
128
+ options?: {
129
+ id: string;
130
+ label: string;
131
+ description?: string | undefined;
132
+ preview?: string | undefined;
133
+ }[] | undefined;
134
+ allowMultiple?: boolean | undefined;
135
+ allowFreeForm?: boolean | {
136
+ secret: boolean;
137
+ } | undefined;
138
+ }[];
139
+ };
140
+ output: NoInfer<{
141
+ action: "answered";
142
+ answers: Record<string, {
143
+ optionIds: string[];
144
+ freeform?: string | undefined;
145
+ }>;
146
+ } | {
147
+ action: "partially-answered";
148
+ answers: Record<string, {
149
+ optionIds: string[];
150
+ freeform?: string | undefined;
151
+ }>;
152
+ } | {
153
+ action: "declined";
154
+ } | {
155
+ action: "cancelled";
156
+ }>;
157
+ }) => _ai_sdk_provider_utils.ToolResultOutput | PromiseLike<_ai_sdk_provider_utils.ToolResultOutput>) | undefined;
158
+ readonly outputSchema?: _ai_sdk_provider_utils.FlexibleSchema<{
159
+ action: "answered";
160
+ answers: Record<string, {
161
+ optionIds: string[];
162
+ freeform?: string | undefined;
163
+ }>;
164
+ } | {
165
+ action: "partially-answered";
166
+ answers: Record<string, {
167
+ optionIds: string[];
168
+ freeform?: string | undefined;
169
+ }>;
170
+ } | {
171
+ action: "declined";
172
+ } | {
173
+ action: "cancelled";
174
+ }> | undefined;
175
+ readonly execute: _ai_sdk_provider_utils.ToolExecuteFunction<{
176
+ allowPartialAnswers: boolean;
177
+ questions: {
178
+ id: string;
179
+ question: string;
180
+ header?: string | undefined;
181
+ options?: {
182
+ id: string;
183
+ label: string;
184
+ description?: string | undefined;
185
+ preview?: string | undefined;
186
+ }[] | undefined;
187
+ allowMultiple?: boolean | undefined;
188
+ allowFreeForm?: boolean | {
189
+ secret: boolean;
190
+ } | undefined;
191
+ }[];
192
+ }, {
193
+ action: "answered";
194
+ answers: Record<string, {
195
+ optionIds: string[];
196
+ freeform?: string | undefined;
197
+ }>;
198
+ } | {
199
+ action: "partially-answered";
200
+ answers: Record<string, {
201
+ optionIds: string[];
202
+ freeform?: string | undefined;
203
+ }>;
204
+ } | {
205
+ action: "declined";
206
+ } | {
207
+ action: "cancelled";
208
+ }, any>;
209
+ readonly description?: string | ((options: {
210
+ context: any;
211
+ experimental_sandbox?: Experimental_SandboxSession;
212
+ }) => string) | undefined;
213
+ readonly strict?: boolean;
214
+ readonly inputExamples?: {
215
+ input: NoInfer<{
216
+ allowPartialAnswers: boolean;
217
+ questions: {
218
+ id: string;
219
+ question: string;
220
+ header?: string | undefined;
221
+ options?: {
222
+ id: string;
223
+ label: string;
224
+ description?: string | undefined;
225
+ preview?: string | undefined;
226
+ }[] | undefined;
227
+ allowMultiple?: boolean | undefined;
228
+ allowFreeForm?: boolean | {
229
+ secret: boolean;
230
+ } | undefined;
231
+ }[];
232
+ }>;
233
+ }[] | undefined;
234
+ readonly id?: never;
235
+ readonly isProviderExecuted?: never;
236
+ readonly args?: never;
237
+ readonly supportsDeferredResults?: never;
238
+ readonly type?: undefined | "function";
239
+ } | {
240
+ readonly nativeName: "question";
241
+ readonly toolUseKind: "readonly";
242
+ readonly title?: string;
243
+ readonly providerOptions?: _ai_sdk_provider_utils.ProviderOptions;
244
+ readonly metadata?: _ai_sdk_provider.JSONObject;
245
+ readonly inputSchema: _ai_sdk_provider_utils.FlexibleSchema<{
246
+ allowPartialAnswers: boolean;
247
+ questions: {
248
+ id: string;
249
+ question: string;
250
+ header?: string | undefined;
251
+ options?: {
252
+ id: string;
253
+ label: string;
254
+ description?: string | undefined;
255
+ preview?: string | undefined;
256
+ }[] | undefined;
257
+ allowMultiple?: boolean | undefined;
258
+ allowFreeForm?: boolean | {
259
+ secret: boolean;
260
+ } | undefined;
261
+ }[];
262
+ }>;
263
+ readonly contextSchema?: _ai_sdk_provider_utils.FlexibleSchema<any> | undefined;
264
+ readonly needsApproval?: boolean | _ai_sdk_provider_utils.ToolNeedsApprovalFunction<{
265
+ allowPartialAnswers: boolean;
266
+ questions: {
267
+ id: string;
268
+ question: string;
269
+ header?: string | undefined;
270
+ options?: {
271
+ id: string;
272
+ label: string;
273
+ description?: string | undefined;
274
+ preview?: string | undefined;
275
+ }[] | undefined;
276
+ allowMultiple?: boolean | undefined;
277
+ allowFreeForm?: boolean | {
278
+ secret: boolean;
279
+ } | undefined;
280
+ }[];
281
+ }, any> | undefined;
282
+ readonly onInputStart?: ((options: _ai_sdk_provider_utils.ToolExecutionOptions<any>) => void | PromiseLike<void>) | undefined;
283
+ readonly onInputDelta?: ((options: {
284
+ inputTextDelta: string;
285
+ } & _ai_sdk_provider_utils.ToolExecutionOptions<any>) => void | PromiseLike<void>) | undefined;
286
+ readonly onInputAvailable?: ((options: {
287
+ input: {
288
+ allowPartialAnswers: boolean;
289
+ questions: {
290
+ id: string;
291
+ question: string;
292
+ header?: string | undefined;
293
+ options?: {
294
+ id: string;
295
+ label: string;
296
+ description?: string | undefined;
297
+ preview?: string | undefined;
298
+ }[] | undefined;
299
+ allowMultiple?: boolean | undefined;
300
+ allowFreeForm?: boolean | {
301
+ secret: boolean;
302
+ } | undefined;
303
+ }[];
304
+ };
305
+ } & _ai_sdk_provider_utils.ToolExecutionOptions<any>) => void | PromiseLike<void>) | undefined;
306
+ readonly toModelOutput?: ((options: {
307
+ toolCallId: string;
308
+ input: {
309
+ allowPartialAnswers: boolean;
310
+ questions: {
311
+ id: string;
312
+ question: string;
313
+ header?: string | undefined;
314
+ options?: {
315
+ id: string;
316
+ label: string;
317
+ description?: string | undefined;
318
+ preview?: string | undefined;
319
+ }[] | undefined;
320
+ allowMultiple?: boolean | undefined;
321
+ allowFreeForm?: boolean | {
322
+ secret: boolean;
323
+ } | undefined;
324
+ }[];
325
+ };
326
+ output: NoInfer<{
327
+ action: "answered";
328
+ answers: Record<string, {
329
+ optionIds: string[];
330
+ freeform?: string | undefined;
331
+ }>;
332
+ } | {
333
+ action: "partially-answered";
334
+ answers: Record<string, {
335
+ optionIds: string[];
336
+ freeform?: string | undefined;
337
+ }>;
338
+ } | {
339
+ action: "declined";
340
+ } | {
341
+ action: "cancelled";
342
+ }>;
343
+ }) => _ai_sdk_provider_utils.ToolResultOutput | PromiseLike<_ai_sdk_provider_utils.ToolResultOutput>) | undefined;
344
+ readonly outputSchema: _ai_sdk_provider_utils.FlexibleSchema<{
345
+ action: "answered";
346
+ answers: Record<string, {
347
+ optionIds: string[];
348
+ freeform?: string | undefined;
349
+ }>;
350
+ } | {
351
+ action: "partially-answered";
352
+ answers: Record<string, {
353
+ optionIds: string[];
354
+ freeform?: string | undefined;
355
+ }>;
356
+ } | {
357
+ action: "declined";
358
+ } | {
359
+ action: "cancelled";
360
+ }>;
361
+ readonly execute?: never;
362
+ readonly description?: string | ((options: {
363
+ context: any;
364
+ experimental_sandbox?: Experimental_SandboxSession;
365
+ }) => string) | undefined;
366
+ readonly strict?: boolean;
367
+ readonly inputExamples?: {
368
+ input: NoInfer<{
369
+ allowPartialAnswers: boolean;
370
+ questions: {
371
+ id: string;
372
+ question: string;
373
+ header?: string | undefined;
374
+ options?: {
375
+ id: string;
376
+ label: string;
377
+ description?: string | undefined;
378
+ preview?: string | undefined;
379
+ }[] | undefined;
380
+ allowMultiple?: boolean | undefined;
381
+ allowFreeForm?: boolean | {
382
+ secret: boolean;
383
+ } | undefined;
384
+ }[];
385
+ }>;
386
+ }[] | undefined;
387
+ readonly id?: never;
388
+ readonly isProviderExecuted?: never;
389
+ readonly args?: never;
390
+ readonly supportsDeferredResults?: never;
391
+ readonly type?: undefined | "function";
392
+ };
51
393
  readonly read: HarnessV1BuiltinTool<{
52
394
  [x: string]: unknown;
53
395
  file_path?: string | undefined;
@@ -119,6 +461,346 @@ declare const VERSION: string;
119
461
  * `createOpenCode()`.
120
462
  */
121
463
  declare const openCode: _ai_sdk_harness.HarnessV1<{
464
+ readonly askUserQuestions: {
465
+ readonly nativeName: "question";
466
+ readonly toolUseKind: "readonly";
467
+ readonly title?: string;
468
+ readonly providerOptions?: _ai_sdk_provider_utils.ProviderOptions;
469
+ readonly metadata?: _ai_sdk_provider.JSONObject;
470
+ readonly inputSchema: _ai_sdk_provider_utils.FlexibleSchema<{
471
+ allowPartialAnswers: boolean;
472
+ questions: {
473
+ id: string;
474
+ question: string;
475
+ header?: string | undefined;
476
+ options?: {
477
+ id: string;
478
+ label: string;
479
+ description?: string | undefined;
480
+ preview?: string | undefined;
481
+ }[] | undefined;
482
+ allowMultiple?: boolean | undefined;
483
+ allowFreeForm?: boolean | {
484
+ secret: boolean;
485
+ } | undefined;
486
+ }[];
487
+ }>;
488
+ readonly contextSchema?: _ai_sdk_provider_utils.FlexibleSchema<any> | undefined;
489
+ readonly needsApproval?: boolean | _ai_sdk_provider_utils.ToolNeedsApprovalFunction<{
490
+ allowPartialAnswers: boolean;
491
+ questions: {
492
+ id: string;
493
+ question: string;
494
+ header?: string | undefined;
495
+ options?: {
496
+ id: string;
497
+ label: string;
498
+ description?: string | undefined;
499
+ preview?: string | undefined;
500
+ }[] | undefined;
501
+ allowMultiple?: boolean | undefined;
502
+ allowFreeForm?: boolean | {
503
+ secret: boolean;
504
+ } | undefined;
505
+ }[];
506
+ }, any> | undefined;
507
+ readonly onInputStart?: ((options: _ai_sdk_provider_utils.ToolExecutionOptions<any>) => void | PromiseLike<void>) | undefined;
508
+ readonly onInputDelta?: ((options: {
509
+ inputTextDelta: string;
510
+ } & _ai_sdk_provider_utils.ToolExecutionOptions<any>) => void | PromiseLike<void>) | undefined;
511
+ readonly onInputAvailable?: ((options: {
512
+ input: {
513
+ allowPartialAnswers: boolean;
514
+ questions: {
515
+ id: string;
516
+ question: string;
517
+ header?: string | undefined;
518
+ options?: {
519
+ id: string;
520
+ label: string;
521
+ description?: string | undefined;
522
+ preview?: string | undefined;
523
+ }[] | undefined;
524
+ allowMultiple?: boolean | undefined;
525
+ allowFreeForm?: boolean | {
526
+ secret: boolean;
527
+ } | undefined;
528
+ }[];
529
+ };
530
+ } & _ai_sdk_provider_utils.ToolExecutionOptions<any>) => void | PromiseLike<void>) | undefined;
531
+ readonly toModelOutput?: ((options: {
532
+ toolCallId: string;
533
+ input: {
534
+ allowPartialAnswers: boolean;
535
+ questions: {
536
+ id: string;
537
+ question: string;
538
+ header?: string | undefined;
539
+ options?: {
540
+ id: string;
541
+ label: string;
542
+ description?: string | undefined;
543
+ preview?: string | undefined;
544
+ }[] | undefined;
545
+ allowMultiple?: boolean | undefined;
546
+ allowFreeForm?: boolean | {
547
+ secret: boolean;
548
+ } | undefined;
549
+ }[];
550
+ };
551
+ output: NoInfer<{
552
+ action: "answered";
553
+ answers: Record<string, {
554
+ optionIds: string[];
555
+ freeform?: string | undefined;
556
+ }>;
557
+ } | {
558
+ action: "partially-answered";
559
+ answers: Record<string, {
560
+ optionIds: string[];
561
+ freeform?: string | undefined;
562
+ }>;
563
+ } | {
564
+ action: "declined";
565
+ } | {
566
+ action: "cancelled";
567
+ }>;
568
+ }) => _ai_sdk_provider_utils.ToolResultOutput | PromiseLike<_ai_sdk_provider_utils.ToolResultOutput>) | undefined;
569
+ readonly outputSchema?: _ai_sdk_provider_utils.FlexibleSchema<{
570
+ action: "answered";
571
+ answers: Record<string, {
572
+ optionIds: string[];
573
+ freeform?: string | undefined;
574
+ }>;
575
+ } | {
576
+ action: "partially-answered";
577
+ answers: Record<string, {
578
+ optionIds: string[];
579
+ freeform?: string | undefined;
580
+ }>;
581
+ } | {
582
+ action: "declined";
583
+ } | {
584
+ action: "cancelled";
585
+ }> | undefined;
586
+ readonly execute: _ai_sdk_provider_utils.ToolExecuteFunction<{
587
+ allowPartialAnswers: boolean;
588
+ questions: {
589
+ id: string;
590
+ question: string;
591
+ header?: string | undefined;
592
+ options?: {
593
+ id: string;
594
+ label: string;
595
+ description?: string | undefined;
596
+ preview?: string | undefined;
597
+ }[] | undefined;
598
+ allowMultiple?: boolean | undefined;
599
+ allowFreeForm?: boolean | {
600
+ secret: boolean;
601
+ } | undefined;
602
+ }[];
603
+ }, {
604
+ action: "answered";
605
+ answers: Record<string, {
606
+ optionIds: string[];
607
+ freeform?: string | undefined;
608
+ }>;
609
+ } | {
610
+ action: "partially-answered";
611
+ answers: Record<string, {
612
+ optionIds: string[];
613
+ freeform?: string | undefined;
614
+ }>;
615
+ } | {
616
+ action: "declined";
617
+ } | {
618
+ action: "cancelled";
619
+ }, any>;
620
+ readonly description?: string | ((options: {
621
+ context: any;
622
+ experimental_sandbox?: _ai_sdk_provider_utils.Experimental_SandboxSession;
623
+ }) => string) | undefined;
624
+ readonly strict?: boolean;
625
+ readonly inputExamples?: {
626
+ input: NoInfer<{
627
+ allowPartialAnswers: boolean;
628
+ questions: {
629
+ id: string;
630
+ question: string;
631
+ header?: string | undefined;
632
+ options?: {
633
+ id: string;
634
+ label: string;
635
+ description?: string | undefined;
636
+ preview?: string | undefined;
637
+ }[] | undefined;
638
+ allowMultiple?: boolean | undefined;
639
+ allowFreeForm?: boolean | {
640
+ secret: boolean;
641
+ } | undefined;
642
+ }[];
643
+ }>;
644
+ }[] | undefined;
645
+ readonly id?: never;
646
+ readonly isProviderExecuted?: never;
647
+ readonly args?: never;
648
+ readonly supportsDeferredResults?: never;
649
+ readonly type?: undefined | "function";
650
+ } | {
651
+ readonly nativeName: "question";
652
+ readonly toolUseKind: "readonly";
653
+ readonly title?: string;
654
+ readonly providerOptions?: _ai_sdk_provider_utils.ProviderOptions;
655
+ readonly metadata?: _ai_sdk_provider.JSONObject;
656
+ readonly inputSchema: _ai_sdk_provider_utils.FlexibleSchema<{
657
+ allowPartialAnswers: boolean;
658
+ questions: {
659
+ id: string;
660
+ question: string;
661
+ header?: string | undefined;
662
+ options?: {
663
+ id: string;
664
+ label: string;
665
+ description?: string | undefined;
666
+ preview?: string | undefined;
667
+ }[] | undefined;
668
+ allowMultiple?: boolean | undefined;
669
+ allowFreeForm?: boolean | {
670
+ secret: boolean;
671
+ } | undefined;
672
+ }[];
673
+ }>;
674
+ readonly contextSchema?: _ai_sdk_provider_utils.FlexibleSchema<any> | undefined;
675
+ readonly needsApproval?: boolean | _ai_sdk_provider_utils.ToolNeedsApprovalFunction<{
676
+ allowPartialAnswers: boolean;
677
+ questions: {
678
+ id: string;
679
+ question: string;
680
+ header?: string | undefined;
681
+ options?: {
682
+ id: string;
683
+ label: string;
684
+ description?: string | undefined;
685
+ preview?: string | undefined;
686
+ }[] | undefined;
687
+ allowMultiple?: boolean | undefined;
688
+ allowFreeForm?: boolean | {
689
+ secret: boolean;
690
+ } | undefined;
691
+ }[];
692
+ }, any> | undefined;
693
+ readonly onInputStart?: ((options: _ai_sdk_provider_utils.ToolExecutionOptions<any>) => void | PromiseLike<void>) | undefined;
694
+ readonly onInputDelta?: ((options: {
695
+ inputTextDelta: string;
696
+ } & _ai_sdk_provider_utils.ToolExecutionOptions<any>) => void | PromiseLike<void>) | undefined;
697
+ readonly onInputAvailable?: ((options: {
698
+ input: {
699
+ allowPartialAnswers: boolean;
700
+ questions: {
701
+ id: string;
702
+ question: string;
703
+ header?: string | undefined;
704
+ options?: {
705
+ id: string;
706
+ label: string;
707
+ description?: string | undefined;
708
+ preview?: string | undefined;
709
+ }[] | undefined;
710
+ allowMultiple?: boolean | undefined;
711
+ allowFreeForm?: boolean | {
712
+ secret: boolean;
713
+ } | undefined;
714
+ }[];
715
+ };
716
+ } & _ai_sdk_provider_utils.ToolExecutionOptions<any>) => void | PromiseLike<void>) | undefined;
717
+ readonly toModelOutput?: ((options: {
718
+ toolCallId: string;
719
+ input: {
720
+ allowPartialAnswers: boolean;
721
+ questions: {
722
+ id: string;
723
+ question: string;
724
+ header?: string | undefined;
725
+ options?: {
726
+ id: string;
727
+ label: string;
728
+ description?: string | undefined;
729
+ preview?: string | undefined;
730
+ }[] | undefined;
731
+ allowMultiple?: boolean | undefined;
732
+ allowFreeForm?: boolean | {
733
+ secret: boolean;
734
+ } | undefined;
735
+ }[];
736
+ };
737
+ output: NoInfer<{
738
+ action: "answered";
739
+ answers: Record<string, {
740
+ optionIds: string[];
741
+ freeform?: string | undefined;
742
+ }>;
743
+ } | {
744
+ action: "partially-answered";
745
+ answers: Record<string, {
746
+ optionIds: string[];
747
+ freeform?: string | undefined;
748
+ }>;
749
+ } | {
750
+ action: "declined";
751
+ } | {
752
+ action: "cancelled";
753
+ }>;
754
+ }) => _ai_sdk_provider_utils.ToolResultOutput | PromiseLike<_ai_sdk_provider_utils.ToolResultOutput>) | undefined;
755
+ readonly outputSchema: _ai_sdk_provider_utils.FlexibleSchema<{
756
+ action: "answered";
757
+ answers: Record<string, {
758
+ optionIds: string[];
759
+ freeform?: string | undefined;
760
+ }>;
761
+ } | {
762
+ action: "partially-answered";
763
+ answers: Record<string, {
764
+ optionIds: string[];
765
+ freeform?: string | undefined;
766
+ }>;
767
+ } | {
768
+ action: "declined";
769
+ } | {
770
+ action: "cancelled";
771
+ }>;
772
+ readonly execute?: never;
773
+ readonly description?: string | ((options: {
774
+ context: any;
775
+ experimental_sandbox?: _ai_sdk_provider_utils.Experimental_SandboxSession;
776
+ }) => string) | undefined;
777
+ readonly strict?: boolean;
778
+ readonly inputExamples?: {
779
+ input: NoInfer<{
780
+ allowPartialAnswers: boolean;
781
+ questions: {
782
+ id: string;
783
+ question: string;
784
+ header?: string | undefined;
785
+ options?: {
786
+ id: string;
787
+ label: string;
788
+ description?: string | undefined;
789
+ preview?: string | undefined;
790
+ }[] | undefined;
791
+ allowMultiple?: boolean | undefined;
792
+ allowFreeForm?: boolean | {
793
+ secret: boolean;
794
+ } | undefined;
795
+ }[];
796
+ }>;
797
+ }[] | undefined;
798
+ readonly id?: never;
799
+ readonly isProviderExecuted?: never;
800
+ readonly args?: never;
801
+ readonly supportsDeferredResults?: never;
802
+ readonly type?: undefined | "function";
803
+ };
122
804
  readonly read: _ai_sdk_harness.HarnessV1BuiltinTool<{
123
805
  [x: string]: unknown;
124
806
  file_path?: string | undefined;