Files
oh-my-opencode/src/cli/config-manager/AGENTS.md
T
YeonGyu-Kim 7b7526e2f6 docs(src): update counts across tools, features, config, cli AGENTS.md
- tools: 15 -> 16 dirs, writing model kimi-k2p5 -> gemini-3-flash
- features: builtin skills 6 -> 8 (+review-work, +ai-slop-remover)
- config: schema files 24 -> 27 (+git-env-prefix, model-capabilities, openclaw)
- cli: commands 5 -> 6 (+refresh-model-capabilities)
- plugin-handlers: 13 -> 14 non-test files
- shared: 95+ -> 100+ utility files
2026-04-05 14:12:31 +09:00

2.6 KiB

src/cli/config-manager/ — CLI Installation Utilities

Generated: 2026-04-05

OVERVIEW

20 files. Stateless utility functions for the install command. Handles OpenCode config manipulation, provider configuration, JSONC operations, binary detection, and npm registry queries. No class — flat utility collection.

FILE CATALOG

File Purpose
add-plugin-to-opencode-config.ts Register oh-my-opencode in .opencode/opencode.json plugin array
add-provider-config.ts Add provider API key to OpenCode config (user-level)
antigravity-provider-configuration.ts Handle Antigravity provider setup (special case)
auth-plugins.ts Detect auth plugin requirements per provider (oauth vs key)
bun-install.ts Run bun install / npm install for plugin setup
config-context.ts ConfigContext — shared config state across install steps
deep-merge-record.ts Deep merge utility for JSONC config objects
detect-current-config.ts Read existing OpenCode config, detect installed plugins
ensure-config-directory-exists.ts Create .opencode/ dir if missing
format-error-with-suggestion.ts Format errors with actionable suggestions
generate-omo-config.ts Generate oh-my-opencode.jsonc from install selections
jsonc-provider-editor.ts Read/write JSONC files with comment preservation
npm-dist-tags.ts Fetch latest version from npm registry (dist-tags)
opencode-binary.ts Detect OpenCode binary location, verify it's installed
opencode-config-format.ts OpenCode config format constants and type guards
parse-opencode-config-file.ts Parse opencode.json/opencode.jsonc with fallback
plugin-name-with-version.ts Resolve oh-my-opencode@X.Y.Z for installation
write-omo-config.ts Write generated config to .opencode/oh-my-opencode.jsonc

USAGE PATTERN

Functions are called sequentially by src/cli/install.ts / src/cli/tui-installer.ts:

1. ensure-config-directory-exists
2. detect-current-config (check what's already set up)
3. opencode-binary (verify opencode installed)
4. npm-dist-tags (get latest version)
5. generate-omo-config (build config from user selections)
6. write-omo-config
7. add-plugin-to-opencode-config
8. add-provider-config (for each provider selected)
9. bun-install

NOTES

  • All functions are pure / stateless (except disk I/O) — no shared module state
  • jsonc-provider-editor.ts uses comment-preserving JSONC library — NEVER use JSON.parse on JSONC files
  • opencode-binary.ts searches PATH + common install locations (.local/bin, ~/.bun/bin, etc.)