@ninebix/nmt-system 1.0.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 +70 -0
- package/README.md +465 -0
- package/dist/api/cli-server.d.ts +83 -0
- package/dist/api/cli-server.d.ts.map +1 -0
- package/dist/api/cli-server.js +597 -0
- package/dist/api/cli-server.js.map +1 -0
- package/dist/api/index.d.ts +6 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +6 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/middleware/index.d.ts +12 -0
- package/dist/api/middleware/index.d.ts.map +1 -0
- package/dist/api/middleware/index.js +13 -0
- package/dist/api/middleware/index.js.map +1 -0
- package/dist/api/middleware/logger.d.ts +21 -0
- package/dist/api/middleware/logger.d.ts.map +1 -0
- package/dist/api/middleware/logger.js +134 -0
- package/dist/api/middleware/logger.js.map +1 -0
- package/dist/api/middleware/rate-limit.d.ts +26 -0
- package/dist/api/middleware/rate-limit.d.ts.map +1 -0
- package/dist/api/middleware/rate-limit.js +107 -0
- package/dist/api/middleware/rate-limit.js.map +1 -0
- package/dist/api/middleware/response.d.ts +61 -0
- package/dist/api/middleware/response.d.ts.map +1 -0
- package/dist/api/middleware/response.js +86 -0
- package/dist/api/middleware/response.js.map +1 -0
- package/dist/api/middleware/validation.d.ts +43 -0
- package/dist/api/middleware/validation.d.ts.map +1 -0
- package/dist/api/middleware/validation.js +257 -0
- package/dist/api/middleware/validation.js.map +1 -0
- package/dist/api/server.d.ts +79 -0
- package/dist/api/server.d.ts.map +1 -0
- package/dist/api/server.js +2011 -0
- package/dist/api/server.js.map +1 -0
- package/dist/bin/nmt.d.ts +9 -0
- package/dist/bin/nmt.d.ts.map +1 -0
- package/dist/bin/nmt.js +1142 -0
- package/dist/bin/nmt.js.map +1 -0
- package/dist/cli/commands/attractor.d.ts +6 -0
- package/dist/cli/commands/attractor.d.ts.map +1 -0
- package/dist/cli/commands/attractor.js +167 -0
- package/dist/cli/commands/attractor.js.map +1 -0
- package/dist/cli/commands/dimension.d.ts +6 -0
- package/dist/cli/commands/dimension.d.ts.map +1 -0
- package/dist/cli/commands/dimension.js +85 -0
- package/dist/cli/commands/dimension.js.map +1 -0
- package/dist/cli/commands/index.d.ts +11 -0
- package/dist/cli/commands/index.d.ts.map +1 -0
- package/dist/cli/commands/index.js +11 -0
- package/dist/cli/commands/index.js.map +1 -0
- package/dist/cli/commands/infer.d.ts +6 -0
- package/dist/cli/commands/infer.d.ts.map +1 -0
- package/dist/cli/commands/infer.js +139 -0
- package/dist/cli/commands/infer.js.map +1 -0
- package/dist/cli/commands/learn.d.ts +6 -0
- package/dist/cli/commands/learn.d.ts.map +1 -0
- package/dist/cli/commands/learn.js +87 -0
- package/dist/cli/commands/learn.js.map +1 -0
- package/dist/cli/commands/orchestrate.d.ts +6 -0
- package/dist/cli/commands/orchestrate.d.ts.map +1 -0
- package/dist/cli/commands/orchestrate.js +279 -0
- package/dist/cli/commands/orchestrate.js.map +1 -0
- package/dist/cli/commands/prob.d.ts +6 -0
- package/dist/cli/commands/prob.d.ts.map +1 -0
- package/dist/cli/commands/prob.js +256 -0
- package/dist/cli/commands/prob.js.map +1 -0
- package/dist/cli/commands/quantum.d.ts +6 -0
- package/dist/cli/commands/quantum.d.ts.map +1 -0
- package/dist/cli/commands/quantum.js +150 -0
- package/dist/cli/commands/quantum.js.map +1 -0
- package/dist/cli/commands/sync.d.ts +65 -0
- package/dist/cli/commands/sync.d.ts.map +1 -0
- package/dist/cli/commands/sync.js +338 -0
- package/dist/cli/commands/sync.js.map +1 -0
- package/dist/cli/index.d.ts +9 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +9 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/probabilistic-commands.d.ts +39 -0
- package/dist/cli/probabilistic-commands.d.ts.map +1 -0
- package/dist/cli/probabilistic-commands.js +112 -0
- package/dist/cli/probabilistic-commands.js.map +1 -0
- package/dist/cli/types.d.ts +69 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +5 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/cli/utils/formatters.d.ts +51 -0
- package/dist/cli/utils/formatters.d.ts.map +1 -0
- package/dist/cli/utils/formatters.js +79 -0
- package/dist/cli/utils/formatters.js.map +1 -0
- package/dist/cli/utils/helpers.d.ts +21 -0
- package/dist/cli/utils/helpers.d.ts.map +1 -0
- package/dist/cli/utils/helpers.js +51 -0
- package/dist/cli/utils/helpers.js.map +1 -0
- package/dist/cli/utils/index.d.ts +7 -0
- package/dist/cli/utils/index.d.ts.map +1 -0
- package/dist/cli/utils/index.js +13 -0
- package/dist/cli/utils/index.js.map +1 -0
- package/dist/cli/utils/validators.d.ts +162 -0
- package/dist/cli/utils/validators.d.ts.map +1 -0
- package/dist/cli/utils/validators.js +351 -0
- package/dist/cli/utils/validators.js.map +1 -0
- package/dist/core/advanced-embedding.d.ts +154 -0
- package/dist/core/advanced-embedding.d.ts.map +1 -0
- package/dist/core/advanced-embedding.js +367 -0
- package/dist/core/advanced-embedding.js.map +1 -0
- package/dist/core/attractor-model.d.ts +381 -0
- package/dist/core/attractor-model.d.ts.map +1 -0
- package/dist/core/attractor-model.js +821 -0
- package/dist/core/attractor-model.js.map +1 -0
- package/dist/core/bidirectional-inference.d.ts +143 -0
- package/dist/core/bidirectional-inference.d.ts.map +1 -0
- package/dist/core/bidirectional-inference.js +501 -0
- package/dist/core/bidirectional-inference.js.map +1 -0
- package/dist/core/chunk-engine.d.ts +78 -0
- package/dist/core/chunk-engine.d.ts.map +1 -0
- package/dist/core/chunk-engine.js +192 -0
- package/dist/core/chunk-engine.js.map +1 -0
- package/dist/core/dynamic-embedding.d.ts +327 -0
- package/dist/core/dynamic-embedding.d.ts.map +1 -0
- package/dist/core/dynamic-embedding.js +527 -0
- package/dist/core/dynamic-embedding.js.map +1 -0
- package/dist/core/embedding-similarity.d.ts +68 -0
- package/dist/core/embedding-similarity.d.ts.map +1 -0
- package/dist/core/embedding-similarity.js +291 -0
- package/dist/core/embedding-similarity.js.map +1 -0
- package/dist/core/evolution-scheduler.d.ts +101 -0
- package/dist/core/evolution-scheduler.d.ts.map +1 -0
- package/dist/core/evolution-scheduler.js +235 -0
- package/dist/core/evolution-scheduler.js.map +1 -0
- package/dist/core/hierarchical-chunker.d.ts +108 -0
- package/dist/core/hierarchical-chunker.d.ts.map +1 -0
- package/dist/core/hierarchical-chunker.js +296 -0
- package/dist/core/hierarchical-chunker.js.map +1 -0
- package/dist/core/hnsw-index.d.ts +111 -0
- package/dist/core/hnsw-index.d.ts.map +1 -0
- package/dist/core/hnsw-index.js +466 -0
- package/dist/core/hnsw-index.js.map +1 -0
- package/dist/core/index.d.ts +23 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +25 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/language-analyzers.d.ts +124 -0
- package/dist/core/language-analyzers.d.ts.map +1 -0
- package/dist/core/language-analyzers.js +365 -0
- package/dist/core/language-analyzers.js.map +1 -0
- package/dist/core/local-embedding.d.ts +109 -0
- package/dist/core/local-embedding.d.ts.map +1 -0
- package/dist/core/local-embedding.js +222 -0
- package/dist/core/local-embedding.js.map +1 -0
- package/dist/core/merkle-engine.d.ts +263 -0
- package/dist/core/merkle-engine.d.ts.map +1 -0
- package/dist/core/merkle-engine.js +528 -0
- package/dist/core/merkle-engine.js.map +1 -0
- package/dist/core/multi-layer-reasoning.d.ts +178 -0
- package/dist/core/multi-layer-reasoning.d.ts.map +1 -0
- package/dist/core/multi-layer-reasoning.js +607 -0
- package/dist/core/multi-layer-reasoning.js.map +1 -0
- package/dist/core/neuron-graph.d.ts +134 -0
- package/dist/core/neuron-graph.d.ts.map +1 -0
- package/dist/core/neuron-graph.js +436 -0
- package/dist/core/neuron-graph.js.map +1 -0
- package/dist/core/probabilistic-neuron.d.ts +251 -0
- package/dist/core/probabilistic-neuron.d.ts.map +1 -0
- package/dist/core/probabilistic-neuron.js +618 -0
- package/dist/core/probabilistic-neuron.js.map +1 -0
- package/dist/core/probabilistic-orchestrator.d.ts +408 -0
- package/dist/core/probabilistic-orchestrator.d.ts.map +1 -0
- package/dist/core/probabilistic-orchestrator.js +798 -0
- package/dist/core/probabilistic-orchestrator.js.map +1 -0
- package/dist/core/semantic-chunker.d.ts +117 -0
- package/dist/core/semantic-chunker.d.ts.map +1 -0
- package/dist/core/semantic-chunker.js +464 -0
- package/dist/core/semantic-chunker.js.map +1 -0
- package/dist/events/event-bus.d.ts +166 -0
- package/dist/events/event-bus.d.ts.map +1 -0
- package/dist/events/event-bus.js +228 -0
- package/dist/events/event-bus.js.map +1 -0
- package/dist/events/index.d.ts +7 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +7 -0
- package/dist/events/index.js.map +1 -0
- package/dist/events/progress-tracker.d.ts +150 -0
- package/dist/events/progress-tracker.d.ts.map +1 -0
- package/dist/events/progress-tracker.js +290 -0
- package/dist/events/progress-tracker.js.map +1 -0
- package/dist/extensions/clustering/community-detection.d.ts +90 -0
- package/dist/extensions/clustering/community-detection.d.ts.map +1 -0
- package/dist/extensions/clustering/community-detection.js +470 -0
- package/dist/extensions/clustering/community-detection.js.map +1 -0
- package/dist/extensions/clustering/index.d.ts +114 -0
- package/dist/extensions/clustering/index.d.ts.map +1 -0
- package/dist/extensions/clustering/index.js +468 -0
- package/dist/extensions/clustering/index.js.map +1 -0
- package/dist/extensions/clustering/topic-modeling.d.ts +86 -0
- package/dist/extensions/clustering/topic-modeling.d.ts.map +1 -0
- package/dist/extensions/clustering/topic-modeling.js +355 -0
- package/dist/extensions/clustering/topic-modeling.js.map +1 -0
- package/dist/extensions/distributed/coordinator.d.ts +114 -0
- package/dist/extensions/distributed/coordinator.d.ts.map +1 -0
- package/dist/extensions/distributed/coordinator.js +319 -0
- package/dist/extensions/distributed/coordinator.js.map +1 -0
- package/dist/extensions/distributed/index.d.ts +10 -0
- package/dist/extensions/distributed/index.d.ts.map +1 -0
- package/dist/extensions/distributed/index.js +10 -0
- package/dist/extensions/distributed/index.js.map +1 -0
- package/dist/extensions/distributed/queue.d.ts +157 -0
- package/dist/extensions/distributed/queue.d.ts.map +1 -0
- package/dist/extensions/distributed/queue.js +326 -0
- package/dist/extensions/distributed/queue.js.map +1 -0
- package/dist/extensions/distributed/scheduler.d.ts +107 -0
- package/dist/extensions/distributed/scheduler.d.ts.map +1 -0
- package/dist/extensions/distributed/scheduler.js +301 -0
- package/dist/extensions/distributed/scheduler.js.map +1 -0
- package/dist/extensions/distributed/worker.d.ts +112 -0
- package/dist/extensions/distributed/worker.d.ts.map +1 -0
- package/dist/extensions/distributed/worker.js +260 -0
- package/dist/extensions/distributed/worker.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/server.d.ts +43 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +494 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/services/adaptive-fallback.d.ts +140 -0
- package/dist/services/adaptive-fallback.d.ts.map +1 -0
- package/dist/services/adaptive-fallback.js +273 -0
- package/dist/services/adaptive-fallback.js.map +1 -0
- package/dist/services/answer-gate.d.ts +112 -0
- package/dist/services/answer-gate.d.ts.map +1 -0
- package/dist/services/answer-gate.js +299 -0
- package/dist/services/answer-gate.js.map +1 -0
- package/dist/services/auto-learning.d.ts +135 -0
- package/dist/services/auto-learning.d.ts.map +1 -0
- package/dist/services/auto-learning.js +413 -0
- package/dist/services/auto-learning.js.map +1 -0
- package/dist/services/context-compressor.d.ts +77 -0
- package/dist/services/context-compressor.d.ts.map +1 -0
- package/dist/services/context-compressor.js +234 -0
- package/dist/services/context-compressor.js.map +1 -0
- package/dist/services/efficient-rag.d.ts +140 -0
- package/dist/services/efficient-rag.d.ts.map +1 -0
- package/dist/services/efficient-rag.js +311 -0
- package/dist/services/efficient-rag.js.map +1 -0
- package/dist/services/embedding-provider.d.ts +72 -0
- package/dist/services/embedding-provider.d.ts.map +1 -0
- package/dist/services/embedding-provider.js +176 -0
- package/dist/services/embedding-provider.js.map +1 -0
- package/dist/services/file-ingestion.d.ts +72 -0
- package/dist/services/file-ingestion.d.ts.map +1 -0
- package/dist/services/file-ingestion.js +237 -0
- package/dist/services/file-ingestion.js.map +1 -0
- package/dist/services/four-stage-learning.d.ts +552 -0
- package/dist/services/four-stage-learning.d.ts.map +1 -0
- package/dist/services/four-stage-learning.js +1110 -0
- package/dist/services/four-stage-learning.js.map +1 -0
- package/dist/services/graph.d.ts +94 -0
- package/dist/services/graph.d.ts.map +1 -0
- package/dist/services/graph.js +292 -0
- package/dist/services/graph.js.map +1 -0
- package/dist/services/index.d.ts +15 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +18 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/ingestion.d.ts +98 -0
- package/dist/services/ingestion.d.ts.map +1 -0
- package/dist/services/ingestion.js +259 -0
- package/dist/services/ingestion.js.map +1 -0
- package/dist/services/learning.d.ts +67 -0
- package/dist/services/learning.d.ts.map +1 -0
- package/dist/services/learning.js +262 -0
- package/dist/services/learning.js.map +1 -0
- package/dist/services/llm-router.d.ts +143 -0
- package/dist/services/llm-router.d.ts.map +1 -0
- package/dist/services/llm-router.js +284 -0
- package/dist/services/llm-router.js.map +1 -0
- package/dist/services/llm.d.ts +86 -0
- package/dist/services/llm.d.ts.map +1 -0
- package/dist/services/llm.js +283 -0
- package/dist/services/llm.js.map +1 -0
- package/dist/services/metrics-dashboard.d.ts +262 -0
- package/dist/services/metrics-dashboard.d.ts.map +1 -0
- package/dist/services/metrics-dashboard.js +417 -0
- package/dist/services/metrics-dashboard.js.map +1 -0
- package/dist/services/neuron-lifecycle.d.ts +137 -0
- package/dist/services/neuron-lifecycle.d.ts.map +1 -0
- package/dist/services/neuron-lifecycle.js +422 -0
- package/dist/services/neuron-lifecycle.js.map +1 -0
- package/dist/services/nmt-pipeline.d.ts +219 -0
- package/dist/services/nmt-pipeline.d.ts.map +1 -0
- package/dist/services/nmt-pipeline.js +449 -0
- package/dist/services/nmt-pipeline.js.map +1 -0
- package/dist/services/query-cache.d.ts +136 -0
- package/dist/services/query-cache.d.ts.map +1 -0
- package/dist/services/query-cache.js +255 -0
- package/dist/services/query-cache.js.map +1 -0
- package/dist/services/query-normalize.d.ts +107 -0
- package/dist/services/query-normalize.d.ts.map +1 -0
- package/dist/services/query-normalize.js +366 -0
- package/dist/services/query-normalize.js.map +1 -0
- package/dist/services/query.d.ts +102 -0
- package/dist/services/query.d.ts.map +1 -0
- package/dist/services/query.js +227 -0
- package/dist/services/query.js.map +1 -0
- package/dist/services/text-embedding.d.ts +183 -0
- package/dist/services/text-embedding.d.ts.map +1 -0
- package/dist/services/text-embedding.js +633 -0
- package/dist/services/text-embedding.js.map +1 -0
- package/dist/services/verification-gate.d.ts +147 -0
- package/dist/services/verification-gate.d.ts.map +1 -0
- package/dist/services/verification-gate.js +344 -0
- package/dist/services/verification-gate.js.map +1 -0
- package/dist/services/verify.d.ts +114 -0
- package/dist/services/verify.d.ts.map +1 -0
- package/dist/services/verify.js +237 -0
- package/dist/services/verify.js.map +1 -0
- package/dist/services/web-search.d.ts +145 -0
- package/dist/services/web-search.d.ts.map +1 -0
- package/dist/services/web-search.js +534 -0
- package/dist/services/web-search.js.map +1 -0
- package/dist/src/api/cli-server.d.ts +83 -0
- package/dist/src/api/cli-server.d.ts.map +1 -0
- package/dist/src/api/cli-server.js +597 -0
- package/dist/src/api/cli-server.js.map +1 -0
- package/dist/src/api/index.d.ts +6 -0
- package/dist/src/api/index.d.ts.map +1 -0
- package/dist/src/api/index.js +6 -0
- package/dist/src/api/index.js.map +1 -0
- package/dist/src/cli/commands/attractor.d.ts +6 -0
- package/dist/src/cli/commands/attractor.d.ts.map +1 -0
- package/dist/src/cli/commands/attractor.js +167 -0
- package/dist/src/cli/commands/attractor.js.map +1 -0
- package/dist/src/cli/commands/dimension.d.ts +6 -0
- package/dist/src/cli/commands/dimension.d.ts.map +1 -0
- package/dist/src/cli/commands/dimension.js +85 -0
- package/dist/src/cli/commands/dimension.js.map +1 -0
- package/dist/src/cli/commands/index.d.ts +11 -0
- package/dist/src/cli/commands/index.d.ts.map +1 -0
- package/dist/src/cli/commands/index.js +11 -0
- package/dist/src/cli/commands/index.js.map +1 -0
- package/dist/src/cli/commands/infer.d.ts +6 -0
- package/dist/src/cli/commands/infer.d.ts.map +1 -0
- package/dist/src/cli/commands/infer.js +139 -0
- package/dist/src/cli/commands/infer.js.map +1 -0
- package/dist/src/cli/commands/learn.d.ts +6 -0
- package/dist/src/cli/commands/learn.d.ts.map +1 -0
- package/dist/src/cli/commands/learn.js +87 -0
- package/dist/src/cli/commands/learn.js.map +1 -0
- package/dist/src/cli/commands/orchestrate.d.ts +6 -0
- package/dist/src/cli/commands/orchestrate.d.ts.map +1 -0
- package/dist/src/cli/commands/orchestrate.js +279 -0
- package/dist/src/cli/commands/orchestrate.js.map +1 -0
- package/dist/src/cli/commands/prob.d.ts +6 -0
- package/dist/src/cli/commands/prob.d.ts.map +1 -0
- package/dist/src/cli/commands/prob.js +256 -0
- package/dist/src/cli/commands/prob.js.map +1 -0
- package/dist/src/cli/commands/sync.d.ts +65 -0
- package/dist/src/cli/commands/sync.d.ts.map +1 -0
- package/dist/src/cli/commands/sync.js +338 -0
- package/dist/src/cli/commands/sync.js.map +1 -0
- package/dist/src/cli/index.d.ts +9 -0
- package/dist/src/cli/index.d.ts.map +1 -0
- package/dist/src/cli/index.js +9 -0
- package/dist/src/cli/index.js.map +1 -0
- package/dist/src/cli/probabilistic-commands.d.ts +39 -0
- package/dist/src/cli/probabilistic-commands.d.ts.map +1 -0
- package/dist/src/cli/probabilistic-commands.js +112 -0
- package/dist/src/cli/probabilistic-commands.js.map +1 -0
- package/dist/src/cli/types.d.ts +69 -0
- package/dist/src/cli/types.d.ts.map +1 -0
- package/dist/src/cli/types.js +5 -0
- package/dist/src/cli/types.js.map +1 -0
- package/dist/src/cli/utils/formatters.d.ts +51 -0
- package/dist/src/cli/utils/formatters.d.ts.map +1 -0
- package/dist/src/cli/utils/formatters.js +79 -0
- package/dist/src/cli/utils/formatters.js.map +1 -0
- package/dist/src/cli/utils/helpers.d.ts +21 -0
- package/dist/src/cli/utils/helpers.d.ts.map +1 -0
- package/dist/src/cli/utils/helpers.js +51 -0
- package/dist/src/cli/utils/helpers.js.map +1 -0
- package/dist/src/cli/utils/index.d.ts +7 -0
- package/dist/src/cli/utils/index.d.ts.map +1 -0
- package/dist/src/cli/utils/index.js +13 -0
- package/dist/src/cli/utils/index.js.map +1 -0
- package/dist/src/cli/utils/validators.d.ts +162 -0
- package/dist/src/cli/utils/validators.d.ts.map +1 -0
- package/dist/src/cli/utils/validators.js +351 -0
- package/dist/src/cli/utils/validators.js.map +1 -0
- package/dist/src/core/attractor-model.d.ts +381 -0
- package/dist/src/core/attractor-model.d.ts.map +1 -0
- package/dist/src/core/attractor-model.js +821 -0
- package/dist/src/core/attractor-model.js.map +1 -0
- package/dist/src/core/bidirectional-inference.d.ts +143 -0
- package/dist/src/core/bidirectional-inference.d.ts.map +1 -0
- package/dist/src/core/bidirectional-inference.js +501 -0
- package/dist/src/core/bidirectional-inference.js.map +1 -0
- package/dist/src/core/chunk-engine.d.ts +78 -0
- package/dist/src/core/chunk-engine.d.ts.map +1 -0
- package/dist/src/core/chunk-engine.js +192 -0
- package/dist/src/core/chunk-engine.js.map +1 -0
- package/dist/src/core/dynamic-embedding.d.ts +327 -0
- package/dist/src/core/dynamic-embedding.d.ts.map +1 -0
- package/dist/src/core/dynamic-embedding.js +527 -0
- package/dist/src/core/dynamic-embedding.js.map +1 -0
- package/dist/src/core/evolution-scheduler.d.ts +101 -0
- package/dist/src/core/evolution-scheduler.d.ts.map +1 -0
- package/dist/src/core/evolution-scheduler.js +235 -0
- package/dist/src/core/evolution-scheduler.js.map +1 -0
- package/dist/src/core/hnsw-index.d.ts +111 -0
- package/dist/src/core/hnsw-index.d.ts.map +1 -0
- package/dist/src/core/hnsw-index.js +466 -0
- package/dist/src/core/hnsw-index.js.map +1 -0
- package/dist/src/core/index.d.ts +23 -0
- package/dist/src/core/index.d.ts.map +1 -0
- package/dist/src/core/index.js +25 -0
- package/dist/src/core/index.js.map +1 -0
- package/dist/src/core/merkle-engine.d.ts +263 -0
- package/dist/src/core/merkle-engine.d.ts.map +1 -0
- package/dist/src/core/merkle-engine.js +528 -0
- package/dist/src/core/merkle-engine.js.map +1 -0
- package/dist/src/core/neuron-graph.d.ts +134 -0
- package/dist/src/core/neuron-graph.d.ts.map +1 -0
- package/dist/src/core/neuron-graph.js +436 -0
- package/dist/src/core/neuron-graph.js.map +1 -0
- package/dist/src/core/probabilistic-neuron.d.ts +251 -0
- package/dist/src/core/probabilistic-neuron.d.ts.map +1 -0
- package/dist/src/core/probabilistic-neuron.js +618 -0
- package/dist/src/core/probabilistic-neuron.js.map +1 -0
- package/dist/src/core/probabilistic-orchestrator.d.ts +408 -0
- package/dist/src/core/probabilistic-orchestrator.d.ts.map +1 -0
- package/dist/src/core/probabilistic-orchestrator.js +798 -0
- package/dist/src/core/probabilistic-orchestrator.js.map +1 -0
- package/dist/src/events/event-bus.d.ts +166 -0
- package/dist/src/events/event-bus.d.ts.map +1 -0
- package/dist/src/events/event-bus.js +228 -0
- package/dist/src/events/event-bus.js.map +1 -0
- package/dist/src/events/index.d.ts +7 -0
- package/dist/src/events/index.d.ts.map +1 -0
- package/dist/src/events/index.js +7 -0
- package/dist/src/events/index.js.map +1 -0
- package/dist/src/events/progress-tracker.d.ts +150 -0
- package/dist/src/events/progress-tracker.d.ts.map +1 -0
- package/dist/src/events/progress-tracker.js +290 -0
- package/dist/src/events/progress-tracker.js.map +1 -0
- package/dist/src/extensions/clustering/index.d.ts +114 -0
- package/dist/src/extensions/clustering/index.d.ts.map +1 -0
- package/dist/src/extensions/clustering/index.js +468 -0
- package/dist/src/extensions/clustering/index.js.map +1 -0
- package/dist/src/index.d.ts +14 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +20 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/mcp/server.d.ts +43 -0
- package/dist/src/mcp/server.d.ts.map +1 -0
- package/dist/src/mcp/server.js +494 -0
- package/dist/src/mcp/server.js.map +1 -0
- package/dist/src/services/embedding-provider.d.ts +72 -0
- package/dist/src/services/embedding-provider.d.ts.map +1 -0
- package/dist/src/services/embedding-provider.js +176 -0
- package/dist/src/services/embedding-provider.js.map +1 -0
- package/dist/src/services/four-stage-learning.d.ts +552 -0
- package/dist/src/services/four-stage-learning.d.ts.map +1 -0
- package/dist/src/services/four-stage-learning.js +1110 -0
- package/dist/src/services/four-stage-learning.js.map +1 -0
- package/dist/src/services/index.d.ts +15 -0
- package/dist/src/services/index.d.ts.map +1 -0
- package/dist/src/services/index.js +18 -0
- package/dist/src/services/index.js.map +1 -0
- package/dist/src/services/ingestion.d.ts +98 -0
- package/dist/src/services/ingestion.d.ts.map +1 -0
- package/dist/src/services/ingestion.js +259 -0
- package/dist/src/services/ingestion.js.map +1 -0
- package/dist/src/services/query.d.ts +102 -0
- package/dist/src/services/query.d.ts.map +1 -0
- package/dist/src/services/query.js +227 -0
- package/dist/src/services/query.js.map +1 -0
- package/dist/src/services/text-embedding.d.ts +183 -0
- package/dist/src/services/text-embedding.d.ts.map +1 -0
- package/dist/src/services/text-embedding.js +633 -0
- package/dist/src/services/text-embedding.js.map +1 -0
- package/dist/src/services/verify.d.ts +114 -0
- package/dist/src/services/verify.d.ts.map +1 -0
- package/dist/src/services/verify.js +237 -0
- package/dist/src/services/verify.js.map +1 -0
- package/dist/src/storage/chunk-store.d.ts +107 -0
- package/dist/src/storage/chunk-store.d.ts.map +1 -0
- package/dist/src/storage/chunk-store.js +293 -0
- package/dist/src/storage/chunk-store.js.map +1 -0
- package/dist/src/storage/index-store.d.ts +126 -0
- package/dist/src/storage/index-store.d.ts.map +1 -0
- package/dist/src/storage/index-store.js +316 -0
- package/dist/src/storage/index-store.js.map +1 -0
- package/dist/src/storage/index.d.ts +45 -0
- package/dist/src/storage/index.d.ts.map +1 -0
- package/dist/src/storage/index.js +52 -0
- package/dist/src/storage/index.js.map +1 -0
- package/dist/src/storage/neuron-store.d.ts +121 -0
- package/dist/src/storage/neuron-store.d.ts.map +1 -0
- package/dist/src/storage/neuron-store.js +466 -0
- package/dist/src/storage/neuron-store.js.map +1 -0
- package/dist/src/storage/probabilistic-store.d.ts +104 -0
- package/dist/src/storage/probabilistic-store.d.ts.map +1 -0
- package/dist/src/storage/probabilistic-store.js +257 -0
- package/dist/src/storage/probabilistic-store.js.map +1 -0
- package/dist/src/sync/change-journal.d.ts +171 -0
- package/dist/src/sync/change-journal.d.ts.map +1 -0
- package/dist/src/sync/change-journal.js +362 -0
- package/dist/src/sync/change-journal.js.map +1 -0
- package/dist/src/sync/index.d.ts +8 -0
- package/dist/src/sync/index.d.ts.map +1 -0
- package/dist/src/sync/index.js +8 -0
- package/dist/src/sync/index.js.map +1 -0
- package/dist/src/sync/state-sync.d.ts +241 -0
- package/dist/src/sync/state-sync.d.ts.map +1 -0
- package/dist/src/sync/state-sync.js +396 -0
- package/dist/src/sync/state-sync.js.map +1 -0
- package/dist/src/sync/vector-clock.d.ts +144 -0
- package/dist/src/sync/vector-clock.d.ts.map +1 -0
- package/dist/src/sync/vector-clock.js +266 -0
- package/dist/src/sync/vector-clock.js.map +1 -0
- package/dist/src/types/index.d.ts +224 -0
- package/dist/src/types/index.d.ts.map +1 -0
- package/dist/src/types/index.js +24 -0
- package/dist/src/types/index.js.map +1 -0
- package/dist/src/utils/hash.d.ts +39 -0
- package/dist/src/utils/hash.d.ts.map +1 -0
- package/dist/src/utils/hash.js +56 -0
- package/dist/src/utils/hash.js.map +1 -0
- package/dist/src/utils/index.d.ts +26 -0
- package/dist/src/utils/index.d.ts.map +1 -0
- package/dist/src/utils/index.js +50 -0
- package/dist/src/utils/index.js.map +1 -0
- package/dist/src/utils/logger.d.ts +88 -0
- package/dist/src/utils/logger.d.ts.map +1 -0
- package/dist/src/utils/logger.js +157 -0
- package/dist/src/utils/logger.js.map +1 -0
- package/dist/src/utils/metrics.d.ts +232 -0
- package/dist/src/utils/metrics.d.ts.map +1 -0
- package/dist/src/utils/metrics.js +387 -0
- package/dist/src/utils/metrics.js.map +1 -0
- package/dist/src/utils/similarity.d.ts +64 -0
- package/dist/src/utils/similarity.d.ts.map +1 -0
- package/dist/src/utils/similarity.js +151 -0
- package/dist/src/utils/similarity.js.map +1 -0
- package/dist/src/utils/uuid.d.ts +23 -0
- package/dist/src/utils/uuid.d.ts.map +1 -0
- package/dist/src/utils/uuid.js +29 -0
- package/dist/src/utils/uuid.js.map +1 -0
- package/dist/storage/chunk-store.d.ts +107 -0
- package/dist/storage/chunk-store.d.ts.map +1 -0
- package/dist/storage/chunk-store.js +293 -0
- package/dist/storage/chunk-store.js.map +1 -0
- package/dist/storage/hybrid-adapters.d.ts +111 -0
- package/dist/storage/hybrid-adapters.d.ts.map +1 -0
- package/dist/storage/hybrid-adapters.js +223 -0
- package/dist/storage/hybrid-adapters.js.map +1 -0
- package/dist/storage/hybrid-store.d.ts +125 -0
- package/dist/storage/hybrid-store.d.ts.map +1 -0
- package/dist/storage/hybrid-store.js +655 -0
- package/dist/storage/hybrid-store.js.map +1 -0
- package/dist/storage/index-store.d.ts +126 -0
- package/dist/storage/index-store.d.ts.map +1 -0
- package/dist/storage/index-store.js +316 -0
- package/dist/storage/index-store.js.map +1 -0
- package/dist/storage/index.d.ts +45 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +52 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/neuron-store.d.ts +121 -0
- package/dist/storage/neuron-store.d.ts.map +1 -0
- package/dist/storage/neuron-store.js +466 -0
- package/dist/storage/neuron-store.js.map +1 -0
- package/dist/storage/ontology-store.d.ts +132 -0
- package/dist/storage/ontology-store.d.ts.map +1 -0
- package/dist/storage/ontology-store.js +319 -0
- package/dist/storage/ontology-store.js.map +1 -0
- package/dist/storage/probabilistic-store.d.ts +104 -0
- package/dist/storage/probabilistic-store.d.ts.map +1 -0
- package/dist/storage/probabilistic-store.js +257 -0
- package/dist/storage/probabilistic-store.js.map +1 -0
- package/dist/storage/redis-adapters.d.ts +102 -0
- package/dist/storage/redis-adapters.d.ts.map +1 -0
- package/dist/storage/redis-adapters.js +205 -0
- package/dist/storage/redis-adapters.js.map +1 -0
- package/dist/storage/redis-ontology-store.d.ts +146 -0
- package/dist/storage/redis-ontology-store.d.ts.map +1 -0
- package/dist/storage/redis-ontology-store.js +384 -0
- package/dist/storage/redis-ontology-store.js.map +1 -0
- package/dist/storage/redis-store.d.ts +174 -0
- package/dist/storage/redis-store.d.ts.map +1 -0
- package/dist/storage/redis-store.js +506 -0
- package/dist/storage/redis-store.js.map +1 -0
- package/dist/sync/change-journal.d.ts +171 -0
- package/dist/sync/change-journal.d.ts.map +1 -0
- package/dist/sync/change-journal.js +362 -0
- package/dist/sync/change-journal.js.map +1 -0
- package/dist/sync/index.d.ts +8 -0
- package/dist/sync/index.d.ts.map +1 -0
- package/dist/sync/index.js +8 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/sync/state-sync.d.ts +241 -0
- package/dist/sync/state-sync.d.ts.map +1 -0
- package/dist/sync/state-sync.js +396 -0
- package/dist/sync/state-sync.js.map +1 -0
- package/dist/sync/vector-clock.d.ts +144 -0
- package/dist/sync/vector-clock.d.ts.map +1 -0
- package/dist/sync/vector-clock.js +266 -0
- package/dist/sync/vector-clock.js.map +1 -0
- package/dist/types/index.d.ts +224 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +24 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/hash.d.ts +39 -0
- package/dist/utils/hash.d.ts.map +1 -0
- package/dist/utils/hash.js +56 -0
- package/dist/utils/hash.js.map +1 -0
- package/dist/utils/index.d.ts +26 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +50 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +88 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +157 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/metrics.d.ts +232 -0
- package/dist/utils/metrics.d.ts.map +1 -0
- package/dist/utils/metrics.js +387 -0
- package/dist/utils/metrics.js.map +1 -0
- package/dist/utils/similarity.d.ts +64 -0
- package/dist/utils/similarity.d.ts.map +1 -0
- package/dist/utils/similarity.js +151 -0
- package/dist/utils/similarity.js.map +1 -0
- package/dist/utils/uuid.d.ts +23 -0
- package/dist/utils/uuid.d.ts.map +1 -0
- package/dist/utils/uuid.js +29 -0
- package/dist/utils/uuid.js.map +1 -0
- package/package.json +72 -0
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hierarchical Chunker - Multi-level text segmentation
|
|
3
|
+
* 다중 레벨 텍스트 청킹 (문장 → 구 → 어절 → 음절)
|
|
4
|
+
*
|
|
5
|
+
* @module core/hierarchical-chunker
|
|
6
|
+
*/
|
|
7
|
+
import { Language } from './language-analyzers.js';
|
|
8
|
+
/**
|
|
9
|
+
* Chunk level types
|
|
10
|
+
*/
|
|
11
|
+
export type ChunkLevel = 'document' | 'paragraph' | 'sentence' | 'phrase' | 'word' | 'morpheme' | 'syllable';
|
|
12
|
+
/**
|
|
13
|
+
* Hierarchical chunk node
|
|
14
|
+
*/
|
|
15
|
+
export interface HierarchicalChunk {
|
|
16
|
+
id: string;
|
|
17
|
+
level: ChunkLevel;
|
|
18
|
+
text: string;
|
|
19
|
+
hash: string;
|
|
20
|
+
parentId: string | null;
|
|
21
|
+
childIds: string[];
|
|
22
|
+
position: {
|
|
23
|
+
start: number;
|
|
24
|
+
end: number;
|
|
25
|
+
};
|
|
26
|
+
metadata: {
|
|
27
|
+
createdAt: string;
|
|
28
|
+
source?: string;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Chunk tree
|
|
33
|
+
*/
|
|
34
|
+
export interface ChunkTree {
|
|
35
|
+
root: HierarchicalChunk;
|
|
36
|
+
nodes: Map<string, HierarchicalChunk>;
|
|
37
|
+
levels: Map<ChunkLevel, HierarchicalChunk[]>;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Hierarchical Chunker
|
|
41
|
+
* 텍스트를 다중 레벨로 분해 (다국어 지원)
|
|
42
|
+
*/
|
|
43
|
+
export declare class HierarchicalChunker {
|
|
44
|
+
private analyzer;
|
|
45
|
+
private detectedLanguage;
|
|
46
|
+
/**
|
|
47
|
+
* 텍스트를 계층적으로 청킹 (언어 자동 감지)
|
|
48
|
+
*/
|
|
49
|
+
chunk(text: string, source?: string, language?: Language): ChunkTree;
|
|
50
|
+
/**
|
|
51
|
+
* 대화 입력을 계층적으로 처리
|
|
52
|
+
*/
|
|
53
|
+
chunkConversation(input: string, speaker?: string): ChunkTree;
|
|
54
|
+
/**
|
|
55
|
+
* 질문에서 핵심 청크 추출
|
|
56
|
+
*/
|
|
57
|
+
extractQueryChunks(query: string): {
|
|
58
|
+
intent: string;
|
|
59
|
+
keywords: string[];
|
|
60
|
+
chunks: HierarchicalChunk[];
|
|
61
|
+
};
|
|
62
|
+
private createChunk;
|
|
63
|
+
private splitParagraphs;
|
|
64
|
+
private splitSentences;
|
|
65
|
+
private splitPhrases;
|
|
66
|
+
private splitWords;
|
|
67
|
+
private splitMorphemes;
|
|
68
|
+
private splitSyllables;
|
|
69
|
+
/**
|
|
70
|
+
* 감지된 언어 반환
|
|
71
|
+
*/
|
|
72
|
+
getDetectedLanguage(): Language;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* 대화 학습 매니저
|
|
76
|
+
*/
|
|
77
|
+
export declare class ConversationLearner {
|
|
78
|
+
private chunker;
|
|
79
|
+
private memory;
|
|
80
|
+
constructor();
|
|
81
|
+
/**
|
|
82
|
+
* 대화 입력 학습
|
|
83
|
+
*/
|
|
84
|
+
learn(input: string, speaker?: string): ChunkTree;
|
|
85
|
+
/**
|
|
86
|
+
* 질문에 대한 답변 청크 검색
|
|
87
|
+
*/
|
|
88
|
+
query(question: string): {
|
|
89
|
+
intent: string;
|
|
90
|
+
matches: Array<{
|
|
91
|
+
text: string;
|
|
92
|
+
level: ChunkLevel;
|
|
93
|
+
relevance: number;
|
|
94
|
+
context: string;
|
|
95
|
+
}>;
|
|
96
|
+
};
|
|
97
|
+
/**
|
|
98
|
+
* 통계
|
|
99
|
+
*/
|
|
100
|
+
getStats(): {
|
|
101
|
+
totalConversations: number;
|
|
102
|
+
totalChunks: number;
|
|
103
|
+
chunksByLevel: Record<ChunkLevel, number>;
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
export declare function createHierarchicalChunker(): HierarchicalChunker;
|
|
107
|
+
export declare function createConversationLearner(): ConversationLearner;
|
|
108
|
+
//# sourceMappingURL=hierarchical-chunker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hierarchical-chunker.d.ts","sourceRoot":"","sources":["../../src/core/hierarchical-chunker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EACL,QAAQ,EAMT,MAAM,yBAAyB,CAAC;AAEjC;;GAEG;AACH,MAAM,MAAM,UAAU,GAClB,UAAU,GACV,WAAW,GACX,UAAU,GACV,QAAQ,GACR,MAAM,GACN,UAAU,GACV,UAAU,CAAC;AAEf;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,QAAQ,EAAE;QACR,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACtC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,iBAAiB,EAAE,CAAC,CAAC;CAC9C;AAED;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,gBAAgB,CAAoB;IAE5C;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,GAAE,QAAiB,GAAG,SAAS;IAoF5E;;OAEG;IACH,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAK7D;;OAEG;IACH,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG;QACjC,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,MAAM,EAAE,iBAAiB,EAAE,CAAC;KAC7B;IAqCD,OAAO,CAAC,WAAW;IAuBnB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,cAAc;IAKtB;;OAEG;IACH,mBAAmB,IAAI,QAAQ;CAGhC;AAED;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,MAAM,CAIX;;IAOH;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,MAAe,GAAG,SAAS;IAazD;;OAEG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG;QACvB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,KAAK,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,UAAU,CAAC;YAClB,SAAS,EAAE,MAAM,CAAC;YAClB,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC,CAAC;KACJ;IAuDD;;OAEG;IACH,QAAQ,IAAI;QACV,kBAAkB,EAAE,MAAM,CAAC;QAC3B,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;KAC3C;CA0BF;AAGD,wBAAgB,yBAAyB,IAAI,mBAAmB,CAE/D;AAED,wBAAgB,yBAAyB,IAAI,mBAAmB,CAE/D"}
|
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hierarchical Chunker - Multi-level text segmentation
|
|
3
|
+
* 다중 레벨 텍스트 청킹 (문장 → 구 → 어절 → 음절)
|
|
4
|
+
*
|
|
5
|
+
* @module core/hierarchical-chunker
|
|
6
|
+
*/
|
|
7
|
+
import { generateUUID } from '../utils/uuid.js';
|
|
8
|
+
import { hash } from '../utils/hash.js';
|
|
9
|
+
import { detectLanguage, getAnalyzer } from './language-analyzers.js';
|
|
10
|
+
/**
|
|
11
|
+
* Hierarchical Chunker
|
|
12
|
+
* 텍스트를 다중 레벨로 분해 (다국어 지원)
|
|
13
|
+
*/
|
|
14
|
+
export class HierarchicalChunker {
|
|
15
|
+
analyzer = null;
|
|
16
|
+
detectedLanguage = 'auto';
|
|
17
|
+
/**
|
|
18
|
+
* 텍스트를 계층적으로 청킹 (언어 자동 감지)
|
|
19
|
+
*/
|
|
20
|
+
chunk(text, source, language = 'auto') {
|
|
21
|
+
// 언어 감지 및 분석기 설정
|
|
22
|
+
this.detectedLanguage = language === 'auto' ? detectLanguage(text) : language;
|
|
23
|
+
this.analyzer = getAnalyzer(this.detectedLanguage);
|
|
24
|
+
const nodes = new Map();
|
|
25
|
+
const levels = new Map();
|
|
26
|
+
// Initialize level arrays
|
|
27
|
+
const allLevels = ['document', 'paragraph', 'sentence', 'phrase', 'word', 'syllable'];
|
|
28
|
+
for (const level of allLevels) {
|
|
29
|
+
levels.set(level, []);
|
|
30
|
+
}
|
|
31
|
+
// Level 1: Document (전체 문서)
|
|
32
|
+
const docChunk = this.createChunk('document', text, 0, text.length, null, source);
|
|
33
|
+
nodes.set(docChunk.id, docChunk);
|
|
34
|
+
levels.get('document').push(docChunk);
|
|
35
|
+
// Level 2: Paragraphs (문단)
|
|
36
|
+
const paragraphs = this.splitParagraphs(text);
|
|
37
|
+
let offset = 0;
|
|
38
|
+
for (const para of paragraphs) {
|
|
39
|
+
const paraChunk = this.createChunk('paragraph', para, offset, offset + para.length, docChunk.id, source);
|
|
40
|
+
nodes.set(paraChunk.id, paraChunk);
|
|
41
|
+
levels.get('paragraph').push(paraChunk);
|
|
42
|
+
docChunk.childIds.push(paraChunk.id);
|
|
43
|
+
// Level 3: Sentences (문장)
|
|
44
|
+
const sentences = this.splitSentences(para);
|
|
45
|
+
let sentOffset = offset;
|
|
46
|
+
for (const sent of sentences) {
|
|
47
|
+
const sentChunk = this.createChunk('sentence', sent, sentOffset, sentOffset + sent.length, paraChunk.id, source);
|
|
48
|
+
nodes.set(sentChunk.id, sentChunk);
|
|
49
|
+
levels.get('sentence').push(sentChunk);
|
|
50
|
+
paraChunk.childIds.push(sentChunk.id);
|
|
51
|
+
// Level 4: Phrases (구/절)
|
|
52
|
+
const phrases = this.splitPhrases(sent);
|
|
53
|
+
let phraseOffset = sentOffset;
|
|
54
|
+
for (const phrase of phrases) {
|
|
55
|
+
const phraseChunk = this.createChunk('phrase', phrase, phraseOffset, phraseOffset + phrase.length, sentChunk.id, source);
|
|
56
|
+
nodes.set(phraseChunk.id, phraseChunk);
|
|
57
|
+
levels.get('phrase').push(phraseChunk);
|
|
58
|
+
sentChunk.childIds.push(phraseChunk.id);
|
|
59
|
+
// Level 5: Words (어절/단어)
|
|
60
|
+
const words = this.splitWords(phrase);
|
|
61
|
+
let wordOffset = phraseOffset;
|
|
62
|
+
for (const word of words) {
|
|
63
|
+
const wordChunk = this.createChunk('word', word, wordOffset, wordOffset + word.length, phraseChunk.id, source);
|
|
64
|
+
nodes.set(wordChunk.id, wordChunk);
|
|
65
|
+
levels.get('word').push(wordChunk);
|
|
66
|
+
phraseChunk.childIds.push(wordChunk.id);
|
|
67
|
+
// Level 6: Syllables (음절)
|
|
68
|
+
const syllables = this.splitSyllables(word);
|
|
69
|
+
let syllOffset = wordOffset;
|
|
70
|
+
for (const syll of syllables) {
|
|
71
|
+
const syllChunk = this.createChunk('syllable', syll, syllOffset, syllOffset + syll.length, wordChunk.id, source);
|
|
72
|
+
nodes.set(syllChunk.id, syllChunk);
|
|
73
|
+
levels.get('syllable').push(syllChunk);
|
|
74
|
+
wordChunk.childIds.push(syllChunk.id);
|
|
75
|
+
syllOffset += syll.length;
|
|
76
|
+
}
|
|
77
|
+
wordOffset += word.length + 1; // +1 for space
|
|
78
|
+
}
|
|
79
|
+
phraseOffset += phrase.length;
|
|
80
|
+
}
|
|
81
|
+
sentOffset += sent.length;
|
|
82
|
+
}
|
|
83
|
+
offset += para.length + 1; // +1 for newline
|
|
84
|
+
}
|
|
85
|
+
return {
|
|
86
|
+
root: docChunk,
|
|
87
|
+
nodes,
|
|
88
|
+
levels
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* 대화 입력을 계층적으로 처리
|
|
93
|
+
*/
|
|
94
|
+
chunkConversation(input, speaker) {
|
|
95
|
+
const tree = this.chunk(input, `conversation:${speaker || 'user'}`);
|
|
96
|
+
return tree;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* 질문에서 핵심 청크 추출
|
|
100
|
+
*/
|
|
101
|
+
extractQueryChunks(query) {
|
|
102
|
+
const tree = this.chunk(query);
|
|
103
|
+
const words = tree.levels.get('word') || [];
|
|
104
|
+
// 의도 파악 (간단한 규칙 기반)
|
|
105
|
+
let intent = 'unknown';
|
|
106
|
+
const queryLower = query.toLowerCase();
|
|
107
|
+
if (queryLower.includes('누구') || queryLower.includes('who')) {
|
|
108
|
+
intent = 'identity';
|
|
109
|
+
}
|
|
110
|
+
else if (queryLower.includes('뭐') || queryLower.includes('무엇') || queryLower.includes('what')) {
|
|
111
|
+
intent = 'definition';
|
|
112
|
+
}
|
|
113
|
+
else if (queryLower.includes('어디') || queryLower.includes('where')) {
|
|
114
|
+
intent = 'location';
|
|
115
|
+
}
|
|
116
|
+
else if (queryLower.includes('언제') || queryLower.includes('when')) {
|
|
117
|
+
intent = 'time';
|
|
118
|
+
}
|
|
119
|
+
else if (queryLower.includes('왜') || queryLower.includes('why')) {
|
|
120
|
+
intent = 'reason';
|
|
121
|
+
}
|
|
122
|
+
else if (queryLower.includes('어떻게') || queryLower.includes('how')) {
|
|
123
|
+
intent = 'method';
|
|
124
|
+
}
|
|
125
|
+
// 핵심 키워드 추출 (조사, 어미 제외)
|
|
126
|
+
const stopWords = new Set(['은', '는', '이', '가', '을', '를', '에', '의', '로', '와', '과', '도', '만', '?', '.', '!']);
|
|
127
|
+
const keywords = words
|
|
128
|
+
.map(w => w.text.trim())
|
|
129
|
+
.filter(w => w.length > 0 && !stopWords.has(w));
|
|
130
|
+
return {
|
|
131
|
+
intent,
|
|
132
|
+
keywords,
|
|
133
|
+
chunks: [...(tree.levels.get('word') || []), ...(tree.levels.get('phrase') || [])]
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
// ==================== Private Methods ====================
|
|
137
|
+
createChunk(level, text, start, end, parentId, source) {
|
|
138
|
+
return {
|
|
139
|
+
id: generateUUID(),
|
|
140
|
+
level,
|
|
141
|
+
text: text.trim(),
|
|
142
|
+
hash: hash(text),
|
|
143
|
+
parentId,
|
|
144
|
+
childIds: [],
|
|
145
|
+
position: { start, end },
|
|
146
|
+
metadata: {
|
|
147
|
+
createdAt: new Date().toISOString(),
|
|
148
|
+
source
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
splitParagraphs(text) {
|
|
153
|
+
return text.split(/\n\s*\n/).filter(p => p.trim().length > 0);
|
|
154
|
+
}
|
|
155
|
+
splitSentences(text) {
|
|
156
|
+
// 언어별 문장 분리
|
|
157
|
+
if (this.analyzer) {
|
|
158
|
+
return this.analyzer.splitSentences(text);
|
|
159
|
+
}
|
|
160
|
+
return text.split(/(?<=[.!?。!?])\s+/).filter(s => s.trim().length > 0);
|
|
161
|
+
}
|
|
162
|
+
splitPhrases(text) {
|
|
163
|
+
// 언어별 구/절 분리
|
|
164
|
+
if (this.analyzer) {
|
|
165
|
+
return this.analyzer.splitPhrases(text);
|
|
166
|
+
}
|
|
167
|
+
return text.split(/[,,、;;]/g).filter(p => p.trim().length > 0);
|
|
168
|
+
}
|
|
169
|
+
splitWords(text) {
|
|
170
|
+
// 언어별 어절/단어 분리
|
|
171
|
+
if (this.analyzer) {
|
|
172
|
+
return this.analyzer.splitWords(text);
|
|
173
|
+
}
|
|
174
|
+
return text.split(/\s+/).filter(w => w.trim().length > 0);
|
|
175
|
+
}
|
|
176
|
+
splitMorphemes(text) {
|
|
177
|
+
// 언어별 형태소 분리
|
|
178
|
+
if (this.analyzer) {
|
|
179
|
+
return this.analyzer.splitMorphemes(text);
|
|
180
|
+
}
|
|
181
|
+
return text.split(/\s+/).filter(w => w.trim().length > 0);
|
|
182
|
+
}
|
|
183
|
+
splitSyllables(text) {
|
|
184
|
+
// 글자 단위 분리
|
|
185
|
+
return [...text].filter(c => c.trim().length > 0);
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* 감지된 언어 반환
|
|
189
|
+
*/
|
|
190
|
+
getDetectedLanguage() {
|
|
191
|
+
return this.detectedLanguage;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* 대화 학습 매니저
|
|
196
|
+
*/
|
|
197
|
+
export class ConversationLearner {
|
|
198
|
+
chunker;
|
|
199
|
+
memory;
|
|
200
|
+
constructor() {
|
|
201
|
+
this.chunker = new HierarchicalChunker();
|
|
202
|
+
this.memory = new Map();
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* 대화 입력 학습
|
|
206
|
+
*/
|
|
207
|
+
learn(input, speaker = 'user') {
|
|
208
|
+
const tree = this.chunker.chunkConversation(input, speaker);
|
|
209
|
+
// 메모리에 저장
|
|
210
|
+
this.memory.set(tree.root.id, {
|
|
211
|
+
tree,
|
|
212
|
+
timestamp: Date.now(),
|
|
213
|
+
speaker
|
|
214
|
+
});
|
|
215
|
+
return tree;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* 질문에 대한 답변 청크 검색
|
|
219
|
+
*/
|
|
220
|
+
query(question) {
|
|
221
|
+
const { intent, keywords } = this.chunker.extractQueryChunks(question);
|
|
222
|
+
const matches = [];
|
|
223
|
+
// 모든 저장된 대화에서 검색
|
|
224
|
+
for (const [, entry] of this.memory) {
|
|
225
|
+
const { tree, speaker } = entry;
|
|
226
|
+
// 각 레벨에서 키워드 매칭
|
|
227
|
+
for (const [level, chunks] of tree.levels) {
|
|
228
|
+
for (const chunk of chunks) {
|
|
229
|
+
let relevance = 0;
|
|
230
|
+
// 키워드 매칭 점수
|
|
231
|
+
for (const keyword of keywords) {
|
|
232
|
+
if (chunk.text.includes(keyword)) {
|
|
233
|
+
relevance += 1;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
// 의도 기반 매칭
|
|
237
|
+
if (intent === 'identity' && (chunk.text.includes('저는') || chunk.text.includes('나는'))) {
|
|
238
|
+
relevance += 2;
|
|
239
|
+
}
|
|
240
|
+
if (relevance > 0) {
|
|
241
|
+
// 컨텍스트 찾기 (부모 청크)
|
|
242
|
+
let context = chunk.text;
|
|
243
|
+
if (chunk.parentId) {
|
|
244
|
+
const parent = tree.nodes.get(chunk.parentId);
|
|
245
|
+
if (parent)
|
|
246
|
+
context = parent.text;
|
|
247
|
+
}
|
|
248
|
+
matches.push({
|
|
249
|
+
text: chunk.text,
|
|
250
|
+
level: level,
|
|
251
|
+
relevance,
|
|
252
|
+
context
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
// 관련도 순으로 정렬
|
|
259
|
+
matches.sort((a, b) => b.relevance - a.relevance);
|
|
260
|
+
return { intent, matches };
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* 통계
|
|
264
|
+
*/
|
|
265
|
+
getStats() {
|
|
266
|
+
const chunksByLevel = {
|
|
267
|
+
document: 0,
|
|
268
|
+
paragraph: 0,
|
|
269
|
+
sentence: 0,
|
|
270
|
+
phrase: 0,
|
|
271
|
+
word: 0,
|
|
272
|
+
morpheme: 0,
|
|
273
|
+
syllable: 0
|
|
274
|
+
};
|
|
275
|
+
let totalChunks = 0;
|
|
276
|
+
for (const [, entry] of this.memory) {
|
|
277
|
+
for (const [level, chunks] of entry.tree.levels) {
|
|
278
|
+
chunksByLevel[level] += chunks.length;
|
|
279
|
+
totalChunks += chunks.length;
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
return {
|
|
283
|
+
totalConversations: this.memory.size,
|
|
284
|
+
totalChunks,
|
|
285
|
+
chunksByLevel
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
// Export
|
|
290
|
+
export function createHierarchicalChunker() {
|
|
291
|
+
return new HierarchicalChunker();
|
|
292
|
+
}
|
|
293
|
+
export function createConversationLearner() {
|
|
294
|
+
return new ConversationLearner();
|
|
295
|
+
}
|
|
296
|
+
//# sourceMappingURL=hierarchical-chunker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hierarchical-chunker.js","sourceRoot":"","sources":["../../src/core/hierarchical-chunker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HNSW Index - Hierarchical Navigable Small World Graph
|
|
3
|
+
* @module core/hnsw-index
|
|
4
|
+
*/
|
|
5
|
+
import type { UUID, Embedding384, HNSWParams, HNSWNode, HNSWIndexData, SearchResult } from '../types/index.js';
|
|
6
|
+
/**
|
|
7
|
+
* HNSW Index implementation for approximate nearest neighbor search
|
|
8
|
+
*/
|
|
9
|
+
export declare class HNSWIndex {
|
|
10
|
+
private params;
|
|
11
|
+
private layers;
|
|
12
|
+
private nodes;
|
|
13
|
+
private entryPoint;
|
|
14
|
+
private maxLayer;
|
|
15
|
+
constructor(params?: Partial<HNSWParams>);
|
|
16
|
+
/**
|
|
17
|
+
* Get the number of nodes in the index
|
|
18
|
+
*/
|
|
19
|
+
get size(): number;
|
|
20
|
+
/**
|
|
21
|
+
* Insert a new node into the index
|
|
22
|
+
* @param id - Node identifier
|
|
23
|
+
* @param embedding - 384-dimensional embedding vector
|
|
24
|
+
*/
|
|
25
|
+
insert(id: UUID, embedding: Embedding384): void;
|
|
26
|
+
/**
|
|
27
|
+
* Search for k nearest neighbors
|
|
28
|
+
* @param query - Query embedding
|
|
29
|
+
* @param k - Number of neighbors to return
|
|
30
|
+
* @param ef - Search expansion factor (default from params)
|
|
31
|
+
* @returns Array of search results sorted by similarity
|
|
32
|
+
*/
|
|
33
|
+
search(query: Embedding384, k: number, ef?: number): SearchResult[];
|
|
34
|
+
/**
|
|
35
|
+
* Delete a node from the index
|
|
36
|
+
* @param id - Node identifier to delete
|
|
37
|
+
*/
|
|
38
|
+
delete(id: UUID): boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Check if a node exists in the index
|
|
41
|
+
* @param id - Node identifier
|
|
42
|
+
*/
|
|
43
|
+
has(id: UUID): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Get node by ID
|
|
46
|
+
* @param id - Node identifier
|
|
47
|
+
*/
|
|
48
|
+
getNode(id: UUID): HNSWNode | undefined;
|
|
49
|
+
/**
|
|
50
|
+
* Get all node IDs
|
|
51
|
+
*/
|
|
52
|
+
getAllIds(): UUID[];
|
|
53
|
+
/**
|
|
54
|
+
* Serialize the index to a JSON-friendly format
|
|
55
|
+
*/
|
|
56
|
+
serialize(): HNSWIndexData;
|
|
57
|
+
/**
|
|
58
|
+
* Deserialize index from JSON format
|
|
59
|
+
*/
|
|
60
|
+
static deserialize(data: HNSWIndexData): HNSWIndex;
|
|
61
|
+
/**
|
|
62
|
+
* Assign layer for new node using exponential distribution
|
|
63
|
+
*/
|
|
64
|
+
private assignLayer;
|
|
65
|
+
/**
|
|
66
|
+
* Greedy search to find closest node at a given layer
|
|
67
|
+
*/
|
|
68
|
+
private greedySearch;
|
|
69
|
+
/**
|
|
70
|
+
* Search a layer for candidates using beam search
|
|
71
|
+
*/
|
|
72
|
+
private searchLayer;
|
|
73
|
+
/**
|
|
74
|
+
* Select best neighbors from candidates
|
|
75
|
+
*/
|
|
76
|
+
private selectNeighbors;
|
|
77
|
+
/**
|
|
78
|
+
* Prune connections to maintain max connections limit
|
|
79
|
+
*/
|
|
80
|
+
private pruneConnections;
|
|
81
|
+
/**
|
|
82
|
+
* Update entry point after deletion
|
|
83
|
+
*/
|
|
84
|
+
private updateEntryPoint;
|
|
85
|
+
/**
|
|
86
|
+
* Ensure layer exists
|
|
87
|
+
*/
|
|
88
|
+
private ensureLayer;
|
|
89
|
+
/**
|
|
90
|
+
* Get layer data
|
|
91
|
+
*/
|
|
92
|
+
private getLayer;
|
|
93
|
+
/**
|
|
94
|
+
* Compute similarity between two embeddings
|
|
95
|
+
*/
|
|
96
|
+
private similarity;
|
|
97
|
+
/**
|
|
98
|
+
* Get index statistics
|
|
99
|
+
*/
|
|
100
|
+
getStats(): {
|
|
101
|
+
totalNodes: number;
|
|
102
|
+
layerDistribution: Map<number, number>;
|
|
103
|
+
avgConnectionsPerLayer: Map<number, number>;
|
|
104
|
+
maxLayer: number;
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Create an HNSWIndex instance with default parameters
|
|
109
|
+
*/
|
|
110
|
+
export declare function createHNSWIndex(params?: Partial<HNSWParams>): HNSWIndex;
|
|
111
|
+
//# sourceMappingURL=hnsw-index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hnsw-index.d.ts","sourceRoot":"","sources":["../../src/core/hnsw-index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,IAAI,EACJ,YAAY,EACZ,UAAU,EACV,QAAQ,EAER,aAAa,EACb,YAAY,EAEb,MAAM,mBAAmB,CAAC;AAc3B;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,QAAQ,CAAS;gBAEb,MAAM,GAAE,OAAO,CAAC,UAAU,CAAM;IAc5C;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;OAIG;IACH,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,GAAG,IAAI;IAsF/C;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE;IAoBnE;;;OAGG;IACH,MAAM,CAAC,EAAE,EAAE,IAAI,GAAG,OAAO;IAiCzB;;;OAGG;IACH,GAAG,CAAC,EAAE,EAAE,IAAI,GAAG,OAAO;IAItB;;;OAGG;IACH,OAAO,CAAC,EAAE,EAAE,IAAI,GAAG,QAAQ,GAAG,SAAS;IAIvC;;OAEG;IACH,SAAS,IAAI,IAAI,EAAE;IAInB;;OAEG;IACH,SAAS,IAAI,aAAa;IAkC1B;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS;IA8ClD;;OAEG;IACH,OAAO,CAAC,WAAW;IAMnB;;OAEG;IACH,OAAO,CAAC,YAAY;IA4BpB;;OAEG;IACH,OAAO,CAAC,WAAW;IAiEnB;;OAEG;IACH,OAAO,CAAC,eAAe;IAKvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA2BxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAgBxB;;OAEG;IACH,OAAO,CAAC,WAAW;IAMnB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAIhB;;OAEG;IACH,OAAO,CAAC,UAAU;IAIlB;;OAEG;IACH,QAAQ,IAAI;QACV,UAAU,EAAE,MAAM,CAAC;QACnB,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACvC,sBAAsB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5C,QAAQ,EAAE,MAAM,CAAC;KAClB;CAgCF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,SAAS,CAEvE"}
|