swarm_sdk 2.6.2 → 2.7.1

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 (33) hide show
  1. checksums.yaml +4 -4
  2. data/lib/swarm_sdk/agent/builder.rb +33 -1
  3. data/lib/swarm_sdk/agent/chat.rb +179 -35
  4. data/lib/swarm_sdk/agent/definition.rb +7 -1
  5. data/lib/swarm_sdk/agent/llm_instrumentation_middleware.rb +48 -8
  6. data/lib/swarm_sdk/agent/tool_registry.rb +189 -0
  7. data/lib/swarm_sdk/builders/base_builder.rb +4 -0
  8. data/lib/swarm_sdk/config.rb +2 -1
  9. data/lib/swarm_sdk/configuration/translator.rb +2 -0
  10. data/lib/swarm_sdk/models.json +296 -238
  11. data/lib/swarm_sdk/swarm/agent_initializer.rb +51 -3
  12. data/lib/swarm_sdk/swarm/all_agents_builder.rb +9 -0
  13. data/lib/swarm_sdk/swarm/mcp_configurator.rb +45 -7
  14. data/lib/swarm_sdk/swarm/tool_configurator.rb +25 -5
  15. data/lib/swarm_sdk/tools/base.rb +63 -0
  16. data/lib/swarm_sdk/tools/bash.rb +1 -1
  17. data/lib/swarm_sdk/tools/clock.rb +3 -1
  18. data/lib/swarm_sdk/tools/delegate.rb +14 -3
  19. data/lib/swarm_sdk/tools/edit.rb +1 -1
  20. data/lib/swarm_sdk/tools/glob.rb +1 -1
  21. data/lib/swarm_sdk/tools/grep.rb +1 -1
  22. data/lib/swarm_sdk/tools/mcp_tool_stub.rb +137 -0
  23. data/lib/swarm_sdk/tools/multi_edit.rb +1 -1
  24. data/lib/swarm_sdk/tools/read.rb +1 -1
  25. data/lib/swarm_sdk/tools/scratchpad/scratchpad_list.rb +1 -1
  26. data/lib/swarm_sdk/tools/scratchpad/scratchpad_read.rb +1 -1
  27. data/lib/swarm_sdk/tools/scratchpad/scratchpad_write.rb +1 -1
  28. data/lib/swarm_sdk/tools/think.rb +3 -1
  29. data/lib/swarm_sdk/tools/todo_write.rb +3 -1
  30. data/lib/swarm_sdk/tools/web_fetch.rb +1 -1
  31. data/lib/swarm_sdk/tools/write.rb +1 -1
  32. data/lib/swarm_sdk/version.rb +1 -1
  33. metadata +4 -1
@@ -61,68 +61,6 @@
61
61
  },
62
62
  "metadata": {}
63
63
  },
64
- {
65
- "id": "claude-opus-4-1",
66
- "name": "Claude Opus 4.1",
67
- "provider": "anthropic",
68
- "family": "claude-opus-4-1",
69
- "created_at": null,
70
- "context_window": 200000,
71
- "max_output_tokens": 32000,
72
- "knowledge_cutoff": null,
73
- "modalities": {
74
- "input": [
75
- "image",
76
- "text"
77
- ],
78
- "output": [
79
- "text"
80
- ]
81
- },
82
- "capabilities": [
83
- "function_calling"
84
- ],
85
- "pricing": {
86
- "text_tokens": {
87
- "standard": {
88
- "input_per_million": 15.0,
89
- "output_per_million": 75.0
90
- }
91
- }
92
- },
93
- "metadata": {}
94
- },
95
- {
96
- "id": "claude-opus-4-1-20250805",
97
- "name": "Claude Opus 4.1",
98
- "provider": "anthropic",
99
- "family": "claude-opus-4-1",
100
- "created_at": null,
101
- "context_window": 200000,
102
- "max_output_tokens": 32000,
103
- "knowledge_cutoff": null,
104
- "modalities": {
105
- "input": [
106
- "image",
107
- "text"
108
- ],
109
- "output": [
110
- "text"
111
- ]
112
- },
113
- "capabilities": [
114
- "function_calling"
115
- ],
116
- "pricing": {
117
- "text_tokens": {
118
- "standard": {
119
- "input_per_million": 15.0,
120
- "output_per_million": 75.0
121
- }
122
- }
123
- },
124
- "metadata": {}
125
- },
126
64
  {
127
65
  "id": "claude-opus-4-5",
128
66
  "name": "Claude Opus 4.5",
@@ -537,40 +475,6 @@
537
475
  },
538
476
  "metadata": {}
539
477
  },
540
- {
541
- "id": "gemini-2.0-flash-live-001",
542
- "name": "Gemini 2.0 Flash Live",
543
- "provider": "gemini",
544
- "family": "gemini-2.0-flash-live-001",
545
- "created_at": null,
546
- "context_window": 1048576,
547
- "max_output_tokens": 8192,
548
- "knowledge_cutoff": null,
549
- "modalities": {
550
- "input": [
551
- "audio",
552
- "text"
553
- ],
554
- "output": [
555
- "audio",
556
- "text"
557
- ]
558
- },
559
- "capabilities": [
560
- "function_calling",
561
- "structured_output"
562
- ],
563
- "pricing": {
564
- "text_tokens": {
565
- "standard": {
566
- "input_per_million": 0.1,
567
- "cached_input_per_million": 0.025,
568
- "output_per_million": 0.4
569
- }
570
- }
571
- },
572
- "metadata": {}
573
- },
574
478
  {
575
479
  "id": "gemini-2.0-flash-preview-image-generation",
576
480
  "name": "Gemini 2.0 Flash Preview Image Generation",
@@ -766,9 +670,9 @@
766
670
  },
767
671
  {
768
672
  "id": "gemini-2.5-flash-lite-preview-09-2025",
769
- "name": "Gemini 2.5 Flash-Lite Preview",
673
+ "name": "Gemini 2.5 Flash-Lite",
770
674
  "provider": "gemini",
771
- "family": "gemini-2.5-flash-lite-preview-09-2025",
675
+ "family": "gemini-2.5-flash-lite",
772
676
  "created_at": null,
773
677
  "context_window": 1048576,
774
678
  "max_output_tokens": 65536,
@@ -807,7 +711,40 @@
807
711
  "id": "gemini-2.5-flash-native-audio-preview-09-2025",
808
712
  "name": "Gemini 2.5 Flash Native Audio Preview",
809
713
  "provider": "gemini",
810
- "family": "gemini-2.5-flash-native-audio-preview-09-2025",
714
+ "family": "gemini-2.5-flash-native-audio-preview",
715
+ "created_at": null,
716
+ "context_window": 131072,
717
+ "max_output_tokens": 8192,
718
+ "knowledge_cutoff": null,
719
+ "modalities": {
720
+ "input": [
721
+ "audio",
722
+ "text"
723
+ ],
724
+ "output": [
725
+ "audio",
726
+ "text"
727
+ ]
728
+ },
729
+ "capabilities": [
730
+ "function_calling"
731
+ ],
732
+ "pricing": {
733
+ "text_tokens": {
734
+ "standard": {
735
+ "input_per_million": 0.3,
736
+ "cached_input_per_million": 0.03,
737
+ "output_per_million": 2.5
738
+ }
739
+ }
740
+ },
741
+ "metadata": {}
742
+ },
743
+ {
744
+ "id": "gemini-2.5-flash-native-audio-preview-12-2025",
745
+ "name": "Gemini 2.5 Flash Native Audio Preview",
746
+ "provider": "gemini",
747
+ "family": "gemini-2.5-flash-native-audio-preview",
811
748
  "created_at": null,
812
749
  "context_window": 131072,
813
750
  "max_output_tokens": 8192,
@@ -838,9 +775,9 @@
838
775
  },
839
776
  {
840
777
  "id": "gemini-2.5-flash-preview-09-2025",
841
- "name": "Gemini 2.5 Flash Preview",
778
+ "name": "Gemini 2.5 Flash",
842
779
  "provider": "gemini",
843
- "family": "gemini-2.5-flash-preview-09-2025",
780
+ "family": "gemini-2.5-flash",
844
781
  "created_at": null,
845
782
  "context_window": 1048576,
846
783
  "max_output_tokens": 65536,
@@ -945,28 +882,38 @@
945
882
  },
946
883
  {
947
884
  "id": "gemini-2.5-pro-preview-tts",
948
- "name": "Gemini 2.5 Pro Preview TTS",
885
+ "name": "Gemini 2.5 Pro",
949
886
  "provider": "gemini",
950
- "family": "gemini-2.5-pro-preview-tts",
887
+ "family": "gemini-2.5-pro",
951
888
  "created_at": null,
952
- "context_window": 8192,
953
- "max_output_tokens": 16384,
889
+ "context_window": 1048576,
890
+ "max_output_tokens": 65536,
954
891
  "knowledge_cutoff": null,
955
892
  "modalities": {
956
893
  "input": [
894
+ "audio",
895
+ "image",
957
896
  "text"
958
897
  ],
959
898
  "output": [
960
- "audio"
899
+ "text"
961
900
  ]
962
901
  },
963
- "capabilities": [],
902
+ "capabilities": [
903
+ "batch",
904
+ "function_calling",
905
+ "structured_output"
906
+ ],
964
907
  "pricing": {
965
908
  "text_tokens": {
966
909
  "standard": {
967
910
  "input_per_million": 1.25,
968
911
  "cached_input_per_million": 0.125,
969
912
  "output_per_million": 10.0
913
+ },
914
+ "batch": {
915
+ "input_per_million": 0.625,
916
+ "output_per_million": 5.0
970
917
  }
971
918
  }
972
919
  },
@@ -1048,39 +995,6 @@
1048
995
  },
1049
996
  "metadata": {}
1050
997
  },
1051
- {
1052
- "id": "gemini-live-2.5-flash-preview",
1053
- "name": "Gemini 2.5 Flash Native Audio Preview",
1054
- "provider": "gemini",
1055
- "family": "gemini-2.5-flash-native-audio-preview-09-2025",
1056
- "created_at": null,
1057
- "context_window": 131072,
1058
- "max_output_tokens": 8192,
1059
- "knowledge_cutoff": null,
1060
- "modalities": {
1061
- "input": [
1062
- "audio",
1063
- "text"
1064
- ],
1065
- "output": [
1066
- "audio",
1067
- "text"
1068
- ]
1069
- },
1070
- "capabilities": [
1071
- "function_calling"
1072
- ],
1073
- "pricing": {
1074
- "text_tokens": {
1075
- "standard": {
1076
- "input_per_million": 0.3,
1077
- "cached_input_per_million": 0.03,
1078
- "output_per_million": 2.5
1079
- }
1080
- }
1081
- },
1082
- "metadata": {}
1083
- },
1084
998
  {
1085
999
  "id": "babbage-002",
1086
1000
  "name": "babbage-002",
@@ -1140,40 +1054,6 @@
1140
1054
  },
1141
1055
  "metadata": {}
1142
1056
  },
1143
- {
1144
- "id": "codex-mini-latest",
1145
- "name": "codex-mini-latest",
1146
- "provider": "openai",
1147
- "family": "codex-mini-latest",
1148
- "created_at": null,
1149
- "context_window": 200000,
1150
- "max_output_tokens": 100000,
1151
- "knowledge_cutoff": null,
1152
- "modalities": {
1153
- "input": [
1154
- "image",
1155
- "text"
1156
- ],
1157
- "output": [
1158
- "embeddings",
1159
- "text"
1160
- ]
1161
- },
1162
- "capabilities": [
1163
- "function_calling",
1164
- "structured_output"
1165
- ],
1166
- "pricing": {
1167
- "text_tokens": {
1168
- "standard": {
1169
- "input_per_million": 1.5,
1170
- "cached_input_per_million": 0.375,
1171
- "output_per_million": 6.0
1172
- }
1173
- }
1174
- },
1175
- "metadata": {}
1176
- },
1177
1057
  {
1178
1058
  "id": "computer-use-preview",
1179
1059
  "name": "computer-use-preview",
@@ -1248,28 +1128,6 @@
1248
1128
  },
1249
1129
  "metadata": {}
1250
1130
  },
1251
- {
1252
- "id": "dall-e-2",
1253
- "name": "DALL·E 2",
1254
- "provider": "openai",
1255
- "family": "dall-e-2",
1256
- "created_at": null,
1257
- "context_window": null,
1258
- "max_output_tokens": null,
1259
- "knowledge_cutoff": null,
1260
- "modalities": {
1261
- "input": [
1262
- "text"
1263
- ],
1264
- "output": [
1265
- "embeddings",
1266
- "image"
1267
- ]
1268
- },
1269
- "capabilities": [],
1270
- "pricing": {},
1271
- "metadata": {}
1272
- },
1273
1131
  {
1274
1132
  "id": "dall-e-3",
1275
1133
  "name": "DALL·E 3",
@@ -1292,35 +1150,6 @@
1292
1150
  "pricing": {},
1293
1151
  "metadata": {}
1294
1152
  },
1295
- {
1296
- "id": "davinci-002",
1297
- "name": "davinci-002",
1298
- "provider": "openai",
1299
- "family": "davinci-002",
1300
- "created_at": null,
1301
- "context_window": null,
1302
- "max_output_tokens": 16384,
1303
- "knowledge_cutoff": null,
1304
- "modalities": {
1305
- "input": [
1306
- "text"
1307
- ],
1308
- "output": [
1309
- "embeddings",
1310
- "text"
1311
- ]
1312
- },
1313
- "capabilities": [],
1314
- "pricing": {
1315
- "text_tokens": {
1316
- "standard": {
1317
- "input_per_million": 2.0,
1318
- "output_per_million": 2.0
1319
- }
1320
- }
1321
- },
1322
- "metadata": {}
1323
- },
1324
1153
  {
1325
1154
  "id": "gpt-3.5-turbo",
1326
1155
  "name": "GPT-3.5 Turbo",
@@ -2245,7 +2074,9 @@
2245
2074
  "text"
2246
2075
  ]
2247
2076
  },
2248
- "capabilities": [],
2077
+ "capabilities": [
2078
+ "structured_output"
2079
+ ],
2249
2080
  "pricing": {
2250
2081
  "text_tokens": {
2251
2082
  "standard": {
@@ -2400,7 +2231,9 @@
2400
2231
  "text"
2401
2232
  ]
2402
2233
  },
2403
- "capabilities": [],
2234
+ "capabilities": [
2235
+ "structured_output"
2236
+ ],
2404
2237
  "pricing": {
2405
2238
  "text_tokens": {
2406
2239
  "standard": {
@@ -2430,7 +2263,9 @@
2430
2263
  "text"
2431
2264
  ]
2432
2265
  },
2433
- "capabilities": [],
2266
+ "capabilities": [
2267
+ "structured_output"
2268
+ ],
2434
2269
  "pricing": {
2435
2270
  "text_tokens": {
2436
2271
  "standard": {
@@ -2956,10 +2791,10 @@
2956
2791
  "metadata": {}
2957
2792
  },
2958
2793
  {
2959
- "id": "gpt-5.1-codex-mini",
2960
- "name": "GPT-5.1 Codex mini",
2794
+ "id": "gpt-5.1-codex-max",
2795
+ "name": "GPT-5.1-Codex-Max",
2961
2796
  "provider": "openai",
2962
- "family": "gpt-5.1-codex-mini",
2797
+ "family": "gpt-5.1-codex-max",
2963
2798
  "created_at": null,
2964
2799
  "context_window": 400000,
2965
2800
  "max_output_tokens": 128000,
@@ -2981,9 +2816,175 @@
2981
2816
  "pricing": {
2982
2817
  "text_tokens": {
2983
2818
  "standard": {
2984
- "input_per_million": 0.25,
2985
- "cached_input_per_million": 0.025,
2986
- "output_per_million": 2.0
2819
+ "input_per_million": 1.25,
2820
+ "cached_input_per_million": 0.125,
2821
+ "output_per_million": 10.0
2822
+ }
2823
+ }
2824
+ },
2825
+ "metadata": {}
2826
+ },
2827
+ {
2828
+ "id": "gpt-5.2",
2829
+ "name": "GPT-5.2",
2830
+ "provider": "openai",
2831
+ "family": "gpt-5.2",
2832
+ "created_at": null,
2833
+ "context_window": 400000,
2834
+ "max_output_tokens": 128000,
2835
+ "knowledge_cutoff": null,
2836
+ "modalities": {
2837
+ "input": [
2838
+ "image",
2839
+ "text"
2840
+ ],
2841
+ "output": [
2842
+ "embeddings",
2843
+ "text"
2844
+ ]
2845
+ },
2846
+ "capabilities": [
2847
+ "function_calling",
2848
+ "structured_output"
2849
+ ],
2850
+ "pricing": {
2851
+ "text_tokens": {
2852
+ "standard": {
2853
+ "input_per_million": 1.75,
2854
+ "cached_input_per_million": 0.175,
2855
+ "output_per_million": 14.0
2856
+ }
2857
+ }
2858
+ },
2859
+ "metadata": {}
2860
+ },
2861
+ {
2862
+ "id": "gpt-5.2-2025-12-11",
2863
+ "name": "GPT-5.2",
2864
+ "provider": "openai",
2865
+ "family": "gpt-5.2",
2866
+ "created_at": null,
2867
+ "context_window": 400000,
2868
+ "max_output_tokens": 128000,
2869
+ "knowledge_cutoff": null,
2870
+ "modalities": {
2871
+ "input": [
2872
+ "image",
2873
+ "text"
2874
+ ],
2875
+ "output": [
2876
+ "embeddings",
2877
+ "text"
2878
+ ]
2879
+ },
2880
+ "capabilities": [
2881
+ "function_calling",
2882
+ "structured_output"
2883
+ ],
2884
+ "pricing": {
2885
+ "text_tokens": {
2886
+ "standard": {
2887
+ "input_per_million": 1.75,
2888
+ "cached_input_per_million": 0.175,
2889
+ "output_per_million": 14.0
2890
+ }
2891
+ }
2892
+ },
2893
+ "metadata": {}
2894
+ },
2895
+ {
2896
+ "id": "gpt-5.2-chat-latest",
2897
+ "name": "GPT-5.2 Chat",
2898
+ "provider": "openai",
2899
+ "family": "gpt-5.2-chat-latest",
2900
+ "created_at": null,
2901
+ "context_window": 128000,
2902
+ "max_output_tokens": 16384,
2903
+ "knowledge_cutoff": null,
2904
+ "modalities": {
2905
+ "input": [
2906
+ "image",
2907
+ "text"
2908
+ ],
2909
+ "output": [
2910
+ "embeddings",
2911
+ "text"
2912
+ ]
2913
+ },
2914
+ "capabilities": [
2915
+ "function_calling",
2916
+ "structured_output"
2917
+ ],
2918
+ "pricing": {
2919
+ "text_tokens": {
2920
+ "standard": {
2921
+ "input_per_million": 1.75,
2922
+ "cached_input_per_million": 0.175,
2923
+ "output_per_million": 14.0
2924
+ }
2925
+ }
2926
+ },
2927
+ "metadata": {}
2928
+ },
2929
+ {
2930
+ "id": "gpt-5.2-pro",
2931
+ "name": "GPT-5.2 pro",
2932
+ "provider": "openai",
2933
+ "family": "gpt-5.2-pro",
2934
+ "created_at": null,
2935
+ "context_window": 400000,
2936
+ "max_output_tokens": 128000,
2937
+ "knowledge_cutoff": null,
2938
+ "modalities": {
2939
+ "input": [
2940
+ "image",
2941
+ "text"
2942
+ ],
2943
+ "output": [
2944
+ "embeddings",
2945
+ "text"
2946
+ ]
2947
+ },
2948
+ "capabilities": [
2949
+ "function_calling"
2950
+ ],
2951
+ "pricing": {
2952
+ "text_tokens": {
2953
+ "standard": {
2954
+ "input_per_million": 21.0,
2955
+ "output_per_million": 168.0
2956
+ }
2957
+ }
2958
+ },
2959
+ "metadata": {}
2960
+ },
2961
+ {
2962
+ "id": "gpt-5.2-pro-2025-12-11",
2963
+ "name": "GPT-5.2 pro",
2964
+ "provider": "openai",
2965
+ "family": "gpt-5.2-pro",
2966
+ "created_at": null,
2967
+ "context_window": 400000,
2968
+ "max_output_tokens": 128000,
2969
+ "knowledge_cutoff": null,
2970
+ "modalities": {
2971
+ "input": [
2972
+ "image",
2973
+ "text"
2974
+ ],
2975
+ "output": [
2976
+ "embeddings",
2977
+ "text"
2978
+ ]
2979
+ },
2980
+ "capabilities": [
2981
+ "function_calling"
2982
+ ],
2983
+ "pricing": {
2984
+ "text_tokens": {
2985
+ "standard": {
2986
+ "input_per_million": 21.0,
2987
+ "output_per_million": 168.0
2987
2988
  }
2988
2989
  }
2989
2990
  },
@@ -4152,12 +4153,46 @@
4152
4153
  ],
4153
4154
  "output": [
4154
4155
  "audio",
4155
- "embeddings",
4156
- "image"
4156
+ "embeddings"
4157
4157
  ]
4158
4158
  },
4159
4159
  "capabilities": [],
4160
- "pricing": {},
4160
+ "pricing": {
4161
+ "text_tokens": {
4162
+ "standard": {
4163
+ "output_per_million": 100000.0
4164
+ }
4165
+ }
4166
+ },
4167
+ "metadata": {}
4168
+ },
4169
+ {
4170
+ "id": "sora-2-2025-10-06",
4171
+ "name": "Sora 2",
4172
+ "provider": "openai",
4173
+ "family": "sora-2",
4174
+ "created_at": null,
4175
+ "context_window": null,
4176
+ "max_output_tokens": null,
4177
+ "knowledge_cutoff": null,
4178
+ "modalities": {
4179
+ "input": [
4180
+ "image",
4181
+ "text"
4182
+ ],
4183
+ "output": [
4184
+ "audio",
4185
+ "embeddings"
4186
+ ]
4187
+ },
4188
+ "capabilities": [],
4189
+ "pricing": {
4190
+ "text_tokens": {
4191
+ "standard": {
4192
+ "output_per_million": 100000.0
4193
+ }
4194
+ }
4195
+ },
4161
4196
  "metadata": {}
4162
4197
  },
4163
4198
  {
@@ -4183,6 +4218,29 @@
4183
4218
  "pricing": {},
4184
4219
  "metadata": {}
4185
4220
  },
4221
+ {
4222
+ "id": "sora-2-pro-2025-10-06",
4223
+ "name": "Sora 2 Pro",
4224
+ "provider": "openai",
4225
+ "family": "sora-2-pro",
4226
+ "created_at": null,
4227
+ "context_window": null,
4228
+ "max_output_tokens": null,
4229
+ "knowledge_cutoff": null,
4230
+ "modalities": {
4231
+ "input": [
4232
+ "image",
4233
+ "text"
4234
+ ],
4235
+ "output": [
4236
+ "audio",
4237
+ "embeddings"
4238
+ ]
4239
+ },
4240
+ "capabilities": [],
4241
+ "pricing": {},
4242
+ "metadata": {}
4243
+ },
4186
4244
  {
4187
4245
  "id": "text-embedding-3-large",
4188
4246
  "name": "text-embedding-3-large",
@@ -4361,6 +4419,7 @@
4361
4419
  "knowledge_cutoff": null,
4362
4420
  "modalities": {
4363
4421
  "input": [
4422
+ "audio",
4364
4423
  "text"
4365
4424
  ],
4366
4425
  "output": [
@@ -4420,7 +4479,6 @@
4420
4479
  "audio"
4421
4480
  ],
4422
4481
  "output": [
4423
- "audio",
4424
4482
  "embeddings",
4425
4483
  "text"
4426
4484
  ]