feat: Pass adapter to the wizard - #614
Merged
Merged
Conversation
razor-x
commented
Aug 12, 2026
This was referenced Aug 12, 2026
The CLI mounts the wizard, owns the login, and owns where files go, so it answers for all three. createWizardAdapter hands over the endpoint and workspace resolveAuth resolved, and an API key or nothing: the wizard only uses an API key, and only a workspace-scoped one may go in a project's .env, so a personal access token is not passed at all. Its two files are named where the wizard is mounted, off the config's rootPaths: wizard.json beside cli.json in the config and state directories. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QCJ1v1NFc6b43GooAhij2c
razor-x
force-pushed
the
claude/wizard-file-store-cli-4njgxv
branch
from
August 12, 2026 04:59
342f7de to
60b27fc
Compare
razor-x
marked this pull request as ready for review
August 12, 2026 05:02
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
The CLI mounts the wizard as
seam wizard, owns the login, and owns where files go. It now answers for all three, so the wizard asks rather than working them out for itself.Two files:
createWizardAdapterbeside therunWizardthat hands it over, and its test. Built on@seamapi/wizard@0.7.0, and on #619, now inmain.The contract
getAuthpasses on the endpoint and workspaceresolveAuthresolved — a flag over the environment over what is stored — and an API key, or nothing. The wizard only ever uses an API key, and only a workspace-scoped one may go in a project's.env, so a personal access token is not passed at all.isApiKeyis@seamapi/http's own predicate, the oneseam loginvalidates with, so the two cannot disagree about what a token is.configandstatewrap one JSON file each in the two methods the wizard reads and writes through:wizard.jsonbesidecli.json, in the config and state directories, named off the config'srootPathswhere the wizard is mounted.The store and both paths are parameters with defaults, so a test hands it a memory config and a temp directory — the convention
login()uses.What the wizard does with it
apiKey: nullapiKey: null,workspaceIdapiKeyOnce seamapi/wizard#7 lands. Until then the wizard accepts the adapter and does not read it, so this changes nothing for anyone.
Verified
seam loginwith a stored key, then the adapter built and driven end to end:179 tests pass against the published
0.7.0.