Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
137 commits
Select commit Hold shift + click to select a range
28f783e
chore(internal): version bump (#42)
stainless-app[bot] Apr 5, 2025
b35580a
feat: support query, header, and body params that have identical name…
stainless-app[bot] Apr 8, 2025
9ba40fb
feat: allow all valid `JSON` types to be encoded (#45)
stainless-app[bot] Apr 8, 2025
6d4d5b8
chore: rename confusing `Type::BooleanModel` to `Type::Boolean` (#46)
stainless-app[bot] Apr 8, 2025
2d5c28e
fix: converter should transform stringio into string where applicable…
stainless-app[bot] Apr 8, 2025
7973e72
chore(internal): misc small improvements (#48)
stainless-app[bot] Apr 8, 2025
89910f5
chore(internal): run rubocop linter in parallel (#49)
stainless-app[bot] Apr 8, 2025
126f259
chore(internal): rubocop rules (#50)
stainless-app[bot] Apr 8, 2025
3a9c8bf
chore: always fold up method bodies in sorbet type definitions (#51)
stainless-app[bot] Apr 8, 2025
10f4fc6
chore: update yard comment formatting (#52)
stainless-app[bot] Apr 8, 2025
749dd97
chore(internal): more concise handling of parameter naming conflicts …
stainless-app[bot] Apr 8, 2025
cf98683
chore: make client tests look prettier (#54)
stainless-app[bot] Apr 9, 2025
c9b1d3b
chore: add README docs for using solargraph when installing gem from …
stainless-app[bot] Apr 9, 2025
d215aee
feat: use Pathname alongside raw IO handles for file uploads (#56)
stainless-app[bot] Apr 9, 2025
05edcf8
fix: raise connection error for errors that result from HTTP transpor…
stainless-app[bot] Apr 9, 2025
5f7ec21
chore: loosen const and integer coercion rules (#58)
stainless-app[bot] Apr 9, 2025
10667f3
chore: ensure readme.md is bumped when release please updates versions
stainless-app[bot] Apr 10, 2025
f42785b
fix(internal): update release-please to use ruby strategy for README.md
stainless-app[bot] Apr 10, 2025
12c39d3
chore(internal): expand CI branch coverage
stainless-app[bot] Apr 10, 2025
1b6772e
chore: fix readme typo
stainless-app[bot] Apr 10, 2025
c77e970
chore(internal): reduce CI branch coverage
stainless-app[bot] Apr 10, 2025
4e2b9ca
fix: inaccuracies in the README.md
stainless-app[bot] Apr 12, 2025
f3d8de6
chore: make internal types pretty print
stainless-app[bot] Apr 15, 2025
a4ab1ff
chore(internal): minor touch ups on sdk internals
stainless-app[bot] Apr 15, 2025
52fe8ba
chore(internal): loosen internal type restrictions
stainless-app[bot] Apr 15, 2025
37f21a8
chore(internal): mostly README touch ups
stainless-app[bot] Apr 15, 2025
dc4f904
docs: update documentation links to be more uniform
stainless-app[bot] Apr 15, 2025
5d4c89a
chore(internal): always run post-processing when formatting when synt…
stainless-app[bot] Apr 15, 2025
dbf9a70
chore(internal): protect SSE parsing pipeline from broken UTF-8 chara…
stainless-app[bot] Apr 16, 2025
4f1e8e2
feat(client): enable setting base URL from environment variable
stainless-app[bot] Apr 17, 2025
ecc5e68
fix(client): send correct HTTP path
stainless-app[bot] Apr 18, 2025
0f9728a
fix: restore ability to configure server environment as string during…
stainless-app[bot] Apr 18, 2025
f5471b0
chore(internal): contribute.md and contributor QoL improvements
stainless-app[bot] Apr 18, 2025
fece7cf
fix: always send idempotency header when specified as a request option
stainless-app[bot] Apr 18, 2025
27c96f0
chore: refine `#inspect` and `#to_s` for model classes
stainless-app[bot] Apr 18, 2025
2d35e00
chore: make sorbet enums easier to read
stainless-app[bot] Apr 19, 2025
b6c473a
chore: use `@!method` instead of `@!parse` for virtual method type de…
stainless-app[bot] Apr 19, 2025
2596eac
chore: simplify yard annotations by removing most `@!parse` directives
stainless-app[bot] Apr 19, 2025
4ab0bd6
chore: documentation improvements
stainless-app[bot] Apr 19, 2025
c2d963d
feat: implement `#hash` for data containers
stainless-app[bot] Apr 19, 2025
b432ce7
chore: update README with recommended editor plugins
stainless-app[bot] Apr 19, 2025
da30dff
chore: explicitly mark apis public under `Internal` module
stainless-app[bot] Apr 19, 2025
aae606e
chore(internal): minor type annotation improvements
stainless-app[bot] Apr 22, 2025
c6653db
chore(ci): add timeout thresholds for CI jobs
stainless-app[bot] Apr 23, 2025
bee0a08
chore(internal): codegen related update
stainless-app[bot] Apr 24, 2025
ef3471d
chore(ci): only use depot for staging repos
stainless-app[bot] Apr 24, 2025
451aae2
chore: broadly detect json family of content-type headers
stainless-app[bot] Apr 24, 2025
44909cf
feat: support webmock for testing
stainless-app[bot] Apr 25, 2025
98119ae
chore: show truncated parameter docs in yard
stainless-app[bot] Apr 25, 2025
291d316
feat: support specifying content-type with FilePart class
stainless-app[bot] Apr 25, 2025
fdfbf93
chore(internal): improve response envelope unwrap functionality
stainless-app[bot] Apr 25, 2025
25efbf7
fix: ensure gem release is unaffected by renaming
stainless-app[bot] Apr 26, 2025
4057679
fix: make a typo for `FilePart.content`
stainless-app[bot] Apr 26, 2025
d39641a
chore(internal): remove unnecessary `rbi/lib` folder
stainless-app[bot] Apr 29, 2025
438f943
chore: more accurate type annotations and aliases
stainless-app[bot] Apr 29, 2025
c7253ab
chore(internal): annotate request options with type aliases in sorbet
stainless-app[bot] Apr 29, 2025
d02c8b2
chore: add generator safe directory
stainless-app[bot] Apr 29, 2025
27277d1
chore: loosen rubocop rules that don't always make sense
stainless-app[bot] Apr 30, 2025
b29e255
chore(internal): codegen related update
stainless-app[bot] May 1, 2025
d5bd829
chore: remove Gemfile.lock during bootstrap
stainless-app[bot] May 2, 2025
efba0fd
chore: reorganize type aliases
stainless-app[bot] May 2, 2025
d346468
chore: re-export top level models under library namespace
stainless-app[bot] May 2, 2025
041d9f2
chore: validate request option coercion correctness
stainless-app[bot] May 2, 2025
b533d72
chore(internal): codegen related update
stainless-app[bot] May 3, 2025
8b0412d
chore(internal): codegen related update
stainless-app[bot] May 6, 2025
ad86138
docs: illustrate environmental defaults for auth variables
stainless-app[bot] May 6, 2025
3350dc9
chore: accept all nd-json mimetype variants
stainless-app[bot] May 6, 2025
d84983c
chore(internal): codegen related update
stainless-app[bot] May 7, 2025
beb4a3b
fix(internal): fix formatting script for macos
stainless-app[bot] May 7, 2025
ecdab13
chore: revert ignoring Gemfile.lock
stainless-app[bot] May 7, 2025
63636d2
fix(internal): ensure formatting always uses c.utf-8 locale
stainless-app[bot] May 8, 2025
c5554f0
feat: support sorbet aliases at the runtime
stainless-app[bot] May 13, 2025
5983bea
chore: fix misc linting / minor issues
stainless-app[bot] May 13, 2025
6204fee
feat: expose recursive `#to_h` conversion
stainless-app[bot] May 13, 2025
3c95282
feat: expose base client options as read only attributes
stainless-app[bot] May 13, 2025
e8ff0ff
fix(internal): update gemspec name
stainless-app[bot] May 14, 2025
91efac6
feat: bump default connection pool size limit to minimum of 99
stainless-app[bot] May 15, 2025
5d80ac7
docs: rewrite much of README.md for readability
stainless-app[bot] May 15, 2025
ba94f92
chore: whitespaces
stainless-app[bot] May 21, 2025
3b7ec7b
fix: correctly instantiate sorbet type aliases for enums and unions
stainless-app[bot] May 21, 2025
909bbbb
chore: use sorbet union aliases where available
stainless-app[bot] May 21, 2025
b14560d
chore: refine Yard and Sorbet types and ensure linting is turned on f…
stainless-app[bot] May 21, 2025
a8363d4
chore(docs): grammar improvements
stainless-app[bot] May 22, 2025
81b0d4b
chore: force utf-8 locale via `RUBYOPT` when formatting
stainless-app[bot] May 22, 2025
41b0ab4
chore: use fully qualified names for yard annotations and rbs aliases
stainless-app[bot] May 22, 2025
9b26509
fix: prevent rubocop from mangling `===` to `is_a?` check
stainless-app[bot] May 24, 2025
43bc35d
fix: sorbet types for enums, and make tapioca detection ignore `tapio…
stainless-app[bot] May 28, 2025
448244f
fix: `to_sorbet_type` should not return branded types
stainless-app[bot] Jun 3, 2025
176266c
feat(api): api update
stainless-app[bot] Jul 17, 2025
b07254b
chore: configure new SDK language
stainless-app[bot] Sep 6, 2025
2d51a26
codegen metadata
stainless-app[bot] Sep 6, 2025
2fa1408
codegen metadata
stainless-app[bot] Sep 17, 2025
bc2f723
chore(internal): codegen related update
stainless-app[bot] Oct 8, 2025
9a89eac
chore(internal): codegen related update
stainless-app[bot] Oct 9, 2025
f64394b
fix: should not reuse buffers for `IO.copy_stream` interop
stainless-app[bot] Oct 15, 2025
48633de
chore(internal): codegen related update
stainless-app[bot] Oct 16, 2025
feddfca
chore(internal): codegen related update
stainless-app[bot] Oct 24, 2025
de5221c
chore(internal): codegen related update
stainless-app[bot] Nov 4, 2025
7e47a65
chore(internal): codegen related update
stainless-app[bot] Nov 5, 2025
188ec12
feat(api): api update
stainless-app[bot] Jan 24, 2026
9cdad6c
codegen metadata
stainless-app[bot] Jan 24, 2026
7cd847e
codegen metadata
stainless-app[bot] Jan 24, 2026
eea6430
codegen metadata
stainless-app[bot] Jan 24, 2026
78f9382
codegen metadata
stainless-app[bot] Jan 24, 2026
ee600c1
codegen metadata
stainless-app[bot] Jan 24, 2026
66de4e4
codegen metadata
stainless-app[bot] Jan 24, 2026
624fc7c
codegen metadata
stainless-app[bot] Jan 24, 2026
d66acf5
codegen metadata
stainless-app[bot] Jan 24, 2026
5209f8f
codegen metadata
stainless-app[bot] Jan 24, 2026
428cc48
codegen metadata
stainless-app[bot] Jan 24, 2026
ae032b6
codegen metadata
stainless-app[bot] Jan 24, 2026
d5e5e93
codegen metadata
stainless-app[bot] Jan 24, 2026
2836f6a
codegen metadata
stainless-app[bot] Jan 24, 2026
836c970
codegen metadata
stainless-app[bot] Jan 25, 2026
ccd6206
codegen metadata
stainless-app[bot] Jan 25, 2026
093106d
codegen metadata
stainless-app[bot] Jan 25, 2026
7194a36
codegen metadata
stainless-app[bot] Jan 25, 2026
8573ed7
codegen metadata
stainless-app[bot] Jan 25, 2026
824c5ac
codegen metadata
stainless-app[bot] Jan 25, 2026
a323b0f
codegen metadata
stainless-app[bot] Jan 25, 2026
ca376b5
codegen metadata
stainless-app[bot] Jan 25, 2026
57fcecd
codegen metadata
stainless-app[bot] Jan 25, 2026
dda9255
codegen metadata
stainless-app[bot] Jan 25, 2026
7c57390
codegen metadata
stainless-app[bot] Jan 25, 2026
0bd1723
codegen metadata
stainless-app[bot] Jan 25, 2026
40fa6f6
codegen metadata
stainless-app[bot] Jan 25, 2026
6384252
codegen metadata
stainless-app[bot] Jan 25, 2026
ca3dd79
codegen metadata
stainless-app[bot] Jan 25, 2026
7988b28
codegen metadata
stainless-app[bot] Jan 25, 2026
2f6ffd3
codegen metadata
stainless-app[bot] Jan 25, 2026
aec4c2f
codegen metadata
stainless-app[bot] Jan 25, 2026
5644164
codegen metadata
stainless-app[bot] Jan 26, 2026
7b3cd44
codegen metadata
stainless-app[bot] Jan 26, 2026
4e1f380
codegen metadata
stainless-app[bot] Jan 26, 2026
7cef6cc
codegen metadata
stainless-app[bot] Jan 26, 2026
154f4ff
codegen metadata
stainless-app[bot] Jan 26, 2026
f074837
release: 0.1.0-alpha.5
stainless-app[bot] Jan 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
30 changes: 17 additions & 13 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,42 +1,46 @@
name: CI
on:
push:
branches:
- main
branches-ignore:
- 'generated'
- 'codegen/**'
- 'integrated/**'
- 'stl-preview-head/**'
- 'stl-preview-base/**'
pull_request:
branches:
- main
- next
branches-ignore:
- 'stl-preview-head/**'
- 'stl-preview-base/**'

jobs:
lint:
timeout-minutes: 10
name: lint
runs-on: ubuntu-latest

runs-on: ${{ github.repository == 'stainless-sdks/hanzo-ai-ruby' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
if: github.event_name == 'push' || github.event.pull_request.head.repo.fork

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
bundler-cache: false
ruby-version: '3.1'
- run: |-
bundle install

- name: Run lints
run: ./scripts/lint
test:
timeout-minutes: 10
name: test
runs-on: ubuntu-latest

runs-on: ${{ github.repository == 'stainless-sdks/hanzo-ai-ruby' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
if: github.event_name == 'push' || github.event.pull_request.head.repo.fork
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
bundler-cache: false
ruby-version: '3.1'
- run: |-
bundle install

Expand Down
5 changes: 2 additions & 3 deletions .github/workflows/publish-gem.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# This workflow is triggered when a GitHub release is created.
# It can also be run manually to re-publish to rubygems.org in case it failed for some reason.
# You can run this workflow by navigating to https://www.github.com/hanzoai/python-sdk/actions/workflows/publish-gem.yml
# You can run this workflow by navigating to https://www.github.com/hanzoai/ruby-sdk/actions/workflows/publish-gem.yml
name: Publish Gem
on:
workflow_dispatch:
Expand All @@ -14,12 +14,11 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
bundler-cache: false
ruby-version: '3.1'
- run: |-
bundle install

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-doctor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
if: github.repository == 'hanzoai/ruby-sdk' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || startsWith(github.head_ref, 'release-please') || github.head_ref == 'next')

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6

- name: Check release environment
run: |
Expand Down
6 changes: 3 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
*.gem
.idea/
.ignore
.prism.log
.ruby-lsp/
.yardoc/
Brewfile.lock.json
bin/tapioca
Brewfile.lock.json
doc/
sorbet/*
!/sorbet/config
sorbet/tapioca/*
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.1.0-alpha.4"
".": "0.1.0-alpha.5"
}
47 changes: 40 additions & 7 deletions .rubocop.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# yaml-language-server: $schema=https://www.rubyschema.org/rubocop.json
---
# Explicitly disable pending cops for now. This is the default behaviour but
# this avoids a large warning every time we run it.
Expand All @@ -8,7 +9,7 @@ AllCops:
- "bin/*"
NewCops: enable
SuggestExtensions: false
TargetRubyVersion: 3.1.0
TargetRubyVersion: 3.2

# Whether MFA is required or not should be left to the token configuration.
Gemspec/RequireMFA:
Expand Down Expand Up @@ -39,7 +40,9 @@ Layout/LineLength:
AllowedPatterns:
- "^\\s*#.*$"
- ^require(_relative)?
- "Hanzoai::(Models|Resources)::"
- "Hanzoai::Internal::Type::BaseModel$"
- "^\\s*[A-Z0-9_]+ = :"
- "Hanzoai::(Models|Resources|Test)::"
Max: 110

Layout/MultilineArrayLineBreaks:
Expand All @@ -61,12 +64,22 @@ Layout/MultilineMethodParameterLineBreaks:
# Prefer compact hash literals.
Layout/SpaceInsideHashLiteralBraces:
EnforcedStyle: no_space
Exclude:
- "**/*.rbi"

Lint/BooleanSymbol:
Enabled: false

# This option occasionally mangles identifier names
Lint/DeprecatedConstants:
Exclude:
- "**/*.rbi"

# We use pattern assertion in tests to ensure correctness.
Lint/DuplicateMatchPattern:
Exclude:
- "test/**/*"

# Fairly useful in tests for pattern assertions.
Lint/EmptyInPattern:
Exclude:
Expand All @@ -80,6 +93,10 @@ Lint/MissingSuper:
Exclude:
- "**/*.rbi"

Lint/SymbolConversion:
Exclude:
- "**/*.rbi"

# Disabled for safety reasons, this option changes code semantics.
Lint/UnusedMethodArgument:
AutoCorrect: false
Expand All @@ -96,40 +113,48 @@ Metrics/AbcSize:
Metrics/BlockLength:
AllowedPatterns:
- assert_pattern
- type_alias
- define_sorbet_constant!
Exclude:
- "**/*.rbi"

Metrics/ClassLength:
Enabled: false

Metrics/CollectionLiteralLength:
Exclude:
- "test/**/*"

Metrics/CyclomaticComplexity:
Enabled: false

Metrics/MethodLength:
Enabled: false

Metrics/ModuleLength:
Exclude:
- "**/*.rbi"
Enabled: false

Metrics/ParameterLists:
Enabled: false

Metrics/PerceivedComplexity:
Enabled: false

Naming/AccessorMethodName:
Enabled: false

# Need to preserve block identifier for documentation.
Naming/BlockForwarding:
Enabled: false

# Underscores are generally useful for disambiguation.
Naming/ClassAndModuleCamelCase:
Exclude:
- "**/*.rbi"
Enabled: false

Naming/MethodParameterName:
Enabled: false

Naming/PredicateName:
Naming/PredicatePrefix:
Exclude:
- "**/*.rbi"

Expand Down Expand Up @@ -164,6 +189,9 @@ Style/ClassAndModuleChildren:
Exclude:
- "test/**/*"

Style/CommentAnnotation:
Enabled: false

# We should go back and add these docs, but ignore for now.
Style/Documentation:
Enabled: false
Expand Down Expand Up @@ -232,6 +260,10 @@ Style/RedundantInitialize:
Exclude:
- "**/*.rbi"

Style/RedundantParentheses:
Exclude:
- "**/*.rbi"

# Prefer slashes for regex literals.
Style/RegexpLiteral:
EnforcedStyle: slashes
Expand All @@ -243,6 +275,7 @@ Style/SafeNavigation:
Style/SignalException:
Exclude:
- Rakefile
- "**/*.rake"

# We use these sparingly, where we anticipate future branches for the
# inner conditional.
Expand Down
1 change: 1 addition & 0 deletions .ruby-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3.2.0
1 change: 1 addition & 0 deletions .solargraph.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ include:
- 'Rakefile'
- 'examples/**/*.rb'
- 'lib/**/*.rb'
- 'test/hanzoai/resource_namespaces.rb'
- 'test/hanzoai/test_helper.rb'
exclude:
- 'rbi/**/*'
8 changes: 4 additions & 4 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 188
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hanzo-industries-inc%2FHanzo-AI-ec4be99f95dc46e9442eb60f233b2bff271d6f5bf57d7c61a52bc4804f55bbd1.yml
openapi_spec_hash: 87bc62c36bb6028ffd1f3e54a2809099
config_hash: 830747463ff4d018b5633ce511e88558
configured_endpoints: 187
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hanzo-industries-inc%2Fhanzo-ai-971e209e1a47262e17483e5ac0d91e8013d10237ac89d6392ffabb5912ce83b9.yml
openapi_spec_hash: 029e800ed42f138d5b63bb4f40181c55
config_hash: e927bafd76a1eace11894efc3517d245
2 changes: 2 additions & 0 deletions .yardopts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
--type-name-tag generic:Generic
--default-return void
--markup markdown
--markup-provider redcarpet
--exclude /rbi
Expand Down
Loading
Loading