desiru 0.1.0 → 0.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.
- checksums.yaml +4 -4
- data/.claude/settings.local.json +11 -0
- data/.env.example +34 -0
- data/.rubocop.yml +7 -4
- data/.ruby-version +1 -0
- data/CHANGELOG.md +73 -0
- data/CLAUDE.local.md +3 -0
- data/CLAUDE.md +10 -1
- data/Gemfile +21 -2
- data/Gemfile.lock +88 -13
- data/README.md +301 -2
- data/Rakefile +1 -0
- data/db/migrations/001_create_initial_tables.rb +96 -0
- data/db/migrations/002_create_job_results.rb +39 -0
- data/desiru-development-swarm.yml +185 -0
- data/desiru.db +0 -0
- data/desiru.gemspec +2 -5
- data/docs/background_processing_roadmap.md +87 -0
- data/docs/job_scheduling.md +167 -0
- data/dspy-analysis-swarm.yml +60 -0
- data/dspy-feature-analysis.md +121 -0
- data/examples/README.md +69 -0
- data/examples/api_with_persistence.rb +122 -0
- data/examples/assertions_example.rb +232 -0
- data/examples/async_processing.rb +2 -0
- data/examples/few_shot_learning.rb +1 -2
- data/examples/graphql_api.rb +4 -2
- data/examples/graphql_integration.rb +3 -3
- data/examples/graphql_optimization_summary.md +143 -0
- data/examples/graphql_performance_benchmark.rb +247 -0
- data/examples/persistence_example.rb +102 -0
- data/examples/react_agent.rb +203 -0
- data/examples/rest_api.rb +173 -0
- data/examples/rest_api_advanced.rb +333 -0
- data/examples/scheduled_job_example.rb +116 -0
- data/examples/simple_qa.rb +1 -2
- data/examples/sinatra_api.rb +109 -0
- data/examples/typed_signatures.rb +1 -2
- data/graphql_optimization_summary.md +53 -0
- data/lib/desiru/api/grape_integration.rb +284 -0
- data/lib/desiru/api/persistence_middleware.rb +148 -0
- data/lib/desiru/api/sinatra_integration.rb +217 -0
- data/lib/desiru/api.rb +42 -0
- data/lib/desiru/assertions.rb +74 -0
- data/lib/desiru/async_status.rb +65 -0
- data/lib/desiru/cache.rb +1 -1
- data/lib/desiru/configuration.rb +2 -1
- data/lib/desiru/core/compiler.rb +231 -0
- data/lib/desiru/core/example.rb +96 -0
- data/lib/desiru/core/prediction.rb +108 -0
- data/lib/desiru/core/trace.rb +330 -0
- data/lib/desiru/core/traceable.rb +61 -0
- data/lib/desiru/core.rb +12 -0
- data/lib/desiru/errors.rb +160 -0
- data/lib/desiru/field.rb +17 -14
- data/lib/desiru/graphql/batch_loader.rb +85 -0
- data/lib/desiru/graphql/data_loader.rb +242 -75
- data/lib/desiru/graphql/enum_builder.rb +75 -0
- data/lib/desiru/graphql/executor.rb +37 -4
- data/lib/desiru/graphql/schema_generator.rb +62 -158
- data/lib/desiru/graphql/type_builder.rb +138 -0
- data/lib/desiru/graphql/type_cache_warmer.rb +91 -0
- data/lib/desiru/jobs/async_predict.rb +1 -1
- data/lib/desiru/jobs/base.rb +67 -0
- data/lib/desiru/jobs/batch_processor.rb +6 -6
- data/lib/desiru/jobs/retriable.rb +119 -0
- data/lib/desiru/jobs/retry_strategies.rb +169 -0
- data/lib/desiru/jobs/scheduler.rb +219 -0
- data/lib/desiru/jobs/webhook_notifier.rb +242 -0
- data/lib/desiru/models/anthropic.rb +164 -0
- data/lib/desiru/models/base.rb +37 -3
- data/lib/desiru/models/open_ai.rb +151 -0
- data/lib/desiru/models/open_router.rb +161 -0
- data/lib/desiru/module.rb +67 -9
- data/lib/desiru/modules/best_of_n.rb +306 -0
- data/lib/desiru/modules/chain_of_thought.rb +3 -3
- data/lib/desiru/modules/majority.rb +51 -0
- data/lib/desiru/modules/multi_chain_comparison.rb +256 -0
- data/lib/desiru/modules/predict.rb +15 -1
- data/lib/desiru/modules/program_of_thought.rb +338 -0
- data/lib/desiru/modules/react.rb +273 -0
- data/lib/desiru/modules/retrieve.rb +4 -2
- data/lib/desiru/optimizers/base.rb +32 -4
- data/lib/desiru/optimizers/bootstrap_few_shot.rb +2 -2
- data/lib/desiru/optimizers/copro.rb +268 -0
- data/lib/desiru/optimizers/knn_few_shot.rb +185 -0
- data/lib/desiru/optimizers/mipro_v2.rb +889 -0
- data/lib/desiru/persistence/database.rb +71 -0
- data/lib/desiru/persistence/models/api_request.rb +38 -0
- data/lib/desiru/persistence/models/job_result.rb +138 -0
- data/lib/desiru/persistence/models/module_execution.rb +37 -0
- data/lib/desiru/persistence/models/optimization_result.rb +28 -0
- data/lib/desiru/persistence/models/training_example.rb +25 -0
- data/lib/desiru/persistence/models.rb +11 -0
- data/lib/desiru/persistence/repositories/api_request_repository.rb +98 -0
- data/lib/desiru/persistence/repositories/base_repository.rb +77 -0
- data/lib/desiru/persistence/repositories/job_result_repository.rb +116 -0
- data/lib/desiru/persistence/repositories/module_execution_repository.rb +85 -0
- data/lib/desiru/persistence/repositories/optimization_result_repository.rb +67 -0
- data/lib/desiru/persistence/repositories/training_example_repository.rb +102 -0
- data/lib/desiru/persistence/repository.rb +29 -0
- data/lib/desiru/persistence/setup.rb +77 -0
- data/lib/desiru/persistence.rb +49 -0
- data/lib/desiru/registry.rb +3 -5
- data/lib/desiru/signature.rb +91 -24
- data/lib/desiru/version.rb +1 -1
- data/lib/desiru.rb +33 -8
- data/missing-features-analysis.md +192 -0
- metadata +75 -45
- data/lib/desiru/models/raix_adapter.rb +0 -210
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: dba6d3f283255824630ae2a8fd4119dfcdb7480f1aa8d50e57aa8c8d740128ce
|
|
4
|
+
data.tar.gz: 26b4a53f8be0de54d4619c7ae7ba85fb868009c3b7407b7f5730b2cdc8b8277d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4be0c144f72095e40bb49060797ebf2e790d053f17bdb773c4e41bf0bd84f9706f4fff91981ea3bba89535afc2b152ca06e79ad11ac5a74d82912055b115d702
|
|
7
|
+
data.tar.gz: '08db2c001e9dda2c0f1cb934fcd2826f75290324edf7707e898f2ed18a57b675c4d2c50b7592ce3aa0b7d2506cbb8c704b3edb15accc0fbac44ab917abb76180'
|
data/.env.example
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Desiru Configuration Example
|
|
2
|
+
# Copy this file to .env and add your actual API keys
|
|
3
|
+
|
|
4
|
+
# Choose one of the following LLM providers:
|
|
5
|
+
|
|
6
|
+
# Anthropic Claude
|
|
7
|
+
# Get your API key from: https://console.anthropic.com/
|
|
8
|
+
# ANTHROPIC_API_KEY=sk-ant-api03-...
|
|
9
|
+
|
|
10
|
+
# OpenAI
|
|
11
|
+
# Get your API key from: https://platform.openai.com/api-keys
|
|
12
|
+
# OPENAI_API_KEY=sk-...
|
|
13
|
+
|
|
14
|
+
# Optional: Redis configuration for async/caching features
|
|
15
|
+
# Default: redis://localhost:6379/0
|
|
16
|
+
# REDIS_URL=redis://localhost:6379/0
|
|
17
|
+
|
|
18
|
+
# Optional: Database URL for persistence features
|
|
19
|
+
# Default: sqlite://db/desiru_development.db
|
|
20
|
+
# DATABASE_URL=sqlite://db/desiru_development.db
|
|
21
|
+
|
|
22
|
+
# Optional: OpenRouter API
|
|
23
|
+
# Get your API key from: https://openrouter.ai/keys
|
|
24
|
+
# OPENROUTER_API_KEY=sk-or-v1-...
|
|
25
|
+
|
|
26
|
+
# Optional: Default model selection
|
|
27
|
+
# For Anthropic: claude-3-haiku-20240307, claude-3-sonnet-20240229, claude-3-opus-20240229
|
|
28
|
+
# For OpenAI: gpt-4o-mini, gpt-4o, gpt-4-turbo
|
|
29
|
+
# For OpenRouter: anthropic/claude-3-haiku, openai/gpt-4o-mini, google/gemini-pro
|
|
30
|
+
# DESIRU_DEFAULT_MODEL=claude-3-haiku-20240307
|
|
31
|
+
|
|
32
|
+
# Optional: Logging level
|
|
33
|
+
# Options: debug, info, warn, error, fatal
|
|
34
|
+
# DESIRU_LOG_LEVEL=info
|
data/.rubocop.yml
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
AllCops:
|
|
2
|
-
TargetRubyVersion: 3.
|
|
2
|
+
TargetRubyVersion: 3.3
|
|
3
3
|
NewCops: enable
|
|
4
4
|
SuggestExtensions: false
|
|
5
5
|
Exclude:
|
|
@@ -8,9 +8,9 @@ AllCops:
|
|
|
8
8
|
- 'bin/**/*'
|
|
9
9
|
- 'spec/fixtures/**/*'
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
plugins:
|
|
12
12
|
- rubocop-rake
|
|
13
|
-
|
|
13
|
+
|
|
14
14
|
|
|
15
15
|
# Relaxed metrics for DSL-heavy library code
|
|
16
16
|
Metrics/MethodLength:
|
|
@@ -52,4 +52,7 @@ Layout/LineLength:
|
|
|
52
52
|
- 'spec/**/*'
|
|
53
53
|
|
|
54
54
|
Gemspec/RequireMFA:
|
|
55
|
-
Enabled: false
|
|
55
|
+
Enabled: false
|
|
56
|
+
|
|
57
|
+
Metrics:
|
|
58
|
+
Enabled: false
|
data/.ruby-version
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.4.2
|
data/CHANGELOG.md
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [0.2.0] - 2025-06-23
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- **Core Data Containers**: New `Example` and `Prediction` classes for structured data handling in DSPy programs
|
|
12
|
+
- **Trace Collection System**: Complete tracing infrastructure with `TraceCollector` and `Traceable` for execution monitoring and debugging
|
|
13
|
+
- **Compilation Infrastructure**: New `Compiler` and `CompilerBuilder` classes enabling full DSPy program compilation pipeline
|
|
14
|
+
- **ProgramOfThought Module**: Advanced reasoning module that generates and executes code for complex problem solving
|
|
15
|
+
- **MIPROv2 Optimizer**: State-of-the-art Bayesian optimization algorithm for automatic prompt and few-shot example optimization
|
|
16
|
+
- **BestOfN Module**: Multi-sampling module with configurable selection criteria (confidence, consistency, LLM judge, custom)
|
|
17
|
+
- **Comprehensive Integration Tests**: Full test coverage for all new components ensuring reliability and correctness
|
|
18
|
+
|
|
19
|
+
### Enhanced
|
|
20
|
+
- **Module Architecture**: Improved base module system to support advanced tracing and compilation features
|
|
21
|
+
- **Optimization Pipeline**: Complete optimization workflow from data collection through model improvement
|
|
22
|
+
- **Error Handling**: Robust error recovery and logging throughout the new components
|
|
23
|
+
|
|
24
|
+
### Technical Improvements
|
|
25
|
+
- **Type Safety**: Enhanced type checking and validation across all new modules
|
|
26
|
+
- **Performance**: Optimized execution paths for compilation and optimization workflows
|
|
27
|
+
- **Extensibility**: Modular architecture enabling easy addition of new optimizers and reasoning modules
|
|
28
|
+
|
|
29
|
+
## [0.1.1] - 2025-06-21
|
|
30
|
+
|
|
31
|
+
### Added
|
|
32
|
+
- Direct API client implementations for Anthropic, OpenAI, and OpenRouter
|
|
33
|
+
- New modules: Majority, MultiChainComparison, and ProgramOfThought
|
|
34
|
+
- New optimizers: COPRO and KNNFewShot
|
|
35
|
+
- Enhanced error handling with detailed error classes
|
|
36
|
+
- Support for Ruby 3.3.6 (minimum version now 3.3.0)
|
|
37
|
+
- Interactive console with pre-loaded modules (`bin/console`)
|
|
38
|
+
- Examples runner with model selection (`bin/examples`)
|
|
39
|
+
|
|
40
|
+
### Changed
|
|
41
|
+
- Replaced Raix dependency with direct API integrations for better control
|
|
42
|
+
- Improved console experience with better error messages and debug helpers
|
|
43
|
+
- Updated default max_tokens from 1000 to 4096 to prevent truncated responses
|
|
44
|
+
- Fixed namespace issues in console by including necessary modules
|
|
45
|
+
|
|
46
|
+
### Fixed
|
|
47
|
+
- Redis mocking in job tests for CI compatibility
|
|
48
|
+
- Rubocop configuration to match required Ruby version
|
|
49
|
+
- Test failures in CI environment
|
|
50
|
+
|
|
51
|
+
### Removed
|
|
52
|
+
- Raix gem dependency
|
|
53
|
+
- Support for Ruby 3.2.x (minimum version is now 3.3.0)
|
|
54
|
+
|
|
55
|
+
## [0.1.0] - 2025-06-12
|
|
56
|
+
|
|
57
|
+
### Added
|
|
58
|
+
- Initial release of Desiru
|
|
59
|
+
- Core DSPy functionality ported to Ruby
|
|
60
|
+
- Basic modules: Predict, ChainOfThought, ReAct
|
|
61
|
+
- Signature system with type validation
|
|
62
|
+
- Model adapters for OpenAI and Anthropic (via Raix)
|
|
63
|
+
- Optimizers: BootstrapFewShot, MIPROv2
|
|
64
|
+
- REST API integration with Grape and Sinatra
|
|
65
|
+
- GraphQL integration with automatic schema generation
|
|
66
|
+
- Background job processing with Sidekiq
|
|
67
|
+
- Database persistence layer with Sequel
|
|
68
|
+
- Comprehensive test suite
|
|
69
|
+
- Documentation and examples
|
|
70
|
+
|
|
71
|
+
[0.2.0]: https://github.com/obie/desiru/compare/v0.1.1...v0.2.0
|
|
72
|
+
[0.1.1]: https://github.com/obie/desiru/compare/v0.1.0...v0.1.1
|
|
73
|
+
[0.1.0]: https://github.com/obie/desiru/releases/tag/v0.1.0
|
data/CLAUDE.local.md
ADDED
data/CLAUDE.md
CHANGED
|
@@ -17,6 +17,15 @@ This project is in its initial setup phase. When implementing features:
|
|
|
17
17
|
- Follow Ruby community conventions for project organization
|
|
18
18
|
- Set up bundler with a Gemfile when adding dependencies
|
|
19
19
|
|
|
20
|
+
## Testing Framework
|
|
21
|
+
|
|
22
|
+
**IMPORTANT**: This project uses RSpec exclusively for testing. NEVER use Minitest or any other testing framework. Do not add minitest gems, create test/ directories, or write any Minitest-style tests. All tests must be written in RSpec format and placed in the spec/ directory.
|
|
23
|
+
|
|
20
24
|
## Workflow Guidance
|
|
21
25
|
|
|
22
|
-
- For maximum efficiency, whenever you need to perform multiple independent operations, invoke all relevant tools simultaneously rather than sequentially.
|
|
26
|
+
- For maximum efficiency, whenever you need to perform multiple independent operations, invoke all relevant tools simultaneously rather than sequentially.
|
|
27
|
+
- When you're tempted to respond and return control to me with a message like "The codebase is now in excellent shape with 859 passing tests, 1 failing test, and 5 pending tests. The project is ready for the v0.2.0 release once the team decides how to handle the final test (either fix it or mark it as pending)." then instead, you should invoke the team to go ahead and decide how to handle the final test.
|
|
28
|
+
|
|
29
|
+
## Release Guidance
|
|
30
|
+
|
|
31
|
+
- Note that releases are never ready if there are any tests failing in the test suites. Never tell me that a release is ready unless we have a clean build.
|
data/Gemfile
CHANGED
|
@@ -2,35 +2,54 @@
|
|
|
2
2
|
|
|
3
3
|
source 'https://rubygems.org'
|
|
4
4
|
|
|
5
|
-
ruby '
|
|
5
|
+
ruby '>= 3.2.0'
|
|
6
6
|
|
|
7
7
|
# Specify your gem's dependencies in desiru.gemspec
|
|
8
8
|
gemspec
|
|
9
9
|
|
|
10
10
|
group :development, :test do
|
|
11
|
+
gem 'dotenv', '~> 3.0'
|
|
12
|
+
gem 'mock_redis', '~> 0.40'
|
|
11
13
|
gem 'pry', '~> 0.14'
|
|
12
14
|
gem 'pry-byebug', '~> 3.10'
|
|
15
|
+
gem 'rack-test', '~> 2.0'
|
|
13
16
|
gem 'rake', '~> 13.0'
|
|
17
|
+
gem 'rdoc'
|
|
14
18
|
gem 'rspec', '~> 3.0'
|
|
15
19
|
gem 'rubocop', '~> 1.21'
|
|
16
20
|
gem 'rubocop-rake', '~> 0.6'
|
|
17
21
|
gem 'rubocop-rspec', '~> 2.0'
|
|
18
22
|
gem 'simplecov', '~> 0.22', require: false
|
|
23
|
+
gem 'webmock', '~> 3.0'
|
|
19
24
|
gem 'yard', '~> 0.9'
|
|
20
25
|
end
|
|
21
26
|
|
|
22
27
|
# LLM interaction dependencies
|
|
28
|
+
gem 'anthropic', '~> 0.3'
|
|
23
29
|
gem 'faraday', '~> 2.0'
|
|
24
30
|
gem 'faraday-retry', '~> 2.0'
|
|
25
|
-
gem '
|
|
31
|
+
gem 'open_router', '~> 0.3'
|
|
32
|
+
gem 'ruby-openai', '~> 7.0'
|
|
26
33
|
|
|
27
34
|
# GraphQL support
|
|
28
35
|
gem 'graphql', '~> 2.0'
|
|
29
36
|
|
|
37
|
+
# REST API support
|
|
38
|
+
gem 'grape', '~> 2.0'
|
|
39
|
+
gem 'rack-cors', '~> 2.0'
|
|
40
|
+
gem 'sinatra', '~> 3.0'
|
|
41
|
+
gem 'sinatra-contrib', '~> 3.0'
|
|
42
|
+
|
|
43
|
+
# Database support
|
|
44
|
+
gem 'sequel', '~> 5.0'
|
|
45
|
+
gem 'sqlite3', '~> 1.6' # For development/testing
|
|
46
|
+
|
|
30
47
|
# Optional dependencies for enhanced functionality
|
|
31
48
|
group :optional do
|
|
32
49
|
gem 'async', '~> 2.0' # For concurrent operations
|
|
33
50
|
gem 'dry-struct', '~> 1.0' # For type safety
|
|
34
51
|
gem 'dry-validation', '~> 1.0' # For validation
|
|
52
|
+
gem 'jwt', '~> 2.0' # For API authentication
|
|
53
|
+
gem 'rack-throttle', '~> 0.7' # For rate limiting
|
|
35
54
|
gem 'redis', '~> 5.0' # For caching
|
|
36
55
|
end
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
desiru (0.
|
|
4
|
+
desiru (0.2.0)
|
|
5
5
|
forwardable (~> 1.3)
|
|
6
6
|
redis (~> 5.0)
|
|
7
7
|
sidekiq (~> 7.2)
|
|
@@ -23,6 +23,12 @@ GEM
|
|
|
23
23
|
securerandom (>= 0.3)
|
|
24
24
|
tzinfo (~> 2.0, >= 2.0.5)
|
|
25
25
|
uri (>= 0.13.1)
|
|
26
|
+
addressable (2.8.7)
|
|
27
|
+
public_suffix (>= 2.0.2, < 7.0)
|
|
28
|
+
anthropic (0.4.1)
|
|
29
|
+
event_stream_parser (>= 0.3.0, < 2.0.0)
|
|
30
|
+
faraday (>= 1)
|
|
31
|
+
faraday-multipart (>= 1)
|
|
26
32
|
ast (2.4.3)
|
|
27
33
|
async (2.25.0)
|
|
28
34
|
console (~> 1.29)
|
|
@@ -41,6 +47,10 @@ GEM
|
|
|
41
47
|
fiber-annotation
|
|
42
48
|
fiber-local (~> 1.1)
|
|
43
49
|
json
|
|
50
|
+
crack (1.0.0)
|
|
51
|
+
bigdecimal
|
|
52
|
+
rexml
|
|
53
|
+
date (3.4.1)
|
|
44
54
|
diff-lcs (1.6.2)
|
|
45
55
|
docile (1.4.1)
|
|
46
56
|
dotenv (3.1.8)
|
|
@@ -85,38 +95,56 @@ GEM
|
|
|
85
95
|
dry-initializer (~> 3.2)
|
|
86
96
|
dry-schema (~> 1.14)
|
|
87
97
|
zeitwerk (~> 2.6)
|
|
98
|
+
erb (5.0.1)
|
|
88
99
|
event_stream_parser (1.0.0)
|
|
89
100
|
faraday (2.13.1)
|
|
90
101
|
faraday-net_http (>= 2.0, < 3.5)
|
|
91
102
|
json
|
|
92
103
|
logger
|
|
93
|
-
faraday-multipart (1.1.
|
|
104
|
+
faraday-multipart (1.1.1)
|
|
94
105
|
multipart-post (~> 2.0)
|
|
95
106
|
faraday-net_http (3.4.1)
|
|
96
107
|
net-http (>= 0.5.0)
|
|
97
|
-
faraday-retry (2.3.
|
|
108
|
+
faraday-retry (2.3.2)
|
|
98
109
|
faraday (~> 2.0)
|
|
99
110
|
fiber-annotation (0.2.0)
|
|
100
111
|
fiber-local (1.1.0)
|
|
101
112
|
fiber-storage
|
|
102
113
|
fiber-storage (1.0.1)
|
|
103
114
|
forwardable (1.3.3)
|
|
115
|
+
grape (2.4.0)
|
|
116
|
+
activesupport (>= 6.1)
|
|
117
|
+
dry-types (>= 1.1)
|
|
118
|
+
mustermann-grape (~> 1.1.0)
|
|
119
|
+
rack (>= 2)
|
|
120
|
+
zeitwerk
|
|
104
121
|
graphql (2.5.9)
|
|
105
122
|
base64
|
|
106
123
|
fiber-storage
|
|
107
124
|
logger
|
|
125
|
+
hashdiff (1.2.0)
|
|
108
126
|
i18n (1.14.7)
|
|
109
127
|
concurrent-ruby (~> 1.0)
|
|
110
128
|
ice_nine (0.11.2)
|
|
111
129
|
io-event (1.11.0)
|
|
112
130
|
json (2.12.2)
|
|
131
|
+
jwt (2.10.1)
|
|
132
|
+
base64
|
|
113
133
|
language_server-protocol (3.17.0.5)
|
|
114
134
|
lint_roller (1.1.0)
|
|
115
135
|
logger (1.7.0)
|
|
116
136
|
method_source (1.1.0)
|
|
117
137
|
metrics (0.12.2)
|
|
138
|
+
mini_portile2 (2.8.9)
|
|
118
139
|
minitest (5.25.5)
|
|
140
|
+
mock_redis (0.50.0)
|
|
141
|
+
redis (~> 5)
|
|
142
|
+
multi_json (1.15.0)
|
|
119
143
|
multipart-post (2.4.1)
|
|
144
|
+
mustermann (3.0.3)
|
|
145
|
+
ruby2_keywords (~> 0.0.1)
|
|
146
|
+
mustermann-grape (1.1.0)
|
|
147
|
+
mustermann (>= 1.0.0)
|
|
120
148
|
net-http (0.6.0)
|
|
121
149
|
uri
|
|
122
150
|
open_router (0.3.3)
|
|
@@ -124,7 +152,6 @@ GEM
|
|
|
124
152
|
dotenv (>= 2)
|
|
125
153
|
faraday (>= 1)
|
|
126
154
|
faraday-multipart (>= 1)
|
|
127
|
-
ostruct (0.6.1)
|
|
128
155
|
parallel (1.27.0)
|
|
129
156
|
parser (3.3.8.0)
|
|
130
157
|
ast (~> 2.4.1)
|
|
@@ -136,21 +163,33 @@ GEM
|
|
|
136
163
|
pry-byebug (3.11.0)
|
|
137
164
|
byebug (~> 12.0)
|
|
138
165
|
pry (>= 0.13, < 0.16)
|
|
166
|
+
psych (5.2.6)
|
|
167
|
+
date
|
|
168
|
+
stringio
|
|
169
|
+
public_suffix (6.0.2)
|
|
139
170
|
racc (1.8.1)
|
|
140
|
-
rack (
|
|
171
|
+
rack (2.2.17)
|
|
172
|
+
rack-cors (2.0.2)
|
|
173
|
+
rack (>= 2.0.0)
|
|
174
|
+
rack-protection (3.2.0)
|
|
175
|
+
base64 (>= 0.1.0)
|
|
176
|
+
rack (~> 2.2, >= 2.2.4)
|
|
177
|
+
rack-test (2.2.0)
|
|
178
|
+
rack (>= 1.3)
|
|
179
|
+
rack-throttle (0.7.1)
|
|
180
|
+
bundler (>= 1.0.0)
|
|
181
|
+
rack (>= 1.0.0)
|
|
141
182
|
rainbow (3.1.1)
|
|
142
|
-
raix (0.9.2)
|
|
143
|
-
activesupport (>= 6.0)
|
|
144
|
-
faraday-retry (~> 2.0)
|
|
145
|
-
open_router (~> 0.2)
|
|
146
|
-
ostruct
|
|
147
|
-
ruby-openai (~> 7)
|
|
148
183
|
rake (13.3.0)
|
|
184
|
+
rdoc (6.14.1)
|
|
185
|
+
erb
|
|
186
|
+
psych (>= 4.0.0)
|
|
149
187
|
redis (5.4.0)
|
|
150
188
|
redis-client (>= 0.22.0)
|
|
151
189
|
redis-client (0.25.0)
|
|
152
190
|
connection_pool
|
|
153
191
|
regexp_parser (2.10.0)
|
|
192
|
+
rexml (3.4.1)
|
|
154
193
|
rspec (3.13.1)
|
|
155
194
|
rspec-core (~> 3.13.0)
|
|
156
195
|
rspec-expectations (~> 3.13.0)
|
|
@@ -199,7 +238,10 @@ GEM
|
|
|
199
238
|
faraday (>= 1)
|
|
200
239
|
faraday-multipart (>= 1)
|
|
201
240
|
ruby-progressbar (1.13.0)
|
|
241
|
+
ruby2_keywords (0.0.5)
|
|
202
242
|
securerandom (0.4.1)
|
|
243
|
+
sequel (5.93.0)
|
|
244
|
+
bigdecimal
|
|
203
245
|
sidekiq (7.3.9)
|
|
204
246
|
base64
|
|
205
247
|
connection_pool (>= 2.3.0)
|
|
@@ -212,7 +254,22 @@ GEM
|
|
|
212
254
|
simplecov_json_formatter (~> 0.1)
|
|
213
255
|
simplecov-html (0.13.1)
|
|
214
256
|
simplecov_json_formatter (0.1.4)
|
|
257
|
+
sinatra (3.2.0)
|
|
258
|
+
mustermann (~> 3.0)
|
|
259
|
+
rack (~> 2.2, >= 2.2.4)
|
|
260
|
+
rack-protection (= 3.2.0)
|
|
261
|
+
tilt (~> 2.0)
|
|
262
|
+
sinatra-contrib (3.2.0)
|
|
263
|
+
multi_json (>= 0.0.2)
|
|
264
|
+
mustermann (~> 3.0)
|
|
265
|
+
rack-protection (= 3.2.0)
|
|
266
|
+
sinatra (= 3.2.0)
|
|
267
|
+
tilt (~> 2.0)
|
|
215
268
|
singleton (0.3.0)
|
|
269
|
+
sqlite3 (1.7.3)
|
|
270
|
+
mini_portile2 (~> 2.8.0)
|
|
271
|
+
stringio (3.1.7)
|
|
272
|
+
tilt (2.6.0)
|
|
216
273
|
traces (0.15.2)
|
|
217
274
|
tzinfo (2.0.6)
|
|
218
275
|
concurrent-ruby (~> 1.0)
|
|
@@ -220,6 +277,10 @@ GEM
|
|
|
220
277
|
unicode-emoji (~> 4.0, >= 4.0.4)
|
|
221
278
|
unicode-emoji (4.0.4)
|
|
222
279
|
uri (1.0.3)
|
|
280
|
+
webmock (3.25.1)
|
|
281
|
+
addressable (>= 2.8.0)
|
|
282
|
+
crack (>= 0.3.2)
|
|
283
|
+
hashdiff (>= 0.4.0, < 2.0.0)
|
|
223
284
|
yard (0.9.37)
|
|
224
285
|
zeitwerk (2.7.3)
|
|
225
286
|
|
|
@@ -228,24 +289,38 @@ PLATFORMS
|
|
|
228
289
|
ruby
|
|
229
290
|
|
|
230
291
|
DEPENDENCIES
|
|
292
|
+
anthropic (~> 0.3)
|
|
231
293
|
async (~> 2.0)
|
|
232
|
-
bundler (~> 2.0)
|
|
233
294
|
desiru!
|
|
295
|
+
dotenv (~> 3.0)
|
|
234
296
|
dry-struct (~> 1.0)
|
|
235
297
|
dry-validation (~> 1.0)
|
|
236
298
|
faraday (~> 2.0)
|
|
237
299
|
faraday-retry (~> 2.0)
|
|
300
|
+
grape (~> 2.0)
|
|
238
301
|
graphql (~> 2.0)
|
|
302
|
+
jwt (~> 2.0)
|
|
303
|
+
mock_redis (~> 0.40)
|
|
304
|
+
open_router (~> 0.3)
|
|
239
305
|
pry (~> 0.14)
|
|
240
306
|
pry-byebug (~> 3.10)
|
|
241
|
-
|
|
307
|
+
rack-cors (~> 2.0)
|
|
308
|
+
rack-test (~> 2.0)
|
|
309
|
+
rack-throttle (~> 0.7)
|
|
242
310
|
rake (~> 13.0)
|
|
311
|
+
rdoc
|
|
243
312
|
redis (~> 5.0)
|
|
244
313
|
rspec (~> 3.0)
|
|
245
314
|
rubocop (~> 1.21)
|
|
246
315
|
rubocop-rake (~> 0.6)
|
|
247
316
|
rubocop-rspec (~> 2.0)
|
|
317
|
+
ruby-openai (~> 7.0)
|
|
318
|
+
sequel (~> 5.0)
|
|
248
319
|
simplecov (~> 0.22)
|
|
320
|
+
sinatra (~> 3.0)
|
|
321
|
+
sinatra-contrib (~> 3.0)
|
|
322
|
+
sqlite3 (~> 1.6)
|
|
323
|
+
webmock (~> 3.0)
|
|
249
324
|
yard (~> 0.9)
|
|
250
325
|
|
|
251
326
|
RUBY VERSION
|