nodebench-mcp 2.41.0 → 2.43.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.
@@ -5,6 +5,69 @@
5
5
  * These tools structure that research as a trackable process.
6
6
  */
7
7
  import { getDb, genId } from "../db.js";
8
+ import { webTools } from "./webTools.js";
9
+ /**
10
+ * Runs web_search for a target query, parses results, and logs them as
11
+ * recon findings in the given session. Best-effort: returns gracefully on
12
+ * any failure (missing API keys, network errors, etc.).
13
+ */
14
+ async function runWebEnrichment(sessionId, target, searchQuery) {
15
+ const webSearchTool = webTools.find((t) => t.name === "web_search");
16
+ if (!webSearchTool) {
17
+ return { searchResults: [], findingsLogged: 0, provider: "none", error: "web_search tool not found" };
18
+ }
19
+ const query = searchQuery ?? `${target} latest news updates 2026`;
20
+ let searchResponse;
21
+ try {
22
+ searchResponse = await webSearchTool.handler({ query, maxResults: 5, provider: "auto" });
23
+ }
24
+ catch (err) {
25
+ return {
26
+ searchResults: [],
27
+ findingsLogged: 0,
28
+ provider: "none",
29
+ error: `Web search failed: ${err.message ?? String(err)}`,
30
+ };
31
+ }
32
+ // Handle provider-not-configured or error responses
33
+ if (searchResponse?.error || searchResponse?.provider === "none") {
34
+ return {
35
+ searchResults: [],
36
+ findingsLogged: 0,
37
+ provider: searchResponse?.provider ?? "none",
38
+ error: searchResponse?.message ?? searchResponse?.setup?.message ?? "No search provider available",
39
+ };
40
+ }
41
+ const results = Array.isArray(searchResponse?.results) ? searchResponse.results : [];
42
+ if (results.length === 0) {
43
+ return {
44
+ searchResults: [],
45
+ findingsLogged: 0,
46
+ provider: searchResponse?.provider ?? "unknown",
47
+ error: "Search returned no results",
48
+ };
49
+ }
50
+ // Log each result as a recon finding
51
+ const db = getDb();
52
+ const now = new Date().toISOString();
53
+ let logged = 0;
54
+ const insertStmt = db.prepare("INSERT INTO recon_findings (id, session_id, source_url, category, summary, relevance, action_items, created_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?)");
55
+ for (const r of results) {
56
+ try {
57
+ const findingId = genId("finding");
58
+ insertStmt.run(findingId, sessionId, r.url || null, "new_feature", `[Web] ${r.title}: ${r.snippet}`.slice(0, 2000), `Live web result from ${r.source ?? "web"} search for "${target}"`, null, now);
59
+ logged++;
60
+ }
61
+ catch {
62
+ // Skip individual insert failures (e.g. constraint violations)
63
+ }
64
+ }
65
+ return {
66
+ searchResults: results,
67
+ findingsLogged: logged,
68
+ provider: searchResponse?.provider ?? "unknown",
69
+ };
70
+ }
8
71
  /** Pre-built source checklists for known ecosystems. No API keys needed. */
9
72
  const FRAMEWORK_SOURCES = {
10
73
  anthropic: [
@@ -155,11 +218,15 @@ export const reconTools = [
155
218
  },
156
219
  },
157
220
  },
221
+ webEnrich: {
222
+ type: "boolean",
223
+ description: "When true, fetch live web search results for the target and auto-log them as findings. Requires a search provider API key (GEMINI_API_KEY, OPENAI_API_KEY, or PERPLEXITY_API_KEY). Falls back gracefully if unavailable. Default: false.",
224
+ },
158
225
  },
159
226
  required: ["target"],
160
227
  },
161
228
  handler: async (args) => {
162
- const { target, description, projectContext } = args;
229
+ const { target, description, projectContext, webEnrich } = args;
163
230
  const db = getDb();
164
231
  const sessionId = genId("recon");
165
232
  const now = new Date().toISOString();
@@ -205,6 +272,21 @@ export const reconTools = [
205
272
  if (!projectContext.currentVersions)
206
273
  contextQuestions.push("What versions of relevant packages are installed?");
207
274
  }
275
+ // Optional live web enrichment
276
+ let webEnrichmentResult = null;
277
+ if (webEnrich) {
278
+ try {
279
+ webEnrichmentResult = await runWebEnrichment(sessionId, target);
280
+ }
281
+ catch (err) {
282
+ webEnrichmentResult = {
283
+ searchResults: [],
284
+ findingsLogged: 0,
285
+ provider: "none",
286
+ error: `Web enrichment failed: ${err.message ?? String(err)}`,
287
+ };
288
+ }
289
+ }
208
290
  return {
209
291
  sessionId,
210
292
  target,
@@ -221,13 +303,29 @@ export const reconTools = [
221
303
  : ["Project context provided — no additional questions."],
222
304
  projectContext: projectContext ?? null,
223
305
  },
306
+ ...(webEnrichmentResult
307
+ ? {
308
+ webEnrichment: {
309
+ provider: webEnrichmentResult.provider,
310
+ resultsFound: webEnrichmentResult.searchResults.length,
311
+ findingsAutoLogged: webEnrichmentResult.findingsLogged,
312
+ results: webEnrichmentResult.searchResults,
313
+ ...(webEnrichmentResult.error ? { note: webEnrichmentResult.error } : {}),
314
+ },
315
+ }
316
+ : {}),
224
317
  nextSteps: [
225
318
  "1. Answer any contextQuestions (gather project context)",
226
319
  "2. Use check_framework_updates for known ecosystems",
227
320
  "3. Use search_learnings to check for past findings",
228
- "4. Visit each external source",
321
+ ...(webEnrichmentResult && webEnrichmentResult.findingsLogged > 0
322
+ ? [`4. Review ${webEnrichmentResult.findingsLogged} auto-logged web findings via get_recon_summary`]
323
+ : ["4. Visit each external source"]),
229
324
  "5. Call log_recon_finding for each discovery",
230
325
  "6. Call get_recon_summary when research is complete",
326
+ ...(webEnrich && !webEnrichmentResult?.findingsLogged
327
+ ? ["Note: Web enrichment was unavailable. Use enrich_recon later to add live web data."]
328
+ : []),
231
329
  ],
232
330
  };
233
331
  },
@@ -381,6 +479,69 @@ export const reconTools = [
381
479
  };
382
480
  },
383
481
  },
482
+ {
483
+ name: "enrich_recon",
484
+ description: "Retroactively enrich an existing recon session with live web search results. Call this after run_recon when you're ready to pull in live data. Searches the web for the session's target and auto-logs findings. Requires a search provider API key (GEMINI_API_KEY, OPENAI_API_KEY, or PERPLEXITY_API_KEY). Falls back gracefully if unavailable.",
485
+ inputSchema: {
486
+ type: "object",
487
+ properties: {
488
+ sessionId: {
489
+ type: "string",
490
+ description: "Recon session ID from a previous run_recon call",
491
+ },
492
+ searchQuery: {
493
+ type: "string",
494
+ description: "Custom search query (optional). If omitted, derives a query from the session's target.",
495
+ },
496
+ },
497
+ required: ["sessionId"],
498
+ },
499
+ handler: async (args) => {
500
+ const { sessionId, searchQuery } = args;
501
+ const db = getDb();
502
+ const session = db
503
+ .prepare("SELECT * FROM recon_sessions WHERE id = ?")
504
+ .get(sessionId);
505
+ if (!session)
506
+ throw new Error(`Recon session not found: ${sessionId}`);
507
+ let enrichResult;
508
+ try {
509
+ enrichResult = await runWebEnrichment(sessionId, session.target, searchQuery);
510
+ }
511
+ catch (err) {
512
+ enrichResult = {
513
+ searchResults: [],
514
+ findingsLogged: 0,
515
+ provider: "none",
516
+ error: `Web enrichment failed: ${err.message ?? String(err)}`,
517
+ };
518
+ }
519
+ // Count total findings for the session
520
+ const totalFindings = db
521
+ .prepare("SELECT COUNT(*) as count FROM recon_findings WHERE session_id = ?")
522
+ .get(sessionId).count;
523
+ return {
524
+ sessionId,
525
+ target: session.target,
526
+ provider: enrichResult.provider,
527
+ resultsFound: enrichResult.searchResults.length,
528
+ findingsAutoLogged: enrichResult.findingsLogged,
529
+ totalSessionFindings: totalFindings,
530
+ results: enrichResult.searchResults,
531
+ ...(enrichResult.error ? { note: enrichResult.error } : {}),
532
+ nextSteps: enrichResult.findingsLogged > 0
533
+ ? [
534
+ "Call get_recon_summary to review all findings including web results",
535
+ "Call log_recon_finding to add manual findings",
536
+ ]
537
+ : [
538
+ "Web enrichment was unavailable or returned no results",
539
+ "Check that GEMINI_API_KEY, OPENAI_API_KEY, or PERPLEXITY_API_KEY is set",
540
+ "Try again later or research manually",
541
+ ],
542
+ };
543
+ },
544
+ },
384
545
  {
385
546
  name: "check_framework_updates",
386
547
  description: "Get a structured checklist of sources to check for framework/SDK updates. Pre-built source lists for: anthropic, langchain, openai, google, mcp. Each source includes what to check for. Use this to guide your reconnaissance research systematically.",
@@ -443,21 +604,21 @@ export const reconTools = [
443
604
  let learnings = [];
444
605
  try {
445
606
  learnings = db
446
- .prepare(`SELECT l.key, l.content, l.category, l.tags, l.source_cycle, l.created_at
447
- FROM learnings_fts
448
- JOIN learnings l ON l.id = learnings_fts.rowid
449
- WHERE learnings_fts MATCH ?
450
- ORDER BY rank
607
+ .prepare(`SELECT l.key, l.content, l.category, l.tags, l.source_cycle, l.created_at
608
+ FROM learnings_fts
609
+ JOIN learnings l ON l.id = learnings_fts.rowid
610
+ WHERE learnings_fts MATCH ?
611
+ ORDER BY rank
451
612
  LIMIT ?`)
452
613
  .all(query, limit);
453
614
  }
454
615
  catch {
455
616
  // FTS5 syntax error (e.g., special chars in query) — fall back to LIKE
456
617
  learnings = db
457
- .prepare(`SELECT key, content, category, tags, source_cycle, created_at
458
- FROM learnings
459
- WHERE content LIKE ? OR key LIKE ?
460
- ORDER BY created_at DESC
618
+ .prepare(`SELECT key, content, category, tags, source_cycle, created_at
619
+ FROM learnings
620
+ WHERE content LIKE ? OR key LIKE ?
621
+ ORDER BY created_at DESC
461
622
  LIMIT ?`)
462
623
  .all(`%${query}%`, `%${query}%`, limit);
463
624
  }
@@ -471,28 +632,28 @@ export const reconTools = [
471
632
  if (categories && categories.length > 0) {
472
633
  const placeholders = categories.map(() => "?").join(", ");
473
634
  reconFindings = db
474
- .prepare(`SELECT f.id, f.session_id, f.source_url, f.category, f.summary,
475
- f.relevance, f.action_items, f.created_at,
476
- s.target as session_target
477
- FROM recon_findings_fts fts
478
- JOIN recon_findings f ON f.rowid = fts.rowid
479
- JOIN recon_sessions s ON s.id = f.session_id
480
- WHERE recon_findings_fts MATCH ?
481
- AND f.category IN (${placeholders})
482
- ORDER BY rank
635
+ .prepare(`SELECT f.id, f.session_id, f.source_url, f.category, f.summary,
636
+ f.relevance, f.action_items, f.created_at,
637
+ s.target as session_target
638
+ FROM recon_findings_fts fts
639
+ JOIN recon_findings f ON f.rowid = fts.rowid
640
+ JOIN recon_sessions s ON s.id = f.session_id
641
+ WHERE recon_findings_fts MATCH ?
642
+ AND f.category IN (${placeholders})
643
+ ORDER BY rank
483
644
  LIMIT ?`)
484
645
  .all(query, ...categories, limit);
485
646
  }
486
647
  else {
487
648
  reconFindings = db
488
- .prepare(`SELECT f.id, f.session_id, f.source_url, f.category, f.summary,
489
- f.relevance, f.action_items, f.created_at,
490
- s.target as session_target
491
- FROM recon_findings_fts fts
492
- JOIN recon_findings f ON f.rowid = fts.rowid
493
- JOIN recon_sessions s ON s.id = f.session_id
494
- WHERE recon_findings_fts MATCH ?
495
- ORDER BY rank
649
+ .prepare(`SELECT f.id, f.session_id, f.source_url, f.category, f.summary,
650
+ f.relevance, f.action_items, f.created_at,
651
+ s.target as session_target
652
+ FROM recon_findings_fts fts
653
+ JOIN recon_findings f ON f.rowid = fts.rowid
654
+ JOIN recon_sessions s ON s.id = f.session_id
655
+ WHERE recon_findings_fts MATCH ?
656
+ ORDER BY rank
496
657
  LIMIT ?`)
497
658
  .all(query, limit);
498
659
  }
@@ -502,26 +663,26 @@ export const reconTools = [
502
663
  if (categories && categories.length > 0) {
503
664
  const placeholders = categories.map(() => "?").join(", ");
504
665
  reconFindings = db
505
- .prepare(`SELECT f.id, f.session_id, f.source_url, f.category, f.summary,
506
- f.relevance, f.action_items, f.created_at,
507
- s.target as session_target
508
- FROM recon_findings f
509
- JOIN recon_sessions s ON s.id = f.session_id
510
- WHERE (f.summary LIKE ? OR f.relevance LIKE ? OR f.action_items LIKE ?)
511
- AND f.category IN (${placeholders})
512
- ORDER BY f.created_at DESC
666
+ .prepare(`SELECT f.id, f.session_id, f.source_url, f.category, f.summary,
667
+ f.relevance, f.action_items, f.created_at,
668
+ s.target as session_target
669
+ FROM recon_findings f
670
+ JOIN recon_sessions s ON s.id = f.session_id
671
+ WHERE (f.summary LIKE ? OR f.relevance LIKE ? OR f.action_items LIKE ?)
672
+ AND f.category IN (${placeholders})
673
+ ORDER BY f.created_at DESC
513
674
  LIMIT ?`)
514
675
  .all(`%${query}%`, `%${query}%`, `%${query}%`, ...categories, limit);
515
676
  }
516
677
  else {
517
678
  reconFindings = db
518
- .prepare(`SELECT f.id, f.session_id, f.source_url, f.category, f.summary,
519
- f.relevance, f.action_items, f.created_at,
520
- s.target as session_target
521
- FROM recon_findings f
522
- JOIN recon_sessions s ON s.id = f.session_id
523
- WHERE f.summary LIKE ? OR f.relevance LIKE ? OR f.action_items LIKE ?
524
- ORDER BY f.created_at DESC
679
+ .prepare(`SELECT f.id, f.session_id, f.source_url, f.category, f.summary,
680
+ f.relevance, f.action_items, f.created_at,
681
+ s.target as session_target
682
+ FROM recon_findings f
683
+ JOIN recon_sessions s ON s.id = f.session_id
684
+ WHERE f.summary LIKE ? OR f.relevance LIKE ? OR f.action_items LIKE ?
685
+ ORDER BY f.created_at DESC
525
686
  LIMIT ?`)
526
687
  .all(`%${query}%`, `%${query}%`, `%${query}%`, limit);
527
688
  }
@@ -530,27 +691,27 @@ export const reconTools = [
530
691
  let matchedGaps;
531
692
  try {
532
693
  matchedGaps = db
533
- .prepare(`SELECT g.id, g.cycle_id, g.title, g.description, g.severity,
534
- g.status, g.fix_strategy as resolution, g.resolved_at,
535
- c.title as cycle_target
536
- FROM gaps_fts fts
537
- JOIN gaps g ON g.rowid = fts.rowid
538
- JOIN verification_cycles c ON c.id = g.cycle_id
539
- WHERE gaps_fts MATCH ?
540
- ORDER BY rank
694
+ .prepare(`SELECT g.id, g.cycle_id, g.title, g.description, g.severity,
695
+ g.status, g.fix_strategy as resolution, g.resolved_at,
696
+ c.title as cycle_target
697
+ FROM gaps_fts fts
698
+ JOIN gaps g ON g.rowid = fts.rowid
699
+ JOIN verification_cycles c ON c.id = g.cycle_id
700
+ WHERE gaps_fts MATCH ?
701
+ ORDER BY rank
541
702
  LIMIT ?`)
542
703
  .all(query, limit);
543
704
  }
544
705
  catch {
545
706
  // FTS5 syntax error — fall back to LIKE
546
707
  matchedGaps = db
547
- .prepare(`SELECT g.id, g.cycle_id, g.title, g.description, g.severity,
548
- g.status, g.fix_strategy as resolution, g.resolved_at,
549
- c.title as cycle_target
550
- FROM gaps g
551
- JOIN verification_cycles c ON c.id = g.cycle_id
552
- WHERE (g.description LIKE ? OR g.fix_strategy LIKE ? OR g.title LIKE ?)
553
- ORDER BY g.created_at DESC
708
+ .prepare(`SELECT g.id, g.cycle_id, g.title, g.description, g.severity,
709
+ g.status, g.fix_strategy as resolution, g.resolved_at,
710
+ c.title as cycle_target
711
+ FROM gaps g
712
+ JOIN verification_cycles c ON c.id = g.cycle_id
713
+ WHERE (g.description LIKE ? OR g.fix_strategy LIKE ? OR g.title LIKE ?)
714
+ ORDER BY g.created_at DESC
554
715
  LIMIT ?`)
555
716
  .all(`%${query}%`, `%${query}%`, `%${query}%`, limit);
556
717
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reconTools.js","sourceRoot":"","sources":["../../src/tools/reconTools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reconTools.js","sourceRoot":"","sources":["../../src/tools/reconTools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAE,KAAK,EAAc,MAAM,UAAU,CAAC;AAEpD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAWzC;;;;GAIG;AACH,KAAK,UAAU,gBAAgB,CAC7B,SAAiB,EACjB,MAAc,EACd,WAAoB;IAEpB,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;IACpE,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC;IACxG,CAAC;IAED,MAAM,KAAK,GAAG,WAAW,IAAI,GAAG,MAAM,2BAA2B,CAAC;IAElE,IAAI,cAAmB,CAAC;IACxB,IAAI,CAAC;QACH,cAAc,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3F,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO;YACL,aAAa,EAAE,EAAE;YACjB,cAAc,EAAE,CAAC;YACjB,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,sBAAsB,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE;SAC1D,CAAC;IACJ,CAAC;IAED,oDAAoD;IACpD,IAAI,cAAc,EAAE,KAAK,IAAI,cAAc,EAAE,QAAQ,KAAK,MAAM,EAAE,CAAC;QACjE,OAAO;YACL,aAAa,EAAE,EAAE;YACjB,cAAc,EAAE,CAAC;YACjB,QAAQ,EAAE,cAAc,EAAE,QAAQ,IAAI,MAAM;YAC5C,KAAK,EAAE,cAAc,EAAE,OAAO,IAAI,cAAc,EAAE,KAAK,EAAE,OAAO,IAAI,8BAA8B;SACnG,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GACX,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAEvE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,aAAa,EAAE,EAAE;YACjB,cAAc,EAAE,CAAC;YACjB,QAAQ,EAAE,cAAc,EAAE,QAAQ,IAAI,SAAS;YAC/C,KAAK,EAAE,4BAA4B;SACpC,CAAC;IACJ,CAAC;IAED,qCAAqC;IACrC,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAC3B,iJAAiJ,CAClJ,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;YACnC,UAAU,CAAC,GAAG,CACZ,SAAS,EACT,SAAS,EACT,CAAC,CAAC,GAAG,IAAI,IAAI,EACb,aAAa,EACb,SAAS,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAC/C,wBAAwB,CAAC,CAAC,MAAM,IAAI,KAAK,gBAAgB,MAAM,GAAG,EAClE,IAAI,EACJ,GAAG,CACJ,CAAC;YACF,MAAM,EAAE,CAAC;QACX,CAAC;QAAC,MAAM,CAAC;YACP,+DAA+D;QACjE,CAAC;IACH,CAAC;IAED,OAAO;QACL,aAAa,EAAE,OAAO;QACtB,cAAc,EAAE,MAAM;QACtB,QAAQ,EAAE,cAAc,EAAE,QAAQ,IAAI,SAAS;KAChD,CAAC;AACJ,CAAC;AAED,4EAA4E;AAC5E,MAAM,iBAAiB,GAGnB;IACF,SAAS,EAAE;QACT;YACE,MAAM,EAAE,gBAAgB;YACxB,GAAG,EAAE,gCAAgC;YACrC,QAAQ,EAAE,iDAAiD;SAC5D;QACD;YACE,MAAM,EAAE,sBAAsB;YAC9B,GAAG,EAAE,iDAAiD;YACtD,QAAQ,EAAE,+CAA+C;SAC1D;QACD;YACE,MAAM,EAAE,mBAAmB;YAC3B,GAAG,EAAE,uDAAuD;YAC5D,QAAQ,EAAE,4CAA4C;SACvD;QACD;YACE,MAAM,EAAE,6BAA6B;YACrC,GAAG,EAAE,iEAAiE;YACtE,QAAQ,EAAE,sDAAsD;SACjE;QACD;YACE,MAAM,EAAE,oBAAoB;YAC5B,GAAG,EAAE,kDAAkD;YACvD,QAAQ,EAAE,uDAAuD;SAClE;KACF;IACD,SAAS,EAAE;QACT;YACE,MAAM,EAAE,gBAAgB;YACxB,GAAG,EAAE,6BAA6B;YAClC,QAAQ,EAAE,2DAA2D;SACtE;QACD;YACE,MAAM,EAAE,uBAAuB;YAC/B,GAAG,EAAE,sDAAsD;YAC3D,QAAQ,EAAE,8CAA8C;SACzD;QACD;YACE,MAAM,EAAE,2BAA2B;YACnC,GAAG,EAAE,oDAAoD;YACzD,QAAQ,EAAE,8CAA8C;SACzD;QACD;YACE,MAAM,EAAE,gBAAgB;YACxB,GAAG,EAAE,mCAAmC;YACxC,QAAQ,EAAE,uDAAuD;SAClE;KACF;IACD,MAAM,EAAE;QACN;YACE,MAAM,EAAE,aAAa;YACrB,GAAG,EAAE,yBAAyB;YAC9B,QAAQ,EAAE,2CAA2C;SACtD;QACD;YACE,MAAM,EAAE,sBAAsB;YAC9B,GAAG,EAAE,4CAA4C;YACjD,QAAQ,EAAE,gDAAgD;SAC3D;QACD;YACE,MAAM,EAAE,mBAAmB;YAC3B,GAAG,EAAE,sDAAsD;YAC3D,QAAQ,EAAE,2CAA2C;SACtD;QACD;YACE,MAAM,EAAE,cAAc;YACtB,GAAG,EAAE,iCAAiC;YACtC,QAAQ,EAAE,mDAAmD;SAC9D;KACF;IACD,MAAM,EAAE;QACN;YACE,MAAM,EAAE,gBAAgB;YACxB,GAAG,EAAE,oCAAoC;YACzC,QAAQ,EAAE,mDAAmD;SAC9D;QACD;YACE,MAAM,EAAE,sBAAsB;YAC9B,GAAG,EAAE,iDAAiD;YACtD,QAAQ,EAAE,4CAA4C;SACvD;QACD;YACE,MAAM,EAAE,kBAAkB;YAC1B,GAAG,EAAE,8BAA8B;YACnC,QAAQ,EAAE,wDAAwD;SACnE;KACF;IACD,GAAG,EAAE;QACH;YACE,MAAM,EAAE,mBAAmB;YAC3B,GAAG,EAAE,uDAAuD;YAC5D,QAAQ,EAAE,uDAAuD;SAClE;QACD;YACE,MAAM,EAAE,oBAAoB;YAC5B,GAAG,EAAE,iEAAiE;YACtE,QAAQ,EAAE,8CAA8C;SACzD;QACD;YACE,MAAM,EAAE,gBAAgB;YACxB,GAAG,EAAE,6DAA6D;YAClE,QAAQ,EAAE,oCAAoC;SAC/C;QACD;YACE,MAAM,EAAE,uBAAuB;YAC/B,GAAG,EAAE,iDAAiD;YACtD,QAAQ,EAAE,+CAA+C;SAC1D;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAc;IACnC;QACE,IAAI,EAAE,WAAW;QACjB,WAAW,EACT,8TAA8T;QAChU,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,iGAAiG;iBACpG;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,kHAAkH;iBACrH;gBACD,cAAc,EAAE;oBACd,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,6EAA6E;oBAC/E,UAAU,EAAE;wBACV,SAAS,EAAE;4BACT,IAAI,EAAE,QAAQ;4BACd,WAAW,EACT,8EAA8E;yBACjF;wBACD,eAAe,EAAE;4BACf,IAAI,EAAE,QAAQ;4BACd,WAAW,EACT,yEAAyE;yBAC5E;wBACD,YAAY,EAAE;4BACZ,IAAI,EAAE,QAAQ;4BACd,WAAW,EACT,iFAAiF;yBACpF;wBACD,WAAW,EAAE;4BACX,IAAI,EAAE,QAAQ;4BACd,WAAW,EACT,8EAA8E;yBACjF;qBACF;iBACF;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,SAAS;oBACf,WAAW,EACT,0OAA0O;iBAC7O;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACtB,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;YAChE,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YACnB,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;YACjC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAErC,MAAM,eAAe,GAAG,cAAc;gBACpC,CAAC,CAAC,GAAG,WAAW,IAAI,MAAM,cAAc,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE;gBACxE,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC;YAExB,EAAE,CAAC,OAAO,CACR,wGAAwG,CACzG,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,CAAC,CAAC;YAE/C,kDAAkD;YAClD,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;YACzC,MAAM,eAAe,GAAa,EAAE,CAAC;YACrC,MAAM,cAAc,GAAa,EAAE,CAAC;YACpC,MAAM,gBAAgB,GAAa,EAAE,CAAC;YAEtC,gDAAgD;YAChD,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACrE,IACE,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC;oBAC/B,CAAC,SAAS,KAAK,WAAW,IAAI,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBAC7D,CAAC,SAAS,KAAK,KAAK;wBAClB,WAAW,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,EACjD,CAAC;oBACD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;wBACxB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;oBACjE,CAAC;gBACH,CAAC;YACH,CAAC;YAED,yCAAyC;YACzC,eAAe,CAAC,IAAI,CAClB,6DAA6D,CAC9D,CAAC;YACF,eAAe,CAAC,IAAI,CAClB,2DAA2D,CAC5D,CAAC;YAEF,0BAA0B;YAC1B,cAAc,CAAC,IAAI,CACjB,qFAAqF,CACtF,CAAC;YACF,cAAc,CAAC,IAAI,CACjB,0EAA0E,CAC3E,CAAC;YACF,cAAc,CAAC,IAAI,CACjB,uEAAuE,CACxE,CAAC;YACF,cAAc,CAAC,IAAI,CACjB,8DAA8D,CAC/D,CAAC;YACF,cAAc,CAAC,IAAI,CACjB,4DAA4D,CAC7D,CAAC;YAEF,wDAAwD;YACxD,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,gBAAgB,CAAC,IAAI,CACnB,2DAA2D,CAC5D,CAAC;gBACF,gBAAgB,CAAC,IAAI,CACnB,qDAAqD,CACtD,CAAC;gBACF,gBAAgB,CAAC,IAAI,CACnB,kFAAkF,CACnF,CAAC;gBACF,gBAAgB,CAAC,IAAI,CACnB,iEAAiE,CAClE,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,cAAc,CAAC,SAAS;oBAC3B,gBAAgB,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;gBACxD,IAAI,CAAC,cAAc,CAAC,eAAe;oBACjC,gBAAgB,CAAC,IAAI,CACnB,mDAAmD,CACpD,CAAC;YACN,CAAC;YAED,+BAA+B;YAC/B,IAAI,mBAAmB,GAA+B,IAAI,CAAC;YAC3D,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,CAAC;oBACH,mBAAmB,GAAG,MAAM,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBAClE,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAClB,mBAAmB,GAAG;wBACpB,aAAa,EAAE,EAAE;wBACjB,cAAc,EAAE,CAAC;wBACjB,QAAQ,EAAE,MAAM;wBAChB,KAAK,EAAE,0BAA0B,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE;qBAC9D,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,OAAO;gBACL,SAAS;gBACT,MAAM;gBACN,MAAM,EAAE,QAAQ;gBAChB,YAAY,EAAE;oBACZ,eAAe,EACb,eAAe,CAAC,MAAM,GAAG,CAAC;wBACxB,CAAC,CAAC,eAAe;wBACjB,CAAC,CAAC;4BACE,+GAA+G;yBAChH;oBACP,cAAc;oBACd,gBAAgB,EACd,gBAAgB,CAAC,MAAM,GAAG,CAAC;wBACzB,CAAC,CAAC,gBAAgB;wBAClB,CAAC,CAAC,CAAC,qDAAqD,CAAC;oBAC7D,cAAc,EAAE,cAAc,IAAI,IAAI;iBACvC;gBACD,GAAG,CAAC,mBAAmB;oBACrB,CAAC,CAAC;wBACE,aAAa,EAAE;4BACb,QAAQ,EAAE,mBAAmB,CAAC,QAAQ;4BACtC,YAAY,EAAE,mBAAmB,CAAC,aAAa,CAAC,MAAM;4BACtD,kBAAkB,EAAE,mBAAmB,CAAC,cAAc;4BACtD,OAAO,EAAE,mBAAmB,CAAC,aAAa;4BAC1C,GAAG,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;yBAC1E;qBACF;oBACH,CAAC,CAAC,EAAE,CAAC;gBACP,SAAS,EAAE;oBACT,yDAAyD;oBACzD,qDAAqD;oBACrD,oDAAoD;oBACpD,GAAG,CAAC,mBAAmB,IAAI,mBAAmB,CAAC,cAAc,GAAG,CAAC;wBAC/D,CAAC,CAAC,CAAC,aAAa,mBAAmB,CAAC,cAAc,iDAAiD,CAAC;wBACpG,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC;oBACtC,8CAA8C;oBAC9C,qDAAqD;oBACrD,GAAG,CAAC,SAAS,IAAI,CAAC,mBAAmB,EAAE,cAAc;wBACnD,CAAC,CAAC,CAAC,oFAAoF,CAAC;wBACxF,CAAC,CAAC,EAAE,CAAC;iBACR;aACF,CAAC;QACJ,CAAC;KACF;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EACT,+NAA+N;QACjO,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,iCAAiC;iBAC/C;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,gHAAgH;iBACnH;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE;wBACJ,iBAAiB;wBACjB,aAAa;wBACb,aAAa;wBACb,eAAe;wBACf,SAAS;wBACT,WAAW;wBACX,kBAAkB;wBAClB,yBAAyB;qBAC1B;oBACD,WAAW,EAAE,iBAAiB;iBAC/B;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,sCAAsC;iBACpD;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,+BAA+B;iBAC7C;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,6CAA6C;iBAC3D;aACF;YACD,QAAQ,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,CAAC;SAC/C;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACtB,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,GACvE,IAAI,CAAC;YACP,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,MAAM,OAAO,GAAG,EAAE;iBACf,OAAO,CAAC,2CAA2C,CAAC;iBACpD,GAAG,CAAC,SAAS,CAAQ,CAAC;YACzB,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,SAAS,EAAE,CAAC,CAAC;YAEvE,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;YACnC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAErC,EAAE,CAAC,OAAO,CACR,iJAAiJ,CAClJ,CAAC,GAAG,CACH,SAAS,EACT,SAAS,EACT,SAAS,IAAI,IAAI,EACjB,QAAQ,EACR,OAAO,EACP,SAAS,IAAI,IAAI,EACjB,WAAW,IAAI,IAAI,EACnB,GAAG,CACJ,CAAC;YAEF,wBAAwB;YACxB,MAAM,KAAK,GACT,EAAE;iBACC,OAAO,CACN,mEAAmE,CACpE;iBACA,GAAG,CAAC,SAAS,CACjB,CAAC,KAAK,CAAC;YAER,OAAO;gBACL,SAAS;gBACT,SAAS;gBACT,QAAQ;gBACR,YAAY,EAAE,KAAK;gBACnB,OAAO,EAAE,qBAAqB,KAAK,uEAAuE;aAC3G,CAAC;QACJ,CAAC;KACF;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EACT,mLAAmL;QACrL,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kBAAkB;iBAChC;gBACD,eAAe,EAAE;oBACf,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,2CAA2C;iBACzD;aACF;YACD,QAAQ,EAAE,CAAC,WAAW,CAAC;SACxB;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACtB,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;YAC5C,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,MAAM,OAAO,GAAG,EAAE;iBACf,OAAO,CAAC,2CAA2C,CAAC;iBACpD,GAAG,CAAC,SAAS,CAAQ,CAAC;YACzB,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,SAAS,EAAE,CAAC,CAAC;YAEvE,MAAM,QAAQ,GAAG,EAAE;iBAChB,OAAO,CACN,2EAA2E,CAC5E;iBACA,GAAG,CAAC,SAAS,CAAU,CAAC;YAE3B,oBAAoB;YACpB,MAAM,UAAU,GAA0B,EAAE,CAAC;YAC7C,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACzB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;oBAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;gBACzD,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;oBAC1B,SAAS,EAAE,CAAC,CAAC,EAAE;oBACf,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,SAAS,EAAE,CAAC,CAAC,UAAU;oBACvB,SAAS,EAAE,CAAC,CAAC,SAAS;oBACtB,WAAW,EAAE,CAAC,CAAC,YAAY;iBAC5B,CAAC,CAAC;YACL,CAAC;YAED,yBAAyB;YACzB,MAAM,cAAc,GAAG,QAAQ;iBAC5B,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;iBAClC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;gBAChB,MAAM,EAAE,CAAC,CAAC,YAAY;gBACtB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,MAAM,EAAE,CAAC,CAAC,UAAU;aACrB,CAAC,CAAC,CAAC;YAEN,gCAAgC;YAChC,MAAM,cAAc,GAAG;gBACrB,iBAAiB;gBACjB,aAAa;gBACb,yBAAyB;gBACzB,kBAAkB;gBAClB,aAAa;gBACb,eAAe;gBACf,SAAS;gBACT,WAAW;aACZ,CAAC;YAEF,MAAM,kBAAkB,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACtD,MAAM,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAC9C,MAAM,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAC9C,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACvD,CAAC,CAAC,CAAC;YAEH,IAAI,eAAe,EAAE,CAAC;gBACpB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBACrC,EAAE,CAAC,OAAO,CACR,+EAA+E,CAChF,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YACxB,CAAC;YAED,OAAO;gBACL,SAAS;gBACT,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM;gBACtD,aAAa,EAAE,QAAQ,CAAC,MAAM;gBAC9B,kBAAkB,EAAE,UAAU;gBAC9B,sBAAsB,EAAE,kBAAkB;gBAC1C,cAAc,EACZ,QAAQ,CAAC,MAAM,GAAG,CAAC;oBACjB,CAAC,CAAC,oJAAoJ;oBACtJ,CAAC,CAAC,+DAA+D;aACtE,CAAC;QACJ,CAAC;KACF;IACD;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EACT,oVAAoV;QACtV,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,iDAAiD;iBAC/D;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,wFAAwF;iBAC3F;aACF;YACD,QAAQ,EAAE,CAAC,WAAW,CAAC;SACxB;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACtB,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;YACxC,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,MAAM,OAAO,GAAG,EAAE;iBACf,OAAO,CAAC,2CAA2C,CAAC;iBACpD,GAAG,CAAC,SAAS,CAAQ,CAAC;YACzB,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,SAAS,EAAE,CAAC,CAAC;YAEvE,IAAI,YAAiC,CAAC;YACtC,IAAI,CAAC;gBACH,YAAY,GAAG,MAAM,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YAChF,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,YAAY,GAAG;oBACb,aAAa,EAAE,EAAE;oBACjB,cAAc,EAAE,CAAC;oBACjB,QAAQ,EAAE,MAAM;oBAChB,KAAK,EAAE,0BAA0B,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE;iBAC9D,CAAC;YACJ,CAAC;YAED,uCAAuC;YACvC,MAAM,aAAa,GACjB,EAAE;iBACC,OAAO,CACN,mEAAmE,CACpE;iBACA,GAAG,CAAC,SAAS,CACjB,CAAC,KAAK,CAAC;YAER,OAAO;gBACL,SAAS;gBACT,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,QAAQ,EAAE,YAAY,CAAC,QAAQ;gBAC/B,YAAY,EAAE,YAAY,CAAC,aAAa,CAAC,MAAM;gBAC/C,kBAAkB,EAAE,YAAY,CAAC,cAAc;gBAC/C,oBAAoB,EAAE,aAAa;gBACnC,OAAO,EAAE,YAAY,CAAC,aAAa;gBACnC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3D,SAAS,EAAE,YAAY,CAAC,cAAc,GAAG,CAAC;oBACxC,CAAC,CAAC;wBACE,qEAAqE;wBACrE,+CAA+C;qBAChD;oBACH,CAAC,CAAC;wBACE,uDAAuD;wBACvD,yEAAyE;wBACzE,sCAAsC;qBACvC;aACN,CAAC;QACJ,CAAC;KACF;IACD;QACE,IAAI,EAAE,yBAAyB;QAC/B,WAAW,EACT,yPAAyP;QAC3P,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC;oBAC3D,WAAW,EAAE,oCAAoC;iBAClD;aACF;YACD,QAAQ,EAAE,CAAC,WAAW,CAAC;SACxB;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACtB,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAClD,IAAI,CAAC,OAAO;gBACV,MAAM,IAAI,KAAK,CACb,sBAAsB,IAAI,CAAC,SAAS,YAAY,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC5F,CAAC;YAEJ,OAAO;gBACL,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,WAAW,EAAE,OAAO,CAAC,MAAM;gBAC3B,OAAO;gBACP,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;oBAChC,IAAI,EAAE,CAAC,GAAG,CAAC;oBACX,MAAM,EAAE,SAAS,CAAC,CAAC,MAAM,EAAE;oBAC3B,GAAG,EAAE,CAAC,CAAC,GAAG;oBACV,OAAO,EAAE,CAAC,CAAC,QAAQ;iBACpB,CAAC,CAAC;gBACH,KAAK,EACH,sJAAsJ;aACzJ,CAAC;QACJ,CAAC;KACF;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EACT,0UAA0U;QAC5U,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,+FAA+F;iBAClG;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,WAAW,EACT,gFAAgF;iBACnF;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,qCAAqC;iBACnD;aACF;YACD,QAAQ,EAAE,CAAC,OAAO,CAAC;SACpB;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACtB,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;YACtD,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,UAAU,IAAI,EAAE,CAAC;YAE/B,sEAAsE;YACtE,IAAI,SAAS,GAAU,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,SAAS,GAAG,EAAE;qBACX,OAAO,CACN;;;;;qBAKS,CACV;qBACA,GAAG,CAAC,KAAK,EAAE,KAAK,CAAU,CAAC;YAChC,CAAC;YAAC,MAAM,CAAC;gBACP,uEAAuE;gBACvE,SAAS,GAAG,EAAE;qBACX,OAAO,CACN;;;;qBAIS,CACV;qBACA,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,IAAI,KAAK,GAAG,EAAE,KAAK,CAAU,CAAC;YACrD,CAAC;YAED,oCAAoC;YACpC,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxC,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CACtC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAChC,CAAC;YACJ,CAAC;YAED,6EAA6E;YAC7E,IAAI,aAAoB,CAAC;YACzB,IAAI,CAAC;gBACH,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxC,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC1D,aAAa,GAAG,EAAE;yBACf,OAAO,CACN;;;;;;;sCAOwB,YAAY;;uBAE3B,CACV;yBACA,GAAG,CAAC,KAAK,EAAE,GAAG,UAAU,EAAE,KAAK,CAAU,CAAC;gBAC/C,CAAC;qBAAM,CAAC;oBACN,aAAa,GAAG,EAAE;yBACf,OAAO,CACN;;;;;;;;uBAQS,CACV;yBACA,GAAG,CAAC,KAAK,EAAE,KAAK,CAAU,CAAC;gBAChC,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,wCAAwC;gBACxC,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxC,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC1D,aAAa,GAAG,EAAE;yBACf,OAAO,CACN;;;;;;sCAMwB,YAAY;;uBAE3B,CACV;yBACA,GAAG,CACF,IAAI,KAAK,GAAG,EACZ,IAAI,KAAK,GAAG,EACZ,IAAI,KAAK,GAAG,EACZ,GAAG,UAAU,EACb,KAAK,CACG,CAAC;gBACf,CAAC;qBAAM,CAAC;oBACN,aAAa,GAAG,EAAE;yBACf,OAAO,CACN;;;;;;;uBAOS,CACV;yBACA,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,IAAI,KAAK,GAAG,EAAE,IAAI,KAAK,GAAG,EAAE,KAAK,CAAU,CAAC;gBACnE,CAAC;YACH,CAAC;YAED,iFAAiF;YACjF,IAAI,WAAkB,CAAC;YACvB,IAAI,CAAC;gBACH,WAAW,GAAG,EAAE;qBACb,OAAO,CACN;;;;;;;;qBAQS,CACV;qBACA,GAAG,CAAC,KAAK,EAAE,KAAK,CAAU,CAAC;YAChC,CAAC;YAAC,MAAM,CAAC;gBACP,wCAAwC;gBACxC,WAAW,GAAG,EAAE;qBACb,OAAO,CACN;;;;;;;qBAOS,CACV;qBACA,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,IAAI,KAAK,GAAG,EAAE,IAAI,KAAK,GAAG,EAAE,KAAK,CAAU,CAAC;YACnE,CAAC;YAED,MAAM,YAAY,GAChB,SAAS,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;YAE/D,OAAO;gBACL,KAAK;gBACL,YAAY;gBACZ,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;oBACpC,MAAM,EAAE,WAAW;oBACnB,GAAG,EAAE,CAAC,CAAC,GAAG;oBACV,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;oBACtC,SAAS,EAAE,CAAC,CAAC,UAAU;iBACxB,CAAC,CAAC;gBACH,aAAa,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;oBAC5C,MAAM,EAAE,OAAO;oBACf,aAAa,EAAE,CAAC,CAAC,cAAc;oBAC/B,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,SAAS,EAAE,CAAC,CAAC,SAAS;oBACtB,WAAW,EAAE,CAAC,CAAC,YAAY;oBAC3B,SAAS,EAAE,CAAC,CAAC,UAAU;oBACvB,SAAS,EAAE,CAAC,CAAC,UAAU;iBACxB,CAAC,CAAC;gBACH,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;oBACjC,MAAM,EAAE,cAAc;oBACtB,WAAW,EAAE,CAAC,CAAC,YAAY;oBAC3B,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,WAAW,EAAE,CAAC,CAAC,WAAW;oBAC1B,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,UAAU,EAAE,CAAC,CAAC,UAAU;oBACxB,UAAU,EAAE,CAAC,CAAC,WAAW;iBAC1B,CAAC,CAAC;gBACH,eAAe,EAAE;oBACf,WAAW,EACT,oFAAoF;oBACtF,OAAO,EAAE;wBACP,kEAAkE;wBAClE,uEAAuE;qBACxE;iBACF;aACF,CAAC;QACJ,CAAC;KACF;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EACT,yRAAyR;QAC3R,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,qDAAqD;iBACnE;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,8EAA8E;iBACjF;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,wGAAwG;iBAC3G;gBACD,aAAa,EAAE;oBACb,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,sDAAsD;iBACzD;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,wDAAwD;iBAC3D;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,gHAAgH;iBACnH;gBACD,eAAe,EAAE;oBACf,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,yFAAyF;iBAC5F;gBACD,aAAa,EAAE;oBACb,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,uHAAuH;iBAC1H;aACF;YACD,QAAQ,EAAE,CAAC,aAAa,CAAC;SAC1B;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACtB,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YACnB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CACvB,+JAA+J,CAChK,CAAC;YAEF,MAAM,MAAM,GAAuC;gBACjD,YAAY,EAAE,IAAI,CAAC,WAAW;gBAC9B,UAAU,EAAE,IAAI,CAAC,SAAS;gBAC1B,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,cAAc,EAAE,IAAI,CAAC,aAAa;gBAClC,aAAa,EAAE,IAAI,CAAC,YAAY;gBAChC,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,gBAAgB,EAAE,IAAI,CAAC,eAAe;gBACtC,cAAc,EAAE,IAAI,CAAC,aAAa;aACnC,CAAC;YAEF,MAAM,MAAM,GAA2B,EAAE,CAAC;YAC1C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;oBAC5B,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACtB,CAAC;YACH,CAAC;YAED,2BAA2B;YAC3B,MAAM,cAAc,GAClB,EAAE,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC,GAAG,EACtD,CAAC,CAAC,CAAC;YACJ,MAAM,UAAU,GACd,EAAE,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC,GAAG,EAC3D,CAAC,CAAC,CAAC;YACJ,MAAM,UAAU,GACd,EAAE,CAAC,OAAO,CAAC,+CAA+C,CAAC,CAAC,GAAG,EAChE,CAAC,CAAC,CAAC;YACJ,MAAM,QAAQ,GACZ,EAAE;iBACC,OAAO,CACN,0DAA0D,CAC3D;iBACA,GAAG,EACP,CAAC,CAAC,CAAC;YAEJ,MAAM,KAAK,GACT,cAAc,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC,CAAC;YAE/D,OAAO;gBACL,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;gBACjC,OAAO,EAAE,MAAM;gBACf,aAAa,EAAE;oBACb,SAAS,EAAE,cAAc;oBACzB,aAAa,EAAE,UAAU;oBACzB,kBAAkB,EAAE,UAAU;oBAC9B,YAAY,EAAE,QAAQ;iBACvB;gBACD,GAAG,CAAC,KAAK;oBACP,CAAC,CAAC;wBACE,WAAW,EAAE;4BACX,OAAO,EACL,yEAAyE;4BAC3E,SAAS,EAAE;gCACT,gFAAgF;gCAChF,yEAAyE;gCACzE,mFAAmF;gCACnF,6EAA6E;gCAC7E,iFAAiF;6BAClF;yBACF;qBACF;oBACH,CAAC,CAAC;wBACE,UAAU,EAAE;4BACV,OAAO,EAAE,oCAAoC,cAAc,eAAe,UAAU,oBAAoB,UAAU,6BAA6B,QAAQ,iBAAiB;4BACxK,SAAS,EAAE;gCACT,8EAA8E;gCAC9E,sDAAsD;gCACtD,2DAA2D;6BAC5D;yBACF;qBACF,CAAC;aACP,CAAC;QACJ,CAAC;KACF;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EACT,qPAAqP;QACvP,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,GAAG,EAAE;oBACH,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,6JAA6J;iBAChK;aACF;SACF;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACtB,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,sBAAsB;YACtB,IAAI,IAAW,CAAC;YAChB,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,EAAE;qBACN,OAAO,CAAC,6CAA6C,CAAC;qBACtD,GAAG,CAAC,IAAI,CAAC,GAAG,CAAU,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,EAAE;qBACN,OAAO,CAAC,4CAA4C,CAAC;qBACrD,GAAG,EAAW,CAAC;YACpB,CAAC;YAED,MAAM,OAAO,GAA2B,EAAE,CAAC;YAC3C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;YAC/B,CAAC;YAED,uBAAuB;YACvB,MAAM,cAAc,GAClB,EAAE,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC,GAAG,EACtD,CAAC,CAAC,CAAC;YACJ,MAAM,UAAU,GACd,EAAE,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC,GAAG,EAC3D,CAAC,CAAC,CAAC;YACJ,MAAM,UAAU,GACd,EAAE,CAAC,OAAO,CAAC,+CAA+C,CAAC,CAAC,GAAG,EAChE,CAAC,CAAC,CAAC;YACJ,MAAM,QAAQ,GACZ,EAAE;iBACC,OAAO,CACN,0DAA0D,CAC3D;iBACA,GAAG,EACP,CAAC,CAAC,CAAC;YACJ,MAAM,SAAS,GACb,EAAE,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC,GAAG,EACtD,CAAC,CAAC,CAAC;YAEJ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,OAAO;oBACL,OAAO,EAAE,EAAE;oBACX,aAAa,EAAE;wBACb,SAAS,EAAE,cAAc;wBACzB,aAAa,EAAE,UAAU;wBACzB,kBAAkB,EAAE,UAAU;wBAC9B,YAAY,EAAE,QAAQ;wBACtB,QAAQ,EAAE,SAAS;qBACpB;oBACD,WAAW,EAAE;wBACX,OAAO,EACL,iFAAiF;wBACnF,OAAO,EACL,uIAAuI;qBAC1I;iBACF,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,OAAO;gBACP,aAAa,EAAE;oBACb,SAAS,EAAE,cAAc;oBACzB,aAAa,EAAE,UAAU;oBACzB,kBAAkB,EAAE,UAAU;oBAC9B,YAAY,EAAE,QAAQ;oBACtB,QAAQ,EAAE,SAAS;iBACpB;gBACD,eAAe,EAAE;oBACf,WAAW,EACT,uGAAuG;oBACzG,OAAO,EAAE;wBACP,qEAAqE;wBACrE,sEAAsE;qBACvE;iBACF;aACF,CAAC;QACJ,CAAC;KACF;CACF,CAAC"}
@@ -325,6 +325,19 @@ const REGISTRY_ENTRIES = [
325
325
  },
326
326
  phase: "research",
327
327
  },
328
+ {
329
+ name: "enrich_recon",
330
+ category: "reconnaissance",
331
+ tags: ["recon", "enrich", "web", "search", "live", "data", "company", "competitor"],
332
+ quickRef: {
333
+ nextAction: "Web enrichment complete. Review auto-logged findings, then extract_variables or build_claim_graph.",
334
+ nextTools: ["extract_variables", "build_claim_graph", "get_recon_summary", "log_recon_finding"],
335
+ methodology: "reconnaissance",
336
+ tip: "Use after run_recon to add live web data. Requires GEMINI_API_KEY, OPENAI_API_KEY, or PERPLEXITY_API_KEY.",
337
+ },
338
+ phase: "research",
339
+ complexity: "medium",
340
+ },
328
341
  {
329
342
  name: "log_recon_finding",
330
343
  category: "reconnaissance",
@@ -3917,6 +3930,46 @@ const REGISTRY_ENTRIES = [
3917
3930
  phase: "research",
3918
3931
  complexity: "medium",
3919
3932
  },
3933
+ // ═══ FOUNDER LOCAL PIPELINE (end-to-end without Convex) ═══
3934
+ {
3935
+ name: "founder_local_gather",
3936
+ category: "founder",
3937
+ tags: ["founder", "local", "gather", "context", "git", "sqlite", "filesystem", "intelligence"],
3938
+ quickRef: {
3939
+ nextAction: "Context gathered from local sources. Call founder_local_synthesize to produce a packet, or review the gathered data first.",
3940
+ nextTools: ["founder_local_synthesize", "founder_local_weekly_reset"],
3941
+ methodology: "founder",
3942
+ tip: "No Convex or external APIs needed. Reads git log, CLAUDE.md, session memory, dogfood findings.",
3943
+ },
3944
+ phase: "research",
3945
+ complexity: "low",
3946
+ },
3947
+ {
3948
+ name: "founder_local_synthesize",
3949
+ category: "founder",
3950
+ tags: ["founder", "local", "synthesize", "packet", "contradiction", "signals", "memo", "intelligence"],
3951
+ quickRef: {
3952
+ nextAction: "Packet synthesized. Review contradictions and next actions. Export memo or feed into founder_packet_validate.",
3953
+ nextTools: ["founder_packet_validate", "track_milestone", "track_action"],
3954
+ methodology: "founder",
3955
+ tip: "Detects contradictions between CLAUDE.md, public surfaces, and dogfood findings automatically.",
3956
+ },
3957
+ phase: "ship",
3958
+ complexity: "medium",
3959
+ },
3960
+ {
3961
+ name: "founder_local_weekly_reset",
3962
+ category: "founder",
3963
+ tags: ["founder", "local", "weekly", "reset", "packet", "habit", "intelligence", "memo", "canonical"],
3964
+ quickRef: {
3965
+ nextAction: "Weekly reset packet generated. Share the memo, resolve top contradiction, then execute next 3 moves.",
3966
+ nextTools: ["track_action", "track_milestone", "founder_packet_validate"],
3967
+ methodology: "founder",
3968
+ tip: "One-call convenience: gather + synthesize + memo in one shot. First habit of the dogfood loop.",
3969
+ },
3970
+ phase: "ship",
3971
+ complexity: "medium",
3972
+ },
3920
3973
  // ═══ DOGFOOD JUDGE (Phase 13 — compound verification) ═══
3921
3974
  {
3922
3975
  name: "start_dogfood_session",