Migrer des sessions d'agent
Utilisez asb / agent-session-bridge ; la sortie JSON stdout est l'interface machine.
Le CLI utilise des fichiers locaux, n'effectue aucun appel de modèle et ne télécharge jamais de relevés.
Copier et déplacer incluent uniquement le contexte de conversation : messages utilisateur/assistant, résumés de compaction et images utilisateur supportées. Les appels/résultats d'outils, les réflexions et les enregistrements système/exécution sont filtrés automatiquement. Les compteurs apparaissent sous la forme filtered:* dans le manifeste ; aucun indicateur supplémentaire n'est nécessaire.
Conservez le titre source lorsque la cible le supporte. Les titres natifs de Codex proviennent de la ligne DB correspondante (name, puis title) ; les exportations autonomes nécessitent un titre dans le journal. Les paramètres du modèle source et du fournisseur ainsi que les réglages de réflexion sont exclus.
Utilisez une commande installée ou le .venv/Scripts/asb.exe (Windows) / .venv/bin/asb (POSIX) de l'archive.
S'il n'est pas installé, ce projet nécessite Python 3.14+ ; créez un venv de projet et exécutez python -m pip install -e . dans celui-ci.
Sélectionner les sessions
- Fichier unique :
asb inspect <fichier>puisasb convert <fichier> --to pi. - ID exact :
asb convert --from codex --session <id-complet> --to pi. - Projet :
asb list --from codex --project <répertoire-absolu>, puisasb convert --from codex --to pi --project <répertoire-absolu>. - Répertoire d'export :
asb convert <répertoire> --from codex --to pi. - Un filtre de projet correspond au cwd enregistré et à ses descendants par limite de chemin. Il ne recherche pas dans le texte des messages.
--source-rootremplace un stockage source ;--target-homeest le répertoire personnel de l'agent cible (pas son répertoiresessions).- Utilisez
--cwduniquement lorsque l'utilisateur a l'intention de relocaliser le répertoire de travail. - Pi nécessite un modèle de destination car il restaure la sélection du modèle à partir des messages historiques de l'assistant. Le CLI lit les valeurs par défaut depuis le
settings.jsondu répertoire personnel cible, puis le.pi/settings.jsondu cwd cible ;--provider/--modelles remplacent. En l'absence de valeurs par défaut complètes pour la cible, fournissez la paire cible prévue. Ne substituez jamais le modèle source. Aucun fichier de paramètres n'est modifié.
Noms supportés : codex, pi, dsh, opencode, qwen, claude, workbuddy, antigravity, antigravity-desktop.
Utilisez asb formats / asb convert --help pour les options disponibles.
Exécuter
Exécutez d'abord sans --apply. Lisez count, errors, source, target, dropped_events et warnings.
Signalez l'ensemble sélectionné et les pertes matérielles sans imprimer les corps de conversation.
Résolvez les correspondances inattendues ou le contenu non supporté avant d'effectuer un déplacement destructeur.
- L'utilisateur demande de copier, ou ne précise pas la rétention : ajoutez
--apply; conservez les sources. - L'utilisateur demande explicitement de déplacer/couper/supprimer ces sessions sources après la migration : ajoutez
--move --apply. - Préservez l'autorisation déjà donnée. Demandez uniquement si l'intention de suppression ou l'ensemble sélectionné n'est pas clair.
- Arrêtez les conversations sources actives avant un déplacement. Le CLI rejette les sources modifiées pendant la conversion, mais ne peut pas empêcher un autre client d'écrire.
- Ne substituez jamais
rm,delmanuel ou une suppression récursive au déplacement vérifié du CLI. - Inspectez chaque résultat/erreur dans un lot. Un code de sortie non nul peut indiquer un succès partiel ; ne répétez pas aveuglément les éléments réussis, qui obtiennent de nouveaux IDs.
Le CLI vérifie les octets écrits, analyse la cible et enregistre les lignes DB natives requises avant la suppression. Le nettoyage source cible uniquement l'ID de session sélectionné, le relevé correspondant et les index connus. Cette vérification n'appelle pas de modèle.
Utilisez les resume argv retournés comme suggestion de commande ; la recherche d'ID natif suppose le répertoire personnel cible normal.
Pour les répertoires personnels cibles personnalisés, lancez le client avec son remplacement d'environnement de répertoire personnel correspondant.
Limites des formats
- Sélection native OpenCode :
asb convert --from opencode --session <id> --to pi --move --apply. La sélection par défaut lit sa DB ;--source-rootpeut pointer vers le répertoire contenantopencode.db. Une exportation JSON fournie manuellement est un fichier autonome ; couper cette exportation ne supprime pas sa session DB d'origine. - Les répertoires personnels cibles natifs de Codex / WorkBuddy / OpenCode / Antigravity doivent déjà contenir des bases de données initialisées par le client. Les schémas inconnus ou les champs obligatoires manquants échouent clairement. Utilisez
--output-dirpour les fichiers portables sans enregistrement DB. - Pour un projet Git, démarrez OpenCode une fois dans le répertoire de travail prévu pour initialiser son index de projet avant d'y importer.
- WorkBuddy gère les sessions locales et sa DB/cache. Plusieurs comptes de destination nécessitent
--workbuddy-user-id. Reprenez à partir de la liste des sessions de WorkBuddy. Les images blob sont omises et comptées. - DSH lit les fichiers JSONL/zstd v4. Les journaux plus anciens doivent d'abord être mis à niveau par DSH. Plusieurs générations bloquent un déplacement.
- Les images DSH sont actuellement omises et comptées. Les résumés deviennent un contexte utilisateur étiqueté.
- Antigravity désigne le format SQLite du CLI agy, pas le
.pbde bureau direct ni le stockage chiffré. Son répertoire personnel est~/.gemini/antigravity-cli; utilisez--source-root/--target-homepour le remplacer. Fermez les clients utilisant ce répertoire personnel avant les écritures ou coupures natives. Les verrous de présence actifs et les fichiers WAL/SHM/journal bloquent les coupures. - Antigravity utilise une DB par session,
conversation_summaries.dbpartagé,jetbox_summaries_proto.pb,annotations/<id>.pbtxtet un cache de dernière conversation. Le CLI écrit et supprime les enregistrements sélectionnés ensemble. Conservez les fichiers.dbet.manifest.jsonportables ensemble pour les métadonnées de titre/cwd. Les résumés deviennent un contexte utilisateur étiqueté, les images sont omises et comptées. antigravity-desktopsupporte les sessions.dbSQLite de l'IDE 2.5.5, avec le répertoire personnel source/cible~/.gemini/antigravity-ide(ancien répertoire personnel SQLite~/.gemini/antigravity). Exemple :asb convert --from codex --to antigravity-desktop --project <répertoire> --apply. Sélectionnez un ID de bureau ou un projet comme pour les autres formats. Le bureau et le CLI agy convertissent dans les deux sens en utilisant leurs noms de formats distincts.- Les écritures/coupures natives du bureau mettent à jour les deux index d'historique
state.vscdbconnus, les caches protobuf existants, les annotations de titre et la DB de conversation sélectionnée. Les chemins de profil standard sont déduits ; pour les répertoires personnels personnalisés, passez--source-state-dbou--target-state-dbavec le globalStorage/state.vscdb correspondant. Fermez d'abord le client de bureau ; un service de langage en cours d'exécution ou des sidecars SQLite bloquent la modification. Un.pbhérité avec le même ID bloque les coupures. La DB d'état partagée et les sessions voisines restent. - Le bureau n'a pas de commande de reprise retournée : ouvrez via son interface d'historique native. La relecture officielle du service de langage est vérifiée par ID ; la découverte d'historique GUI et la continuation du modèle ne sont pas vérifiées. Ne prétendez pas à une vérification GUI à partir de l'analyse de fichier ou de l'enregistrement DB seul.
- L'historique
.pbhérité du bureau ou chiffré doit d'abord être mis à niveau/importé dans SQLite par le client officiel. Sinon, clonez-le via agy/resume→ Antigravity et convertissez cette copie CLI ; déplacer la copie ne supprime pas l'original du bureau. - La coupure supprime le relevé/manifeste de pont sélectionné, les lignes DB de session natives et les entrées d'historique/liste connues. Les projets partagés, pièces jointes, sauvegardes, authentifications et paramètres d'exécution sont conservés. Un échec lors du nettoyage source peut laisser une cible valide et une source conservée : inspectez les erreurs avant de réessayer.
- Les fichiers portables
--output/--output-dirnécessitent une installation/importation native pour la reprise par ID. Pi peut ouvrir tout fichier Pi émis viapi --session <fichier>. - Les limites de compaction restent effectives : Pi continue à partir du dernier résumé et des messages ultérieurs ; les messages antérieurs restent dans son historique de session. Les résumés peuvent décrire des actions passées ; les enregistrements d'exécution d'outils bruts sont exclus.