@cleocode/worktree 2026.10.25-rc.ci.696 → 2026.10.26-rc.ci.697
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.d.ts +38 -2
- package/dist/git.d.ts.map +1 -1
- package/dist/git.js +46 -0
- package/dist/git.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/worktree-audit.d.ts +13 -0
- package/dist/worktree-audit.d.ts.map +1 -1
- package/dist/worktree-audit.js +33 -4
- package/dist/worktree-audit.js.map +1 -1
- package/dist/worktree-locate.d.ts +18 -0
- package/dist/worktree-locate.d.ts.map +1 -1
- package/dist/worktree-locate.js +25 -3
- package/dist/worktree-locate.js.map +1 -1
- package/package.json +19 -4
package/dist/git.d.ts
CHANGED
|
@@ -100,8 +100,11 @@ export interface AddTransientWorktreeOptions {
|
|
|
100
100
|
projectRoot: string;
|
|
101
101
|
/** Absolute path where the worktree directory will be created. */
|
|
102
102
|
worktreePath: string;
|
|
103
|
-
/**
|
|
104
|
-
|
|
103
|
+
/**
|
|
104
|
+
* Branch name (created or reused if already present). Omitted, the
|
|
105
|
+
* worktree is detached at `baseRef` and no branch is touched (T14045).
|
|
106
|
+
*/
|
|
107
|
+
branch?: string;
|
|
105
108
|
/** Ref to branch from (e.g. `origin/main`, `origin/<branch>`). */
|
|
106
109
|
baseRef: string;
|
|
107
110
|
/**
|
|
@@ -147,4 +150,37 @@ export declare function addTransientWorktree(options: AddTransientWorktreeOption
|
|
|
147
150
|
* @task T9984
|
|
148
151
|
*/
|
|
149
152
|
export declare function removeTransientWorktree(projectRoot: string, worktreePath: string): Promise<void>;
|
|
153
|
+
/**
|
|
154
|
+
* Last-resort removal of a worktree directory the NAPI destroy could not
|
|
155
|
+
* remove: unlock it, delete the directory, then prune git's stale admin
|
|
156
|
+
* entry. Core's prune path uses this instead of shelling out to
|
|
157
|
+
* `git worktree` itself (T10858).
|
|
158
|
+
*
|
|
159
|
+
* @param gitRoot - Repository root the worktree belongs to.
|
|
160
|
+
* @param worktreePath - Absolute path to the worktree directory.
|
|
161
|
+
* @throws Error when the directory cannot be deleted.
|
|
162
|
+
*
|
|
163
|
+
* @task T10858
|
|
164
|
+
*/
|
|
165
|
+
export declare function forceRemoveWorktreeDir(gitRoot: string, worktreePath: string): void;
|
|
166
|
+
/**
|
|
167
|
+
* Release git's lock on a worktree (`git worktree unlock`). Best-effort.
|
|
168
|
+
*
|
|
169
|
+
* @param gitRoot - Repository root the worktree belongs to.
|
|
170
|
+
* @param worktreePath - Absolute path to the worktree.
|
|
171
|
+
* @returns True when git unlocked it; false when it was not locked or git failed.
|
|
172
|
+
*
|
|
173
|
+
* @task T10867
|
|
174
|
+
*/
|
|
175
|
+
export declare function unlockWorktree(gitRoot: string, worktreePath: string): boolean;
|
|
176
|
+
/**
|
|
177
|
+
* Drop git's administrative entries for worktrees whose directories are gone
|
|
178
|
+
* (`git worktree prune`). Best-effort; never touches a worktree on disk.
|
|
179
|
+
*
|
|
180
|
+
* @param gitRoot - Repository root.
|
|
181
|
+
* @returns True when git exited 0.
|
|
182
|
+
*
|
|
183
|
+
* @task T10867
|
|
184
|
+
*/
|
|
185
|
+
export declare function pruneWorktreeRegistry(gitRoot: string): boolean;
|
|
150
186
|
//# 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":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAQH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,sBAAsB,SAAU,CAAC;AAE9C;;;;;;;;;;GAUG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAO/E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAWlF;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAO/F;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,SAAS,GAAE,SAAS,MAAM,EAAO,GAChC,MAAM,CAYR;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAMtD;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,SAAS,GAAG,MAAM,CAMzE;AAED;;;;GAIG;AACH,MAAM,WAAW,2BAA2B;IAC1C,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,YAAY,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ9F;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,uBAAuB,CAC3C,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAIlF;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAE7E;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE9D"}
|
package/dist/git.js
CHANGED
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
* @task T9545
|
|
13
13
|
*/
|
|
14
14
|
import { execFile, execFileSync } from 'node:child_process';
|
|
15
|
+
import { rmSync } from 'node:fs';
|
|
15
16
|
import { promisify } from 'node:util';
|
|
16
17
|
const execFileAsync = promisify(execFile);
|
|
17
18
|
/**
|
|
@@ -171,6 +172,10 @@ export function resolveHeadRef(gitRoot, fallback = 'main') {
|
|
|
171
172
|
*/
|
|
172
173
|
export async function addTransientWorktree(options) {
|
|
173
174
|
const { projectRoot, worktreePath, branch, baseRef, resetBranch = true } = options;
|
|
175
|
+
if (branch === undefined) {
|
|
176
|
+
await gitAsync(['worktree', 'add', '--detach', worktreePath, baseRef], projectRoot);
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
174
179
|
const flag = resetBranch ? '-B' : '-b';
|
|
175
180
|
await gitAsync(['worktree', 'add', flag, branch, worktreePath, baseRef], projectRoot);
|
|
176
181
|
}
|
|
@@ -188,4 +193,45 @@ export async function addTransientWorktree(options) {
|
|
|
188
193
|
export async function removeTransientWorktree(projectRoot, worktreePath) {
|
|
189
194
|
await gitAsync(['worktree', 'remove', '--force', worktreePath], projectRoot);
|
|
190
195
|
}
|
|
196
|
+
/**
|
|
197
|
+
* Last-resort removal of a worktree directory the NAPI destroy could not
|
|
198
|
+
* remove: unlock it, delete the directory, then prune git's stale admin
|
|
199
|
+
* entry. Core's prune path uses this instead of shelling out to
|
|
200
|
+
* `git worktree` itself (T10858).
|
|
201
|
+
*
|
|
202
|
+
* @param gitRoot - Repository root the worktree belongs to.
|
|
203
|
+
* @param worktreePath - Absolute path to the worktree directory.
|
|
204
|
+
* @throws Error when the directory cannot be deleted.
|
|
205
|
+
*
|
|
206
|
+
* @task T10858
|
|
207
|
+
*/
|
|
208
|
+
export function forceRemoveWorktreeDir(gitRoot, worktreePath) {
|
|
209
|
+
unlockWorktree(gitRoot, worktreePath);
|
|
210
|
+
rmSync(worktreePath, { recursive: true, force: true });
|
|
211
|
+
pruneWorktreeRegistry(gitRoot);
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Release git's lock on a worktree (`git worktree unlock`). Best-effort.
|
|
215
|
+
*
|
|
216
|
+
* @param gitRoot - Repository root the worktree belongs to.
|
|
217
|
+
* @param worktreePath - Absolute path to the worktree.
|
|
218
|
+
* @returns True when git unlocked it; false when it was not locked or git failed.
|
|
219
|
+
*
|
|
220
|
+
* @task T10867
|
|
221
|
+
*/
|
|
222
|
+
export function unlockWorktree(gitRoot, worktreePath) {
|
|
223
|
+
return gitSilent(['worktree', 'unlock', worktreePath], gitRoot);
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Drop git's administrative entries for worktrees whose directories are gone
|
|
227
|
+
* (`git worktree prune`). Best-effort; never touches a worktree on disk.
|
|
228
|
+
*
|
|
229
|
+
* @param gitRoot - Repository root.
|
|
230
|
+
* @returns True when git exited 0.
|
|
231
|
+
*
|
|
232
|
+
* @task T10867
|
|
233
|
+
*/
|
|
234
|
+
export function pruneWorktreeRegistry(gitRoot) {
|
|
235
|
+
return gitSilent(['worktree', 'prune'], gitRoot);
|
|
236
|
+
}
|
|
191
237
|
//# sourceMappingURL=git.js.map
|
package/dist/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -23,12 +23,12 @@
|
|
|
23
23
|
export type { CreateWorktreeOptions, CreateWorktreeResult, DestroyWorktreeOptions, DestroyWorktreeResult, ListWorktreesOptions, PruneWorktreesOptions, PruneWorktreesResult, WorktreeDisposalBlockers, WorktreeHook, WorktreeHookResult, WorktreeIncludePattern, WorktreeKeepMarker, WorktreeListEntry, } from '@cleocode/contracts';
|
|
24
24
|
export type { CopyPathsOptions } from './copy-on-write.js';
|
|
25
25
|
export { copyPathsWithReflock } from './copy-on-write.js';
|
|
26
|
-
export { type AddTransientWorktreeOptions, addTransientWorktree, countUnmergedCommits, DEFAULT_GIT_TIMEOUT_MS, getGitRoot, gitSilent, gitSync, removeTransientWorktree, } from './git.js';
|
|
26
|
+
export { type AddTransientWorktreeOptions, addTransientWorktree, countUnmergedCommits, DEFAULT_GIT_TIMEOUT_MS, forceRemoveWorktreeDir, getGitRoot, gitSilent, gitSync, pruneWorktreeRegistry, removeTransientWorktree, unlockWorktree, } from './git.js';
|
|
27
27
|
export { destroyWorktree as napiDestroyWorktree, integrateWorktree, provisionWorktree, provisionWorktree as napiProvisionWorktree, pruneWorktrees as napiPruneWorktrees, removeDir as napiRemoveDir, } from './napi-binding.js';
|
|
28
28
|
export type { PartialWorktreeSignals, RecoveryResult } from './recovery.js';
|
|
29
29
|
export { detectPartialWorktree, recoverPartialWorktree } from './recovery.js';
|
|
30
30
|
export type { WorktreeAuditPayload } from './worktree-audit.js';
|
|
31
|
-
export { addWorktreeToSentinelIndex, appendWorktreeAuditLog, isCleoProvisionedWorktree, removeWorktreeFromSentinelIndex, resolveWorktreeIndexPath, WORKTREE_INDEX_RELATIVE_PATH, WORKTREE_LIFECYCLE_AUDIT_FILE, } from './worktree-audit.js';
|
|
31
|
+
export { addWorktreeToSentinelIndex, appendWorktreeAuditLog, isCleoProvisionedWorktree, readWorktreeProvisioning, removeWorktreeFromSentinelIndex, resolveWorktreeIndexPath, WORKTREE_INDEX_RELATIVE_PATH, WORKTREE_LIFECYCLE_AUDIT_FILE, } from './worktree-audit.js';
|
|
32
32
|
export { createWorktree } from './worktree-create.js';
|
|
33
33
|
export { describeDisposalBlockers, findDisposalBlockers, findUnrecoverableEvidence, findWorktreeDependents, guardWorktreeDisposal, keepMarkerPath, readKeepMarker, } from './worktree-dependents.js';
|
|
34
34
|
export { destroyWorktree } from './worktree-destroy.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,YAAY,EACV,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,YAAY,EACZ,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EACL,KAAK,2BAA2B,EAChC,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,UAAU,EACV,SAAS,EACT,OAAO,EACP,uBAAuB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,YAAY,EACV,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,YAAY,EACZ,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EACL,KAAK,2BAA2B,EAChC,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,UAAU,EACV,SAAS,EACT,OAAO,EACP,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,GACf,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,eAAe,IAAI,mBAAmB,EACtC,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,IAAI,qBAAqB,EAC1C,cAAc,IAAI,kBAAkB,EACpC,SAAS,IAAI,aAAa,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC9E,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,+BAA+B,EAC/B,wBAAwB,EACxB,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,yBAAyB,EACzB,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,cAAc,GACf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAC1F,OAAO,EACL,aAAa,EACb,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,OAAO,EACL,KAAK,8BAA8B,EACnC,uBAAuB,EACvB,wBAAwB,EACxB,4BAA4B,EAC5B,yBAAyB,EACzB,gBAAgB,EAChB,qBAAqB,EACrB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,kCAAkC,EAClC,wBAAwB,EACxB,qBAAqB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,GACzB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAC7F,YAAY,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,EAC7B,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -21,12 +21,12 @@
|
|
|
21
21
|
* @adr ADR-055
|
|
22
22
|
*/
|
|
23
23
|
export { copyPathsWithReflock } from './copy-on-write.js';
|
|
24
|
-
export { addTransientWorktree, countUnmergedCommits, DEFAULT_GIT_TIMEOUT_MS, getGitRoot, gitSilent, gitSync, removeTransientWorktree, } from './git.js';
|
|
24
|
+
export { addTransientWorktree, countUnmergedCommits, DEFAULT_GIT_TIMEOUT_MS, forceRemoveWorktreeDir, getGitRoot, gitSilent, gitSync, pruneWorktreeRegistry, removeTransientWorktree, unlockWorktree, } from './git.js';
|
|
25
25
|
// NAPI bindings (sync, direct to Rust) — for callers that need raw
|
|
26
26
|
// worktree lifecycle without the hooks/audit/dirty-detection wrapper.
|
|
27
27
|
export { destroyWorktree as napiDestroyWorktree, integrateWorktree, provisionWorktree, provisionWorktree as napiProvisionWorktree, pruneWorktrees as napiPruneWorktrees, removeDir as napiRemoveDir, } from './napi-binding.js';
|
|
28
28
|
export { detectPartialWorktree, recoverPartialWorktree } from './recovery.js';
|
|
29
|
-
export { addWorktreeToSentinelIndex, appendWorktreeAuditLog, isCleoProvisionedWorktree, removeWorktreeFromSentinelIndex, resolveWorktreeIndexPath, WORKTREE_INDEX_RELATIVE_PATH, WORKTREE_LIFECYCLE_AUDIT_FILE, } from './worktree-audit.js';
|
|
29
|
+
export { addWorktreeToSentinelIndex, appendWorktreeAuditLog, isCleoProvisionedWorktree, readWorktreeProvisioning, removeWorktreeFromSentinelIndex, resolveWorktreeIndexPath, WORKTREE_INDEX_RELATIVE_PATH, WORKTREE_LIFECYCLE_AUDIT_FILE, } from './worktree-audit.js';
|
|
30
30
|
export { createWorktree } from './worktree-create.js';
|
|
31
31
|
export { describeDisposalBlockers, findDisposalBlockers, findUnrecoverableEvidence, findWorktreeDependents, guardWorktreeDisposal, keepMarkerPath, readKeepMarker, } from './worktree-dependents.js';
|
|
32
32
|
export { destroyWorktree } from './worktree-destroy.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAmBH,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAEL,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,UAAU,EACV,SAAS,EACT,OAAO,EACP,uBAAuB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAmBH,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAEL,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,UAAU,EACV,SAAS,EACT,OAAO,EACP,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,GACf,MAAM,UAAU,CAAC;AAClB,mEAAmE;AACnE,sEAAsE;AACtE,OAAO,EACL,eAAe,IAAI,mBAAmB,EACtC,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,IAAI,qBAAqB,EAC1C,cAAc,IAAI,kBAAkB,EACpC,SAAS,IAAI,aAAa,GAC3B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAE9E,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,+BAA+B,EAC/B,wBAAwB,EACxB,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,yBAAyB,EACzB,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,cAAc,GACf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAC1F,OAAO,EACL,aAAa,EACb,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAEL,uBAAuB,EACvB,wBAAwB,EACxB,4BAA4B,EAC5B,yBAAyB,EACzB,gBAAgB,EAChB,qBAAqB,EAGrB,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,kCAAkC,EAClC,wBAAwB,EACxB,qBAAqB,GAGtB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAE7F,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,EAC7B,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/worktree-audit.d.ts
CHANGED
|
@@ -102,6 +102,19 @@ export declare function appendWorktreeAuditLog(projectRoot: string, payload: Wor
|
|
|
102
102
|
* @task T14027
|
|
103
103
|
*/
|
|
104
104
|
export declare function readRecordedWorktreeBase(projectRoot: string, taskId: string, xdgPath: string): string | null;
|
|
105
|
+
/**
|
|
106
|
+
* How CLEO provisioned the task's worktree at `xdgPath`: the action of the
|
|
107
|
+
* newest successful `create` or `adopt` lifecycle row, or `null` when there is
|
|
108
|
+
* none (T10871).
|
|
109
|
+
*
|
|
110
|
+
* @param projectRoot - Absolute path to the CLEO project root.
|
|
111
|
+
* @param taskId - Task whose worktree is looked up.
|
|
112
|
+
* @param xdgPath - The task's worktree path.
|
|
113
|
+
* @returns `'create'`, `'adopt'` or `null`.
|
|
114
|
+
*
|
|
115
|
+
* @task T10871
|
|
116
|
+
*/
|
|
117
|
+
export declare function readWorktreeProvisioning(projectRoot: string, taskId: string, xdgPath: string): 'create' | 'adopt' | null;
|
|
105
118
|
/**
|
|
106
119
|
* Whether CLEO provisioned the task's worktree at `xdgPath`: the lifecycle
|
|
107
120
|
* audit log records a `create` (new branch), or an `adopt` (an existing
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worktree-audit.d.ts","sourceRoot":"","sources":["../src/worktree-audit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"worktree-audit.d.ts","sourceRoot":"","sources":["../src/worktree-audit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAGnE,kFAAkF;AAClF,eAAO,MAAM,6BAA6B,yCAAyC,CAAC;AAEpF;;;;;;;;;GASG;AACH,eAAO,MAAM,4BAA4B,yBAAyB,CAAC;AAEnE;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC,iCAAiC;IACjC,MAAM,EAAE,uBAAuB,CAAC;IAChC,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,oBAAoB,EAC7B,oBAAoB,CAAC,EAAE,MAAM,GAC5B,IAAI,CAiCN;AA8CD;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,MAAM,GAAG,IAAI,CAEf;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,QAAQ,GAAG,OAAO,GAAG,IAAI,CAG3B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAET;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,iBAAiB,CAAC,EAAE,MAAM,GACzB,IAAI,CAqBN;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAC1D,iBAAiB,CAAC,EAAE,MAAM,GACzB,IAAI,CAmBN"}
|
package/dist/worktree-audit.js
CHANGED
|
@@ -16,7 +16,8 @@
|
|
|
16
16
|
* @epic T9800
|
|
17
17
|
*/
|
|
18
18
|
import { appendFileSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
19
|
-
import { dirname, join
|
|
19
|
+
import { dirname, join } from 'node:path';
|
|
20
|
+
import { canonicalizePath } from '@cleocode/paths';
|
|
20
21
|
/** Relative path within the project root for the worktree lifecycle audit log. */
|
|
21
22
|
export const WORKTREE_LIFECYCLE_AUDIT_FILE = '.cleo/audit/worktree-lifecycle.jsonl';
|
|
22
23
|
/**
|
|
@@ -65,13 +66,22 @@ export function appendWorktreeAuditLog(projectRoot, payload, auditLogPathOverrid
|
|
|
65
66
|
? auditLogPathOverride
|
|
66
67
|
: join(projectRoot, WORKTREE_LIFECYCLE_AUDIT_FILE);
|
|
67
68
|
mkdirSync(dirname(filePath), { recursive: true });
|
|
69
|
+
const ts = payload.timestamp ?? new Date().toISOString();
|
|
70
|
+
const agentId = payload.agentId ?? process.env['CLEO_AGENT_ID'] ?? 'cleo';
|
|
71
|
+
// T10861: `timestamp`, `actor` and `target` are the contract's
|
|
72
|
+
// WorktreeLifecycleAuditEntry fields, which core's writer emits; they sit
|
|
73
|
+
// beside this writer's legacy `ts`, `agentId` and `xdgPath`, so every row
|
|
74
|
+
// in the shared log satisfies the contract and existing readers still work.
|
|
68
75
|
const record = {
|
|
69
|
-
ts
|
|
76
|
+
ts,
|
|
77
|
+
timestamp: ts,
|
|
78
|
+
actor: agentId,
|
|
70
79
|
action: payload.action,
|
|
80
|
+
target: payload.xdgPath,
|
|
71
81
|
xdgPath: payload.xdgPath,
|
|
72
82
|
...(payload.taskId !== undefined ? { taskId: payload.taskId } : {}),
|
|
73
83
|
...(payload.branch !== undefined ? { branch: payload.branch } : {}),
|
|
74
|
-
agentId
|
|
84
|
+
agentId,
|
|
75
85
|
...(payload.reason !== undefined ? { reason: payload.reason } : {}),
|
|
76
86
|
...(payload.baseRef !== undefined ? { baseRef: payload.baseRef } : {}),
|
|
77
87
|
...(payload.baseSha !== undefined ? { baseSha: payload.baseSha } : {}),
|
|
@@ -96,6 +106,7 @@ function findWorktreeAuditRow(projectRoot, taskId, xdgPath, actions) {
|
|
|
96
106
|
catch {
|
|
97
107
|
return null;
|
|
98
108
|
}
|
|
109
|
+
const wanted = canonicalizePath(xdgPath);
|
|
99
110
|
for (let i = lines.length - 1; i >= 0; i--) {
|
|
100
111
|
const line = lines[i];
|
|
101
112
|
if (!line?.includes(taskId) || !actions.some((a) => line.includes(`"${a}"`)))
|
|
@@ -103,11 +114,13 @@ function findWorktreeAuditRow(projectRoot, taskId, xdgPath, actions) {
|
|
|
103
114
|
try {
|
|
104
115
|
const row = JSON.parse(line);
|
|
105
116
|
// `cleo worktree adopt` (core audit writer) records the path as `target`.
|
|
117
|
+
// Compared by realpath: a row recorded through a symlink (/tmp vs
|
|
118
|
+
// /private/tmp, a symlinked CLEO home) names the same worktree (T14054).
|
|
106
119
|
const rowPath = row.xdgPath ?? row.target;
|
|
107
120
|
if (actions.includes(row.action) &&
|
|
108
121
|
row.taskId === taskId &&
|
|
109
122
|
rowPath !== undefined &&
|
|
110
|
-
|
|
123
|
+
canonicalizePath(rowPath) === wanted &&
|
|
111
124
|
row.success !== false) {
|
|
112
125
|
return row;
|
|
113
126
|
}
|
|
@@ -134,6 +147,22 @@ function findWorktreeAuditRow(projectRoot, taskId, xdgPath, actions) {
|
|
|
134
147
|
export function readRecordedWorktreeBase(projectRoot, taskId, xdgPath) {
|
|
135
148
|
return findWorktreeAuditRow(projectRoot, taskId, xdgPath, ['create'])?.baseSha ?? null;
|
|
136
149
|
}
|
|
150
|
+
/**
|
|
151
|
+
* How CLEO provisioned the task's worktree at `xdgPath`: the action of the
|
|
152
|
+
* newest successful `create` or `adopt` lifecycle row, or `null` when there is
|
|
153
|
+
* none (T10871).
|
|
154
|
+
*
|
|
155
|
+
* @param projectRoot - Absolute path to the CLEO project root.
|
|
156
|
+
* @param taskId - Task whose worktree is looked up.
|
|
157
|
+
* @param xdgPath - The task's worktree path.
|
|
158
|
+
* @returns `'create'`, `'adopt'` or `null`.
|
|
159
|
+
*
|
|
160
|
+
* @task T10871
|
|
161
|
+
*/
|
|
162
|
+
export function readWorktreeProvisioning(projectRoot, taskId, xdgPath) {
|
|
163
|
+
const action = findWorktreeAuditRow(projectRoot, taskId, xdgPath, ['create', 'adopt'])?.action;
|
|
164
|
+
return action === 'create' || action === 'adopt' ? action : null;
|
|
165
|
+
}
|
|
137
166
|
/**
|
|
138
167
|
* Whether CLEO provisioned the task's worktree at `xdgPath`: the lifecycle
|
|
139
168
|
* audit log records a `create` (new branch), or an `adopt` (an existing
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worktree-audit.js","sourceRoot":"","sources":["../src/worktree-audit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACjF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"worktree-audit.js","sourceRoot":"","sources":["../src/worktree-audit.ts"],"names":[],"mappings":"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"}
|
|
@@ -45,6 +45,8 @@ export interface LocatedWorktree {
|
|
|
45
45
|
readonly branch: string | null;
|
|
46
46
|
/** Whether git holds a lock on this entry. */
|
|
47
47
|
readonly locked: boolean;
|
|
48
|
+
/** Present (true) only for a bare repository entry: no working tree, no branch (T10866). */
|
|
49
|
+
readonly bare?: true;
|
|
48
50
|
}
|
|
49
51
|
/**
|
|
50
52
|
* Parse `git worktree list --porcelain` into structured entries.
|
|
@@ -71,6 +73,22 @@ export declare function parseWorktreePorcelain(raw: string): LocatedWorktree[];
|
|
|
71
73
|
* @task T12086
|
|
72
74
|
*/
|
|
73
75
|
export declare function listRegisteredWorktrees(projectRoot: string): LocatedWorktree[];
|
|
76
|
+
/**
|
|
77
|
+
* Read git's worktree registry for the repository containing `cwd`.
|
|
78
|
+
*
|
|
79
|
+
* Unlike {@link listRegisteredWorktrees} this throws when git fails, for
|
|
80
|
+
* callers that must tell "git could not answer" apart from "no worktrees"
|
|
81
|
+
* (core's `cleo worktree list`, T10866). Exported on the light
|
|
82
|
+
* `@cleocode/worktree/worktree-locate.js` subpath so sync callers on the CLI
|
|
83
|
+
* startup path need not load the package barrel.
|
|
84
|
+
*
|
|
85
|
+
* @param cwd - any path inside the repository.
|
|
86
|
+
* @returns registered worktrees, in git's order.
|
|
87
|
+
* @throws Error when `git worktree list --porcelain` fails.
|
|
88
|
+
*
|
|
89
|
+
* @task T10866
|
|
90
|
+
*/
|
|
91
|
+
export declare function readWorktreePorcelain(cwd: string): LocatedWorktree[];
|
|
74
92
|
/**
|
|
75
93
|
* Find the registered worktree belonging to `taskId`.
|
|
76
94
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worktree-locate.d.ts","sourceRoot":"","sources":["../src/worktree-locate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAIH,2CAA2C;AAC3C,MAAM,WAAW,eAAe;IAC9B,wCAAwC;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,8CAA8C;IAC9C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"worktree-locate.d.ts","sourceRoot":"","sources":["../src/worktree-locate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAIH,2CAA2C;AAC3C,MAAM,WAAW,eAAe;IAC9B,wCAAwC;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,8CAA8C;IAC9C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,4FAA4F;IAC5F,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;CACtB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,EAAE,CAmCrE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,EAAE,CAM9E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,EAAE,CAEpE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAU9F"}
|
package/dist/worktree-locate.js
CHANGED
|
@@ -55,13 +55,15 @@ export function parseWorktreePorcelain(raw) {
|
|
|
55
55
|
let path = null;
|
|
56
56
|
let branch = null;
|
|
57
57
|
let locked = false;
|
|
58
|
+
let bare = false;
|
|
58
59
|
/** Flush the record under construction, if any. */
|
|
59
60
|
const flush = () => {
|
|
60
61
|
if (path !== null)
|
|
61
|
-
out.push({ path, branch, locked });
|
|
62
|
+
out.push({ path, branch, locked, ...(bare ? { bare: true } : {}) });
|
|
62
63
|
path = null;
|
|
63
64
|
branch = null;
|
|
64
65
|
locked = false;
|
|
66
|
+
bare = false;
|
|
65
67
|
};
|
|
66
68
|
for (const line of raw.split('\n')) {
|
|
67
69
|
const trimmed = line.trimEnd();
|
|
@@ -79,6 +81,9 @@ export function parseWorktreePorcelain(raw) {
|
|
|
79
81
|
else if (trimmed === 'locked' || trimmed.startsWith('locked ')) {
|
|
80
82
|
locked = true;
|
|
81
83
|
}
|
|
84
|
+
else if (trimmed === 'bare') {
|
|
85
|
+
bare = true;
|
|
86
|
+
}
|
|
82
87
|
}
|
|
83
88
|
flush();
|
|
84
89
|
return out;
|
|
@@ -96,13 +101,30 @@ export function parseWorktreePorcelain(raw) {
|
|
|
96
101
|
*/
|
|
97
102
|
export function listRegisteredWorktrees(projectRoot) {
|
|
98
103
|
try {
|
|
99
|
-
|
|
100
|
-
return parseWorktreePorcelain(gitSync(['worktree', 'list', '--porcelain'], gitRoot));
|
|
104
|
+
return readWorktreePorcelain(getGitRoot(projectRoot));
|
|
101
105
|
}
|
|
102
106
|
catch {
|
|
103
107
|
return [];
|
|
104
108
|
}
|
|
105
109
|
}
|
|
110
|
+
/**
|
|
111
|
+
* Read git's worktree registry for the repository containing `cwd`.
|
|
112
|
+
*
|
|
113
|
+
* Unlike {@link listRegisteredWorktrees} this throws when git fails, for
|
|
114
|
+
* callers that must tell "git could not answer" apart from "no worktrees"
|
|
115
|
+
* (core's `cleo worktree list`, T10866). Exported on the light
|
|
116
|
+
* `@cleocode/worktree/worktree-locate.js` subpath so sync callers on the CLI
|
|
117
|
+
* startup path need not load the package barrel.
|
|
118
|
+
*
|
|
119
|
+
* @param cwd - any path inside the repository.
|
|
120
|
+
* @returns registered worktrees, in git's order.
|
|
121
|
+
* @throws Error when `git worktree list --porcelain` fails.
|
|
122
|
+
*
|
|
123
|
+
* @task T10866
|
|
124
|
+
*/
|
|
125
|
+
export function readWorktreePorcelain(cwd) {
|
|
126
|
+
return parseWorktreePorcelain(gitSync(['worktree', 'list', '--porcelain'], cwd));
|
|
127
|
+
}
|
|
106
128
|
/**
|
|
107
129
|
* Find the registered worktree belonging to `taskId`.
|
|
108
130
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worktree-locate.js","sourceRoot":"","sources":["../src/worktree-locate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"worktree-locate.js","sourceRoot":"","sources":["../src/worktree-locate.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,26 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cleocode/worktree",
|
|
3
|
-
"version": "2026.10.
|
|
3
|
+
"version": "2026.10.26-rc.ci.697",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Native CLEO worktree backend SDK",
|
|
7
7
|
"main": "dist/index.js",
|
|
8
8
|
"types": "dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"import": "./dist/index.js",
|
|
13
|
+
"default": "./dist/index.js"
|
|
14
|
+
},
|
|
15
|
+
"./worktree-locate.js": {
|
|
16
|
+
"types": "./dist/worktree-locate.d.ts",
|
|
17
|
+
"import": "./dist/worktree-locate.js",
|
|
18
|
+
"default": "./dist/worktree-locate.js"
|
|
19
|
+
},
|
|
20
|
+
"./native/*": "./native/*",
|
|
21
|
+
"./dist/*": "./dist/*",
|
|
22
|
+
"./package.json": "./package.json"
|
|
23
|
+
},
|
|
9
24
|
"files": [
|
|
10
25
|
"dist/",
|
|
11
26
|
"native/",
|
|
@@ -25,14 +40,14 @@
|
|
|
25
40
|
"author": "CLEO Code <hello@cleocode.dev>",
|
|
26
41
|
"license": "MIT",
|
|
27
42
|
"dependencies": {
|
|
28
|
-
"@cleocode/contracts": "2026.10.
|
|
29
|
-
"@cleocode/paths": "2026.10.
|
|
43
|
+
"@cleocode/contracts": "2026.10.26-rc.ci.697",
|
|
44
|
+
"@cleocode/paths": "2026.10.26-rc.ci.697"
|
|
30
45
|
},
|
|
31
46
|
"devDependencies": {
|
|
32
47
|
"@types/node": "^24.3.0",
|
|
33
48
|
"typescript": "^6.0.2",
|
|
34
49
|
"vitest": "^4.1.4",
|
|
35
|
-
"@cleocode/core": "2026.10.
|
|
50
|
+
"@cleocode/core": "2026.10.26-rc.ci.697"
|
|
36
51
|
},
|
|
37
52
|
"repository": {
|
|
38
53
|
"type": "git",
|