bluera-knowledge 0.17.0 → 0.17.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/CHANGELOG.md CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
4
4
 
5
+ ## [0.17.1](https://github.com/blueraai/bluera-knowledge/compare/v0.17.0...v0.17.1) (2026-01-18)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * **config:** use per-repo paths instead of global directories ([d642fec](https://github.com/blueraai/bluera-knowledge/commit/d642fec3510ef546dd5dc94f91410a38e8aea0e4))
11
+
5
12
  ## [0.17.0](https://github.com/blueraai/bluera-knowledge/compare/v0.16.6...v0.17.0) (2026-01-18)
6
13
 
7
14
 
@@ -3,7 +3,7 @@ import {
3
3
  createLogger,
4
4
  summarizePayload,
5
5
  truncateForLog
6
- } from "./chunk-WYZQUKUD.js";
6
+ } from "./chunk-VKTVMW45.js";
7
7
 
8
8
  // src/crawl/intelligent-crawler.ts
9
9
  import { EventEmitter } from "events";
@@ -833,4 +833,4 @@ export {
833
833
  getCrawlStrategy,
834
834
  IntelligentCrawler
835
835
  };
836
- //# sourceMappingURL=chunk-OMC3RAZT.js.map
836
+ //# sourceMappingURL=chunk-RAXRD23K.js.map
@@ -1902,7 +1902,7 @@ var CodeGraphService = class {
1902
1902
  // src/services/config.service.ts
1903
1903
  import { readFile as readFile2, writeFile as writeFile2, mkdir as mkdir2, access } from "fs/promises";
1904
1904
  import { homedir as homedir2 } from "os";
1905
- import { dirname as dirname3, resolve } from "path";
1905
+ import { dirname as dirname3, join as join5, resolve } from "path";
1906
1906
 
1907
1907
  // src/services/project-root.service.ts
1908
1908
  import { existsSync as existsSync3, statSync, realpathSync } from "fs";
@@ -2015,6 +2015,7 @@ var DEFAULT_CONFIG = {
2015
2015
  };
2016
2016
 
2017
2017
  // src/services/config.service.ts
2018
+ var DEFAULT_CONFIG_PATH = ".bluera/bluera-knowledge/config.json";
2018
2019
  async function fileExists(path4) {
2019
2020
  try {
2020
2021
  await access(path4);
@@ -2027,12 +2028,16 @@ var ConfigService = class {
2027
2028
  configPath;
2028
2029
  dataDir;
2029
2030
  config = null;
2030
- constructor(configPath = `${homedir2()}/.bluera/bluera-knowledge/config.json`, dataDir, projectRoot) {
2031
- this.configPath = configPath;
2031
+ constructor(configPath, dataDir, projectRoot) {
2032
+ const root = projectRoot ?? ProjectRootService.resolve();
2033
+ if (configPath !== void 0 && configPath !== "") {
2034
+ this.configPath = configPath;
2035
+ } else {
2036
+ this.configPath = join5(root, DEFAULT_CONFIG_PATH);
2037
+ }
2032
2038
  if (dataDir !== void 0 && dataDir !== "") {
2033
2039
  this.dataDir = dataDir;
2034
2040
  } else {
2035
- const root = projectRoot ?? ProjectRootService.resolve();
2036
2041
  this.dataDir = this.expandPath(DEFAULT_CONFIG.dataDir, root);
2037
2042
  }
2038
2043
  }
@@ -2064,6 +2069,9 @@ var ConfigService = class {
2064
2069
  resolveDataDir() {
2065
2070
  return this.dataDir;
2066
2071
  }
2072
+ resolveConfigPath() {
2073
+ return this.configPath;
2074
+ }
2067
2075
  expandPath(path4, baseDir) {
2068
2076
  if (path4.startsWith("~")) {
2069
2077
  return path4.replace("~", homedir2());
@@ -2077,17 +2085,19 @@ var ConfigService = class {
2077
2085
 
2078
2086
  // src/services/gitignore.service.ts
2079
2087
  import { readFile as readFile3, writeFile as writeFile3, access as access2 } from "fs/promises";
2080
- import { join as join5 } from "path";
2088
+ import { join as join6 } from "path";
2081
2089
  var REQUIRED_PATTERNS = [
2082
2090
  ".bluera/",
2083
2091
  "!.bluera/",
2084
2092
  "!.bluera/bluera-knowledge/",
2085
2093
  "!.bluera/bluera-knowledge/stores.config.json",
2094
+ "!.bluera/bluera-knowledge/config.json",
2095
+ "!.bluera/bluera-knowledge/skill-activation.json",
2086
2096
  ".bluera/bluera-knowledge/data/"
2087
2097
  ];
2088
2098
  var SECTION_HEADER = `
2089
2099
  # Bluera Knowledge
2090
- # Store definitions (stores.config.json) are committed for team sharing
2100
+ # Config files (stores.config.json, config.json, skill-activation.json) can be committed
2091
2101
  # Data directory (vector DB, cloned repos) is not committed
2092
2102
  `;
2093
2103
  async function fileExists2(path4) {
@@ -2101,7 +2111,7 @@ async function fileExists2(path4) {
2101
2111
  var GitignoreService = class {
2102
2112
  gitignorePath;
2103
2113
  constructor(projectRoot) {
2104
- this.gitignorePath = join5(projectRoot, ".gitignore");
2114
+ this.gitignorePath = join6(projectRoot, ".gitignore");
2105
2115
  }
2106
2116
  /**
2107
2117
  * Check if all required patterns are present in .gitignore
@@ -2174,7 +2184,7 @@ ${REQUIRED_PATTERNS.join("\n")}
2174
2184
  // src/services/index.service.ts
2175
2185
  import { createHash as createHash2 } from "crypto";
2176
2186
  import { readFile as readFile4, readdir } from "fs/promises";
2177
- import { join as join6, extname, basename } from "path";
2187
+ import { join as join7, extname, basename } from "path";
2178
2188
 
2179
2189
  // src/services/chunking.service.ts
2180
2190
  var CHUNK_PRESETS = {
@@ -2677,7 +2687,7 @@ var IndexService = class {
2677
2687
  const files = [];
2678
2688
  const entries = await readdir(dir, { withFileTypes: true });
2679
2689
  for (const entry of entries) {
2680
- const fullPath = join6(dir, entry.name);
2690
+ const fullPath = join7(dir, entry.name);
2681
2691
  if (entry.isDirectory()) {
2682
2692
  if (!["node_modules", ".git", "dist", "build"].includes(entry.name)) {
2683
2693
  files.push(...await this.scanDirectory(fullPath));
@@ -3878,7 +3888,7 @@ var SearchService = class {
3878
3888
 
3879
3889
  // src/services/store-definition.service.ts
3880
3890
  import { readFile as readFile5, writeFile as writeFile4, mkdir as mkdir3, access as access3 } from "fs/promises";
3881
- import { dirname as dirname4, resolve as resolve2, isAbsolute, join as join7 } from "path";
3891
+ import { dirname as dirname4, resolve as resolve2, isAbsolute, join as join8 } from "path";
3882
3892
 
3883
3893
  // src/types/store-definition.ts
3884
3894
  import { z as z2 } from "zod";
@@ -3943,7 +3953,7 @@ var StoreDefinitionService = class {
3943
3953
  config = null;
3944
3954
  constructor(projectRoot) {
3945
3955
  this.projectRoot = projectRoot ?? ProjectRootService.resolve();
3946
- this.configPath = join7(this.projectRoot, ".bluera/bluera-knowledge/stores.config.json");
3956
+ this.configPath = join8(this.projectRoot, ".bluera/bluera-knowledge/stores.config.json");
3947
3957
  }
3948
3958
  /**
3949
3959
  * Load store definitions from config file.
@@ -4083,7 +4093,7 @@ var StoreDefinitionService = class {
4083
4093
  // src/services/store.service.ts
4084
4094
  import { randomUUID as randomUUID2 } from "crypto";
4085
4095
  import { readFile as readFile6, writeFile as writeFile5, mkdir as mkdir5, stat, access as access4 } from "fs/promises";
4086
- import { join as join8, resolve as resolve3 } from "path";
4096
+ import { join as join9, resolve as resolve3 } from "path";
4087
4097
 
4088
4098
  // src/plugin/git-clone.ts
4089
4099
  import { spawn } from "child_process";
@@ -4231,7 +4241,7 @@ var StoreService = class {
4231
4241
  case "repo": {
4232
4242
  let repoPath = input.path;
4233
4243
  if (input.url !== void 0) {
4234
- const cloneDir = join8(this.dataDir, "repos", id);
4244
+ const cloneDir = join9(this.dataDir, "repos", id);
4235
4245
  const result = await cloneRepository({
4236
4246
  url: input.url,
4237
4247
  targetDir: cloneDir,
@@ -4358,7 +4368,7 @@ var StoreService = class {
4358
4368
  return ok(void 0);
4359
4369
  }
4360
4370
  async loadRegistry() {
4361
- const registryPath = join8(this.dataDir, "stores.json");
4371
+ const registryPath = join9(this.dataDir, "stores.json");
4362
4372
  const exists = await fileExists4(registryPath);
4363
4373
  if (!exists) {
4364
4374
  this.registry = { stores: [] };
@@ -4383,7 +4393,7 @@ var StoreService = class {
4383
4393
  }
4384
4394
  }
4385
4395
  async saveRegistry() {
4386
- const registryPath = join8(this.dataDir, "stores.json");
4396
+ const registryPath = join9(this.dataDir, "stores.json");
4387
4397
  await writeFile5(registryPath, JSON.stringify(this.registry, null, 2));
4388
4398
  }
4389
4399
  };
@@ -4725,9 +4735,9 @@ var PythonBridge = class {
4725
4735
 
4726
4736
  // src/db/embeddings.ts
4727
4737
  import { homedir as homedir3 } from "os";
4728
- import { join as join9 } from "path";
4738
+ import { join as join10 } from "path";
4729
4739
  import { pipeline, env } from "@huggingface/transformers";
4730
- env.cacheDir = join9(homedir3(), ".cache", "huggingface-transformers");
4740
+ env.cacheDir = join10(homedir3(), ".cache", "huggingface-transformers");
4731
4741
  var EmbeddingEngine = class {
4732
4742
  extractor = null;
4733
4743
  modelName;
@@ -5114,4 +5124,4 @@ export {
5114
5124
  createServices,
5115
5125
  destroyServices
5116
5126
  };
5117
- //# sourceMappingURL=chunk-WYZQUKUD.js.map
5127
+ //# sourceMappingURL=chunk-VKTVMW45.js.map