@oh-my-pi/cli 0.9.2 → 1.3.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/README.md +52 -35
  2. package/dist/cli.js +1155 -1035
  3. package/dist/commands/config.d.ts.map +1 -1
  4. package/dist/commands/doctor.d.ts +0 -2
  5. package/dist/commands/doctor.d.ts.map +1 -1
  6. package/dist/commands/enable.d.ts +2 -2
  7. package/dist/commands/enable.d.ts.map +1 -1
  8. package/dist/commands/env.d.ts.map +1 -1
  9. package/dist/commands/features.d.ts.map +1 -1
  10. package/dist/commands/init.d.ts +1 -1
  11. package/dist/commands/init.d.ts.map +1 -1
  12. package/dist/commands/install.d.ts +0 -2
  13. package/dist/commands/install.d.ts.map +1 -1
  14. package/dist/commands/link.d.ts +0 -2
  15. package/dist/commands/link.d.ts.map +1 -1
  16. package/dist/commands/list.d.ts +0 -2
  17. package/dist/commands/list.d.ts.map +1 -1
  18. package/dist/commands/outdated.d.ts +0 -2
  19. package/dist/commands/outdated.d.ts.map +1 -1
  20. package/dist/commands/uninstall.d.ts +0 -2
  21. package/dist/commands/uninstall.d.ts.map +1 -1
  22. package/dist/commands/update.d.ts +0 -2
  23. package/dist/commands/update.d.ts.map +1 -1
  24. package/dist/commands/why.d.ts +0 -2
  25. package/dist/commands/why.d.ts.map +1 -1
  26. package/dist/loader.d.ts +4 -4
  27. package/dist/loader.d.ts.map +1 -1
  28. package/dist/lock.d.ts +2 -2
  29. package/dist/lock.d.ts.map +1 -1
  30. package/dist/lockfile.d.ts +6 -6
  31. package/dist/lockfile.d.ts.map +1 -1
  32. package/dist/manifest.d.ts +23 -10
  33. package/dist/manifest.d.ts.map +1 -1
  34. package/dist/paths.d.ts +15 -44
  35. package/dist/paths.d.ts.map +1 -1
  36. package/dist/runtime.d.ts +3 -3
  37. package/dist/runtime.d.ts.map +1 -1
  38. package/dist/symlinks.d.ts +12 -7
  39. package/dist/symlinks.d.ts.map +1 -1
  40. package/package.json +1 -1
package/README.md CHANGED
@@ -60,7 +60,7 @@ omp update
60
60
 
61
61
  ## How It Works
62
62
 
63
- omp installs plugins via npm and sets up your pi configuration:
63
+ omp installs plugins globally via npm and sets up your pi configuration:
64
64
 
65
65
  ```
66
66
  ~/.pi/
@@ -80,49 +80,54 @@ omp installs plugins via npm and sets up your pi configuration:
80
80
 
81
81
  **Tools** are loaded directly from node_modules via a generated loader. Plugins specify `omp.tools` pointing to their tool factory. This allows tools to use npm dependencies without workarounds.
82
82
 
83
- ## Global vs Local Plugins
83
+ ## Project-Level Overrides
84
84
 
85
- omp supports both global and project-local plugin configurations:
86
-
87
- | Scope | Config Location | Agent Directory | Use Case |
88
- | ------ | ---------------- | --------------- | ------------------------ |
89
- | Global | `~/.pi/plugins/` | `~/.pi/agent/` | Personal defaults |
90
- | Local | `.pi/` | `.pi/agent/` | Project-specific plugins |
85
+ While plugins are installed globally, you can customize their behavior per-project using `.pi/overrides.json`:
91
86
 
92
87
  ```bash
93
- # Explicit scope
94
- omp install -g @oh-my-pi/subagents # Global
95
- omp install -l @oh-my-pi/subagents # Local
88
+ # Initialize project overrides
89
+ omp init
96
90
 
97
- # Auto-detect: uses local if .pi/plugins.json exists, otherwise global
98
- omp install @oh-my-pi/subagents
91
+ # Disable a plugin for this project only
92
+ omp disable @oh-my-pi/subagents -l
93
+
94
+ # Enable different features in this project
95
+ omp features @oh-my-pi/exa --set search -l
96
+
97
+ # Override config variables for this project
98
+ omp config @oh-my-pi/exa apiKey sk-project-specific -l
99
99
  ```
100
100
 
101
- Initialize a project-local config with `omp init`.
101
+ Project overrides are stored in:
102
+
103
+ - `.pi/overrides.json` - disabled plugins list
104
+ - `.pi/store/` - feature and config overrides (merged with global, project takes precedence)
105
+
106
+ The loader automatically merges project overrides at runtime.
102
107
 
103
108
  ## Commands
104
109
 
105
- | Command | Alias | Description |
106
- | ---------------------- | ----- | ------------------------------------------------------ |
107
- | `omp install [pkg...]` | `i` | Install plugin(s). No args = install from plugins.json |
108
- | `omp uninstall <pkg>` | `rm` | Remove plugin and its symlinks |
109
- | `omp update [pkg]` | `up` | Update to latest within semver range |
110
- | `omp list` | `ls` | Show installed plugins |
111
- | `omp search <query>` | | Search npm for plugins |
112
- | `omp info <pkg>` | | Show plugin details before install |
113
- | `omp outdated` | | List plugins with newer versions |
114
- | `omp doctor` | | Check for broken symlinks, conflicts |
115
- | `omp link <path>` | | Symlink local plugin (dev mode) |
116
- | `omp create <name>` | | Scaffold new plugin from template |
117
- | `omp init` | | Create .pi/plugins.json in current project |
118
- | `omp why <file>` | | Show which plugin installed a file |
119
- | `omp enable <name>` | | Enable a disabled plugin |
120
- | `omp disable <name>` | | Disable plugin without uninstalling |
121
- | `omp features <name>` | | List or configure plugin features |
122
- | `omp config <name>` | | Get or set plugin configuration variables |
123
- | `omp env` | | Print environment variables for shell eval |
124
-
125
- Most commands accept `-g`/`--global` or `-l`/`--local` flags to override scope auto-detection.
110
+ | Command | Alias | Description |
111
+ | ---------------------- | ----- | -------------------------------------------------------- |
112
+ | `omp install [pkg...]` | `i` | Install plugin(s). No args = install from package.json |
113
+ | `omp uninstall <pkg>` | `rm` | Remove plugin and its symlinks |
114
+ | `omp update [pkg]` | `up` | Update to latest within semver range |
115
+ | `omp list` | `ls` | Show installed plugins |
116
+ | `omp search <query>` | | Search npm for plugins |
117
+ | `omp info <pkg>` | | Show plugin details before install |
118
+ | `omp outdated` | | List plugins with newer versions |
119
+ | `omp doctor` | | Check for broken symlinks, conflicts |
120
+ | `omp link <path>` | | Symlink local plugin (dev mode) |
121
+ | `omp create <name>` | | Scaffold new plugin from template |
122
+ | `omp init` | | Create .pi/overrides.json for project-local config |
123
+ | `omp why <file>` | | Show which plugin installed a file |
124
+ | `omp enable <name>` | | Enable a disabled plugin (-l for project override) |
125
+ | `omp disable <name>` | | Disable plugin without uninstalling (-l for project) |
126
+ | `omp features <name>` | | List or configure plugin features (-l for project) |
127
+ | `omp config <name>` | | Get or set plugin configuration (-l for project) |
128
+ | `omp env` | | Print environment variables for shell eval (-l to merge) |
129
+
130
+ Commands that modify plugin state (enable, disable, features, config, env) accept `-l`/`--local` to use project-level overrides instead of global config.
126
131
 
127
132
  ## Feature Selection
128
133
 
@@ -161,6 +166,9 @@ omp features @oh-my-pi/exa --disable search
161
166
 
162
167
  # Set exact feature list
163
168
  omp features @oh-my-pi/exa --set search,websets
169
+
170
+ # Override features for current project only
171
+ omp features @oh-my-pi/exa --set search -l
164
172
  ```
165
173
 
166
174
  ## Plugin Configuration
@@ -179,6 +187,9 @@ omp config @oh-my-pi/exa apiKey sk-xxx
179
187
 
180
188
  # Reset to default
181
189
  omp config @oh-my-pi/exa apiKey --delete
190
+
191
+ # Override for current project only
192
+ omp config @oh-my-pi/exa apiKey sk-project -l
182
193
  ```
183
194
 
184
195
  Variables with `env` mappings can be exported as environment variables:
@@ -190,6 +201,9 @@ eval "$(omp env)"
190
201
  # Fish shell
191
202
  omp env --fish | source
192
203
 
204
+ # Merge project overrides
205
+ eval "$(omp env -l)"
206
+
193
207
  # Persist in your shell config
194
208
  omp env >> ~/.bashrc
195
209
  ```
@@ -337,6 +351,9 @@ omp disable @oh-my-pi/subagents
337
351
 
338
352
  # Re-enable it later
339
353
  omp enable @oh-my-pi/subagents
354
+
355
+ # Disable just for this project
356
+ omp disable @oh-my-pi/subagents -l
340
357
  ```
341
358
 
342
359
  ## Credits