cognitive-core 0.0.1 → 0.1.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/README.md +363 -2
- package/SKILL.md +193 -0
- package/dist/agents/index.d.ts +3 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +5 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/mock-provider.d.ts +23 -0
- package/dist/agents/mock-provider.d.ts.map +1 -0
- package/dist/agents/mock-provider.js +71 -0
- package/dist/agents/mock-provider.js.map +1 -0
- package/dist/agents/types.d.ts +98 -0
- package/dist/agents/types.d.ts.map +1 -0
- package/dist/agents/types.js +44 -0
- package/dist/agents/types.js.map +1 -0
- package/dist/atlas.d.ts +196 -0
- package/dist/atlas.d.ts.map +1 -0
- package/dist/atlas.js +373 -0
- package/dist/atlas.js.map +1 -0
- package/dist/bin/cognitive-core.d.ts +18 -0
- package/dist/bin/cognitive-core.d.ts.map +1 -0
- package/dist/bin/cognitive-core.js +419 -0
- package/dist/bin/cognitive-core.js.map +1 -0
- package/dist/embeddings/bm25.d.ts +104 -0
- package/dist/embeddings/bm25.d.ts.map +1 -0
- package/dist/embeddings/bm25.js +264 -0
- package/dist/embeddings/bm25.js.map +1 -0
- package/dist/embeddings/index.d.ts +12 -0
- package/dist/embeddings/index.d.ts.map +1 -0
- package/dist/embeddings/index.js +16 -0
- package/dist/embeddings/index.js.map +1 -0
- package/dist/embeddings/manager.d.ts +112 -0
- package/dist/embeddings/manager.d.ts.map +1 -0
- package/dist/embeddings/manager.js +215 -0
- package/dist/embeddings/manager.js.map +1 -0
- package/dist/embeddings/provider.d.ts +101 -0
- package/dist/embeddings/provider.d.ts.map +1 -0
- package/dist/embeddings/provider.js +232 -0
- package/dist/embeddings/provider.js.map +1 -0
- package/dist/embeddings/vector-store.d.ts +101 -0
- package/dist/embeddings/vector-store.d.ts.map +1 -0
- package/dist/embeddings/vector-store.js +256 -0
- package/dist/embeddings/vector-store.js.map +1 -0
- package/dist/factory.d.ts +193 -0
- package/dist/factory.d.ts.map +1 -0
- package/dist/factory.js +109 -0
- package/dist/factory.js.map +1 -0
- package/dist/index.d.ts +43 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +84 -0
- package/dist/index.js.map +1 -0
- package/dist/learning/analyzer.d.ts +110 -0
- package/dist/learning/analyzer.d.ts.map +1 -0
- package/dist/learning/analyzer.js +213 -0
- package/dist/learning/analyzer.js.map +1 -0
- package/dist/learning/effectiveness.d.ts +158 -0
- package/dist/learning/effectiveness.d.ts.map +1 -0
- package/dist/learning/effectiveness.js +251 -0
- package/dist/learning/effectiveness.js.map +1 -0
- package/dist/learning/index.d.ts +8 -0
- package/dist/learning/index.d.ts.map +1 -0
- package/dist/learning/index.js +11 -0
- package/dist/learning/index.js.map +1 -0
- package/dist/learning/llm-extractor.d.ts +88 -0
- package/dist/learning/llm-extractor.d.ts.map +1 -0
- package/dist/learning/llm-extractor.js +372 -0
- package/dist/learning/llm-extractor.js.map +1 -0
- package/dist/learning/meta-learner.d.ts +80 -0
- package/dist/learning/meta-learner.d.ts.map +1 -0
- package/dist/learning/meta-learner.js +355 -0
- package/dist/learning/meta-learner.js.map +1 -0
- package/dist/learning/pipeline.d.ts +65 -0
- package/dist/learning/pipeline.d.ts.map +1 -0
- package/dist/learning/pipeline.js +170 -0
- package/dist/learning/pipeline.js.map +1 -0
- package/dist/learning/playbook-extractor.d.ts +113 -0
- package/dist/learning/playbook-extractor.d.ts.map +1 -0
- package/dist/learning/playbook-extractor.js +523 -0
- package/dist/learning/playbook-extractor.js.map +1 -0
- package/dist/learning/usage-inference.d.ts +82 -0
- package/dist/learning/usage-inference.d.ts.map +1 -0
- package/dist/learning/usage-inference.js +261 -0
- package/dist/learning/usage-inference.js.map +1 -0
- package/dist/mcp/index.d.ts +6 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +6 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/playbook-server.d.ts +120 -0
- package/dist/mcp/playbook-server.d.ts.map +1 -0
- package/dist/mcp/playbook-server.js +427 -0
- package/dist/mcp/playbook-server.js.map +1 -0
- package/dist/memory/curated-loader.d.ts +62 -0
- package/dist/memory/curated-loader.d.ts.map +1 -0
- package/dist/memory/curated-loader.js +106 -0
- package/dist/memory/curated-loader.js.map +1 -0
- package/dist/memory/experience.d.ts +122 -0
- package/dist/memory/experience.d.ts.map +1 -0
- package/dist/memory/experience.js +392 -0
- package/dist/memory/experience.js.map +1 -0
- package/dist/memory/index.d.ts +6 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +9 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/meta.d.ts +90 -0
- package/dist/memory/meta.d.ts.map +1 -0
- package/dist/memory/meta.js +362 -0
- package/dist/memory/meta.js.map +1 -0
- package/dist/memory/playbook.d.ts +133 -0
- package/dist/memory/playbook.d.ts.map +1 -0
- package/dist/memory/playbook.js +357 -0
- package/dist/memory/playbook.js.map +1 -0
- package/dist/memory/system.d.ts +167 -0
- package/dist/memory/system.d.ts.map +1 -0
- package/dist/memory/system.js +383 -0
- package/dist/memory/system.js.map +1 -0
- package/dist/runtime/backends/acp.d.ts +67 -0
- package/dist/runtime/backends/acp.d.ts.map +1 -0
- package/dist/runtime/backends/acp.js +290 -0
- package/dist/runtime/backends/acp.js.map +1 -0
- package/dist/runtime/backends/index.d.ts +5 -0
- package/dist/runtime/backends/index.d.ts.map +1 -0
- package/dist/runtime/backends/index.js +6 -0
- package/dist/runtime/backends/index.js.map +1 -0
- package/dist/runtime/backends/mock.d.ts +67 -0
- package/dist/runtime/backends/mock.d.ts.map +1 -0
- package/dist/runtime/backends/mock.js +153 -0
- package/dist/runtime/backends/mock.js.map +1 -0
- package/dist/runtime/backends/subprocess.d.ts +56 -0
- package/dist/runtime/backends/subprocess.d.ts.map +1 -0
- package/dist/runtime/backends/subprocess.js +260 -0
- package/dist/runtime/backends/subprocess.js.map +1 -0
- package/dist/runtime/flows/learning.d.ts +73 -0
- package/dist/runtime/flows/learning.d.ts.map +1 -0
- package/dist/runtime/flows/learning.js +116 -0
- package/dist/runtime/flows/learning.js.map +1 -0
- package/dist/runtime/flows/validation.d.ts +122 -0
- package/dist/runtime/flows/validation.d.ts.map +1 -0
- package/dist/runtime/flows/validation.js +223 -0
- package/dist/runtime/flows/validation.js.map +1 -0
- package/dist/runtime/index.d.ts +6 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +8 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/manager.d.ts +116 -0
- package/dist/runtime/manager.d.ts.map +1 -0
- package/dist/runtime/manager.js +416 -0
- package/dist/runtime/manager.js.map +1 -0
- package/dist/runtime/types.d.ts +138 -0
- package/dist/runtime/types.d.ts.map +1 -0
- package/dist/runtime/types.js +2 -0
- package/dist/runtime/types.js.map +1 -0
- package/dist/search/evaluator.d.ts +102 -0
- package/dist/search/evaluator.d.ts.map +1 -0
- package/dist/search/evaluator.js +352 -0
- package/dist/search/evaluator.js.map +1 -0
- package/dist/search/index.d.ts +7 -0
- package/dist/search/index.d.ts.map +1 -0
- package/dist/search/index.js +11 -0
- package/dist/search/index.js.map +1 -0
- package/dist/search/refinement-loop.d.ts +73 -0
- package/dist/search/refinement-loop.d.ts.map +1 -0
- package/dist/search/refinement-loop.js +245 -0
- package/dist/search/refinement-loop.js.map +1 -0
- package/dist/search/refinement-types.d.ts +154 -0
- package/dist/search/refinement-types.d.ts.map +1 -0
- package/dist/search/refinement-types.js +99 -0
- package/dist/search/refinement-types.js.map +1 -0
- package/dist/search/router.d.ts +61 -0
- package/dist/search/router.d.ts.map +1 -0
- package/dist/search/router.js +197 -0
- package/dist/search/router.js.map +1 -0
- package/dist/search/solver.d.ts +75 -0
- package/dist/search/solver.d.ts.map +1 -0
- package/dist/search/solver.js +216 -0
- package/dist/search/solver.js.map +1 -0
- package/dist/search/verification-runner.d.ts +125 -0
- package/dist/search/verification-runner.d.ts.map +1 -0
- package/dist/search/verification-runner.js +440 -0
- package/dist/search/verification-runner.js.map +1 -0
- package/dist/surfacing/index.d.ts +2 -0
- package/dist/surfacing/index.d.ts.map +1 -0
- package/dist/surfacing/index.js +2 -0
- package/dist/surfacing/index.js.map +1 -0
- package/dist/surfacing/skill-library.d.ts +158 -0
- package/dist/surfacing/skill-library.d.ts.map +1 -0
- package/dist/surfacing/skill-library.js +429 -0
- package/dist/surfacing/skill-library.js.map +1 -0
- package/dist/types/config.d.ts +1113 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +274 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +14 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/memory.d.ts +339 -0
- package/dist/types/memory.d.ts.map +1 -0
- package/dist/types/memory.js +207 -0
- package/dist/types/memory.js.map +1 -0
- package/dist/types/meta.d.ts +146 -0
- package/dist/types/meta.d.ts.map +1 -0
- package/dist/types/meta.js +51 -0
- package/dist/types/meta.js.map +1 -0
- package/dist/types/outcome.d.ts +42 -0
- package/dist/types/outcome.d.ts.map +1 -0
- package/dist/types/outcome.js +50 -0
- package/dist/types/outcome.js.map +1 -0
- package/dist/types/playbook.d.ts +119 -0
- package/dist/types/playbook.d.ts.map +1 -0
- package/dist/types/playbook.js +71 -0
- package/dist/types/playbook.js.map +1 -0
- package/dist/types/step.d.ts +44 -0
- package/dist/types/step.d.ts.map +1 -0
- package/dist/types/step.js +32 -0
- package/dist/types/step.js.map +1 -0
- package/dist/types/task.d.ts +91 -0
- package/dist/types/task.d.ts.map +1 -0
- package/dist/types/task.js +39 -0
- package/dist/types/task.js.map +1 -0
- package/dist/types/trajectory.d.ts +221 -0
- package/dist/types/trajectory.d.ts.map +1 -0
- package/dist/types/trajectory.js +60 -0
- package/dist/types/trajectory.js.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +4 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/similarity.d.ts +31 -0
- package/dist/utils/similarity.d.ts.map +1 -0
- package/dist/utils/similarity.js +107 -0
- package/dist/utils/similarity.js.map +1 -0
- package/dist/utils/storage.d.ts +106 -0
- package/dist/utils/storage.d.ts.map +1 -0
- package/dist/utils/storage.js +203 -0
- package/dist/utils/storage.js.map +1 -0
- package/dist/utils/validation.d.ts +129 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +171 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +61 -9
- package/scripts/migrate-to-playbooks.ts +307 -0
- package/src/agents/index.ts +14 -0
- package/src/agents/mock-provider.ts +93 -0
- package/src/agents/types.ts +137 -0
- package/src/atlas.ts +560 -0
- package/src/bin/cognitive-core.ts +470 -0
- package/src/embeddings/bm25.ts +337 -0
- package/src/embeddings/index.ts +39 -0
- package/src/embeddings/manager.ts +288 -0
- package/src/embeddings/provider.ts +311 -0
- package/src/embeddings/vector-store.ts +353 -0
- package/src/factory.ts +263 -0
- package/src/index.ts +246 -0
- package/src/learning/analyzer.ts +335 -0
- package/src/learning/effectiveness.ts +428 -0
- package/src/learning/index.ts +58 -0
- package/src/learning/llm-extractor.ts +542 -0
- package/src/learning/meta-learner.ts +516 -0
- package/src/learning/pipeline.ts +244 -0
- package/src/learning/playbook-extractor.ts +702 -0
- package/src/learning/usage-inference.ts +372 -0
- package/src/mcp/index.ts +12 -0
- package/src/mcp/playbook-server.ts +565 -0
- package/src/memory/curated-loader.ts +160 -0
- package/src/memory/experience.ts +515 -0
- package/src/memory/index.ts +27 -0
- package/src/memory/meta.ts +506 -0
- package/src/memory/playbook.ts +493 -0
- package/src/memory/system.ts +551 -0
- package/src/runtime/backends/acp.ts +378 -0
- package/src/runtime/backends/index.ts +24 -0
- package/src/runtime/backends/mock.ts +218 -0
- package/src/runtime/backends/subprocess.ts +356 -0
- package/src/runtime/flows/learning.ts +183 -0
- package/src/runtime/flows/validation.ts +381 -0
- package/src/runtime/index.ts +53 -0
- package/src/runtime/manager.ts +541 -0
- package/src/runtime/types.ts +157 -0
- package/src/search/evaluator.ts +474 -0
- package/src/search/index.ts +59 -0
- package/src/search/refinement-loop.ts +363 -0
- package/src/search/refinement-types.ts +159 -0
- package/src/search/router.ts +261 -0
- package/src/search/solver.ts +303 -0
- package/src/search/verification-runner.ts +570 -0
- package/src/surfacing/index.ts +6 -0
- package/src/surfacing/skill-library.ts +594 -0
- package/src/types/config.ts +333 -0
- package/src/types/index.ts +130 -0
- package/src/types/memory.ts +270 -0
- package/src/types/meta.ts +218 -0
- package/src/types/outcome.ts +66 -0
- package/src/types/playbook.ts +196 -0
- package/src/types/step.ts +40 -0
- package/src/types/task.ts +52 -0
- package/src/types/trajectory.ts +80 -0
- package/src/utils/index.ts +38 -0
- package/src/utils/similarity.ts +139 -0
- package/src/utils/storage.ts +249 -0
- package/src/utils/validation.ts +286 -0
- package/tests/embeddings/bm25.test.ts +130 -0
- package/tests/embeddings/manager.test.ts +205 -0
- package/tests/integration/atlas.test.ts +266 -0
- package/tests/integration/e2e.test.ts +929 -0
- package/tests/learning/analyzer.test.ts +426 -0
- package/tests/learning/effectiveness.test.ts +542 -0
- package/tests/learning/pipeline.test.ts +176 -0
- package/tests/learning/playbook-extractor-provenance.test.ts +114 -0
- package/tests/learning/usage-inference.test.ts +254 -0
- package/tests/mcp/playbook-server.test.ts +252 -0
- package/tests/memory/experience.test.ts +198 -0
- package/tests/memory/playbook.test.ts +338 -0
- package/tests/memory/provenance.test.ts +639 -0
- package/tests/memory/system.test.ts +325 -0
- package/tests/runtime/agent-manager.test.ts +512 -0
- package/tests/runtime/mock-backend.test.ts +248 -0
- package/tests/search/refinement-loop.test.ts +468 -0
- package/tests/search/refinement.test.ts +267 -0
- package/tests/search/router.test.ts +427 -0
- package/tests/surfacing/skill-library.test.ts +292 -0
- package/tests/types/outcome.test.ts +147 -0
- package/tests/types/step.test.ts +133 -0
- package/tests/types/task.test.ts +158 -0
- package/tests/types/trajectory.test.ts +253 -0
- package/tests/utils/similarity.test.ts +188 -0
- package/tests/utils/validation.test.ts +252 -0
- package/tsconfig.json +25 -0
- package/vitest.config.ts +22 -0
- package/index.d.ts +0 -4
- package/index.js +0 -4
|
@@ -0,0 +1,357 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Playbook Library - Unified store for adaptive guidance
|
|
3
|
+
* Replaces StrategyBank + SkillStore with a single, evolvable abstraction
|
|
4
|
+
*/
|
|
5
|
+
import { createPlaybook, bumpPlaybookVersion } from '../types/index.js';
|
|
6
|
+
import { JsonStore } from '../utils/storage.js';
|
|
7
|
+
import { textSimilarity } from '../utils/similarity.js';
|
|
8
|
+
/**
|
|
9
|
+
* Playbook Library - Store and retrieve adaptive guidance
|
|
10
|
+
*/
|
|
11
|
+
export class PlaybookLibrary {
|
|
12
|
+
store;
|
|
13
|
+
initialized = false;
|
|
14
|
+
constructor(baseDir) {
|
|
15
|
+
this.store = new JsonStore(baseDir, 'playbooks', {
|
|
16
|
+
autoSaveInterval: 60000,
|
|
17
|
+
pretty: true,
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
async init() {
|
|
21
|
+
if (this.initialized)
|
|
22
|
+
return;
|
|
23
|
+
await this.store.init();
|
|
24
|
+
this.initialized = true;
|
|
25
|
+
}
|
|
26
|
+
// === RETRIEVAL ===
|
|
27
|
+
/**
|
|
28
|
+
* Find playbooks matching a context
|
|
29
|
+
* Uses weighted scoring across situations, triggers, and anti-patterns
|
|
30
|
+
*/
|
|
31
|
+
async findMatching(context, options) {
|
|
32
|
+
await this.init();
|
|
33
|
+
const k = options?.k ?? 5;
|
|
34
|
+
let playbooks = this.store.values();
|
|
35
|
+
// Filter by domains if specified
|
|
36
|
+
if (options?.domains && options.domains.length > 0) {
|
|
37
|
+
playbooks = playbooks.filter((p) => p.applicability.domains.some((d) => options.domains.includes(d)));
|
|
38
|
+
}
|
|
39
|
+
// Filter by minimum confidence
|
|
40
|
+
if (options?.minConfidence !== undefined) {
|
|
41
|
+
playbooks = playbooks.filter((p) => p.confidence >= options.minConfidence);
|
|
42
|
+
}
|
|
43
|
+
// Score playbooks
|
|
44
|
+
const scored = [];
|
|
45
|
+
for (const playbook of playbooks) {
|
|
46
|
+
// Check anti-patterns first (if enabled)
|
|
47
|
+
if (options?.excludeAntiPatterns !== false) {
|
|
48
|
+
const antiPatternMatch = playbook.applicability.antiPatterns.some((ap) => textSimilarity(context, ap) > 0.7);
|
|
49
|
+
if (antiPatternMatch)
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
// Score against situations
|
|
53
|
+
const situationScores = playbook.applicability.situations.map((s) => textSimilarity(context, s));
|
|
54
|
+
const maxSituationScore = situationScores.length > 0 ? Math.max(...situationScores) : 0;
|
|
55
|
+
// Score against triggers (weighted higher for exact matches)
|
|
56
|
+
const triggerScores = playbook.applicability.triggers.map((t) => textSimilarity(context, t));
|
|
57
|
+
const maxTriggerScore = triggerScores.length > 0 ? Math.max(...triggerScores) * 1.2 : 0;
|
|
58
|
+
// Combine scores
|
|
59
|
+
const score = Math.max(maxSituationScore, maxTriggerScore);
|
|
60
|
+
const matchType = maxTriggerScore > maxSituationScore ? 'trigger' : 'situation';
|
|
61
|
+
if (score > 0) {
|
|
62
|
+
scored.push({ playbook, score, matchType });
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
// Sort by score and return top k
|
|
66
|
+
scored.sort((a, b) => b.score - a.score);
|
|
67
|
+
const results = scored.slice(0, k);
|
|
68
|
+
// Apply minimum score filter
|
|
69
|
+
if (options?.minScore !== undefined) {
|
|
70
|
+
return results.filter((r) => r.score >= options.minScore);
|
|
71
|
+
}
|
|
72
|
+
return results;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Find by specific trigger (for error messages, etc.)
|
|
76
|
+
*/
|
|
77
|
+
async findByTrigger(trigger, threshold = 0.5) {
|
|
78
|
+
await this.init();
|
|
79
|
+
return this.store.values().filter((playbook) => playbook.applicability.triggers.some((t) => t.toLowerCase().includes(trigger.toLowerCase()) ||
|
|
80
|
+
textSimilarity(trigger, t) >= threshold));
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Get playbooks with refinements for a specific context
|
|
84
|
+
*/
|
|
85
|
+
async findWithRefinements(context) {
|
|
86
|
+
await this.init();
|
|
87
|
+
return this.store.values().filter((playbook) => playbook.evolution.refinements.some((r) => textSimilarity(context, r.context) > 0.6));
|
|
88
|
+
}
|
|
89
|
+
// === EVOLUTION ===
|
|
90
|
+
/**
|
|
91
|
+
* Record successful application
|
|
92
|
+
*/
|
|
93
|
+
async recordSuccess(id, _trajectoryId) {
|
|
94
|
+
await this.init();
|
|
95
|
+
const playbook = this.store.get(id);
|
|
96
|
+
if (!playbook)
|
|
97
|
+
return;
|
|
98
|
+
playbook.evolution.successCount++;
|
|
99
|
+
playbook.evolution.lastUsed = new Date();
|
|
100
|
+
// Increase confidence (exponential moving average)
|
|
101
|
+
const alpha = 0.1;
|
|
102
|
+
playbook.confidence = playbook.confidence * (1 - alpha) + 1 * alpha;
|
|
103
|
+
playbook.confidence = Math.min(playbook.confidence, 0.99); // Cap at 0.99
|
|
104
|
+
playbook.updatedAt = new Date();
|
|
105
|
+
this.store.set(id, playbook);
|
|
106
|
+
await this.store.save(id);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Record failure and capture context
|
|
110
|
+
*/
|
|
111
|
+
async recordFailure(id, trajectoryId, failureContext, failureMode) {
|
|
112
|
+
await this.init();
|
|
113
|
+
const playbook = this.store.get(id);
|
|
114
|
+
if (!playbook)
|
|
115
|
+
return;
|
|
116
|
+
playbook.evolution.failureCount++;
|
|
117
|
+
playbook.evolution.lastUsed = new Date();
|
|
118
|
+
// Add failure record
|
|
119
|
+
const failure = {
|
|
120
|
+
trajectoryId,
|
|
121
|
+
context: failureContext,
|
|
122
|
+
failureMode,
|
|
123
|
+
timestamp: new Date(),
|
|
124
|
+
};
|
|
125
|
+
playbook.evolution.failures.push(failure);
|
|
126
|
+
// Keep only last 10 failures
|
|
127
|
+
if (playbook.evolution.failures.length > 10) {
|
|
128
|
+
playbook.evolution.failures = playbook.evolution.failures.slice(-10);
|
|
129
|
+
}
|
|
130
|
+
// Decrease confidence
|
|
131
|
+
const alpha = 0.15; // Failures have slightly more impact
|
|
132
|
+
playbook.confidence = playbook.confidence * (1 - alpha) + 0 * alpha;
|
|
133
|
+
playbook.confidence = Math.max(playbook.confidence, 0.1); // Floor at 0.1
|
|
134
|
+
playbook.updatedAt = new Date();
|
|
135
|
+
this.store.set(id, playbook);
|
|
136
|
+
await this.store.save(id);
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Add a context-specific refinement
|
|
140
|
+
*/
|
|
141
|
+
async addRefinement(id, context, addition, source) {
|
|
142
|
+
await this.init();
|
|
143
|
+
const playbook = this.store.get(id);
|
|
144
|
+
if (!playbook)
|
|
145
|
+
return;
|
|
146
|
+
// Check if similar refinement exists
|
|
147
|
+
const exists = playbook.evolution.refinements.some((r) => textSimilarity(r.context, context) > 0.85);
|
|
148
|
+
if (exists)
|
|
149
|
+
return;
|
|
150
|
+
const refinement = {
|
|
151
|
+
context,
|
|
152
|
+
addition,
|
|
153
|
+
source,
|
|
154
|
+
addedAt: new Date(),
|
|
155
|
+
};
|
|
156
|
+
playbook.evolution.refinements.push(refinement);
|
|
157
|
+
// Bump patch version
|
|
158
|
+
playbook.evolution.version = bumpPlaybookVersion(playbook, 'patch');
|
|
159
|
+
playbook.updatedAt = new Date();
|
|
160
|
+
this.store.set(id, playbook);
|
|
161
|
+
await this.store.save(id);
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Evolve playbook based on accumulated failures
|
|
165
|
+
* Should be called after several failures to update guidance
|
|
166
|
+
*/
|
|
167
|
+
async evolve(id, newGuidance, newAntiPatterns) {
|
|
168
|
+
await this.init();
|
|
169
|
+
const playbook = this.store.get(id);
|
|
170
|
+
if (!playbook)
|
|
171
|
+
return undefined;
|
|
172
|
+
// Update guidance if provided
|
|
173
|
+
if (newGuidance) {
|
|
174
|
+
playbook.guidance = { ...playbook.guidance, ...newGuidance };
|
|
175
|
+
}
|
|
176
|
+
// Add new anti-patterns
|
|
177
|
+
if (newAntiPatterns) {
|
|
178
|
+
const unique = newAntiPatterns.filter((ap) => !playbook.applicability.antiPatterns.includes(ap));
|
|
179
|
+
playbook.applicability.antiPatterns.push(...unique);
|
|
180
|
+
}
|
|
181
|
+
// Bump minor version for evolution
|
|
182
|
+
playbook.evolution.version = bumpPlaybookVersion(playbook, 'minor');
|
|
183
|
+
playbook.updatedAt = new Date();
|
|
184
|
+
this.store.set(id, playbook);
|
|
185
|
+
await this.store.save(id);
|
|
186
|
+
return playbook;
|
|
187
|
+
}
|
|
188
|
+
// === LIFECYCLE ===
|
|
189
|
+
/**
|
|
190
|
+
* Add a new playbook
|
|
191
|
+
*/
|
|
192
|
+
async add(playbook) {
|
|
193
|
+
await this.init();
|
|
194
|
+
this.store.set(playbook.id, playbook);
|
|
195
|
+
await this.store.save(playbook.id);
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Create and add a new playbook
|
|
199
|
+
*/
|
|
200
|
+
async create(input) {
|
|
201
|
+
const playbook = createPlaybook(input);
|
|
202
|
+
await this.add(playbook);
|
|
203
|
+
return playbook;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Get a playbook by ID
|
|
207
|
+
*/
|
|
208
|
+
async get(id) {
|
|
209
|
+
await this.init();
|
|
210
|
+
return this.store.get(id);
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Get playbook by name
|
|
214
|
+
*/
|
|
215
|
+
async getByName(name) {
|
|
216
|
+
await this.init();
|
|
217
|
+
return this.store.values().find((p) => p.name === name);
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Check if a similar playbook exists
|
|
221
|
+
*/
|
|
222
|
+
async exists(description, threshold = 0.85) {
|
|
223
|
+
await this.init();
|
|
224
|
+
// Check by exact name match
|
|
225
|
+
const byName = this.store.values().find((p) => p.name === description.toLowerCase().replace(/\s+/g, '-'));
|
|
226
|
+
if (byName)
|
|
227
|
+
return byName;
|
|
228
|
+
// Check by situation similarity
|
|
229
|
+
for (const playbook of this.store.values()) {
|
|
230
|
+
for (const situation of playbook.applicability.situations) {
|
|
231
|
+
if (textSimilarity(description, situation) >= threshold) {
|
|
232
|
+
return playbook;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
return undefined;
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Get playbooks by domain
|
|
240
|
+
*/
|
|
241
|
+
async getByDomain(domain) {
|
|
242
|
+
await this.init();
|
|
243
|
+
return this.store.values().filter((p) => p.applicability.domains.includes(domain));
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Get most effective playbooks (by success rate)
|
|
247
|
+
*/
|
|
248
|
+
async getMostEffective(k = 10) {
|
|
249
|
+
await this.init();
|
|
250
|
+
return this.store
|
|
251
|
+
.values()
|
|
252
|
+
.filter((p) => p.evolution.successCount + p.evolution.failureCount >= 3)
|
|
253
|
+
.sort((a, b) => {
|
|
254
|
+
const rateA = a.evolution.successCount /
|
|
255
|
+
(a.evolution.successCount + a.evolution.failureCount);
|
|
256
|
+
const rateB = b.evolution.successCount /
|
|
257
|
+
(b.evolution.successCount + b.evolution.failureCount);
|
|
258
|
+
return rateB - rateA;
|
|
259
|
+
})
|
|
260
|
+
.slice(0, k);
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Get playbooks by confidence threshold
|
|
264
|
+
*/
|
|
265
|
+
async getHighConfidence(minConfidence = 0.8) {
|
|
266
|
+
await this.init();
|
|
267
|
+
return this.store.values().filter((p) => p.confidence >= minConfidence);
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Get all playbooks
|
|
271
|
+
*/
|
|
272
|
+
async getAll() {
|
|
273
|
+
await this.init();
|
|
274
|
+
return this.store.values();
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Delete a playbook
|
|
278
|
+
*/
|
|
279
|
+
async delete(id) {
|
|
280
|
+
await this.init();
|
|
281
|
+
const existed = this.store.has(id);
|
|
282
|
+
if (existed) {
|
|
283
|
+
this.store.delete(id);
|
|
284
|
+
}
|
|
285
|
+
return existed;
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Get count
|
|
289
|
+
*/
|
|
290
|
+
async count() {
|
|
291
|
+
await this.init();
|
|
292
|
+
return this.store.size();
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* Get all unique domains
|
|
296
|
+
*/
|
|
297
|
+
async getDomains() {
|
|
298
|
+
await this.init();
|
|
299
|
+
const domains = new Set();
|
|
300
|
+
for (const playbook of this.store.values()) {
|
|
301
|
+
for (const domain of playbook.applicability.domains) {
|
|
302
|
+
domains.add(domain);
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
return Array.from(domains);
|
|
306
|
+
}
|
|
307
|
+
// === PROVENANCE ===
|
|
308
|
+
/**
|
|
309
|
+
* Get playbooks by origin type
|
|
310
|
+
*/
|
|
311
|
+
async getByOrigin(origin) {
|
|
312
|
+
await this.init();
|
|
313
|
+
return this.store.values().filter((p) => p.provenance?.origin === origin);
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* Delete all playbooks with a specific origin
|
|
317
|
+
* Returns the number of playbooks deleted
|
|
318
|
+
*/
|
|
319
|
+
async deleteByOrigin(origin) {
|
|
320
|
+
await this.init();
|
|
321
|
+
const toDelete = this.store.values().filter((p) => p.provenance?.origin === origin);
|
|
322
|
+
for (const playbook of toDelete) {
|
|
323
|
+
this.store.delete(playbook.id);
|
|
324
|
+
}
|
|
325
|
+
return toDelete.length;
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Get provenance summary across all playbooks
|
|
329
|
+
*/
|
|
330
|
+
async getProvenanceSummary() {
|
|
331
|
+
await this.init();
|
|
332
|
+
const summary = {
|
|
333
|
+
extracted: 0,
|
|
334
|
+
curated: 0,
|
|
335
|
+
imported: 0,
|
|
336
|
+
manual: 0,
|
|
337
|
+
};
|
|
338
|
+
for (const playbook of this.store.values()) {
|
|
339
|
+
const origin = playbook.provenance?.origin ?? 'extracted';
|
|
340
|
+
summary[origin] = (summary[origin] ?? 0) + 1;
|
|
341
|
+
}
|
|
342
|
+
return summary;
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* Close the store
|
|
346
|
+
*/
|
|
347
|
+
async close() {
|
|
348
|
+
await this.store.close();
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* Create a playbook library
|
|
353
|
+
*/
|
|
354
|
+
export function createPlaybookLibrary(baseDir) {
|
|
355
|
+
return new PlaybookLibrary(baseDir);
|
|
356
|
+
}
|
|
357
|
+
//# sourceMappingURL=playbook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"playbook.js","sourceRoot":"","sources":["../../src/memory/playbook.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import type { Experience, CodeConcept, Strategy, Skill, Playbook, MetaObservation, MetaStrategy, MetaContext, MemoryConfig, MemoryCapacityConfig, Trajectory } from '../types/index.js';
|
|
2
|
+
import { ExperienceMemory, type PruneResult } from './experience.js';
|
|
3
|
+
import { PlaybookLibrary, type PlaybookMatch } from './playbook.js';
|
|
4
|
+
import { MetaMemory } from './meta.js';
|
|
5
|
+
import { LearningEffectivenessTracker, type EffectivenessMetrics } from '../learning/effectiveness.js';
|
|
6
|
+
/**
|
|
7
|
+
* Result from a memory query (legacy format)
|
|
8
|
+
* @deprecated Use MemoryQueryResultV2 for new code
|
|
9
|
+
*/
|
|
10
|
+
export interface MemoryQueryResult {
|
|
11
|
+
experiences: Array<{
|
|
12
|
+
experience: Experience;
|
|
13
|
+
score: number;
|
|
14
|
+
}>;
|
|
15
|
+
/** @deprecated Always returns empty array - use playbooks instead */
|
|
16
|
+
concepts: Array<{
|
|
17
|
+
concept: CodeConcept;
|
|
18
|
+
score: number;
|
|
19
|
+
}>;
|
|
20
|
+
/** @deprecated Always returns empty array - use playbooks instead */
|
|
21
|
+
strategies: Array<{
|
|
22
|
+
strategy: Strategy;
|
|
23
|
+
score: number;
|
|
24
|
+
}>;
|
|
25
|
+
/** @deprecated Always returns empty array - use playbooks instead */
|
|
26
|
+
skills: Array<{
|
|
27
|
+
skill: Skill;
|
|
28
|
+
score: number;
|
|
29
|
+
}>;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Result from a memory query (new format with playbooks)
|
|
33
|
+
*/
|
|
34
|
+
export interface MemoryQueryResultV2 {
|
|
35
|
+
experiences: Array<{
|
|
36
|
+
experience: Experience;
|
|
37
|
+
score: number;
|
|
38
|
+
}>;
|
|
39
|
+
playbooks: PlaybookMatch[];
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Unified Memory System
|
|
43
|
+
* Aggregates all memory components with parallel querying
|
|
44
|
+
*/
|
|
45
|
+
export declare class MemorySystem {
|
|
46
|
+
readonly experiences: ExperienceMemory;
|
|
47
|
+
readonly playbooks: PlaybookLibrary;
|
|
48
|
+
readonly meta: MetaMemory;
|
|
49
|
+
readonly effectiveness: LearningEffectivenessTracker;
|
|
50
|
+
private config;
|
|
51
|
+
private capacityConfig;
|
|
52
|
+
private initialized;
|
|
53
|
+
private lastCapacityCheck;
|
|
54
|
+
private capacityCheckInterval;
|
|
55
|
+
constructor(baseDir: string, config?: Partial<MemoryConfig>);
|
|
56
|
+
/**
|
|
57
|
+
* Initialize all memory components
|
|
58
|
+
*/
|
|
59
|
+
init(): Promise<void>;
|
|
60
|
+
/**
|
|
61
|
+
* Query memory (legacy format)
|
|
62
|
+
* @deprecated Use queryV2 for new code - this method returns empty arrays for deprecated fields
|
|
63
|
+
*/
|
|
64
|
+
query(input: string, options?: {
|
|
65
|
+
domain?: string;
|
|
66
|
+
includeExperiences?: boolean;
|
|
67
|
+
}): Promise<MemoryQueryResult>;
|
|
68
|
+
/**
|
|
69
|
+
* Store a trajectory and extract experience from it
|
|
70
|
+
* Preserves trajectory structure in metadata for richer learning
|
|
71
|
+
*/
|
|
72
|
+
storeTrajectory(trajectory: Trajectory): Promise<Experience>;
|
|
73
|
+
/**
|
|
74
|
+
* Record usage of an experience
|
|
75
|
+
*/
|
|
76
|
+
recordExperienceUsage(id: string): Promise<void>;
|
|
77
|
+
/**
|
|
78
|
+
* Query memory with new playbook-based format
|
|
79
|
+
*/
|
|
80
|
+
queryV2(input: string, options?: {
|
|
81
|
+
domains?: string[];
|
|
82
|
+
includeExperiences?: boolean;
|
|
83
|
+
includePlaybooks?: boolean;
|
|
84
|
+
minPlaybookConfidence?: number;
|
|
85
|
+
}): Promise<MemoryQueryResultV2>;
|
|
86
|
+
/**
|
|
87
|
+
* Format memory for context injection (new playbook format)
|
|
88
|
+
*/
|
|
89
|
+
formatForPromptV2(result: MemoryQueryResultV2, options?: {
|
|
90
|
+
maxTokens?: number;
|
|
91
|
+
includeRefinements?: boolean;
|
|
92
|
+
}): string;
|
|
93
|
+
/**
|
|
94
|
+
* Record a meta-observation after task completion
|
|
95
|
+
*/
|
|
96
|
+
recordMetaObservation(observation: MetaObservation): Promise<void>;
|
|
97
|
+
/**
|
|
98
|
+
* Get meta-learning adjustments for routing
|
|
99
|
+
*/
|
|
100
|
+
getMetaAdjustments(context: MetaContext): Promise<MetaStrategy[]>;
|
|
101
|
+
/**
|
|
102
|
+
* Add a playbook to the library
|
|
103
|
+
*/
|
|
104
|
+
addPlaybook(playbook: Playbook): Promise<void>;
|
|
105
|
+
/**
|
|
106
|
+
* Record playbook usage
|
|
107
|
+
*/
|
|
108
|
+
recordPlaybookUsage(id: string, trajectoryId: string, success: boolean, failureContext?: string, failureMode?: string): Promise<void>;
|
|
109
|
+
/**
|
|
110
|
+
* Get statistics about memory contents
|
|
111
|
+
*/
|
|
112
|
+
getStats(): Promise<{
|
|
113
|
+
experienceCount: number;
|
|
114
|
+
playbookCount: number;
|
|
115
|
+
metaObservationCount: number;
|
|
116
|
+
annotationCount: number;
|
|
117
|
+
}>;
|
|
118
|
+
/**
|
|
119
|
+
* Get learning effectiveness metrics
|
|
120
|
+
*/
|
|
121
|
+
getEffectivenessMetrics(options?: {
|
|
122
|
+
since?: Date;
|
|
123
|
+
until?: Date;
|
|
124
|
+
}): Promise<EffectivenessMetrics>;
|
|
125
|
+
/**
|
|
126
|
+
* Check and enforce capacity limits (called automatically if autoPrune is enabled)
|
|
127
|
+
*/
|
|
128
|
+
enforceCapacityLimits(): Promise<{
|
|
129
|
+
experiencesPruned: PruneResult | null;
|
|
130
|
+
playbooksPruned: number;
|
|
131
|
+
}>;
|
|
132
|
+
/**
|
|
133
|
+
* Check capacity and prune if necessary (throttled)
|
|
134
|
+
* Called automatically after adding experiences
|
|
135
|
+
*/
|
|
136
|
+
private maybeEnforceCapacity;
|
|
137
|
+
/**
|
|
138
|
+
* Get capacity status
|
|
139
|
+
*/
|
|
140
|
+
getCapacityStatus(): Promise<{
|
|
141
|
+
experiences: {
|
|
142
|
+
current: number;
|
|
143
|
+
limit: number;
|
|
144
|
+
utilizationPercent: number;
|
|
145
|
+
};
|
|
146
|
+
playbooks: {
|
|
147
|
+
current: number;
|
|
148
|
+
limit: number;
|
|
149
|
+
utilizationPercent: number;
|
|
150
|
+
};
|
|
151
|
+
pruningEnabled: boolean;
|
|
152
|
+
lastCheck: Date | null;
|
|
153
|
+
}>;
|
|
154
|
+
/**
|
|
155
|
+
* Update capacity configuration
|
|
156
|
+
*/
|
|
157
|
+
updateCapacityConfig(config: Partial<MemoryCapacityConfig>): void;
|
|
158
|
+
/**
|
|
159
|
+
* Close all stores
|
|
160
|
+
*/
|
|
161
|
+
close(): Promise<void>;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Create a memory system instance
|
|
165
|
+
*/
|
|
166
|
+
export declare function createMemorySystem(baseDir: string, config?: Partial<MemoryConfig>): MemorySystem;
|
|
167
|
+
//# sourceMappingURL=system.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../src/memory/system.ts"],"names":[],"mappings":"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"}
|