@alsdd/t3-import 0.0.0-stage → 0.1.1-alsd.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/LICENSE +21 -0
  3. package/README.md +141 -2
  4. package/assets/fork-demo.gif +0 -0
  5. package/assets/fork-demo.png +0 -0
  6. package/dist/cli.d.ts +2 -0
  7. package/dist/cli.js +399 -0
  8. package/dist/cli.js.map +1 -0
  9. package/dist/core/checkpoint.d.ts +25 -0
  10. package/dist/core/checkpoint.js +82 -0
  11. package/dist/core/checkpoint.js.map +1 -0
  12. package/dist/core/errors.d.ts +12 -0
  13. package/dist/core/errors.js +17 -0
  14. package/dist/core/errors.js.map +1 -0
  15. package/dist/core/jsonl.d.ts +7 -0
  16. package/dist/core/jsonl.js +37 -0
  17. package/dist/core/jsonl.js.map +1 -0
  18. package/dist/core/providers.d.ts +6 -0
  19. package/dist/core/providers.js +17 -0
  20. package/dist/core/providers.js.map +1 -0
  21. package/dist/core/types.d.ts +247 -0
  22. package/dist/core/types.js +4 -0
  23. package/dist/core/types.js.map +1 -0
  24. package/dist/core/util.d.ts +14 -0
  25. package/dist/core/util.js +61 -0
  26. package/dist/core/util.js.map +1 -0
  27. package/dist/sources/claude.d.ts +6 -0
  28. package/dist/sources/claude.js +576 -0
  29. package/dist/sources/claude.js.map +1 -0
  30. package/dist/sources/codex.d.ts +11 -0
  31. package/dist/sources/codex.js +603 -0
  32. package/dist/sources/codex.js.map +1 -0
  33. package/dist/sources/codexAppServer.d.ts +24 -0
  34. package/dist/sources/codexAppServer.js +190 -0
  35. package/dist/sources/codexAppServer.js.map +1 -0
  36. package/dist/sources/files.d.ts +1 -0
  37. package/dist/sources/files.js +24 -0
  38. package/dist/sources/files.js.map +1 -0
  39. package/dist/sources/index.d.ts +3 -0
  40. package/dist/sources/index.js +15 -0
  41. package/dist/sources/index.js.map +1 -0
  42. package/dist/sources/opencode.d.ts +6 -0
  43. package/dist/sources/opencode.js +443 -0
  44. package/dist/sources/opencode.js.map +1 -0
  45. package/dist/target/cache.d.ts +14 -0
  46. package/dist/target/cache.js +155 -0
  47. package/dist/target/cache.js.map +1 -0
  48. package/dist/target/config.d.ts +22 -0
  49. package/dist/target/config.js +90 -0
  50. package/dist/target/config.js.map +1 -0
  51. package/dist/target/destination.d.ts +21 -0
  52. package/dist/target/destination.js +77 -0
  53. package/dist/target/destination.js.map +1 -0
  54. package/dist/target/importer.d.ts +86 -0
  55. package/dist/target/importer.js +597 -0
  56. package/dist/target/importer.js.map +1 -0
  57. package/dist/target/launch.d.ts +6 -0
  58. package/dist/target/launch.js +77 -0
  59. package/dist/target/launch.js.map +1 -0
  60. package/dist/target/ledger.d.ts +35 -0
  61. package/dist/target/ledger.js +174 -0
  62. package/dist/target/ledger.js.map +1 -0
  63. package/dist/target/reconciliation.d.ts +60 -0
  64. package/dist/target/reconciliation.js +259 -0
  65. package/dist/target/reconciliation.js.map +1 -0
  66. package/dist/target/replace.d.ts +9 -0
  67. package/dist/target/replace.js +341 -0
  68. package/dist/target/replace.js.map +1 -0
  69. package/dist/target/schema.d.ts +22 -0
  70. package/dist/target/schema.js +108 -0
  71. package/dist/target/schema.js.map +1 -0
  72. package/dist/target/sync.d.ts +34 -0
  73. package/dist/target/sync.js +879 -0
  74. package/dist/target/sync.js.map +1 -0
  75. package/dist/target/syncAll.d.ts +4 -0
  76. package/dist/target/syncAll.js +98 -0
  77. package/dist/target/syncAll.js.map +1 -0
  78. package/dist/target/v2.d.ts +18 -0
  79. package/dist/target/v2.js +267 -0
  80. package/dist/target/v2.js.map +1 -0
  81. package/dist/target/v2Profiles.d.ts +5 -0
  82. package/dist/target/v2Profiles.js +14 -0
  83. package/dist/target/v2Profiles.js.map +1 -0
  84. package/dist/tui.d.ts +49 -0
  85. package/dist/tui.js +560 -0
  86. package/dist/tui.js.map +1 -0
  87. package/package.json +93 -4
  88. package/vendor/t3-v010/LICENSE +21 -0
  89. package/vendor/t3-v010/THIRD-PARTY-NOTICES.txt +2274 -0
  90. package/vendor/t3-v010/reference.json +6 -0
  91. package/vendor/t3-v010/runtime.mjs +60364 -0
  92. package/vendor/t3-v010/schema-columns.json +568 -0
  93. package/vendor/t3-v011/LICENSE +21 -0
  94. package/vendor/t3-v011/THIRD-PARTY-NOTICES.txt +2274 -0
  95. package/vendor/t3-v011/reference.json +6 -0
  96. package/vendor/t3-v011/runtime.mjs +60993 -0
  97. package/vendor/t3-v011/schema-columns.json +526 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/target/cache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { SourceName, TargetPaths } from "../core/types.js";
2
+ import { type ProviderDriver } from "../core/providers.js";
3
+ export interface TargetOverrides {
4
+ t3Home?: string;
5
+ dbPath?: string;
6
+ attachmentsDir?: string;
7
+ providerInstance?: string;
8
+ }
9
+ export declare function resolveTargetPaths(overrides?: TargetOverrides): TargetPaths;
10
+ export interface ProviderSelection {
11
+ instanceId: string;
12
+ providerName: ProviderDriver;
13
+ adapterKey: ProviderDriver;
14
+ model: string;
15
+ options: Array<{
16
+ id: string;
17
+ value: string | boolean;
18
+ }>;
19
+ warning?: string;
20
+ }
21
+ export declare function listProviderInstances(paths: TargetPaths, source: SourceName): string[];
22
+ export declare function resolveProviderSelection(paths: TargetPaths, source: SourceName, requestedModel: string, effort: string | undefined, overrideInstance?: string, modelOptions?: ProviderSelection["options"]): ProviderSelection;
@@ -0,0 +1,90 @@
1
+ import { existsSync, readFileSync } from "node:fs";
2
+ import { dirname, join, resolve } from "node:path";
3
+ import { homedir } from "node:os";
4
+ import { isObject, stringValue } from "../core/util.js";
5
+ import { sourceDriver } from "../core/providers.js";
6
+ export function resolveTargetPaths(overrides = {}) {
7
+ const explicitHome = overrides.t3Home ?? process.env.T3CODE_HOME;
8
+ const defaultHome = explicitHome ? resolve(explicitHome) : join(homedir(), ".t3");
9
+ const v2Path = join(defaultHome, "userdata", "statev2.sqlite");
10
+ const dbPath = overrides.dbPath ? resolve(overrides.dbPath) : existsSync(v2Path) ? v2Path : join(defaultHome, "userdata", "state.sqlite");
11
+ const stateDir = dirname(dbPath);
12
+ const t3Home = overrides.dbPath && !explicitHome ? dirname(stateDir) : defaultHome;
13
+ return {
14
+ t3Home,
15
+ stateDir,
16
+ dbPath,
17
+ attachmentsDir: overrides.attachmentsDir ? resolve(overrides.attachmentsDir) : join(stateDir, "attachments"),
18
+ runtimeStatePath: join(stateDir, "server-runtime.json"),
19
+ settingsPath: join(stateDir, "settings.json"),
20
+ };
21
+ }
22
+ function configuredInstances(paths) {
23
+ const result = new Map();
24
+ if (!existsSync(paths.settingsPath))
25
+ return result;
26
+ try {
27
+ const settings = JSON.parse(readFileSync(paths.settingsPath, "utf8"));
28
+ if (!isObject(settings) || !isObject(settings.providerInstances))
29
+ return result;
30
+ for (const [id, value] of Object.entries(settings.providerInstances)) {
31
+ if (!isObject(value) || value.enabled === false)
32
+ continue;
33
+ const driver = stringValue(value.driver);
34
+ if (driver)
35
+ result.set(id, driver);
36
+ }
37
+ }
38
+ catch {
39
+ // Defaults remain valid when settings are absent or unreadable.
40
+ }
41
+ return result;
42
+ }
43
+ export function listProviderInstances(paths, source) {
44
+ const driver = sourceDriver(source);
45
+ const configured = [...configuredInstances(paths)].filter(([, value]) => value === driver).map(([id]) => id);
46
+ return [...new Set([driver, ...configured])];
47
+ }
48
+ function cacheModels(paths, instanceId) {
49
+ const cache = join(paths.t3Home, "caches", `${instanceId}.json`);
50
+ if (!existsSync(cache))
51
+ return [];
52
+ try {
53
+ const parsed = JSON.parse(readFileSync(cache, "utf8"));
54
+ if (!isObject(parsed) || !Array.isArray(parsed.models))
55
+ return [];
56
+ return parsed.models.flatMap((entry) => {
57
+ if (typeof entry === "string")
58
+ return [entry];
59
+ if (!isObject(entry))
60
+ return [];
61
+ return [stringValue(entry.id) ?? stringValue(entry.model) ?? stringValue(entry.value)].filter((value) => Boolean(value));
62
+ });
63
+ }
64
+ catch {
65
+ return [];
66
+ }
67
+ }
68
+ export function resolveProviderSelection(paths, source, requestedModel, effort, overrideInstance, modelOptions = []) {
69
+ const providerName = sourceDriver(source);
70
+ const instanceId = overrideInstance ?? providerName;
71
+ const models = cacheModels(paths, instanceId);
72
+ const requested = requestedModel && requestedModel !== "default" ? requestedModel : undefined;
73
+ const model = requested && (models.length === 0 || models.includes(requested)) ? requested : models[0] ?? requested ?? "default";
74
+ const warning = requested && models.length > 0 && !models.includes(requested)
75
+ ? `Source model '${requested}' is unavailable in T3 instance '${instanceId}'; using '${model}'.`
76
+ : undefined;
77
+ return {
78
+ instanceId,
79
+ providerName,
80
+ adapterKey: providerName,
81
+ model,
82
+ options: [
83
+ ...modelOptions,
84
+ ...(effort ? [{ id: "reasoningEffort", value: effort }] : []),
85
+ ...(source === "codex" ? [{ id: "serviceTier", value: "default" }] : []),
86
+ ],
87
+ ...(warning ? { warning } : {}),
88
+ };
89
+ }
90
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/target/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type Database from "better-sqlite3";
2
+ import type { TargetPaths } from "../core/types.js";
3
+ export interface DestinationOptions {
4
+ targetProject?: string;
5
+ noProject?: boolean;
6
+ }
7
+ export interface ImportDestination {
8
+ projectId: string;
9
+ projectRoot: string;
10
+ workingDirectory: string;
11
+ worktreePath: string | null;
12
+ createProject: boolean;
13
+ }
14
+ export declare function validateDestinationOptions(options: DestinationOptions): void;
15
+ /** Explicit destinations preserve source cwd; assigning a sidebar project is not cosmetic. */
16
+ export declare function importDestination(db: Database.Database, paths: TargetPaths, sourceWorkspace: string, options: DestinationOptions): ImportDestination | undefined;
17
+ /** Preserve the effective workspace through sync/replacement, using durable thread events. */
18
+ export declare function threadWorkingDirectory(db: Database.Database, threadId: string, fallback: string): {
19
+ cwd: string;
20
+ worktreePath: string | null;
21
+ };
@@ -0,0 +1,77 @@
1
+ import { existsSync, realpathSync, statSync } from "node:fs";
2
+ import { dirname, join } from "node:path";
3
+ import { canonicalPath, deterministicUuid } from "../core/util.js";
4
+ import { safetyError, usageError } from "../core/errors.js";
5
+ export function validateDestinationOptions(options) {
6
+ if (options.targetProject !== undefined && !options.targetProject.trim())
7
+ throw usageError("--target-project requires a non-empty T3 project ID.");
8
+ if (options.targetProject && options.noProject)
9
+ throw usageError("--target-project and --no-project are mutually exclusive.");
10
+ }
11
+ function project(db, id) {
12
+ let value = db.prepare("SELECT workspace_root root, deleted_at deleted FROM projection_projects WHERE project_id = ?").get(id);
13
+ const events = db.prepare("SELECT event_type type, payload_json payload FROM orchestration_events WHERE stream_id=? AND aggregate_kind='project' ORDER BY sequence").all(id);
14
+ for (const event of events) {
15
+ const payload = JSON.parse(event.payload);
16
+ if (event.type === "project.created" && typeof payload.workspaceRoot === "string")
17
+ value = { root: payload.workspaceRoot, deleted: null };
18
+ else if (value && typeof payload.workspaceRoot === "string")
19
+ value.root = payload.workspaceRoot;
20
+ if (value && event.type === "project.deleted")
21
+ value.deleted = "deleted";
22
+ }
23
+ return value;
24
+ }
25
+ /** Explicit destinations preserve source cwd; assigning a sidebar project is not cosmetic. */
26
+ export function importDestination(db, paths, sourceWorkspace, options) {
27
+ validateDestinationOptions(options);
28
+ if (!options.targetProject && !options.noProject)
29
+ return undefined;
30
+ if (!existsSync(sourceWorkspace) || !statSync(sourceWorkspace).isDirectory())
31
+ throw safetyError(`Source working directory is unavailable: ${sourceWorkspace}. Destination selection never moves or recreates source files.`);
32
+ const source = realpathSync(sourceWorkspace);
33
+ if (options.targetProject) {
34
+ const target = project(db, options.targetProject);
35
+ if (!target || target.deleted)
36
+ throw usageError(`Target T3 project does not exist or is deleted: ${options.targetProject}. Use the project ID from the target database.`);
37
+ if (canonicalPath(target.root) !== canonicalPath(source))
38
+ throw safetyError(`Target project root ${target.root} differs from source cwd ${sourceWorkspace}. T3 would change the working directory. Choose a project rooted at the source cwd; no files were moved.`);
39
+ return { projectId: options.targetProject, projectRoot: target.root, workingDirectory: sourceWorkspace, worktreePath: null, createProject: false };
40
+ }
41
+ const scratch = join(paths.t3Home, "scratch");
42
+ // Native scratch threads use direct child directories. External directories
43
+ // are not assigned as scratch worktrees merely to hide their project label.
44
+ if (canonicalPath(dirname(source)) !== canonicalPath(scratch))
45
+ throw safetyError(`--no-project can preserve cwd only for an existing direct child of ${scratch}. Source cwd ${sourceWorkspace} is outside T3's managed scratch layout. Import into its matching project instead; no files were moved.`);
46
+ for (let parent = source;; parent = dirname(parent)) {
47
+ if (existsSync(join(parent, ".git")))
48
+ throw safetyError("T3 scratch import is unavailable inside a Git checkout.");
49
+ if (parent === dirname(parent))
50
+ break;
51
+ }
52
+ const ids = db.prepare(`SELECT project_id id FROM projection_projects
53
+ UNION SELECT stream_id id FROM orchestration_events WHERE aggregate_kind='project' AND event_type='project.created'`).all();
54
+ const candidates = ids.filter((row) => {
55
+ const value = project(db, row.id);
56
+ return value && !value.deleted && canonicalPath(value.root) === canonicalPath(scratch);
57
+ });
58
+ if (candidates.length > 1)
59
+ throw safetyError("Multiple T3 projects claim the scratch root; destination is ambiguous.");
60
+ return { projectId: candidates[0]?.id ?? deterministicUuid(`t3-import:project:${canonicalPath(scratch)}`), projectRoot: scratch, workingDirectory: sourceWorkspace, worktreePath: sourceWorkspace, createProject: candidates.length === 0 };
61
+ }
62
+ /** Preserve the effective workspace through sync/replacement, using durable thread events. */
63
+ export function threadWorkingDirectory(db, threadId, fallback) {
64
+ const rows = db.prepare("SELECT payload_json payload FROM orchestration_events WHERE stream_id=? AND event_type IN ('thread.created', 'thread.meta-updated', 'thread.metadata-updated') ORDER BY sequence").all(threadId);
65
+ let worktreePath = null;
66
+ let projectId;
67
+ for (const row of rows) {
68
+ const payload = JSON.parse(row.payload);
69
+ if (typeof payload.projectId === "string")
70
+ projectId = payload.projectId;
71
+ if (payload.worktreePath === null || typeof payload.worktreePath === "string")
72
+ worktreePath = payload.worktreePath;
73
+ }
74
+ const root = projectId ? project(db, projectId)?.root : undefined;
75
+ return { cwd: worktreePath ?? root ?? fallback, worktreePath };
76
+ }
77
+ //# sourceMappingURL=destination.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"destination.js","sourceRoot":"","sources":["../../src/target/destination.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ import Database from "better-sqlite3";
2
+ import { z } from "zod";
3
+ import type { CanonicalThread, ImportRunResult, ImportSelection, TargetPaths } from "../core/types.js";
4
+ import { resolveProviderSelection, type TargetOverrides } from "./config.js";
5
+ import { type DestinationOptions } from "./destination.js";
6
+ import type { ImportCheckpoint } from "../core/checkpoint.js";
7
+ declare const plannedEventSchema: z.ZodObject<{
8
+ eventId: z.ZodString;
9
+ aggregateKind: z.ZodEnum<{
10
+ thread: "thread";
11
+ project: "project";
12
+ }>;
13
+ streamId: z.ZodString;
14
+ type: z.ZodEnum<{
15
+ "project.created": "project.created";
16
+ "thread.created": "thread.created";
17
+ "thread.message-sent": "thread.message-sent";
18
+ "thread.turn-start-requested": "thread.turn-start-requested";
19
+ "thread.session-set": "thread.session-set";
20
+ "thread.proposed-plan-upserted": "thread.proposed-plan-upserted";
21
+ "thread.activity-appended": "thread.activity-appended";
22
+ "thread.meta-updated": "thread.meta-updated";
23
+ "thread.deleted": "thread.deleted";
24
+ }>;
25
+ occurredAt: z.ZodISODateTime;
26
+ actorKind: z.ZodEnum<{
27
+ server: "server";
28
+ client: "client";
29
+ provider: "provider";
30
+ }>;
31
+ payload: z.ZodRecord<z.ZodString, z.ZodUnknown>;
32
+ metadata: z.ZodRecord<z.ZodString, z.ZodUnknown>;
33
+ }, z.core.$strip>;
34
+ export interface PlannedEvent extends z.infer<typeof plannedEventSchema> {
35
+ key: string;
36
+ }
37
+ export interface PlannedAsset {
38
+ descriptor: {
39
+ type: "image";
40
+ id: string;
41
+ name: string;
42
+ mimeType: string;
43
+ sizeBytes: number;
44
+ };
45
+ data?: Buffer;
46
+ sourcePath?: string;
47
+ finalPath: string;
48
+ }
49
+ export interface PlannedThread {
50
+ thread: CanonicalThread;
51
+ threadId: string;
52
+ projectId: string;
53
+ provider: ReturnType<typeof resolveProviderSelection>;
54
+ events: PlannedEvent[];
55
+ assets: PlannedAsset[];
56
+ resumable: boolean;
57
+ warnings: string[];
58
+ alreadyImported: boolean;
59
+ fingerprint: string;
60
+ workingDirectory?: string;
61
+ checkpoint?: ImportCheckpoint;
62
+ targetEventCount?: number;
63
+ }
64
+ export declare const MAX_SAFE_IMPORT_EVENTS = 900;
65
+ export declare const IMPORTER_VERSION: string;
66
+ export declare function compactThreadForImport(thread: CanonicalThread): CanonicalThread;
67
+ export interface ImportOptions extends TargetOverrides, DestinationOptions {
68
+ dryRun: boolean;
69
+ resume: boolean;
70
+ }
71
+ export declare function projectionBacklog(db: Database.Database): {
72
+ latestSequence: number;
73
+ projectedSequence: number;
74
+ backlog: number;
75
+ };
76
+ export declare function event(seed: string, key: string, aggregateKind: "project" | "thread", streamId: string, type: PlannedEvent["type"], occurredAt: string, actorKind: PlannedEvent["actorKind"], payload: Record<string, unknown>, metadata?: Record<string, unknown>): PlannedEvent;
77
+ export declare function modelSelection(provider: PlannedThread["provider"]): Record<string, unknown>;
78
+ export declare function planThread(thread: CanonicalThread, threadId: string, projectId: string, paths: TargetPaths, provider: PlannedThread["provider"], seed: string, projectEvent: PlannedEvent | undefined, resumable: boolean, fingerprint: string, turnOffset?: number, includeThreadCreated?: boolean, threadCreatedMetadata?: Record<string, unknown>): PlannedThread;
79
+ export declare function acquireLock(paths: TargetPaths): () => void;
80
+ export declare function createBackup(db: Database.Database, paths: TargetPaths): string;
81
+ export declare function materializeAssets(plans: PlannedThread[], paths: TargetPaths, runId: string): {
82
+ created: string[];
83
+ cleanup(): void;
84
+ };
85
+ export declare function importConversations(selections: ImportSelection[], paths: TargetPaths, options: ImportOptions): Promise<ImportRunResult>;
86
+ export {};