Skip to content

Wire readCodexMarketplaceFiles into ASM list/search for available Codex plugins #152

@luongnv89

Description

@luongnv89

Type

feature (high confidence)

Description

readCodexMarketplaceFiles() was introduced in PR #151 to read available (not necessarily installed) Codex plugin entries from ~/.agents/plugins/marketplace.json and .agents/plugins/marketplace.json. The function is fully implemented, exported, and tested, but it is deliberately not wired into scanAllSkills() because its return type (CodexMarketplaceEntry[]) does not match SkillInfo[] — and fabricating path, realPath, and dirName for plugins that are not installed on disk would be incorrect.

The result is that ASM currently has no way to surface available Codex plugins (those listed in a marketplace file but not yet installed in the cache). Users can only see installed plugins via the cache scan.

Related components

  • src/scanner.tsreadCodexMarketplaceFiles(), scanAllSkills()
  • src/utils/types.tsCodexMarketplaceEntry, SkillInfo
  • CLI commands: asm list, asm search, potentially a new asm marketplace list

Related issues / PRs

Reporter Context

readCodexMarketplaceFiles is exported and fully tested but is never called from scanAllSkills. This is a design limitation: the function returns CodexMarketplaceEntry[] (name, source, version, description only) — plugins that are available but not necessarily installed. Wiring it into scanAllSkills would require fabricating path, realPath, dirName, etc. for plugins that don't exist on disk, which would be incorrect. The function is correctly positioned for a future asm marketplace list-style command.

Acceptance Criteria

  • asm marketplace list (or equivalent sub-command) reads ~/.agents/plugins/marketplace.json and .agents/plugins/marketplace.json and outputs available Codex plugins, indicating which are already installed (present in the cache) — (high confidence)
  • Available-but-not-installed plugins are clearly distinguished in output from installed plugins (e.g., a distinct status column or provider label such as "Codex Plugin (available)") — (medium confidence)
  • readCodexMarketplaceFiles is called from the new command path; scanAllSkills remains unchanged (installed-only scan) — (high confidence)
  • Existing scanAllSkills tests and the 7 readCodexMarketplaceFiles unit tests continue to pass without modification — (high confidence)

Metadata

  • Priority: medium
  • Effort: M
  • Suggested labels: enhancement, codex, cli

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions