ctxloom-pro 1.5.0 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -47,7 +47,7 @@ The full first-run flow is **one install + one trial + one init per project.** E
47
47
  npm install -g ctxloom-pro
48
48
  ```
49
49
 
50
- > **For local trial / dev use the unpinned command above is fine.** For unattended CI usage, pin to the exact version (`ctxloom-pro@1.5.0`) so future CLI releases don't silently desync your agent-spec coverage — see the workflow example below.
50
+ > **For local trial / dev use the unpinned command above is fine.** For unattended CI usage, pin to the exact version (`ctxloom-pro@1.5.1`) so future CLI releases don't silently desync your agent-spec coverage — see the workflow example below.
51
51
 
52
52
  ### 2 — Start your free trial (once per email)
53
53
 
@@ -346,7 +346,7 @@ jobs:
346
346
  # Exact pin (not `@^1`) so future CLI releases that add/remove MCP
347
347
  # tools don't silently desync your reviewer-agent specs. Bump on
348
348
  # every release; see CHANGELOG.md for the live version table.
349
- - run: npm install -g ctxloom-pro@1.5.0
349
+ - run: npm install -g ctxloom-pro@1.5.1
350
350
  - run: ctxloom index
351
351
  - run: ctxloom rules check --json
352
352
  ```
@@ -11452,7 +11452,7 @@ function resolveTelemetryLevel() {
11452
11452
  }
11453
11453
  var TELEMETRY_LEVEL = resolveTelemetryLevel();
11454
11454
  var TELEMETRY_DISABLED = TELEMETRY_LEVEL === "off";
11455
- var CTXLOOM_VERSION = "1.5.0".length > 0 ? "1.5.0" : "dev";
11455
+ var CTXLOOM_VERSION = "1.5.1".length > 0 ? "1.5.1" : "dev";
11456
11456
  var POSTHOG_HOST = "https://eu.i.posthog.com";
11457
11457
  var POSTHOG_KEY = process.env["POSTHOG_API_KEY"] ?? (true ? "phc_CiDkmFLcZ2K6uCpcoSUQLmFrnnUvsyXGhSxopX5TVKE6" : "");
11458
11458
  var SENTRY_DSN = process.env["SENTRY_DSN"] ?? (true ? "https://81c94a0f04a8e242dee493ac1e17f733@o4508531702497280.ingest.de.sentry.io/4511256875368528" : "");
@@ -4633,7 +4633,7 @@ function learnSuggestionsFromTelemetry(opts = {}) {
4633
4633
  const tok = raw.original_tokens;
4634
4634
  if (typeof tok === "number" && Number.isFinite(tok)) {
4635
4635
  const acc = tokenSums.get(raw.tool) ?? { sum: 0, n: 0 };
4636
- acc.sum += tok;
4636
+ acc.sum += clampTokens(tok);
4637
4637
  acc.n += 1;
4638
4638
  tokenSums.set(raw.tool, acc);
4639
4639
  }
@@ -10205,7 +10205,7 @@ var TELEMETRY_DISABLED = TELEMETRY_LEVEL === "off";
10205
10205
  function getTelemetryLevel() {
10206
10206
  return TELEMETRY_LEVEL;
10207
10207
  }
10208
- var CTXLOOM_VERSION = "1.5.0".length > 0 ? "1.5.0" : "dev";
10208
+ var CTXLOOM_VERSION = "1.5.1".length > 0 ? "1.5.1" : "dev";
10209
10209
  var POSTHOG_HOST = "https://eu.i.posthog.com";
10210
10210
  var POSTHOG_KEY = process.env["POSTHOG_API_KEY"] ?? (true ? "phc_CiDkmFLcZ2K6uCpcoSUQLmFrnnUvsyXGhSxopX5TVKE6" : "");
10211
10211
  var SENTRY_DSN = process.env["SENTRY_DSN"] ?? (true ? "https://81c94a0f04a8e242dee493ac1e17f733@o4508531702497280.ingest.de.sentry.io/4511256875368528" : "");
@@ -11507,7 +11507,10 @@ function resolveExtraHosts(ids, warnings) {
11507
11507
  function safeJoin(root, name) {
11508
11508
  const target = path36.resolve(root, name);
11509
11509
  const rootResolved = path36.resolve(root);
11510
- if (!target.startsWith(rootResolved + path36.sep) && target !== rootResolved) {
11510
+ const caseFold = process.platform === "darwin" || process.platform === "win32";
11511
+ const t = caseFold ? target.toLowerCase() : target;
11512
+ const r = caseFold ? rootResolved.toLowerCase() : rootResolved;
11513
+ if (!t.startsWith(r + path36.sep) && t !== r) {
11511
11514
  throw new Error(`installHarness: refusing to write outside project root: ${target}`);
11512
11515
  }
11513
11516
  return target;
@@ -11800,4 +11803,4 @@ export {
11800
11803
  skillFilePath,
11801
11804
  installHarness
11802
11805
  };
11803
- //# sourceMappingURL=chunk-J2NLNQ4I.js.map
11806
+ //# sourceMappingURL=chunk-D3RJQLX6.js.map
package/dist/index.js CHANGED
@@ -49,7 +49,7 @@ import {
49
49
  validateDefaultRoot,
50
50
  wrapWithIndexingEnvelope,
51
51
  writeCODEOWNERS
52
- } from "./chunk-J2NLNQ4I.js";
52
+ } from "./chunk-D3RJQLX6.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.5.0".length > 0 ? "1.5.0" : "dev";
1022
+ var ctxloomVersion = "1.5.1".length > 0 ? "1.5.1" : "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-PVBWVQMM.js");
1095
+ const { ApiClient } = await import("./src-FU53WQZC.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");
@@ -1470,7 +1470,7 @@ async function main() {
1470
1470
  }
1471
1471
  if (!skipHarness) {
1472
1472
  process.stdout.write("\n");
1473
- const { installHarness } = await import("./src-PVBWVQMM.js");
1473
+ const { installHarness } = await import("./src-FU53WQZC.js");
1474
1474
  const h = installHarness({ cwd: initRoot, dryRun, force, extraHosts });
1475
1475
  const harnessFiles = [
1476
1476
  h.claudeMd,
@@ -1533,7 +1533,7 @@ async function main() {
1533
1533
  process.exit(1);
1534
1534
  }
1535
1535
  if (alias !== void 0) {
1536
- const { validateAlias } = await import("./src-PVBWVQMM.js");
1536
+ const { validateAlias } = await import("./src-FU53WQZC.js");
1537
1537
  const v = validateAlias(alias);
1538
1538
  if (!v.ok) {
1539
1539
  console.error(`[ctxloom] Invalid alias: ${v.reason}`);
@@ -1797,7 +1797,7 @@ Suggested reviewers for ${files.length} file(s):`);
1797
1797
  process.stderr.write("[ctxloom] --limit must be a non-negative integer (0 for unlimited)\n");
1798
1798
  process.exit(2);
1799
1799
  }
1800
- const { loadRulesConfig, RulesChecker, formatText, formatJson, RulesConfigError } = await import("./src-PVBWVQMM.js");
1800
+ const { loadRulesConfig, RulesChecker, formatText, formatJson, RulesConfigError } = await import("./src-FU53WQZC.js");
1801
1801
  let config;
1802
1802
  try {
1803
1803
  config = await loadRulesConfig(root);
@@ -1821,7 +1821,7 @@ Suggested reviewers for ${files.length} file(s):`);
1821
1821
  }
1822
1822
  let graph;
1823
1823
  if (useSnapshot) {
1824
- const { DependencyGraph: DG } = await import("./src-PVBWVQMM.js");
1824
+ const { DependencyGraph: DG } = await import("./src-FU53WQZC.js");
1825
1825
  graph = new DG();
1826
1826
  const loaded = await graph.loadSnapshotOnly(root);
1827
1827
  if (!loaded) {
@@ -1830,7 +1830,7 @@ Suggested reviewers for ${files.length} file(s):`);
1830
1830
  }
1831
1831
  } else {
1832
1832
  process.stderr.write("[ctxloom] Building dependency graph...\n");
1833
- const { ASTParser: ASTParser2, DependencyGraph: DependencyGraph2 } = await import("./src-PVBWVQMM.js");
1833
+ const { ASTParser: ASTParser2, DependencyGraph: DependencyGraph2 } = await import("./src-FU53WQZC.js");
1834
1834
  let parser;
1835
1835
  try {
1836
1836
  parser = new ASTParser2();
@@ -129,7 +129,7 @@ import {
129
129
  wrapBlock,
130
130
  wrapWithIndexingEnvelope,
131
131
  writeCODEOWNERS
132
- } from "./chunk-J2NLNQ4I.js";
132
+ } from "./chunk-D3RJQLX6.js";
133
133
  import {
134
134
  VectorStore
135
135
  } from "./chunk-DVI2RWJR.js";
@@ -281,4 +281,4 @@ export {
281
281
  wrapWithIndexingEnvelope,
282
282
  writeCODEOWNERS
283
283
  };
284
- //# sourceMappingURL=src-PVBWVQMM.js.map
284
+ //# sourceMappingURL=src-FU53WQZC.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ctxloom-pro",
3
- "version": "1.5.0",
3
+ "version": "1.5.1",
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",