@solaqua/skul 0.1.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/LICENSE +15 -0
- package/README.md +282 -0
- package/bin/skul.js +13 -0
- package/dist/bundle-discovery.d.ts +30 -0
- package/dist/bundle-discovery.js +284 -0
- package/dist/bundle-discovery.js.map +1 -0
- package/dist/bundle-fetch.d.ts +67 -0
- package/dist/bundle-fetch.js +378 -0
- package/dist/bundle-fetch.js.map +1 -0
- package/dist/bundle-items.d.ts +34 -0
- package/dist/bundle-items.js +149 -0
- package/dist/bundle-items.js.map +1 -0
- package/dist/bundle-manifest.d.ts +26 -0
- package/dist/bundle-manifest.js +196 -0
- package/dist/bundle-manifest.js.map +1 -0
- package/dist/bundle-materialization.d.ts +52 -0
- package/dist/bundle-materialization.js +587 -0
- package/dist/bundle-materialization.js.map +1 -0
- package/dist/bundle-translation.d.ts +38 -0
- package/dist/bundle-translation.js +502 -0
- package/dist/bundle-translation.js.map +1 -0
- package/dist/cli.d.ts +126 -0
- package/dist/cli.js +648 -0
- package/dist/cli.js.map +1 -0
- package/dist/fs-utils.d.ts +7 -0
- package/dist/fs-utils.js +27 -0
- package/dist/fs-utils.js.map +1 -0
- package/dist/git-context.d.ts +14 -0
- package/dist/git-context.js +53 -0
- package/dist/git-context.js.map +1 -0
- package/dist/git-exclude.d.ts +13 -0
- package/dist/git-exclude.js +76 -0
- package/dist/git-exclude.js.map +1 -0
- package/dist/git-index.d.ts +106 -0
- package/dist/git-index.js +224 -0
- package/dist/git-index.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.js +4190 -0
- package/dist/index.js.map +1 -0
- package/dist/registry.d.ts +91 -0
- package/dist/registry.js +551 -0
- package/dist/registry.js.map +1 -0
- package/dist/root-instruction-content.d.ts +11 -0
- package/dist/root-instruction-content.js +61 -0
- package/dist/root-instruction-content.js.map +1 -0
- package/dist/root-instruction-render.d.ts +31 -0
- package/dist/root-instruction-render.js +121 -0
- package/dist/root-instruction-render.js.map +1 -0
- package/dist/root-instruction-state.d.ts +41 -0
- package/dist/root-instruction-state.js +273 -0
- package/dist/root-instruction-state.js.map +1 -0
- package/dist/state-layout.d.ts +11 -0
- package/dist/state-layout.js +26 -0
- package/dist/state-layout.js.map +1 -0
- package/dist/tool-mapping.d.ts +35 -0
- package/dist/tool-mapping.js +227 -0
- package/dist/tool-mapping.js.map +1 -0
- package/package.json +72 -0
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
/** Reads a directory and returns an empty list when it cannot be read. */
|
|
3
|
+
export declare function safeReaddirSync(directory: string): fs.Dirent[];
|
|
4
|
+
/** Returns the slash-delimited segment count for a relative path. */
|
|
5
|
+
export declare function pathDepth(value: string): number;
|
|
6
|
+
/** Escapes a string so it can be embedded in a regular expression literally. */
|
|
7
|
+
export declare function escapeRegExp(value: string): string;
|
package/dist/fs-utils.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.safeReaddirSync = safeReaddirSync;
|
|
7
|
+
exports.pathDepth = pathDepth;
|
|
8
|
+
exports.escapeRegExp = escapeRegExp;
|
|
9
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
10
|
+
/** Reads a directory and returns an empty list when it cannot be read. */
|
|
11
|
+
function safeReaddirSync(directory) {
|
|
12
|
+
try {
|
|
13
|
+
return node_fs_1.default.readdirSync(directory, { withFileTypes: true });
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
return [];
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/** Returns the slash-delimited segment count for a relative path. */
|
|
20
|
+
function pathDepth(value) {
|
|
21
|
+
return value.split("/").length;
|
|
22
|
+
}
|
|
23
|
+
/** Escapes a string so it can be embedded in a regular expression literally. */
|
|
24
|
+
function escapeRegExp(value) {
|
|
25
|
+
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=fs-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fs-utils.js","sourceRoot":"","sources":["../src/fs-utils.ts"],"names":[],"mappings":";;;;;AAGA,0CAMC;AAGD,8BAEC;AAGD,oCAEC;AAnBD,sDAAyB;AAEzB,0EAA0E;AAC1E,SAAgB,eAAe,CAAC,SAAiB;IAC/C,IAAI,CAAC;QACH,OAAO,iBAAE,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,qEAAqE;AACrE,SAAgB,SAAS,CAAC,KAAa;IACrC,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AACjC,CAAC;AAED,gFAAgF;AAChF,SAAgB,YAAY,CAAC,KAAa;IACxC,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface GitContext {
|
|
2
|
+
repoRoot: string;
|
|
3
|
+
worktreeRoot: string;
|
|
4
|
+
gitDir: string;
|
|
5
|
+
gitCommonDir: string;
|
|
6
|
+
isWorktree: boolean;
|
|
7
|
+
repoFingerprint: string;
|
|
8
|
+
worktreeId: string;
|
|
9
|
+
}
|
|
10
|
+
export interface DetectGitContextOptions {
|
|
11
|
+
cwd: string;
|
|
12
|
+
}
|
|
13
|
+
/** Detects repository and worktree identity for a working directory, or returns `null` outside Git. */
|
|
14
|
+
export declare function detectGitContext(options: DetectGitContextOptions): GitContext | null;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.detectGitContext = detectGitContext;
|
|
7
|
+
const node_child_process_1 = require("node:child_process");
|
|
8
|
+
const node_crypto_1 = require("node:crypto");
|
|
9
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
10
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
11
|
+
/** Detects repository and worktree identity for a working directory, or returns `null` outside Git. */
|
|
12
|
+
function detectGitContext(options) {
|
|
13
|
+
const worktreeRoot = gitRevParse(options.cwd, ["--show-toplevel"]);
|
|
14
|
+
if (!worktreeRoot) {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
const gitDir = gitRevParse(options.cwd, ["--git-dir"]);
|
|
18
|
+
const gitCommonDir = gitRevParse(options.cwd, ["--git-common-dir"]);
|
|
19
|
+
if (!gitDir || !gitCommonDir) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
const normalizedWorktreeRoot = node_fs_1.default.realpathSync.native(worktreeRoot);
|
|
23
|
+
const normalizedGitDir = node_fs_1.default.realpathSync.native(gitDir);
|
|
24
|
+
const normalizedGitCommonDir = node_fs_1.default.realpathSync.native(gitCommonDir);
|
|
25
|
+
const repoRoot = node_path_1.default.basename(normalizedGitCommonDir) === ".git"
|
|
26
|
+
? node_fs_1.default.realpathSync.native(node_path_1.default.dirname(normalizedGitCommonDir))
|
|
27
|
+
: normalizedWorktreeRoot;
|
|
28
|
+
return {
|
|
29
|
+
repoRoot,
|
|
30
|
+
worktreeRoot: normalizedWorktreeRoot,
|
|
31
|
+
gitDir: normalizedGitDir,
|
|
32
|
+
gitCommonDir: normalizedGitCommonDir,
|
|
33
|
+
isWorktree: normalizedGitDir !== normalizedGitCommonDir,
|
|
34
|
+
repoFingerprint: `repo_${fingerprint(normalizedGitCommonDir)}`,
|
|
35
|
+
worktreeId: `worktree_${fingerprint(normalizedWorktreeRoot)}`,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
function gitRevParse(cwd, args) {
|
|
39
|
+
try {
|
|
40
|
+
return (0, node_child_process_1.execFileSync)("git", ["rev-parse", "--path-format=absolute", ...args], {
|
|
41
|
+
cwd,
|
|
42
|
+
encoding: "utf8",
|
|
43
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
44
|
+
}).trim();
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
function fingerprint(value) {
|
|
51
|
+
return (0, node_crypto_1.createHash)("sha256").update(value).digest("hex").slice(0, 12);
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=git-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-context.js","sourceRoot":"","sources":["../src/git-context.ts"],"names":[],"mappings":";;;;;AAoBA,4CAiCC;AArDD,2DAAkD;AAClD,6CAAyC;AACzC,sDAAyB;AACzB,0DAA6B;AAgB7B,uGAAuG;AACvG,SAAgB,gBAAgB,CAC9B,OAAgC;IAEhC,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAEnE,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IACvD,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEpE,IAAI,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,sBAAsB,GAAG,iBAAE,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACpE,MAAM,gBAAgB,GAAG,iBAAE,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,sBAAsB,GAAG,iBAAE,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACpE,MAAM,QAAQ,GACZ,mBAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,KAAK,MAAM;QAC9C,CAAC,CAAC,iBAAE,CAAC,YAAY,CAAC,MAAM,CAAC,mBAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAC9D,CAAC,CAAC,sBAAsB,CAAC;IAE7B,OAAO;QACL,QAAQ;QACR,YAAY,EAAE,sBAAsB;QACpC,MAAM,EAAE,gBAAgB;QACxB,YAAY,EAAE,sBAAsB;QACpC,UAAU,EAAE,gBAAgB,KAAK,sBAAsB;QACvD,eAAe,EAAE,QAAQ,WAAW,CAAC,sBAAsB,CAAC,EAAE;QAC9D,UAAU,EAAE,YAAY,WAAW,CAAC,sBAAsB,CAAC,EAAE;KAC9D,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,GAAW,EAAE,IAAc;IAC9C,IAAI,CAAC;QACH,OAAO,IAAA,iCAAY,EACjB,KAAK,EACL,CAAC,WAAW,EAAE,wBAAwB,EAAE,GAAG,IAAI,CAAC,EAChD;YACE,GAAG;YACH,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;SACpC,CACF,CAAC,IAAI,EAAE,CAAC;IACX,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACvE,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** Writes or refreshes Skul's managed block inside `.git/info/exclude`. */
|
|
2
|
+
export declare function configureSkulExcludeBlock(options: {
|
|
3
|
+
gitDir: string;
|
|
4
|
+
files: string[];
|
|
5
|
+
}): boolean;
|
|
6
|
+
/** Removes Skul's managed block from `.git/info/exclude` when present. */
|
|
7
|
+
export declare function removeSkulExcludeBlock(options: {
|
|
8
|
+
gitDir: string;
|
|
9
|
+
}): boolean;
|
|
10
|
+
/** Returns whether `.git/info/exclude` currently contains Skul's managed block. */
|
|
11
|
+
export declare function hasSkulExcludeBlock(options: {
|
|
12
|
+
gitDir: string;
|
|
13
|
+
}): boolean;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.configureSkulExcludeBlock = configureSkulExcludeBlock;
|
|
7
|
+
exports.removeSkulExcludeBlock = removeSkulExcludeBlock;
|
|
8
|
+
exports.hasSkulExcludeBlock = hasSkulExcludeBlock;
|
|
9
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
10
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
11
|
+
const START_MARKER = "# >>> SKUL START";
|
|
12
|
+
const END_MARKER = "# <<< SKUL END";
|
|
13
|
+
const SKUL_BLOCK_PATTERN = /(?:^|\n)# >>> SKUL START\n[\s\S]*?\n# <<< SKUL END(?:\n)?/g;
|
|
14
|
+
/** Writes or refreshes Skul's managed block inside `.git/info/exclude`. */
|
|
15
|
+
function configureSkulExcludeBlock(options) {
|
|
16
|
+
const excludeFile = resolveExcludeFile(options.gitDir);
|
|
17
|
+
const normalizedFiles = normalizeExcludeFiles(options.files);
|
|
18
|
+
const nextContent = appendSkulExcludeBlock(readExcludeFile(excludeFile), normalizedFiles);
|
|
19
|
+
return writeExcludeFile(excludeFile, nextContent);
|
|
20
|
+
}
|
|
21
|
+
/** Removes Skul's managed block from `.git/info/exclude` when present. */
|
|
22
|
+
function removeSkulExcludeBlock(options) {
|
|
23
|
+
const excludeFile = resolveExcludeFile(options.gitDir);
|
|
24
|
+
if (!node_fs_1.default.existsSync(excludeFile)) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
const existingContent = readExcludeFile(excludeFile);
|
|
28
|
+
const nextContent = removeSkulExcludeContent(existingContent);
|
|
29
|
+
if (existingContent === nextContent) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
return writeExcludeFile(excludeFile, nextContent);
|
|
33
|
+
}
|
|
34
|
+
/** Returns whether `.git/info/exclude` currently contains Skul's managed block. */
|
|
35
|
+
function hasSkulExcludeBlock(options) {
|
|
36
|
+
const excludeFile = resolveExcludeFile(options.gitDir);
|
|
37
|
+
if (!node_fs_1.default.existsSync(excludeFile)) {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
return new RegExp(SKUL_BLOCK_PATTERN.source).test(readExcludeFile(excludeFile));
|
|
41
|
+
}
|
|
42
|
+
function resolveExcludeFile(gitDir) {
|
|
43
|
+
return node_path_1.default.join(gitDir, "info", "exclude");
|
|
44
|
+
}
|
|
45
|
+
function readExcludeFile(excludeFile) {
|
|
46
|
+
return node_fs_1.default.existsSync(excludeFile) ? node_fs_1.default.readFileSync(excludeFile, "utf8") : "";
|
|
47
|
+
}
|
|
48
|
+
function writeExcludeFile(excludeFile, content) {
|
|
49
|
+
node_fs_1.default.mkdirSync(node_path_1.default.dirname(excludeFile), { recursive: true });
|
|
50
|
+
node_fs_1.default.writeFileSync(excludeFile, content);
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
function stripSkulExcludeBlock(content) {
|
|
54
|
+
return content.replace(SKUL_BLOCK_PATTERN, "");
|
|
55
|
+
}
|
|
56
|
+
function appendSkulExcludeBlock(content, files) {
|
|
57
|
+
const preservedContent = stripSkulExcludeBlock(content).trimEnd();
|
|
58
|
+
const block = buildSkulExcludeBlock(files);
|
|
59
|
+
return preservedContent ? `${preservedContent}\n\n${block}\n` : `${block}\n`;
|
|
60
|
+
}
|
|
61
|
+
function removeSkulExcludeContent(content) {
|
|
62
|
+
const preservedContent = stripSkulExcludeBlock(content).trimEnd();
|
|
63
|
+
return preservedContent ? `${preservedContent}\n` : "";
|
|
64
|
+
}
|
|
65
|
+
function buildSkulExcludeBlock(files) {
|
|
66
|
+
return [START_MARKER, ...files, END_MARKER].join("\n");
|
|
67
|
+
}
|
|
68
|
+
function normalizeExcludeFiles(files) {
|
|
69
|
+
return Array.from(new Set(files
|
|
70
|
+
.map((file) => normalizeExcludePattern(file))
|
|
71
|
+
.filter((file) => file.length > 0))).sort((left, right) => left.localeCompare(right));
|
|
72
|
+
}
|
|
73
|
+
function normalizeExcludePattern(file) {
|
|
74
|
+
return file.split(node_path_1.default.sep).join("/");
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=git-exclude.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-exclude.js","sourceRoot":"","sources":["../src/git-exclude.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A single `git ls-files -s` entry for one path in the index.
|
|
3
|
+
*
|
|
4
|
+
* Stage `0` means a normal tracked entry. Stages `1`, `2`, and `3` indicate
|
|
5
|
+
* an unmerged path with base/ours/theirs entries present in the index.
|
|
6
|
+
*/
|
|
7
|
+
export interface GitIndexStageEntry {
|
|
8
|
+
mode: string;
|
|
9
|
+
objectId: string;
|
|
10
|
+
stage: number;
|
|
11
|
+
path: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* The blob currently recorded for a path in `HEAD`.
|
|
15
|
+
*/
|
|
16
|
+
export interface GitHeadBlob {
|
|
17
|
+
objectId: string;
|
|
18
|
+
content: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Reasons that make a tracked root-instruction target unsafe to shadow.
|
|
22
|
+
*/
|
|
23
|
+
export type RootInstructionShadowSafetyIssue = "unmerged" | "missing-head" | "staged-changes" | "unstaged-changes" | "incompatible-index-flags";
|
|
24
|
+
/**
|
|
25
|
+
* Aggregated Git state used to decide whether Skul may create or refresh a
|
|
26
|
+
* tracked root-instruction shadow such as `AGENTS.md` or `CLAUDE.md`.
|
|
27
|
+
*/
|
|
28
|
+
export interface RootInstructionShadowSafetyInspection {
|
|
29
|
+
/**
|
|
30
|
+
* Whether the target is tracked by Git through either the index or `HEAD`.
|
|
31
|
+
*/
|
|
32
|
+
tracked: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Raw index stage entries for the target path.
|
|
35
|
+
*/
|
|
36
|
+
stageEntries: GitIndexStageEntry[];
|
|
37
|
+
/**
|
|
38
|
+
* The blob currently stored in `HEAD`, if any.
|
|
39
|
+
*/
|
|
40
|
+
headBlob: GitHeadBlob | null;
|
|
41
|
+
/**
|
|
42
|
+
* Single-letter flags reported by `git ls-files -v`.
|
|
43
|
+
*/
|
|
44
|
+
indexFlags: string[];
|
|
45
|
+
/**
|
|
46
|
+
* Normalized refusal reasons derived from the current Git state.
|
|
47
|
+
*/
|
|
48
|
+
issues: RootInstructionShadowSafetyIssue[];
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Returns whether a path should be treated as Git-tracked for shadow-safety
|
|
52
|
+
* purposes.
|
|
53
|
+
*
|
|
54
|
+
* A path is considered tracked when it exists either in the current index or
|
|
55
|
+
* in `HEAD`, including staged deletions where only the `HEAD` blob remains.
|
|
56
|
+
*/
|
|
57
|
+
export declare function isTrackedGitPath(options: {
|
|
58
|
+
repoRoot: string;
|
|
59
|
+
filePath: string;
|
|
60
|
+
}): boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Inspects the Git state of a root-instruction target and summarizes whether
|
|
63
|
+
* Skul may safely create or refresh a tracked shadow for it.
|
|
64
|
+
*/
|
|
65
|
+
export declare function inspectRootInstructionShadowTarget(options: {
|
|
66
|
+
repoRoot: string;
|
|
67
|
+
filePath: string;
|
|
68
|
+
}): RootInstructionShadowSafetyInspection;
|
|
69
|
+
/**
|
|
70
|
+
* Reads the blob stored for a path in `HEAD`.
|
|
71
|
+
*
|
|
72
|
+
* Returns `null` when the path has no `HEAD` entry, such as an index-only path
|
|
73
|
+
* that has been staged without ever being committed.
|
|
74
|
+
*/
|
|
75
|
+
export declare function readGitHeadBlob(options: {
|
|
76
|
+
repoRoot: string;
|
|
77
|
+
filePath: string;
|
|
78
|
+
}): GitHeadBlob | null;
|
|
79
|
+
/**
|
|
80
|
+
* Returns all index stage entries for a path.
|
|
81
|
+
*/
|
|
82
|
+
export declare function inspectGitIndexStages(options: {
|
|
83
|
+
repoRoot: string;
|
|
84
|
+
filePath: string;
|
|
85
|
+
}): GitIndexStageEntry[];
|
|
86
|
+
/**
|
|
87
|
+
* Returns the `git ls-files -v` flags for a path.
|
|
88
|
+
*/
|
|
89
|
+
export declare function readGitIndexFlags(options: {
|
|
90
|
+
repoRoot: string;
|
|
91
|
+
filePath: string;
|
|
92
|
+
}): string[];
|
|
93
|
+
/**
|
|
94
|
+
* Marks a tracked path as `skip-worktree`.
|
|
95
|
+
*/
|
|
96
|
+
export declare function setGitSkipWorktree(options: {
|
|
97
|
+
repoRoot: string;
|
|
98
|
+
filePath: string;
|
|
99
|
+
}): void;
|
|
100
|
+
/**
|
|
101
|
+
* Clears the `skip-worktree` flag from a tracked path.
|
|
102
|
+
*/
|
|
103
|
+
export declare function clearGitSkipWorktree(options: {
|
|
104
|
+
repoRoot: string;
|
|
105
|
+
filePath: string;
|
|
106
|
+
}): void;
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.isTrackedGitPath = isTrackedGitPath;
|
|
7
|
+
exports.inspectRootInstructionShadowTarget = inspectRootInstructionShadowTarget;
|
|
8
|
+
exports.readGitHeadBlob = readGitHeadBlob;
|
|
9
|
+
exports.inspectGitIndexStages = inspectGitIndexStages;
|
|
10
|
+
exports.readGitIndexFlags = readGitIndexFlags;
|
|
11
|
+
exports.setGitSkipWorktree = setGitSkipWorktree;
|
|
12
|
+
exports.clearGitSkipWorktree = clearGitSkipWorktree;
|
|
13
|
+
const node_child_process_1 = require("node:child_process");
|
|
14
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
15
|
+
/**
|
|
16
|
+
* Returns whether a path should be treated as Git-tracked for shadow-safety
|
|
17
|
+
* purposes.
|
|
18
|
+
*
|
|
19
|
+
* A path is considered tracked when it exists either in the current index or
|
|
20
|
+
* in `HEAD`, including staged deletions where only the `HEAD` blob remains.
|
|
21
|
+
*/
|
|
22
|
+
function isTrackedGitPath(options) {
|
|
23
|
+
return (inspectGitIndexStages(options).length > 0 ||
|
|
24
|
+
readGitHeadBlob(options) !== null);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Inspects the Git state of a root-instruction target and summarizes whether
|
|
28
|
+
* Skul may safely create or refresh a tracked shadow for it.
|
|
29
|
+
*/
|
|
30
|
+
function inspectRootInstructionShadowTarget(options) {
|
|
31
|
+
const stageEntries = inspectGitIndexStages(options);
|
|
32
|
+
const headBlob = readGitHeadBlob(options);
|
|
33
|
+
const indexFlags = readGitIndexFlags(options);
|
|
34
|
+
const tracked = stageEntries.length > 0 || headBlob !== null;
|
|
35
|
+
if (!tracked) {
|
|
36
|
+
return {
|
|
37
|
+
tracked: false,
|
|
38
|
+
stageEntries,
|
|
39
|
+
headBlob,
|
|
40
|
+
indexFlags,
|
|
41
|
+
issues: [],
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
const issues = [];
|
|
45
|
+
if (hasUnmergedEntries(stageEntries)) {
|
|
46
|
+
issues.push("unmerged");
|
|
47
|
+
}
|
|
48
|
+
if (!headBlob) {
|
|
49
|
+
issues.push("missing-head");
|
|
50
|
+
}
|
|
51
|
+
if (!issues.includes("unmerged") &&
|
|
52
|
+
hasStagedChanges(options.repoRoot, options.filePath)) {
|
|
53
|
+
issues.push("staged-changes");
|
|
54
|
+
}
|
|
55
|
+
if (!issues.includes("unmerged") &&
|
|
56
|
+
hasUnstagedChanges(options.repoRoot, options.filePath)) {
|
|
57
|
+
issues.push("unstaged-changes");
|
|
58
|
+
}
|
|
59
|
+
if (hasIncompatibleIndexFlags(indexFlags)) {
|
|
60
|
+
issues.push("incompatible-index-flags");
|
|
61
|
+
}
|
|
62
|
+
return {
|
|
63
|
+
tracked,
|
|
64
|
+
stageEntries,
|
|
65
|
+
headBlob,
|
|
66
|
+
indexFlags,
|
|
67
|
+
issues,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Reads the blob stored for a path in `HEAD`.
|
|
72
|
+
*
|
|
73
|
+
* Returns `null` when the path has no `HEAD` entry, such as an index-only path
|
|
74
|
+
* that has been staged without ever being committed.
|
|
75
|
+
*/
|
|
76
|
+
function readGitHeadBlob(options) {
|
|
77
|
+
const repoRelativePath = normalizeRepoRelativePath(options.filePath);
|
|
78
|
+
const objectId = tryRunGit(options.repoRoot, [
|
|
79
|
+
"rev-parse",
|
|
80
|
+
`HEAD:${repoRelativePath}`,
|
|
81
|
+
])?.trim();
|
|
82
|
+
if (!objectId) {
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
return {
|
|
86
|
+
objectId,
|
|
87
|
+
content: runGit(options.repoRoot, ["show", `HEAD:${repoRelativePath}`]),
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Returns all index stage entries for a path.
|
|
92
|
+
*/
|
|
93
|
+
function inspectGitIndexStages(options) {
|
|
94
|
+
const repoRelativePath = normalizeRepoRelativePath(options.filePath);
|
|
95
|
+
const output = runGit(options.repoRoot, [
|
|
96
|
+
"ls-files",
|
|
97
|
+
"-s",
|
|
98
|
+
"--",
|
|
99
|
+
repoRelativePath,
|
|
100
|
+
]);
|
|
101
|
+
if (output.trim() === "") {
|
|
102
|
+
return [];
|
|
103
|
+
}
|
|
104
|
+
return output.trim().split("\n").map(parseGitIndexStageEntry);
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Returns the `git ls-files -v` flags for a path.
|
|
108
|
+
*/
|
|
109
|
+
function readGitIndexFlags(options) {
|
|
110
|
+
const repoRelativePath = normalizeRepoRelativePath(options.filePath);
|
|
111
|
+
const output = runGit(options.repoRoot, [
|
|
112
|
+
"ls-files",
|
|
113
|
+
"-v",
|
|
114
|
+
"--",
|
|
115
|
+
repoRelativePath,
|
|
116
|
+
]);
|
|
117
|
+
if (output.trim() === "") {
|
|
118
|
+
return [];
|
|
119
|
+
}
|
|
120
|
+
return output.trim().split("\n").map(parseGitIndexFlag);
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Marks a tracked path as `skip-worktree`.
|
|
124
|
+
*/
|
|
125
|
+
function setGitSkipWorktree(options) {
|
|
126
|
+
const repoRelativePath = normalizeRepoRelativePath(options.filePath);
|
|
127
|
+
runGit(options.repoRoot, [
|
|
128
|
+
"update-index",
|
|
129
|
+
"--skip-worktree",
|
|
130
|
+
"--",
|
|
131
|
+
repoRelativePath,
|
|
132
|
+
]);
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Clears the `skip-worktree` flag from a tracked path.
|
|
136
|
+
*/
|
|
137
|
+
function clearGitSkipWorktree(options) {
|
|
138
|
+
const repoRelativePath = normalizeRepoRelativePath(options.filePath);
|
|
139
|
+
runGit(options.repoRoot, [
|
|
140
|
+
"update-index",
|
|
141
|
+
"--no-skip-worktree",
|
|
142
|
+
"--",
|
|
143
|
+
repoRelativePath,
|
|
144
|
+
]);
|
|
145
|
+
}
|
|
146
|
+
function hasUnmergedEntries(stageEntries) {
|
|
147
|
+
return stageEntries.some((entry) => entry.stage !== 0);
|
|
148
|
+
}
|
|
149
|
+
function hasStagedChanges(repoRoot, filePath) {
|
|
150
|
+
return (gitCommandExitCode(repoRoot, [
|
|
151
|
+
"diff",
|
|
152
|
+
"--cached",
|
|
153
|
+
"--quiet",
|
|
154
|
+
"--",
|
|
155
|
+
normalizeRepoRelativePath(filePath),
|
|
156
|
+
]) === 1);
|
|
157
|
+
}
|
|
158
|
+
function hasUnstagedChanges(repoRoot, filePath) {
|
|
159
|
+
return (gitCommandExitCode(repoRoot, [
|
|
160
|
+
"diff",
|
|
161
|
+
"--quiet",
|
|
162
|
+
"--",
|
|
163
|
+
normalizeRepoRelativePath(filePath),
|
|
164
|
+
]) === 1);
|
|
165
|
+
}
|
|
166
|
+
function hasIncompatibleIndexFlags(indexFlags) {
|
|
167
|
+
return indexFlags.some((flag) => flag !== "H" && flag !== "S");
|
|
168
|
+
}
|
|
169
|
+
function normalizeRepoRelativePath(filePath) {
|
|
170
|
+
return filePath.split(node_path_1.default.sep).join("/");
|
|
171
|
+
}
|
|
172
|
+
function parseGitIndexStageEntry(line) {
|
|
173
|
+
const match = line.match(/^(\d+) ([0-9a-f]+) (\d+)\t(.+)$/);
|
|
174
|
+
if (!match) {
|
|
175
|
+
throw new Error(`Unable to parse git index stage entry: ${line}`);
|
|
176
|
+
}
|
|
177
|
+
return {
|
|
178
|
+
mode: match[1],
|
|
179
|
+
objectId: match[2],
|
|
180
|
+
stage: Number(match[3]),
|
|
181
|
+
path: match[4],
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
function parseGitIndexFlag(line) {
|
|
185
|
+
const match = line.match(/^([A-Za-z]) /);
|
|
186
|
+
if (!match) {
|
|
187
|
+
throw new Error(`Unable to parse git index flag entry: ${line}`);
|
|
188
|
+
}
|
|
189
|
+
return match[1];
|
|
190
|
+
}
|
|
191
|
+
function gitCommandExitCode(repoRoot, args) {
|
|
192
|
+
try {
|
|
193
|
+
(0, node_child_process_1.execFileSync)("git", args, {
|
|
194
|
+
cwd: repoRoot,
|
|
195
|
+
encoding: "utf8",
|
|
196
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
197
|
+
});
|
|
198
|
+
return 0;
|
|
199
|
+
}
|
|
200
|
+
catch (error) {
|
|
201
|
+
if (error instanceof Error &&
|
|
202
|
+
"status" in error &&
|
|
203
|
+
typeof error.status === "number") {
|
|
204
|
+
return error.status;
|
|
205
|
+
}
|
|
206
|
+
throw error;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
function runGit(repoRoot, args) {
|
|
210
|
+
return (0, node_child_process_1.execFileSync)("git", args, {
|
|
211
|
+
cwd: repoRoot,
|
|
212
|
+
encoding: "utf8",
|
|
213
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
function tryRunGit(repoRoot, args) {
|
|
217
|
+
try {
|
|
218
|
+
return runGit(repoRoot, args);
|
|
219
|
+
}
|
|
220
|
+
catch {
|
|
221
|
+
return null;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
//# sourceMappingURL=git-index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-index.js","sourceRoot":"","sources":["../src/git-index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { type PromptClient } from "./cli";
|
|
3
|
+
export interface RunOptions {
|
|
4
|
+
homeDir?: string;
|
|
5
|
+
cwd?: string;
|
|
6
|
+
prompts?: PromptClient;
|
|
7
|
+
}
|
|
8
|
+
/** Parses CLI arguments and executes the selected Skul command. */
|
|
9
|
+
export declare function run(argv: string[], options?: RunOptions): Promise<string>;
|
|
10
|
+
/**
|
|
11
|
+
* Throws when Skul is about to create or refresh a tracked root-instruction
|
|
12
|
+
* shadow on top of a Git path that is not in a safe state to overwrite.
|
|
13
|
+
*
|
|
14
|
+
* Callers typically run it before removing existing managed files and again as
|
|
15
|
+
* a write-time backstop during materialization.
|
|
16
|
+
*/
|
|
17
|
+
export declare function assertTrackedRootInstructionShadowSafety(options: {
|
|
18
|
+
repoRoot: string;
|
|
19
|
+
filePath: string;
|
|
20
|
+
operation: "create" | "refresh";
|
|
21
|
+
}): void;
|