{"_id":"@carlosgtrz/t3-import","_rev":"9-0cbaa6188abc6e7acef397a6057514d2","name":"@carlosgtrz/t3-import","dist-tags":{"latest":"0.4.1"},"versions":{"0.1.0":{"name":"@carlosgtrz/t3-import","version":"0.1.0","keywords":["t3code","codex","claude-code","conversation","importer","cli","tui"],"author":{"url":"https://github.com/CarlosGtrz","name":"CarlosGtrz"},"license":"MIT","_id":"@carlosgtrz/t3-import@0.1.0","maintainers":[{"name":"carlosgtrz","email":"carlosg@sca.com.mx"}],"homepage":"https://github.com/CarlosGtrz/t3-import#readme","bugs":{"url":"https://github.com/CarlosGtrz/t3-import/issues"},"bin":{"t3-import":"dist/cli.js"},"dist":{"shasum":"504554d4c63e3f453bb00bfed0eb7da971eef395","tarball":"https://registry.npmjs.org/@carlosgtrz/t3-import/-/t3-import-0.1.0.tgz","fileCount":48,"integrity":"sha512-qM5Hec8naHSeCpGFAUALQt2rUH+vpZ3ftygc8b4G7Q+ypWhFVL7ozJcpkzwg0ZADUhveYqNsjpjIOg8MADNOzA==","signatures":[{"sig":"MEUCIQC5dEjxwRMrmXb2lIHK13xBiCY01XmvPLOdfL++E1n8NwIgG8whDBeDm6pFD9Lt/vAf5k0u/Zjh9+SovVcCre/HZF4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":241507},"type":"module","engines":{"node":">=22"},"gitHead":"bb2d45b575e3483b67aac2b8daa38327c2cfb4fb","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.build.json","prepack":"npm run build","typecheck":"tsc --noEmit","release:check":"npm publish --dry-run --access public","prepublishOnly":"npm run typecheck && npm test"},"_npmUser":{"name":"carlosgtrz","email":"carlosg@sca.com.mx"},"repository":{"url":"git+https://github.com/CarlosGtrz/t3-import.git","type":"git"},"_npmVersion":"11.11.0","description":"Import Codex and Claude Code conversations into T3 Code","directories":{},"_nodeVersion":"22.21.1","dependencies":{"ink":"^6.2.3","zod":"^4.0.17","react":"^19.1.1","commander":"^14.0.0","env-paths":"^3.0.0","better-sqlite3":"^12.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.4","vitest":"^3.2.4","typescript":"^5.9.2","@types/node":"^22.17.2","@types/react":"^19.1.10","ink-testing-library":"^4.0.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/t3-import_0.1.0_1786484722689_0.9895842839215434","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@carlosgtrz/t3-import","version":"0.1.1","keywords":["t3code","codex","claude-code","conversation","importer","cli","tui"],"author":{"url":"https://github.com/CarlosGtrz","name":"CarlosGtrz"},"license":"MIT","_id":"@carlosgtrz/t3-import@0.1.1","maintainers":[{"name":"carlosgtrz","email":"carlosg@sca.com.mx"}],"homepage":"https://github.com/CarlosGtrz/t3-import#readme","bugs":{"url":"https://github.com/CarlosGtrz/t3-import/issues"},"bin":{"t3-import":"dist/cli.js"},"dist":{"shasum":"7bd41adbfc20bdf478a01020e9b443d1d0865229","tarball":"https://registry.npmjs.org/@carlosgtrz/t3-import/-/t3-import-0.1.1.tgz","fileCount":48,"integrity":"sha512-dY7v1zpdjM1YsGMaDJfUgMz9z1e9maaTuw+9gEAJzEcJzfsHNQp01g6iwcabMPHtWdbzvP8h0oIN4ozhkvFYnA==","signatures":[{"sig":"MEQCIFoPyAImLHHR5TiB8zIuAlhct5TydCX/cKP8PyL5+u03AiAtHFCEp3AXYbZBiW+YrXpo1lVL2cf60fmAz2pEJ42fSg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":241818},"type":"module","engines":{"node":">=22"},"gitHead":"fa36b6cd0b7cbeeb3bb9c0eb7869685afa4da8a0","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.build.json","prepack":"npm run build","typecheck":"tsc --noEmit","release:check":"npm publish --dry-run --access public","prepublishOnly":"npm run typecheck && npm test"},"_npmUser":{"name":"carlosgtrz","email":"carlosg@sca.com.mx"},"repository":{"url":"git+https://github.com/CarlosGtrz/t3-import.git","type":"git"},"_npmVersion":"11.11.0","description":"Import Codex and Claude Code conversations into T3 Code","directories":{},"_nodeVersion":"22.21.1","dependencies":{"ink":"^6.2.3","zod":"^4.0.17","react":"^19.1.1","commander":"^14.0.0","env-paths":"^3.0.0","better-sqlite3":"^12.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.4","vitest":"^3.2.4","typescript":"^5.9.2","@types/node":"^22.17.2","@types/react":"^19.1.10","ink-testing-library":"^4.0.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/t3-import_0.1.1_1786485941471_0.5159333774766586","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@carlosgtrz/t3-import","version":"0.2.1","keywords":["t3code","codex","claude-code","conversation","importer","cli","tui"],"author":{"url":"https://github.com/CarlosGtrz","name":"CarlosGtrz"},"license":"MIT","_id":"@carlosgtrz/t3-import@0.2.1","maintainers":[{"name":"carlosgtrz","email":"carlosg@sca.com.mx"}],"homepage":"https://github.com/CarlosGtrz/t3-import#readme","bugs":{"url":"https://github.com/CarlosGtrz/t3-import/issues"},"bin":{"t3-import":"dist/cli.js"},"dist":{"shasum":"00bdb4927dae8569afd0c3603cb26998dfd47e42","tarball":"https://registry.npmjs.org/@carlosgtrz/t3-import/-/t3-import-0.2.1.tgz","fileCount":57,"integrity":"sha512-tg+VhaJZiOlnfuArfsy97lsWJxpVNsjADQ1WhjUP0Rb34OzcFewv3Mj1kWNd3LpOV4AF6Eb85HmZwYkYWLD8zA==","signatures":[{"sig":"MEUCID8gdfxxqarFb6WuAkzsCFjaq1C37/AvbcB41Fe5UhE0AiEA16bnMwOvXRgasUc72zSYx6eOHAW/O3vMMXjet/ST5HE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":388939},"type":"module","engines":{"node":">=22"},"gitHead":"25bfb092bd5a59f20145993ca96c40151506ddc2","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.build.json","prepack":"npm run build","typecheck":"tsc --noEmit","release:check":"npm publish --dry-run --access public","prepublishOnly":"npm run typecheck && npm test"},"_npmUser":{"name":"carlosgtrz","email":"carlosg@sca.com.mx"},"repository":{"url":"git+https://github.com/CarlosGtrz/t3-import.git","type":"git"},"_npmVersion":"11.11.0","description":"Import and incrementally sync Codex and Claude Code conversations into T3 Code","directories":{},"_nodeVersion":"22.21.1","dependencies":{"ink":"^6.2.3","zod":"^4.0.17","react":"^19.1.1","commander":"^14.0.0","env-paths":"^3.0.0","better-sqlite3":"^12.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.4","vitest":"^3.2.4","typescript":"^5.9.2","@types/node":"^22.17.2","@types/react":"^19.1.10","ink-testing-library":"^4.0.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/t3-import_0.2.1_1786508789499_0.268689156893293","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@carlosgtrz/t3-import","version":"0.2.2","keywords":["t3code","codex","claude-code","conversation","importer","cli","tui"],"author":{"url":"https://github.com/CarlosGtrz","name":"CarlosGtrz"},"license":"MIT","_id":"@carlosgtrz/t3-import@0.2.2","maintainers":[{"name":"carlosgtrz","email":"carlosg@sca.com.mx"}],"homepage":"https://github.com/CarlosGtrz/t3-import#readme","bugs":{"url":"https://github.com/CarlosGtrz/t3-import/issues"},"bin":{"t3-import":"dist/cli.js"},"dist":{"shasum":"9f08b7492d7fe47b3cd1e052b9753edaaff27b2d","tarball":"https://registry.npmjs.org/@carlosgtrz/t3-import/-/t3-import-0.2.2.tgz","fileCount":57,"integrity":"sha512-6E4ATl4X2eQia0Vg6cuuys/PH3nIo0dXf0+LSa2H0NptSKGhNnSW0e/rl9nwzSy8kwrJghv6tFjNQvM9dqRbBA==","signatures":[{"sig":"MEUCIQCCbf+LMHgG+ZT+BUb6DWRGasvGFoKpGCLJMf8w4e6+KQIgdZWd5I5GerNyqDDgDwpQv/8BGLbgCfw/uJSNAMDk2jo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":389956},"type":"module","engines":{"node":">=22"},"gitHead":"df46756f024092ec29842b30dfeb8c1e116ee661","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.build.json","prepack":"npm run build","typecheck":"tsc --noEmit","release:check":"npm publish --dry-run --access public","prepublishOnly":"npm run typecheck && npm test"},"_npmUser":{"name":"carlosgtrz","email":"carlosg@sca.com.mx"},"repository":{"url":"git+https://github.com/CarlosGtrz/t3-import.git","type":"git"},"_npmVersion":"11.11.0","description":"Import and incrementally sync Codex and Claude Code conversations into T3 Code","directories":{},"_nodeVersion":"22.21.1","dependencies":{"ink":"^6.2.3","zod":"^4.0.17","react":"^19.1.1","commander":"^14.0.0","env-paths":"^3.0.0","better-sqlite3":"^12.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.4","vitest":"^3.2.4","typescript":"^5.9.2","@types/node":"^22.17.2","@types/react":"^19.1.10","ink-testing-library":"^4.0.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/t3-import_0.2.2_1786509678807_0.12101023769795116","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@carlosgtrz/t3-import","version":"0.3.0","keywords":["t3code","codex","claude-code","conversation","importer","cli","tui"],"author":{"url":"https://github.com/CarlosGtrz","name":"CarlosGtrz"},"license":"MIT","_id":"@carlosgtrz/t3-import@0.3.0","maintainers":[{"name":"carlosgtrz","email":"carlosg@sca.com.mx"}],"homepage":"https://github.com/CarlosGtrz/t3-import#readme","bugs":{"url":"https://github.com/CarlosGtrz/t3-import/issues"},"bin":{"t3-import":"dist/cli.js"},"dist":{"shasum":"7142804a94aac7f3d9bfec2169455ebf048f5b39","tarball":"https://registry.npmjs.org/@carlosgtrz/t3-import/-/t3-import-0.3.0.tgz","fileCount":63,"integrity":"sha512-z8vd4Xer+cNv6E/2xje2mwo8nHrNX4GCCkMdJDKhUNpeiSEy/uNDXyRiJEKd4qX1Uh/fZPVsj7vPZJcYZQwWmg==","signatures":[{"sig":"MEUCIG2CMfJJcLhOWJKAA/A8JlgXtzXI7iUoAiC4exDCH3MAAiEA6q9XhqQkn2bfKcutyla3dqR7QIO3dnlfBqguds18ZQ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":479063},"type":"module","engines":{"node":">=22"},"gitHead":"920146d62cfee2954f3002b4223a4c43344e3308","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.build.json","prepack":"npm run build","typecheck":"tsc --noEmit","release:check":"npm publish --dry-run --access public","prepublishOnly":"npm run typecheck && npm test"},"_npmUser":{"name":"carlosgtrz","email":"carlosg@sca.com.mx"},"repository":{"url":"git+https://github.com/CarlosGtrz/t3-import.git","type":"git"},"_npmVersion":"11.11.0","description":"Import, synchronize, and safely replace Codex and Claude Code conversations in T3 Code","directories":{},"_nodeVersion":"22.21.1","dependencies":{"ink":"^6.2.3","zod":"^4.0.17","react":"^19.1.1","commander":"^14.0.0","env-paths":"^3.0.0","better-sqlite3":"^12.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.4","vitest":"^3.2.4","typescript":"^5.9.2","@types/node":"^22.17.2","@types/react":"^19.1.10","ink-testing-library":"^4.0.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/t3-import_0.3.0_1786560460413_0.030374847579484943","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@carlosgtrz/t3-import","version":"0.3.1","keywords":["t3code","codex","claude-code","conversation","importer","cli","tui"],"author":{"url":"https://github.com/CarlosGtrz","name":"CarlosGtrz"},"license":"MIT","_id":"@carlosgtrz/t3-import@0.3.1","maintainers":[{"name":"carlosgtrz","email":"carlosg@sca.com.mx"}],"homepage":"https://github.com/CarlosGtrz/t3-import#readme","bugs":{"url":"https://github.com/CarlosGtrz/t3-import/issues"},"bin":{"t3-import":"dist/cli.js"},"dist":{"shasum":"8b4c08ece941e490f6711132e63fd08533d5f30d","tarball":"https://registry.npmjs.org/@carlosgtrz/t3-import/-/t3-import-0.3.1.tgz","fileCount":63,"integrity":"sha512-POJcndjzgmR8BTqhILzTuB6J/RxjBEp3XTb/WIz54WZqNM/S+E/iJcp4VQipkz0tMbJkVt+pJnEpdcl0zt2rBw==","signatures":[{"sig":"MEYCIQCoggKkRXNK+v2lsJ72GN4iq66pKsQMBVowZsvgYLXC2AIhAKP363HZKUh3EigcPohTJ1VjUpA43zI5ak47qmydIVd6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":494117},"type":"module","engines":{"node":">=22"},"gitHead":"3bff9f7cdbff6c590306d243bcdaa1dde10a5db6","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.build.json","prepack":"npm run build","typecheck":"tsc --noEmit","release:check":"npm publish --dry-run --access public","prepublishOnly":"npm run typecheck && npm test"},"_npmUser":{"name":"carlosgtrz","email":"carlosg@sca.com.mx"},"repository":{"url":"git+https://github.com/CarlosGtrz/t3-import.git","type":"git"},"_npmVersion":"11.11.0","description":"Import, synchronize, and safely replace Codex and Claude Code conversations in T3 Code","directories":{},"_nodeVersion":"22.21.1","dependencies":{"ink":"^6.2.3","zod":"^4.0.17","react":"^19.1.1","commander":"^14.0.0","env-paths":"^3.0.0","better-sqlite3":"^12.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.4","vitest":"^3.2.4","typescript":"^5.9.2","@types/node":"^22.17.2","@types/react":"^19.1.10","ink-testing-library":"^4.0.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/t3-import_0.3.1_1786822965769_0.3670845792101607","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@carlosgtrz/t3-import","version":"0.3.2","keywords":["t3code","codex","claude-code","conversation","importer","cli","tui"],"author":{"url":"https://github.com/CarlosGtrz","name":"CarlosGtrz"},"license":"MIT","_id":"@carlosgtrz/t3-import@0.3.2","maintainers":[{"name":"carlosgtrz","email":"carlosg@sca.com.mx"}],"homepage":"https://github.com/CarlosGtrz/t3-import#readme","bugs":{"url":"https://github.com/CarlosGtrz/t3-import/issues"},"bin":{"t3-import":"dist/cli.js"},"dist":{"shasum":"610718eafcd982a5fef275700ef596da525c6709","tarball":"https://registry.npmjs.org/@carlosgtrz/t3-import/-/t3-import-0.3.2.tgz","fileCount":63,"integrity":"sha512-BdVOOK6PU4hJ6sPKlgPFr+glJiJD46STIwkNnaWMKh8VK86dv6g5YXz7282mL9PZLF+ucVpYabRaXcMO14cIUw==","signatures":[{"sig":"MEQCIB7A518IySRBuNP+o5AkgTzDJSpNM56vcdjhPGpYJs3DAiA+BNY94jQY/ve0rlZ3BjWHJOOZnyygkT0vKJzgveSL7Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":495481},"type":"module","engines":{"node":">=22"},"gitHead":"992de9253de53f0f8f85b26f860513a50420d056","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.build.json","prepack":"npm run build","typecheck":"tsc --noEmit","release:check":"npm publish --dry-run --access public","prepublishOnly":"npm run typecheck && npm test"},"_npmUser":{"name":"carlosgtrz","email":"carlosg@sca.com.mx"},"repository":{"url":"git+https://github.com/CarlosGtrz/t3-import.git","type":"git"},"_npmVersion":"11.11.0","description":"Import, synchronize, and safely replace Codex and Claude Code conversations in T3 Code","directories":{},"_nodeVersion":"22.21.1","dependencies":{"ink":"^6.2.3","zod":"^4.0.17","react":"^19.1.1","commander":"^14.0.0","env-paths":"^3.0.0","better-sqlite3":"^12.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.4","vitest":"^3.2.4","typescript":"^5.9.2","@types/node":"^22.17.2","@types/react":"^19.1.10","ink-testing-library":"^4.0.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/t3-import_0.3.2_1786825200955_0.027547248172867356","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@carlosgtrz/t3-import","version":"0.4.0","keywords":["t3code","codex","claude-code","conversation","importer","cli","tui"],"author":{"url":"https://github.com/CarlosGtrz","name":"CarlosGtrz"},"license":"MIT","_id":"@carlosgtrz/t3-import@0.4.0","maintainers":[{"name":"carlosgtrz","email":"carlosg@sca.com.mx"}],"homepage":"https://github.com/CarlosGtrz/t3-import#readme","bugs":{"url":"https://github.com/CarlosGtrz/t3-import/issues"},"bin":{"t3-import":"dist/cli.js"},"dist":{"shasum":"f6befdcba9b26abeb6c14a4e4d6a50fb22320a3b","tarball":"https://registry.npmjs.org/@carlosgtrz/t3-import/-/t3-import-0.4.0.tgz","fileCount":63,"integrity":"sha512-ftsJq+1izjss6Mrsw+ezmtahhELxtmEmqtCHDMEdpJ+se8UpJggaFYgop4A1VtrteozQpjuvkgzRCBsHEDLPHQ==","signatures":[{"sig":"MEUCIHvQxrOZwtYiTj+8zVPesSnrmX32Ch+xjGlnzE3JjvZwAiEA+PSDiZzrp4kwuUWg96d1ASoSvnZHZkp2nrZwttad/Dg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIACdT/bUmQFAZ+Fbc342p630dqSvgt/El+/V7Qz2tNIBAiBANwbFJZ6FqU7w8xx2HlflVLHaL/7GcbntFSnIOKhtaw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":498915},"type":"module","_from":"file:carlosgtrz-t3-import-0.4.0.tgz","engines":{"node":">=22"},"scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.build.json","prepack":"npm run build","typecheck":"tsc --noEmit","release:check":"npm publish --dry-run --access public","compat:prepare":"node scripts/compatibility/prepare.mjs","compat:schemas":"node scripts/compatibility/generate-schemas.mjs","prepublishOnly":"npm run typecheck && npm test","test:compatibility":"npm run compat:prepare && tsx scripts/compatibility/run.ts"},"_npmUser":{"name":"carlosgtrz","email":"carlosg@sca.com.mx"},"_resolved":"L:\\ai\\t3import\\carlosgtrz-t3-import-0.4.0.tgz","_integrity":"sha512-ftsJq+1izjss6Mrsw+ezmtahhELxtmEmqtCHDMEdpJ+se8UpJggaFYgop4A1VtrteozQpjuvkgzRCBsHEDLPHQ==","repository":{"url":"git+https://github.com/CarlosGtrz/t3-import.git","type":"git"},"_npmVersion":"11.11.0","description":"Import, synchronize, and safely replace Codex and Claude Code conversations in T3 Code","directories":{},"_nodeVersion":"22.21.1","dependencies":{"ink":"^6.2.3","zod":"^4.0.17","react":"^19.1.1","commander":"^14.0.0","env-paths":"^3.0.0","better-sqlite3":"^12.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.4","vitest":"^3.2.4","typescript":"^5.9.2","@types/node":"^22.17.2","@types/react":"^19.1.10","ink-testing-library":"^4.0.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/t3-import_0.4.0_1789013989429_0.6820057521036411","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"_id":"@carlosgtrz/t3-import@0.4.1","bin":{"t3-import":"dist/cli.js"},"bugs":{"url":"https://github.com/CarlosGtrz/t3-import/issues"},"dist":{"shasum":"e23c92e22fc790e6bbc7ec6f419d17a2de6d565a","tarball":"https://registry.npmjs.org/@carlosgtrz/t3-import/-/t3-import-0.4.1.tgz","fileCount":63,"integrity":"sha512-T5dgPKH40UZcxGqJTpmHwlW+yIFmIydnXVFKXak9HirYKTTPPoQDvfuMgaDvXa+HlUtu6BSNDB5ZdTBZq9ruqA==","signatures":[{"sig":"MEUCIQCmVktBkQaEsoP+NOTdZ+I+N3aX1jHlXi401y3SaotREwIgIXLdfta6kOnzN0/kHpiAMkwuVXC2QpfYQs9eyKP1hoE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBuMWCWcVkZ3BMT5R526BqSKdS9yFu9o7Rml+rM6FnjFAiEA8BuJx+hqH0buhHETEltB2RnSlM0czBCyrNgCP70I7pk="}],"unpackedSize":499006},"name":"@carlosgtrz/t3-import","type":"module","author":{"url":"https://github.com/CarlosGtrz","name":"CarlosGtrz"},"engines":{"node":">=22"},"gitHead":"5e20fb5709aa7ad6ce0853e210426c551066d7e0","license":"MIT","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.build.json","prepack":"npm run build","typecheck":"tsc --noEmit","release:check":"npm publish --dry-run --access public","compat:prepare":"node scripts/compatibility/prepare.mjs","compat:schemas":"node scripts/compatibility/generate-schemas.mjs","prepublishOnly":"npm run typecheck && npm test","test:compatibility":"npm run compat:prepare && tsx scripts/compatibility/run.ts"},"version":"0.4.1","_npmUser":{"name":"carlosgtrz","email":"carlosg@sca.com.mx"},"homepage":"https://github.com/CarlosGtrz/t3-import#readme","keywords":["t3code","codex","claude-code","conversation","importer","cli","tui"],"repository":{"url":"git+https://github.com/CarlosGtrz/t3-import.git","type":"git"},"_npmVersion":"11.11.0","description":"Import, synchronize, and safely replace Codex and Claude Code conversations in T3 Code","directories":{},"maintainers":[{"name":"carlosgtrz","email":"carlosg@sca.com.mx"}],"_nodeVersion":"22.21.1","dependencies":{"ink":"^6.2.3","zod":"^4.0.17","react":"^19.1.1","commander":"^14.0.0","env-paths":"^3.0.0","better-sqlite3":"^12.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.4","vitest":"^3.2.4","typescript":"^5.9.2","@types/node":"^22.17.2","@types/react":"^19.1.10","ink-testing-library":"^4.0.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/t3-import_0.4.1_1789956086410_0.14809949339851936"}}},"time":{"created":"2026-08-11T21:45:22.582Z","modified":"2026-09-21T02:01:26.682Z","0.1.0":"2026-08-11T21:45:22.867Z","0.1.1":"2026-08-11T22:05:41.603Z","0.2.1":"2026-08-12T04:26:29.669Z","0.2.2":"2026-08-12T04:41:18.962Z","0.3.0":"2026-08-12T18:47:40.569Z","0.3.1":"2026-08-15T19:42:45.912Z","0.3.2":"2026-08-15T20:20:01.120Z","0.4.0":"2026-09-10T04:19:49.533Z","0.4.1":"2026-09-21T02:01:26.505Z"},"bugs":{"url":"https://github.com/CarlosGtrz/t3-import/issues"},"author":{"url":"https://github.com/CarlosGtrz","name":"CarlosGtrz"},"license":"MIT","homepage":"https://github.com/CarlosGtrz/t3-import#readme","keywords":["t3code","codex","claude-code","conversation","importer","cli","tui"],"repository":{"url":"git+https://github.com/CarlosGtrz/t3-import.git","type":"git"},"description":"Import, synchronize, and safely replace Codex and Claude Code conversations in T3 Code","maintainers":[{"name":"carlosgtrz","email":"carlosg@sca.com.mx"}],"readme":"# t3-import\n\n`t3-import` is an independent, local-only CLI for importing Codex and Claude Code conversation history into [T3 Code](https://github.com/pingdotgg/t3code). It writes canonical orchestration events while T3 is closed; T3 rebuilds its own projections on the next launch. The original provider session is bound so the current branch can resume when the source history is still available.\n\nCompatibility is intentionally explicit: **T3 migrations 40–53**, Node.js 22 or newer, and local files only. Unknown T3 schemas fail closed.\n\n## How it works\n\n`t3-import` reads local Codex conversations through `codex app-server` and Codex rollout JSONL files. It reads Claude Code sessions from the JSONL files under `~/.claude/projects/`. The source data is normalized into conversations, turns, messages, tool activity, plans, usage, and supported image attachments.\n\nTo keep T3 startup bounded, imports preserve every message, turn boundary, plan, image, error or approval, context compaction, and resume binding while compacting repetitive activity telemetry. Context-window snapshots are omitted, and long turns retain the latest visible reasoning summary plus a representative significant tool activity. The importer rejects any write that would exceed T3's safe one-launch projection budget.\n\nWith T3 Code closed, the importer validates the local database against the supported migration profiles and creates a verified backup. It then appends canonical events to `orchestration_events` and adds provider-session bindings for conversations that can be resumed. It does not modify T3's projection tables: T3 Code rebuilds them from the imported events the next time it starts. After a successful write, the importer also backs up and resets T3's rebuildable IndexedDB origin cache so stale task snapshots cannot hide newly imported history.\n\nAfter an initial import, `t3-import` can append newly settled Codex turns and newly settled turns from linear Claude conversations. Completed, interrupted, and failed turns are preserved; only genuinely active or indeterminate turns are ignored during synchronization. It verifies that the imported checkpoint is still an exact prefix, adopts exact turns already created by resuming through T3, and never replaces edited or deleted history. Claude sessions with multiple non-sidechain leaves after deterministic compaction and retry normalization are reported as conflicts rather than guessed.\n\nIf an imported task has diverged or was created by an older importer, `replace` can create a fresh, complete canonical task from the provider transcript. The old task is soft-deleted with a `thread.deleted` event, while its immutable event stream remains available for audit. The provider instance, model, resume cursor, project, and synchronization identity move to the new task atomically. When deterministic normalization reduces a previously fragmented Claude session to one leaf, replacement consolidates every still-visible imported fragment of that session into the new task. Replacement is available for Codex and for Claude sessions with one normalized non-sidechain leaf, and it refuses to snapshot an active provider turn.\n\n## Install and run\n\n> [!WARNING]\n> `t3-import` is experimental and writes directly to T3 Code's local database. Future T3 Code versions may be incompatible even if the tool works today. Close T3 Code before importing, keep the generated backup, and use this tool at your own risk.\n\n```text\nnpm install --global @carlosgtrz/t3-import\nt3-import\n```\n\nRunning without a command opens the interactive TUI. It guides you through source, workspace, provider instance, conversation selection, review, confirmation, and results, then offers to start T3 Code with Yes selected by default.\n\n## Interactive demo\n\nThe example below installs the package, launches `t3-import` without parameters, selects Codex, and imports two simulated conversations into T3 Code.\n\n![Animated t3-import interactive Codex import](https://raw.githubusercontent.com/CarlosGtrz/t3-import/main/assets/t3-import-tui-demo.gif)\n\nNon-interactive examples:\n\n```text\nt3-import list --source codex --workspace C:\\src\\my-project\nt3-import show --source claude --thread <session-id>\nt3-import import --source codex --workspace C:\\src\\my-project --thread <thread-id> --yes --non-interactive\nt3-import import --source claude --workspace C:\\src\\my-project --all --since 2026-01-01 --yes --non-interactive\nt3-import sync --source codex --workspace C:\\src\\my-project --thread <thread-id> --yes --non-interactive\nt3-import sync --source claude --workspace C:\\src\\my-project --all --yes --non-interactive\nt3-import replace --source codex --workspace C:\\src\\my-project --thread <thread-id> --yes --non-interactive\nt3-import cache reset --yes\nt3-import doctor --json\n```\n\nGlobal target options can be placed before or after a subcommand:\n\n```text\n--t3-home <path>\n--db <state.sqlite>\n--attachments-dir <path>\n--provider-instance <id>\n--json\n--no-color\n--no-cache-reset            Keep the existing IndexedDB cache after writes\n```\n\nImport options:\n\n```text\n--thread <id>             Repeatable; mutually exclusive with --all\n--all\n--since <ISO date>\n--include-incomplete\n--dry-run\n--yes\n--non-interactive\n--no-resume\n```\n\nSync options:\n\n```text\n--thread <id>             Repeatable; mutually exclusive with --all\n--all                     Sync previously imported conversations only\n--since <ISO date>\n--dry-run\n--yes\n--non-interactive\n```\n\nReplace options:\n\n```text\n--thread <id>             Repeatable and required for non-interactive use\n--dry-run\n--yes\n--non-interactive\n```\n\nThe normal TUI labels conversations as new, syncable, up to date, active-only, or conflicted. Interrupted and failed additions are called out in the status text, and ignored active turns are shown without enabling them for synchronization. A history conflict is labeled `history changed · replace available` when it can be replaced. Replacement choices cannot be mixed with imports or ordinary syncs. The dedicated `sync` and `replace` commands open focused TUI flows when required arguments are omitted on a terminal.\n\nWhen `--json` is active, stdout contains one versioned JSON value and diagnostics use stderr. Exit codes are `2` usage, `3` T3 compatibility, `4` live-T3 safety, `5` source parsing, `6` write failure, and `7` reconciliation conflict.\n\n## Safety and storage\n\n- Close T3 before every real import. There is deliberately no force bypass.\n- Every write creates and verifies a timestamped SQLite backup under `<state-dir>/t3-import-backups/`.\n- Successful imports, syncs, and replacements reset T3's rebuildable IndexedDB origin cache by default. The cache is moved aside, copied and verified under the same backup directory before removal; use `--no-cache-reset` to opt out.\n- The importer appends `orchestration_events` and writes resumable rows to `provider_session_runtime`; it never writes `projection_*` tables or `projection_state`.\n- Imports are idempotent. A second import reports `already-imported`. `sync` only appends completed, interrupted, or failed turns after an unchanged checkpoint, and repeated syncs are no-ops. `replace` promotes one complete new task as the sole synchronization target and soft-deletes the old canonical task; repeating it against that unchanged replacement is also a no-op.\n- New imports are rejected when T3 has an existing projection backlog or when the compact event plan exceeds the safe 900-event startup budget.\n- Supported local image attachments are copied atomically. Remote images are referenced but not downloaded.\n- An external ledger is stored in the platform application-data directory. Event IDs provide the fallback idempotency check if the ledger is missing.\n\n`doctor` reports database compatibility and integrity, live/stale runtime state, discovered IndexedDB caches, source availability, and attachment staging leftovers without changing anything. `t3-import cache reset` can perform the same recoverable cache reset without importing, synchronizing, or replacing anything. Both operations require T3 to be closed.\n\n## Source behavior\n\nCodex discovery prefers the normalized `codex app-server` API and augments it with rollout JSONL; it falls back to rollout files when app-server is unavailable. Claude discovery streams project JSONL and reconstructs its UUID graph. Automatic compaction roots are reconnected through validated `logicalParentUuid` links, and unambiguous successful API-retry forks are linearized while retaining their retry activity. Genuine alternate Claude leaves that remain become separate historical T3 tasks; only the current leaf receives a resume binding.\n\nInjected system/developer/environment envelopes and encrypted reasoning blobs are excluded. Visible messages, reasoning summaries, plans, tools, usage, compaction, resolved approvals/input, and supported images are mapped to T3-compatible events.\n\n## Development\n\nThe repositories under `repos/` are references and are not runtime dependencies.\n\n```text\nnpm install\nnpm run typecheck\nnpm test\nnpm run build\nnpm pack\n```\n\nCompatibility is validated against pinned historical T3 commits for every migration from 40 through 53, including stable `v0.0.42` (`719a76ca1`) and nightly `v0.0.43-nightly.20260920.2031` (`adcd90858`). Earlier versions and unvalidated future migrations fail closed. The importer never upgrades a T3 database; T3 owns migrations, and existing imports can continue synchronizing after an upgrade within the supported range.\n\n`npm test` uses committed schemas generated from T3's actual migrations. The additional integration matrix runs the historical event decoders, projectors, and provider restoration services against synthetic databases:\n\n```text\nnpm run test:compatibility\n```\n\nThis requires Git, tar, Node.js 22.21.1 or newer, network access for isolated development dependencies, and a T3 checkout containing the pinned commits at `repos/t3code` (override with `T3_REFERENCE_REPO`). It prepares source snapshots under `artifacts/compatibility`, exercises both providers at all fourteen migrations and every upgrade to 53, and writes a JSON result report. Provider processes are replaced with controlled test adapters; no paid provider work runs. The installed T3 application and live database are not used.\n\nSee [compatibility validation](https://github.com/CarlosGtrz/t3-import/blob/main/docs/compatibility.md) for reference commits, fixture regeneration, and the exact validation boundary.\n","readmeFilename":"README.md"}