@vinaes/succ 1.3.19
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/LICENSE +87 -0
- package/README.md +588 -0
- package/agents/succ-checkpoint-manager.md +51 -0
- package/agents/succ-code-reviewer.md +181 -0
- package/agents/succ-context-optimizer.md +83 -0
- package/agents/succ-debug.md +224 -0
- package/agents/succ-decision-auditor.md +74 -0
- package/agents/succ-deep-search.md +41 -0
- package/agents/succ-diff-reviewer.md +123 -0
- package/agents/succ-explore.md +83 -0
- package/agents/succ-general.md +109 -0
- package/agents/succ-knowledge-indexer.md +45 -0
- package/agents/succ-knowledge-mapper.md +61 -0
- package/agents/succ-memory-curator.md +43 -0
- package/agents/succ-memory-health-monitor.md +55 -0
- package/agents/succ-pattern-detective.md +62 -0
- package/agents/succ-plan.md +172 -0
- package/agents/succ-quality-improvement-coach.md +63 -0
- package/agents/succ-readiness-improver.md +62 -0
- package/agents/succ-session-handoff-orchestrator.md +54 -0
- package/agents/succ-session-reviewer.md +46 -0
- package/agents/succ-style-tracker.md +73 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +749 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/agents-md.d.ts +16 -0
- package/dist/commands/agents-md.d.ts.map +1 -0
- package/dist/commands/agents-md.js +33 -0
- package/dist/commands/agents-md.js.map +1 -0
- package/dist/commands/analyze-agents.d.ts +20 -0
- package/dist/commands/analyze-agents.d.ts.map +1 -0
- package/dist/commands/analyze-agents.js +305 -0
- package/dist/commands/analyze-agents.js.map +1 -0
- package/dist/commands/analyze-helpers.d.ts +22 -0
- package/dist/commands/analyze-helpers.d.ts.map +1 -0
- package/dist/commands/analyze-helpers.js +38 -0
- package/dist/commands/analyze-helpers.js.map +1 -0
- package/dist/commands/analyze-profile.d.ts +53 -0
- package/dist/commands/analyze-profile.d.ts.map +1 -0
- package/dist/commands/analyze-profile.js +638 -0
- package/dist/commands/analyze-profile.js.map +1 -0
- package/dist/commands/analyze-recursive.d.ts +20 -0
- package/dist/commands/analyze-recursive.d.ts.map +1 -0
- package/dist/commands/analyze-recursive.js +326 -0
- package/dist/commands/analyze-recursive.js.map +1 -0
- package/dist/commands/analyze-utils.d.ts +83 -0
- package/dist/commands/analyze-utils.d.ts.map +1 -0
- package/dist/commands/analyze-utils.js +541 -0
- package/dist/commands/analyze-utils.js.map +1 -0
- package/dist/commands/analyze.d.ts +15 -0
- package/dist/commands/analyze.d.ts.map +1 -0
- package/dist/commands/analyze.js +265 -0
- package/dist/commands/analyze.js.map +1 -0
- package/dist/commands/backfill.d.ts +22 -0
- package/dist/commands/backfill.d.ts.map +1 -0
- package/dist/commands/backfill.js +62 -0
- package/dist/commands/backfill.js.map +1 -0
- package/dist/commands/benchmark-quality.d.ts +18 -0
- package/dist/commands/benchmark-quality.d.ts.map +1 -0
- package/dist/commands/benchmark-quality.js +316 -0
- package/dist/commands/benchmark-quality.js.map +1 -0
- package/dist/commands/benchmark-sqlite-vec.d.ts +12 -0
- package/dist/commands/benchmark-sqlite-vec.d.ts.map +1 -0
- package/dist/commands/benchmark-sqlite-vec.js +281 -0
- package/dist/commands/benchmark-sqlite-vec.js.map +1 -0
- package/dist/commands/benchmark.d.ts +57 -0
- package/dist/commands/benchmark.d.ts.map +1 -0
- package/dist/commands/benchmark.js +682 -0
- package/dist/commands/benchmark.js.map +1 -0
- package/dist/commands/chat.d.ts +14 -0
- package/dist/commands/chat.d.ts.map +1 -0
- package/dist/commands/chat.js +84 -0
- package/dist/commands/chat.js.map +1 -0
- package/dist/commands/checkpoint.d.ts +27 -0
- package/dist/commands/checkpoint.d.ts.map +1 -0
- package/dist/commands/checkpoint.js +181 -0
- package/dist/commands/checkpoint.js.map +1 -0
- package/dist/commands/clear.d.ts +9 -0
- package/dist/commands/clear.d.ts.map +1 -0
- package/dist/commands/clear.js +31 -0
- package/dist/commands/clear.js.map +1 -0
- package/dist/commands/config.d.ts +26 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +247 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/consolidate.d.ts +21 -0
- package/dist/commands/consolidate.d.ts.map +1 -0
- package/dist/commands/consolidate.js +117 -0
- package/dist/commands/consolidate.js.map +1 -0
- package/dist/commands/daemon.d.ts +48 -0
- package/dist/commands/daemon.d.ts.map +1 -0
- package/dist/commands/daemon.js +218 -0
- package/dist/commands/daemon.js.map +1 -0
- package/dist/commands/embedding.d.ts +26 -0
- package/dist/commands/embedding.d.ts.map +1 -0
- package/dist/commands/embedding.js +168 -0
- package/dist/commands/embedding.js.map +1 -0
- package/dist/commands/graph.d.ts +20 -0
- package/dist/commands/graph.d.ts.map +1 -0
- package/dist/commands/graph.js +128 -0
- package/dist/commands/graph.js.map +1 -0
- package/dist/commands/index-code.d.ts +23 -0
- package/dist/commands/index-code.d.ts.map +1 -0
- package/dist/commands/index-code.js +218 -0
- package/dist/commands/index-code.js.map +1 -0
- package/dist/commands/index.d.ts +23 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +217 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/init-templates.d.ts +21 -0
- package/dist/commands/init-templates.d.ts.map +1 -0
- package/dist/commands/init-templates.js +487 -0
- package/dist/commands/init-templates.js.map +1 -0
- package/dist/commands/init.d.ts +10 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +865 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/memories.d.ts +47 -0
- package/dist/commands/memories.d.ts.map +1 -0
- package/dist/commands/memories.js +597 -0
- package/dist/commands/memories.js.map +1 -0
- package/dist/commands/migrate.d.ts +19 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +154 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/prd.d.ts +46 -0
- package/dist/commands/prd.d.ts.map +1 -0
- package/dist/commands/prd.js +378 -0
- package/dist/commands/prd.js.map +1 -0
- package/dist/commands/precompute-context.d.ts +11 -0
- package/dist/commands/precompute-context.d.ts.map +1 -0
- package/dist/commands/precompute-context.js +12 -0
- package/dist/commands/precompute-context.js.map +1 -0
- package/dist/commands/progress.d.ts +16 -0
- package/dist/commands/progress.d.ts.map +1 -0
- package/dist/commands/progress.js +38 -0
- package/dist/commands/progress.js.map +1 -0
- package/dist/commands/reindex.d.ts +17 -0
- package/dist/commands/reindex.d.ts.map +1 -0
- package/dist/commands/reindex.js +83 -0
- package/dist/commands/reindex.js.map +1 -0
- package/dist/commands/retention.d.ts +19 -0
- package/dist/commands/retention.d.ts.map +1 -0
- package/dist/commands/retention.js +162 -0
- package/dist/commands/retention.js.map +1 -0
- package/dist/commands/score.d.ts +10 -0
- package/dist/commands/score.d.ts.map +1 -0
- package/dist/commands/score.js +28 -0
- package/dist/commands/score.js.map +1 -0
- package/dist/commands/search.d.ts +7 -0
- package/dist/commands/search.d.ts.map +1 -0
- package/dist/commands/search.js +89 -0
- package/dist/commands/search.js.map +1 -0
- package/dist/commands/session-summary.d.ts +15 -0
- package/dist/commands/session-summary.d.ts.map +1 -0
- package/dist/commands/session-summary.js +16 -0
- package/dist/commands/session-summary.js.map +1 -0
- package/dist/commands/setup.d.ts +6 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +222 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/soul.d.ts +9 -0
- package/dist/commands/soul.d.ts.map +1 -0
- package/dist/commands/soul.js +256 -0
- package/dist/commands/soul.js.map +1 -0
- package/dist/commands/stats.d.ts +18 -0
- package/dist/commands/stats.d.ts.map +1 -0
- package/dist/commands/stats.js +138 -0
- package/dist/commands/stats.js.map +1 -0
- package/dist/commands/status.d.ts +2 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +145 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/train-bpe.d.ts +8 -0
- package/dist/commands/train-bpe.d.ts.map +1 -0
- package/dist/commands/train-bpe.js +35 -0
- package/dist/commands/train-bpe.js.map +1 -0
- package/dist/commands/watch.d.ts +22 -0
- package/dist/commands/watch.d.ts.map +1 -0
- package/dist/commands/watch.js +171 -0
- package/dist/commands/watch.js.map +1 -0
- package/dist/daemon/analyzer.d.ts +54 -0
- package/dist/daemon/analyzer.d.ts.map +1 -0
- package/dist/daemon/analyzer.js +362 -0
- package/dist/daemon/analyzer.js.map +1 -0
- package/dist/daemon/client.d.ts +87 -0
- package/dist/daemon/client.d.ts.map +1 -0
- package/dist/daemon/client.js +356 -0
- package/dist/daemon/client.js.map +1 -0
- package/dist/daemon/index.d.ts +12 -0
- package/dist/daemon/index.d.ts.map +1 -0
- package/dist/daemon/index.js +12 -0
- package/dist/daemon/index.js.map +1 -0
- package/dist/daemon/service.d.ts +51 -0
- package/dist/daemon/service.d.ts.map +1 -0
- package/dist/daemon/service.js +1203 -0
- package/dist/daemon/service.js.map +1 -0
- package/dist/daemon/session-processor.d.ts +85 -0
- package/dist/daemon/session-processor.d.ts.map +1 -0
- package/dist/daemon/session-processor.js +571 -0
- package/dist/daemon/session-processor.js.map +1 -0
- package/dist/daemon/sessions.d.ts +62 -0
- package/dist/daemon/sessions.d.ts.map +1 -0
- package/dist/daemon/sessions.js +192 -0
- package/dist/daemon/sessions.js.map +1 -0
- package/dist/daemon/watcher.d.ts +52 -0
- package/dist/daemon/watcher.d.ts.map +1 -0
- package/dist/daemon/watcher.js +363 -0
- package/dist/daemon/watcher.js.map +1 -0
- package/dist/lib/agents-md-generator.d.ts +33 -0
- package/dist/lib/agents-md-generator.d.ts.map +1 -0
- package/dist/lib/agents-md-generator.js +156 -0
- package/dist/lib/agents-md-generator.js.map +1 -0
- package/dist/lib/ai-readiness.d.ts +132 -0
- package/dist/lib/ai-readiness.d.ts.map +1 -0
- package/dist/lib/ai-readiness.js +702 -0
- package/dist/lib/ai-readiness.js.map +1 -0
- package/dist/lib/analyze-state.d.ts +34 -0
- package/dist/lib/analyze-state.d.ts.map +1 -0
- package/dist/lib/analyze-state.js +106 -0
- package/dist/lib/analyze-state.js.map +1 -0
- package/dist/lib/benchmark.d.ts +250 -0
- package/dist/lib/benchmark.d.ts.map +1 -0
- package/dist/lib/benchmark.js +778 -0
- package/dist/lib/benchmark.js.map +1 -0
- package/dist/lib/bm25.d.ts +114 -0
- package/dist/lib/bm25.d.ts.map +1 -0
- package/dist/lib/bm25.js +727 -0
- package/dist/lib/bm25.js.map +1 -0
- package/dist/lib/bpe.d.ts +70 -0
- package/dist/lib/bpe.d.ts.map +1 -0
- package/dist/lib/bpe.js +270 -0
- package/dist/lib/bpe.js.map +1 -0
- package/dist/lib/checkpoint.d.ts +124 -0
- package/dist/lib/checkpoint.d.ts.map +1 -0
- package/dist/lib/checkpoint.js +321 -0
- package/dist/lib/checkpoint.js.map +1 -0
- package/dist/lib/chunker.d.ts +47 -0
- package/dist/lib/chunker.d.ts.map +1 -0
- package/dist/lib/chunker.js +358 -0
- package/dist/lib/chunker.js.map +1 -0
- package/dist/lib/claude-ws-transport.d.ts +76 -0
- package/dist/lib/claude-ws-transport.d.ts.map +1 -0
- package/dist/lib/claude-ws-transport.js +487 -0
- package/dist/lib/claude-ws-transport.js.map +1 -0
- package/dist/lib/compact-briefing.d.ts +22 -0
- package/dist/lib/compact-briefing.d.ts.map +1 -0
- package/dist/lib/compact-briefing.js +180 -0
- package/dist/lib/compact-briefing.js.map +1 -0
- package/dist/lib/config-defaults.d.ts +41 -0
- package/dist/lib/config-defaults.d.ts.map +1 -0
- package/dist/lib/config-defaults.js +99 -0
- package/dist/lib/config-defaults.js.map +1 -0
- package/dist/lib/config-display.d.ts +16 -0
- package/dist/lib/config-display.d.ts.map +1 -0
- package/dist/lib/config-display.js +408 -0
- package/dist/lib/config-display.js.map +1 -0
- package/dist/lib/config-types.d.ts +601 -0
- package/dist/lib/config-types.d.ts.map +1 -0
- package/dist/lib/config-types.js +7 -0
- package/dist/lib/config-types.js.map +1 -0
- package/dist/lib/config-validation.d.ts +19 -0
- package/dist/lib/config-validation.d.ts.map +1 -0
- package/dist/lib/config-validation.js +136 -0
- package/dist/lib/config-validation.js.map +1 -0
- package/dist/lib/config.d.ts +143 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +689 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/consolidate.d.ts +115 -0
- package/dist/lib/consolidate.d.ts.map +1 -0
- package/dist/lib/consolidate.js +600 -0
- package/dist/lib/consolidate.js.map +1 -0
- package/dist/lib/db/bm25-indexes.d.ts +58 -0
- package/dist/lib/db/bm25-indexes.d.ts.map +1 -0
- package/dist/lib/db/bm25-indexes.js +333 -0
- package/dist/lib/db/bm25-indexes.js.map +1 -0
- package/dist/lib/db/bpe.d.ts +18 -0
- package/dist/lib/db/bpe.d.ts.map +1 -0
- package/dist/lib/db/bpe.js +44 -0
- package/dist/lib/db/bpe.js.map +1 -0
- package/dist/lib/db/connection.d.ts +47 -0
- package/dist/lib/db/connection.d.ts.map +1 -0
- package/dist/lib/db/connection.js +114 -0
- package/dist/lib/db/connection.js.map +1 -0
- package/dist/lib/db/documents.d.ts +58 -0
- package/dist/lib/db/documents.d.ts.map +1 -0
- package/dist/lib/db/documents.js +374 -0
- package/dist/lib/db/documents.js.map +1 -0
- package/dist/lib/db/file-hash.d.ts +26 -0
- package/dist/lib/db/file-hash.d.ts.map +1 -0
- package/dist/lib/db/file-hash.js +56 -0
- package/dist/lib/db/file-hash.js.map +1 -0
- package/dist/lib/db/global-memories.d.ts +62 -0
- package/dist/lib/db/global-memories.d.ts.map +1 -0
- package/dist/lib/db/global-memories.js +173 -0
- package/dist/lib/db/global-memories.js.map +1 -0
- package/dist/lib/db/graph.d.ts +163 -0
- package/dist/lib/db/graph.d.ts.map +1 -0
- package/dist/lib/db/graph.js +488 -0
- package/dist/lib/db/graph.js.map +1 -0
- package/dist/lib/db/helpers.d.ts +13 -0
- package/dist/lib/db/helpers.d.ts.map +1 -0
- package/dist/lib/db/helpers.js +21 -0
- package/dist/lib/db/helpers.js.map +1 -0
- package/dist/lib/db/hybrid-search.d.ts +64 -0
- package/dist/lib/db/hybrid-search.d.ts.map +1 -0
- package/dist/lib/db/hybrid-search.js +549 -0
- package/dist/lib/db/hybrid-search.js.map +1 -0
- package/dist/lib/db/index.d.ts +23 -0
- package/dist/lib/db/index.d.ts.map +1 -0
- package/dist/lib/db/index.js +23 -0
- package/dist/lib/db/index.js.map +1 -0
- package/dist/lib/db/memories.d.ts +174 -0
- package/dist/lib/db/memories.d.ts.map +1 -0
- package/dist/lib/db/memories.js +866 -0
- package/dist/lib/db/memories.js.map +1 -0
- package/dist/lib/db/retention.d.ts +64 -0
- package/dist/lib/db/retention.d.ts.map +1 -0
- package/dist/lib/db/retention.js +115 -0
- package/dist/lib/db/retention.js.map +1 -0
- package/dist/lib/db/schema.d.ts +29 -0
- package/dist/lib/db/schema.d.ts.map +1 -0
- package/dist/lib/db/schema.js +832 -0
- package/dist/lib/db/schema.js.map +1 -0
- package/dist/lib/db/skills.d.ts +65 -0
- package/dist/lib/db/skills.d.ts.map +1 -0
- package/dist/lib/db/skills.js +119 -0
- package/dist/lib/db/skills.js.map +1 -0
- package/dist/lib/db/token-frequency.d.ts +34 -0
- package/dist/lib/db/token-frequency.d.ts.map +1 -0
- package/dist/lib/db/token-frequency.js +92 -0
- package/dist/lib/db/token-frequency.js.map +1 -0
- package/dist/lib/db/token-stats.d.ts +43 -0
- package/dist/lib/db/token-stats.d.ts.map +1 -0
- package/dist/lib/db/token-stats.js +59 -0
- package/dist/lib/db/token-stats.js.map +1 -0
- package/dist/lib/db/types.d.ts +57 -0
- package/dist/lib/db/types.d.ts.map +1 -0
- package/dist/lib/db/types.js +5 -0
- package/dist/lib/db/types.js.map +1 -0
- package/dist/lib/db/web-search-history.d.ts +22 -0
- package/dist/lib/db/web-search-history.d.ts.map +1 -0
- package/dist/lib/db/web-search-history.js +107 -0
- package/dist/lib/db/web-search-history.js.map +1 -0
- package/dist/lib/debug/state.d.ts +17 -0
- package/dist/lib/debug/state.d.ts.map +1 -0
- package/dist/lib/debug/state.js +131 -0
- package/dist/lib/debug/state.js.map +1 -0
- package/dist/lib/debug/types.d.ts +74 -0
- package/dist/lib/debug/types.d.ts.map +1 -0
- package/dist/lib/debug/types.js +85 -0
- package/dist/lib/debug/types.js.map +1 -0
- package/dist/lib/embedding-pool.d.ts +37 -0
- package/dist/lib/embedding-pool.d.ts.map +1 -0
- package/dist/lib/embedding-pool.js +159 -0
- package/dist/lib/embedding-pool.js.map +1 -0
- package/dist/lib/embedding-worker.d.ts +7 -0
- package/dist/lib/embedding-worker.d.ts.map +1 -0
- package/dist/lib/embedding-worker.js +49 -0
- package/dist/lib/embedding-worker.js.map +1 -0
- package/dist/lib/embeddings.d.ts +54 -0
- package/dist/lib/embeddings.d.ts.map +1 -0
- package/dist/lib/embeddings.js +437 -0
- package/dist/lib/embeddings.js.map +1 -0
- package/dist/lib/errors.d.ts +40 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +66 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/fault-logger.d.ts +35 -0
- package/dist/lib/fault-logger.d.ts.map +1 -0
- package/dist/lib/fault-logger.js +182 -0
- package/dist/lib/fault-logger.js.map +1 -0
- package/dist/lib/graph/centrality.d.ts +34 -0
- package/dist/lib/graph/centrality.d.ts.map +1 -0
- package/dist/lib/graph/centrality.js +76 -0
- package/dist/lib/graph/centrality.js.map +1 -0
- package/dist/lib/graph/cleanup.d.ts +36 -0
- package/dist/lib/graph/cleanup.d.ts.map +1 -0
- package/dist/lib/graph/cleanup.js +96 -0
- package/dist/lib/graph/cleanup.js.map +1 -0
- package/dist/lib/graph/community-detection.d.ts +61 -0
- package/dist/lib/graph/community-detection.d.ts.map +1 -0
- package/dist/lib/graph/community-detection.js +218 -0
- package/dist/lib/graph/community-detection.js.map +1 -0
- package/dist/lib/graph/contextual-proximity.d.ts +41 -0
- package/dist/lib/graph/contextual-proximity.d.ts.map +1 -0
- package/dist/lib/graph/contextual-proximity.js +125 -0
- package/dist/lib/graph/contextual-proximity.js.map +1 -0
- package/dist/lib/graph/llm-relations.d.ts +54 -0
- package/dist/lib/graph/llm-relations.d.ts.map +1 -0
- package/dist/lib/graph/llm-relations.js +265 -0
- package/dist/lib/graph/llm-relations.js.map +1 -0
- package/dist/lib/graph-export.d.ts +13 -0
- package/dist/lib/graph-export.d.ts.map +1 -0
- package/dist/lib/graph-export.js +637 -0
- package/dist/lib/graph-export.js.map +1 -0
- package/dist/lib/graph-scheduler.d.ts +7 -0
- package/dist/lib/graph-scheduler.d.ts.map +1 -0
- package/dist/lib/graph-scheduler.js +21 -0
- package/dist/lib/graph-scheduler.js.map +1 -0
- package/dist/lib/indexer.d.ts +36 -0
- package/dist/lib/indexer.d.ts.map +1 -0
- package/dist/lib/indexer.js +226 -0
- package/dist/lib/indexer.js.map +1 -0
- package/dist/lib/learning-delta.d.ts +35 -0
- package/dist/lib/learning-delta.d.ts.map +1 -0
- package/dist/lib/learning-delta.js +53 -0
- package/dist/lib/learning-delta.js.map +1 -0
- package/dist/lib/llm.d.ts +118 -0
- package/dist/lib/llm.d.ts.map +1 -0
- package/dist/lib/llm.js +439 -0
- package/dist/lib/llm.js.map +1 -0
- package/dist/lib/lock.d.ts +27 -0
- package/dist/lib/lock.d.ts.map +1 -0
- package/dist/lib/lock.js +143 -0
- package/dist/lib/lock.js.map +1 -0
- package/dist/lib/md-fetch.d.ts +61 -0
- package/dist/lib/md-fetch.d.ts.map +1 -0
- package/dist/lib/md-fetch.js +141 -0
- package/dist/lib/md-fetch.js.map +1 -0
- package/dist/lib/mmr.d.ts +29 -0
- package/dist/lib/mmr.d.ts.map +1 -0
- package/dist/lib/mmr.js +89 -0
- package/dist/lib/mmr.js.map +1 -0
- package/dist/lib/onboarding/ai-chat.d.ts +11 -0
- package/dist/lib/onboarding/ai-chat.d.ts.map +1 -0
- package/dist/lib/onboarding/ai-chat.js +85 -0
- package/dist/lib/onboarding/ai-chat.js.map +1 -0
- package/dist/lib/onboarding/index.d.ts +7 -0
- package/dist/lib/onboarding/index.d.ts.map +1 -0
- package/dist/lib/onboarding/index.js +7 -0
- package/dist/lib/onboarding/index.js.map +1 -0
- package/dist/lib/onboarding/wizard.d.ts +11 -0
- package/dist/lib/onboarding/wizard.d.ts.map +1 -0
- package/dist/lib/onboarding/wizard.js +104 -0
- package/dist/lib/onboarding/wizard.js.map +1 -0
- package/dist/lib/ort-provider.d.ts +27 -0
- package/dist/lib/ort-provider.d.ts.map +1 -0
- package/dist/lib/ort-provider.js +83 -0
- package/dist/lib/ort-provider.js.map +1 -0
- package/dist/lib/ort-session.d.ts +32 -0
- package/dist/lib/ort-session.d.ts.map +1 -0
- package/dist/lib/ort-session.js +227 -0
- package/dist/lib/ort-session.js.map +1 -0
- package/dist/lib/patterns.d.ts +43 -0
- package/dist/lib/patterns.d.ts.map +1 -0
- package/dist/lib/patterns.js +395 -0
- package/dist/lib/patterns.js.map +1 -0
- package/dist/lib/prd/codebase-context.d.ts +27 -0
- package/dist/lib/prd/codebase-context.d.ts.map +1 -0
- package/dist/lib/prd/codebase-context.js +420 -0
- package/dist/lib/prd/codebase-context.js.map +1 -0
- package/dist/lib/prd/context.d.ts +24 -0
- package/dist/lib/prd/context.d.ts.map +1 -0
- package/dist/lib/prd/context.js +68 -0
- package/dist/lib/prd/context.js.map +1 -0
- package/dist/lib/prd/executor.d.ts +52 -0
- package/dist/lib/prd/executor.d.ts.map +1 -0
- package/dist/lib/prd/executor.js +154 -0
- package/dist/lib/prd/executor.js.map +1 -0
- package/dist/lib/prd/export.d.ts +40 -0
- package/dist/lib/prd/export.d.ts.map +1 -0
- package/dist/lib/prd/export.js +511 -0
- package/dist/lib/prd/export.js.map +1 -0
- package/dist/lib/prd/gates.d.ts +30 -0
- package/dist/lib/prd/gates.d.ts.map +1 -0
- package/dist/lib/prd/gates.js +100 -0
- package/dist/lib/prd/gates.js.map +1 -0
- package/dist/lib/prd/generate.d.ts +56 -0
- package/dist/lib/prd/generate.d.ts.map +1 -0
- package/dist/lib/prd/generate.js +357 -0
- package/dist/lib/prd/generate.js.map +1 -0
- package/dist/lib/prd/parse.d.ts +21 -0
- package/dist/lib/prd/parse.d.ts.map +1 -0
- package/dist/lib/prd/parse.js +270 -0
- package/dist/lib/prd/parse.js.map +1 -0
- package/dist/lib/prd/prompt-builder.d.ts +18 -0
- package/dist/lib/prd/prompt-builder.d.ts.map +1 -0
- package/dist/lib/prd/prompt-builder.js +61 -0
- package/dist/lib/prd/prompt-builder.js.map +1 -0
- package/dist/lib/prd/runner.d.ts +54 -0
- package/dist/lib/prd/runner.d.ts.map +1 -0
- package/dist/lib/prd/runner.js +563 -0
- package/dist/lib/prd/runner.js.map +1 -0
- package/dist/lib/prd/scheduler.d.ts +27 -0
- package/dist/lib/prd/scheduler.d.ts.map +1 -0
- package/dist/lib/prd/scheduler.js +113 -0
- package/dist/lib/prd/scheduler.js.map +1 -0
- package/dist/lib/prd/state.d.ts +77 -0
- package/dist/lib/prd/state.d.ts.map +1 -0
- package/dist/lib/prd/state.js +253 -0
- package/dist/lib/prd/state.js.map +1 -0
- package/dist/lib/prd/team-runner.d.ts +48 -0
- package/dist/lib/prd/team-runner.d.ts.map +1 -0
- package/dist/lib/prd/team-runner.js +261 -0
- package/dist/lib/prd/team-runner.js.map +1 -0
- package/dist/lib/prd/types.d.ts +169 -0
- package/dist/lib/prd/types.d.ts.map +1 -0
- package/dist/lib/prd/types.js +143 -0
- package/dist/lib/prd/types.js.map +1 -0
- package/dist/lib/prd/worktree.d.ts +54 -0
- package/dist/lib/prd/worktree.d.ts.map +1 -0
- package/dist/lib/prd/worktree.js +255 -0
- package/dist/lib/prd/worktree.js.map +1 -0
- package/dist/lib/precompute-context.d.ts +48 -0
- package/dist/lib/precompute-context.d.ts.map +1 -0
- package/dist/lib/precompute-context.js +265 -0
- package/dist/lib/precompute-context.js.map +1 -0
- package/dist/lib/pricing.d.ts +60 -0
- package/dist/lib/pricing.d.ts.map +1 -0
- package/dist/lib/pricing.js +258 -0
- package/dist/lib/pricing.js.map +1 -0
- package/dist/lib/process-registry.d.ts +30 -0
- package/dist/lib/process-registry.d.ts.map +1 -0
- package/dist/lib/process-registry.js +92 -0
- package/dist/lib/process-registry.js.map +1 -0
- package/dist/lib/progress-log.d.ts +44 -0
- package/dist/lib/progress-log.d.ts.map +1 -0
- package/dist/lib/progress-log.js +58 -0
- package/dist/lib/progress-log.js.map +1 -0
- package/dist/lib/public-api.d.ts +56 -0
- package/dist/lib/public-api.d.ts.map +1 -0
- package/dist/lib/public-api.js +63 -0
- package/dist/lib/public-api.js.map +1 -0
- package/dist/lib/quality.d.ts +66 -0
- package/dist/lib/quality.d.ts.map +1 -0
- package/dist/lib/quality.js +486 -0
- package/dist/lib/quality.js.map +1 -0
- package/dist/lib/query-expansion.d.ts +16 -0
- package/dist/lib/query-expansion.d.ts.map +1 -0
- package/dist/lib/query-expansion.js +53 -0
- package/dist/lib/query-expansion.js.map +1 -0
- package/dist/lib/readiness.d.ts +35 -0
- package/dist/lib/readiness.d.ts.map +1 -0
- package/dist/lib/readiness.js +142 -0
- package/dist/lib/readiness.js.map +1 -0
- package/dist/lib/reference-embeddings.d.ts +39 -0
- package/dist/lib/reference-embeddings.d.ts.map +1 -0
- package/dist/lib/reference-embeddings.js +95 -0
- package/dist/lib/reference-embeddings.js.map +1 -0
- package/dist/lib/reflection-synthesizer.d.ts +27 -0
- package/dist/lib/reflection-synthesizer.d.ts.map +1 -0
- package/dist/lib/reflection-synthesizer.js +149 -0
- package/dist/lib/reflection-synthesizer.js.map +1 -0
- package/dist/lib/retention.d.ts +105 -0
- package/dist/lib/retention.d.ts.map +1 -0
- package/dist/lib/retention.js +246 -0
- package/dist/lib/retention.js.map +1 -0
- package/dist/lib/sensitive-filter.d.ts +34 -0
- package/dist/lib/sensitive-filter.d.ts.map +1 -0
- package/dist/lib/sensitive-filter.js +344 -0
- package/dist/lib/sensitive-filter.js.map +1 -0
- package/dist/lib/session-observations.d.ts +59 -0
- package/dist/lib/session-observations.d.ts.map +1 -0
- package/dist/lib/session-observations.js +128 -0
- package/dist/lib/session-observations.js.map +1 -0
- package/dist/lib/session-summary.d.ts +65 -0
- package/dist/lib/session-summary.d.ts.map +1 -0
- package/dist/lib/session-summary.js +344 -0
- package/dist/lib/session-summary.js.map +1 -0
- package/dist/lib/similarity-worker.d.ts +7 -0
- package/dist/lib/similarity-worker.d.ts.map +1 -0
- package/dist/lib/similarity-worker.js +36 -0
- package/dist/lib/similarity-worker.js.map +1 -0
- package/dist/lib/skills.d.ts +78 -0
- package/dist/lib/skills.d.ts.map +1 -0
- package/dist/lib/skills.js +439 -0
- package/dist/lib/skills.js.map +1 -0
- package/dist/lib/skyll-client.d.ts +59 -0
- package/dist/lib/skyll-client.d.ts.map +1 -0
- package/dist/lib/skyll-client.js +257 -0
- package/dist/lib/skyll-client.js.map +1 -0
- package/dist/lib/storage/backends/interface.d.ts +383 -0
- package/dist/lib/storage/backends/interface.d.ts.map +1 -0
- package/dist/lib/storage/backends/interface.js +12 -0
- package/dist/lib/storage/backends/interface.js.map +1 -0
- package/dist/lib/storage/backends/postgresql.d.ts +454 -0
- package/dist/lib/storage/backends/postgresql.d.ts.map +1 -0
- package/dist/lib/storage/backends/postgresql.js +2528 -0
- package/dist/lib/storage/backends/postgresql.js.map +1 -0
- package/dist/lib/storage/benchmark.d.ts +16 -0
- package/dist/lib/storage/benchmark.d.ts.map +1 -0
- package/dist/lib/storage/benchmark.js +219 -0
- package/dist/lib/storage/benchmark.js.map +1 -0
- package/dist/lib/storage/dispatcher-export.d.ts +108 -0
- package/dist/lib/storage/dispatcher-export.d.ts.map +1 -0
- package/dist/lib/storage/dispatcher-export.js +593 -0
- package/dist/lib/storage/dispatcher-export.js.map +1 -0
- package/dist/lib/storage/dispatcher.d.ts +468 -0
- package/dist/lib/storage/dispatcher.d.ts.map +1 -0
- package/dist/lib/storage/dispatcher.js +1926 -0
- package/dist/lib/storage/dispatcher.js.map +1 -0
- package/dist/lib/storage/index.d.ts +481 -0
- package/dist/lib/storage/index.d.ts.map +1 -0
- package/dist/lib/storage/index.js +727 -0
- package/dist/lib/storage/index.js.map +1 -0
- package/dist/lib/storage/migration/export-import.d.ts +133 -0
- package/dist/lib/storage/migration/export-import.d.ts.map +1 -0
- package/dist/lib/storage/migration/export-import.js +264 -0
- package/dist/lib/storage/migration/export-import.js.map +1 -0
- package/dist/lib/storage/types.d.ts +313 -0
- package/dist/lib/storage/types.d.ts.map +1 -0
- package/dist/lib/storage/types.js +30 -0
- package/dist/lib/storage/types.js.map +1 -0
- package/dist/lib/storage/vector/interface.d.ts +89 -0
- package/dist/lib/storage/vector/interface.d.ts.map +1 -0
- package/dist/lib/storage/vector/interface.js +10 -0
- package/dist/lib/storage/vector/interface.js.map +1 -0
- package/dist/lib/storage/vector/qdrant.d.ts +221 -0
- package/dist/lib/storage/vector/qdrant.d.ts.map +1 -0
- package/dist/lib/storage/vector/qdrant.js +880 -0
- package/dist/lib/storage/vector/qdrant.js.map +1 -0
- package/dist/lib/supersession.d.ts +26 -0
- package/dist/lib/supersession.d.ts.map +1 -0
- package/dist/lib/supersession.js +97 -0
- package/dist/lib/supersession.js.map +1 -0
- package/dist/lib/temporal.d.ts +140 -0
- package/dist/lib/temporal.d.ts.map +1 -0
- package/dist/lib/temporal.js +303 -0
- package/dist/lib/temporal.js.map +1 -0
- package/dist/lib/token-budget.d.ts +79 -0
- package/dist/lib/token-budget.d.ts.map +1 -0
- package/dist/lib/token-budget.js +146 -0
- package/dist/lib/token-budget.js.map +1 -0
- package/dist/lib/token-counter.d.ts +27 -0
- package/dist/lib/token-counter.d.ts.map +1 -0
- package/dist/lib/token-counter.js +52 -0
- package/dist/lib/token-counter.js.map +1 -0
- package/dist/lib/tree-sitter/chunker-ts.d.ts +24 -0
- package/dist/lib/tree-sitter/chunker-ts.d.ts.map +1 -0
- package/dist/lib/tree-sitter/chunker-ts.js +206 -0
- package/dist/lib/tree-sitter/chunker-ts.js.map +1 -0
- package/dist/lib/tree-sitter/extractor.d.ts +43 -0
- package/dist/lib/tree-sitter/extractor.d.ts.map +1 -0
- package/dist/lib/tree-sitter/extractor.js +297 -0
- package/dist/lib/tree-sitter/extractor.js.map +1 -0
- package/dist/lib/tree-sitter/index.d.ts +13 -0
- package/dist/lib/tree-sitter/index.d.ts.map +1 -0
- package/dist/lib/tree-sitter/index.js +14 -0
- package/dist/lib/tree-sitter/index.js.map +1 -0
- package/dist/lib/tree-sitter/parser.d.ts +70 -0
- package/dist/lib/tree-sitter/parser.d.ts.map +1 -0
- package/dist/lib/tree-sitter/parser.js +354 -0
- package/dist/lib/tree-sitter/parser.js.map +1 -0
- package/dist/lib/tree-sitter/public.d.ts +28 -0
- package/dist/lib/tree-sitter/public.d.ts.map +1 -0
- package/dist/lib/tree-sitter/public.js +50 -0
- package/dist/lib/tree-sitter/public.js.map +1 -0
- package/dist/lib/tree-sitter/queries.d.ts +28 -0
- package/dist/lib/tree-sitter/queries.d.ts.map +1 -0
- package/dist/lib/tree-sitter/queries.js +383 -0
- package/dist/lib/tree-sitter/queries.js.map +1 -0
- package/dist/lib/tree-sitter/types.d.ts +69 -0
- package/dist/lib/tree-sitter/types.d.ts.map +1 -0
- package/dist/lib/tree-sitter/types.js +131 -0
- package/dist/lib/tree-sitter/types.js.map +1 -0
- package/dist/lib/working-memory-pipeline.d.ts +118 -0
- package/dist/lib/working-memory-pipeline.d.ts.map +1 -0
- package/dist/lib/working-memory-pipeline.js +344 -0
- package/dist/lib/working-memory-pipeline.js.map +1 -0
- package/dist/mcp/helpers.d.ts +44 -0
- package/dist/mcp/helpers.d.ts.map +1 -0
- package/dist/mcp/helpers.js +244 -0
- package/dist/mcp/helpers.js.map +1 -0
- package/dist/mcp/index.d.ts +10 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +15 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/resources.d.ts +12 -0
- package/dist/mcp/resources.d.ts.map +1 -0
- package/dist/mcp/resources.js +136 -0
- package/dist/mcp/resources.js.map +1 -0
- package/dist/mcp/server.d.ts +22 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +131 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools/config.d.ts +10 -0
- package/dist/mcp/tools/config.d.ts.map +1 -0
- package/dist/mcp/tools/config.js +236 -0
- package/dist/mcp/tools/config.js.map +1 -0
- package/dist/mcp/tools/dead-end.d.ts +9 -0
- package/dist/mcp/tools/dead-end.d.ts.map +1 -0
- package/dist/mcp/tools/dead-end.js +137 -0
- package/dist/mcp/tools/dead-end.js.map +1 -0
- package/dist/mcp/tools/debug.d.ts +9 -0
- package/dist/mcp/tools/debug.d.ts.map +1 -0
- package/dist/mcp/tools/debug.js +387 -0
- package/dist/mcp/tools/debug.js.map +1 -0
- package/dist/mcp/tools/graph.d.ts +9 -0
- package/dist/mcp/tools/graph.d.ts.map +1 -0
- package/dist/mcp/tools/graph.js +337 -0
- package/dist/mcp/tools/graph.js.map +1 -0
- package/dist/mcp/tools/indexing.d.ts +12 -0
- package/dist/mcp/tools/indexing.d.ts.map +1 -0
- package/dist/mcp/tools/indexing.js +289 -0
- package/dist/mcp/tools/indexing.js.map +1 -0
- package/dist/mcp/tools/memory.d.ts +14 -0
- package/dist/mcp/tools/memory.d.ts.map +1 -0
- package/dist/mcp/tools/memory.js +1170 -0
- package/dist/mcp/tools/memory.js.map +1 -0
- package/dist/mcp/tools/prd.d.ts +12 -0
- package/dist/mcp/tools/prd.d.ts.map +1 -0
- package/dist/mcp/tools/prd.js +276 -0
- package/dist/mcp/tools/prd.js.map +1 -0
- package/dist/mcp/tools/search.d.ts +9 -0
- package/dist/mcp/tools/search.d.ts.map +1 -0
- package/dist/mcp/tools/search.js +279 -0
- package/dist/mcp/tools/search.js.map +1 -0
- package/dist/mcp/tools/status.d.ts +10 -0
- package/dist/mcp/tools/status.d.ts.map +1 -0
- package/dist/mcp/tools/status.js +296 -0
- package/dist/mcp/tools/status.js.map +1 -0
- package/dist/mcp/tools/web-fetch.d.ts +10 -0
- package/dist/mcp/tools/web-fetch.d.ts.map +1 -0
- package/dist/mcp/tools/web-fetch.js +107 -0
- package/dist/mcp/tools/web-fetch.js.map +1 -0
- package/dist/mcp/tools/web-search.d.ts +14 -0
- package/dist/mcp/tools/web-search.d.ts.map +1 -0
- package/dist/mcp/tools/web-search.js +427 -0
- package/dist/mcp/tools/web-search.js.map +1 -0
- package/dist/mcp/types.d.ts +16 -0
- package/dist/mcp/types.d.ts.map +1 -0
- package/dist/mcp/types.js +5 -0
- package/dist/mcp/types.js.map +1 -0
- package/dist/mcp-server.d.ts +9 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +9 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/prompts/analyze.d.ts +21 -0
- package/dist/prompts/analyze.d.ts.map +1 -0
- package/dist/prompts/analyze.js +27 -0
- package/dist/prompts/analyze.js.map +1 -0
- package/dist/prompts/briefing.d.ts +27 -0
- package/dist/prompts/briefing.d.ts.map +1 -0
- package/dist/prompts/briefing.js +123 -0
- package/dist/prompts/briefing.js.map +1 -0
- package/dist/prompts/chat.d.ts +8 -0
- package/dist/prompts/chat.d.ts.map +1 -0
- package/dist/prompts/chat.js +39 -0
- package/dist/prompts/chat.js.map +1 -0
- package/dist/prompts/daemon.d.ts +16 -0
- package/dist/prompts/daemon.d.ts.map +1 -0
- package/dist/prompts/daemon.js +46 -0
- package/dist/prompts/daemon.js.map +1 -0
- package/dist/prompts/extraction.d.ts +13 -0
- package/dist/prompts/extraction.d.ts.map +1 -0
- package/dist/prompts/extraction.js +93 -0
- package/dist/prompts/extraction.js.map +1 -0
- package/dist/prompts/index.d.ts +17 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +27 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/memory.d.ts +11 -0
- package/dist/prompts/memory.d.ts.map +1 -0
- package/dist/prompts/memory.js +23 -0
- package/dist/prompts/memory.js.map +1 -0
- package/dist/prompts/onboarding.d.ts +16 -0
- package/dist/prompts/onboarding.d.ts.map +1 -0
- package/dist/prompts/onboarding.js +183 -0
- package/dist/prompts/onboarding.js.map +1 -0
- package/dist/prompts/prd.d.ts +12 -0
- package/dist/prompts/prd.d.ts.map +1 -0
- package/dist/prompts/prd.js +211 -0
- package/dist/prompts/prd.js.map +1 -0
- package/dist/prompts/quality.d.ts +11 -0
- package/dist/prompts/quality.d.ts.map +1 -0
- package/dist/prompts/quality.js +11 -0
- package/dist/prompts/quality.js.map +1 -0
- package/dist/prompts/skills.d.ts +16 -0
- package/dist/prompts/skills.d.ts.map +1 -0
- package/dist/prompts/skills.js +30 -0
- package/dist/prompts/skills.js.map +1 -0
- package/hooks/succ-post-tool.cjs +227 -0
- package/hooks/succ-pre-tool.cjs +312 -0
- package/hooks/succ-session-end.cjs +85 -0
- package/hooks/succ-session-start.cjs +618 -0
- package/hooks/succ-stop-reflection.cjs +87 -0
- package/hooks/succ-user-prompt.cjs +220 -0
- package/package.json +128 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedding-worker.d.ts","sourceRoot":"","sources":["../../src/lib/embedding-worker.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Worker thread for embedding generation.
|
|
3
|
+
* Each worker loads its own native ORT session instance
|
|
4
|
+
* with single-threaded CPU for true parallelism across OS threads.
|
|
5
|
+
*/
|
|
6
|
+
import { parentPort } from 'worker_threads';
|
|
7
|
+
import { NativeOrtSession } from './ort-session.js';
|
|
8
|
+
import { DependencyError } from './errors.js';
|
|
9
|
+
let session = null;
|
|
10
|
+
async function initSession(model) {
|
|
11
|
+
session = new NativeOrtSession({
|
|
12
|
+
model,
|
|
13
|
+
providers: ['cpu'],
|
|
14
|
+
numThreads: 1, // Single-threaded per worker for true parallelism
|
|
15
|
+
});
|
|
16
|
+
await session.init();
|
|
17
|
+
}
|
|
18
|
+
if (parentPort) {
|
|
19
|
+
const port = parentPort;
|
|
20
|
+
port.on('message', async (msg) => {
|
|
21
|
+
try {
|
|
22
|
+
switch (msg.type) {
|
|
23
|
+
case 'init':
|
|
24
|
+
await initSession(msg.model);
|
|
25
|
+
port.postMessage({ type: 'ready' });
|
|
26
|
+
break;
|
|
27
|
+
case 'embed': {
|
|
28
|
+
if (!session)
|
|
29
|
+
throw new DependencyError('Session not initialized');
|
|
30
|
+
const embeddings = await session.embed(msg.texts || []);
|
|
31
|
+
port.postMessage({ type: 'result', embeddings });
|
|
32
|
+
break;
|
|
33
|
+
}
|
|
34
|
+
case 'shutdown':
|
|
35
|
+
if (session) {
|
|
36
|
+
await session.dispose();
|
|
37
|
+
session = null;
|
|
38
|
+
}
|
|
39
|
+
process.exit(0);
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
catch (err) {
|
|
44
|
+
const error = err instanceof Error ? err.message : String(err);
|
|
45
|
+
port.postMessage({ type: 'error', error });
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=embedding-worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedding-worker.js","sourceRoot":"","sources":["../../src/lib/embedding-worker.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,IAAI,OAAO,GAA4B,IAAI,CAAC;AAc5C,KAAK,UAAU,WAAW,CAAC,KAAa;IACtC,OAAO,GAAG,IAAI,gBAAgB,CAAC;QAC7B,KAAK;QACL,SAAS,EAAE,CAAC,KAAK,CAAC;QAClB,UAAU,EAAE,CAAC,EAAE,kDAAkD;KAClE,CAAC,CAAC;IACH,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC;AAED,IAAI,UAAU,EAAE,CAAC;IACf,MAAM,IAAI,GAAG,UAAU,CAAC;IAExB,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,GAAkB,EAAE,EAAE;QAC9C,IAAI,CAAC;YACH,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;gBACjB,KAAK,MAAM;oBACT,MAAM,WAAW,CAAC,GAAG,CAAC,KAAM,CAAC,CAAC;oBAC9B,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAoB,CAAC,CAAC;oBACtD,MAAM;gBAER,KAAK,OAAO,CAAC,CAAC,CAAC;oBACb,IAAI,CAAC,OAAO;wBAAE,MAAM,IAAI,eAAe,CAAC,yBAAyB,CAAC,CAAC;oBACnE,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;oBACxD,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAoB,CAAC,CAAC;oBACnE,MAAM;gBACR,CAAC;gBAED,KAAK,UAAU;oBACb,IAAI,OAAO,EAAE,CAAC;wBACZ,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;wBACxB,OAAO,GAAG,IAAI,CAAC;oBACjB,CAAC;oBACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAChB,MAAM;YACV,CAAC;QACH,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC/D,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAoB,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export interface EmbeddingResponse {
|
|
2
|
+
data: Array<{
|
|
3
|
+
embedding: number[];
|
|
4
|
+
index: number;
|
|
5
|
+
}>;
|
|
6
|
+
usage?: {
|
|
7
|
+
prompt_tokens: number;
|
|
8
|
+
total_tokens: number;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Cleanup embedding session and worker pool to free memory
|
|
13
|
+
*/
|
|
14
|
+
export declare function cleanupEmbeddings(): void;
|
|
15
|
+
/**
|
|
16
|
+
* Get expected dimension for a model (or undefined if unknown)
|
|
17
|
+
*/
|
|
18
|
+
export declare function getModelDimension(model: string): number | undefined;
|
|
19
|
+
/**
|
|
20
|
+
* Get the currently active backend (webgpu/cpu)
|
|
21
|
+
*/
|
|
22
|
+
export declare function getGpuBackend(): string | null;
|
|
23
|
+
/**
|
|
24
|
+
* Check if embedding API endpoint is available
|
|
25
|
+
* Returns true if server responds, false otherwise
|
|
26
|
+
*/
|
|
27
|
+
export declare function checkApiHealth(): Promise<{
|
|
28
|
+
ok: boolean;
|
|
29
|
+
error?: string;
|
|
30
|
+
}>;
|
|
31
|
+
/**
|
|
32
|
+
* Get embeddings (auto-selects based on llm.embeddings.mode)
|
|
33
|
+
* Modes: local (ONNX, default) | api (any OpenAI-compatible endpoint)
|
|
34
|
+
* Uses configOverride if set (for benchmarking)
|
|
35
|
+
*/
|
|
36
|
+
export declare function getEmbeddings(texts: string[]): Promise<number[][]>;
|
|
37
|
+
/**
|
|
38
|
+
* Get embedding for a single text (with caching)
|
|
39
|
+
*/
|
|
40
|
+
export declare function getEmbedding(text: string): Promise<number[]>;
|
|
41
|
+
/**
|
|
42
|
+
* Get info about current embedding configuration
|
|
43
|
+
*/
|
|
44
|
+
export declare function getEmbeddingInfo(): {
|
|
45
|
+
mode: string;
|
|
46
|
+
model: string;
|
|
47
|
+
dimensions: number | undefined;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Cosine similarity between two vectors.
|
|
51
|
+
* Returns 0 for zero-vectors to avoid division by zero.
|
|
52
|
+
*/
|
|
53
|
+
export declare function cosineSimilarity(a: number[], b: number[]): number;
|
|
54
|
+
//# sourceMappingURL=embeddings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embeddings.d.ts","sourceRoot":"","sources":["../../src/lib/embeddings.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,KAAK,CAAC;QACV,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IACH,KAAK,CAAC,EAAE;QACN,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAiCD;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAsBxC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEnE;AA8KD;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,GAAG,IAAI,CAE7C;AA6ED;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA+C/E;AAqED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAUxE;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAclE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC,CAQA;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAmBjE"}
|
|
@@ -0,0 +1,437 @@
|
|
|
1
|
+
import { getConfig, getConfigWithOverride, getLLMTaskConfig, LOCAL_MODEL } from './config.js';
|
|
2
|
+
import { createHash } from 'crypto';
|
|
3
|
+
import { logWarn } from './fault-logger.js';
|
|
4
|
+
import { NativeOrtSession } from './ort-session.js';
|
|
5
|
+
import { detectExecutionProvider } from './ort-provider.js';
|
|
6
|
+
import { NetworkError, ValidationError } from './errors.js';
|
|
7
|
+
// Track which GPU backend is being used
|
|
8
|
+
let gpuBackend = null;
|
|
9
|
+
// Known model dimensions for validation
|
|
10
|
+
const MODEL_DIMENSIONS = {
|
|
11
|
+
'Xenova/all-MiniLM-L6-v2': 384,
|
|
12
|
+
'Xenova/bge-small-en-v1.5': 384,
|
|
13
|
+
'Xenova/bge-base-en-v1.5': 768,
|
|
14
|
+
'Xenova/bge-large-en-v1.5': 1024,
|
|
15
|
+
'Xenova/multilingual-e5-large': 1024,
|
|
16
|
+
'openai/text-embedding-3-small': 1536,
|
|
17
|
+
'openai/text-embedding-3-large': 3072,
|
|
18
|
+
'openai/text-embedding-ada-002': 1536,
|
|
19
|
+
'qwen/qwen3-embedding-0.6b': 1024,
|
|
20
|
+
'qwen/qwen3-embedding-4b': 2560,
|
|
21
|
+
'qwen/qwen3-embedding-8b': 4096,
|
|
22
|
+
'baai/bge-m3': 1024,
|
|
23
|
+
'mistralai/mistral-embed-2312': 1024,
|
|
24
|
+
'mistralai/codestral-embed-2505': 3072,
|
|
25
|
+
'google/gemini-embedding-001': 3072,
|
|
26
|
+
};
|
|
27
|
+
// Default timeout for API requests (30 seconds)
|
|
28
|
+
const API_TIMEOUT_MS = 30000;
|
|
29
|
+
import { EmbeddingPool } from './embedding-pool.js';
|
|
30
|
+
// Lazy-loaded native ORT session (replaces transformers.js WASM pipeline)
|
|
31
|
+
let nativeSession = null;
|
|
32
|
+
// Worker pool for parallel local embeddings (lazy init)
|
|
33
|
+
let embeddingPool = null;
|
|
34
|
+
let poolInitFailed = false; // Don't retry if pool init failed
|
|
35
|
+
/**
|
|
36
|
+
* Cleanup embedding session and worker pool to free memory
|
|
37
|
+
*/
|
|
38
|
+
export function cleanupEmbeddings() {
|
|
39
|
+
if (nativeSession) {
|
|
40
|
+
nativeSession
|
|
41
|
+
.dispose()
|
|
42
|
+
.catch((err) => logWarn('embeddings', err instanceof Error ? err.message : 'Session dispose failed'));
|
|
43
|
+
nativeSession = null;
|
|
44
|
+
embeddingCache.clear();
|
|
45
|
+
// Hint GC if available
|
|
46
|
+
if (global.gc) {
|
|
47
|
+
global.gc();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
if (embeddingPool) {
|
|
51
|
+
embeddingPool
|
|
52
|
+
.shutdown()
|
|
53
|
+
.catch((err) => logWarn('embeddings', err instanceof Error ? err.message : 'Pool shutdown failed'));
|
|
54
|
+
embeddingPool = null;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Get expected dimension for a model (or undefined if unknown)
|
|
59
|
+
*/
|
|
60
|
+
export function getModelDimension(model) {
|
|
61
|
+
return MODEL_DIMENSIONS[model];
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Validate embedding dimension matches expected model dimension.
|
|
65
|
+
* If configDimensions is set (MRL override), use that instead of model native dims.
|
|
66
|
+
*/
|
|
67
|
+
function validateEmbedding(embedding, model, configDimensions) {
|
|
68
|
+
const expectedDim = configDimensions ?? MODEL_DIMENSIONS[model];
|
|
69
|
+
if (expectedDim && embedding.length !== expectedDim) {
|
|
70
|
+
throw new ValidationError(`Embedding dimension mismatch: expected ${expectedDim} for ${model}, got ${embedding.length}`);
|
|
71
|
+
}
|
|
72
|
+
// Check for NaN/Infinity
|
|
73
|
+
if (embedding.some((v) => !isFinite(v))) {
|
|
74
|
+
throw new ValidationError('Embedding contains NaN or Infinity values');
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Fetch with timeout
|
|
79
|
+
*/
|
|
80
|
+
async function fetchWithTimeout(url, options, timeoutMs = API_TIMEOUT_MS) {
|
|
81
|
+
const controller = new AbortController();
|
|
82
|
+
const timeout = setTimeout(() => controller.abort(), timeoutMs);
|
|
83
|
+
try {
|
|
84
|
+
const response = await fetch(url, {
|
|
85
|
+
...options,
|
|
86
|
+
signal: controller.signal,
|
|
87
|
+
});
|
|
88
|
+
return response;
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
if (error.name === 'AbortError') {
|
|
92
|
+
throw new NetworkError(`Request timeout after ${timeoutMs}ms`);
|
|
93
|
+
}
|
|
94
|
+
throw error;
|
|
95
|
+
}
|
|
96
|
+
finally {
|
|
97
|
+
clearTimeout(timeout);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
// Simple LRU cache for embeddings (size configurable via embedding_cache_size)
|
|
101
|
+
let cacheMaxSize = null;
|
|
102
|
+
const embeddingCache = new Map();
|
|
103
|
+
function getCacheMaxSize() {
|
|
104
|
+
if (cacheMaxSize === null) {
|
|
105
|
+
cacheMaxSize = getConfig().embedding_cache_size ?? 500;
|
|
106
|
+
}
|
|
107
|
+
return cacheMaxSize;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Generate a cache key using full SHA-256 hash to prevent collisions
|
|
111
|
+
*/
|
|
112
|
+
function getCacheKey(text, mode, model) {
|
|
113
|
+
const textHash = createHash('sha256').update(text).digest('hex');
|
|
114
|
+
return `${mode}:${model}:${textHash}`;
|
|
115
|
+
}
|
|
116
|
+
function cacheGet(key) {
|
|
117
|
+
const value = embeddingCache.get(key);
|
|
118
|
+
if (value) {
|
|
119
|
+
// Move to end (most recently used)
|
|
120
|
+
embeddingCache.delete(key);
|
|
121
|
+
embeddingCache.set(key, value);
|
|
122
|
+
}
|
|
123
|
+
return value;
|
|
124
|
+
}
|
|
125
|
+
function cacheSet(key, value) {
|
|
126
|
+
// Evict oldest if at capacity
|
|
127
|
+
if (embeddingCache.size >= getCacheMaxSize()) {
|
|
128
|
+
const firstKey = embeddingCache.keys().next().value;
|
|
129
|
+
if (firstKey)
|
|
130
|
+
embeddingCache.delete(firstKey);
|
|
131
|
+
}
|
|
132
|
+
embeddingCache.set(key, value);
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Retry wrapper with exponential backoff
|
|
136
|
+
*/
|
|
137
|
+
async function withRetry(fn, options = {}) {
|
|
138
|
+
const { retries = 3, baseDelay = 1000, maxDelay = 10000 } = options;
|
|
139
|
+
let lastError = null;
|
|
140
|
+
for (let attempt = 0; attempt <= retries; attempt++) {
|
|
141
|
+
try {
|
|
142
|
+
return await fn();
|
|
143
|
+
}
|
|
144
|
+
catch (error) {
|
|
145
|
+
lastError = error;
|
|
146
|
+
// Don't retry on client errors (4xx except 429)
|
|
147
|
+
if (error.message?.includes('API error: 4') && !error.message?.includes('429')) {
|
|
148
|
+
throw error;
|
|
149
|
+
}
|
|
150
|
+
if (attempt < retries) {
|
|
151
|
+
const delay = Math.min(baseDelay * Math.pow(2, attempt), maxDelay);
|
|
152
|
+
logWarn('embeddings', `Retry attempt ${attempt + 1}/${retries} after ${delay}ms delay`);
|
|
153
|
+
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
throw lastError;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Get the resolved embedding model name.
|
|
161
|
+
* Reads from llm.embeddings.model → LOCAL_MODEL for local mode.
|
|
162
|
+
*/
|
|
163
|
+
function getEmbeddingModel() {
|
|
164
|
+
const taskCfg = getLLMTaskConfig('embeddings');
|
|
165
|
+
return taskCfg.model || LOCAL_MODEL;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Get native ORT session (lazy loaded)
|
|
169
|
+
* Auto-detects GPU provider per platform: DirectML (Windows), CoreML (macOS arm64),
|
|
170
|
+
* CUDA (Linux), CPU (all). Uses onnxruntime-node for 4-17x speedup over WASM.
|
|
171
|
+
*/
|
|
172
|
+
async function getNativeSession() {
|
|
173
|
+
if (!nativeSession) {
|
|
174
|
+
const config = getConfigWithOverride();
|
|
175
|
+
const embeddingModel = getEmbeddingModel();
|
|
176
|
+
const providerResult = detectExecutionProvider(process.platform, {
|
|
177
|
+
gpu_enabled: config.gpu_enabled,
|
|
178
|
+
gpu_device: config.gpu_device,
|
|
179
|
+
arch: process.arch,
|
|
180
|
+
});
|
|
181
|
+
if (providerResult.warning) {
|
|
182
|
+
logWarn('embeddings', providerResult.warning);
|
|
183
|
+
}
|
|
184
|
+
gpuBackend = providerResult.provider;
|
|
185
|
+
console.log(`Loading native ORT session: ${embeddingModel} ` +
|
|
186
|
+
`(${providerResult.provider}, fallback: ${providerResult.fallbackChain.slice(1).join(' → ') || 'none'})...`);
|
|
187
|
+
nativeSession = new NativeOrtSession({
|
|
188
|
+
model: embeddingModel,
|
|
189
|
+
providers: providerResult.fallbackChain,
|
|
190
|
+
});
|
|
191
|
+
try {
|
|
192
|
+
await nativeSession.init();
|
|
193
|
+
gpuBackend = nativeSession.provider;
|
|
194
|
+
console.log(`Model loaded (${nativeSession.provider}).`);
|
|
195
|
+
}
|
|
196
|
+
catch (error) {
|
|
197
|
+
nativeSession = null;
|
|
198
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
199
|
+
throw new Error(`Failed to load embedding model '${embeddingModel}'. ` +
|
|
200
|
+
`This may be due to network issues, disk space, or invalid model name. ` +
|
|
201
|
+
`Error: ${message}`);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
return nativeSession;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Get the currently active backend (webgpu/cpu)
|
|
208
|
+
*/
|
|
209
|
+
export function getGpuBackend() {
|
|
210
|
+
return gpuBackend;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Try to use worker pool for large embedding batches.
|
|
214
|
+
* Returns null if pool is unavailable or disabled.
|
|
215
|
+
*/
|
|
216
|
+
async function tryPoolEmbeddings(texts, config) {
|
|
217
|
+
if (poolInitFailed)
|
|
218
|
+
return null;
|
|
219
|
+
if (config.embedding_worker_pool_enabled === false)
|
|
220
|
+
return null;
|
|
221
|
+
// Only use pool for batches large enough to benefit from parallelism
|
|
222
|
+
if (texts.length < 8)
|
|
223
|
+
return null;
|
|
224
|
+
try {
|
|
225
|
+
if (!embeddingPool) {
|
|
226
|
+
const poolSize = config.embedding_worker_pool_size ?? undefined;
|
|
227
|
+
const maxWorkers = config.embedding_worker_pool_max ?? 8;
|
|
228
|
+
embeddingPool = new EmbeddingPool({ poolSize, maxWorkers, model: getEmbeddingModel() });
|
|
229
|
+
console.log(`Initializing embedding worker pool (${embeddingPool.size} workers)...`);
|
|
230
|
+
await embeddingPool.init();
|
|
231
|
+
console.log('Worker pool ready.');
|
|
232
|
+
}
|
|
233
|
+
return await embeddingPool.getEmbeddings(texts);
|
|
234
|
+
}
|
|
235
|
+
catch (err) {
|
|
236
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
237
|
+
logWarn('embeddings', `Worker pool failed, falling back to single-threaded: ${msg}`);
|
|
238
|
+
poolInitFailed = true;
|
|
239
|
+
if (embeddingPool) {
|
|
240
|
+
embeddingPool
|
|
241
|
+
.shutdown()
|
|
242
|
+
.catch((err) => logWarn('embeddings', err instanceof Error ? err.message : 'Pool cleanup failed'));
|
|
243
|
+
embeddingPool = null;
|
|
244
|
+
}
|
|
245
|
+
return null;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Get embeddings using local native ORT model (batch optimized)
|
|
250
|
+
* For large batches (32+), uses worker thread pool for true CPU parallelism.
|
|
251
|
+
* Native ORT workers are single-threaded — pool provides real parallel scaling.
|
|
252
|
+
* Falls back to main session for small batches or if pool unavailable.
|
|
253
|
+
*/
|
|
254
|
+
async function getLocalEmbeddings(texts) {
|
|
255
|
+
const config = getConfigWithOverride();
|
|
256
|
+
// Try worker pool for large batches
|
|
257
|
+
const poolResult = await tryPoolEmbeddings(texts, config);
|
|
258
|
+
if (poolResult) {
|
|
259
|
+
for (const embedding of poolResult) {
|
|
260
|
+
validateEmbedding(embedding, getEmbeddingModel());
|
|
261
|
+
}
|
|
262
|
+
return poolResult;
|
|
263
|
+
}
|
|
264
|
+
const session = await getNativeSession();
|
|
265
|
+
// Native ORT session handles batching internally
|
|
266
|
+
const BATCH_SIZE = config.embedding_local_batch_size ?? 64;
|
|
267
|
+
const results = [];
|
|
268
|
+
for (let i = 0; i < texts.length; i += BATCH_SIZE) {
|
|
269
|
+
const batch = texts.slice(i, i + BATCH_SIZE);
|
|
270
|
+
const embeddings = await session.embed(batch);
|
|
271
|
+
results.push(...embeddings);
|
|
272
|
+
}
|
|
273
|
+
// Validate all embeddings
|
|
274
|
+
for (const embedding of results) {
|
|
275
|
+
validateEmbedding(embedding, getEmbeddingModel());
|
|
276
|
+
}
|
|
277
|
+
return results;
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Check if embedding API endpoint is available
|
|
281
|
+
* Returns true if server responds, false otherwise
|
|
282
|
+
*/
|
|
283
|
+
export async function checkApiHealth() {
|
|
284
|
+
const taskCfg = getLLMTaskConfig('embeddings');
|
|
285
|
+
const apiUrl = taskCfg.api_url;
|
|
286
|
+
try {
|
|
287
|
+
// Try to get the base URL (without /embeddings) for health check
|
|
288
|
+
const baseUrl = apiUrl.replace(/\/embeddings\/?$/, '');
|
|
289
|
+
const healthUrl = `${baseUrl}/health`;
|
|
290
|
+
const response = await fetchWithTimeout(healthUrl, { method: 'GET' }, 5000);
|
|
291
|
+
if (response.ok) {
|
|
292
|
+
return { ok: true };
|
|
293
|
+
}
|
|
294
|
+
// Some servers don't have /health, try a minimal embedding request
|
|
295
|
+
const headers = { 'Content-Type': 'application/json' };
|
|
296
|
+
if (taskCfg.api_key) {
|
|
297
|
+
headers['Authorization'] = `Bearer ${taskCfg.api_key}`;
|
|
298
|
+
}
|
|
299
|
+
// Auto-add OpenRouter headers when URL contains openrouter.ai
|
|
300
|
+
if (apiUrl.includes('openrouter.ai')) {
|
|
301
|
+
headers['HTTP-Referer'] = 'https://github.com/vinaes/succ';
|
|
302
|
+
headers['X-Title'] = 'succ';
|
|
303
|
+
}
|
|
304
|
+
const testResponse = await fetchWithTimeout(apiUrl, {
|
|
305
|
+
method: 'POST',
|
|
306
|
+
headers,
|
|
307
|
+
body: JSON.stringify({
|
|
308
|
+
model: taskCfg.model,
|
|
309
|
+
input: ['test'],
|
|
310
|
+
}),
|
|
311
|
+
}, 10000);
|
|
312
|
+
if (testResponse.ok) {
|
|
313
|
+
return { ok: true };
|
|
314
|
+
}
|
|
315
|
+
return { ok: false, error: `Server returned ${testResponse.status}` };
|
|
316
|
+
}
|
|
317
|
+
catch (error) {
|
|
318
|
+
return { ok: false, error: error.message || 'Connection failed' };
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* Get embeddings from API endpoint (OpenRouter, Ollama, llama.cpp, LM Studio, etc.)
|
|
323
|
+
* Expects OpenAI-compatible /v1/embeddings endpoint (with retry and timeout)
|
|
324
|
+
* Supports batching (default 32, configurable via llm.embeddings.batch_size)
|
|
325
|
+
*/
|
|
326
|
+
async function getApiEmbeddings(texts) {
|
|
327
|
+
const taskCfg = getLLMTaskConfig('embeddings');
|
|
328
|
+
const apiUrl = taskCfg.api_url;
|
|
329
|
+
const headers = {
|
|
330
|
+
'Content-Type': 'application/json',
|
|
331
|
+
};
|
|
332
|
+
// Add API key if provided
|
|
333
|
+
if (taskCfg.api_key) {
|
|
334
|
+
headers['Authorization'] = `Bearer ${taskCfg.api_key}`;
|
|
335
|
+
}
|
|
336
|
+
// Auto-add OpenRouter headers when URL contains openrouter.ai
|
|
337
|
+
if (apiUrl.includes('openrouter.ai')) {
|
|
338
|
+
headers['HTTP-Referer'] = 'https://github.com/vinaes/succ';
|
|
339
|
+
headers['X-Title'] = 'succ';
|
|
340
|
+
}
|
|
341
|
+
const config = getConfigWithOverride();
|
|
342
|
+
const batchSize = taskCfg.batch_size ?? config.llm?.embeddings?.batch_size ?? 32;
|
|
343
|
+
const expectedDimensions = config.llm?.embeddings?.dimensions;
|
|
344
|
+
// Process in batches
|
|
345
|
+
const results = [];
|
|
346
|
+
for (let i = 0; i < texts.length; i += batchSize) {
|
|
347
|
+
const batch = texts.slice(i, i + batchSize);
|
|
348
|
+
const batchEmbeddings = await withRetry(async () => {
|
|
349
|
+
const response = await fetchWithTimeout(apiUrl, {
|
|
350
|
+
method: 'POST',
|
|
351
|
+
headers,
|
|
352
|
+
body: JSON.stringify({
|
|
353
|
+
model: taskCfg.model,
|
|
354
|
+
input: batch,
|
|
355
|
+
...(expectedDimensions ? { dimensions: expectedDimensions } : {}),
|
|
356
|
+
}),
|
|
357
|
+
});
|
|
358
|
+
if (!response.ok) {
|
|
359
|
+
const error = await response.text();
|
|
360
|
+
throw new NetworkError(`Embedding API error: ${response.status} - ${error}`, response.status);
|
|
361
|
+
}
|
|
362
|
+
const data = (await response.json());
|
|
363
|
+
return data.data.map((d) => d.embedding);
|
|
364
|
+
});
|
|
365
|
+
// Validate embeddings (configDimensions overrides model native dims for MRL)
|
|
366
|
+
for (const embedding of batchEmbeddings) {
|
|
367
|
+
validateEmbedding(embedding, getEmbeddingModel(), expectedDimensions);
|
|
368
|
+
}
|
|
369
|
+
results.push(...batchEmbeddings);
|
|
370
|
+
}
|
|
371
|
+
return results;
|
|
372
|
+
}
|
|
373
|
+
/**
|
|
374
|
+
* Get embeddings (auto-selects based on llm.embeddings.mode)
|
|
375
|
+
* Modes: local (ONNX, default) | api (any OpenAI-compatible endpoint)
|
|
376
|
+
* Uses configOverride if set (for benchmarking)
|
|
377
|
+
*/
|
|
378
|
+
export async function getEmbeddings(texts) {
|
|
379
|
+
const taskCfg = getLLMTaskConfig('embeddings');
|
|
380
|
+
switch (taskCfg.mode) {
|
|
381
|
+
case 'api':
|
|
382
|
+
return getApiEmbeddings(texts);
|
|
383
|
+
case 'local':
|
|
384
|
+
default:
|
|
385
|
+
return getLocalEmbeddings(texts);
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
/**
|
|
389
|
+
* Get embedding for a single text (with caching)
|
|
390
|
+
*/
|
|
391
|
+
export async function getEmbedding(text) {
|
|
392
|
+
const taskCfg = getLLMTaskConfig('embeddings');
|
|
393
|
+
const cacheKey = getCacheKey(text, taskCfg.mode, taskCfg.model);
|
|
394
|
+
// Check cache first
|
|
395
|
+
const cached = cacheGet(cacheKey);
|
|
396
|
+
if (cached)
|
|
397
|
+
return cached;
|
|
398
|
+
// Compute and cache
|
|
399
|
+
const embeddings = await getEmbeddings([text]);
|
|
400
|
+
const result = embeddings[0];
|
|
401
|
+
cacheSet(cacheKey, result);
|
|
402
|
+
return result;
|
|
403
|
+
}
|
|
404
|
+
/**
|
|
405
|
+
* Get info about current embedding configuration
|
|
406
|
+
*/
|
|
407
|
+
export function getEmbeddingInfo() {
|
|
408
|
+
const taskCfg = getLLMTaskConfig('embeddings');
|
|
409
|
+
const config = getConfigWithOverride();
|
|
410
|
+
return {
|
|
411
|
+
mode: taskCfg.mode,
|
|
412
|
+
model: taskCfg.model,
|
|
413
|
+
dimensions: config.llm?.embeddings?.dimensions ?? getModelDimension(taskCfg.model),
|
|
414
|
+
};
|
|
415
|
+
}
|
|
416
|
+
/**
|
|
417
|
+
* Cosine similarity between two vectors.
|
|
418
|
+
* Returns 0 for zero-vectors to avoid division by zero.
|
|
419
|
+
*/
|
|
420
|
+
export function cosineSimilarity(a, b) {
|
|
421
|
+
if (a.length !== b.length) {
|
|
422
|
+
throw new ValidationError('Vectors must have same length');
|
|
423
|
+
}
|
|
424
|
+
let dotProduct = 0;
|
|
425
|
+
let normA = 0;
|
|
426
|
+
let normB = 0;
|
|
427
|
+
for (let i = 0; i < a.length; i++) {
|
|
428
|
+
dotProduct += a[i] * b[i];
|
|
429
|
+
normA += a[i] * a[i];
|
|
430
|
+
normB += b[i] * b[i];
|
|
431
|
+
}
|
|
432
|
+
const denominator = Math.sqrt(normA) * Math.sqrt(normB);
|
|
433
|
+
if (denominator === 0)
|
|
434
|
+
return 0;
|
|
435
|
+
return dotProduct / denominator;
|
|
436
|
+
}
|
|
437
|
+
//# sourceMappingURL=embeddings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embeddings.js","sourceRoot":"","sources":["../../src/lib/embeddings.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Custom error hierarchy for succ.
|
|
3
|
+
*
|
|
4
|
+
* Provides programmatic error discrimination without parsing message strings.
|
|
5
|
+
* Each subclass carries a `code` string for structured error handling.
|
|
6
|
+
*/
|
|
7
|
+
/** Base error for all succ errors. Carries a `code` and optional `context`. */
|
|
8
|
+
export declare class SuccError extends Error {
|
|
9
|
+
readonly code: string;
|
|
10
|
+
readonly context?: Record<string, unknown>;
|
|
11
|
+
constructor(message: string, code?: string, context?: Record<string, unknown>);
|
|
12
|
+
}
|
|
13
|
+
/** Configuration errors: invalid config values, missing required settings. */
|
|
14
|
+
export declare class ConfigError extends SuccError {
|
|
15
|
+
constructor(message: string, context?: Record<string, unknown>);
|
|
16
|
+
}
|
|
17
|
+
/** Storage/database errors: connection failures, query errors, constraint violations. */
|
|
18
|
+
export declare class StorageError extends SuccError {
|
|
19
|
+
constructor(message: string, context?: Record<string, unknown>);
|
|
20
|
+
}
|
|
21
|
+
/** Validation errors: bad input, precondition failures, argument checks. */
|
|
22
|
+
export declare class ValidationError extends SuccError {
|
|
23
|
+
constructor(message: string, context?: Record<string, unknown>);
|
|
24
|
+
}
|
|
25
|
+
/** Network/API errors: HTTP failures, timeouts, API response errors. */
|
|
26
|
+
export declare class NetworkError extends SuccError {
|
|
27
|
+
readonly statusCode?: number;
|
|
28
|
+
constructor(message: string, statusCode?: number, context?: Record<string, unknown>);
|
|
29
|
+
}
|
|
30
|
+
/** Resource not found: files, PRDs, sessions, memories. */
|
|
31
|
+
export declare class NotFoundError extends SuccError {
|
|
32
|
+
constructor(message: string, context?: Record<string, unknown>);
|
|
33
|
+
}
|
|
34
|
+
/** Dependency errors: missing optional deps, runtime init failures. */
|
|
35
|
+
export declare class DependencyError extends SuccError {
|
|
36
|
+
constructor(message: string, context?: Record<string, unknown>);
|
|
37
|
+
}
|
|
38
|
+
/** Type guard: check if an error is a SuccError or subclass. */
|
|
39
|
+
export declare function isSuccError(error: unknown): error is SuccError;
|
|
40
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,+EAA+E;AAC/E,qBAAa,SAAU,SAAQ,KAAK;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAE/B,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAqB,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAM5F;AAED,8EAA8E;AAC9E,qBAAa,WAAY,SAAQ,SAAS;gBAC5B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI/D;AAED,yFAAyF;AACzF,qBAAa,YAAa,SAAQ,SAAS;gBAC7B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI/D;AAED,4EAA4E;AAC5E,qBAAa,eAAgB,SAAQ,SAAS;gBAChC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI/D;AAED,wEAAwE;AACxE,qBAAa,YAAa,SAAQ,SAAS;IACzC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;gBAEjB,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAKpF;AAED,2DAA2D;AAC3D,qBAAa,aAAc,SAAQ,SAAS;gBAC9B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI/D;AAED,uEAAuE;AACvE,qBAAa,eAAgB,SAAQ,SAAS;gBAChC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI/D;AAED,gEAAgE;AAChE,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,SAAS,CAE9D"}
|