wayfind 2.0.59 → 2.0.61

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.
@@ -371,11 +371,11 @@ let _localPipeline = null;
371
371
  async function generateEmbeddingLocal(text) {
372
372
  try {
373
373
  if (!_localPipeline) {
374
- // Dynamic require — optional dep, may not be installed
375
374
  const { pipeline, env } = require('@xenova/transformers');
376
- // Suppress progress output in non-interactive contexts
377
- if (!process.stdout.isTTY) {
378
- env.allowLocalModels = false;
375
+ // Use configured cache dir (Docker bakes the model here at build time).
376
+ // If unset, Xenova defaults to ~/.cache/huggingface/hub/.
377
+ if (process.env.WAYFIND_MODEL_CACHE) {
378
+ env.cacheDir = process.env.WAYFIND_MODEL_CACHE;
379
379
  }
380
380
  process.stderr.write('[wayfind] Loading local embedding model (first use — may take a moment)...\n');
381
381
  _localPipeline = await pipeline('feature-extraction', LOCAL_EMBEDDING_MODEL);
@@ -4926,12 +4926,12 @@ async function indexJournalsIfAvailable() {
4926
4926
  console.log('No journal files found — skipping index.');
4927
4927
  return;
4928
4928
  }
4929
- const hasEmbeddingKey = !!(process.env.OPENAI_API_KEY || process.env.AZURE_OPENAI_EMBEDDING_ENDPOINT);
4930
- console.log(`Indexing ${entries.length} journal files from ${journalDir}${hasEmbeddingKey ? ' (with embeddings)' : ''}...`);
4929
+ const hasEmbeddings = !!(process.env.OPENAI_API_KEY || process.env.AZURE_OPENAI_EMBEDDING_ENDPOINT) || llm.getEmbeddingProviderInfo().available;
4930
+ console.log(`Indexing ${entries.length} journal files from ${journalDir}${hasEmbeddings ? ' (with embeddings)' : ''}...`);
4931
4931
  try {
4932
4932
  const stats = await contentStore.indexJournals({
4933
4933
  journalDir,
4934
- embeddings: hasEmbeddingKey,
4934
+ embeddings: hasEmbeddings,
4935
4935
  });
4936
4936
  console.log(`Indexed ${stats.entryCount} entries (${stats.newEntries} new, ${stats.updatedEntries} updated).`);
4937
4937
  } catch (err) {
@@ -4953,7 +4953,7 @@ async function indexConversationsIfAvailable() {
4953
4953
  try {
4954
4954
  const stats = await contentStore.indexConversations({
4955
4955
  projectsDir,
4956
- embeddings: !!(process.env.OPENAI_API_KEY || process.env.AZURE_OPENAI_EMBEDDING_ENDPOINT),
4956
+ embeddings: !!(process.env.OPENAI_API_KEY || process.env.AZURE_OPENAI_EMBEDDING_ENDPOINT) || llm.getEmbeddingProviderInfo().available,
4957
4957
  });
4958
4958
  console.log(`Conversations: ${stats.transcriptsProcessed} processed, ${stats.decisionsExtracted} decisions extracted (${stats.skipped} skipped).`);
4959
4959
  } catch (err) {
@@ -4967,12 +4967,12 @@ async function indexSignalsIfAvailable() {
4967
4967
  console.log(`No signals at ${signalsDir} — skipping index.`);
4968
4968
  return;
4969
4969
  }
4970
- const hasEmbeddingKey = !!(process.env.OPENAI_API_KEY || process.env.AZURE_OPENAI_EMBEDDING_ENDPOINT);
4971
- console.log(`Indexing signals from ${signalsDir}${hasEmbeddingKey ? ' (with embeddings)' : ''}...`);
4970
+ const hasEmbeddings = !!(process.env.OPENAI_API_KEY || process.env.AZURE_OPENAI_EMBEDDING_ENDPOINT) || llm.getEmbeddingProviderInfo().available;
4971
+ console.log(`Indexing signals from ${signalsDir}${hasEmbeddings ? ' (with embeddings)' : ''}...`);
4972
4972
  try {
4973
4973
  const stats = await contentStore.indexSignals({
4974
4974
  signalsDir,
4975
- embeddings: hasEmbeddingKey,
4975
+ embeddings: hasEmbeddings,
4976
4976
  });
4977
4977
  console.log(`Signals: ${stats.fileCount} files (${stats.newEntries} new, ${stats.updatedEntries} updated, ${stats.skippedEntries} skipped).`);
4978
4978
  } catch (err) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wayfind",
3
- "version": "2.0.59",
3
+ "version": "2.0.61",
4
4
  "description": "Team decision trail for AI-assisted development. The connective tissue between product, engineering, and strategy.",
5
5
  "bin": {
6
6
  "wayfind": "./bin/team-context.js",
@@ -51,10 +51,10 @@
51
51
  "dependencies": {
52
52
  "@modelcontextprotocol/sdk": "^1.28.0",
53
53
  "@slack/bolt": "^4.6.0",
54
+ "@xenova/transformers": "^2.17.2",
54
55
  "posthog-node": "^5.28.0"
55
56
  },
56
57
  "optionalDependencies": {
57
- "better-sqlite3": "^11.0.0",
58
- "@xenova/transformers": "^2.17.2"
58
+ "better-sqlite3": "^11.0.0"
59
59
  }
60
60
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wayfind",
3
- "version": "2.0.59",
3
+ "version": "2.0.61",
4
4
  "description": "Team decision trail for AI-assisted development. Session memory, decision journals, and team digests.",
5
5
  "author": {
6
6
  "name": "Wayfind",