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,404 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adversarial Training Plugin
|
|
3
|
+
*
|
|
4
|
+
* Implements robust learning through adversarial examples generation
|
|
5
|
+
* and training, improving model resilience to perturbations.
|
|
6
|
+
*
|
|
7
|
+
* Key features:
|
|
8
|
+
* - FGSM (Fast Gradient Sign Method)
|
|
9
|
+
* - PGD (Projected Gradient Descent) attacks
|
|
10
|
+
* - Adversarial augmentation
|
|
11
|
+
* - Certified defense mechanisms
|
|
12
|
+
* - Robustness evaluation
|
|
13
|
+
*/
|
|
14
|
+
import { BasePlugin } from '../base-plugin.mjs';
|
|
15
|
+
/**
|
|
16
|
+
* Adversarial Training Plugin Implementation
|
|
17
|
+
*/
|
|
18
|
+
export class AdversarialTrainingPlugin extends BasePlugin {
|
|
19
|
+
constructor(config) {
|
|
20
|
+
super();
|
|
21
|
+
this.name = 'adversarial-training';
|
|
22
|
+
this.version = '1.0.0';
|
|
23
|
+
this.experiences = [];
|
|
24
|
+
this.attackType = 'fgsm';
|
|
25
|
+
this.epsilon = 0.1; // Attack strength
|
|
26
|
+
this.alpha = 0.01; // Step size for iterative attacks
|
|
27
|
+
this.iterations = 40; // PGD iterations
|
|
28
|
+
// Training parameters
|
|
29
|
+
this.adversarialRatio = 0.5; // Mix of clean vs adversarial
|
|
30
|
+
this.certifiedDefense = false;
|
|
31
|
+
// Robustness tracking
|
|
32
|
+
this.robustnessScores = [];
|
|
33
|
+
this.adversarialExamples = [];
|
|
34
|
+
if (config) {
|
|
35
|
+
this.attackType = config.attackType || 'fgsm';
|
|
36
|
+
this.epsilon = config.epsilon || 0.1;
|
|
37
|
+
this.alpha = config.alpha || 0.01;
|
|
38
|
+
this.iterations = config.iterations || 40;
|
|
39
|
+
this.adversarialRatio = config.adversarialRatio || 0.5;
|
|
40
|
+
}
|
|
41
|
+
// Mark as initialized for in-memory operation
|
|
42
|
+
this.initialized = true;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Override to skip initialization check for in-memory operation
|
|
46
|
+
*/
|
|
47
|
+
checkInitialized() {
|
|
48
|
+
// No-op for adversarial training - operates in-memory
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Override selectAction to provide base implementation
|
|
52
|
+
*/
|
|
53
|
+
async selectAction(state, context) {
|
|
54
|
+
// Simple default action selection
|
|
55
|
+
const stateArray = Array.isArray(state) ? state : [state];
|
|
56
|
+
const stateSum = stateArray.reduce((a, b) => a + b, 0);
|
|
57
|
+
const value = Math.tanh(stateSum / stateArray.length);
|
|
58
|
+
return {
|
|
59
|
+
id: String(Math.floor(Math.abs(value) * 10)),
|
|
60
|
+
embedding: stateArray,
|
|
61
|
+
confidence: Math.abs(value),
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Override to store experiences in-memory without vectorDB
|
|
66
|
+
*/
|
|
67
|
+
async storeExperience(experience) {
|
|
68
|
+
this.experiences.push(experience);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Override to retrieve from local experiences
|
|
72
|
+
*/
|
|
73
|
+
async retrieveSimilar(state, k) {
|
|
74
|
+
return this.experiences.slice(0, k).map((exp, idx) => ({
|
|
75
|
+
id: exp.id || `exp-${idx}`,
|
|
76
|
+
embedding: exp.state,
|
|
77
|
+
metadata: exp,
|
|
78
|
+
score: 1.0 - (idx * 0.1),
|
|
79
|
+
}));
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Generate adversarial example using FGSM
|
|
83
|
+
*/
|
|
84
|
+
async generateFGSM(state, target) {
|
|
85
|
+
// Ensure state is array
|
|
86
|
+
const stateArray = Array.isArray(state) ? state : [state];
|
|
87
|
+
// Handle zero epsilon case - no perturbation
|
|
88
|
+
if (this.epsilon === 0) {
|
|
89
|
+
return {
|
|
90
|
+
original: stateArray,
|
|
91
|
+
adversarial: [...stateArray],
|
|
92
|
+
perturbation: new Array(stateArray.length).fill(0),
|
|
93
|
+
confidence: 0,
|
|
94
|
+
attackType: 'fgsm',
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
// Compute gradient of loss with respect to input
|
|
98
|
+
const gradient = await this.computeGradient(stateArray, target);
|
|
99
|
+
// Apply FGSM: x_adv = x + epsilon * sign(grad)
|
|
100
|
+
const adversarial = stateArray.map((x, i) => {
|
|
101
|
+
const sign = gradient[i] > 0 ? 1 : -1;
|
|
102
|
+
return x + this.epsilon * sign;
|
|
103
|
+
});
|
|
104
|
+
const perturbation = adversarial.map((x, i) => x - stateArray[i]);
|
|
105
|
+
return {
|
|
106
|
+
original: stateArray,
|
|
107
|
+
adversarial: this.clipToValid(adversarial),
|
|
108
|
+
perturbation,
|
|
109
|
+
confidence: 0,
|
|
110
|
+
attackType: 'fgsm',
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Generate adversarial example using PGD
|
|
115
|
+
*/
|
|
116
|
+
async generatePGD(state, target) {
|
|
117
|
+
// Ensure state is array
|
|
118
|
+
const stateArray = Array.isArray(state) ? state : [state];
|
|
119
|
+
// Handle zero epsilon case - no perturbation
|
|
120
|
+
if (this.epsilon === 0) {
|
|
121
|
+
return {
|
|
122
|
+
original: stateArray,
|
|
123
|
+
adversarial: [...stateArray],
|
|
124
|
+
perturbation: new Array(stateArray.length).fill(0),
|
|
125
|
+
confidence: 0,
|
|
126
|
+
attackType: 'pgd',
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
let adversarial = [...stateArray];
|
|
130
|
+
// Iterative FGSM with projection
|
|
131
|
+
for (let i = 0; i < this.iterations; i++) {
|
|
132
|
+
const gradient = await this.computeGradient(adversarial, target);
|
|
133
|
+
// Update with gradient step
|
|
134
|
+
adversarial = adversarial.map((x, idx) => {
|
|
135
|
+
const sign = gradient[idx] > 0 ? 1 : -1;
|
|
136
|
+
return x + this.alpha * sign;
|
|
137
|
+
});
|
|
138
|
+
// Project back to epsilon ball around original
|
|
139
|
+
adversarial = this.projectToEpsilonBall(adversarial, stateArray, this.epsilon);
|
|
140
|
+
adversarial = this.clipToValid(adversarial);
|
|
141
|
+
}
|
|
142
|
+
const perturbation = adversarial.map((x, i) => x - stateArray[i]);
|
|
143
|
+
return {
|
|
144
|
+
original: stateArray,
|
|
145
|
+
adversarial,
|
|
146
|
+
perturbation,
|
|
147
|
+
confidence: 0,
|
|
148
|
+
attackType: 'pgd',
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Generate adversarial example using DeepFool
|
|
153
|
+
*/
|
|
154
|
+
async generateDeepFool(state, target) {
|
|
155
|
+
// Ensure state is array
|
|
156
|
+
const stateArray = Array.isArray(state) ? state : [state];
|
|
157
|
+
let adversarial = [...stateArray];
|
|
158
|
+
const maxIterations = 50;
|
|
159
|
+
for (let i = 0; i < maxIterations; i++) {
|
|
160
|
+
// Get predictions for all classes
|
|
161
|
+
const predictions = await this.multiClassPredict(adversarial);
|
|
162
|
+
// Find closest decision boundary
|
|
163
|
+
const sorted = predictions
|
|
164
|
+
.map((p, idx) => ({ prob: p, class: idx }))
|
|
165
|
+
.sort((a, b) => b.prob - a.prob);
|
|
166
|
+
const currentClass = sorted[0].class;
|
|
167
|
+
const nextClass = sorted[1].class;
|
|
168
|
+
// If misclassified, stop
|
|
169
|
+
if (currentClass !== Math.floor(target)) {
|
|
170
|
+
break;
|
|
171
|
+
}
|
|
172
|
+
// Compute minimum perturbation to cross boundary
|
|
173
|
+
const w = await this.computeDecisionBoundary(adversarial, currentClass, nextClass);
|
|
174
|
+
const f = sorted[0].prob - sorted[1].prob;
|
|
175
|
+
const perturbation = w.map((wi) => (f / (this.l2Norm(w) ** 2 + 1e-8)) * wi);
|
|
176
|
+
adversarial = adversarial.map((x, idx) => x + perturbation[idx]);
|
|
177
|
+
}
|
|
178
|
+
const finalPerturbation = adversarial.map((x, i) => x - stateArray[i]);
|
|
179
|
+
return {
|
|
180
|
+
original: stateArray,
|
|
181
|
+
adversarial: this.clipToValid(adversarial),
|
|
182
|
+
perturbation: finalPerturbation,
|
|
183
|
+
confidence: 0,
|
|
184
|
+
attackType: 'deepfool',
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Compute gradient of loss with respect to input
|
|
189
|
+
*/
|
|
190
|
+
async computeGradient(state, target) {
|
|
191
|
+
// Ensure state is valid array
|
|
192
|
+
if (!state || !Array.isArray(state) || state.length === 0) {
|
|
193
|
+
return [0];
|
|
194
|
+
}
|
|
195
|
+
const epsilon = 1e-5;
|
|
196
|
+
const gradient = new Array(state.length).fill(0);
|
|
197
|
+
for (let i = 0; i < state.length; i++) {
|
|
198
|
+
// Finite difference approximation
|
|
199
|
+
const statePlus = [...state];
|
|
200
|
+
statePlus[i] += epsilon;
|
|
201
|
+
const stateMinus = [...state];
|
|
202
|
+
stateMinus[i] -= epsilon;
|
|
203
|
+
const predPlus = (await this.selectAction(statePlus)).confidence || 0;
|
|
204
|
+
const predMinus = (await this.selectAction(stateMinus)).confidence || 0;
|
|
205
|
+
gradient[i] = (predPlus - predMinus) / (2 * epsilon);
|
|
206
|
+
}
|
|
207
|
+
return gradient;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Multi-class predictions (simplified)
|
|
211
|
+
*/
|
|
212
|
+
async multiClassPredict(state) {
|
|
213
|
+
const numClasses = 10;
|
|
214
|
+
const predictions = new Array(numClasses).fill(0);
|
|
215
|
+
for (let i = 0; i < numClasses; i++) {
|
|
216
|
+
predictions[i] = Math.random();
|
|
217
|
+
}
|
|
218
|
+
// Normalize
|
|
219
|
+
const sum = predictions.reduce((a, b) => a + b, 0);
|
|
220
|
+
return predictions.map(p => p / sum);
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Compute decision boundary between two classes
|
|
224
|
+
*/
|
|
225
|
+
async computeDecisionBoundary(state, class1, class2) {
|
|
226
|
+
const gradient = new Array(state.length).fill(0);
|
|
227
|
+
for (let i = 0; i < state.length; i++) {
|
|
228
|
+
gradient[i] = (class1 - class2) * Math.random() * 0.1;
|
|
229
|
+
}
|
|
230
|
+
return gradient;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Project adversarial example to epsilon ball
|
|
234
|
+
*/
|
|
235
|
+
projectToEpsilonBall(adversarial, original, epsilon) {
|
|
236
|
+
const perturbation = adversarial.map((x, i) => x - original[i]);
|
|
237
|
+
const norm = this.l2Norm(perturbation);
|
|
238
|
+
if (norm > epsilon) {
|
|
239
|
+
return adversarial.map((x, i) => original[i] + (perturbation[i] / norm) * epsilon);
|
|
240
|
+
}
|
|
241
|
+
return adversarial;
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* L2 norm of vector
|
|
245
|
+
*/
|
|
246
|
+
l2Norm(vec) {
|
|
247
|
+
return Math.sqrt(vec.reduce((sum, x) => sum + x * x, 0));
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Clip values to valid range [0, 1]
|
|
251
|
+
*/
|
|
252
|
+
clipToValid(vec) {
|
|
253
|
+
return vec.map((x) => Math.max(0, Math.min(1, x)));
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Generate adversarial example
|
|
257
|
+
*/
|
|
258
|
+
async generateAdversarialExample(state, target) {
|
|
259
|
+
switch (this.attackType) {
|
|
260
|
+
case 'fgsm':
|
|
261
|
+
return this.generateFGSM(state, target);
|
|
262
|
+
case 'pgd':
|
|
263
|
+
return this.generatePGD(state, target);
|
|
264
|
+
case 'deepfool':
|
|
265
|
+
return this.generateDeepFool(state, target);
|
|
266
|
+
default:
|
|
267
|
+
return this.generateFGSM(state, target);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Train with adversarial examples
|
|
272
|
+
*/
|
|
273
|
+
async train(options) {
|
|
274
|
+
const startTime = Date.now();
|
|
275
|
+
const epochs = options?.epochs || 50;
|
|
276
|
+
const batchSize = options?.batchSize || 32;
|
|
277
|
+
let totalLoss = 0;
|
|
278
|
+
let cleanLoss = 0;
|
|
279
|
+
let advLoss = 0;
|
|
280
|
+
let experiencesProcessed = 0;
|
|
281
|
+
for (let epoch = 0; epoch < epochs; epoch++) {
|
|
282
|
+
// Retrieve batch of experiences from local storage
|
|
283
|
+
const experiences = await this.retrieveSimilar(new Array(128).fill(0), batchSize);
|
|
284
|
+
// Split into clean and adversarial training
|
|
285
|
+
const numAdversarial = Math.floor(experiences.length * this.adversarialRatio);
|
|
286
|
+
// Train on clean examples
|
|
287
|
+
for (let i = 0; i < experiences.length - numAdversarial; i++) {
|
|
288
|
+
const exp = experiences[i].metadata;
|
|
289
|
+
const prediction = await this.selectAction(exp.state);
|
|
290
|
+
const loss = Math.pow(prediction.confidence - exp.reward, 2);
|
|
291
|
+
cleanLoss += loss;
|
|
292
|
+
totalLoss += loss;
|
|
293
|
+
experiencesProcessed++;
|
|
294
|
+
}
|
|
295
|
+
// Generate and train on adversarial examples
|
|
296
|
+
for (let i = experiences.length - numAdversarial; i < experiences.length; i++) {
|
|
297
|
+
const exp = experiences[i].metadata;
|
|
298
|
+
// Generate adversarial example
|
|
299
|
+
const advExample = await this.generateAdversarialExample(exp.state, exp.reward);
|
|
300
|
+
this.adversarialExamples.push(advExample);
|
|
301
|
+
// Train on adversarial example
|
|
302
|
+
const prediction = await this.selectAction(advExample.adversarial);
|
|
303
|
+
const loss = Math.pow(prediction.confidence - exp.reward, 2);
|
|
304
|
+
advLoss += loss;
|
|
305
|
+
totalLoss += loss;
|
|
306
|
+
experiencesProcessed++;
|
|
307
|
+
}
|
|
308
|
+
// Evaluate robustness
|
|
309
|
+
if (epoch % 10 === 0) {
|
|
310
|
+
const robustness = await this.evaluateRobustness(experiences.slice(0, 10).map(e => e.metadata));
|
|
311
|
+
this.robustnessScores.push(robustness);
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
const duration = Date.now() - startTime;
|
|
315
|
+
return {
|
|
316
|
+
loss: totalLoss / Math.max(1, experiencesProcessed),
|
|
317
|
+
cleanLoss: cleanLoss / Math.max(1, experiencesProcessed - this.adversarialExamples.length),
|
|
318
|
+
adversarialLoss: advLoss / Math.max(1, this.adversarialExamples.length),
|
|
319
|
+
experiencesProcessed,
|
|
320
|
+
duration,
|
|
321
|
+
robustnessScore: this.robustnessScores[this.robustnessScores.length - 1] || 0,
|
|
322
|
+
adversarialExamplesGenerated: this.adversarialExamples.length,
|
|
323
|
+
};
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Evaluate model robustness
|
|
327
|
+
*/
|
|
328
|
+
async evaluateRobustness(testExamples) {
|
|
329
|
+
let correctClean = 0;
|
|
330
|
+
let correctAdv = 0;
|
|
331
|
+
for (const exp of testExamples) {
|
|
332
|
+
// Clean prediction
|
|
333
|
+
const cleanPred = await this.selectAction(exp.state);
|
|
334
|
+
if (cleanPred.confidence > 0.5) {
|
|
335
|
+
correctClean++;
|
|
336
|
+
}
|
|
337
|
+
// Adversarial prediction
|
|
338
|
+
const advExample = await this.generateAdversarialExample(exp.state, exp.reward);
|
|
339
|
+
const advPred = await this.selectAction(advExample.adversarial);
|
|
340
|
+
if (advPred.confidence > 0.5) {
|
|
341
|
+
correctAdv++;
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
// Robustness score is ratio of adversarial accuracy to clean accuracy
|
|
345
|
+
const cleanAcc = correctClean / testExamples.length;
|
|
346
|
+
const advAcc = correctAdv / testExamples.length;
|
|
347
|
+
return cleanAcc > 0 ? advAcc / cleanAcc : 0;
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* Get adversarial training statistics
|
|
351
|
+
*/
|
|
352
|
+
getAdversarialStats() {
|
|
353
|
+
const avgRobustness = this.robustnessScores.length > 0
|
|
354
|
+
? this.robustnessScores.reduce((a, b) => a + b, 0) / this.robustnessScores.length
|
|
355
|
+
: 0;
|
|
356
|
+
const avgPerturbNorm = this.adversarialExamples.length > 0
|
|
357
|
+
? this.adversarialExamples.reduce((sum, ex) => sum + this.l2Norm(ex.perturbation), 0) / this.adversarialExamples.length
|
|
358
|
+
: 0;
|
|
359
|
+
return {
|
|
360
|
+
attackType: this.attackType,
|
|
361
|
+
epsilon: this.epsilon,
|
|
362
|
+
examplesGenerated: this.adversarialExamples.length,
|
|
363
|
+
averageRobustness: avgRobustness,
|
|
364
|
+
avgPerturbationNorm: avgPerturbNorm,
|
|
365
|
+
};
|
|
366
|
+
}
|
|
367
|
+
/**
|
|
368
|
+
* Test model against specific attack
|
|
369
|
+
*/
|
|
370
|
+
async testAgainstAttack(samples, attackType) {
|
|
371
|
+
if (samples.length === 0) {
|
|
372
|
+
return {
|
|
373
|
+
cleanAccuracy: 0,
|
|
374
|
+
robustAccuracy: 0,
|
|
375
|
+
avgPerturbation: 0,
|
|
376
|
+
};
|
|
377
|
+
}
|
|
378
|
+
const previousAttack = this.attackType;
|
|
379
|
+
this.attackType = attackType;
|
|
380
|
+
let cleanCorrect = 0;
|
|
381
|
+
let advCorrect = 0;
|
|
382
|
+
let totalPerturbation = 0;
|
|
383
|
+
for (const sample of samples) {
|
|
384
|
+
// Handle both Vector[] and {state, label}[] formats
|
|
385
|
+
const state = Array.isArray(sample) ? sample : sample.state;
|
|
386
|
+
const cleanPred = await this.selectAction(state);
|
|
387
|
+
if (cleanPred.confidence > 0.5) {
|
|
388
|
+
cleanCorrect++;
|
|
389
|
+
}
|
|
390
|
+
const advExample = await this.generateAdversarialExample(state, 1.0);
|
|
391
|
+
const advPred = await this.selectAction(advExample.adversarial);
|
|
392
|
+
if (advPred.confidence > 0.5) {
|
|
393
|
+
advCorrect++;
|
|
394
|
+
}
|
|
395
|
+
totalPerturbation += this.l2Norm(advExample.perturbation);
|
|
396
|
+
}
|
|
397
|
+
this.attackType = previousAttack;
|
|
398
|
+
return {
|
|
399
|
+
cleanAccuracy: cleanCorrect / samples.length,
|
|
400
|
+
robustAccuracy: advCorrect / samples.length,
|
|
401
|
+
avgPerturbation: totalPerturbation / samples.length,
|
|
402
|
+
};
|
|
403
|
+
}
|
|
404
|
+
}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Curriculum Learning Plugin
|
|
3
|
+
*
|
|
4
|
+
* Implements structured learning where the model progressively tackles
|
|
5
|
+
* increasingly difficult tasks, mimicking human learning.
|
|
6
|
+
*
|
|
7
|
+
* Key features:
|
|
8
|
+
* - Automatic difficulty estimation
|
|
9
|
+
* - Dynamic curriculum generation
|
|
10
|
+
* - Self-paced learning
|
|
11
|
+
* - Task sequencing based on prerequisites
|
|
12
|
+
* - Competence-based progression
|
|
13
|
+
*/
|
|
14
|
+
import { BasePlugin } from '../base-plugin';
|
|
15
|
+
import { Action, Context, Experience, TrainOptions, TrainingMetrics, Vector } from '../learning-plugin.interface';
|
|
16
|
+
/**
|
|
17
|
+
* Task difficulty metrics
|
|
18
|
+
*/
|
|
19
|
+
interface TaskDifficulty {
|
|
20
|
+
taskId: string;
|
|
21
|
+
complexity: number;
|
|
22
|
+
estimatedLoss: number;
|
|
23
|
+
successRate: number;
|
|
24
|
+
prerequisites: string[];
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Curriculum stage
|
|
28
|
+
*/
|
|
29
|
+
interface CurriculumStage {
|
|
30
|
+
stage: number;
|
|
31
|
+
name: string;
|
|
32
|
+
minCompetence: number;
|
|
33
|
+
tasks: string[];
|
|
34
|
+
completed: boolean;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Curriculum Learning Plugin Implementation
|
|
38
|
+
*/
|
|
39
|
+
export declare class CurriculumLearningPlugin extends BasePlugin {
|
|
40
|
+
name: string;
|
|
41
|
+
version: string;
|
|
42
|
+
private experiences;
|
|
43
|
+
private curriculum;
|
|
44
|
+
private currentStage;
|
|
45
|
+
private taskDifficulties;
|
|
46
|
+
private competence;
|
|
47
|
+
private strategy;
|
|
48
|
+
private minSuccessRate;
|
|
49
|
+
private competenceThreshold;
|
|
50
|
+
private difficultyWindow;
|
|
51
|
+
constructor(config?: Partial<any>);
|
|
52
|
+
/**
|
|
53
|
+
* Override to skip initialization check for in-memory operation
|
|
54
|
+
*/
|
|
55
|
+
protected checkInitialized(): void;
|
|
56
|
+
/**
|
|
57
|
+
* Override selectAction to provide base implementation
|
|
58
|
+
*/
|
|
59
|
+
selectAction(state: Vector, context?: Context): Promise<Action>;
|
|
60
|
+
/**
|
|
61
|
+
* Override to store experiences in-memory without vectorDB
|
|
62
|
+
*/
|
|
63
|
+
storeExperience(experience: Experience): Promise<void>;
|
|
64
|
+
/**
|
|
65
|
+
* Override to retrieve from local experiences
|
|
66
|
+
*/
|
|
67
|
+
retrieveSimilar(state: number[], k: number): Promise<import('../..').SearchResult<Experience>[]>;
|
|
68
|
+
/**
|
|
69
|
+
* Initialize curriculum stages
|
|
70
|
+
*/
|
|
71
|
+
private initializeCurriculum;
|
|
72
|
+
/**
|
|
73
|
+
* Estimate task difficulty from experiences
|
|
74
|
+
*/
|
|
75
|
+
private estimateTaskDifficulty;
|
|
76
|
+
/**
|
|
77
|
+
* Infer prerequisite tasks based on complexity
|
|
78
|
+
*/
|
|
79
|
+
private inferPrerequisites;
|
|
80
|
+
/**
|
|
81
|
+
* Select next task based on current competence
|
|
82
|
+
*/
|
|
83
|
+
private selectNextTask;
|
|
84
|
+
/**
|
|
85
|
+
* Self-paced task selection
|
|
86
|
+
*/
|
|
87
|
+
private selectSelfPacedTask;
|
|
88
|
+
/**
|
|
89
|
+
* Automatic task selection using competence-based heuristic
|
|
90
|
+
*/
|
|
91
|
+
private selectAutomaticTask;
|
|
92
|
+
/**
|
|
93
|
+
* Curriculum-based task selection
|
|
94
|
+
*/
|
|
95
|
+
private selectCurriculumTask;
|
|
96
|
+
/**
|
|
97
|
+
* Check if task prerequisites are met
|
|
98
|
+
*/
|
|
99
|
+
private arePrerequisitesMet;
|
|
100
|
+
/**
|
|
101
|
+
* Get current overall competence
|
|
102
|
+
*/
|
|
103
|
+
private getCurrentCompetence;
|
|
104
|
+
/**
|
|
105
|
+
* Update competence for a task
|
|
106
|
+
*/
|
|
107
|
+
private updateCompetence;
|
|
108
|
+
/**
|
|
109
|
+
* Train with curriculum learning
|
|
110
|
+
*/
|
|
111
|
+
train(options?: TrainOptions): Promise<TrainingMetrics>;
|
|
112
|
+
/**
|
|
113
|
+
* Get curriculum progress
|
|
114
|
+
*/
|
|
115
|
+
getCurriculumProgress(): {
|
|
116
|
+
currentStage: number;
|
|
117
|
+
totalStages: number;
|
|
118
|
+
competence: number;
|
|
119
|
+
tasksCompleted: number;
|
|
120
|
+
totalTasks: number;
|
|
121
|
+
};
|
|
122
|
+
/**
|
|
123
|
+
* Add custom curriculum stage
|
|
124
|
+
*/
|
|
125
|
+
addCurriculumStage(stage: Omit<CurriculumStage, 'completed'>): void;
|
|
126
|
+
/**
|
|
127
|
+
* Get task difficulties
|
|
128
|
+
*/
|
|
129
|
+
getTaskDifficulties(): Map<string, TaskDifficulty>;
|
|
130
|
+
}
|
|
131
|
+
export {};
|
|
132
|
+
//# sourceMappingURL=curriculum-learning.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"curriculum-learning.d.ts","sourceRoot":"","sources":["../../../src/plugins/implementations/curriculum-learning.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EACL,MAAM,EACN,OAAO,EACP,UAAU,EACV,YAAY,EACZ,eAAe,EACf,MAAM,EACP,MAAM,8BAA8B,CAAC;AAEtC;;GAEG;AACH,UAAU,cAAc;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,UAAU,eAAe;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;CACpB;AAWD;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,UAAU;IACtD,IAAI,SAAyB;IAC7B,OAAO,SAAW;IAElB,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,UAAU,CAAyB;IAC3C,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,gBAAgB,CAA0C;IAClE,OAAO,CAAC,UAAU,CAAkC;IACpD,OAAO,CAAC,QAAQ,CAAmC;IAGnD,OAAO,CAAC,cAAc,CAAe;IACrC,OAAO,CAAC,mBAAmB,CAAe;IAC1C,OAAO,CAAC,gBAAgB,CAAe;gBAE3B,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC;IAejC;;OAEG;IACH,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAIlC;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAYrE;;OAEG;IACG,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAe5D;;OAEG;IACG,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,OAAO,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;IAStG;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAiC5B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAgC9B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;OAEG;IACH,OAAO,CAAC,cAAc;IAiBtB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAkB3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAyB3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAyB5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAY3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAS5B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAYxB;;OAEG;IACG,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC;IA2D7D;;OAEG;IACH,qBAAqB,IAAI;QACvB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;KACpB;IAcD;;OAEG;IACH,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,GAAG,IAAI;IAOnE;;OAEG;IACH,mBAAmB,IAAI,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC;CAGnD"}
|