omni-ai-cli 1.2.0 → 1.3.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)
@@ -388,6 +389,8 @@ ai --install # instala as ferramentas que faltam (perg
388
389
  ai --classify "prompt" # mostra como seria classificado
389
390
  ai --log # últimas chamadas
390
391
  ai doctor # diagnóstico de instalação, contas e chaves
392
+ ai --version # versão do Omni AI CLI
393
+ ai --completions zsh|bash # autocomplete do shell
391
394
  ```
392
395
 
393
396
  ---
@@ -449,7 +452,7 @@ python3 -m unittest discover -s tests -v
449
452
  bash -n scripts/install.sh
450
453
  ```
451
454
 
452
- **106 testes**: persistência e retomada de sessão, limite de contexto, permissão dos
455
+ **123 testes**: persistência e retomada de sessão, limite de contexto, permissão dos
453
456
  arquivos, sessão aberta em dois terminais, leitura de eventos, cancelamento da árvore de
454
457
  processos, paralelismo real, sandbox somente leitura, mascaramento de dados pessoais,
455
458
  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)
@@ -387,6 +388,8 @@ ai --install # installs the missing tools (asks first)
387
388
  ai --classify "prompt" # shows how it would be classified
388
389
  ai --log # latest calls
389
390
  ai doctor # diagnose install, accounts and keys
391
+ ai --version # Omni AI CLI version
392
+ ai --completions zsh|bash # shell autocomplete
390
393
  ```
391
394
 
392
395
  ---
@@ -448,7 +451,7 @@ python3 -m unittest discover -s tests -v
448
451
  bash -n scripts/install.sh
449
452
  ```
450
453
 
451
- **106 tests**: session persistence and resume, context limit, file permissions, session
454
+ **123 tests**: session persistence and resume, context limit, file permissions, session
452
455
  open in two terminals, event reading, process tree cancellation, real parallelism,
453
456
  read-only sandbox, personal data masking, OpenRouter → Codex fallback, model
454
457
  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)
@@ -388,6 +389,8 @@ ai --install # instala las herramientas que faltan (pr
388
389
  ai --classify "prompt" # muestra cómo se clasificaría
389
390
  ai --log # últimas llamadas
390
391
  ai doctor # diagnóstico de instalación, cuentas y claves
392
+ ai --version # versión de Omni AI CLI
393
+ ai --completions zsh|bash # autocompletado del shell
391
394
  ```
392
395
 
393
396
  ---
@@ -449,7 +452,7 @@ python3 -m unittest discover -s tests -v
449
452
  bash -n scripts/install.sh
450
453
  ```
451
454
 
452
- **106 pruebas**: persistencia y reanudación de sesión, límite de contexto, permisos de
455
+ **123 pruebas**: persistencia y reanudación de sesión, límite de contexto, permisos de
453
456
  los archivos, sesión abierta en dos terminales, lectura de eventos, cancelación del árbol
454
457
  de procesos, paralelismo real, sandbox de solo lectura, enmascaramiento de datos
455
458
  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)
@@ -397,6 +398,8 @@ ai --install # installe les outils manquants (demande
397
398
  ai --classify "prompt" # montre la classification
398
399
  ai --log # derniers appels
399
400
  ai doctor # diagnostic installation, comptes et clés
401
+ ai --version # version d'Omni AI CLI
402
+ ai --completions zsh|bash # autocomplétion du shell
400
403
  ```
401
404
 
402
405
  ---
@@ -458,7 +461,7 @@ python3 -m unittest discover -s tests -v
458
461
  bash -n scripts/install.sh
459
462
  ```
460
463
 
461
- **106 tests** : persistance et reprise de session, limite de contexte, permissions des
464
+ **123 tests** : persistance et reprise de session, limite de contexte, permissions des
462
465
  fichiers, session ouverte dans deux terminaux, lecture des événements, annulation de
463
466
  l'arbre de processus, parallélisme réel, sandbox en lecture seule, masquage des données
464
467
  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.3.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",