@rbalchii/anchor-engine 4.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +609 -0
- package/README.md +317 -0
- package/anchor.bat +5 -0
- package/docs/API.md +314 -0
- package/docs/DEPLOYMENT.md +448 -0
- package/docs/INDEX.md +226 -0
- package/docs/STAR_Whitepaper_Executive.md +216 -0
- package/docs/TROUBLESHOOTING.md +535 -0
- package/docs/archive/GIT_BACKUP_VERIFICATION.md +297 -0
- package/docs/archive/adoption-guide.md +264 -0
- package/docs/archive/adoption-preparation.md +179 -0
- package/docs/archive/agent-harness-integration.md +227 -0
- package/docs/archive/api-reference.md +106 -0
- package/docs/archive/api_flows_diagram.md +118 -0
- package/docs/archive/architecture.md +410 -0
- package/docs/archive/architecture_diagram.md +174 -0
- package/docs/archive/broader-adoption-preparation.md +175 -0
- package/docs/archive/browser-paradigm-architecture.md +163 -0
- package/docs/archive/chat-integration.md +124 -0
- package/docs/archive/community-adoption-materials.md +103 -0
- package/docs/archive/community-adoption.md +147 -0
- package/docs/archive/comparison-with-siloed-solutions.md +192 -0
- package/docs/archive/comprehensive-docs.md +156 -0
- package/docs/archive/data_flow_diagram.md +251 -0
- package/docs/archive/enhancement-implementation-summary.md +146 -0
- package/docs/archive/evolution-summary.md +141 -0
- package/docs/archive/ingestion_pipeline_diagram.md +198 -0
- package/docs/archive/native-module-profiling-results.md +135 -0
- package/docs/archive/positioning-document.md +158 -0
- package/docs/archive/positioning.md +175 -0
- package/docs/archive/query-builder-documentation.md +218 -0
- package/docs/archive/quick-reference.md +40 -0
- package/docs/archive/quickstart.md +63 -0
- package/docs/archive/relationship-narrative-discovery.md +141 -0
- package/docs/archive/search-logic-improvement-plan.md +336 -0
- package/docs/archive/search_architecture_diagram.md +212 -0
- package/docs/archive/semantic-architecture-guide.md +97 -0
- package/docs/archive/sequence-diagrams.md +128 -0
- package/docs/archive/system_components_diagram.md +296 -0
- package/docs/archive/test-framework-integration.md +109 -0
- package/docs/archive/testing-framework-documentation.md +397 -0
- package/docs/archive/testing-framework-summary.md +121 -0
- package/docs/archive/testing-framework.md +377 -0
- package/docs/archive/ui-architecture.md +75 -0
- package/docs/arxiv/BIBLIOGRAPHY.bib +145 -0
- package/docs/arxiv/RELATED_WORK.tex +39 -0
- package/docs/arxiv/compile.bat +48 -0
- package/docs/arxiv/joss_response.md +33 -0
- package/docs/arxiv/prepare-submission.bat +46 -0
- package/docs/arxiv/review.md +128 -0
- package/docs/arxiv/star-whitepaper.tex +657 -0
- package/docs/code-patterns.md +289 -0
- package/docs/whitepaper.md +445 -0
- package/engine/dist/agent/runtime.d.ts +41 -0
- package/engine/dist/agent/runtime.d.ts.map +1 -0
- package/engine/dist/agent/runtime.js +73 -0
- package/engine/dist/agent/runtime.js.map +1 -0
- package/engine/dist/commands/audit-tags.d.ts +14 -0
- package/engine/dist/commands/audit-tags.d.ts.map +1 -0
- package/engine/dist/commands/audit-tags.js +180 -0
- package/engine/dist/commands/audit-tags.js.map +1 -0
- package/engine/dist/commands/distill.d.ts +19 -0
- package/engine/dist/commands/distill.d.ts.map +1 -0
- package/engine/dist/commands/distill.js +114 -0
- package/engine/dist/commands/distill.js.map +1 -0
- package/engine/dist/commands/generate-synonyms.d.ts +14 -0
- package/engine/dist/commands/generate-synonyms.d.ts.map +1 -0
- package/engine/dist/commands/generate-synonyms.js +91 -0
- package/engine/dist/commands/generate-synonyms.js.map +1 -0
- package/engine/dist/config/index.d.ts +115 -0
- package/engine/dist/config/index.d.ts.map +1 -0
- package/engine/dist/config/index.js +326 -0
- package/engine/dist/config/index.js.map +1 -0
- package/engine/dist/config/max-recall-config.d.ts +102 -0
- package/engine/dist/config/max-recall-config.d.ts.map +1 -0
- package/engine/dist/config/max-recall-config.js +102 -0
- package/engine/dist/config/max-recall-config.js.map +1 -0
- package/engine/dist/config/paths.d.ts +40 -0
- package/engine/dist/config/paths.d.ts.map +1 -0
- package/engine/dist/config/paths.js +49 -0
- package/engine/dist/config/paths.js.map +1 -0
- package/engine/dist/core/batch.d.ts +19 -0
- package/engine/dist/core/batch.d.ts.map +1 -0
- package/engine/dist/core/batch.js +37 -0
- package/engine/dist/core/batch.js.map +1 -0
- package/engine/dist/core/db.d.ts +58 -0
- package/engine/dist/core/db.d.ts.map +1 -0
- package/engine/dist/core/db.js +563 -0
- package/engine/dist/core/db.js.map +1 -0
- package/engine/dist/core/inference/ChatWorker.d.ts +2 -0
- package/engine/dist/core/inference/ChatWorker.d.ts.map +1 -0
- package/engine/dist/core/inference/ChatWorker.js +28 -0
- package/engine/dist/core/inference/ChatWorker.js.map +1 -0
- package/engine/dist/core/inference/context_manager.d.ts +49 -0
- package/engine/dist/core/inference/context_manager.d.ts.map +1 -0
- package/engine/dist/core/inference/context_manager.js +199 -0
- package/engine/dist/core/inference/context_manager.js.map +1 -0
- package/engine/dist/core/inference/llamaLoaderWorker.d.ts +2 -0
- package/engine/dist/core/inference/llamaLoaderWorker.d.ts.map +1 -0
- package/engine/dist/core/inference/llamaLoaderWorker.js +23 -0
- package/engine/dist/core/inference/llamaLoaderWorker.js.map +1 -0
- package/engine/dist/core/vector.d.ts +40 -0
- package/engine/dist/core/vector.d.ts.map +1 -0
- package/engine/dist/core/vector.js +167 -0
- package/engine/dist/core/vector.js.map +1 -0
- package/engine/dist/index.d.ts +4 -0
- package/engine/dist/index.d.ts.map +1 -0
- package/engine/dist/index.js +400 -0
- package/engine/dist/index.js.map +1 -0
- package/engine/dist/middleware/auth.d.ts +14 -0
- package/engine/dist/middleware/auth.d.ts.map +1 -0
- package/engine/dist/middleware/auth.js +44 -0
- package/engine/dist/middleware/auth.js.map +1 -0
- package/engine/dist/middleware/request-tracing.d.ts +29 -0
- package/engine/dist/middleware/request-tracing.d.ts.map +1 -0
- package/engine/dist/middleware/request-tracing.js +115 -0
- package/engine/dist/middleware/request-tracing.js.map +1 -0
- package/engine/dist/middleware/validate.d.ts +30 -0
- package/engine/dist/middleware/validate.d.ts.map +1 -0
- package/engine/dist/middleware/validate.js +117 -0
- package/engine/dist/middleware/validate.js.map +1 -0
- package/engine/dist/native/index.d.ts +106 -0
- package/engine/dist/native/index.d.ts.map +1 -0
- package/engine/dist/native/index.js +230 -0
- package/engine/dist/native/index.js.map +1 -0
- package/engine/dist/native/types.d.ts +45 -0
- package/engine/dist/native/types.d.ts.map +1 -0
- package/engine/dist/native/types.js +6 -0
- package/engine/dist/native/types.js.map +1 -0
- package/engine/dist/profiling/atomization-profiling.d.ts +8 -0
- package/engine/dist/profiling/atomization-profiling.d.ts.map +1 -0
- package/engine/dist/profiling/atomization-profiling.js +108 -0
- package/engine/dist/profiling/atomization-profiling.js.map +1 -0
- package/engine/dist/profiling/bottleneck-identification.d.ts +8 -0
- package/engine/dist/profiling/bottleneck-identification.d.ts.map +1 -0
- package/engine/dist/profiling/bottleneck-identification.js +249 -0
- package/engine/dist/profiling/bottleneck-identification.js.map +1 -0
- package/engine/dist/profiling/content-sanitization-profiling.d.ts +12 -0
- package/engine/dist/profiling/content-sanitization-profiling.d.ts.map +1 -0
- package/engine/dist/profiling/content-sanitization-profiling.js +266 -0
- package/engine/dist/profiling/content-sanitization-profiling.js.map +1 -0
- package/engine/dist/profiling/simhash-profiling.d.ts +11 -0
- package/engine/dist/profiling/simhash-profiling.d.ts.map +1 -0
- package/engine/dist/profiling/simhash-profiling.js +168 -0
- package/engine/dist/profiling/simhash-profiling.js.map +1 -0
- package/engine/dist/routes/api.d.ts +9 -0
- package/engine/dist/routes/api.d.ts.map +1 -0
- package/engine/dist/routes/api.js +37 -0
- package/engine/dist/routes/api.js.map +1 -0
- package/engine/dist/routes/enhanced-api.d.ts +9 -0
- package/engine/dist/routes/enhanced-api.d.ts.map +1 -0
- package/engine/dist/routes/enhanced-api.js +139 -0
- package/engine/dist/routes/enhanced-api.js.map +1 -0
- package/engine/dist/routes/health.d.ts +8 -0
- package/engine/dist/routes/health.d.ts.map +1 -0
- package/engine/dist/routes/health.js +89 -0
- package/engine/dist/routes/health.js.map +1 -0
- package/engine/dist/routes/monitoring.d.ts +8 -0
- package/engine/dist/routes/monitoring.d.ts.map +1 -0
- package/engine/dist/routes/monitoring.js +509 -0
- package/engine/dist/routes/monitoring.js.map +1 -0
- package/engine/dist/routes/v1/admin.d.ts +3 -0
- package/engine/dist/routes/v1/admin.d.ts.map +1 -0
- package/engine/dist/routes/v1/admin.js +261 -0
- package/engine/dist/routes/v1/admin.js.map +1 -0
- package/engine/dist/routes/v1/atoms.d.ts +3 -0
- package/engine/dist/routes/v1/atoms.d.ts.map +1 -0
- package/engine/dist/routes/v1/atoms.js +172 -0
- package/engine/dist/routes/v1/atoms.js.map +1 -0
- package/engine/dist/routes/v1/backup.d.ts +3 -0
- package/engine/dist/routes/v1/backup.d.ts.map +1 -0
- package/engine/dist/routes/v1/backup.js +100 -0
- package/engine/dist/routes/v1/backup.js.map +1 -0
- package/engine/dist/routes/v1/git.d.ts +3 -0
- package/engine/dist/routes/v1/git.d.ts.map +1 -0
- package/engine/dist/routes/v1/git.js +316 -0
- package/engine/dist/routes/v1/git.js.map +1 -0
- package/engine/dist/routes/v1/ingest.d.ts +3 -0
- package/engine/dist/routes/v1/ingest.d.ts.map +1 -0
- package/engine/dist/routes/v1/ingest.js +66 -0
- package/engine/dist/routes/v1/ingest.js.map +1 -0
- package/engine/dist/routes/v1/memory.d.ts +14 -0
- package/engine/dist/routes/v1/memory.d.ts.map +1 -0
- package/engine/dist/routes/v1/memory.js +87 -0
- package/engine/dist/routes/v1/memory.js.map +1 -0
- package/engine/dist/routes/v1/research.d.ts +3 -0
- package/engine/dist/routes/v1/research.d.ts.map +1 -0
- package/engine/dist/routes/v1/research.js +109 -0
- package/engine/dist/routes/v1/research.js.map +1 -0
- package/engine/dist/routes/v1/search.d.ts +3 -0
- package/engine/dist/routes/v1/search.d.ts.map +1 -0
- package/engine/dist/routes/v1/search.js +180 -0
- package/engine/dist/routes/v1/search.js.map +1 -0
- package/engine/dist/routes/v1/settings.d.ts +8 -0
- package/engine/dist/routes/v1/settings.d.ts.map +1 -0
- package/engine/dist/routes/v1/settings.js +211 -0
- package/engine/dist/routes/v1/settings.js.map +1 -0
- package/engine/dist/routes/v1/system.d.ts +3 -0
- package/engine/dist/routes/v1/system.d.ts.map +1 -0
- package/engine/dist/routes/v1/system.js +326 -0
- package/engine/dist/routes/v1/system.js.map +1 -0
- package/engine/dist/routes/v1/tags.d.ts +3 -0
- package/engine/dist/routes/v1/tags.d.ts.map +1 -0
- package/engine/dist/routes/v1/tags.js +102 -0
- package/engine/dist/routes/v1/tags.js.map +1 -0
- package/engine/dist/server-8080.d.ts +2 -0
- package/engine/dist/server-8080.d.ts.map +1 -0
- package/engine/dist/server-8080.js +74 -0
- package/engine/dist/server-8080.js.map +1 -0
- package/engine/dist/services/backup/backup-restore.d.ts +37 -0
- package/engine/dist/services/backup/backup-restore.d.ts.map +1 -0
- package/engine/dist/services/backup/backup-restore.js +385 -0
- package/engine/dist/services/backup/backup-restore.js.map +1 -0
- package/engine/dist/services/backup/backup.d.ts +14 -0
- package/engine/dist/services/backup/backup.d.ts.map +1 -0
- package/engine/dist/services/backup/backup.js +442 -0
- package/engine/dist/services/backup/backup.js.map +1 -0
- package/engine/dist/services/distillation/radial-distiller-v2.d.ts +127 -0
- package/engine/dist/services/distillation/radial-distiller-v2.d.ts.map +1 -0
- package/engine/dist/services/distillation/radial-distiller-v2.js +503 -0
- package/engine/dist/services/distillation/radial-distiller-v2.js.map +1 -0
- package/engine/dist/services/distillation/radial-distiller.d.ts +63 -0
- package/engine/dist/services/distillation/radial-distiller.d.ts.map +1 -0
- package/engine/dist/services/distillation/radial-distiller.js +394 -0
- package/engine/dist/services/distillation/radial-distiller.js.map +1 -0
- package/engine/dist/services/health-check-enhanced.d.ts +89 -0
- package/engine/dist/services/health-check-enhanced.d.ts.map +1 -0
- package/engine/dist/services/health-check-enhanced.js +417 -0
- package/engine/dist/services/health-check-enhanced.js.map +1 -0
- package/engine/dist/services/idle-manager.d.ts +56 -0
- package/engine/dist/services/idle-manager.d.ts.map +1 -0
- package/engine/dist/services/idle-manager.js +210 -0
- package/engine/dist/services/idle-manager.js.map +1 -0
- package/engine/dist/services/inference/inference-service.d.ts +27 -0
- package/engine/dist/services/inference/inference-service.d.ts.map +1 -0
- package/engine/dist/services/inference/inference-service.js +89 -0
- package/engine/dist/services/inference/inference-service.js.map +1 -0
- package/engine/dist/services/inference/inference.d.ts +59 -0
- package/engine/dist/services/inference/inference.d.ts.map +1 -0
- package/engine/dist/services/inference/inference.js +131 -0
- package/engine/dist/services/inference/inference.js.map +1 -0
- package/engine/dist/services/ingest/atomizer-service.d.ts +74 -0
- package/engine/dist/services/ingest/atomizer-service.d.ts.map +1 -0
- package/engine/dist/services/ingest/atomizer-service.js +982 -0
- package/engine/dist/services/ingest/atomizer-service.js.map +1 -0
- package/engine/dist/services/ingest/content-cleaner.d.ts +43 -0
- package/engine/dist/services/ingest/content-cleaner.d.ts.map +1 -0
- package/engine/dist/services/ingest/content-cleaner.js +166 -0
- package/engine/dist/services/ingest/content-cleaner.js.map +1 -0
- package/engine/dist/services/ingest/github-ingest-service.d.ts +103 -0
- package/engine/dist/services/ingest/github-ingest-service.d.ts.map +1 -0
- package/engine/dist/services/ingest/github-ingest-service.js +537 -0
- package/engine/dist/services/ingest/github-ingest-service.js.map +1 -0
- package/engine/dist/services/ingest/ingest-atomic.d.ts +16 -0
- package/engine/dist/services/ingest/ingest-atomic.d.ts.map +1 -0
- package/engine/dist/services/ingest/ingest-atomic.js +437 -0
- package/engine/dist/services/ingest/ingest-atomic.js.map +1 -0
- package/engine/dist/services/ingest/ingest.d.ts +50 -0
- package/engine/dist/services/ingest/ingest.d.ts.map +1 -0
- package/engine/dist/services/ingest/ingest.js +230 -0
- package/engine/dist/services/ingest/ingest.js.map +1 -0
- package/engine/dist/services/ingest/watchdog.d.ts +31 -0
- package/engine/dist/services/ingest/watchdog.d.ts.map +1 -0
- package/engine/dist/services/ingest/watchdog.js +400 -0
- package/engine/dist/services/ingest/watchdog.js.map +1 -0
- package/engine/dist/services/llm/context.d.ts +6 -0
- package/engine/dist/services/llm/context.d.ts.map +1 -0
- package/engine/dist/services/llm/context.js +80 -0
- package/engine/dist/services/llm/context.js.map +1 -0
- package/engine/dist/services/llm/provider.d.ts +23 -0
- package/engine/dist/services/llm/provider.d.ts.map +1 -0
- package/engine/dist/services/llm/provider.js +338 -0
- package/engine/dist/services/llm/provider.js.map +1 -0
- package/engine/dist/services/llm/reader.d.ts +12 -0
- package/engine/dist/services/llm/reader.d.ts.map +1 -0
- package/engine/dist/services/llm/reader.js +40 -0
- package/engine/dist/services/llm/reader.js.map +1 -0
- package/engine/dist/services/mirror/mirror.d.ts +28 -0
- package/engine/dist/services/mirror/mirror.d.ts.map +1 -0
- package/engine/dist/services/mirror/mirror.js +208 -0
- package/engine/dist/services/mirror/mirror.js.map +1 -0
- package/engine/dist/services/nlp/nlp-service.d.ts +70 -0
- package/engine/dist/services/nlp/nlp-service.d.ts.map +1 -0
- package/engine/dist/services/nlp/nlp-service.js +151 -0
- package/engine/dist/services/nlp/nlp-service.js.map +1 -0
- package/engine/dist/services/nlp/query-parser.d.ts +9 -0
- package/engine/dist/services/nlp/query-parser.d.ts.map +1 -0
- package/engine/dist/services/nlp/query-parser.js +29 -0
- package/engine/dist/services/nlp/query-parser.js.map +1 -0
- package/engine/dist/services/query-builder/DataFrame.d.ts +95 -0
- package/engine/dist/services/query-builder/DataFrame.d.ts.map +1 -0
- package/engine/dist/services/query-builder/DataFrame.js +263 -0
- package/engine/dist/services/query-builder/DataFrame.js.map +1 -0
- package/engine/dist/services/query-builder/QueryBuilder.d.ts +106 -0
- package/engine/dist/services/query-builder/QueryBuilder.d.ts.map +1 -0
- package/engine/dist/services/query-builder/QueryBuilder.js +235 -0
- package/engine/dist/services/query-builder/QueryBuilder.js.map +1 -0
- package/engine/dist/services/query-builder/utils/export.d.ts +11 -0
- package/engine/dist/services/query-builder/utils/export.d.ts.map +1 -0
- package/engine/dist/services/query-builder/utils/export.js +130 -0
- package/engine/dist/services/query-builder/utils/export.js.map +1 -0
- package/engine/dist/services/research/researcher.d.ts +15 -0
- package/engine/dist/services/research/researcher.d.ts.map +1 -0
- package/engine/dist/services/research/researcher.js +123 -0
- package/engine/dist/services/research/researcher.js.map +1 -0
- package/engine/dist/services/scribe/scribe.d.ts +43 -0
- package/engine/dist/services/scribe/scribe.d.ts.map +1 -0
- package/engine/dist/services/scribe/scribe.js +135 -0
- package/engine/dist/services/scribe/scribe.js.map +1 -0
- package/engine/dist/services/search/bright-nodes.d.ts +41 -0
- package/engine/dist/services/search/bright-nodes.d.ts.map +1 -0
- package/engine/dist/services/search/bright-nodes.js +117 -0
- package/engine/dist/services/search/bright-nodes.js.map +1 -0
- package/engine/dist/services/search/context-inflator.d.ts +63 -0
- package/engine/dist/services/search/context-inflator.d.ts.map +1 -0
- package/engine/dist/services/search/context-inflator.js +649 -0
- package/engine/dist/services/search/context-inflator.js.map +1 -0
- package/engine/dist/services/search/context-manager.d.ts +34 -0
- package/engine/dist/services/search/context-manager.d.ts.map +1 -0
- package/engine/dist/services/search/context-manager.js +124 -0
- package/engine/dist/services/search/context-manager.js.map +1 -0
- package/engine/dist/services/search/distributed-query.d.ts +38 -0
- package/engine/dist/services/search/distributed-query.d.ts.map +1 -0
- package/engine/dist/services/search/distributed-query.js +105 -0
- package/engine/dist/services/search/distributed-query.js.map +1 -0
- package/engine/dist/services/search/explore.d.ts +73 -0
- package/engine/dist/services/search/explore.d.ts.map +1 -0
- package/engine/dist/services/search/explore.js +388 -0
- package/engine/dist/services/search/explore.js.map +1 -0
- package/engine/dist/services/search/graph-context-serializer.d.ts +76 -0
- package/engine/dist/services/search/graph-context-serializer.d.ts.map +1 -0
- package/engine/dist/services/search/graph-context-serializer.js +435 -0
- package/engine/dist/services/search/graph-context-serializer.js.map +1 -0
- package/engine/dist/services/search/llm-context-formatter.d.ts +122 -0
- package/engine/dist/services/search/llm-context-formatter.d.ts.map +1 -0
- package/engine/dist/services/search/llm-context-formatter.js +394 -0
- package/engine/dist/services/search/llm-context-formatter.js.map +1 -0
- package/engine/dist/services/search/physics-tag-walker.d.ts +115 -0
- package/engine/dist/services/search/physics-tag-walker.d.ts.map +1 -0
- package/engine/dist/services/search/physics-tag-walker.js +611 -0
- package/engine/dist/services/search/physics-tag-walker.js.map +1 -0
- package/engine/dist/services/search/query-parser.d.ts +66 -0
- package/engine/dist/services/search/query-parser.d.ts.map +1 -0
- package/engine/dist/services/search/query-parser.js +346 -0
- package/engine/dist/services/search/query-parser.js.map +1 -0
- package/engine/dist/services/search/search-utils.d.ts +100 -0
- package/engine/dist/services/search/search-utils.d.ts.map +1 -0
- package/engine/dist/services/search/search-utils.js +473 -0
- package/engine/dist/services/search/search-utils.js.map +1 -0
- package/engine/dist/services/search/search.d.ts +116 -0
- package/engine/dist/services/search/search.d.ts.map +1 -0
- package/engine/dist/services/search/search.js +1286 -0
- package/engine/dist/services/search/search.js.map +1 -0
- package/engine/dist/services/search/sovereign-system-prompt.d.ts +48 -0
- package/engine/dist/services/search/sovereign-system-prompt.d.ts.map +1 -0
- package/engine/dist/services/search/sovereign-system-prompt.js +101 -0
- package/engine/dist/services/search/sovereign-system-prompt.js.map +1 -0
- package/engine/dist/services/search/streaming-search.d.ts +51 -0
- package/engine/dist/services/search/streaming-search.d.ts.map +1 -0
- package/engine/dist/services/search/streaming-search.js +94 -0
- package/engine/dist/services/search/streaming-search.js.map +1 -0
- package/engine/dist/services/semantic/semantic-ingestion-service.d.ts +53 -0
- package/engine/dist/services/semantic/semantic-ingestion-service.d.ts.map +1 -0
- package/engine/dist/services/semantic/semantic-ingestion-service.js +625 -0
- package/engine/dist/services/semantic/semantic-ingestion-service.js.map +1 -0
- package/engine/dist/services/semantic/semantic-molecule-processor.d.ts +68 -0
- package/engine/dist/services/semantic/semantic-molecule-processor.d.ts.map +1 -0
- package/engine/dist/services/semantic/semantic-molecule-processor.js +176 -0
- package/engine/dist/services/semantic/semantic-molecule-processor.js.map +1 -0
- package/engine/dist/services/semantic/semantic-search.d.ts +52 -0
- package/engine/dist/services/semantic/semantic-search.d.ts.map +1 -0
- package/engine/dist/services/semantic/semantic-search.js +649 -0
- package/engine/dist/services/semantic/semantic-search.js.map +1 -0
- package/engine/dist/services/semantic/semantic-tag-deriver.d.ts +64 -0
- package/engine/dist/services/semantic/semantic-tag-deriver.d.ts.map +1 -0
- package/engine/dist/services/semantic/semantic-tag-deriver.js +191 -0
- package/engine/dist/services/semantic/semantic-tag-deriver.js.map +1 -0
- package/engine/dist/services/semantic/types/semantic.d.ts +26 -0
- package/engine/dist/services/semantic/types/semantic.d.ts.map +1 -0
- package/engine/dist/services/semantic/types/semantic.js +7 -0
- package/engine/dist/services/semantic/types/semantic.js.map +1 -0
- package/engine/dist/services/synonyms/auto-synonym-generator.d.ts +79 -0
- package/engine/dist/services/synonyms/auto-synonym-generator.d.ts.map +1 -0
- package/engine/dist/services/synonyms/auto-synonym-generator.js +415 -0
- package/engine/dist/services/synonyms/auto-synonym-generator.js.map +1 -0
- package/engine/dist/services/system-status.d.ts +68 -0
- package/engine/dist/services/system-status.d.ts.map +1 -0
- package/engine/dist/services/system-status.js +107 -0
- package/engine/dist/services/system-status.js.map +1 -0
- package/engine/dist/services/tags/discovery.d.ts +16 -0
- package/engine/dist/services/tags/discovery.d.ts.map +1 -0
- package/engine/dist/services/tags/discovery.js +206 -0
- package/engine/dist/services/tags/discovery.js.map +1 -0
- package/engine/dist/services/tags/gliner.d.ts +18 -0
- package/engine/dist/services/tags/gliner.d.ts.map +1 -0
- package/engine/dist/services/tags/gliner.js +119 -0
- package/engine/dist/services/tags/gliner.js.map +1 -0
- package/engine/dist/services/tags/infector.d.ts +21 -0
- package/engine/dist/services/tags/infector.d.ts.map +1 -0
- package/engine/dist/services/tags/infector.js +168 -0
- package/engine/dist/services/tags/infector.js.map +1 -0
- package/engine/dist/services/tags/tag-auditor.d.ts +77 -0
- package/engine/dist/services/tags/tag-auditor.d.ts.map +1 -0
- package/engine/dist/services/tags/tag-auditor.js +283 -0
- package/engine/dist/services/tags/tag-auditor.js.map +1 -0
- package/engine/dist/services/taxonomy/taxonomy-manager.d.ts +50 -0
- package/engine/dist/services/taxonomy/taxonomy-manager.d.ts.map +1 -0
- package/engine/dist/services/taxonomy/taxonomy-manager.js +291 -0
- package/engine/dist/services/taxonomy/taxonomy-manager.js.map +1 -0
- package/engine/dist/services/vision/vision_service.d.ts +4 -0
- package/engine/dist/services/vision/vision_service.d.ts.map +1 -0
- package/engine/dist/services/vision/vision_service.js +197 -0
- package/engine/dist/services/vision/vision_service.js.map +1 -0
- package/engine/dist/test-framework/core.d.ts +133 -0
- package/engine/dist/test-framework/core.d.ts.map +1 -0
- package/engine/dist/test-framework/core.js +313 -0
- package/engine/dist/test-framework/core.js.map +1 -0
- package/engine/dist/test-framework/dataset-runner.d.ts +78 -0
- package/engine/dist/test-framework/dataset-runner.d.ts.map +1 -0
- package/engine/dist/test-framework/dataset-runner.js +223 -0
- package/engine/dist/test-framework/dataset-runner.js.map +1 -0
- package/engine/dist/test-framework/diagnostic-tests.d.ts +38 -0
- package/engine/dist/test-framework/diagnostic-tests.d.ts.map +1 -0
- package/engine/dist/test-framework/diagnostic-tests.js +283 -0
- package/engine/dist/test-framework/diagnostic-tests.js.map +1 -0
- package/engine/dist/test-framework/performance-regression-tests.d.ts +30 -0
- package/engine/dist/test-framework/performance-regression-tests.d.ts.map +1 -0
- package/engine/dist/test-framework/performance-regression-tests.js +331 -0
- package/engine/dist/test-framework/performance-regression-tests.js.map +1 -0
- package/engine/dist/types/api.d.ts +53 -0
- package/engine/dist/types/api.d.ts.map +1 -0
- package/engine/dist/types/api.js +2 -0
- package/engine/dist/types/api.js.map +1 -0
- package/engine/dist/types/atomic.d.ts +42 -0
- package/engine/dist/types/atomic.d.ts.map +1 -0
- package/engine/dist/types/atomic.js +10 -0
- package/engine/dist/types/atomic.js.map +1 -0
- package/engine/dist/types/context-protocol.d.ts +137 -0
- package/engine/dist/types/context-protocol.d.ts.map +1 -0
- package/engine/dist/types/context-protocol.js +28 -0
- package/engine/dist/types/context-protocol.js.map +1 -0
- package/engine/dist/types/context.d.ts +2 -0
- package/engine/dist/types/context.d.ts.map +1 -0
- package/engine/dist/types/context.js +2 -0
- package/engine/dist/types/context.js.map +1 -0
- package/engine/dist/types/index.d.ts +20 -0
- package/engine/dist/types/index.d.ts.map +1 -0
- package/engine/dist/types/index.js +18 -0
- package/engine/dist/types/index.js.map +1 -0
- package/engine/dist/types/search.d.ts +31 -0
- package/engine/dist/types/search.d.ts.map +1 -0
- package/engine/dist/types/search.js +2 -0
- package/engine/dist/types/search.js.map +1 -0
- package/engine/dist/types/taxonomy.d.ts +137 -0
- package/engine/dist/types/taxonomy.d.ts.map +1 -0
- package/engine/dist/types/taxonomy.js +138 -0
- package/engine/dist/types/taxonomy.js.map +1 -0
- package/engine/dist/types/taxonomy.simple.d.ts +131 -0
- package/engine/dist/types/taxonomy.simple.d.ts.map +1 -0
- package/engine/dist/types/taxonomy.simple.js +132 -0
- package/engine/dist/types/taxonomy.simple.js.map +1 -0
- package/engine/dist/types/tool-call.d.ts +16 -0
- package/engine/dist/types/tool-call.d.ts.map +1 -0
- package/engine/dist/types/tool-call.js +6 -0
- package/engine/dist/types/tool-call.js.map +1 -0
- package/engine/dist/types/trace.d.ts +25 -0
- package/engine/dist/types/trace.d.ts.map +1 -0
- package/engine/dist/types/trace.js +5 -0
- package/engine/dist/types/trace.js.map +1 -0
- package/engine/dist/utils/adaptive-concurrency.d.ts +81 -0
- package/engine/dist/utils/adaptive-concurrency.d.ts.map +1 -0
- package/engine/dist/utils/adaptive-concurrency.js +266 -0
- package/engine/dist/utils/adaptive-concurrency.js.map +1 -0
- package/engine/dist/utils/date_extractor.d.ts +2 -0
- package/engine/dist/utils/date_extractor.d.ts.map +1 -0
- package/engine/dist/utils/date_extractor.js +32 -0
- package/engine/dist/utils/date_extractor.js.map +1 -0
- package/engine/dist/utils/native-module-manager.d.ts +48 -0
- package/engine/dist/utils/native-module-manager.d.ts.map +1 -0
- package/engine/dist/utils/native-module-manager.js +265 -0
- package/engine/dist/utils/native-module-manager.js.map +1 -0
- package/engine/dist/utils/native-module-profiler.d.ts +66 -0
- package/engine/dist/utils/native-module-profiler.d.ts.map +1 -0
- package/engine/dist/utils/native-module-profiler.js +182 -0
- package/engine/dist/utils/native-module-profiler.js.map +1 -0
- package/engine/dist/utils/path-manager.d.ts +59 -0
- package/engine/dist/utils/path-manager.d.ts.map +1 -0
- package/engine/dist/utils/path-manager.js +154 -0
- package/engine/dist/utils/path-manager.js.map +1 -0
- package/engine/dist/utils/performance-monitor.d.ts +92 -0
- package/engine/dist/utils/performance-monitor.d.ts.map +1 -0
- package/engine/dist/utils/performance-monitor.js +221 -0
- package/engine/dist/utils/performance-monitor.js.map +1 -0
- package/engine/dist/utils/process-manager.d.ts +18 -0
- package/engine/dist/utils/process-manager.d.ts.map +1 -0
- package/engine/dist/utils/process-manager.js +100 -0
- package/engine/dist/utils/process-manager.js.map +1 -0
- package/engine/dist/utils/request-tracer.d.ts +131 -0
- package/engine/dist/utils/request-tracer.d.ts.map +1 -0
- package/engine/dist/utils/request-tracer.js +414 -0
- package/engine/dist/utils/request-tracer.js.map +1 -0
- package/engine/dist/utils/resource-manager.d.ts +108 -0
- package/engine/dist/utils/resource-manager.d.ts.map +1 -0
- package/engine/dist/utils/resource-manager.js +235 -0
- package/engine/dist/utils/resource-manager.js.map +1 -0
- package/engine/dist/utils/safe-dns.d.ts +14 -0
- package/engine/dist/utils/safe-dns.d.ts.map +1 -0
- package/engine/dist/utils/safe-dns.js +105 -0
- package/engine/dist/utils/safe-dns.js.map +1 -0
- package/engine/dist/utils/structured-logger.d.ts +124 -0
- package/engine/dist/utils/structured-logger.d.ts.map +1 -0
- package/engine/dist/utils/structured-logger.js +332 -0
- package/engine/dist/utils/structured-logger.js.map +1 -0
- package/engine/dist/utils/tag-cleanup.d.ts +11 -0
- package/engine/dist/utils/tag-cleanup.d.ts.map +1 -0
- package/engine/dist/utils/tag-cleanup.js +111 -0
- package/engine/dist/utils/tag-cleanup.js.map +1 -0
- package/engine/dist/utils/tag-filter.d.ts +19 -0
- package/engine/dist/utils/tag-filter.d.ts.map +1 -0
- package/engine/dist/utils/tag-filter.js +147 -0
- package/engine/dist/utils/tag-filter.js.map +1 -0
- package/engine/dist/utils/tag-modulation.d.ts +80 -0
- package/engine/dist/utils/tag-modulation.d.ts.map +1 -0
- package/engine/dist/utils/tag-modulation.js +284 -0
- package/engine/dist/utils/tag-modulation.js.map +1 -0
- package/engine/dist/utils/timer.d.ts +40 -0
- package/engine/dist/utils/timer.d.ts.map +1 -0
- package/engine/dist/utils/timer.js +76 -0
- package/engine/dist/utils/timer.js.map +1 -0
- package/engine/dist/utils/token-utils.d.ts +19 -0
- package/engine/dist/utils/token-utils.d.ts.map +1 -0
- package/engine/dist/utils/token-utils.js +71 -0
- package/engine/dist/utils/token-utils.js.map +1 -0
- package/engine/dist/utils/wasm-module-loader.d.ts +50 -0
- package/engine/dist/utils/wasm-module-loader.d.ts.map +1 -0
- package/engine/dist/utils/wasm-module-loader.js +136 -0
- package/engine/dist/utils/wasm-module-loader.js.map +1 -0
- package/engine/package.json +105 -0
- package/package.json +106 -0
|
@@ -0,0 +1,377 @@
|
|
|
1
|
+
# ECE_Core Testing Framework Documentation
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
The ECE_Core testing framework provides a comprehensive suite of tests to ensure system reliability, performance, and correctness. This framework includes:
|
|
6
|
+
|
|
7
|
+
- Unit tests for individual components
|
|
8
|
+
- Integration tests for system workflows
|
|
9
|
+
- Performance regression tests
|
|
10
|
+
- Diagnostic tests for issue reproduction
|
|
11
|
+
- Dataset-specific configuration tests
|
|
12
|
+
|
|
13
|
+
## Architecture
|
|
14
|
+
|
|
15
|
+
### Core Components
|
|
16
|
+
|
|
17
|
+
1. **Test Framework Core** (`core.ts`)
|
|
18
|
+
- Provides the foundational test execution infrastructure
|
|
19
|
+
- Manages test lifecycle, execution, and reporting
|
|
20
|
+
- Supports parallel execution and dependency management
|
|
21
|
+
|
|
22
|
+
2. **Configuration Manager** (`config.ts`)
|
|
23
|
+
- Handles test configuration and environment setup
|
|
24
|
+
- Manages dataset-specific configurations
|
|
25
|
+
- Provides configuration validation
|
|
26
|
+
|
|
27
|
+
3. **Diagnostic Test Runner** (`diagnostic-tests.ts`)
|
|
28
|
+
- Implements quick diagnostic tests for issue reproduction
|
|
29
|
+
- Provides health checks for core system components
|
|
30
|
+
- Offers targeted testing for specific failure modes
|
|
31
|
+
|
|
32
|
+
4. **Performance Test Runner** (`performance-tests.ts`)
|
|
33
|
+
- Implements performance regression tests
|
|
34
|
+
- Measures system performance under various loads
|
|
35
|
+
- Tracks performance metrics over time
|
|
36
|
+
|
|
37
|
+
5. **Dataset Test Runner** (`dataset-runner.ts`)
|
|
38
|
+
- Manages dataset-specific test configurations
|
|
39
|
+
- Provides tailored testing for different data types and sizes
|
|
40
|
+
- Supports various content formats and structures
|
|
41
|
+
|
|
42
|
+
## Test Types
|
|
43
|
+
|
|
44
|
+
### 1. Unit Tests
|
|
45
|
+
|
|
46
|
+
Unit tests focus on individual functions and modules in isolation:
|
|
47
|
+
|
|
48
|
+
```typescript
|
|
49
|
+
import { testFramework } from './test-framework/core.js';
|
|
50
|
+
|
|
51
|
+
// Example unit test
|
|
52
|
+
testFramework.addTest({
|
|
53
|
+
name: 'Atomizer Functionality',
|
|
54
|
+
description: 'Test the atomization of content into semantic units',
|
|
55
|
+
testFn: async () => {
|
|
56
|
+
const result = await atomizer.atomize('Test content', 'test-source');
|
|
57
|
+
assert(Array.isArray(result), 'Result should be an array');
|
|
58
|
+
assert(result.length > 0, 'Should return at least one atom');
|
|
59
|
+
},
|
|
60
|
+
timeout: 5000,
|
|
61
|
+
tags: ['unit', 'atomizer']
|
|
62
|
+
});
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### 2. Integration Tests
|
|
66
|
+
|
|
67
|
+
Integration tests verify the interaction between multiple components:
|
|
68
|
+
|
|
69
|
+
```typescript
|
|
70
|
+
// Example integration test
|
|
71
|
+
testFramework.addTest({
|
|
72
|
+
name: 'Ingestion Pipeline',
|
|
73
|
+
description: 'Test the full ingestion pipeline from input to storage',
|
|
74
|
+
testFn: async () => {
|
|
75
|
+
// Test the complete flow from ingestion to search
|
|
76
|
+
const content = 'Test content for integration';
|
|
77
|
+
const result = await ingestionService.ingest(content);
|
|
78
|
+
|
|
79
|
+
// Verify content is searchable
|
|
80
|
+
const searchResults = await searchService.search('Test');
|
|
81
|
+
assert(searchResults.length > 0, 'Content should be searchable after ingestion');
|
|
82
|
+
},
|
|
83
|
+
timeout: 15000,
|
|
84
|
+
tags: ['integration', 'ingestion', 'search']
|
|
85
|
+
});
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### 3. Performance Tests
|
|
89
|
+
|
|
90
|
+
Performance tests measure system performance and detect regressions:
|
|
91
|
+
|
|
92
|
+
```typescript
|
|
93
|
+
// Example performance test
|
|
94
|
+
testFramework.addTest({
|
|
95
|
+
name: 'Search Performance',
|
|
96
|
+
description: 'Test search response time under load',
|
|
97
|
+
testFn: async () => {
|
|
98
|
+
const startTime = performance.now();
|
|
99
|
+
const results = await searchService.search('performance test');
|
|
100
|
+
const duration = performance.now() - startTime;
|
|
101
|
+
|
|
102
|
+
assert(duration < 1000, `Search should complete in under 1000ms, took ${duration}ms`);
|
|
103
|
+
},
|
|
104
|
+
timeout: 10000,
|
|
105
|
+
tags: ['performance', 'search']
|
|
106
|
+
});
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### 4. Diagnostic Tests
|
|
110
|
+
|
|
111
|
+
Diagnostic tests provide quick validation and issue reproduction:
|
|
112
|
+
|
|
113
|
+
```typescript
|
|
114
|
+
// Example diagnostic test
|
|
115
|
+
testFramework.addTest({
|
|
116
|
+
name: 'Database Connectivity',
|
|
117
|
+
description: 'Verify database connection and basic operations',
|
|
118
|
+
testFn: async () => {
|
|
119
|
+
const result = await db.run('?[a] := a = 1', {});
|
|
120
|
+
assert(result.rows.length > 0, 'Database query should return results');
|
|
121
|
+
},
|
|
122
|
+
timeout: 5000,
|
|
123
|
+
tags: ['diagnostic', 'database']
|
|
124
|
+
});
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## Running Tests
|
|
128
|
+
|
|
129
|
+
### Running All Tests
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
npm test
|
|
133
|
+
# or
|
|
134
|
+
node ./test-framework/run-tests.js
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### Running Specific Test Suites
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
# Run only diagnostic tests
|
|
141
|
+
npm run test:diagnostic
|
|
142
|
+
|
|
143
|
+
# Run only performance tests
|
|
144
|
+
npm run test:performance
|
|
145
|
+
|
|
146
|
+
# Run tests for a specific dataset
|
|
147
|
+
npm run test:dataset -- --dataset=small
|
|
148
|
+
|
|
149
|
+
# Run tests with specific tags
|
|
150
|
+
npm run test:tag -- --tag=search
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### Running Tests with Options
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
# Run tests in verbose mode
|
|
157
|
+
npm test -- --verbose
|
|
158
|
+
|
|
159
|
+
# Run tests in parallel mode
|
|
160
|
+
npm test -- --parallel
|
|
161
|
+
|
|
162
|
+
# Run specific test by name
|
|
163
|
+
npm test -- --test-name="Database Connectivity"
|
|
164
|
+
|
|
165
|
+
# Generate test report
|
|
166
|
+
npm test -- --report
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
## Configuration
|
|
170
|
+
|
|
171
|
+
### Test Configuration File
|
|
172
|
+
|
|
173
|
+
The test framework uses a configuration file to manage settings:
|
|
174
|
+
|
|
175
|
+
```json
|
|
176
|
+
{
|
|
177
|
+
"environment": {
|
|
178
|
+
"baseUrl": "http://localhost:3000",
|
|
179
|
+
"timeout": 30000,
|
|
180
|
+
"retries": 2,
|
|
181
|
+
"parallel": true,
|
|
182
|
+
"maxWorkers": 4
|
|
183
|
+
},
|
|
184
|
+
"datasets": [
|
|
185
|
+
{
|
|
186
|
+
"name": "minimal",
|
|
187
|
+
"description": "Minimal dataset for quick smoke tests",
|
|
188
|
+
"path": "./test-data/minimal",
|
|
189
|
+
"size": "small",
|
|
190
|
+
"tags": ["smoke", "quick"]
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
"name": "standard",
|
|
194
|
+
"description": "Standard dataset for comprehensive testing",
|
|
195
|
+
"path": "./test-data/standard",
|
|
196
|
+
"size": "medium",
|
|
197
|
+
"tags": ["regression", "feature"]
|
|
198
|
+
}
|
|
199
|
+
],
|
|
200
|
+
"reporters": [
|
|
201
|
+
{ "type": "console" },
|
|
202
|
+
{ "type": "json", "outputFile": "test-results.json" },
|
|
203
|
+
{ "type": "junit", "outputFile": "test-results.xml" }
|
|
204
|
+
],
|
|
205
|
+
"coverage": {
|
|
206
|
+
"enabled": true,
|
|
207
|
+
"include": ["src/**/*.{ts,js}"],
|
|
208
|
+
"exclude": ["**/node_modules/**", "**/test/**"],
|
|
209
|
+
"thresholds": {
|
|
210
|
+
"statements": 80,
|
|
211
|
+
"branches": 70,
|
|
212
|
+
"functions": 80,
|
|
213
|
+
"lines": 80
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
### Dataset-Specific Configuration
|
|
220
|
+
|
|
221
|
+
Different datasets can have specific configurations:
|
|
222
|
+
|
|
223
|
+
```typescript
|
|
224
|
+
// Example dataset configuration
|
|
225
|
+
const datasetConfigs = {
|
|
226
|
+
minimal: {
|
|
227
|
+
name: 'minimal',
|
|
228
|
+
description: 'Quick smoke tests',
|
|
229
|
+
timeout: 5000,
|
|
230
|
+
tags: ['smoke', 'quick', 'ci']
|
|
231
|
+
},
|
|
232
|
+
performance: {
|
|
233
|
+
name: 'performance',
|
|
234
|
+
description: 'Performance and stress testing',
|
|
235
|
+
timeout: 30000,
|
|
236
|
+
tags: ['performance', 'stress', 'load']
|
|
237
|
+
}
|
|
238
|
+
};
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
## Test Organization
|
|
242
|
+
|
|
243
|
+
### By Functionality
|
|
244
|
+
|
|
245
|
+
Tests are organized by system functionality:
|
|
246
|
+
|
|
247
|
+
```
|
|
248
|
+
tests/
|
|
249
|
+
├── unit/
|
|
250
|
+
│ ├── atomizer/
|
|
251
|
+
│ ├── sanitizer/
|
|
252
|
+
│ ├── fingerprinter/
|
|
253
|
+
│ └── search/
|
|
254
|
+
├── integration/
|
|
255
|
+
│ ├── ingestion/
|
|
256
|
+
│ ├── search/
|
|
257
|
+
│ └── api/
|
|
258
|
+
├── performance/
|
|
259
|
+
│ ├── ingestion/
|
|
260
|
+
│ ├── search/
|
|
261
|
+
│ └── memory/
|
|
262
|
+
├── diagnostic/
|
|
263
|
+
│ ├── health/
|
|
264
|
+
│ ├── connectivity/
|
|
265
|
+
│ └── native-modules/
|
|
266
|
+
└── dataset-specific/
|
|
267
|
+
├── minimal/
|
|
268
|
+
├── standard/
|
|
269
|
+
└── large/
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
### By Dataset Size
|
|
273
|
+
|
|
274
|
+
Different datasets require different test approaches:
|
|
275
|
+
|
|
276
|
+
- **Small datasets**: Quick smoke tests, basic functionality validation
|
|
277
|
+
- **Medium datasets**: Comprehensive feature testing, integration validation
|
|
278
|
+
- **Large datasets**: Performance testing, stress testing, memory usage validation
|
|
279
|
+
- **XL datasets**: Load testing, endurance testing, resource constraint validation
|
|
280
|
+
|
|
281
|
+
## Best Practices
|
|
282
|
+
|
|
283
|
+
### Writing Effective Tests
|
|
284
|
+
|
|
285
|
+
1. **Be Specific**: Each test should verify one specific behavior
|
|
286
|
+
2. **Use Descriptive Names**: Test names should clearly indicate what is being tested
|
|
287
|
+
3. **Include Assertions**: Every test should have clear pass/fail criteria
|
|
288
|
+
4. **Handle Cleanup**: Ensure tests clean up after themselves
|
|
289
|
+
5. **Consider Performance**: Avoid unnecessary delays in tests
|
|
290
|
+
|
|
291
|
+
### Performance Testing Guidelines
|
|
292
|
+
|
|
293
|
+
1. **Establish Baselines**: Record performance metrics for reference
|
|
294
|
+
2. **Test Under Load**: Verify performance with concurrent operations
|
|
295
|
+
3. **Monitor Resources**: Track memory and CPU usage during tests
|
|
296
|
+
4. **Test Edge Cases**: Include worst-case scenarios in performance tests
|
|
297
|
+
5. **Compare Results**: Track performance changes over time
|
|
298
|
+
|
|
299
|
+
### Diagnostic Testing Guidelines
|
|
300
|
+
|
|
301
|
+
1. **Fast Execution**: Diagnostic tests should run quickly
|
|
302
|
+
2. **Targeted Scope**: Focus on specific system components
|
|
303
|
+
3. **Clear Failure Modes**: Provide clear error messages when tests fail
|
|
304
|
+
4. **Issue Reproduction**: Create tests that reproduce known issues
|
|
305
|
+
5. **Health Verification**: Verify system health after operations
|
|
306
|
+
|
|
307
|
+
## Reporting and Monitoring
|
|
308
|
+
|
|
309
|
+
### Test Reports
|
|
310
|
+
|
|
311
|
+
The framework generates multiple types of reports:
|
|
312
|
+
|
|
313
|
+
1. **Console Output**: Real-time test execution feedback
|
|
314
|
+
2. **JSON Reports**: Structured data for CI/CD integration
|
|
315
|
+
3. **JUnit Reports**: Compatible with CI systems like Jenkins
|
|
316
|
+
4. **Performance Reports**: Detailed performance metrics and trends
|
|
317
|
+
|
|
318
|
+
### Continuous Integration
|
|
319
|
+
|
|
320
|
+
Tests are integrated into the CI/CD pipeline:
|
|
321
|
+
|
|
322
|
+
```yaml
|
|
323
|
+
# Example CI configuration
|
|
324
|
+
test:
|
|
325
|
+
stage: test
|
|
326
|
+
script:
|
|
327
|
+
- npm install
|
|
328
|
+
- npm run test:ci
|
|
329
|
+
artifacts:
|
|
330
|
+
reports:
|
|
331
|
+
junit: test-results.xml
|
|
332
|
+
paths:
|
|
333
|
+
- test-results.json
|
|
334
|
+
- performance-report.txt
|
|
335
|
+
coverage: '/Coverage: \d+\.\d+%/'
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
## Troubleshooting
|
|
339
|
+
|
|
340
|
+
### Common Issues
|
|
341
|
+
|
|
342
|
+
1. **Test Timeouts**: Increase timeout values in configuration
|
|
343
|
+
2. **Resource Exhaustion**: Run tests with fewer parallel workers
|
|
344
|
+
3. **Database Locks**: Ensure proper cleanup between tests
|
|
345
|
+
4. **Memory Leaks**: Monitor memory usage during long-running tests
|
|
346
|
+
|
|
347
|
+
### Debugging Tips
|
|
348
|
+
|
|
349
|
+
1. **Enable Verbose Logging**: Use `--verbose` flag for detailed output
|
|
350
|
+
2. **Run Single Tests**: Test specific functionality in isolation
|
|
351
|
+
3. **Check Configuration**: Verify test environment settings
|
|
352
|
+
4. **Monitor Resources**: Track system resources during test execution
|
|
353
|
+
|
|
354
|
+
## Maintenance
|
|
355
|
+
|
|
356
|
+
### Adding New Tests
|
|
357
|
+
|
|
358
|
+
1. Create test file in appropriate directory
|
|
359
|
+
2. Follow naming convention: `test-[feature-name].ts`
|
|
360
|
+
3. Add test to appropriate test suite
|
|
361
|
+
4. Update documentation if needed
|
|
362
|
+
5. Run tests to verify functionality
|
|
363
|
+
|
|
364
|
+
### Updating Existing Tests
|
|
365
|
+
|
|
366
|
+
1. Identify the test that needs updating
|
|
367
|
+
2. Understand the current test behavior
|
|
368
|
+
3. Make necessary changes while preserving test intent
|
|
369
|
+
4. Run the updated test to verify correctness
|
|
370
|
+
5. Update related tests if needed
|
|
371
|
+
|
|
372
|
+
### Performance Monitoring
|
|
373
|
+
|
|
374
|
+
1. Track performance metrics over time
|
|
375
|
+
2. Set up alerts for performance regressions
|
|
376
|
+
3. Regularly review and update performance thresholds
|
|
377
|
+
4. Optimize tests that are too slow or resource-intensive
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# UI Architecture: Glass Panel Design
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
The ECE_Core UI has evolved from the originally planned "Bright Node Protocol" and "Three Column UI" to a simpler, more maintainable "Glass Panel" design. This change was made to improve stability and reduce complexity while maintaining the core functionality.
|
|
6
|
+
|
|
7
|
+
## Previous Architecture (Deprecated)
|
|
8
|
+
|
|
9
|
+
The original plan included:
|
|
10
|
+
- **Three Column UI**: Separate panels for search, context visualization, and content
|
|
11
|
+
- **Bright Node Protocol**: Complex graph illumination for reasoning models
|
|
12
|
+
- **Advanced Context Visualization**: Interactive graph representations
|
|
13
|
+
|
|
14
|
+
## Current Architecture: Glass Panel Design
|
|
15
|
+
|
|
16
|
+
### Design Philosophy
|
|
17
|
+
- **Consistency**: Uniform glass panel aesthetic across all components
|
|
18
|
+
- **Simplicity**: Reduced complexity for better maintainability
|
|
19
|
+
- **Performance**: Improved responsiveness and stability
|
|
20
|
+
- **Usability**: Streamlined user experience
|
|
21
|
+
|
|
22
|
+
### Components
|
|
23
|
+
|
|
24
|
+
#### Search Interface
|
|
25
|
+
- **Glass Panel Styling**: Consistent frosted glass appearance
|
|
26
|
+
- **Tabbed Views**: Switch between card view and raw context view
|
|
27
|
+
- **Real-time Filtering**: Dynamic filtering with toggles
|
|
28
|
+
- **Token Budget Controls**: Adjustable limits for context retrieval
|
|
29
|
+
|
|
30
|
+
#### Context Display
|
|
31
|
+
- **Clean Layout**: Uncluttered presentation of search results
|
|
32
|
+
- **Card-based Results**: Structured display of retrieved information
|
|
33
|
+
- **Raw Context View**: Direct access to context window for debugging
|
|
34
|
+
|
|
35
|
+
#### Chat Interface
|
|
36
|
+
- **Glass Panel Theme**: Consistent with overall design language
|
|
37
|
+
- **Streamlined Conversation**: Focused on core chat functionality
|
|
38
|
+
- **Context Integration**: Shows how retrieved context influences responses
|
|
39
|
+
|
|
40
|
+
### Benefits of the Change
|
|
41
|
+
|
|
42
|
+
1. **Improved Stability**: Eliminated complex UI components that were difficult to debug
|
|
43
|
+
2. **Better Performance**: Reduced rendering overhead and memory usage
|
|
44
|
+
3. **Easier Maintenance**: Simpler codebase for ongoing development
|
|
45
|
+
4. **Consistent UX**: Unified visual language across all interfaces
|
|
46
|
+
5. **Faster Development**: Reduced time spent on UI debugging
|
|
47
|
+
|
|
48
|
+
## Implementation Details
|
|
49
|
+
|
|
50
|
+
### CSS/Styling
|
|
51
|
+
- Uses consistent glassmorphism effects throughout
|
|
52
|
+
- Shared styling variables for uniform appearance
|
|
53
|
+
- Responsive design for different screen sizes
|
|
54
|
+
|
|
55
|
+
### Component Structure
|
|
56
|
+
- Modular components that can be reused across interfaces
|
|
57
|
+
- Consistent props and interfaces
|
|
58
|
+
- Simplified state management
|
|
59
|
+
|
|
60
|
+
## Performance Achievements
|
|
61
|
+
|
|
62
|
+
The UI benefits from the underlying performance improvements in the system:
|
|
63
|
+
|
|
64
|
+
- **Cross-Platform**: Consistent performance across Windows, macOS, Linux
|
|
65
|
+
- **Memory Efficiency**: 30-50% reduction in memory usage
|
|
66
|
+
- **Responsive Design**: Improved UI responsiveness due to faster backend processing
|
|
67
|
+
|
|
68
|
+
## Future Considerations
|
|
69
|
+
|
|
70
|
+
While the current design prioritizes stability and simplicity, future enhancements may include:
|
|
71
|
+
- Gradual reintroduction of advanced visualization features
|
|
72
|
+
- Progressive enhancement of UI components
|
|
73
|
+
- User-driven feature additions based on feedback
|
|
74
|
+
|
|
75
|
+
The glass panel design provides a solid foundation for future growth while maintaining the core functionality of the ECE system.
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
% STAR Algorithm Bibliography
|
|
2
|
+
% Add these to your star-whitepaper.tex with \bibliography{BIBLIOGRAPHY}
|
|
3
|
+
|
|
4
|
+
% Foundational Work
|
|
5
|
+
@article{charikar2002similar,
|
|
6
|
+
title={Similarity estimation techniques from rounding algorithms},
|
|
7
|
+
author={Charikar, Moses S},
|
|
8
|
+
journal={Proceedings of the thiry-fourth annual ACM symposium on Theory of computing},
|
|
9
|
+
pages={380--388},
|
|
10
|
+
year={2002},
|
|
11
|
+
publisher={ACM}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
@article{brin1998anatomy,
|
|
15
|
+
title={The anatomy of a large-scale hypertextual web search engine},
|
|
16
|
+
author={Brin, Sergey and Page, Lawrence},
|
|
17
|
+
journal={Computer networks and ISDN systems},
|
|
18
|
+
volume={30},
|
|
19
|
+
number={1-7},
|
|
20
|
+
pages={107--117},
|
|
21
|
+
year={1998},
|
|
22
|
+
publisher={Elsevier}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
% Vector Retrieval
|
|
26
|
+
@article{malkov2018efficient,
|
|
27
|
+
title={Efficient and robust approximate nearest neighbor search using hierarchical navigable small world graphs},
|
|
28
|
+
author={Malkov, Yu A and Yashunin, Dmitry A},
|
|
29
|
+
journal={IEEE transactions on pattern analysis and machine intelligence},
|
|
30
|
+
volume={42},
|
|
31
|
+
number={4},
|
|
32
|
+
pages={824--836},
|
|
33
|
+
year={2018},
|
|
34
|
+
publisher={IEEE}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
@article{johnson2019billion,
|
|
38
|
+
title={Billion-scale similarity search with {GPUs}},
|
|
39
|
+
author={Johnson, Jeff and Douze, Matthijs and J{\'e}gou, H{\'e}rve},
|
|
40
|
+
journal={IEEE Transactions on Big Data},
|
|
41
|
+
volume={7},
|
|
42
|
+
number={3},
|
|
43
|
+
pages={535--547},
|
|
44
|
+
year={2019},
|
|
45
|
+
publisher={IEEE}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
% Graph-Based RAG
|
|
49
|
+
@article{wei2026tretriever,
|
|
50
|
+
title={{T-Retriever}: Tree-based Hierarchical Retrieval Augmented Generation for Textual Graphs},
|
|
51
|
+
author={Wei, Chunyu and Qin, Huaiyu and He, Siyuan and Wang, Yunhai and Chen, Yueguo},
|
|
52
|
+
journal={arXiv preprint arXiv:2601.04945},
|
|
53
|
+
year={2026}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
@article{menschikov2025personalai,
|
|
57
|
+
title={{PersonalAI}: A Systematic Comparison of Knowledge Graph Storage and Retrieval Approaches for Personalized {LLM} agents},
|
|
58
|
+
author={Menschikov, Mikhail and Evseev, Dmitry and Dochkina, Victoria and Kostoev, Ruslan and Perepechkin, Ilia and Anokhin, Petr and Burnaev, Evgeny and Semenov, Nikita},
|
|
59
|
+
journal={arXiv preprint arXiv:2506.17001},
|
|
60
|
+
year={2025}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
% Personal AI Memory
|
|
64
|
+
@article{wei2025second,
|
|
65
|
+
title={{AI}-native Memory 2.0: Second Me},
|
|
66
|
+
author={Wei, Jiale and Ying, Xiang and Gao, Tao and Bao, Fangyi and Tao, Felix and Shang, Jingbo},
|
|
67
|
+
journal={arXiv preprint arXiv:2503.08102},
|
|
68
|
+
year={2025}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
@article{salas2025cognitive,
|
|
72
|
+
title={Cognitive {AI} framework 2.0: advances in the simulation of human thought},
|
|
73
|
+
author={Salas-Guerra, Rommel},
|
|
74
|
+
journal={arXiv preprint arXiv:2502.04259},
|
|
75
|
+
year={2025}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
% RAG and Context Retrieval
|
|
79
|
+
@article{lewis2020retrieval,
|
|
80
|
+
title={Retrieval-augmented generation for knowledge-intensive {NLP} tasks},
|
|
81
|
+
author={Lewis, Patrick and Perez, Ethan and Piktus, Aleksandra and Petroni, Fabio and Karpukhin, Vladimir and Goyal, Naman and K{\"u}ttler, Heinrich and Lewis, Mike and Yih, Wen-tau and Rockt{\"a}schel, Tim and others},
|
|
82
|
+
journal={Advances in Neural Information Processing Systems},
|
|
83
|
+
volume={33},
|
|
84
|
+
pages={9459--9474},
|
|
85
|
+
year={2020}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
@article{guu2020realm,
|
|
89
|
+
title={{REALM}: Retrieval-augmented language model pre-training},
|
|
90
|
+
author={Guu, Kelvin and Lee, Kenton and Tung, Zora and Pasupat, Panupong and Chang, Mingwei},
|
|
91
|
+
journal={Proceedings of the 37th International Conference on Machine Learning},
|
|
92
|
+
pages={3929--3938},
|
|
93
|
+
year={2020}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
% Local-First and Edge Computing
|
|
97
|
+
@article{haque2023local,
|
|
98
|
+
title={Local-first software: You own your data, in spite of the cloud},
|
|
99
|
+
author={Haque, Amjad and Kleppmann, Martin and Wiggins, Adam},
|
|
100
|
+
journal={Proceedings of the 2023 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software},
|
|
101
|
+
pages={59--75},
|
|
102
|
+
year={2023},
|
|
103
|
+
publisher={ACM}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
% Knowledge Graphs
|
|
107
|
+
@article{hogan2021knowledge,
|
|
108
|
+
title={Knowledge graphs},
|
|
109
|
+
author={Hogan, Aidan and Blomqvist, Eva and Cochez, Michael and d'Amato, Claudia and de Melo, Gerard and Gutierrez, Claudio and Gayo, Jos{\'e} Emilio Labra and Kirrane, Sabrina and Neumaier, Sebastian and Polleres, Axel and others},
|
|
110
|
+
journal={ACM Computing Surveys (CSUR)},
|
|
111
|
+
volume={54},
|
|
112
|
+
number={4},
|
|
113
|
+
pages={1--37},
|
|
114
|
+
year={2021},
|
|
115
|
+
publisher={ACM New York, NY, USA}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
% Temporal Information Retrieval
|
|
119
|
+
@article{kanhabua2008surviving,
|
|
120
|
+
title={Surviving the {World Wide Web}: A survey on web archive search},
|
|
121
|
+
author={Kanhabua, Nattiya and N{\o}rv{\aa}g, Kjetil},
|
|
122
|
+
journal={Proceedings of the 12th International Conference on Extending Database Technology: Advances in Database Technology},
|
|
123
|
+
pages={675--676},
|
|
124
|
+
year={2009}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
% SimHash and Near-Duplicate Detection
|
|
128
|
+
@article{sadowski2008algorithm,
|
|
129
|
+
title={The algorithm behind the {Detect} project},
|
|
130
|
+
author={Sadowski, Caitlin and Levin, Greg},
|
|
131
|
+
journal={Google Inc.},
|
|
132
|
+
year={2008}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
% Sparse Retrieval
|
|
136
|
+
@article{lin2021pretrained,
|
|
137
|
+
title={Pretrained transformers for text ranking: {BERT} and beyond},
|
|
138
|
+
author={Lin, Jimmy and Nogueira, Rodrigo and Yates, Andrew},
|
|
139
|
+
journal={Synthesis Lectures on Human Language Technologies},
|
|
140
|
+
volume={14},
|
|
141
|
+
number={4},
|
|
142
|
+
pages={1--325},
|
|
143
|
+
year={2021},
|
|
144
|
+
publisher={Morgan & Claypool Publishers}
|
|
145
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
% Related Work Section for STAR Whitepaper
|
|
2
|
+
% Insert after Section 2 (Mathematical Foundation) and before Section 3 (System Architecture)
|
|
3
|
+
|
|
4
|
+
\section{Related Work}
|
|
5
|
+
\label{sec:related}
|
|
6
|
+
|
|
7
|
+
\subsection{Vector-Based Retrieval-Augmented Generation}
|
|
8
|
+
|
|
9
|
+
Modern RAG systems predominantly rely on dense vector representations and approximate nearest neighbor (ANN) search. HNSW (Hierarchical Navigable Small World) graphs \cite{malkov2018efficient} and FAISS \cite{johnson2019billion} represent the state-of-the-art for vector retrieval, offering sub-linear query complexity. However, these approaches require loading complete indices into RAM-often gigabytes for modest corpora-restricting deployment to high-specification servers. Furthermore, vector similarity provides limited explainability: a result matches because its embedding is "close" to the query, but the specific reasoning remains opaque. STAR addresses these limitations through sparse graph traversal, enabling CPU-only deployment on resource-constrained devices while providing explicit tag-based provenance for every result.
|
|
10
|
+
|
|
11
|
+
\subsection{Graph-Based Memory Systems}
|
|
12
|
+
|
|
13
|
+
Recent work has explored graph structures as alternatives to dense vectors. T-Retriever \cite{wei2026tretriever} introduces tree-based hierarchical retrieval using semantic-structural entropy for encoding textual graphs. While effective for hierarchical document structures, T-Retriever does not incorporate temporal decay-a key requirement for personal memory systems where recency matters. PersonalAI \cite{menschikov2025personalai} proposes a knowledge graph framework with hyper-edges for personalized LLM agents, achieving strong results on TriviaQA and HotpotQA benchmarks. However, PersonalAI focuses on framework design rather than production implementation; STAR contributes a complete, deployed system with validated performance on 28M tokens of real-world data.
|
|
14
|
+
|
|
15
|
+
Our bipartite graph approach (Atoms $\times$ Tags) differs from general knowledge graphs by enforcing a strict separation between content and metadata. This enables O(1) deduplication via SimHash \cite{charikar2002similar} and supports disposable index architectures where the database can be rebuilt entirely from the source-of-truth filesystem.
|
|
16
|
+
|
|
17
|
+
\subsection{Personal AI Memory Systems}
|
|
18
|
+
|
|
19
|
+
The advent of large context windows has renewed interest in personal AI memory. Second Me \cite{wei2025second} proposes LLM-based memory parameterization, using language models themselves to structure and retrieve personal knowledge. While powerful, this approach requires significant computational resources and offers limited explainability. STAR achieves similar associative retrieval goals through deterministic physics-based scoring, enabling deployment on 4GB RAM laptops without GPU acceleration.
|
|
20
|
+
|
|
21
|
+
Cognitive AI frameworks \cite{salas2025cognitive} emphasize governed memory architectures for long-term coherence. STAR's ephemeral index design (Standard 110) aligns with these principles while adding practical constraints for local-first deployment: zero cloud dependencies, AGPL-3.0 licensing, and real-world validation.
|
|
22
|
+
|
|
23
|
+
\subsection{Temporal Information Retrieval}
|
|
24
|
+
|
|
25
|
+
Temporal decay has been explored in web archive search \cite{kanhabua2008surviving} and recency-weighted ranking, but is rarely integrated into RAG systems as a fundamental scoring component. STAR's Unified Field Equation (Equation~\ref{eq:unified_field}) embeds temporal decay multiplicatively alongside semantic and structural factors, ensuring that any zero factor eliminates irrelevant results. This differs from additive scoring approaches where weak signals can accumulate noise.
|
|
26
|
+
|
|
27
|
+
\subsection{Local-First and Edge Computing}
|
|
28
|
+
|
|
29
|
+
The local-first software movement \cite{haque2023local} emphasizes user data ownership and offline capability. STAR's browser paradigm extends these principles to AI memory: just as browsers render content without downloading the entire internet, STAR retrieves context without loading complete vector indices. This enables sovereign operation-users maintain complete control over their data without cloud dependencies.
|
|
30
|
+
|
|
31
|
+
\subsection{Summary of Contributions}
|
|
32
|
+
|
|
33
|
+
STAR distinguishes itself from prior work through:
|
|
34
|
+
\begin{enumerate}
|
|
35
|
+
\item \textbf{Sparse Graph Physics:} Multiplicative scoring combining co-occurrence, temporal decay, and SimHash similarity (Section \ref{sec:math}).
|
|
36
|
+
\item \textbf{Browser Paradigm:} Sharded atomization enabling resource-constrained devices to navigate large corpora (Section \ref{sec:architecture}).
|
|
37
|
+
\item \textbf{Production Validation:} Real-world deployment with 28M tokens, $<$200ms p95 latency, and 4GB RAM compatibility (Section \ref{sec:benchmarks}).
|
|
38
|
+
\item \textbf{Explainable Retrieval:} Tag paths provide deterministic provenance for every result (Section \ref{sec:retrieval}).
|
|
39
|
+
\end{enumerate}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
@echo off
|
|
2
|
+
REM STAR Whitepaper Compilation Script
|
|
3
|
+
REM Run this 4 times for references to resolve
|
|
4
|
+
|
|
5
|
+
echo ========================================
|
|
6
|
+
echo STAR Whitepaper - Compilation Script
|
|
7
|
+
echo ========================================
|
|
8
|
+
echo.
|
|
9
|
+
|
|
10
|
+
cd /d "%~dp0"
|
|
11
|
+
|
|
12
|
+
echo Step 1/4: First pdflatex pass...
|
|
13
|
+
pdflatex -interaction=nonstopmode star-whitepaper.tex
|
|
14
|
+
if errorlevel 1 (
|
|
15
|
+
echo ERROR: First pdflatex pass failed!
|
|
16
|
+
pause
|
|
17
|
+
exit /b 1
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
echo.
|
|
21
|
+
echo Step 2/4: Running bibtex...
|
|
22
|
+
bibtex star-whitepaper
|
|
23
|
+
if errorlevel 1 (
|
|
24
|
+
echo ERROR: BibTeX failed!
|
|
25
|
+
pause
|
|
26
|
+
exit /b 1
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
echo.
|
|
30
|
+
echo Step 3/4: Second pdflatex pass...
|
|
31
|
+
pdflatex -interaction=nonstopmode star-whitepaper.tex
|
|
32
|
+
|
|
33
|
+
echo.
|
|
34
|
+
echo Step 4/4: Third pdflatex pass (final)...
|
|
35
|
+
pdflatex -interaction=nonstopmode star-whitepaper.tex
|
|
36
|
+
|
|
37
|
+
echo.
|
|
38
|
+
echo ========================================
|
|
39
|
+
echo Compilation Complete!
|
|
40
|
+
echo ========================================
|
|
41
|
+
echo.
|
|
42
|
+
echo Output: star-whitepaper.pdf
|
|
43
|
+
echo.
|
|
44
|
+
echo If you see "Label(s) may have changed" warnings,
|
|
45
|
+
echo run this script one more time.
|
|
46
|
+
echo.
|
|
47
|
+
|
|
48
|
+
pause
|