315cd35958
- Added renderCall and renderResult methods to MCPTool and DeferredMCPTool classes for TUI rendering of tool calls and results. - Created new mcp/render.ts module providing JSON tree rendering functionality with configurable depth and line limits for terminal display. - Updated renderResult signature in custom tool and extension types to accept optional args parameter for accessing original tool arguments during result rendering. - Fixed method binding in extension and hook tool wrappers by applying .bind(tool) to renderCall and renderResult methods to preserve correct 'this' context. - Added filter to skip .git directories in fuzzy_find_sync function to improve search performance.
9.1 KiB
9.1 KiB
Config Module Usage Map
This document shows how each file uses the config module and what subpaths they access.
Overview Diagram
┌─────────────────────────────────────────────────────────────────────────────────┐
│ config.ts exports │
├─────────────────────────────────────────────────────────────────────────────────┤
│ Constants: APP_NAME, CONFIG_DIR_NAME, VERSION │
│ Single paths: getAgentDir, getAuthPath, getModelsPath, getCommandsDir, ... │
│ Multi-config: getConfigDirs, getConfigDirPaths, findConfigFile, │
│ readConfigFile, findNearestProjectConfigDir, ... │
└─────────────────────────────────────────────────────────────────────────────────┘
Usage by Category
1. Display/Branding Only (no file I/O)
| File | Imports | Purpose |
|---|---|---|
cli/args.ts |
APP_NAME, CONFIG_DIR_NAME |
Help text, env var names |
cli/plugin-cli.ts |
APP_NAME |
Command output |
cli/update-cli.ts |
APP_NAME, VERSION |
Update messages |
core/export-html/index.ts |
APP_NAME |
HTML export title |
modes/interactive/components/welcome.ts |
APP_NAME |
Welcome banner |
utils/tools-manager.ts |
APP_NAME |
Tool download messages |
2. Single Fixed Paths (user-level only)
| File | Imports | Path | Purpose |
|---|---|---|---|
core/logger.ts |
CONFIG_DIR_NAME |
~/.omp/logs/ |
Log file directory |
core/agent-session.ts |
getAuthPath |
~/.omp/agent/auth.json |
Error messages |
core/session-manager.ts |
getAgentDir |
~/.omp/agent/sessions/ |
Session storage |
modes/interactive/theme/theme.ts |
getCustomThemesDir |
~/.omp/agent/themes/ |
Custom themes |
modes/interactive/interactive-mode.ts |
getAuthPath, getDebugLogPath |
auth.json, debug log | Status messages |
utils/changelog.ts |
getChangelogPath |
Package CHANGELOG.md | Re-exports |
core/system-prompt.ts |
getAgentDir, getDocsPath, getExamplesPath, getReadmePath |
Package assets + AGENTS.md | System prompt building |
migrations.ts |
getAgentDir |
~/.omp/agent/ |
Auth/session migration |
core/plugins/installer.ts |
getAgentDir |
~/.omp/agent/ |
Plugin installation |
core/plugins/paths.ts |
CONFIG_DIR_NAME |
~/.omp/plugins/ |
Plugin directories |
3. Multi-Config Discovery (with fallbacks)
These use the new helpers to check .omp, .pi, .claude directories:
| File | Helper Used | Subpath(s) | Levels |
|---|---|---|---|
main.ts |
findConfigFile |
SYSTEM.md |
project |
core/sdk.ts |
getConfigDirPaths |
auth.json, models.json |
user |
core/settings-manager.ts |
readConfigFile |
settings.json |
user+project |
core/skills.ts |
getConfigDirPaths |
skills/ |
user+project |
core/slash-commands.ts |
getConfigDirPaths |
commands/ |
project |
core/hooks/loader.ts |
getConfigDirPaths |
hooks/ |
project |
core/custom-tools/loader.ts |
getConfigDirPaths |
tools/ |
project |
core/custom-commands/loader.ts |
getConfigDirPaths |
commands/ |
project |
core/plugins/paths.ts |
getConfigDirPaths |
plugin-overrides.json |
project |
core/mcp/config.ts |
getConfigDirPaths |
mcp.json |
user+project |
core/tools/lsp/config.ts |
getConfigDirPaths |
lsp.json, .lsp.json |
user+project |
core/tools/task/commands.ts |
getConfigDirPaths, findAllNearestProjectConfigDirs |
commands/ |
user+project |
core/tools/task/discovery.ts |
getConfigDirs, findAllNearestProjectConfigDirs |
agents/ |
user+project |
core/tools/task/model-resolver.ts |
readConfigFile |
settings.json |
user |
core/tools/web-search/auth.ts |
getConfigDirPaths |
`` (root for models.json, auth.json) | user |
Subpath Summary
User-level (~/.omp/agent/, ~/.pi/agent/, ~/.claude/):
├── auth.json ← sdk.ts, web-search/auth.ts
├── models.json ← sdk.ts, web-search/auth.ts
├── settings.json ← settings-manager.ts, task/model-resolver.ts
├── commands/ ← slash-commands.ts, custom-commands/loader.ts, task/commands.ts
├── hooks/ ← hooks/loader.ts
├── tools/ ← custom-tools/loader.ts
├── skills/ ← skills.ts
├── themes/ ← theme.ts (user-level only, no fallback)
├── sessions/ ← session-manager.ts (user-level only, no fallback)
├── agents/ ← task/discovery.ts
└── AGENTS.md ← system-prompt.ts
User-level root (~/.omp/, ~/.pi/, ~/.claude/) - not under agent/:
├── mcp.json ← mcp/config.ts
├── plugins/ ← plugins/paths.ts (primary only)
└── logs/ ← logger.ts (primary only)
Project-level (.omp/, .pi/, .claude/):
├── SYSTEM.md ← main.ts
├── settings.json ← settings-manager.ts
├── commands/ ← slash-commands.ts, custom-commands/loader.ts, task/commands.ts
├── hooks/ ← hooks/loader.ts
├── tools/ ← custom-tools/loader.ts
├── skills/ ← skills.ts
├── agents/ ← task/discovery.ts
├── plugin-overrides.json ← plugins/paths.ts
├── lsp.json ← lsp/config.ts
└── .mcp.json ← mcp/config.ts
Special paths (not under agent/):
├── ~/.omp/plugins/ ← plugins/paths.ts
└── ~/.omp/logs/ ← logger.ts
Files Using Manual Paths (Intentionally)
These files construct paths manually because they only use the primary config dir:
| File | Current Approach | Reason |
|---|---|---|
core/logger.ts |
CONFIG_DIR_NAME for logs dir |
Logs only written to primary (~/.omp/logs/) |
core/plugins/paths.ts |
CONFIG_DIR_NAME for plugins dir |
Plugins only installed in primary (~/.omp/plugins/) |