@claudexor/workspace 3.1.1 → 3.2.0
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/dist/git-capability.d.ts +24 -0
- package/dist/git-capability.d.ts.map +1 -0
- package/dist/git-capability.js +135 -0
- package/dist/git-capability.js.map +1 -0
- package/dist/git-initialization.d.ts +42 -0
- package/dist/git-initialization.d.ts.map +1 -0
- package/dist/git-initialization.js +79 -0
- package/dist/git-initialization.js.map +1 -0
- package/dist/git.d.ts +25 -54
- package/dist/git.d.ts.map +1 -1
- package/dist/git.js +126 -140
- package/dist/git.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/manager.d.ts +5 -14
- package/dist/manager.d.ts.map +1 -1
- package/dist/manager.js +52 -97
- package/dist/manager.js.map +1 -1
- package/dist/plain-diff.d.ts +8 -0
- package/dist/plain-diff.d.ts.map +1 -0
- package/dist/plain-diff.js +90 -0
- package/dist/plain-diff.js.map +1 -0
- package/dist/raw-patch.d.ts.map +1 -1
- package/dist/raw-patch.js.map +1 -1
- package/dist/revert.d.ts +27 -0
- package/dist/revert.d.ts.map +1 -0
- package/dist/revert.js +126 -0
- package/dist/revert.js.map +1 -0
- package/dist/thread-tree.d.ts +3 -0
- package/dist/thread-tree.d.ts.map +1 -1
- package/dist/thread-tree.js +19 -7
- package/dist/thread-tree.js.map +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type CaptureResult } from "@claudexor/core";
|
|
2
|
+
import { type GitCapability as GitCapabilityValue } from "@claudexor/schema";
|
|
3
|
+
export interface GitProbeDependencies {
|
|
4
|
+
resolveGit?: () => string | null;
|
|
5
|
+
runVersion?: (executable: string) => Promise<CaptureResult>;
|
|
6
|
+
runXcodeSelect?: () => Promise<CaptureResult>;
|
|
7
|
+
}
|
|
8
|
+
export interface GitCapabilityProblem {
|
|
9
|
+
code: "git_missing" | "git_developer_tools_stub" | "git_failed";
|
|
10
|
+
reason: string;
|
|
11
|
+
remediation: string | null;
|
|
12
|
+
}
|
|
13
|
+
/** Canonical user-safe problem for every Git capability consumer. */
|
|
14
|
+
export declare function gitCapabilityProblem(capability: GitCapabilityValue): GitCapabilityProblem | null;
|
|
15
|
+
export declare function resolveGitExecutable(path?: string): string | null;
|
|
16
|
+
/** Probe the actual Git executable used by this daemon, not path/file presence. */
|
|
17
|
+
export declare function probeGitCapability(dependencies?: GitProbeDependencies): Promise<GitCapabilityValue>;
|
|
18
|
+
export declare class GitCapabilityError extends Error {
|
|
19
|
+
readonly capability: GitCapabilityValue;
|
|
20
|
+
readonly code: string;
|
|
21
|
+
constructor(capability: GitCapabilityValue);
|
|
22
|
+
}
|
|
23
|
+
export declare function requireGitCapability(capability: GitCapabilityValue): void;
|
|
24
|
+
//# sourceMappingURL=git-capability.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-capability.d.ts","sourceRoot":"","sources":["../src/git-capability.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAiB,KAAK,aAAa,IAAI,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAM5F,MAAM,WAAW,oBAAoB;IACnC,UAAU,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACjC,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IAC5D,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,aAAa,GAAG,0BAA0B,GAAG,YAAY,CAAC;IAChE,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,qEAAqE;AACrE,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,kBAAkB,GAAG,oBAAoB,GAAG,IAAI,CAahG;AAOD,wBAAgB,oBAAoB,CAClC,IAAI,SAA6C,GAChD,MAAM,GAAG,IAAI,CAUf;AAWD,mFAAmF;AACnF,wBAAsB,kBAAkB,CACtC,YAAY,GAAE,oBAAyB,GACtC,OAAO,CAAC,kBAAkB,CAAC,CA2E7B;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IAG/B,QAAQ,CAAC,UAAU,EAAE,kBAAkB;IAFnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,YAAqB,UAAU,EAAE,kBAAkB,EAMlD;CACF;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,kBAAkB,GAAG,IAAI,CAEzE"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { accessSync, constants, realpathSync } from "node:fs";
|
|
2
|
+
import { delimiter, join } from "node:path";
|
|
3
|
+
import { composeBaseEnv, isLaunchableExecutable, labelStreams, runCaptureRaw, } from "@claudexor/core";
|
|
4
|
+
import { GitCapability } from "@claudexor/schema";
|
|
5
|
+
const INSTALL_COMMAND_LINE_TOOLS = "Install Apple Command Line Tools with `xcode-select --install`, then retry.";
|
|
6
|
+
const INSTALL_GIT = "Install Git and make it available on PATH, then retry.";
|
|
7
|
+
/** Canonical user-safe problem for every Git capability consumer. */
|
|
8
|
+
export function gitCapabilityProblem(capability) {
|
|
9
|
+
if (capability.status === "available")
|
|
10
|
+
return null;
|
|
11
|
+
const reason = capability.status === "developer_tools_stub"
|
|
12
|
+
? "Git is unavailable because Apple Command Line Tools are not installed."
|
|
13
|
+
: capability.status === "missing"
|
|
14
|
+
? "Git is not installed or is not available on this engine's PATH."
|
|
15
|
+
: "Git was found but could not run successfully in this engine environment.";
|
|
16
|
+
return {
|
|
17
|
+
code: `git_${capability.status}`,
|
|
18
|
+
reason,
|
|
19
|
+
remediation: capability.remediation,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
function appleDeveloperToolsStub(detail) {
|
|
23
|
+
const normalized = detail.toLowerCase();
|
|
24
|
+
return normalized.includes("xcode-select") && normalized.includes("developer tools");
|
|
25
|
+
}
|
|
26
|
+
export function resolveGitExecutable(path = composeBaseEnv("mirror_native").PATH ?? "") {
|
|
27
|
+
for (const entry of path.split(delimiter)) {
|
|
28
|
+
const candidate = join(entry || ".", "git");
|
|
29
|
+
try {
|
|
30
|
+
if (isLaunchableExecutable(candidate))
|
|
31
|
+
return realpathSync(candidate);
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
// Continue to the next PATH entry.
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
function executableFile(path) {
|
|
40
|
+
try {
|
|
41
|
+
accessSync(path, constants.X_OK);
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/** Probe the actual Git executable used by this daemon, not path/file presence. */
|
|
49
|
+
export async function probeGitCapability(dependencies = {}) {
|
|
50
|
+
const executable = (dependencies.resolveGit ?? resolveGitExecutable)();
|
|
51
|
+
if (!executable) {
|
|
52
|
+
return GitCapability.parse({
|
|
53
|
+
status: "missing",
|
|
54
|
+
version: null,
|
|
55
|
+
detail: "No executable named git was found on PATH.",
|
|
56
|
+
remediation: INSTALL_GIT,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
try {
|
|
60
|
+
// On clean macOS `/usr/bin/git` is an Apple launcher whose execution can
|
|
61
|
+
// open the developer-tools installer. Ask xcode-select first; this probe is
|
|
62
|
+
// non-mutating and prevents a readiness refresh from surprising the user.
|
|
63
|
+
if (executable === "/usr/bin/git" &&
|
|
64
|
+
(dependencies.runXcodeSelect !== undefined || executableFile("/usr/bin/xcode-select"))) {
|
|
65
|
+
const xcodeSelect = await (dependencies.runXcodeSelect ??
|
|
66
|
+
(() => runCaptureRaw("/usr/bin/xcode-select", ["--print-path"], {
|
|
67
|
+
timeoutMs: 10_000,
|
|
68
|
+
inheritEnv: "mirror_native",
|
|
69
|
+
})))();
|
|
70
|
+
if (xcodeSelect.code !== 0 || !xcodeSelect.stdout.trim()) {
|
|
71
|
+
return GitCapability.parse({
|
|
72
|
+
status: "developer_tools_stub",
|
|
73
|
+
version: null,
|
|
74
|
+
detail: labelStreams(xcodeSelect.stderr, xcodeSelect.stdout),
|
|
75
|
+
remediation: INSTALL_COMMAND_LINE_TOOLS,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
const result = await (dependencies.runVersion ??
|
|
80
|
+
((path) => runCaptureRaw(path, ["--version"], {
|
|
81
|
+
timeoutMs: 10_000,
|
|
82
|
+
inheritEnv: "mirror_native",
|
|
83
|
+
})))(executable);
|
|
84
|
+
const detail = labelStreams(result.stderr, result.stdout);
|
|
85
|
+
if (result.code === 0) {
|
|
86
|
+
return GitCapability.parse({
|
|
87
|
+
status: "available",
|
|
88
|
+
version: result.stdout.trim() || null,
|
|
89
|
+
detail: null,
|
|
90
|
+
remediation: null,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
if (appleDeveloperToolsStub(`${result.stderr}\n${result.stdout}`)) {
|
|
94
|
+
return GitCapability.parse({
|
|
95
|
+
status: "developer_tools_stub",
|
|
96
|
+
version: null,
|
|
97
|
+
detail,
|
|
98
|
+
remediation: INSTALL_COMMAND_LINE_TOOLS,
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
return GitCapability.parse({
|
|
102
|
+
status: "failed",
|
|
103
|
+
version: null,
|
|
104
|
+
detail,
|
|
105
|
+
remediation: INSTALL_GIT,
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
const missing = error?.code === "ENOENT";
|
|
110
|
+
return GitCapability.parse({
|
|
111
|
+
status: missing ? "missing" : "failed",
|
|
112
|
+
version: null,
|
|
113
|
+
detail: error instanceof Error ? error.message : String(error),
|
|
114
|
+
remediation: INSTALL_GIT,
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
export class GitCapabilityError extends Error {
|
|
119
|
+
capability;
|
|
120
|
+
code;
|
|
121
|
+
constructor(capability) {
|
|
122
|
+
const problem = gitCapabilityProblem(capability);
|
|
123
|
+
if (!problem)
|
|
124
|
+
throw new Error("GitCapabilityError requires an unavailable capability");
|
|
125
|
+
super([problem.reason, problem.remediation].filter(Boolean).join(" "));
|
|
126
|
+
this.capability = capability;
|
|
127
|
+
this.name = "GitCapabilityError";
|
|
128
|
+
this.code = problem.code;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
export function requireGitCapability(capability) {
|
|
132
|
+
if (capability.status !== "available")
|
|
133
|
+
throw new GitCapabilityError(capability);
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=git-capability.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-capability.js","sourceRoot":"","sources":["../src/git-capability.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { WorkspaceError } from "@claudexor/core";
|
|
2
|
+
import { probeGitCapability } from "./git-capability.js";
|
|
3
|
+
export interface GitCommandResult {
|
|
4
|
+
code: number | null;
|
|
5
|
+
stdout: string;
|
|
6
|
+
stderr: string;
|
|
7
|
+
}
|
|
8
|
+
export type GitRunner = (repo: string, args: string[], input?: string) => Promise<GitCommandResult>;
|
|
9
|
+
export interface EnsureGitRepositoryResult {
|
|
10
|
+
/** True when `git init` ran (the folder was not a repository). */
|
|
11
|
+
initialized: boolean;
|
|
12
|
+
/** True when a baseline commit was created (fresh repo or unborn HEAD). */
|
|
13
|
+
baselineCommitted: boolean;
|
|
14
|
+
/** Always false in v2: Claudexor never changes a project's `.gitignore`. */
|
|
15
|
+
gitignoreSeeded: boolean;
|
|
16
|
+
/** HEAD sha after the call. */
|
|
17
|
+
headSha: string;
|
|
18
|
+
}
|
|
19
|
+
export interface GitInitializationProgress {
|
|
20
|
+
initialized: boolean;
|
|
21
|
+
baselineCommitted: boolean;
|
|
22
|
+
gitignoreSeeded: false;
|
|
23
|
+
headSha: string | null;
|
|
24
|
+
failedStage: "init" | "add" | "commit" | "head";
|
|
25
|
+
}
|
|
26
|
+
/** A Git-boundary setup failed after it may already have changed repository
|
|
27
|
+
* metadata. Callers must disclose this progress before terminal failure. */
|
|
28
|
+
export declare class GitInitializationError extends WorkspaceError {
|
|
29
|
+
readonly progress: GitInitializationProgress;
|
|
30
|
+
constructor(message: string, progress: GitInitializationProgress);
|
|
31
|
+
}
|
|
32
|
+
export interface EnsureGitRepositoryDependencies {
|
|
33
|
+
probeCapability?: typeof probeGitCapability;
|
|
34
|
+
runGit?: GitRunner;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Establish the write-mode Git boundary. The caller supplies the canonical Git
|
|
38
|
+
* runner so command execution remains owned by git.ts while this module owns
|
|
39
|
+
* only the initialization transaction and its partial-progress receipt.
|
|
40
|
+
*/
|
|
41
|
+
export declare function initializeGitRepository(repo: string, runGit: GitRunner, probeCapability?: typeof probeGitCapability): Promise<EnsureGitRepositoryResult>;
|
|
42
|
+
//# sourceMappingURL=git-initialization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-initialization.d.ts","sourceRoot":"","sources":["../src/git-initialization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAwB,MAAM,qBAAqB,CAAC;AAE/E,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAEpG,MAAM,WAAW,yBAAyB;IACxC,kEAAkE;IAClE,WAAW,EAAE,OAAO,CAAC;IACrB,2EAA2E;IAC3E,iBAAiB,EAAE,OAAO,CAAC;IAC3B,4EAA4E;IAC5E,eAAe,EAAE,OAAO,CAAC;IACzB,+BAA+B;IAC/B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,OAAO,CAAC;IACrB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,KAAK,CAAC;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;CACjD;AAED;4EAC4E;AAC5E,qBAAa,sBAAuB,SAAQ,cAAc;IAGtD,QAAQ,CAAC,QAAQ,EAAE,yBAAyB;IAF9C,YACE,OAAO,EAAE,MAAM,EACN,QAAQ,EAAE,yBAAyB,EAI7C;CACF;AAED,MAAM,WAAW,+BAA+B;IAC9C,eAAe,CAAC,EAAE,OAAO,kBAAkB,CAAC;IAC5C,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,SAAS,EACjB,eAAe,GAAE,OAAO,kBAAuC,GAC9D,OAAO,CAAC,yBAAyB,CAAC,CA2EpC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { WorkspaceError } from "@claudexor/core";
|
|
2
|
+
import { probeGitCapability, requireGitCapability } from "./git-capability.js";
|
|
3
|
+
/** A Git-boundary setup failed after it may already have changed repository
|
|
4
|
+
* metadata. Callers must disclose this progress before terminal failure. */
|
|
5
|
+
export class GitInitializationError extends WorkspaceError {
|
|
6
|
+
progress;
|
|
7
|
+
constructor(message, progress) {
|
|
8
|
+
super(message);
|
|
9
|
+
this.progress = progress;
|
|
10
|
+
this.name = "GitInitializationError";
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Establish the write-mode Git boundary. The caller supplies the canonical Git
|
|
15
|
+
* runner so command execution remains owned by git.ts while this module owns
|
|
16
|
+
* only the initialization transaction and its partial-progress receipt.
|
|
17
|
+
*/
|
|
18
|
+
export async function initializeGitRepository(repo, runGit, probeCapability = probeGitCapability) {
|
|
19
|
+
requireGitCapability(await probeCapability());
|
|
20
|
+
const inside = await runGit(repo, ["rev-parse", "--is-inside-work-tree"]);
|
|
21
|
+
const isRepo = inside.code === 0 && inside.stdout.trim() === "true";
|
|
22
|
+
const hasHead = isRepo && (await runGit(repo, ["rev-parse", "--verify", "HEAD"])).code === 0;
|
|
23
|
+
if (isRepo && hasHead) {
|
|
24
|
+
const head = await runGit(repo, ["rev-parse", "HEAD"]);
|
|
25
|
+
if (head.code !== 0)
|
|
26
|
+
throw new WorkspaceError(`git rev-parse HEAD failed: ${head.stderr.trim()}`);
|
|
27
|
+
return {
|
|
28
|
+
initialized: false,
|
|
29
|
+
baselineCommitted: false,
|
|
30
|
+
gitignoreSeeded: false,
|
|
31
|
+
headSha: head.stdout.trim(),
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
let initialized = false;
|
|
35
|
+
const partial = (failedStage, baselineCommitted = false, headSha = null) => ({
|
|
36
|
+
initialized,
|
|
37
|
+
baselineCommitted,
|
|
38
|
+
gitignoreSeeded: false,
|
|
39
|
+
headSha,
|
|
40
|
+
failedStage,
|
|
41
|
+
});
|
|
42
|
+
if (!isRepo) {
|
|
43
|
+
const init = await runGit(repo, ["init"]);
|
|
44
|
+
if (init.code !== 0) {
|
|
45
|
+
// `git init` is not transactional: it can leave config/hooks/refs before
|
|
46
|
+
// rejecting a later step. Disclose possible partial metadata even though
|
|
47
|
+
// initialization did not complete.
|
|
48
|
+
throw new GitInitializationError(`git init failed: ${init.stderr.trim()}`, partial("init"));
|
|
49
|
+
}
|
|
50
|
+
initialized = true;
|
|
51
|
+
}
|
|
52
|
+
const add = await runGit(repo, ["add", "-A"]);
|
|
53
|
+
if (add.code !== 0)
|
|
54
|
+
throw new GitInitializationError(`git add failed during repository initialization: ${add.stderr.trim()}`, partial("add"));
|
|
55
|
+
const commit = await runGit(repo, [
|
|
56
|
+
"-c",
|
|
57
|
+
"user.name=Claudexor",
|
|
58
|
+
"-c",
|
|
59
|
+
"user.email=noreply@claudexor.local",
|
|
60
|
+
"commit",
|
|
61
|
+
"--allow-empty",
|
|
62
|
+
"--no-verify",
|
|
63
|
+
"-m",
|
|
64
|
+
"claudexor: initialize repository baseline",
|
|
65
|
+
]);
|
|
66
|
+
if (commit.code !== 0)
|
|
67
|
+
throw new GitInitializationError(`baseline commit failed during repository initialization: ${commit.stderr.trim()}`, partial("commit"));
|
|
68
|
+
const head = await runGit(repo, ["rev-parse", "HEAD"]);
|
|
69
|
+
if (head.code !== 0) {
|
|
70
|
+
throw new GitInitializationError(`git rev-parse HEAD failed after repository initialization: ${head.stderr.trim()}`, partial("head", true));
|
|
71
|
+
}
|
|
72
|
+
return {
|
|
73
|
+
initialized,
|
|
74
|
+
baselineCommitted: true,
|
|
75
|
+
gitignoreSeeded: false,
|
|
76
|
+
headSha: head.stdout.trim(),
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=git-initialization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-initialization.js","sourceRoot":"","sources":["../src/git-initialization.ts"],"names":[],"mappings":"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"}
|
package/dist/git.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { type EnsureGitRepositoryDependencies, type EnsureGitRepositoryResult } from "./git-initialization.js";
|
|
2
|
+
export { GitInitializationError, type EnsureGitRepositoryDependencies, type EnsureGitRepositoryResult, } from "./git-initialization.js";
|
|
1
3
|
/** BYTE-FAITHFUL git capture: raw buffers, never readline — CR
|
|
2
4
|
* bytes in CRLF diff content survive, and no trailing newline is fabricated
|
|
3
5
|
* (trim-based consumers like revParse are unaffected: git ends its own
|
|
@@ -9,16 +11,6 @@ export declare function git(repo: string, args: string[], input?: string): Promi
|
|
|
9
11
|
}>;
|
|
10
12
|
export declare function isGitRepo(repo: string): Promise<boolean>;
|
|
11
13
|
export declare function revParse(repo: string, ref: string): Promise<string>;
|
|
12
|
-
export interface EnsureGitRepositoryResult {
|
|
13
|
-
/** True when `git init` ran (the folder was not a repository). */
|
|
14
|
-
initialized: boolean;
|
|
15
|
-
/** True when a baseline commit was created (fresh repo or unborn HEAD). */
|
|
16
|
-
baselineCommitted: boolean;
|
|
17
|
-
/** Always false in v2: Claudexor never changes a project's `.gitignore`. */
|
|
18
|
-
gitignoreSeeded: boolean;
|
|
19
|
-
/** HEAD sha after the call. */
|
|
20
|
-
headSha: string;
|
|
21
|
-
}
|
|
22
14
|
/**
|
|
23
15
|
* Make a project folder usable as a git boundary for write-mode runs.
|
|
24
16
|
*
|
|
@@ -32,7 +24,7 @@ export interface EnsureGitRepositoryResult {
|
|
|
32
24
|
* The baseline commit is authored as "Claudexor" deterministically — it is a
|
|
33
25
|
* tool-created commit and must not depend on (or pollute) user git identity.
|
|
34
26
|
*/
|
|
35
|
-
export declare function ensureGitRepository(repo: string): Promise<EnsureGitRepositoryResult>;
|
|
27
|
+
export declare function ensureGitRepository(repo: string, dependencies?: EnsureGitRepositoryDependencies): Promise<EnsureGitRepositoryResult>;
|
|
36
28
|
export declare function statusPorcelain(repo: string): Promise<string>;
|
|
37
29
|
/**
|
|
38
30
|
* Capture the full dirty working tree (tracked AND untracked) as a dangling
|
|
@@ -55,6 +47,24 @@ export declare function snapshotTree(repo: string): Promise<string>;
|
|
|
55
47
|
* `--binary`: binary changes carry an APPLYABLE payload instead of
|
|
56
48
|
* degrading to a "Binary files differ" stub that silently loses the work. */
|
|
57
49
|
export declare function diffTrees(repo: string, baseSha: string, endSha: string): Promise<string>;
|
|
50
|
+
/**
|
|
51
|
+
* Capture the current worktree against an exact base without writing its blobs
|
|
52
|
+
* into the user's Git object database. In-place harness output is untrusted
|
|
53
|
+
* until the secret fence has inspected the resulting patch; `snapshotTree`
|
|
54
|
+
* would otherwise leave a dangling raw-secret blob even when artifact
|
|
55
|
+
* persistence later refused the patch.
|
|
56
|
+
*
|
|
57
|
+
* Git still owns filename, mode, symlink, binary, ignored-file, and untracked
|
|
58
|
+
* semantics. A scratch index plus an isolated temporary object directory holds
|
|
59
|
+
* the candidate tree only for the duration of `git diff`; the real object
|
|
60
|
+
* directory is read-only through Git's alternates mechanism.
|
|
61
|
+
*/
|
|
62
|
+
export interface TransientDiffCapture {
|
|
63
|
+
patch: string;
|
|
64
|
+
binarySecretLike: boolean;
|
|
65
|
+
}
|
|
66
|
+
export declare function captureWorkingTreeTransient(repo: string, baseSha: string, pathExcludes?: string[]): Promise<TransientDiffCapture>;
|
|
67
|
+
export declare function diffWorkingTreeTransient(repo: string, baseSha: string, pathExcludes?: string[]): Promise<string>;
|
|
58
68
|
/**
|
|
59
69
|
* Materialize a patch against an exact base in a scratch index and return the
|
|
60
70
|
* resulting tree id. The live index and worktree are never consulted or
|
|
@@ -62,34 +72,11 @@ export declare function diffTrees(repo: string, baseSha: string, endSha: string)
|
|
|
62
72
|
* concurrently staged user path can never be swept into a Claudexor commit.
|
|
63
73
|
*/
|
|
64
74
|
export declare function materializePatchTree(repo: string, baseSha: string, diff: string): Promise<string>;
|
|
65
|
-
/** Why a revert was refused, decided by the PRODUCER (which branch failed), not
|
|
66
|
-
* by regexing the human `reason` downstream (QA-051/W3):
|
|
67
|
-
* - `postimage_diverged`: the reverse `--check` failed because the turn-owned
|
|
68
|
-
* postimage no longer matches (files changed after the turn);
|
|
69
|
-
* - `reverse_apply_failed`: the reverse apply itself failed after a clean
|
|
70
|
-
* preflight. */
|
|
71
|
-
export type RevertRefusalReason = "postimage_diverged" | "reverse_apply_failed";
|
|
72
|
-
export interface RevertResult {
|
|
73
|
-
reverted: boolean;
|
|
74
|
-
/** Turn-added files removed to restore the pre-turn state (`.claudexor` preserved). */
|
|
75
|
-
removed: string[];
|
|
76
|
-
reason?: string;
|
|
77
|
-
/** Typed refusal class set at the point of failure; absent on success. */
|
|
78
|
-
reasonCode?: RevertRefusalReason;
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Server-owned in-place revert: restore the live working tree to a recorded
|
|
82
|
-
* pre-turn snapshot, but ONLY when the tree still matches the recorded post-turn
|
|
83
|
-
* snapshot (i.e. the user hasn't edited since) — otherwise it fails loudly and
|
|
84
|
-
* touches nothing. Reverts tracked modifications/deletions AND removes files the
|
|
85
|
-
* turn added; `.claudexor` (run artifacts) is always preserved.
|
|
86
|
-
*/
|
|
87
|
-
export declare function revertWorkingTreeTo(repo: string, preTurnSha: string, expectedPostSha: string): Promise<RevertResult>;
|
|
88
|
-
/** Reverse an immutable turn patch. This is the GC-independent production
|
|
89
|
-
* path used by external revert anchors; the SHA-based wrapper remains useful
|
|
90
|
-
* while capturing and testing snapshots. */
|
|
91
|
-
export declare function revertWorkingTreePatch(repo: string, patch: string): Promise<RevertResult>;
|
|
92
75
|
export declare function worktreeAdd(repo: string, path: string, branch: string, baseSha: string): Promise<void>;
|
|
76
|
+
/** Disposable candidate checkout with private refs/index/objects. The source
|
|
77
|
+
* repository is only an object alternate, so harness `git add`/`commit` cannot
|
|
78
|
+
* write candidate blobs or refs into the user's repository. */
|
|
79
|
+
export declare function isolatedCloneAdd(repo: string, path: string, branch: string, baseSha: string): Promise<void>;
|
|
93
80
|
/** Recreate a worktree for an EXISTING branch (recovery: dir lost, branch survived). */
|
|
94
81
|
export declare function worktreeAddExisting(repo: string, path: string, branch: string): Promise<void>;
|
|
95
82
|
export declare function worktreeRemove(repo: string, path: string): Promise<void>;
|
|
@@ -128,20 +115,4 @@ export declare function reversePatchAndIndexProtected(repo: string, diff: string
|
|
|
128
115
|
export declare function worktreePrune(repo: string): Promise<void>;
|
|
129
116
|
/** Delete a local branch (best-effort GC of per-attempt claudexor/* branches). */
|
|
130
117
|
export declare function branchDelete(repo: string, branch: string): Promise<void>;
|
|
131
|
-
/**
|
|
132
|
-
* Stage everything (so untracked files appear) and return the diff vs the
|
|
133
|
-
* recorded BASE sha — NOT the worktree HEAD. A harness that commits inside the
|
|
134
|
-
* worktree (Claude Code does this routinely) advances HEAD; diffing vs HEAD
|
|
135
|
-
* would then hide the committed work and report an empty no-op diff, silently
|
|
136
|
-
* losing the candidate's real output. Diffing the staged tree vs base_sha
|
|
137
|
-
* captures all net change since the run started regardless of intermediate
|
|
138
|
-
* commits. Git op failures throw loudly instead of masquerading as "no changes".
|
|
139
|
-
*/
|
|
140
|
-
export declare function diffStaged(worktreePath: string, baseSha?: string,
|
|
141
|
-
/** Additional EXACT-path pathspec excludes (e.g. the generated CLAUDE.md
|
|
142
|
-
* bridge, excluded by the caller only when it was created THIS run and its
|
|
143
|
-
* bytes still equal CLAUDE_BRIDGE_CONTENT). Each must already be a git
|
|
144
|
-
* pathspec magic term like `:(exclude,top)<path>`. Applied to BOTH the scratch
|
|
145
|
-
* `add -A` and the diff, so an excluded path is neither staged nor reported. */
|
|
146
|
-
extraExcludes?: readonly string[]): Promise<string>;
|
|
147
118
|
//# sourceMappingURL=git.d.ts.map
|
package/dist/git.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAUA;;;sBAGsB;AACtB,wBAAsB,GAAG,CACvB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EAAE,EACd,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAGlE;AAiBD,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG9D;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAIzE;AAED
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"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"}
|