auto-model-router 0.4.9 → 0.4.10

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.
@@ -0,0 +1,815 @@
1
+ {
2
+ "harness": "cline-cli",
3
+ "capturedAtMs": 1788826902802,
4
+ "headers": {
5
+ "content-type": "application/json",
6
+ "user-agent": "ai-sdk/openai-compatible/3.0.37 ai-sdk/provider-utils/5.0.30 runtime/bun/1.3.13"
7
+ },
8
+ "body": {
9
+ "model": "auto",
10
+ "messages": [
11
+ {
12
+ "role": "system",
13
+ "content": "You are Cline, an AI coding agent. Your primary goal is to assist users with various coding tasks by leveraging your knowledge and the tools at your disposal. Given the user's prompt, you should use the tools available to you to answer user's question.\n\nAlways gather all the necessary context before starting to work on a task. For example, if you are generating a unit test or new code, make sure y\u00e2\u20ac\u00a6[4290 chars]"
14
+ },
15
+ {
16
+ "role": "user",
17
+ "content": "Reply with the single word ok"
18
+ }
19
+ ],
20
+ "tools": [
21
+ {
22
+ "type": "function",
23
+ "function": {
24
+ "name": "read_files",
25
+ "description": "Read the content of text or image files at the provided absolute paths, or return only an inclusive one-based line range when start_line/end_line are provided on the same file entry as its path. When you already know multiple files you need, read them together in one call, and call this tool in the same response as other independent tool calls. Each read returns at most 2000 lines / ~47k character\u00e2\u20ac\u00a6[634 chars]",
26
+ "parameters": {
27
+ "type": "object",
28
+ "properties": {
29
+ "files": {
30
+ "type": "array",
31
+ "items": {
32
+ "type": "object",
33
+ "properties": {
34
+ "path": {
35
+ "type": "string",
36
+ "description": "The absolute path of a text file to read content from"
37
+ },
38
+ "start_line": {
39
+ "description": "Optional one-based starting line number to read from; use null or omit for the start of the file",
40
+ "anyOf": [
41
+ {
42
+ "type": "integer",
43
+ "exclusiveMinimum": 0,
44
+ "maximum": 9007199254740991
45
+ },
46
+ {
47
+ "type": "null"
48
+ }
49
+ ]
50
+ },
51
+ "end_line": {
52
+ "description": "Optional one-based ending line number to read through; use null or omit to read to the end of the file or the read cap, whichever comes first",
53
+ "anyOf": [
54
+ {
55
+ "type": "integer",
56
+ "exclusiveMinimum": 0,
57
+ "maximum": 9007199254740991
58
+ },
59
+ {
60
+ "type": "null"
61
+ }
62
+ ]
63
+ }
64
+ },
65
+ "required": [
66
+ "path"
67
+ ],
68
+ "additionalProperties": false,
69
+ "description": "A file read request with optional inclusive one-based line bounds. Always include path; start_line/end_line must be on the same object as the path they apply to, never in a separate array element"
70
+ },
71
+ "description": "Array of file read requests; each element is one file and must include path. Omit start_line/end_line or set them to null to read from the start; provide integers on the same object as the path to return only that inclusive one-based line range \u00e2\u20ac\u201d never emit a range as its own array element. Reads are capped, so page through long files with start_line/end_line. Prefer this tool over running termina\u00e2\u20ac\u00a6[469 chars]"
72
+ }
73
+ },
74
+ "required": [
75
+ "files"
76
+ ],
77
+ "additionalProperties": false
78
+ }
79
+ }
80
+ },
81
+ {
82
+ "type": "function",
83
+ "function": {
84
+ "name": "search_codebase",
85
+ "description": "Perform regex pattern searches across the codebase. Supports multiple parallel searches. When several search patterns could be useful and do not depend on each other, run them together in one call, and call this tool in the same response as other independent tool calls. Use for finding code patterns, function definitions, class names, imports, etc. Output beyond ~48k characters per query is middle\u00e2\u20ac\u00a6[444 chars]",
86
+ "parameters": {
87
+ "type": "object",
88
+ "properties": {
89
+ "queries": {
90
+ "type": "array",
91
+ "items": {
92
+ "type": "string"
93
+ },
94
+ "description": "Array of regex search queries to execute"
95
+ }
96
+ },
97
+ "required": [
98
+ "queries"
99
+ ],
100
+ "additionalProperties": false
101
+ }
102
+ }
103
+ },
104
+ {
105
+ "type": "function",
106
+ "function": {
107
+ "name": "run_commands",
108
+ "description": "Run non-interactive shell commands from the root of the workspace in Windows environment. Use for listing files, checking git status, running builds, executing tests, etc. Commands must be non-interactive. Commands that require follow-up input like pagers should be skipped or used with supported flags/env (e.g. git --no-pager, --non-interactive) to bypass the interaction steps. Output beyond ~48k \u00e2\u20ac\u00a6[810 chars]",
109
+ "parameters": {
110
+ "type": "object",
111
+ "properties": {
112
+ "commands": {
113
+ "type": "array",
114
+ "items": {
115
+ "type": "string",
116
+ "description": "The non-interactive shell command to execute - MUST keep input short and concise (within 12000 characters) to avoid timeouts."
117
+ },
118
+ "description": "Array of complete shell command strings to execute."
119
+ }
120
+ },
121
+ "required": [
122
+ "commands"
123
+ ],
124
+ "additionalProperties": false
125
+ }
126
+ }
127
+ },
128
+ {
129
+ "type": "function",
130
+ "function": {
131
+ "name": "fetch_web_content",
132
+ "description": "Fetch content from URLs and analyze them using the provided prompts. Use for retrieving documentation, API references, or any web content. Each request includes a URL and a prompt describing what information to extract. Fetch independent URLs together in one call, and call this tool in the same response as other independent tool calls.",
133
+ "parameters": {
134
+ "type": "object",
135
+ "properties": {
136
+ "requests": {
137
+ "type": "array",
138
+ "items": {
139
+ "type": "object",
140
+ "properties": {
141
+ "url": {
142
+ "type": "string",
143
+ "description": "The URL to fetch"
144
+ },
145
+ "prompt": {
146
+ "type": "string",
147
+ "minLength": 2,
148
+ "description": "Analysis prompt for the fetched content"
149
+ }
150
+ },
151
+ "required": [
152
+ "url",
153
+ "prompt"
154
+ ],
155
+ "additionalProperties": false
156
+ },
157
+ "description": "Array of the URLs for the web fetch requests"
158
+ }
159
+ },
160
+ "required": [
161
+ "requests"
162
+ ],
163
+ "additionalProperties": false
164
+ }
165
+ }
166
+ },
167
+ {
168
+ "type": "function",
169
+ "function": {
170
+ "name": "editor",
171
+ "description": "An editor for controlled filesystem edits on the text file at the provided path. Provide `insert_line` to insert `new_text` at a specific line number. Otherwise, the tool replaces `old_text` with `new_text`, or creates the file with `new_text` if file does not exist. Use this tool for making small, precise edits to existing files or creating new files over shell commands. If several edits to diffe\u00e2\u20ac\u00a6[551 chars]",
172
+ "parameters": {
173
+ "type": "object",
174
+ "properties": {
175
+ "path": {
176
+ "type": "string",
177
+ "minLength": 1,
178
+ "description": "The absolute path for the action to be performed on"
179
+ },
180
+ "old_text": {
181
+ "description": "Exact text to replace (must match exactly once). Omit this when creating a missing file or inserting via insert_line. Keep this at or below 6000 characters when possible; larger payloads should be split across multiple tool calls to avoid timeouts.",
182
+ "anyOf": [
183
+ {
184
+ "type": "string"
185
+ },
186
+ {
187
+ "type": "null"
188
+ }
189
+ ]
190
+ },
191
+ "new_text": {
192
+ "type": "string",
193
+ "description": "The new content to write when creating a missing file, the replacement text for edits, or the inserted text when insert_line is provided. Keep this at or below 6000 characters when possible; for large edits, use multiple calls with small chunks of old_text and new_text to iteratively edit the file."
194
+ },
195
+ "insert_line": {
196
+ "description": "Optional positive one-based boundary line. When provided, the tool inserts new_text before that line instead of performing a replacement edit; use line_count + 1 to append at EOF.",
197
+ "anyOf": [
198
+ {
199
+ "type": "integer",
200
+ "minimum": -9007199254740991,
201
+ "maximum": 9007199254740991
202
+ },
203
+ {
204
+ "type": "null"
205
+ }
206
+ ]
207
+ }
208
+ },
209
+ "required": [
210
+ "path",
211
+ "new_text"
212
+ ],
213
+ "additionalProperties": false,
214
+ "description": "Edit a text file by replacing old_text with new_text, create the file with new_text if it does not exist, or insert new_text at insert_line when insert_line is provided. Prefer using this tool for file edits over shell commands. IMPORTANT: large edits can time out, so use small chunks and multiple calls when possible."
215
+ }
216
+ }
217
+ },
218
+ {
219
+ "type": "function",
220
+ "function": {
221
+ "name": "ask_question",
222
+ "description": "Ask user a question for clarifying or gathering information needed to complete the task. For example, ask the user clarifying questions about a key implementation decision. You should only ask one question. Provide an array of 2-5 options for the user to choose from. Never include an option to toggle to Act mode.",
223
+ "parameters": {
224
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
225
+ "type": "object",
226
+ "properties": {
227
+ "question": {
228
+ "type": "string",
229
+ "minLength": 1,
230
+ "description": "The single question to ask the user. E.g. \"How can I help you?\""
231
+ },
232
+ "options": {
233
+ "minItems": 2,
234
+ "maxItems": 5,
235
+ "type": "array",
236
+ "items": {
237
+ "type": "string",
238
+ "minLength": 1
239
+ },
240
+ "description": "Array of 2-5 user-selectable answer options for the single question"
241
+ }
242
+ },
243
+ "required": [
244
+ "question",
245
+ "options"
246
+ ],
247
+ "additionalProperties": false
248
+ }
249
+ }
250
+ },
251
+ {
252
+ "type": "function",
253
+ "function": {
254
+ "name": "spawn_agent",
255
+ "description": "Spawn a sub-agent with a custom system prompt for specialized tasks. Use when delegating work that benefits from focused expertise.",
256
+ "parameters": {
257
+ "type": "object",
258
+ "properties": {
259
+ "systemPrompt": {
260
+ "type": "string",
261
+ "description": "System prompt defining the sub-agent's behavior"
262
+ },
263
+ "task": {
264
+ "type": "string",
265
+ "description": "Task for the sub-agent to complete"
266
+ }
267
+ },
268
+ "required": [
269
+ "systemPrompt",
270
+ "task"
271
+ ],
272
+ "additionalProperties": false
273
+ }
274
+ }
275
+ },
276
+ {
277
+ "type": "function",
278
+ "function": {
279
+ "name": "team_spawn_teammate",
280
+ "description": "Spawn a teammate with a required agentId and rolePrompt.",
281
+ "parameters": {
282
+ "type": "object",
283
+ "properties": {
284
+ "agentId": {
285
+ "type": "string",
286
+ "minLength": 1,
287
+ "description": "Teammate identifier"
288
+ },
289
+ "rolePrompt": {
290
+ "type": "string",
291
+ "minLength": 1,
292
+ "description": "System prompt describing teammate role"
293
+ }
294
+ },
295
+ "required": [
296
+ "agentId",
297
+ "rolePrompt"
298
+ ],
299
+ "additionalProperties": false
300
+ }
301
+ }
302
+ },
303
+ {
304
+ "type": "function",
305
+ "function": {
306
+ "name": "team_shutdown_teammate",
307
+ "description": "Shutdown a teammate by agentId.",
308
+ "parameters": {
309
+ "type": "object",
310
+ "properties": {
311
+ "agentId": {
312
+ "type": "string",
313
+ "minLength": 1,
314
+ "description": "Teammate identifier"
315
+ },
316
+ "reason": {
317
+ "description": "Optional shutdown reason",
318
+ "type": "string",
319
+ "minLength": 1
320
+ }
321
+ },
322
+ "required": [
323
+ "agentId"
324
+ ],
325
+ "additionalProperties": false
326
+ }
327
+ }
328
+ },
329
+ {
330
+ "type": "function",
331
+ "function": {
332
+ "name": "team_status",
333
+ "description": "Return a snapshot of team members, task counts, mailbox, and mission log stats.",
334
+ "parameters": {
335
+ "type": "object",
336
+ "properties": {},
337
+ "additionalProperties": false
338
+ }
339
+ }
340
+ },
341
+ {
342
+ "type": "function",
343
+ "function": {
344
+ "name": "team_task",
345
+ "description": "Manage shared team tasks with action-specific payloads. create requires title and description, with optional dependsOn and assignee. list accepts optional status, assignee. claim requires taskId. complete requires taskId and summary. block requires taskId and reason. Do not include fields from other actions.",
346
+ "parameters": {
347
+ "type": "object",
348
+ "properties": {
349
+ "action": {
350
+ "type": "string",
351
+ "enum": [
352
+ "create",
353
+ "list",
354
+ "claim",
355
+ "complete",
356
+ "block"
357
+ ]
358
+ },
359
+ "title": {
360
+ "description": "Task title",
361
+ "type": "string",
362
+ "minLength": 1
363
+ },
364
+ "description": {
365
+ "description": "Task details",
366
+ "type": "string",
367
+ "minLength": 1
368
+ },
369
+ "dependsOn": {
370
+ "description": "Array of dependency task IDs",
371
+ "type": "array",
372
+ "items": {
373
+ "type": "string",
374
+ "description": "Dependency task ID"
375
+ }
376
+ },
377
+ "assignee": {
378
+ "description": "Optional assignee",
379
+ "type": "string",
380
+ "minLength": 1
381
+ },
382
+ "status": {
383
+ "description": "Optional task status filter",
384
+ "type": "string",
385
+ "enum": [
386
+ "pending",
387
+ "in_progress",
388
+ "blocked",
389
+ "completed"
390
+ ]
391
+ },
392
+ "taskId": {
393
+ "description": "Task ID",
394
+ "type": "string"
395
+ },
396
+ "summary": {
397
+ "description": "Completion summary",
398
+ "type": "string",
399
+ "minLength": 1
400
+ },
401
+ "reason": {
402
+ "description": "Blocking reason",
403
+ "type": "string",
404
+ "minLength": 1
405
+ }
406
+ },
407
+ "required": [
408
+ "action"
409
+ ],
410
+ "additionalProperties": false
411
+ }
412
+ }
413
+ },
414
+ {
415
+ "type": "function",
416
+ "function": {
417
+ "name": "team_run_task",
418
+ "description": "Route a delegated task to a teammate. Choose sync (wait) or async (run in background).",
419
+ "parameters": {
420
+ "type": "object",
421
+ "properties": {
422
+ "agentId": {
423
+ "type": "string",
424
+ "description": "Teammate agent ID"
425
+ },
426
+ "task": {
427
+ "type": "string",
428
+ "minLength": 1,
429
+ "description": "Task instructions for the teammate"
430
+ },
431
+ "taskId": {
432
+ "description": "Optional shared task list ID",
433
+ "type": "string"
434
+ },
435
+ "runMode": {
436
+ "description": "Execution mode: 'sync' blocks until the teammate finishes and returns the result (default if omitted); 'async' queues the run and returns a runId immediately \u00e2\u20ac\u201d use team_await_runs to collect results later.",
437
+ "type": "string",
438
+ "enum": [
439
+ "sync",
440
+ "async"
441
+ ]
442
+ },
443
+ "continueConversation": {
444
+ "description": "If true, continue the teammate conversation; otherwise start fresh",
445
+ "type": "boolean"
446
+ }
447
+ },
448
+ "required": [
449
+ "agentId",
450
+ "task"
451
+ ],
452
+ "additionalProperties": false
453
+ }
454
+ }
455
+ },
456
+ {
457
+ "type": "function",
458
+ "function": {
459
+ "name": "team_cancel_run",
460
+ "description": "Cancel one async teammate run.",
461
+ "parameters": {
462
+ "type": "object",
463
+ "properties": {
464
+ "runId": {
465
+ "type": "string",
466
+ "minLength": 1,
467
+ "description": "Run ID"
468
+ },
469
+ "reason": {
470
+ "description": "Optional cancellation reason",
471
+ "type": "string",
472
+ "minLength": 1
473
+ }
474
+ },
475
+ "required": [
476
+ "runId"
477
+ ],
478
+ "additionalProperties": false
479
+ }
480
+ }
481
+ },
482
+ {
483
+ "type": "function",
484
+ "function": {
485
+ "name": "team_list_runs",
486
+ "description": "List teammate runs started with team_run_task in async mode, including live activity/progress fields when available.",
487
+ "parameters": {
488
+ "type": "object",
489
+ "properties": {
490
+ "status": {
491
+ "description": "Optional run status filter. Omit to include all statuses.",
492
+ "type": "string",
493
+ "enum": [
494
+ "queued",
495
+ "running",
496
+ "completed",
497
+ "failed",
498
+ "cancelled",
499
+ "interrupted"
500
+ ]
501
+ },
502
+ "agentId": {
503
+ "description": "Optional teammate ID filter. Omit to include all teammates.",
504
+ "type": "string",
505
+ "minLength": 1
506
+ },
507
+ "includeCompleted": {
508
+ "description": "Include completed/failed runs (default true)",
509
+ "type": "boolean"
510
+ }
511
+ },
512
+ "additionalProperties": false
513
+ }
514
+ }
515
+ },
516
+ {
517
+ "type": "function",
518
+ "function": {
519
+ "name": "team_await_runs",
520
+ "description": "Wait for async teammate runs. Provide runId to wait for one run, or omit it to wait for all active async runs. Uses a long timeout for legitimate teammate work.",
521
+ "parameters": {
522
+ "type": "object",
523
+ "properties": {
524
+ "runId": {
525
+ "description": "Optional async run ID to await. Omit to wait for all active async runs.",
526
+ "type": "string",
527
+ "minLength": 1
528
+ }
529
+ },
530
+ "additionalProperties": false
531
+ }
532
+ }
533
+ },
534
+ {
535
+ "type": "function",
536
+ "function": {
537
+ "name": "team_send_message",
538
+ "description": "Send a mailbox message to a specific teammate.",
539
+ "parameters": {
540
+ "type": "object",
541
+ "properties": {
542
+ "toAgentId": {
543
+ "type": "string",
544
+ "minLength": 1,
545
+ "description": "Recipient agent ID"
546
+ },
547
+ "subject": {
548
+ "type": "string",
549
+ "minLength": 1,
550
+ "description": "Message subject"
551
+ },
552
+ "body": {
553
+ "type": "string",
554
+ "minLength": 1,
555
+ "description": "Message body"
556
+ },
557
+ "taskId": {
558
+ "description": "Optional task ID context",
559
+ "type": "string",
560
+ "minLength": 1
561
+ }
562
+ },
563
+ "required": [
564
+ "toAgentId",
565
+ "subject",
566
+ "body"
567
+ ],
568
+ "additionalProperties": false
569
+ }
570
+ }
571
+ },
572
+ {
573
+ "type": "function",
574
+ "function": {
575
+ "name": "team_broadcast",
576
+ "description": "Broadcast a message to all teammates.",
577
+ "parameters": {
578
+ "type": "object",
579
+ "properties": {
580
+ "subject": {
581
+ "type": "string",
582
+ "minLength": 1,
583
+ "description": "Message subject"
584
+ },
585
+ "body": {
586
+ "type": "string",
587
+ "minLength": 1,
588
+ "description": "Message body"
589
+ },
590
+ "taskId": {
591
+ "description": "Optional task ID context",
592
+ "type": "string",
593
+ "minLength": 1
594
+ }
595
+ },
596
+ "required": [
597
+ "subject",
598
+ "body"
599
+ ],
600
+ "additionalProperties": false
601
+ }
602
+ }
603
+ },
604
+ {
605
+ "type": "function",
606
+ "function": {
607
+ "name": "team_read_mailbox",
608
+ "description": "Read the current agent mailbox.",
609
+ "parameters": {
610
+ "type": "object",
611
+ "properties": {
612
+ "unreadOnly": {
613
+ "description": "Only unread messages for read action (default true)",
614
+ "type": "boolean"
615
+ }
616
+ },
617
+ "additionalProperties": false
618
+ }
619
+ }
620
+ },
621
+ {
622
+ "type": "function",
623
+ "function": {
624
+ "name": "team_mission_log",
625
+ "description": "Append a mission log update for your team.",
626
+ "parameters": {
627
+ "type": "object",
628
+ "properties": {
629
+ "kind": {
630
+ "type": "string",
631
+ "enum": [
632
+ "progress",
633
+ "handoff",
634
+ "blocked",
635
+ "decision",
636
+ "done",
637
+ "error"
638
+ ]
639
+ },
640
+ "summary": {
641
+ "type": "string",
642
+ "minLength": 1,
643
+ "description": "Update summary"
644
+ },
645
+ "taskId": {
646
+ "description": "Optional task ID context",
647
+ "type": "string",
648
+ "minLength": 1
649
+ },
650
+ "evidence": {
651
+ "description": "Optional evidence links/snippets",
652
+ "type": "array",
653
+ "items": {
654
+ "type": "string",
655
+ "minLength": 1
656
+ }
657
+ },
658
+ "nextAction": {
659
+ "description": "Planned next step",
660
+ "type": "string",
661
+ "minLength": 1
662
+ }
663
+ },
664
+ "required": [
665
+ "kind",
666
+ "summary"
667
+ ],
668
+ "additionalProperties": false
669
+ }
670
+ }
671
+ },
672
+ {
673
+ "type": "function",
674
+ "function": {
675
+ "name": "team_cleanup",
676
+ "description": "Clean up the team runtime. Fails if teammates are still running.",
677
+ "parameters": {
678
+ "type": "object",
679
+ "properties": {},
680
+ "additionalProperties": false
681
+ }
682
+ }
683
+ },
684
+ {
685
+ "type": "function",
686
+ "function": {
687
+ "name": "team_create_outcome",
688
+ "description": "Create a converged team outcome.",
689
+ "parameters": {
690
+ "type": "object",
691
+ "properties": {
692
+ "title": {
693
+ "type": "string",
694
+ "description": "Outcome title"
695
+ },
696
+ "requiredSections": {
697
+ "default": [
698
+ "current_state",
699
+ "boundary_analysis",
700
+ "interface_proposal"
701
+ ],
702
+ "description": "Required sections for finalization gate (defaults to current_state,boundary_analysis,interface_proposal)",
703
+ "type": "array",
704
+ "items": {
705
+ "type": "string"
706
+ }
707
+ }
708
+ },
709
+ "required": [
710
+ "title",
711
+ "requiredSections"
712
+ ],
713
+ "additionalProperties": false
714
+ }
715
+ }
716
+ },
717
+ {
718
+ "type": "function",
719
+ "function": {
720
+ "name": "team_attach_outcome_fragment",
721
+ "description": "Attach a fragment to an outcome section.",
722
+ "parameters": {
723
+ "type": "object",
724
+ "properties": {
725
+ "outcomeId": {
726
+ "type": "string",
727
+ "description": "Outcome ID"
728
+ },
729
+ "section": {
730
+ "type": "string",
731
+ "description": "Section name"
732
+ },
733
+ "sourceRunId": {
734
+ "description": "Optional source run ID",
735
+ "type": "string"
736
+ },
737
+ "content": {
738
+ "type": "string",
739
+ "description": "Section fragment content"
740
+ }
741
+ },
742
+ "required": [
743
+ "outcomeId",
744
+ "section",
745
+ "content"
746
+ ],
747
+ "additionalProperties": false
748
+ }
749
+ }
750
+ },
751
+ {
752
+ "type": "function",
753
+ "function": {
754
+ "name": "team_review_outcome_fragment",
755
+ "description": "Review one outcome fragment.",
756
+ "parameters": {
757
+ "type": "object",
758
+ "properties": {
759
+ "fragmentId": {
760
+ "type": "string",
761
+ "description": "Fragment ID"
762
+ },
763
+ "approved": {
764
+ "type": "boolean",
765
+ "description": "Review decision"
766
+ }
767
+ },
768
+ "required": [
769
+ "fragmentId",
770
+ "approved"
771
+ ],
772
+ "additionalProperties": false
773
+ }
774
+ }
775
+ },
776
+ {
777
+ "type": "function",
778
+ "function": {
779
+ "name": "team_finalize_outcome",
780
+ "description": "Finalize one outcome.",
781
+ "parameters": {
782
+ "type": "object",
783
+ "properties": {
784
+ "outcomeId": {
785
+ "type": "string",
786
+ "description": "Outcome ID"
787
+ }
788
+ },
789
+ "required": [
790
+ "outcomeId"
791
+ ],
792
+ "additionalProperties": false
793
+ }
794
+ }
795
+ },
796
+ {
797
+ "type": "function",
798
+ "function": {
799
+ "name": "team_list_outcomes",
800
+ "description": "List team outcomes.",
801
+ "parameters": {
802
+ "type": "object",
803
+ "properties": {},
804
+ "additionalProperties": false
805
+ }
806
+ }
807
+ }
808
+ ],
809
+ "tool_choice": "auto",
810
+ "stream": true,
811
+ "stream_options": {
812
+ "include_usage": true
813
+ }
814
+ }
815
+ }