chore(stainless): add ruby/go/csharp/php/cli targets and sync resources#518
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This stack of pull requests is managed by Graphite. Learn more about stacking. |
Greptile SummaryThis PR extends the Stainless SDK configuration with five new target languages (Ruby, Go, C#, PHP, CLI) and synchronises resource definitions: adds a top-level
Confidence Score: 4/5Safe to merge with the caveat that the PHP composer_package_name placeholder must be resolved before the PHP target is published. The bulk of the change is mechanical YAML configuration: new SDK targets (all with publication disabled and production_repo: null) and resource/model additions that mirror the OpenAPI spec. The only concrete problem is that the PHP target carries org-placeholder/grid as its Composer package name, which would publish under the wrong vendor if left unchanged. Every other language target looks complete. .stainless/stainless.yml — specifically the composer_package_name field under the php target block.
|
| Filename | Overview |
|---|---|
| .stainless/stainless.yml | Adds ruby/go/csharp/php/cli SDK targets and syncs resource models/methods; PHP target contains a placeholder composer_package_name: org-placeholder/grid that needs to be replaced before publication. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[stainless.yml config] --> B[Existing targets]
A --> C[New targets added]
B --> B1[typescript]
B --> B2[kotlin]
B --> B3[python]
C --> C1[ruby\nedition: ruby.2025-10-08]
C --> C2[go\nedition: go.2026-04-15]
C --> C3[csharp\nedition: csharp.2025-10-08]
C --> C4[php\nedition: php.2025-10-08\ncomposer_package_name: org-placeholder/grid]
C --> C5[cli\nedition: cli.2025-10-08]
A --> D[Resource changes]
D --> D1[config: + embedded_wallet_config]
D --> D2[customers: generate_kyc_link]
D --> D3[cards: new top-level resource]
D --> D4[sandbox.cards.simulate]
D --> D5[agents: + restrictions + thresholds]
D --> D6[auth.credentials: + 3 verify request models]
D --> D7[$shared: + slv / swift schemas]
Prompt To Fix All With AI
Fix the following 1 code review issue. Work through them one at a time, proposing concise fixes.
---
### Issue 1 of 1
.stainless/stainless.yml:71
**Placeholder composer package name**
`composer_package_name: org-placeholder/grid` is an explicit placeholder. Composer (PHP's package manager) uses `vendor/package` naming, and the vendor segment here is clearly not the real organization name. If this config is consumed by Stainless to generate or publish the PHP SDK, the package will be registered under the wrong vendor name, making it undiscoverable and unusable by PHP consumers via `composer require`.
Reviews (1): Last reviewed commit: "chore(stainless): add ruby/go/csharp/php..." | Re-trigger Greptile
| edition: php.2025-10-08 | ||
| package_name: grid | ||
| production_repo: null | ||
| composer_package_name: org-placeholder/grid |
There was a problem hiding this comment.
Placeholder composer package name
composer_package_name: org-placeholder/grid is an explicit placeholder. Composer (PHP's package manager) uses vendor/package naming, and the vendor segment here is clearly not the real organization name. If this config is consumed by Stainless to generate or publish the PHP SDK, the package will be registered under the wrong vendor name, making it undiscoverable and unusable by PHP consumers via composer require.
Prompt To Fix With AI
This is a comment left during a code review.
Path: .stainless/stainless.yml
Line: 71
Comment:
**Placeholder composer package name**
`composer_package_name: org-placeholder/grid` is an explicit placeholder. Composer (PHP's package manager) uses `vendor/package` naming, and the vendor segment here is clearly not the real organization name. If this config is consumed by Stainless to generate or publish the PHP SDK, the package will be registered under the wrong vendor name, making it undiscoverable and unusable by PHP consumers via `composer require`.
How can I resolve this? If you propose a fix, please make it concise.fe1705f to
f84586d
Compare
f84586d to
a00d279
Compare
a00d279 to
041978e
Compare
There was a problem hiding this comment.
041978e is a pure rebase onto 501fdaa. Approving based on @bsiaotickchong's previous approval of a00d279.

Summary
Updates the Stainless config to reflect the current API surface and adds five new SDK targets.
New SDK targets
ruby(gemgrid, rubygems publish disabled)go(packagegrid)csharp(packagegrid, nuget publish disabled)php(packagegrid, composerorg-placeholder/grid)cli(binarygrid)All have
production_repo: nullfor now.Resource sync
config.models: addembedded_wallet_configsandbox: addcards.simulatesubresource (authorization/clearing/return) with associated card simulation models$shared: addslv_external_account_create_info,slv_beneficiary,swift_external_account_create_infocustomers.methods: addgenerate_kyc_link: post /customers/{customerId}/kyc-linkagents: addagent_account_restrictions,agent_approval_thresholdscardsresource (issue / list / retrieve / update)Auth credential verify-request aliases — intentionally omitted
email_otp_credential_verify_request,oauth_credential_verify_request, andpasskey_credential_verify_requestare not added as model aliases. The auth verify-request schemas are defined as:Two existing
openapi.transforms(lines strippingtypefromAuthCredentialVerifyRequest.properties, then removing the$reffromallOf[0]of each verify variant) reduce these to structurally equivalent to theirFieldssiblings. Stainless collapses the allOf and emits only the<X>CredentialVerifyRequestFieldstypes incredentials.ts, so a model alias pointing to<X>CredentialVerifyRequestwould generate broken imports (TS2724/TS2552inauth.ts,credentials.ts,index.ts).The create-side aliases work because
AuthCredentialCreateRequestretains a non-typefield (accountId) after the transform, so its variants don't collapse.Other
organization.docs:docs.lightspark.com→grid.lightspark.com. Worth a second look — recent commits (Replace grid.lightspark.com with docs.lightspark.com #513, fix: fixing umaaas urls after url migration #514) migrated away fromgrid.lightspark.comin the docs. Confirm this is intentional before merging.Notes
Stacked on top of #517 (document request body refactor); no code dependency between the two — sequencing is just chronological.