omni-ai-cli 1.2.0 → 1.4.0
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.
- package/README.md +12 -1
- package/docs/README.en.md +12 -1
- package/docs/README.es.md +12 -1
- package/docs/README.fr.md +12 -1
- package/omni_ai/cli.py +38 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
[](https://www.npmjs.com/package/omni-ai-cli)
|
|
8
8
|
[](https://www.npmjs.com/package/omni-ai-cli)
|
|
9
9
|
[](https://docs.npmjs.com/trusted-publishers)
|
|
10
|
+
[](https://github.com/samuelrms/omni-ai-cli/actions/workflows/coverage.yml)
|
|
10
11
|
[](LICENSE)
|
|
11
12
|

|
|
12
13
|

|
|
@@ -111,6 +112,14 @@ bun add -g omni-ai-cli
|
|
|
111
112
|
|
|
112
113
|
Qualquer um dos comandos acima (script ou gerenciador de pacotes) instala o mesmo `ai`.
|
|
113
114
|
|
|
115
|
+
**Homebrew** (macOS/Linux):
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
brew install samuelrms/tap/omni-ai-cli
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
> Em Homebrew recente, se recusar o tap como "untrusted", rode uma vez: `brew trust samuelrms/tap`.
|
|
122
|
+
|
|
114
123
|
Para atualizar depois: `ai --update` (ou `/update` no chat).
|
|
115
124
|
|
|
116
125
|
Pelo código-fonte, para desenvolver:
|
|
@@ -388,6 +397,8 @@ ai --install # instala as ferramentas que faltam (perg
|
|
|
388
397
|
ai --classify "prompt" # mostra como seria classificado
|
|
389
398
|
ai --log # últimas chamadas
|
|
390
399
|
ai doctor # diagnóstico de instalação, contas e chaves
|
|
400
|
+
ai --version # versão do Omni AI CLI
|
|
401
|
+
ai --completions zsh|bash # autocomplete do shell
|
|
391
402
|
```
|
|
392
403
|
|
|
393
404
|
---
|
|
@@ -449,7 +460,7 @@ python3 -m unittest discover -s tests -v
|
|
|
449
460
|
bash -n scripts/install.sh
|
|
450
461
|
```
|
|
451
462
|
|
|
452
|
-
**
|
|
463
|
+
**123 testes**: persistência e retomada de sessão, limite de contexto, permissão dos
|
|
453
464
|
arquivos, sessão aberta em dois terminais, leitura de eventos, cancelamento da árvore de
|
|
454
465
|
processos, paralelismo real, sandbox somente leitura, mascaramento de dados pessoais,
|
|
455
466
|
fallback OpenRouter → Codex, validação de modelos, armazenamento das chaves e o ciclo de vida das contas. Todos os
|
package/docs/README.en.md
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
[](https://www.npmjs.com/package/omni-ai-cli)
|
|
8
8
|
[](https://www.npmjs.com/package/omni-ai-cli)
|
|
9
9
|
[](https://docs.npmjs.com/trusted-publishers)
|
|
10
|
+
[](https://github.com/samuelrms/omni-ai-cli/actions/workflows/coverage.yml)
|
|
10
11
|
[](../LICENSE)
|
|
11
12
|

|
|
12
13
|

|
|
@@ -111,6 +112,14 @@ bun add -g omni-ai-cli
|
|
|
111
112
|
|
|
112
113
|
Any of the commands above (script or package manager) installs the same `ai`.
|
|
113
114
|
|
|
115
|
+
**Homebrew** (macOS/Linux):
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
brew install samuelrms/tap/omni-ai-cli
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
> On recent Homebrew, if it refuses the tap as "untrusted", run once: `brew trust samuelrms/tap`.
|
|
122
|
+
|
|
114
123
|
To update later: `ai --update` (or `/update` in the chat).
|
|
115
124
|
|
|
116
125
|
From source, for development:
|
|
@@ -387,6 +396,8 @@ ai --install # installs the missing tools (asks first)
|
|
|
387
396
|
ai --classify "prompt" # shows how it would be classified
|
|
388
397
|
ai --log # latest calls
|
|
389
398
|
ai doctor # diagnose install, accounts and keys
|
|
399
|
+
ai --version # Omni AI CLI version
|
|
400
|
+
ai --completions zsh|bash # shell autocomplete
|
|
390
401
|
```
|
|
391
402
|
|
|
392
403
|
---
|
|
@@ -448,7 +459,7 @@ python3 -m unittest discover -s tests -v
|
|
|
448
459
|
bash -n scripts/install.sh
|
|
449
460
|
```
|
|
450
461
|
|
|
451
|
-
**
|
|
462
|
+
**123 tests**: session persistence and resume, context limit, file permissions, session
|
|
452
463
|
open in two terminals, event reading, process tree cancellation, real parallelism,
|
|
453
464
|
read-only sandbox, personal data masking, OpenRouter → Codex fallback, model
|
|
454
465
|
validation, key storage and the account lifecycle. All the
|
package/docs/README.es.md
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
[](https://www.npmjs.com/package/omni-ai-cli)
|
|
8
8
|
[](https://www.npmjs.com/package/omni-ai-cli)
|
|
9
9
|
[](https://docs.npmjs.com/trusted-publishers)
|
|
10
|
+
[](https://github.com/samuelrms/omni-ai-cli/actions/workflows/coverage.yml)
|
|
10
11
|
[](../LICENSE)
|
|
11
12
|

|
|
12
13
|

|
|
@@ -112,6 +113,14 @@ bun add -g omni-ai-cli
|
|
|
112
113
|
|
|
113
114
|
Cualquiera de los comandos de arriba (script o gestor de paquetes) instala el mismo `ai`.
|
|
114
115
|
|
|
116
|
+
**Homebrew** (macOS/Linux):
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
brew install samuelrms/tap/omni-ai-cli
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
> En Homebrew reciente, si rechaza el tap como "untrusted", ejecuta una vez: `brew trust samuelrms/tap`.
|
|
123
|
+
|
|
115
124
|
Para actualizar después: `ai --update` (o `/update` en el chat).
|
|
116
125
|
|
|
117
126
|
Desde el código fuente, para desarrollar:
|
|
@@ -388,6 +397,8 @@ ai --install # instala las herramientas que faltan (pr
|
|
|
388
397
|
ai --classify "prompt" # muestra cómo se clasificaría
|
|
389
398
|
ai --log # últimas llamadas
|
|
390
399
|
ai doctor # diagnóstico de instalación, cuentas y claves
|
|
400
|
+
ai --version # versión de Omni AI CLI
|
|
401
|
+
ai --completions zsh|bash # autocompletado del shell
|
|
391
402
|
```
|
|
392
403
|
|
|
393
404
|
---
|
|
@@ -449,7 +460,7 @@ python3 -m unittest discover -s tests -v
|
|
|
449
460
|
bash -n scripts/install.sh
|
|
450
461
|
```
|
|
451
462
|
|
|
452
|
-
**
|
|
463
|
+
**123 pruebas**: persistencia y reanudación de sesión, límite de contexto, permisos de
|
|
453
464
|
los archivos, sesión abierta en dos terminales, lectura de eventos, cancelación del árbol
|
|
454
465
|
de procesos, paralelismo real, sandbox de solo lectura, enmascaramiento de datos
|
|
455
466
|
personales, fallback OpenRouter → Codex, validación de modelos, almacenamiento de las
|
package/docs/README.fr.md
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
[](https://www.npmjs.com/package/omni-ai-cli)
|
|
8
8
|
[](https://www.npmjs.com/package/omni-ai-cli)
|
|
9
9
|
[](https://docs.npmjs.com/trusted-publishers)
|
|
10
|
+
[](https://github.com/samuelrms/omni-ai-cli/actions/workflows/coverage.yml)
|
|
10
11
|
[](../LICENSE)
|
|
11
12
|

|
|
12
13
|

|
|
@@ -114,6 +115,14 @@ bun add -g omni-ai-cli
|
|
|
114
115
|
|
|
115
116
|
N'importe laquelle des commandes ci-dessus (script ou gestionnaire de paquets) installe le même `ai`.
|
|
116
117
|
|
|
118
|
+
**Homebrew** (macOS/Linux) :
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
brew install samuelrms/tap/omni-ai-cli
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
> Sur Homebrew récent, s'il refuse le tap comme « untrusted », exécutez une fois : `brew trust samuelrms/tap`.
|
|
125
|
+
|
|
117
126
|
Pour mettre à jour ensuite : `ai --update` (ou `/update` dans le chat).
|
|
118
127
|
|
|
119
128
|
Depuis les sources, pour développer :
|
|
@@ -397,6 +406,8 @@ ai --install # installe les outils manquants (demande
|
|
|
397
406
|
ai --classify "prompt" # montre la classification
|
|
398
407
|
ai --log # derniers appels
|
|
399
408
|
ai doctor # diagnostic installation, comptes et clés
|
|
409
|
+
ai --version # version d'Omni AI CLI
|
|
410
|
+
ai --completions zsh|bash # autocomplétion du shell
|
|
400
411
|
```
|
|
401
412
|
|
|
402
413
|
---
|
|
@@ -458,7 +469,7 @@ python3 -m unittest discover -s tests -v
|
|
|
458
469
|
bash -n scripts/install.sh
|
|
459
470
|
```
|
|
460
471
|
|
|
461
|
-
**
|
|
472
|
+
**123 tests** : persistance et reprise de session, limite de contexte, permissions des
|
|
462
473
|
fichiers, session ouverte dans deux terminaux, lecture des événements, annulation de
|
|
463
474
|
l'arbre de processus, parallélisme réel, sandbox en lecture seule, masquage des données
|
|
464
475
|
personnelles, fallback OpenRouter → Codex, validation des modèles, stockage des clés et
|
package/omni_ai/cli.py
CHANGED
|
@@ -690,6 +690,37 @@ def ai_version():
|
|
|
690
690
|
return '?'
|
|
691
691
|
|
|
692
692
|
|
|
693
|
+
def completion_words():
|
|
694
|
+
"""Every top-level word `ai` accepts, for shell completion."""
|
|
695
|
+
flags = ['--model', '--account', '--key', '--keys', '--sync', '--usage', '--limits', '--setup',
|
|
696
|
+
'--install', '--status', '--doctor', '--reset', '--log', '--classify', '--update',
|
|
697
|
+
'--mode', '--chat', '--resume', '--sessions', '--new', '--help', '--version', '--completions']
|
|
698
|
+
return flags + ['--' + name for name in TOOLS] + ['doctor']
|
|
699
|
+
|
|
700
|
+
|
|
701
|
+
def completions(shell):
|
|
702
|
+
"""A completion script for `ai`, printed for the user to source. Completes the top-level flags."""
|
|
703
|
+
words = ' '.join(completion_words())
|
|
704
|
+
if shell == 'bash':
|
|
705
|
+
say(f'''# Omni AI CLI bash completion. Install: ai --completions bash > ~/.ai-completion.bash
|
|
706
|
+
# then add to ~/.bashrc: source ~/.ai-completion.bash
|
|
707
|
+
_ai_complete() {{
|
|
708
|
+
local cur="${{COMP_WORDS[COMP_CWORD]}}"
|
|
709
|
+
COMPREPLY=( $(compgen -W "{words}" -- "$cur") )
|
|
710
|
+
}}
|
|
711
|
+
complete -F _ai_complete ai''')
|
|
712
|
+
return 0
|
|
713
|
+
if shell == 'zsh':
|
|
714
|
+
say(f'''#compdef ai
|
|
715
|
+
# Omni AI CLI zsh completion. Install: ai --completions zsh > ~/.zsh/_ai
|
|
716
|
+
# then ensure that dir is on $fpath before compinit in ~/.zshrc
|
|
717
|
+
_ai() {{ compadd -- {words} }}
|
|
718
|
+
compdef _ai ai''')
|
|
719
|
+
return 0
|
|
720
|
+
say(f'{RED}✗ Shell não suportado: {shell}. Use zsh ou bash.{NC}')
|
|
721
|
+
return 1
|
|
722
|
+
|
|
723
|
+
|
|
693
724
|
def doctor():
|
|
694
725
|
"""Health check: what is installed, logged in and configured, and what is missing. Returns 1 when
|
|
695
726
|
nothing can answer a request (no Claude login and no API key), 0 otherwise."""
|
|
@@ -987,6 +1018,8 @@ USAGE = f'''{BOLD}Uso:{NC}
|
|
|
987
1018
|
ai --install Instala as ferramentas que faltam (pergunta antes)
|
|
988
1019
|
ai --status | --doctor | --reset | --log | --classify "prompt"
|
|
989
1020
|
ai --update Atualizar para a versão mais nova
|
|
1021
|
+
ai --version Versão do Omni AI CLI
|
|
1022
|
+
ai --completions zsh|bash Script de autocomplete do shell
|
|
990
1023
|
'''
|
|
991
1024
|
|
|
992
1025
|
|
|
@@ -1037,6 +1070,11 @@ def main(argv):
|
|
|
1037
1070
|
return 0
|
|
1038
1071
|
elif arg in ('--doctor', 'doctor'):
|
|
1039
1072
|
return doctor()
|
|
1073
|
+
elif arg in ('--version', '-v'):
|
|
1074
|
+
say(ai_version())
|
|
1075
|
+
return 0
|
|
1076
|
+
elif arg == '--completions':
|
|
1077
|
+
return completions(argv[i + 1] if i + 1 < len(argv) else '')
|
|
1040
1078
|
elif arg in ('--setup', '--install'):
|
|
1041
1079
|
from . import onboarding
|
|
1042
1080
|
onboarding.main(install_missing=arg == '--install' or 'install' in argv[i + 1:])
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "omni-ai-cli",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "One chat for Claude Code, Codex, Antigravity and OpenRouter, with automatic routing, account fallback, API keys, permission modes and MCP/skill sync.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"ai": "bin/ai.js",
|