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,567 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Plugin code generator
|
|
4
|
+
* Generates complete plugin structure from configuration
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
+
var ownKeys = function(o) {
|
|
24
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
+
var ar = [];
|
|
26
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
return ownKeys(o);
|
|
30
|
+
};
|
|
31
|
+
return function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
39
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
40
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
41
|
+
};
|
|
42
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
|
+
exports.generatePlugin = generatePlugin;
|
|
44
|
+
const promises_1 = __importDefault(require("fs/promises"));
|
|
45
|
+
const path_1 = __importDefault(require("path"));
|
|
46
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
47
|
+
const yaml_1 = __importDefault(require("yaml"));
|
|
48
|
+
const templates_js_1 = require("./templates.js");
|
|
49
|
+
async function generatePlugin(config, options = {}) {
|
|
50
|
+
let pluginConfig;
|
|
51
|
+
// Handle quick template creation
|
|
52
|
+
if ('template' in config && 'useDefaults' in config) {
|
|
53
|
+
const templateConfig = await (0, templates_js_1.getTemplateConfig)(config.template);
|
|
54
|
+
const template = await Promise.resolve().then(() => __importStar(require('./templates.js'))).then(m => m.getTemplate(config.template));
|
|
55
|
+
pluginConfig = {
|
|
56
|
+
...templateConfig,
|
|
57
|
+
name: config.name,
|
|
58
|
+
description: template ? (await template).description : 'AI learning plugin',
|
|
59
|
+
version: '1.0.0',
|
|
60
|
+
author: 'Unknown',
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
pluginConfig = config;
|
|
65
|
+
}
|
|
66
|
+
// SECURITY FIXES: Enhanced path validation
|
|
67
|
+
const pluginName = pluginConfig.name;
|
|
68
|
+
// 1. Validate format (already enforced by schema, but double-check)
|
|
69
|
+
if (!/^[a-z0-9-]+$/.test(pluginName)) {
|
|
70
|
+
throw new Error('Invalid plugin name format. Use only lowercase letters, numbers, and hyphens.');
|
|
71
|
+
}
|
|
72
|
+
// 2. Validate length
|
|
73
|
+
if (pluginName.length < 3 || pluginName.length > 50) {
|
|
74
|
+
throw new Error('Plugin name must be between 3 and 50 characters');
|
|
75
|
+
}
|
|
76
|
+
// 3. Check for reserved OS names
|
|
77
|
+
const RESERVED_NAMES = [
|
|
78
|
+
'con', 'prn', 'aux', 'nul', 'com1', 'com2', 'com3', 'com4', 'com5',
|
|
79
|
+
'com6', 'com7', 'com8', 'com9', 'lpt1', 'lpt2', 'lpt3', 'lpt4',
|
|
80
|
+
'lpt5', 'lpt6', 'lpt7', 'lpt8', 'lpt9', 'clock$'
|
|
81
|
+
];
|
|
82
|
+
if (RESERVED_NAMES.includes(pluginName.toLowerCase())) {
|
|
83
|
+
throw new Error(`Plugin name '${pluginName}' is reserved by the operating system`);
|
|
84
|
+
}
|
|
85
|
+
// 4. Construct paths safely
|
|
86
|
+
const pluginsBaseDir = path_1.default.resolve(process.cwd(), 'plugins');
|
|
87
|
+
const pluginDir = path_1.default.join(pluginsBaseDir, pluginName);
|
|
88
|
+
// 5. Verify resolved path is within plugins directory (prevent traversal via symlinks)
|
|
89
|
+
const resolvedPluginDir = path_1.default.resolve(pluginDir);
|
|
90
|
+
if (!resolvedPluginDir.startsWith(pluginsBaseDir + path_1.default.sep) && resolvedPluginDir !== pluginsBaseDir) {
|
|
91
|
+
throw new Error('Invalid plugin directory path (security violation)');
|
|
92
|
+
}
|
|
93
|
+
// 6. Check if path exists and is not a symlink
|
|
94
|
+
try {
|
|
95
|
+
const stats = await promises_1.default.lstat(pluginDir);
|
|
96
|
+
if (stats.isSymbolicLink()) {
|
|
97
|
+
throw new Error('Plugin directory cannot be a symlink (security violation)');
|
|
98
|
+
}
|
|
99
|
+
// Directory exists and is not a symlink - check if we should overwrite
|
|
100
|
+
if (!options.force) {
|
|
101
|
+
throw new Error(`Plugin directory already exists: ${pluginDir}. Use --force to overwrite.`);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
catch (err) {
|
|
105
|
+
// ENOENT is expected (directory doesn't exist yet)
|
|
106
|
+
if (err.code !== 'ENOENT') {
|
|
107
|
+
throw err;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
try {
|
|
111
|
+
// Create directory structure
|
|
112
|
+
await createDirectoryStructure(pluginDir);
|
|
113
|
+
if (options.configOnly) {
|
|
114
|
+
// Save configuration only
|
|
115
|
+
await saveConfiguration(pluginDir, pluginConfig);
|
|
116
|
+
console.log(chalk_1.default.green(`✓ Configuration saved to ${pluginDir}/plugin.yaml`));
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
// Generate all files
|
|
120
|
+
await Promise.all([
|
|
121
|
+
saveConfiguration(pluginDir, pluginConfig),
|
|
122
|
+
generateIndexFile(pluginDir, pluginConfig),
|
|
123
|
+
generateAgentFile(pluginDir, pluginConfig),
|
|
124
|
+
generateRewardFile(pluginDir, pluginConfig),
|
|
125
|
+
generatePolicyFile(pluginDir, pluginConfig),
|
|
126
|
+
generateTestFile(pluginDir, pluginConfig),
|
|
127
|
+
generateReadme(pluginDir, pluginConfig),
|
|
128
|
+
generatePackageJson(pluginDir, pluginConfig),
|
|
129
|
+
generateTsConfig(pluginDir),
|
|
130
|
+
]);
|
|
131
|
+
console.log(chalk_1.default.green('✓ Created plugin structure at'), pluginDir);
|
|
132
|
+
console.log(chalk_1.default.green('✓ Generated plugin.yaml'));
|
|
133
|
+
console.log(chalk_1.default.green('✓ Generated src/index.ts'));
|
|
134
|
+
console.log(chalk_1.default.green('✓ Generated src/agent.ts'));
|
|
135
|
+
console.log(chalk_1.default.green('✓ Generated src/reward.ts'));
|
|
136
|
+
console.log(chalk_1.default.green('✓ Generated src/policy.ts'));
|
|
137
|
+
console.log(chalk_1.default.green('✓ Generated tests/plugin.test.ts'));
|
|
138
|
+
console.log(chalk_1.default.green('✓ Generated README.md'));
|
|
139
|
+
console.log(chalk_1.default.green('✓ Generated package.json'));
|
|
140
|
+
}
|
|
141
|
+
catch (error) {
|
|
142
|
+
console.error(chalk_1.default.red('Error generating plugin:'), error);
|
|
143
|
+
throw error;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
async function createDirectoryStructure(pluginDir) {
|
|
147
|
+
await promises_1.default.mkdir(path_1.default.join(pluginDir, 'src'), { recursive: true });
|
|
148
|
+
await promises_1.default.mkdir(path_1.default.join(pluginDir, 'tests'), { recursive: true });
|
|
149
|
+
}
|
|
150
|
+
async function saveConfiguration(pluginDir, config) {
|
|
151
|
+
const yamlStr = yaml_1.default.stringify(config);
|
|
152
|
+
await promises_1.default.writeFile(path_1.default.join(pluginDir, 'plugin.yaml'), yamlStr, 'utf-8');
|
|
153
|
+
}
|
|
154
|
+
async function generateIndexFile(pluginDir, config) {
|
|
155
|
+
const content = `/**
|
|
156
|
+
* ${config.name}
|
|
157
|
+
* ${config.description}
|
|
158
|
+
*
|
|
159
|
+
* Generated by SQLite Vector Learning Plugin CLI
|
|
160
|
+
*/
|
|
161
|
+
|
|
162
|
+
import type { LearningPlugin, PluginConfig, Experience, Vector, Action } from 'agentdb/plugins';
|
|
163
|
+
import { ${getAgentClassName(config)} } from './agent.js';
|
|
164
|
+
|
|
165
|
+
export class ${getPluginClassName(config)} implements LearningPlugin {
|
|
166
|
+
name = '${config.name}';
|
|
167
|
+
version = '${config.version}';
|
|
168
|
+
config: PluginConfig;
|
|
169
|
+
|
|
170
|
+
private agent: ${getAgentClassName(config)};
|
|
171
|
+
|
|
172
|
+
async initialize(config: PluginConfig): Promise<void> {
|
|
173
|
+
this.config = config;
|
|
174
|
+
this.agent = new ${getAgentClassName(config)}(config);
|
|
175
|
+
await this.agent.initialize();
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
async destroy(): Promise<void> {
|
|
179
|
+
await this.agent.destroy();
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
async storeExperience(experience: Experience): Promise<void> {
|
|
183
|
+
await this.agent.storeExperience(experience);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
async storeBatch(experiences: Experience[]): Promise<void> {
|
|
187
|
+
await this.agent.storeBatch(experiences);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
async retrieveSimilar(state: Vector, k: number): Promise<Experience[]> {
|
|
191
|
+
return await this.agent.retrieveSimilar(state, k);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
async selectAction(state: Vector, context?: any): Promise<Action> {
|
|
195
|
+
return await this.agent.selectAction(state, context);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
async train(options?: any): Promise<any> {
|
|
199
|
+
return await this.agent.train(options);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
async getMetrics(): Promise<any> {
|
|
203
|
+
return await this.agent.getMetrics();
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
getConfig(): PluginConfig {
|
|
207
|
+
return this.config;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
async save(path: string): Promise<void> {
|
|
211
|
+
await this.agent.save(path);
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
async load(path: string): Promise<void> {
|
|
215
|
+
await this.agent.load(path);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
// Export plugin factory
|
|
220
|
+
export default function createPlugin(config: PluginConfig): LearningPlugin {
|
|
221
|
+
return new ${getPluginClassName(config)}();
|
|
222
|
+
}
|
|
223
|
+
`;
|
|
224
|
+
await promises_1.default.writeFile(path_1.default.join(pluginDir, 'src', 'index.ts'), content, 'utf-8');
|
|
225
|
+
}
|
|
226
|
+
async function generateAgentFile(pluginDir, config) {
|
|
227
|
+
const algorithmImpl = generateAlgorithmImplementation(config);
|
|
228
|
+
const content = `/**
|
|
229
|
+
* Learning agent implementation for ${config.name}
|
|
230
|
+
*/
|
|
231
|
+
|
|
232
|
+
import type { PluginConfig, Experience, Vector, Action } from 'agentdb/plugins';
|
|
233
|
+
import { SQLiteVectorDB } from 'agentdb';
|
|
234
|
+
import { RewardFunction } from './reward.js';
|
|
235
|
+
import { PolicyFunction } from './policy.js';
|
|
236
|
+
|
|
237
|
+
export class ${getAgentClassName(config)} {
|
|
238
|
+
private vectorDB: SQLiteVectorDB;
|
|
239
|
+
private rewardFn: RewardFunction;
|
|
240
|
+
private policy: PolicyFunction;
|
|
241
|
+
private metrics: Map<string, number[]>;
|
|
242
|
+
|
|
243
|
+
${algorithmImpl.fields}
|
|
244
|
+
|
|
245
|
+
constructor(private config: PluginConfig) {
|
|
246
|
+
this.metrics = new Map();
|
|
247
|
+
this.rewardFn = new RewardFunction(config.reward);
|
|
248
|
+
this.policy = new PolicyFunction(config.algorithm);
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
async initialize(): Promise<void> {
|
|
252
|
+
// Initialize vector database
|
|
253
|
+
this.vectorDB = new SQLiteVectorDB({
|
|
254
|
+
path: this.config.storage.path,
|
|
255
|
+
hnsw: this.config.storage.hnsw,
|
|
256
|
+
});
|
|
257
|
+
|
|
258
|
+
${algorithmImpl.initialization}
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
async destroy(): Promise<void> {
|
|
262
|
+
// Cleanup resources
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
async storeExperience(experience: Experience): Promise<void> {
|
|
266
|
+
// Store in vector database
|
|
267
|
+
await this.vectorDB.insert({
|
|
268
|
+
embedding: experience.state,
|
|
269
|
+
metadata: {
|
|
270
|
+
action: experience.action,
|
|
271
|
+
reward: experience.reward,
|
|
272
|
+
nextState: experience.nextState,
|
|
273
|
+
done: experience.done,
|
|
274
|
+
timestamp: Date.now(),
|
|
275
|
+
},
|
|
276
|
+
});
|
|
277
|
+
|
|
278
|
+
${algorithmImpl.onStoreExperience}
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
async storeBatch(experiences: Experience[]): Promise<void> {
|
|
282
|
+
for (const exp of experiences) {
|
|
283
|
+
await this.storeExperience(exp);
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
async retrieveSimilar(state: Vector, k: number): Promise<Experience[]> {
|
|
288
|
+
const results = await this.vectorDB.search(state, k);
|
|
289
|
+
return results.map((r) => ({
|
|
290
|
+
state: r.embedding,
|
|
291
|
+
action: r.metadata.action,
|
|
292
|
+
reward: r.metadata.reward,
|
|
293
|
+
nextState: r.metadata.nextState,
|
|
294
|
+
done: r.metadata.done,
|
|
295
|
+
}));
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
async selectAction(state: Vector, context?: any): Promise<Action> {
|
|
299
|
+
return await this.policy.selectAction(state, context);
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
async train(options?: any): Promise<any> {
|
|
303
|
+
${algorithmImpl.training}
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
async getMetrics(): Promise<any> {
|
|
307
|
+
const result: any = {};
|
|
308
|
+
for (const [key, values] of this.metrics) {
|
|
309
|
+
result[key] = {
|
|
310
|
+
current: values[values.length - 1] || 0,
|
|
311
|
+
average: values.reduce((a, b) => a + b, 0) / values.length || 0,
|
|
312
|
+
min: Math.min(...values) || 0,
|
|
313
|
+
max: Math.max(...values) || 0,
|
|
314
|
+
};
|
|
315
|
+
}
|
|
316
|
+
return result;
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
async save(path: string): Promise<void> {
|
|
320
|
+
// Save model state
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
async load(path: string): Promise<void> {
|
|
324
|
+
// Load model state
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
private trackMetric(name: string, value: number): void {
|
|
328
|
+
if (!this.metrics.has(name)) {
|
|
329
|
+
this.metrics.set(name, []);
|
|
330
|
+
}
|
|
331
|
+
this.metrics.get(name)!.push(value);
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
`;
|
|
335
|
+
await promises_1.default.writeFile(path_1.default.join(pluginDir, 'src', 'agent.ts'), content, 'utf-8');
|
|
336
|
+
}
|
|
337
|
+
async function generateRewardFile(pluginDir, config) {
|
|
338
|
+
// SECURITY FIX: Never use custom functions - always use predefined safe functions
|
|
339
|
+
const rewardImpl = generateDefaultReward(config.reward.type);
|
|
340
|
+
const content = `/**
|
|
341
|
+
* Reward function for ${config.name}
|
|
342
|
+
*/
|
|
343
|
+
|
|
344
|
+
export class RewardFunction {
|
|
345
|
+
constructor(private config: any) {}
|
|
346
|
+
|
|
347
|
+
compute(outcome: any, context: any): number {
|
|
348
|
+
${rewardImpl}
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
`;
|
|
352
|
+
await promises_1.default.writeFile(path_1.default.join(pluginDir, 'src', 'reward.ts'), content, 'utf-8');
|
|
353
|
+
}
|
|
354
|
+
async function generatePolicyFile(pluginDir, config) {
|
|
355
|
+
const content = `/**
|
|
356
|
+
* Policy/action selection for ${config.name}
|
|
357
|
+
*/
|
|
358
|
+
|
|
359
|
+
import type { Vector, Action } from 'agentdb/plugins';
|
|
360
|
+
|
|
361
|
+
export class PolicyFunction {
|
|
362
|
+
constructor(private config: any) {}
|
|
363
|
+
|
|
364
|
+
async selectAction(state: Vector, context?: any): Promise<Action> {
|
|
365
|
+
// ${config.algorithm.action_selection || 'epsilon_greedy'} strategy
|
|
366
|
+
// TODO: Implement action selection logic
|
|
367
|
+
return { id: 0, type: 'discrete' };
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
`;
|
|
371
|
+
await promises_1.default.writeFile(path_1.default.join(pluginDir, 'src', 'policy.ts'), content, 'utf-8');
|
|
372
|
+
}
|
|
373
|
+
async function generateTestFile(pluginDir, config) {
|
|
374
|
+
const content = `/**
|
|
375
|
+
* Tests for ${config.name}
|
|
376
|
+
*/
|
|
377
|
+
|
|
378
|
+
import { describe, it, expect, beforeAll, afterAll } from 'vitest';
|
|
379
|
+
import { ${getPluginClassName(config)} } from '../src/index.js';
|
|
380
|
+
import type { PluginConfig } from 'agentdb/plugins';
|
|
381
|
+
|
|
382
|
+
describe('${config.name}', () => {
|
|
383
|
+
let plugin: ${getPluginClassName(config)};
|
|
384
|
+
|
|
385
|
+
beforeAll(async () => {
|
|
386
|
+
const config: PluginConfig = {
|
|
387
|
+
// Load from plugin.yaml
|
|
388
|
+
};
|
|
389
|
+
|
|
390
|
+
plugin = new ${getPluginClassName(config)}();
|
|
391
|
+
await plugin.initialize(config);
|
|
392
|
+
});
|
|
393
|
+
|
|
394
|
+
afterAll(async () => {
|
|
395
|
+
await plugin.destroy();
|
|
396
|
+
});
|
|
397
|
+
|
|
398
|
+
it('should initialize correctly', () => {
|
|
399
|
+
expect(plugin.name).toBe('${config.name}');
|
|
400
|
+
expect(plugin.version).toBe('${config.version}');
|
|
401
|
+
});
|
|
402
|
+
|
|
403
|
+
it('should store experiences', async () => {
|
|
404
|
+
const experience = {
|
|
405
|
+
state: new Float32Array(${config.algorithm.state_dim || 768}),
|
|
406
|
+
action: { id: 0, type: 'discrete' },
|
|
407
|
+
reward: 1.0,
|
|
408
|
+
nextState: new Float32Array(${config.algorithm.state_dim || 768}),
|
|
409
|
+
done: false,
|
|
410
|
+
};
|
|
411
|
+
|
|
412
|
+
await plugin.storeExperience(experience);
|
|
413
|
+
});
|
|
414
|
+
|
|
415
|
+
it('should select actions', async () => {
|
|
416
|
+
const state = new Float32Array(${config.algorithm.state_dim || 768});
|
|
417
|
+
const action = await plugin.selectAction(state);
|
|
418
|
+
expect(action).toBeDefined();
|
|
419
|
+
});
|
|
420
|
+
|
|
421
|
+
it('should train successfully', async () => {
|
|
422
|
+
const metrics = await plugin.train();
|
|
423
|
+
expect(metrics).toBeDefined();
|
|
424
|
+
});
|
|
425
|
+
});
|
|
426
|
+
`;
|
|
427
|
+
await promises_1.default.writeFile(path_1.default.join(pluginDir, 'tests', 'plugin.test.ts'), content, 'utf-8');
|
|
428
|
+
}
|
|
429
|
+
async function generateReadme(pluginDir, config) {
|
|
430
|
+
const content = `# ${config.name}
|
|
431
|
+
|
|
432
|
+
${config.description}
|
|
433
|
+
|
|
434
|
+
**Version:** ${config.version}
|
|
435
|
+
**Author:** ${config.author || 'Unknown'}
|
|
436
|
+
**Algorithm:** ${config.algorithm.base}
|
|
437
|
+
|
|
438
|
+
## Installation
|
|
439
|
+
|
|
440
|
+
\`\`\`bash
|
|
441
|
+
npm install
|
|
442
|
+
\`\`\`
|
|
443
|
+
|
|
444
|
+
## Usage
|
|
445
|
+
|
|
446
|
+
\`\`\`typescript
|
|
447
|
+
import { PluginRegistry } from 'agentdb/plugins';
|
|
448
|
+
|
|
449
|
+
// Load plugin
|
|
450
|
+
const plugin = await PluginRegistry.load('${config.name}');
|
|
451
|
+
|
|
452
|
+
// Initialize
|
|
453
|
+
await plugin.initialize(config);
|
|
454
|
+
|
|
455
|
+
// Use in your application
|
|
456
|
+
const action = await plugin.selectAction(state);
|
|
457
|
+
\`\`\`
|
|
458
|
+
|
|
459
|
+
## Configuration
|
|
460
|
+
|
|
461
|
+
See \`plugin.yaml\` for complete configuration options.
|
|
462
|
+
|
|
463
|
+
## Testing
|
|
464
|
+
|
|
465
|
+
\`\`\`bash
|
|
466
|
+
npm test
|
|
467
|
+
\`\`\`
|
|
468
|
+
|
|
469
|
+
## License
|
|
470
|
+
|
|
471
|
+
MIT
|
|
472
|
+
`;
|
|
473
|
+
await promises_1.default.writeFile(path_1.default.join(pluginDir, 'README.md'), content, 'utf-8');
|
|
474
|
+
}
|
|
475
|
+
async function generatePackageJson(pluginDir, config) {
|
|
476
|
+
const pkg = {
|
|
477
|
+
name: config.name,
|
|
478
|
+
version: config.version,
|
|
479
|
+
description: config.description,
|
|
480
|
+
type: 'module',
|
|
481
|
+
main: './dist/index.js',
|
|
482
|
+
types: './dist/index.d.ts',
|
|
483
|
+
scripts: {
|
|
484
|
+
build: 'tsc',
|
|
485
|
+
test: 'vitest',
|
|
486
|
+
'test:coverage': 'vitest --coverage',
|
|
487
|
+
},
|
|
488
|
+
dependencies: {
|
|
489
|
+
'agentdb': '^1.0.0',
|
|
490
|
+
},
|
|
491
|
+
devDependencies: {
|
|
492
|
+
typescript: '^5.0.0',
|
|
493
|
+
vitest: '^1.0.0',
|
|
494
|
+
'@types/node': '^20.0.0',
|
|
495
|
+
},
|
|
496
|
+
};
|
|
497
|
+
await promises_1.default.writeFile(path_1.default.join(pluginDir, 'package.json'), JSON.stringify(pkg, null, 2), 'utf-8');
|
|
498
|
+
}
|
|
499
|
+
async function generateTsConfig(pluginDir) {
|
|
500
|
+
const tsconfig = {
|
|
501
|
+
compilerOptions: {
|
|
502
|
+
target: 'ES2022',
|
|
503
|
+
module: 'ESNext',
|
|
504
|
+
moduleResolution: 'bundler',
|
|
505
|
+
declaration: true,
|
|
506
|
+
outDir: './dist',
|
|
507
|
+
strict: true,
|
|
508
|
+
esModuleInterop: true,
|
|
509
|
+
skipLibCheck: true,
|
|
510
|
+
forceConsistentCasingInFileNames: true,
|
|
511
|
+
},
|
|
512
|
+
include: ['src/**/*'],
|
|
513
|
+
exclude: ['node_modules', 'dist', 'tests'],
|
|
514
|
+
};
|
|
515
|
+
await promises_1.default.writeFile(path_1.default.join(pluginDir, 'tsconfig.json'), JSON.stringify(tsconfig, null, 2), 'utf-8');
|
|
516
|
+
}
|
|
517
|
+
// Helper functions
|
|
518
|
+
function getPluginClassName(config) {
|
|
519
|
+
return config.name
|
|
520
|
+
.split('-')
|
|
521
|
+
.map((word) => word.charAt(0).toUpperCase() + word.slice(1))
|
|
522
|
+
.join('') + 'Plugin';
|
|
523
|
+
}
|
|
524
|
+
function getAgentClassName(config) {
|
|
525
|
+
return config.name
|
|
526
|
+
.split('-')
|
|
527
|
+
.map((word) => word.charAt(0).toUpperCase() + word.slice(1))
|
|
528
|
+
.join('') + 'Agent';
|
|
529
|
+
}
|
|
530
|
+
function generateAlgorithmImplementation(config) {
|
|
531
|
+
switch (config.algorithm.base) {
|
|
532
|
+
case 'q_learning':
|
|
533
|
+
return {
|
|
534
|
+
fields: ` private qTable: Map<string, number[]>;\n private epsilon: number;`,
|
|
535
|
+
initialization: ` this.qTable = new Map();\n this.epsilon = ${config.algorithm.epsilon_start || 1.0};`,
|
|
536
|
+
onStoreExperience: ` // Update Q-values if needed`,
|
|
537
|
+
training: ` const metrics = { loss: 0, epsilon: this.epsilon };\n // TODO: Implement Q-learning training\n return metrics;`,
|
|
538
|
+
};
|
|
539
|
+
case 'decision_transformer':
|
|
540
|
+
return {
|
|
541
|
+
fields: ` private model: any; // Neural network model`,
|
|
542
|
+
initialization: ` // Initialize Decision Transformer model`,
|
|
543
|
+
onStoreExperience: ` // Store trajectory for training`,
|
|
544
|
+
training: ` const metrics = { loss: 0 };\n // TODO: Implement Decision Transformer training\n return metrics;`,
|
|
545
|
+
};
|
|
546
|
+
default:
|
|
547
|
+
return {
|
|
548
|
+
fields: '',
|
|
549
|
+
initialization: '',
|
|
550
|
+
onStoreExperience: '',
|
|
551
|
+
training: ` const metrics = {};\n // TODO: Implement training logic\n return metrics;`,
|
|
552
|
+
};
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
function generateDefaultReward(type) {
|
|
556
|
+
switch (type) {
|
|
557
|
+
case 'success_based':
|
|
558
|
+
return 'return outcome.success ? 1.0 : -1.0;';
|
|
559
|
+
case 'time_aware':
|
|
560
|
+
return `const base = outcome.success ? 1.0 : -1.0;\nconst timePenalty = -0.1 * (context.duration / 1000);\nreturn base + timePenalty;`;
|
|
561
|
+
case 'token_aware':
|
|
562
|
+
return `const base = outcome.success ? 1.0 : -1.0;\nconst tokenPenalty = -0.01 * (context.tokensUsed / 100);\nreturn base + tokenPenalty;`;
|
|
563
|
+
default:
|
|
564
|
+
return 'return outcome.success ? 1.0 : -1.0;';
|
|
565
|
+
}
|
|
566
|
+
}
|
|
567
|
+
//# sourceMappingURL=generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/cli/generator.ts"],"names":[],"mappings":"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"}
|