@sudocode-ai/local-server 0.1.7 → 0.1.8
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 +187 -0
- package/dist/execution/worktree/git-sync-cli.d.ts.map +1 -0
- package/dist/execution/worktree/git-sync-cli.js +350 -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 +132 -211
- 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-Bb_W5bUr.css +1 -0
- package/dist/public/assets/index-CFKL113G.js +710 -0
- package/dist/public/assets/index-CFKL113G.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 +506 -54
- 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 +126 -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/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 +92 -0
- package/dist/services/execution-changes-service.d.ts.map +1 -0
- package/dist/services/execution-changes-service.js +546 -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 +50 -58
- package/dist/services/execution-service.d.ts.map +1 -1
- package/dist/services/execution-service.js +433 -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/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 +228 -0
- package/dist/services/worktree-sync-service.d.ts.map +1 -0
- package/dist/services/worktree-sync-service.js +563 -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,546 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Execution Changes Service
|
|
3
|
+
*
|
|
4
|
+
* Calculates code changes (file list + diff statistics) from execution commits.
|
|
5
|
+
* Supports 3 scenarios:
|
|
6
|
+
* - Committed changes (commit-to-commit diff)
|
|
7
|
+
* - Uncommitted changes (working tree diff)
|
|
8
|
+
* - No changes
|
|
9
|
+
*
|
|
10
|
+
* @module services/execution-changes-service
|
|
11
|
+
*/
|
|
12
|
+
import { execSync } from "child_process";
|
|
13
|
+
import { getExecution } from "./executions.js";
|
|
14
|
+
import { existsSync } from "fs";
|
|
15
|
+
/**
|
|
16
|
+
* Service for calculating code changes from execution commits
|
|
17
|
+
*/
|
|
18
|
+
export class ExecutionChangesService {
|
|
19
|
+
db;
|
|
20
|
+
repoPath;
|
|
21
|
+
constructor(db, repoPath) {
|
|
22
|
+
this.db = db;
|
|
23
|
+
this.repoPath = repoPath;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Get code changes for an execution
|
|
27
|
+
*
|
|
28
|
+
* For execution chains (follow-ups), automatically calculates accumulated changes
|
|
29
|
+
* from the root execution to the current execution.
|
|
30
|
+
*
|
|
31
|
+
* @param executionId - Execution ID
|
|
32
|
+
* @returns ExecutionChangesResult with both captured and current states
|
|
33
|
+
*/
|
|
34
|
+
async getChanges(executionId) {
|
|
35
|
+
// 1. Load execution from database
|
|
36
|
+
const execution = getExecution(this.db, executionId);
|
|
37
|
+
if (!execution) {
|
|
38
|
+
console.log(`[ExecutionChangesService] Execution not found: ${executionId}`);
|
|
39
|
+
return {
|
|
40
|
+
available: false,
|
|
41
|
+
reason: "incomplete_execution",
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
console.log(`[ExecutionChangesService] Execution ${executionId}:`, {
|
|
45
|
+
status: execution.status,
|
|
46
|
+
before_commit: execution.before_commit,
|
|
47
|
+
after_commit: execution.after_commit,
|
|
48
|
+
parent_execution_id: execution.parent_execution_id,
|
|
49
|
+
});
|
|
50
|
+
// 2. Validate status (must have started executing)
|
|
51
|
+
// Allow running, completed, stopped, failed, cancelled - reject pending, preparing, paused
|
|
52
|
+
const validStatuses = ["running", "completed", "stopped", "failed", "cancelled"];
|
|
53
|
+
if (!validStatuses.includes(execution.status)) {
|
|
54
|
+
console.log(`[ExecutionChangesService] Execution not started: ${execution.status}`);
|
|
55
|
+
return {
|
|
56
|
+
available: false,
|
|
57
|
+
reason: "incomplete_execution",
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
// 3. Find root execution (for execution chains)
|
|
61
|
+
const rootExecution = this.getRootExecution(execution);
|
|
62
|
+
const beforeCommit = rootExecution.before_commit || execution.before_commit;
|
|
63
|
+
console.log(`[ExecutionChangesService] Root execution ${rootExecution.id}:`, {
|
|
64
|
+
before_commit: rootExecution.before_commit,
|
|
65
|
+
after_commit: rootExecution.after_commit,
|
|
66
|
+
});
|
|
67
|
+
console.log(`[ExecutionChangesService] Computed beforeCommit: ${beforeCommit}`);
|
|
68
|
+
// 4. Validate before_commit exists (required for calculating any changes)
|
|
69
|
+
if (!beforeCommit) {
|
|
70
|
+
console.log(`[ExecutionChangesService] Missing before_commit - cannot calculate changes`);
|
|
71
|
+
return {
|
|
72
|
+
available: false,
|
|
73
|
+
reason: "missing_commits",
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
// 5. Get branch and worktree information
|
|
77
|
+
const branchName = execution.branch_name;
|
|
78
|
+
const executionMode = execution.mode;
|
|
79
|
+
const worktreeExists = execution.worktree_path
|
|
80
|
+
? existsSync(execution.worktree_path)
|
|
81
|
+
: false;
|
|
82
|
+
// 6. Check if branch exists and get current HEAD
|
|
83
|
+
// Always check the main repo for branch info (branches exist in main repo, not just worktrees)
|
|
84
|
+
let branchExists = false;
|
|
85
|
+
let currentBranchHead = null;
|
|
86
|
+
if (branchName) {
|
|
87
|
+
const branchInfo = this.getBranchInfo(branchName, this.repoPath);
|
|
88
|
+
branchExists = branchInfo.exists;
|
|
89
|
+
currentBranchHead = branchInfo.head;
|
|
90
|
+
}
|
|
91
|
+
// 7. Compute captured state (from root to current execution)
|
|
92
|
+
let captured;
|
|
93
|
+
let uncommittedSnapshot;
|
|
94
|
+
const hasCommittedChanges = beforeCommit &&
|
|
95
|
+
execution.after_commit &&
|
|
96
|
+
execution.after_commit !== beforeCommit;
|
|
97
|
+
if (hasCommittedChanges) {
|
|
98
|
+
// Captured: committed changes (requires beforeCommit from root)
|
|
99
|
+
const capturedResult = await this.getCommittedChanges(beforeCommit, execution.after_commit);
|
|
100
|
+
if (!capturedResult.available) {
|
|
101
|
+
// Preserve specific error reason (commits_not_found, etc.)
|
|
102
|
+
return capturedResult;
|
|
103
|
+
}
|
|
104
|
+
if (capturedResult.changes) {
|
|
105
|
+
captured = {
|
|
106
|
+
files: capturedResult.changes.files,
|
|
107
|
+
summary: capturedResult.changes.summary,
|
|
108
|
+
commitRange: capturedResult.commitRange,
|
|
109
|
+
uncommitted: false,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
// Additionally check for uncommitted changes on top of committed changes
|
|
113
|
+
const uncommittedResult = await this.getUncommittedChanges(execution.worktree_path);
|
|
114
|
+
if (uncommittedResult.available && uncommittedResult.changes && uncommittedResult.changes.files.length > 0) {
|
|
115
|
+
uncommittedSnapshot = {
|
|
116
|
+
files: uncommittedResult.changes.files,
|
|
117
|
+
summary: uncommittedResult.changes.summary,
|
|
118
|
+
commitRange: null,
|
|
119
|
+
uncommitted: true,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
// Captured: uncommitted changes only (or no changes at completion)
|
|
125
|
+
const capturedResult = await this.getUncommittedChanges(execution.worktree_path);
|
|
126
|
+
if (!capturedResult.available) {
|
|
127
|
+
// Preserve specific error reason (worktree_deleted_with_uncommitted_changes, etc.)
|
|
128
|
+
return capturedResult;
|
|
129
|
+
}
|
|
130
|
+
if (capturedResult.changes) {
|
|
131
|
+
captured = {
|
|
132
|
+
files: capturedResult.changes.files,
|
|
133
|
+
summary: capturedResult.changes.summary,
|
|
134
|
+
commitRange: null,
|
|
135
|
+
uncommitted: true,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
// 8. Compute current state (if branch exists and differs from captured)
|
|
140
|
+
// Requires beforeCommit to calculate diff
|
|
141
|
+
// Note: Use main repo for git operations (worktree may be deleted)
|
|
142
|
+
let current;
|
|
143
|
+
let additionalCommits = 0;
|
|
144
|
+
if (branchExists && currentBranchHead && beforeCommit) {
|
|
145
|
+
// Check if current HEAD is different from captured after_commit
|
|
146
|
+
const isDifferent = currentBranchHead !== execution.after_commit;
|
|
147
|
+
if (isDifferent && execution.after_commit) {
|
|
148
|
+
// Count commits between captured and current
|
|
149
|
+
// Always use main repo path (worktree may be deleted)
|
|
150
|
+
additionalCommits = this.countCommitsBetween(execution.after_commit, currentBranchHead, this.repoPath);
|
|
151
|
+
// Compute current changes (from root to current HEAD)
|
|
152
|
+
const currentResult = await this.getCommittedChanges(beforeCommit, currentBranchHead);
|
|
153
|
+
if (currentResult.available && currentResult.changes) {
|
|
154
|
+
current = {
|
|
155
|
+
files: currentResult.changes.files,
|
|
156
|
+
summary: currentResult.changes.summary,
|
|
157
|
+
commitRange: {
|
|
158
|
+
before: beforeCommit,
|
|
159
|
+
after: currentBranchHead,
|
|
160
|
+
},
|
|
161
|
+
uncommitted: false,
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
// 9. Return result with both states
|
|
167
|
+
if (!captured) {
|
|
168
|
+
return {
|
|
169
|
+
available: false,
|
|
170
|
+
reason: "git_error",
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
return {
|
|
174
|
+
available: true,
|
|
175
|
+
captured,
|
|
176
|
+
uncommittedSnapshot,
|
|
177
|
+
current,
|
|
178
|
+
branchName,
|
|
179
|
+
branchExists,
|
|
180
|
+
worktreeExists,
|
|
181
|
+
executionMode,
|
|
182
|
+
additionalCommits,
|
|
183
|
+
// Legacy compatibility
|
|
184
|
+
changes: captured,
|
|
185
|
+
commitRange: captured.commitRange,
|
|
186
|
+
uncommitted: captured.uncommitted,
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Get root execution by traversing parent_execution_id chain
|
|
191
|
+
*
|
|
192
|
+
* For execution chains (follow-ups), this finds the original root execution.
|
|
193
|
+
* This allows us to calculate accumulated changes from the start of the chain.
|
|
194
|
+
*/
|
|
195
|
+
getRootExecution(execution) {
|
|
196
|
+
let current = execution;
|
|
197
|
+
let maxDepth = 100; // Safety limit to prevent infinite loops
|
|
198
|
+
let depth = 0;
|
|
199
|
+
while (current.parent_execution_id && depth < maxDepth) {
|
|
200
|
+
const parent = getExecution(this.db, current.parent_execution_id);
|
|
201
|
+
if (!parent) {
|
|
202
|
+
// Parent not found, return current as root
|
|
203
|
+
break;
|
|
204
|
+
}
|
|
205
|
+
current = parent;
|
|
206
|
+
depth++;
|
|
207
|
+
}
|
|
208
|
+
return current;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Get committed changes (commit-to-commit diff)
|
|
212
|
+
* Scenario A: after_commit exists and differs from before_commit
|
|
213
|
+
*/
|
|
214
|
+
async getCommittedChanges(beforeCommit, afterCommit) {
|
|
215
|
+
try {
|
|
216
|
+
// Verify commits exist in repo
|
|
217
|
+
try {
|
|
218
|
+
execSync(`git cat-file -t ${beforeCommit}`, {
|
|
219
|
+
cwd: this.repoPath,
|
|
220
|
+
encoding: "utf-8",
|
|
221
|
+
stdio: "pipe",
|
|
222
|
+
});
|
|
223
|
+
execSync(`git cat-file -t ${afterCommit}`, {
|
|
224
|
+
cwd: this.repoPath,
|
|
225
|
+
encoding: "utf-8",
|
|
226
|
+
stdio: "pipe",
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
catch (error) {
|
|
230
|
+
return {
|
|
231
|
+
available: false,
|
|
232
|
+
reason: "commits_not_found",
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
// Get diff statistics
|
|
236
|
+
const files = await this.calculateDiff(beforeCommit, afterCommit, this.repoPath);
|
|
237
|
+
return {
|
|
238
|
+
available: true,
|
|
239
|
+
uncommitted: false,
|
|
240
|
+
commitRange: {
|
|
241
|
+
before: beforeCommit,
|
|
242
|
+
after: afterCommit,
|
|
243
|
+
},
|
|
244
|
+
changes: {
|
|
245
|
+
files,
|
|
246
|
+
summary: this.calculateSummary(files),
|
|
247
|
+
commitRange: {
|
|
248
|
+
before: beforeCommit,
|
|
249
|
+
after: afterCommit,
|
|
250
|
+
},
|
|
251
|
+
uncommitted: false,
|
|
252
|
+
},
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
catch (error) {
|
|
256
|
+
console.error("[ExecutionChangesService] Error getting committed changes:", error);
|
|
257
|
+
return {
|
|
258
|
+
available: false,
|
|
259
|
+
reason: "git_error",
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Get uncommitted changes (working tree diff)
|
|
265
|
+
* Scenario B: after_commit is null or equals before_commit
|
|
266
|
+
*/
|
|
267
|
+
async getUncommittedChanges(worktreePath) {
|
|
268
|
+
// Determine the working directory to check
|
|
269
|
+
const workDir = worktreePath || this.repoPath;
|
|
270
|
+
// Check if worktree still exists
|
|
271
|
+
if (worktreePath && !existsSync(worktreePath)) {
|
|
272
|
+
return {
|
|
273
|
+
available: false,
|
|
274
|
+
reason: "worktree_deleted_with_uncommitted_changes",
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
try {
|
|
278
|
+
// Get uncommitted changes relative to HEAD
|
|
279
|
+
const files = await this.calculateDiff(null, null, workDir);
|
|
280
|
+
// If no files changed, return empty result
|
|
281
|
+
if (files.length === 0) {
|
|
282
|
+
return {
|
|
283
|
+
available: true,
|
|
284
|
+
uncommitted: true,
|
|
285
|
+
commitRange: null,
|
|
286
|
+
changes: {
|
|
287
|
+
files: [],
|
|
288
|
+
summary: {
|
|
289
|
+
totalFiles: 0,
|
|
290
|
+
totalAdditions: 0,
|
|
291
|
+
totalDeletions: 0,
|
|
292
|
+
},
|
|
293
|
+
commitRange: null,
|
|
294
|
+
uncommitted: true,
|
|
295
|
+
},
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
return {
|
|
299
|
+
available: true,
|
|
300
|
+
uncommitted: true,
|
|
301
|
+
commitRange: null,
|
|
302
|
+
changes: {
|
|
303
|
+
files,
|
|
304
|
+
summary: this.calculateSummary(files),
|
|
305
|
+
commitRange: null,
|
|
306
|
+
uncommitted: true,
|
|
307
|
+
},
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
catch (error) {
|
|
311
|
+
console.error("[ExecutionChangesService] Error getting uncommitted changes:", error);
|
|
312
|
+
return {
|
|
313
|
+
available: false,
|
|
314
|
+
reason: "git_error",
|
|
315
|
+
};
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* Calculate diff statistics using git commands
|
|
320
|
+
*
|
|
321
|
+
* @param beforeCommit - Before commit SHA (null for uncommitted)
|
|
322
|
+
* @param afterCommit - After commit SHA (null for uncommitted)
|
|
323
|
+
* @param workDir - Working directory for git commands
|
|
324
|
+
* @returns Array of file change statistics
|
|
325
|
+
*/
|
|
326
|
+
async calculateDiff(beforeCommit, afterCommit, workDir) {
|
|
327
|
+
// Build git diff command based on scenario
|
|
328
|
+
let numstatCmd;
|
|
329
|
+
let nameStatusCmd;
|
|
330
|
+
if (beforeCommit && afterCommit) {
|
|
331
|
+
// Committed changes: commit-to-commit diff
|
|
332
|
+
numstatCmd = `git diff --numstat --find-renames ${beforeCommit}..${afterCommit}`;
|
|
333
|
+
nameStatusCmd = `git diff --name-status --find-renames ${beforeCommit}..${afterCommit}`;
|
|
334
|
+
}
|
|
335
|
+
else {
|
|
336
|
+
// Uncommitted changes: working tree diff
|
|
337
|
+
numstatCmd = `git diff --numstat --find-renames HEAD`;
|
|
338
|
+
nameStatusCmd = `git diff --name-status --find-renames HEAD`;
|
|
339
|
+
}
|
|
340
|
+
// Execute git diff --numstat
|
|
341
|
+
const numstatOutput = execSync(numstatCmd, {
|
|
342
|
+
cwd: workDir,
|
|
343
|
+
encoding: "utf-8",
|
|
344
|
+
stdio: "pipe",
|
|
345
|
+
}).trim();
|
|
346
|
+
// Execute git diff --name-status
|
|
347
|
+
const nameStatusOutput = execSync(nameStatusCmd, {
|
|
348
|
+
cwd: workDir,
|
|
349
|
+
encoding: "utf-8",
|
|
350
|
+
stdio: "pipe",
|
|
351
|
+
}).trim();
|
|
352
|
+
// Parse outputs
|
|
353
|
+
const numstatData = this.parseNumstat(numstatOutput);
|
|
354
|
+
const statusData = this.parseNameStatus(nameStatusOutput);
|
|
355
|
+
// Combine numstat and status data
|
|
356
|
+
let files = this.combineFileData(numstatData, statusData);
|
|
357
|
+
// For uncommitted changes, also include untracked files
|
|
358
|
+
if (!beforeCommit && !afterCommit) {
|
|
359
|
+
const untrackedFiles = this.getUntrackedFiles(workDir);
|
|
360
|
+
files = files.concat(untrackedFiles);
|
|
361
|
+
}
|
|
362
|
+
return files;
|
|
363
|
+
}
|
|
364
|
+
/**
|
|
365
|
+
* Parse git diff --numstat output
|
|
366
|
+
*
|
|
367
|
+
* Format: "additions\tdeletions\tfilepath"
|
|
368
|
+
* Binary files: "-\t-\tfilepath"
|
|
369
|
+
*/
|
|
370
|
+
parseNumstat(output) {
|
|
371
|
+
const data = new Map();
|
|
372
|
+
if (!output) {
|
|
373
|
+
return data;
|
|
374
|
+
}
|
|
375
|
+
const lines = output.split("\n");
|
|
376
|
+
for (const line of lines) {
|
|
377
|
+
if (!line.trim())
|
|
378
|
+
continue;
|
|
379
|
+
const parts = line.split("\t");
|
|
380
|
+
if (parts.length < 3)
|
|
381
|
+
continue;
|
|
382
|
+
const additions = parts[0] === "-" ? 0 : parseInt(parts[0], 10);
|
|
383
|
+
const deletions = parts[1] === "-" ? 0 : parseInt(parts[1], 10);
|
|
384
|
+
const filePath = parts.slice(2).join("\t"); // Handle filenames with tabs
|
|
385
|
+
data.set(filePath, { additions, deletions });
|
|
386
|
+
}
|
|
387
|
+
return data;
|
|
388
|
+
}
|
|
389
|
+
/**
|
|
390
|
+
* Parse git diff --name-status output
|
|
391
|
+
*
|
|
392
|
+
* Format: "STATUS\tfilepath"
|
|
393
|
+
* Renamed files: "R100\toldpath\tnewpath"
|
|
394
|
+
*/
|
|
395
|
+
parseNameStatus(output) {
|
|
396
|
+
const data = new Map();
|
|
397
|
+
if (!output) {
|
|
398
|
+
return data;
|
|
399
|
+
}
|
|
400
|
+
const lines = output.split("\n");
|
|
401
|
+
for (const line of lines) {
|
|
402
|
+
if (!line.trim())
|
|
403
|
+
continue;
|
|
404
|
+
const parts = line.split("\t");
|
|
405
|
+
if (parts.length < 2)
|
|
406
|
+
continue;
|
|
407
|
+
const statusCode = parts[0];
|
|
408
|
+
let status;
|
|
409
|
+
if (statusCode.startsWith("A")) {
|
|
410
|
+
status = "A";
|
|
411
|
+
}
|
|
412
|
+
else if (statusCode.startsWith("M")) {
|
|
413
|
+
status = "M";
|
|
414
|
+
}
|
|
415
|
+
else if (statusCode.startsWith("D")) {
|
|
416
|
+
status = "D";
|
|
417
|
+
}
|
|
418
|
+
else if (statusCode.startsWith("R")) {
|
|
419
|
+
status = "R";
|
|
420
|
+
}
|
|
421
|
+
else {
|
|
422
|
+
// Default to modified for unknown status
|
|
423
|
+
status = "M";
|
|
424
|
+
}
|
|
425
|
+
// For renamed files, use the new path (last part)
|
|
426
|
+
const filePath = parts[parts.length - 1];
|
|
427
|
+
data.set(filePath, status);
|
|
428
|
+
}
|
|
429
|
+
return data;
|
|
430
|
+
}
|
|
431
|
+
/**
|
|
432
|
+
* Combine numstat and name-status data into FileChangeStat array
|
|
433
|
+
*/
|
|
434
|
+
combineFileData(numstatData, statusData) {
|
|
435
|
+
const files = [];
|
|
436
|
+
// Iterate through all files from numstat
|
|
437
|
+
for (const [path, { additions, deletions }] of numstatData) {
|
|
438
|
+
const status = statusData.get(path) || "M"; // Default to modified
|
|
439
|
+
files.push({
|
|
440
|
+
path,
|
|
441
|
+
additions,
|
|
442
|
+
deletions,
|
|
443
|
+
status,
|
|
444
|
+
});
|
|
445
|
+
}
|
|
446
|
+
return files;
|
|
447
|
+
}
|
|
448
|
+
/**
|
|
449
|
+
* Calculate summary statistics from file changes
|
|
450
|
+
*/
|
|
451
|
+
calculateSummary(files) {
|
|
452
|
+
return {
|
|
453
|
+
totalFiles: files.length,
|
|
454
|
+
totalAdditions: files.reduce((sum, file) => sum + file.additions, 0),
|
|
455
|
+
totalDeletions: files.reduce((sum, file) => sum + file.deletions, 0),
|
|
456
|
+
};
|
|
457
|
+
}
|
|
458
|
+
/**
|
|
459
|
+
* Get branch information (existence and current HEAD)
|
|
460
|
+
*/
|
|
461
|
+
getBranchInfo(branchName, workDir) {
|
|
462
|
+
try {
|
|
463
|
+
// Try to get the commit SHA for the branch
|
|
464
|
+
const head = execSync(`git rev-parse ${branchName}`, {
|
|
465
|
+
cwd: workDir,
|
|
466
|
+
encoding: "utf-8",
|
|
467
|
+
stdio: "pipe",
|
|
468
|
+
}).trim();
|
|
469
|
+
return {
|
|
470
|
+
exists: true,
|
|
471
|
+
head,
|
|
472
|
+
};
|
|
473
|
+
}
|
|
474
|
+
catch (error) {
|
|
475
|
+
// Branch doesn't exist
|
|
476
|
+
return {
|
|
477
|
+
exists: false,
|
|
478
|
+
head: null,
|
|
479
|
+
};
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
/**
|
|
483
|
+
* Count commits between two commit SHAs
|
|
484
|
+
*/
|
|
485
|
+
countCommitsBetween(fromCommit, toCommit, workDir) {
|
|
486
|
+
try {
|
|
487
|
+
const output = execSync(`git rev-list --count ${fromCommit}..${toCommit}`, {
|
|
488
|
+
cwd: workDir,
|
|
489
|
+
encoding: "utf-8",
|
|
490
|
+
stdio: "pipe",
|
|
491
|
+
}).trim();
|
|
492
|
+
return parseInt(output, 10) || 0;
|
|
493
|
+
}
|
|
494
|
+
catch (error) {
|
|
495
|
+
console.error("[ExecutionChangesService] Error counting commits:", error);
|
|
496
|
+
return 0;
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
/**
|
|
500
|
+
* Get untracked files (respecting .gitignore)
|
|
501
|
+
*/
|
|
502
|
+
getUntrackedFiles(workDir) {
|
|
503
|
+
try {
|
|
504
|
+
// Get untracked files, excluding .gitignore patterns
|
|
505
|
+
const output = execSync("git ls-files --others --exclude-standard", {
|
|
506
|
+
cwd: workDir,
|
|
507
|
+
encoding: "utf-8",
|
|
508
|
+
stdio: "pipe",
|
|
509
|
+
}).trim();
|
|
510
|
+
if (!output) {
|
|
511
|
+
return [];
|
|
512
|
+
}
|
|
513
|
+
const files = [];
|
|
514
|
+
const lines = output.split("\n");
|
|
515
|
+
for (const filePath of lines) {
|
|
516
|
+
if (!filePath.trim())
|
|
517
|
+
continue;
|
|
518
|
+
// Count lines in the file for additions
|
|
519
|
+
const fullPath = `${workDir}/${filePath}`;
|
|
520
|
+
let additions = 0;
|
|
521
|
+
try {
|
|
522
|
+
if (existsSync(fullPath)) {
|
|
523
|
+
const content = require("fs").readFileSync(fullPath, "utf-8");
|
|
524
|
+
additions = content.split("\n").length;
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
catch (error) {
|
|
528
|
+
// If we can't read the file (binary, etc.), just set additions to 1
|
|
529
|
+
additions = 1;
|
|
530
|
+
}
|
|
531
|
+
files.push({
|
|
532
|
+
path: filePath,
|
|
533
|
+
additions,
|
|
534
|
+
deletions: 0,
|
|
535
|
+
status: "A", // Untracked files are "Added"
|
|
536
|
+
});
|
|
537
|
+
}
|
|
538
|
+
return files;
|
|
539
|
+
}
|
|
540
|
+
catch (error) {
|
|
541
|
+
console.error("[ExecutionChangesService] Error getting untracked files:", error);
|
|
542
|
+
return [];
|
|
543
|
+
}
|
|
544
|
+
}
|
|
545
|
+
}
|
|
546
|
+
//# sourceMappingURL=execution-changes-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution-changes-service.js","sourceRoot":"","sources":["../../src/services/execution-changes-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution-lifecycle.d.ts","sourceRoot":"","sources":["../../src/services/execution-lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"execution-lifecycle.d.ts","sourceRoot":"","sources":["../../src/services/execution-lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,kCAAkC,CAAC;AAK1C;;GAEG;AACH,MAAM,WAAW,iCAAiC;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,iCAAiC;IAChD,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,qBAAa,yBAAyB;IACpC,OAAO,CAAC,eAAe,CAAmB;IAC1C,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,QAAQ,CAAS;IAEzB;;;;;;OAMG;gBAED,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,QAAQ,EAAE,MAAM,EAChB,eAAe,CAAC,EAAE,gBAAgB;IAcpC;;;;;;;;;;OAUG;IACG,2BAA2B,CAC/B,MAAM,EAAE,iCAAiC,GACxC,OAAO,CAAC,iCAAiC,CAAC;IAgJ7C;;;;;OAKG;IACH,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IA0BpD;;;;;;;;;;;;;OAaG;IACG,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4C1D;;;;;;OAMG;IACG,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC;CA8EhD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAezD"}
|