@cachly-dev/mcp-server 0.10.58 → 0.10.59
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/CHANGELOG.md +28 -0
- package/README.md +1 -1
- package/dist/src/__tests__/brain-flow.test.js +101 -1
- package/dist/src/__tests__/brain-flow.test.js.map +1 -1
- package/dist/src/ckg.d.ts +20 -0
- package/dist/src/ckg.js +29 -0
- package/dist/src/ckg.js.map +1 -1
- package/dist/src/handlers/brain.js +129 -3
- package/dist/src/handlers/brain.js.map +1 -1
- package/dist/src/index.js +3 -3
- package/dist/src/tools.d.ts +21 -0
- package/dist/src/tools.js +17 -0
- package/dist/src/tools.js.map +1 -1
- package/package.json +2 -2
- package/server.json +3 -3
- package/src/__tests__/brain-flow.test.ts +114 -1
- package/src/ckg.ts +53 -3
- package/src/handlers/brain.ts +154 -4
- package/src/index.ts +3 -3
- package/src/tools.ts +18 -0
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,34 @@
|
|
|
7
7
|
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
+
## [0.10.59] – 2026-05-29
|
|
11
|
+
|
|
12
|
+
### Phase 3A: Org-wide knowledge graph — "Who Knows What?"
|
|
13
|
+
|
|
14
|
+
- **`brain_who_knows(topic="...")`** — new tool (96th). Queries the org-wide
|
|
15
|
+
knowledge graph to find your team's top experts on any topic. Returns a ranked
|
|
16
|
+
list with lesson count, confidence %, primary domains, and last-active recency.
|
|
17
|
+
Medal rankings: 🥇 🥈 🥉 for top 3.
|
|
18
|
+
- **Person nodes auto-built.** Every `learn_from_attempts(author="name", ...)` call
|
|
19
|
+
now upserts a `PersonNode` in the CKG and creates an `authored` edge from the
|
|
20
|
+
person to the lesson concept. No extra setup needed.
|
|
21
|
+
- **File nodes auto-built.** `file_paths` in `learn_from_attempts` upsert `FileNode`
|
|
22
|
+
entries + `touched` edges from the author → file. Enables future "who worked on X
|
|
23
|
+
file?" queries.
|
|
24
|
+
- **Author attribution in `smart_recall`.** Results now show `👤 author-handle`
|
|
25
|
+
inline whenever the matched lesson carries an author field.
|
|
26
|
+
- **`+7` tests** covering `ckgUpsertPersonNode`, `ckgUpsertFileNode`, and the full
|
|
27
|
+
`brain_who_knows` flow including ranking order correctness.
|
|
28
|
+
- **96 MCP tools** (was 95).
|
|
29
|
+
|
|
30
|
+
## [0.10.58] – 2026-05-29
|
|
31
|
+
|
|
32
|
+
### Zero lint warnings
|
|
33
|
+
|
|
34
|
+
- Systematic unused-import cleanup across all handler files and index.ts
|
|
35
|
+
- ESLint exits clean: 0 errors, 0 warnings
|
|
36
|
+
- `eslint.config.js`: added `varsIgnorePattern: '^_'`
|
|
37
|
+
|
|
10
38
|
## [0.10.57] – 2026-05-29
|
|
11
39
|
|
|
12
40
|
### Critical: fixed broken npm entry point + version hygiene
|
package/README.md
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
<img src="https://img.shields.io/badge/GDPR-EU%20servers-green" alt="GDPR: EU servers" />
|
|
21
21
|
</a>
|
|
22
22
|
|
|
23
|
-
<img src="https://img.shields.io/badge/
|
|
23
|
+
<img src="https://img.shields.io/badge/96%20MCP%20tools-violet" alt="96 MCP tools" />
|
|
24
24
|
|
|
25
25
|
<img src="https://img.shields.io/badge/License-Apache--2.0-yellow" alt="License: Apache-2.0" />
|
|
26
26
|
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
import { describe, it, expect, beforeEach } from 'vitest';
|
|
13
13
|
import { EventEmitter } from 'node:events';
|
|
14
14
|
// ── Modules under test ────────────────────────────────────────────────────────
|
|
15
|
-
import { ckgSlug, extractProblemConcept, ckgUpsertNode, ckgUpdateEdge } from '../ckg.js';
|
|
15
|
+
import { ckgSlug, extractProblemConcept, ckgUpsertNode, ckgUpdateEdge, ckgUpsertPersonNode, ckgUpsertFileNode } from '../ckg.js';
|
|
16
16
|
import { EMBED_PROVIDER, hasEmbedProvider, embedProviderHint, embedConfig, setEmbedJwt } from '../embeddings.js';
|
|
17
17
|
import { keywordSearch } from '../search.js';
|
|
18
18
|
import { handleBrainTool } from '../handlers/brain.js';
|
|
@@ -72,6 +72,15 @@ class MockRedis {
|
|
|
72
72
|
this.store.set(key, String(next));
|
|
73
73
|
return String(next);
|
|
74
74
|
}
|
|
75
|
+
async expire(_key, _ttl) { return 1; }
|
|
76
|
+
async del(...keys) {
|
|
77
|
+
let count = 0;
|
|
78
|
+
for (const k of keys) {
|
|
79
|
+
if (this.store.delete(k))
|
|
80
|
+
count++;
|
|
81
|
+
}
|
|
82
|
+
return count;
|
|
83
|
+
}
|
|
75
84
|
/** Simplified scanStream: returns all matching keys in a single 'data' event. */
|
|
76
85
|
scanStream(opts) {
|
|
77
86
|
const emitter = new EventEmitter();
|
|
@@ -872,4 +881,95 @@ describe('Predictive pre-warning without explicit focus (session_start)', () =>
|
|
|
872
881
|
expect(out).not.toContain('PRE-WARNING');
|
|
873
882
|
});
|
|
874
883
|
});
|
|
884
|
+
describe('Phase 3A: Person + File nodes in CKG (ckg.ts)', () => {
|
|
885
|
+
let redis;
|
|
886
|
+
beforeEach(() => { redis = new MockRedis(); });
|
|
887
|
+
it('ckgUpsertPersonNode creates a person node with correct shape', async () => {
|
|
888
|
+
const id = await ckgUpsertPersonNode(redis, 'alice', 'fix');
|
|
889
|
+
expect(id).toBe('person:alice');
|
|
890
|
+
const raw = await redis.get('cachly:ckg:node:person:alice');
|
|
891
|
+
expect(raw).not.toBeNull();
|
|
892
|
+
const node = JSON.parse(raw);
|
|
893
|
+
expect(node.handle).toBe('alice');
|
|
894
|
+
expect(node.type).toBe('person');
|
|
895
|
+
expect(node.count).toBe(1);
|
|
896
|
+
expect(node.domain).toBe('fix');
|
|
897
|
+
expect(typeof node.last_active).toBe('string');
|
|
898
|
+
});
|
|
899
|
+
it('ckgUpsertPersonNode increments count on repeated calls', async () => {
|
|
900
|
+
await ckgUpsertPersonNode(redis, 'bob', 'deploy');
|
|
901
|
+
await ckgUpsertPersonNode(redis, 'bob', 'deploy');
|
|
902
|
+
const raw = await redis.get('cachly:ckg:node:person:bob');
|
|
903
|
+
const node = JSON.parse(raw);
|
|
904
|
+
expect(node.count).toBe(2);
|
|
905
|
+
});
|
|
906
|
+
it('ckgUpsertFileNode creates a file node with correct shape', async () => {
|
|
907
|
+
const id = await ckgUpsertFileNode(redis, 'src/auth/jwt.ts');
|
|
908
|
+
expect(id).toBe('file:src-auth-jwt-ts');
|
|
909
|
+
const raw = await redis.get('cachly:ckg:node:file:src-auth-jwt-ts');
|
|
910
|
+
expect(raw).not.toBeNull();
|
|
911
|
+
const node = JSON.parse(raw);
|
|
912
|
+
expect(node.path).toBe('src/auth/jwt.ts');
|
|
913
|
+
expect(node.type).toBe('file');
|
|
914
|
+
expect(node.count).toBe(1);
|
|
915
|
+
});
|
|
916
|
+
it('ckgUpsertFileNode increments count on repeated calls', async () => {
|
|
917
|
+
await ckgUpsertFileNode(redis, 'src/api.ts');
|
|
918
|
+
await ckgUpsertFileNode(redis, 'src/api.ts');
|
|
919
|
+
const raw = await redis.get(`cachly:ckg:node:file:${ckgSlug('src/api.ts')}`);
|
|
920
|
+
const node = JSON.parse(raw);
|
|
921
|
+
expect(node.count).toBe(2);
|
|
922
|
+
});
|
|
923
|
+
});
|
|
924
|
+
describe('Phase 3A: brain_who_knows', () => {
|
|
925
|
+
let redis;
|
|
926
|
+
const iid = 'i1';
|
|
927
|
+
const getConn = async () => redis;
|
|
928
|
+
const noopFetch = async (_url) => { throw new Error('no fetch'); };
|
|
929
|
+
beforeEach(() => { redis = new MockRedis(); });
|
|
930
|
+
it('returns empty-state message when no lessons have author attribution', async () => {
|
|
931
|
+
const out = await handleBrainTool('brain_who_knows', { instance_id: iid, topic: 'deploy:k8s' }, getConn, noopFetch);
|
|
932
|
+
expect(out).toContain('No attributed lessons');
|
|
933
|
+
expect(out).toContain('learn_from_attempts');
|
|
934
|
+
});
|
|
935
|
+
it('returns ranked contributors after learn_from_attempts with author', async () => {
|
|
936
|
+
// Alice stored 2 successful deploy lessons
|
|
937
|
+
await handleBrainTool('learn_from_attempts', {
|
|
938
|
+
instance_id: iid, topic: 'deploy:k8s', outcome: 'success',
|
|
939
|
+
what_worked: 'kubectl apply with --dry-run first', author: 'alice',
|
|
940
|
+
}, getConn, noopFetch);
|
|
941
|
+
await handleBrainTool('learn_from_attempts', {
|
|
942
|
+
instance_id: iid, topic: 'deploy:helm', outcome: 'success',
|
|
943
|
+
what_worked: 'helm upgrade --atomic', author: 'alice',
|
|
944
|
+
}, getConn, noopFetch);
|
|
945
|
+
// Bob stored 1 lesson in same domain
|
|
946
|
+
await handleBrainTool('learn_from_attempts', {
|
|
947
|
+
instance_id: iid, topic: 'deploy:docker', outcome: 'success',
|
|
948
|
+
what_worked: 'multi-stage build', author: 'bob',
|
|
949
|
+
}, getConn, noopFetch);
|
|
950
|
+
const out = await handleBrainTool('brain_who_knows', { instance_id: iid, topic: 'deploy' }, getConn, noopFetch);
|
|
951
|
+
expect(out).toContain('alice');
|
|
952
|
+
expect(out).toContain('bob');
|
|
953
|
+
expect(out).toContain('🥇');
|
|
954
|
+
});
|
|
955
|
+
it('shows the most experienced author first', async () => {
|
|
956
|
+
// alice: 3 lessons, bob: 1 lesson
|
|
957
|
+
for (let i = 0; i < 3; i++) {
|
|
958
|
+
await handleBrainTool('learn_from_attempts', {
|
|
959
|
+
instance_id: iid, topic: `fix:bug${i}`, outcome: 'success',
|
|
960
|
+
what_worked: `solution ${i}`, author: 'alice',
|
|
961
|
+
}, getConn, noopFetch);
|
|
962
|
+
}
|
|
963
|
+
await handleBrainTool('learn_from_attempts', {
|
|
964
|
+
instance_id: iid, topic: 'fix:other', outcome: 'success',
|
|
965
|
+
what_worked: 'quick patch', author: 'bob',
|
|
966
|
+
}, getConn, noopFetch);
|
|
967
|
+
const out = await handleBrainTool('brain_who_knows', { instance_id: iid, topic: 'fix' }, getConn, noopFetch);
|
|
968
|
+
// alice should appear before bob
|
|
969
|
+
const aliceIdx = out.indexOf('alice');
|
|
970
|
+
const bobIdx = out.indexOf('bob');
|
|
971
|
+
expect(aliceIdx).toBeGreaterThan(-1);
|
|
972
|
+
expect(aliceIdx).toBeLessThan(bobIdx);
|
|
973
|
+
});
|
|
974
|
+
});
|
|
875
975
|
//# sourceMappingURL=brain-flow.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brain-flow.test.js","sourceRoot":"","sources":["../../../src/__tests__/brain-flow.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"brain-flow.test.js","sourceRoot":"","sources":["../../../src/__tests__/brain-flow.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,iFAAiF;AACjF,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,aAAa,EAC5D,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACjH,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,iFAAiF;AAEjF,MAAM,SAAS;IACL,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IAClC,KAAK,GAAG,IAAI,GAAG,EAAoB,CAAC;IACpC,IAAI,GAAI,IAAI,GAAG,EAAuB,CAAC;IAE/C,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAa;QAClC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,GAAG,MAAgB;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;QACrB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW,EAAE,KAAa,EAAE,IAAY;QACnD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,KAAa,EAAE,IAAY;QAClD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;QACzD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QAC9E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAW,EAAE,GAAG,OAAiB;QAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;QAClD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAAC,KAAK,EAAE,CAAC;YAAC,CAAC;QAAC,CAAC;QAClE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAW;QACxB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAG,IAAc;QAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,GAAW,EAAE,SAAiB;QAC9C,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,GAAG,GAAG,SAAS,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAClC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,IAAY,IAAqB,OAAO,CAAC,CAAC,CAAC,CAAC;IAEvE,KAAK,CAAC,GAAG,CAAC,GAAG,IAAc;QACzB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;gBAAE,KAAK,EAAE,CAAC;QAAC,CAAC;QAC5D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,iFAAiF;IACjF,UAAU,CAAC,IAAuC;QAChD,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACpE,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,YAAY,CAAC,GAAG,EAAE;YAChB,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,kEAAkE;IAClE,QAAQ;QACN,MAAM,QAAQ,GAAwC,EAAE,CAAC;QACzD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,OAAO;YACL,GAAG,CAAC,GAAW,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;YACrE,KAAK,CAAC,IAAI;gBACR,MAAM,GAAG,GAAiC,EAAE,CAAC;gBAC7C,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;oBACzB,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;gBAC7C,CAAC;gBACD,OAAO,GAAG,CAAC;YACb,CAAC;SACF,CAAC;IACJ,CAAC;IAED,kCAAkC;IAClC,SAAS,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAClC,SAAS,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAClC,QAAQ,KAAM,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;CAClC;AAqBD,4EAA4E;AAC5E,KAAK,UAAU,kBAAkB,CAC/B,KAAgB,EAChB,MAAyG;IAEzG,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACpC,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,sBAAsB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAC1E,MAAM,UAAU,GAA6B,WAAW;QACtD,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAe,CAAC,OAAO,EAAE,CAAC;QAC3F,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IAChC,MAAM,GAAG,GAAc;QACrB,GAAG,MAAM;QACT,YAAY,EAAE,CAAC;QACf,EAAE;QACF,WAAW,EAAE,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;QAC1D,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,UAAU;QACvB,OAAO,EAAE,CAAC;KACX,CAAC;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,KAAK,CAAC,KAAK,CAAC,kBAAkB,MAAM,CAAC,KAAK,EAAE,EAAE,UAAU,CAAC,CAAC;IAChE,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,WAAW,EAAE,CAAC;QACjF,MAAM,KAAK,CAAC,GAAG,CAAC,sBAAsB,MAAM,CAAC,KAAK,EAAE,EAAE,UAAU,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,iFAAiF;AAEjF,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,IAAI,KAAgB,CAAC;IACrB,UAAU,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/C,+EAA+E;IAC/E,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,8EAA8E;YAC9E,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;YACpC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC3C,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;YAC/B,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,gFAAgF;IAChF,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACrC,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,MAAM,MAAM,GAAG,qBAAqB,CAAC,iCAAiC,CAAC,CAAC;YACxE,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;YAC7B,MAAM,MAAM,GAAG,qBAAqB,CAAC,eAAe,CAAC,CAAC;YACtD,iEAAiE;YACjE,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,gFAAgF;IAChF,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;YAC/C,MAAM,aAAa,CAAC,KAAyB,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YACnF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;YAC1D,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAI,CAAC,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACnD,MAAM,aAAa,CAAC,KAAyB,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YACnF,MAAM,aAAa,CAAC,KAAyB,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YACnF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAE,CAAC,CAAC;YAC1E,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,gFAAgF;IAChF,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;YAC9D,MAAM,aAAa,CAAC,KAAyB,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;YAC7F,MAAM,OAAO,GAAG,gDAAgD,CAAC;YACjE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAE,CAAC,CAAC;YACrD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5B,4CAA4C;YAC5C,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC7D,MAAM,CAAC,GAAG,KAAyB,CAAC;YACpC,MAAM,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YACnD,MAAM,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YACnD,MAAM,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAE,CAAC,CAAC;YAC5E,4CAA4C;YAC5C,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;YACrD,MAAM,CAAC,GAAG,KAAyB,CAAC;YACpC,MAAM,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,UAAU;YACrE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAE,CAAC,CAAC;YAC5E,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjC,8BAA8B;YAC9B,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;YAC/C,MAAM,CAAC,GAAG,KAAyB,CAAC;YACpC,MAAM,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAE,CAAC,CAAC,UAAU,CAAC;YACzF,MAAM,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YACpD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAE,CAAC,CAAC,UAAU,CAAC;YACxF,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;YAClD,MAAM,CAAC,GAAG,KAAyB,CAAC;YACpC,MAAM,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACzD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC;YACjE,MAAM,KAAK,GAAK,MAAM,KAAK,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;YAC9D,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,oCAAoC,CAAC,CAAC;YAChE,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,oCAAoC,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,iFAAiF;AAEjF,QAAQ,CAAC,mCAAmC,EAAE,GAAG,EAAE;IACjD,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,OAAO,cAAc,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,8DAA8D;QAC9D,uEAAuE;QACvE,MAAM,CAAC,OAAO,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,IAAI,GAAG,iBAAiB,EAAE,CAAC;QACjC,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC;QAC7B,WAAW,CAAC,oBAAoB,CAAC,CAAC;QAClC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACnD,UAAU;QACV,WAAW,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAEhF,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,IAAI,KAAgB,CAAC;IACrB,UAAU,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/C,QAAQ,CAAC,gDAAgD,EAAE,GAAG,EAAE;QAC9D,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,kBAAkB,CAAC,KAAK,EAAE;gBAC9B,KAAK,EAAE,YAAY;gBACnB,OAAO,EAAE,SAAS;gBAClB,WAAW,EAAE,kCAAkC;gBAC/C,WAAW,EAAE,0CAA0C;gBACvD,QAAQ,EAAE,UAAU;gBACpB,QAAQ,EAAE,CAAC,kCAAkC,CAAC;gBAC9C,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;gBAC1B,UAAU,EAAE,EAAE;aACf,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;YAC7D,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAI,CAAc,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACxC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACvC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;YACpE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,kCAAkC,CAAC,CAAC;YACtE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;YAC9D,MAAM,kBAAkB,CAAC,KAAK,EAAE;gBAC9B,KAAK,EAAE,mBAAmB;gBAC1B,OAAO,EAAE,SAAS;gBAClB,WAAW,EAAE,yBAAyB;gBACtC,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,EAAE;gBACZ,IAAI,EAAE,EAAE;gBACR,UAAU,EAAE,EAAE;aACf,CAAC,CAAC;YACH,MAAM,kBAAkB,CAAC,KAAK,EAAE;gBAC9B,KAAK,EAAE,mBAAmB;gBAC1B,OAAO,EAAE,SAAS;gBAClB,WAAW,EAAE,iBAAiB;gBAC9B,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,EAAE;gBACZ,IAAI,EAAE,EAAE;gBACR,UAAU,EAAE,EAAE;aACf,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,kCAAkC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9E,MAAM,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACrE,MAAM,kBAAkB,CAAC,KAAK,EAAE;gBAC9B,KAAK,EAAE,iBAAiB;gBACxB,OAAO,EAAE,SAAS;gBAClB,WAAW,EAAE,6BAA6B;gBAC1C,QAAQ,EAAE,UAAU;gBACpB,QAAQ,EAAE,EAAE;gBACZ,IAAI,EAAE,EAAE;gBACR,UAAU,EAAE,EAAE;aACf,CAAC,CAAC;YACH,MAAM,kBAAkB,CAAC,KAAK,EAAE;gBAC9B,KAAK,EAAE,iBAAiB;gBACxB,OAAO,EAAE,SAAS;gBAClB,WAAW,EAAE,EAAE;gBACf,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,EAAE;gBACZ,IAAI,EAAE,EAAE;gBACR,UAAU,EAAE,EAAE;aACf,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAE,CAAc,CAAC;YAC/F,8BAA8B;YAC9B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YACvD,MAAM,kBAAkB,CAAC,KAAK,EAAE;gBAC9B,KAAK,EAAE,kBAAkB;gBACzB,OAAO,EAAE,SAAS;gBAClB,WAAW,EAAE,EAAE;gBACf,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,EAAE;gBACZ,IAAI,EAAE,EAAE;gBACR,UAAU,EAAE,EAAE;aACf,CAAC,CAAC;YACH,MAAM,kBAAkB,CAAC,KAAK,EAAE;gBAC9B,KAAK,EAAE,kBAAkB;gBACzB,OAAO,EAAE,SAAS;gBAClB,WAAW,EAAE,6BAA6B;gBAC1C,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,EAAE;gBACZ,IAAI,EAAE,EAAE;gBACR,UAAU,EAAE,EAAE;aACf,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAE,CAAc,CAAC;YAChG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACnD,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,+EAA+E;IAE/E,QAAQ,CAAC,mDAAmD,EAAE,GAAG,EAAE;QACjE,UAAU,CAAC,KAAK,IAAI,EAAE;YACpB,eAAe;YACf,MAAM,OAAO,GAAG;gBACd,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,wCAAwC,EAAE;gBAC9E,EAAE,KAAK,EAAE,uBAAuB,EAAE,WAAW,EAAE,uDAAuD,EAAE;gBACxG,EAAE,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,oCAAoC,EAAE;gBACjF,EAAE,KAAK,EAAE,sBAAsB,EAAE,WAAW,EAAE,qCAAqC,EAAE;gBACrF,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,8CAA8C,EAAE;aACrF,CAAC;YACF,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,MAAM,kBAAkB,CAAC,KAAK,EAAE;oBAC9B,GAAG,CAAC;oBACJ,OAAO,EAAE,SAAS;oBAClB,QAAQ,EAAE,UAAU;oBACpB,QAAQ,EAAE,EAAE;oBACZ,IAAI,EAAE,EAAE;oBACR,UAAU,EAAE,EAAE;iBACf,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAC9C,MAAM,OAAO,GAAG,MAAM,aAAa,CACjC,KAAyB,EACzB,CAAC,sBAAsB,CAAC,EACxB,mBAAmB,EACnB,CAAC,CACF,CAAC;YACF,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,OAAO,GAAG,MAAM,aAAa,CACjC,KAAyB,EACzB,CAAC,sBAAsB,CAAC,EACxB,kCAAkC,EAClC,CAAC,CACF,CAAC;YACF,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;YAClD,MAAM,OAAO,GAAG,MAAM,aAAa,CACjC,KAAyB,EACzB,CAAC,sBAAsB,CAAC,EACxB,+BAA+B,EAC/B,CAAC,CACF,CAAC;YACF,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAC1C,mEAAmE;YACnE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;YAClE,MAAM,OAAO,GAAG,MAAM,aAAa,CACjC,KAAyB,EACzB,CAAC,sBAAsB,CAAC,EACxB,uCAAuC,EACvC,CAAC,CACF,CAAC;YACF,oEAAoE;YACpE,6CAA6C;YAC7C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,gFAAgF;IAEhF,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAChD,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;YACnE,MAAM,MAAM,GAAG,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;YAC1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,MAAM,kBAAkB,CAAC,KAAK,EAAE;oBAC9B,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;oBAChB,OAAO,EAAE,SAAS;oBAClB,WAAW,EAAE,OAAO,CAAC,EAAE;oBACvB,QAAQ,EAAE,OAAO;oBACjB,QAAQ,EAAE,EAAE;oBACZ,IAAI,EAAE,EAAE;oBACR,UAAU,EAAE,EAAE;iBACf,CAAC,CAAC;gBACH,4CAA4C;gBAC5C,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC3C,CAAC;YAED,gFAAgF;YAChF,MAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC/E,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBAC/D,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBAC1B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAgB,EAAE,CAAC;YAChC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC/B,IAAI,GAAG;oBAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAc,CAAC,CAAC;YACtD,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAE5E,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5C,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,kBAAkB,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;YACrJ,MAAM,kBAAkB,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAG,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;YACrJ,MAAM,kBAAkB,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;YAErJ,MAAM,IAAI,GAAa,EAAE,CAAC;YAC1B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC/E,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBAC5D,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBAC1B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAEhF,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAC/C,IAAI,KAAgB,CAAC;IACrB,UAAU,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/C,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,CAAC,GAAG,KAAyB,CAAC;QAEpC,kCAAkC;QAClC,MAAM,kBAAkB,CAAC,KAAK,EAAE;YAC9B,KAAK,EAAE,YAAY;YACnB,OAAO,EAAE,SAAS;YAClB,WAAW,EAAE,2DAA2D;YACxE,WAAW,EAAE,yDAAyD;YACtE,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,CAAC,wCAAwC,CAAC;YACpD,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC;YACjC,UAAU,EAAE,CAAC,oBAAoB,CAAC;SACnC,CAAC,CAAC;QAEH,uCAAuC;QACvC,MAAM,aAAa,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QACzD,MAAM,aAAa,CAAC,CAAC,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;QAEzE,qBAAqB;QACrB,MAAM,OAAO,GAAG,MAAM,aAAa,CACjC,CAAC,EACD,CAAC,sBAAsB,CAAC,EACxB,mCAAmC,EACnC,CAAC,CACF,CAAC;QAEF,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAE9C,sBAAsB;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAE,CAAC,CAAC;QAClG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,iBAAiB;QAEhE,uCAAuC;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAE,CAAc,CAAC;QAC5F,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,wCAAwC,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,kBAAkB,CAAC,KAAK,EAAE;YAC9B,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE,SAAS;YAClB,WAAW,EAAE,iCAAiC;YAC9C,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,EAAE;YACZ,IAAI,EAAE,EAAE;YACR,UAAU,EAAE,EAAE;SACf,CAAC,CAAC;QACH,MAAM,kBAAkB,CAAC,KAAK,EAAE;YAC9B,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE,SAAS;YAClB,WAAW,EAAE,EAAE;YACf,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE,EAAE;YACZ,IAAI,EAAE,EAAE;YACR,UAAU,EAAE,EAAE;SACf,CAAC,CAAC;QAEH,mDAAmD;QACnD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAE,CAAc,CAAC;QACzF,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAErC,mCAAmC;QACnC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,0BAA0B,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACtE,MAAM,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAc,CAAC;QACxD,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,iFAAiF;AAEjF,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC9C,IAAI,KAAgB,CAAC;IACrB,UAAU,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/C,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;QACnD,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;YAChE,MAAM,kBAAkB,CAAC,KAAK,EAAE;gBAC9B,KAAK,EAAE,aAAa;gBACpB,OAAO,EAAE,SAAS;gBAClB,WAAW,EAAE,yBAAyB;gBACtC,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,EAAE;gBACZ,IAAI,EAAE,EAAE;gBACR,UAAU,EAAE,EAAE;aACf,CAAC,CAAC;YACH,qBAAqB;YACrB,MAAM,kBAAkB,CAAC,KAAK,EAAE;gBAC9B,KAAK,EAAE,aAAa;gBACpB,OAAO,EAAE,SAAS;gBAClB,WAAW,EAAE,2CAA2C;gBACxD,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,CAAC,eAAe,EAAE,WAAW,CAAC;gBACxC,IAAI,EAAE,CAAC,aAAa,CAAC;gBACrB,UAAU,EAAE,EAAE;aACf,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAE,CAAc,CAAC;YAC3F,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YAElD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,4BAA4B,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACxE,MAAM,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;YAC1C,MAAM,kBAAkB,CAAC,KAAK,EAAE;gBAC9B,KAAK,EAAE,YAAY;gBACnB,OAAO,EAAE,SAAS;gBAClB,WAAW,EAAE,6BAA6B;gBAC1C,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,EAAE;gBACZ,IAAI,EAAE,EAAE;gBACR,UAAU,EAAE,EAAE;aACf,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAE,CAAc,CAAC;YAC5F,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,kBAAkB,CAAC,KAAK,EAAE;gBAC9B,KAAK,EAAE,WAAW;gBAClB,OAAO,EAAE,SAAS;gBAClB,WAAW,EAAE,eAAe;gBAC5B,QAAQ,EAAE,UAAU;gBACpB,QAAQ,EAAE,EAAE;gBACZ,IAAI,EAAE,EAAE;gBACR,UAAU,EAAE,EAAE;aACf,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAE,CAAc,CAAC;YAC3F,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;YACzC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,WAAY,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,kBAAkB,CAAC,KAAK,EAAE;gBAC9B,KAAK,EAAE,WAAW;gBAClB,OAAO,EAAE,SAAS;gBAClB,WAAW,EAAE,EAAE;gBACf,QAAQ,EAAE,UAAU;gBACpB,QAAQ,EAAE,EAAE;gBACZ,IAAI,EAAE,EAAE;gBACR,UAAU,EAAE,EAAE;aACf,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAE,CAAc,CAAC;YAC3F,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,aAAa,EAAE,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;QAC7C,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;YACjE,MAAM,MAAM,GAAG;gBACb,EAAE,KAAK,EAAE,YAAY,EAAI,WAAW,EAAE,uBAAuB,EAAE;gBAC/D,EAAE,KAAK,EAAE,YAAY,EAAI,WAAW,EAAE,0BAA0B,EAAE;gBAClE,EAAE,KAAK,EAAE,YAAY,EAAI,WAAW,EAAE,wBAAwB,EAAE;gBAChE,EAAE,KAAK,EAAE,aAAa,EAAG,WAAW,EAAE,8BAA8B,EAAE;gBACtE,EAAE,KAAK,EAAE,YAAY,EAAI,WAAW,EAAE,qBAAqB,EAAE;aAC9D,CAAC;YAEF,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACvB,MAAM,kBAAkB,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3H,CAAC;YAED,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACvB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC7D,MAAM,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,KAAK,eAAe,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACjE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAI,CAAc,CAAC;gBAC7C,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YACjD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YACvD,MAAM,MAAM,GAAG,CAAC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;YACvE,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACvB,MAAM,kBAAkB,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;YACjJ,CAAC;YAED,MAAM,IAAI,GAAa,EAAE,CAAC;YAC1B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC/E,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBAC5D,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBAC1B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC7B,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACvB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;YAC9D,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YACrC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACvB,MAAM,kBAAkB,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;YACnJ,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;YACxD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;YAClC,KAAK,MAAM,CAAC,IAAI,IAAI;gBAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAEtC,MAAM,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAChC,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC;gBACjC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACvB,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;gBAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAa,CAAc,CAAC;gBACtD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACzC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAC9C,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;YACtE,0DAA0D;YAC1D,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,cAAc;YAEhF,uDAAuD;YACvD,MAAM,SAAS,GAAc;gBAC3B,KAAK,EAAE,YAAY;gBACnB,OAAO,EAAE,SAAS;gBAClB,WAAW,EAAE,6CAA6C;gBAC1D,WAAW,EAAE,SAAS;gBACtB,OAAO,EAAE,SAAS;gBAClB,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,EAAE;gBACZ,IAAI,EAAE,EAAE;gBACR,UAAU,EAAE,EAAE;gBACd,YAAY,EAAE,CAAC;gBACf,EAAE,EAAE,KAAK;gBACT,WAAW,EAAE,KAAK;gBAClB,UAAU,EAAE,GAAG;gBACf,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;gBAC/C,OAAO,EAAE,CAAC;aACX,CAAC;YACF,MAAM,KAAK,CAAC,KAAK,CAAC,2BAA2B,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;YAC1E,MAAM,KAAK,CAAC,GAAG,CAAC,+BAA+B,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;YAE5E,iFAAiF;YACjF,MAAM,kBAAkB,CAAC,KAAK,EAAE;gBAC9B,KAAK,EAAE,YAAY;gBACnB,OAAO,EAAE,SAAS;gBAClB,WAAW,EAAE,6CAA6C;gBAC1D,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,EAAE;gBACZ,IAAI,EAAE,EAAE;gBACR,UAAU,EAAE,EAAE;aACf,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,MAAM,aAAa,CACjC,KAAyB,EACzB,CAAC,sBAAsB,CAAC,EACxB,8BAA8B,EAC9B,CAAC,CACF,CAAC;YAEF,uDAAuD;YACvD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;YACpE,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;YACpE,MAAM,CAAC,MAAM,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,wCAAwC;QACtF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;YACzE,MAAM,kBAAkB,CAAC,KAAK,EAAE;gBAC9B,KAAK,EAAE,qBAAqB;gBAC5B,OAAO,EAAE,SAAS;gBAClB,WAAW,EAAE,4CAA4C;gBACzD,QAAQ,EAAE,UAAU;gBACpB,QAAQ,EAAE,CAAC,eAAe,CAAC;gBAC3B,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;gBACtB,UAAU,EAAE,EAAE;aACf,CAAC,CAAC;YACH,MAAM,kBAAkB,CAAC,KAAK,EAAE;gBAC9B,KAAK,EAAE,YAAY;gBACnB,OAAO,EAAE,SAAS;gBAClB,WAAW,EAAE,0BAA0B;gBACvC,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,EAAE;gBACZ,IAAI,EAAE,EAAE;gBACR,UAAU,EAAE,EAAE;aACf,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,MAAM,aAAa,CACjC,KAAyB,EACzB,CAAC,sBAAsB,CAAC,EACxB,6BAA6B,EAC7B,CAAC,CACF,CAAC;YAEF,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACxC,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;YAC5E,MAAM,CAAC,GAAG,KAAyB,CAAC;YACpC,MAAM,aAAa,CAAC,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YAC5D,MAAM,aAAa,CAAC,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;YACtE,MAAM,aAAa,CAAC,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YACnE,MAAM,aAAa,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YAEvE,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,iCAAiC,CAAC,CAAC;YACxE,MAAM,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7D,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1D,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;YAC1E,MAAM,CAAC,GAAG,KAAyB,CAAC;YACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5B,MAAM,aAAa,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;YACnE,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAE,CAAC,CAAC;YAC1F,qDAAqD;YACrD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;YAC5D,MAAM,CAAC,GAAG,KAAyB,CAAC;YACpC,yCAAyC;YACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAAE,MAAM,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YAC/E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAAE,MAAM,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAChF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAE,CAAC,CAAC;YAC5E,gDAAgD;YAChD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAChF,gFAAgF;AAChF,wEAAwE;AAExE,MAAM,YAAY,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAqD,CAAC;AAE5F,oFAAoF;AACpF,KAAK,UAAU,UAAU,CACvB,KAAgB,EAChB,KAAa,EACb,OASI,EAAE;IAEN,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACpC,MAAM,GAAG,GAAG;QACV,KAAK;QACL,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,SAAS;QAClC,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,gBAAgB,KAAK,EAAE;QACxD,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,OAAO;QAClC,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,CAAC;QACpC,EAAE;QACF,WAAW,EAAE,EAAE;QACf,UAAU,EAAE,GAAG;QACf,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;QACrB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChD,CAAC;IACF,MAAM,KAAK,CAAC,GAAG,CAAC,sBAAsB,KAAK,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;IACnD,IAAI,KAAgB,CAAC;IACrB,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE,CAAC,KAAyB,CAAC;IACtD,UAAU,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/C,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC,CAAC;QAC7F,MAAM,GAAG,GAAG,CAAC,MAAM,eAAe,CAAC,sBAAsB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,YAAY,CAAC,CAAE,CAAC;QAChI,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QACvC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC;QACzD,MAAM,GAAG,GAAG,CAAC,MAAM,eAAe,CAAC,sBAAsB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,YAAY,CAAC,CAAE,CAAC;QAC9H,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAChC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACrC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,CAAC,MAAM,eAAe,CAAC,sBAAsB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,YAAY,CAAC,CAAE,CAAC;QAChI,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAC3C,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACtC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC;QACzD,MAAM,eAAe,CAAC,sBAAsB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QAC/G,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAE,CAAC,CAAC;QAC7E,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,6CAA6C,EAAE,GAAG,EAAE;IAC3D,IAAI,KAAgB,CAAC;IACrB,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE,CAAC,KAAyB,CAAC;IACtD,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,KAAK,GAAG,IAAI,SAAS,EAAE,CAAC;QACxB,+EAA+E;QAC/E,MAAM,KAAK,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACrI,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,6BAA6B,EAAE,CAAC,CAAC;QACtG,MAAM,UAAU,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5D,MAAM,GAAG,GAAG,CAAC,MAAM,eAAe,CAAC,eAAe,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,YAAY,CAAC,CAAE,CAAC;QACpG,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACrC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACnC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,UAAU,CAAC,KAAK,EAAE,iBAAiB,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC,CAAC;QACzH,MAAM,GAAG,GAAG,CAAC,MAAM,eAAe,CAAC,eAAe,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,YAAY,CAAC,CAAE,CAAC;QACpG,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACrC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QACzC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,UAAU,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5D,MAAM,GAAG,GAAG,CAAC,MAAM,eAAe,CAAC,eAAe,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,YAAY,CAAC,CAAE,CAAC;QACpG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,UAAU,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC;QAC5G,MAAM,GAAG,GAAG,CAAC,MAAM,eAAe,CAAC,eAAe,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,YAAY,CAAC,CAAE,CAAC;QACpG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,+DAA+D,EAAE,GAAG,EAAE;IAC7E,IAAI,KAAgB,CAAC;IACrB,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE,CAAC,KAAyB,CAAC;IACtD,UAAU,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/C,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,iEAAiE;QACjE,MAAM,KAAK,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,CAAC,SAAS,CAAC;YACpD,OAAO,EAAE,+BAA+B;YACxC,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAC5B,aAAa,EAAE,CAAC,+BAA+B,CAAC;SACjD,CAAC,CAAC,CAAC;QACJ,uCAAuC;QACvC,MAAM,UAAU,CAAC,KAAK,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,wCAAwC,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC7I,MAAM,GAAG,GAAG,CAAC,MAAM,eAAe,CAAC,eAAe,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,YAAY,CAAC,CAAE,CAAC;QACpG,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACrC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,MAAM,KAAK,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,CAAC,SAAS,CAAC;YACpD,OAAO,EAAE,YAAY;YACrB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAC5B,aAAa,EAAE,CAAC,gBAAgB,CAAC;SAClC,CAAC,CAAC,CAAC;QACJ,MAAM,UAAU,CAAC,KAAK,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACxG,MAAM,GAAG,GAAG,CAAC,MAAM,eAAe,CAAC,eAAe,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,YAAY,CAAC,CAAE,CAAC;QACpG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;QAClF,iEAAiE;QACjE,MAAM,KAAK,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,CAAC,SAAS,CAAC;YACpD,OAAO,EAAE,UAAU;YACnB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAC5B,aAAa,EAAE,CAAC,kBAAkB,CAAC;SACpC,CAAC,CAAC,CAAC;QACJ,oEAAoE;QACpE,MAAM,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClG,MAAM,GAAG,GAAG,CAAC,MAAM,eAAe,CAAC,eAAe,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,YAAY,CAAC,CAAE,CAAC;QACpG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,+CAA+C,EAAE,GAAG,EAAE;IAC7D,IAAI,KAAgB,CAAC;IACrB,UAAU,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/C,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAC,KAAyB,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QAChF,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAChC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QAC5D,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAI,CAAe,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,MAAM,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,mBAAmB,CAAC,KAAyB,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACtE,MAAM,mBAAmB,CAAC,KAAyB,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACtE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAI,CAAe,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,MAAM,EAAE,GAAG,MAAM,iBAAiB,CAAC,KAAyB,EAAE,iBAAiB,CAAC,CAAC;QACjF,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACxC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QACpE,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAI,CAAa,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,iBAAiB,CAAC,KAAyB,EAAE,YAAY,CAAC,CAAC;QACjE,MAAM,iBAAiB,CAAC,KAAyB,EAAE,YAAY,CAAC,CAAC;QACjE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,wBAAwB,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAC7E,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAI,CAAa,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,IAAI,KAAgB,CAAC;IACrB,MAAM,GAAG,GAAG,IAAI,CAAC;IACjB,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE,CAAC,KAAyB,CAAC;IACtD,MAAM,SAAS,GAAG,KAAK,EAAK,IAAY,EAAc,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1F,UAAU,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/C,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACnF,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,iBAAiB,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QACpH,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QAC/C,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;QACjF,2CAA2C;QAC3C,MAAM,eAAe,CAAC,qBAAqB,EAAE;YAC3C,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS;YACzD,WAAW,EAAE,oCAAoC,EAAE,MAAM,EAAE,OAAO;SACnE,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QACvB,MAAM,eAAe,CAAC,qBAAqB,EAAE;YAC3C,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS;YAC1D,WAAW,EAAE,uBAAuB,EAAE,MAAM,EAAE,OAAO;SACtD,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QACvB,qCAAqC;QACrC,MAAM,eAAe,CAAC,qBAAqB,EAAE;YAC3C,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,SAAS;YAC5D,WAAW,EAAE,mBAAmB,EAAE,MAAM,EAAE,KAAK;SAChD,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QAEvB,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,iBAAiB,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QAChH,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC/B,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,kCAAkC;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,eAAe,CAAC,qBAAqB,EAAE;gBAC3C,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,EAAE,SAAS;gBAC1D,WAAW,EAAE,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO;aAC9C,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QACzB,CAAC;QACD,MAAM,eAAe,CAAC,qBAAqB,EAAE;YAC3C,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS;YACxD,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK;SAC1C,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QAEvB,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,iBAAiB,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QAC7G,iCAAiC;QACjC,MAAM,QAAQ,GAAG,GAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,GAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/src/ckg.d.ts
CHANGED
|
@@ -15,8 +15,28 @@ export type CKGNode = {
|
|
|
15
15
|
count: number;
|
|
16
16
|
ts: string;
|
|
17
17
|
};
|
|
18
|
+
export type PersonNode = {
|
|
19
|
+
id: string;
|
|
20
|
+
handle: string;
|
|
21
|
+
domain: string;
|
|
22
|
+
type: 'person';
|
|
23
|
+
count: number;
|
|
24
|
+
last_active: string;
|
|
25
|
+
};
|
|
26
|
+
export type FileNode = {
|
|
27
|
+
id: string;
|
|
28
|
+
path: string;
|
|
29
|
+
domain: string;
|
|
30
|
+
type: 'file';
|
|
31
|
+
count: number;
|
|
32
|
+
ts: string;
|
|
33
|
+
};
|
|
18
34
|
export declare function ckgSlug(text: string): string;
|
|
19
35
|
/** Extract 1-3 significant keywords from free text for a problem concept */
|
|
20
36
|
export declare function extractProblemConcept(text: string): string | null;
|
|
21
37
|
export declare function ckgUpsertNode(redis: Redis, id: string, domain: string, type: string): Promise<void>;
|
|
38
|
+
/** Upsert a Person node; returns the node id ("person:{slug}"). */
|
|
39
|
+
export declare function ckgUpsertPersonNode(redis: Redis, handle: string, domain: string): Promise<string>;
|
|
40
|
+
/** Upsert a File node; returns the node id ("file:{slug}"). */
|
|
41
|
+
export declare function ckgUpsertFileNode(redis: Redis, filePath: string): Promise<string>;
|
|
22
42
|
export declare function ckgUpdateEdge(redis: Redis, from: string, edgeType: string, to: string, success: boolean, partial?: boolean): Promise<void>;
|
package/dist/src/ckg.js
CHANGED
|
@@ -20,6 +20,35 @@ export async function ckgUpsertNode(redis, id, domain, type) {
|
|
|
20
20
|
node.ts = new Date().toISOString();
|
|
21
21
|
await redis.set(key, JSON.stringify(node));
|
|
22
22
|
}
|
|
23
|
+
/** Upsert a Person node; returns the node id ("person:{slug}"). */
|
|
24
|
+
export async function ckgUpsertPersonNode(redis, handle, domain) {
|
|
25
|
+
const id = `person:${ckgSlug(handle)}`;
|
|
26
|
+
const key = `cachly:ckg:node:${id}`;
|
|
27
|
+
const raw = await redis.get(key);
|
|
28
|
+
const node = raw
|
|
29
|
+
? JSON.parse(raw)
|
|
30
|
+
: { id, handle, domain, type: 'person', count: 0, last_active: new Date().toISOString() };
|
|
31
|
+
node.count = (node.count || 0) + 1;
|
|
32
|
+
node.last_active = new Date().toISOString();
|
|
33
|
+
if (!node.domain)
|
|
34
|
+
node.domain = domain;
|
|
35
|
+
await redis.set(key, JSON.stringify(node));
|
|
36
|
+
return id;
|
|
37
|
+
}
|
|
38
|
+
/** Upsert a File node; returns the node id ("file:{slug}"). */
|
|
39
|
+
export async function ckgUpsertFileNode(redis, filePath) {
|
|
40
|
+
const dir = filePath.split('/')[0] ?? 'root';
|
|
41
|
+
const id = `file:${ckgSlug(filePath)}`;
|
|
42
|
+
const key = `cachly:ckg:node:${id}`;
|
|
43
|
+
const raw = await redis.get(key);
|
|
44
|
+
const node = raw
|
|
45
|
+
? JSON.parse(raw)
|
|
46
|
+
: { id, path: filePath, domain: dir, type: 'file', count: 0, ts: new Date().toISOString() };
|
|
47
|
+
node.count = (node.count || 0) + 1;
|
|
48
|
+
node.ts = new Date().toISOString();
|
|
49
|
+
await redis.set(key, JSON.stringify(node));
|
|
50
|
+
return id;
|
|
51
|
+
}
|
|
23
52
|
export async function ckgUpdateEdge(redis, from, edgeType, to, success, partial = false) {
|
|
24
53
|
const key = `cachly:ckg:edge:${from}:${edgeType}:${to}`;
|
|
25
54
|
const raw = await redis.get(key);
|
package/dist/src/ckg.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ckg.js","sourceRoot":"","sources":["../../src/ckg.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ckg.js","sourceRoot":"","sources":["../../src/ckg.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
import { execSync } from 'node:child_process';
|
|
2
2
|
import { calculateConfidence, confidenceBadge, STRUCTURED_TEMPLATES, CONFIDENCE_WARN_VALUE, CONFIDENCE_STALE_VALUE, CONFIDENCE_WARN_DAYS } from '../confidence.js';
|
|
3
|
-
import { ckgSlug, extractProblemConcept, ckgUpsertNode, ckgUpdateEdge } from '../ckg.js';
|
|
3
|
+
import { ckgSlug, extractProblemConcept, ckgUpsertNode, ckgUpdateEdge, ckgUpsertPersonNode, ckgUpsertFileNode } from '../ckg.js';
|
|
4
4
|
import { safeJsonParse } from '../utils.js';
|
|
5
5
|
import { keywordSearch, tokenize, splitMultiQuery, levenshtein, indexVocab as _indexVocab } from '../search.js';
|
|
6
6
|
import { rerankByQuality } from '../rerank.js';
|
|
7
7
|
import { computeEmbedding, hasEmbedProvider } from '../embeddings.js';
|
|
8
8
|
// ── Changelog (shown once per version in session_start) ──────────────────────
|
|
9
|
-
const MCP_VERSION = '0.10.
|
|
9
|
+
const MCP_VERSION = '0.10.59';
|
|
10
10
|
const WHATS_NEW = {
|
|
11
|
+
'0.10.59': [
|
|
12
|
+
`🆕 **Phase 3A: Org-wide knowledge graph**`,
|
|
13
|
+
` 👥 \`brain_who_knows(topic="...")\` — find your team's experts on any topic instantly`,
|
|
14
|
+
` 🕸️ Person + File nodes auto-built from \`learn_from_attempts(author="...", file_paths=[...])\``,
|
|
15
|
+
` 👤 Author attribution now shown inline in \`smart_recall\` results`,
|
|
16
|
+
` 📊 96 MCP tools · 379 tests green`,
|
|
17
|
+
],
|
|
11
18
|
'0.10.58': [
|
|
12
19
|
`🧹 Zero lint warnings — all unused imports cleaned across every handler`,
|
|
13
20
|
`✅ Build: 0 errors, 0 warnings · 379 tests green`,
|
|
@@ -48,6 +55,7 @@ const WHATS_NEW = {
|
|
|
48
55
|
export const BRAIN_TOOL_NAMES = new Set([
|
|
49
56
|
'learn_from_attempts', 'recall_best_solution', 'smart_recall',
|
|
50
57
|
'session_start', 'session_end', 'session_ping', 'session_handoff', 'auto_learn_session',
|
|
58
|
+
'brain_who_knows',
|
|
51
59
|
]);
|
|
52
60
|
export async function handleBrainTool(name, args, getConnection, apiFetch) {
|
|
53
61
|
switch (name) {
|
|
@@ -316,6 +324,22 @@ export async function handleBrainTool(name, args, getConnection, apiFetch) {
|
|
|
316
324
|
}
|
|
317
325
|
}
|
|
318
326
|
catch { /* CKG updates are non-critical */ }
|
|
327
|
+
// ── Phase 3A: People + File nodes in knowledge graph ──────────────────────
|
|
328
|
+
// Builds the "who knows what" map automatically from author + file_paths.
|
|
329
|
+
// Person → authored → Concept edges power brain_who_knows queries.
|
|
330
|
+
if (author) {
|
|
331
|
+
try {
|
|
332
|
+
const domain = topic.split(':')[0] ?? 'unknown';
|
|
333
|
+
const personId = await ckgUpsertPersonNode(redis, author, domain);
|
|
334
|
+
const conceptId = ckgSlug(topic);
|
|
335
|
+
await ckgUpdateEdge(redis, personId, 'authored', conceptId, outcome === 'success', outcome === 'partial');
|
|
336
|
+
for (const fp of file_paths.slice(0, 8)) {
|
|
337
|
+
const fileId = await ckgUpsertFileNode(redis, fp);
|
|
338
|
+
await ckgUpdateEdge(redis, personId, 'touched', fileId, true);
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
catch { /* non-critical */ }
|
|
342
|
+
}
|
|
319
343
|
// ── Ambient team propagation: if author is set + outcome is success,
|
|
320
344
|
// auto-store as a team lesson so knowledge is shared without a separate
|
|
321
345
|
// team_learn call. Tags gain 'team'; the lesson is attributed to the author.
|
|
@@ -670,13 +694,19 @@ export async function handleBrainTool(name, args, getConnection, apiFetch) {
|
|
|
670
694
|
else {
|
|
671
695
|
for (const r of hybridResults.slice(0, 8)) {
|
|
672
696
|
const label = r.key.replace('cachly:ctx:', '📝 ').replace('cachly:lesson:best:', '💡 ').replace('cachly:idx:', '📂 ');
|
|
697
|
+
let authorBadge = '';
|
|
698
|
+
if (r.key.startsWith('cachly:lesson:best:')) {
|
|
699
|
+
const ld = safeJsonParse(r.content, {});
|
|
700
|
+
if (ld.author)
|
|
701
|
+
authorBadge = ` · 👤 ${ld.author}`;
|
|
702
|
+
}
|
|
673
703
|
const scorePart = r.matchType === 'hybrid'
|
|
674
704
|
? `BM25: ${(r.bm25Score ?? 0).toFixed(2)}, sem: ${((r.semScore ?? 0) * 100).toFixed(0)}%, 🔀 hybrid`
|
|
675
705
|
: r.matchType === 'semantic'
|
|
676
706
|
? `sem: ${((r.semScore ?? 0) * 100).toFixed(0)}%, 🎯 semantic`
|
|
677
707
|
: `BM25: ${(r.bm25Score ?? 0).toFixed(2)}, matched: ${r.matchedWords?.join(', ')}`;
|
|
678
708
|
const preview = r.content.slice(0, 400).replace(/\n/g, ' ');
|
|
679
|
-
lines.push(`**${label}
|
|
709
|
+
lines.push(`**${label}**${authorBadge} _(${scorePart})_`);
|
|
680
710
|
lines.push(`> ${preview}${r.content.length > 400 ? '…' : ''}\n`);
|
|
681
711
|
}
|
|
682
712
|
}
|
|
@@ -1785,6 +1815,102 @@ export async function handleBrainTool(name, args, getConnection, apiFetch) {
|
|
|
1785
1815
|
lines.push(`**Skipped** (better lesson already exists): ${skipped.map(t => `\`${t}\``).join(', ')}`);
|
|
1786
1816
|
return lines.join('\n');
|
|
1787
1817
|
}
|
|
1818
|
+
// ── brain_who_knows ───────────────────────────────────────────────────────
|
|
1819
|
+
// Phase 3A: Org-wide people intelligence. Returns ranked list of contributors
|
|
1820
|
+
// whose authored edges in the CKG match the query topic.
|
|
1821
|
+
case 'brain_who_knows': {
|
|
1822
|
+
const { instance_id, topic, limit = 10, } = args;
|
|
1823
|
+
const redis = await getConnection(instance_id);
|
|
1824
|
+
// Step 1: Find candidate concept node IDs matching the query
|
|
1825
|
+
const querySlug = ckgSlug(topic);
|
|
1826
|
+
const qTokens = tokenize(topic).filter((t) => t.length >= 3).slice(0, 5);
|
|
1827
|
+
const candidateConceptIds = new Set([querySlug]);
|
|
1828
|
+
for (const token of qTokens.slice(0, 3)) {
|
|
1829
|
+
const nodeStream = redis.scanStream({ match: `cachly:ckg:node:*${token}*`, count: 30 });
|
|
1830
|
+
await new Promise((res, rej) => {
|
|
1831
|
+
nodeStream.on('data', (batch) => {
|
|
1832
|
+
for (const k of batch.slice(0, 10)) {
|
|
1833
|
+
const nodeId = k.replace('cachly:ckg:node:', '');
|
|
1834
|
+
if (!nodeId.startsWith('person:') && !nodeId.startsWith('file:'))
|
|
1835
|
+
candidateConceptIds.add(nodeId);
|
|
1836
|
+
}
|
|
1837
|
+
});
|
|
1838
|
+
nodeStream.on('end', res);
|
|
1839
|
+
nodeStream.on('error', rej);
|
|
1840
|
+
});
|
|
1841
|
+
}
|
|
1842
|
+
const personScores = new Map();
|
|
1843
|
+
for (const conceptId of [...candidateConceptIds].slice(0, 25)) {
|
|
1844
|
+
const inboundEdgeKeys = await redis.smembers(`cachly:ckg:idx:to:${conceptId}`);
|
|
1845
|
+
for (const ek of inboundEdgeKeys) {
|
|
1846
|
+
const er = await redis.get(ek);
|
|
1847
|
+
if (!er)
|
|
1848
|
+
continue;
|
|
1849
|
+
const edge = safeJsonParse(er, null);
|
|
1850
|
+
if (!edge || edge.edgeType !== 'authored')
|
|
1851
|
+
continue;
|
|
1852
|
+
const personNodeRaw = await redis.get(`cachly:ckg:node:${edge.from}`);
|
|
1853
|
+
if (!personNodeRaw)
|
|
1854
|
+
continue;
|
|
1855
|
+
const personNode = safeJsonParse(personNodeRaw, null);
|
|
1856
|
+
if (!personNode || personNode.type !== 'person')
|
|
1857
|
+
continue;
|
|
1858
|
+
const existing = personScores.get(edge.from);
|
|
1859
|
+
if (existing) {
|
|
1860
|
+
existing.lessonCount++;
|
|
1861
|
+
existing.totalConfidence += edge.confidence;
|
|
1862
|
+
existing.domains.add(personNode.domain);
|
|
1863
|
+
if (edge.last_updated > existing.lastActive)
|
|
1864
|
+
existing.lastActive = edge.last_updated;
|
|
1865
|
+
}
|
|
1866
|
+
else {
|
|
1867
|
+
personScores.set(edge.from, {
|
|
1868
|
+
handle: personNode.handle,
|
|
1869
|
+
lessonCount: 1,
|
|
1870
|
+
totalConfidence: edge.confidence,
|
|
1871
|
+
domains: new Set([personNode.domain]),
|
|
1872
|
+
lastActive: personNode.last_active ?? edge.last_updated,
|
|
1873
|
+
});
|
|
1874
|
+
}
|
|
1875
|
+
}
|
|
1876
|
+
}
|
|
1877
|
+
if (personScores.size === 0) {
|
|
1878
|
+
return [
|
|
1879
|
+
`## 👥 Who Knows About \`${topic}\`?`,
|
|
1880
|
+
``,
|
|
1881
|
+
`No attributed lessons found yet.`,
|
|
1882
|
+
``,
|
|
1883
|
+
`Knowledge attribution builds automatically — add \`author="name"\` to \`learn_from_attempts\` calls:`,
|
|
1884
|
+
`\`learn_from_attempts(topic="${topic}", author="your-handle", ...)\``,
|
|
1885
|
+
].join('\n');
|
|
1886
|
+
}
|
|
1887
|
+
// Step 3: Sort by expertise score (lesson count × avg confidence)
|
|
1888
|
+
const ranked = [...personScores.entries()]
|
|
1889
|
+
.map(([, s]) => ({
|
|
1890
|
+
handle: s.handle,
|
|
1891
|
+
lessonCount: s.lessonCount,
|
|
1892
|
+
avgConfidence: s.totalConfidence / s.lessonCount,
|
|
1893
|
+
domains: [...s.domains].slice(0, 3).join(', '),
|
|
1894
|
+
lastActive: s.lastActive,
|
|
1895
|
+
}))
|
|
1896
|
+
.sort((a, b) => (b.lessonCount * b.avgConfidence) - (a.lessonCount * a.avgConfidence))
|
|
1897
|
+
.slice(0, limit);
|
|
1898
|
+
const lines = [
|
|
1899
|
+
`## 👥 Who Knows About \`${topic}\`?`,
|
|
1900
|
+
``,
|
|
1901
|
+
`**${ranked.length}** contributor${ranked.length !== 1 ? 's' : ''} with relevant lessons:`,
|
|
1902
|
+
``,
|
|
1903
|
+
];
|
|
1904
|
+
for (const [i, p] of ranked.entries()) {
|
|
1905
|
+
const medal = i === 0 ? '🥇' : i === 1 ? '🥈' : i === 2 ? '🥉' : `${i + 1}.`;
|
|
1906
|
+
const conf = (p.avgConfidence * 100).toFixed(0);
|
|
1907
|
+
const daysSince = Math.floor((Date.now() - new Date(p.lastActive).getTime()) / 86400000);
|
|
1908
|
+
const recency = daysSince < 1 ? 'today' : daysSince < 7 ? `${daysSince}d ago` : daysSince < 30 ? `${Math.floor(daysSince / 7)}w ago` : `${Math.floor(daysSince / 30)}mo ago`;
|
|
1909
|
+
lines.push(`${medal} **${p.handle}** — ${p.lessonCount} lesson${p.lessonCount !== 1 ? 's' : ''} · ${conf}% confidence · last active ${recency}`, ` _domains: ${p.domains}_`, ``);
|
|
1910
|
+
}
|
|
1911
|
+
lines.push(`---`, `_Attribution grows with every \`learn_from_attempts(author="...", ...)\` call._`);
|
|
1912
|
+
return lines.join('\n');
|
|
1913
|
+
}
|
|
1788
1914
|
// ── sync_file_changes ─────────────────────────────────────────────────────
|
|
1789
1915
|
default:
|
|
1790
1916
|
return null;
|