@steno-ai/engine 0.1.10 → 0.1.12
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 +0 -0
- package/dist/adapters/cache.d.ts +0 -0
- package/dist/adapters/cache.d.ts.map +0 -0
- package/dist/adapters/cache.js +0 -0
- package/dist/adapters/cache.js.map +0 -0
- package/dist/adapters/embedding.d.ts +0 -0
- package/dist/adapters/embedding.d.ts.map +0 -0
- package/dist/adapters/embedding.js +0 -0
- package/dist/adapters/embedding.js.map +0 -0
- package/dist/adapters/gemini-embedding.d.ts +0 -0
- package/dist/adapters/gemini-embedding.d.ts.map +0 -0
- package/dist/adapters/gemini-embedding.js +0 -0
- package/dist/adapters/gemini-embedding.js.map +0 -0
- package/dist/adapters/index.d.ts +0 -0
- package/dist/adapters/index.d.ts.map +0 -0
- package/dist/adapters/index.js +0 -0
- package/dist/adapters/index.js.map +0 -0
- package/dist/adapters/llm.d.ts +0 -0
- package/dist/adapters/llm.d.ts.map +0 -0
- package/dist/adapters/llm.js +0 -0
- package/dist/adapters/llm.js.map +0 -0
- package/dist/adapters/perplexity-embedding.d.ts +0 -0
- package/dist/adapters/perplexity-embedding.d.ts.map +0 -0
- package/dist/adapters/perplexity-embedding.js +0 -0
- package/dist/adapters/perplexity-embedding.js.map +0 -0
- package/dist/adapters/storage.d.ts +0 -0
- package/dist/adapters/storage.d.ts.map +0 -0
- package/dist/adapters/storage.js +0 -0
- package/dist/adapters/storage.js.map +0 -0
- package/dist/auth/api-key.d.ts +0 -0
- package/dist/auth/api-key.d.ts.map +0 -0
- package/dist/auth/api-key.js +0 -0
- package/dist/auth/api-key.js.map +0 -0
- package/dist/auth/index.d.ts +0 -0
- package/dist/auth/index.d.ts.map +0 -0
- package/dist/auth/index.js +0 -0
- package/dist/auth/index.js.map +0 -0
- package/dist/config.d.ts +4 -4
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +13 -1
- package/dist/config.js.map +1 -1
- package/dist/extraction/codebase-extractor.d.ts +14 -0
- package/dist/extraction/codebase-extractor.d.ts.map +1 -0
- package/dist/extraction/codebase-extractor.js +204 -0
- package/dist/extraction/codebase-extractor.js.map +1 -0
- package/dist/extraction/codebase-prompts.d.ts +13 -0
- package/dist/extraction/codebase-prompts.d.ts.map +1 -0
- package/dist/extraction/codebase-prompts.js +132 -0
- package/dist/extraction/codebase-prompts.js.map +1 -0
- package/dist/extraction/contradiction.d.ts +0 -0
- package/dist/extraction/contradiction.d.ts.map +0 -0
- package/dist/extraction/contradiction.js +0 -0
- package/dist/extraction/contradiction.js.map +0 -0
- package/dist/extraction/cross-linker.d.ts +0 -0
- package/dist/extraction/cross-linker.d.ts.map +0 -0
- package/dist/extraction/cross-linker.js +0 -0
- package/dist/extraction/cross-linker.js.map +0 -0
- package/dist/extraction/dedup.d.ts +0 -0
- package/dist/extraction/dedup.d.ts.map +0 -0
- package/dist/extraction/dedup.js +0 -0
- package/dist/extraction/dedup.js.map +0 -0
- package/dist/extraction/entity-extractor.d.ts +0 -0
- package/dist/extraction/entity-extractor.d.ts.map +0 -0
- package/dist/extraction/entity-extractor.js +0 -0
- package/dist/extraction/entity-extractor.js.map +0 -0
- package/dist/extraction/hasher.d.ts +0 -0
- package/dist/extraction/hasher.d.ts.map +0 -0
- package/dist/extraction/hasher.js +0 -0
- package/dist/extraction/hasher.js.map +0 -0
- package/dist/extraction/heuristic.d.ts +0 -0
- package/dist/extraction/heuristic.d.ts.map +0 -0
- package/dist/extraction/heuristic.js +0 -0
- package/dist/extraction/heuristic.js.map +0 -0
- package/dist/extraction/index.d.ts +2 -0
- package/dist/extraction/index.d.ts.map +1 -1
- package/dist/extraction/index.js +2 -0
- package/dist/extraction/index.js.map +1 -1
- package/dist/extraction/llm-extractor.d.ts +0 -0
- package/dist/extraction/llm-extractor.d.ts.map +1 -1
- package/dist/extraction/llm-extractor.js +5 -1
- package/dist/extraction/llm-extractor.js.map +1 -1
- package/dist/extraction/pipeline.d.ts +2 -0
- package/dist/extraction/pipeline.d.ts.map +1 -1
- package/dist/extraction/pipeline.js +84 -51
- package/dist/extraction/pipeline.js.map +1 -1
- package/dist/extraction/prompts.d.ts +2 -2
- package/dist/extraction/prompts.d.ts.map +1 -1
- package/dist/extraction/prompts.js +1 -0
- package/dist/extraction/prompts.js.map +1 -1
- package/dist/extraction/sliding-window.d.ts +0 -0
- package/dist/extraction/sliding-window.d.ts.map +0 -0
- package/dist/extraction/sliding-window.js +0 -0
- package/dist/extraction/sliding-window.js.map +0 -0
- package/dist/extraction/types.d.ts +1 -1
- package/dist/extraction/types.d.ts.map +1 -1
- package/dist/extraction/types.js +0 -0
- package/dist/extraction/types.js.map +0 -0
- package/dist/feedback/index.d.ts +0 -0
- package/dist/feedback/index.d.ts.map +0 -0
- package/dist/feedback/index.js +0 -0
- package/dist/feedback/index.js.map +0 -0
- package/dist/feedback/tracker.d.ts +0 -0
- package/dist/feedback/tracker.d.ts.map +0 -0
- package/dist/feedback/tracker.js +0 -0
- package/dist/feedback/tracker.js.map +0 -0
- package/dist/index.d.ts +0 -0
- package/dist/index.d.ts.map +0 -0
- package/dist/index.js +0 -0
- package/dist/index.js.map +0 -0
- package/dist/models/api-key.d.ts +0 -0
- package/dist/models/api-key.d.ts.map +0 -0
- package/dist/models/api-key.js +0 -0
- package/dist/models/api-key.js.map +0 -0
- package/dist/models/edge.d.ts +6 -6
- package/dist/models/edge.d.ts.map +0 -0
- package/dist/models/edge.js +0 -0
- package/dist/models/edge.js.map +0 -0
- package/dist/models/entity.d.ts +0 -0
- package/dist/models/entity.d.ts.map +0 -0
- package/dist/models/entity.js +0 -0
- package/dist/models/entity.js.map +0 -0
- package/dist/models/extraction.d.ts +12 -12
- package/dist/models/extraction.d.ts.map +0 -0
- package/dist/models/extraction.js +0 -0
- package/dist/models/extraction.js.map +0 -0
- package/dist/models/fact-entity.d.ts +0 -0
- package/dist/models/fact-entity.d.ts.map +0 -0
- package/dist/models/fact-entity.js +0 -0
- package/dist/models/fact-entity.js.map +0 -0
- package/dist/models/fact.d.ts +12 -12
- package/dist/models/fact.d.ts.map +0 -0
- package/dist/models/fact.js +0 -0
- package/dist/models/fact.js.map +0 -0
- package/dist/models/index.d.ts +0 -0
- package/dist/models/index.d.ts.map +0 -0
- package/dist/models/index.js +0 -0
- package/dist/models/index.js.map +0 -0
- package/dist/models/memory-access.d.ts +0 -0
- package/dist/models/memory-access.d.ts.map +0 -0
- package/dist/models/memory-access.js +0 -0
- package/dist/models/memory-access.js.map +0 -0
- package/dist/models/session-message.d.ts +0 -0
- package/dist/models/session-message.d.ts.map +0 -0
- package/dist/models/session-message.js +0 -0
- package/dist/models/session-message.js.map +0 -0
- package/dist/models/session.d.ts +0 -0
- package/dist/models/session.d.ts.map +0 -0
- package/dist/models/session.js +0 -0
- package/dist/models/session.js.map +0 -0
- package/dist/models/tenant.d.ts +0 -0
- package/dist/models/tenant.d.ts.map +0 -0
- package/dist/models/tenant.js +0 -0
- package/dist/models/tenant.js.map +0 -0
- package/dist/models/trigger.d.ts +6 -6
- package/dist/models/trigger.d.ts.map +0 -0
- package/dist/models/trigger.js +0 -0
- package/dist/models/trigger.js.map +0 -0
- package/dist/models/usage-record.d.ts +0 -0
- package/dist/models/usage-record.d.ts.map +0 -0
- package/dist/models/usage-record.js +0 -0
- package/dist/models/usage-record.js.map +0 -0
- package/dist/models/webhook.d.ts +0 -0
- package/dist/models/webhook.d.ts.map +0 -0
- package/dist/models/webhook.js +0 -0
- package/dist/models/webhook.js.map +0 -0
- package/dist/profiles/index.d.ts +0 -0
- package/dist/profiles/index.d.ts.map +0 -0
- package/dist/profiles/index.js +0 -0
- package/dist/profiles/index.js.map +0 -0
- package/dist/profiles/profile.d.ts +0 -0
- package/dist/profiles/profile.d.ts.map +0 -0
- package/dist/profiles/profile.js +0 -0
- package/dist/profiles/profile.js.map +0 -0
- package/dist/retrieval/compound-search.d.ts +0 -0
- package/dist/retrieval/compound-search.d.ts.map +0 -0
- package/dist/retrieval/compound-search.js +0 -0
- package/dist/retrieval/compound-search.js.map +0 -0
- package/dist/retrieval/contradiction-surfacer.d.ts +0 -0
- package/dist/retrieval/contradiction-surfacer.d.ts.map +0 -0
- package/dist/retrieval/contradiction-surfacer.js +0 -0
- package/dist/retrieval/contradiction-surfacer.js.map +0 -0
- package/dist/retrieval/embedding-cache.d.ts +0 -0
- package/dist/retrieval/embedding-cache.d.ts.map +0 -0
- package/dist/retrieval/embedding-cache.js +0 -0
- package/dist/retrieval/embedding-cache.js.map +0 -0
- package/dist/retrieval/fusion.d.ts +0 -0
- package/dist/retrieval/fusion.d.ts.map +0 -0
- package/dist/retrieval/fusion.js +0 -0
- package/dist/retrieval/fusion.js.map +0 -0
- package/dist/retrieval/graph-traversal.d.ts +0 -0
- package/dist/retrieval/graph-traversal.d.ts.map +0 -0
- package/dist/retrieval/graph-traversal.js +0 -0
- package/dist/retrieval/graph-traversal.js.map +0 -0
- package/dist/retrieval/index.d.ts +0 -0
- package/dist/retrieval/index.d.ts.map +0 -0
- package/dist/retrieval/index.js +0 -0
- package/dist/retrieval/index.js.map +0 -0
- package/dist/retrieval/keyword-search.d.ts +0 -0
- package/dist/retrieval/keyword-search.d.ts.map +0 -0
- package/dist/retrieval/keyword-search.js +0 -0
- package/dist/retrieval/keyword-search.js.map +0 -0
- package/dist/retrieval/query-expansion.d.ts +0 -0
- package/dist/retrieval/query-expansion.d.ts.map +0 -0
- package/dist/retrieval/query-expansion.js +0 -0
- package/dist/retrieval/query-expansion.js.map +0 -0
- package/dist/retrieval/reranker.d.ts +0 -0
- package/dist/retrieval/reranker.d.ts.map +0 -0
- package/dist/retrieval/reranker.js +0 -0
- package/dist/retrieval/reranker.js.map +0 -0
- package/dist/retrieval/salience-scorer.d.ts +0 -0
- package/dist/retrieval/salience-scorer.d.ts.map +0 -0
- package/dist/retrieval/salience-scorer.js +0 -0
- package/dist/retrieval/salience-scorer.js.map +0 -0
- package/dist/retrieval/search.d.ts +0 -0
- package/dist/retrieval/search.d.ts.map +1 -1
- package/dist/retrieval/search.js +77 -66
- package/dist/retrieval/search.js.map +1 -1
- package/dist/retrieval/temporal-scorer.d.ts +0 -0
- package/dist/retrieval/temporal-scorer.d.ts.map +0 -0
- package/dist/retrieval/temporal-scorer.js +0 -0
- package/dist/retrieval/temporal-scorer.js.map +0 -0
- package/dist/retrieval/trigger-matcher.d.ts +0 -0
- package/dist/retrieval/trigger-matcher.d.ts.map +0 -0
- package/dist/retrieval/trigger-matcher.js +0 -0
- package/dist/retrieval/trigger-matcher.js.map +0 -0
- package/dist/retrieval/types.d.ts +4 -0
- package/dist/retrieval/types.d.ts.map +1 -1
- package/dist/retrieval/types.js +10 -0
- package/dist/retrieval/types.js.map +1 -1
- package/dist/retrieval/vector-search.d.ts +0 -0
- package/dist/retrieval/vector-search.d.ts.map +0 -0
- package/dist/retrieval/vector-search.js +0 -0
- package/dist/retrieval/vector-search.js.map +0 -0
- package/dist/salience/decay.d.ts +0 -0
- package/dist/salience/decay.d.ts.map +0 -0
- package/dist/salience/decay.js +0 -0
- package/dist/salience/decay.js.map +0 -0
- package/dist/salience/index.d.ts +0 -0
- package/dist/salience/index.d.ts.map +0 -0
- package/dist/salience/index.js +0 -0
- package/dist/salience/index.js.map +0 -0
- package/dist/scratchpad/index.d.ts +0 -0
- package/dist/scratchpad/index.d.ts.map +0 -0
- package/dist/scratchpad/index.js +0 -0
- package/dist/scratchpad/index.js.map +0 -0
- package/dist/scratchpad/scratchpad.d.ts +0 -0
- package/dist/scratchpad/scratchpad.d.ts.map +0 -0
- package/dist/scratchpad/scratchpad.js +0 -0
- package/dist/scratchpad/scratchpad.js.map +0 -0
- package/dist/sessions/index.d.ts +0 -0
- package/dist/sessions/index.d.ts.map +0 -0
- package/dist/sessions/index.js +0 -0
- package/dist/sessions/index.js.map +0 -0
- package/dist/sessions/manager.d.ts +0 -0
- package/dist/sessions/manager.d.ts.map +0 -0
- package/dist/sessions/manager.js +0 -0
- package/dist/sessions/manager.js.map +0 -0
- package/package.json +9 -9
- package/src/adapters/cache.d.ts +0 -0
- package/src/adapters/cache.d.ts.map +0 -0
- package/src/adapters/cache.js +0 -0
- package/src/adapters/cache.js.map +0 -0
- package/src/adapters/cache.ts +0 -0
- package/src/adapters/embedding.d.ts +0 -0
- package/src/adapters/embedding.d.ts.map +0 -0
- package/src/adapters/embedding.js +0 -0
- package/src/adapters/embedding.js.map +0 -0
- package/src/adapters/embedding.ts +0 -0
- package/src/adapters/gemini-embedding.ts +0 -0
- package/src/adapters/index.ts +0 -0
- package/src/adapters/llm.d.ts +0 -0
- package/src/adapters/llm.d.ts.map +0 -0
- package/src/adapters/llm.js +0 -0
- package/src/adapters/llm.js.map +0 -0
- package/src/adapters/llm.ts +0 -0
- package/src/adapters/perplexity-embedding.d.ts +0 -0
- package/src/adapters/perplexity-embedding.d.ts.map +0 -0
- package/src/adapters/perplexity-embedding.js +0 -0
- package/src/adapters/perplexity-embedding.js.map +0 -0
- package/src/adapters/perplexity-embedding.ts +0 -0
- package/src/adapters/storage.d.ts +0 -0
- package/src/adapters/storage.d.ts.map +0 -0
- package/src/adapters/storage.js +0 -0
- package/src/adapters/storage.js.map +0 -0
- package/src/adapters/storage.ts +0 -0
- package/src/auth/api-key.ts +0 -0
- package/src/auth/index.ts +0 -0
- package/src/config.d.ts +0 -0
- package/src/config.d.ts.map +0 -0
- package/src/config.js +0 -0
- package/src/config.js.map +0 -0
- package/src/config.ts +13 -1
- package/src/extraction/codebase-extractor.ts +239 -0
- package/src/extraction/codebase-prompts.ts +141 -0
- package/src/extraction/contradiction.d.ts +0 -0
- package/src/extraction/contradiction.d.ts.map +0 -0
- package/src/extraction/contradiction.js +0 -0
- package/src/extraction/contradiction.js.map +0 -0
- package/src/extraction/contradiction.ts +0 -0
- package/src/extraction/cross-linker.d.ts +0 -0
- package/src/extraction/cross-linker.d.ts.map +0 -0
- package/src/extraction/cross-linker.js +0 -0
- package/src/extraction/cross-linker.js.map +0 -0
- package/src/extraction/cross-linker.ts +0 -0
- package/src/extraction/dedup.d.ts +0 -0
- package/src/extraction/dedup.d.ts.map +0 -0
- package/src/extraction/dedup.js +0 -0
- package/src/extraction/dedup.js.map +0 -0
- package/src/extraction/dedup.ts +0 -0
- package/src/extraction/entity-extractor.d.ts +0 -0
- package/src/extraction/entity-extractor.d.ts.map +0 -0
- package/src/extraction/entity-extractor.js +0 -0
- package/src/extraction/entity-extractor.js.map +0 -0
- package/src/extraction/entity-extractor.ts +0 -0
- package/src/extraction/hasher.d.ts +0 -0
- package/src/extraction/hasher.d.ts.map +0 -0
- package/src/extraction/hasher.js +0 -0
- package/src/extraction/hasher.js.map +0 -0
- package/src/extraction/hasher.ts +0 -0
- package/src/extraction/heuristic.d.ts +0 -0
- package/src/extraction/heuristic.d.ts.map +0 -0
- package/src/extraction/heuristic.js +0 -0
- package/src/extraction/heuristic.js.map +0 -0
- package/src/extraction/heuristic.ts +0 -0
- package/src/extraction/index.ts +2 -0
- package/src/extraction/llm-extractor.d.ts +0 -0
- package/src/extraction/llm-extractor.d.ts.map +0 -0
- package/src/extraction/llm-extractor.js +0 -0
- package/src/extraction/llm-extractor.js.map +0 -0
- package/src/extraction/llm-extractor.ts +5 -1
- package/src/extraction/pipeline.d.ts +0 -0
- package/src/extraction/pipeline.d.ts.map +0 -0
- package/src/extraction/pipeline.js +0 -0
- package/src/extraction/pipeline.js.map +0 -0
- package/src/extraction/pipeline.ts +103 -59
- package/src/extraction/prompts.d.ts +0 -0
- package/src/extraction/prompts.d.ts.map +0 -0
- package/src/extraction/prompts.js +0 -0
- package/src/extraction/prompts.js.map +0 -0
- package/src/extraction/prompts.ts +1 -0
- package/src/extraction/sliding-window.d.ts +0 -0
- package/src/extraction/sliding-window.d.ts.map +0 -0
- package/src/extraction/sliding-window.js +0 -0
- package/src/extraction/sliding-window.js.map +0 -0
- package/src/extraction/sliding-window.ts +0 -0
- package/src/extraction/types.d.ts +0 -0
- package/src/extraction/types.d.ts.map +0 -0
- package/src/extraction/types.js +0 -0
- package/src/extraction/types.js.map +0 -0
- package/src/extraction/types.ts +1 -1
- package/src/feedback/index.ts +0 -0
- package/src/feedback/tracker.d.ts +0 -0
- package/src/feedback/tracker.d.ts.map +0 -0
- package/src/feedback/tracker.js +0 -0
- package/src/feedback/tracker.js.map +0 -0
- package/src/feedback/tracker.ts +0 -0
- package/src/index.ts +0 -0
- package/src/models/api-key.d.ts +0 -0
- package/src/models/api-key.d.ts.map +0 -0
- package/src/models/api-key.js +0 -0
- package/src/models/api-key.js.map +0 -0
- package/src/models/api-key.ts +0 -0
- package/src/models/edge.d.ts +0 -0
- package/src/models/edge.d.ts.map +0 -0
- package/src/models/edge.js +0 -0
- package/src/models/edge.js.map +0 -0
- package/src/models/edge.ts +0 -0
- package/src/models/entity.d.ts +0 -0
- package/src/models/entity.d.ts.map +0 -0
- package/src/models/entity.js +0 -0
- package/src/models/entity.js.map +0 -0
- package/src/models/entity.ts +0 -0
- package/src/models/extraction.d.ts +0 -0
- package/src/models/extraction.d.ts.map +0 -0
- package/src/models/extraction.js +0 -0
- package/src/models/extraction.js.map +0 -0
- package/src/models/extraction.ts +0 -0
- package/src/models/fact-entity.d.ts +0 -0
- package/src/models/fact-entity.d.ts.map +0 -0
- package/src/models/fact-entity.js +0 -0
- package/src/models/fact-entity.js.map +0 -0
- package/src/models/fact-entity.ts +0 -0
- package/src/models/fact.d.ts +0 -0
- package/src/models/fact.d.ts.map +0 -0
- package/src/models/fact.js +0 -0
- package/src/models/fact.js.map +0 -0
- package/src/models/fact.ts +0 -0
- package/src/models/index.d.ts +0 -0
- package/src/models/index.d.ts.map +0 -0
- package/src/models/index.js +0 -0
- package/src/models/index.js.map +0 -0
- package/src/models/index.ts +0 -0
- package/src/models/memory-access.d.ts +0 -0
- package/src/models/memory-access.d.ts.map +0 -0
- package/src/models/memory-access.js +0 -0
- package/src/models/memory-access.js.map +0 -0
- package/src/models/memory-access.ts +0 -0
- package/src/models/session-message.ts +0 -0
- package/src/models/session.d.ts +0 -0
- package/src/models/session.d.ts.map +0 -0
- package/src/models/session.js +0 -0
- package/src/models/session.js.map +0 -0
- package/src/models/session.ts +0 -0
- package/src/models/tenant.d.ts +0 -0
- package/src/models/tenant.d.ts.map +0 -0
- package/src/models/tenant.js +0 -0
- package/src/models/tenant.js.map +0 -0
- package/src/models/tenant.ts +0 -0
- package/src/models/trigger.d.ts +0 -0
- package/src/models/trigger.d.ts.map +0 -0
- package/src/models/trigger.js +0 -0
- package/src/models/trigger.js.map +0 -0
- package/src/models/trigger.ts +0 -0
- package/src/models/usage-record.d.ts +0 -0
- package/src/models/usage-record.d.ts.map +0 -0
- package/src/models/usage-record.js +0 -0
- package/src/models/usage-record.js.map +0 -0
- package/src/models/usage-record.ts +0 -0
- package/src/models/webhook.d.ts +0 -0
- package/src/models/webhook.d.ts.map +0 -0
- package/src/models/webhook.js +0 -0
- package/src/models/webhook.js.map +0 -0
- package/src/models/webhook.ts +0 -0
- package/src/profiles/index.ts +0 -0
- package/src/profiles/profile.ts +0 -0
- package/src/retrieval/compound-search.d.ts +0 -0
- package/src/retrieval/compound-search.d.ts.map +0 -0
- package/src/retrieval/compound-search.js +0 -0
- package/src/retrieval/compound-search.js.map +0 -0
- package/src/retrieval/compound-search.ts +0 -0
- package/src/retrieval/contradiction-surfacer.d.ts +0 -0
- package/src/retrieval/contradiction-surfacer.d.ts.map +0 -0
- package/src/retrieval/contradiction-surfacer.js +0 -0
- package/src/retrieval/contradiction-surfacer.js.map +0 -0
- package/src/retrieval/contradiction-surfacer.ts +0 -0
- package/src/retrieval/embedding-cache.d.ts +0 -0
- package/src/retrieval/embedding-cache.d.ts.map +0 -0
- package/src/retrieval/embedding-cache.js +0 -0
- package/src/retrieval/embedding-cache.js.map +0 -0
- package/src/retrieval/embedding-cache.ts +0 -0
- package/src/retrieval/fusion.d.ts +0 -0
- package/src/retrieval/fusion.d.ts.map +0 -0
- package/src/retrieval/fusion.js +0 -0
- package/src/retrieval/fusion.js.map +0 -0
- package/src/retrieval/fusion.ts +0 -0
- package/src/retrieval/graph-traversal.d.ts +0 -0
- package/src/retrieval/graph-traversal.d.ts.map +0 -0
- package/src/retrieval/graph-traversal.js +0 -0
- package/src/retrieval/graph-traversal.js.map +0 -0
- package/src/retrieval/graph-traversal.ts +0 -0
- package/src/retrieval/index.ts +0 -0
- package/src/retrieval/keyword-search.ts +0 -0
- package/src/retrieval/query-expansion.d.ts +0 -0
- package/src/retrieval/query-expansion.d.ts.map +0 -0
- package/src/retrieval/query-expansion.js +0 -0
- package/src/retrieval/query-expansion.js.map +0 -0
- package/src/retrieval/query-expansion.ts +0 -0
- package/src/retrieval/reranker.d.ts +0 -0
- package/src/retrieval/reranker.d.ts.map +0 -0
- package/src/retrieval/reranker.js +0 -0
- package/src/retrieval/reranker.js.map +0 -0
- package/src/retrieval/reranker.ts +0 -0
- package/src/retrieval/salience-scorer.d.ts +0 -0
- package/src/retrieval/salience-scorer.d.ts.map +0 -0
- package/src/retrieval/salience-scorer.js +0 -0
- package/src/retrieval/salience-scorer.js.map +0 -0
- package/src/retrieval/salience-scorer.ts +0 -0
- package/src/retrieval/search.d.ts +0 -0
- package/src/retrieval/search.d.ts.map +0 -0
- package/src/retrieval/search.js +0 -0
- package/src/retrieval/search.js.map +0 -0
- package/src/retrieval/search.ts +84 -67
- package/src/retrieval/temporal-scorer.d.ts +0 -0
- package/src/retrieval/temporal-scorer.d.ts.map +0 -0
- package/src/retrieval/temporal-scorer.js +0 -0
- package/src/retrieval/temporal-scorer.js.map +0 -0
- package/src/retrieval/temporal-scorer.ts +0 -0
- package/src/retrieval/trigger-matcher.d.ts +0 -0
- package/src/retrieval/trigger-matcher.d.ts.map +0 -0
- package/src/retrieval/trigger-matcher.js +0 -0
- package/src/retrieval/trigger-matcher.js.map +0 -0
- package/src/retrieval/trigger-matcher.ts +0 -0
- package/src/retrieval/types.d.ts +0 -0
- package/src/retrieval/types.d.ts.map +0 -0
- package/src/retrieval/types.js +0 -0
- package/src/retrieval/types.js.map +0 -0
- package/src/retrieval/types.ts +12 -0
- package/src/retrieval/vector-search.d.ts +0 -0
- package/src/retrieval/vector-search.d.ts.map +0 -0
- package/src/retrieval/vector-search.js +0 -0
- package/src/retrieval/vector-search.js.map +0 -0
- package/src/retrieval/vector-search.ts +0 -0
- package/src/salience/decay.d.ts +0 -0
- package/src/salience/decay.d.ts.map +0 -0
- package/src/salience/decay.js +0 -0
- package/src/salience/decay.js.map +0 -0
- package/src/salience/decay.ts +0 -0
- package/src/salience/index.ts +0 -0
- package/src/scratchpad/index.ts +0 -0
- package/src/scratchpad/scratchpad.d.ts +0 -0
- package/src/scratchpad/scratchpad.d.ts.map +0 -0
- package/src/scratchpad/scratchpad.js +0 -0
- package/src/scratchpad/scratchpad.js.map +0 -0
- package/src/scratchpad/scratchpad.ts +0 -0
- package/src/sessions/index.ts +0 -0
- package/src/sessions/manager.d.ts +0 -0
- package/src/sessions/manager.d.ts.map +0 -0
- package/src/sessions/manager.js +0 -0
- package/src/sessions/manager.js.map +0 -0
- package/src/sessions/manager.ts +0 -0
package/src/retrieval/search.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { EmbeddingAdapter } from '../adapters/embedding.js';
|
|
|
3
3
|
import type { CacheAdapter } from '../adapters/cache.js';
|
|
4
4
|
import type { LLMAdapter } from '../adapters/llm.js';
|
|
5
5
|
import type { SearchOptions, SearchResponse, FusionWeights, Candidate } from './types.js';
|
|
6
|
-
import { DEFAULT_FUSION_WEIGHTS } from './types.js';
|
|
6
|
+
import { DEFAULT_FUSION_WEIGHTS, CODEBASE_FUSION_WEIGHTS } from './types.js';
|
|
7
7
|
import { compoundSearchSignal } from './compound-search.js';
|
|
8
8
|
import { graphSearch } from './graph-traversal.js';
|
|
9
9
|
import { matchTriggers } from './trigger-matcher.js';
|
|
@@ -37,7 +37,10 @@ export async function search(
|
|
|
37
37
|
): Promise<SearchResponse> {
|
|
38
38
|
const startTime = Date.now();
|
|
39
39
|
const limit = Math.min(options.limit ?? 10, 100);
|
|
40
|
-
|
|
40
|
+
// Use codebase-optimized weights when the scope is 'codebase' (unless explicitly overridden)
|
|
41
|
+
const isCodebaseScope = options.scope === 'codebase';
|
|
42
|
+
const defaultWeightsForScope = isCodebaseScope ? CODEBASE_FUSION_WEIGHTS : DEFAULT_FUSION_WEIGHTS;
|
|
43
|
+
const weights = options.weights ?? config.defaultWeights ?? defaultWeightsForScope;
|
|
41
44
|
const fetchMultiplier = 3; // fetch 3x limit from each signal for better fusion
|
|
42
45
|
|
|
43
46
|
// Wrap embedding with cache if available
|
|
@@ -45,97 +48,111 @@ export async function search(
|
|
|
45
48
|
? new CachedEmbeddingAdapter(config.embedding, config.cache)
|
|
46
49
|
: config.embedding;
|
|
47
50
|
|
|
48
|
-
//
|
|
49
|
-
//
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
//
|
|
53
|
-
// All parallel = single round trip time.
|
|
51
|
+
// Fast mode: vector + keyword only, no graph, no triggers, no reranking
|
|
52
|
+
// Target: <300ms (embedding API ~150ms + DB ~100ms)
|
|
53
|
+
const isFast = options.fast === true;
|
|
54
|
+
|
|
55
|
+
// 1. Run retrieval signals
|
|
54
56
|
const t0 = Date.now();
|
|
55
57
|
|
|
56
58
|
const tCompound = Date.now();
|
|
57
59
|
const compoundPromise = compoundSearchSignal(config.storage, effectiveEmbedding, options.query, options.tenantId, options.scope, options.scopeId, limit * fetchMultiplier).catch(() => ({ vectorCandidates: [] as Candidate[], keywordCandidates: [] as Candidate[] }));
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
60
|
+
|
|
61
|
+
let graphPromise: Promise<Candidate[]> | null = null;
|
|
62
|
+
let triggerPromise: Promise<{ candidates: Candidate[]; triggersMatched: string[] }> | null = null;
|
|
63
|
+
|
|
64
|
+
if (!isFast) {
|
|
65
|
+
const tGraph = Date.now();
|
|
66
|
+
graphPromise = graphSearch(config.storage, effectiveEmbedding, options.query, options.tenantId, options.scope, options.scopeId, limit * fetchMultiplier, { maxDepth: config.graphMaxDepth, maxEntities: config.graphMaxEntities, asOf: options.temporalFilter?.asOf })
|
|
67
|
+
.then(r => { console.error(`[steno-search] graph: ${Date.now() - tGraph}ms (${Array.isArray(r) ? r.length : 0} candidates)`); return r; })
|
|
68
|
+
.catch(() => [] as Candidate[]);
|
|
69
|
+
const tTrigger = Date.now();
|
|
70
|
+
triggerPromise = matchTriggers(config.storage, effectiveEmbedding, options.query, options.tenantId, options.scope, options.scopeId)
|
|
71
|
+
.then(r => { console.error(`[steno-search] trigger: ${Date.now() - tTrigger}ms`); return r; })
|
|
72
|
+
.catch(() => ({ candidates: [] as Candidate[], triggersMatched: [] as string[] }));
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
const compoundResult = await compoundPromise.then(r => { console.error(`[steno-search] compound: ${Date.now() - tCompound}ms (vec=${r.vectorCandidates.length}, kw=${r.keywordCandidates.length})`); return r; });
|
|
69
76
|
|
|
70
77
|
const vectorCandidates = compoundResult.vectorCandidates;
|
|
71
78
|
const keywordCandidates = compoundResult.keywordCandidates;
|
|
72
|
-
const graphCandidates = Array.isArray(graphSettled) ? graphSettled : [];
|
|
73
|
-
const triggerResult = triggerSettled;
|
|
74
|
-
const triggersMatched = triggerResult.triggersMatched;
|
|
75
79
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
80
|
+
let graphCandidates: Candidate[] = [];
|
|
81
|
+
let triggersMatched: string[] = [];
|
|
82
|
+
let triggerCandidates: Candidate[] = [];
|
|
83
|
+
|
|
84
|
+
if (!isFast && graphPromise && triggerPromise) {
|
|
85
|
+
const [graphSettled, triggerSettled] = await Promise.all([graphPromise, triggerPromise]);
|
|
86
|
+
graphCandidates = Array.isArray(graphSettled) ? graphSettled : [];
|
|
87
|
+
triggersMatched = triggerSettled.triggersMatched;
|
|
88
|
+
triggerCandidates = triggerSettled.candidates;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
console.error(`[steno-search] Signals total: ${Date.now() - t0}ms${isFast ? ' (fast mode)' : ''}`);
|
|
92
|
+
|
|
93
|
+
// 2. Pre-fusion reranking — skip entirely in fast mode
|
|
79
94
|
const t1 = Date.now();
|
|
80
95
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
96
|
+
if (!isFast) {
|
|
97
|
+
// Batch-embed query + all unique candidate contents in ONE call
|
|
98
|
+
const allPreRerankCandidates = [...vectorCandidates, ...graphCandidates];
|
|
99
|
+
let queryEmbedding: number[] | null = null;
|
|
100
|
+
const candidateEmbeddings = new Map<string, number[]>();
|
|
101
|
+
|
|
102
|
+
// Only rerank if we have >10 candidates — for small sets the original order is fine
|
|
103
|
+
if (allPreRerankCandidates.length > 10) {
|
|
104
|
+
try {
|
|
105
|
+
const uniqueTexts = new Map<string, string>();
|
|
106
|
+
for (const c of allPreRerankCandidates) {
|
|
107
|
+
if (!uniqueTexts.has(c.fact.id)) uniqueTexts.set(c.fact.id, c.fact.content);
|
|
108
|
+
}
|
|
109
|
+
const textsToEmbed = [options.query, ...uniqueTexts.values()];
|
|
110
|
+
const embeddings = await effectiveEmbedding.embedBatch(textsToEmbed);
|
|
111
|
+
queryEmbedding = embeddings[0]!;
|
|
112
|
+
let idx = 1;
|
|
113
|
+
for (const [factId] of uniqueTexts) {
|
|
114
|
+
candidateEmbeddings.set(factId, embeddings[idx++]!);
|
|
115
|
+
}
|
|
116
|
+
} catch {
|
|
117
|
+
// Reranking fails silently — proceed without it
|
|
99
118
|
}
|
|
100
|
-
} catch {
|
|
101
|
-
// Reranking fails silently — proceed without it
|
|
102
119
|
}
|
|
103
|
-
}
|
|
104
120
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
121
|
+
// Rerank vector candidates
|
|
122
|
+
if (queryEmbedding && vectorCandidates.length > 1) {
|
|
123
|
+
const RERANK_W = 0.4;
|
|
124
|
+
for (const c of vectorCandidates) {
|
|
125
|
+
const factEmb = candidateEmbeddings.get(c.fact.id);
|
|
126
|
+
if (factEmb) {
|
|
127
|
+
const sim = cosineSim(queryEmbedding, factEmb);
|
|
128
|
+
c.vectorScore = c.vectorScore * (1 - RERANK_W) + sim * RERANK_W;
|
|
129
|
+
}
|
|
113
130
|
}
|
|
131
|
+
vectorCandidates.sort((a, b) => b.vectorScore - a.vectorScore);
|
|
114
132
|
}
|
|
115
|
-
vectorCandidates.sort((a, b) => b.vectorScore - a.vectorScore);
|
|
116
|
-
}
|
|
117
133
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
134
|
+
// Rerank graph candidates
|
|
135
|
+
if (queryEmbedding && graphCandidates.length > 1) {
|
|
136
|
+
const RERANK_W = 0.4;
|
|
137
|
+
for (const c of graphCandidates) {
|
|
138
|
+
const factEmb = candidateEmbeddings.get(c.fact.id);
|
|
139
|
+
if (factEmb) {
|
|
140
|
+
const sim = cosineSim(queryEmbedding, factEmb);
|
|
141
|
+
c.graphScore = c.graphScore * (1 - RERANK_W) + sim * RERANK_W;
|
|
142
|
+
}
|
|
126
143
|
}
|
|
144
|
+
graphCandidates.sort((a, b) => b.graphScore - a.graphScore);
|
|
127
145
|
}
|
|
128
|
-
graphCandidates.sort((a, b) => b.graphScore - a.graphScore);
|
|
129
146
|
}
|
|
130
147
|
// Keyword candidates skip reranking — FTS scores shouldn't be overridden by embeddings
|
|
131
|
-
console.error(`[steno-search] Pre-fusion rerank: ${Date.now() - t1}ms`);
|
|
148
|
+
console.error(`[steno-search] Pre-fusion rerank: ${Date.now() - t1}ms${isFast ? ' (skipped)' : ''}`);
|
|
132
149
|
|
|
133
150
|
// 3. Merge all pre-reranked streams
|
|
134
151
|
const allCandidates: Candidate[] = [
|
|
135
152
|
...vectorCandidates,
|
|
136
153
|
...keywordCandidates,
|
|
137
154
|
...graphCandidates,
|
|
138
|
-
...
|
|
155
|
+
...triggerCandidates,
|
|
139
156
|
];
|
|
140
157
|
|
|
141
158
|
if (allCandidates.length === 0) {
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/src/retrieval/types.d.ts
CHANGED
|
File without changes
|
|
File without changes
|
package/src/retrieval/types.js
CHANGED
|
File without changes
|
|
File without changes
|
package/src/retrieval/types.ts
CHANGED
|
@@ -14,6 +14,7 @@ export interface SearchOptions {
|
|
|
14
14
|
};
|
|
15
15
|
weights?: FusionWeights; // override default fusion weights
|
|
16
16
|
tokenBudget?: number; // max estimated tokens for results (rough: chars/4). Trims lowest-scored results to fit.
|
|
17
|
+
fast?: boolean; // skip graph traversal + reranking for <300ms latency
|
|
17
18
|
}
|
|
18
19
|
|
|
19
20
|
/** Configurable fusion weights (should sum to 1.0 — normalized if not) */
|
|
@@ -80,3 +81,14 @@ export const DEFAULT_FUSION_WEIGHTS: FusionWeights = {
|
|
|
80
81
|
salience: 0.10,
|
|
81
82
|
temporal: 0.20,
|
|
82
83
|
};
|
|
84
|
+
|
|
85
|
+
/** Fusion weights optimized for codebase queries — heavier on graph + keyword,
|
|
86
|
+
* no temporal bias (code architecture is not time-sensitive) */
|
|
87
|
+
export const CODEBASE_FUSION_WEIGHTS: FusionWeights = {
|
|
88
|
+
vector: 0.30,
|
|
89
|
+
keyword: 0.25,
|
|
90
|
+
graph: 0.25,
|
|
91
|
+
recency: 0.10,
|
|
92
|
+
salience: 0.10,
|
|
93
|
+
temporal: 0.00,
|
|
94
|
+
};
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/src/salience/decay.d.ts
CHANGED
|
File without changes
|
|
File without changes
|
package/src/salience/decay.js
CHANGED
|
File without changes
|
|
File without changes
|
package/src/salience/decay.ts
CHANGED
|
File without changes
|
package/src/salience/index.ts
CHANGED
|
File without changes
|
package/src/scratchpad/index.ts
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/src/sessions/index.ts
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/src/sessions/manager.js
CHANGED
|
File without changes
|
|
File without changes
|
package/src/sessions/manager.ts
CHANGED
|
File without changes
|