ctxloom-pro 1.3.1 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js
CHANGED
|
@@ -49,7 +49,7 @@ import {
|
|
|
49
49
|
validateDefaultRoot,
|
|
50
50
|
wrapWithIndexingEnvelope,
|
|
51
51
|
writeCODEOWNERS
|
|
52
|
-
} from "./chunk-
|
|
52
|
+
} from "./chunk-7GZVGIQL.js";
|
|
53
53
|
import {
|
|
54
54
|
VectorStore
|
|
55
55
|
} from "./chunk-DVI2RWJR.js";
|
|
@@ -1019,7 +1019,7 @@ try {
|
|
|
1019
1019
|
} catch {
|
|
1020
1020
|
}
|
|
1021
1021
|
var args = process.argv.slice(2);
|
|
1022
|
-
var ctxloomVersion = "1.
|
|
1022
|
+
var ctxloomVersion = "1.4.0".length > 0 ? "1.4.0" : "dev";
|
|
1023
1023
|
if (args.includes("--version") || args.includes("-v")) {
|
|
1024
1024
|
process.stdout.write(`ctxloom ${ctxloomVersion}
|
|
1025
1025
|
`);
|
|
@@ -1092,7 +1092,7 @@ async function checkLicense() {
|
|
|
1092
1092
|
if (command !== void 0 && LICENSE_GATE_BYPASS_COMMANDS.has(command)) return;
|
|
1093
1093
|
const ciKey = process.env["CTXLOOM_LICENSE_KEY"];
|
|
1094
1094
|
if (ciKey) {
|
|
1095
|
-
const { ApiClient } = await import("./src-
|
|
1095
|
+
const { ApiClient } = await import("./src-CH2OSHKF.js");
|
|
1096
1096
|
const client = new ApiClient(process.env["CTXLOOM_API_BASE"]);
|
|
1097
1097
|
try {
|
|
1098
1098
|
const result = await client.validate(ciKey, "ci-ephemeral");
|
|
@@ -1444,6 +1444,9 @@ async function main() {
|
|
|
1444
1444
|
process.stdout.write(` ${style.dim("Root:")} ${initRoot}
|
|
1445
1445
|
|
|
1446
1446
|
`);
|
|
1447
|
+
const skipHarness = process.argv.includes("--skip-harness");
|
|
1448
|
+
const dryRun = process.argv.includes("--dry-run");
|
|
1449
|
+
const force = process.argv.includes("--force");
|
|
1447
1450
|
try {
|
|
1448
1451
|
const result = runInit(initRoot);
|
|
1449
1452
|
const mcpLabel = result.mcpJson.created ? `${style.bold("Created")} ${result.mcpJson.path}` : result.mcpJson.merged ? `${style.bold("Merged ctxloom entry into")} ${result.mcpJson.path}` : `${style.dim("Already up to date:")} ${result.mcpJson.path}`;
|
|
@@ -1456,10 +1459,33 @@ async function main() {
|
|
|
1456
1459
|
process.stdout.write(` ${warn(w)}
|
|
1457
1460
|
`);
|
|
1458
1461
|
}
|
|
1462
|
+
if (!skipHarness) {
|
|
1463
|
+
process.stdout.write("\n");
|
|
1464
|
+
const { installHarness } = await import("./src-CH2OSHKF.js");
|
|
1465
|
+
const h = installHarness({ cwd: initRoot, dryRun, force });
|
|
1466
|
+
const harnessFiles = [
|
|
1467
|
+
h.claudeMd,
|
|
1468
|
+
h.agentsMd,
|
|
1469
|
+
h.geminiMd,
|
|
1470
|
+
h.hooksJson,
|
|
1471
|
+
h.sessionStartSh,
|
|
1472
|
+
...h.skills
|
|
1473
|
+
];
|
|
1474
|
+
for (const fr of harnessFiles) {
|
|
1475
|
+
const rel = path4.relative(initRoot, fr.path);
|
|
1476
|
+
const label = fr.alreadyCorrect ? `${style.dim("Already up to date:")} ${rel}` : fr.created ? `${style.bold(dryRun ? "Would create" : "Created")} ${rel}` : `${style.bold(dryRun ? "Would update" : "Updated")} ${rel}`;
|
|
1477
|
+
process.stdout.write(` ${success(label)}
|
|
1478
|
+
`);
|
|
1479
|
+
}
|
|
1480
|
+
for (const w of h.warnings) {
|
|
1481
|
+
process.stdout.write(` ${warn(w)}
|
|
1482
|
+
`);
|
|
1483
|
+
}
|
|
1484
|
+
}
|
|
1459
1485
|
process.stdout.write("\n");
|
|
1460
1486
|
process.stdout.write(nextStep("Build the index", "ctxloom index"));
|
|
1461
1487
|
process.stdout.write(
|
|
1462
|
-
` ${style.dim("Then reopen your AI tool in this directory to pick up the new .mcp.json.")}
|
|
1488
|
+
` ${style.dim("Then reopen your AI tool in this directory to pick up the new .mcp.json + hooks.")}
|
|
1463
1489
|
|
|
1464
1490
|
`
|
|
1465
1491
|
);
|
|
@@ -1497,7 +1523,7 @@ async function main() {
|
|
|
1497
1523
|
process.exit(1);
|
|
1498
1524
|
}
|
|
1499
1525
|
if (alias !== void 0) {
|
|
1500
|
-
const { validateAlias } = await import("./src-
|
|
1526
|
+
const { validateAlias } = await import("./src-CH2OSHKF.js");
|
|
1501
1527
|
const v = validateAlias(alias);
|
|
1502
1528
|
if (!v.ok) {
|
|
1503
1529
|
console.error(`[ctxloom] Invalid alias: ${v.reason}`);
|
|
@@ -1761,7 +1787,7 @@ Suggested reviewers for ${files.length} file(s):`);
|
|
|
1761
1787
|
process.stderr.write("[ctxloom] --limit must be a non-negative integer (0 for unlimited)\n");
|
|
1762
1788
|
process.exit(2);
|
|
1763
1789
|
}
|
|
1764
|
-
const { loadRulesConfig, RulesChecker, formatText, formatJson, RulesConfigError } = await import("./src-
|
|
1790
|
+
const { loadRulesConfig, RulesChecker, formatText, formatJson, RulesConfigError } = await import("./src-CH2OSHKF.js");
|
|
1765
1791
|
let config;
|
|
1766
1792
|
try {
|
|
1767
1793
|
config = await loadRulesConfig(root);
|
|
@@ -1785,7 +1811,7 @@ Suggested reviewers for ${files.length} file(s):`);
|
|
|
1785
1811
|
}
|
|
1786
1812
|
let graph;
|
|
1787
1813
|
if (useSnapshot) {
|
|
1788
|
-
const { DependencyGraph: DG } = await import("./src-
|
|
1814
|
+
const { DependencyGraph: DG } = await import("./src-CH2OSHKF.js");
|
|
1789
1815
|
graph = new DG();
|
|
1790
1816
|
const loaded = await graph.loadSnapshotOnly(root);
|
|
1791
1817
|
if (!loaded) {
|
|
@@ -1794,7 +1820,7 @@ Suggested reviewers for ${files.length} file(s):`);
|
|
|
1794
1820
|
}
|
|
1795
1821
|
} else {
|
|
1796
1822
|
process.stderr.write("[ctxloom] Building dependency graph...\n");
|
|
1797
|
-
const { ASTParser: ASTParser2, DependencyGraph: DependencyGraph2 } = await import("./src-
|
|
1823
|
+
const { ASTParser: ASTParser2, DependencyGraph: DependencyGraph2 } = await import("./src-CH2OSHKF.js");
|
|
1798
1824
|
let parser;
|
|
1799
1825
|
try {
|
|
1800
1826
|
parser = new ASTParser2();
|
|
@@ -3,10 +3,13 @@ import {
|
|
|
3
3
|
ApiClient,
|
|
4
4
|
AuthorResolver,
|
|
5
5
|
BAND_PCT,
|
|
6
|
+
CTXLOOM_HOOK_ENTRIES,
|
|
7
|
+
CTXLOOM_SKILLS,
|
|
6
8
|
CallGraphIndex,
|
|
7
9
|
ChurnIndex,
|
|
8
10
|
CoChangeIndex,
|
|
9
11
|
CommunityDetector,
|
|
12
|
+
DEFAULT_HMAC_KEY,
|
|
10
13
|
DEFAULT_REVIEW_CONFIG,
|
|
11
14
|
DependencyGraph,
|
|
12
15
|
EmailAlreadyUsedError,
|
|
@@ -30,11 +33,14 @@ import {
|
|
|
30
33
|
PathValidator,
|
|
31
34
|
ProjectStateManager,
|
|
32
35
|
RISK_WEIGHTS,
|
|
36
|
+
RULES_BLOCK_CONTENT,
|
|
37
|
+
RULES_BLOCK_NAME,
|
|
33
38
|
RepoRegistry,
|
|
34
39
|
RuleManager,
|
|
35
40
|
RulesChecker,
|
|
36
41
|
RulesConfigError,
|
|
37
42
|
SCORE_FLOOR,
|
|
43
|
+
SESSION_START_FULL,
|
|
38
44
|
SILO_BUS_FACTOR,
|
|
39
45
|
SeatLimitError,
|
|
40
46
|
Skeletonizer,
|
|
@@ -48,6 +54,7 @@ import {
|
|
|
48
54
|
buildBlastRadiusXml,
|
|
49
55
|
buildCodeownersBlock,
|
|
50
56
|
captureError,
|
|
57
|
+
computeBlockHmac,
|
|
51
58
|
computeRiskBreakdown,
|
|
52
59
|
computeRiskCaps,
|
|
53
60
|
createProjectState,
|
|
@@ -56,6 +63,7 @@ import {
|
|
|
56
63
|
detectChanges,
|
|
57
64
|
disposeProjectState,
|
|
58
65
|
ensureVectorsInitialized,
|
|
66
|
+
extractBlock,
|
|
59
67
|
extractImports,
|
|
60
68
|
extractNotebookLanguage,
|
|
61
69
|
extractNotebookPythonSource,
|
|
@@ -70,6 +78,7 @@ import {
|
|
|
70
78
|
getOrCreateDistinctId,
|
|
71
79
|
getTelemetryLevel,
|
|
72
80
|
hashProjectRoot,
|
|
81
|
+
installHarness,
|
|
73
82
|
isActive,
|
|
74
83
|
isSiloed,
|
|
75
84
|
listNamedSnapshots,
|
|
@@ -87,6 +96,7 @@ import {
|
|
|
87
96
|
recordTrendSnapshot,
|
|
88
97
|
renderStatusXml,
|
|
89
98
|
requireActive,
|
|
99
|
+
resolveHmacKey,
|
|
90
100
|
resolveImport,
|
|
91
101
|
resolveProjectRoot,
|
|
92
102
|
resolveViaGitHubApi,
|
|
@@ -97,13 +107,17 @@ import {
|
|
|
97
107
|
shouldEmitFirstReviewRun,
|
|
98
108
|
shouldEmitInstallCompleted,
|
|
99
109
|
shouldShowTelemetryNotice,
|
|
110
|
+
skillFilePath,
|
|
100
111
|
startTrial,
|
|
101
112
|
track,
|
|
113
|
+
upsertBlock,
|
|
102
114
|
validateAlias,
|
|
103
115
|
validateDefaultRoot,
|
|
116
|
+
verifyBlock,
|
|
117
|
+
wrapBlock,
|
|
104
118
|
wrapWithIndexingEnvelope,
|
|
105
119
|
writeCODEOWNERS
|
|
106
|
-
} from "./chunk-
|
|
120
|
+
} from "./chunk-7GZVGIQL.js";
|
|
107
121
|
import {
|
|
108
122
|
VectorStore
|
|
109
123
|
} from "./chunk-DVI2RWJR.js";
|
|
@@ -122,10 +136,13 @@ export {
|
|
|
122
136
|
ApiClient,
|
|
123
137
|
AuthorResolver,
|
|
124
138
|
BAND_PCT,
|
|
139
|
+
CTXLOOM_HOOK_ENTRIES,
|
|
140
|
+
CTXLOOM_SKILLS,
|
|
125
141
|
CallGraphIndex,
|
|
126
142
|
ChurnIndex,
|
|
127
143
|
CoChangeIndex,
|
|
128
144
|
CommunityDetector,
|
|
145
|
+
DEFAULT_HMAC_KEY,
|
|
129
146
|
DEFAULT_REVIEW_CONFIG,
|
|
130
147
|
DependencyGraph,
|
|
131
148
|
EMBEDDING_DIMENSION,
|
|
@@ -150,11 +167,14 @@ export {
|
|
|
150
167
|
PathValidator,
|
|
151
168
|
ProjectStateManager,
|
|
152
169
|
RISK_WEIGHTS,
|
|
170
|
+
RULES_BLOCK_CONTENT,
|
|
171
|
+
RULES_BLOCK_NAME,
|
|
153
172
|
RepoRegistry,
|
|
154
173
|
RuleManager,
|
|
155
174
|
RulesChecker,
|
|
156
175
|
RulesConfigError,
|
|
157
176
|
SCORE_FLOOR,
|
|
177
|
+
SESSION_START_FULL,
|
|
158
178
|
SILO_BUS_FACTOR,
|
|
159
179
|
SeatLimitError,
|
|
160
180
|
Skeletonizer,
|
|
@@ -170,6 +190,7 @@ export {
|
|
|
170
190
|
buildCodeownersBlock,
|
|
171
191
|
captureError,
|
|
172
192
|
collectFiles,
|
|
193
|
+
computeBlockHmac,
|
|
173
194
|
computeRiskBreakdown,
|
|
174
195
|
computeRiskCaps,
|
|
175
196
|
createProjectState,
|
|
@@ -178,6 +199,7 @@ export {
|
|
|
178
199
|
detectChanges,
|
|
179
200
|
disposeProjectState,
|
|
180
201
|
ensureVectorsInitialized,
|
|
202
|
+
extractBlock,
|
|
181
203
|
extractImports,
|
|
182
204
|
extractNotebookLanguage,
|
|
183
205
|
extractNotebookPythonSource,
|
|
@@ -194,6 +216,7 @@ export {
|
|
|
194
216
|
getTelemetryLevel,
|
|
195
217
|
hashProjectRoot,
|
|
196
218
|
indexDirectory,
|
|
219
|
+
installHarness,
|
|
197
220
|
isActive,
|
|
198
221
|
isSiloed,
|
|
199
222
|
listNamedSnapshots,
|
|
@@ -212,6 +235,7 @@ export {
|
|
|
212
235
|
recordTrendSnapshot,
|
|
213
236
|
renderStatusXml,
|
|
214
237
|
requireActive,
|
|
238
|
+
resolveHmacKey,
|
|
215
239
|
resolveImport,
|
|
216
240
|
resolveProjectRoot,
|
|
217
241
|
resolveViaGitHubApi,
|
|
@@ -222,11 +246,15 @@ export {
|
|
|
222
246
|
shouldEmitFirstReviewRun,
|
|
223
247
|
shouldEmitInstallCompleted,
|
|
224
248
|
shouldShowTelemetryNotice,
|
|
249
|
+
skillFilePath,
|
|
225
250
|
startTrial,
|
|
226
251
|
track,
|
|
252
|
+
upsertBlock,
|
|
227
253
|
validateAlias,
|
|
228
254
|
validateDefaultRoot,
|
|
255
|
+
verifyBlock,
|
|
256
|
+
wrapBlock,
|
|
229
257
|
wrapWithIndexingEnvelope,
|
|
230
258
|
writeCODEOWNERS
|
|
231
259
|
};
|
|
232
|
-
//# sourceMappingURL=src-
|
|
260
|
+
//# sourceMappingURL=src-CH2OSHKF.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ctxloom-pro",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "ctxloom — The Universal Code Context Engine. A local-first MCP server providing intelligent code context via hybrid Vector + AST + Graph search with Skeletonization (92% token reduction).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|