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,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Playbook Usage Inference
|
|
3
|
+
* Infers which playbooks were used and whether they helped
|
|
4
|
+
* from trajectory analysis (no explicit agent reporting needed)
|
|
5
|
+
*/
|
|
6
|
+
import type { Trajectory, Playbook } from '../types/index.js';
|
|
7
|
+
/**
|
|
8
|
+
* Result of playbook usage inference
|
|
9
|
+
*/
|
|
10
|
+
export interface PlaybookUsageResult {
|
|
11
|
+
playbookId: string;
|
|
12
|
+
playbookName: string;
|
|
13
|
+
/** Did agent follow this playbook? */
|
|
14
|
+
wasUsed: boolean;
|
|
15
|
+
/** How confident are we it was used? */
|
|
16
|
+
usageConfidence: number;
|
|
17
|
+
/** Did it lead to success? */
|
|
18
|
+
wasSuccessful: boolean;
|
|
19
|
+
/** Which trajectory steps matched */
|
|
20
|
+
matchedSteps: number[];
|
|
21
|
+
/** Relevant context for refinement */
|
|
22
|
+
context?: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Configuration for usage inference
|
|
26
|
+
*/
|
|
27
|
+
export interface UsageInferenceConfig {
|
|
28
|
+
/** Minimum similarity for tactic matching */
|
|
29
|
+
tacticMatchThreshold: number;
|
|
30
|
+
/** Minimum tactics matched to consider playbook used */
|
|
31
|
+
minTacticsMatchRatio: number;
|
|
32
|
+
/** Minimum confidence to report as used */
|
|
33
|
+
minUsageConfidence: number;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Playbook Usage Inference
|
|
37
|
+
* Analyzes trajectories to determine if playbooks were used
|
|
38
|
+
*/
|
|
39
|
+
export declare class PlaybookUsageInference {
|
|
40
|
+
private config;
|
|
41
|
+
constructor(config?: Partial<UsageInferenceConfig>);
|
|
42
|
+
/**
|
|
43
|
+
* Analyze trajectory to infer playbook usage
|
|
44
|
+
*/
|
|
45
|
+
inferUsage(trajectory: Trajectory, injectedPlaybooks: Playbook[]): Promise<PlaybookUsageResult[]>;
|
|
46
|
+
/**
|
|
47
|
+
* Match trajectory steps against playbook guidance
|
|
48
|
+
*/
|
|
49
|
+
private matchStepsToPlaybook;
|
|
50
|
+
/**
|
|
51
|
+
* Match steps against playbook strategy (when no tactics)
|
|
52
|
+
*/
|
|
53
|
+
private matchAgainstStrategy;
|
|
54
|
+
/**
|
|
55
|
+
* Extract keywords from text
|
|
56
|
+
*/
|
|
57
|
+
private extractKeywords;
|
|
58
|
+
/**
|
|
59
|
+
* Check if word is a stop word
|
|
60
|
+
*/
|
|
61
|
+
private isStopWord;
|
|
62
|
+
/**
|
|
63
|
+
* Determine if playbook application was successful
|
|
64
|
+
*/
|
|
65
|
+
private inferSuccess;
|
|
66
|
+
/**
|
|
67
|
+
* Extract relevant context for potential refinement
|
|
68
|
+
*/
|
|
69
|
+
private extractRelevantContext;
|
|
70
|
+
/**
|
|
71
|
+
* Batch analyze multiple trajectories
|
|
72
|
+
*/
|
|
73
|
+
inferUsageBatch(trajectories: Array<{
|
|
74
|
+
trajectory: Trajectory;
|
|
75
|
+
injectedPlaybooks: Playbook[];
|
|
76
|
+
}>): Promise<Map<string, PlaybookUsageResult[]>>;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Create a playbook usage inference instance
|
|
80
|
+
*/
|
|
81
|
+
export declare function createUsageInference(config?: Partial<UsageInferenceConfig>): PlaybookUsageInference;
|
|
82
|
+
//# sourceMappingURL=usage-inference.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage-inference.d.ts","sourceRoot":"","sources":["../../src/learning/usage-inference.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAQ,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGpE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,sCAAsC;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,eAAe,EAAE,MAAM,CAAC;IACxB,8BAA8B;IAC9B,aAAa,EAAE,OAAO,CAAC;IACvB,qCAAqC;IACrC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAaD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,6CAA6C;IAC7C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,wDAAwD;IACxD,oBAAoB,EAAE,MAAM,CAAC;IAC7B,2CAA2C;IAC3C,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAQD;;;GAGG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,MAAM,CAAuB;gBAEzB,MAAM,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC;IAIlD;;OAEG;IACG,UAAU,CACd,UAAU,EAAE,UAAU,EACtB,iBAAiB,EAAE,QAAQ,EAAE,GAC5B,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAmCjC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAkE5B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA6B5B;;OAEG;IACH,OAAO,CAAC,eAAe;IAQvB;;OAEG;IACH,OAAO,CAAC,UAAU;IAgDlB;;OAEG;IACH,OAAO,CAAC,YAAY;IAuCpB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA4B9B;;OAEG;IACG,eAAe,CACnB,YAAY,EAAE,KAAK,CAAC;QAClB,UAAU,EAAE,UAAU,CAAC;QACvB,iBAAiB,EAAE,QAAQ,EAAE,CAAC;KAC/B,CAAC,GACD,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAC;CAU/C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,GACrC,sBAAsB,CAExB"}
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Playbook Usage Inference
|
|
3
|
+
* Infers which playbooks were used and whether they helped
|
|
4
|
+
* from trajectory analysis (no explicit agent reporting needed)
|
|
5
|
+
*/
|
|
6
|
+
import { textSimilarity } from '../utils/similarity.js';
|
|
7
|
+
const DEFAULT_CONFIG = {
|
|
8
|
+
tacticMatchThreshold: 0.5,
|
|
9
|
+
minTacticsMatchRatio: 0.3,
|
|
10
|
+
minUsageConfidence: 0.4,
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Playbook Usage Inference
|
|
14
|
+
* Analyzes trajectories to determine if playbooks were used
|
|
15
|
+
*/
|
|
16
|
+
export class PlaybookUsageInference {
|
|
17
|
+
config;
|
|
18
|
+
constructor(config) {
|
|
19
|
+
this.config = { ...DEFAULT_CONFIG, ...config };
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Analyze trajectory to infer playbook usage
|
|
23
|
+
*/
|
|
24
|
+
async inferUsage(trajectory, injectedPlaybooks) {
|
|
25
|
+
const results = [];
|
|
26
|
+
for (const playbook of injectedPlaybooks) {
|
|
27
|
+
const matchResult = this.matchStepsToPlaybook(trajectory.steps, playbook);
|
|
28
|
+
const wasUsed = matchResult.matched &&
|
|
29
|
+
matchResult.confidence >= this.config.minUsageConfidence;
|
|
30
|
+
const wasSuccessful = wasUsed
|
|
31
|
+
? this.inferSuccess(trajectory, playbook, matchResult)
|
|
32
|
+
: false;
|
|
33
|
+
const context = wasUsed
|
|
34
|
+
? this.extractRelevantContext(trajectory, playbook, matchResult)
|
|
35
|
+
: undefined;
|
|
36
|
+
results.push({
|
|
37
|
+
playbookId: playbook.id,
|
|
38
|
+
playbookName: playbook.name,
|
|
39
|
+
wasUsed,
|
|
40
|
+
usageConfidence: matchResult.confidence,
|
|
41
|
+
wasSuccessful,
|
|
42
|
+
matchedSteps: matchResult.matchedSteps,
|
|
43
|
+
context,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
return results;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Match trajectory steps against playbook guidance
|
|
50
|
+
*/
|
|
51
|
+
matchStepsToPlaybook(steps, playbook) {
|
|
52
|
+
const tactics = playbook.guidance.tactics;
|
|
53
|
+
if (tactics.length === 0) {
|
|
54
|
+
// No tactics to match - check strategy
|
|
55
|
+
const strategyMatch = this.matchAgainstStrategy(steps, playbook);
|
|
56
|
+
return {
|
|
57
|
+
matched: strategyMatch.confidence > 0.3,
|
|
58
|
+
matchedTactics: 0,
|
|
59
|
+
totalTactics: 0,
|
|
60
|
+
matchedSteps: strategyMatch.matchedSteps,
|
|
61
|
+
confidence: strategyMatch.confidence,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
const matchedSteps = [];
|
|
65
|
+
let matchedTactics = 0;
|
|
66
|
+
// Try to match each tactic to trajectory steps
|
|
67
|
+
for (const tactic of tactics) {
|
|
68
|
+
const tacticWords = this.extractKeywords(tactic);
|
|
69
|
+
for (let i = 0; i < steps.length; i++) {
|
|
70
|
+
if (matchedSteps.includes(i))
|
|
71
|
+
continue;
|
|
72
|
+
const step = steps[i];
|
|
73
|
+
const stepText = `${step.thought ?? ''} ${step.action}`.toLowerCase();
|
|
74
|
+
const stepWords = this.extractKeywords(stepText);
|
|
75
|
+
// Check word overlap
|
|
76
|
+
const overlap = tacticWords.filter((w) => stepWords.includes(w)).length;
|
|
77
|
+
const overlapRatio = overlap / Math.max(tacticWords.length, 1);
|
|
78
|
+
// Also check semantic similarity
|
|
79
|
+
const similarity = textSimilarity(tactic, stepText);
|
|
80
|
+
if (overlapRatio >= this.config.tacticMatchThreshold ||
|
|
81
|
+
similarity >= this.config.tacticMatchThreshold) {
|
|
82
|
+
matchedTactics++;
|
|
83
|
+
matchedSteps.push(i);
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
const matchRatio = matchedTactics / tactics.length;
|
|
89
|
+
const matched = matchRatio >= this.config.minTacticsMatchRatio;
|
|
90
|
+
// Calculate confidence based on match ratio and step coverage
|
|
91
|
+
const stepCoverage = matchedSteps.length / Math.max(steps.length, 1);
|
|
92
|
+
const confidence = matched ? (matchRatio * 0.7 + stepCoverage * 0.3) : 0;
|
|
93
|
+
return {
|
|
94
|
+
matched,
|
|
95
|
+
matchedTactics,
|
|
96
|
+
totalTactics: tactics.length,
|
|
97
|
+
matchedSteps,
|
|
98
|
+
confidence,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Match steps against playbook strategy (when no tactics)
|
|
103
|
+
*/
|
|
104
|
+
matchAgainstStrategy(steps, playbook) {
|
|
105
|
+
const strategy = playbook.guidance.strategy;
|
|
106
|
+
const strategyWords = this.extractKeywords(strategy);
|
|
107
|
+
const matchedSteps = [];
|
|
108
|
+
for (let i = 0; i < steps.length; i++) {
|
|
109
|
+
const step = steps[i];
|
|
110
|
+
const stepText = `${step.thought ?? ''} ${step.action}`.toLowerCase();
|
|
111
|
+
const stepWords = this.extractKeywords(stepText);
|
|
112
|
+
const overlap = strategyWords.filter((w) => stepWords.includes(w)).length;
|
|
113
|
+
const similarity = textSimilarity(strategy, stepText);
|
|
114
|
+
if (overlap >= 2 || similarity >= 0.4) {
|
|
115
|
+
matchedSteps.push(i);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
const confidence = matchedSteps.length > 0
|
|
119
|
+
? Math.min(0.6, matchedSteps.length / steps.length + 0.2)
|
|
120
|
+
: 0;
|
|
121
|
+
return { confidence, matchedSteps };
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Extract keywords from text
|
|
125
|
+
*/
|
|
126
|
+
extractKeywords(text) {
|
|
127
|
+
return text
|
|
128
|
+
.toLowerCase()
|
|
129
|
+
.replace(/[^\w\s]/g, ' ')
|
|
130
|
+
.split(/\s+/)
|
|
131
|
+
.filter((w) => w.length > 2 && !this.isStopWord(w));
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Check if word is a stop word
|
|
135
|
+
*/
|
|
136
|
+
isStopWord(word) {
|
|
137
|
+
const stopWords = new Set([
|
|
138
|
+
'the',
|
|
139
|
+
'a',
|
|
140
|
+
'an',
|
|
141
|
+
'and',
|
|
142
|
+
'or',
|
|
143
|
+
'but',
|
|
144
|
+
'is',
|
|
145
|
+
'are',
|
|
146
|
+
'was',
|
|
147
|
+
'were',
|
|
148
|
+
'be',
|
|
149
|
+
'been',
|
|
150
|
+
'have',
|
|
151
|
+
'has',
|
|
152
|
+
'had',
|
|
153
|
+
'do',
|
|
154
|
+
'does',
|
|
155
|
+
'did',
|
|
156
|
+
'will',
|
|
157
|
+
'would',
|
|
158
|
+
'could',
|
|
159
|
+
'should',
|
|
160
|
+
'can',
|
|
161
|
+
'to',
|
|
162
|
+
'of',
|
|
163
|
+
'in',
|
|
164
|
+
'for',
|
|
165
|
+
'on',
|
|
166
|
+
'with',
|
|
167
|
+
'at',
|
|
168
|
+
'by',
|
|
169
|
+
'from',
|
|
170
|
+
'as',
|
|
171
|
+
'then',
|
|
172
|
+
'that',
|
|
173
|
+
'this',
|
|
174
|
+
'these',
|
|
175
|
+
'those',
|
|
176
|
+
'you',
|
|
177
|
+
'your',
|
|
178
|
+
'they',
|
|
179
|
+
'their',
|
|
180
|
+
]);
|
|
181
|
+
return stopWords.has(word);
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Determine if playbook application was successful
|
|
185
|
+
*/
|
|
186
|
+
inferSuccess(trajectory, playbook, matchResult) {
|
|
187
|
+
// Primary: Check trajectory outcome
|
|
188
|
+
if (!trajectory.outcome.success) {
|
|
189
|
+
return false;
|
|
190
|
+
}
|
|
191
|
+
// Check if success indicators are present
|
|
192
|
+
const successIndicators = playbook.verification.successIndicators;
|
|
193
|
+
if (successIndicators.length > 0) {
|
|
194
|
+
const outcomeText = JSON.stringify(trajectory.outcome).toLowerCase();
|
|
195
|
+
const hasIndicator = successIndicators.some((indicator) => outcomeText.includes(indicator.toLowerCase()));
|
|
196
|
+
if (hasIndicator)
|
|
197
|
+
return true;
|
|
198
|
+
}
|
|
199
|
+
// Check if failure indicators are absent
|
|
200
|
+
const failureIndicators = playbook.verification.failureIndicators;
|
|
201
|
+
if (failureIndicators.length > 0) {
|
|
202
|
+
const trajectoryText = trajectory.steps
|
|
203
|
+
.map((s) => `${s.action} ${s.observation ?? ''}`)
|
|
204
|
+
.join(' ')
|
|
205
|
+
.toLowerCase();
|
|
206
|
+
const hasFailureIndicator = failureIndicators.some((indicator) => trajectoryText.includes(indicator.toLowerCase()));
|
|
207
|
+
if (hasFailureIndicator)
|
|
208
|
+
return false;
|
|
209
|
+
}
|
|
210
|
+
// Default to trajectory success with high match confidence
|
|
211
|
+
return matchResult.confidence >= 0.5;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Extract relevant context for potential refinement
|
|
215
|
+
*/
|
|
216
|
+
extractRelevantContext(trajectory, _playbook, _matchResult) {
|
|
217
|
+
// Look for context in task metadata
|
|
218
|
+
const metadata = trajectory.task.metadata ?? {};
|
|
219
|
+
if (metadata.fileType)
|
|
220
|
+
return `${metadata.fileType} files`;
|
|
221
|
+
if (metadata.framework)
|
|
222
|
+
return `${metadata.framework} project`;
|
|
223
|
+
if (metadata.language)
|
|
224
|
+
return `${metadata.language} codebase`;
|
|
225
|
+
// Check for specific patterns in steps
|
|
226
|
+
const allText = trajectory.steps
|
|
227
|
+
.map((s) => `${s.thought ?? ''} ${s.action} ${s.observation ?? ''}`)
|
|
228
|
+
.join(' ')
|
|
229
|
+
.toLowerCase();
|
|
230
|
+
if (allText.includes('monorepo'))
|
|
231
|
+
return 'monorepo';
|
|
232
|
+
if (allText.includes('typescript'))
|
|
233
|
+
return 'typescript';
|
|
234
|
+
if (allText.includes('react'))
|
|
235
|
+
return 'react';
|
|
236
|
+
if (allText.includes('node'))
|
|
237
|
+
return 'nodejs';
|
|
238
|
+
if (allText.includes('python'))
|
|
239
|
+
return 'python';
|
|
240
|
+
// Fall back to domain
|
|
241
|
+
return trajectory.task.domain || undefined;
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Batch analyze multiple trajectories
|
|
245
|
+
*/
|
|
246
|
+
async inferUsageBatch(trajectories) {
|
|
247
|
+
const results = new Map();
|
|
248
|
+
for (const { trajectory, injectedPlaybooks } of trajectories) {
|
|
249
|
+
const usage = await this.inferUsage(trajectory, injectedPlaybooks);
|
|
250
|
+
results.set(trajectory.id, usage);
|
|
251
|
+
}
|
|
252
|
+
return results;
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Create a playbook usage inference instance
|
|
257
|
+
*/
|
|
258
|
+
export function createUsageInference(config) {
|
|
259
|
+
return new PlaybookUsageInference(config);
|
|
260
|
+
}
|
|
261
|
+
//# sourceMappingURL=usage-inference.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage-inference.js","sourceRoot":"","sources":["../../src/learning/usage-inference.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @deprecated The MCP server is deprecated in favor of the CLI + SKILL.md approach.
|
|
3
|
+
* See /SKILL.md for agent instructions and use bin/cognitive-core CLI instead.
|
|
4
|
+
*/
|
|
5
|
+
export { PlaybookMCPServer, createPlaybookMCPServer, type MCPTool, type MCPToolCall, type MCPToolResult, type PlaybookSearchResult, } from './playbook-server.js';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @deprecated The MCP server is deprecated in favor of the CLI + SKILL.md approach.
|
|
3
|
+
* See /SKILL.md for agent instructions and use bin/cognitive-core CLI instead.
|
|
4
|
+
*/
|
|
5
|
+
export { PlaybookMCPServer, createPlaybookMCPServer, } from './playbook-server.js';
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,iBAAiB,EACjB,uBAAuB,GAKxB,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Playbook Server
|
|
3
|
+
* Exposes playbook retrieval via Model Context Protocol
|
|
4
|
+
*
|
|
5
|
+
* @deprecated This module is deprecated in favor of the CLI interface and SKILL.md approach.
|
|
6
|
+
* See /SKILL.md for instructions on how agents should interact with cognitive-core.
|
|
7
|
+
* Use the CLI at bin/cognitive-core instead of this MCP server.
|
|
8
|
+
*
|
|
9
|
+
* This server provides on-demand access to the full playbook library,
|
|
10
|
+
* allowing agents to search for specific guidance beyond what's in their
|
|
11
|
+
* system prompt.
|
|
12
|
+
*/
|
|
13
|
+
import type { PlaybookLibrary } from '../memory/playbook.js';
|
|
14
|
+
import type { SkillLibrary } from '../surfacing/skill-library.js';
|
|
15
|
+
import type { MCPServerConfig } from '../types/config.js';
|
|
16
|
+
/**
|
|
17
|
+
* MCP Tool definition
|
|
18
|
+
*/
|
|
19
|
+
export interface MCPTool {
|
|
20
|
+
name: string;
|
|
21
|
+
description: string;
|
|
22
|
+
inputSchema: {
|
|
23
|
+
type: 'object';
|
|
24
|
+
properties: Record<string, unknown>;
|
|
25
|
+
required?: string[];
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* MCP Tool call request
|
|
30
|
+
*/
|
|
31
|
+
export interface MCPToolCall {
|
|
32
|
+
name: string;
|
|
33
|
+
arguments: Record<string, unknown>;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* MCP Tool call result
|
|
37
|
+
*/
|
|
38
|
+
export interface MCPToolResult {
|
|
39
|
+
content: Array<{
|
|
40
|
+
type: 'text';
|
|
41
|
+
text: string;
|
|
42
|
+
}>;
|
|
43
|
+
isError?: boolean;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Search result for MCP
|
|
47
|
+
*/
|
|
48
|
+
export interface PlaybookSearchResult {
|
|
49
|
+
id: string;
|
|
50
|
+
name: string;
|
|
51
|
+
confidence: number;
|
|
52
|
+
matchScore: number;
|
|
53
|
+
matchType: string;
|
|
54
|
+
strategy: string;
|
|
55
|
+
tactics: string[];
|
|
56
|
+
successRate: number;
|
|
57
|
+
domains: string[];
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* MCP Playbook Server
|
|
61
|
+
* Provides playbook search tools for agents
|
|
62
|
+
*/
|
|
63
|
+
export declare class PlaybookMCPServer {
|
|
64
|
+
private playbooks;
|
|
65
|
+
private config;
|
|
66
|
+
constructor(playbooks: PlaybookLibrary, _skillLibrary?: SkillLibrary, config?: Partial<MCPServerConfig>);
|
|
67
|
+
/**
|
|
68
|
+
* Get available MCP tools
|
|
69
|
+
*/
|
|
70
|
+
getTools(): MCPTool[];
|
|
71
|
+
/**
|
|
72
|
+
* Handle an MCP tool call
|
|
73
|
+
*/
|
|
74
|
+
handleToolCall(call: MCPToolCall): Promise<MCPToolResult>;
|
|
75
|
+
/**
|
|
76
|
+
* Handle search_playbooks tool call
|
|
77
|
+
*/
|
|
78
|
+
private handleSearchPlaybooks;
|
|
79
|
+
/**
|
|
80
|
+
* Handle get_playbook_details tool call
|
|
81
|
+
*/
|
|
82
|
+
private handleGetPlaybookDetails;
|
|
83
|
+
/**
|
|
84
|
+
* Handle list_domains tool call
|
|
85
|
+
*/
|
|
86
|
+
private handleListDomains;
|
|
87
|
+
/**
|
|
88
|
+
* Handle get_playbooks_by_domain tool call
|
|
89
|
+
*/
|
|
90
|
+
private handleGetPlaybooksByDomain;
|
|
91
|
+
/**
|
|
92
|
+
* Format playbook match for search results
|
|
93
|
+
*/
|
|
94
|
+
private formatPlaybookForSearch;
|
|
95
|
+
/**
|
|
96
|
+
* Format search result as text
|
|
97
|
+
*/
|
|
98
|
+
private formatSearchResultAsText;
|
|
99
|
+
/**
|
|
100
|
+
* Format playbook summary
|
|
101
|
+
*/
|
|
102
|
+
private formatPlaybookSummary;
|
|
103
|
+
/**
|
|
104
|
+
* Format full playbook details
|
|
105
|
+
*/
|
|
106
|
+
private formatPlaybookDetails;
|
|
107
|
+
/**
|
|
108
|
+
* Get server info for MCP protocol
|
|
109
|
+
*/
|
|
110
|
+
getServerInfo(): {
|
|
111
|
+
name: string;
|
|
112
|
+
version: string;
|
|
113
|
+
description: string;
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Create an MCP playbook server
|
|
118
|
+
*/
|
|
119
|
+
export declare function createPlaybookMCPServer(playbooks: PlaybookLibrary, skillLibrary?: SkillLibrary, config?: Partial<MCPServerConfig>): PlaybookMCPServer;
|
|
120
|
+
//# sourceMappingURL=playbook-server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"playbook-server.d.ts","sourceRoot":"","sources":["../../src/mcp/playbook-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAiB,MAAM,uBAAuB,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAQ1D;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAeD;;;GAGG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,MAAM,CAAkB;gBAG9B,SAAS,EAAE,eAAe,EAC1B,aAAa,CAAC,EAAE,YAAY,EAC5B,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;IAMnC;;OAEG;IACH,QAAQ,IAAI,OAAO,EAAE;IAuErB;;OAEG;IACG,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IA8B/D;;OAEG;YACW,qBAAqB;IA2CnC;;OAEG;YACW,wBAAwB;IA6BtC;;OAEG;YACW,iBAAiB;IA6B/B;;OAEG;YACW,0BAA0B;IAsCxC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAkB/B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA6BhC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAgB7B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAwG7B;;OAEG;IACH,aAAa,IAAI;QACf,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;KACrB;CAQF;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,eAAe,EAC1B,YAAY,CAAC,EAAE,YAAY,EAC3B,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAChC,iBAAiB,CAEnB"}
|