lance-context 1.29.2 → 1.29.4

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.
Files changed (40) hide show
  1. package/README.md +13 -13
  2. package/dist/__tests__/config.test.js +1 -1
  3. package/dist/__tests__/config.test.js.map +1 -1
  4. package/dist/__tests__/dashboard/routes.test.js +1 -1
  5. package/dist/__tests__/dashboard/routes.test.js.map +1 -1
  6. package/dist/__tests__/embeddings/factory.test.js +5 -49
  7. package/dist/__tests__/embeddings/factory.test.js.map +1 -1
  8. package/dist/__tests__/mocks/fetch.mock.d.ts +0 -4
  9. package/dist/__tests__/mocks/fetch.mock.d.ts.map +1 -1
  10. package/dist/__tests__/mocks/fetch.mock.js +0 -16
  11. package/dist/__tests__/mocks/fetch.mock.js.map +1 -1
  12. package/dist/config.d.ts +2 -4
  13. package/dist/config.d.ts.map +1 -1
  14. package/dist/config.js +2 -8
  15. package/dist/config.js.map +1 -1
  16. package/dist/dashboard/routes.d.ts.map +1 -1
  17. package/dist/dashboard/routes.js +22 -2
  18. package/dist/dashboard/routes.js.map +1 -1
  19. package/dist/dashboard/ui.d.ts.map +1 -1
  20. package/dist/dashboard/ui.js +34 -70
  21. package/dist/dashboard/ui.js.map +1 -1
  22. package/dist/embeddings/index.d.ts +1 -3
  23. package/dist/embeddings/index.d.ts.map +1 -1
  24. package/dist/embeddings/index.js +3 -20
  25. package/dist/embeddings/index.js.map +1 -1
  26. package/dist/embeddings/rate-limiter.d.ts +1 -1
  27. package/dist/embeddings/rate-limiter.js +1 -1
  28. package/dist/embeddings/types.d.ts +6 -6
  29. package/dist/embeddings/types.d.ts.map +1 -1
  30. package/dist/index.js +15 -16
  31. package/dist/index.js.map +1 -1
  32. package/package.json +1 -1
  33. package/dist/__tests__/embeddings/jina.test.d.ts +0 -2
  34. package/dist/__tests__/embeddings/jina.test.d.ts.map +0 -1
  35. package/dist/__tests__/embeddings/jina.test.js +0 -156
  36. package/dist/__tests__/embeddings/jina.test.js.map +0 -1
  37. package/dist/embeddings/jina.d.ts +0 -27
  38. package/dist/embeddings/jina.d.ts.map +0 -1
  39. package/dist/embeddings/jina.js +0 -109
  40. package/dist/embeddings/jina.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/dashboard/routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/dashboard/routes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/dashboard/ui.ts"],"names":[],"mappings":"AAkCA;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAwgEzC"}
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/dashboard/ui.ts"],"names":[],"mappings":"AAkCA;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAo+DzC"}
@@ -999,7 +999,6 @@ export function getDashboardHTML() {
999
999
  <select id="backendSelect" class="form-select">
1000
1000
  <option value="ollama">Ollama (local)</option>
1001
1001
  <option value="gemini" selected>Google Gemini (free - requires API key)</option>
1002
- <option value="jina">Jina AI (paid - requires API key)</option>
1003
1002
  </select>
1004
1003
  </div>
1005
1004
  <div class="form-group" id="ollamaSettingsGroup">
@@ -1278,7 +1277,7 @@ export function getDashboardHTML() {
1278
1277
  const currentBackend = backendSelect.value;
1279
1278
  const currentConcurrency = concurrencySelect.value;
1280
1279
  const currentBatchSize = batchSizeSelect.value;
1281
- const needsApiKey = currentBackend === 'jina' || currentBackend === 'gemini';
1280
+ const needsApiKey = currentBackend === 'gemini';
1282
1281
  const hasNewApiKey = needsApiKey && apiKeyInput.value.trim() !== '';
1283
1282
 
1284
1283
  return currentBackend !== savedSettings.backend ||
@@ -1296,7 +1295,7 @@ export function getDashboardHTML() {
1296
1295
  // Toggle settings visibility based on backend selection
1297
1296
  function updateBackendVisibility() {
1298
1297
  const backend = backendSelect.value;
1299
- const needsApiKey = backend === 'jina' || backend === 'gemini';
1298
+ const needsApiKey = backend === 'gemini';
1300
1299
  const apiKeyLabel = document.getElementById('apiKeyLabel');
1301
1300
  const apiKeyHint = document.getElementById('apiKeyHint');
1302
1301
 
@@ -1314,16 +1313,6 @@ export function getDashboardHTML() {
1314
1313
  link.textContent = 'Google AI Studio';
1315
1314
  apiKeyHint.appendChild(document.createTextNode('Get your free API key at '));
1316
1315
  apiKeyHint.appendChild(link);
1317
- } else if (backend === 'jina') {
1318
- apiKeyLabel.textContent = 'Jina API Key';
1319
- apiKeyInput.placeholder = 'jina_...';
1320
- apiKeyHint.textContent = '';
1321
- const link = document.createElement('a');
1322
- link.href = 'https://jina.ai/';
1323
- link.target = '_blank';
1324
- link.textContent = 'jina.ai';
1325
- apiKeyHint.appendChild(document.createTextNode('Get your API key at '));
1326
- apiKeyHint.appendChild(link);
1327
1316
  }
1328
1317
 
1329
1318
  updateSaveButtonVisibility();
@@ -1354,7 +1343,7 @@ export function getDashboardHTML() {
1354
1343
  updateSaveButtonVisibility();
1355
1344
 
1356
1345
  // Update status badge
1357
- if (settings.backend === 'jina' || settings.backend === 'gemini') {
1346
+ if (settings.backend === 'gemini') {
1358
1347
  if (settings.hasApiKey) {
1359
1348
  embeddingStatus.textContent = 'API Key Set';
1360
1349
  embeddingStatus.className = 'badge success';
@@ -1376,11 +1365,10 @@ export function getDashboardHTML() {
1376
1365
  saveEmbeddingBtn.addEventListener('click', async function() {
1377
1366
  const backend = backendSelect.value;
1378
1367
  const apiKey = apiKeyInput.value.trim();
1379
- const needsApiKey = backend === 'jina' || backend === 'gemini';
1368
+ const needsApiKey = backend === 'gemini';
1380
1369
 
1381
1370
  if (needsApiKey && !apiKey) {
1382
- const backendName = backend === 'gemini' ? 'Gemini' : 'Jina';
1383
- saveStatus.textContent = 'API key required for ' + backendName;
1371
+ saveStatus.textContent = 'API key required for Gemini';
1384
1372
  saveStatus.className = 'save-status error';
1385
1373
  return;
1386
1374
  }
@@ -1643,10 +1631,12 @@ export function getDashboardHTML() {
1643
1631
  function updateConfig(config) {
1644
1632
  projectPath.textContent = config.projectPath || '-';
1645
1633
 
1646
- // Update project name in header (extract directory name from path)
1647
- if (config.projectPath) {
1648
- const projectName = config.projectPath.split('/').pop() || config.projectPath;
1649
- projectNameHeader.textContent = projectName;
1634
+ // Update project name in header
1635
+ if (config.projectName) {
1636
+ projectNameHeader.textContent = config.projectName;
1637
+ } else if (config.projectPath) {
1638
+ // Fallback to extracting from path if projectName not provided
1639
+ projectNameHeader.textContent = config.projectPath.split('/').pop() || config.projectPath;
1650
1640
  }
1651
1641
 
1652
1642
  if (config.chunking) {
@@ -1911,9 +1901,6 @@ export function getDashboardHTML() {
1911
1901
 
1912
1902
  // Fetch initial data
1913
1903
  async function fetchData() {
1914
- log.info('Fetching dashboard data...');
1915
- const startTime = performance.now();
1916
-
1917
1904
  // Use Promise.allSettled to handle partial failures gracefully
1918
1905
  const results = await Promise.allSettled([
1919
1906
  fetch('/api/status'),
@@ -1922,9 +1909,6 @@ export function getDashboardHTML() {
1922
1909
  fetch('/api/beads')
1923
1910
  ]);
1924
1911
 
1925
- const elapsed = Math.round(performance.now() - startTime);
1926
- log.info('API requests completed in ' + elapsed + 'ms');
1927
-
1928
1912
  let currentStatus = null;
1929
1913
  let currentConfig = null;
1930
1914
 
@@ -1932,26 +1916,20 @@ export function getDashboardHTML() {
1932
1916
  if (results[0].status === 'fulfilled' && results[0].value.ok) {
1933
1917
  try {
1934
1918
  currentStatus = await results[0].value.json();
1935
- log.info('Status loaded', currentStatus);
1936
1919
  updateStatus(currentStatus);
1937
1920
  } catch (e) {
1938
- log.error('Failed to parse status', e);
1921
+ // Silently handle parse errors
1939
1922
  }
1940
- } else {
1941
- log.warn('Failed to fetch status', results[0]);
1942
1923
  }
1943
1924
 
1944
1925
  // Process config result
1945
1926
  if (results[1].status === 'fulfilled' && results[1].value.ok) {
1946
1927
  try {
1947
1928
  currentConfig = await results[1].value.json();
1948
- log.info('Config loaded', currentConfig);
1949
1929
  updateConfig(currentConfig);
1950
1930
  } catch (e) {
1951
- log.error('Failed to parse config', e);
1931
+ // Silently handle parse errors
1952
1932
  }
1953
- } else {
1954
- log.warn('Failed to fetch config', results[1]);
1955
1933
  }
1956
1934
 
1957
1935
  // Check if configured backend differs from running backend
@@ -1984,15 +1962,25 @@ export function getDashboardHTML() {
1984
1962
  }
1985
1963
  }
1986
1964
 
1987
- // Logging utility for browser console
1988
- const log = {
1989
- info: (msg, data) => console.log('%c[lance-context]%c ' + msg, 'color: #58a6ff; font-weight: bold', 'color: inherit', data || ''),
1990
- warn: (msg, data) => console.warn('%c[lance-context]%c ' + msg, 'color: #d29922; font-weight: bold', 'color: inherit', data || ''),
1991
- error: (msg, data) => console.error('%c[lance-context]%c ' + msg, 'color: #f85149; font-weight: bold', 'color: inherit', data || ''),
1992
- event: (name, data) => console.log('%c[lance-context]%c SSE: %c' + name, 'color: #58a6ff; font-weight: bold', 'color: inherit', 'color: #3fb950', data || ''),
1993
- };
1994
-
1995
- log.info('Dashboard initialized');
1965
+ // Console greeting
1966
+ console.log(\`
1967
+ %c _ _ _ _ _ __ _
1968
+ %c _ __ (_) ___| | _____ _ __ ___ (_) |_| |__ ___ ___ / _| |___ ____ _ _ __ ___
1969
+ %c| '_ \\\\| |/ __| |/ / __| '_ \\\` _ \\\\| | __| '_ \\\\ / __|/ _ \\\\| |_| __\\\\ \\\\ /\\\\ / / _\\\` | '__/ _ \\\\
1970
+ %c| | | | | (__| <\\\\__ \\\\ | | | | | | |_| | | |\\\\__ \\\\ (_) | _| |_ \\\\ V V / (_| | | | __/
1971
+ %c|_| |_|_|\\\\___|_|\\\\_\\\\___/_| |_| |_|_|\\\\__|_| |_||___/\\\\___/|_| \\\\__| \\\\_/\\\\_/ \\\\__,_|_| \\\\___|
1972
+ \`,
1973
+ 'color: #58a6ff',
1974
+ 'color: #58a6ff',
1975
+ 'color: #58a6ff',
1976
+ 'color: #58a6ff',
1977
+ 'color: #58a6ff'
1978
+ );
1979
+ console.log(
1980
+ '%c📧 Get in touch: %cme@nicksmith.software',
1981
+ 'color: #666; font-size: 14px;',
1982
+ 'color: #58a6ff; font-size: 14px; text-decoration: underline;'
1983
+ );
1996
1984
 
1997
1985
  // Connect to SSE
1998
1986
  function connectSSE() {
@@ -2000,18 +1988,15 @@ export function getDashboardHTML() {
2000
1988
  eventSource.close();
2001
1989
  }
2002
1990
 
2003
- log.info('Connecting to SSE...');
2004
1991
  eventSource = new EventSource('/api/events');
2005
1992
 
2006
1993
  eventSource.addEventListener('connected', (e) => {
2007
- log.event('connected');
2008
1994
  setConnected(true);
2009
1995
  fetchData();
2010
1996
  });
2011
1997
 
2012
1998
  eventSource.addEventListener('indexing:progress', (e) => {
2013
1999
  const progress = JSON.parse(e.data);
2014
- log.event('indexing:progress', progress);
2015
2000
  progressContainer.className = 'progress-container active';
2016
2001
  indexBadge.textContent = 'Indexing...';
2017
2002
  indexBadge.className = 'badge warning pulsing';
@@ -2019,7 +2004,6 @@ export function getDashboardHTML() {
2019
2004
  });
2020
2005
 
2021
2006
  eventSource.addEventListener('indexing:start', () => {
2022
- log.event('indexing:start');
2023
2007
  progressContainer.className = 'progress-container active';
2024
2008
  indexBadge.textContent = 'Indexing...';
2025
2009
  indexBadge.className = 'badge warning pulsing';
@@ -2030,7 +2014,6 @@ export function getDashboardHTML() {
2030
2014
  });
2031
2015
 
2032
2016
  eventSource.addEventListener('indexing:complete', () => {
2033
- log.event('indexing:complete');
2034
2017
  progressContainer.className = 'progress-container';
2035
2018
  enableReindexButtons();
2036
2019
  reindexStatus.textContent = '';
@@ -2039,46 +2022,27 @@ export function getDashboardHTML() {
2039
2022
 
2040
2023
  eventSource.addEventListener('status:change', (e) => {
2041
2024
  const status = JSON.parse(e.data);
2042
- log.event('status:change', status);
2043
2025
  updateStatus(status);
2044
2026
  });
2045
2027
 
2046
2028
  eventSource.addEventListener('usage:update', (e) => {
2047
2029
  const usage = JSON.parse(e.data);
2048
- log.event('usage:update', { count: usage.length });
2049
2030
  // The event data is the usage array, need to compute total
2050
2031
  const total = usage.reduce((sum, u) => sum + u.count, 0);
2051
2032
  updateUsage({ usage, total });
2052
2033
  });
2053
2034
 
2054
2035
  eventSource.addEventListener('heartbeat', () => {
2055
- // Just keep connection alive - don't log to reduce noise
2036
+ // Just keep connection alive
2056
2037
  });
2057
2038
 
2058
2039
  eventSource.addEventListener('server:log', (e) => {
2059
2040
  const logData = JSON.parse(e.data);
2060
- const prefix = '%c[server]%c ';
2061
- const prefixStyle = 'color: #a371f7; font-weight: bold';
2062
- const msgStyle = 'color: inherit';
2063
-
2064
- // Log to browser console
2065
- switch (logData.level) {
2066
- case 'error':
2067
- console.error(prefix + logData.message, prefixStyle, msgStyle);
2068
- break;
2069
- case 'warn':
2070
- console.warn(prefix + logData.message, prefixStyle, msgStyle);
2071
- break;
2072
- default:
2073
- console.log(prefix + logData.message, prefixStyle, msgStyle);
2074
- }
2075
-
2076
- // Add to log panel
2041
+ // Add to log panel only (no console output)
2077
2042
  addLogEntry(logData.level, logData.message, logData.timestamp);
2078
2043
  });
2079
2044
 
2080
2045
  eventSource.onerror = (e) => {
2081
- log.warn('SSE connection error, will reconnect...', e);
2082
2046
  setConnected(false);
2083
2047
  // EventSource will automatically reconnect
2084
2048
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/dashboard/ui.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;OAwBV,CAAC;AAER;;GAEG;AACH,MAAM,WAAW,GAAG,sBAAsB,kBAAkB,CAAC,onCAAonC,CAAC,EAAE,CAAC;AAErrC;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO;;;;;;gDAMuC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAm3B7B,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA6oC9B,CAAC;AACT,CAAC"}
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/dashboard/ui.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;OAwBV,CAAC;AAER;;GAEG;AACH,MAAM,WAAW,GAAG,sBAAsB,kBAAkB,CAAC,onCAAonC,CAAC,EAAE,CAAC;AAErrC;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO;;;;;;gDAMuC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAm3B7B,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAymC9B,CAAC;AACT,CAAC"}
@@ -2,7 +2,6 @@ import type { EmbeddingBackend, EmbeddingConfig } from './types.js';
2
2
  export * from './types.js';
3
3
  export { chunkArray } from './types.js';
4
4
  export { OllamaBackend, DEFAULT_OLLAMA_MODEL } from './ollama.js';
5
- export { JinaBackend } from './jina.js';
6
5
  export { GeminiBackend } from './gemini.js';
7
6
  export { RateLimiter, type RateLimiterConfig } from './rate-limiter.js';
8
7
  /**
@@ -10,8 +9,7 @@ export { RateLimiter, type RateLimiterConfig } from './rate-limiter.js';
10
9
  *
11
10
  * Tries backends in priority order:
12
11
  * 1. Gemini (if GEMINI_API_KEY environment variable is set) - free tier, recommended
13
- * 2. Jina (if JINA_API_KEY environment variable or config.apiKey is set)
14
- * 3. Ollama (local fallback, requires Ollama to be running)
12
+ * 2. Ollama (local fallback, requires Ollama to be running)
15
13
  *
16
14
  * @param config - Optional configuration to customize the backend
17
15
  * @returns A promise resolving to an initialized embedding backend
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/embeddings/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAKpE,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAExE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAChC,OAAO,CAAC,gBAAgB,CAAC,CAoF3B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/embeddings/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAIpE,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAExE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAChC,OAAO,CAAC,gBAAgB,CAAC,CAkE3B"}
@@ -1,10 +1,8 @@
1
1
  import { OllamaBackend, DEFAULT_OLLAMA_MODEL } from './ollama.js';
2
- import { JinaBackend } from './jina.js';
3
2
  import { GeminiBackend } from './gemini.js';
4
3
  export * from './types.js';
5
4
  export { chunkArray } from './types.js';
6
5
  export { OllamaBackend, DEFAULT_OLLAMA_MODEL } from './ollama.js';
7
- export { JinaBackend } from './jina.js';
8
6
  export { GeminiBackend } from './gemini.js';
9
7
  export { RateLimiter } from './rate-limiter.js';
10
8
  /**
@@ -12,8 +10,7 @@ export { RateLimiter } from './rate-limiter.js';
12
10
  *
13
11
  * Tries backends in priority order:
14
12
  * 1. Gemini (if GEMINI_API_KEY environment variable is set) - free tier, recommended
15
- * 2. Jina (if JINA_API_KEY environment variable or config.apiKey is set)
16
- * 3. Ollama (local fallback, requires Ollama to be running)
13
+ * 2. Ollama (local fallback, requires Ollama to be running)
17
14
  *
18
15
  * @param config - Optional configuration to customize the backend
19
16
  * @returns A promise resolving to an initialized embedding backend
@@ -30,7 +27,6 @@ export { RateLimiter } from './rate-limiter.js';
30
27
  */
31
28
  export async function createEmbeddingBackend(config) {
32
29
  const geminiKey = config?.apiKey || process.env.GEMINI_API_KEY;
33
- const jinaKey = config?.apiKey || process.env.JINA_API_KEY;
34
30
  const ollamaUrl = config?.baseUrl || process.env.OLLAMA_URL || 'http://localhost:11434';
35
31
  const ollamaModel = config?.model || DEFAULT_OLLAMA_MODEL;
36
32
  const ollamaBatchSize = config?.batchSize;
@@ -46,15 +42,6 @@ export async function createEmbeddingBackend(config) {
46
42
  console.error(`[lance-context] Using gemini embedding backend (explicitly configured)`);
47
43
  return backend;
48
44
  }
49
- else if (config.backend === 'jina') {
50
- if (!jinaKey) {
51
- throw new Error('Jina backend requested but no API key available. Set JINA_API_KEY or provide apiKey in config.');
52
- }
53
- const backend = new JinaBackend({ backend: 'jina', apiKey: jinaKey, ...config });
54
- await backend.initialize();
55
- console.error(`[lance-context] Using jina embedding backend (explicitly configured)`);
56
- return backend;
57
- }
58
45
  else if (config.backend === 'ollama') {
59
46
  const backend = new OllamaBackend({
60
47
  backend: 'ollama',
@@ -74,11 +61,7 @@ export async function createEmbeddingBackend(config) {
74
61
  if (geminiKey) {
75
62
  backends.push(() => new GeminiBackend({ backend: 'gemini', apiKey: geminiKey, ...config }));
76
63
  }
77
- // Priority 2: Jina (if API key available)
78
- if (jinaKey) {
79
- backends.push(() => new JinaBackend({ backend: 'jina', apiKey: jinaKey, ...config }));
80
- }
81
- // Priority 3: Ollama (local fallback)
64
+ // Priority 2: Ollama (local fallback)
82
65
  backends.push(() => new OllamaBackend({
83
66
  backend: 'ollama',
84
67
  baseUrl: ollamaUrl,
@@ -98,6 +81,6 @@ export async function createEmbeddingBackend(config) {
98
81
  console.error(`[lance-context] Backend failed: ${error}`);
99
82
  }
100
83
  }
101
- throw new Error('No embedding backend available. Set GEMINI_API_KEY (free), JINA_API_KEY, or install Ollama.');
84
+ throw new Error('No embedding backend available. Set GEMINI_API_KEY (free) or install Ollama.');
102
85
  }
103
86
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/embeddings/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/embeddings/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAA0B,MAAM,mBAAmB,CAAC;AAExE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAAiC;IAEjC,MAAM,SAAS,GAAG,MAAM,EAAE,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAC/D,MAAM,SAAS,GAAG,MAAM,EAAE,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,wBAAwB,CAAC;IACxF,MAAM,WAAW,GAAG,MAAM,EAAE,KAAK,IAAI,oBAAoB,CAAC;IAC1D,MAAM,eAAe,GAAG,MAAM,EAAE,SAAS,CAAC;IAC1C,MAAM,iBAAiB,GAAG,MAAM,EAAE,WAAW,CAAC;IAE9C,0DAA0D;IAC1D,IAAI,MAAM,EAAE,OAAO,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;QAClD,IAAI,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CACb,qIAAqI,CACtI,CAAC;YACJ,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;YACvF,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAC;YACxF,OAAO,OAAO,CAAC;QACjB,CAAC;aAAM,IAAI,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC;gBAChC,OAAO,EAAE,QAAQ;gBACjB,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE,WAAW;gBAClB,SAAS,EAAE,eAAe;gBAC1B,WAAW,EAAE,iBAAiB;aAC/B,CAAC,CAAC;YACH,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAC;YACxF,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IAED,8CAA8C;IAC9C,MAAM,QAAQ,GAAkC,EAAE,CAAC;IAEnD,qEAAqE;IACrE,IAAI,SAAS,EAAE,CAAC;QACd,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;IAC9F,CAAC;IAED,sCAAsC;IACtC,QAAQ,CAAC,IAAI,CACX,GAAG,EAAE,CACH,IAAI,aAAa,CAAC;QAChB,OAAO,EAAE,QAAQ;QACjB,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,WAAW;QAClB,SAAS,EAAE,eAAe;QAC1B,WAAW,EAAE,iBAAiB;KAC/B,CAAC,CACL,CAAC;IAEF,mCAAmC;IACnC,KAAK,MAAM,aAAa,IAAI,QAAQ,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;YAChC,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,yBAAyB,OAAO,CAAC,IAAI,oBAAoB,CAAC,CAAC;YACzE,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,KAAK,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;AAClG,CAAC"}
@@ -13,7 +13,7 @@ export interface RateLimiterConfig {
13
13
  }
14
14
  /**
15
15
  * Default rate limiter configuration
16
- * Jina free tier allows ~500 RPM, so we use a conservative 5 RPS
16
+ * Conservative default suitable for most API rate limits
17
17
  */
18
18
  export declare const DEFAULT_RATE_LIMITER_CONFIG: Required<RateLimiterConfig>;
19
19
  /**
@@ -4,7 +4,7 @@
4
4
  */
5
5
  /**
6
6
  * Default rate limiter configuration
7
- * Jina free tier allows ~500 RPM, so we use a conservative 5 RPS
7
+ * Conservative default suitable for most API rate limits
8
8
  */
9
9
  export const DEFAULT_RATE_LIMITER_CONFIG = {
10
10
  requestsPerSecond: 5,
@@ -3,7 +3,7 @@
3
3
  * Supports both single text and batch embedding operations.
4
4
  */
5
5
  export interface EmbeddingBackend {
6
- /** Display name of the embedding backend (e.g., 'jina', 'ollama') */
6
+ /** Display name of the embedding backend (e.g., 'gemini', 'ollama') */
7
7
  name: string;
8
8
  /**
9
9
  * Initialize the backend, validating credentials and connectivity.
@@ -30,7 +30,7 @@ export interface EmbeddingBackend {
30
30
  getDimensions(): number;
31
31
  /**
32
32
  * Get the model identifier used by this backend.
33
- * @returns The model name/identifier (e.g., 'nomic-embed-text', 'jina-embeddings-v3')
33
+ * @returns The model name/identifier (e.g., 'nomic-embed-text', 'gemini-embedding-001')
34
34
  */
35
35
  getModel(): string;
36
36
  }
@@ -39,14 +39,14 @@ export interface EmbeddingBackend {
39
39
  */
40
40
  export interface EmbeddingConfig {
41
41
  /** Which embedding backend to use */
42
- backend: 'jina' | 'ollama' | 'gemini' | 'local';
42
+ backend: 'ollama' | 'gemini' | 'local';
43
43
  /** Model name/identifier (backend-specific) */
44
44
  model?: string;
45
- /** API key for cloud-based backends (Jina) */
45
+ /** API key for cloud-based backends (Gemini) */
46
46
  apiKey?: string;
47
47
  /** Base URL for the embedding API (useful for Ollama or custom endpoints) */
48
48
  baseUrl?: string;
49
- /** Rate limiting: maximum requests per second (default: 5 for Jina) */
49
+ /** Rate limiting: maximum requests per second */
50
50
  rateLimitRps?: number;
51
51
  /** Rate limiting: maximum burst capacity (default: 10) */
52
52
  rateLimitBurst?: number;
@@ -54,7 +54,7 @@ export interface EmbeddingConfig {
54
54
  * Maximum number of texts to process in a single batch request.
55
55
  * Large batches are automatically split into smaller chunks to prevent
56
56
  * timeouts, memory issues, and API rate limit errors.
57
- * Default: 100 for Jina, 100 for Ollama
57
+ * Default: 100 for Ollama
58
58
  */
59
59
  batchSize?: number;
60
60
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/embeddings/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B;;;;OAIG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAEvC;;;;;OAKG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAEjD;;;OAGG;IACH,aAAa,IAAI,MAAM,CAAC;IAExB;;;OAGG;IACH,QAAQ,IAAI,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,qCAAqC;IACrC,OAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IAEhD,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,0DAA0D;IAC1D,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,EAAE,EAAE,CAM7D;AAED;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,eAG5B,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/embeddings/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B;;;;OAIG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAEvC;;;;;OAKG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAEjD;;;OAGG;IACH,aAAa,IAAI,MAAM,CAAC;IAExB;;;OAGG;IACH,QAAQ,IAAI,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,qCAAqC;IACrC,OAAO,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IAEvC,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,0DAA0D;IAC1D,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,EAAE,EAAE,CAM7D;AAED;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,eAG5B,CAAC"}
package/dist/index.js CHANGED
@@ -99,9 +99,9 @@ function recordBrowserOpened(projectPath) {
99
99
  /**
100
100
  * Open a URL in the user's default browser (cross-platform)
101
101
  */
102
- function openBrowser(url, projectPath) {
103
- // Don't open if already opened recently
104
- if (wasBrowserRecentlyOpened(projectPath)) {
102
+ function openBrowser(url, projectPath, force = false) {
103
+ // Don't open if already opened recently (unless forced)
104
+ if (!force && wasBrowserRecentlyOpened(projectPath)) {
105
105
  console.error('[lance-context] Dashboard was recently opened, skipping');
106
106
  return;
107
107
  }
@@ -129,7 +129,7 @@ function openBrowser(url, projectPath) {
129
129
  }
130
130
  });
131
131
  }
132
- const PROJECT_PATH = process.env.LANCE_CONTEXT_PROJECT || process.cwd();
132
+ const PROJECT_PATH = path.resolve(process.env.LANCE_CONTEXT_PROJECT || process.cwd());
133
133
  /**
134
134
  * Brief guidance appended to tool responses to reinforce tool selection preferences.
135
135
  */
@@ -289,16 +289,9 @@ async function getIndexer() {
289
289
  if (configuredBackend === 'gemini') {
290
290
  apiKey = secrets.geminiApiKey || process.env.GEMINI_API_KEY;
291
291
  }
292
- else if (configuredBackend === 'jina') {
293
- apiKey = secrets.jinaApiKey || process.env.JINA_API_KEY;
294
- }
295
292
  else {
296
- // For auto-selection, prefer Gemini key if available, then Jina
297
- apiKey =
298
- secrets.geminiApiKey ||
299
- process.env.GEMINI_API_KEY ||
300
- secrets.jinaApiKey ||
301
- process.env.JINA_API_KEY;
293
+ // For auto-selection, use Gemini key if available
294
+ apiKey = secrets.geminiApiKey || process.env.GEMINI_API_KEY;
302
295
  }
303
296
  const backend = await createEmbeddingBackend({
304
297
  backend: configuredBackend,
@@ -932,7 +925,12 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
932
925
  description: 'Open the lance-context dashboard in the default browser. Starts the dashboard server if not already running. Works even when dashboard auto-start is disabled in config.',
933
926
  inputSchema: {
934
927
  type: 'object',
935
- properties: {},
928
+ properties: {
929
+ force: {
930
+ type: 'boolean',
931
+ description: 'Force open the browser even if it was recently opened. Bypasses the 1-hour cooldown.',
932
+ },
933
+ },
936
934
  },
937
935
  },
938
936
  ],
@@ -1966,11 +1964,12 @@ ${conceptList}`;
1966
1964
  }
1967
1965
  // --- Dashboard Tools ---
1968
1966
  case 'open_dashboard': {
1967
+ const force = isBoolean(args?.force) ? args.force : false;
1969
1968
  // Check if dashboard is already running
1970
1969
  if (isDashboardRunning()) {
1971
1970
  const url = getDashboardUrl();
1972
1971
  if (url) {
1973
- openBrowser(url, PROJECT_PATH);
1972
+ openBrowser(url, PROJECT_PATH, force);
1974
1973
  return {
1975
1974
  content: [
1976
1975
  {
@@ -1989,7 +1988,7 @@ ${conceptList}`;
1989
1988
  projectPath: PROJECT_PATH,
1990
1989
  version: PACKAGE_VERSION,
1991
1990
  });
1992
- openBrowser(dashboard.url, PROJECT_PATH);
1991
+ openBrowser(dashboard.url, PROJECT_PATH, force);
1993
1992
  return {
1994
1993
  content: [
1995
1994
  {