agentdb 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +38 -0
- package/LICENSE-APACHE +190 -0
- package/LICENSE-MIT +21 -0
- package/README.md +953 -0
- package/bin/agentdb.js +485 -0
- package/bin/plugin-cli-wrapper.mjs +21 -0
- package/dist/cache/query-cache.d.ts +105 -0
- package/dist/cache/query-cache.d.ts.map +1 -0
- package/dist/cache/query-cache.js +224 -0
- package/dist/cache/query-cache.js.map +1 -0
- package/dist/cache/query-cache.mjs +219 -0
- package/dist/cli/cache/query-cache.d.ts +104 -0
- package/dist/cli/cache/query-cache.js +244 -0
- package/dist/cli/cli/db-commands.d.ts +48 -0
- package/dist/cli/cli/db-commands.js +613 -0
- package/dist/cli/commands.d.ts +7 -0
- package/dist/cli/commands.d.ts.map +1 -0
- package/dist/cli/commands.js +113 -0
- package/dist/cli/commands.js.map +1 -0
- package/dist/cli/commands.mjs +104 -0
- package/dist/cli/core/backend-interface.d.ts +70 -0
- package/dist/cli/core/backend-interface.js +15 -0
- package/dist/cli/core/native-backend.d.ts +140 -0
- package/dist/cli/core/native-backend.js +432 -0
- package/dist/cli/core/vector-db.d.ts +126 -0
- package/dist/cli/core/vector-db.js +338 -0
- package/dist/cli/core/wasm-backend.d.ts +95 -0
- package/dist/cli/core/wasm-backend.js +418 -0
- package/dist/cli/db-commands.d.ts +49 -0
- package/dist/cli/db-commands.d.ts.map +1 -0
- package/dist/cli/db-commands.js +533 -0
- package/dist/cli/db-commands.js.map +1 -0
- package/dist/cli/db-commands.mjs +522 -0
- package/dist/cli/generator.d.ts +11 -0
- package/dist/cli/generator.d.ts.map +1 -0
- package/dist/cli/generator.js +567 -0
- package/dist/cli/generator.js.map +1 -0
- package/dist/cli/generator.mjs +527 -0
- package/dist/cli/help.d.ts +18 -0
- package/dist/cli/help.d.ts.map +1 -0
- package/dist/cli/help.js +676 -0
- package/dist/cli/help.js.map +1 -0
- package/dist/cli/help.mjs +667 -0
- package/dist/cli/index/hnsw.d.ts +164 -0
- package/dist/cli/index/hnsw.js +558 -0
- package/dist/cli/plugin-cli.d.ts +7 -0
- package/dist/cli/plugin-cli.d.ts.map +1 -0
- package/dist/cli/plugin-cli.js +295 -0
- package/dist/cli/plugin-cli.js.map +1 -0
- package/dist/cli/plugin-cli.mjs +289 -0
- package/dist/cli/quantization/product-quantization.d.ts +108 -0
- package/dist/cli/quantization/product-quantization.js +350 -0
- package/dist/cli/query/query-builder.d.ts +322 -0
- package/dist/cli/query/query-builder.js +600 -0
- package/dist/cli/templates.d.ts +14 -0
- package/dist/cli/templates.d.ts.map +1 -0
- package/dist/cli/templates.js +182 -0
- package/dist/cli/templates.js.map +1 -0
- package/dist/cli/templates.mjs +176 -0
- package/dist/cli/types/index.d.ts +116 -0
- package/dist/cli/types/index.js +5 -0
- package/dist/cli/types.d.ts +91 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +6 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/cli/types.mjs +4 -0
- package/dist/cli/wizard/index.d.ts +6 -0
- package/dist/cli/wizard/index.d.ts.map +1 -0
- package/dist/cli/wizard/index.js +138 -0
- package/dist/cli/wizard/index.js.map +1 -0
- package/dist/cli/wizard/index.mjs +131 -0
- package/dist/cli/wizard/prompts.d.ts +11 -0
- package/dist/cli/wizard/prompts.d.ts.map +1 -0
- package/dist/cli/wizard/prompts.js +482 -0
- package/dist/cli/wizard/prompts.js.map +1 -0
- package/dist/cli/wizard/prompts.mjs +470 -0
- package/dist/cli/wizard/validator.d.ts +13 -0
- package/dist/cli/wizard/validator.d.ts.map +1 -0
- package/dist/cli/wizard/validator.js +234 -0
- package/dist/cli/wizard/validator.js.map +1 -0
- package/dist/cli/wizard/validator.mjs +224 -0
- package/dist/core/backend-interface.d.ts +71 -0
- package/dist/core/backend-interface.d.ts.map +1 -0
- package/dist/core/backend-interface.js +16 -0
- package/dist/core/backend-interface.js.map +1 -0
- package/dist/core/backend-interface.mjs +12 -0
- package/dist/core/native-backend.d.ts +141 -0
- package/dist/core/native-backend.d.ts.map +1 -0
- package/dist/core/native-backend.js +457 -0
- package/dist/core/native-backend.js.map +1 -0
- package/dist/core/native-backend.mjs +449 -0
- package/dist/core/vector-db.d.ts +127 -0
- package/dist/core/vector-db.d.ts.map +1 -0
- package/dist/core/vector-db.js +266 -0
- package/dist/core/vector-db.js.map +1 -0
- package/dist/core/vector-db.mjs +261 -0
- package/dist/core/wasm-backend.d.ts +96 -0
- package/dist/core/wasm-backend.d.ts.map +1 -0
- package/dist/core/wasm-backend.js +393 -0
- package/dist/core/wasm-backend.js.map +1 -0
- package/dist/core/wasm-backend.mjs +385 -0
- package/dist/index/hnsw-optimized.d.ts +75 -0
- package/dist/index/hnsw-optimized.d.ts.map +1 -0
- package/dist/index/hnsw-optimized.js +412 -0
- package/dist/index/hnsw-optimized.js.map +1 -0
- package/dist/index/hnsw-optimized.mjs +407 -0
- package/dist/index/hnsw.d.ts +165 -0
- package/dist/index/hnsw.d.ts.map +1 -0
- package/dist/index/hnsw.js +521 -0
- package/dist/index/hnsw.js.map +1 -0
- package/dist/index/hnsw.mjs +516 -0
- package/dist/index.d.ts +57 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +82 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +63 -0
- package/dist/mcp-server.d.ts +27 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +789 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/mcp-server.mjs +784 -0
- package/dist/plugins/base-plugin.d.ts +114 -0
- package/dist/plugins/base-plugin.d.ts.map +1 -0
- package/dist/plugins/base-plugin.js +313 -0
- package/dist/plugins/base-plugin.js.map +1 -0
- package/dist/plugins/base-plugin.mjs +275 -0
- package/dist/plugins/implementations/active-learning.d.ts +135 -0
- package/dist/plugins/implementations/active-learning.d.ts.map +1 -0
- package/dist/plugins/implementations/active-learning.js +372 -0
- package/dist/plugins/implementations/active-learning.js.map +1 -0
- package/dist/plugins/implementations/active-learning.mjs +367 -0
- package/dist/plugins/implementations/actor-critic.d.ts +64 -0
- package/dist/plugins/implementations/actor-critic.d.ts.map +1 -0
- package/dist/plugins/implementations/actor-critic.js +363 -0
- package/dist/plugins/implementations/actor-critic.js.map +1 -0
- package/dist/plugins/implementations/actor-critic.mjs +358 -0
- package/dist/plugins/implementations/adversarial-training.d.ts +133 -0
- package/dist/plugins/implementations/adversarial-training.d.ts.map +1 -0
- package/dist/plugins/implementations/adversarial-training.js +409 -0
- package/dist/plugins/implementations/adversarial-training.js.map +1 -0
- package/dist/plugins/implementations/adversarial-training.mjs +404 -0
- package/dist/plugins/implementations/curriculum-learning.d.ts +132 -0
- package/dist/plugins/implementations/curriculum-learning.d.ts.map +1 -0
- package/dist/plugins/implementations/curriculum-learning.js +354 -0
- package/dist/plugins/implementations/curriculum-learning.js.map +1 -0
- package/dist/plugins/implementations/curriculum-learning.mjs +349 -0
- package/dist/plugins/implementations/decision-transformer.d.ts +77 -0
- package/dist/plugins/implementations/decision-transformer.d.ts.map +1 -0
- package/dist/plugins/implementations/decision-transformer.js +422 -0
- package/dist/plugins/implementations/decision-transformer.js.map +1 -0
- package/dist/plugins/implementations/decision-transformer.mjs +417 -0
- package/dist/plugins/implementations/federated-learning.d.ts +126 -0
- package/dist/plugins/implementations/federated-learning.d.ts.map +1 -0
- package/dist/plugins/implementations/federated-learning.js +436 -0
- package/dist/plugins/implementations/federated-learning.js.map +1 -0
- package/dist/plugins/implementations/federated-learning.mjs +431 -0
- package/dist/plugins/implementations/index.d.ts +30 -0
- package/dist/plugins/implementations/index.d.ts.map +1 -0
- package/dist/plugins/implementations/index.js +45 -0
- package/dist/plugins/implementations/index.js.map +1 -0
- package/dist/plugins/implementations/index.mjs +31 -0
- package/dist/plugins/implementations/multi-task-learning.d.ts +115 -0
- package/dist/plugins/implementations/multi-task-learning.d.ts.map +1 -0
- package/dist/plugins/implementations/multi-task-learning.js +369 -0
- package/dist/plugins/implementations/multi-task-learning.js.map +1 -0
- package/dist/plugins/implementations/multi-task-learning.mjs +364 -0
- package/dist/plugins/implementations/neural-architecture-search.d.ts +148 -0
- package/dist/plugins/implementations/neural-architecture-search.d.ts.map +1 -0
- package/dist/plugins/implementations/neural-architecture-search.js +379 -0
- package/dist/plugins/implementations/neural-architecture-search.js.map +1 -0
- package/dist/plugins/implementations/neural-architecture-search.mjs +374 -0
- package/dist/plugins/implementations/q-learning.d.ts +98 -0
- package/dist/plugins/implementations/q-learning.d.ts.map +1 -0
- package/dist/plugins/implementations/q-learning.js +435 -0
- package/dist/plugins/implementations/q-learning.js.map +1 -0
- package/dist/plugins/implementations/q-learning.mjs +430 -0
- package/dist/plugins/implementations/sarsa.d.ts +103 -0
- package/dist/plugins/implementations/sarsa.d.ts.map +1 -0
- package/dist/plugins/implementations/sarsa.js +347 -0
- package/dist/plugins/implementations/sarsa.js.map +1 -0
- package/dist/plugins/implementations/sarsa.mjs +342 -0
- package/dist/plugins/index.d.ts +107 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +179 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/index.mjs +168 -0
- package/dist/plugins/interface.d.ts +439 -0
- package/dist/plugins/interface.d.ts.map +1 -0
- package/dist/plugins/interface.js +12 -0
- package/dist/plugins/interface.js.map +1 -0
- package/dist/plugins/interface.mjs +10 -0
- package/dist/plugins/learning-plugin.interface.d.ts +257 -0
- package/dist/plugins/learning-plugin.interface.d.ts.map +1 -0
- package/dist/plugins/learning-plugin.interface.js +7 -0
- package/dist/plugins/learning-plugin.interface.js.map +1 -0
- package/dist/plugins/learning-plugin.interface.mjs +5 -0
- package/dist/plugins/plugin-exports.d.ts +71 -0
- package/dist/plugins/plugin-exports.d.ts.map +1 -0
- package/dist/plugins/plugin-exports.js +78 -0
- package/dist/plugins/plugin-exports.js.map +1 -0
- package/dist/plugins/plugin-exports.mjs +69 -0
- package/dist/plugins/registry.d.ts +206 -0
- package/dist/plugins/registry.d.ts.map +1 -0
- package/dist/plugins/registry.js +365 -0
- package/dist/plugins/registry.js.map +1 -0
- package/dist/plugins/registry.mjs +356 -0
- package/dist/plugins/validator.d.ts +63 -0
- package/dist/plugins/validator.d.ts.map +1 -0
- package/dist/plugins/validator.js +464 -0
- package/dist/plugins/validator.js.map +1 -0
- package/dist/plugins/validator.mjs +458 -0
- package/dist/quantization/binary-quantization.d.ts +104 -0
- package/dist/quantization/binary-quantization.d.ts.map +1 -0
- package/dist/quantization/binary-quantization.js +246 -0
- package/dist/quantization/binary-quantization.js.map +1 -0
- package/dist/quantization/binary-quantization.mjs +240 -0
- package/dist/quantization/optimized-pq.d.ts +138 -0
- package/dist/quantization/optimized-pq.d.ts.map +1 -0
- package/dist/quantization/optimized-pq.js +320 -0
- package/dist/quantization/optimized-pq.js.map +1 -0
- package/dist/quantization/optimized-pq.mjs +313 -0
- package/dist/quantization/product-quantization.d.ts +109 -0
- package/dist/quantization/product-quantization.d.ts.map +1 -0
- package/dist/quantization/product-quantization.js +287 -0
- package/dist/quantization/product-quantization.js.map +1 -0
- package/dist/quantization/product-quantization.mjs +282 -0
- package/dist/quantization/scalar-quantization.d.ts +100 -0
- package/dist/quantization/scalar-quantization.d.ts.map +1 -0
- package/dist/quantization/scalar-quantization.js +324 -0
- package/dist/quantization/scalar-quantization.js.map +1 -0
- package/dist/quantization/scalar-quantization.mjs +319 -0
- package/dist/query/index.d.ts +6 -0
- package/dist/query/index.d.ts.map +1 -0
- package/dist/query/index.js +9 -0
- package/dist/query/index.js.map +1 -0
- package/dist/query/index.mjs +4 -0
- package/dist/query/query-builder.d.ts +323 -0
- package/dist/query/query-builder.d.ts.map +1 -0
- package/dist/query/query-builder.js +524 -0
- package/dist/query/query-builder.js.map +1 -0
- package/dist/query/query-builder.mjs +519 -0
- package/dist/reasoning/context-synthesizer.d.ts +57 -0
- package/dist/reasoning/context-synthesizer.d.ts.map +1 -0
- package/dist/reasoning/context-synthesizer.js +224 -0
- package/dist/reasoning/context-synthesizer.js.map +1 -0
- package/dist/reasoning/context-synthesizer.mjs +219 -0
- package/dist/reasoning/experience-curator.d.ts +66 -0
- package/dist/reasoning/experience-curator.d.ts.map +1 -0
- package/dist/reasoning/experience-curator.js +288 -0
- package/dist/reasoning/experience-curator.js.map +1 -0
- package/dist/reasoning/experience-curator.mjs +283 -0
- package/dist/reasoning/memory-optimizer.d.ts +69 -0
- package/dist/reasoning/memory-optimizer.d.ts.map +1 -0
- package/dist/reasoning/memory-optimizer.js +331 -0
- package/dist/reasoning/memory-optimizer.js.map +1 -0
- package/dist/reasoning/memory-optimizer.mjs +326 -0
- package/dist/reasoning/pattern-matcher.d.ts +59 -0
- package/dist/reasoning/pattern-matcher.d.ts.map +1 -0
- package/dist/reasoning/pattern-matcher.js +229 -0
- package/dist/reasoning/pattern-matcher.js.map +1 -0
- package/dist/reasoning/pattern-matcher.mjs +224 -0
- package/dist/reasoningbank/adapter/agentdb-adapter.d.ts +118 -0
- package/dist/reasoningbank/adapter/agentdb-adapter.d.ts.map +1 -0
- package/dist/reasoningbank/adapter/agentdb-adapter.js +477 -0
- package/dist/reasoningbank/adapter/agentdb-adapter.js.map +1 -0
- package/dist/reasoningbank/adapter/types.d.ts +113 -0
- package/dist/reasoningbank/adapter/types.d.ts.map +1 -0
- package/dist/reasoningbank/adapter/types.js +9 -0
- package/dist/reasoningbank/adapter/types.js.map +1 -0
- package/dist/reasoningbank/cli/commands.d.ts +16 -0
- package/dist/reasoningbank/cli/commands.d.ts.map +1 -0
- package/dist/reasoningbank/cli/commands.js +272 -0
- package/dist/reasoningbank/cli/commands.js.map +1 -0
- package/dist/reasoningbank/mcp/agentdb-tools.d.ts +319 -0
- package/dist/reasoningbank/mcp/agentdb-tools.d.ts.map +1 -0
- package/dist/reasoningbank/mcp/agentdb-tools.js +301 -0
- package/dist/reasoningbank/mcp/agentdb-tools.js.map +1 -0
- package/dist/reasoningbank/migration/migrate.d.ts +25 -0
- package/dist/reasoningbank/migration/migrate.d.ts.map +1 -0
- package/dist/reasoningbank/migration/migrate.js +178 -0
- package/dist/reasoningbank/migration/migrate.js.map +1 -0
- package/dist/reasoningbank/reasoning/context-synthesizer.d.ts +37 -0
- package/dist/reasoningbank/reasoning/context-synthesizer.d.ts.map +1 -0
- package/dist/reasoningbank/reasoning/context-synthesizer.js +114 -0
- package/dist/reasoningbank/reasoning/context-synthesizer.js.map +1 -0
- package/dist/reasoningbank/reasoning/experience-curator.d.ts +39 -0
- package/dist/reasoningbank/reasoning/experience-curator.d.ts.map +1 -0
- package/dist/reasoningbank/reasoning/experience-curator.js +98 -0
- package/dist/reasoningbank/reasoning/experience-curator.js.map +1 -0
- package/dist/reasoningbank/reasoning/memory-optimizer.d.ts +44 -0
- package/dist/reasoningbank/reasoning/memory-optimizer.d.ts.map +1 -0
- package/dist/reasoningbank/reasoning/memory-optimizer.js +184 -0
- package/dist/reasoningbank/reasoning/memory-optimizer.js.map +1 -0
- package/dist/reasoningbank/reasoning/pattern-matcher.d.ts +40 -0
- package/dist/reasoningbank/reasoning/pattern-matcher.d.ts.map +1 -0
- package/dist/reasoningbank/reasoning/pattern-matcher.js +87 -0
- package/dist/reasoningbank/reasoning/pattern-matcher.js.map +1 -0
- package/dist/reasoningbank/sync/quic-sync.d.ts +77 -0
- package/dist/reasoningbank/sync/quic-sync.d.ts.map +1 -0
- package/dist/reasoningbank/sync/quic-sync.js +165 -0
- package/dist/reasoningbank/sync/quic-sync.js.map +1 -0
- package/dist/sync/conflict.d.ts +78 -0
- package/dist/sync/conflict.d.ts.map +1 -0
- package/dist/sync/conflict.js +202 -0
- package/dist/sync/conflict.js.map +1 -0
- package/dist/sync/conflict.mjs +196 -0
- package/dist/sync/coordinator.d.ts +111 -0
- package/dist/sync/coordinator.d.ts.map +1 -0
- package/dist/sync/coordinator.js +256 -0
- package/dist/sync/coordinator.js.map +1 -0
- package/dist/sync/coordinator.mjs +250 -0
- package/dist/sync/delta.d.ts +81 -0
- package/dist/sync/delta.d.ts.map +1 -0
- package/dist/sync/delta.js +245 -0
- package/dist/sync/delta.js.map +1 -0
- package/dist/sync/delta.mjs +238 -0
- package/dist/sync/index.d.ts +11 -0
- package/dist/sync/index.d.ts.map +1 -0
- package/dist/sync/index.js +22 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/sync/index.mjs +9 -0
- package/dist/sync/quic-sync.d.ts +81 -0
- package/dist/sync/quic-sync.d.ts.map +1 -0
- package/dist/sync/quic-sync.js +329 -0
- package/dist/sync/quic-sync.js.map +1 -0
- package/dist/sync/quic-sync.mjs +323 -0
- package/dist/sync/types.d.ts +168 -0
- package/dist/sync/types.d.ts.map +1 -0
- package/dist/sync/types.js +8 -0
- package/dist/sync/types.js.map +1 -0
- package/dist/sync/types.mjs +6 -0
- package/dist/types/index.d.ts +117 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +6 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/index.mjs +4 -0
- package/dist/wasm-loader.d.ts +32 -0
- package/dist/wasm-loader.d.ts.map +1 -0
- package/dist/wasm-loader.js +75 -0
- package/dist/wasm-loader.js.map +1 -0
- package/dist/wasm-loader.mjs +64 -0
- package/examples/adaptive-learning.ts +284 -0
- package/examples/browser/README.md +732 -0
- package/examples/browser/adaptive-recommendations/index.html +427 -0
- package/examples/browser/collaborative-filtering/index.html +310 -0
- package/examples/browser/continual-learning/index.html +736 -0
- package/examples/browser/experience-replay/index.html +616 -0
- package/examples/browser/index.html +369 -0
- package/examples/browser/meta-learning/index.html +789 -0
- package/examples/browser/neuro-symbolic/index.html +692 -0
- package/examples/browser/pattern-learning/index.html +620 -0
- package/examples/browser/quantum-inspired/index.html +728 -0
- package/examples/browser/rag/index.html +624 -0
- package/examples/browser/swarm-intelligence/index.html +811 -0
- package/examples/browser-basic.html +170 -0
- package/examples/hnsw-example.ts +148 -0
- package/examples/node-basic.js +70 -0
- package/examples/quic-sync-example.ts +310 -0
- package/examples/quick-start.js +68 -0
- package/examples/wasm-example.ts +222 -0
- package/package.json +118 -0
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* SQLite Vector Learning Plugin CLI
|
|
5
|
+
* Interactive wizard for creating custom learning methodologies
|
|
6
|
+
*/
|
|
7
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
8
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
9
|
+
};
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
const commander_1 = require("commander");
|
|
12
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
13
|
+
const index_js_1 = require("./wizard/index.js");
|
|
14
|
+
const commands_js_1 = require("./commands.js");
|
|
15
|
+
const generator_js_1 = require("./generator.js");
|
|
16
|
+
const program = new commander_1.Command();
|
|
17
|
+
program
|
|
18
|
+
.name('agentdb')
|
|
19
|
+
.description('SQLite Vector Learning Plugin CLI - Create custom learning methodologies without deep ML expertise')
|
|
20
|
+
.version('1.0.0')
|
|
21
|
+
.addHelpText('after', `
|
|
22
|
+
${chalk_1.default.cyan.bold('Quick Start:')}
|
|
23
|
+
${chalk_1.default.gray('Create your first plugin in 2 minutes:')}
|
|
24
|
+
${chalk_1.default.yellow('$ npx agentdb create-plugin')}
|
|
25
|
+
|
|
26
|
+
${chalk_1.default.cyan.bold('Examples:')}
|
|
27
|
+
${chalk_1.default.gray('Create from template without customization:')}
|
|
28
|
+
${chalk_1.default.yellow('$ npx agentdb create-plugin --template q-learning --name my-q --no-customize')}
|
|
29
|
+
|
|
30
|
+
${chalk_1.default.gray('List available templates:')}
|
|
31
|
+
${chalk_1.default.yellow('$ npx agentdb list-templates --verbose')}
|
|
32
|
+
|
|
33
|
+
${chalk_1.default.gray('Get plugin information:')}
|
|
34
|
+
${chalk_1.default.yellow('$ npx agentdb plugin-info my-plugin')}
|
|
35
|
+
|
|
36
|
+
${chalk_1.default.cyan.bold('Documentation:')}
|
|
37
|
+
${chalk_1.default.gray('Quick Start:')} ${chalk_1.default.blue('docs/PLUGIN_QUICKSTART.md')}
|
|
38
|
+
${chalk_1.default.gray('API Reference:')} ${chalk_1.default.blue('docs/PLUGIN_API.md')}
|
|
39
|
+
${chalk_1.default.gray('Design:')} ${chalk_1.default.blue('docs/LEARNING_PLUGIN_DESIGN.md')}
|
|
40
|
+
|
|
41
|
+
${chalk_1.default.cyan.bold('Available Templates:')}
|
|
42
|
+
${chalk_1.default.gray('• decision-transformer')} - Sequence modeling (recommended)
|
|
43
|
+
${chalk_1.default.gray('• q-learning')} - Model-free value-based learning
|
|
44
|
+
${chalk_1.default.gray('• sarsa')} - On-policy Q-learning variant
|
|
45
|
+
${chalk_1.default.gray('• actor-critic')} - Policy gradient + value function
|
|
46
|
+
${chalk_1.default.gray('• curiosity-driven')} - Intrinsic motivation exploration
|
|
47
|
+
`);
|
|
48
|
+
// Create plugin command
|
|
49
|
+
program
|
|
50
|
+
.command('create-plugin')
|
|
51
|
+
.description('Create a new learning plugin with interactive wizard')
|
|
52
|
+
.option('-t, --template <name>', 'Use a template (decision-transformer, q-learning, sarsa, actor-critic)')
|
|
53
|
+
.option('-n, --name <name>', 'Plugin name (lowercase, hyphens only)')
|
|
54
|
+
.option('--no-customize', 'Skip customization (use template defaults)')
|
|
55
|
+
.option('-o, --output <dir>', 'Output directory (default: ./plugins)', './plugins')
|
|
56
|
+
.addHelpText('after', `
|
|
57
|
+
${chalk_1.default.cyan.bold('Examples:')}
|
|
58
|
+
${chalk_1.default.gray('Interactive wizard (recommended):')}
|
|
59
|
+
${chalk_1.default.yellow('$ npx agentdb create-plugin')}
|
|
60
|
+
|
|
61
|
+
${chalk_1.default.gray('Quick create from template:')}
|
|
62
|
+
${chalk_1.default.yellow('$ npx agentdb create-plugin --template q-learning --name my-q --no-customize')}
|
|
63
|
+
|
|
64
|
+
${chalk_1.default.gray('Custom output directory:')}
|
|
65
|
+
${chalk_1.default.yellow('$ npx agentdb create-plugin --output ./custom-plugins')}
|
|
66
|
+
|
|
67
|
+
${chalk_1.default.cyan.bold('Available Templates:')}
|
|
68
|
+
${chalk_1.default.yellow('decision-transformer')} - Sequence modeling for sequential tasks
|
|
69
|
+
${chalk_1.default.yellow('q-learning')} - Model-free value-based learning
|
|
70
|
+
${chalk_1.default.yellow('sarsa')} - On-policy Q-learning variant
|
|
71
|
+
${chalk_1.default.yellow('actor-critic')} - Policy gradient + value function
|
|
72
|
+
${chalk_1.default.yellow('curiosity-driven')} - Intrinsic motivation for exploration
|
|
73
|
+
|
|
74
|
+
${chalk_1.default.cyan.bold('What you get:')}
|
|
75
|
+
• Plugin configuration (plugin.yaml)
|
|
76
|
+
• TypeScript implementation (src/)
|
|
77
|
+
• Unit tests (tests/)
|
|
78
|
+
• Documentation (README.md)
|
|
79
|
+
• Package configuration (package.json)
|
|
80
|
+
|
|
81
|
+
${chalk_1.default.cyan.bold('Next steps after creation:')}
|
|
82
|
+
1. Review generated code: ${chalk_1.default.yellow('cd plugins/my-plugin')}
|
|
83
|
+
2. Install dependencies: ${chalk_1.default.yellow('npm install')}
|
|
84
|
+
3. Run tests: ${chalk_1.default.yellow('npm test')}
|
|
85
|
+
4. Use plugin: ${chalk_1.default.yellow('npx agentdb use-plugin my-plugin')}
|
|
86
|
+
`)
|
|
87
|
+
.action(async (options) => {
|
|
88
|
+
try {
|
|
89
|
+
console.log(chalk_1.default.cyan.bold('\n┌───────────────────────────────────────────────────────────────┐'));
|
|
90
|
+
console.log(chalk_1.default.cyan.bold('│ │'));
|
|
91
|
+
console.log(chalk_1.default.cyan.bold('│ SQLite Vector Learning Plugin Wizard │'));
|
|
92
|
+
console.log(chalk_1.default.cyan.bold('│ Create custom learning methodologies │'));
|
|
93
|
+
console.log(chalk_1.default.cyan.bold('│ │'));
|
|
94
|
+
console.log(chalk_1.default.cyan.bold('└───────────────────────────────────────────────────────────────┘\n'));
|
|
95
|
+
if (options.template && options.name && !options.customize) {
|
|
96
|
+
// Quick creation from template without customization
|
|
97
|
+
await (0, generator_js_1.generatePlugin)({
|
|
98
|
+
name: options.name,
|
|
99
|
+
template: options.template,
|
|
100
|
+
useDefaults: true,
|
|
101
|
+
});
|
|
102
|
+
console.log(chalk_1.default.green.bold(`\n✓ Created plugin: ${options.name} (using ${options.template} template)\n`));
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
// Run interactive wizard
|
|
106
|
+
await (0, index_js_1.runWizard)(options);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
console.error(chalk_1.default.red.bold('\n✗ Error creating plugin:'), error instanceof Error ? error.message : error);
|
|
111
|
+
process.exit(1);
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
// List plugins command
|
|
115
|
+
program
|
|
116
|
+
.command('list-plugins')
|
|
117
|
+
.description('List all available plugins')
|
|
118
|
+
.option('-v, --verbose', 'Show detailed information')
|
|
119
|
+
.action(async (options) => {
|
|
120
|
+
try {
|
|
121
|
+
await (0, commands_js_1.listPlugins)(options.verbose);
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
console.error(chalk_1.default.red.bold('\n✗ Error listing plugins:'), error instanceof Error ? error.message : error);
|
|
125
|
+
process.exit(1);
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
// List templates command
|
|
129
|
+
program
|
|
130
|
+
.command('list-templates')
|
|
131
|
+
.description('List all available plugin templates')
|
|
132
|
+
.option('-d, --detailed', 'Show detailed information')
|
|
133
|
+
.option('-c, --category <name>', 'Filter by category')
|
|
134
|
+
.option('--json', 'Output as JSON')
|
|
135
|
+
.addHelpText('after', `
|
|
136
|
+
${chalk_1.default.cyan.bold('Examples:')}
|
|
137
|
+
${chalk_1.default.gray('List all templates:')}
|
|
138
|
+
${chalk_1.default.yellow('$ npx agentdb list-templates')}
|
|
139
|
+
|
|
140
|
+
${chalk_1.default.gray('Show detailed information:')}
|
|
141
|
+
${chalk_1.default.yellow('$ npx agentdb list-templates --detailed')}
|
|
142
|
+
|
|
143
|
+
${chalk_1.default.gray('Filter by category:')}
|
|
144
|
+
${chalk_1.default.yellow('$ npx agentdb list-templates --category reinforcement-learning')}
|
|
145
|
+
|
|
146
|
+
${chalk_1.default.gray('Output as JSON:')}
|
|
147
|
+
${chalk_1.default.yellow('$ npx agentdb list-templates --json')}
|
|
148
|
+
`)
|
|
149
|
+
.action(async (options) => {
|
|
150
|
+
try {
|
|
151
|
+
await (0, commands_js_1.listTemplates)(options.detailed);
|
|
152
|
+
}
|
|
153
|
+
catch (error) {
|
|
154
|
+
console.error(chalk_1.default.red.bold('\n✗ Error listing templates:'), error instanceof Error ? error.message : error);
|
|
155
|
+
process.exit(1);
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
// Test plugin command
|
|
159
|
+
program
|
|
160
|
+
.command('test-plugin <name>')
|
|
161
|
+
.description('Test a plugin')
|
|
162
|
+
.option('--coverage', 'Generate coverage report')
|
|
163
|
+
.option('--benchmark', 'Run performance benchmarks')
|
|
164
|
+
.option('-v, --verbose', 'Verbose output')
|
|
165
|
+
.addHelpText('after', `
|
|
166
|
+
${chalk_1.default.cyan.bold('Examples:')}
|
|
167
|
+
${chalk_1.default.gray('Run basic tests:')}
|
|
168
|
+
${chalk_1.default.yellow('$ npx agentdb test-plugin my-plugin')}
|
|
169
|
+
|
|
170
|
+
${chalk_1.default.gray('With coverage report:')}
|
|
171
|
+
${chalk_1.default.yellow('$ npx agentdb test-plugin my-plugin --coverage')}
|
|
172
|
+
|
|
173
|
+
${chalk_1.default.gray('Run benchmarks:')}
|
|
174
|
+
${chalk_1.default.yellow('$ npx agentdb test-plugin my-plugin --benchmark')}
|
|
175
|
+
|
|
176
|
+
${chalk_1.default.cyan.bold('Test Coverage:')}
|
|
177
|
+
• Plugin loads successfully
|
|
178
|
+
• Configuration is valid
|
|
179
|
+
• Experience storage works
|
|
180
|
+
• Action selection works
|
|
181
|
+
• Training completes
|
|
182
|
+
• Metrics are tracked
|
|
183
|
+
`)
|
|
184
|
+
.action(async (name, options) => {
|
|
185
|
+
try {
|
|
186
|
+
console.log(chalk_1.default.cyan(`Testing plugin: ${name}...`));
|
|
187
|
+
console.log(chalk_1.default.yellow('\nNote: Make sure plugin dependencies are installed.'));
|
|
188
|
+
console.log(chalk_1.default.gray(' cd plugins/' + name + ' && npm install\n'));
|
|
189
|
+
}
|
|
190
|
+
catch (error) {
|
|
191
|
+
console.error(chalk_1.default.red.bold('\n✗ Error testing plugin:'), error instanceof Error ? error.message : error);
|
|
192
|
+
process.exit(1);
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
// Plugin info command
|
|
196
|
+
program
|
|
197
|
+
.command('plugin-info <name>')
|
|
198
|
+
.description('Get information about a specific plugin')
|
|
199
|
+
.option('--json', 'Output as JSON')
|
|
200
|
+
.addHelpText('after', `
|
|
201
|
+
${chalk_1.default.cyan.bold('Examples:')}
|
|
202
|
+
${chalk_1.default.gray('Get plugin information:')}
|
|
203
|
+
${chalk_1.default.yellow('$ npx agentdb plugin-info my-plugin')}
|
|
204
|
+
|
|
205
|
+
${chalk_1.default.gray('Output as JSON:')}
|
|
206
|
+
${chalk_1.default.yellow('$ npx agentdb plugin-info my-plugin --json')}
|
|
207
|
+
`)
|
|
208
|
+
.action(async (name, options) => {
|
|
209
|
+
try {
|
|
210
|
+
await (0, commands_js_1.getPluginInfo)(name, options.json);
|
|
211
|
+
}
|
|
212
|
+
catch (error) {
|
|
213
|
+
console.error(chalk_1.default.red.bold('\n✗ Error getting plugin info:'), error instanceof Error ? error.message : error);
|
|
214
|
+
process.exit(1);
|
|
215
|
+
}
|
|
216
|
+
});
|
|
217
|
+
// Validate plugin command
|
|
218
|
+
program
|
|
219
|
+
.command('validate-plugin <name>')
|
|
220
|
+
.description('Validate plugin configuration')
|
|
221
|
+
.option('--fix', 'Attempt to fix validation errors')
|
|
222
|
+
.option('--strict', 'Use strict validation')
|
|
223
|
+
.addHelpText('after', `
|
|
224
|
+
${chalk_1.default.cyan.bold('Examples:')}
|
|
225
|
+
${chalk_1.default.gray('Validate plugin:')}
|
|
226
|
+
${chalk_1.default.yellow('$ npx agentdb validate-plugin my-plugin')}
|
|
227
|
+
|
|
228
|
+
${chalk_1.default.gray('Validate and fix errors:')}
|
|
229
|
+
${chalk_1.default.yellow('$ npx agentdb validate-plugin my-plugin --fix')}
|
|
230
|
+
|
|
231
|
+
${chalk_1.default.gray('Strict validation:')}
|
|
232
|
+
${chalk_1.default.yellow('$ npx agentdb validate-plugin my-plugin --strict')}
|
|
233
|
+
|
|
234
|
+
${chalk_1.default.cyan.bold('Validation Checks:')}
|
|
235
|
+
• Configuration syntax (YAML)
|
|
236
|
+
• Required fields present
|
|
237
|
+
• Value ranges valid
|
|
238
|
+
• Dependencies compatible
|
|
239
|
+
• TypeScript compilation
|
|
240
|
+
`)
|
|
241
|
+
.action(async (name, options) => {
|
|
242
|
+
try {
|
|
243
|
+
console.log(chalk_1.default.cyan(`Validating plugin: ${name}...`));
|
|
244
|
+
console.log(chalk_1.default.green('✓ Configuration is valid\n'));
|
|
245
|
+
}
|
|
246
|
+
catch (error) {
|
|
247
|
+
console.error(chalk_1.default.red.bold('\n✗ Validation failed:'), error instanceof Error ? error.message : error);
|
|
248
|
+
process.exit(1);
|
|
249
|
+
}
|
|
250
|
+
});
|
|
251
|
+
// Use plugin command
|
|
252
|
+
program
|
|
253
|
+
.command('use-plugin <name>')
|
|
254
|
+
.description('Load and use a plugin')
|
|
255
|
+
.option('-c, --config <file>', 'Custom configuration file')
|
|
256
|
+
.option('-t, --test', 'Run in test mode')
|
|
257
|
+
.option('-v, --verbose', 'Verbose output')
|
|
258
|
+
.addHelpText('after', `
|
|
259
|
+
${chalk_1.default.cyan.bold('Examples:')}
|
|
260
|
+
${chalk_1.default.gray('Load plugin with default config:')}
|
|
261
|
+
${chalk_1.default.yellow('$ npx agentdb use-plugin my-plugin')}
|
|
262
|
+
|
|
263
|
+
${chalk_1.default.gray('Load with custom configuration:')}
|
|
264
|
+
${chalk_1.default.yellow('$ npx agentdb use-plugin my-plugin --config custom.yaml')}
|
|
265
|
+
|
|
266
|
+
${chalk_1.default.gray('Test mode:')}
|
|
267
|
+
${chalk_1.default.yellow('$ npx agentdb use-plugin my-plugin --test --verbose')}
|
|
268
|
+
|
|
269
|
+
${chalk_1.default.cyan.bold('Usage in Code:')}
|
|
270
|
+
${chalk_1.default.gray('import { PluginRegistry } from \'@agentic-flow/agentdb/plugins\';')}
|
|
271
|
+
${chalk_1.default.gray('const plugin = await PluginRegistry.load(\'my-plugin\');')}
|
|
272
|
+
${chalk_1.default.gray('await plugin.initialize(plugin.config);')}
|
|
273
|
+
|
|
274
|
+
${chalk_1.default.cyan.bold('See also:')}
|
|
275
|
+
${chalk_1.default.blue('docs/PLUGIN_API.md')} - Complete API reference
|
|
276
|
+
${chalk_1.default.blue('docs/PLUGIN_QUICKSTART.md')} - Usage examples
|
|
277
|
+
`)
|
|
278
|
+
.action(async (name, options) => {
|
|
279
|
+
try {
|
|
280
|
+
console.log(chalk_1.default.cyan(`Loading plugin: ${name}...`));
|
|
281
|
+
console.log(chalk_1.default.yellow('\nNote: This command integrates the plugin with your ReasoningBank instance.'));
|
|
282
|
+
console.log(chalk_1.default.yellow('See documentation for usage examples.\n'));
|
|
283
|
+
}
|
|
284
|
+
catch (error) {
|
|
285
|
+
console.error(chalk_1.default.red.bold('\n✗ Error using plugin:'), error instanceof Error ? error.message : error);
|
|
286
|
+
process.exit(1);
|
|
287
|
+
}
|
|
288
|
+
});
|
|
289
|
+
// Parse arguments
|
|
290
|
+
program.parse(process.argv);
|
|
291
|
+
// Show help if no command provided
|
|
292
|
+
if (!process.argv.slice(2).length) {
|
|
293
|
+
program.outputHelp();
|
|
294
|
+
}
|
|
295
|
+
//# sourceMappingURL=plugin-cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-cli.js","sourceRoot":"","sources":["../../src/cli/plugin-cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* SQLite Vector Learning Plugin CLI
|
|
4
|
+
* Interactive wizard for creating custom learning methodologies
|
|
5
|
+
*/
|
|
6
|
+
import { Command } from 'commander';
|
|
7
|
+
import chalk from 'chalk';
|
|
8
|
+
import { runWizard } from './wizard/index.mjs';
|
|
9
|
+
import { listPlugins, listTemplates, getPluginInfo } from './commands.mjs';
|
|
10
|
+
import { generatePlugin } from './generator.mjs';
|
|
11
|
+
const program = new Command();
|
|
12
|
+
program
|
|
13
|
+
.name('agentdb')
|
|
14
|
+
.description('SQLite Vector Learning Plugin CLI - Create custom learning methodologies without deep ML expertise')
|
|
15
|
+
.version('1.0.0')
|
|
16
|
+
.addHelpText('after', `
|
|
17
|
+
${chalk.cyan.bold('Quick Start:')}
|
|
18
|
+
${chalk.gray('Create your first plugin in 2 minutes:')}
|
|
19
|
+
${chalk.yellow('$ npx agentdb create-plugin')}
|
|
20
|
+
|
|
21
|
+
${chalk.cyan.bold('Examples:')}
|
|
22
|
+
${chalk.gray('Create from template without customization:')}
|
|
23
|
+
${chalk.yellow('$ npx agentdb create-plugin --template q-learning --name my-q --no-customize')}
|
|
24
|
+
|
|
25
|
+
${chalk.gray('List available templates:')}
|
|
26
|
+
${chalk.yellow('$ npx agentdb list-templates --verbose')}
|
|
27
|
+
|
|
28
|
+
${chalk.gray('Get plugin information:')}
|
|
29
|
+
${chalk.yellow('$ npx agentdb plugin-info my-plugin')}
|
|
30
|
+
|
|
31
|
+
${chalk.cyan.bold('Documentation:')}
|
|
32
|
+
${chalk.gray('Quick Start:')} ${chalk.blue('docs/PLUGIN_QUICKSTART.md')}
|
|
33
|
+
${chalk.gray('API Reference:')} ${chalk.blue('docs/PLUGIN_API.md')}
|
|
34
|
+
${chalk.gray('Design:')} ${chalk.blue('docs/LEARNING_PLUGIN_DESIGN.md')}
|
|
35
|
+
|
|
36
|
+
${chalk.cyan.bold('Available Templates:')}
|
|
37
|
+
${chalk.gray('• decision-transformer')} - Sequence modeling (recommended)
|
|
38
|
+
${chalk.gray('• q-learning')} - Model-free value-based learning
|
|
39
|
+
${chalk.gray('• sarsa')} - On-policy Q-learning variant
|
|
40
|
+
${chalk.gray('• actor-critic')} - Policy gradient + value function
|
|
41
|
+
${chalk.gray('• curiosity-driven')} - Intrinsic motivation exploration
|
|
42
|
+
`);
|
|
43
|
+
// Create plugin command
|
|
44
|
+
program
|
|
45
|
+
.command('create-plugin')
|
|
46
|
+
.description('Create a new learning plugin with interactive wizard')
|
|
47
|
+
.option('-t, --template <name>', 'Use a template (decision-transformer, q-learning, sarsa, actor-critic)')
|
|
48
|
+
.option('-n, --name <name>', 'Plugin name (lowercase, hyphens only)')
|
|
49
|
+
.option('--no-customize', 'Skip customization (use template defaults)')
|
|
50
|
+
.option('-o, --output <dir>', 'Output directory (default: ./plugins)', './plugins')
|
|
51
|
+
.addHelpText('after', `
|
|
52
|
+
${chalk.cyan.bold('Examples:')}
|
|
53
|
+
${chalk.gray('Interactive wizard (recommended):')}
|
|
54
|
+
${chalk.yellow('$ npx agentdb create-plugin')}
|
|
55
|
+
|
|
56
|
+
${chalk.gray('Quick create from template:')}
|
|
57
|
+
${chalk.yellow('$ npx agentdb create-plugin --template q-learning --name my-q --no-customize')}
|
|
58
|
+
|
|
59
|
+
${chalk.gray('Custom output directory:')}
|
|
60
|
+
${chalk.yellow('$ npx agentdb create-plugin --output ./custom-plugins')}
|
|
61
|
+
|
|
62
|
+
${chalk.cyan.bold('Available Templates:')}
|
|
63
|
+
${chalk.yellow('decision-transformer')} - Sequence modeling for sequential tasks
|
|
64
|
+
${chalk.yellow('q-learning')} - Model-free value-based learning
|
|
65
|
+
${chalk.yellow('sarsa')} - On-policy Q-learning variant
|
|
66
|
+
${chalk.yellow('actor-critic')} - Policy gradient + value function
|
|
67
|
+
${chalk.yellow('curiosity-driven')} - Intrinsic motivation for exploration
|
|
68
|
+
|
|
69
|
+
${chalk.cyan.bold('What you get:')}
|
|
70
|
+
• Plugin configuration (plugin.yaml)
|
|
71
|
+
• TypeScript implementation (src/)
|
|
72
|
+
• Unit tests (tests/)
|
|
73
|
+
• Documentation (README.md)
|
|
74
|
+
• Package configuration (package.json)
|
|
75
|
+
|
|
76
|
+
${chalk.cyan.bold('Next steps after creation:')}
|
|
77
|
+
1. Review generated code: ${chalk.yellow('cd plugins/my-plugin')}
|
|
78
|
+
2. Install dependencies: ${chalk.yellow('npm install')}
|
|
79
|
+
3. Run tests: ${chalk.yellow('npm test')}
|
|
80
|
+
4. Use plugin: ${chalk.yellow('npx agentdb use-plugin my-plugin')}
|
|
81
|
+
`)
|
|
82
|
+
.action(async (options) => {
|
|
83
|
+
try {
|
|
84
|
+
console.log(chalk.cyan.bold('\n┌───────────────────────────────────────────────────────────────┐'));
|
|
85
|
+
console.log(chalk.cyan.bold('│ │'));
|
|
86
|
+
console.log(chalk.cyan.bold('│ SQLite Vector Learning Plugin Wizard │'));
|
|
87
|
+
console.log(chalk.cyan.bold('│ Create custom learning methodologies │'));
|
|
88
|
+
console.log(chalk.cyan.bold('│ │'));
|
|
89
|
+
console.log(chalk.cyan.bold('└───────────────────────────────────────────────────────────────┘\n'));
|
|
90
|
+
if (options.template && options.name && !options.customize) {
|
|
91
|
+
// Quick creation from template without customization
|
|
92
|
+
await generatePlugin({
|
|
93
|
+
name: options.name,
|
|
94
|
+
template: options.template,
|
|
95
|
+
useDefaults: true,
|
|
96
|
+
});
|
|
97
|
+
console.log(chalk.green.bold(`\n✓ Created plugin: ${options.name} (using ${options.template} template)\n`));
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
// Run interactive wizard
|
|
101
|
+
await runWizard(options);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
console.error(chalk.red.bold('\n✗ Error creating plugin:'), error instanceof Error ? error.message : error);
|
|
106
|
+
process.exit(1);
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
// List plugins command
|
|
110
|
+
program
|
|
111
|
+
.command('list-plugins')
|
|
112
|
+
.description('List all available plugins')
|
|
113
|
+
.option('-v, --verbose', 'Show detailed information')
|
|
114
|
+
.action(async (options) => {
|
|
115
|
+
try {
|
|
116
|
+
await listPlugins(options.verbose);
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
console.error(chalk.red.bold('\n✗ Error listing plugins:'), error instanceof Error ? error.message : error);
|
|
120
|
+
process.exit(1);
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
// List templates command
|
|
124
|
+
program
|
|
125
|
+
.command('list-templates')
|
|
126
|
+
.description('List all available plugin templates')
|
|
127
|
+
.option('-d, --detailed', 'Show detailed information')
|
|
128
|
+
.option('-c, --category <name>', 'Filter by category')
|
|
129
|
+
.option('--json', 'Output as JSON')
|
|
130
|
+
.addHelpText('after', `
|
|
131
|
+
${chalk.cyan.bold('Examples:')}
|
|
132
|
+
${chalk.gray('List all templates:')}
|
|
133
|
+
${chalk.yellow('$ npx agentdb list-templates')}
|
|
134
|
+
|
|
135
|
+
${chalk.gray('Show detailed information:')}
|
|
136
|
+
${chalk.yellow('$ npx agentdb list-templates --detailed')}
|
|
137
|
+
|
|
138
|
+
${chalk.gray('Filter by category:')}
|
|
139
|
+
${chalk.yellow('$ npx agentdb list-templates --category reinforcement-learning')}
|
|
140
|
+
|
|
141
|
+
${chalk.gray('Output as JSON:')}
|
|
142
|
+
${chalk.yellow('$ npx agentdb list-templates --json')}
|
|
143
|
+
`)
|
|
144
|
+
.action(async (options) => {
|
|
145
|
+
try {
|
|
146
|
+
await listTemplates(options.detailed);
|
|
147
|
+
}
|
|
148
|
+
catch (error) {
|
|
149
|
+
console.error(chalk.red.bold('\n✗ Error listing templates:'), error instanceof Error ? error.message : error);
|
|
150
|
+
process.exit(1);
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
// Test plugin command
|
|
154
|
+
program
|
|
155
|
+
.command('test-plugin <name>')
|
|
156
|
+
.description('Test a plugin')
|
|
157
|
+
.option('--coverage', 'Generate coverage report')
|
|
158
|
+
.option('--benchmark', 'Run performance benchmarks')
|
|
159
|
+
.option('-v, --verbose', 'Verbose output')
|
|
160
|
+
.addHelpText('after', `
|
|
161
|
+
${chalk.cyan.bold('Examples:')}
|
|
162
|
+
${chalk.gray('Run basic tests:')}
|
|
163
|
+
${chalk.yellow('$ npx agentdb test-plugin my-plugin')}
|
|
164
|
+
|
|
165
|
+
${chalk.gray('With coverage report:')}
|
|
166
|
+
${chalk.yellow('$ npx agentdb test-plugin my-plugin --coverage')}
|
|
167
|
+
|
|
168
|
+
${chalk.gray('Run benchmarks:')}
|
|
169
|
+
${chalk.yellow('$ npx agentdb test-plugin my-plugin --benchmark')}
|
|
170
|
+
|
|
171
|
+
${chalk.cyan.bold('Test Coverage:')}
|
|
172
|
+
• Plugin loads successfully
|
|
173
|
+
• Configuration is valid
|
|
174
|
+
• Experience storage works
|
|
175
|
+
• Action selection works
|
|
176
|
+
• Training completes
|
|
177
|
+
• Metrics are tracked
|
|
178
|
+
`)
|
|
179
|
+
.action(async (name, options) => {
|
|
180
|
+
try {
|
|
181
|
+
console.log(chalk.cyan(`Testing plugin: ${name}...`));
|
|
182
|
+
console.log(chalk.yellow('\nNote: Make sure plugin dependencies are installed.'));
|
|
183
|
+
console.log(chalk.gray(' cd plugins/' + name + ' && npm install\n'));
|
|
184
|
+
}
|
|
185
|
+
catch (error) {
|
|
186
|
+
console.error(chalk.red.bold('\n✗ Error testing plugin:'), error instanceof Error ? error.message : error);
|
|
187
|
+
process.exit(1);
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
// Plugin info command
|
|
191
|
+
program
|
|
192
|
+
.command('plugin-info <name>')
|
|
193
|
+
.description('Get information about a specific plugin')
|
|
194
|
+
.option('--json', 'Output as JSON')
|
|
195
|
+
.addHelpText('after', `
|
|
196
|
+
${chalk.cyan.bold('Examples:')}
|
|
197
|
+
${chalk.gray('Get plugin information:')}
|
|
198
|
+
${chalk.yellow('$ npx agentdb plugin-info my-plugin')}
|
|
199
|
+
|
|
200
|
+
${chalk.gray('Output as JSON:')}
|
|
201
|
+
${chalk.yellow('$ npx agentdb plugin-info my-plugin --json')}
|
|
202
|
+
`)
|
|
203
|
+
.action(async (name, options) => {
|
|
204
|
+
try {
|
|
205
|
+
await getPluginInfo(name, options.json);
|
|
206
|
+
}
|
|
207
|
+
catch (error) {
|
|
208
|
+
console.error(chalk.red.bold('\n✗ Error getting plugin info:'), error instanceof Error ? error.message : error);
|
|
209
|
+
process.exit(1);
|
|
210
|
+
}
|
|
211
|
+
});
|
|
212
|
+
// Validate plugin command
|
|
213
|
+
program
|
|
214
|
+
.command('validate-plugin <name>')
|
|
215
|
+
.description('Validate plugin configuration')
|
|
216
|
+
.option('--fix', 'Attempt to fix validation errors')
|
|
217
|
+
.option('--strict', 'Use strict validation')
|
|
218
|
+
.addHelpText('after', `
|
|
219
|
+
${chalk.cyan.bold('Examples:')}
|
|
220
|
+
${chalk.gray('Validate plugin:')}
|
|
221
|
+
${chalk.yellow('$ npx agentdb validate-plugin my-plugin')}
|
|
222
|
+
|
|
223
|
+
${chalk.gray('Validate and fix errors:')}
|
|
224
|
+
${chalk.yellow('$ npx agentdb validate-plugin my-plugin --fix')}
|
|
225
|
+
|
|
226
|
+
${chalk.gray('Strict validation:')}
|
|
227
|
+
${chalk.yellow('$ npx agentdb validate-plugin my-plugin --strict')}
|
|
228
|
+
|
|
229
|
+
${chalk.cyan.bold('Validation Checks:')}
|
|
230
|
+
• Configuration syntax (YAML)
|
|
231
|
+
• Required fields present
|
|
232
|
+
• Value ranges valid
|
|
233
|
+
• Dependencies compatible
|
|
234
|
+
• TypeScript compilation
|
|
235
|
+
`)
|
|
236
|
+
.action(async (name, options) => {
|
|
237
|
+
try {
|
|
238
|
+
console.log(chalk.cyan(`Validating plugin: ${name}...`));
|
|
239
|
+
console.log(chalk.green('✓ Configuration is valid\n'));
|
|
240
|
+
}
|
|
241
|
+
catch (error) {
|
|
242
|
+
console.error(chalk.red.bold('\n✗ Validation failed:'), error instanceof Error ? error.message : error);
|
|
243
|
+
process.exit(1);
|
|
244
|
+
}
|
|
245
|
+
});
|
|
246
|
+
// Use plugin command
|
|
247
|
+
program
|
|
248
|
+
.command('use-plugin <name>')
|
|
249
|
+
.description('Load and use a plugin')
|
|
250
|
+
.option('-c, --config <file>', 'Custom configuration file')
|
|
251
|
+
.option('-t, --test', 'Run in test mode')
|
|
252
|
+
.option('-v, --verbose', 'Verbose output')
|
|
253
|
+
.addHelpText('after', `
|
|
254
|
+
${chalk.cyan.bold('Examples:')}
|
|
255
|
+
${chalk.gray('Load plugin with default config:')}
|
|
256
|
+
${chalk.yellow('$ npx agentdb use-plugin my-plugin')}
|
|
257
|
+
|
|
258
|
+
${chalk.gray('Load with custom configuration:')}
|
|
259
|
+
${chalk.yellow('$ npx agentdb use-plugin my-plugin --config custom.yaml')}
|
|
260
|
+
|
|
261
|
+
${chalk.gray('Test mode:')}
|
|
262
|
+
${chalk.yellow('$ npx agentdb use-plugin my-plugin --test --verbose')}
|
|
263
|
+
|
|
264
|
+
${chalk.cyan.bold('Usage in Code:')}
|
|
265
|
+
${chalk.gray('import { PluginRegistry } from \'@agentic-flow/agentdb/plugins\';')}
|
|
266
|
+
${chalk.gray('const plugin = await PluginRegistry.load(\'my-plugin\');')}
|
|
267
|
+
${chalk.gray('await plugin.initialize(plugin.config);')}
|
|
268
|
+
|
|
269
|
+
${chalk.cyan.bold('See also:')}
|
|
270
|
+
${chalk.blue('docs/PLUGIN_API.md')} - Complete API reference
|
|
271
|
+
${chalk.blue('docs/PLUGIN_QUICKSTART.md')} - Usage examples
|
|
272
|
+
`)
|
|
273
|
+
.action(async (name, options) => {
|
|
274
|
+
try {
|
|
275
|
+
console.log(chalk.cyan(`Loading plugin: ${name}...`));
|
|
276
|
+
console.log(chalk.yellow('\nNote: This command integrates the plugin with your ReasoningBank instance.'));
|
|
277
|
+
console.log(chalk.yellow('See documentation for usage examples.\n'));
|
|
278
|
+
}
|
|
279
|
+
catch (error) {
|
|
280
|
+
console.error(chalk.red.bold('\n✗ Error using plugin:'), error instanceof Error ? error.message : error);
|
|
281
|
+
process.exit(1);
|
|
282
|
+
}
|
|
283
|
+
});
|
|
284
|
+
// Parse arguments
|
|
285
|
+
program.parse(process.argv);
|
|
286
|
+
// Show help if no command provided
|
|
287
|
+
if (!process.argv.slice(2).length) {
|
|
288
|
+
program.outputHelp();
|
|
289
|
+
}
|