Migrar sesiones de agente
Usa asb / agent-session-bridge; la salida JSON en stdout es la interfaz de máquina.
El CLI utiliza archivos locales, no realiza llamadas a modelos y nunca sube transcripciones.
Copiar y mover incluye solo el contexto de la conversación: mensajes de usuario/asistente, resúmenes de compactación e imágenes de usuario compatibles. Las llamadas/resultados de herramientas, el razonamiento y los registros de sistema/tiempo de ejecución se filtran automáticamente. Los recuentos aparecen como filtered:* en el manifiesto; no se necesita ninguna bandera adicional.
Conserva el título de origen cuando el destino lo soporte. Los títulos nativos de Codex provienen de la fila de base de datos correspondiente (name, luego title); las exportaciones independientes necesitan un título en el registro. Se excluyen el modelo/proveedor de origen y la configuración de razonamiento.
Usa un comando instalado o el .venv/Scripts/asb.exe (Windows) / .venv/bin/asb (POSIX) del repositorio.
Si no está instalado, este proyecto necesita Python 3.14+; crea un entorno virtual de proyecto y ejecuta python -m pip install -e . allí.
Seleccionar las sesiones
- Archivo único:
asb inspect <archivo>luegoasb convert <archivo> --to pi. - ID exacto:
asb convert --from codex --session <id-completo> --to pi. - Proyecto:
asb list --from codex --project <directorio-absoluto>, luegoasb convert --from codex --to pi --project <directorio-absoluto>. - Directorio de exportación:
asb convert <directorio> --from codex --to pi. - Un filtro de proyecto coincide con el cwd registrado y sus descendientes por límite de ruta. No busca en el texto del mensaje.
--source-rootreemplaza un almacén de origen;--target-homees el directorio de inicio del agente destino (no su directoriosessions).- Usa
--cwdsolo cuando el usuario pretenda reubicar el directorio de trabajo. - Pi requiere un modelo de destino porque restaura la selección del modelo a partir de mensajes históricos del asistente. El CLI lee los valores predeterminados de
settings.jsondel directorio de inicio destino, luego de.pi/settings.jsondel cwd destino;--provider/--modellos reemplazan. Si no hay valores predeterminados completos en el destino, proporciona el par destino previsto. Nunca sustituyas el modelo de origen. No se modifican archivos de configuración.
Nombres compatibles: codex, pi, dsh, opencode, qwen, claude, workbuddy, antigravity, antigravity-desktop.
Usa asb formats / asb convert --help para ver las opciones disponibles.
Ejecutar
Ejecuta primero sin --apply. Revisa count, errors, source, target, dropped_events y warnings.
Reporta el conjunto seleccionado y las pérdidas materiales sin imprimir los cuerpos de la conversación.
Resuelve coincidencias inesperadas o contenido no compatible antes de realizar un movimiento destructivo.
- El usuario solicita copiar, o no especifica retención: añade
--apply; conserva los orígenes. - El usuario solicita explícitamente mover/cortar/eliminar esas sesiones de origen después de la migración: añade
--move --apply. - Conserva la autorización ya otorgada. Pregunta solo si la intención de eliminación o el conjunto seleccionado no están claros.
- Detén las sesiones de origen activas antes de un movimiento. El CLI rechaza las sesiones de origen modificadas durante la conversión, pero no puede evitar que otro cliente escriba.
- Nunca sustituyas
rm,delo eliminación recursiva manual por el movimiento verificado del CLI. - Inspecciona cada resultado/error en un lote. Un código de salida distinto de cero puede indicar éxito parcial; no repitas ciegamente elementos exitosos, que obtendrán nuevos IDs.
El CLI verifica los bytes escritos, analiza el destino y registra las filas nativas de base de datos necesarias antes de la eliminación. La limpieza de origen se dirige solo al ID de sesión seleccionado, la transcripción coincidente y los índices conocidos. Esta verificación no llama a un modelo.
Usa el resume argv devuelto como sugerencia de comando; la búsqueda nativa de ID asume el directorio de inicio destino normal.
Para directorios de inicio destino personalizados, inicia el cliente con su correspondiente anulación de variable de entorno de inicio.
Límites de formato
- Selección nativa de OpenCode:
asb convert --from opencode --session <id> --to pi --move --apply. La selección predeterminada lee su base de datos;--source-rootpuede apuntar al directorio que contieneopencode.db. Una exportación JSON suministrada manualmente es un archivo independiente; cortar esa exportación no elimina su sesión original de la base de datos. - Codex / WorkBuddy / OpenCode / Antigravity: los directorios de inicio destino nativos ya deben contener bases de datos inicializadas por el cliente. Esquemas desconocidos o campos obligatorios fallan claramente. Usa
--output-dirpara archivos portátiles sin registro en base de datos. - Para un proyecto Git, inicia OpenCode una vez en el directorio de trabajo previsto para inicializar su índice de proyecto antes de importar allí.
- WorkBuddy maneja sesiones locales y su base de datos/caché. Cuentas de destino múltiples requieren
--workbuddy-user-id. Reanuda desde la lista de sesiones de WorkBuddy. Las imágenes blob se omiten y se cuentan. - DSH lee JSONL/zstd v4. Los registros más antiguos deben ser actualizados primero por DSH. Varias generaciones bloquean un movimiento.
- Las imágenes de DSH se omiten y se cuentan actualmente. Los resúmenes se convierten en contexto de usuario etiquetado.
- Antigravity se refiere al formato SQLite del CLI agy, no al
.pbde escritorio directo ni al almacenamiento cifrado. Su directorio de inicio es~/.gemini/antigravity-cli; usa--source-root/--target-homepara anularlo. Cierra los clientes que usen ese directorio de inicio antes de escrituras o cortes nativos. Los bloqueos de presencia activos y los archivos WAL/SHM/journal bloquean los cortes. - Antigravity usa una base de datos por sesión,
conversation_summaries.dbcompartida,jetbox_summaries_proto.pb,annotations/<id>.pbtxty caché de última conversación. El CLI escribe y elimina los registros seleccionados juntos. Mantén los archivos.dby.manifest.jsonportátiles juntos para los metadatos de título/cwd. Los resúmenes se convierten en contexto de usuario etiquetado, las imágenes se omiten y se cuentan. antigravity-desktopadmite sesiones SQLite.dbdel IDE 2.5.5, con directorio de inicio origen/destino~/.gemini/antigravity-ide(directorio de inicio SQLite anterior~/.gemini/antigravity). Ejemplo:asb convert --from codex --to antigravity-desktop --project <directorio> --apply. Selecciona un ID de escritorio o proyecto como con otros formatos. El escritorio y el CLI agy se convierten en cualquier dirección usando sus nombres de formato distintos.- Las escrituras/cortes nativos de escritorio actualizan tanto los índices de historial conocidos de
state.vscdb, las cachés de protobuf existentes, las anotaciones de título como la base de datos de conversación seleccionada. Las rutas de perfil estándar se infieren; para directorios de inicio personalizados pasa--source-state-dbo--target-state-dbcon el correspondiente globalStorage/state.vscdb. Cierra primero el cliente de escritorio; un servicio de lenguaje en ejecución o sidecars SQLite bloquean la modificación. Un.pbheredado con el mismo ID bloquea los cortes. La base de datos de estado compartida y las sesiones vecinas permanecen. - El escritorio no tiene comando de reanudación devuelto: abre a través de su interfaz de historial nativa. La lectura de verificación oficial del servicio de lenguaje se verifica por ID; el descubrimiento de historial de GUI y la continuación del modelo no están verificados. No afirmes una verificación de GUI solo por análisis de archivos o registro en base de datos.
- El
.pbheredado de escritorio o el historial cifrado deben ser actualizados/importados primero a SQLite por el cliente oficial. Alternativamente, clónalo a través de agy/resume→ Antigravity y convierte esa copia del CLI; mover la copia no elimina el original de escritorio. - Cortar elimina el manifiesto de transcripción/puente seleccionado, las filas nativas de la base de datos de la sesión y las entradas de historial/lista conocidas. Los proyectos compartidos, adjuntos, copias de seguridad, autenticación y configuración de tiempo de ejecución se conservan. Un fallo durante la limpieza de origen puede dejar un destino válido y el origen retenido: inspecciona los errores antes de reintentar.
- Los archivos portátiles
--output/--output-dirnecesitan instalación/importación nativa para reanudación por ID. Pi puede abrir cualquier archivo Pi emitido mediantepi --session <archivo>. - Los límites de compactación siguen siendo efectivos: Pi continúa desde el resumen más reciente y los mensajes posteriores; los mensajes anteriores permanecen en su historial de sesión. Los resúmenes pueden describir acciones pasadas; los registros de ejecución de herramientas sin procesar se excluyen.