@codetreker/daynight 0.21.2 → 0.21.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 +1176 -0
- package/dist/api/client.js +15 -2
- package/dist/api/client.js.map +1 -1
- package/dist/api/types.d.ts +1 -0
- package/dist/commands/review/instance-lock.js +2 -114
- package/dist/commands/review/instance-lock.js.map +1 -1
- package/dist/commands/skill/skills/using-daynight/SKILL.md +39 -41
- package/dist/commands/skill/skills/using-daynight/references/create-task.md +15 -12
- package/dist/commands/skill/skills/using-daynight/references/execute-task-in-managed.md +91 -0
- package/dist/commands/skill/skills/using-daynight/references/goal.md +34 -32
- package/dist/commands/skill/skills/using-daynight/references/handbook.md +41 -10
- package/dist/commands/skill/skills/using-daynight/references/handoff.md +1 -1
- package/dist/commands/skill/skills/using-daynight/references/run-task.md +55 -164
- package/dist/commands/skill/skills/using-daynight/references/task-content.md +6 -4
- package/dist/commands/skill/skills/using-daynight/references/task-execution.md +136 -0
- package/dist/commands/task/command.js +13 -1
- package/dist/commands/task/command.js.map +1 -1
- package/dist/commands/task/definition.js +3 -2
- package/dist/commands/task/definition.js.map +1 -1
- package/dist/commands/worker/identity.d.ts +2 -0
- package/dist/commands/worker/identity.js +41 -0
- package/dist/commands/worker/identity.js.map +1 -0
- package/dist/commands/worker/instance-lock.d.ts +6 -0
- package/dist/commands/worker/instance-lock.js +7 -0
- package/dist/commands/worker/instance-lock.js.map +1 -0
- package/dist/commands/worker/paths.d.ts +11 -0
- package/dist/commands/worker/paths.js +16 -0
- package/dist/commands/worker/paths.js.map +1 -0
- package/dist/commands/worker/store.d.ts +55 -0
- package/dist/commands/worker/store.js +460 -0
- package/dist/commands/worker/store.js.map +1 -0
- package/dist/commands/worker/types.d.ts +101 -0
- package/dist/commands/worker/types.js +2 -0
- package/dist/commands/worker/types.js.map +1 -0
- package/dist/commands/worker/worktrees.d.ts +29 -0
- package/dist/commands/worker/worktrees.js +285 -0
- package/dist/commands/worker/worktrees.js.map +1 -0
- package/dist/config/document.d.ts +1 -1
- package/dist/config/document.js +1 -0
- package/dist/config/document.js.map +1 -1
- package/dist/platform/instance-lock.d.ts +5 -0
- package/dist/platform/instance-lock.js +115 -0
- package/dist/platform/instance-lock.js.map +1 -0
- package/dist/repository/git.d.ts +2 -0
- package/dist/repository/git.js +8 -5
- package/dist/repository/git.js.map +1 -1
- package/package.json +2 -2
- package/dist/commands/skill/skills/using-daynight/references/autopilot.md +0 -136
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { rm } from "node:fs/promises";
|
|
2
|
+
import type { Operation } from "../../api/operation.js";
|
|
3
|
+
import { runRepositoryGit } from "../../repository/git.js";
|
|
4
|
+
import type { LocalTask, WorkerProject, WorktreeBinding } from "./types.js";
|
|
5
|
+
type GitRunner = typeof runRepositoryGit;
|
|
6
|
+
export type WorkerRepository = {
|
|
7
|
+
root: string;
|
|
8
|
+
commonDirectory: string;
|
|
9
|
+
rootIdentity: string;
|
|
10
|
+
commonIdentity: string;
|
|
11
|
+
};
|
|
12
|
+
export type WorktreeRemovalProof = {
|
|
13
|
+
terminal: true;
|
|
14
|
+
agentStopped: true;
|
|
15
|
+
workspaceClosed: true;
|
|
16
|
+
};
|
|
17
|
+
export declare const createWorkerGitManager: (options: {
|
|
18
|
+
temporaryDirectory: string;
|
|
19
|
+
runGit?: GitRunner;
|
|
20
|
+
removeDirectory?: typeof rm;
|
|
21
|
+
}) => {
|
|
22
|
+
prepareRepository: (project: WorkerProject, operation: Operation) => Promise<WorkerRepository>;
|
|
23
|
+
prepareWorktree: (task: LocalTask, operation: Operation) => Promise<WorktreeBinding>;
|
|
24
|
+
verifyWorktree: (task: LocalTask, operation: Operation) => Promise<WorktreeBinding>;
|
|
25
|
+
removeWorktree: (task: LocalTask, proof: WorktreeRemovalProof, operation: Operation) => Promise<void>;
|
|
26
|
+
dispose: () => Promise<void>;
|
|
27
|
+
};
|
|
28
|
+
export type WorkerGitManager = ReturnType<typeof createWorkerGitManager>;
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { lstat, mkdir, mkdtemp, readFile, readdir, realpath, rm, rmdir } from "node:fs/promises";
|
|
3
|
+
import { canonicalId } from "../../api/parse.js";
|
|
4
|
+
import { normalizeServerUrl } from "../../config/server.js";
|
|
5
|
+
import { runRepositoryGit } from "../../repository/git.js";
|
|
6
|
+
import { repositoryIdentity } from "../../repository/identity.js";
|
|
7
|
+
import { resolvePhysicalDirectory } from "../../platform/filesystem.js";
|
|
8
|
+
const prefix = "daynight-worker:";
|
|
9
|
+
const missing = (error) => error instanceof Error && "code" in error && error.code === "ENOENT";
|
|
10
|
+
const line = (value) => value.replace(/\r?\n$/, "");
|
|
11
|
+
const uuid = (value, name) => {
|
|
12
|
+
const normalized = canonicalId(value);
|
|
13
|
+
if (normalized === null)
|
|
14
|
+
throw new Error(`${name} must be a UUID.`);
|
|
15
|
+
return normalized;
|
|
16
|
+
};
|
|
17
|
+
const absolute = (value, name) => {
|
|
18
|
+
if (!path.isAbsolute(value) || /[\r\n\0]/.test(value))
|
|
19
|
+
throw new Error(`${name} must be an absolute path without line breaks or NUL.`);
|
|
20
|
+
return path.normalize(value);
|
|
21
|
+
};
|
|
22
|
+
const directory = async (target) => {
|
|
23
|
+
try {
|
|
24
|
+
const entry = await lstat(target, { bigint: true });
|
|
25
|
+
if (!entry.isDirectory() || entry.isSymbolicLink())
|
|
26
|
+
throw new Error(`Managed path ${target} must be an ordinary directory.`);
|
|
27
|
+
return `${entry.dev}:${entry.ino}`;
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
if (missing(error))
|
|
31
|
+
return null;
|
|
32
|
+
throw error;
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
const ordinaryFile = async (target) => {
|
|
36
|
+
try {
|
|
37
|
+
const entry = await lstat(target);
|
|
38
|
+
if (!entry.isFile() || entry.isSymbolicLink())
|
|
39
|
+
throw new Error(`Git metadata ${target} must be an ordinary file.`);
|
|
40
|
+
return line(await readFile(target, "utf8"));
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
if (missing(error))
|
|
44
|
+
return null;
|
|
45
|
+
throw error;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
const ensureDirectory = async (target) => {
|
|
49
|
+
if (await directory(target) !== null)
|
|
50
|
+
return;
|
|
51
|
+
try {
|
|
52
|
+
await mkdir(target);
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
if (!(error instanceof Error && "code" in error && error.code === "EEXIST"))
|
|
56
|
+
throw error;
|
|
57
|
+
}
|
|
58
|
+
if (await directory(target) === null)
|
|
59
|
+
throw new Error(`Managed directory ${target} disappeared.`);
|
|
60
|
+
};
|
|
61
|
+
const coordinates = (task) => ({ serverOrigin: normalizeServerUrl(task.serverOrigin), projectId: uuid(task.projectId, "Project ID"), taskId: uuid(task.taskId, "Task ID"), claimId: uuid(task.claimId, "Claim ID"), worktreeId: uuid(task.worktreeId, "Worktree ID") });
|
|
62
|
+
const markerOwner = (marker) => {
|
|
63
|
+
if (!marker.startsWith(prefix))
|
|
64
|
+
throw new Error("The task worktree has a different ownership marker.");
|
|
65
|
+
const value = JSON.parse(marker.slice(prefix.length));
|
|
66
|
+
if (typeof value !== "object" || value === null || Array.isArray(value))
|
|
67
|
+
throw new Error("The task worktree ownership marker is invalid.");
|
|
68
|
+
const fields = ["serverOrigin", "projectId", "taskId", "claimId", "worktreeId", "leaf", "root", "common"];
|
|
69
|
+
if (Object.keys(value).length !== fields.length || fields.some((field) => !Object.hasOwn(value, field) || typeof value[field] !== "string"))
|
|
70
|
+
throw new Error("The task worktree ownership marker is invalid.");
|
|
71
|
+
const owner = value;
|
|
72
|
+
for (const field of ["leaf", "root", "common"])
|
|
73
|
+
if (!/^\d+:\d+$/.test(owner[field]))
|
|
74
|
+
throw new Error("The task worktree ownership fingerprint is invalid.");
|
|
75
|
+
return owner;
|
|
76
|
+
};
|
|
77
|
+
const sameCoordinates = (owner, task) => Object.entries(coordinates(task)).every(([key, value]) => owner[key] === value);
|
|
78
|
+
export const createWorkerGitManager = (options) => {
|
|
79
|
+
const temporaryDirectory = absolute(options.temporaryDirectory, "Git temporary directory");
|
|
80
|
+
const runGit = options.runGit === undefined ? runRepositoryGit : options.runGit;
|
|
81
|
+
const removeDirectory = options.removeDirectory === undefined ? rm : options.removeDirectory;
|
|
82
|
+
let hooks = null;
|
|
83
|
+
const hookDirectory = async () => {
|
|
84
|
+
if (hooks === null)
|
|
85
|
+
hooks = (async () => {
|
|
86
|
+
await mkdir(temporaryDirectory, { recursive: true });
|
|
87
|
+
if (await directory(temporaryDirectory) === null)
|
|
88
|
+
throw new Error("The Git temporary directory is missing.");
|
|
89
|
+
return mkdtemp(path.join(temporaryDirectory, "git-hooks-"));
|
|
90
|
+
})();
|
|
91
|
+
return hooks;
|
|
92
|
+
};
|
|
93
|
+
const git = async (cwd, args, operation, timeoutMs) => {
|
|
94
|
+
operation.check();
|
|
95
|
+
const environment = {};
|
|
96
|
+
for (const name of Object.keys(process.env)) {
|
|
97
|
+
const key = name.toUpperCase();
|
|
98
|
+
if (["GIT_CONFIG", "GIT_CONFIG_PARAMETERS", "GIT_CONFIG_COUNT", "GIT_CURL_VERBOSE"].includes(key) || /^GIT_CONFIG_(?:KEY|VALUE)_\d+$/.test(key) || key.startsWith("GIT_TRACE"))
|
|
99
|
+
environment[name] = undefined;
|
|
100
|
+
}
|
|
101
|
+
const result = await runGit(cwd, ["-c", `core.hooksPath=${await hookDirectory()}`, "-c", "submodule.recurse=false", ...args], operation, { environment, ...(timeoutMs === undefined ? {} : { timeoutMs }) });
|
|
102
|
+
return line(result.stdout);
|
|
103
|
+
};
|
|
104
|
+
const validateOrigin = async (root, repoUrl, operation) => {
|
|
105
|
+
const remote = await git(root, ["config", "--get-all", "remote.origin.url"], operation);
|
|
106
|
+
if (remote.includes("\n") || repositoryIdentity(remote) !== repositoryIdentity(repoUrl))
|
|
107
|
+
throw new Error("The repository origin does not match its configured address.");
|
|
108
|
+
};
|
|
109
|
+
const inspectRepository = async (project, operation) => {
|
|
110
|
+
const root = absolute(project.localPath, "Repository path");
|
|
111
|
+
const rootIdentity = await directory(root);
|
|
112
|
+
if (rootIdentity === null)
|
|
113
|
+
throw new Error(`The original repository ${root} is missing.`);
|
|
114
|
+
if (await git(root, ["rev-parse", "--is-bare-repository"], operation) !== "false")
|
|
115
|
+
throw new Error("The worker repository must have a primary worktree.");
|
|
116
|
+
const top = absolute(await git(root, ["rev-parse", "--show-toplevel"], operation), "Git root");
|
|
117
|
+
if (await directory(top) !== rootIdentity)
|
|
118
|
+
throw new Error("The configured repository path must identify its worktree root.");
|
|
119
|
+
await validateOrigin(root, project.repoUrl, operation);
|
|
120
|
+
const commonDirectory = await realpath(absolute(await git(root, ["rev-parse", "--path-format=absolute", "--git-common-dir"], operation), "Git common directory"));
|
|
121
|
+
const commonIdentity = await directory(commonDirectory);
|
|
122
|
+
if (commonIdentity === null)
|
|
123
|
+
throw new Error("The Git common directory is missing.");
|
|
124
|
+
return { root, commonDirectory, rootIdentity, commonIdentity };
|
|
125
|
+
};
|
|
126
|
+
const projectFor = (task) => ({ serverOrigin: task.serverOrigin, projectId: task.projectId, repoUrl: task.repoUrl, localPath: task.repositoryPath });
|
|
127
|
+
const bindingFor = (task, repository) => ({ repositoryPath: task.repositoryPath, commonDirectory: repository.commonDirectory, worktreePath: path.join(repository.root, ".worktrees", "daynight", coordinates(task).taskId), branch: `daynight/${coordinates(task).taskId}` });
|
|
128
|
+
const validateBinding = (task, expected) => {
|
|
129
|
+
const original = task.resources.worktree;
|
|
130
|
+
if (original !== null && Object.entries(expected).some(([key, value]) => original[key] !== value))
|
|
131
|
+
throw new Error("The task's original worktree binding differs from its actual repository or fixed path.");
|
|
132
|
+
};
|
|
133
|
+
const registrations = async (repository, target) => {
|
|
134
|
+
const family = path.join(repository.commonDirectory, "worktrees");
|
|
135
|
+
if (await directory(family) === null)
|
|
136
|
+
return [];
|
|
137
|
+
const parent = await resolvePhysicalDirectory(path.dirname(target));
|
|
138
|
+
const expectedPointer = path.join(parent.ancestorPath, ...parent.missingComponents, path.basename(target), ".git");
|
|
139
|
+
const result = [];
|
|
140
|
+
for (const entry of await readdir(family, { withFileTypes: true })) {
|
|
141
|
+
if (!entry.isDirectory() || entry.isSymbolicLink())
|
|
142
|
+
continue;
|
|
143
|
+
const admin = path.join(family, entry.name);
|
|
144
|
+
const pointer = await ordinaryFile(path.join(admin, "gitdir"));
|
|
145
|
+
if (pointer === null || path.resolve(admin, pointer) !== expectedPointer)
|
|
146
|
+
continue;
|
|
147
|
+
const common = await ordinaryFile(path.join(admin, "commondir"));
|
|
148
|
+
if (common === null)
|
|
149
|
+
throw new Error("The task worktree registration is missing its common-directory pointer.");
|
|
150
|
+
result.push({ directory: admin, marker: await ordinaryFile(path.join(admin, "locked")), pointer: expectedPointer, common: path.resolve(admin, common) });
|
|
151
|
+
}
|
|
152
|
+
return result;
|
|
153
|
+
};
|
|
154
|
+
const inspectWorktree = async (task, repository, operation, terminal) => {
|
|
155
|
+
const binding = bindingFor(task, repository);
|
|
156
|
+
validateBinding(task, binding);
|
|
157
|
+
for (const parent of [path.join(repository.root, ".worktrees"), path.join(repository.root, ".worktrees", "daynight")]) {
|
|
158
|
+
await directory(parent);
|
|
159
|
+
}
|
|
160
|
+
const leaf = await directory(binding.worktreePath);
|
|
161
|
+
const matches = await registrations(repository, binding.worktreePath);
|
|
162
|
+
if (matches.length > 1)
|
|
163
|
+
throw new Error("The task worktree registration is ambiguous.");
|
|
164
|
+
const registration = matches[0] ?? null;
|
|
165
|
+
if (registration === null) {
|
|
166
|
+
if (leaf !== null)
|
|
167
|
+
throw new Error("An existing task worktree path has no matching ownership registration; it was retained.");
|
|
168
|
+
return { binding, leaf, registration };
|
|
169
|
+
}
|
|
170
|
+
if (registration.marker === null)
|
|
171
|
+
throw new Error("The task worktree has no ownership marker; it was retained.");
|
|
172
|
+
const owner = markerOwner(registration.marker);
|
|
173
|
+
if (!sameCoordinates(owner, task) || owner.root !== repository.rootIdentity || owner.common !== repository.commonIdentity || await directory(registration.common) !== repository.commonIdentity)
|
|
174
|
+
throw new Error("The task worktree ownership marker or repository identity does not match this claim.");
|
|
175
|
+
if (leaf !== null) {
|
|
176
|
+
const pointer = await ordinaryFile(path.join(binding.worktreePath, ".git"));
|
|
177
|
+
if (pointer === null)
|
|
178
|
+
throw new Error("The original worktree Git pointer is missing; the present directory cannot be attributed safely and was retained.");
|
|
179
|
+
if (owner.leaf !== leaf)
|
|
180
|
+
throw new Error("The original task worktree directory was replaced; it was retained.");
|
|
181
|
+
if (!pointer.startsWith("gitdir: ") || path.resolve(binding.worktreePath, pointer.slice(8)) !== registration.directory)
|
|
182
|
+
throw new Error("The original worktree Git pointer has changed.");
|
|
183
|
+
const common = await git(binding.worktreePath, ["rev-parse", "--path-format=absolute", "--git-common-dir"], operation);
|
|
184
|
+
if (await directory(common) !== repository.commonIdentity)
|
|
185
|
+
throw new Error("The task worktree belongs to another Git repository.");
|
|
186
|
+
if (!terminal)
|
|
187
|
+
await validateOrigin(binding.worktreePath, task.repoUrl, operation);
|
|
188
|
+
}
|
|
189
|
+
const branch = await git(repository.root, [`--git-dir=${registration.directory}`, "symbolic-ref", "--quiet", "HEAD"], operation);
|
|
190
|
+
if (branch !== `refs/heads/${binding.branch}`)
|
|
191
|
+
throw new Error("The task worktree no longer uses its original task branch.");
|
|
192
|
+
return { binding, leaf, registration };
|
|
193
|
+
};
|
|
194
|
+
return {
|
|
195
|
+
prepareRepository: async (project, operation) => {
|
|
196
|
+
operation.check();
|
|
197
|
+
repositoryIdentity(project.repoUrl);
|
|
198
|
+
const root = absolute(project.localPath, "Repository path");
|
|
199
|
+
if (await directory(root) === null) {
|
|
200
|
+
await mkdir(path.dirname(root), { recursive: true });
|
|
201
|
+
await mkdir(root);
|
|
202
|
+
await git(path.dirname(root), ["clone", "--origin=origin", `--template=${await hookDirectory()}`, "--", project.repoUrl, root], operation, 120_000);
|
|
203
|
+
}
|
|
204
|
+
return inspectRepository(project, operation);
|
|
205
|
+
},
|
|
206
|
+
prepareWorktree: async (task, operation) => {
|
|
207
|
+
if (task.status !== "active" || task.cleanup !== null || task.control !== null)
|
|
208
|
+
throw new Error("Worktree preparation requires an active execution without cleanup or control intent.");
|
|
209
|
+
const repository = await inspectRepository(projectFor(task), operation);
|
|
210
|
+
const parent = path.join(repository.root, ".worktrees");
|
|
211
|
+
await ensureDirectory(parent);
|
|
212
|
+
await ensureDirectory(path.join(parent, "daynight"));
|
|
213
|
+
const before = await inspectWorktree(task, repository, operation, false);
|
|
214
|
+
if (before.registration !== null) {
|
|
215
|
+
if (before.leaf === null)
|
|
216
|
+
throw new Error("The original task worktree is missing; it cannot be recreated as recovery.");
|
|
217
|
+
return before.binding;
|
|
218
|
+
}
|
|
219
|
+
if (task.resources.worktree !== null)
|
|
220
|
+
throw new Error("The original task worktree is missing; it cannot be recreated as recovery.");
|
|
221
|
+
const names = (await git(repository.root, ["for-each-ref", "--format=%(refname)", `refs/heads/${before.binding.branch}`], operation)).split("\n");
|
|
222
|
+
const reference = `refs/heads/${before.binding.branch}`;
|
|
223
|
+
if (names.some((name) => name.startsWith(`${reference}/`)))
|
|
224
|
+
throw new Error("An existing branch namespace conflicts with the task branch.");
|
|
225
|
+
const existing = names.includes(reference);
|
|
226
|
+
if (existing && await git(repository.root, ["for-each-ref", "--format=%(worktreepath)", reference], operation) !== "")
|
|
227
|
+
throw new Error("The retained task branch is already checked out in another worktree.");
|
|
228
|
+
await mkdir(before.binding.worktreePath);
|
|
229
|
+
const leaf = await directory(before.binding.worktreePath);
|
|
230
|
+
if (leaf === null)
|
|
231
|
+
throw new Error("The reserved task worktree directory disappeared.");
|
|
232
|
+
const marker = `${prefix}${JSON.stringify({ ...coordinates(task), leaf, root: repository.rootIdentity, common: repository.commonIdentity })}`;
|
|
233
|
+
const branchArgs = !existing ? ["-b", before.binding.branch, "--", before.binding.worktreePath, "HEAD"] : ["--", before.binding.worktreePath, before.binding.branch];
|
|
234
|
+
await git(repository.root, ["worktree", "add", "--lock", "--reason", marker, ...branchArgs], operation);
|
|
235
|
+
const after = await inspectWorktree(task, repository, operation, false);
|
|
236
|
+
if (after.leaf === null || after.registration === null)
|
|
237
|
+
throw new Error("Git did not create the expected owned task worktree.");
|
|
238
|
+
return after.binding;
|
|
239
|
+
},
|
|
240
|
+
verifyWorktree: async (task, operation) => {
|
|
241
|
+
if (task.resources.worktree === null)
|
|
242
|
+
throw new Error("Recovery requires the original persisted worktree binding.");
|
|
243
|
+
const repository = await inspectRepository(projectFor(task), operation);
|
|
244
|
+
const result = await inspectWorktree(task, repository, operation, false);
|
|
245
|
+
if (result.leaf === null || result.registration === null)
|
|
246
|
+
throw new Error("The original task worktree is missing; it cannot be recreated as recovery.");
|
|
247
|
+
return result.binding;
|
|
248
|
+
},
|
|
249
|
+
removeWorktree: async (task, proof, operation) => {
|
|
250
|
+
if (proof.terminal !== true || proof.agentStopped !== true || proof.workspaceClosed !== true)
|
|
251
|
+
throw new Error("Worktree removal requires terminal cleanup, confirmed agent stop and workspace closure.");
|
|
252
|
+
const repository = await inspectRepository(projectFor(task), operation);
|
|
253
|
+
let result = await inspectWorktree(task, repository, operation, true);
|
|
254
|
+
if (result.registration === null)
|
|
255
|
+
return;
|
|
256
|
+
// Device/inode values can be reused after deletion, so the Git pointer must survive recursive cleanup.
|
|
257
|
+
// Its final unlink and nonrecursive rmdir may leave an ambiguous empty leaf, which is retained on retry.
|
|
258
|
+
if (result.leaf !== null) {
|
|
259
|
+
for (const name of await readdir(result.binding.worktreePath)) {
|
|
260
|
+
if (name === ".git")
|
|
261
|
+
continue;
|
|
262
|
+
operation.check();
|
|
263
|
+
await removeDirectory(path.join(result.binding.worktreePath, name), { recursive: true });
|
|
264
|
+
}
|
|
265
|
+
operation.check();
|
|
266
|
+
await rm(path.join(result.binding.worktreePath, ".git"));
|
|
267
|
+
await rmdir(result.binding.worktreePath);
|
|
268
|
+
}
|
|
269
|
+
operation.check();
|
|
270
|
+
result = await inspectWorktree(task, repository, operation, true);
|
|
271
|
+
if (result.leaf !== null)
|
|
272
|
+
throw new Error("The original task worktree directory still exists after removal.");
|
|
273
|
+
if (result.registration !== null)
|
|
274
|
+
await git(repository.root, ["worktree", "remove", "--force", "--force", "--", result.binding.worktreePath], operation);
|
|
275
|
+
result = await inspectWorktree(task, repository, operation, true);
|
|
276
|
+
if (result.leaf !== null || result.registration !== null)
|
|
277
|
+
throw new Error("The original task worktree removal is incomplete.");
|
|
278
|
+
},
|
|
279
|
+
dispose: async () => { if (hooks !== null) {
|
|
280
|
+
await rm(await hooks, { recursive: true });
|
|
281
|
+
hooks = null;
|
|
282
|
+
} },
|
|
283
|
+
};
|
|
284
|
+
};
|
|
285
|
+
//# sourceMappingURL=worktrees.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worktrees.js","sourceRoot":"","sources":["../../../src/commands/worker/worktrees.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,6 @@ export type ConfigurationDocument = {
|
|
|
4
4
|
document: ReturnType<typeof parseDocument>;
|
|
5
5
|
mapping: Record<string, unknown>;
|
|
6
6
|
};
|
|
7
|
-
export declare const supportedConfigurationFields: readonly ["serverUrl", "serverToken", "repositoryRoot", "repositories", "pollIntervalMs", "maxConcurrentWorker", "agentTimeoutMs", "maxAttempts", "retryDelayMs", "copilotModel", "copilotReasoningEffort"];
|
|
7
|
+
export declare const supportedConfigurationFields: readonly ["workerId", "serverUrl", "serverToken", "repositoryRoot", "repositories", "pollIntervalMs", "maxConcurrentWorker", "agentTimeoutMs", "maxAttempts", "retryDelayMs", "copilotModel", "copilotReasoningEffort"];
|
|
8
8
|
export declare const parseConfigurationDocument: (source: string, paths: ConfigurationPaths) => ConfigurationDocument;
|
|
9
9
|
export declare const readConfiguration: (paths: ConfigurationPaths) => Promise<ConfigurationDocument>;
|
package/dist/config/document.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/config/document.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/config/document.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { closeSync, fsyncSync, openSync, readFileSync, renameSync, unlinkSync, writeFileSync } from "node:fs";
|
|
3
|
+
import Database from "better-sqlite3";
|
|
4
|
+
const isMissing = (error) => error instanceof Error && "code" in error && error.code === "ENOENT";
|
|
5
|
+
const withOwnershipGate = (databaseFile, operation) => {
|
|
6
|
+
const database = new Database(databaseFile, { timeout: 5_000 });
|
|
7
|
+
let result;
|
|
8
|
+
try {
|
|
9
|
+
result = database.transaction(operation).immediate();
|
|
10
|
+
}
|
|
11
|
+
catch (error) {
|
|
12
|
+
try {
|
|
13
|
+
database.close();
|
|
14
|
+
}
|
|
15
|
+
catch (cause) {
|
|
16
|
+
throw new AggregateError([error, cause], "Instance-lock operation and ownership-gate shutdown failed.");
|
|
17
|
+
}
|
|
18
|
+
throw error;
|
|
19
|
+
}
|
|
20
|
+
database.close();
|
|
21
|
+
return result;
|
|
22
|
+
};
|
|
23
|
+
const readOwner = (content) => {
|
|
24
|
+
const value = JSON.parse(content);
|
|
25
|
+
if (typeof value !== "object" || value === null || !("owner" in value) || typeof value.owner !== "string" || value.owner === "" ||
|
|
26
|
+
!("pid" in value) || typeof value.pid !== "number" || !Number.isInteger(value.pid) || value.pid < 1 || value.pid > 2_147_483_647 ||
|
|
27
|
+
!("startedAt" in value) || typeof value.startedAt !== "string" || !Number.isFinite(Date.parse(value.startedAt))) {
|
|
28
|
+
throw new Error("The instance lock does not contain a valid owner, positive process ID, and startup timestamp; it was retained.");
|
|
29
|
+
}
|
|
30
|
+
return { owner: value.owner, pid: value.pid, startedAt: value.startedAt };
|
|
31
|
+
};
|
|
32
|
+
const replaceOwner = (lockFile, content) => {
|
|
33
|
+
const temporary = `${lockFile}.${randomUUID()}.tmp`;
|
|
34
|
+
let descriptor;
|
|
35
|
+
try {
|
|
36
|
+
descriptor = openSync(temporary, "wx", 0o600);
|
|
37
|
+
writeFileSync(descriptor, `${content}\n`);
|
|
38
|
+
fsyncSync(descriptor);
|
|
39
|
+
closeSync(descriptor);
|
|
40
|
+
descriptor = undefined;
|
|
41
|
+
// Atomic replacement preserves the predecessor's evidence even if this CLI crashes while taking ownership.
|
|
42
|
+
renameSync(temporary, lockFile);
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
const failures = [error];
|
|
46
|
+
if (descriptor !== undefined)
|
|
47
|
+
try {
|
|
48
|
+
closeSync(descriptor);
|
|
49
|
+
}
|
|
50
|
+
catch (cause) {
|
|
51
|
+
failures.push(cause);
|
|
52
|
+
}
|
|
53
|
+
try {
|
|
54
|
+
unlinkSync(temporary);
|
|
55
|
+
}
|
|
56
|
+
catch (cause) {
|
|
57
|
+
if (!isMissing(cause))
|
|
58
|
+
failures.push(cause);
|
|
59
|
+
}
|
|
60
|
+
if (failures.length > 1)
|
|
61
|
+
throw new AggregateError(failures, "Instance-lock replacement and temporary-file cleanup failed.");
|
|
62
|
+
throw error;
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
export const acquireInstanceLock = async (lockFile, ownershipGateFile, owner = randomUUID()) => {
|
|
66
|
+
const content = JSON.stringify({ owner, pid: process.pid, startedAt: new Date().toISOString() });
|
|
67
|
+
let previousProcessesExcluded;
|
|
68
|
+
try {
|
|
69
|
+
previousProcessesExcluded = withOwnershipGate(ownershipGateFile, () => {
|
|
70
|
+
let previous;
|
|
71
|
+
try {
|
|
72
|
+
previous = readFileSync(lockFile, "utf8");
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
if (!isMissing(error))
|
|
76
|
+
throw error;
|
|
77
|
+
}
|
|
78
|
+
if (previous !== undefined) {
|
|
79
|
+
const record = readOwner(previous);
|
|
80
|
+
try {
|
|
81
|
+
process.kill(record.pid, 0);
|
|
82
|
+
}
|
|
83
|
+
catch (cause) {
|
|
84
|
+
if (!(cause instanceof Error && "code" in cause && cause.code === "ESRCH")) {
|
|
85
|
+
throw new Error(`Cannot determine whether CLI process ${record.pid} has stopped; the instance lock was retained.`, { cause });
|
|
86
|
+
}
|
|
87
|
+
replaceOwner(lockFile, content);
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
throw new Error(`CLI process ${record.pid} is still running; its instance lock was retained.`);
|
|
91
|
+
}
|
|
92
|
+
replaceOwner(lockFile, content);
|
|
93
|
+
return true;
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
catch (cause) {
|
|
97
|
+
throw new Error(`Cannot acquire instance lock ${lockFile}. If recovery requires operator confirmation, confirm that the previous CLI and all managed processes have stopped before manually removing the lock.`, { cause });
|
|
98
|
+
}
|
|
99
|
+
let released = false;
|
|
100
|
+
return {
|
|
101
|
+
owner,
|
|
102
|
+
previousProcessesExcluded,
|
|
103
|
+
release: async () => {
|
|
104
|
+
if (released)
|
|
105
|
+
return;
|
|
106
|
+
withOwnershipGate(ownershipGateFile, () => {
|
|
107
|
+
if (readFileSync(lockFile, "utf8").trim() !== content)
|
|
108
|
+
throw new Error(`Instance lock ${lockFile} no longer belongs to this CLI; it was retained.`);
|
|
109
|
+
unlinkSync(lockFile);
|
|
110
|
+
});
|
|
111
|
+
released = true;
|
|
112
|
+
},
|
|
113
|
+
};
|
|
114
|
+
};
|
|
115
|
+
//# sourceMappingURL=instance-lock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instance-lock.js","sourceRoot":"","sources":["../../src/platform/instance-lock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC9G,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAGtC,MAAM,SAAS,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;AAEpH,MAAM,iBAAiB,GAAG,CAAI,YAAoB,EAAE,SAAkB,EAAK,EAAE;IAC3E,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAChE,IAAI,MAAS,CAAC;IACd,IAAI,CAAC;QAAC,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,CAAC;IAAC,CAAC;IAC7D,OAAO,KAAK,EAAE,CAAC;QACb,IAAI,CAAC;YAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAAC,CAAC;QACzB,OAAO,KAAK,EAAE,CAAC;YAAC,MAAM,IAAI,cAAc,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,6DAA6D,CAAC,CAAC;QAAC,CAAC;QAC1H,MAAM,KAAK,CAAC;IACd,CAAC;IACD,QAAQ,CAAC,KAAK,EAAE,CAAC;IACjB,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,OAAe,EAAiB,EAAE;IACnD,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE;QAC7H,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,aAAa;QAChI,CAAC,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QAClH,MAAM,IAAI,KAAK,CAAC,gHAAgH,CAAC,CAAC;IACpI,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;AAC5E,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,QAAgB,EAAE,OAAe,EAAQ,EAAE;IAC/D,MAAM,SAAS,GAAG,GAAG,QAAQ,IAAI,UAAU,EAAE,MAAM,CAAC;IACpD,IAAI,UAA8B,CAAC;IACnC,IAAI,CAAC;QACH,UAAU,GAAG,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9C,aAAa,CAAC,UAAU,EAAE,GAAG,OAAO,IAAI,CAAC,CAAC;QAC1C,SAAS,CAAC,UAAU,CAAC,CAAC;QACtB,SAAS,CAAC,UAAU,CAAC,CAAC;QACtB,UAAU,GAAG,SAAS,CAAC;QACvB,2GAA2G;QAC3G,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC;QACzB,IAAI,UAAU,KAAK,SAAS;YAAE,IAAI,CAAC;gBAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YAAC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAAC,CAAC;QACpG,IAAI,CAAC;YAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAAC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;gBAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;QAC7F,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,cAAc,CAAC,QAAQ,EAAE,8DAA8D,CAAC,CAAC;QAC5H,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAE,QAAgB,EAAE,iBAAyB,EAAE,KAAK,GAAW,UAAU,EAAE,EAAE,EAAE;IACrH,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACjG,IAAI,yBAAkC,CAAC;IACvC,IAAI,CAAC;QACH,yBAAyB,GAAG,iBAAiB,CAAC,iBAAiB,EAAE,GAAG,EAAE;YACpE,IAAI,QAA4B,CAAC;YACjC,IAAI,CAAC;gBAAC,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAAC,CAAC;YAClD,OAAO,KAAK,EAAE,CAAC;gBAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;oBAAE,MAAM,KAAK,CAAC;YAAC,CAAC;YACrD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;gBACnC,IAAI,CAAC;oBAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC;gBACpC,OAAO,KAAK,EAAE,CAAC;oBACb,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,CAAC;wBAC3E,MAAM,IAAI,KAAK,CAAC,wCAAwC,MAAM,CAAC,GAAG,+CAA+C,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;oBAChI,CAAC;oBACD,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;oBAChC,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,eAAe,MAAM,CAAC,GAAG,oDAAoD,CAAC,CAAC;YACjG,CAAC;YACD,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,gCAAgC,QAAQ,uJAAuJ,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9N,CAAC;IACD,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,OAAO;QACL,KAAK;QACL,yBAAyB;QACzB,OAAO,EAAE,KAAK,IAAmB,EAAE;YACjC,IAAI,QAAQ;gBAAE,OAAO;YACrB,iBAAiB,CAAC,iBAAiB,EAAE,GAAG,EAAE;gBACxC,IAAI,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,OAAO;oBAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,QAAQ,kDAAkD,CAAC,CAAC;gBACpJ,UAAU,CAAC,QAAQ,CAAC,CAAC;YACvB,CAAC,CAAC,CAAC;YACH,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
|
package/dist/repository/git.d.ts
CHANGED
|
@@ -14,6 +14,8 @@ export type RepositoryGitOptions = {
|
|
|
14
14
|
readonly allowExitOne?: boolean;
|
|
15
15
|
/** Inherited groups require an outer supervisor to terminate descendants after this operation exits. */
|
|
16
16
|
readonly processGroup?: "own" | "inherit";
|
|
17
|
+
readonly environment?: Readonly<Record<string, string | undefined>>;
|
|
18
|
+
readonly timeoutMs?: number;
|
|
17
19
|
};
|
|
18
20
|
export declare const runRepositoryGit: (cwd: string, args: readonly string[], operation: Operation, options?: RepositoryGitOptions) => Promise<RepositoryGitResult>;
|
|
19
21
|
export declare const discoverWorktreeRoot: (cwd: string, operation: Operation, options?: Pick<RepositoryGitOptions, "processGroup">) => Promise<string>;
|
package/dist/repository/git.js
CHANGED
|
@@ -11,10 +11,10 @@ const repositorySelectors = new Set([
|
|
|
11
11
|
"GIT_DISCOVERY_ACROSS_FILESYSTEM", "GIT_SHALLOW_FILE", "GIT_REPLACE_REF_BASE",
|
|
12
12
|
"GIT_IMPLICIT_WORK_TREE", "GIT_QUARANTINE_PATH",
|
|
13
13
|
]);
|
|
14
|
-
const gitEnvironment = () => ({
|
|
15
|
-
...Object.fromEntries(Object.entries(process.env).filter(([name]) => {
|
|
14
|
+
const gitEnvironment = (overrides = {}) => ({
|
|
15
|
+
...Object.fromEntries(Object.entries({ ...process.env, ...overrides }).filter(([name, value]) => {
|
|
16
16
|
const key = name.toUpperCase();
|
|
17
|
-
return !repositorySelectors.has(key) && !key.startsWith("GIT_TRACE");
|
|
17
|
+
return value !== undefined && !repositorySelectors.has(key) && !key.startsWith("GIT_TRACE");
|
|
18
18
|
})),
|
|
19
19
|
GIT_OPTIONAL_LOCKS: "0",
|
|
20
20
|
GIT_TERMINAL_PROMPT: "0",
|
|
@@ -38,11 +38,14 @@ export class RepositoryGitError extends Error {
|
|
|
38
38
|
}
|
|
39
39
|
export const runRepositoryGit = async (cwd, args, operation, options = {}) => {
|
|
40
40
|
operation.check();
|
|
41
|
-
const
|
|
41
|
+
const commandMs = options.timeoutMs === undefined ? maxGitMs : options.timeoutMs;
|
|
42
|
+
if (!Number.isSafeInteger(commandMs) || commandMs <= 0 || commandMs > 2_147_483_647)
|
|
43
|
+
throw new RangeError("Git command timeout must be a positive supported integer.");
|
|
44
|
+
const timeoutMs = Math.max(1, Math.ceil(Math.min(commandMs, operation.remainingMs())));
|
|
42
45
|
return new Promise((resolve, reject) => {
|
|
43
46
|
// Index reads do not need an external fsmonitor; its inherited pipes can outlive Git.
|
|
44
47
|
const child = spawn("git", ["--no-pager", "-c", "core.fsmonitor=false", ...args], {
|
|
45
|
-
cwd, env: gitEnvironment(), windowsHide: true, detached: process.platform !== "win32" && options.processGroup !== "inherit", stdio: ["ignore", "pipe", "pipe"],
|
|
48
|
+
cwd, env: gitEnvironment(options.environment), windowsHide: true, detached: process.platform !== "win32" && options.processGroup !== "inherit", stdio: ["ignore", "pipe", "pipe"],
|
|
46
49
|
});
|
|
47
50
|
const stdout = [];
|
|
48
51
|
const stderr = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/repository/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,MAAM,cAAc,GAAG,SAAS,CAAC;AACjC,MAAM,QAAQ,GAAG,MAAM,CAAC;AACxB,MAAM,SAAS,GAAG,KAAK,CAAC;AACxB,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,sBAAsB;IACtF,kCAAkC,EAAE,gBAAgB,EAAE,eAAe,EAAE,YAAY;IACnF,kBAAkB,EAAE,2BAA2B,EAAE,yBAAyB;IAC1E,iCAAiC,EAAE,kBAAkB,EAAE,sBAAsB;IAC7E,wBAAwB,EAAE,qBAAqB;CAChD,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/repository/git.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codetreker/daynight",
|
|
3
|
-
"version": "0.21.
|
|
3
|
+
"version": "0.21.8",
|
|
4
4
|
"description": "A client command toolkit for development workflows",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -47,5 +47,5 @@
|
|
|
47
47
|
"vite": "8.3.4",
|
|
48
48
|
"vitest": "5.0.5"
|
|
49
49
|
},
|
|
50
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "8f24c1264e5fb8f25dd0549c701d191e290eb8a2"
|
|
51
51
|
}
|