@bike4mind/cli 0.2.17-feat-ripgrep-integration.17657 → 0.2.17-feat-auto-context-customization.17673

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.
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  CurationArtifactType
4
- } from "./chunk-CHBAKX4C.js";
4
+ } from "./chunk-D2RBSVLE.js";
5
5
 
6
6
  // ../../b4m-core/packages/services/dist/src/notebookCurationService/artifactExtractor.js
7
7
  var ARTIFACT_TAG_REGEX = /<artifact\s+(.*?)>([\s\S]*?)<\/artifact>/gi;
@@ -6,12 +6,12 @@ import {
6
6
  getSettingsByNames,
7
7
  obfuscateApiKey,
8
8
  secureParameters
9
- } from "./chunk-QDWMIP2Q.js";
9
+ } from "./chunk-GRCMDIFP.js";
10
10
  import {
11
11
  ApiKeyType,
12
12
  MementoTier,
13
13
  isSupportedEmbeddingModel
14
- } from "./chunk-CHBAKX4C.js";
14
+ } from "./chunk-D2RBSVLE.js";
15
15
 
16
16
  // ../../b4m-core/packages/services/dist/src/apiKeyService/get.js
17
17
  import { z } from "zod";
@@ -232,6 +232,8 @@ var b4mLLMTools = z3.enum([
232
232
  "glob_files",
233
233
  "grep_search",
234
234
  "delete_file",
235
+ // Knowledge base search
236
+ "search_knowledge_base",
235
237
  // Shell execution
236
238
  "bash_execute"
237
239
  ]);
@@ -2018,6 +2020,7 @@ var SettingKeySchema = z19.enum([
2018
2020
  "voyageApiKey",
2019
2021
  "FirecrawlApiKey",
2020
2022
  "EnableDeepResearch",
2023
+ "EnableKnowledgeBaseSearch",
2021
2024
  "DefaultChunkSize",
2022
2025
  "DefaultAPIModel",
2023
2026
  "AutoNameNotebook",
@@ -2495,7 +2498,8 @@ var API_SERVICE_GROUPS = {
2495
2498
  { key: "EnableRapidReply", order: 7 },
2496
2499
  { key: "EnableResearchEngine", order: 8 },
2497
2500
  { key: "EnableReactViewer", order: 9 },
2498
- { key: "EnableDeepResearch", order: 10 }
2501
+ { key: "EnableDeepResearch", order: 10 },
2502
+ { key: "EnableKnowledgeBaseSearch", order: 11 }
2499
2503
  ]
2500
2504
  },
2501
2505
  NOTEBOOK: {
@@ -3397,6 +3401,15 @@ var settingsMap = {
3397
3401
  group: API_SERVICE_GROUPS.EXPERIMENTAL.id,
3398
3402
  order: 9
3399
3403
  }),
3404
+ EnableKnowledgeBaseSearch: makeBooleanSetting({
3405
+ key: "EnableKnowledgeBaseSearch",
3406
+ name: "Enable Knowledge Base Search",
3407
+ defaultValue: false,
3408
+ description: "Allow AI to search user uploaded documents. When enabled, users can toggle the Knowledge Base Search tool in AI Settings.",
3409
+ category: "Experimental",
3410
+ group: API_SERVICE_GROUPS.EXPERIMENTAL.id,
3411
+ order: 11
3412
+ }),
3400
3413
  enableVoiceSession: makeBooleanSetting({
3401
3414
  key: "enableVoiceSession",
3402
3415
  name: "Enable Voice Session",
@@ -7,11 +7,11 @@ import {
7
7
  getSettingsMap,
8
8
  getSettingsValue,
9
9
  secureParameters
10
- } from "./chunk-QDWMIP2Q.js";
10
+ } from "./chunk-GRCMDIFP.js";
11
11
  import {
12
12
  KnowledgeType,
13
13
  SupportedFabFileMimeTypes
14
- } from "./chunk-CHBAKX4C.js";
14
+ } from "./chunk-D2RBSVLE.js";
15
15
 
16
16
  // ../../b4m-core/packages/services/dist/src/fabFileService/create.js
17
17
  import { z } from "zod";
@@ -13,7 +13,7 @@ import {
13
13
  dayjsConfig_default,
14
14
  extractSnippetMeta,
15
15
  settingsMap
16
- } from "./chunk-CHBAKX4C.js";
16
+ } from "./chunk-D2RBSVLE.js";
17
17
  import {
18
18
  Logger
19
19
  } from "./chunk-OCYRD7D6.js";
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  BadRequestError,
4
4
  secureParameters
5
- } from "./chunk-QDWMIP2Q.js";
5
+ } from "./chunk-GRCMDIFP.js";
6
6
  import {
7
7
  CompletionApiUsageTransaction,
8
8
  GenericCreditDeductTransaction,
@@ -11,7 +11,7 @@ import {
11
11
  RealtimeVoiceUsageTransaction,
12
12
  TextGenerationUsageTransaction,
13
13
  TransferCreditTransaction
14
- } from "./chunk-CHBAKX4C.js";
14
+ } from "./chunk-D2RBSVLE.js";
15
15
 
16
16
  // ../../b4m-core/packages/services/dist/src/creditService/subtractCredits.js
17
17
  import { z } from "zod";
@@ -2,9 +2,9 @@
2
2
  import {
3
3
  createFabFile,
4
4
  createFabFileSchema
5
- } from "./chunk-6EEN6XHK.js";
6
- import "./chunk-QDWMIP2Q.js";
7
- import "./chunk-CHBAKX4C.js";
5
+ } from "./chunk-E4K7LPQC.js";
6
+ import "./chunk-GRCMDIFP.js";
7
+ import "./chunk-D2RBSVLE.js";
8
8
  import "./chunk-OCYRD7D6.js";
9
9
  export {
10
10
  createFabFile,
package/dist/index.js CHANGED
@@ -4,12 +4,12 @@ import {
4
4
  getEffectiveApiKey,
5
5
  getOpenWeatherKey,
6
6
  getSerperKey
7
- } from "./chunk-NMWRXDTN.js";
7
+ } from "./chunk-AZ7I44K7.js";
8
8
  import {
9
9
  ConfigStore
10
10
  } from "./chunk-FFJX3FF3.js";
11
- import "./chunk-WULZDTLD.js";
12
- import "./chunk-6EEN6XHK.js";
11
+ import "./chunk-KZNSOBD6.js";
12
+ import "./chunk-E4K7LPQC.js";
13
13
  import {
14
14
  BFLImageService,
15
15
  BaseStorage,
@@ -21,7 +21,7 @@ import {
21
21
  OpenAIBackend,
22
22
  OpenAIImageService,
23
23
  XAIImageService
24
- } from "./chunk-QDWMIP2Q.js";
24
+ } from "./chunk-GRCMDIFP.js";
25
25
  import {
26
26
  AiEvents,
27
27
  ApiKeyEvents,
@@ -75,7 +75,7 @@ import {
75
75
  XAI_IMAGE_MODELS,
76
76
  b4mLLMTools,
77
77
  getMcpProviderMetadata
78
- } from "./chunk-CHBAKX4C.js";
78
+ } from "./chunk-D2RBSVLE.js";
79
79
  import {
80
80
  Logger
81
81
  } from "./chunk-OCYRD7D6.js";
@@ -3986,7 +3986,9 @@ var updateSchema = z76.object({
3986
3986
  name: z76.string().optional(),
3987
3987
  description: z76.string().optional(),
3988
3988
  billingContact: z76.string().optional(),
3989
- currentCredits: z76.coerce.number().optional()
3989
+ currentCredits: z76.coerce.number().optional(),
3990
+ systemPrompt: z76.string().max(1e4).optional()
3991
+ // ~2500 tokens
3990
3992
  });
3991
3993
 
3992
3994
  // ../../b4m-core/packages/services/dist/src/organizationService/delete.js
@@ -8509,39 +8511,40 @@ var globFilesTool = {
8509
8511
  };
8510
8512
 
8511
8513
  // ../../b4m-core/packages/services/dist/src/llm/tools/implementation/grepSearch/index.js
8512
- import { stat as stat2 } from "fs/promises";
8514
+ import { globStream } from "glob";
8515
+ import { readFile, stat as stat2 } from "fs/promises";
8513
8516
  import path9 from "path";
8514
- import { execFile } from "child_process";
8515
- import { promisify } from "util";
8516
- import { createRequire } from "module";
8517
- var execFileAsync = promisify(execFile);
8518
- var require2 = createRequire(import.meta.url);
8519
- function getRipgrepPath() {
8517
+ var MAX_FILE_SIZE3 = 10 * 1024 * 1024;
8518
+ var DEFAULT_IGNORE_PATTERNS3 = [
8519
+ "**/node_modules/**",
8520
+ "**/.git/**",
8521
+ "**/dist/**",
8522
+ "**/build/**",
8523
+ "**/.next/**",
8524
+ "**/coverage/**",
8525
+ "**/*.min.js",
8526
+ "**/*.min.css",
8527
+ "**/package-lock.json",
8528
+ "**/pnpm-lock.yaml",
8529
+ "**/yarn.lock"
8530
+ ];
8531
+ async function isBinaryFile2(filePath) {
8520
8532
  try {
8521
- const ripgrepPath = require2.resolve("@vscode/ripgrep");
8522
- const ripgrepDir = path9.dirname(ripgrepPath);
8523
- const rgBinary = path9.join(ripgrepDir, "..", "bin", "rg" + (process.platform === "win32" ? ".exe" : ""));
8524
- return rgBinary;
8525
- } catch (error) {
8526
- throw new Error("ripgrep is not available. Please install @vscode/ripgrep: pnpm add @vscode/ripgrep --filter @bike4mind/services");
8533
+ const { openSync, readSync, closeSync } = await import("fs");
8534
+ const buffer = Buffer.alloc(8192);
8535
+ const fd = openSync(filePath, "r");
8536
+ const bytesRead = readSync(fd, buffer, 0, 8192, 0);
8537
+ closeSync(fd);
8538
+ const chunk = buffer.slice(0, bytesRead);
8539
+ return chunk.includes(0);
8540
+ } catch {
8541
+ return true;
8527
8542
  }
8528
8543
  }
8529
8544
  function isPathWithinWorkspace(targetPath, baseCwd) {
8530
8545
  const resolvedTarget = path9.resolve(targetPath);
8531
8546
  const resolvedBase = path9.resolve(baseCwd);
8532
- const relativePath = path9.relative(resolvedBase, resolvedTarget);
8533
- return !relativePath.startsWith("..") && !path9.isAbsolute(relativePath);
8534
- }
8535
- function convertGlobToRipgrepGlobs(globPattern) {
8536
- if (!globPattern || globPattern === "**/*") {
8537
- return [];
8538
- }
8539
- const braceMatch = globPattern.match(/\*\.{([^}]+)}/);
8540
- if (braceMatch) {
8541
- const extensions = braceMatch[1].split(",");
8542
- return extensions.map((ext) => `*.${ext.trim()}`);
8543
- }
8544
- return [globPattern];
8547
+ return resolvedTarget.startsWith(resolvedBase);
8545
8548
  }
8546
8549
  async function searchFiles2(params) {
8547
8550
  const { pattern, dir_path, include } = params;
@@ -8561,69 +8564,59 @@ async function searchFiles2(params) {
8561
8564
  }
8562
8565
  throw error;
8563
8566
  }
8564
- const rgPath = getRipgrepPath();
8565
- const rgArgs = [
8566
- "--json",
8567
- // Machine-readable output
8568
- "--max-count",
8569
- "500",
8570
- // Limit matches per file
8571
- "--ignore-case",
8572
- // Case-insensitive search
8573
- "--max-filesize",
8574
- "10M"
8575
- // Skip files larger than 10MB
8576
- ];
8577
- const globs = convertGlobToRipgrepGlobs(include || "");
8578
- if (globs.length > 0) {
8579
- globs.forEach((glob2) => {
8580
- rgArgs.push("--glob", glob2);
8581
- });
8582
- }
8583
- rgArgs.push(pattern, targetDir);
8584
- let stdout;
8567
+ let searchRegex;
8585
8568
  try {
8586
- const result2 = await execFileAsync(rgPath, rgArgs, {
8587
- maxBuffer: 50 * 1024 * 1024
8588
- // 50MB buffer for large results
8589
- });
8590
- stdout = result2.stdout;
8569
+ searchRegex = new RegExp(pattern, "i");
8591
8570
  } catch (error) {
8592
- const execError = error;
8593
- if (execError.code === 1 && execError.stdout) {
8594
- stdout = execError.stdout;
8595
- } else if (execError.code === 2) {
8596
- const errorMsg = execError.stderr || "Unknown ripgrep error";
8597
- throw new Error(`Ripgrep error: ${errorMsg}`);
8598
- } else {
8599
- throw error;
8600
- }
8571
+ throw new Error(`Invalid regex pattern: ${pattern}`);
8601
8572
  }
8602
- const lines = stdout.split("\n").filter(Boolean);
8573
+ const globPattern = include || "**/*";
8574
+ const filesStream = globStream(globPattern, {
8575
+ cwd: targetDir,
8576
+ dot: false,
8577
+ // Skip hidden files
8578
+ ignore: DEFAULT_IGNORE_PATTERNS3,
8579
+ absolute: true,
8580
+ nodir: true
8581
+ // Only match files, not directories
8582
+ });
8603
8583
  const allMatches = [];
8604
8584
  let filesSearched = 0;
8605
- for (const line of lines) {
8585
+ const maxMatches = 500;
8586
+ for await (const filePath of filesStream) {
8587
+ if (allMatches.length >= maxMatches) {
8588
+ break;
8589
+ }
8590
+ const fileAbsPath = filePath;
8606
8591
  try {
8607
- const item = JSON.parse(line);
8608
- if (item.type === "match") {
8609
- const match = item;
8610
- allMatches.push({
8611
- filePath: path9.relative(targetDir, match.data.path.text) || path9.basename(match.data.path.text),
8612
- lineNumber: match.data.line_number,
8613
- line: match.data.lines.text.trimEnd()
8614
- // Remove trailing newline
8615
- });
8616
- } else if (item.type === "summary") {
8617
- const stats = item;
8618
- filesSearched = stats.data.stats.searches || 0;
8592
+ const stats = await stat2(fileAbsPath);
8593
+ if (stats.size > MAX_FILE_SIZE3) {
8594
+ continue;
8595
+ }
8596
+ if (await isBinaryFile2(fileAbsPath)) {
8597
+ continue;
8598
+ }
8599
+ filesSearched++;
8600
+ const content = await readFile(fileAbsPath, "utf8");
8601
+ const lines = content.split(/\r?\n/);
8602
+ lines.forEach((line, index) => {
8603
+ if (allMatches.length < maxMatches && searchRegex.test(line)) {
8604
+ allMatches.push({
8605
+ filePath: path9.relative(targetDir, fileAbsPath) || path9.basename(fileAbsPath),
8606
+ lineNumber: index + 1,
8607
+ line
8608
+ });
8609
+ }
8610
+ });
8611
+ } catch (readError) {
8612
+ const errCode = readError.code;
8613
+ if (errCode !== "ENOENT" && errCode !== "EACCES") {
8614
+ console.debug(`Could not read ${fileAbsPath}: ${readError.message}`);
8619
8615
  }
8620
- } catch {
8621
- continue;
8622
8616
  }
8623
8617
  }
8624
8618
  const searchDirDisplay = dir_path || ".";
8625
8619
  const filterInfo = include ? ` (filter: "${include}")` : "";
8626
- const maxMatches = 500;
8627
8620
  if (allMatches.length === 0) {
8628
8621
  return `No matches found for pattern "${pattern}" in "${searchDirDisplay}"${filterInfo}.
8629
8622
  Searched ${filesSearched} file(s).`;
@@ -8633,6 +8626,7 @@ Searched ${filesSearched} file(s).`;
8633
8626
  acc[match.filePath] = [];
8634
8627
  }
8635
8628
  acc[match.filePath].push(match);
8629
+ acc[match.filePath].sort((a, b) => a.lineNumber - b.lineNumber);
8636
8630
  return acc;
8637
8631
  }, {});
8638
8632
  const matchCount = allMatches.length;
@@ -8771,6 +8765,92 @@ var deleteFileTool = {
8771
8765
  })
8772
8766
  };
8773
8767
 
8768
+ // ../../b4m-core/packages/services/dist/src/llm/tools/implementation/knowledgeBaseSearch/index.js
8769
+ function formatSearchResults(files) {
8770
+ if (files.length === 0) {
8771
+ return "No documents found matching your search query in your knowledge base.";
8772
+ }
8773
+ const formattedFiles = files.map((file, index) => {
8774
+ const tags = file.tags?.map((t) => t.name).join(", ") || "none";
8775
+ const notes = file.notes ? `
8776
+ Notes: ${file.notes}` : "";
8777
+ const fileType = file.type || "FILE";
8778
+ return `${index + 1}. **${file.fileName}**
8779
+ Type: ${fileType} | MIME: ${file.mimeType}
8780
+ Tags: ${tags}${notes}`;
8781
+ });
8782
+ return `Found ${files.length} document(s) in your knowledge base:
8783
+
8784
+ ` + formattedFiles.join("\n\n") + "\n\n*To use these documents in your conversation, you can ask me to reference specific files by name.*";
8785
+ }
8786
+ var knowledgeBaseSearchTool = {
8787
+ name: "search_knowledge_base",
8788
+ implementation: (context) => ({
8789
+ toolFn: async (value) => {
8790
+ const params = value;
8791
+ const { query, tags, file_type, max_results = 5 } = params;
8792
+ console.log("\u{1F4DA} Knowledge Base Search: Starting search for query:", query);
8793
+ if (!context.db.fabfiles) {
8794
+ console.error("\u274C Knowledge Base Search: fabfiles repository not available");
8795
+ return "Knowledge base search is not available at this time.";
8796
+ }
8797
+ try {
8798
+ const searchResults = await context.db.fabfiles.search(context.userId, query, {
8799
+ tags: tags || [],
8800
+ type: file_type,
8801
+ shared: false
8802
+ // Search all accessible files, not just shared
8803
+ }, {
8804
+ page: 1,
8805
+ limit: Math.min(max_results, 10)
8806
+ // Cap at 10 results
8807
+ }, {
8808
+ by: "fileName",
8809
+ direction: "asc"
8810
+ }, {
8811
+ includeShared: true
8812
+ // Include organization and explicitly shared files
8813
+ });
8814
+ console.log("\u{1F4DA} Knowledge Base Search: Found", searchResults.data.length, "results");
8815
+ return formatSearchResults(searchResults.data);
8816
+ } catch (error) {
8817
+ console.error("\u274C Knowledge Base Search: Error during search:", error);
8818
+ return "An error occurred while searching your knowledge base. Please try again.";
8819
+ }
8820
+ },
8821
+ toolSchema: {
8822
+ name: "search_knowledge_base",
8823
+ description: "Search the user's uploaded knowledge base (fab files). Returns relevant documents from the user's own files, organization-shared files, and files explicitly shared with them. Use this tool when the user asks about their own documents, uploaded files, or organization knowledge.",
8824
+ parameters: {
8825
+ type: "object",
8826
+ properties: {
8827
+ query: {
8828
+ type: "string",
8829
+ description: "The search query to find relevant documents by filename or content"
8830
+ },
8831
+ tags: {
8832
+ type: "array",
8833
+ items: { type: "string" },
8834
+ description: "Optional: filter results to only include files with these tags"
8835
+ },
8836
+ file_type: {
8837
+ type: "string",
8838
+ enum: ["pdf", "text", "image", "excel", "word", "json", "csv", "markdown", "code", "url"],
8839
+ description: "Optional: filter results by file type"
8840
+ },
8841
+ max_results: {
8842
+ type: "number",
8843
+ description: "Maximum number of results to return (default: 5, max: 10)",
8844
+ minimum: 1,
8845
+ maximum: 10
8846
+ }
8847
+ },
8848
+ required: ["query"]
8849
+ }
8850
+ }
8851
+ })
8852
+ };
8853
+
8774
8854
  // ../../b4m-core/packages/services/dist/src/llm/tools/implementation/bashExecute/index.js
8775
8855
  import { spawn } from "child_process";
8776
8856
  import path11 from "path";
@@ -9273,6 +9353,8 @@ var tools = {
9273
9353
  glob_files: globFilesTool,
9274
9354
  grep_search: grepSearchTool,
9275
9355
  delete_file: deleteFileTool,
9356
+ // Knowledge base search
9357
+ search_knowledge_base: knowledgeBaseSearchTool,
9276
9358
  // Shell execution
9277
9359
  bash_execute: bashExecuteTool
9278
9360
  };
@@ -9512,7 +9594,7 @@ var ToolErrorType;
9512
9594
 
9513
9595
  // src/utils/diffPreview.ts
9514
9596
  import * as Diff from "diff";
9515
- import { readFile } from "fs/promises";
9597
+ import { readFile as readFile2 } from "fs/promises";
9516
9598
  import { existsSync as existsSync7 } from "fs";
9517
9599
  async function generateFileDiffPreview(args) {
9518
9600
  try {
@@ -9527,7 +9609,7 @@ ${preview}${hasMore ? `
9527
9609
 
9528
9610
  ... (${lines2.length - 20} more lines)` : ""}`;
9529
9611
  }
9530
- const currentContent = await readFile(args.path, "utf-8");
9612
+ const currentContent = await readFile2(args.path, "utf-8");
9531
9613
  const patch = Diff.createPatch(
9532
9614
  args.path,
9533
9615
  currentContent,
@@ -11438,7 +11520,7 @@ import { isAxiosError as isAxiosError2 } from "axios";
11438
11520
  // package.json
11439
11521
  var package_default = {
11440
11522
  name: "@bike4mind/cli",
11441
- version: "0.2.17-feat-ripgrep-integration.17657+4afb72005",
11523
+ version: "0.2.17-feat-auto-context-customization.17673+211fa5fe5",
11442
11524
  type: "module",
11443
11525
  description: "Interactive CLI tool for Bike4Mind with ReAct agents",
11444
11526
  license: "UNLICENSED",
@@ -11545,10 +11627,10 @@ var package_default = {
11545
11627
  },
11546
11628
  devDependencies: {
11547
11629
  "@bike4mind/agents": "0.1.0",
11548
- "@bike4mind/common": "2.43.1-feat-ripgrep-integration.17657+4afb72005",
11549
- "@bike4mind/mcp": "1.22.3-feat-ripgrep-integration.17657+4afb72005",
11550
- "@bike4mind/services": "2.40.1-feat-ripgrep-integration.17657+4afb72005",
11551
- "@bike4mind/utils": "2.2.1-feat-ripgrep-integration.17657+4afb72005",
11630
+ "@bike4mind/common": "2.43.1-feat-auto-context-customization.17673+211fa5fe5",
11631
+ "@bike4mind/mcp": "1.22.3-feat-auto-context-customization.17673+211fa5fe5",
11632
+ "@bike4mind/services": "2.40.1-feat-auto-context-customization.17673+211fa5fe5",
11633
+ "@bike4mind/utils": "2.2.1-feat-auto-context-customization.17673+211fa5fe5",
11552
11634
  "@types/better-sqlite3": "^7.6.13",
11553
11635
  "@types/diff": "^5.0.9",
11554
11636
  "@types/jsonwebtoken": "^9.0.4",
@@ -11562,10 +11644,7 @@ var package_default = {
11562
11644
  typescript: "^5.9.3",
11563
11645
  vitest: "^3.2.4"
11564
11646
  },
11565
- optionalDependencies: {
11566
- "@vscode/ripgrep": "^1.17.0"
11567
- },
11568
- gitHead: "4afb7200575f2747c86e639a873bfb6a2f523f78"
11647
+ gitHead: "211fa5fe5ec713135648307a46624bffb4746173"
11569
11648
  };
11570
11649
 
11571
11650
  // src/config/constants.ts
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  CurationArtifactType
4
- } from "./chunk-CHBAKX4C.js";
4
+ } from "./chunk-D2RBSVLE.js";
5
5
 
6
6
  // ../../b4m-core/packages/services/dist/src/notebookCurationService/llmMarkdownGenerator.js
7
7
  var DEFAULT_OPTIONS = {
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  CurationArtifactType
4
- } from "./chunk-CHBAKX4C.js";
4
+ } from "./chunk-D2RBSVLE.js";
5
5
 
6
6
  // ../../b4m-core/packages/services/dist/src/notebookCurationService/markdownGenerator.js
7
7
  var DEFAULT_OPTIONS = {
@@ -2,9 +2,9 @@
2
2
  import {
3
3
  findMostSimilarMemento,
4
4
  getRelevantMementos
5
- } from "./chunk-NMWRXDTN.js";
6
- import "./chunk-QDWMIP2Q.js";
7
- import "./chunk-CHBAKX4C.js";
5
+ } from "./chunk-AZ7I44K7.js";
6
+ import "./chunk-GRCMDIFP.js";
7
+ import "./chunk-D2RBSVLE.js";
8
8
  import "./chunk-OCYRD7D6.js";
9
9
  export {
10
10
  findMostSimilarMemento,
@@ -299,7 +299,7 @@ import {
299
299
  validateReactArtifactV2,
300
300
  validateSvgArtifactV2,
301
301
  wikiMarkupToAdf
302
- } from "./chunk-CHBAKX4C.js";
302
+ } from "./chunk-D2RBSVLE.js";
303
303
  export {
304
304
  ALL_IMAGE_MODELS,
305
305
  ALL_IMAGE_SIZES,
@@ -129,8 +129,8 @@ import {
129
129
  validateMermaidSyntax,
130
130
  warmUpSettingsCache,
131
131
  withRetry
132
- } from "./chunk-QDWMIP2Q.js";
133
- import "./chunk-CHBAKX4C.js";
132
+ } from "./chunk-GRCMDIFP.js";
133
+ import "./chunk-D2RBSVLE.js";
134
134
  import {
135
135
  Logger,
136
136
  NotificationDeduplicator,
@@ -2,9 +2,9 @@
2
2
  import {
3
3
  SubtractCreditsSchema,
4
4
  subtractCredits
5
- } from "./chunk-WULZDTLD.js";
6
- import "./chunk-QDWMIP2Q.js";
7
- import "./chunk-CHBAKX4C.js";
5
+ } from "./chunk-KZNSOBD6.js";
6
+ import "./chunk-GRCMDIFP.js";
7
+ import "./chunk-D2RBSVLE.js";
8
8
  import "./chunk-OCYRD7D6.js";
9
9
  export {
10
10
  SubtractCreditsSchema,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bike4mind/cli",
3
- "version": "0.2.17-feat-ripgrep-integration.17657+4afb72005",
3
+ "version": "0.2.17-feat-auto-context-customization.17673+211fa5fe5",
4
4
  "type": "module",
5
5
  "description": "Interactive CLI tool for Bike4Mind with ReAct agents",
6
6
  "license": "UNLICENSED",
@@ -107,10 +107,10 @@
107
107
  },
108
108
  "devDependencies": {
109
109
  "@bike4mind/agents": "0.1.0",
110
- "@bike4mind/common": "2.43.1-feat-ripgrep-integration.17657+4afb72005",
111
- "@bike4mind/mcp": "1.22.3-feat-ripgrep-integration.17657+4afb72005",
112
- "@bike4mind/services": "2.40.1-feat-ripgrep-integration.17657+4afb72005",
113
- "@bike4mind/utils": "2.2.1-feat-ripgrep-integration.17657+4afb72005",
110
+ "@bike4mind/common": "2.43.1-feat-auto-context-customization.17673+211fa5fe5",
111
+ "@bike4mind/mcp": "1.22.3-feat-auto-context-customization.17673+211fa5fe5",
112
+ "@bike4mind/services": "2.40.1-feat-auto-context-customization.17673+211fa5fe5",
113
+ "@bike4mind/utils": "2.2.1-feat-auto-context-customization.17673+211fa5fe5",
114
114
  "@types/better-sqlite3": "^7.6.13",
115
115
  "@types/diff": "^5.0.9",
116
116
  "@types/jsonwebtoken": "^9.0.4",
@@ -124,8 +124,5 @@
124
124
  "typescript": "^5.9.3",
125
125
  "vitest": "^3.2.4"
126
126
  },
127
- "optionalDependencies": {
128
- "@vscode/ripgrep": "^1.17.0"
129
- },
130
- "gitHead": "4afb7200575f2747c86e639a873bfb6a2f523f78"
127
+ "gitHead": "211fa5fe5ec713135648307a46624bffb4746173"
131
128
  }