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 CHANGED
@@ -7,6 +7,7 @@
7
7
  [![npm](https://img.shields.io/npm/v/omni-ai-cli?color=C4552F)](https://www.npmjs.com/package/omni-ai-cli)
8
8
  [![downloads](https://img.shields.io/npm/dm/omni-ai-cli?color=1A1714)](https://www.npmjs.com/package/omni-ai-cli)
9
9
  [![provenance](https://img.shields.io/badge/npm-OIDC%20trusted%20publishing-C4552F)](https://docs.npmjs.com/trusted-publishers)
10
+ [![coverage](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/samuelrms/omni-ai-cli/badges/coverage.json)](https://github.com/samuelrms/omni-ai-cli/actions/workflows/coverage.yml)
10
11
  [![License: MIT](https://img.shields.io/badge/license-MIT-C4552F.svg)](LICENSE)
11
12
  ![Plataformas](https://img.shields.io/badge/macOS%20·%20Linux%20·%20Windows-1A1714)
12
13
  ![Idiomas](https://img.shields.io/badge/pt--BR%20·%20en%20·%20es%20·%20fr-C4552F)
@@ -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
- **106 testes**: persistência e retomada de sessão, limite de contexto, permissão dos
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
  [![npm](https://img.shields.io/npm/v/omni-ai-cli?color=C4552F)](https://www.npmjs.com/package/omni-ai-cli)
8
8
  [![downloads](https://img.shields.io/npm/dm/omni-ai-cli?color=1A1714)](https://www.npmjs.com/package/omni-ai-cli)
9
9
  [![provenance](https://img.shields.io/badge/npm-OIDC%20trusted%20publishing-C4552F)](https://docs.npmjs.com/trusted-publishers)
10
+ [![coverage](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/samuelrms/omni-ai-cli/badges/coverage.json)](https://github.com/samuelrms/omni-ai-cli/actions/workflows/coverage.yml)
10
11
  [![License: MIT](https://img.shields.io/badge/license-MIT-C4552F.svg)](../LICENSE)
11
12
  ![Platforms](https://img.shields.io/badge/macOS%20·%20Linux%20·%20Windows-1A1714)
12
13
  ![Languages](https://img.shields.io/badge/pt--BR%20·%20en%20·%20es%20·%20fr-C4552F)
@@ -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
- **106 tests**: session persistence and resume, context limit, file permissions, session
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
  [![npm](https://img.shields.io/npm/v/omni-ai-cli?color=C4552F)](https://www.npmjs.com/package/omni-ai-cli)
8
8
  [![downloads](https://img.shields.io/npm/dm/omni-ai-cli?color=1A1714)](https://www.npmjs.com/package/omni-ai-cli)
9
9
  [![provenance](https://img.shields.io/badge/npm-OIDC%20trusted%20publishing-C4552F)](https://docs.npmjs.com/trusted-publishers)
10
+ [![coverage](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/samuelrms/omni-ai-cli/badges/coverage.json)](https://github.com/samuelrms/omni-ai-cli/actions/workflows/coverage.yml)
10
11
  [![License: MIT](https://img.shields.io/badge/license-MIT-C4552F.svg)](../LICENSE)
11
12
  ![Plataformas](https://img.shields.io/badge/macOS%20·%20Linux%20·%20Windows-1A1714)
12
13
  ![Idiomas](https://img.shields.io/badge/pt--BR%20·%20en%20·%20es%20·%20fr-C4552F)
@@ -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
- **106 pruebas**: persistencia y reanudación de sesión, límite de contexto, permisos de
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
  [![npm](https://img.shields.io/npm/v/omni-ai-cli?color=C4552F)](https://www.npmjs.com/package/omni-ai-cli)
8
8
  [![downloads](https://img.shields.io/npm/dm/omni-ai-cli?color=1A1714)](https://www.npmjs.com/package/omni-ai-cli)
9
9
  [![provenance](https://img.shields.io/badge/npm-OIDC%20trusted%20publishing-C4552F)](https://docs.npmjs.com/trusted-publishers)
10
+ [![coverage](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/samuelrms/omni-ai-cli/badges/coverage.json)](https://github.com/samuelrms/omni-ai-cli/actions/workflows/coverage.yml)
10
11
  [![License: MIT](https://img.shields.io/badge/license-MIT-C4552F.svg)](../LICENSE)
11
12
  ![Plateformes](https://img.shields.io/badge/macOS%20·%20Linux%20·%20Windows-1A1714)
12
13
  ![Langues](https://img.shields.io/badge/pt--BR%20·%20en%20·%20es%20·%20fr-C4552F)
@@ -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
- **106 tests** : persistance et reprise de session, limite de contexte, permissions des
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.2.0",
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",