@monoes/monomindcli 1.10.8 → 1.10.9

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.
@@ -25,6 +25,103 @@ function _requireMonograph() {
25
25
  return null;
26
26
  }
27
27
 
28
+ // ── Monograph LLM-context helpers ──────────────────────────────────────────────
29
+ // Used by route (pre-resolve), pre-search (Grep/Glob redirect), and post-read
30
+ // (neighbor footer). All calls are best-effort; failures are silent.
31
+
32
+ function _openMonographDb() {
33
+ try {
34
+ var dbPath = path.join(CWD, '.monomind', 'monograph.db');
35
+ if (!fs.existsSync(dbPath)) return null;
36
+ var mod = _requireMonograph();
37
+ if (!mod || !mod.openDb) return null;
38
+ return mod.openDb(dbPath);
39
+ } catch (e) { return null; }
40
+ }
41
+
42
+ function getMonographSuggestions(taskText, limit) {
43
+ if (!taskText || typeof taskText !== "string") return [];
44
+ var db = _openMonographDb();
45
+ if (!db) return [];
46
+ try {
47
+ var words = String(taskText).toLowerCase().match(/[a-z][a-z0-9_-]{3,}/g) || [];
48
+ var stop = { "this":1,"that":1,"with":1,"from":1,"have":1,"into":1,"their":1,"what":1,"when":1,"where":1,"which":1,"should":1,"would":1,"could":1,"make":1,"just":1,"also":1,"them":1,"they":1,"will":1,"been":1,"were":1,"because":1,"about":1,"does":1,"work":1 };
49
+ var uniq = {};
50
+ for (var i = 0; i < words.length; i++) if (!stop[words[i]]) uniq[words[i]] = 1;
51
+ var keys = Object.keys(uniq).slice(0, 8);
52
+ if (keys.length === 0) return [];
53
+
54
+ var ftsQuery = keys.map(function(k){ return '"' + k.replace(/"/g, "") + '"'; }).join(" OR ");
55
+ var lim = Math.max(1, limit || 5);
56
+ var rows = [];
57
+ try {
58
+ rows = db.prepare(
59
+ "SELECT n.id, n.name, n.label, n.file_path AS file, " +
60
+ "(SELECT COUNT(*) FROM edges WHERE source_id=n.id OR target_id=n.id) AS deg " +
61
+ "FROM nodes_fts f JOIN nodes n ON f.rowid = n.rowid " +
62
+ "WHERE nodes_fts MATCH ? AND n.file_path IS NOT NULL AND n.file_path != '' " +
63
+ "AND n.label NOT IN ('Concept') " +
64
+ "ORDER BY deg DESC LIMIT ?"
65
+ ).all(ftsQuery, lim);
66
+ } catch (e) {
67
+ var likeFrag = keys.map(function(){ return "lower(n.name) LIKE ?"; }).join(" OR ");
68
+ var likeArgs = keys.map(function(k){ return "%" + k + "%"; });
69
+ var stmt = db.prepare(
70
+ "SELECT n.id, n.name, n.label, n.file_path AS file, " +
71
+ "(SELECT COUNT(*) FROM edges WHERE source_id=n.id OR target_id=n.id) AS deg " +
72
+ "FROM nodes n WHERE (" + likeFrag + ") AND n.file_path IS NOT NULL AND n.file_path != '' " +
73
+ "AND n.label NOT IN ('Concept') " +
74
+ "ORDER BY deg DESC LIMIT ?"
75
+ );
76
+ rows = stmt.all.apply(stmt, likeArgs.concat([lim]));
77
+ }
78
+ return rows || [];
79
+ } catch (e) { return []; }
80
+ finally { try { db.close(); } catch (_) {} }
81
+ }
82
+
83
+ function getMonographNeighbors(filePath) {
84
+ if (!filePath) return null;
85
+ var db = _openMonographDb();
86
+ if (!db) return null;
87
+ try {
88
+ var rel = filePath;
89
+ if (filePath.indexOf(CWD) === 0) rel = filePath.slice(CWD.length + 1);
90
+ var node = db.prepare(
91
+ "SELECT id, name FROM nodes WHERE label='File' AND (file_path=? OR file_path=? OR name=? OR name=?) LIMIT 1"
92
+ ).get(filePath, rel, filePath, rel);
93
+ if (!node) return null;
94
+
95
+ var imports = db.prepare(
96
+ "SELECT DISTINCT n.name FROM edges e JOIN nodes n ON e.target_id = n.id " +
97
+ "WHERE e.source_id=? AND e.relation IN ('IMPORTS','CALLS','DEPENDS_ON','CONTAINS','DEFINES') " +
98
+ "AND n.file_path IS NOT NULL AND n.file_path != '' LIMIT 6"
99
+ ).all(node.id).map(function(r){ return r.name; });
100
+ var importedBy = db.prepare(
101
+ "SELECT DISTINCT n.name FROM edges e JOIN nodes n ON e.source_id = n.id " +
102
+ "WHERE e.target_id=? AND e.relation IN ('IMPORTS','CALLS','DEPENDS_ON','CONTAINS','DEFINES') " +
103
+ "AND n.file_path IS NOT NULL AND n.file_path != '' LIMIT 6"
104
+ ).all(node.id).map(function(r){ return r.name; });
105
+
106
+ return { imports: imports, importedBy: importedBy };
107
+ } catch (e) { return null; }
108
+ finally { try { db.close(); } catch (_) {} }
109
+ }
110
+
111
+ function _recordGraphTelemetry(event) {
112
+ try {
113
+ var metricsDir = path.join(CWD, ".monomind", "metrics");
114
+ var f = path.join(metricsDir, "graph-usage.json");
115
+ fs.mkdirSync(metricsDir, { recursive: true });
116
+ var d = {};
117
+ try { d = JSON.parse(fs.readFileSync(f, "utf-8")); } catch (e) {}
118
+ if (typeof d !== "object" || d === null) d = {};
119
+ d[event] = (d[event] || 0) + 1;
120
+ d.lastUpdated = Date.now();
121
+ fs.writeFileSync(f, JSON.stringify(d));
122
+ } catch (e) { /* non-fatal */ }
123
+ }
124
+
28
125
  function safeRequire(modulePath) {
29
126
  try {
30
127
  if (fs.existsSync(modulePath)) {
@@ -691,7 +788,21 @@ const handlers = {
691
788
  } catch (e) { /* ignore */ }
692
789
  }
693
790
  if (nodeCount > 100) {
694
- console.log('\n[MONOGRAPH] ' + nodeCount + ' nodes indexed. For this task, call mcp__monomind__monograph_suggest first to find the right files without grepping.');
791
+ // Pre-resolve top-5 relevant files for the user's prompt the LLM
792
+ // sees the answer inline instead of being told to call a tool.
793
+ var suggestions = getMonographSuggestions(prompt, 5);
794
+ if (suggestions.length > 0) {
795
+ console.log('\n[MONOGRAPH] ' + nodeCount + ' nodes indexed. Top files for this task (pre-resolved from graph):');
796
+ for (var si = 0; si < suggestions.length; si++) {
797
+ var s = suggestions[si];
798
+ console.log(' · ' + s.name + ' [' + s.label + '] — ' + (s.file || '') + ' (deg ' + s.deg + ')');
799
+ }
800
+ console.log(' Use mcp__monomind__monograph_query / monograph_impact for deeper drill-down.');
801
+ _recordGraphTelemetry('preresolve_hit');
802
+ } else {
803
+ console.log('\n[MONOGRAPH] ' + nodeCount + ' nodes indexed. Call mcp__monomind__monograph_suggest first to find relevant files without grepping.');
804
+ _recordGraphTelemetry('preresolve_miss');
805
+ }
695
806
  }
696
807
  } catch(e) {}
697
808
 
@@ -788,6 +899,52 @@ const handlers = {
788
899
  console.log('[OK] Command validated');
789
900
  },
790
901
 
902
+ // Intercept Grep/Glob: run monograph_query on the same pattern first and
903
+ // surface graph hits so the LLM can read file:line directly without paying
904
+ // for a full Grep scan when the graph already knows the answer.
905
+ 'pre-search': () => {
906
+ try {
907
+ _recordGraphTelemetry(toolName === 'Grep' ? 'grep_call' : 'glob_call');
908
+ var pattern = toolInput.pattern || toolInput.path || '';
909
+ if (typeof pattern !== 'string' || pattern.length < 3) return;
910
+ var clean = pattern.replace(/[\\^$.*+?()\[\]{}|]/g, ' ').trim();
911
+ if (clean.length < 3) return;
912
+ var suggestions = getMonographSuggestions(clean, 5);
913
+ if (suggestions.length === 0) return;
914
+ console.log('[MONOGRAPH_HIT] Graph already knows ' + suggestions.length + ' file(s) matching "' + clean.slice(0, 40) + '":');
915
+ for (var i = 0; i < suggestions.length; i++) {
916
+ var s = suggestions[i];
917
+ console.log(' · ' + s.name + ' [' + s.label + '] — ' + (s.file || '') + ' (deg ' + s.deg + ')');
918
+ }
919
+ console.log(' Prefer mcp__monomind__monograph_query for symbol lookup (file:line, no scan).');
920
+ } catch (e) { /* non-fatal */ }
921
+ },
922
+
923
+ // After Read: append a graph neighbor footer so the LLM gets free
924
+ // architectural context — what imports this file and what it imports.
925
+ 'post-read': () => {
926
+ try {
927
+ var filePath = toolInput.file_path || toolInput.path || '';
928
+ if (!filePath || typeof filePath !== 'string') return;
929
+ var n = getMonographNeighbors(filePath);
930
+ if (!n) return;
931
+ var parts = [];
932
+ if (n.importedBy.length > 0) parts.push('imported-by: ' + n.importedBy.slice(0, 4).join(', '));
933
+ if (n.imports.length > 0) parts.push('imports: ' + n.imports.slice(0, 4).join(', '));
934
+ if (parts.length === 0) return;
935
+ console.log('[MONOGRAPH_NEIGHBORS] ' + parts.join(' · '));
936
+ } catch (e) { /* non-fatal */ }
937
+ },
938
+
939
+ // PostToolUse for monograph_* — increment graph usage counter for telemetry.
940
+ 'post-graph-tool': () => {
941
+ try {
942
+ if (toolName && toolName.indexOf('monograph_') !== -1) {
943
+ _recordGraphTelemetry('monograph_call');
944
+ }
945
+ } catch (e) {}
946
+ },
947
+
791
948
  'post-edit': async () => {
792
949
  if (session && session.metric) {
793
950
  try { session.metric('edits'); } catch (e) { /* no active session */ }
@@ -998,9 +1155,12 @@ const handlers = {
998
1155
  var mgNodeCount = mgDb.prepare('SELECT COUNT(*) AS c FROM nodes').get().c;
999
1156
  var mgEdgeCount = mgDb.prepare('SELECT COUNT(*) AS c FROM edges').get().c;
1000
1157
  var mgGodNodes = mgDb.prepare(
1001
- 'SELECT n.name, n.label, n.file_path, ' +
1002
- '(SELECT COUNT(*) FROM edges WHERE source_id=n.id OR target_id=n.id) AS deg ' +
1003
- 'FROM nodes n ORDER BY deg DESC LIMIT 12'
1158
+ "SELECT n.name, n.label, n.file_path, " +
1159
+ "(SELECT COUNT(*) FROM edges WHERE source_id=n.id OR target_id=n.id) AS deg " +
1160
+ "FROM nodes n " +
1161
+ "WHERE n.label NOT IN ('Concept') " +
1162
+ "AND n.file_path IS NOT NULL AND n.file_path != '' " +
1163
+ "ORDER BY deg DESC LIMIT 12"
1004
1164
  ).all();
1005
1165
  if (mgGodNodes.length > 0) {
1006
1166
  var mgGodStr = mgGodNodes.slice(0, 8).map(function(n) {
@@ -696,6 +696,24 @@ function getGraphifyStats() {
696
696
  return { nodes: 0, edges: 0, exists: false };
697
697
  }
698
698
 
699
+ // Graph usage telemetry — ratio of monograph_* tool calls vs Grep/Glob
700
+ function getGraphUsage() {
701
+ const usagePath = path.join(CWD, '.monomind', 'metrics', 'graph-usage.json');
702
+ try {
703
+ if (!fs.existsSync(usagePath)) return null;
704
+ const d = JSON.parse(fs.readFileSync(usagePath, 'utf-8'));
705
+ const monograph = d.monograph_call || 0;
706
+ const search = (d.grep_call || 0) + (d.glob_call || 0);
707
+ const total = monograph + search;
708
+ if (total === 0) return null;
709
+ return {
710
+ monograph,
711
+ search,
712
+ pct: Math.round((monograph / total) * 100),
713
+ };
714
+ } catch { return null; }
715
+ }
716
+
699
717
  // Graph freshness — compare graph build time against most recent commit
700
718
  // Returns: { commitsBehind, stale } where stale = >5 commits or never built
701
719
  function getGraphFreshness() {
@@ -1239,7 +1257,15 @@ function generateDashboard() {
1239
1257
  loopStr = `${x.slate}🔄 no active loops${x.reset}`;
1240
1258
  }
1241
1259
 
1242
- lines.push(`${x.purple}🤖 AGENT${x.reset} ${agentStr} ${DIV} ${loopStr}`);
1260
+ // Graph usage ratio — show only when there's data
1261
+ const usage = getGraphUsage();
1262
+ let usageStr = '';
1263
+ if (usage) {
1264
+ const col = usage.pct >= 40 ? x.green : usage.pct >= 15 ? x.gold : x.coral;
1265
+ usageStr = ` ${DIV} ${col}📊 graph ${usage.pct}%${x.reset}${x.slate} · grep ${100 - usage.pct}%${x.reset}`;
1266
+ }
1267
+
1268
+ lines.push(`${x.purple}🤖 AGENT${x.reset} ${agentStr} ${DIV} ${loopStr}${usageStr}`);
1243
1269
  lines.push(SEP);
1244
1270
 
1245
1271
  // ── Row 2: Graph freshness + Pending HIL ─────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"settings-generator.d.ts","sourceRoot":"","sources":["../../../src/init/settings-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAA6B,MAAM,YAAY,CAAC;AAGzE;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAmJ7D;AA+RD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAGjE"}
1
+ {"version":3,"file":"settings-generator.d.ts","sourceRoot":"","sources":["../../../src/init/settings-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAA6B,MAAM,YAAY,CAAC;AAGzE;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAmJ7D;AAgUD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAGjE"}
@@ -233,6 +233,17 @@ function generateHooksConfig(config, graphify = true) {
233
233
  },
234
234
  ],
235
235
  },
236
+ // Grep/Glob → monograph_query intercept (saves tokens vs full scan)
237
+ {
238
+ matcher: 'Grep|Glob',
239
+ hooks: [
240
+ {
241
+ type: 'command',
242
+ command: hookHandlerCmd('pre-search'),
243
+ timeout: 4000,
244
+ },
245
+ ],
246
+ },
236
247
  ];
237
248
  }
238
249
  // PostToolUse — record edits and commands for session metrics / learning
@@ -258,6 +269,28 @@ function generateHooksConfig(config, graphify = true) {
258
269
  },
259
270
  ],
260
271
  },
272
+ // Read → graph neighbor footer
273
+ {
274
+ matcher: 'Read',
275
+ hooks: [
276
+ {
277
+ type: 'command',
278
+ command: hookHandlerCmd('post-read'),
279
+ timeout: 4000,
280
+ },
281
+ ],
282
+ },
283
+ // monograph_* tool calls → telemetry counter
284
+ {
285
+ matcher: 'mcp__monomind__monograph_.*',
286
+ hooks: [
287
+ {
288
+ type: 'command',
289
+ command: hookHandlerCmd('post-graph-tool'),
290
+ timeout: 2000,
291
+ },
292
+ ],
293
+ },
261
294
  ];
262
295
  }
263
296
  // UserPromptSubmit — intelligent task routing
@@ -1 +1 @@
1
- {"version":3,"file":"settings-generator.js","sourceRoot":"","sources":["../../../src/init/settings-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings-generator.js","sourceRoot":"","sources":["../../../src/init/settings-generator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"statusline-generator.d.ts","sourceRoot":"","sources":["../../../src/init/statusline-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAonCrE;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CA8BnE"}
1
+ {"version":3,"file":"statusline-generator.d.ts","sourceRoot":"","sources":["../../../src/init/statusline-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CA0oCrE;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CA8BnE"}
@@ -828,6 +828,20 @@ function getTriggerStats() {
828
828
  } catch { return { triggers: 0, agents: 0 }; }
829
829
  }
830
830
 
831
+ // Graph usage telemetry — ratio of monograph_* tool calls vs Grep/Glob
832
+ function getGraphUsage() {
833
+ const usagePath = path.join(CWD, '.monomind', 'metrics', 'graph-usage.json');
834
+ try {
835
+ if (!fs.existsSync(usagePath)) return null;
836
+ const d = JSON.parse(fs.readFileSync(usagePath, 'utf-8'));
837
+ const monograph = d.monograph_call || 0;
838
+ const search = (d.grep_call || 0) + (d.glob_call || 0);
839
+ const total = monograph + search;
840
+ if (total === 0) return null;
841
+ return { monograph: monograph, search: search, pct: Math.round((monograph / total) * 100) };
842
+ } catch { return null; }
843
+ }
844
+
831
845
  // Graph freshness — compare last build time vs commits since
832
846
  function getGraphFreshness() {
833
847
  const lockPath = path.join(CWD, '.monomind', 'graph', '.rebuild-lock');
@@ -1070,7 +1084,15 @@ function generateDashboard() {
1070
1084
  loopStr = \`\${x.slate}🔄 no active loops\${x.reset}\`;
1071
1085
  }
1072
1086
 
1073
- lines.push(\`\${x.purple}🤖 AGENT\${x.reset} \${agentStr} \${DIV} \${loopStr}\`);
1087
+ // Graph usage ratio — show only when there's data
1088
+ const usage = getGraphUsage();
1089
+ let usageStr = '';
1090
+ if (usage) {
1091
+ const col = usage.pct >= 40 ? x.green : usage.pct >= 15 ? x.gold : x.coral;
1092
+ usageStr = \` \${DIV} \${col}📊 graph \${usage.pct}%\${x.reset}\${x.slate} · grep \${100 - usage.pct}%\${x.reset}\`;
1093
+ }
1094
+
1095
+ lines.push(\`\${x.purple}🤖 AGENT\${x.reset} \${agentStr} \${DIV} \${loopStr}\${usageStr}\`);
1074
1096
  lines.push(SEP);
1075
1097
 
1076
1098
  // ── Row 2: Graph freshness + Pending HIL ─────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"statusline-generator.js","sourceRoot":"","sources":["../../../src/init/statusline-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH;;;;;;;;;GASG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAoB;IAC3D,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;IAC5C,OAAO;;;;;;;;;;;;;;;;;;;;;;;eAuBM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0lCvB,CAAC;AACF,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAoB;IACzD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAChC,OAAO,sCAAsC,CAAC;IAChD,CAAC;IAED,OAAO;;;;;;;;;;;;;;;;;;;;;;;;CAwBR,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"statusline-generator.js","sourceRoot":"","sources":["../../../src/init/statusline-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH;;;;;;;;;GASG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAoB;IAC3D,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;IAC5C,OAAO;;;;;;;;;;;;;;;;;;;;;;;eAuBM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgnCvB,CAAC;AACF,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAoB;IACzD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAChC,OAAO,sCAAsC,CAAC;IAChD,CAAC;IAED,OAAO;;;;;;;;;;;;;;;;;;;;;;;;CAwBR,CAAC;AACF,CAAC"}