Package Exports
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@leg3ndy/otto-bridge) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Otto Bridge
Companion local do Otto para:
- reivindicar um codigo de pareamento gerado pela web
- armazenar o
device_tokendo dispositivo - manter um WebSocket persistente com o backend
- executar jobs locais com executor proprio do Otto no macOS,
mockouclawd-cursor
Guia de uso
Para um passo a passo de instalacao, pareamento, uso, desconexao e desinstalacao, veja USER_GUIDE.md.
Para o estado atual da arquitetura, capacidades entregues, limitacoes e roadmap do Otto Bridge, veja leg3ndy-ai-backend/docs/OTTO_BRIDGE_ARCHITECTURE.md.
Distribuicao
Fluxo recomendado agora:
- publicar como pacote npm privado/publico para time interno e beta testers
- validar pareamento, atualizacao e telemetria em ambiente real
- depois empacotar em
.dmg/.pkgno macOS e.msino Windows
O pacote ja esta estruturado para install via CLI:
npm install -g @leg3ndy/otto-bridge
otto-bridge status
otto-bridge versionEnquanto o pacote nao estiver publicado, voce pode gerar um tarball local:
npm pack
npm install -g ./leg3ndy-otto-bridge-0.7.4.tgzNo 0.7.4, playwright segue como dependencia obrigatoria no otto-bridge. O primeiro npm install -g @leg3ndy/otto-bridge pode demorar mais porque instala o browser persistente usado pelo WhatsApp Web e pelos fluxos web em background do bridge.
No macOS, o 0.7.4 usa o provider macos-helper, um helper WKWebView sem Dock para o WhatsApp Web. O helper sobe com user-agent de Chrome moderno para evitar o bloqueio do WhatsApp ao detectar Safari/WebKit. O runtime antigo com Chromium/Playwright fica disponivel apenas como override explicito via OTTO_BRIDGE_WHATSAPP_RUNTIME_PROVIDER=embedded-playwright.
Publicacao
Checklist de release:
npm whoami
npm install
npm run release:check
npm publish --access publicO publish exige permissao no scope @leg3ndy.
Se o seu npm local estiver com cache travado por permissao, rode com cache temporario:
npm_config_cache=/tmp/otto-npm-cache npm run release:check
npm_config_cache=/tmp/otto-npm-cache npm publish --access publicComandos
Listar ajuda
otto-bridge help
otto-bridge --helpParear o dispositivo
otto-bridge pair --api http://localhost:8000 --code ABC123Opcoes suportadas:
--name: nome amigavel do dispositivo--timeout-seconds: limite de espera pela aprovacao web--poll-interval-ms: intervalo de polling do claim--executor:native-macos,mockouclawd-cursor--clawd-url: base URL da API local doclawd-cursor--clawd-poll-interval-ms: polling do status/logs doclawd-cursor
No macOS, o caminho recomendado agora e o executor nativo do Otto Bridge. Se nenhum --executor for informado, o pair usa native-macos por padrao no Mac.
Rodar o bridge
otto-bridge runSe o executor estiver salvo no config.json, o run usa essa configuracao por padrao.
Para forcar o executor nativo no macOS sem reparar:
otto-bridge run --executor native-macosO adapter clawd-cursor continua disponivel como override opcional:
otto-bridge run --executor clawd-cursor --clawd-url http://127.0.0.1:3847WhatsApp Web em background
Fluxo recomendado no 0.7.4:
otto-bridge extensions --install whatsappweb
otto-bridge extensions --setup whatsappweb
otto-bridge extensions --status whatsappwebO setup agora abre o login do WhatsApp Web no helper/background browser do proprio bridge. Depois do QR code, o Otto usa a sessao local em background, sem depender de aba visivel no Safari.
Contrato do 0.7.4:
otto-bridge extensions --setup whatsappweb: autentica a sessao uma vezotto-bridge run: mantem o browser persistente do WhatsApp vivo em background enquanto o runtime estiver ativo, sem depender de uma aba aberta no Safari- ao parar o
otto-bridge run: o browser em background e desligado, mas a sessao local fica lembrada para o proximo boot
Handoff rapido do 0.7.4
Ja fechado no codigo:
- provider
macos-helperdockless no macOS como runtime padrao do WhatsApp - user-agent do helper ajustado para evitar bloqueio do WhatsApp por detecao de Safari/WebKit
- resultado final dos
device_jobagora e persistido como contexto mais forte para o proximo turno do Otto - prompt bridge-aware no chat normal para ajudar o Otto a responder com base no que realmente aconteceu no device
Ainda precisa reteste em campo:
- fluxo completo do WhatsApp no helper
macos-helper - confirmacao de que o helper realmente passa do gate de compatibilidade do WhatsApp
- perguntas de follow-up como
o que voce mandou?depois de uma acao local de mensagem
Ver estado local
otto-bridge statusVer versao instalada
otto-bridge version
otto-bridge --versionAtualizar o pacote
Atualizacao automatica via npm:
otto-bridge updatePara apenas ver qual comando sera executado:
otto-bridge update --dry-runPara instalar manualmente:
npm install -g @leg3ndy/otto-bridge@latestRemover pareamento local
otto-bridge unpairVariaveis de ambiente
OTTO_API_BASE_URLOTTO_BRIDGE_HOMEOTTO_BRIDGE_NAMEOTTO_BRIDGE_EXECUTOROTTO_CLAWD_BASE_URLOTTO_CLAWD_POLL_INTERVAL_MS
Payload esperado para jobs desktop
Os executores locais do Otto Bridge procuram a tarefa em uma destas chaves, nessa ordem:
taskpromptinstructioninstructionsmessage
O executor nativo do macOS tambem aceita payload estruturado em actions[], por exemplo:
{
"job_type": "desktop_actions",
"payload": {
"actions": [
{ "type": "open_app", "app": "Safari" },
{ "type": "open_url", "url": "https://www.youtube.com", "app": "Safari" }
]
}
}Exemplo:
{
"job_type": "desktop_task",
"payload": {
"task": "Abra o Safari e pesquise Otto AI"
}
}