@rbalchii/anchor-engine 4.7.0
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 +609 -0
- package/README.md +317 -0
- package/anchor.bat +5 -0
- package/docs/API.md +314 -0
- package/docs/DEPLOYMENT.md +448 -0
- package/docs/INDEX.md +226 -0
- package/docs/STAR_Whitepaper_Executive.md +216 -0
- package/docs/TROUBLESHOOTING.md +535 -0
- package/docs/archive/GIT_BACKUP_VERIFICATION.md +297 -0
- package/docs/archive/adoption-guide.md +264 -0
- package/docs/archive/adoption-preparation.md +179 -0
- package/docs/archive/agent-harness-integration.md +227 -0
- package/docs/archive/api-reference.md +106 -0
- package/docs/archive/api_flows_diagram.md +118 -0
- package/docs/archive/architecture.md +410 -0
- package/docs/archive/architecture_diagram.md +174 -0
- package/docs/archive/broader-adoption-preparation.md +175 -0
- package/docs/archive/browser-paradigm-architecture.md +163 -0
- package/docs/archive/chat-integration.md +124 -0
- package/docs/archive/community-adoption-materials.md +103 -0
- package/docs/archive/community-adoption.md +147 -0
- package/docs/archive/comparison-with-siloed-solutions.md +192 -0
- package/docs/archive/comprehensive-docs.md +156 -0
- package/docs/archive/data_flow_diagram.md +251 -0
- package/docs/archive/enhancement-implementation-summary.md +146 -0
- package/docs/archive/evolution-summary.md +141 -0
- package/docs/archive/ingestion_pipeline_diagram.md +198 -0
- package/docs/archive/native-module-profiling-results.md +135 -0
- package/docs/archive/positioning-document.md +158 -0
- package/docs/archive/positioning.md +175 -0
- package/docs/archive/query-builder-documentation.md +218 -0
- package/docs/archive/quick-reference.md +40 -0
- package/docs/archive/quickstart.md +63 -0
- package/docs/archive/relationship-narrative-discovery.md +141 -0
- package/docs/archive/search-logic-improvement-plan.md +336 -0
- package/docs/archive/search_architecture_diagram.md +212 -0
- package/docs/archive/semantic-architecture-guide.md +97 -0
- package/docs/archive/sequence-diagrams.md +128 -0
- package/docs/archive/system_components_diagram.md +296 -0
- package/docs/archive/test-framework-integration.md +109 -0
- package/docs/archive/testing-framework-documentation.md +397 -0
- package/docs/archive/testing-framework-summary.md +121 -0
- package/docs/archive/testing-framework.md +377 -0
- package/docs/archive/ui-architecture.md +75 -0
- package/docs/arxiv/BIBLIOGRAPHY.bib +145 -0
- package/docs/arxiv/RELATED_WORK.tex +39 -0
- package/docs/arxiv/compile.bat +48 -0
- package/docs/arxiv/joss_response.md +33 -0
- package/docs/arxiv/prepare-submission.bat +46 -0
- package/docs/arxiv/review.md +128 -0
- package/docs/arxiv/star-whitepaper.tex +657 -0
- package/docs/code-patterns.md +289 -0
- package/docs/whitepaper.md +445 -0
- package/engine/dist/agent/runtime.d.ts +41 -0
- package/engine/dist/agent/runtime.d.ts.map +1 -0
- package/engine/dist/agent/runtime.js +73 -0
- package/engine/dist/agent/runtime.js.map +1 -0
- package/engine/dist/commands/audit-tags.d.ts +14 -0
- package/engine/dist/commands/audit-tags.d.ts.map +1 -0
- package/engine/dist/commands/audit-tags.js +180 -0
- package/engine/dist/commands/audit-tags.js.map +1 -0
- package/engine/dist/commands/distill.d.ts +19 -0
- package/engine/dist/commands/distill.d.ts.map +1 -0
- package/engine/dist/commands/distill.js +114 -0
- package/engine/dist/commands/distill.js.map +1 -0
- package/engine/dist/commands/generate-synonyms.d.ts +14 -0
- package/engine/dist/commands/generate-synonyms.d.ts.map +1 -0
- package/engine/dist/commands/generate-synonyms.js +91 -0
- package/engine/dist/commands/generate-synonyms.js.map +1 -0
- package/engine/dist/config/index.d.ts +115 -0
- package/engine/dist/config/index.d.ts.map +1 -0
- package/engine/dist/config/index.js +326 -0
- package/engine/dist/config/index.js.map +1 -0
- package/engine/dist/config/max-recall-config.d.ts +102 -0
- package/engine/dist/config/max-recall-config.d.ts.map +1 -0
- package/engine/dist/config/max-recall-config.js +102 -0
- package/engine/dist/config/max-recall-config.js.map +1 -0
- package/engine/dist/config/paths.d.ts +40 -0
- package/engine/dist/config/paths.d.ts.map +1 -0
- package/engine/dist/config/paths.js +49 -0
- package/engine/dist/config/paths.js.map +1 -0
- package/engine/dist/core/batch.d.ts +19 -0
- package/engine/dist/core/batch.d.ts.map +1 -0
- package/engine/dist/core/batch.js +37 -0
- package/engine/dist/core/batch.js.map +1 -0
- package/engine/dist/core/db.d.ts +58 -0
- package/engine/dist/core/db.d.ts.map +1 -0
- package/engine/dist/core/db.js +563 -0
- package/engine/dist/core/db.js.map +1 -0
- package/engine/dist/core/inference/ChatWorker.d.ts +2 -0
- package/engine/dist/core/inference/ChatWorker.d.ts.map +1 -0
- package/engine/dist/core/inference/ChatWorker.js +28 -0
- package/engine/dist/core/inference/ChatWorker.js.map +1 -0
- package/engine/dist/core/inference/context_manager.d.ts +49 -0
- package/engine/dist/core/inference/context_manager.d.ts.map +1 -0
- package/engine/dist/core/inference/context_manager.js +199 -0
- package/engine/dist/core/inference/context_manager.js.map +1 -0
- package/engine/dist/core/inference/llamaLoaderWorker.d.ts +2 -0
- package/engine/dist/core/inference/llamaLoaderWorker.d.ts.map +1 -0
- package/engine/dist/core/inference/llamaLoaderWorker.js +23 -0
- package/engine/dist/core/inference/llamaLoaderWorker.js.map +1 -0
- package/engine/dist/core/vector.d.ts +40 -0
- package/engine/dist/core/vector.d.ts.map +1 -0
- package/engine/dist/core/vector.js +167 -0
- package/engine/dist/core/vector.js.map +1 -0
- package/engine/dist/index.d.ts +4 -0
- package/engine/dist/index.d.ts.map +1 -0
- package/engine/dist/index.js +400 -0
- package/engine/dist/index.js.map +1 -0
- package/engine/dist/middleware/auth.d.ts +14 -0
- package/engine/dist/middleware/auth.d.ts.map +1 -0
- package/engine/dist/middleware/auth.js +44 -0
- package/engine/dist/middleware/auth.js.map +1 -0
- package/engine/dist/middleware/request-tracing.d.ts +29 -0
- package/engine/dist/middleware/request-tracing.d.ts.map +1 -0
- package/engine/dist/middleware/request-tracing.js +115 -0
- package/engine/dist/middleware/request-tracing.js.map +1 -0
- package/engine/dist/middleware/validate.d.ts +30 -0
- package/engine/dist/middleware/validate.d.ts.map +1 -0
- package/engine/dist/middleware/validate.js +117 -0
- package/engine/dist/middleware/validate.js.map +1 -0
- package/engine/dist/native/index.d.ts +106 -0
- package/engine/dist/native/index.d.ts.map +1 -0
- package/engine/dist/native/index.js +230 -0
- package/engine/dist/native/index.js.map +1 -0
- package/engine/dist/native/types.d.ts +45 -0
- package/engine/dist/native/types.d.ts.map +1 -0
- package/engine/dist/native/types.js +6 -0
- package/engine/dist/native/types.js.map +1 -0
- package/engine/dist/profiling/atomization-profiling.d.ts +8 -0
- package/engine/dist/profiling/atomization-profiling.d.ts.map +1 -0
- package/engine/dist/profiling/atomization-profiling.js +108 -0
- package/engine/dist/profiling/atomization-profiling.js.map +1 -0
- package/engine/dist/profiling/bottleneck-identification.d.ts +8 -0
- package/engine/dist/profiling/bottleneck-identification.d.ts.map +1 -0
- package/engine/dist/profiling/bottleneck-identification.js +249 -0
- package/engine/dist/profiling/bottleneck-identification.js.map +1 -0
- package/engine/dist/profiling/content-sanitization-profiling.d.ts +12 -0
- package/engine/dist/profiling/content-sanitization-profiling.d.ts.map +1 -0
- package/engine/dist/profiling/content-sanitization-profiling.js +266 -0
- package/engine/dist/profiling/content-sanitization-profiling.js.map +1 -0
- package/engine/dist/profiling/simhash-profiling.d.ts +11 -0
- package/engine/dist/profiling/simhash-profiling.d.ts.map +1 -0
- package/engine/dist/profiling/simhash-profiling.js +168 -0
- package/engine/dist/profiling/simhash-profiling.js.map +1 -0
- package/engine/dist/routes/api.d.ts +9 -0
- package/engine/dist/routes/api.d.ts.map +1 -0
- package/engine/dist/routes/api.js +37 -0
- package/engine/dist/routes/api.js.map +1 -0
- package/engine/dist/routes/enhanced-api.d.ts +9 -0
- package/engine/dist/routes/enhanced-api.d.ts.map +1 -0
- package/engine/dist/routes/enhanced-api.js +139 -0
- package/engine/dist/routes/enhanced-api.js.map +1 -0
- package/engine/dist/routes/health.d.ts +8 -0
- package/engine/dist/routes/health.d.ts.map +1 -0
- package/engine/dist/routes/health.js +89 -0
- package/engine/dist/routes/health.js.map +1 -0
- package/engine/dist/routes/monitoring.d.ts +8 -0
- package/engine/dist/routes/monitoring.d.ts.map +1 -0
- package/engine/dist/routes/monitoring.js +509 -0
- package/engine/dist/routes/monitoring.js.map +1 -0
- package/engine/dist/routes/v1/admin.d.ts +3 -0
- package/engine/dist/routes/v1/admin.d.ts.map +1 -0
- package/engine/dist/routes/v1/admin.js +261 -0
- package/engine/dist/routes/v1/admin.js.map +1 -0
- package/engine/dist/routes/v1/atoms.d.ts +3 -0
- package/engine/dist/routes/v1/atoms.d.ts.map +1 -0
- package/engine/dist/routes/v1/atoms.js +172 -0
- package/engine/dist/routes/v1/atoms.js.map +1 -0
- package/engine/dist/routes/v1/backup.d.ts +3 -0
- package/engine/dist/routes/v1/backup.d.ts.map +1 -0
- package/engine/dist/routes/v1/backup.js +100 -0
- package/engine/dist/routes/v1/backup.js.map +1 -0
- package/engine/dist/routes/v1/git.d.ts +3 -0
- package/engine/dist/routes/v1/git.d.ts.map +1 -0
- package/engine/dist/routes/v1/git.js +316 -0
- package/engine/dist/routes/v1/git.js.map +1 -0
- package/engine/dist/routes/v1/ingest.d.ts +3 -0
- package/engine/dist/routes/v1/ingest.d.ts.map +1 -0
- package/engine/dist/routes/v1/ingest.js +66 -0
- package/engine/dist/routes/v1/ingest.js.map +1 -0
- package/engine/dist/routes/v1/memory.d.ts +14 -0
- package/engine/dist/routes/v1/memory.d.ts.map +1 -0
- package/engine/dist/routes/v1/memory.js +87 -0
- package/engine/dist/routes/v1/memory.js.map +1 -0
- package/engine/dist/routes/v1/research.d.ts +3 -0
- package/engine/dist/routes/v1/research.d.ts.map +1 -0
- package/engine/dist/routes/v1/research.js +109 -0
- package/engine/dist/routes/v1/research.js.map +1 -0
- package/engine/dist/routes/v1/search.d.ts +3 -0
- package/engine/dist/routes/v1/search.d.ts.map +1 -0
- package/engine/dist/routes/v1/search.js +180 -0
- package/engine/dist/routes/v1/search.js.map +1 -0
- package/engine/dist/routes/v1/settings.d.ts +8 -0
- package/engine/dist/routes/v1/settings.d.ts.map +1 -0
- package/engine/dist/routes/v1/settings.js +211 -0
- package/engine/dist/routes/v1/settings.js.map +1 -0
- package/engine/dist/routes/v1/system.d.ts +3 -0
- package/engine/dist/routes/v1/system.d.ts.map +1 -0
- package/engine/dist/routes/v1/system.js +326 -0
- package/engine/dist/routes/v1/system.js.map +1 -0
- package/engine/dist/routes/v1/tags.d.ts +3 -0
- package/engine/dist/routes/v1/tags.d.ts.map +1 -0
- package/engine/dist/routes/v1/tags.js +102 -0
- package/engine/dist/routes/v1/tags.js.map +1 -0
- package/engine/dist/server-8080.d.ts +2 -0
- package/engine/dist/server-8080.d.ts.map +1 -0
- package/engine/dist/server-8080.js +74 -0
- package/engine/dist/server-8080.js.map +1 -0
- package/engine/dist/services/backup/backup-restore.d.ts +37 -0
- package/engine/dist/services/backup/backup-restore.d.ts.map +1 -0
- package/engine/dist/services/backup/backup-restore.js +385 -0
- package/engine/dist/services/backup/backup-restore.js.map +1 -0
- package/engine/dist/services/backup/backup.d.ts +14 -0
- package/engine/dist/services/backup/backup.d.ts.map +1 -0
- package/engine/dist/services/backup/backup.js +442 -0
- package/engine/dist/services/backup/backup.js.map +1 -0
- package/engine/dist/services/distillation/radial-distiller-v2.d.ts +127 -0
- package/engine/dist/services/distillation/radial-distiller-v2.d.ts.map +1 -0
- package/engine/dist/services/distillation/radial-distiller-v2.js +503 -0
- package/engine/dist/services/distillation/radial-distiller-v2.js.map +1 -0
- package/engine/dist/services/distillation/radial-distiller.d.ts +63 -0
- package/engine/dist/services/distillation/radial-distiller.d.ts.map +1 -0
- package/engine/dist/services/distillation/radial-distiller.js +394 -0
- package/engine/dist/services/distillation/radial-distiller.js.map +1 -0
- package/engine/dist/services/health-check-enhanced.d.ts +89 -0
- package/engine/dist/services/health-check-enhanced.d.ts.map +1 -0
- package/engine/dist/services/health-check-enhanced.js +417 -0
- package/engine/dist/services/health-check-enhanced.js.map +1 -0
- package/engine/dist/services/idle-manager.d.ts +56 -0
- package/engine/dist/services/idle-manager.d.ts.map +1 -0
- package/engine/dist/services/idle-manager.js +210 -0
- package/engine/dist/services/idle-manager.js.map +1 -0
- package/engine/dist/services/inference/inference-service.d.ts +27 -0
- package/engine/dist/services/inference/inference-service.d.ts.map +1 -0
- package/engine/dist/services/inference/inference-service.js +89 -0
- package/engine/dist/services/inference/inference-service.js.map +1 -0
- package/engine/dist/services/inference/inference.d.ts +59 -0
- package/engine/dist/services/inference/inference.d.ts.map +1 -0
- package/engine/dist/services/inference/inference.js +131 -0
- package/engine/dist/services/inference/inference.js.map +1 -0
- package/engine/dist/services/ingest/atomizer-service.d.ts +74 -0
- package/engine/dist/services/ingest/atomizer-service.d.ts.map +1 -0
- package/engine/dist/services/ingest/atomizer-service.js +982 -0
- package/engine/dist/services/ingest/atomizer-service.js.map +1 -0
- package/engine/dist/services/ingest/content-cleaner.d.ts +43 -0
- package/engine/dist/services/ingest/content-cleaner.d.ts.map +1 -0
- package/engine/dist/services/ingest/content-cleaner.js +166 -0
- package/engine/dist/services/ingest/content-cleaner.js.map +1 -0
- package/engine/dist/services/ingest/github-ingest-service.d.ts +103 -0
- package/engine/dist/services/ingest/github-ingest-service.d.ts.map +1 -0
- package/engine/dist/services/ingest/github-ingest-service.js +537 -0
- package/engine/dist/services/ingest/github-ingest-service.js.map +1 -0
- package/engine/dist/services/ingest/ingest-atomic.d.ts +16 -0
- package/engine/dist/services/ingest/ingest-atomic.d.ts.map +1 -0
- package/engine/dist/services/ingest/ingest-atomic.js +437 -0
- package/engine/dist/services/ingest/ingest-atomic.js.map +1 -0
- package/engine/dist/services/ingest/ingest.d.ts +50 -0
- package/engine/dist/services/ingest/ingest.d.ts.map +1 -0
- package/engine/dist/services/ingest/ingest.js +230 -0
- package/engine/dist/services/ingest/ingest.js.map +1 -0
- package/engine/dist/services/ingest/watchdog.d.ts +31 -0
- package/engine/dist/services/ingest/watchdog.d.ts.map +1 -0
- package/engine/dist/services/ingest/watchdog.js +400 -0
- package/engine/dist/services/ingest/watchdog.js.map +1 -0
- package/engine/dist/services/llm/context.d.ts +6 -0
- package/engine/dist/services/llm/context.d.ts.map +1 -0
- package/engine/dist/services/llm/context.js +80 -0
- package/engine/dist/services/llm/context.js.map +1 -0
- package/engine/dist/services/llm/provider.d.ts +23 -0
- package/engine/dist/services/llm/provider.d.ts.map +1 -0
- package/engine/dist/services/llm/provider.js +338 -0
- package/engine/dist/services/llm/provider.js.map +1 -0
- package/engine/dist/services/llm/reader.d.ts +12 -0
- package/engine/dist/services/llm/reader.d.ts.map +1 -0
- package/engine/dist/services/llm/reader.js +40 -0
- package/engine/dist/services/llm/reader.js.map +1 -0
- package/engine/dist/services/mirror/mirror.d.ts +28 -0
- package/engine/dist/services/mirror/mirror.d.ts.map +1 -0
- package/engine/dist/services/mirror/mirror.js +208 -0
- package/engine/dist/services/mirror/mirror.js.map +1 -0
- package/engine/dist/services/nlp/nlp-service.d.ts +70 -0
- package/engine/dist/services/nlp/nlp-service.d.ts.map +1 -0
- package/engine/dist/services/nlp/nlp-service.js +151 -0
- package/engine/dist/services/nlp/nlp-service.js.map +1 -0
- package/engine/dist/services/nlp/query-parser.d.ts +9 -0
- package/engine/dist/services/nlp/query-parser.d.ts.map +1 -0
- package/engine/dist/services/nlp/query-parser.js +29 -0
- package/engine/dist/services/nlp/query-parser.js.map +1 -0
- package/engine/dist/services/query-builder/DataFrame.d.ts +95 -0
- package/engine/dist/services/query-builder/DataFrame.d.ts.map +1 -0
- package/engine/dist/services/query-builder/DataFrame.js +263 -0
- package/engine/dist/services/query-builder/DataFrame.js.map +1 -0
- package/engine/dist/services/query-builder/QueryBuilder.d.ts +106 -0
- package/engine/dist/services/query-builder/QueryBuilder.d.ts.map +1 -0
- package/engine/dist/services/query-builder/QueryBuilder.js +235 -0
- package/engine/dist/services/query-builder/QueryBuilder.js.map +1 -0
- package/engine/dist/services/query-builder/utils/export.d.ts +11 -0
- package/engine/dist/services/query-builder/utils/export.d.ts.map +1 -0
- package/engine/dist/services/query-builder/utils/export.js +130 -0
- package/engine/dist/services/query-builder/utils/export.js.map +1 -0
- package/engine/dist/services/research/researcher.d.ts +15 -0
- package/engine/dist/services/research/researcher.d.ts.map +1 -0
- package/engine/dist/services/research/researcher.js +123 -0
- package/engine/dist/services/research/researcher.js.map +1 -0
- package/engine/dist/services/scribe/scribe.d.ts +43 -0
- package/engine/dist/services/scribe/scribe.d.ts.map +1 -0
- package/engine/dist/services/scribe/scribe.js +135 -0
- package/engine/dist/services/scribe/scribe.js.map +1 -0
- package/engine/dist/services/search/bright-nodes.d.ts +41 -0
- package/engine/dist/services/search/bright-nodes.d.ts.map +1 -0
- package/engine/dist/services/search/bright-nodes.js +117 -0
- package/engine/dist/services/search/bright-nodes.js.map +1 -0
- package/engine/dist/services/search/context-inflator.d.ts +63 -0
- package/engine/dist/services/search/context-inflator.d.ts.map +1 -0
- package/engine/dist/services/search/context-inflator.js +649 -0
- package/engine/dist/services/search/context-inflator.js.map +1 -0
- package/engine/dist/services/search/context-manager.d.ts +34 -0
- package/engine/dist/services/search/context-manager.d.ts.map +1 -0
- package/engine/dist/services/search/context-manager.js +124 -0
- package/engine/dist/services/search/context-manager.js.map +1 -0
- package/engine/dist/services/search/distributed-query.d.ts +38 -0
- package/engine/dist/services/search/distributed-query.d.ts.map +1 -0
- package/engine/dist/services/search/distributed-query.js +105 -0
- package/engine/dist/services/search/distributed-query.js.map +1 -0
- package/engine/dist/services/search/explore.d.ts +73 -0
- package/engine/dist/services/search/explore.d.ts.map +1 -0
- package/engine/dist/services/search/explore.js +388 -0
- package/engine/dist/services/search/explore.js.map +1 -0
- package/engine/dist/services/search/graph-context-serializer.d.ts +76 -0
- package/engine/dist/services/search/graph-context-serializer.d.ts.map +1 -0
- package/engine/dist/services/search/graph-context-serializer.js +435 -0
- package/engine/dist/services/search/graph-context-serializer.js.map +1 -0
- package/engine/dist/services/search/llm-context-formatter.d.ts +122 -0
- package/engine/dist/services/search/llm-context-formatter.d.ts.map +1 -0
- package/engine/dist/services/search/llm-context-formatter.js +394 -0
- package/engine/dist/services/search/llm-context-formatter.js.map +1 -0
- package/engine/dist/services/search/physics-tag-walker.d.ts +115 -0
- package/engine/dist/services/search/physics-tag-walker.d.ts.map +1 -0
- package/engine/dist/services/search/physics-tag-walker.js +611 -0
- package/engine/dist/services/search/physics-tag-walker.js.map +1 -0
- package/engine/dist/services/search/query-parser.d.ts +66 -0
- package/engine/dist/services/search/query-parser.d.ts.map +1 -0
- package/engine/dist/services/search/query-parser.js +346 -0
- package/engine/dist/services/search/query-parser.js.map +1 -0
- package/engine/dist/services/search/search-utils.d.ts +100 -0
- package/engine/dist/services/search/search-utils.d.ts.map +1 -0
- package/engine/dist/services/search/search-utils.js +473 -0
- package/engine/dist/services/search/search-utils.js.map +1 -0
- package/engine/dist/services/search/search.d.ts +116 -0
- package/engine/dist/services/search/search.d.ts.map +1 -0
- package/engine/dist/services/search/search.js +1286 -0
- package/engine/dist/services/search/search.js.map +1 -0
- package/engine/dist/services/search/sovereign-system-prompt.d.ts +48 -0
- package/engine/dist/services/search/sovereign-system-prompt.d.ts.map +1 -0
- package/engine/dist/services/search/sovereign-system-prompt.js +101 -0
- package/engine/dist/services/search/sovereign-system-prompt.js.map +1 -0
- package/engine/dist/services/search/streaming-search.d.ts +51 -0
- package/engine/dist/services/search/streaming-search.d.ts.map +1 -0
- package/engine/dist/services/search/streaming-search.js +94 -0
- package/engine/dist/services/search/streaming-search.js.map +1 -0
- package/engine/dist/services/semantic/semantic-ingestion-service.d.ts +53 -0
- package/engine/dist/services/semantic/semantic-ingestion-service.d.ts.map +1 -0
- package/engine/dist/services/semantic/semantic-ingestion-service.js +625 -0
- package/engine/dist/services/semantic/semantic-ingestion-service.js.map +1 -0
- package/engine/dist/services/semantic/semantic-molecule-processor.d.ts +68 -0
- package/engine/dist/services/semantic/semantic-molecule-processor.d.ts.map +1 -0
- package/engine/dist/services/semantic/semantic-molecule-processor.js +176 -0
- package/engine/dist/services/semantic/semantic-molecule-processor.js.map +1 -0
- package/engine/dist/services/semantic/semantic-search.d.ts +52 -0
- package/engine/dist/services/semantic/semantic-search.d.ts.map +1 -0
- package/engine/dist/services/semantic/semantic-search.js +649 -0
- package/engine/dist/services/semantic/semantic-search.js.map +1 -0
- package/engine/dist/services/semantic/semantic-tag-deriver.d.ts +64 -0
- package/engine/dist/services/semantic/semantic-tag-deriver.d.ts.map +1 -0
- package/engine/dist/services/semantic/semantic-tag-deriver.js +191 -0
- package/engine/dist/services/semantic/semantic-tag-deriver.js.map +1 -0
- package/engine/dist/services/semantic/types/semantic.d.ts +26 -0
- package/engine/dist/services/semantic/types/semantic.d.ts.map +1 -0
- package/engine/dist/services/semantic/types/semantic.js +7 -0
- package/engine/dist/services/semantic/types/semantic.js.map +1 -0
- package/engine/dist/services/synonyms/auto-synonym-generator.d.ts +79 -0
- package/engine/dist/services/synonyms/auto-synonym-generator.d.ts.map +1 -0
- package/engine/dist/services/synonyms/auto-synonym-generator.js +415 -0
- package/engine/dist/services/synonyms/auto-synonym-generator.js.map +1 -0
- package/engine/dist/services/system-status.d.ts +68 -0
- package/engine/dist/services/system-status.d.ts.map +1 -0
- package/engine/dist/services/system-status.js +107 -0
- package/engine/dist/services/system-status.js.map +1 -0
- package/engine/dist/services/tags/discovery.d.ts +16 -0
- package/engine/dist/services/tags/discovery.d.ts.map +1 -0
- package/engine/dist/services/tags/discovery.js +206 -0
- package/engine/dist/services/tags/discovery.js.map +1 -0
- package/engine/dist/services/tags/gliner.d.ts +18 -0
- package/engine/dist/services/tags/gliner.d.ts.map +1 -0
- package/engine/dist/services/tags/gliner.js +119 -0
- package/engine/dist/services/tags/gliner.js.map +1 -0
- package/engine/dist/services/tags/infector.d.ts +21 -0
- package/engine/dist/services/tags/infector.d.ts.map +1 -0
- package/engine/dist/services/tags/infector.js +168 -0
- package/engine/dist/services/tags/infector.js.map +1 -0
- package/engine/dist/services/tags/tag-auditor.d.ts +77 -0
- package/engine/dist/services/tags/tag-auditor.d.ts.map +1 -0
- package/engine/dist/services/tags/tag-auditor.js +283 -0
- package/engine/dist/services/tags/tag-auditor.js.map +1 -0
- package/engine/dist/services/taxonomy/taxonomy-manager.d.ts +50 -0
- package/engine/dist/services/taxonomy/taxonomy-manager.d.ts.map +1 -0
- package/engine/dist/services/taxonomy/taxonomy-manager.js +291 -0
- package/engine/dist/services/taxonomy/taxonomy-manager.js.map +1 -0
- package/engine/dist/services/vision/vision_service.d.ts +4 -0
- package/engine/dist/services/vision/vision_service.d.ts.map +1 -0
- package/engine/dist/services/vision/vision_service.js +197 -0
- package/engine/dist/services/vision/vision_service.js.map +1 -0
- package/engine/dist/test-framework/core.d.ts +133 -0
- package/engine/dist/test-framework/core.d.ts.map +1 -0
- package/engine/dist/test-framework/core.js +313 -0
- package/engine/dist/test-framework/core.js.map +1 -0
- package/engine/dist/test-framework/dataset-runner.d.ts +78 -0
- package/engine/dist/test-framework/dataset-runner.d.ts.map +1 -0
- package/engine/dist/test-framework/dataset-runner.js +223 -0
- package/engine/dist/test-framework/dataset-runner.js.map +1 -0
- package/engine/dist/test-framework/diagnostic-tests.d.ts +38 -0
- package/engine/dist/test-framework/diagnostic-tests.d.ts.map +1 -0
- package/engine/dist/test-framework/diagnostic-tests.js +283 -0
- package/engine/dist/test-framework/diagnostic-tests.js.map +1 -0
- package/engine/dist/test-framework/performance-regression-tests.d.ts +30 -0
- package/engine/dist/test-framework/performance-regression-tests.d.ts.map +1 -0
- package/engine/dist/test-framework/performance-regression-tests.js +331 -0
- package/engine/dist/test-framework/performance-regression-tests.js.map +1 -0
- package/engine/dist/types/api.d.ts +53 -0
- package/engine/dist/types/api.d.ts.map +1 -0
- package/engine/dist/types/api.js +2 -0
- package/engine/dist/types/api.js.map +1 -0
- package/engine/dist/types/atomic.d.ts +42 -0
- package/engine/dist/types/atomic.d.ts.map +1 -0
- package/engine/dist/types/atomic.js +10 -0
- package/engine/dist/types/atomic.js.map +1 -0
- package/engine/dist/types/context-protocol.d.ts +137 -0
- package/engine/dist/types/context-protocol.d.ts.map +1 -0
- package/engine/dist/types/context-protocol.js +28 -0
- package/engine/dist/types/context-protocol.js.map +1 -0
- package/engine/dist/types/context.d.ts +2 -0
- package/engine/dist/types/context.d.ts.map +1 -0
- package/engine/dist/types/context.js +2 -0
- package/engine/dist/types/context.js.map +1 -0
- package/engine/dist/types/index.d.ts +20 -0
- package/engine/dist/types/index.d.ts.map +1 -0
- package/engine/dist/types/index.js +18 -0
- package/engine/dist/types/index.js.map +1 -0
- package/engine/dist/types/search.d.ts +31 -0
- package/engine/dist/types/search.d.ts.map +1 -0
- package/engine/dist/types/search.js +2 -0
- package/engine/dist/types/search.js.map +1 -0
- package/engine/dist/types/taxonomy.d.ts +137 -0
- package/engine/dist/types/taxonomy.d.ts.map +1 -0
- package/engine/dist/types/taxonomy.js +138 -0
- package/engine/dist/types/taxonomy.js.map +1 -0
- package/engine/dist/types/taxonomy.simple.d.ts +131 -0
- package/engine/dist/types/taxonomy.simple.d.ts.map +1 -0
- package/engine/dist/types/taxonomy.simple.js +132 -0
- package/engine/dist/types/taxonomy.simple.js.map +1 -0
- package/engine/dist/types/tool-call.d.ts +16 -0
- package/engine/dist/types/tool-call.d.ts.map +1 -0
- package/engine/dist/types/tool-call.js +6 -0
- package/engine/dist/types/tool-call.js.map +1 -0
- package/engine/dist/types/trace.d.ts +25 -0
- package/engine/dist/types/trace.d.ts.map +1 -0
- package/engine/dist/types/trace.js +5 -0
- package/engine/dist/types/trace.js.map +1 -0
- package/engine/dist/utils/adaptive-concurrency.d.ts +81 -0
- package/engine/dist/utils/adaptive-concurrency.d.ts.map +1 -0
- package/engine/dist/utils/adaptive-concurrency.js +266 -0
- package/engine/dist/utils/adaptive-concurrency.js.map +1 -0
- package/engine/dist/utils/date_extractor.d.ts +2 -0
- package/engine/dist/utils/date_extractor.d.ts.map +1 -0
- package/engine/dist/utils/date_extractor.js +32 -0
- package/engine/dist/utils/date_extractor.js.map +1 -0
- package/engine/dist/utils/native-module-manager.d.ts +48 -0
- package/engine/dist/utils/native-module-manager.d.ts.map +1 -0
- package/engine/dist/utils/native-module-manager.js +265 -0
- package/engine/dist/utils/native-module-manager.js.map +1 -0
- package/engine/dist/utils/native-module-profiler.d.ts +66 -0
- package/engine/dist/utils/native-module-profiler.d.ts.map +1 -0
- package/engine/dist/utils/native-module-profiler.js +182 -0
- package/engine/dist/utils/native-module-profiler.js.map +1 -0
- package/engine/dist/utils/path-manager.d.ts +59 -0
- package/engine/dist/utils/path-manager.d.ts.map +1 -0
- package/engine/dist/utils/path-manager.js +154 -0
- package/engine/dist/utils/path-manager.js.map +1 -0
- package/engine/dist/utils/performance-monitor.d.ts +92 -0
- package/engine/dist/utils/performance-monitor.d.ts.map +1 -0
- package/engine/dist/utils/performance-monitor.js +221 -0
- package/engine/dist/utils/performance-monitor.js.map +1 -0
- package/engine/dist/utils/process-manager.d.ts +18 -0
- package/engine/dist/utils/process-manager.d.ts.map +1 -0
- package/engine/dist/utils/process-manager.js +100 -0
- package/engine/dist/utils/process-manager.js.map +1 -0
- package/engine/dist/utils/request-tracer.d.ts +131 -0
- package/engine/dist/utils/request-tracer.d.ts.map +1 -0
- package/engine/dist/utils/request-tracer.js +414 -0
- package/engine/dist/utils/request-tracer.js.map +1 -0
- package/engine/dist/utils/resource-manager.d.ts +108 -0
- package/engine/dist/utils/resource-manager.d.ts.map +1 -0
- package/engine/dist/utils/resource-manager.js +235 -0
- package/engine/dist/utils/resource-manager.js.map +1 -0
- package/engine/dist/utils/safe-dns.d.ts +14 -0
- package/engine/dist/utils/safe-dns.d.ts.map +1 -0
- package/engine/dist/utils/safe-dns.js +105 -0
- package/engine/dist/utils/safe-dns.js.map +1 -0
- package/engine/dist/utils/structured-logger.d.ts +124 -0
- package/engine/dist/utils/structured-logger.d.ts.map +1 -0
- package/engine/dist/utils/structured-logger.js +332 -0
- package/engine/dist/utils/structured-logger.js.map +1 -0
- package/engine/dist/utils/tag-cleanup.d.ts +11 -0
- package/engine/dist/utils/tag-cleanup.d.ts.map +1 -0
- package/engine/dist/utils/tag-cleanup.js +111 -0
- package/engine/dist/utils/tag-cleanup.js.map +1 -0
- package/engine/dist/utils/tag-filter.d.ts +19 -0
- package/engine/dist/utils/tag-filter.d.ts.map +1 -0
- package/engine/dist/utils/tag-filter.js +147 -0
- package/engine/dist/utils/tag-filter.js.map +1 -0
- package/engine/dist/utils/tag-modulation.d.ts +80 -0
- package/engine/dist/utils/tag-modulation.d.ts.map +1 -0
- package/engine/dist/utils/tag-modulation.js +284 -0
- package/engine/dist/utils/tag-modulation.js.map +1 -0
- package/engine/dist/utils/timer.d.ts +40 -0
- package/engine/dist/utils/timer.d.ts.map +1 -0
- package/engine/dist/utils/timer.js +76 -0
- package/engine/dist/utils/timer.js.map +1 -0
- package/engine/dist/utils/token-utils.d.ts +19 -0
- package/engine/dist/utils/token-utils.d.ts.map +1 -0
- package/engine/dist/utils/token-utils.js +71 -0
- package/engine/dist/utils/token-utils.js.map +1 -0
- package/engine/dist/utils/wasm-module-loader.d.ts +50 -0
- package/engine/dist/utils/wasm-module-loader.d.ts.map +1 -0
- package/engine/dist/utils/wasm-module-loader.js +136 -0
- package/engine/dist/utils/wasm-module-loader.js.map +1 -0
- package/engine/package.json +105 -0
- package/package.json +106 -0
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import { config } from '../../config/index.js';
|
|
2
|
+
import { detectIntent, assembleAndSerialize } from '../../services/search/graph-context-serializer.js';
|
|
3
|
+
import { buildSovereignPrompt } from '../../services/search/sovereign-system-prompt.js';
|
|
4
|
+
/**
|
|
5
|
+
* Rolling Context Slicer (Feature 8) - Neuro-Symbolic Bridge Edition
|
|
6
|
+
*
|
|
7
|
+
* Implements "Middle-Out" Context Budgeting with Structured Graph Output.
|
|
8
|
+
* Prioritizes atoms based on a mix of Relevance (Vector Similarity) and Recency.
|
|
9
|
+
*
|
|
10
|
+
* Strategy:
|
|
11
|
+
* 1. Rank Candidates: Score = (Relevance * 0.7) + (RecencyNorm * 0.3).
|
|
12
|
+
* 2. Select: Fill budget with highest ranked atoms.
|
|
13
|
+
* 3. Smart Slice: If an atom fits partially, slice around the keyword match (windowing).
|
|
14
|
+
* 4. Order: Sort selected atoms Chronologically (or by Sequence) for linear readability.
|
|
15
|
+
*/
|
|
16
|
+
export function composeRollingContext(query, results, tokenBudget = 4096) {
|
|
17
|
+
// Constants
|
|
18
|
+
const CHARS_PER_TOKEN = 4; // Rough estimate
|
|
19
|
+
// Safety Buffer: Target 95% of budget to account for multibyte chars / math errors
|
|
20
|
+
const SAFE_BUDGET = Math.floor(tokenBudget * 0.95);
|
|
21
|
+
const charBudget = SAFE_BUDGET * CHARS_PER_TOKEN;
|
|
22
|
+
// 1. Dynamic Recency Analysis
|
|
23
|
+
// Check for temporal signals in query
|
|
24
|
+
const temporalSignals = ["recent", "latest", "new", "today", "now", "current", "last"];
|
|
25
|
+
const hasTemporalSignal = temporalSignals.some(signal => query.toLowerCase().includes(signal));
|
|
26
|
+
// Adjust weights based on intent
|
|
27
|
+
// Default: Relevance 70%, Recency 30%
|
|
28
|
+
// Temporal: Relevance 40%, Recency 60%
|
|
29
|
+
const RELEVANCE_WEIGHT = hasTemporalSignal ? 0.4 : config.CONTEXT_RELEVANCE_WEIGHT;
|
|
30
|
+
const RECENCY_WEIGHT = hasTemporalSignal ? 0.6 : config.CONTEXT_RECENCY_WEIGHT;
|
|
31
|
+
// 2. Normalize Recency & Score
|
|
32
|
+
const now = Date.now();
|
|
33
|
+
const oneMonth = 30 * 24 * 60 * 60 * 1000;
|
|
34
|
+
const candidates = results.map(atom => {
|
|
35
|
+
const atomTimestamp = typeof atom.timestamp === 'number' && !isNaN(atom.timestamp)
|
|
36
|
+
? atom.timestamp
|
|
37
|
+
: now;
|
|
38
|
+
const age = Math.max(0, now - atomTimestamp);
|
|
39
|
+
// Recency Score: 1.0 = Brand new, 0.0 = >1 Month old (clamped)
|
|
40
|
+
const recencyScore = Math.max(0, 1.0 - (age / oneMonth));
|
|
41
|
+
// Final Mixed Score
|
|
42
|
+
const mixedScore = (atom.score * RELEVANCE_WEIGHT) + (recencyScore * RECENCY_WEIGHT);
|
|
43
|
+
return { ...atom, timestamp: atomTimestamp, mixedScore, recencyScore };
|
|
44
|
+
});
|
|
45
|
+
// 3. Sort by Mixed Score (Descending)
|
|
46
|
+
candidates.sort((a, b) => b.mixedScore - a.mixedScore);
|
|
47
|
+
// 4. Selection (Fill Budget)
|
|
48
|
+
const selectedAtoms = [];
|
|
49
|
+
let currentChars = 0;
|
|
50
|
+
for (const atom of candidates) {
|
|
51
|
+
if (currentChars >= charBudget)
|
|
52
|
+
break;
|
|
53
|
+
const atomLen = atom.content.length;
|
|
54
|
+
if (currentChars + atomLen <= charBudget) {
|
|
55
|
+
selectedAtoms.push(atom);
|
|
56
|
+
currentChars += atomLen;
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
// Partial Fill with Smart Slicing
|
|
60
|
+
const remaining = charBudget - currentChars;
|
|
61
|
+
if (remaining > 200) {
|
|
62
|
+
// Slice to nearest punctuation to keep thought intact
|
|
63
|
+
// Look for . ! ? or \n within the last 50 chars of the budget
|
|
64
|
+
// Finds last punctuation before the hard limit
|
|
65
|
+
const safeContent = atom.content.substring(0, remaining);
|
|
66
|
+
// Polyfill for finding last punctuation
|
|
67
|
+
const lastDot = safeContent.lastIndexOf('.');
|
|
68
|
+
const lastBang = safeContent.lastIndexOf('!');
|
|
69
|
+
const lastQ = safeContent.lastIndexOf('?');
|
|
70
|
+
const lastNew = safeContent.lastIndexOf('\n');
|
|
71
|
+
const bestCut = Math.max(lastDot, lastBang, lastQ, lastNew);
|
|
72
|
+
if (bestCut > (remaining * 0.5)) {
|
|
73
|
+
// If punctuation is reasonably far in, use it
|
|
74
|
+
const slicedContent = atom.content.substring(0, bestCut + 1) + " [Truncated]";
|
|
75
|
+
selectedAtoms.push({ ...atom, content: slicedContent });
|
|
76
|
+
currentChars += slicedContent.length;
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
// Fallback to hard cut if no punctuation found nearby
|
|
80
|
+
// Try to cut at the last space to avoid cutting mid-word
|
|
81
|
+
const lastSpace = safeContent.lastIndexOf(' ');
|
|
82
|
+
const cutIndex = lastSpace > (remaining * 0.5) ? lastSpace : remaining;
|
|
83
|
+
const slicedContent = atom.content.substring(0, cutIndex) + "...";
|
|
84
|
+
selectedAtoms.push({ ...atom, content: slicedContent });
|
|
85
|
+
currentChars += slicedContent.length;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
break; // Filled
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
// 5. Final Sort (Chronological / Flow)
|
|
92
|
+
// Preservation of narrative flow is key.
|
|
93
|
+
selectedAtoms.sort((a, b) => a.timestamp - b.timestamp);
|
|
94
|
+
// 6. Assemble JSON Graph (Neuro-Symbolic Output)
|
|
95
|
+
const graphNodes = selectedAtoms.map(a => ({
|
|
96
|
+
id: a.id,
|
|
97
|
+
type: a.type || 'thought',
|
|
98
|
+
content: a.content,
|
|
99
|
+
meta: {
|
|
100
|
+
score: Number(a.mixedScore.toFixed(3)),
|
|
101
|
+
tags: a.tags || [],
|
|
102
|
+
source: a.source,
|
|
103
|
+
timestamp: (() => {
|
|
104
|
+
try {
|
|
105
|
+
return new Date(a.timestamp).toISOString();
|
|
106
|
+
}
|
|
107
|
+
catch (e) {
|
|
108
|
+
return new Date().toISOString();
|
|
109
|
+
}
|
|
110
|
+
})(),
|
|
111
|
+
provenance: a.provenance || 'internal'
|
|
112
|
+
}
|
|
113
|
+
}));
|
|
114
|
+
const graph = {
|
|
115
|
+
intent: query,
|
|
116
|
+
nodes: graphNodes
|
|
117
|
+
};
|
|
118
|
+
const jsonString = JSON.stringify(graph, null, 2);
|
|
119
|
+
// Wrap with the User's Neuro-Symbolic Directive
|
|
120
|
+
const promptWrapper = `Here is a graph of thoughts from my memory, ranked by mathematical relevance (Time + Logic). Use these nodes to answer my question. Do not use outside knowledge unless necessary.\n\n\`\`\`json\n${jsonString}\n\`\`\``;
|
|
121
|
+
return {
|
|
122
|
+
prompt: promptWrapper,
|
|
123
|
+
stats: {
|
|
124
|
+
tokenCount: Math.ceil(currentChars / CHARS_PER_TOKEN),
|
|
125
|
+
charCount: currentChars,
|
|
126
|
+
filledPercent: Math.min(100, (currentChars / charBudget) * 100),
|
|
127
|
+
atomCount: selectedAtoms.length
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
// =============================================================================
|
|
132
|
+
// GRAPH-CONTEXT PROTOCOL (GCP) — Enhanced Context Assembly
|
|
133
|
+
// =============================================================================
|
|
134
|
+
/**
|
|
135
|
+
* Compose context using the Graph-Context Protocol.
|
|
136
|
+
*
|
|
137
|
+
* This produces the sovereign prompt format:
|
|
138
|
+
* System: "You are the interface for Anchor OS..."
|
|
139
|
+
* User: [CONTEXT_GRAPH_START]...[CONTEXT_GRAPH_END] + query
|
|
140
|
+
*
|
|
141
|
+
* Use this instead of composeRollingContext when you have physics metadata.
|
|
142
|
+
*/
|
|
143
|
+
export function composeGraphContext(query, anchors, walkerResults, user, tokenBudget = 4096) {
|
|
144
|
+
const CHARS_PER_TOKEN_GCP = 4;
|
|
145
|
+
const charBudget = Math.floor(tokenBudget * 0.95 * CHARS_PER_TOKEN_GCP);
|
|
146
|
+
// Convert ContextAtoms to SearchResult-compatible format for the serializer
|
|
147
|
+
const anchorSearchResults = anchors.map(a => ({
|
|
148
|
+
id: a.id,
|
|
149
|
+
content: a.content,
|
|
150
|
+
source: a.source,
|
|
151
|
+
timestamp: a.timestamp,
|
|
152
|
+
buckets: [],
|
|
153
|
+
tags: a.tags || [],
|
|
154
|
+
epochs: '',
|
|
155
|
+
provenance: a.provenance || 'internal',
|
|
156
|
+
score: a.score,
|
|
157
|
+
type: a.type || 'thought',
|
|
158
|
+
frequency: 1,
|
|
159
|
+
}));
|
|
160
|
+
const walkerSearchResults = walkerResults.map(a => ({
|
|
161
|
+
id: a.id,
|
|
162
|
+
content: a.content,
|
|
163
|
+
source: a.source,
|
|
164
|
+
timestamp: a.timestamp,
|
|
165
|
+
buckets: [],
|
|
166
|
+
tags: a.tags || [],
|
|
167
|
+
epochs: '',
|
|
168
|
+
provenance: a.provenance || 'internal',
|
|
169
|
+
score: a.score,
|
|
170
|
+
type: a.type || 'thought',
|
|
171
|
+
frequency: 1,
|
|
172
|
+
}));
|
|
173
|
+
const intent = detectIntent(query);
|
|
174
|
+
// Extract key terms from query (simple NLP-free approach)
|
|
175
|
+
const keyTerms = query.toLowerCase()
|
|
176
|
+
.split(/\s+/)
|
|
177
|
+
.filter(w => w.length > 3 && !['what', 'when', 'where', 'that', 'this', 'with', 'from', 'about'].includes(w));
|
|
178
|
+
const serialized = assembleAndSerialize({
|
|
179
|
+
user,
|
|
180
|
+
query,
|
|
181
|
+
keyTerms,
|
|
182
|
+
anchors: anchorSearchResults,
|
|
183
|
+
legacyWalkerResults: walkerSearchResults,
|
|
184
|
+
charBudget,
|
|
185
|
+
});
|
|
186
|
+
const { system, user: userMsg } = buildSovereignPrompt(user, intent, serialized, query);
|
|
187
|
+
const totalChars = system.length + userMsg.length;
|
|
188
|
+
return {
|
|
189
|
+
system,
|
|
190
|
+
user: userMsg,
|
|
191
|
+
stats: {
|
|
192
|
+
tokenCount: Math.ceil(totalChars / CHARS_PER_TOKEN_GCP),
|
|
193
|
+
charCount: totalChars,
|
|
194
|
+
filledPercent: Math.min(100, (totalChars / charBudget) * 100),
|
|
195
|
+
atomCount: anchors.length + walkerResults.length,
|
|
196
|
+
}
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
//# sourceMappingURL=context_manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context_manager.js","sourceRoot":"","sources":["../../../src/core/inference/context_manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llamaLoaderWorker.d.ts","sourceRoot":"","sources":["../../../src/core/inference/llamaLoaderWorker.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* llamaLoaderWorker — Local inference stub.
|
|
3
|
+
*
|
|
4
|
+
* node-llama-cpp has been removed from this project (user intent: pare to working core).
|
|
5
|
+
* Local LLM inference is NOT available. Configure LLM_PROVIDER=remote in user_settings.json
|
|
6
|
+
* to use a remote OpenAI-compatible endpoint instead.
|
|
7
|
+
*/
|
|
8
|
+
import { parentPort } from 'worker_threads';
|
|
9
|
+
async function init() {
|
|
10
|
+
console.warn('[llamaLoaderWorker] Local inference is disabled. node-llama-cpp has been removed.');
|
|
11
|
+
parentPort?.postMessage({ type: 'ready' });
|
|
12
|
+
}
|
|
13
|
+
parentPort?.on('message', (message) => {
|
|
14
|
+
const err = 'Local inference not available. node-llama-cpp removed. Use LLM_PROVIDER=remote.';
|
|
15
|
+
if (message.type === 'dispose') {
|
|
16
|
+
parentPort?.postMessage({ type: 'disposed' });
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
parentPort?.postMessage({ type: 'error', error: err });
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
init();
|
|
23
|
+
//# sourceMappingURL=llamaLoaderWorker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llamaLoaderWorker.js","sourceRoot":"","sources":["../../../src/core/inference/llamaLoaderWorker.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,KAAK,UAAU,IAAI;IACf,OAAO,CAAC,IAAI,CAAC,mFAAmF,CAAC,CAAC;IAClG,UAAU,EAAE,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,UAAU,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;IAClC,MAAM,GAAG,GAAG,iFAAiF,CAAC;IAC9F,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,UAAU,EAAE,WAAW,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IAClD,CAAC;SAAM,CAAC;QACJ,UAAU,EAAE,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3D,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,EAAE,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export declare class VectorService {
|
|
2
|
+
private index;
|
|
3
|
+
private dimensions;
|
|
4
|
+
private indexName;
|
|
5
|
+
private _isInitialized;
|
|
6
|
+
constructor();
|
|
7
|
+
get isInitialized(): boolean;
|
|
8
|
+
/**
|
|
9
|
+
* Initialize the vector index.
|
|
10
|
+
* Tries to mmap existing index, or creates a new one.
|
|
11
|
+
*/
|
|
12
|
+
init(): Promise<void>;
|
|
13
|
+
/**
|
|
14
|
+
* Add a vector to the index.
|
|
15
|
+
* @param id Unique Integer ID (mapped from UUID via DB)
|
|
16
|
+
* @param vector Float32Array
|
|
17
|
+
*/
|
|
18
|
+
add(id: number, vector: number[] | Float32Array): void;
|
|
19
|
+
/**
|
|
20
|
+
* Search for nearest neighbors.
|
|
21
|
+
*/
|
|
22
|
+
search(vector: number[] | Float32Array, limit?: number): {
|
|
23
|
+
ids: number[];
|
|
24
|
+
distances: number[];
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Save the index to disk.
|
|
28
|
+
*/
|
|
29
|
+
save(): void;
|
|
30
|
+
/**
|
|
31
|
+
* Get the absolute path to the index file.
|
|
32
|
+
*/
|
|
33
|
+
private getIndexPath;
|
|
34
|
+
/**
|
|
35
|
+
* Close the index and release resources.
|
|
36
|
+
*/
|
|
37
|
+
close(): void;
|
|
38
|
+
}
|
|
39
|
+
export declare const vector: VectorService;
|
|
40
|
+
//# sourceMappingURL=vector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vector.d.ts","sourceRoot":"","sources":["../../src/core/vector.ts"],"names":[],"mappings":"AA0CA,qBAAa,aAAa;IAEtB,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,cAAc,CAAkB;;IAMxC,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED;;;OAGG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA6DlC;;;;OAIG;IACI,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,GAAG,IAAI;IAK7D;;OAEG;IACI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,KAAK,GAAE,MAAW,GAAG;QAAE,GAAG,EAAE,MAAM,EAAE,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE;IAK1G;;OAEG;IACI,IAAI,IAAI,IAAI;IAWnB;;OAEG;IACH,OAAO,CAAC,YAAY;IAcpB;;OAEG;IACI,KAAK,IAAI,IAAI;CAQvB;AAED,eAAO,MAAM,MAAM,eAAsB,CAAC"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import fs from 'fs';
|
|
3
|
+
import { pathManager } from '../utils/path-manager.js';
|
|
4
|
+
/**
|
|
5
|
+
* MockSoulIndex — intentional no-op for the core STAR engine.
|
|
6
|
+
*
|
|
7
|
+
* The STAR algorithm achieves retrieval via sparse tag-intersection scoring
|
|
8
|
+
* (the Unified Field Equation) and does NOT require a dense vector index for
|
|
9
|
+
* its primary operation. Dense vector search is an optional augmentation.
|
|
10
|
+
*
|
|
11
|
+
* To add dense vector support:
|
|
12
|
+
* 1. Restore @rbalchii/native-vector (N-API) or swap in a WASM-based HNSW
|
|
13
|
+
* (e.g., hnswlib-node, usearch).
|
|
14
|
+
* 2. Implement ISoulIndex against that library.
|
|
15
|
+
* 3. Replace MockSoulIndex below with that implementation.
|
|
16
|
+
* 4. Ensure ingest pipeline writes embeddings to the `embedding` column in atoms.
|
|
17
|
+
*/
|
|
18
|
+
class MockSoulIndex {
|
|
19
|
+
dimensions;
|
|
20
|
+
constructor(dimensions) {
|
|
21
|
+
this.dimensions = dimensions;
|
|
22
|
+
console.warn('[Vector] Using Mock SoulIndex (Native module missing or failed). Vector search is disabled.');
|
|
23
|
+
}
|
|
24
|
+
add(id, vector) { }
|
|
25
|
+
search(vector, limit) {
|
|
26
|
+
return { ids: [], distances: [] };
|
|
27
|
+
}
|
|
28
|
+
save(path) { }
|
|
29
|
+
view(path) { }
|
|
30
|
+
size() { return 0; }
|
|
31
|
+
close() { }
|
|
32
|
+
}
|
|
33
|
+
export class VectorService {
|
|
34
|
+
// Use 'any' or intersection to allow both real and mock types since they share the shape
|
|
35
|
+
index = null;
|
|
36
|
+
dimensions = 768; // Default embedding size
|
|
37
|
+
indexName = 'memory.index';
|
|
38
|
+
_isInitialized = false;
|
|
39
|
+
constructor() {
|
|
40
|
+
// Lazy init
|
|
41
|
+
}
|
|
42
|
+
get isInitialized() {
|
|
43
|
+
return this._isInitialized;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Initialize the vector index.
|
|
47
|
+
* Tries to mmap existing index, or creates a new one.
|
|
48
|
+
*/
|
|
49
|
+
async init() {
|
|
50
|
+
if (this._isInitialized)
|
|
51
|
+
return;
|
|
52
|
+
try {
|
|
53
|
+
console.log('[Vector] Initializing Native Vector Engine...');
|
|
54
|
+
// Dynamic import to prevent crash if binding is missing
|
|
55
|
+
// Dynamic import to prevent crash if binding is missing
|
|
56
|
+
/*
|
|
57
|
+
let SoulIndexClass: any;
|
|
58
|
+
try {
|
|
59
|
+
const module = await import('@rbalchii/native-vector');
|
|
60
|
+
SoulIndexClass = module.SoulIndex;
|
|
61
|
+
console.log('[Vector] Native module loaded successfully.');
|
|
62
|
+
} catch (e) {
|
|
63
|
+
console.warn('[Vector] Native module load failed. Falling back to Mock.', e);
|
|
64
|
+
SoulIndexClass = MockSoulIndex;
|
|
65
|
+
}
|
|
66
|
+
*/
|
|
67
|
+
console.warn('[Vector] Native Vector disabled (removed). Using Mock.');
|
|
68
|
+
const SoulIndexClass = MockSoulIndex;
|
|
69
|
+
this.index = new SoulIndexClass(this.dimensions);
|
|
70
|
+
// If we are using the mock, we don't need to do file operations
|
|
71
|
+
if (this.index instanceof MockSoulIndex) {
|
|
72
|
+
this._isInitialized = true;
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const indexPath = this.getIndexPath();
|
|
76
|
+
if (fs.existsSync(indexPath)) {
|
|
77
|
+
console.log(`[Vector] Loading existing index from ${indexPath}`);
|
|
78
|
+
// Use view for instant mmap loading
|
|
79
|
+
try {
|
|
80
|
+
this.index.view(indexPath);
|
|
81
|
+
console.log(`[Vector] Loaded index with ${this.index.size()} vectors.`);
|
|
82
|
+
}
|
|
83
|
+
catch (e) {
|
|
84
|
+
console.warn(`[Vector] Failed to view index, it might be corrupt or empty. Creating new.`, e);
|
|
85
|
+
// If view fails, we might want to delete it and start fresh or just proceed with empty in-memory
|
|
86
|
+
// For now, proceeding with validation
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
console.log(`[Vector] No existing index found at ${indexPath}. Starting fresh.`);
|
|
91
|
+
// Ensure directory exists
|
|
92
|
+
const dir = path.dirname(indexPath);
|
|
93
|
+
if (!fs.existsSync(dir)) {
|
|
94
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
this._isInitialized = true;
|
|
98
|
+
}
|
|
99
|
+
catch (e) {
|
|
100
|
+
console.error('[Vector] Failed to initialize Vector Engine:', e);
|
|
101
|
+
// Fallback to mock even if init logic fails elsewhere
|
|
102
|
+
this.index = new MockSoulIndex(this.dimensions);
|
|
103
|
+
this._isInitialized = true;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Add a vector to the index.
|
|
108
|
+
* @param id Unique Integer ID (mapped from UUID via DB)
|
|
109
|
+
* @param vector Float32Array
|
|
110
|
+
*/
|
|
111
|
+
add(id, vector) {
|
|
112
|
+
if (!this.index)
|
|
113
|
+
throw new Error('Vector Engine not initialized');
|
|
114
|
+
this.index.add(id, vector);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Search for nearest neighbors.
|
|
118
|
+
*/
|
|
119
|
+
search(vector, limit = 10) {
|
|
120
|
+
if (!this.index)
|
|
121
|
+
throw new Error('Vector Engine not initialized');
|
|
122
|
+
return this.index.search(vector, limit);
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Save the index to disk.
|
|
126
|
+
*/
|
|
127
|
+
save() {
|
|
128
|
+
if (!this.index)
|
|
129
|
+
return;
|
|
130
|
+
// Don't save mock
|
|
131
|
+
if (this.index instanceof MockSoulIndex)
|
|
132
|
+
return;
|
|
133
|
+
const indexPath = this.getIndexPath();
|
|
134
|
+
console.log(`[Vector] Saving index to ${indexPath}...`);
|
|
135
|
+
this.index.save(indexPath);
|
|
136
|
+
console.log('[Vector] Saved.');
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Get the absolute path to the index file.
|
|
140
|
+
*/
|
|
141
|
+
getIndexPath() {
|
|
142
|
+
// Use pathManager similar to DB
|
|
143
|
+
const dbPath = process.env.PGLITE_DB_PATH || pathManager.getDatabasePath();
|
|
144
|
+
// Store vector index alongside the database folder, or inside it?
|
|
145
|
+
// Let's store it alongside for now: <project_root>/data/memory.index
|
|
146
|
+
// But PGlite path is a directory.
|
|
147
|
+
// Let's put it IN the data directory root.
|
|
148
|
+
const dataDir = path.dirname(dbPath);
|
|
149
|
+
// Actually, pathManager.getDatabasePath() usually returns .../anchor-db
|
|
150
|
+
// Let's use pathManager.getDataDirectory() if it exists, or derive from DB path.
|
|
151
|
+
// Assuming dbPath is .../anchor-db
|
|
152
|
+
return path.join(path.dirname(dbPath), this.indexName);
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Close the index and release resources.
|
|
156
|
+
*/
|
|
157
|
+
close() {
|
|
158
|
+
if (this.index) {
|
|
159
|
+
this.save(); // Auto-save on close?
|
|
160
|
+
this.index.close();
|
|
161
|
+
this.index = null;
|
|
162
|
+
this._isInitialized = false;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
export const vector = new VectorService();
|
|
167
|
+
//# sourceMappingURL=vector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vector.js","sourceRoot":"","sources":["../../src/core/vector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAC;AAkB9B,QAAA,MAAM,GAAG,EAAE,OAAO,CAAC,WAAuB,CAAC;AAob3C,OAAO,EAAE,GAAG,EAAE,CAAC"}
|