@sudocode-ai/local-server 0.1.7 → 0.1.9
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.
- package/README.md +6 -0
- package/dist/errors/agent-errors.d.ts +43 -0
- package/dist/errors/agent-errors.d.ts.map +1 -0
- package/dist/errors/agent-errors.js +69 -0
- package/dist/errors/agent-errors.js.map +1 -0
- package/dist/execution/adapters/claude-adapter.d.ts +63 -0
- package/dist/execution/adapters/claude-adapter.d.ts.map +1 -0
- package/dist/execution/adapters/claude-adapter.js +82 -0
- package/dist/execution/adapters/claude-adapter.js.map +1 -0
- package/dist/execution/adapters/codex-adapter.d.ts +67 -0
- package/dist/execution/adapters/codex-adapter.d.ts.map +1 -0
- package/dist/execution/adapters/codex-adapter.js +183 -0
- package/dist/execution/adapters/codex-adapter.js.map +1 -0
- package/dist/execution/adapters/codex-config-builder.d.ts +30 -0
- package/dist/execution/adapters/codex-config-builder.d.ts.map +1 -0
- package/dist/execution/adapters/codex-config-builder.js +110 -0
- package/dist/execution/adapters/codex-config-builder.js.map +1 -0
- package/dist/execution/adapters/copilot-adapter.d.ts +94 -0
- package/dist/execution/adapters/copilot-adapter.d.ts.map +1 -0
- package/dist/execution/adapters/copilot-adapter.js +163 -0
- package/dist/execution/adapters/copilot-adapter.js.map +1 -0
- package/dist/execution/adapters/copilot-config-builder.d.ts +48 -0
- package/dist/execution/adapters/copilot-config-builder.d.ts.map +1 -0
- package/dist/execution/adapters/copilot-config-builder.js +125 -0
- package/dist/execution/adapters/copilot-config-builder.js.map +1 -0
- package/dist/execution/adapters/cursor-adapter.d.ts +66 -0
- package/dist/execution/adapters/cursor-adapter.d.ts.map +1 -0
- package/dist/execution/adapters/cursor-adapter.js +121 -0
- package/dist/execution/adapters/cursor-adapter.js.map +1 -0
- package/dist/execution/adapters/cursor-config-builder.d.ts +29 -0
- package/dist/execution/adapters/cursor-config-builder.d.ts.map +1 -0
- package/dist/execution/adapters/cursor-config-builder.js +49 -0
- package/dist/execution/adapters/cursor-config-builder.js.map +1 -0
- package/dist/execution/adapters/shared/config-presets.d.ts +102 -0
- package/dist/execution/adapters/shared/config-presets.d.ts.map +1 -0
- package/dist/execution/adapters/shared/config-presets.js +205 -0
- package/dist/execution/adapters/shared/config-presets.js.map +1 -0
- package/dist/execution/adapters/shared/config-utils.d.ts +95 -0
- package/dist/execution/adapters/shared/config-utils.d.ts.map +1 -0
- package/dist/execution/adapters/shared/config-utils.js +163 -0
- package/dist/execution/adapters/shared/config-utils.js.map +1 -0
- package/dist/execution/adapters/shared/index.d.ts +8 -0
- package/dist/execution/adapters/shared/index.d.ts.map +1 -0
- package/dist/execution/adapters/shared/index.js +8 -0
- package/dist/execution/adapters/shared/index.js.map +1 -0
- package/dist/execution/executors/agent-executor-wrapper.d.ts +153 -0
- package/dist/execution/executors/agent-executor-wrapper.d.ts.map +1 -0
- package/dist/execution/executors/agent-executor-wrapper.js +652 -0
- package/dist/execution/executors/agent-executor-wrapper.js.map +1 -0
- package/dist/execution/executors/executor-factory.d.ts +95 -0
- package/dist/execution/executors/executor-factory.d.ts.map +1 -0
- package/dist/execution/executors/executor-factory.js +120 -0
- package/dist/execution/executors/executor-factory.js.map +1 -0
- package/dist/execution/output/ag-ui-adapter.d.ts +0 -2
- package/dist/execution/output/ag-ui-adapter.d.ts.map +1 -1
- package/dist/execution/output/ag-ui-adapter.js +0 -2
- package/dist/execution/output/ag-ui-adapter.js.map +1 -1
- package/dist/execution/output/index.d.ts +0 -3
- package/dist/execution/output/index.d.ts.map +1 -1
- package/dist/execution/output/index.js +0 -2
- package/dist/execution/output/index.js.map +1 -1
- package/dist/execution/output/normalized-to-ag-ui-adapter.d.ts +108 -0
- package/dist/execution/output/normalized-to-ag-ui-adapter.d.ts.map +1 -0
- package/dist/execution/output/normalized-to-ag-ui-adapter.js +321 -0
- package/dist/execution/output/normalized-to-ag-ui-adapter.js.map +1 -0
- package/dist/execution/process/builders/claude.d.ts +24 -57
- package/dist/execution/process/builders/claude.d.ts.map +1 -1
- package/dist/execution/process/builders/claude.js +153 -19
- package/dist/execution/process/builders/claude.js.map +1 -1
- package/dist/execution/transport/ipc-transport-manager.d.ts +74 -0
- package/dist/execution/transport/ipc-transport-manager.d.ts.map +1 -0
- package/dist/execution/transport/ipc-transport-manager.js +104 -0
- package/dist/execution/transport/ipc-transport-manager.js.map +1 -0
- package/dist/execution/transport/transport-manager.d.ts.map +1 -1
- package/dist/execution/transport/transport-manager.js +3 -0
- package/dist/execution/transport/transport-manager.js.map +1 -1
- package/dist/execution/worktree/conflict-detector.d.ts +85 -0
- package/dist/execution/worktree/conflict-detector.d.ts.map +1 -0
- package/dist/execution/worktree/conflict-detector.js +129 -0
- package/dist/execution/worktree/conflict-detector.js.map +1 -0
- package/dist/execution/worktree/git-cli.d.ts +9 -0
- package/dist/execution/worktree/git-cli.d.ts.map +1 -1
- package/dist/execution/worktree/git-cli.js +10 -0
- package/dist/execution/worktree/git-cli.js.map +1 -1
- package/dist/execution/worktree/git-sync-cli.d.ts +198 -0
- package/dist/execution/worktree/git-sync-cli.d.ts.map +1 -0
- package/dist/execution/worktree/git-sync-cli.js +401 -0
- package/dist/execution/worktree/git-sync-cli.js.map +1 -0
- package/dist/execution/worktree/manager.d.ts +18 -0
- package/dist/execution/worktree/manager.d.ts.map +1 -1
- package/dist/execution/worktree/manager.js +9 -3
- package/dist/execution/worktree/manager.js.map +1 -1
- package/dist/index.d.ts +1 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +124 -229
- package/dist/index.js.map +1 -1
- package/dist/middleware/project-context.d.ts +37 -0
- package/dist/middleware/project-context.d.ts.map +1 -0
- package/dist/middleware/project-context.js +91 -0
- package/dist/middleware/project-context.js.map +1 -0
- package/dist/public/assets/index-DV9Tbujb.css +1 -0
- package/dist/public/assets/index-DcDX9-Ad.js +740 -0
- package/dist/public/assets/index-DcDX9-Ad.js.map +1 -0
- package/dist/public/assets/{react-vendor-ByUx1V_q.js → react-vendor-DiL5hC7l.js} +2 -2
- package/dist/public/assets/{react-vendor-ByUx1V_q.js.map → react-vendor-DiL5hC7l.js.map} +1 -1
- package/dist/public/assets/ui-vendor-B4WMPEfa.js +54 -0
- package/dist/public/assets/ui-vendor-B4WMPEfa.js.map +1 -0
- package/dist/public/index.html +4 -4
- package/dist/routes/agents.d.ts +3 -0
- package/dist/routes/agents.d.ts.map +1 -0
- package/dist/routes/agents.js +62 -0
- package/dist/routes/agents.js.map +1 -0
- package/dist/routes/config.d.ts +3 -0
- package/dist/routes/config.d.ts.map +1 -0
- package/dist/routes/config.js +25 -0
- package/dist/routes/config.js.map +1 -0
- package/dist/routes/editors.d.ts +15 -0
- package/dist/routes/editors.d.ts.map +1 -0
- package/dist/routes/editors.js +98 -0
- package/dist/routes/editors.js.map +1 -0
- package/dist/routes/executions-stream.d.ts +8 -5
- package/dist/routes/executions-stream.d.ts.map +1 -1
- package/dist/routes/executions-stream.js +10 -6
- package/dist/routes/executions-stream.js.map +1 -1
- package/dist/routes/executions.d.ts +6 -10
- package/dist/routes/executions.d.ts.map +1 -1
- package/dist/routes/executions.js +792 -37
- package/dist/routes/executions.js.map +1 -1
- package/dist/routes/feedback.d.ts +3 -2
- package/dist/routes/feedback.d.ts.map +1 -1
- package/dist/routes/feedback.js +12 -10
- package/dist/routes/feedback.js.map +1 -1
- package/dist/routes/files.d.ts +18 -0
- package/dist/routes/files.d.ts.map +1 -0
- package/dist/routes/files.js +89 -0
- package/dist/routes/files.js.map +1 -0
- package/dist/routes/issues.d.ts +3 -2
- package/dist/routes/issues.d.ts.map +1 -1
- package/dist/routes/issues.js +19 -18
- package/dist/routes/issues.js.map +1 -1
- package/dist/routes/projects.d.ts +11 -0
- package/dist/routes/projects.d.ts.map +1 -0
- package/dist/routes/projects.js +447 -0
- package/dist/routes/projects.js.map +1 -0
- package/dist/routes/relationships.d.ts +3 -2
- package/dist/routes/relationships.d.ts.map +1 -1
- package/dist/routes/relationships.js +12 -10
- package/dist/routes/relationships.js.map +1 -1
- package/dist/routes/repo-info.d.ts +3 -0
- package/dist/routes/repo-info.d.ts.map +1 -0
- package/dist/routes/repo-info.js +203 -0
- package/dist/routes/repo-info.js.map +1 -0
- package/dist/routes/specs.d.ts +3 -2
- package/dist/routes/specs.d.ts.map +1 -1
- package/dist/routes/specs.js +19 -18
- package/dist/routes/specs.js.map +1 -1
- package/dist/routes/version.d.ts +3 -0
- package/dist/routes/version.d.ts.map +1 -0
- package/dist/routes/version.js +25 -0
- package/dist/routes/version.js.map +1 -0
- package/dist/services/agent-registry.d.ts +140 -0
- package/dist/services/agent-registry.d.ts.map +1 -0
- package/dist/services/agent-registry.js +272 -0
- package/dist/services/agent-registry.js.map +1 -0
- package/dist/services/editor-service.d.ts +57 -0
- package/dist/services/editor-service.d.ts.map +1 -0
- package/dist/services/editor-service.js +204 -0
- package/dist/services/editor-service.js.map +1 -0
- package/dist/services/execution-changes-service.d.ts +110 -0
- package/dist/services/execution-changes-service.d.ts.map +1 -0
- package/dist/services/execution-changes-service.js +700 -0
- package/dist/services/execution-changes-service.js.map +1 -0
- package/dist/services/execution-lifecycle.d.ts +1 -0
- package/dist/services/execution-lifecycle.d.ts.map +1 -1
- package/dist/services/execution-lifecycle.js +37 -7
- package/dist/services/execution-lifecycle.js.map +1 -1
- package/dist/services/execution-logs-store.d.ts +75 -0
- package/dist/services/execution-logs-store.d.ts.map +1 -1
- package/dist/services/execution-logs-store.js +142 -2
- package/dist/services/execution-logs-store.js.map +1 -1
- package/dist/services/execution-service.d.ts +82 -59
- package/dist/services/execution-service.d.ts.map +1 -1
- package/dist/services/execution-service.js +514 -469
- package/dist/services/execution-service.js.map +1 -1
- package/dist/services/execution-worker-pool.d.ts +116 -0
- package/dist/services/execution-worker-pool.d.ts.map +1 -0
- package/dist/services/execution-worker-pool.js +326 -0
- package/dist/services/execution-worker-pool.js.map +1 -0
- package/dist/services/executions.d.ts +3 -0
- package/dist/services/executions.d.ts.map +1 -1
- package/dist/services/executions.js +11 -17
- package/dist/services/executions.js.map +1 -1
- package/dist/services/export.d.ts +8 -2
- package/dist/services/export.d.ts.map +1 -1
- package/dist/services/export.js +29 -23
- package/dist/services/export.js.map +1 -1
- package/dist/services/file-search/git-ls-files-strategy.d.ts +72 -0
- package/dist/services/file-search/git-ls-files-strategy.d.ts.map +1 -0
- package/dist/services/file-search/git-ls-files-strategy.js +176 -0
- package/dist/services/file-search/git-ls-files-strategy.js.map +1 -0
- package/dist/services/file-search/index.d.ts +9 -0
- package/dist/services/file-search/index.d.ts.map +1 -0
- package/dist/services/file-search/index.js +10 -0
- package/dist/services/file-search/index.js.map +1 -0
- package/dist/services/file-search/registry.d.ts +97 -0
- package/dist/services/file-search/registry.d.ts.map +1 -0
- package/dist/services/file-search/registry.js +140 -0
- package/dist/services/file-search/registry.js.map +1 -0
- package/dist/services/file-search/strategy.d.ts +58 -0
- package/dist/services/file-search/strategy.d.ts.map +1 -0
- package/dist/services/file-search/strategy.js +8 -0
- package/dist/services/file-search/strategy.js.map +1 -0
- package/dist/services/project-context.d.ts +69 -0
- package/dist/services/project-context.d.ts.map +1 -0
- package/dist/services/project-context.js +113 -0
- package/dist/services/project-context.js.map +1 -0
- package/dist/services/project-manager.d.ts +95 -0
- package/dist/services/project-manager.d.ts.map +1 -0
- package/dist/services/project-manager.js +388 -0
- package/dist/services/project-manager.js.map +1 -0
- package/dist/services/project-registry.d.ts +98 -0
- package/dist/services/project-registry.d.ts.map +1 -0
- package/dist/services/project-registry.js +289 -0
- package/dist/services/project-registry.js.map +1 -0
- package/dist/services/prompt-resolver.d.ts +97 -0
- package/dist/services/prompt-resolver.d.ts.map +1 -0
- package/dist/services/prompt-resolver.js +377 -0
- package/dist/services/prompt-resolver.js.map +1 -0
- package/dist/services/repo-info.d.ts +12 -0
- package/dist/services/repo-info.d.ts.map +1 -1
- package/dist/services/repo-info.js +46 -0
- package/dist/services/repo-info.js.map +1 -1
- package/dist/services/version-service.d.ts +14 -0
- package/dist/services/version-service.d.ts.map +1 -0
- package/dist/services/version-service.js +57 -0
- package/dist/services/version-service.js.map +1 -0
- package/dist/services/watcher.d.ts +3 -4
- package/dist/services/watcher.d.ts.map +1 -1
- package/dist/services/watcher.js +18 -35
- package/dist/services/watcher.js.map +1 -1
- package/dist/services/websocket.d.ts +30 -16
- package/dist/services/websocket.d.ts.map +1 -1
- package/dist/services/websocket.js +102 -37
- package/dist/services/websocket.js.map +1 -1
- package/dist/services/worktree-sync-service.d.ts +326 -0
- package/dist/services/worktree-sync-service.d.ts.map +1 -0
- package/dist/services/worktree-sync-service.js +1091 -0
- package/dist/services/worktree-sync-service.js.map +1 -0
- package/dist/types/editor.d.ts +49 -0
- package/dist/types/editor.d.ts.map +1 -0
- package/dist/types/editor.js +50 -0
- package/dist/types/editor.js.map +1 -0
- package/dist/types/project.d.ts +58 -0
- package/dist/types/project.d.ts.map +1 -0
- package/dist/types/project.js +10 -0
- package/dist/types/project.js.map +1 -0
- package/dist/utils/executable-check.d.ts +36 -0
- package/dist/utils/executable-check.d.ts.map +1 -0
- package/dist/utils/executable-check.js +79 -0
- package/dist/utils/executable-check.js.map +1 -0
- package/dist/workers/execution-worker.d.ts +18 -0
- package/dist/workers/execution-worker.d.ts.map +1 -0
- package/dist/workers/execution-worker.js +340 -0
- package/dist/workers/execution-worker.js.map +1 -0
- package/dist/workers/worker-ipc.d.ts +84 -0
- package/dist/workers/worker-ipc.d.ts.map +1 -0
- package/dist/workers/worker-ipc.js +29 -0
- package/dist/workers/worker-ipc.js.map +1 -0
- package/package.json +6 -5
- package/dist/execution/output/ag-ui-integration.d.ts +0 -96
- package/dist/execution/output/ag-ui-integration.d.ts.map +0 -1
- package/dist/execution/output/ag-ui-integration.js +0 -96
- package/dist/execution/output/ag-ui-integration.js.map +0 -1
- package/dist/execution/output/claude-code-output-processor.d.ts +0 -321
- package/dist/execution/output/claude-code-output-processor.d.ts.map +0 -1
- package/dist/execution/output/claude-code-output-processor.js +0 -769
- package/dist/execution/output/claude-code-output-processor.js.map +0 -1
- package/dist/public/assets/index-B3SEMufD.js +0 -580
- package/dist/public/assets/index-B3SEMufD.js.map +0 -1
- package/dist/public/assets/index-D2YGL3gX.css +0 -1
- package/dist/public/assets/ui-vendor-CotR6bx9.js +0 -54
- package/dist/public/assets/ui-vendor-CotR6bx9.js.map +0 -1
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Worktree Sync Service
|
|
3
|
+
*
|
|
4
|
+
* Orchestrates worktree sync operations including conflict detection,
|
|
5
|
+
* JSONL resolution, git operations, and database updates.
|
|
6
|
+
*
|
|
7
|
+
* @module services/worktree-sync-service
|
|
8
|
+
*/
|
|
9
|
+
import type Database from "better-sqlite3";
|
|
10
|
+
import type { Execution, ExecutionStatus } from "@sudocode-ai/types";
|
|
11
|
+
import { type DiffResult, type Commit } from "../execution/worktree/git-sync-cli.js";
|
|
12
|
+
import { type ConflictReport, type JSONLConflict } from "../execution/worktree/conflict-detector.js";
|
|
13
|
+
/**
|
|
14
|
+
* Worktree sync error codes
|
|
15
|
+
*/
|
|
16
|
+
export declare enum WorktreeSyncErrorCode {
|
|
17
|
+
NO_WORKTREE = "NO_WORKTREE",
|
|
18
|
+
WORKTREE_MISSING = "WORKTREE_MISSING",
|
|
19
|
+
BRANCH_MISSING = "BRANCH_MISSING",
|
|
20
|
+
DIRTY_WORKING_TREE = "DIRTY_WORKING_TREE",
|
|
21
|
+
TARGET_BRANCH_MISSING = "TARGET_BRANCH_MISSING",
|
|
22
|
+
NO_COMMON_BASE = "NO_COMMON_BASE",
|
|
23
|
+
CODE_CONFLICTS = "CODE_CONFLICTS",
|
|
24
|
+
MERGE_FAILED = "MERGE_FAILED",
|
|
25
|
+
JSONL_RESOLUTION_FAILED = "JSONL_RESOLUTION_FAILED",
|
|
26
|
+
DATABASE_SYNC_FAILED = "DATABASE_SYNC_FAILED",
|
|
27
|
+
EXECUTION_NOT_FOUND = "EXECUTION_NOT_FOUND"
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Worktree sync error class
|
|
31
|
+
*/
|
|
32
|
+
export declare class WorktreeSyncError extends Error {
|
|
33
|
+
code: WorktreeSyncErrorCode;
|
|
34
|
+
cause?: Error | undefined;
|
|
35
|
+
constructor(message: string, code: WorktreeSyncErrorCode, cause?: Error | undefined);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Uncommitted file stats for preview
|
|
39
|
+
*/
|
|
40
|
+
export interface UncommittedFileStats {
|
|
41
|
+
files: string[];
|
|
42
|
+
additions: number;
|
|
43
|
+
deletions: number;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Sync preview result
|
|
47
|
+
*/
|
|
48
|
+
export interface SyncPreviewResult {
|
|
49
|
+
canSync: boolean;
|
|
50
|
+
conflicts: ConflictReport;
|
|
51
|
+
diff: DiffResult;
|
|
52
|
+
commits: Commit[];
|
|
53
|
+
mergeBase: string;
|
|
54
|
+
/** @deprecated Use uncommittedChanges instead */
|
|
55
|
+
uncommittedJSONLChanges: string[];
|
|
56
|
+
/** Stats about uncommitted changes in worktree (not included in sync by default) */
|
|
57
|
+
uncommittedChanges?: UncommittedFileStats;
|
|
58
|
+
executionStatus: ExecutionStatus;
|
|
59
|
+
warnings: string[];
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Squash sync result
|
|
63
|
+
*/
|
|
64
|
+
export interface SyncResult {
|
|
65
|
+
success: boolean;
|
|
66
|
+
finalCommit?: string;
|
|
67
|
+
filesChanged: number;
|
|
68
|
+
/** Whether there are unresolved merge conflicts (user must resolve manually) */
|
|
69
|
+
hasConflicts?: boolean;
|
|
70
|
+
/** Number of uncommitted files copied from worktree (stage sync only) */
|
|
71
|
+
uncommittedFilesIncluded?: number;
|
|
72
|
+
error?: string;
|
|
73
|
+
cleanupOffered?: boolean;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* WorktreeSyncService
|
|
77
|
+
*
|
|
78
|
+
* Main service class for orchestrating worktree sync operations
|
|
79
|
+
*/
|
|
80
|
+
export declare class WorktreeSyncService {
|
|
81
|
+
private db;
|
|
82
|
+
private repoPath;
|
|
83
|
+
private gitSync;
|
|
84
|
+
constructor(db: Database.Database, repoPath: string);
|
|
85
|
+
/**
|
|
86
|
+
* Preview sync without making changes
|
|
87
|
+
*
|
|
88
|
+
* @param executionId - Execution ID to preview sync for
|
|
89
|
+
* @returns Preview result with conflicts, diff, and warnings
|
|
90
|
+
*/
|
|
91
|
+
previewSync(executionId: string): Promise<SyncPreviewResult>;
|
|
92
|
+
/**
|
|
93
|
+
* Validate critical preconditions that prevent us from getting any sync info
|
|
94
|
+
*
|
|
95
|
+
* These are "hard" failures - if these fail, we can't get diff/commits info.
|
|
96
|
+
* Returns an error message if validation fails, null if validation passes.
|
|
97
|
+
*
|
|
98
|
+
* @param execution - Execution to validate
|
|
99
|
+
* @returns Error message if validation fails, null if validation passes
|
|
100
|
+
*/
|
|
101
|
+
private _validateCriticalPreconditions;
|
|
102
|
+
/**
|
|
103
|
+
* Load execution from database and validate it exists
|
|
104
|
+
*
|
|
105
|
+
* Used by previewSync() and will be used in i-9gz4 (squash sync)
|
|
106
|
+
*
|
|
107
|
+
* @param executionId - Execution ID to load
|
|
108
|
+
* @returns Execution record
|
|
109
|
+
* @throws WorktreeSyncError if execution not found
|
|
110
|
+
*/
|
|
111
|
+
private _loadAndValidateExecution;
|
|
112
|
+
/**
|
|
113
|
+
* Validate preconditions for sync
|
|
114
|
+
*
|
|
115
|
+
* Used by previewSync() and will be used in i-9gz4 (squash sync)
|
|
116
|
+
*
|
|
117
|
+
* Checks:
|
|
118
|
+
* - Worktree exists
|
|
119
|
+
* - Worktree branch exists
|
|
120
|
+
* - Local working tree is clean
|
|
121
|
+
* - Target branch exists
|
|
122
|
+
* - Branches have common base
|
|
123
|
+
*
|
|
124
|
+
* @param execution - Execution to validate
|
|
125
|
+
* @throws WorktreeSyncError if any precondition fails
|
|
126
|
+
*/
|
|
127
|
+
private _validateSyncPreconditions;
|
|
128
|
+
/**
|
|
129
|
+
* Create safety snapshot before sync
|
|
130
|
+
*
|
|
131
|
+
* Creates a git tag pointing to current target branch HEAD
|
|
132
|
+
* for rollback capability
|
|
133
|
+
*
|
|
134
|
+
* @param executionId - Execution ID
|
|
135
|
+
* @param targetBranch - Target branch name
|
|
136
|
+
* @returns Tag name created
|
|
137
|
+
*/
|
|
138
|
+
private _createSafetySnapshot;
|
|
139
|
+
/**
|
|
140
|
+
* Get all uncommitted files from worktree
|
|
141
|
+
*
|
|
142
|
+
* @param worktreePath - Path to worktree
|
|
143
|
+
* @returns Array of all uncommitted file paths
|
|
144
|
+
*/
|
|
145
|
+
private _getUncommittedFiles;
|
|
146
|
+
/**
|
|
147
|
+
* Get uncommitted file stats from worktree
|
|
148
|
+
*
|
|
149
|
+
* Returns list of files and aggregate additions/deletions stats
|
|
150
|
+
* for uncommitted changes in the worktree.
|
|
151
|
+
*
|
|
152
|
+
* @param worktreePath - Path to worktree
|
|
153
|
+
* @returns Uncommitted file stats
|
|
154
|
+
*/
|
|
155
|
+
private _getUncommittedFileStats;
|
|
156
|
+
/**
|
|
157
|
+
* Check if local working tree is clean
|
|
158
|
+
*
|
|
159
|
+
* TODO: Will be used in i-7ya6 (sync preview)
|
|
160
|
+
*
|
|
161
|
+
* @returns true if clean, false if dirty
|
|
162
|
+
*/
|
|
163
|
+
private _isLocalTreeClean;
|
|
164
|
+
/**
|
|
165
|
+
* Get list of branches in repository
|
|
166
|
+
*
|
|
167
|
+
* @returns Array of branch names
|
|
168
|
+
*/
|
|
169
|
+
private _getBranches;
|
|
170
|
+
/**
|
|
171
|
+
* Get current commit SHA for a branch
|
|
172
|
+
*
|
|
173
|
+
* @param branchName - Branch name
|
|
174
|
+
* @returns Commit SHA
|
|
175
|
+
*/
|
|
176
|
+
private _getCurrentCommit;
|
|
177
|
+
/**
|
|
178
|
+
* Escape shell argument for safe command execution
|
|
179
|
+
*
|
|
180
|
+
* @param arg - Argument to escape
|
|
181
|
+
* @returns Escaped argument
|
|
182
|
+
*/
|
|
183
|
+
private _escapeShellArg;
|
|
184
|
+
/**
|
|
185
|
+
* Resolve JSONL conflicts using three-way merge
|
|
186
|
+
*
|
|
187
|
+
* Used in squash sync to auto-resolve JSONL conflicts
|
|
188
|
+
*
|
|
189
|
+
* @param execution - Execution record
|
|
190
|
+
* @param jsonlConflicts - List of JSONL conflicts to resolve
|
|
191
|
+
* @throws WorktreeSyncError if resolution fails
|
|
192
|
+
*/
|
|
193
|
+
resolveJSONLConflicts(execution: Execution, jsonlConflicts: JSONLConflict[]): Promise<void>;
|
|
194
|
+
/**
|
|
195
|
+
* Read JSONL file at a specific git revision
|
|
196
|
+
*
|
|
197
|
+
* @param filePath - Relative path to JSONL file
|
|
198
|
+
* @param revision - Git revision (commit SHA or branch name)
|
|
199
|
+
* @returns Array of JSONL entities
|
|
200
|
+
*/
|
|
201
|
+
private _readJSONLVersion;
|
|
202
|
+
/**
|
|
203
|
+
* Commit uncommitted JSONL files in worktree
|
|
204
|
+
*
|
|
205
|
+
* Used during sync to include uncommitted JSONL changes
|
|
206
|
+
*
|
|
207
|
+
* @param worktreePath - Path to worktree
|
|
208
|
+
* @param uncommittedFiles - List of uncommitted JSONL file paths
|
|
209
|
+
* @throws WorktreeSyncError if commit fails
|
|
210
|
+
*/
|
|
211
|
+
commitUncommittedJSONL(worktreePath: string, uncommittedFiles: string[]): Promise<void>;
|
|
212
|
+
/**
|
|
213
|
+
* Perform git merge --squash operation, allowing conflicts
|
|
214
|
+
*
|
|
215
|
+
* This method doesn't throw on conflicts.
|
|
216
|
+
* Instead, it returns information about whether conflicts occurred.
|
|
217
|
+
*
|
|
218
|
+
* @param sourceBranch - Branch to merge from (worktree branch)
|
|
219
|
+
* @param targetBranch - Branch to merge into
|
|
220
|
+
* @returns Object with filesChanged count and hasConflicts flag
|
|
221
|
+
*/
|
|
222
|
+
private _performSquashMergeAllowConflicts;
|
|
223
|
+
/**
|
|
224
|
+
* Copy uncommitted files from worktree to local repo
|
|
225
|
+
*
|
|
226
|
+
* Copies files that are modified or untracked in the worktree
|
|
227
|
+
* to the local repository working directory.
|
|
228
|
+
*
|
|
229
|
+
* @param worktreePath - Path to the worktree
|
|
230
|
+
* @returns Number of files copied
|
|
231
|
+
*/
|
|
232
|
+
private _copyUncommittedFiles;
|
|
233
|
+
/**
|
|
234
|
+
* Resolve JSONL merge conflicts in the local repository
|
|
235
|
+
*
|
|
236
|
+
* Checks for git conflict markers in issues.jsonl and specs.jsonl,
|
|
237
|
+
* and resolves them using the merge-resolver logic.
|
|
238
|
+
*
|
|
239
|
+
* @returns Number of files resolved
|
|
240
|
+
*/
|
|
241
|
+
private _resolveJSONLConflicts;
|
|
242
|
+
/**
|
|
243
|
+
* Resolve conflicts in a single JSONL file
|
|
244
|
+
*
|
|
245
|
+
* @param filePath - Path to the JSONL file with conflicts
|
|
246
|
+
*/
|
|
247
|
+
private _resolveJSONLFile;
|
|
248
|
+
/**
|
|
249
|
+
* Generate commit message for squash sync
|
|
250
|
+
*
|
|
251
|
+
* @param execution - Execution record
|
|
252
|
+
* @param commitCount - Number of commits being squashed
|
|
253
|
+
* @returns Generated commit message
|
|
254
|
+
*/
|
|
255
|
+
private _generateCommitMessage;
|
|
256
|
+
/**
|
|
257
|
+
* Create commit with staged changes
|
|
258
|
+
*
|
|
259
|
+
* @param message - Commit message
|
|
260
|
+
* @returns Commit SHA
|
|
261
|
+
* @throws WorktreeSyncError if commit fails
|
|
262
|
+
*/
|
|
263
|
+
private _createCommit;
|
|
264
|
+
/**
|
|
265
|
+
* Rollback to safety snapshot
|
|
266
|
+
*
|
|
267
|
+
* @param targetBranch - Target branch to reset
|
|
268
|
+
* @param tagName - Safety tag to rollback to
|
|
269
|
+
* @throws WorktreeSyncError if rollback fails
|
|
270
|
+
*/
|
|
271
|
+
private _rollbackToSnapshot;
|
|
272
|
+
/**
|
|
273
|
+
* Perform squash sync operation
|
|
274
|
+
*
|
|
275
|
+
* Squashes all committed worktree changes into a single commit on the target branch.
|
|
276
|
+
* Only includes committed changes - uncommitted changes are excluded.
|
|
277
|
+
* If merge conflicts occur, they are left for the user to resolve manually.
|
|
278
|
+
*
|
|
279
|
+
* @param executionId - Execution ID to sync
|
|
280
|
+
* @param customCommitMessage - Optional custom commit message
|
|
281
|
+
* @returns Sync result with details
|
|
282
|
+
* @throws WorktreeSyncError if sync fails
|
|
283
|
+
*/
|
|
284
|
+
squashSync(executionId: string, customCommitMessage?: string): Promise<SyncResult>;
|
|
285
|
+
/**
|
|
286
|
+
* Perform stage sync operation
|
|
287
|
+
*
|
|
288
|
+
* Applies committed worktree changes to the working directory without committing.
|
|
289
|
+
* Changes are left staged, ready for the user to commit manually.
|
|
290
|
+
* Only includes committed changes by default - uncommitted changes are excluded
|
|
291
|
+
* unless includeUncommitted is true.
|
|
292
|
+
*
|
|
293
|
+
* @param executionId - Execution ID to sync
|
|
294
|
+
* @param options - Optional settings
|
|
295
|
+
* @param options.includeUncommitted - If true, also copy uncommitted files from worktree
|
|
296
|
+
* @returns Sync result with details
|
|
297
|
+
* @throws WorktreeSyncError if sync fails
|
|
298
|
+
*/
|
|
299
|
+
stageSync(executionId: string, options?: {
|
|
300
|
+
includeUncommitted?: boolean;
|
|
301
|
+
}): Promise<SyncResult>;
|
|
302
|
+
/**
|
|
303
|
+
* Check if worktree branch is an ancestor of target branch
|
|
304
|
+
*
|
|
305
|
+
* If the worktree branch is an ancestor, it means target already has all
|
|
306
|
+
* the commits from the worktree (e.g., via a previous sync).
|
|
307
|
+
*
|
|
308
|
+
* @param worktreeBranch - Worktree branch name
|
|
309
|
+
* @param targetBranch - Target branch name
|
|
310
|
+
* @returns true if worktree branch is an ancestor of target branch
|
|
311
|
+
*/
|
|
312
|
+
private _isAncestor;
|
|
313
|
+
/**
|
|
314
|
+
* Perform preserve sync operation
|
|
315
|
+
*
|
|
316
|
+
* Merges all commits from worktree branch to target branch, preserving commit history.
|
|
317
|
+
* Only includes committed changes - uncommitted changes are excluded.
|
|
318
|
+
* If merge conflicts occur, they are left for the user to resolve manually.
|
|
319
|
+
*
|
|
320
|
+
* @param executionId - Execution ID to sync
|
|
321
|
+
* @returns Sync result with details
|
|
322
|
+
* @throws WorktreeSyncError if sync fails
|
|
323
|
+
*/
|
|
324
|
+
preserveSync(executionId: string): Promise<SyncResult>;
|
|
325
|
+
}
|
|
326
|
+
//# sourceMappingURL=worktree-sync-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worktree-sync-service.d.ts","sourceRoot":"","sources":["../../src/services/worktree-sync-service.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAIrE,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,MAAM,EACZ,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,4CAA4C,CAAC;AASpD;;GAEG;AACH,oBAAY,qBAAqB;IAC/B,WAAW,gBAAgB;IAC3B,gBAAgB,qBAAqB;IACrC,cAAc,mBAAmB;IACjC,kBAAkB,uBAAuB;IACzC,qBAAqB,0BAA0B;IAC/C,cAAc,mBAAmB;IACjC,cAAc,mBAAmB;IACjC,YAAY,iBAAiB;IAC7B,uBAAuB,4BAA4B;IACnD,oBAAoB,yBAAyB;IAC7C,mBAAmB,wBAAwB;CAC5C;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IAGjC,IAAI,EAAE,qBAAqB;IAC3B,KAAK,CAAC,EAAE,KAAK;gBAFpB,OAAO,EAAE,MAAM,EACR,IAAI,EAAE,qBAAqB,EAC3B,KAAK,CAAC,EAAE,KAAK,YAAA;CAKvB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,cAAc,CAAC;IAC1B,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,oFAAoF;IACpF,kBAAkB,CAAC,EAAE,oBAAoB,CAAC;IAC1C,eAAe,EAAE,eAAe,CAAC;IACjC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,yEAAyE;IACzE,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;GAIG;AACH,qBAAa,mBAAmB;IAI5B,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,QAAQ;IAJlB,OAAO,CAAC,OAAO,CAAa;gBAGlB,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,QAAQ,EAAE,MAAM;IAK1B;;;;;OAKG;IACG,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAiHlE;;;;;;;;OAQG;YACW,8BAA8B;IAoC5C;;;;;;;;OAQG;YACW,yBAAyB;IAgBvC;;;;;;;;;;;;;;OAcG;YACW,0BAA0B;IA6DxC;;;;;;;;;OASG;YACW,qBAAqB;IAenC;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAK5B;;;;;;;;OAQG;IACH,OAAO,CAAC,wBAAwB;IAqEhC;;;;;;OAMG;IAEH,OAAO,CAAC,iBAAiB;IAIzB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAsBpB;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAqBzB;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAKvB;;;;;;;;OAQG;IACG,qBAAqB,CACzB,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,aAAa,EAAE,GAC9B,OAAO,CAAC,IAAI,CAAC;IAoDhB;;;;;;OAMG;YACW,iBAAiB;IA6B/B;;;;;;;;OAQG;IACG,sBAAsB,CAC1B,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM,EAAE,GACzB,OAAO,CAAC,IAAI,CAAC;IA+BhB;;;;;;;;;OASG;IACH,OAAO,CAAC,iCAAiC;IAiDzC;;;;;;;;OAQG;YACW,qBAAqB;IA8DnC;;;;;;;OAOG;YACW,sBAAsB;IAsBpC;;;;OAIG;YACW,iBAAiB;IAsD/B;;;;;;OAMG;IACH,OAAO,CAAC,sBAAsB;IAe9B;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAwBrB;;;;;;OAMG;YACW,mBAAmB;IA2BjC;;;;;;;;;;;OAWG;IACG,UAAU,CACd,WAAW,EAAE,MAAM,EACnB,mBAAmB,CAAC,EAAE,MAAM,GAC3B,OAAO,CAAC,UAAU,CAAC;IA8FtB;;;;;;;;;;;;;OAaG;IACG,SAAS,CACb,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;QAAE,kBAAkB,CAAC,EAAE,OAAO,CAAA;KAAE,GACzC,OAAO,CAAC,UAAU,CAAC;IAsHtB;;;;;;;;;OASG;IACH,OAAO,CAAC,WAAW;IAiBnB;;;;;;;;;;OAUG;IACG,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAyJ7D"}
|