import { parseDebugModelsJson } from './model-catalog-json.js'; import type { CliAdapter } from './types.js'; /** * First-run "Legacy TRAE CLI data detected → migrate?" done-markers at the * ~/.trae ROOT. traecli treats a marker's mere EXISTENCE (content/mode * irrelevant — verified with a 0-byte `chmod 444` file) as "migration already * done" and skips the interactive prompt. Under the file sandbox the migration * SOURCE ~/.cache/coco is visible (baseline rw bind) but ~/.trae root is not, so * without these the TUI wedges on a prompt no human can answer in goal mode. * * Exposed READ-ONLY (via sandboxReadonlyPaths → fs-policy readonlyRoots), NOT by * widening authPaths to the whole ~/.trae: that root also holds hooks/ plugins/ * skills/ traecli.toml and authPaths compile to readWrite, which would let a * chat-driven sandbox mutate shared hook/plugin code other bots execute. * * · .coco-rollouts-migrated → gates the "recent SESSIONS" prompt (the wedge) * · .coco-migrated → gates the config-migration prompt (defence in depth) * Both are dirt-cheap read-only single-file binds; a marker absent on this host is * dropped by the worker's existence filter (keepExisting) so it can't cause a bind * FAILURE — but note that is not the same as "goal-mode is fine": if the migration * SOURCE (~/.cache/coco) exists while the marker is genuinely missing, the prompt * legitimately fires. In practice the markers are written host-side once migration * has run (the normal fleet state); this bind just makes that host truth visible * through the sandbox instead of hidden behind the ~/.trae/cli-only carve-out. */ export declare const TRAE_MIGRATION_DONE_MARKERS: readonly ["~/.trae/.coco-rollouts-migrated", "~/.trae/.coco-migrated"]; /** traex / codex / coco 的 `debug models` 输出同构,解析逻辑抽到 * model-catalog-json.js 共享;旧名 re-export 保持既有引用(含测试)可用。 */ export { parseDebugModelsJson as parseTraexModelsJson }; export declare function createTraexAdapter(pathOverride?: string): CliAdapter; export declare const create: typeof createTraexAdapter; //# sourceMappingURL=traex.d.ts.map