xtctx 0.11.1 → 0.11.3
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/CHANGELOG.md +50 -0
- package/dist/src/cli/hook.d.ts.map +1 -1
- package/dist/src/cli/hook.js +25 -14
- package/dist/src/cli/hook.js.map +1 -1
- package/dist/src/cli/index.d.ts.map +1 -1
- package/dist/src/cli/index.js +16 -1
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/cli/setup.d.ts.map +1 -1
- package/dist/src/cli/setup.js +1 -2
- package/dist/src/cli/setup.js.map +1 -1
- package/dist/src/cli/status.d.ts.map +1 -1
- package/dist/src/cli/status.js +54 -5
- package/dist/src/cli/status.js.map +1 -1
- package/dist/src/config/disconnect.d.ts +2 -0
- package/dist/src/config/disconnect.d.ts.map +1 -1
- package/dist/src/config/disconnect.js +109 -27
- package/dist/src/config/disconnect.js.map +1 -1
- package/dist/src/config/managed-block.d.ts +29 -0
- package/dist/src/config/managed-block.d.ts.map +1 -0
- package/dist/src/config/managed-block.js +67 -0
- package/dist/src/config/managed-block.js.map +1 -0
- package/dist/src/config/mcp-config.d.ts +2 -0
- package/dist/src/config/mcp-config.d.ts.map +1 -1
- package/dist/src/config/mcp-config.js +101 -7
- package/dist/src/config/mcp-config.js.map +1 -1
- package/dist/src/config/setup.d.ts +2 -0
- package/dist/src/config/setup.d.ts.map +1 -1
- package/dist/src/config/setup.js +78 -37
- package/dist/src/config/setup.js.map +1 -1
- package/dist/src/config/skills.d.ts.map +1 -1
- package/dist/src/config/skills.js +4 -4
- package/dist/src/config/skills.js.map +1 -1
- package/dist/src/handoff/embeddings.d.ts +11 -0
- package/dist/src/handoff/embeddings.d.ts.map +1 -1
- package/dist/src/handoff/embeddings.js +74 -5
- package/dist/src/handoff/embeddings.js.map +1 -1
- package/dist/src/handoff/sqlite-index.d.ts +9 -0
- package/dist/src/handoff/sqlite-index.d.ts.map +1 -1
- package/dist/src/handoff/sqlite-index.js +285 -98
- package/dist/src/handoff/sqlite-index.js.map +1 -1
- package/dist/src/handoff/types.d.ts +6 -0
- package/dist/src/handoff/types.d.ts.map +1 -1
- package/dist/src/mcp/server.d.ts +1 -1
- package/dist/src/mcp/server.d.ts.map +1 -1
- package/dist/src/mcp/server.js +17 -8
- package/dist/src/mcp/server.js.map +1 -1
- package/dist/src/mcp/tools/continuity.d.ts +19 -1
- package/dist/src/mcp/tools/continuity.d.ts.map +1 -1
- package/dist/src/mcp/tools/continuity.js +27 -2
- package/dist/src/mcp/tools/continuity.js.map +1 -1
- package/dist/src/mcp/tools/manifest.d.ts.map +1 -1
- package/dist/src/mcp/tools/manifest.js +15 -6
- package/dist/src/mcp/tools/manifest.js.map +1 -1
- package/dist/src/mcp/tools/sessions.d.ts +9 -1
- package/dist/src/mcp/tools/sessions.d.ts.map +1 -1
- package/dist/src/mcp/tools/sessions.js +68 -9
- package/dist/src/mcp/tools/sessions.js.map +1 -1
- package/dist/src/runtime/services.d.ts.map +1 -1
- package/dist/src/runtime/services.js +22 -2
- package/dist/src/runtime/services.js.map +1 -1
- package/dist/src/scrapers/antigravity.d.ts +11 -0
- package/dist/src/scrapers/antigravity.d.ts.map +1 -1
- package/dist/src/scrapers/antigravity.js +47 -36
- package/dist/src/scrapers/antigravity.js.map +1 -1
- package/dist/src/scrapers/base.d.ts.map +1 -1
- package/dist/src/scrapers/base.js +4 -1
- package/dist/src/scrapers/base.js.map +1 -1
- package/dist/src/scrapers/claude-code.d.ts +17 -0
- package/dist/src/scrapers/claude-code.d.ts.map +1 -1
- package/dist/src/scrapers/claude-code.js +115 -59
- package/dist/src/scrapers/claude-code.js.map +1 -1
- package/dist/src/scrapers/codex.d.ts.map +1 -1
- package/dist/src/scrapers/codex.js +166 -153
- package/dist/src/scrapers/codex.js.map +1 -1
- package/dist/src/scrapers/copilot-cli.d.ts +2 -1
- package/dist/src/scrapers/copilot-cli.d.ts.map +1 -1
- package/dist/src/scrapers/copilot-cli.js +88 -3
- package/dist/src/scrapers/copilot-cli.js.map +1 -1
- package/dist/src/scrapers/cursor.d.ts.map +1 -1
- package/dist/src/scrapers/cursor.js +20 -9
- package/dist/src/scrapers/cursor.js.map +1 -1
- package/dist/src/scrapers/index.d.ts +7 -2
- package/dist/src/scrapers/index.d.ts.map +1 -1
- package/dist/src/scrapers/index.js +7 -2
- package/dist/src/scrapers/index.js.map +1 -1
- package/dist/src/scrapers/opencode.d.ts +2 -1
- package/dist/src/scrapers/opencode.d.ts.map +1 -1
- package/dist/src/scrapers/opencode.js +38 -9
- package/dist/src/scrapers/opencode.js.map +1 -1
- package/dist/src/tools/sources.d.ts.map +1 -1
- package/dist/src/tools/sources.js +2 -2
- package/dist/src/tools/sources.js.map +1 -1
- package/dist/src/utils/atomic-file.d.ts +8 -0
- package/dist/src/utils/atomic-file.d.ts.map +1 -0
- package/dist/src/utils/atomic-file.js +15 -0
- package/dist/src/utils/atomic-file.js.map +1 -0
- package/dist/src/utils/errors.d.ts +5 -0
- package/dist/src/utils/errors.d.ts.map +1 -1
- package/dist/src/utils/errors.js +9 -0
- package/dist/src/utils/errors.js.map +1 -1
- package/dist/src/utils/project-scope.d.ts +16 -0
- package/dist/src/utils/project-scope.d.ts.map +1 -1
- package/dist/src/utils/project-scope.js +18 -2
- package/dist/src/utils/project-scope.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Managed-block splicing shared by setup and disconnect.
|
|
3
|
+
*
|
|
4
|
+
* These helpers were duplicated across both modules, and an audit found the
|
|
5
|
+
* same defect in each copy: removal collapsed every run of 3+ newlines in the
|
|
6
|
+
* whole file — including inside user code fences — which the block's own text
|
|
7
|
+
* ("Content outside this managed block is preserved") promises never happens.
|
|
8
|
+
* Fixing it twice is what justifies one home for it.
|
|
9
|
+
*/
|
|
10
|
+
export declare const MARKERS: {
|
|
11
|
+
begin: string;
|
|
12
|
+
end: string;
|
|
13
|
+
};
|
|
14
|
+
export declare function normalizeNewlines(input: string): string;
|
|
15
|
+
export declare function escapeRegExp(value: string): string;
|
|
16
|
+
/**
|
|
17
|
+
* Remove every managed block, collapsing whitespace only at the splice seams
|
|
18
|
+
* so user content elsewhere in the file is byte-preserved.
|
|
19
|
+
*/
|
|
20
|
+
export declare function removeManagedBlocks(content: string): string;
|
|
21
|
+
/**
|
|
22
|
+
* True when the file is predominantly CRLF, so writers can put it back the
|
|
23
|
+
* way the author had it instead of silently reformatting the whole file.
|
|
24
|
+
*/
|
|
25
|
+
export declare function isCrlfDominant(content: string): boolean;
|
|
26
|
+
/** Re-apply a file's original line endings to rewritten content. */
|
|
27
|
+
export declare function matchLineEndings(content: string, original: string | null): string;
|
|
28
|
+
export declare function countManagedBlocks(content: string): number;
|
|
29
|
+
//# sourceMappingURL=managed-block.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managed-block.d.ts","sourceRoot":"","sources":["../../../src/config/managed-block.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,eAAO,MAAM,OAAO;;;CAGnB,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD;AASD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAoB3D;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAIvD;AAED,oEAAoE;AACpE,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAIjF;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE1D"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Managed-block splicing shared by setup and disconnect.
|
|
3
|
+
*
|
|
4
|
+
* These helpers were duplicated across both modules, and an audit found the
|
|
5
|
+
* same defect in each copy: removal collapsed every run of 3+ newlines in the
|
|
6
|
+
* whole file — including inside user code fences — which the block's own text
|
|
7
|
+
* ("Content outside this managed block is preserved") promises never happens.
|
|
8
|
+
* Fixing it twice is what justifies one home for it.
|
|
9
|
+
*/
|
|
10
|
+
export const MARKERS = {
|
|
11
|
+
begin: "<!-- xtctx:begin -->",
|
|
12
|
+
end: "<!-- xtctx:end -->",
|
|
13
|
+
};
|
|
14
|
+
export function normalizeNewlines(input) {
|
|
15
|
+
return input.replace(/\r\n/g, "\n");
|
|
16
|
+
}
|
|
17
|
+
export function escapeRegExp(value) {
|
|
18
|
+
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
19
|
+
}
|
|
20
|
+
function managedBlockPattern(trailingNewline) {
|
|
21
|
+
return new RegExp(`${escapeRegExp(MARKERS.begin)}[\\s\\S]*?${escapeRegExp(MARKERS.end)}${trailingNewline ? "\\n?" : ""}`, "g");
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Remove every managed block, collapsing whitespace only at the splice seams
|
|
25
|
+
* so user content elsewhere in the file is byte-preserved.
|
|
26
|
+
*/
|
|
27
|
+
export function removeManagedBlocks(content) {
|
|
28
|
+
const normalized = normalizeNewlines(content);
|
|
29
|
+
const parts = normalized.split(managedBlockPattern(true));
|
|
30
|
+
if (parts.length === 1) {
|
|
31
|
+
return normalized;
|
|
32
|
+
}
|
|
33
|
+
let result = parts[0];
|
|
34
|
+
for (let index = 1; index < parts.length; index += 1) {
|
|
35
|
+
const left = result.replace(/\n+$/, "");
|
|
36
|
+
const right = parts[index].replace(/^\n+/, "");
|
|
37
|
+
if (!left) {
|
|
38
|
+
result = right;
|
|
39
|
+
}
|
|
40
|
+
else if (!right) {
|
|
41
|
+
result = left;
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
result = `${left}\n\n${right}`;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return result;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* True when the file is predominantly CRLF, so writers can put it back the
|
|
51
|
+
* way the author had it instead of silently reformatting the whole file.
|
|
52
|
+
*/
|
|
53
|
+
export function isCrlfDominant(content) {
|
|
54
|
+
const crlf = content.match(/\r\n/g)?.length ?? 0;
|
|
55
|
+
const lf = content.match(/\n/g)?.length ?? 0;
|
|
56
|
+
return crlf > 0 && crlf * 2 > lf;
|
|
57
|
+
}
|
|
58
|
+
/** Re-apply a file's original line endings to rewritten content. */
|
|
59
|
+
export function matchLineEndings(content, original) {
|
|
60
|
+
return original !== null && isCrlfDominant(original)
|
|
61
|
+
? content.replace(/\r?\n/g, "\r\n")
|
|
62
|
+
: content;
|
|
63
|
+
}
|
|
64
|
+
export function countManagedBlocks(content) {
|
|
65
|
+
return normalizeNewlines(content).match(managedBlockPattern(false))?.length ?? 0;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=managed-block.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managed-block.js","sourceRoot":"","sources":["../../../src/config/managed-block.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,KAAK,EAAE,sBAAsB;IAC7B,GAAG,EAAE,oBAAoB;CAC1B,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,mBAAmB,CAAC,eAAwB;IACnD,OAAO,IAAI,MAAM,CACf,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EACtG,GAAG,CACJ,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,IAAI,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACtB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,GAAG,KAAK,CAAC;QACjB,CAAC;aAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,IAAI,OAAO,KAAK,EAAE,CAAC;QACjC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;IACjD,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;IAC7C,OAAO,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;AACnC,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,QAAuB;IACvE,OAAO,QAAQ,KAAK,IAAI,IAAI,cAAc,CAAC,QAAQ,CAAC;QAClD,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC;QACnC,CAAC,CAAC,OAAO,CAAC;AACd,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;AACnF,CAAC"}
|
|
@@ -19,6 +19,8 @@ export interface McpSyncResult {
|
|
|
19
19
|
created: boolean;
|
|
20
20
|
skipped: boolean;
|
|
21
21
|
warning?: string;
|
|
22
|
+
/** True when the config could not be read, parsed, or written at all. */
|
|
23
|
+
failed?: boolean;
|
|
22
24
|
}
|
|
23
25
|
export interface McpSyncSummary {
|
|
24
26
|
results: McpSyncResult[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-config.d.ts","sourceRoot":"","sources":["../../../src/config/mcp-config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mcp-config.d.ts","sourceRoot":"","sources":["../../../src/config/mcp-config.ts"],"names":[],"mappings":"AAQA;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,iBAAiB,CAAC;IAChD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,WAAW;IAC1B,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9C,4CAA4C;IAC5C,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IACzC;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvE;AAyED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGzD;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,mBAAmB,EAAE,EAC9B,YAAY,EAAE,MAAM,EAAE,EACtB,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GACjC,OAAO,CAAC,cAAc,CAAC,CA4CzB;AAED,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GACjC,OAAO,CAAC,gBAAgB,CAAC,CA4B3B"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { readFile, rm } from "node:fs/promises";
|
|
2
2
|
import { homedir } from "node:os";
|
|
3
|
-
import {
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
import { isDeepStrictEqual } from "node:util";
|
|
4
5
|
import { parse as parseToml, stringify as stringifyToml } from "@iarna/toml";
|
|
6
|
+
import { writeFileAtomic } from "../utils/atomic-file.js";
|
|
5
7
|
import { errorMessage } from "../utils/errors.js";
|
|
6
8
|
/**
|
|
7
9
|
* Tools with native MCP configuration support.
|
|
@@ -169,12 +171,26 @@ async function writeMcpConfig(tool, configPath, scope, renderer, servers) {
|
|
|
169
171
|
}
|
|
170
172
|
}
|
|
171
173
|
let existing = null;
|
|
174
|
+
let hadComments = false;
|
|
172
175
|
if (existingContent !== null) {
|
|
173
176
|
try {
|
|
174
177
|
existing = parseConfig(existingContent, format);
|
|
175
178
|
}
|
|
176
179
|
catch (error) {
|
|
177
|
-
|
|
180
|
+
// VS Code-family configs are JSONC in practice: retry with comments
|
|
181
|
+
// stripped before declaring the file unparsable.
|
|
182
|
+
if (format === "json") {
|
|
183
|
+
try {
|
|
184
|
+
existing = JSON.parse(stripJsonComments(existingContent));
|
|
185
|
+
hadComments = true;
|
|
186
|
+
}
|
|
187
|
+
catch {
|
|
188
|
+
return failedMcpSync(tool, configPath, scope, `Failed to parse existing MCP config; leaving it unchanged: ${errorMessage(error)}`);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
return failedMcpSync(tool, configPath, scope, `Failed to parse existing MCP config; leaving it unchanged: ${errorMessage(error)}`);
|
|
193
|
+
}
|
|
178
194
|
}
|
|
179
195
|
}
|
|
180
196
|
const serverEntries = buildServerEntries(servers, buildEntry);
|
|
@@ -190,8 +206,25 @@ async function writeMcpConfig(tool, configPath, scope, renderer, servers) {
|
|
|
190
206
|
skipped: true,
|
|
191
207
|
};
|
|
192
208
|
}
|
|
193
|
-
|
|
194
|
-
|
|
209
|
+
if (hadComments) {
|
|
210
|
+
// Rewriting would destroy the user's comments. If our entries are
|
|
211
|
+
// already present and identical the file is effectively up to date;
|
|
212
|
+
// otherwise leave it alone and say what to do.
|
|
213
|
+
if (existing && entriesUpToDate(existing, rootKey, serverEntries)) {
|
|
214
|
+
return { tool, path: configPath, scope, updated: false, created: false, skipped: true };
|
|
215
|
+
}
|
|
216
|
+
return {
|
|
217
|
+
tool,
|
|
218
|
+
path: configPath,
|
|
219
|
+
scope,
|
|
220
|
+
updated: false,
|
|
221
|
+
created: false,
|
|
222
|
+
skipped: true,
|
|
223
|
+
warning: `MCP config at ${configPath} contains comments, which xtctx will not rewrite. ` +
|
|
224
|
+
`Add the xtctx server entry manually or remove the comments so xtctx can manage it.`,
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
await writeFileAtomic(configPath, content);
|
|
195
228
|
return {
|
|
196
229
|
tool,
|
|
197
230
|
path: configPath,
|
|
@@ -211,6 +244,55 @@ function parseConfig(raw, format) {
|
|
|
211
244
|
}
|
|
212
245
|
return JSON.parse(raw);
|
|
213
246
|
}
|
|
247
|
+
/** Remove // and /* *\/ comments outside strings (JSONC tolerance). */
|
|
248
|
+
function stripJsonComments(raw) {
|
|
249
|
+
let out = "";
|
|
250
|
+
let inString = false;
|
|
251
|
+
let escaped = false;
|
|
252
|
+
for (let index = 0; index < raw.length; index += 1) {
|
|
253
|
+
const char = raw[index];
|
|
254
|
+
if (inString) {
|
|
255
|
+
out += char;
|
|
256
|
+
if (escaped) {
|
|
257
|
+
escaped = false;
|
|
258
|
+
}
|
|
259
|
+
else if (char === "\\") {
|
|
260
|
+
escaped = true;
|
|
261
|
+
}
|
|
262
|
+
else if (char === '"') {
|
|
263
|
+
inString = false;
|
|
264
|
+
}
|
|
265
|
+
continue;
|
|
266
|
+
}
|
|
267
|
+
if (char === '"') {
|
|
268
|
+
inString = true;
|
|
269
|
+
out += char;
|
|
270
|
+
continue;
|
|
271
|
+
}
|
|
272
|
+
if (char === "/" && raw[index + 1] === "/") {
|
|
273
|
+
while (index < raw.length && raw[index] !== "\n")
|
|
274
|
+
index += 1;
|
|
275
|
+
out += "\n";
|
|
276
|
+
continue;
|
|
277
|
+
}
|
|
278
|
+
if (char === "/" && raw[index + 1] === "*") {
|
|
279
|
+
index += 2;
|
|
280
|
+
while (index < raw.length && !(raw[index] === "*" && raw[index + 1] === "/"))
|
|
281
|
+
index += 1;
|
|
282
|
+
index += 1;
|
|
283
|
+
continue;
|
|
284
|
+
}
|
|
285
|
+
out += char;
|
|
286
|
+
}
|
|
287
|
+
return out;
|
|
288
|
+
}
|
|
289
|
+
function entriesUpToDate(existing, rootKey, serverEntries) {
|
|
290
|
+
const root = existing[rootKey];
|
|
291
|
+
if (!root || typeof root !== "object" || Array.isArray(root)) {
|
|
292
|
+
return false;
|
|
293
|
+
}
|
|
294
|
+
return Object.entries(serverEntries).every(([name, entry]) => isDeepStrictEqual(root[name], entry));
|
|
295
|
+
}
|
|
214
296
|
function serializeConfig(value, format) {
|
|
215
297
|
if (format === "toml") {
|
|
216
298
|
// @iarna/toml emits a final newline already; normalise to single trailing.
|
|
@@ -250,6 +332,7 @@ function failedMcpSync(tool, configPath, scope, warning) {
|
|
|
250
332
|
created: false,
|
|
251
333
|
skipped: false,
|
|
252
334
|
warning,
|
|
335
|
+
failed: true,
|
|
253
336
|
};
|
|
254
337
|
}
|
|
255
338
|
// ---------------------------------------------------------------------------
|
|
@@ -426,10 +509,21 @@ async function removeMcpConfig(tool, configPath, scope, renderer, serverName) {
|
|
|
426
509
|
}
|
|
427
510
|
delete existingEntries[serverName];
|
|
428
511
|
const updated = { ...existing, [rootKey]: existingEntries };
|
|
512
|
+
// If removing our entry leaves a project file that is nothing but an
|
|
513
|
+
// empty xtctx container, setup created it and disconnect owns removing it
|
|
514
|
+
// — leaving `{"mcp":{}}` behind is litter, not preservation. User-global
|
|
515
|
+
// app configs are left in place: they belong to the tool, not to us.
|
|
516
|
+
const onlyEmptyContainer = scope === "project" &&
|
|
517
|
+
Object.keys(existingEntries).length === 0 &&
|
|
518
|
+
Object.keys(updated).length === 1 &&
|
|
519
|
+
Object.prototype.hasOwnProperty.call(updated, rootKey);
|
|
520
|
+
if (onlyEmptyContainer) {
|
|
521
|
+
await rm(configPath, { force: true });
|
|
522
|
+
return { tool, path: configPath, scope, removed: true, skipped: false };
|
|
523
|
+
}
|
|
429
524
|
const content = serializeConfig(updated, format);
|
|
430
525
|
if (normalizeNewlines(existingContent) !== normalizeNewlines(content)) {
|
|
431
|
-
await
|
|
432
|
-
await writeFile(configPath, content, "utf-8");
|
|
526
|
+
await writeFileAtomic(configPath, content);
|
|
433
527
|
}
|
|
434
528
|
return {
|
|
435
529
|
tool,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-config.js","sourceRoot":"","sources":["../../../src/config/mcp-config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp-config.js","sourceRoot":"","sources":["../../../src/config/mcp-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/config/setup.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/config/setup.ts"],"names":[],"mappings":"AAUA,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,iBAAiB,CAAC;AASzB,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAChE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AASD,wBAAsB,QAAQ,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CAI/E;AAED,wBAAsB,YAAY,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CAuFnF;AAED,wBAAgB,iBAAiB,CAC/B,WAAW,CAAC,EAAE,MAAM,EACpB,gBAAgB,GAAE,MAAM,EAAsB,EAC9C,gBAAgB,UAAQ,GACvB;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,iBAAiB,EAAE,CAAC;CAC7B,CA0CA;AAkBD,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAClE,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B,CAAC,CAWD;AAED,wBAAgB,qBAAqB,IAAI,mBAAmB,CAO3D;AAuQD,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOnE"}
|
package/dist/src/config/setup.js
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import { mkdir, readFile, rm, stat
|
|
2
|
-
import {
|
|
1
|
+
import { mkdir, readFile, rm, stat } from "node:fs/promises";
|
|
2
|
+
import { join, resolve } from "node:path";
|
|
3
|
+
import { writeFileAtomic } from "../utils/atomic-file.js";
|
|
4
|
+
import { MARKERS, countManagedBlocks, matchLineEndings, removeManagedBlocks, } from "./managed-block.js";
|
|
3
5
|
import { stringify as stringifyYaml } from "yaml";
|
|
4
6
|
import { isGlobalOnlyMcpTool, syncToolMcpConfigs, } from "./mcp-config.js";
|
|
5
7
|
import { renderSyncedSkillsBlock, syncProjectSkills, } from "./skills.js";
|
|
6
8
|
import { SUPPORTED_TOOLS } from "../tools/sources.js";
|
|
7
|
-
const MARKERS = {
|
|
8
|
-
begin: "<!-- xtctx:begin -->",
|
|
9
|
-
end: "<!-- xtctx:end -->",
|
|
10
|
-
};
|
|
11
9
|
export async function runSetup(options = {}) {
|
|
12
10
|
const result = await setupProject(options);
|
|
13
11
|
printSetupResult(result);
|
|
@@ -20,6 +18,7 @@ export async function setupProject(options = {}) {
|
|
|
20
18
|
const configPath = join(xtctxDir, "config.yaml");
|
|
21
19
|
const writes = [];
|
|
22
20
|
const warnings = [];
|
|
21
|
+
const failures = [];
|
|
23
22
|
if (options.repair) {
|
|
24
23
|
await rm(join(xtctxDir, ".store"), { recursive: true, force: true });
|
|
25
24
|
await rm(stateDir, { recursive: true, force: true });
|
|
@@ -39,6 +38,14 @@ export async function setupProject(options = {}) {
|
|
|
39
38
|
kind: "config",
|
|
40
39
|
changed: await writeIfChanged(configPath, renderProjectConfig(projectRoot, skillSync.config)),
|
|
41
40
|
});
|
|
41
|
+
// The index holds raw transcript text from every configured tool, so
|
|
42
|
+
// committing it would publish conversation content. config.yaml and
|
|
43
|
+
// skills/ are project config and stay committable.
|
|
44
|
+
writes.push({
|
|
45
|
+
path: join(xtctxDir, ".gitignore"),
|
|
46
|
+
kind: "gitignore",
|
|
47
|
+
changed: await writeIfChanged(join(xtctxDir, ".gitignore"), ["# Local transcript index — never commit (holds raw conversation text).", "state/", ""].join("\n")),
|
|
48
|
+
});
|
|
42
49
|
const serverDefinition = xtctxServerDefinition();
|
|
43
50
|
const mcpSummary = await syncToolMcpConfigs(projectRoot, [serverDefinition], supportedMcpTools(options.includeGlobalMcp), options.homeDir ? { homeDir: options.homeDir } : {});
|
|
44
51
|
for (const file of mcpSummary.results) {
|
|
@@ -47,7 +54,10 @@ export async function setupProject(options = {}) {
|
|
|
47
54
|
kind: `mcp:${file.tool}`,
|
|
48
55
|
changed: file.updated || file.created,
|
|
49
56
|
});
|
|
50
|
-
if (file.warning) {
|
|
57
|
+
if (file.failed && file.warning) {
|
|
58
|
+
failures.push(file.warning);
|
|
59
|
+
}
|
|
60
|
+
else if (file.warning) {
|
|
51
61
|
warnings.push(file.warning);
|
|
52
62
|
}
|
|
53
63
|
}
|
|
@@ -66,17 +76,18 @@ export async function setupProject(options = {}) {
|
|
|
66
76
|
});
|
|
67
77
|
}
|
|
68
78
|
writes.push({
|
|
69
|
-
path: join(projectRoot, ".claude", "
|
|
79
|
+
path: join(projectRoot, ".claude", "settings.json"),
|
|
70
80
|
kind: "hook:claude-code",
|
|
71
81
|
changed: await installClaudeHook(projectRoot),
|
|
72
82
|
});
|
|
73
|
-
return { projectRoot, configPath, writes, warnings };
|
|
83
|
+
return { projectRoot, configPath, writes, warnings, failures };
|
|
74
84
|
}
|
|
75
85
|
export function describeSetupPlan(projectPath, selectedSkillIds = ["xtctx-handoff"], includeGlobalMcp = false) {
|
|
76
86
|
const projectRoot = resolve(projectPath ?? process.cwd());
|
|
77
87
|
const skillIds = [...new Set(["xtctx-handoff", ...selectedSkillIds])];
|
|
78
88
|
const writes = [
|
|
79
89
|
{ path: join(projectRoot, ".xtctx", "config.yaml"), kind: "config" },
|
|
90
|
+
{ path: join(projectRoot, ".xtctx", ".gitignore"), kind: "gitignore" },
|
|
80
91
|
{ path: join(projectRoot, ".mcp.json"), kind: "mcp:claude-code" },
|
|
81
92
|
{ path: join(projectRoot, ".cursor", "mcp.json"), kind: "mcp:cursor" },
|
|
82
93
|
{ path: join(projectRoot, ".vscode", "mcp.json"), kind: "mcp:copilot" },
|
|
@@ -87,7 +98,7 @@ export function describeSetupPlan(projectPath, selectedSkillIds = ["xtctx-handof
|
|
|
87
98
|
{ path: join(projectRoot, "GEMINI.md"), kind: "memory:antigravity" },
|
|
88
99
|
{ path: join(projectRoot, ".cursor", "rules", "xtctx.mdc"), kind: "memory:cursor" },
|
|
89
100
|
{ path: join(projectRoot, ".github", "copilot-instructions.md"), kind: "memory:copilot" },
|
|
90
|
-
{ path: join(projectRoot, ".claude", "
|
|
101
|
+
{ path: join(projectRoot, ".claude", "settings.json"), kind: "hook:claude-code" },
|
|
91
102
|
];
|
|
92
103
|
for (const skillId of skillIds) {
|
|
93
104
|
writes.push({ path: join(projectRoot, ".xtctx", "skills", skillId, "SKILL.md"), kind: `skill-source:${skillId}` }, { path: join(projectRoot, ".claude", "skills", skillId, "SKILL.md"), kind: `skill:claude-code:${skillId}` }, { path: join(projectRoot, ".cursor", "rules", "xtctx-skills", `${skillId}.mdc`), kind: `skill:cursor:${skillId}` }, {
|
|
@@ -231,38 +242,70 @@ function renderManagedBlock(input) {
|
|
|
231
242
|
"",
|
|
232
243
|
].join("\n");
|
|
233
244
|
}
|
|
245
|
+
const CLAUDE_HOOK_MARKER = "xtctx --hook session-start";
|
|
246
|
+
// Claude Code runs hooks with cwd = project root, so the command stays
|
|
247
|
+
// path-independent — no shell-quoted absolute path to get injection wrong.
|
|
248
|
+
const CLAUDE_HOOK_COMMAND = "npx -y xtctx --hook session-start --tool claude-code";
|
|
234
249
|
async function installClaudeHook(projectRoot) {
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
250
|
+
// Claude Code reads hooks from .claude/settings.json (matcher-group shape).
|
|
251
|
+
// Earlier xtctx versions wrote a flat array to .claude/hooks.json, which
|
|
252
|
+
// Claude Code never loads — migrate those entries out.
|
|
253
|
+
const legacyChanged = await removeLegacyClaudeHook(join(projectRoot, ".claude", "hooks.json"));
|
|
254
|
+
const settingsPath = join(projectRoot, ".claude", "settings.json");
|
|
255
|
+
const existing = await readJsonIfExists(settingsPath);
|
|
238
256
|
const root = isRecord(existing) ? existing : {};
|
|
239
257
|
const hooks = isRecord(root.hooks) ? root.hooks : {};
|
|
240
258
|
const sessionStart = Array.isArray(hooks.SessionStart) ? hooks.SessionStart : [];
|
|
241
|
-
const alreadyInstalled = sessionStart.some((
|
|
259
|
+
const alreadyInstalled = sessionStart.some((group) => isRecord(group) &&
|
|
260
|
+
Array.isArray(group.hooks) &&
|
|
261
|
+
group.hooks.some((hook) => isRecord(hook) &&
|
|
262
|
+
typeof hook.command === "string" &&
|
|
263
|
+
hook.command.includes(CLAUDE_HOOK_MARKER)));
|
|
242
264
|
if (alreadyInstalled) {
|
|
243
|
-
return
|
|
265
|
+
return legacyChanged;
|
|
244
266
|
}
|
|
245
|
-
hooks.SessionStart = [
|
|
267
|
+
hooks.SessionStart = [
|
|
268
|
+
...sessionStart,
|
|
269
|
+
{ hooks: [{ type: "command", command: CLAUDE_HOOK_COMMAND }] },
|
|
270
|
+
];
|
|
246
271
|
root.hooks = hooks;
|
|
247
|
-
|
|
272
|
+
const changed = await writeIfChanged(settingsPath, JSON.stringify(root, null, 2) + "\n");
|
|
273
|
+
return changed || legacyChanged;
|
|
274
|
+
}
|
|
275
|
+
async function removeLegacyClaudeHook(hooksPath) {
|
|
276
|
+
const existing = await readJsonIfExists(hooksPath);
|
|
277
|
+
if (!isRecord(existing) || !isRecord(existing.hooks)) {
|
|
278
|
+
return false;
|
|
279
|
+
}
|
|
280
|
+
const hooks = existing.hooks;
|
|
281
|
+
const sessionStart = Array.isArray(hooks.SessionStart) ? hooks.SessionStart : [];
|
|
282
|
+
const kept = sessionStart.filter((entry) => !(isRecord(entry) &&
|
|
283
|
+
typeof entry.command === "string" &&
|
|
284
|
+
entry.command.includes(CLAUDE_HOOK_MARKER)));
|
|
285
|
+
if (kept.length === sessionStart.length) {
|
|
286
|
+
return false;
|
|
287
|
+
}
|
|
288
|
+
const otherHookKeys = Object.keys(hooks).filter((key) => key !== "SessionStart");
|
|
289
|
+
const otherRootKeys = Object.keys(existing).filter((key) => key !== "hooks");
|
|
290
|
+
if (kept.length === 0 && otherHookKeys.length === 0 && otherRootKeys.length === 0) {
|
|
291
|
+
// The file held nothing but the entry we wrote; remove it entirely.
|
|
292
|
+
await rm(hooksPath, { force: true });
|
|
293
|
+
return true;
|
|
294
|
+
}
|
|
295
|
+
hooks.SessionStart = kept;
|
|
296
|
+
return writeIfChanged(hooksPath, JSON.stringify(existing, null, 2) + "\n");
|
|
248
297
|
}
|
|
249
298
|
async function upsertManagedBlock(filePath, block, prelude = "") {
|
|
250
299
|
const existing = await readUtf8IfExists(filePath);
|
|
251
300
|
const repaired = existing ? removeManagedBlocks(existing).trimEnd() : "";
|
|
252
|
-
|
|
301
|
+
// A file that already opens with YAML frontmatter keeps it — prepending
|
|
302
|
+
// the prelude again would produce a second, invalid frontmatter block.
|
|
303
|
+
const hasFrontmatter = repaired.startsWith("---");
|
|
304
|
+
const prefix = prelude && !hasFrontmatter && !repaired.startsWith(prelude.trimEnd()) ? prelude : "";
|
|
253
305
|
const separator = repaired.length > 0 ? "\n\n" : "";
|
|
254
306
|
const content = `${prefix}${repaired}${separator}${block}`;
|
|
255
307
|
return writeIfChanged(filePath, content);
|
|
256
308
|
}
|
|
257
|
-
function removeManagedBlocks(content) {
|
|
258
|
-
const normalized = normalizeNewlines(content);
|
|
259
|
-
const pattern = new RegExp(`${escapeRegExp(MARKERS.begin)}[\\s\\S]*?${escapeRegExp(MARKERS.end)}\\n?`, "g");
|
|
260
|
-
return normalized.replace(pattern, "").replace(/\n{3,}/g, "\n\n");
|
|
261
|
-
}
|
|
262
|
-
function countManagedBlocks(content) {
|
|
263
|
-
const pattern = new RegExp(`${escapeRegExp(MARKERS.begin)}[\\s\\S]*?${escapeRegExp(MARKERS.end)}`, "g");
|
|
264
|
-
return content.match(pattern)?.length ?? 0;
|
|
265
|
-
}
|
|
266
309
|
function findStaleReferences(content) {
|
|
267
310
|
const stale = [
|
|
268
311
|
{ label: "xtctx serve", pattern: /\bxtctx\s+serve\b/ },
|
|
@@ -276,13 +319,14 @@ function findStaleReferences(content) {
|
|
|
276
319
|
return stale.filter((value) => value.pattern.test(content)).map((value) => value.label);
|
|
277
320
|
}
|
|
278
321
|
async function writeIfChanged(filePath, content) {
|
|
279
|
-
const normalized = normalizeNewlines(content);
|
|
280
322
|
const existing = await readUtf8IfExists(filePath);
|
|
281
|
-
|
|
323
|
+
// Preserve the existing file's dominant line endings instead of silently
|
|
324
|
+
// converting a CRLF-authored file to LF.
|
|
325
|
+
const finalContent = matchLineEndings(content, existing);
|
|
326
|
+
if (existing !== null && existing === finalContent) {
|
|
282
327
|
return false;
|
|
283
328
|
}
|
|
284
|
-
await
|
|
285
|
-
await writeFile(filePath, normalized, "utf-8");
|
|
329
|
+
await writeFileAtomic(filePath, finalContent);
|
|
286
330
|
return true;
|
|
287
331
|
}
|
|
288
332
|
async function readUtf8IfExists(filePath) {
|
|
@@ -316,12 +360,9 @@ function printSetupResult(result) {
|
|
|
316
360
|
for (const warning of result.warnings) {
|
|
317
361
|
process.stdout.write(` warning ${warning}\n`);
|
|
318
362
|
}
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
}
|
|
323
|
-
function escapeRegExp(value) {
|
|
324
|
-
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
363
|
+
for (const failure of result.failures) {
|
|
364
|
+
process.stdout.write(` error ${failure}\n`);
|
|
365
|
+
}
|
|
325
366
|
}
|
|
326
367
|
function isRecord(value) {
|
|
327
368
|
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|