kynjal-cli 4.0.0 → 4.0.1
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/dist/src/appliance/gguf-engine.d.ts +91 -0
- package/dist/src/appliance/gguf-engine.d.ts.map +1 -0
- package/dist/src/appliance/gguf-engine.js +286 -525
- package/dist/src/appliance/gguf-engine.js.map +1 -1
- package/dist/src/appliance/ruvllm-bridge.d.ts +102 -0
- package/dist/src/appliance/ruvllm-bridge.d.ts.map +1 -0
- package/dist/src/appliance/ruvllm-bridge.js +203 -403
- package/dist/src/appliance/ruvllm-bridge.js.map +1 -1
- package/dist/src/appliance/rvfa-builder.d.ts +44 -0
- package/dist/src/appliance/rvfa-builder.d.ts.map +1 -0
- package/dist/src/appliance/rvfa-builder.js +154 -208
- package/dist/src/appliance/rvfa-builder.js.map +1 -1
- package/dist/src/appliance/rvfa-distribution.d.ts +97 -0
- package/dist/src/appliance/rvfa-distribution.d.ts.map +1 -0
- package/dist/src/appliance/rvfa-distribution.js +260 -423
- package/dist/src/appliance/rvfa-distribution.js.map +1 -1
- package/dist/src/appliance/rvfa-format.d.ts +111 -0
- package/dist/src/appliance/rvfa-format.d.ts.map +1 -0
- package/dist/src/appliance/rvfa-format.js +128 -200
- package/dist/src/appliance/rvfa-format.js.map +1 -1
- package/dist/src/appliance/rvfa-runner.d.ts +69 -0
- package/dist/src/appliance/rvfa-runner.d.ts.map +1 -0
- package/dist/src/appliance/rvfa-runner.js +168 -304
- package/dist/src/appliance/rvfa-runner.js.map +1 -1
- package/dist/src/appliance/rvfa-signing.d.ts +123 -0
- package/dist/src/appliance/rvfa-signing.d.ts.map +1 -0
- package/dist/src/appliance/rvfa-signing.js +173 -295
- package/dist/src/appliance/rvfa-signing.js.map +1 -1
- package/dist/src/benchmarks/pretrain/index.d.ts +58 -0
- package/dist/src/benchmarks/pretrain/index.d.ts.map +1 -0
- package/dist/src/benchmarks/pretrain/index.js +331 -542
- package/dist/src/benchmarks/pretrain/index.js.map +1 -1
- package/dist/src/commands/agent.js +574 -697
- package/dist/src/commands/agent.js.map +1 -1
- package/dist/src/commands/analyze.js +1218 -1548
- package/dist/src/commands/analyze.js.map +1 -1
- package/dist/src/commands/appliance-advanced.js +158 -267
- package/dist/src/commands/appliance-advanced.js.map +1 -1
- package/dist/src/commands/appliance.js +318 -493
- package/dist/src/commands/appliance.js.map +1 -1
- package/dist/src/commands/benchmark.js +372 -523
- package/dist/src/commands/benchmark.js.map +1 -1
- package/dist/src/commands/claims.js +274 -364
- package/dist/src/commands/claims.js.map +1 -1
- package/dist/src/commands/cleanup.js +113 -157
- package/dist/src/commands/cleanup.js.map +1 -1
- package/dist/src/commands/completions.js +477 -118
- package/dist/src/commands/completions.js.map +1 -1
- package/dist/src/commands/config.js +237 -303
- package/dist/src/commands/config.js.map +1 -1
- package/dist/src/commands/daemon.js +487 -596
- package/dist/src/commands/daemon.js.map +1 -1
- package/dist/src/commands/deployment.js +194 -275
- package/dist/src/commands/deployment.js.map +1 -1
- package/dist/src/commands/doctor.js +504 -686
- package/dist/src/commands/doctor.js.map +1 -1
- package/dist/src/commands/embeddings.js +1293 -1543
- package/dist/src/commands/embeddings.js.map +1 -1
- package/dist/src/commands/guidance.js +449 -596
- package/dist/src/commands/guidance.js.map +1 -1
- package/dist/src/commands/hive-mind.js +854 -938
- package/dist/src/commands/hive-mind.js.map +1 -1
- package/dist/src/commands/hooks.js +3112 -3519
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/index.d.ts +115 -0
- package/dist/src/commands/index.d.ts.map +1 -0
- package/dist/src/commands/index.js +126 -308
- package/dist/src/commands/index.js.map +1 -1
- package/dist/src/commands/init.js +788 -940
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/issues.js +383 -558
- package/dist/src/commands/issues.js.map +1 -1
- package/dist/src/commands/mcp.js +493 -605
- package/dist/src/commands/mcp.js.map +1 -1
- package/dist/src/commands/memory.js +833 -1026
- package/dist/src/commands/memory.js.map +1 -1
- package/dist/src/commands/migrate.js +282 -347
- package/dist/src/commands/migrate.js.map +1 -1
- package/dist/src/commands/neural.js +1289 -1563
- package/dist/src/commands/neural.js.map +1 -1
- package/dist/src/commands/performance.js +497 -643
- package/dist/src/commands/performance.js.map +1 -1
- package/dist/src/commands/plugins.js +668 -841
- package/dist/src/commands/plugins.js.map +1 -1
- package/dist/src/commands/process.js +392 -447
- package/dist/src/commands/process.js.map +1 -1
- package/dist/src/commands/progress.js +162 -256
- package/dist/src/commands/progress.js.map +1 -1
- package/dist/src/commands/providers.js +150 -220
- package/dist/src/commands/providers.js.map +1 -1
- package/dist/src/commands/route.js +520 -665
- package/dist/src/commands/route.js.map +1 -1
- package/dist/src/commands/ruvector/backup.js +505 -651
- package/dist/src/commands/ruvector/backup.js.map +1 -1
- package/dist/src/commands/ruvector/benchmark.js +349 -401
- package/dist/src/commands/ruvector/benchmark.js.map +1 -1
- package/dist/src/commands/ruvector/import.js +224 -266
- package/dist/src/commands/ruvector/import.js.map +1 -1
- package/dist/src/commands/ruvector/index.js +37 -75
- package/dist/src/commands/ruvector/index.js.map +1 -1
- package/dist/src/commands/ruvector/init.js +336 -359
- package/dist/src/commands/ruvector/init.js.map +1 -1
- package/dist/src/commands/ruvector/migrate.js +335 -322
- package/dist/src/commands/ruvector/migrate.js.map +1 -1
- package/dist/src/commands/ruvector/optimize.js +375 -431
- package/dist/src/commands/ruvector/optimize.js.map +1 -1
- package/dist/src/commands/ruvector/setup.js +703 -117
- package/dist/src/commands/ruvector/setup.js.map +1 -1
- package/dist/src/commands/ruvector/status.js +364 -419
- package/dist/src/commands/ruvector/status.js.map +1 -1
- package/dist/src/commands/security.js +485 -608
- package/dist/src/commands/security.js.map +1 -1
- package/dist/src/commands/session.js +504 -626
- package/dist/src/commands/session.js.map +1 -1
- package/dist/src/commands/start.js +267 -364
- package/dist/src/commands/start.js.map +1 -1
- package/dist/src/commands/status.js +380 -486
- package/dist/src/commands/status.js.map +1 -1
- package/dist/src/commands/swarm.js +408 -488
- package/dist/src/commands/swarm.js.map +1 -1
- package/dist/src/commands/task.js +423 -538
- package/dist/src/commands/task.js.map +1 -1
- package/dist/src/commands/transfer-store.js +322 -412
- package/dist/src/commands/transfer-store.js.map +1 -1
- package/dist/src/commands/update.js +196 -291
- package/dist/src/commands/update.js.map +1 -1
- package/dist/src/commands/workflow.js +386 -486
- package/dist/src/commands/workflow.js.map +1 -1
- package/dist/src/config-adapter.d.ts +15 -0
- package/dist/src/config-adapter.d.ts.map +1 -0
- package/dist/src/config-adapter.js +38 -39
- package/dist/src/config-adapter.js.map +1 -1
- package/dist/src/index.d.ts +77 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +309 -411
- package/dist/src/index.js.map +1 -1
- package/dist/src/infrastructure/in-memory-repositories.d.ts +68 -0
- package/dist/src/infrastructure/in-memory-repositories.d.ts.map +1 -0
- package/dist/src/infrastructure/in-memory-repositories.js +246 -507
- package/dist/src/infrastructure/in-memory-repositories.js.map +1 -1
- package/dist/src/init/claudemd-generator.d.ts +25 -0
- package/dist/src/init/claudemd-generator.d.ts.map +1 -0
- package/dist/src/init/claudemd-generator.js +368 -78
- package/dist/src/init/claudemd-generator.js.map +1 -1
- package/dist/src/init/executor.d.ts +41 -0
- package/dist/src/init/executor.d.ts.map +1 -0
- package/dist/src/init/executor.js +1307 -996
- package/dist/src/init/executor.js.map +1 -1
- package/dist/src/init/helpers-generator.d.ts +60 -0
- package/dist/src/init/helpers-generator.d.ts.map +1 -0
- package/dist/src/init/helpers-generator.js +657 -12
- package/dist/src/init/helpers-generator.js.map +1 -1
- package/dist/src/init/index.d.ts +1 -1
- package/dist/src/init/index.d.ts.map +1 -1
- package/dist/src/init/index.js +1 -1
- package/dist/src/init/index.js.map +1 -1
- package/dist/src/init/mcp-generator.js +33 -37
- package/dist/src/init/mcp-generator.js.map +1 -1
- package/dist/src/init/settings-generator.js +76 -77
- package/dist/src/init/settings-generator.js.map +1 -1
- package/dist/src/init/statusline-generator.js +801 -3
- package/dist/src/init/statusline-generator.js.map +1 -1
- package/dist/src/init/types.d.ts +1 -1
- package/dist/src/init/types.d.ts.map +1 -1
- package/dist/src/init/types.js +76 -59
- package/dist/src/init/types.js.map +1 -1
- package/dist/src/mcp-client.d.ts +92 -0
- package/dist/src/mcp-client.d.ts.map +1 -0
- package/dist/src/mcp-client.js +81 -125
- package/dist/src/mcp-client.js.map +1 -1
- package/dist/src/mcp-server.d.ts +161 -0
- package/dist/src/mcp-server.d.ts.map +1 -0
- package/dist/src/mcp-server.js +470 -757
- package/dist/src/mcp-server.js.map +1 -1
- package/dist/src/mcp-tools/agent-tools.js +391 -492
- package/dist/src/mcp-tools/agent-tools.js.map +1 -1
- package/dist/src/mcp-tools/agentdb-tools.js +332 -533
- package/dist/src/mcp-tools/agentdb-tools.js.map +1 -1
- package/dist/src/mcp-tools/analyze-tools.js +172 -236
- package/dist/src/mcp-tools/analyze-tools.js.map +1 -1
- package/dist/src/mcp-tools/auto-install.d.ts +83 -0
- package/dist/src/mcp-tools/auto-install.d.ts.map +1 -0
- package/dist/src/mcp-tools/auto-install.js +80 -142
- package/dist/src/mcp-tools/auto-install.js.map +1 -1
- package/dist/src/mcp-tools/browser-tools.js +252 -375
- package/dist/src/mcp-tools/browser-tools.js.map +1 -1
- package/dist/src/mcp-tools/claims-tools.js +473 -565
- package/dist/src/mcp-tools/claims-tools.js.map +1 -1
- package/dist/src/mcp-tools/config-tools.js +197 -272
- package/dist/src/mcp-tools/config-tools.js.map +1 -1
- package/dist/src/mcp-tools/coordination-tools.js +500 -572
- package/dist/src/mcp-tools/coordination-tools.js.map +1 -1
- package/dist/src/mcp-tools/daa-tools.js +286 -364
- package/dist/src/mcp-tools/daa-tools.js.map +1 -1
- package/dist/src/mcp-tools/embeddings-tools.js +582 -693
- package/dist/src/mcp-tools/embeddings-tools.js.map +1 -1
- package/dist/src/mcp-tools/github-tools.js +260 -311
- package/dist/src/mcp-tools/github-tools.js.map +1 -1
- package/dist/src/mcp-tools/hive-mind-tools.js +573 -640
- package/dist/src/mcp-tools/hive-mind-tools.js.map +1 -1
- package/dist/src/mcp-tools/hooks-tools.js +2215 -2648
- package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
- package/dist/src/mcp-tools/memory-tools.js +350 -505
- package/dist/src/mcp-tools/memory-tools.js.map +1 -1
- package/dist/src/mcp-tools/neural-tools.js +315 -412
- package/dist/src/mcp-tools/neural-tools.js.map +1 -1
- package/dist/src/mcp-tools/performance-tools.js +420 -480
- package/dist/src/mcp-tools/performance-tools.js.map +1 -1
- package/dist/src/mcp-tools/progress-tools.js +204 -278
- package/dist/src/mcp-tools/progress-tools.js.map +1 -1
- package/dist/src/mcp-tools/ruvllm-tools.js +163 -279
- package/dist/src/mcp-tools/ruvllm-tools.js.map +1 -1
- package/dist/src/mcp-tools/security-tools.js +297 -429
- package/dist/src/mcp-tools/security-tools.js.map +1 -1
- package/dist/src/mcp-tools/session-tools.js +185 -234
- package/dist/src/mcp-tools/session-tools.js.map +1 -1
- package/dist/src/mcp-tools/swarm-tools.js +207 -260
- package/dist/src/mcp-tools/swarm-tools.js.map +1 -1
- package/dist/src/mcp-tools/system-tools.js +276 -325
- package/dist/src/mcp-tools/system-tools.js.map +1 -1
- package/dist/src/mcp-tools/task-tools.js +270 -336
- package/dist/src/mcp-tools/task-tools.js.map +1 -1
- package/dist/src/mcp-tools/terminal-tools.js +148 -196
- package/dist/src/mcp-tools/terminal-tools.js.map +1 -1
- package/dist/src/mcp-tools/transfer-tools.js +186 -333
- package/dist/src/mcp-tools/transfer-tools.js.map +1 -1
- package/dist/src/mcp-tools/types.d.ts +31 -0
- package/dist/src/mcp-tools/types.d.ts.map +1 -0
- package/dist/src/mcp-tools/wasm-agent-tools.js +133 -280
- package/dist/src/mcp-tools/wasm-agent-tools.js.map +1 -1
- package/dist/src/mcp-tools/workflow-tools.js +405 -450
- package/dist/src/mcp-tools/workflow-tools.js.map +1 -1
- package/dist/src/memory/ewc-consolidation.d.ts +295 -0
- package/dist/src/memory/ewc-consolidation.d.ts.map +1 -0
- package/dist/src/memory/ewc-consolidation.js +190 -303
- package/dist/src/memory/ewc-consolidation.js.map +1 -1
- package/dist/src/memory/intelligence.d.ts +338 -0
- package/dist/src/memory/intelligence.d.ts.map +1 -0
- package/dist/src/memory/intelligence.js +569 -794
- package/dist/src/memory/intelligence.js.map +1 -1
- package/dist/src/memory/memory-bridge.d.ts +407 -0
- package/dist/src/memory/memory-bridge.d.ts.map +1 -0
- package/dist/src/memory/memory-bridge.js +1170 -1640
- package/dist/src/memory/memory-bridge.js.map +1 -1
- package/dist/src/memory/memory-initializer.d.ts +412 -0
- package/dist/src/memory/memory-initializer.d.ts.map +1 -0
- package/dist/src/memory/memory-initializer.js +1836 -1851
- package/dist/src/memory/memory-initializer.js.map +1 -1
- package/dist/src/memory/sona-optimizer.d.ts +227 -0
- package/dist/src/memory/sona-optimizer.d.ts.map +1 -0
- package/dist/src/memory/sona-optimizer.js +199 -329
- package/dist/src/memory/sona-optimizer.js.map +1 -1
- package/dist/src/output.d.ts +2 -2
- package/dist/src/output.d.ts.map +1 -1
- package/dist/src/output.js +242 -272
- package/dist/src/output.js.map +1 -1
- package/dist/src/parser.d.ts +51 -0
- package/dist/src/parser.d.ts.map +1 -0
- package/dist/src/parser.js +140 -187
- package/dist/src/parser.js.map +1 -1
- package/dist/src/plugins/manager.d.ts +133 -0
- package/dist/src/plugins/manager.d.ts.map +1 -0
- package/dist/src/plugins/manager.js +285 -521
- package/dist/src/plugins/manager.js.map +1 -1
- package/dist/src/plugins/store/discovery.d.ts +88 -0
- package/dist/src/plugins/store/discovery.d.ts.map +1 -0
- package/dist/src/plugins/store/discovery.js +271 -358
- package/dist/src/plugins/store/discovery.js.map +1 -1
- package/dist/src/plugins/store/index.d.ts +76 -0
- package/dist/src/plugins/store/index.d.ts.map +1 -0
- package/dist/src/plugins/store/index.js +48 -105
- package/dist/src/plugins/store/index.js.map +1 -1
- package/dist/src/plugins/store/search.d.ts +46 -0
- package/dist/src/plugins/store/search.d.ts.map +1 -0
- package/dist/src/plugins/store/search.js +69 -107
- package/dist/src/plugins/store/search.js.map +1 -1
- package/dist/src/plugins/store/types.d.ts +274 -0
- package/dist/src/plugins/store/types.d.ts.map +1 -0
- package/dist/src/plugins/tests/demo-plugin-store.js +113 -160
- package/dist/src/plugins/tests/demo-plugin-store.js.map +1 -1
- package/dist/src/plugins/tests/standalone-test.js +172 -223
- package/dist/src/plugins/tests/standalone-test.js.map +1 -1
- package/dist/src/plugins/tests/test-plugin-store.js +190 -228
- package/dist/src/plugins/tests/test-plugin-store.js.map +1 -1
- package/dist/src/production/circuit-breaker.d.ts +101 -0
- package/dist/src/production/circuit-breaker.d.ts.map +1 -0
- package/dist/src/production/circuit-breaker.js +62 -126
- package/dist/src/production/circuit-breaker.js.map +1 -1
- package/dist/src/production/error-handler.d.ts +92 -0
- package/dist/src/production/error-handler.d.ts.map +1 -0
- package/dist/src/production/error-handler.js +86 -156
- package/dist/src/production/error-handler.js.map +1 -1
- package/dist/src/production/monitoring.d.ts +161 -0
- package/dist/src/production/monitoring.d.ts.map +1 -0
- package/dist/src/production/monitoring.js +139 -220
- package/dist/src/production/monitoring.js.map +1 -1
- package/dist/src/production/rate-limiter.d.ts +80 -0
- package/dist/src/production/rate-limiter.d.ts.map +1 -0
- package/dist/src/production/rate-limiter.js +74 -93
- package/dist/src/production/rate-limiter.js.map +1 -1
- package/dist/src/production/retry.d.ts +48 -0
- package/dist/src/production/retry.d.ts.map +1 -0
- package/dist/src/production/retry.js +75 -167
- package/dist/src/production/retry.js.map +1 -1
- package/dist/src/prompt.d.ts +44 -0
- package/dist/src/prompt.d.ts.map +1 -0
- package/dist/src/prompt.js +436 -560
- package/dist/src/prompt.js.map +1 -1
- package/dist/src/runtime/headless.d.ts +60 -0
- package/dist/src/runtime/headless.d.ts.map +1 -0
- package/dist/src/runtime/headless.js +197 -286
- package/dist/src/runtime/headless.js.map +1 -1
- package/dist/src/ruvector/agent-wasm.d.ts +182 -0
- package/dist/src/ruvector/agent-wasm.d.ts.map +1 -0
- package/dist/src/ruvector/agent-wasm.js +156 -351
- package/dist/src/ruvector/agent-wasm.js.map +1 -1
- package/dist/src/ruvector/ast-analyzer.d.ts +67 -0
- package/dist/src/ruvector/ast-analyzer.d.ts.map +1 -0
- package/dist/src/ruvector/ast-analyzer.js +145 -232
- package/dist/src/ruvector/ast-analyzer.js.map +1 -1
- package/dist/src/ruvector/coverage-router.d.ts +160 -0
- package/dist/src/ruvector/coverage-router.d.ts.map +1 -0
- package/dist/src/ruvector/coverage-router.js +287 -419
- package/dist/src/ruvector/coverage-router.js.map +1 -1
- package/dist/src/ruvector/coverage-tools.js +56 -101
- package/dist/src/ruvector/coverage-tools.js.map +1 -1
- package/dist/src/ruvector/diff-classifier.d.ts +175 -0
- package/dist/src/ruvector/diff-classifier.d.ts.map +1 -0
- package/dist/src/ruvector/diff-classifier.js +324 -451
- package/dist/src/ruvector/diff-classifier.js.map +1 -1
- package/dist/src/ruvector/enhanced-model-router.d.ts +146 -0
- package/dist/src/ruvector/enhanced-model-router.d.ts.map +1 -0
- package/dist/src/ruvector/enhanced-model-router.js +260 -336
- package/dist/src/ruvector/enhanced-model-router.js.map +1 -1
- package/dist/src/ruvector/flash-attention.d.ts +195 -0
- package/dist/src/ruvector/flash-attention.d.ts.map +1 -0
- package/dist/src/ruvector/flash-attention.js +223 -254
- package/dist/src/ruvector/flash-attention.js.map +1 -1
- package/dist/src/ruvector/graph-analyzer.d.ts +187 -0
- package/dist/src/ruvector/graph-analyzer.d.ts.map +1 -0
- package/dist/src/ruvector/graph-analyzer.js +486 -680
- package/dist/src/ruvector/graph-analyzer.js.map +1 -1
- package/dist/src/ruvector/index.d.ts +40 -0
- package/dist/src/ruvector/index.d.ts.map +1 -0
- package/dist/src/ruvector/index.js +36 -106
- package/dist/src/ruvector/index.js.map +1 -1
- package/dist/src/ruvector/lora-adapter.d.ts +218 -0
- package/dist/src/ruvector/lora-adapter.d.ts.map +1 -0
- package/dist/src/ruvector/lora-adapter.js +155 -248
- package/dist/src/ruvector/lora-adapter.js.map +1 -1
- package/dist/src/ruvector/model-router.d.ts +220 -0
- package/dist/src/ruvector/model-router.d.ts.map +1 -0
- package/dist/src/ruvector/model-router.js +175 -248
- package/dist/src/ruvector/model-router.js.map +1 -1
- package/dist/src/ruvector/moe-router.d.ts +206 -0
- package/dist/src/ruvector/moe-router.d.ts.map +1 -0
- package/dist/src/ruvector/moe-router.js +228 -286
- package/dist/src/ruvector/moe-router.js.map +1 -1
- package/dist/src/ruvector/q-learning-router.d.ts +211 -0
- package/dist/src/ruvector/q-learning-router.d.ts.map +1 -0
- package/dist/src/ruvector/q-learning-router.js +257 -338
- package/dist/src/ruvector/q-learning-router.js.map +1 -1
- package/dist/src/ruvector/ruvllm-wasm.d.ts +179 -0
- package/dist/src/ruvector/ruvllm-wasm.d.ts.map +1 -0
- package/dist/src/ruvector/ruvllm-wasm.js +270 -434
- package/dist/src/ruvector/ruvllm-wasm.js.map +1 -1
- package/dist/src/ruvector/semantic-router.d.ts +77 -0
- package/dist/src/ruvector/semantic-router.d.ts.map +1 -0
- package/dist/src/ruvector/semantic-router.js +60 -67
- package/dist/src/ruvector/semantic-router.js.map +1 -1
- package/dist/src/ruvector/vector-db.d.ts +69 -0
- package/dist/src/ruvector/vector-db.d.ts.map +1 -0
- package/dist/src/ruvector/vector-db.js +119 -205
- package/dist/src/ruvector/vector-db.js.map +1 -1
- package/dist/src/services/agentic-flow-bridge.d.ts +50 -0
- package/dist/src/services/agentic-flow-bridge.d.ts.map +1 -0
- package/dist/src/services/agentic-flow-bridge.js +32 -105
- package/dist/src/services/agentic-flow-bridge.js.map +1 -1
- package/dist/src/services/claim-service.d.ts +204 -0
- package/dist/src/services/claim-service.d.ts.map +1 -0
- package/dist/src/services/claim-service.js +615 -940
- package/dist/src/services/claim-service.js.map +1 -1
- package/dist/src/services/container-worker-pool.d.ts +197 -0
- package/dist/src/services/container-worker-pool.d.ts.map +1 -0
- package/dist/src/services/container-worker-pool.js +398 -666
- package/dist/src/services/container-worker-pool.js.map +1 -1
- package/dist/src/services/headless-worker-executor.d.ts +304 -0
- package/dist/src/services/headless-worker-executor.d.ts.map +1 -0
- package/dist/src/services/headless-worker-executor.js +441 -467
- package/dist/src/services/headless-worker-executor.js.map +1 -1
- package/dist/src/services/index.d.ts +4 -4
- package/dist/src/services/index.d.ts.map +1 -1
- package/dist/src/services/index.js +4 -4
- package/dist/src/services/index.js.map +1 -1
- package/dist/src/services/registry-api.d.ts +58 -0
- package/dist/src/services/registry-api.d.ts.map +1 -0
- package/dist/src/services/registry-api.js +92 -200
- package/dist/src/services/registry-api.js.map +1 -1
- package/dist/src/services/ruvector-training.d.ts +222 -0
- package/dist/src/services/ruvector-training.d.ts.map +1 -0
- package/dist/src/services/ruvector-training.js +257 -337
- package/dist/src/services/ruvector-training.js.map +1 -1
- package/dist/src/services/worker-daemon.d.ts +228 -0
- package/dist/src/services/worker-daemon.d.ts.map +1 -0
- package/dist/src/services/worker-daemon.js +591 -849
- package/dist/src/services/worker-daemon.js.map +1 -1
- package/dist/src/services/worker-queue.d.ts +194 -0
- package/dist/src/services/worker-queue.d.ts.map +1 -0
- package/dist/src/services/worker-queue.js +331 -548
- package/dist/src/services/worker-queue.js.map +1 -1
- package/dist/src/suggest.d.ts +53 -0
- package/dist/src/suggest.d.ts.map +1 -0
- package/dist/src/suggest.js +45 -55
- package/dist/src/suggest.js.map +1 -1
- package/dist/src/transfer/anonymization/index.js +29 -37
- package/dist/src/transfer/anonymization/index.js.map +1 -1
- package/dist/src/transfer/deploy-seraphine.js +128 -155
- package/dist/src/transfer/deploy-seraphine.js.map +1 -1
- package/dist/src/transfer/export.d.ts +25 -0
- package/dist/src/transfer/export.d.ts.map +1 -0
- package/dist/src/transfer/export.js +84 -142
- package/dist/src/transfer/export.js.map +1 -1
- package/dist/src/transfer/index.d.ts +1 -1
- package/dist/src/transfer/index.d.ts.map +1 -1
- package/dist/src/transfer/index.js +0 -2
- package/dist/src/transfer/index.js.map +1 -1
- package/dist/src/transfer/ipfs/client.d.ts +109 -0
- package/dist/src/transfer/ipfs/client.d.ts.map +1 -0
- package/dist/src/transfer/ipfs/client.js +187 -337
- package/dist/src/transfer/ipfs/client.js.map +1 -1
- package/dist/src/transfer/ipfs/upload.d.ts +95 -0
- package/dist/src/transfer/ipfs/upload.d.ts.map +1 -0
- package/dist/src/transfer/ipfs/upload.js +288 -434
- package/dist/src/transfer/ipfs/upload.js.map +1 -1
- package/dist/src/transfer/models/seraphine.d.ts +72 -0
- package/dist/src/transfer/models/seraphine.d.ts.map +1 -0
- package/dist/src/transfer/models/seraphine.js +55 -55
- package/dist/src/transfer/models/seraphine.js.map +1 -1
- package/dist/src/transfer/serialization/cfp.d.ts +49 -0
- package/dist/src/transfer/serialization/cfp.d.ts.map +1 -0
- package/dist/src/transfer/serialization/cfp.js +30 -31
- package/dist/src/transfer/serialization/cfp.js.map +1 -1
- package/dist/src/transfer/storage/gcs.d.ts +82 -0
- package/dist/src/transfer/storage/gcs.d.ts.map +1 -0
- package/dist/src/transfer/storage/gcs.js +165 -232
- package/dist/src/transfer/storage/gcs.js.map +1 -1
- package/dist/src/transfer/store/discovery.d.ts +84 -0
- package/dist/src/transfer/store/discovery.d.ts.map +1 -0
- package/dist/src/transfer/store/discovery.js +239 -349
- package/dist/src/transfer/store/discovery.js.map +1 -1
- package/dist/src/transfer/store/download.d.ts +70 -0
- package/dist/src/transfer/store/download.d.ts.map +1 -0
- package/dist/src/transfer/store/download.js +243 -365
- package/dist/src/transfer/store/download.js.map +1 -1
- package/dist/src/transfer/store/index.d.ts +84 -0
- package/dist/src/transfer/store/index.d.ts.map +1 -0
- package/dist/src/transfer/store/index.js +63 -130
- package/dist/src/transfer/store/index.js.map +1 -1
- package/dist/src/transfer/store/publish.d.ts +76 -0
- package/dist/src/transfer/store/publish.d.ts.map +1 -0
- package/dist/src/transfer/store/publish.js +184 -258
- package/dist/src/transfer/store/publish.js.map +1 -1
- package/dist/src/transfer/store/registry.js +50 -72
- package/dist/src/transfer/store/registry.js.map +1 -1
- package/dist/src/transfer/store/search.d.ts +54 -0
- package/dist/src/transfer/store/search.d.ts.map +1 -0
- package/dist/src/transfer/store/search.js +64 -96
- package/dist/src/transfer/store/search.js.map +1 -1
- package/dist/src/transfer/store/tests/standalone-test.js +174 -231
- package/dist/src/transfer/store/tests/standalone-test.js.map +1 -1
- package/dist/src/transfer/test-seraphine.js +95 -130
- package/dist/src/transfer/test-seraphine.js.map +1 -1
- package/dist/src/transfer/tests/test-store.js +194 -239
- package/dist/src/transfer/tests/test-store.js.map +1 -1
- package/dist/src/transfer/types.d.ts +245 -0
- package/dist/src/transfer/types.d.ts.map +1 -0
- package/dist/src/types.d.ts +198 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +26 -55
- package/dist/src/types.js.map +1 -1
- package/dist/src/update/checker.d.ts +34 -0
- package/dist/src/update/checker.d.ts.map +1 -0
- package/dist/src/update/checker.js +106 -183
- package/dist/src/update/checker.js.map +1 -1
- package/dist/src/update/executor.d.ts +32 -0
- package/dist/src/update/executor.d.ts.map +1 -0
- package/dist/src/update/executor.js +135 -198
- package/dist/src/update/executor.js.map +1 -1
- package/dist/src/update/index.d.ts +33 -0
- package/dist/src/update/index.d.ts.map +1 -0
- package/dist/src/update/index.js +38 -85
- package/dist/src/update/index.js.map +1 -1
- package/dist/src/update/rate-limiter.d.ts +20 -0
- package/dist/src/update/rate-limiter.d.ts.map +1 -0
- package/dist/src/update/rate-limiter.js +19 -31
- package/dist/src/update/rate-limiter.js.map +1 -1
- package/dist/src/update/validator.d.ts +17 -0
- package/dist/src/update/validator.d.ts.map +1 -0
- package/dist/src/update/validator.js +38 -64
- package/dist/src/update/validator.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -3,105 +3,35 @@
|
|
|
3
3
|
* Discovers plugin registries via IPNS and fetches from IPFS
|
|
4
4
|
* Parallel implementation to pattern store for plugins
|
|
5
5
|
*/
|
|
6
|
-
var __assign = (this && this.__assign) || function () {
|
|
7
|
-
__assign = Object.assign || function(t) {
|
|
8
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
9
|
-
s = arguments[i];
|
|
10
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
11
|
-
t[p] = s[p];
|
|
12
|
-
}
|
|
13
|
-
return t;
|
|
14
|
-
};
|
|
15
|
-
return __assign.apply(this, arguments);
|
|
16
|
-
};
|
|
17
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
18
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
19
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
20
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
21
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
22
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
23
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
24
|
-
});
|
|
25
|
-
};
|
|
26
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
27
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
28
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
29
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
30
|
-
function step(op) {
|
|
31
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
32
|
-
while (_) try {
|
|
33
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
34
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
35
|
-
switch (op[0]) {
|
|
36
|
-
case 0: case 1: t = op; break;
|
|
37
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
38
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
39
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
40
|
-
default:
|
|
41
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
42
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
43
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
44
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
45
|
-
if (t[2]) _.ops.pop();
|
|
46
|
-
_.trys.pop(); continue;
|
|
47
|
-
}
|
|
48
|
-
op = body.call(thisArg, _);
|
|
49
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
50
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
54
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
55
|
-
if (ar || !(i in from)) {
|
|
56
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
57
|
-
ar[i] = from[i];
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
61
|
-
};
|
|
62
6
|
import * as crypto from 'crypto';
|
|
63
7
|
import { resolveIPNS, fetchFromIPFS } from '../../transfer/ipfs/client.js';
|
|
64
8
|
/**
|
|
65
9
|
* Fetch real npm download stats for a package
|
|
66
10
|
*/
|
|
67
|
-
function fetchNpmStats(packageName) {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
packageData = _b.sent();
|
|
92
|
-
version = packageData.version || 'unknown';
|
|
93
|
-
_b.label = 5;
|
|
94
|
-
case 5: return [2 /*return*/, {
|
|
95
|
-
downloads: downloadsData.downloads || 0,
|
|
96
|
-
version: version
|
|
97
|
-
}];
|
|
98
|
-
case 6:
|
|
99
|
-
_a = _b.sent();
|
|
100
|
-
return [2 /*return*/, null];
|
|
101
|
-
case 7: return [2 /*return*/];
|
|
102
|
-
}
|
|
103
|
-
});
|
|
104
|
-
});
|
|
11
|
+
async function fetchNpmStats(packageName) {
|
|
12
|
+
try {
|
|
13
|
+
// Fetch last week downloads
|
|
14
|
+
const downloadsUrl = `https://api.npmjs.org/downloads/point/last-week/${encodeURIComponent(packageName)}`;
|
|
15
|
+
const downloadsRes = await fetch(downloadsUrl, { signal: AbortSignal.timeout(3000) });
|
|
16
|
+
if (!downloadsRes.ok)
|
|
17
|
+
return null;
|
|
18
|
+
const downloadsData = await downloadsRes.json();
|
|
19
|
+
// Fetch package info for version
|
|
20
|
+
const packageUrl = `https://registry.npmjs.org/${encodeURIComponent(packageName)}/latest`;
|
|
21
|
+
const packageRes = await fetch(packageUrl, { signal: AbortSignal.timeout(3000) });
|
|
22
|
+
let version = 'unknown';
|
|
23
|
+
if (packageRes.ok) {
|
|
24
|
+
const packageData = await packageRes.json();
|
|
25
|
+
version = packageData.version || 'unknown';
|
|
26
|
+
}
|
|
27
|
+
return {
|
|
28
|
+
downloads: downloadsData.downloads || 0,
|
|
29
|
+
version,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
105
35
|
}
|
|
106
36
|
/**
|
|
107
37
|
* Default plugin store configuration
|
|
@@ -110,14 +40,14 @@ function fetchNpmStats(packageName) {
|
|
|
110
40
|
* Live IPFS Registry CID - Updated 2026-01-24
|
|
111
41
|
* This is the current pinned registry on Pinata
|
|
112
42
|
*/
|
|
113
|
-
export
|
|
43
|
+
export const LIVE_REGISTRY_CID = 'QmXbfEAaR7D2Ujm4GAkbwcGZQMHqAMpwDoje4583uNP834';
|
|
114
44
|
/**
|
|
115
45
|
* Pre-trained Model Registry CID - Updated 2026-01-24
|
|
116
46
|
* Contains 8 pre-trained learning pattern models with 40 patterns
|
|
117
47
|
* Trained on 110,600+ examples with 90.5% average accuracy
|
|
118
48
|
*/
|
|
119
|
-
export
|
|
120
|
-
export
|
|
49
|
+
export const MODEL_REGISTRY_CID = 'QmNr1yYMKi7YBaL8JSztQyuB5ZUaTdRMLxJC1pBpGbjsTc';
|
|
50
|
+
export const DEFAULT_PLUGIN_STORE_CONFIG = {
|
|
121
51
|
registries: [
|
|
122
52
|
{
|
|
123
53
|
name: 'claude-flow-official',
|
|
@@ -127,207 +57,188 @@ export var DEFAULT_PLUGIN_STORE_CONFIG = {
|
|
|
127
57
|
gateway: 'https://gateway.pinata.cloud',
|
|
128
58
|
publicKey: 'ed25519:21490c8ef5e6d9fea573382e52fbad7d0fa40c3eb124e6746706da7a420ae2d2',
|
|
129
59
|
trusted: true,
|
|
130
|
-
official: true
|
|
60
|
+
official: true,
|
|
131
61
|
},
|
|
132
62
|
{
|
|
133
63
|
name: 'community-plugins',
|
|
134
64
|
description: 'Community-contributed plugins',
|
|
135
|
-
ipnsName: LIVE_REGISTRY_CID,
|
|
65
|
+
ipnsName: LIVE_REGISTRY_CID, // Same registry for now
|
|
136
66
|
gateway: 'https://ipfs.io',
|
|
137
67
|
publicKey: 'ed25519:21490c8ef5e6d9fea573382e52fbad7d0fa40c3eb124e6746706da7a420ae2d2',
|
|
138
68
|
trusted: true,
|
|
139
|
-
official: false
|
|
69
|
+
official: false,
|
|
140
70
|
},
|
|
141
71
|
],
|
|
142
72
|
defaultRegistry: 'claude-flow-official',
|
|
143
73
|
gateway: 'https://gateway.pinata.cloud',
|
|
144
74
|
timeout: 30000,
|
|
145
75
|
cacheDir: '.claude-flow/plugins/cache',
|
|
146
|
-
cacheExpiry: 3600000,
|
|
76
|
+
cacheExpiry: 3600000, // 1 hour
|
|
147
77
|
requireVerification: true,
|
|
148
78
|
requireSecurityAudit: false,
|
|
149
79
|
minTrustLevel: 'community',
|
|
150
80
|
trustedAuthors: [],
|
|
151
81
|
blockedPlugins: [],
|
|
152
82
|
allowedPermissions: ['network', 'filesystem', 'memory', 'hooks'],
|
|
153
|
-
requirePermissionPrompt: true
|
|
83
|
+
requirePermissionPrompt: true,
|
|
154
84
|
};
|
|
155
85
|
/**
|
|
156
86
|
* Plugin Discovery Service
|
|
157
87
|
*/
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
this.config =
|
|
88
|
+
export class PluginDiscoveryService {
|
|
89
|
+
config;
|
|
90
|
+
cache = new Map();
|
|
91
|
+
constructor(config = {}) {
|
|
92
|
+
this.config = { ...DEFAULT_PLUGIN_STORE_CONFIG, ...config };
|
|
163
93
|
}
|
|
164
94
|
/**
|
|
165
95
|
* Discover plugin registry via IPNS
|
|
166
96
|
*/
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
case 3:
|
|
204
|
-
// Resolve IPNS to get current CID
|
|
205
|
-
cid = _a.sent();
|
|
206
|
-
if (!cid) {
|
|
207
|
-
// Fallback to demo registry
|
|
208
|
-
return [2 /*return*/, this.createDemoRegistryAsync(registry)];
|
|
209
|
-
}
|
|
210
|
-
console.log("[PluginDiscovery] Resolved IPNS to CID: " + cid);
|
|
211
|
-
_a.label = 4;
|
|
212
|
-
case 4: return [4 /*yield*/, fetchFromIPFS(cid, registry.gateway)];
|
|
213
|
-
case 5:
|
|
214
|
-
registryData = _a.sent();
|
|
215
|
-
if (!registryData) {
|
|
216
|
-
return [2 /*return*/, this.createDemoRegistryAsync(registry)];
|
|
217
|
-
}
|
|
218
|
-
// Verify registry signature if required
|
|
219
|
-
if (this.config.requireVerification && registryData.registrySignature) {
|
|
220
|
-
verified = this.verifyRegistrySignature(registryData, registry.publicKey);
|
|
221
|
-
if (!verified) {
|
|
222
|
-
console.warn("[PluginDiscovery] Registry signature verification failed");
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
// Cache the result
|
|
226
|
-
this.cache.set(registry.ipnsName, {
|
|
227
|
-
registry: registryData,
|
|
228
|
-
timestamp: Date.now()
|
|
229
|
-
});
|
|
230
|
-
return [2 /*return*/, {
|
|
231
|
-
success: true,
|
|
232
|
-
registry: registryData,
|
|
233
|
-
cid: cid,
|
|
234
|
-
source: registry.name,
|
|
235
|
-
fromCache: false
|
|
236
|
-
}];
|
|
237
|
-
case 6:
|
|
238
|
-
error_1 = _a.sent();
|
|
239
|
-
console.error("[PluginDiscovery] Failed to discover registry:", error_1);
|
|
240
|
-
// Return demo registry on error
|
|
241
|
-
return [2 /*return*/, this.createDemoRegistryAsync(registry)];
|
|
242
|
-
case 7: return [2 /*return*/];
|
|
97
|
+
async discoverRegistry(registryName) {
|
|
98
|
+
const targetRegistry = registryName || this.config.defaultRegistry;
|
|
99
|
+
const registry = this.config.registries.find(r => r.name === targetRegistry);
|
|
100
|
+
if (!registry) {
|
|
101
|
+
return {
|
|
102
|
+
success: false,
|
|
103
|
+
error: `Unknown registry: ${targetRegistry}`,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
console.log(`[PluginDiscovery] Resolving ${registry.name} via IPNS...`);
|
|
107
|
+
// Check cache first
|
|
108
|
+
const cached = this.cache.get(registry.ipnsName);
|
|
109
|
+
if (cached && Date.now() - cached.timestamp < this.config.cacheExpiry) {
|
|
110
|
+
console.log(`[PluginDiscovery] Cache hit for ${registry.name}`);
|
|
111
|
+
return {
|
|
112
|
+
success: true,
|
|
113
|
+
registry: cached.registry,
|
|
114
|
+
fromCache: true,
|
|
115
|
+
source: registry.name,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
try {
|
|
119
|
+
// Check if ipnsName is actually a direct CID (CIDv1 starts with 'baf', CIDv0 starts with 'Qm')
|
|
120
|
+
const isDirectCid = registry.ipnsName.startsWith('baf') || registry.ipnsName.startsWith('Qm');
|
|
121
|
+
let cid;
|
|
122
|
+
if (isDirectCid) {
|
|
123
|
+
// Use the CID directly - no IPNS resolution needed
|
|
124
|
+
cid = registry.ipnsName;
|
|
125
|
+
console.log(`[PluginDiscovery] Using direct CID: ${cid}`);
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
// Resolve IPNS to get current CID
|
|
129
|
+
cid = await resolveIPNS(registry.ipnsName, registry.gateway);
|
|
130
|
+
if (!cid) {
|
|
131
|
+
// Fallback to demo registry
|
|
132
|
+
return this.createDemoRegistryAsync(registry);
|
|
243
133
|
}
|
|
134
|
+
console.log(`[PluginDiscovery] Resolved IPNS to CID: ${cid}`);
|
|
135
|
+
}
|
|
136
|
+
// Fetch registry from IPFS
|
|
137
|
+
const registryData = await fetchFromIPFS(cid, registry.gateway);
|
|
138
|
+
if (!registryData) {
|
|
139
|
+
return this.createDemoRegistryAsync(registry);
|
|
140
|
+
}
|
|
141
|
+
// Verify registry signature if required
|
|
142
|
+
if (this.config.requireVerification && registryData.registrySignature) {
|
|
143
|
+
const verified = this.verifyRegistrySignature(registryData, registry.publicKey);
|
|
144
|
+
if (!verified) {
|
|
145
|
+
console.warn(`[PluginDiscovery] Registry signature verification failed`);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
// Cache the result
|
|
149
|
+
this.cache.set(registry.ipnsName, {
|
|
150
|
+
registry: registryData,
|
|
151
|
+
timestamp: Date.now(),
|
|
244
152
|
});
|
|
245
|
-
|
|
246
|
-
|
|
153
|
+
return {
|
|
154
|
+
success: true,
|
|
155
|
+
registry: registryData,
|
|
156
|
+
cid,
|
|
157
|
+
source: registry.name,
|
|
158
|
+
fromCache: false,
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
catch (error) {
|
|
162
|
+
console.error(`[PluginDiscovery] Failed to discover registry:`, error);
|
|
163
|
+
// Return demo registry on error
|
|
164
|
+
return this.createDemoRegistryAsync(registry);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
247
167
|
/**
|
|
248
168
|
* Create demo plugin registry with real npm stats
|
|
249
169
|
*/
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
]
|
|
294
|
-
};
|
|
295
|
-
// Cache the demo registry
|
|
296
|
-
this.cache.set(registry.ipnsName, {
|
|
297
|
-
registry: demoRegistry,
|
|
298
|
-
timestamp: Date.now()
|
|
299
|
-
});
|
|
300
|
-
return [2 /*return*/, {
|
|
301
|
-
success: true,
|
|
302
|
-
registry: demoRegistry,
|
|
303
|
-
cid: "bafybeiplugin" + crypto.randomBytes(16).toString('hex'),
|
|
304
|
-
source: registry.name + " (demo)",
|
|
305
|
-
fromCache: false
|
|
306
|
-
}];
|
|
307
|
-
}
|
|
308
|
-
});
|
|
170
|
+
async createDemoRegistryAsync(registry) {
|
|
171
|
+
console.log(`[PluginDiscovery] Using demo registry for ${registry.name}`);
|
|
172
|
+
// Get plugins with real npm stats
|
|
173
|
+
const plugins = await this.getDemoPluginsWithStats();
|
|
174
|
+
const demoRegistry = {
|
|
175
|
+
version: '1.0.0',
|
|
176
|
+
type: 'plugins',
|
|
177
|
+
updatedAt: new Date().toISOString(),
|
|
178
|
+
ipnsName: registry.ipnsName,
|
|
179
|
+
plugins,
|
|
180
|
+
categories: [
|
|
181
|
+
{ id: 'ai-ml', name: 'AI/ML', description: 'AI and machine learning plugins', pluginCount: 1 },
|
|
182
|
+
{ id: 'security', name: 'Security', description: 'Security and compliance plugins', pluginCount: 1 },
|
|
183
|
+
{ id: 'devops', name: 'DevOps', description: 'CI/CD and deployment plugins', pluginCount: 1 },
|
|
184
|
+
{ id: 'integrations', name: 'Integrations', description: 'Third-party integrations', pluginCount: 2 },
|
|
185
|
+
{ id: 'agents', name: 'Agents', description: 'Custom agent types', pluginCount: 1 },
|
|
186
|
+
],
|
|
187
|
+
authors: [
|
|
188
|
+
{
|
|
189
|
+
id: 'claude-flow-team',
|
|
190
|
+
displayName: 'Claude Flow Team',
|
|
191
|
+
verified: true,
|
|
192
|
+
plugins: plugins.length,
|
|
193
|
+
totalDownloads: plugins.reduce((sum, p) => sum + p.downloads, 0),
|
|
194
|
+
reputation: 100,
|
|
195
|
+
},
|
|
196
|
+
],
|
|
197
|
+
totalPlugins: plugins.length,
|
|
198
|
+
totalDownloads: plugins.reduce((sum, p) => sum + p.downloads, 0),
|
|
199
|
+
totalAuthors: 1,
|
|
200
|
+
featured: ['@claude-flow/plugin-agentic-qe', '@claude-flow/plugin-prime-radiant', '@claude-flow/security', '@claude-flow/claims', '@claude-flow/teammate-plugin'],
|
|
201
|
+
trending: ['@claude-flow/plugin-agentic-qe', '@claude-flow/plugin-prime-radiant'],
|
|
202
|
+
newest: ['@claude-flow/plugin-agentic-qe', '@claude-flow/plugin-prime-radiant'],
|
|
203
|
+
official: ['@claude-flow/plugin-agentic-qe', '@claude-flow/plugin-prime-radiant', '@claude-flow/security', '@claude-flow/claims'],
|
|
204
|
+
compatibilityMatrix: [
|
|
205
|
+
{ pluginId: '@claude-flow/neural', pluginVersion: '3.0.0', claudeFlowVersions: ['3.x'], tested: true },
|
|
206
|
+
{ pluginId: '@claude-flow/security', pluginVersion: '3.0.0', claudeFlowVersions: ['3.x'], tested: true },
|
|
207
|
+
],
|
|
208
|
+
};
|
|
209
|
+
// Cache the demo registry
|
|
210
|
+
this.cache.set(registry.ipnsName, {
|
|
211
|
+
registry: demoRegistry,
|
|
212
|
+
timestamp: Date.now(),
|
|
309
213
|
});
|
|
310
|
-
|
|
214
|
+
return {
|
|
215
|
+
success: true,
|
|
216
|
+
registry: demoRegistry,
|
|
217
|
+
cid: `bafybeiplugin${crypto.randomBytes(16).toString('hex')}`,
|
|
218
|
+
source: `${registry.name} (demo)`,
|
|
219
|
+
fromCache: false,
|
|
220
|
+
};
|
|
221
|
+
}
|
|
311
222
|
/**
|
|
312
223
|
* Get demo plugins
|
|
313
224
|
*/
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
225
|
+
getDemoPlugins() {
|
|
226
|
+
const baseTime = new Date().toISOString();
|
|
227
|
+
const officialAuthor = {
|
|
317
228
|
id: 'claude-flow-team',
|
|
318
229
|
displayName: 'Claude Flow Team',
|
|
319
230
|
verified: true,
|
|
320
231
|
plugins: 5,
|
|
321
232
|
totalDownloads: 50000,
|
|
322
|
-
reputation: 100
|
|
233
|
+
reputation: 100,
|
|
323
234
|
};
|
|
324
|
-
|
|
235
|
+
const communityAuthor = {
|
|
325
236
|
id: 'community-contributor',
|
|
326
237
|
displayName: 'Community Contributors',
|
|
327
238
|
verified: false,
|
|
328
239
|
plugins: 7,
|
|
329
240
|
totalDownloads: 15000,
|
|
330
|
-
reputation: 85
|
|
241
|
+
reputation: 85,
|
|
331
242
|
};
|
|
332
243
|
return [
|
|
333
244
|
{
|
|
@@ -357,7 +268,7 @@ var PluginDiscoveryService = /** @class */ (function () {
|
|
|
357
268
|
permissions: ['memory', 'network'],
|
|
358
269
|
exports: ['NeuralTrainer', 'PatternRecognizer', 'FlashAttention'],
|
|
359
270
|
verified: true,
|
|
360
|
-
trustLevel: 'official'
|
|
271
|
+
trustLevel: 'official',
|
|
361
272
|
},
|
|
362
273
|
{
|
|
363
274
|
id: '@claude-flow/security',
|
|
@@ -392,8 +303,8 @@ var PluginDiscoveryService = /** @class */ (function () {
|
|
|
392
303
|
auditDate: '2024-12-01T00:00:00Z',
|
|
393
304
|
auditVersion: '3.0.0',
|
|
394
305
|
passed: true,
|
|
395
|
-
issues: []
|
|
396
|
-
}
|
|
306
|
+
issues: [],
|
|
307
|
+
},
|
|
397
308
|
},
|
|
398
309
|
{
|
|
399
310
|
id: '@claude-flow/embeddings',
|
|
@@ -425,7 +336,7 @@ var PluginDiscoveryService = /** @class */ (function () {
|
|
|
425
336
|
permissions: ['memory', 'filesystem'],
|
|
426
337
|
exports: ['EmbeddingsService', 'VectorStore', 'DocumentChunker'],
|
|
427
338
|
verified: true,
|
|
428
|
-
trustLevel: 'official'
|
|
339
|
+
trustLevel: 'official',
|
|
429
340
|
},
|
|
430
341
|
{
|
|
431
342
|
id: '@claude-flow/claims',
|
|
@@ -454,7 +365,7 @@ var PluginDiscoveryService = /** @class */ (function () {
|
|
|
454
365
|
permissions: ['config'],
|
|
455
366
|
exports: ['ClaimsManager', 'PermissionChecker'],
|
|
456
367
|
verified: true,
|
|
457
|
-
trustLevel: 'official'
|
|
368
|
+
trustLevel: 'official',
|
|
458
369
|
},
|
|
459
370
|
{
|
|
460
371
|
id: '@claude-flow/performance',
|
|
@@ -483,7 +394,7 @@ var PluginDiscoveryService = /** @class */ (function () {
|
|
|
483
394
|
permissions: ['memory'],
|
|
484
395
|
exports: ['PerformanceProfiler', 'Benchmarker'],
|
|
485
396
|
verified: true,
|
|
486
|
-
trustLevel: 'official'
|
|
397
|
+
trustLevel: 'official',
|
|
487
398
|
},
|
|
488
399
|
{
|
|
489
400
|
id: 'community-analytics',
|
|
@@ -512,7 +423,7 @@ var PluginDiscoveryService = /** @class */ (function () {
|
|
|
512
423
|
permissions: ['memory', 'network'],
|
|
513
424
|
exports: ['AnalyticsTracker', 'Dashboard'],
|
|
514
425
|
verified: false,
|
|
515
|
-
trustLevel: 'community'
|
|
426
|
+
trustLevel: 'community',
|
|
516
427
|
},
|
|
517
428
|
{
|
|
518
429
|
id: 'custom-agents',
|
|
@@ -541,7 +452,7 @@ var PluginDiscoveryService = /** @class */ (function () {
|
|
|
541
452
|
permissions: ['agents', 'memory'],
|
|
542
453
|
exports: ['DataScienceAgent', 'DevOpsAgent', 'ContentAgent'],
|
|
543
454
|
verified: false,
|
|
544
|
-
trustLevel: 'community'
|
|
455
|
+
trustLevel: 'community',
|
|
545
456
|
},
|
|
546
457
|
{
|
|
547
458
|
id: 'slack-integration',
|
|
@@ -573,7 +484,7 @@ var PluginDiscoveryService = /** @class */ (function () {
|
|
|
573
484
|
permissions: ['network', 'credentials'],
|
|
574
485
|
exports: ['SlackNotifier', 'SlackBot'],
|
|
575
486
|
verified: false,
|
|
576
|
-
trustLevel: 'community'
|
|
487
|
+
trustLevel: 'community',
|
|
577
488
|
},
|
|
578
489
|
// Plugin SDK - Unified Plugin SDK for creating plugins
|
|
579
490
|
{
|
|
@@ -618,7 +529,7 @@ var PluginDiscoveryService = /** @class */ (function () {
|
|
|
618
529
|
'ProviderPlugin',
|
|
619
530
|
],
|
|
620
531
|
verified: true,
|
|
621
|
-
trustLevel: 'official'
|
|
532
|
+
trustLevel: 'official',
|
|
622
533
|
},
|
|
623
534
|
// Agentic QE - AI-powered quality engineering
|
|
624
535
|
{
|
|
@@ -677,8 +588,8 @@ var PluginDiscoveryService = /** @class */ (function () {
|
|
|
677
588
|
auditDate: '2026-01-20T00:00:00Z',
|
|
678
589
|
auditVersion: '3.0.0-alpha.3',
|
|
679
590
|
passed: true,
|
|
680
|
-
issues: []
|
|
681
|
-
}
|
|
591
|
+
issues: [],
|
|
592
|
+
},
|
|
682
593
|
},
|
|
683
594
|
// Prime Radiant - Mathematical coherence and consensus verification
|
|
684
595
|
{
|
|
@@ -735,8 +646,8 @@ var PluginDiscoveryService = /** @class */ (function () {
|
|
|
735
646
|
auditDate: '2026-01-20T00:00:00Z',
|
|
736
647
|
auditVersion: '0.1.5',
|
|
737
648
|
passed: true,
|
|
738
|
-
issues: []
|
|
739
|
-
}
|
|
649
|
+
issues: [],
|
|
650
|
+
},
|
|
740
651
|
},
|
|
741
652
|
// Domain-specific plugins
|
|
742
653
|
{
|
|
@@ -766,7 +677,7 @@ var PluginDiscoveryService = /** @class */ (function () {
|
|
|
766
677
|
permissions: ['memory', 'network'],
|
|
767
678
|
exports: ['ClinicalAnalyzer', 'HIPAAValidator', 'MedicalNLP'],
|
|
768
679
|
verified: true,
|
|
769
|
-
trustLevel: 'official'
|
|
680
|
+
trustLevel: 'official',
|
|
770
681
|
},
|
|
771
682
|
{
|
|
772
683
|
id: '@claude-flow/plugin-financial-risk',
|
|
@@ -795,7 +706,7 @@ var PluginDiscoveryService = /** @class */ (function () {
|
|
|
795
706
|
permissions: ['memory', 'network'],
|
|
796
707
|
exports: ['RiskModeler', 'FraudDetector', 'ComplianceChecker'],
|
|
797
708
|
verified: true,
|
|
798
|
-
trustLevel: 'official'
|
|
709
|
+
trustLevel: 'official',
|
|
799
710
|
},
|
|
800
711
|
{
|
|
801
712
|
id: '@claude-flow/plugin-legal-contracts',
|
|
@@ -824,7 +735,7 @@ var PluginDiscoveryService = /** @class */ (function () {
|
|
|
824
735
|
permissions: ['memory', 'filesystem'],
|
|
825
736
|
exports: ['ContractAnalyzer', 'ClauseExtractor', 'LegalRiskAssessor'],
|
|
826
737
|
verified: true,
|
|
827
|
-
trustLevel: 'official'
|
|
738
|
+
trustLevel: 'official',
|
|
828
739
|
},
|
|
829
740
|
// Development intelligence plugins
|
|
830
741
|
{
|
|
@@ -854,7 +765,7 @@ var PluginDiscoveryService = /** @class */ (function () {
|
|
|
854
765
|
permissions: ['filesystem', 'memory'],
|
|
855
766
|
exports: ['CodeAnalyzer', 'PatternDetector', 'RefactoringEngine'],
|
|
856
767
|
verified: true,
|
|
857
|
-
trustLevel: 'official'
|
|
768
|
+
trustLevel: 'official',
|
|
858
769
|
},
|
|
859
770
|
{
|
|
860
771
|
id: '@claude-flow/plugin-test-intelligence',
|
|
@@ -883,7 +794,7 @@ var PluginDiscoveryService = /** @class */ (function () {
|
|
|
883
794
|
permissions: ['filesystem', 'memory'],
|
|
884
795
|
exports: ['TestGenerator', 'CoverageAnalyzer', 'MutationTester'],
|
|
885
796
|
verified: true,
|
|
886
|
-
trustLevel: 'official'
|
|
797
|
+
trustLevel: 'official',
|
|
887
798
|
},
|
|
888
799
|
{
|
|
889
800
|
id: '@claude-flow/plugin-perf-optimizer',
|
|
@@ -912,7 +823,7 @@ var PluginDiscoveryService = /** @class */ (function () {
|
|
|
912
823
|
permissions: ['memory', 'filesystem'],
|
|
913
824
|
exports: ['PerformanceAnalyzer', 'BottleneckDetector', 'AutoTuner'],
|
|
914
825
|
verified: true,
|
|
915
|
-
trustLevel: 'official'
|
|
826
|
+
trustLevel: 'official',
|
|
916
827
|
},
|
|
917
828
|
// Advanced AI/reasoning plugins
|
|
918
829
|
{
|
|
@@ -942,7 +853,7 @@ var PluginDiscoveryService = /** @class */ (function () {
|
|
|
942
853
|
permissions: ['memory', 'network'],
|
|
943
854
|
exports: ['NeuralCoordinator', 'EmergentModeler', 'CollectiveIntelligence'],
|
|
944
855
|
verified: true,
|
|
945
|
-
trustLevel: 'official'
|
|
856
|
+
trustLevel: 'official',
|
|
946
857
|
},
|
|
947
858
|
{
|
|
948
859
|
id: '@claude-flow/plugin-cognitive-kernel',
|
|
@@ -971,7 +882,7 @@ var PluginDiscoveryService = /** @class */ (function () {
|
|
|
971
882
|
permissions: ['memory'],
|
|
972
883
|
exports: ['CognitiveProcessor', 'AttentionMechanism', 'MetaCognitiveMonitor'],
|
|
973
884
|
verified: true,
|
|
974
|
-
trustLevel: 'official'
|
|
885
|
+
trustLevel: 'official',
|
|
975
886
|
},
|
|
976
887
|
{
|
|
977
888
|
id: '@claude-flow/plugin-quantum-optimizer',
|
|
@@ -1000,7 +911,7 @@ var PluginDiscoveryService = /** @class */ (function () {
|
|
|
1000
911
|
permissions: ['memory'],
|
|
1001
912
|
exports: ['QuantumOptimizer', 'QAOASimulator', 'VariationalCircuit'],
|
|
1002
913
|
verified: true,
|
|
1003
|
-
trustLevel: 'official'
|
|
914
|
+
trustLevel: 'official',
|
|
1004
915
|
},
|
|
1005
916
|
{
|
|
1006
917
|
id: '@claude-flow/plugin-hyperbolic-reasoning',
|
|
@@ -1029,7 +940,7 @@ var PluginDiscoveryService = /** @class */ (function () {
|
|
|
1029
940
|
permissions: ['memory'],
|
|
1030
941
|
exports: ['HyperbolicEmbedder', 'PoincareSpace', 'GeodesicAttention'],
|
|
1031
942
|
verified: true,
|
|
1032
|
-
trustLevel: 'official'
|
|
943
|
+
trustLevel: 'official',
|
|
1033
944
|
},
|
|
1034
945
|
// Gas Town Bridge - Multi-agent orchestrator integration
|
|
1035
946
|
{
|
|
@@ -1065,8 +976,8 @@ var PluginDiscoveryService = /** @class */ (function () {
|
|
|
1065
976
|
auditDate: '2026-01-24T00:00:00Z',
|
|
1066
977
|
auditVersion: '0.1.0',
|
|
1067
978
|
passed: true,
|
|
1068
|
-
issues: []
|
|
1069
|
-
}
|
|
979
|
+
issues: [],
|
|
980
|
+
},
|
|
1070
981
|
},
|
|
1071
982
|
// Teammate Plugin - Claude Code v2.1.19+ integration
|
|
1072
983
|
{
|
|
@@ -1105,126 +1016,128 @@ var PluginDiscoveryService = /** @class */ (function () {
|
|
|
1105
1016
|
auditDate: '2026-01-25T00:00:00Z',
|
|
1106
1017
|
auditVersion: '1.0.0-alpha.1',
|
|
1107
1018
|
passed: true,
|
|
1108
|
-
issues: []
|
|
1109
|
-
}
|
|
1019
|
+
issues: [],
|
|
1020
|
+
},
|
|
1110
1021
|
},
|
|
1111
1022
|
];
|
|
1112
|
-
}
|
|
1023
|
+
}
|
|
1113
1024
|
/**
|
|
1114
1025
|
* Get demo plugins with real npm stats
|
|
1115
1026
|
*/
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1027
|
+
async getDemoPluginsWithStats() {
|
|
1028
|
+
const basePlugins = this.getDemoPlugins();
|
|
1029
|
+
// Only fetch stats for real npm packages
|
|
1030
|
+
const realNpmPackages = [
|
|
1031
|
+
'@claude-flow/plugin-agentic-qe',
|
|
1032
|
+
'@claude-flow/plugin-prime-radiant',
|
|
1033
|
+
'@claude-flow/claims',
|
|
1034
|
+
'@claude-flow/security',
|
|
1035
|
+
'@claude-flow/plugins',
|
|
1036
|
+
'@claude-flow/embeddings',
|
|
1037
|
+
'@claude-flow/neural',
|
|
1038
|
+
'@claude-flow/performance',
|
|
1039
|
+
'@claude-flow/teammate-plugin',
|
|
1040
|
+
// Domain-specific plugins
|
|
1041
|
+
'@claude-flow/plugin-healthcare-clinical',
|
|
1042
|
+
'@claude-flow/plugin-financial-risk',
|
|
1043
|
+
'@claude-flow/plugin-legal-contracts',
|
|
1044
|
+
// Development intelligence plugins
|
|
1045
|
+
'@claude-flow/plugin-code-intelligence',
|
|
1046
|
+
'@claude-flow/plugin-test-intelligence',
|
|
1047
|
+
'@claude-flow/plugin-perf-optimizer',
|
|
1048
|
+
// Advanced AI/reasoning plugins
|
|
1049
|
+
'@claude-flow/plugin-neural-coordination',
|
|
1050
|
+
'@claude-flow/plugin-cognitive-kernel',
|
|
1051
|
+
'@claude-flow/plugin-quantum-optimizer',
|
|
1052
|
+
'@claude-flow/plugin-hyperbolic-reasoning',
|
|
1053
|
+
// Gas Town Bridge
|
|
1054
|
+
'@claude-flow/plugin-gastown-bridge',
|
|
1055
|
+
];
|
|
1056
|
+
// Fetch stats in parallel
|
|
1057
|
+
const statsPromises = realNpmPackages.map(pkg => fetchNpmStats(pkg));
|
|
1058
|
+
const statsResults = await Promise.all(statsPromises);
|
|
1059
|
+
// Create a map of package -> stats
|
|
1060
|
+
const statsMap = new Map();
|
|
1061
|
+
realNpmPackages.forEach((pkg, i) => {
|
|
1062
|
+
if (statsResults[i]) {
|
|
1063
|
+
statsMap.set(pkg, statsResults[i]);
|
|
1064
|
+
}
|
|
1065
|
+
});
|
|
1066
|
+
// Update plugins with real stats, remove fake plugins that don't exist
|
|
1067
|
+
return basePlugins
|
|
1068
|
+
.filter(plugin => {
|
|
1069
|
+
// Keep only real plugins that exist on npm or our two new ones
|
|
1070
|
+
const isRealPlugin = realNpmPackages.includes(plugin.name);
|
|
1071
|
+
return isRealPlugin;
|
|
1072
|
+
})
|
|
1073
|
+
.map(plugin => {
|
|
1074
|
+
const stats = statsMap.get(plugin.name);
|
|
1075
|
+
if (stats) {
|
|
1076
|
+
return {
|
|
1077
|
+
...plugin,
|
|
1078
|
+
downloads: stats.downloads,
|
|
1079
|
+
version: stats.version,
|
|
1080
|
+
ratingCount: 0, // No rating system yet
|
|
1081
|
+
rating: 0,
|
|
1082
|
+
};
|
|
1083
|
+
}
|
|
1084
|
+
return {
|
|
1085
|
+
...plugin,
|
|
1086
|
+
downloads: 0,
|
|
1087
|
+
ratingCount: 0,
|
|
1088
|
+
rating: 0,
|
|
1089
|
+
};
|
|
1175
1090
|
});
|
|
1176
|
-
}
|
|
1091
|
+
}
|
|
1177
1092
|
/**
|
|
1178
1093
|
* Verify registry signature
|
|
1179
1094
|
*/
|
|
1180
|
-
|
|
1095
|
+
verifyRegistrySignature(registry, expectedPublicKey) {
|
|
1181
1096
|
if (!registry.registrySignature || !registry.registryPublicKey) {
|
|
1182
1097
|
return false;
|
|
1183
1098
|
}
|
|
1184
1099
|
// In production: Verify Ed25519 signature
|
|
1185
1100
|
return registry.registryPublicKey.startsWith(expectedPublicKey.split(':')[0]);
|
|
1186
|
-
}
|
|
1101
|
+
}
|
|
1187
1102
|
/**
|
|
1188
1103
|
* List available registries
|
|
1189
1104
|
*/
|
|
1190
|
-
|
|
1191
|
-
return
|
|
1192
|
-
}
|
|
1105
|
+
listRegistries() {
|
|
1106
|
+
return [...this.config.registries];
|
|
1107
|
+
}
|
|
1193
1108
|
/**
|
|
1194
1109
|
* Add a new registry
|
|
1195
1110
|
*/
|
|
1196
|
-
|
|
1111
|
+
addRegistry(registry) {
|
|
1197
1112
|
this.config.registries.push(registry);
|
|
1198
|
-
}
|
|
1113
|
+
}
|
|
1199
1114
|
/**
|
|
1200
1115
|
* Remove a registry
|
|
1201
1116
|
*/
|
|
1202
|
-
|
|
1203
|
-
|
|
1117
|
+
removeRegistry(name) {
|
|
1118
|
+
const index = this.config.registries.findIndex(r => r.name === name);
|
|
1204
1119
|
if (index >= 0) {
|
|
1205
1120
|
this.config.registries.splice(index, 1);
|
|
1206
1121
|
return true;
|
|
1207
1122
|
}
|
|
1208
1123
|
return false;
|
|
1209
|
-
}
|
|
1124
|
+
}
|
|
1210
1125
|
/**
|
|
1211
1126
|
* Clear cache
|
|
1212
1127
|
*/
|
|
1213
|
-
|
|
1128
|
+
clearCache() {
|
|
1214
1129
|
this.cache.clear();
|
|
1215
|
-
}
|
|
1130
|
+
}
|
|
1216
1131
|
/**
|
|
1217
1132
|
* Get cache statistics
|
|
1218
1133
|
*/
|
|
1219
|
-
|
|
1134
|
+
getCacheStats() {
|
|
1220
1135
|
return {
|
|
1221
1136
|
entries: this.cache.size,
|
|
1222
|
-
registries: Array.from(this.cache.keys())
|
|
1137
|
+
registries: Array.from(this.cache.keys()),
|
|
1223
1138
|
};
|
|
1224
|
-
}
|
|
1225
|
-
|
|
1226
|
-
}());
|
|
1227
|
-
export { PluginDiscoveryService };
|
|
1139
|
+
}
|
|
1140
|
+
}
|
|
1228
1141
|
/**
|
|
1229
1142
|
* Create discovery service with default config
|
|
1230
1143
|
*/
|