rasti-ai 3.1.0 → 3.2.0

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 (38) hide show
  1. checksums.yaml +4 -4
  2. data/.features/api-normalization/api-design.md +184 -0
  3. data/.features/api-normalization/overview.md +230 -0
  4. data/AGENTS.md +125 -15
  5. data/README.md +143 -19
  6. data/lib/rasti/ai/anthropic/assistant.rb +1 -11
  7. data/lib/rasti/ai/anthropic/client.rb +6 -28
  8. data/lib/rasti/ai/anthropic/provider.rb +87 -0
  9. data/lib/rasti/ai/assistant.rb +10 -11
  10. data/lib/rasti/ai/client.rb +13 -10
  11. data/lib/rasti/ai/errors.rb +8 -0
  12. data/lib/rasti/ai/gemini/assistant.rb +1 -11
  13. data/lib/rasti/ai/gemini/client.rb +2 -24
  14. data/lib/rasti/ai/gemini/provider.rb +90 -0
  15. data/lib/rasti/ai/huawei_maas/assistant.rb +0 -7
  16. data/lib/rasti/ai/huawei_maas/client.rb +0 -19
  17. data/lib/rasti/ai/huawei_maas/provider.rb +25 -0
  18. data/lib/rasti/ai/huawei_maas/roles.rb +1 -8
  19. data/lib/rasti/ai/open_ai/assistant.rb +0 -4
  20. data/lib/rasti/ai/open_ai/client.rb +3 -33
  21. data/lib/rasti/ai/open_ai/provider.rb +74 -0
  22. data/lib/rasti/ai/open_router/assistant.rb +0 -7
  23. data/lib/rasti/ai/open_router/client.rb +0 -19
  24. data/lib/rasti/ai/open_router/provider.rb +25 -0
  25. data/lib/rasti/ai/open_router/roles.rb +1 -8
  26. data/lib/rasti/ai/provider.rb +197 -0
  27. data/lib/rasti/ai/provider_aware.rb +17 -0
  28. data/lib/rasti/ai/result.rb +11 -0
  29. data/lib/rasti/ai/roles.rb +11 -0
  30. data/lib/rasti/ai/version.rb +1 -1
  31. data/lib/rasti/ai.rb +93 -0
  32. data/spec/anthropic/provider_spec.rb +106 -0
  33. data/spec/gemini/provider_spec.rb +90 -0
  34. data/spec/open_ai/provider_spec.rb +101 -0
  35. data/spec/rasti_ai_spec.rb +322 -0
  36. data/spec/resources/open_ai/conversation_request.json +1 -0
  37. data/spec/resources/open_ai/system_request.json +1 -0
  38. metadata +25 -2
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rasti-ai
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.0
4
+ version: 3.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gabriel Naiman
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-07-27 00:00:00.000000000 Z
11
+ date: 2026-07-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: multi_require
@@ -239,6 +239,8 @@ executables: []
239
239
  extensions: []
240
240
  extra_rdoc_files: []
241
241
  files:
242
+ - ".features/api-normalization/api-design.md"
243
+ - ".features/api-normalization/overview.md"
242
244
  - ".github/workflows/ci.yml"
243
245
  - ".gitignore"
244
246
  - ".ruby-gemset"
@@ -252,6 +254,7 @@ files:
252
254
  - lib/rasti/ai.rb
253
255
  - lib/rasti/ai/anthropic/assistant.rb
254
256
  - lib/rasti/ai/anthropic/client.rb
257
+ - lib/rasti/ai/anthropic/provider.rb
255
258
  - lib/rasti/ai/anthropic/roles.rb
256
259
  - lib/rasti/ai/assistant.rb
257
260
  - lib/rasti/ai/assistant_state.rb
@@ -259,9 +262,11 @@ files:
259
262
  - lib/rasti/ai/errors.rb
260
263
  - lib/rasti/ai/gemini/assistant.rb
261
264
  - lib/rasti/ai/gemini/client.rb
265
+ - lib/rasti/ai/gemini/provider.rb
262
266
  - lib/rasti/ai/gemini/roles.rb
263
267
  - lib/rasti/ai/huawei_maas/assistant.rb
264
268
  - lib/rasti/ai/huawei_maas/client.rb
269
+ - lib/rasti/ai/huawei_maas/provider.rb
265
270
  - lib/rasti/ai/huawei_maas/roles.rb
266
271
  - lib/rasti/ai/mcp/client.rb
267
272
  - lib/rasti/ai/mcp/constants.rb
@@ -269,10 +274,16 @@ files:
269
274
  - lib/rasti/ai/mcp/tools_registry.rb
270
275
  - lib/rasti/ai/open_ai/assistant.rb
271
276
  - lib/rasti/ai/open_ai/client.rb
277
+ - lib/rasti/ai/open_ai/provider.rb
272
278
  - lib/rasti/ai/open_ai/roles.rb
273
279
  - lib/rasti/ai/open_router/assistant.rb
274
280
  - lib/rasti/ai/open_router/client.rb
281
+ - lib/rasti/ai/open_router/provider.rb
275
282
  - lib/rasti/ai/open_router/roles.rb
283
+ - lib/rasti/ai/provider.rb
284
+ - lib/rasti/ai/provider_aware.rb
285
+ - lib/rasti/ai/result.rb
286
+ - lib/rasti/ai/roles.rb
276
287
  - lib/rasti/ai/tool.rb
277
288
  - lib/rasti/ai/tool_serializer.rb
278
289
  - lib/rasti/ai/usage.rb
@@ -281,9 +292,11 @@ files:
281
292
  - rasti-ai.gemspec
282
293
  - spec/anthropic/assistant_spec.rb
283
294
  - spec/anthropic/client_spec.rb
295
+ - spec/anthropic/provider_spec.rb
284
296
  - spec/coverage_helper.rb
285
297
  - spec/gemini/assistant_spec.rb
286
298
  - spec/gemini/client_spec.rb
299
+ - spec/gemini/provider_spec.rb
287
300
  - spec/huawei_maas/assistant_spec.rb
288
301
  - spec/huawei_maas/client_spec.rb
289
302
  - spec/mcp/client_spec.rb
@@ -292,8 +305,10 @@ files:
292
305
  - spec/minitest_helper.rb
293
306
  - spec/open_ai/assistant_spec.rb
294
307
  - spec/open_ai/client_spec.rb
308
+ - spec/open_ai/provider_spec.rb
295
309
  - spec/open_router/assistant_spec.rb
296
310
  - spec/open_router/client_spec.rb
311
+ - spec/rasti_ai_spec.rb
297
312
  - spec/resources/anthropic/basic_request.json
298
313
  - spec/resources/anthropic/basic_response.json
299
314
  - spec/resources/anthropic/tool_request.json
@@ -304,6 +319,8 @@ files:
304
319
  - spec/resources/gemini/tool_response.json
305
320
  - spec/resources/open_ai/basic_request.json
306
321
  - spec/resources/open_ai/basic_response.json
322
+ - spec/resources/open_ai/conversation_request.json
323
+ - spec/resources/open_ai/system_request.json
307
324
  - spec/resources/open_ai/tool_request.json
308
325
  - spec/resources/open_ai/tool_response.json
309
326
  - spec/support/helpers/erb.rb
@@ -336,9 +353,11 @@ summary: AI for apps
336
353
  test_files:
337
354
  - spec/anthropic/assistant_spec.rb
338
355
  - spec/anthropic/client_spec.rb
356
+ - spec/anthropic/provider_spec.rb
339
357
  - spec/coverage_helper.rb
340
358
  - spec/gemini/assistant_spec.rb
341
359
  - spec/gemini/client_spec.rb
360
+ - spec/gemini/provider_spec.rb
342
361
  - spec/huawei_maas/assistant_spec.rb
343
362
  - spec/huawei_maas/client_spec.rb
344
363
  - spec/mcp/client_spec.rb
@@ -347,8 +366,10 @@ test_files:
347
366
  - spec/minitest_helper.rb
348
367
  - spec/open_ai/assistant_spec.rb
349
368
  - spec/open_ai/client_spec.rb
369
+ - spec/open_ai/provider_spec.rb
350
370
  - spec/open_router/assistant_spec.rb
351
371
  - spec/open_router/client_spec.rb
372
+ - spec/rasti_ai_spec.rb
352
373
  - spec/resources/anthropic/basic_request.json
353
374
  - spec/resources/anthropic/basic_response.json
354
375
  - spec/resources/anthropic/tool_request.json
@@ -359,6 +380,8 @@ test_files:
359
380
  - spec/resources/gemini/tool_response.json
360
381
  - spec/resources/open_ai/basic_request.json
361
382
  - spec/resources/open_ai/basic_response.json
383
+ - spec/resources/open_ai/conversation_request.json
384
+ - spec/resources/open_ai/system_request.json
362
385
  - spec/resources/open_ai/tool_request.json
363
386
  - spec/resources/open_ai/tool_response.json
364
387
  - spec/support/helpers/erb.rb