@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,147 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Verification Gate Service
|
|
3
|
+
* Merkle 검증 기반 컨텍스트 필터링
|
|
4
|
+
*
|
|
5
|
+
* 설계 문서: NMT_Updated.md Step 3 (3.2절)
|
|
6
|
+
* - 검색된 neuron/chunk에 대해 메타 일관성 검증
|
|
7
|
+
* - chunk inclusion proof 검증
|
|
8
|
+
* - 검증 실패 chunk는 폐기 (fail-closed 정책)
|
|
9
|
+
*
|
|
10
|
+
* @module services/verification-gate
|
|
11
|
+
*/
|
|
12
|
+
import type { NeuronNode, MerkleProof, SHA3Hash } from '../types/index.js';
|
|
13
|
+
/**
|
|
14
|
+
* 검증 실패 사유
|
|
15
|
+
*/
|
|
16
|
+
export type VerificationFailReason = 'merkle_root_mismatch' | 'chunk_hash_mismatch' | 'chunk_missing' | 'proof_invalid' | 'metadata_inconsistent' | 'neuron_corrupted';
|
|
17
|
+
/**
|
|
18
|
+
* 개별 Chunk 검증 결과 (Gate용)
|
|
19
|
+
* 주의: verify.ts의 GateChunkVerificationResult와 구분
|
|
20
|
+
*/
|
|
21
|
+
export interface GateChunkVerificationResult {
|
|
22
|
+
chunkHash: SHA3Hash;
|
|
23
|
+
verified: boolean;
|
|
24
|
+
failReason?: VerificationFailReason;
|
|
25
|
+
proof?: MerkleProof;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* 뉴런 검증 결과
|
|
29
|
+
*/
|
|
30
|
+
export interface NeuronVerificationResult {
|
|
31
|
+
neuronId: string;
|
|
32
|
+
verified: boolean;
|
|
33
|
+
merkleRootValid: boolean;
|
|
34
|
+
chunksVerified: number;
|
|
35
|
+
chunksFailed: number;
|
|
36
|
+
failReasons: VerificationFailReason[];
|
|
37
|
+
chunkResults: GateChunkVerificationResult[];
|
|
38
|
+
verificationTimeMs: number;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* 배치 검증 결과
|
|
42
|
+
*/
|
|
43
|
+
export interface BatchVerificationResult {
|
|
44
|
+
totalNeurons: number;
|
|
45
|
+
verifiedNeurons: number;
|
|
46
|
+
failedNeurons: number;
|
|
47
|
+
totalChunks: number;
|
|
48
|
+
verifiedChunks: number;
|
|
49
|
+
discardedChunks: number;
|
|
50
|
+
verifiedNeuronIds: string[];
|
|
51
|
+
discardedNeuronIds: string[];
|
|
52
|
+
failureDetails: Map<string, VerificationFailReason[]>;
|
|
53
|
+
totalTimeMs: number;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Verification Gate 설정
|
|
57
|
+
*/
|
|
58
|
+
export interface VerificationGateConfig {
|
|
59
|
+
mode: 'strict' | 'soft';
|
|
60
|
+
verifyMerkleRoot: boolean;
|
|
61
|
+
verifyChunkHashes: boolean;
|
|
62
|
+
verifyInclusionProof: boolean;
|
|
63
|
+
verifyMetadata: boolean;
|
|
64
|
+
maxVerificationTimeMs: number;
|
|
65
|
+
cacheVerificationResults: boolean;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Chunk 데이터 제공자 인터페이스
|
|
69
|
+
*/
|
|
70
|
+
export interface ChunkProvider {
|
|
71
|
+
getChunk(hash: SHA3Hash): Promise<Buffer | null>;
|
|
72
|
+
getChunks(hashes: SHA3Hash[]): Promise<Map<SHA3Hash, Buffer | null>>;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Verification Gate 클래스
|
|
76
|
+
*/
|
|
77
|
+
export declare class VerificationGate {
|
|
78
|
+
private merkleEngine;
|
|
79
|
+
private config;
|
|
80
|
+
private chunkProvider;
|
|
81
|
+
private verificationCache;
|
|
82
|
+
private stats;
|
|
83
|
+
constructor(config?: Partial<VerificationGateConfig>);
|
|
84
|
+
/**
|
|
85
|
+
* Chunk Provider 설정
|
|
86
|
+
*/
|
|
87
|
+
setChunkProvider(provider: ChunkProvider): void;
|
|
88
|
+
/**
|
|
89
|
+
* 단일 뉴런 검증
|
|
90
|
+
*/
|
|
91
|
+
verifyNeuron(neuron: NeuronNode, chunks?: Map<SHA3Hash, Buffer>): Promise<NeuronVerificationResult>;
|
|
92
|
+
/**
|
|
93
|
+
* 메타데이터 일관성 검증
|
|
94
|
+
*/
|
|
95
|
+
private verifyMetadata;
|
|
96
|
+
/**
|
|
97
|
+
* 개별 Chunk 해시 검증
|
|
98
|
+
*/
|
|
99
|
+
private verifyChunkHash;
|
|
100
|
+
/**
|
|
101
|
+
* 배치 뉴런 검증
|
|
102
|
+
*/
|
|
103
|
+
verifyBatch(neurons: NeuronNode[], chunks?: Map<SHA3Hash, Buffer>): Promise<BatchVerificationResult>;
|
|
104
|
+
/**
|
|
105
|
+
* 검색 결과 필터링 (검증 통과한 것만 반환)
|
|
106
|
+
*/
|
|
107
|
+
filterVerified<T extends {
|
|
108
|
+
neuron: NeuronNode;
|
|
109
|
+
}>(results: T[], chunks?: Map<SHA3Hash, Buffer>): Promise<{
|
|
110
|
+
verified: T[];
|
|
111
|
+
discarded: T[];
|
|
112
|
+
verificationResult: BatchVerificationResult;
|
|
113
|
+
}>;
|
|
114
|
+
/**
|
|
115
|
+
* 빠른 검증 (merkleRoot만)
|
|
116
|
+
*/
|
|
117
|
+
quickVerify(neuron: NeuronNode): boolean;
|
|
118
|
+
/**
|
|
119
|
+
* 캐시 무효화
|
|
120
|
+
*/
|
|
121
|
+
invalidateCache(neuronId?: string): void;
|
|
122
|
+
/**
|
|
123
|
+
* 통계 조회
|
|
124
|
+
*/
|
|
125
|
+
getStats(): {
|
|
126
|
+
totalVerifications: number;
|
|
127
|
+
successRate: number;
|
|
128
|
+
failureRate: number;
|
|
129
|
+
cacheHitRate: number;
|
|
130
|
+
avgVerificationTimeMs: number;
|
|
131
|
+
failuresByReason: Record<string, number>;
|
|
132
|
+
};
|
|
133
|
+
/**
|
|
134
|
+
* 통계 초기화
|
|
135
|
+
*/
|
|
136
|
+
resetStats(): void;
|
|
137
|
+
/**
|
|
138
|
+
* 모드 변경
|
|
139
|
+
*/
|
|
140
|
+
setMode(mode: 'strict' | 'soft'): void;
|
|
141
|
+
/**
|
|
142
|
+
* 설정 업데이트
|
|
143
|
+
*/
|
|
144
|
+
updateConfig(config: Partial<VerificationGateConfig>): void;
|
|
145
|
+
}
|
|
146
|
+
export declare const verificationGate: VerificationGate;
|
|
147
|
+
//# sourceMappingURL=verification-gate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verification-gate.d.ts","sourceRoot":"","sources":["../../src/services/verification-gate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Verification Gate Service
|
|
3
|
+
* Merkle 검증 기반 컨텍스트 필터링
|
|
4
|
+
*
|
|
5
|
+
* 설계 문서: NMT_Updated.md Step 3 (3.2절)
|
|
6
|
+
* - 검색된 neuron/chunk에 대해 메타 일관성 검증
|
|
7
|
+
* - chunk inclusion proof 검증
|
|
8
|
+
* - 검증 실패 chunk는 폐기 (fail-closed 정책)
|
|
9
|
+
*
|
|
10
|
+
* @module services/verification-gate
|
|
11
|
+
*/
|
|
12
|
+
import { MerkleEngine } from '../core/merkle-engine.js';
|
|
13
|
+
import { hash } from '../utils/hash.js';
|
|
14
|
+
/**
|
|
15
|
+
* Verification Gate 클래스
|
|
16
|
+
*/
|
|
17
|
+
export class VerificationGate {
|
|
18
|
+
merkleEngine;
|
|
19
|
+
config;
|
|
20
|
+
chunkProvider = null;
|
|
21
|
+
// 검증 결과 캐시 (neuronId -> result)
|
|
22
|
+
verificationCache = new Map();
|
|
23
|
+
// 통계
|
|
24
|
+
stats = {
|
|
25
|
+
totalVerifications: 0,
|
|
26
|
+
successfulVerifications: 0,
|
|
27
|
+
failedVerifications: 0,
|
|
28
|
+
cacheHits: 0,
|
|
29
|
+
avgVerificationTimeMs: 0,
|
|
30
|
+
failuresByReason: new Map()
|
|
31
|
+
};
|
|
32
|
+
constructor(config = {}) {
|
|
33
|
+
this.merkleEngine = new MerkleEngine();
|
|
34
|
+
this.config = {
|
|
35
|
+
mode: config.mode ?? 'strict',
|
|
36
|
+
verifyMerkleRoot: config.verifyMerkleRoot ?? true,
|
|
37
|
+
verifyChunkHashes: config.verifyChunkHashes ?? true,
|
|
38
|
+
verifyInclusionProof: config.verifyInclusionProof ?? false, // 기본 비활성화 (비용)
|
|
39
|
+
verifyMetadata: config.verifyMetadata ?? true,
|
|
40
|
+
maxVerificationTimeMs: config.maxVerificationTimeMs ?? 5000,
|
|
41
|
+
cacheVerificationResults: config.cacheVerificationResults ?? true
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Chunk Provider 설정
|
|
46
|
+
*/
|
|
47
|
+
setChunkProvider(provider) {
|
|
48
|
+
this.chunkProvider = provider;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* 단일 뉴런 검증
|
|
52
|
+
*/
|
|
53
|
+
async verifyNeuron(neuron, chunks) {
|
|
54
|
+
const startTime = Date.now();
|
|
55
|
+
this.stats.totalVerifications++;
|
|
56
|
+
// 캐시 확인
|
|
57
|
+
if (this.config.cacheVerificationResults && this.verificationCache.has(neuron.id)) {
|
|
58
|
+
this.stats.cacheHits++;
|
|
59
|
+
return this.verificationCache.get(neuron.id);
|
|
60
|
+
}
|
|
61
|
+
const chunkResults = [];
|
|
62
|
+
const failReasons = [];
|
|
63
|
+
let merkleRootValid = true;
|
|
64
|
+
try {
|
|
65
|
+
// 1. 메타데이터 일관성 검증
|
|
66
|
+
if (this.config.verifyMetadata) {
|
|
67
|
+
const metadataValid = this.verifyMetadata(neuron);
|
|
68
|
+
if (!metadataValid) {
|
|
69
|
+
failReasons.push('metadata_inconsistent');
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
// 2. Merkle Root 검증
|
|
73
|
+
if (this.config.verifyMerkleRoot && neuron.chunkHashes.length > 0) {
|
|
74
|
+
const computedRoot = this.merkleEngine.computeRoot(neuron.chunkHashes);
|
|
75
|
+
if (computedRoot !== neuron.merkleRoot) {
|
|
76
|
+
merkleRootValid = false;
|
|
77
|
+
failReasons.push('merkle_root_mismatch');
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
// 3. 개별 Chunk 해시 검증
|
|
81
|
+
if (this.config.verifyChunkHashes && chunks) {
|
|
82
|
+
for (const chunkHash of neuron.chunkHashes) {
|
|
83
|
+
const chunkData = chunks.get(chunkHash);
|
|
84
|
+
const result = this.verifyChunkHash(chunkHash, chunkData);
|
|
85
|
+
chunkResults.push(result);
|
|
86
|
+
if (!result.verified && result.failReason) {
|
|
87
|
+
if (!failReasons.includes(result.failReason)) {
|
|
88
|
+
failReasons.push(result.failReason);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
else if (this.config.verifyChunkHashes && this.chunkProvider) {
|
|
94
|
+
// Chunk Provider로 데이터 가져오기
|
|
95
|
+
const chunkMap = await this.chunkProvider.getChunks(neuron.chunkHashes);
|
|
96
|
+
for (const chunkHash of neuron.chunkHashes) {
|
|
97
|
+
const chunkData = chunkMap.get(chunkHash) ?? null;
|
|
98
|
+
const result = this.verifyChunkHash(chunkHash, chunkData);
|
|
99
|
+
chunkResults.push(result);
|
|
100
|
+
if (!result.verified && result.failReason) {
|
|
101
|
+
if (!failReasons.includes(result.failReason)) {
|
|
102
|
+
failReasons.push(result.failReason);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
// 4. Inclusion Proof 검증 (선택적)
|
|
108
|
+
if (this.config.verifyInclusionProof && neuron.chunkHashes.length > 0) {
|
|
109
|
+
const tree = this.merkleEngine.buildTree(neuron.chunkHashes);
|
|
110
|
+
for (let i = 0; i < chunkResults.length; i++) {
|
|
111
|
+
if (chunkResults[i].verified) {
|
|
112
|
+
const proof = this.merkleEngine.generateProof(tree, i);
|
|
113
|
+
const proofValid = this.merkleEngine.verifyProof(proof);
|
|
114
|
+
chunkResults[i].proof = proof;
|
|
115
|
+
if (!proofValid) {
|
|
116
|
+
chunkResults[i].verified = false;
|
|
117
|
+
chunkResults[i].failReason = 'proof_invalid';
|
|
118
|
+
if (!failReasons.includes('proof_invalid')) {
|
|
119
|
+
failReasons.push('proof_invalid');
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
failReasons.push('neuron_corrupted');
|
|
128
|
+
}
|
|
129
|
+
const verificationTimeMs = Date.now() - startTime;
|
|
130
|
+
const chunksVerified = chunkResults.filter(r => r.verified).length;
|
|
131
|
+
const chunksFailed = chunkResults.filter(r => !r.verified).length;
|
|
132
|
+
const verified = failReasons.length === 0 && merkleRootValid;
|
|
133
|
+
// 통계 업데이트
|
|
134
|
+
if (verified) {
|
|
135
|
+
this.stats.successfulVerifications++;
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
this.stats.failedVerifications++;
|
|
139
|
+
for (const reason of failReasons) {
|
|
140
|
+
this.stats.failuresByReason.set(reason, (this.stats.failuresByReason.get(reason) ?? 0) + 1);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
this.stats.avgVerificationTimeMs =
|
|
144
|
+
(this.stats.avgVerificationTimeMs * (this.stats.totalVerifications - 1) + verificationTimeMs)
|
|
145
|
+
/ this.stats.totalVerifications;
|
|
146
|
+
const result = {
|
|
147
|
+
neuronId: neuron.id,
|
|
148
|
+
verified,
|
|
149
|
+
merkleRootValid,
|
|
150
|
+
chunksVerified,
|
|
151
|
+
chunksFailed,
|
|
152
|
+
failReasons,
|
|
153
|
+
chunkResults,
|
|
154
|
+
verificationTimeMs
|
|
155
|
+
};
|
|
156
|
+
// 캐시 저장
|
|
157
|
+
if (this.config.cacheVerificationResults) {
|
|
158
|
+
this.verificationCache.set(neuron.id, result);
|
|
159
|
+
}
|
|
160
|
+
return result;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* 메타데이터 일관성 검증
|
|
164
|
+
*/
|
|
165
|
+
verifyMetadata(neuron) {
|
|
166
|
+
// embedding 차원 검증
|
|
167
|
+
if (neuron.embedding) {
|
|
168
|
+
const expectedDim = 384; // 설정 가능하게 변경 가능
|
|
169
|
+
if (neuron.embedding.length !== expectedDim) {
|
|
170
|
+
return false;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
// chunkHashes와 merkleRoot 존재 여부
|
|
174
|
+
if (neuron.chunkHashes.length > 0 && !neuron.merkleRoot) {
|
|
175
|
+
return false;
|
|
176
|
+
}
|
|
177
|
+
// 타임스탬프 유효성
|
|
178
|
+
if (neuron.metadata) {
|
|
179
|
+
const now = Date.now();
|
|
180
|
+
if (neuron.metadata.createdAt) {
|
|
181
|
+
const createdTime = new Date(neuron.metadata.createdAt).getTime();
|
|
182
|
+
if (createdTime > now) {
|
|
183
|
+
return false; // 미래 시간
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return true;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* 개별 Chunk 해시 검증
|
|
191
|
+
*/
|
|
192
|
+
verifyChunkHash(expectedHash, chunkData) {
|
|
193
|
+
if (!chunkData) {
|
|
194
|
+
return {
|
|
195
|
+
chunkHash: expectedHash,
|
|
196
|
+
verified: false,
|
|
197
|
+
failReason: 'chunk_missing'
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
const actualHash = hash(chunkData);
|
|
201
|
+
if (actualHash !== expectedHash) {
|
|
202
|
+
return {
|
|
203
|
+
chunkHash: expectedHash,
|
|
204
|
+
verified: false,
|
|
205
|
+
failReason: 'chunk_hash_mismatch'
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
return {
|
|
209
|
+
chunkHash: expectedHash,
|
|
210
|
+
verified: true
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* 배치 뉴런 검증
|
|
215
|
+
*/
|
|
216
|
+
async verifyBatch(neurons, chunks) {
|
|
217
|
+
const startTime = Date.now();
|
|
218
|
+
const results = await Promise.all(neurons.map(n => this.verifyNeuron(n, chunks)));
|
|
219
|
+
const verifiedNeuronIds = [];
|
|
220
|
+
const discardedNeuronIds = [];
|
|
221
|
+
const failureDetails = new Map();
|
|
222
|
+
let totalChunks = 0;
|
|
223
|
+
let verifiedChunks = 0;
|
|
224
|
+
let discardedChunks = 0;
|
|
225
|
+
for (const result of results) {
|
|
226
|
+
totalChunks += result.chunksVerified + result.chunksFailed;
|
|
227
|
+
verifiedChunks += result.chunksVerified;
|
|
228
|
+
discardedChunks += result.chunksFailed;
|
|
229
|
+
if (result.verified) {
|
|
230
|
+
verifiedNeuronIds.push(result.neuronId);
|
|
231
|
+
}
|
|
232
|
+
else {
|
|
233
|
+
discardedNeuronIds.push(result.neuronId);
|
|
234
|
+
failureDetails.set(result.neuronId, result.failReasons);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
return {
|
|
238
|
+
totalNeurons: neurons.length,
|
|
239
|
+
verifiedNeurons: verifiedNeuronIds.length,
|
|
240
|
+
failedNeurons: discardedNeuronIds.length,
|
|
241
|
+
totalChunks,
|
|
242
|
+
verifiedChunks,
|
|
243
|
+
discardedChunks,
|
|
244
|
+
verifiedNeuronIds,
|
|
245
|
+
discardedNeuronIds,
|
|
246
|
+
failureDetails,
|
|
247
|
+
totalTimeMs: Date.now() - startTime
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* 검색 결과 필터링 (검증 통과한 것만 반환)
|
|
252
|
+
*/
|
|
253
|
+
async filterVerified(results, chunks) {
|
|
254
|
+
const neurons = results.map(r => r.neuron);
|
|
255
|
+
const batchResult = await this.verifyBatch(neurons, chunks);
|
|
256
|
+
const verifiedSet = new Set(batchResult.verifiedNeuronIds);
|
|
257
|
+
const verified = [];
|
|
258
|
+
const discarded = [];
|
|
259
|
+
for (const result of results) {
|
|
260
|
+
if (verifiedSet.has(result.neuron.id)) {
|
|
261
|
+
verified.push(result);
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
// soft mode에서는 경고만 하고 포함
|
|
265
|
+
if (this.config.mode === 'soft') {
|
|
266
|
+
verified.push(result);
|
|
267
|
+
console.warn(`[VerificationGate] Soft mode: including unverified neuron ${result.neuron.id}`);
|
|
268
|
+
}
|
|
269
|
+
else {
|
|
270
|
+
discarded.push(result);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
return { verified, discarded, verificationResult: batchResult };
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* 빠른 검증 (merkleRoot만)
|
|
278
|
+
*/
|
|
279
|
+
quickVerify(neuron) {
|
|
280
|
+
if (neuron.chunkHashes.length === 0) {
|
|
281
|
+
return true;
|
|
282
|
+
}
|
|
283
|
+
try {
|
|
284
|
+
const computedRoot = this.merkleEngine.computeRoot(neuron.chunkHashes);
|
|
285
|
+
return computedRoot === neuron.merkleRoot;
|
|
286
|
+
}
|
|
287
|
+
catch {
|
|
288
|
+
return false;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* 캐시 무효화
|
|
293
|
+
*/
|
|
294
|
+
invalidateCache(neuronId) {
|
|
295
|
+
if (neuronId) {
|
|
296
|
+
this.verificationCache.delete(neuronId);
|
|
297
|
+
}
|
|
298
|
+
else {
|
|
299
|
+
this.verificationCache.clear();
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* 통계 조회
|
|
304
|
+
*/
|
|
305
|
+
getStats() {
|
|
306
|
+
const total = this.stats.totalVerifications;
|
|
307
|
+
return {
|
|
308
|
+
totalVerifications: total,
|
|
309
|
+
successRate: total > 0 ? this.stats.successfulVerifications / total : 0,
|
|
310
|
+
failureRate: total > 0 ? this.stats.failedVerifications / total : 0,
|
|
311
|
+
cacheHitRate: total > 0 ? this.stats.cacheHits / total : 0,
|
|
312
|
+
avgVerificationTimeMs: this.stats.avgVerificationTimeMs,
|
|
313
|
+
failuresByReason: Object.fromEntries(this.stats.failuresByReason)
|
|
314
|
+
};
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* 통계 초기화
|
|
318
|
+
*/
|
|
319
|
+
resetStats() {
|
|
320
|
+
this.stats = {
|
|
321
|
+
totalVerifications: 0,
|
|
322
|
+
successfulVerifications: 0,
|
|
323
|
+
failedVerifications: 0,
|
|
324
|
+
cacheHits: 0,
|
|
325
|
+
avgVerificationTimeMs: 0,
|
|
326
|
+
failuresByReason: new Map()
|
|
327
|
+
};
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* 모드 변경
|
|
331
|
+
*/
|
|
332
|
+
setMode(mode) {
|
|
333
|
+
this.config.mode = mode;
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* 설정 업데이트
|
|
337
|
+
*/
|
|
338
|
+
updateConfig(config) {
|
|
339
|
+
this.config = { ...this.config, ...config };
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
// 싱글톤 인스턴스
|
|
343
|
+
export const verificationGate = new VerificationGate();
|
|
344
|
+
//# sourceMappingURL=verification-gate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verification-gate.js","sourceRoot":"","sources":["../../src/services/verification-gate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Verification Service - Data integrity verification
|
|
3
|
+
* @module services/verify
|
|
4
|
+
*/
|
|
5
|
+
import type { UUID, MerkleProof, SHA3Hash, IChunkStore, INeuronStore } from '../types/index.js';
|
|
6
|
+
import { MerkleEngine } from '../core/merkle-engine.js';
|
|
7
|
+
/**
|
|
8
|
+
* Verification result
|
|
9
|
+
*/
|
|
10
|
+
export interface VerificationResult {
|
|
11
|
+
valid: boolean;
|
|
12
|
+
neuronId: UUID;
|
|
13
|
+
merkleRoot: string;
|
|
14
|
+
errors: string[];
|
|
15
|
+
details: {
|
|
16
|
+
chunksVerified: number;
|
|
17
|
+
chunksFailed: number;
|
|
18
|
+
merkleValid: boolean;
|
|
19
|
+
embeddingValid: boolean;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Chunk verification result
|
|
24
|
+
*/
|
|
25
|
+
export interface ChunkVerificationResult {
|
|
26
|
+
hash: SHA3Hash;
|
|
27
|
+
valid: boolean;
|
|
28
|
+
exists: boolean;
|
|
29
|
+
integrityPassed: boolean;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Proof verification options
|
|
33
|
+
*/
|
|
34
|
+
export interface ProofVerifyOptions {
|
|
35
|
+
verifyChunkData?: boolean;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Verification Service
|
|
39
|
+
*/
|
|
40
|
+
export declare class VerificationService {
|
|
41
|
+
private merkleEngine;
|
|
42
|
+
private chunkStore;
|
|
43
|
+
private neuronStore;
|
|
44
|
+
constructor(merkleEngine: MerkleEngine, chunkStore: IChunkStore, neuronStore: INeuronStore);
|
|
45
|
+
/**
|
|
46
|
+
* Verify complete neuron integrity
|
|
47
|
+
*/
|
|
48
|
+
verifyNeuron(neuronId: UUID): Promise<VerificationResult>;
|
|
49
|
+
/**
|
|
50
|
+
* Verify a single chunk
|
|
51
|
+
*/
|
|
52
|
+
verifyChunk(chunkHash: SHA3Hash): Promise<ChunkVerificationResult>;
|
|
53
|
+
/**
|
|
54
|
+
* Verify Merkle root matches chunk hashes
|
|
55
|
+
*/
|
|
56
|
+
verifyMerkleRoot(chunkHashes: SHA3Hash[], expectedRoot: string): Promise<boolean>;
|
|
57
|
+
/**
|
|
58
|
+
* Verify a Merkle proof
|
|
59
|
+
*/
|
|
60
|
+
verifyProof(proof: MerkleProof): boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Verify proof with explicit values
|
|
63
|
+
*/
|
|
64
|
+
verifyProofWithValues(proof: MerkleProof, expectedRoot: string, expectedLeaf: SHA3Hash): boolean;
|
|
65
|
+
/**
|
|
66
|
+
* Generate and verify proof for a specific chunk
|
|
67
|
+
*/
|
|
68
|
+
generateAndVerifyProof(neuronId: UUID, chunkIndex: number, options?: ProofVerifyOptions): Promise<{
|
|
69
|
+
proof: MerkleProof | null;
|
|
70
|
+
valid: boolean;
|
|
71
|
+
chunkValid?: boolean;
|
|
72
|
+
}>;
|
|
73
|
+
/**
|
|
74
|
+
* Verify all neurons in the store
|
|
75
|
+
*/
|
|
76
|
+
verifyAll(): Promise<{
|
|
77
|
+
total: number;
|
|
78
|
+
valid: number;
|
|
79
|
+
invalid: number;
|
|
80
|
+
results: VerificationResult[];
|
|
81
|
+
}>;
|
|
82
|
+
/**
|
|
83
|
+
* Verify chunk store integrity
|
|
84
|
+
*/
|
|
85
|
+
verifyChunkStore(): Promise<{
|
|
86
|
+
total: number;
|
|
87
|
+
valid: number;
|
|
88
|
+
corrupted: SHA3Hash[];
|
|
89
|
+
missing: SHA3Hash[];
|
|
90
|
+
}>;
|
|
91
|
+
/**
|
|
92
|
+
* Verify data against expected hash
|
|
93
|
+
*/
|
|
94
|
+
verifyData(data: Buffer | string, expectedHash: SHA3Hash): boolean;
|
|
95
|
+
/**
|
|
96
|
+
* Compute hash for data
|
|
97
|
+
*/
|
|
98
|
+
computeHash(data: Buffer | string): SHA3Hash;
|
|
99
|
+
/**
|
|
100
|
+
* Get verification summary for a neuron
|
|
101
|
+
*/
|
|
102
|
+
getVerificationSummary(neuronId: UUID): Promise<{
|
|
103
|
+
exists: boolean;
|
|
104
|
+
merkleRoot?: string;
|
|
105
|
+
chunkCount?: number;
|
|
106
|
+
allChunksExist?: boolean;
|
|
107
|
+
merkleValid?: boolean;
|
|
108
|
+
}>;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Create a VerificationService instance
|
|
112
|
+
*/
|
|
113
|
+
export declare function createVerificationService(merkleEngine: MerkleEngine, chunkStore: IChunkStore, neuronStore: INeuronStore): VerificationService;
|
|
114
|
+
//# sourceMappingURL=verify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/services/verify.ts"],"names":[],"mappings":"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"}
|