Codex

O Pontia se conecta ao daemon app-server do Codex. Instale e autentique o Codex com o mesmo usuário que roda o Pontia e depois verifique o suporte ao daemon:

codex app-server daemon start --help
codex app-server daemon version --help

O Codex usa suas próprias credenciais de modelo, sandbox e política de aprovação. Escolha uma política adequada ao trabalho que você vai executar pelo Dashboard. Quando o Codex pede para executar um comando, alterar arquivos ou usar permissões adicionais, o pedido aparece no Dashboard com as opções Allow e Deny.

Configuração

Na primeira inicialização, execute pontia init e selecione Codex. Para instalar ou reparar a integração depois, execute:

pontia setup codex

Os dois comandos configuram a inicialização automática, verificam a conexão com o daemon, salvam o Codex home para os dois serviços e instalam o launcher. No Linux, eles também ativam o lingering do usuário. O setup preserva o estado de ativação da entrada do Client; use pontia client enable codex para habilitar novas Sessions.

Launcher do Codex

A configuração do Codex instala $PONTIA_HOME/bin/codex e o adiciona ao início do PATH nos seus arquivos de inicialização do bash, zsh ou fish. Comandos codex interativos em novos shells passam então a se conectar ao daemon gerenciado pelo Pontia, e as threads que eles iniciam, retomam ou bifurcam aparecem como Sessions do Pontia. Outros subcomandos, como codex exec ou codex login, executam o executável original sem alterações.

Abra um novo terminal, ou execute o comando de ativação exibido após a configuração, para usar o launcher. Se o launcher ou a configuração de PATH gerenciada por ele estiver faltando, execute pontia setup codex novamente. Repetir a configuração preserva configurações de shell não relacionadas e não duplica o bloco de PATH gerenciado. O executável original do Codex continua disponível.

Editar um prompt anterior

Em qualquer um dos Dashboards, use Edit message no prompt inicial de um Turn concluído. Ao salvar, é criada uma Session independente com o histórico anterior a esse prompt; em seguida, sua substituição é enviada e a nova Session é aberta. Editar o primeiro prompt começa com um histórico vazio. A Session original continua disponível, e qualquer trabalho que já estiver rodando nela continua.

Se a nova Session for criada, mas a substituição não puder ser enviada, use Check / recover edit para enviá-la para essa mesma Session. Mantenha a operação salva enquanto o resultado não estiver confirmado, para que a recuperação não crie outra bifurcação.

Uma bifurcação altera apenas o histórico da conversa; ela não reverte os arquivos do workspace.

Configuração manual

Para uma inicialização não interativa, crie ou atualize a definição de serviço da sua plataforma abaixo. Use caminhos absolutos para o executável e para o Codex home. Encontre seu executável com command -v codex; se ele precisar do Node, inclua o diretório do Node no PATH do serviço.

Linux

Crie ~/.config/systemd/user/ se necessário e salve isto como pontia-codex.service dentro dele:

[Unit]
Description=Codex App Server Daemon Startup
After=network.target

[Service]
Type=oneshot
ExecStart="/absolute/path/to/codex" app-server daemon start
Environment="CODEX_HOME=/home/you/.codex"

[Install]
WantedBy=default.target

Ative e verifique a inicialização automática:

systemctl --user daemon-reload
loginctl enable-linger "$(id -un)"
systemctl --user enable --now pontia-codex.service
systemctl --user is-enabled pontia-codex.service

O lingering mantém os serviços do usuário disponíveis após o logout e pode exigir autorização de administrador. Para ver os logs, use journalctl --user -u pontia-codex.service.

macOS

Crie ~/Library/LaunchAgents/ se necessário e salve isto como dev.pontia.codex-daemon.plist dentro dele:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key><string>dev.pontia.codex-daemon</string>
  <key>ProgramArguments</key>
  <array>
    <string>/absolute/path/to/codex</string>
    <string>app-server</string><string>daemon</string><string>start</string>
  </array>
  <key>EnvironmentVariables</key>
  <dict>
    <key>CODEX_HOME</key><string>/Users/you/.codex</string>
    <key>PATH</key><string>/absolute/path/to/bin:/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin</string>
  </dict>
  <key>RunAtLoad</key><true/>
</dict>
</plist>

Valide e carregue o arquivo no domínio GUI do usuário logado:

plutil -lint "$HOME/Library/LaunchAgents/dev.pontia.codex-daemon.plist"
launchctl enable "gui/$(id -u)/dev.pontia.codex-daemon"
launchctl bootstrap "gui/$(id -u)" "$HOME/Library/LaunchAgents/dev.pontia.codex-daemon.plist"
launchctl print "gui/$(id -u)/dev.pontia.codex-daemon"

Para substituir uma definição já carregada, execute launchctl bootout "gui/$(id -u)/dev.pontia.codex-daemon" antes do bootstrap.

Verificar o daemon

Use o mesmo Codex home da sua definição de serviço:

CODEX_HOME="${CODEX_HOME:-$HOME/.codex}" codex app-server daemon version

Um daemon em execução retorna um JSON com "status": "running". Continue com a inicialização para iniciar o Pontia, fazer o Codex home dele corresponder conforme descrito abaixo, habilitar o Codex e se conectar ao Remote Dashboard.

Fazer o Codex home do Pontia corresponder

Após o primeiro pontia up, verifique se a definição de serviço do Pontia salva o mesmo CODEX_HOME absoluto que o daemon do Codex. Isso vale tanto para o diretório padrão ~/.codex quanto para homes personalizados. Adicione ou atualize o valor conforme necessário, mantendo as demais configurações do serviço:

PlataformaDefinição do PontiaAlteraçãoAplicar
Linux~/.config/systemd/user/pontia.serviceAdicione Environment="CODEX_HOME=/your/path" em [Service]pontia up
macOS~/Library/LaunchAgents/dev.pontia.pontiad.plistAdicione uma string CODEX_HOME a EnvironmentVariablespontia down e depois pontia up

No macOS, mantenha a definição do Pontia em XML e insira ou atualize esta entrada dentro de EnvironmentVariables, preservando a quebra de linha e o recuo de quatro espaços mostrados:

    <key>CODEX_HOME</key>
    <string>/your/path</string>

Substitua /your/path pelo caminho escolhido, escape caracteres XML como & e mantenha o layout das entradas ao redor. Uma configuração existente que já corresponde está pronta para uso.

Após uma alteração, recarregue o serviço com o comando da tabela. Verifique o CODEX_HOME salvo e confirme que pontia status informa um serviço saudável; depois, habilite o Codex. Salvar o caminho na definição de serviço o torna disponível para o processo em segundo plano do Pontia.