Skip to content

feat(wizard): add Ruby & PHP as target SDKs - #60

Merged
itelo merged 1 commit into
mainfrom
itelo/eng-2927-wizard-add-ruby-php-sdk-support
Aug 25, 2026
Merged

feat(wizard): add Ruby & PHP as target SDKs#60
itelo merged 1 commit into
mainfrom
itelo/eng-2927-wizard-add-ruby-php-sdk-support

Conversation

@itelo

@itelo itelo commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

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.tsSdk gains 'ruby' | 'php'. detectSdk matches Gemfile/Gemfile.lock (ruby) and composer.json (php), and now returns null unless exactly one language matches (so a polyglot repo still prompts). Adds ruby_installer detection (bundler if a Gemfile exists, else gem).
  • installSeamSdkCommand — ruby → bundle add seam / gem install seam; php → composer require seamapi/seam.
  • analyze-project.ts — framework detection: Rails (bin/rails or config/application.rb), Laravel (artisan).
  • integrate.ts — the agent system-prompt language label now comes from an exhaustive Record<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.ts accepts them.

Verified package names (not guessed)

Remaining for the ENG-2920 payoff (separate tickets)

  • rails-pms / laravel-pms eval fixtures + Ruby/PHP import forms in the seamImported gate.
  • Confirm Rails/Laravel example apps exist in the seam-docs MCP (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 lint clean
  • npm run typecheck clean (Record exhaustiveness confirms every switch is updated)
  • npm test — 167 passed (+9: ruby/php detection, installers, multi-language ambiguity)

Security & Compliance

  • No security impact

🤖 Generated with Claude Code

@itelo
itelo requested a review from razor-x as a code owner August 24, 2026 19:39
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
itelo force-pushed the itelo/eng-2927-wizard-add-ruby-php-sdk-support branch from 07e8af8 to e63c185 Compare August 25, 2026 13:05
@itelo
itelo merged commit 6cf8d86 into main Aug 25, 2026
11 checks passed
@itelo
itelo deleted the itelo/eng-2927-wizard-add-ruby-php-sdk-support branch August 25, 2026 13:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant