@steno-ai/engine 0.1.11 → 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 +0 -0
- package/dist/extraction/prompts.d.ts.map +0 -0
- package/dist/extraction/prompts.js +0 -0
- package/dist/extraction/prompts.js.map +0 -0
- 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 +0 -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/README.md
CHANGED
|
File without changes
|
package/dist/adapters/cache.d.ts
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/adapters/cache.js
CHANGED
|
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/dist/adapters/index.d.ts
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/adapters/index.js
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/adapters/llm.d.ts
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/adapters/llm.js
CHANGED
|
File without changes
|
package/dist/adapters/llm.js.map
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/dist/adapters/storage.js
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/auth/api-key.d.ts
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/auth/api-key.js
CHANGED
|
File without changes
|
package/dist/auth/api-key.js.map
CHANGED
|
File without changes
|
package/dist/auth/index.d.ts
CHANGED
|
File without changes
|
package/dist/auth/index.d.ts.map
CHANGED
|
File without changes
|
package/dist/auth/index.js
CHANGED
|
File without changes
|
package/dist/auth/index.js.map
CHANGED
|
File without changes
|
package/dist/config.d.ts
CHANGED
|
@@ -263,7 +263,7 @@ export declare const StenoConfigSchema: z.ZodObject<{
|
|
|
263
263
|
} | undefined;
|
|
264
264
|
}>;
|
|
265
265
|
export type StenoConfig = z.infer<typeof StenoConfigSchema>;
|
|
266
|
-
export declare const SCOPES: readonly ["user", "agent", "session", "hive"];
|
|
266
|
+
export declare const SCOPES: readonly ["user", "agent", "session", "hive", "codebase"];
|
|
267
267
|
export type Scope = (typeof SCOPES)[number];
|
|
268
268
|
export declare const SESSION_SCOPES: readonly ["user", "agent", "hive"];
|
|
269
269
|
export type SessionScope = (typeof SESSION_SCOPES)[number];
|
|
@@ -271,7 +271,7 @@ export declare const OPERATIONS: readonly ["create", "update", "invalidate"];
|
|
|
271
271
|
export type Operation = (typeof OPERATIONS)[number];
|
|
272
272
|
export declare const CONTRADICTION_STATUSES: readonly ["none", "active", "resolved", "superseded"];
|
|
273
273
|
export type ContradictionStatus = (typeof CONTRADICTION_STATUSES)[number];
|
|
274
|
-
export declare const SOURCE_TYPES: readonly ["conversation", "document", "url", "raw_text", "api", "agent_self"];
|
|
274
|
+
export declare const SOURCE_TYPES: readonly ["conversation", "document", "url", "raw_text", "api", "agent_self", "file_analysis", "ast_parse", "git_history", "dependency_scan"];
|
|
275
275
|
export type SourceType = (typeof SOURCE_TYPES)[number];
|
|
276
276
|
export declare const EXTRACTION_TIERS: readonly ["heuristic", "cheap_llm", "smart_llm"];
|
|
277
277
|
export type ExtractionTier = (typeof EXTRACTION_TIERS)[number];
|
|
@@ -279,11 +279,11 @@ export declare const EXTRACTION_TIERS_USED: readonly ["heuristic", "cheap_llm",
|
|
|
279
279
|
export type ExtractionTierUsed = (typeof EXTRACTION_TIERS_USED)[number];
|
|
280
280
|
export declare const MODALITIES: readonly ["text", "image", "audio", "code", "document"];
|
|
281
281
|
export type Modality = (typeof MODALITIES)[number];
|
|
282
|
-
export declare const EDGE_TYPES: readonly ["associative", "causal", "temporal", "contradictory", "hierarchical", "updates", "extends", "derives", "precedes", "depends_on", "deadline"];
|
|
282
|
+
export declare const EDGE_TYPES: readonly ["associative", "causal", "temporal", "contradictory", "hierarchical", "updates", "extends", "derives", "precedes", "depends_on", "deadline", "imports", "implements", "owns", "configures", "tested_by"];
|
|
283
283
|
export type EdgeType = (typeof EDGE_TYPES)[number];
|
|
284
284
|
export declare const EXTRACTION_STATUSES: readonly ["queued", "processing", "completed", "failed", "deduped"];
|
|
285
285
|
export type ExtractionStatus = (typeof EXTRACTION_STATUSES)[number];
|
|
286
|
-
export declare const INPUT_TYPES: readonly ["conversation", "document", "url", "raw_text", "image", "audio", "code"];
|
|
286
|
+
export declare const INPUT_TYPES: readonly ["conversation", "document", "url", "raw_text", "image", "audio", "code", "codebase_scan", "file_change", "architecture_doc"];
|
|
287
287
|
export type InputType = (typeof INPUT_TYPES)[number];
|
|
288
288
|
export declare const PLANS: readonly ["free", "pro", "scale", "enterprise"];
|
|
289
289
|
export type Plan = (typeof PLANS)[number];
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,SAAS,aAA2B,CAAC;AAMlD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;EAK5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAG9D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiB5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,MAAM
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js
CHANGED
|
@@ -37,7 +37,7 @@ export const StenoConfigSchema = z.object({
|
|
|
37
37
|
.default({}),
|
|
38
38
|
domainSchema: DomainSchemaSchema.optional(),
|
|
39
39
|
});
|
|
40
|
-
export const SCOPES = ['user', 'agent', 'session', 'hive'];
|
|
40
|
+
export const SCOPES = ['user', 'agent', 'session', 'hive', 'codebase'];
|
|
41
41
|
// SESSION_SCOPES is a subset of SCOPES — sessions themselves cannot be scoped to another session
|
|
42
42
|
export const SESSION_SCOPES = ['user', 'agent', 'hive'];
|
|
43
43
|
export const OPERATIONS = ['create', 'update', 'invalidate'];
|
|
@@ -49,6 +49,10 @@ export const SOURCE_TYPES = [
|
|
|
49
49
|
'raw_text',
|
|
50
50
|
'api',
|
|
51
51
|
'agent_self',
|
|
52
|
+
'file_analysis',
|
|
53
|
+
'ast_parse',
|
|
54
|
+
'git_history',
|
|
55
|
+
'dependency_scan',
|
|
52
56
|
];
|
|
53
57
|
export const EXTRACTION_TIERS = ['heuristic', 'cheap_llm', 'smart_llm'];
|
|
54
58
|
export const EXTRACTION_TIERS_USED = [...EXTRACTION_TIERS, 'multi_tier'];
|
|
@@ -65,6 +69,11 @@ export const EDGE_TYPES = [
|
|
|
65
69
|
'precedes', // A must happen before B (ordering)
|
|
66
70
|
'depends_on', // A requires B to be done first (blocking dependency)
|
|
67
71
|
'deadline', // A must be done before deadline D
|
|
72
|
+
'imports', // A imports/requires B (code dependency)
|
|
73
|
+
'implements', // A implements interface/contract B
|
|
74
|
+
'owns', // A owns/contains B (package → module)
|
|
75
|
+
'configures', // A configures/sets up B
|
|
76
|
+
'tested_by', // A is tested by B (module → test file)
|
|
68
77
|
];
|
|
69
78
|
export const EXTRACTION_STATUSES = [
|
|
70
79
|
'queued',
|
|
@@ -81,6 +90,9 @@ export const INPUT_TYPES = [
|
|
|
81
90
|
'image',
|
|
82
91
|
'audio',
|
|
83
92
|
'code',
|
|
93
|
+
'codebase_scan',
|
|
94
|
+
'file_change',
|
|
95
|
+
'architecture_doc',
|
|
84
96
|
];
|
|
85
97
|
export const PLANS = ['free', 'pro', 'scale', 'enterprise'];
|
|
86
98
|
export const API_KEY_SCOPES = ['read', 'write', 'admin'];
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { LLMAdapter } from '../adapters/llm.js';
|
|
2
|
+
import type { ExtractionResult } from './types.js';
|
|
3
|
+
import type { ExtractionTier } from '../config.js';
|
|
4
|
+
export interface CodebaseExtractorConfig {
|
|
5
|
+
llm: LLMAdapter;
|
|
6
|
+
tier: ExtractionTier;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Extract architectural facts from code content.
|
|
10
|
+
* Similar to extractWithLLM but uses codebase-specific prompts
|
|
11
|
+
* and skips conversation-oriented logic.
|
|
12
|
+
*/
|
|
13
|
+
export declare function extractCodebaseFacts(config: CodebaseExtractorConfig, input: string): Promise<ExtractionResult>;
|
|
14
|
+
//# sourceMappingURL=codebase-extractor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codebase-extractor.d.ts","sourceRoot":"","sources":["../../src/extraction/codebase-extractor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAiD,MAAM,YAAY,CAAC;AAClG,OAAO,KAAK,EAAE,cAAc,EAAwB,MAAM,cAAc,CAAC;AAKzE,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,UAAU,CAAC;IAChB,IAAI,EAAE,cAAc,CAAC;CACtB;AAWD;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,uBAAuB,EAC/B,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,gBAAgB,CAAC,CAoM3B"}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import { buildCodebaseFactExtractionPrompt, buildCodebaseGraphExtractionPrompt, CODEBASE_ENTITY_TYPES } from './codebase-prompts.js';
|
|
2
|
+
import { normalizeEntityName } from './llm-extractor.js';
|
|
3
|
+
import { createEnrichedSegments } from './sliding-window.js';
|
|
4
|
+
const VALID_CODEBASE_SOURCE_TYPES = new Set([
|
|
5
|
+
'file_analysis', 'ast_parse', 'git_history', 'dependency_scan',
|
|
6
|
+
]);
|
|
7
|
+
const VALID_CODEBASE_EDGE_TYPES = new Set([
|
|
8
|
+
'imports', 'implements', 'owns', 'configures', 'tested_by',
|
|
9
|
+
'depends_on', 'extends', 'associative', 'hierarchical',
|
|
10
|
+
]);
|
|
11
|
+
/**
|
|
12
|
+
* Extract architectural facts from code content.
|
|
13
|
+
* Similar to extractWithLLM but uses codebase-specific prompts
|
|
14
|
+
* and skips conversation-oriented logic.
|
|
15
|
+
*/
|
|
16
|
+
export async function extractCodebaseFacts(config, input) {
|
|
17
|
+
let totalTokensIn = 0;
|
|
18
|
+
let totalTokensOut = 0;
|
|
19
|
+
// ── PASS 1: Codebase fact extraction with Sliding Window ──
|
|
20
|
+
const segments = createEnrichedSegments(input);
|
|
21
|
+
let factEntries = [];
|
|
22
|
+
// Process segments in batches of 4
|
|
23
|
+
const segmentBatches = [];
|
|
24
|
+
for (let i = 0; i < segments.length; i += 4) {
|
|
25
|
+
segmentBatches.push(segments.slice(i, i + 4));
|
|
26
|
+
}
|
|
27
|
+
for (const batch of segmentBatches) {
|
|
28
|
+
const batchPromises = batch.map(async (seg) => {
|
|
29
|
+
const messages = buildCodebaseFactExtractionPrompt(seg.contextWindow);
|
|
30
|
+
// Append already-extracted facts to avoid duplicates across segments
|
|
31
|
+
if (factEntries.length > 0) {
|
|
32
|
+
const alreadyExtracted = factEntries.map(f => `- ${f.text}`).join('\n');
|
|
33
|
+
messages[1].content += `\n\n--- ALREADY EXTRACTED (skip these) ---\n${alreadyExtracted}`;
|
|
34
|
+
}
|
|
35
|
+
try {
|
|
36
|
+
const response = await config.llm.complete(messages, { temperature: 0, responseFormat: 'json' });
|
|
37
|
+
totalTokensIn += response.tokensInput;
|
|
38
|
+
totalTokensOut += response.tokensOutput;
|
|
39
|
+
const parsed = JSON.parse(response.content);
|
|
40
|
+
const rawFacts = Array.isArray(parsed.facts) ? parsed.facts : [];
|
|
41
|
+
const entries = [];
|
|
42
|
+
for (const f of rawFacts) {
|
|
43
|
+
if (typeof f === 'string') {
|
|
44
|
+
const trimmed = f.trim();
|
|
45
|
+
if (trimmed.length > 0) {
|
|
46
|
+
entries.push({ text: trimmed, importance: 0.5, sourceChunk: seg.contextWindow, sourceType: 'file_analysis' });
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
else if (f && typeof f === 'object') {
|
|
50
|
+
const obj = f;
|
|
51
|
+
const text = (typeof obj.t === 'string' ? obj.t : typeof obj.text === 'string' ? obj.text : '').trim();
|
|
52
|
+
const importance = typeof obj.i === 'number' ? obj.i : typeof obj.importance === 'number' ? obj.importance : 0.5;
|
|
53
|
+
const rawSrc = typeof obj.src === 'string' ? obj.src : 'file_analysis';
|
|
54
|
+
const sourceType = VALID_CODEBASE_SOURCE_TYPES.has(rawSrc)
|
|
55
|
+
? rawSrc
|
|
56
|
+
: 'file_analysis';
|
|
57
|
+
if (text.length > 0) {
|
|
58
|
+
entries.push({
|
|
59
|
+
text,
|
|
60
|
+
importance: Math.max(0, Math.min(1, importance)),
|
|
61
|
+
sourceChunk: seg.contextWindow,
|
|
62
|
+
sourceType,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return entries;
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return [];
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
const batchResults = await Promise.all(batchPromises);
|
|
74
|
+
for (const entries of batchResults) {
|
|
75
|
+
factEntries.push(...entries);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
// Deduplicate facts by content similarity
|
|
79
|
+
const seenContent = new Set();
|
|
80
|
+
factEntries = factEntries.filter(e => {
|
|
81
|
+
const key = e.text.toLowerCase().trim();
|
|
82
|
+
if (seenContent.has(key))
|
|
83
|
+
return false;
|
|
84
|
+
seenContent.add(key);
|
|
85
|
+
return true;
|
|
86
|
+
});
|
|
87
|
+
if (factEntries.length === 0) {
|
|
88
|
+
return emptyResult(config.tier, config.llm.model);
|
|
89
|
+
}
|
|
90
|
+
// Build ExtractedFact objects
|
|
91
|
+
const facts = factEntries.map(({ text, importance, sourceChunk, sourceType }) => ({
|
|
92
|
+
content: text,
|
|
93
|
+
importance,
|
|
94
|
+
confidence: 0.8,
|
|
95
|
+
sourceType,
|
|
96
|
+
modality: 'code',
|
|
97
|
+
tags: ['codebase'],
|
|
98
|
+
originalContent: input,
|
|
99
|
+
entityCanonicalNames: [],
|
|
100
|
+
sourceChunk,
|
|
101
|
+
}));
|
|
102
|
+
// Add contextual embeddings
|
|
103
|
+
for (const fact of facts) {
|
|
104
|
+
const src = fact.sourceChunk ?? input;
|
|
105
|
+
const contextPrefix = src.length > 100
|
|
106
|
+
? `Codebase context: ${src.slice(0, 200).trim()}... | Fact: `
|
|
107
|
+
: `Codebase context: ${src.trim()} | Fact: `;
|
|
108
|
+
fact.contextualContent = contextPrefix + fact.content;
|
|
109
|
+
}
|
|
110
|
+
// ── PASS 2: Architecture graph extraction ──
|
|
111
|
+
let entities = [];
|
|
112
|
+
let edges = [];
|
|
113
|
+
try {
|
|
114
|
+
const factStrings = factEntries.map(e => e.text);
|
|
115
|
+
const graphMessages = buildCodebaseGraphExtractionPrompt(factStrings);
|
|
116
|
+
const graphResponse = await config.llm.complete(graphMessages, { temperature: 0, responseFormat: 'json' });
|
|
117
|
+
totalTokensIn += graphResponse.tokensInput;
|
|
118
|
+
totalTokensOut += graphResponse.tokensOutput;
|
|
119
|
+
const graphParsed = JSON.parse(graphResponse.content);
|
|
120
|
+
// Parse entities
|
|
121
|
+
const seenEntities = new Set();
|
|
122
|
+
if (Array.isArray(graphParsed.entities)) {
|
|
123
|
+
for (const e of graphParsed.entities) {
|
|
124
|
+
if (!e || typeof e.name !== 'string')
|
|
125
|
+
continue;
|
|
126
|
+
const entity = e;
|
|
127
|
+
const canonical = normalizeEntityName(entity.name);
|
|
128
|
+
if (canonical.length === 0 || seenEntities.has(canonical))
|
|
129
|
+
continue;
|
|
130
|
+
seenEntities.add(canonical);
|
|
131
|
+
const rawType = String(entity.entity_type ?? entity.type ?? 'module');
|
|
132
|
+
const entityType = CODEBASE_ENTITY_TYPES.includes(rawType) ? rawType : 'module';
|
|
133
|
+
entities.push({
|
|
134
|
+
name: entity.name,
|
|
135
|
+
entityType,
|
|
136
|
+
canonicalName: canonical,
|
|
137
|
+
properties: {},
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
// Parse edges
|
|
142
|
+
if (Array.isArray(graphParsed.edges)) {
|
|
143
|
+
for (const r of graphParsed.edges) {
|
|
144
|
+
if (!r)
|
|
145
|
+
continue;
|
|
146
|
+
const rel = r;
|
|
147
|
+
const rawSource = typeof rel.source === 'string' ? rel.source : null;
|
|
148
|
+
const rawTarget = typeof rel.target === 'string' ? rel.target : null;
|
|
149
|
+
if (!rawSource || !rawTarget)
|
|
150
|
+
continue;
|
|
151
|
+
const source = normalizeEntityName(rawSource);
|
|
152
|
+
const target = normalizeEntityName(rawTarget);
|
|
153
|
+
if (!source || !target)
|
|
154
|
+
continue;
|
|
155
|
+
const rawEdgeType = typeof rel.edge_type === 'string' ? rel.edge_type : 'associative';
|
|
156
|
+
const edgeType = VALID_CODEBASE_EDGE_TYPES.has(rawEdgeType)
|
|
157
|
+
? rawEdgeType
|
|
158
|
+
: 'associative';
|
|
159
|
+
edges.push({
|
|
160
|
+
sourceName: source,
|
|
161
|
+
targetName: target,
|
|
162
|
+
relation: String(rel.relation ?? 'related_to'),
|
|
163
|
+
edgeType,
|
|
164
|
+
confidence: 0.8,
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
// Link entities to facts by text match
|
|
169
|
+
for (const fact of facts) {
|
|
170
|
+
const contentLower = fact.content.toLowerCase();
|
|
171
|
+
for (const entity of entities) {
|
|
172
|
+
if (entity.canonicalName.length >= 3 && contentLower.includes(entity.canonicalName)) {
|
|
173
|
+
fact.entityCanonicalNames.push(entity.canonicalName);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
catch {
|
|
179
|
+
// Graph pass failed — facts are still useful without graph
|
|
180
|
+
}
|
|
181
|
+
return {
|
|
182
|
+
facts,
|
|
183
|
+
entities,
|
|
184
|
+
edges,
|
|
185
|
+
tier: config.tier,
|
|
186
|
+
confidence: 0.8,
|
|
187
|
+
tokensInput: totalTokensIn,
|
|
188
|
+
tokensOutput: totalTokensOut,
|
|
189
|
+
model: config.llm.model,
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
function emptyResult(tier, model) {
|
|
193
|
+
return {
|
|
194
|
+
facts: [],
|
|
195
|
+
entities: [],
|
|
196
|
+
edges: [],
|
|
197
|
+
tier,
|
|
198
|
+
confidence: 0,
|
|
199
|
+
tokensInput: 0,
|
|
200
|
+
tokensOutput: 0,
|
|
201
|
+
model,
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=codebase-extractor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codebase-extractor.js","sourceRoot":"","sources":["../../src/extraction/codebase-extractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { LLMMessage } from '../adapters/llm.js';
|
|
2
|
+
export declare const CODEBASE_FACT_EXTRACTION_PROMPT = "You are a codebase analysis engine. Extract architectural and structural facts from source code, configuration files, and project documentation.\n\n## WHAT TO EXTRACT\n\nFocus on facts that help an AI assistant understand the codebase:\n\n1. **File structure patterns**: How the project is organized (monorepo layout, feature-based folders, barrel exports, etc.)\n2. **Framework choices**: Which frameworks, runtimes, and major libraries are used, and how they're configured\n3. **API conventions**: Route naming patterns, middleware usage, request/response shapes, authentication patterns\n4. **Error handling patterns**: How errors are caught, logged, and propagated \u2014 custom error classes, error boundaries, fallback strategies\n5. **Dependencies**: Key packages and their roles (ORM, auth, state management, testing, etc.)\n6. **Build & deploy config**: Build tools, CI/CD setup, environment variable patterns, deployment targets\n7. **Code conventions**: Naming conventions, module boundaries, shared utilities, type patterns\n8. **Data flow**: How data moves through the system \u2014 stores, caches, API layers, database access patterns\n\n## RULES\n\n1. Extract SELF-CONTAINED atomic facts. Each fact must be understandable without the original code.\n2. Be SPECIFIC \u2014 reference actual file paths, package names, and function signatures when visible.\n BAD: \"The project uses a database\"\n GOOD: \"The project uses Supabase via @supabase/supabase-js with row-level security enabled in lib/supabase/client.ts\"\n3. Write all facts in third person using the project/codebase as the subject.\n - \"The project uses Next.js App Router with server components\"\n - \"The API routes follow REST conventions under app/api/\"\n4. Focus on ARCHITECTURAL facts \u2014 patterns, conventions, and structure. Skip trivial implementation details.\n5. For configuration files, extract the meaningful settings, not every line.\n\n## OUTPUT\n\nReturn ONLY a JSON object:\n{\"facts\": [{\"t\": \"fact text here\", \"i\": 0.7, \"src\": \"file_analysis\"}, ...]}\n\nScore importance (i) from 0.0 to 1.0:\n- 0.9-1.0: Core framework choice, primary database, authentication strategy, deployment target\n- 0.7-0.8: API patterns, state management, key dependencies, build configuration\n- 0.4-0.6: Utility patterns, naming conventions, folder structure details\n- 0.1-0.3: Minor config settings, dev-only tooling, formatting preferences\n\nSource type (src) must be one of: \"file_analysis\", \"ast_parse\", \"git_history\", \"dependency_scan\"\n\nNothing else. No explanation, no markdown.";
|
|
3
|
+
export declare const CODEBASE_GRAPH_EXTRACTION_PROMPT = "You are an architecture graph builder. Given facts about a codebase, extract entities and their relationships to build an architecture graph.\n\n## ENTITIES\n\nExtract packages, modules, services, configurations, and other structural components.\n\nEntity types to use: package, module, config, service, api_route, database, library, test_suite, build_tool, runtime\n\nExamples:\n- {\"name\": \"Next.js App Router\", \"entity_type\": \"runtime\"}\n- {\"name\": \"lib/supabase\", \"entity_type\": \"module\"}\n- {\"name\": \"Prisma\", \"entity_type\": \"library\"}\n- {\"name\": \"app/api/auth\", \"entity_type\": \"api_route\"}\n- {\"name\": \"jest.config.ts\", \"entity_type\": \"config\"}\n\nDO extract: Packages, modules, config files, services, API route groups, databases, key libraries\nDO NOT extract: Individual variables, single functions (unless they are exported utilities), line-level details\n\n## RELATIONSHIPS\n\nExtract structural relationships between entities. Use these edge types:\n\n- imports: A imports/depends on B at code level\n- implements: A implements interface/pattern B\n- owns: A contains/owns B (package owns modules, module owns routes)\n- configures: A configures/sets up B (config file configures a library)\n- tested_by: A is tested by B (module has corresponding test suite)\n- depends_on: A requires B at build/runtime level\n- extends: A extends/inherits from B\n\n## OUTPUT\n\nReturn ONLY a JSON object:\n{\n \"entities\": [\n {\"name\": \"lib/supabase\", \"entity_type\": \"module\"},\n {\"name\": \"Prisma\", \"entity_type\": \"library\"}\n ],\n \"edges\": [\n {\"source\": \"lib/supabase\", \"target\": \"supabase-js\", \"relation\": \"imports\", \"edge_type\": \"imports\"},\n {\"source\": \"app/api\", \"target\": \"lib/supabase\", \"relation\": \"uses_for_data\", \"edge_type\": \"depends_on\"},\n {\"source\": \"jest.config.ts\", \"target\": \"jest\", \"relation\": \"configures\", \"edge_type\": \"configures\"}\n ]\n}\n\nEntity names should be clean identifiers \u2014 file paths, package names, or descriptive labels.\nReturn ONLY valid JSON.";
|
|
4
|
+
export declare const CODEBASE_ENTITY_TYPES: string[];
|
|
5
|
+
/**
|
|
6
|
+
* Build the codebase fact extraction prompt (Pass 1).
|
|
7
|
+
*/
|
|
8
|
+
export declare function buildCodebaseFactExtractionPrompt(input: string): LLMMessage[];
|
|
9
|
+
/**
|
|
10
|
+
* Build the codebase graph extraction prompt (Pass 2).
|
|
11
|
+
*/
|
|
12
|
+
export declare function buildCodebaseGraphExtractionPrompt(facts: string[]): LLMMessage[];
|
|
13
|
+
//# sourceMappingURL=codebase-prompts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codebase-prompts.d.ts","sourceRoot":"","sources":["../../src/extraction/codebase-prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAMrD,eAAO,MAAM,+BAA+B,uiFAwCD,CAAC;AAM5C,eAAO,MAAM,gCAAgC,okEA8CrB,CAAC;AAMzB,eAAO,MAAM,qBAAqB,UAWjC,CAAC;AAMF;;GAEG;AACH,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,EAAE,CAK7E;AAED;;GAEG;AACH,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,CAMhF"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// PASS 1: CODEBASE FACT EXTRACTION — Architectural facts from code
|
|
3
|
+
// =============================================================================
|
|
4
|
+
export const CODEBASE_FACT_EXTRACTION_PROMPT = `You are a codebase analysis engine. Extract architectural and structural facts from source code, configuration files, and project documentation.
|
|
5
|
+
|
|
6
|
+
## WHAT TO EXTRACT
|
|
7
|
+
|
|
8
|
+
Focus on facts that help an AI assistant understand the codebase:
|
|
9
|
+
|
|
10
|
+
1. **File structure patterns**: How the project is organized (monorepo layout, feature-based folders, barrel exports, etc.)
|
|
11
|
+
2. **Framework choices**: Which frameworks, runtimes, and major libraries are used, and how they're configured
|
|
12
|
+
3. **API conventions**: Route naming patterns, middleware usage, request/response shapes, authentication patterns
|
|
13
|
+
4. **Error handling patterns**: How errors are caught, logged, and propagated — custom error classes, error boundaries, fallback strategies
|
|
14
|
+
5. **Dependencies**: Key packages and their roles (ORM, auth, state management, testing, etc.)
|
|
15
|
+
6. **Build & deploy config**: Build tools, CI/CD setup, environment variable patterns, deployment targets
|
|
16
|
+
7. **Code conventions**: Naming conventions, module boundaries, shared utilities, type patterns
|
|
17
|
+
8. **Data flow**: How data moves through the system — stores, caches, API layers, database access patterns
|
|
18
|
+
|
|
19
|
+
## RULES
|
|
20
|
+
|
|
21
|
+
1. Extract SELF-CONTAINED atomic facts. Each fact must be understandable without the original code.
|
|
22
|
+
2. Be SPECIFIC — reference actual file paths, package names, and function signatures when visible.
|
|
23
|
+
BAD: "The project uses a database"
|
|
24
|
+
GOOD: "The project uses Supabase via @supabase/supabase-js with row-level security enabled in lib/supabase/client.ts"
|
|
25
|
+
3. Write all facts in third person using the project/codebase as the subject.
|
|
26
|
+
- "The project uses Next.js App Router with server components"
|
|
27
|
+
- "The API routes follow REST conventions under app/api/"
|
|
28
|
+
4. Focus on ARCHITECTURAL facts — patterns, conventions, and structure. Skip trivial implementation details.
|
|
29
|
+
5. For configuration files, extract the meaningful settings, not every line.
|
|
30
|
+
|
|
31
|
+
## OUTPUT
|
|
32
|
+
|
|
33
|
+
Return ONLY a JSON object:
|
|
34
|
+
{"facts": [{"t": "fact text here", "i": 0.7, "src": "file_analysis"}, ...]}
|
|
35
|
+
|
|
36
|
+
Score importance (i) from 0.0 to 1.0:
|
|
37
|
+
- 0.9-1.0: Core framework choice, primary database, authentication strategy, deployment target
|
|
38
|
+
- 0.7-0.8: API patterns, state management, key dependencies, build configuration
|
|
39
|
+
- 0.4-0.6: Utility patterns, naming conventions, folder structure details
|
|
40
|
+
- 0.1-0.3: Minor config settings, dev-only tooling, formatting preferences
|
|
41
|
+
|
|
42
|
+
Source type (src) must be one of: "file_analysis", "ast_parse", "git_history", "dependency_scan"
|
|
43
|
+
|
|
44
|
+
Nothing else. No explanation, no markdown.`;
|
|
45
|
+
// =============================================================================
|
|
46
|
+
// PASS 2: CODEBASE GRAPH EXTRACTION — Architecture graph from facts
|
|
47
|
+
// =============================================================================
|
|
48
|
+
export const CODEBASE_GRAPH_EXTRACTION_PROMPT = `You are an architecture graph builder. Given facts about a codebase, extract entities and their relationships to build an architecture graph.
|
|
49
|
+
|
|
50
|
+
## ENTITIES
|
|
51
|
+
|
|
52
|
+
Extract packages, modules, services, configurations, and other structural components.
|
|
53
|
+
|
|
54
|
+
Entity types to use: package, module, config, service, api_route, database, library, test_suite, build_tool, runtime
|
|
55
|
+
|
|
56
|
+
Examples:
|
|
57
|
+
- {"name": "Next.js App Router", "entity_type": "runtime"}
|
|
58
|
+
- {"name": "lib/supabase", "entity_type": "module"}
|
|
59
|
+
- {"name": "Prisma", "entity_type": "library"}
|
|
60
|
+
- {"name": "app/api/auth", "entity_type": "api_route"}
|
|
61
|
+
- {"name": "jest.config.ts", "entity_type": "config"}
|
|
62
|
+
|
|
63
|
+
DO extract: Packages, modules, config files, services, API route groups, databases, key libraries
|
|
64
|
+
DO NOT extract: Individual variables, single functions (unless they are exported utilities), line-level details
|
|
65
|
+
|
|
66
|
+
## RELATIONSHIPS
|
|
67
|
+
|
|
68
|
+
Extract structural relationships between entities. Use these edge types:
|
|
69
|
+
|
|
70
|
+
- imports: A imports/depends on B at code level
|
|
71
|
+
- implements: A implements interface/pattern B
|
|
72
|
+
- owns: A contains/owns B (package owns modules, module owns routes)
|
|
73
|
+
- configures: A configures/sets up B (config file configures a library)
|
|
74
|
+
- tested_by: A is tested by B (module has corresponding test suite)
|
|
75
|
+
- depends_on: A requires B at build/runtime level
|
|
76
|
+
- extends: A extends/inherits from B
|
|
77
|
+
|
|
78
|
+
## OUTPUT
|
|
79
|
+
|
|
80
|
+
Return ONLY a JSON object:
|
|
81
|
+
{
|
|
82
|
+
"entities": [
|
|
83
|
+
{"name": "lib/supabase", "entity_type": "module"},
|
|
84
|
+
{"name": "Prisma", "entity_type": "library"}
|
|
85
|
+
],
|
|
86
|
+
"edges": [
|
|
87
|
+
{"source": "lib/supabase", "target": "supabase-js", "relation": "imports", "edge_type": "imports"},
|
|
88
|
+
{"source": "app/api", "target": "lib/supabase", "relation": "uses_for_data", "edge_type": "depends_on"},
|
|
89
|
+
{"source": "jest.config.ts", "target": "jest", "relation": "configures", "edge_type": "configures"}
|
|
90
|
+
]
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
Entity names should be clean identifiers — file paths, package names, or descriptive labels.
|
|
94
|
+
Return ONLY valid JSON.`;
|
|
95
|
+
// =============================================================================
|
|
96
|
+
// CODEBASE ENTITY TYPES
|
|
97
|
+
// =============================================================================
|
|
98
|
+
export const CODEBASE_ENTITY_TYPES = [
|
|
99
|
+
'package',
|
|
100
|
+
'module',
|
|
101
|
+
'config',
|
|
102
|
+
'service',
|
|
103
|
+
'api_route',
|
|
104
|
+
'database',
|
|
105
|
+
'library',
|
|
106
|
+
'test_suite',
|
|
107
|
+
'build_tool',
|
|
108
|
+
'runtime',
|
|
109
|
+
];
|
|
110
|
+
// =============================================================================
|
|
111
|
+
// PROMPT BUILDERS
|
|
112
|
+
// =============================================================================
|
|
113
|
+
/**
|
|
114
|
+
* Build the codebase fact extraction prompt (Pass 1).
|
|
115
|
+
*/
|
|
116
|
+
export function buildCodebaseFactExtractionPrompt(input) {
|
|
117
|
+
return [
|
|
118
|
+
{ role: 'system', content: CODEBASE_FACT_EXTRACTION_PROMPT },
|
|
119
|
+
{ role: 'user', content: `Extract architectural facts from this code/configuration:\n\n${input}` },
|
|
120
|
+
];
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Build the codebase graph extraction prompt (Pass 2).
|
|
124
|
+
*/
|
|
125
|
+
export function buildCodebaseGraphExtractionPrompt(facts) {
|
|
126
|
+
const factsList = facts.map((f, i) => `${i + 1}. ${f}`).join('\n');
|
|
127
|
+
return [
|
|
128
|
+
{ role: 'system', content: CODEBASE_GRAPH_EXTRACTION_PROMPT },
|
|
129
|
+
{ role: 'user', content: `Build an architecture graph from these codebase facts:\n\n${factsList}` },
|
|
130
|
+
];
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=codebase-prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codebase-prompts.js","sourceRoot":"","sources":["../../src/extraction/codebase-prompts.ts"],"names":[],"mappings":"AAEA,gFAAgF;AAChF,mEAAmE;AACnE,gFAAgF;AAEhF,MAAM,CAAC,MAAM,+BAA+B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CAwCJ,CAAC;AAE5C,gFAAgF;AAChF,oEAAoE;AACpE,gFAAgF;AAEhF,MAAM,CAAC,MAAM,gCAAgC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA8CxB,CAAC;AAEzB,gFAAgF;AAChF,wBAAwB;AACxB,gFAAgF;AAEhF,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,WAAW;IACX,UAAU;IACV,SAAS;IACT,YAAY;IACZ,YAAY;IACZ,SAAS;CACV,CAAC;AAEF,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,UAAU,iCAAiC,CAAC,KAAa;IAC7D,OAAO;QACL,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,+BAA+B,EAAE;QAC5D,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gEAAgE,KAAK,EAAE,EAAE;KACnG,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kCAAkC,CAAC,KAAe;IAChE,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnE,OAAO;QACL,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,gCAAgC,EAAE;QAC7D,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,6DAA6D,SAAS,EAAE,EAAE;KACpG,CAAC;AACJ,CAAC"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|