feat(wizard): add Ruby & PHP as target SDKs - #60
Merged
Conversation
Extends the wizard beyond JavaScript + Python so it can integrate Seam into Rails (Ruby) and Laravel (PHP) projects. Unblocks the Rails/Laravel eval fixtures tracked in ENG-2920. - Sdk type gains 'ruby' | 'php'. detectSdk now matches Gemfile/Gemfile.lock (ruby) and composer.json (php), and returns null unless exactly one language matches (ambiguous → the wizard asks). - installSeamSdkCommand: ruby → `bundle add seam` (or `gem install seam` with no Gemfile), php → `composer require seamapi/seam`. New ruby_installer detection. - Framework detection: Rails (bin/rails or config/application.rb), Laravel (artisan). - System-prompt language label via an exhaustive Record<Sdk,string>. - SDK picker offers Ruby and PHP; preferred-SDK config accepts them. Package names verified: rubygems `seam`, packagist `seamapi/seam`.
itelo
force-pushed
the
itelo/eng-2927-wizard-add-ruby-php-sdk-support
branch
from
August 25, 2026 13:05
07e8af8 to
e63c185
Compare
5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implements the wizard-side of ENG-2927: Ruby and PHP become first-class target languages, so the wizard can integrate Seam into Rails and Laravel projects. This unblocks the Rails/Laravel eval fixtures noted in ENG-2920.
Changes
detect-project.ts—Sdkgains'ruby' | 'php'.detectSdkmatchesGemfile/Gemfile.lock(ruby) andcomposer.json(php), and now returnsnullunless exactly one language matches (so a polyglot repo still prompts). Addsruby_installerdetection (bundlerif a Gemfile exists, elsegem).installSeamSdkCommand— ruby →bundle add seam/gem install seam; php →composer require seamapi/seam.analyze-project.ts— framework detection: Rails (bin/railsorconfig/application.rb), Laravel (artisan).integrate.ts— the agent system-prompt language label now comes from an exhaustiveRecord<Sdk, string>(a new language must add its label or tsc fails).app.tsx— the "Which SDK?" picker offers Ruby and PHP (preferred SDK floats to top);config-store.tsaccepts them.Verified package names (not guessed)
seam— rubygems · seamapi/ruby (bundle add seam)seamapi/seam— packagist · seamapi/php (composer require seamapi/seam)Remaining for the ENG-2920 payoff (separate tickets)
rails-pms/laravel-pmseval fixtures + Ruby/PHP import forms in theseamImportedgate.get_example_app) so the agent has a reference to model on. (I couldn't verify via the docs MCP this session — it returned a backend error.)Testing
npm run lintcleannpm run typecheckclean (Record exhaustiveness confirms every switch is updated)npm test— 167 passed (+9: ruby/php detection, installers, multi-language ambiguity)Security & Compliance
🤖 Generated with Claude Code