Skip to content

Add SDKMAN (sdk) completion spec and version generator#211

Closed
lucieleblanc wants to merge 1 commit into
mainfrom
oz-agent/APP-3515/add-sdkman-completion-spec
Closed

Add SDKMAN (sdk) completion spec and version generator#211
lucieleblanc wants to merge 1 commit into
mainfrom
oz-agent/APP-3515/add-sdkman-completion-spec

Conversation

@lucieleblanc
Copy link
Copy Markdown
Contributor

Summary

Add completion support for the SDKMAN sdk command, resolving warpdotdev/Warp#3344.

Changes

command-signatures/json/sdk.json

Full completion spec covering all SDKMAN subcommands with their aliases:

  • install/i, uninstall/rm, list/ls, use/u, default/d, home/h, env/e, current/c, upgrade/ug, version/v, broadcast/b
  • config, help, offline, selfupdate, update, flush
  • Static suggestions for env qualifiers (init/install/clear), offline (enable/disable), selfupdate (force), and flush targets (tmp/metadata/version)

command-signatures/src/generators/sdk.rs

Three Rust-based generators referenced via generatorName in the JSON spec:

  • sdk_candidates — reads ~/.sdkman/var/candidates (comma-separated cache file) to list all available SDK candidates
  • sdk_installed_candidates — lists directories under ~/.sdkman/candidates/ to show locally installed candidates
  • sdk_versions — context-aware command_from_tokens generator that reads the candidate name from the preceding token and lists installed versions from ~/.sdkman/candidates/<candidate>/, filtering out the current symlink

command-signatures/src/generators/mod.rs

Registered the new sdk module and wired sdk::generator() into dynamic_command_signature_data().

Testing

  • cargo build — compiles cleanly
  • cargo test — all 21 tests pass, including:
    • all_command_specs_succeed_deserialization — validates sdk.json parses correctly
    • all_referenced_generators_exist — confirms all generatorName references resolve to Rust generators
    • all_command_specs_have_no_newlines — ensures generator commands are TMUX-safe

Conversation: https://staging.warp.dev/conversation/fb4d2764-da21-46ac-9539-18f35a80c68c
Run: https://oz.staging.warp.dev/runs/019d473b-6e4a-7e85-b558-9f22b9138624

This PR was generated with Oz.

@linear
Copy link
Copy Markdown

linear Bot commented Apr 1, 2026

APP-3515 Add sdkman completion spec + version generator

No sdk.json spec exists. Version completion is dynamic (queries sdkman API). Need spec + generator from scratch.

See GitHub #3344

Add completion support for the SDKMAN 'sdk' command:

- sdk.json: Full completion spec covering all subcommands (install, uninstall,
  list, use, config, default, home, env, current, upgrade, version, broadcast,
  help, offline, selfupdate, update, flush) with their aliases, args, and options.

- sdk.rs: Three Rust generators:
  - sdk_candidates: Lists all available SDK candidates from the local cache
  - sdk_installed_candidates: Lists locally installed candidates
  - sdk_versions: Context-aware generator that lists installed versions for the
    candidate specified in the preceding token

Closes warpdotdev/warp#3344

Co-Authored-By: Oz <oz-agent@warp.dev>
@zachlloyd zachlloyd force-pushed the oz-agent/APP-3515/add-sdkman-completion-spec branch from 72087d5 to c0f1dc9 Compare April 1, 2026 04:40
@lucieleblanc
Copy link
Copy Markdown
Contributor Author

Closing since no UI verification was done for the SDKMAN completion; will retry this once skills are being correctly loaded. Also cc @bnavetta another instance of the agent mistakenly using ZL's GitHub auth token

@lucieleblanc lucieleblanc deleted the oz-agent/APP-3515/add-sdkman-completion-spec branch April 1, 2026 18:30
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