oasr 0.5.0__tar.gz → 0.5.2__tar.gz
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.
- {oasr-0.5.0 → oasr-0.5.2}/CHANGELOG.md +86 -0
- {oasr-0.5.0 → oasr-0.5.2}/PKG-INFO +21 -1
- {oasr-0.5.0 → oasr-0.5.2}/README.md +20 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/commands/.INDEX.md +1 -0
- oasr-0.5.2/docs/commands/COMPLETION.md +324 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/commands/CONFIG.md +20 -1
- oasr-0.5.2/docs/configuration/.INDEX +58 -0
- oasr-0.5.2/docs/configuration/README.md +226 -0
- oasr-0.5.2/docs/configuration/adapter.md +72 -0
- oasr-0.5.2/docs/configuration/agent.md +196 -0
- oasr-0.5.2/docs/configuration/environment-variables.md +371 -0
- oasr-0.5.2/docs/configuration/examples/ci-cd.toml +71 -0
- oasr-0.5.2/docs/configuration/examples/development.toml +70 -0
- oasr-0.5.2/docs/configuration/examples/minimal.toml +12 -0
- oasr-0.5.2/docs/configuration/examples/production.toml +61 -0
- oasr-0.5.2/docs/configuration/precedence.md +307 -0
- oasr-0.5.2/docs/configuration/profiles.md +393 -0
- oasr-0.5.2/docs/configuration/validation.md +97 -0
- {oasr-0.5.0 → oasr-0.5.2}/pyproject.toml +1 -1
- {oasr-0.5.0 → oasr-0.5.2}/src/cli.py +6 -1
- oasr-0.5.2/src/commands/completion.py +345 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/commands/config.py +78 -26
- {oasr-0.5.0 → oasr-0.5.2}/src/commands/exec.py +22 -10
- oasr-0.5.2/src/completions/__init__.py +1 -0
- oasr-0.5.2/src/completions/bash.sh +197 -0
- oasr-0.5.2/src/completions/fish.fish +120 -0
- oasr-0.5.2/src/completions/powershell.ps1 +115 -0
- oasr-0.5.2/src/completions/zsh.sh +259 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/config/__init__.py +27 -18
- oasr-0.5.2/src/config/env.py +248 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/config/schema.py +38 -0
- oasr-0.5.2/tests/test_completion.py +253 -0
- {oasr-0.5.0 → oasr-0.5.2}/tests/test_config_command.py +9 -9
- oasr-0.5.2/tests/test_config_env.py +308 -0
- oasr-0.5.2/tests/test_config_integration.py +148 -0
- oasr-0.5.2/tests/test_e2e_commands.py +144 -0
- {oasr-0.5.0 → oasr-0.5.2}/tests/test_exec.py +1 -1
- {oasr-0.5.0 → oasr-0.5.2}/tests/test_policy_profile.py +0 -3
- {oasr-0.5.0 → oasr-0.5.2}/uv.lock +1 -1
- {oasr-0.5.0 → oasr-0.5.2}/.gitignore +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/CONTRIBUTING.md +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/LICENSE +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/NOTICE +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/.INDEX.md +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/.images/adapter.png +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/.images/add-glob.png +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/.images/add-remote.png +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/.images/add.png +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/.images/find-add.png +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/.images/find.png +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/.images/help.png +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/.images/info.png +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/.images/list.png +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/.images/rm-glob.png +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/.images/rm.png +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/.images/status.png +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/.images/sync-update.png +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/.images/sync.png +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/.images/use.png +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/QUICKSTART.md +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/commands/ADAPTER.md +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/commands/ADD.md +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/commands/CLEAN.md +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/commands/CLONE.md +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/commands/DIFF.md +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/commands/EXEC.md +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/commands/FIND.md +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/commands/HELP.md +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/commands/INFO.md +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/commands/LIST.md +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/commands/REGISTRY.md +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/commands/RM.md +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/commands/ROOT.md +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/commands/STATUS.md +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/commands/SYNC.md +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/commands/UPDATE.md +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/commands/USE.md +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/commands/VALIDATE.md +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/config.example.toml +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/validation/.INDEX.md +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/validation/ERRORS.md +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/validation/INFO.md +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/validation/RULES.md +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/docs/validation/WARNINGS.md +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/install.ps1 +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/install.sh +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/llms.txt +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/scripts/README.md +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/scripts/fix.sh +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/scripts/lint.sh +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/scripts/test.sh +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/__init__.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/__main__.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/adapter.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/adapters/__init__.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/adapters/base.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/adapters/claude.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/adapters/codex.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/adapters/copilot.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/adapters/cursor.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/adapters/windsurf.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/agents/__init__.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/agents/base.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/agents/claude.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/agents/codex.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/agents/copilot.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/agents/opencode.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/agents/registry.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/commands/__init__.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/commands/adapter.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/commands/add.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/commands/clean.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/commands/clone.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/commands/diff.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/commands/find.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/commands/help.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/commands/info.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/commands/list.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/commands/registry.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/commands/rm.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/commands/status.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/commands/sync.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/commands/update.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/commands/use.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/commands/validate.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/config/defaults.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/discovery.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/manifest.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/policy/__init__.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/policy/defaults.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/policy/enforcement.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/policy/profile.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/registry.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/remote.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/skillcopy/__init__.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/skillcopy/local.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/skillcopy/remote.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/tracking.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/src/validate.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/tests/conftest.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/tests/test_adapters.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/tests/test_agents.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/tests/test_clone.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/tests/test_config.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/tests/test_copy.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/tests/test_help.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/tests/test_list.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/tests/test_multi_skill.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/tests/test_policy_enforcement.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/tests/test_remote.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/tests/test_tracking.py +0 -0
- {oasr-0.5.0 → oasr-0.5.2}/tests/test_use_glob.py +0 -0
|
@@ -4,6 +4,92 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
5
5
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## [0.5.2] - 2026-02-02
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
- **⌨️ Shell Completion Support** — Intelligent tab completion for all major shells
|
|
11
|
+
- Cross-platform support: Bash, Zsh, Fish, PowerShell
|
|
12
|
+
- `oasr completion install` — Auto-detect shell and install completions
|
|
13
|
+
- `oasr completion <shell>` — Output completion script for specific shell
|
|
14
|
+
- Dynamic completions: skill names, agents, profiles fetched live from registry
|
|
15
|
+
- Command, subcommand, and flag completion for all OASR commands
|
|
16
|
+
- Smart shell detection (platform + $SHELL environment variable)
|
|
17
|
+
- Installation paths: `~/.bash_completion.d/`, `~/.zsh/completion/`, `~/.config/fish/completions/`, `~/.config/powershell/`
|
|
18
|
+
- Backup mechanism: existing completions backed up before overwrite
|
|
19
|
+
- `--force` and `--dry-run` flags for installation control
|
|
20
|
+
- `oasr completion uninstall` — Remove installed completions
|
|
21
|
+
- Configuration support: `oasr.completions` config option
|
|
22
|
+
- **🧪 Comprehensive E2E Tests** — 16 new end-to-end tests covering all commands
|
|
23
|
+
- Registry subcommands (list, sync, prune)
|
|
24
|
+
- Diff, sync, info, validate, clean commands
|
|
25
|
+
- Adapter, find, help commands
|
|
26
|
+
- Total test count: 282 tests (all passing)
|
|
27
|
+
- Ensures no regressions in existing functionality
|
|
28
|
+
|
|
29
|
+
### Documentation
|
|
30
|
+
- **[docs/commands/COMPLETION.md](docs/commands/COMPLETION.md)**: Complete completion command reference
|
|
31
|
+
- Installation instructions for all shells
|
|
32
|
+
- Shell-specific configuration notes
|
|
33
|
+
- Troubleshooting guide
|
|
34
|
+
- Examples and usage patterns
|
|
35
|
+
- **[README.md](README.md)**: Added Shell Completions section with quickstart
|
|
36
|
+
- **[docs/commands/.INDEX.md](docs/commands/.INDEX.md)**: Added completion to command index
|
|
37
|
+
|
|
38
|
+
### Technical
|
|
39
|
+
- **New module**: `src/commands/completion.py` (259 lines) with shell detection and installation
|
|
40
|
+
- **Completion scripts**: 4 shell-specific scripts (~691 lines total)
|
|
41
|
+
- `src/completions/bash.sh` (197 lines)
|
|
42
|
+
- `src/completions/zsh.sh` (259 lines) with descriptions
|
|
43
|
+
- `src/completions/fish.fish` (120 lines) with native Fish syntax
|
|
44
|
+
- `src/completions/powershell.ps1` (115 lines) with ArgumentCompleter
|
|
45
|
+
- **45 new tests**: 29 completion tests + 16 E2E tests
|
|
46
|
+
- **Dynamic completion**: Scripts invoke `oasr` commands for live data (registry list, config keys)
|
|
47
|
+
- **Cross-platform**: Handles Windows, macOS, Linux path conventions
|
|
48
|
+
|
|
49
|
+
### Quality of Life
|
|
50
|
+
- Tab completion reduces typing and prevents typos
|
|
51
|
+
- Discovery: see available skills, agents, and profiles at your fingertips
|
|
52
|
+
- Professional UX: OASR now feels like a polished CLI tool
|
|
53
|
+
- Backward compatible: no changes to existing commands
|
|
54
|
+
|
|
55
|
+
## [0.5.1] - 2026-02-02
|
|
56
|
+
|
|
57
|
+
### Added
|
|
58
|
+
- **🌍 Environment Variable Support** — Full OASR_* environment variable support for all configuration
|
|
59
|
+
- Naming convention: `OASR_<SECTION>_<KEY>` (e.g., `OASR_AGENT`, `OASR_PROFILE`)
|
|
60
|
+
- Type-aware parsing: bool, int, list (comma-separated), string
|
|
61
|
+
- Clear precedence: CLI flags > env vars > config file > defaults
|
|
62
|
+
- 17 documented environment variables
|
|
63
|
+
- **✅ Enhanced Config Validation** — Early validation with helpful error messages
|
|
64
|
+
- `oasr config set` validates agent names against available drivers
|
|
65
|
+
- Profile reference validation (checks if profile exists)
|
|
66
|
+
- `--force` flag to bypass validation when needed
|
|
67
|
+
- Dotted notation support: `validation.strict`, `adapter.default`
|
|
68
|
+
- Suggestions in error messages: "Invalid agent 'foo'. Valid agents: codex, copilot..."
|
|
69
|
+
- **📚 Configuration Documentation Restructure** — Progressive disclosure documentation
|
|
70
|
+
- New `docs/configuration/` directory with 12 files (~37KB)
|
|
71
|
+
- Navigation manifest: `.INDEX` file for documentation structure
|
|
72
|
+
- 7 detailed guides: Overview, Agent, Profiles, Validation, Adapter, Env Vars, Precedence
|
|
73
|
+
- 4 example configs: Minimal, Development, CI/CD, Production
|
|
74
|
+
- Easy-to-find specific information with cross-references
|
|
75
|
+
|
|
76
|
+
### Changed
|
|
77
|
+
- **Config loading**: Now accepts `cli_overrides` parameter for precedence merging
|
|
78
|
+
- **Config command**: Enhanced validation and better error messages
|
|
79
|
+
- **Documentation**: `docs/commands/CONFIG.md` updated with pointers to new structure
|
|
80
|
+
|
|
81
|
+
### Technical
|
|
82
|
+
- **New module**: `src/config/env.py` with parsing, type coercion, and merging logic
|
|
83
|
+
- **50 new tests**: 40 env var tests + 10 integration tests (287 total tests passing)
|
|
84
|
+
- **Backward compatible**: All existing functionality preserved
|
|
85
|
+
- **Type safety**: Enhanced type checking and validation throughout
|
|
86
|
+
|
|
87
|
+
### Documentation
|
|
88
|
+
- **[docs/configuration/](docs/configuration/README.md)**: New comprehensive configuration guide
|
|
89
|
+
- **[Environment Variables](docs/configuration/environment-variables.md)**: Complete OASR_* reference
|
|
90
|
+
- **[Precedence](docs/configuration/precedence.md)**: Detailed precedence rules and examples
|
|
91
|
+
- **[Examples](docs/configuration/examples/)**: 4 ready-to-use configuration examples
|
|
92
|
+
|
|
7
93
|
## [0.5.0] - 2026-02-02
|
|
8
94
|
|
|
9
95
|
### Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: oasr
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.2
|
|
4
4
|
Summary: CLI for managing agent skills across IDE integrations
|
|
5
5
|
Project-URL: Homepage, https://github.com/jgodau/asr
|
|
6
6
|
Project-URL: Repository, https://github.com/jgodau/asr
|
|
@@ -317,6 +317,26 @@ Remote skills are fetched on-demand during `adapter` and `use` operations. The r
|
|
|
317
317
|
|
|
318
318
|
---
|
|
319
319
|
|
|
320
|
+
## Shell Completions
|
|
321
|
+
|
|
322
|
+
OASR supports intelligent tab completion for Bash, Zsh, Fish, and PowerShell:
|
|
323
|
+
|
|
324
|
+
```bash
|
|
325
|
+
# Install for your current shell
|
|
326
|
+
oasr completion install
|
|
327
|
+
|
|
328
|
+
# Now try it:
|
|
329
|
+
oasr <TAB> # Complete commands
|
|
330
|
+
oasr info <TAB> # Complete skill names
|
|
331
|
+
oasr exec --<TAB> # Complete flags
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
Completions are **dynamic** — skill names, agents, and profiles are fetched live from your registry.
|
|
335
|
+
|
|
336
|
+
See [`oasr completion --help`](docs/commands/COMPLETION.md) for details.
|
|
337
|
+
|
|
338
|
+
---
|
|
339
|
+
|
|
320
340
|
## Documentation
|
|
321
341
|
|
|
322
342
|
- **[Quickstart](docs/QUICKSTART.md)** — Installation and first steps
|
|
@@ -98,6 +98,26 @@ Remote skills are fetched on-demand during `adapter` and `use` operations. The r
|
|
|
98
98
|
|
|
99
99
|
---
|
|
100
100
|
|
|
101
|
+
## Shell Completions
|
|
102
|
+
|
|
103
|
+
OASR supports intelligent tab completion for Bash, Zsh, Fish, and PowerShell:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
# Install for your current shell
|
|
107
|
+
oasr completion install
|
|
108
|
+
|
|
109
|
+
# Now try it:
|
|
110
|
+
oasr <TAB> # Complete commands
|
|
111
|
+
oasr info <TAB> # Complete skill names
|
|
112
|
+
oasr exec --<TAB> # Complete flags
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Completions are **dynamic** — skill names, agents, and profiles are fetched live from your registry.
|
|
116
|
+
|
|
117
|
+
See [`oasr completion --help`](docs/commands/COMPLETION.md) for details.
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
101
121
|
## Documentation
|
|
102
122
|
|
|
103
123
|
- **[Quickstart](docs/QUICKSTART.md)** — Installation and first steps
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
- [oasr config](CONFIG.md) - Manage configuration (NEW in v0.4.0)
|
|
10
10
|
- [oasr clone](CLONE.md) - Clone skill(s) to target directory (NEW in v0.4.0)
|
|
11
11
|
- [oasr exec](EXEC.md) - Execute skills as CLI tools (NEW in v0.4.0)
|
|
12
|
+
- [oasr completion](COMPLETION.md) - Shell tab completion (NEW in v0.5.2)
|
|
12
13
|
- [oasr find](FIND.md) - Find/discover skills in your file system
|
|
13
14
|
- [oasr validate](VALIDATE.md) - Validate a skill
|
|
14
15
|
- [oasr adapter](ADAPTER.md) - Generate IDE/Tooling adapters
|
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
# `oasr completion`
|
|
2
|
+
|
|
3
|
+
Enable shell tab completion for OASR commands, subcommands, and dynamic resources (skills, agents, profiles).
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
The `oasr completion` command provides intelligent tab completion across all major shells:
|
|
10
|
+
|
|
11
|
+
- **Bash** — Traditional completion with dynamic skill/agent/profile suggestions
|
|
12
|
+
- **Zsh** — Rich completions with descriptions and type hints
|
|
13
|
+
- **Fish** — Native Fish completions with helper functions
|
|
14
|
+
- **PowerShell** — ArgumentCompleter with tooltips
|
|
15
|
+
|
|
16
|
+
Completions are **dynamic**: skill names, agents, and profiles are fetched live from your registry.
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Usage
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
# Output completion script for current shell (auto-detected)
|
|
24
|
+
oasr completion
|
|
25
|
+
|
|
26
|
+
# Output for specific shell
|
|
27
|
+
oasr completion bash
|
|
28
|
+
oasr completion zsh
|
|
29
|
+
oasr completion fish
|
|
30
|
+
oasr completion powershell
|
|
31
|
+
|
|
32
|
+
# Install to standard location for current shell
|
|
33
|
+
oasr completion install
|
|
34
|
+
|
|
35
|
+
# Install for specific shell
|
|
36
|
+
oasr completion install bash
|
|
37
|
+
oasr completion install --force # Overwrite existing
|
|
38
|
+
|
|
39
|
+
# Uninstall
|
|
40
|
+
oasr completion uninstall
|
|
41
|
+
|
|
42
|
+
# Dry run (show what would be done)
|
|
43
|
+
oasr completion install --dry-run
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Installation
|
|
49
|
+
|
|
50
|
+
### Automatic (Recommended)
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
# Auto-detect shell and install
|
|
54
|
+
oasr completion install
|
|
55
|
+
|
|
56
|
+
# Restart your shell or source the completion file
|
|
57
|
+
# Bash:
|
|
58
|
+
source ~/.bash_completion.d/oasr
|
|
59
|
+
|
|
60
|
+
# Zsh:
|
|
61
|
+
source ~/.zsh/completion/_oasr
|
|
62
|
+
|
|
63
|
+
# Fish: (automatically loaded)
|
|
64
|
+
|
|
65
|
+
# PowerShell: (add to profile if not present)
|
|
66
|
+
. ~/.config/powershell/oasr_completion.ps1
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Manual Installation
|
|
70
|
+
|
|
71
|
+
If you prefer manual control, output the script and place it yourself:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
# Bash
|
|
75
|
+
oasr completion bash > ~/.bash_completion.d/oasr
|
|
76
|
+
source ~/.bash_completion.d/oasr
|
|
77
|
+
|
|
78
|
+
# Zsh
|
|
79
|
+
oasr completion zsh > ~/.zsh/completion/_oasr
|
|
80
|
+
# Add to ~/.zshrc:
|
|
81
|
+
# fpath=(~/.zsh/completion $fpath)
|
|
82
|
+
# autoload -Uz compinit && compinit
|
|
83
|
+
|
|
84
|
+
# Fish
|
|
85
|
+
oasr completion fish > ~/.config/fish/completions/oasr.fish
|
|
86
|
+
|
|
87
|
+
# PowerShell
|
|
88
|
+
oasr completion powershell > ~/.config/powershell/oasr_completion.ps1
|
|
89
|
+
# Add to $PROFILE:
|
|
90
|
+
# . ~/.config/powershell/oasr_completion.ps1
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## What Gets Completed
|
|
96
|
+
|
|
97
|
+
### Commands & Subcommands
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
oasr <TAB>
|
|
101
|
+
# Shows: add, adapter, clean, clone, completion, config, diff, exec, find, help, info, list, registry, rm, status, sync, update, use, validate
|
|
102
|
+
|
|
103
|
+
oasr registry <TAB>
|
|
104
|
+
# Shows: add, list, prune, rm, sync, validate
|
|
105
|
+
|
|
106
|
+
oasr config <TAB>
|
|
107
|
+
# Shows: get, list, set, unset, validate
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Dynamic Resources
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
# Skill names (from your registry)
|
|
114
|
+
oasr info <TAB>
|
|
115
|
+
# Shows: git-commit, code-review, doc-generator, ...
|
|
116
|
+
|
|
117
|
+
oasr exec <TAB>
|
|
118
|
+
# Shows: git-commit, code-review, doc-generator, ...
|
|
119
|
+
|
|
120
|
+
# Agent types
|
|
121
|
+
oasr config set agent <TAB>
|
|
122
|
+
# Shows: codex, copilot, claude, openai, gemini
|
|
123
|
+
|
|
124
|
+
# Profiles
|
|
125
|
+
oasr exec --profile <TAB>
|
|
126
|
+
# Shows: safe, default, permissive, ...
|
|
127
|
+
|
|
128
|
+
# Config keys
|
|
129
|
+
oasr config get <TAB>
|
|
130
|
+
# Shows: agent, profile, validation.strict, adapter.default, ...
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Flags & Options
|
|
134
|
+
|
|
135
|
+
All commands provide flag completion:
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
oasr add --<TAB>
|
|
139
|
+
# Shows: --source, --no-track, --help
|
|
140
|
+
|
|
141
|
+
oasr exec --<TAB>
|
|
142
|
+
# Shows: --profile, --yes, --confirm, --help
|
|
143
|
+
|
|
144
|
+
oasr adapter --<TAB>
|
|
145
|
+
# Shows: --output-dir, --adapter, --force, --help
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## Configuration
|
|
151
|
+
|
|
152
|
+
### Enable/Disable via Config
|
|
153
|
+
|
|
154
|
+
```toml
|
|
155
|
+
# ~/.config/oasr/config.toml
|
|
156
|
+
[oasr]
|
|
157
|
+
completions = true # Enable (default)
|
|
158
|
+
# completions = false # Disable
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
Or via environment variable:
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
export OASR_OASR_COMPLETIONS=true
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
When disabled, `oasr completion install` will skip installation.
|
|
168
|
+
|
|
169
|
+
### Installation Paths
|
|
170
|
+
|
|
171
|
+
Completions are installed to standard shell-specific locations:
|
|
172
|
+
|
|
173
|
+
| Shell | Path |
|
|
174
|
+
|-------------|-------------------------------------------|
|
|
175
|
+
| Bash | `~/.bash_completion.d/oasr` |
|
|
176
|
+
| Zsh | `~/.zsh/completion/_oasr` |
|
|
177
|
+
| Fish | `~/.config/fish/completions/oasr.fish` |
|
|
178
|
+
| PowerShell | `~/.config/powershell/oasr_completion.ps1` |
|
|
179
|
+
|
|
180
|
+
### Backup on Overwrite
|
|
181
|
+
|
|
182
|
+
If you run `oasr completion install` and a completion file already exists, it will:
|
|
183
|
+
|
|
184
|
+
1. **Without `--force`**: Prompt for confirmation
|
|
185
|
+
2. **With `--force`**: Create a backup at `<path>.backup` before overwriting
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## Shell-Specific Notes
|
|
190
|
+
|
|
191
|
+
### Bash
|
|
192
|
+
|
|
193
|
+
- Requires `bash-completion` package on most systems
|
|
194
|
+
- Sources files from `~/.bash_completion.d/` automatically (if configured)
|
|
195
|
+
- Add to `~/.bashrc` if not auto-loaded:
|
|
196
|
+
```bash
|
|
197
|
+
[ -f ~/.bash_completion.d/oasr ] && source ~/.bash_completion.d/oasr
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### Zsh
|
|
201
|
+
|
|
202
|
+
- Uses `#compdef` directive for native Zsh completion system
|
|
203
|
+
- Provides rich descriptions for subcommands
|
|
204
|
+
- Add to `~/.zshrc` if not auto-loaded:
|
|
205
|
+
```zsh
|
|
206
|
+
fpath=(~/.zsh/completion $fpath)
|
|
207
|
+
autoload -Uz compinit && compinit
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
### Fish
|
|
211
|
+
|
|
212
|
+
- Uses native `complete -c` syntax
|
|
213
|
+
- Automatically loaded from `~/.config/fish/completions/`
|
|
214
|
+
- No additional configuration needed
|
|
215
|
+
|
|
216
|
+
### PowerShell
|
|
217
|
+
|
|
218
|
+
- Uses `Register-ArgumentCompleter` API
|
|
219
|
+
- Provides tooltips for commands
|
|
220
|
+
- Add to PowerShell profile:
|
|
221
|
+
```powershell
|
|
222
|
+
. ~/.config/powershell/oasr_completion.ps1
|
|
223
|
+
```
|
|
224
|
+
- Find profile location: `echo $PROFILE`
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
## Troubleshooting
|
|
229
|
+
|
|
230
|
+
### Completions Not Working
|
|
231
|
+
|
|
232
|
+
1. **Verify installation**:
|
|
233
|
+
```bash
|
|
234
|
+
oasr completion install
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
2. **Check shell detection**:
|
|
238
|
+
```bash
|
|
239
|
+
oasr completion # Should output script for current shell
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
3. **Restart shell** or source the completion file manually
|
|
243
|
+
|
|
244
|
+
4. **Check shell configuration**:
|
|
245
|
+
- Bash: `~/.bashrc` should source `~/.bash_completion.d/oasr`
|
|
246
|
+
- Zsh: `~/.zshrc` should have `fpath` and `compinit`
|
|
247
|
+
- Fish: Automatically loaded
|
|
248
|
+
- PowerShell: `$PROFILE` should source the completion script
|
|
249
|
+
|
|
250
|
+
### Dynamic Completions Slow
|
|
251
|
+
|
|
252
|
+
If skill/agent/profile completions are slow:
|
|
253
|
+
|
|
254
|
+
- Dynamic completions call `oasr` commands (e.g., `oasr registry list --quiet`)
|
|
255
|
+
- Large registries may cause slight delays
|
|
256
|
+
- Completions are generated on-demand (not cached)
|
|
257
|
+
|
|
258
|
+
### Wrong Shell Detected
|
|
259
|
+
|
|
260
|
+
Specify the shell explicitly:
|
|
261
|
+
|
|
262
|
+
```bash
|
|
263
|
+
oasr completion install zsh
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
Or set `$SHELL` environment variable:
|
|
267
|
+
|
|
268
|
+
```bash
|
|
269
|
+
export SHELL=/bin/zsh
|
|
270
|
+
oasr completion install
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
---
|
|
274
|
+
|
|
275
|
+
## Examples
|
|
276
|
+
|
|
277
|
+
### Install for Current Shell
|
|
278
|
+
|
|
279
|
+
```bash
|
|
280
|
+
$ oasr completion install
|
|
281
|
+
Installing completion for zsh...
|
|
282
|
+
Completion installed to: /home/user/.zsh/completion/_oasr
|
|
283
|
+
|
|
284
|
+
To activate:
|
|
285
|
+
source ~/.zsh/completion/_oasr
|
|
286
|
+
# Or restart your shell
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
### Generate Script for Manual Review
|
|
290
|
+
|
|
291
|
+
```bash
|
|
292
|
+
$ oasr completion bash > /tmp/oasr_completion.bash
|
|
293
|
+
$ less /tmp/oasr_completion.bash
|
|
294
|
+
# Review script before installing
|
|
295
|
+
$ cp /tmp/oasr_completion.bash ~/.bash_completion.d/oasr
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
### Install with Dry Run
|
|
299
|
+
|
|
300
|
+
```bash
|
|
301
|
+
$ oasr completion install --dry-run
|
|
302
|
+
[DRY RUN] Would install completion for zsh
|
|
303
|
+
[DRY RUN] Target path: /home/user/.zsh/completion/_oasr
|
|
304
|
+
[DRY RUN] File exists: False
|
|
305
|
+
[DRY RUN] Would create directory: /home/user/.zsh/completion
|
|
306
|
+
[DRY RUN] Would write 259 bytes
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
### Force Overwrite
|
|
310
|
+
|
|
311
|
+
```bash
|
|
312
|
+
$ oasr completion install --force
|
|
313
|
+
Backing up existing completion to: /home/user/.zsh/completion/_oasr.backup
|
|
314
|
+
Installing completion for zsh...
|
|
315
|
+
Completion installed to: /home/user/.zsh/completion/_oasr
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
---
|
|
319
|
+
|
|
320
|
+
## See Also
|
|
321
|
+
|
|
322
|
+
- [`oasr config`](CONFIG.md) — Configure completion behavior
|
|
323
|
+
- [`oasr help`](HELP.md) — Get help on commands
|
|
324
|
+
- [Commands Index](.INDEX.md) — All available commands
|
|
@@ -1,6 +1,25 @@
|
|
|
1
1
|
# `oasr config`
|
|
2
2
|
|
|
3
|
-
Manage OASR configuration settings.
|
|
3
|
+
Manage OASR configuration settings.
|
|
4
|
+
|
|
5
|
+
> **Note:** For comprehensive configuration documentation, see [`docs/configuration/`](../configuration/README.md)
|
|
6
|
+
|
|
7
|
+
## Quick Reference
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
oasr config set <key> <value> # Set a config value
|
|
11
|
+
oasr config get <key> # Get a config value
|
|
12
|
+
oasr config list # Show all configuration
|
|
13
|
+
oasr config path # Show config file location
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
**See also:**
|
|
17
|
+
- [Configuration Overview](../configuration/README.md) - Complete config guide
|
|
18
|
+
- [Environment Variables](../configuration/environment-variables.md) - OASR_* reference
|
|
19
|
+
- [Agent Configuration](../configuration/agent.md) - Agent settings
|
|
20
|
+
- [Policy Profiles](../configuration/profiles.md) - Execution policies
|
|
21
|
+
|
|
22
|
+
---
|
|
4
23
|
|
|
5
24
|
## Usage
|
|
6
25
|
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
[[doc]]
|
|
2
|
+
path = "README.md"
|
|
3
|
+
title = "Configuration Overview"
|
|
4
|
+
description = "Getting started with OASR configuration - quick start and common scenarios"
|
|
5
|
+
|
|
6
|
+
[[doc]]
|
|
7
|
+
path = "agent.md"
|
|
8
|
+
title = "Agent Configuration"
|
|
9
|
+
description = "Configure default agent and agent-specific settings"
|
|
10
|
+
|
|
11
|
+
[[doc]]
|
|
12
|
+
path = "profiles.md"
|
|
13
|
+
title = "Policy Profiles"
|
|
14
|
+
description = "Execution policy profiles for security and isolation"
|
|
15
|
+
|
|
16
|
+
[[doc]]
|
|
17
|
+
path = "validation.md"
|
|
18
|
+
title = "Validation Settings"
|
|
19
|
+
description = "Skill validation and reference display settings"
|
|
20
|
+
|
|
21
|
+
[[doc]]
|
|
22
|
+
path = "adapter.md"
|
|
23
|
+
title = "Adapter Configuration"
|
|
24
|
+
description = "IDE adapter targets and settings"
|
|
25
|
+
|
|
26
|
+
[[doc]]
|
|
27
|
+
path = "environment-variables.md"
|
|
28
|
+
title = "Environment Variables"
|
|
29
|
+
description = "Complete OASR_* environment variable reference"
|
|
30
|
+
|
|
31
|
+
[[doc]]
|
|
32
|
+
path = "precedence.md"
|
|
33
|
+
title = "Configuration Precedence"
|
|
34
|
+
description = "Understanding how CLI flags, env vars, config file, and defaults interact"
|
|
35
|
+
|
|
36
|
+
[[section]]
|
|
37
|
+
name = "Examples"
|
|
38
|
+
description = "Ready-to-use configuration examples for common scenarios"
|
|
39
|
+
|
|
40
|
+
[[example]]
|
|
41
|
+
path = "examples/development.toml"
|
|
42
|
+
title = "Development Configuration"
|
|
43
|
+
description = "Permissive config for local development"
|
|
44
|
+
|
|
45
|
+
[[example]]
|
|
46
|
+
path = "examples/ci-cd.toml"
|
|
47
|
+
title = "CI/CD Configuration"
|
|
48
|
+
description = "Config for continuous integration pipelines"
|
|
49
|
+
|
|
50
|
+
[[example]]
|
|
51
|
+
path = "examples/production.toml"
|
|
52
|
+
title = "Production Configuration"
|
|
53
|
+
description = "Hardened config for production environments"
|
|
54
|
+
|
|
55
|
+
[[example]]
|
|
56
|
+
path = "examples/minimal.toml"
|
|
57
|
+
title = "Minimal Configuration"
|
|
58
|
+
description = "Bare minimum config to get started"
|