fodda-mcp 1.32.1 → 1.46.31

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.
Files changed (186) hide show
  1. package/README.md +14 -16
  2. package/dist/a2aHandler.d.ts +33 -3
  3. package/dist/a2aHandler.d.ts.map +1 -1
  4. package/dist/a2aHandler.js +189 -36
  5. package/dist/a2aHandler.js.map +1 -1
  6. package/dist/agentFacts.d.ts +21 -0
  7. package/dist/agentFacts.d.ts.map +1 -0
  8. package/dist/agentFacts.js +72 -0
  9. package/dist/agentFacts.js.map +1 -0
  10. package/dist/agents/fodda-researcher/index.d.ts +6 -0
  11. package/dist/agents/fodda-researcher/index.d.ts.map +1 -1
  12. package/dist/agents/fodda-researcher/index.js +18 -0
  13. package/dist/agents/fodda-researcher/index.js.map +1 -1
  14. package/dist/agents/fodda-researcher/skills.d.ts +1 -1
  15. package/dist/agents/fodda-researcher/skills.d.ts.map +1 -1
  16. package/dist/agents/fodda-researcher/skills.js +8 -3
  17. package/dist/agents/fodda-researcher/skills.js.map +1 -1
  18. package/dist/brandTemplate.d.ts +1 -1
  19. package/dist/brandTemplate.d.ts.map +1 -1
  20. package/dist/brandTemplate.js +179 -11
  21. package/dist/brandTemplate.js.map +1 -1
  22. package/dist/catalogCache.d.ts +14 -13
  23. package/dist/catalogCache.d.ts.map +1 -1
  24. package/dist/catalogCache.js +266 -67
  25. package/dist/catalogCache.js.map +1 -1
  26. package/dist/coverageRelevance.d.ts +156 -0
  27. package/dist/coverageRelevance.d.ts.map +1 -0
  28. package/dist/coverageRelevance.js +1062 -0
  29. package/dist/coverageRelevance.js.map +1 -0
  30. package/dist/deepResearch.d.ts +43 -0
  31. package/dist/deepResearch.d.ts.map +1 -0
  32. package/dist/deepResearch.js +498 -0
  33. package/dist/deepResearch.js.map +1 -0
  34. package/dist/enrichment.d.ts.map +1 -1
  35. package/dist/enrichment.js +51 -1
  36. package/dist/enrichment.js.map +1 -1
  37. package/dist/errorHandling.d.ts +1 -1
  38. package/dist/errorHandling.d.ts.map +1 -1
  39. package/dist/errorHandling.js +26 -6
  40. package/dist/errorHandling.js.map +1 -1
  41. package/dist/index.d.ts +9 -0
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +548 -38
  44. package/dist/index.js.map +1 -1
  45. package/dist/linkedinEngine.d.ts +150 -0
  46. package/dist/linkedinEngine.d.ts.map +1 -0
  47. package/dist/linkedinEngine.js +696 -0
  48. package/dist/linkedinEngine.js.map +1 -0
  49. package/dist/oauthRegisterShim.d.ts +13 -0
  50. package/dist/oauthRegisterShim.d.ts.map +1 -0
  51. package/dist/oauthRegisterShim.js +83 -0
  52. package/dist/oauthRegisterShim.js.map +1 -0
  53. package/dist/pricingCache.d.ts +6 -8
  54. package/dist/pricingCache.d.ts.map +1 -1
  55. package/dist/pricingCache.js +69 -13
  56. package/dist/pricingCache.js.map +1 -1
  57. package/dist/queryCache.d.ts +2 -0
  58. package/dist/queryCache.d.ts.map +1 -1
  59. package/dist/queryCache.js +11 -2
  60. package/dist/queryCache.js.map +1 -1
  61. package/dist/resources.d.ts +27 -0
  62. package/dist/resources.d.ts.map +1 -0
  63. package/dist/resources.js +126 -0
  64. package/dist/resources.js.map +1 -0
  65. package/dist/sessionTracker.d.ts +24 -2
  66. package/dist/sessionTracker.d.ts.map +1 -1
  67. package/dist/sessionTracker.js +198 -4
  68. package/dist/sessionTracker.js.map +1 -1
  69. package/dist/systemPrompt.d.ts +3 -3
  70. package/dist/systemPrompt.d.ts.map +1 -1
  71. package/dist/systemPrompt.js +81 -61
  72. package/dist/systemPrompt.js.map +1 -1
  73. package/dist/telemetry.d.ts +43 -0
  74. package/dist/telemetry.d.ts.map +1 -0
  75. package/dist/telemetry.js +101 -0
  76. package/dist/telemetry.js.map +1 -0
  77. package/dist/test_analyst.js +2 -2
  78. package/dist/test_analyst.js.map +1 -1
  79. package/dist/test_book_a_call_live.d.ts +2 -0
  80. package/dist/test_book_a_call_live.d.ts.map +1 -0
  81. package/dist/test_book_a_call_live.js +148 -0
  82. package/dist/test_book_a_call_live.js.map +1 -0
  83. package/dist/test_brand_intelligence_endpoint.d.ts +2 -0
  84. package/dist/test_brand_intelligence_endpoint.d.ts.map +1 -0
  85. package/dist/test_brand_intelligence_endpoint.js +20 -0
  86. package/dist/test_brand_intelligence_endpoint.js.map +1 -0
  87. package/dist/test_coverage_relevance.d.ts +12 -0
  88. package/dist/test_coverage_relevance.d.ts.map +1 -0
  89. package/dist/test_coverage_relevance.js +121 -0
  90. package/dist/test_coverage_relevance.js.map +1 -0
  91. package/dist/test_dcr_and_legacy_deprecation.d.ts +2 -0
  92. package/dist/test_dcr_and_legacy_deprecation.d.ts.map +1 -0
  93. package/dist/test_dcr_and_legacy_deprecation.js +148 -0
  94. package/dist/test_dcr_and_legacy_deprecation.js.map +1 -0
  95. package/dist/test_financial_snapshot_render.d.ts +2 -0
  96. package/dist/test_financial_snapshot_render.d.ts.map +1 -0
  97. package/dist/test_financial_snapshot_render.js +167 -0
  98. package/dist/test_financial_snapshot_render.js.map +1 -0
  99. package/dist/test_gap_alert.d.ts +12 -0
  100. package/dist/test_gap_alert.d.ts.map +1 -0
  101. package/dist/test_gap_alert.js +43 -0
  102. package/dist/test_gap_alert.js.map +1 -0
  103. package/dist/test_list_graphs_topics.d.ts +2 -0
  104. package/dist/test_list_graphs_topics.d.ts.map +1 -0
  105. package/dist/test_list_graphs_topics.js +26 -0
  106. package/dist/test_list_graphs_topics.js.map +1 -0
  107. package/dist/test_live_endpoint_runner.d.ts +2 -0
  108. package/dist/test_live_endpoint_runner.d.ts.map +1 -0
  109. package/dist/test_live_endpoint_runner.js +65 -0
  110. package/dist/test_live_endpoint_runner.js.map +1 -0
  111. package/dist/test_local_list_graphs.d.ts +2 -0
  112. package/dist/test_local_list_graphs.d.ts.map +1 -0
  113. package/dist/test_local_list_graphs.js +53 -0
  114. package/dist/test_local_list_graphs.js.map +1 -0
  115. package/dist/test_next_moves.d.ts +2 -0
  116. package/dist/test_next_moves.d.ts.map +1 -0
  117. package/dist/test_next_moves.js +349 -0
  118. package/dist/test_next_moves.js.map +1 -0
  119. package/dist/test_next_moves_transcripts.d.ts +2 -0
  120. package/dist/test_next_moves_transcripts.d.ts.map +1 -0
  121. package/dist/test_next_moves_transcripts.js +413 -0
  122. package/dist/test_next_moves_transcripts.js.map +1 -0
  123. package/dist/test_nike_cmo_alias.d.ts +2 -0
  124. package/dist/test_nike_cmo_alias.d.ts.map +1 -0
  125. package/dist/test_nike_cmo_alias.js +76 -0
  126. package/dist/test_nike_cmo_alias.js.map +1 -0
  127. package/dist/test_session_next_moves_telemetry.d.ts +2 -0
  128. package/dist/test_session_next_moves_telemetry.d.ts.map +1 -0
  129. package/dist/test_session_next_moves_telemetry.js +100 -0
  130. package/dist/test_session_next_moves_telemetry.js.map +1 -0
  131. package/dist/test_token_resolution.d.ts +2 -0
  132. package/dist/test_token_resolution.d.ts.map +1 -0
  133. package/dist/test_token_resolution.js +82 -0
  134. package/dist/test_token_resolution.js.map +1 -0
  135. package/dist/toolHandlers.d.ts +7 -3
  136. package/dist/toolHandlers.d.ts.map +1 -1
  137. package/dist/toolHandlers.js +1678 -364
  138. package/dist/toolHandlers.js.map +1 -1
  139. package/dist/tools.d.ts +7 -2
  140. package/dist/tools.d.ts.map +1 -1
  141. package/dist/tools.js +12 -3
  142. package/dist/tools.js.map +1 -1
  143. package/dist/types.d.ts +9 -46
  144. package/dist/types.d.ts.map +1 -1
  145. package/dist/types.js +6 -0
  146. package/dist/types.js.map +1 -1
  147. package/dist/verify_tools_endpoint.js +4 -3
  148. package/dist/verify_tools_endpoint.js.map +1 -1
  149. package/package.json +5 -2
  150. package/server.json +16 -3
  151. package/dist/scripts/simulate_gemini.d.ts +0 -2
  152. package/dist/scripts/simulate_gemini.d.ts.map +0 -1
  153. package/dist/scripts/simulate_gemini.js +0 -100
  154. package/dist/scripts/simulate_gemini.js.map +0 -1
  155. package/dist/scripts/verify_registry.d.ts +0 -2
  156. package/dist/scripts/verify_registry.d.ts.map +0 -1
  157. package/dist/scripts/verify_registry.js +0 -77
  158. package/dist/scripts/verify_registry.js.map +0 -1
  159. package/dist/src/index.d.ts +0 -2
  160. package/dist/src/index.d.ts.map +0 -1
  161. package/dist/src/index.js +0 -332
  162. package/dist/src/index.js.map +0 -1
  163. package/dist/src/tools.d.ts +0 -12
  164. package/dist/src/tools.d.ts.map +0 -1
  165. package/dist/src/tools.js +0 -104
  166. package/dist/src/tools.js.map +0 -1
  167. package/dist/src/types.d.ts +0 -44
  168. package/dist/src/types.d.ts.map +0 -1
  169. package/dist/src/types.js +0 -2
  170. package/dist/src/types.js.map +0 -1
  171. package/dist/src/verify.d.ts +0 -2
  172. package/dist/src/verify.d.ts.map +0 -1
  173. package/dist/src/verify.js +0 -47
  174. package/dist/src/verify.js.map +0 -1
  175. package/dist/src/verify_hmac.d.ts +0 -2
  176. package/dist/src/verify_hmac.d.ts.map +0 -1
  177. package/dist/src/verify_hmac.js +0 -106
  178. package/dist/src/verify_hmac.js.map +0 -1
  179. package/dist/src/verify_tools_endpoint.d.ts +0 -2
  180. package/dist/src/verify_tools_endpoint.d.ts.map +0 -1
  181. package/dist/src/verify_tools_endpoint.js +0 -40
  182. package/dist/src/verify_tools_endpoint.js.map +0 -1
  183. package/dist/test-waverunner-response.d.ts +0 -2
  184. package/dist/test-waverunner-response.d.ts.map +0 -1
  185. package/dist/test-waverunner-response.js +0 -20
  186. package/dist/test-waverunner-response.js.map +0 -1
@@ -24,6 +24,7 @@ editorial-quality intelligence reports by combining curated knowledge graph data
24
24
  with web research.
25
25
 
26
26
  Your research query is: "${query}"
27
+ ${context?.subThemesUsed && context.subThemesUsed.length > 0 ? `\nResearch sub-themes to address (you MUST address ALL of these):\n${context.subThemesUsed.map((s, i) => `${i + 1}. ${s}`).join('\n')}` : ''}
27
28
  ${context?.focusGraphId ? `\nFocus graph: ${context.focusGraphId}` : 'Search all accessible knowledge graphs.'}
28
29
 
29
30
  Follow the skills below precisely. They encode Fodda's research methodology,
@@ -75,6 +76,23 @@ data…").
75
76
 
76
77
  ## Earnings Data
77
78
  ${context.earningsResults}`);
79
+ }
80
+ // ── Pre-fetched supplemental / macro data ──
81
+ if (context?.supplementalResults) {
82
+ sections.push('---');
83
+ sections.push(`# Pre-Loaded Supplemental / Macro Data
84
+
85
+ The following macro-economic, demographic, or institutional data was pre-fetched
86
+ because the source router detected supplemental categories relevant to the query.
87
+ Treat it as primary source material alongside graph and earnings data.
88
+
89
+ Attribution rule: cite by institutional source — e.g. "per FRED consumer
90
+ confidence data…", "per Census Bureau retail figures…", "per BLS employment
91
+ data…", "per OECD economic outlook…". Never attribute institutional data to a
92
+ knowledge graph or generic web search.
93
+
94
+ ## Supplemental Data
95
+ ${context.supplementalResults}`);
78
96
  }
79
97
  return sections.join('\n\n');
80
98
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agents/fodda-researcher/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACH,0BAA0B,EAC1B,yBAAyB,EACzB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,GACvB,MAAM,aAAa,CAAC;AAsBrB;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CACtC,KAAa,EACb,OAAsB;IAEtB,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,yBAAyB;IACzB,QAAQ,CAAC,IAAI,CAAC;;;;2BAIS,KAAK;EAC9B,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,kBAAkB,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,yCAAyC;;;;;;IAM1G,CAAC,CAAC;IAEF,eAAe;IACf,QAAQ,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAC1C,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,QAAQ,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACzC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACnC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACrC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAEpC,kCAAkC;IAClC,IAAI,OAAO,EAAE,YAAY,EAAE,CAAC;QACxB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC;;;;;;mBAMH,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS;sBAC5C,OAAO,CAAC,WAAW,IAAI,SAAS;yBAC7B,OAAO,CAAC,aAAa,IAAI,SAAS;;;EAGzD,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IACtB,CAAC;IAED,+CAA+C;IAC/C,IAAI,OAAO,EAAE,eAAe,EAAE,CAAC;QAC3B,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC;;;;;;;;;;;;;;EAcpB,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agents/fodda-researcher/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACH,0BAA0B,EAC1B,yBAAyB,EACzB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,GACvB,MAAM,aAAa,CAAC;AA4BrB;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CACtC,KAAa,EACb,OAAsB;IAEtB,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,yBAAyB;IACzB,QAAQ,CAAC,IAAI,CAAC;;;;2BAIS,KAAK;EAC9B,OAAO,EAAE,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,sEAAsE,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;EAC1M,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,kBAAkB,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,yCAAyC;;;;;;IAM1G,CAAC,CAAC;IAEF,eAAe;IACf,QAAQ,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAC1C,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,QAAQ,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACzC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACnC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACrC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAEpC,kCAAkC;IAClC,IAAI,OAAO,EAAE,YAAY,EAAE,CAAC;QACxB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC;;;;;;mBAMH,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS;sBAC5C,OAAO,CAAC,WAAW,IAAI,SAAS;yBAC7B,OAAO,CAAC,aAAa,IAAI,SAAS;;;EAGzD,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IACtB,CAAC;IAED,+CAA+C;IAC/C,IAAI,OAAO,EAAE,eAAe,EAAE,CAAC;QAC3B,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC;;;;;;;;;;;;;;EAcpB,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IACzB,CAAC;IAED,8CAA8C;IAC9C,IAAI,OAAO,EAAE,mBAAmB,EAAE,CAAC;QAC/B,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC;;;;;;;;;;;;EAYpB,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC"}
@@ -12,5 +12,5 @@ export declare const SKILL_RESEARCH_METHODOLOGY = "---\nid: FODDA-SKILL-METHODOL
12
12
  export declare const SKILL_EVIDENCE_CATEGORIES = "---\nid: FODDA-SKILL-EVIDENCE-001\ntitle: Fodda Evidence Categories Skill\nversion: 2.0.0\ncompliance: RFC-2119\n---\n\n### TOKEN: EvidenceCategories\n\n| Category | What it covers | When to use |\n|----------|---------------|-------------|\n| Case Study | Innovation, strategic moves, novel approaches | Must demonstrate innovation or strategic intent \u2014 NOT routine news |\n| Statistic | Quantitative data \u2014 market sizes, growth rates, survey results | Numbers with clear methodology |\n| Data Point | Factual brand/industry news without innovation | Routine business activity, personnel changes, earnings, regulatory |\n| Analysis | Expert interpretation, industry reports, competitive assessments | Qualitative expert judgment |\n| Interview | Direct quotes from practitioners, executives, researchers | Verbatim attributed speech |\n\n### RULE: EvidenceClassification\n- Case Study REQUIRES demonstrated innovation or strategic intent.\n- Routine brand news (store openings, executive hires) MUST map to Data Point.\n- If an article contains both a stat and analysis, classify by PRIMARY value.\n- \"Report\" MUST map to Analysis.\n- The agent MUST NOT invent a 6th category; all evidence must fit into these 5.\n- A finding MAY cite multiple evidence pieces of different types.\n";
13
13
  export declare const SKILL_OUTPUT_FORMAT = "---\nid: FODDA-SKILL-OUTPUT-001\ntitle: Fodda Output Format Skill\nversion: 2.0.0\ncompliance: RFC-2119\n---\n\n### RECORD: ResearchReport\n- executive_summary: String \u2014 2-3 sentences. The single most important finding, stated as a provocative editorial claim.\n- thematic_sections: List[ThematicSection] \u2014 3-5 thematic narrative sections.\n- strategic_agenda: List[Implication] \u2014 2-3 concrete moves.\n- source_landscape: List[SourceLink] \u2014 bulleted list of all source URLs referenced.\n\n### RULE: OutputFormat\n- Thematic sections MUST:\n - Open with a declarative statement.\n - Use flowing paragraphs with embedded data points (no bullet lists).\n - Weave in source citations inline: \"Sephora's AI Color Match drove a 28% conversion lift (PSFK Retail Graph)\".\n - Close with a practical implication: what this means for the practitioner.\n- Tone MUST read like a senior strategist briefing a CMO, not a consultant deck. Strongest findings first.\n- The agent MUST NOT use italicized terms followed by parenthetical attribution for trends. Instead, weave attribution into the narrative sentence as the subject (e.g. \"One trend, [Trend Name] from [Graph/Expert], highlights how...\").\n- Ground every trend in a named example ONLY IF one is provided in the graph evidence. Do NOT hunt via Google Search for missing examples.\n- If a trend lacks recent statistics, the agent SHOULD use the google_search tool to find recent (2025-2026) statistics.\n- Prefer Fodda graph stats over web stats. Cite Fodda stats as: \"According to research tracked in the [Graph/Expert Name] graph...\".\n";
14
14
  export declare const SKILL_GRAPH_AWARENESS = "---\nid: FODDA-SKILL-AWARENESS-001\ntitle: Fodda Graph Awareness Skill\nversion: 2.0.0\ncompliance: RFC-2119\n---\n\n### RULE: GraphAwareness\n- Each graph is a curated knowledge graph representing an editorial viewpoint with evidence, not a generic database.\n- Multi-graph convergence (same theme in 2+ graphs) indicates a high-confidence finding.\n- Contradicting graphs MUST be noted explicitly as a tension.\n- Match expert graph terminology on concepts, not labels.\n- Industry report graphs are deep but narrow; excellent for specific verticals.\n\n### TOKEN: GraphTypes\n- PSFK curated graphs: retail, beauty, fashion, sports, sic, ce-design, pew.\n- Expert graphs: individual specialist perspectives (e.g., ezra-eeman-wayfinder, alyson-stevens-macro).\n- Industry report graphs: single-report deep dives (e.g., pwc/sxsw-2026-key-insights, delta/the-connection-index).\n\n### RULE: GraphAttribution\n- The agent MUST NEVER say \"the Fodda graph\" or \"according to Fodda\". Fodda is the platform; graphs are created by named experts.\n- Format: \"According to PSFK's Retail Graph...\" or \"Ezra Eeman's Wayfinder Graph identifies...\".\n- Include graph_id for programmatic reference.\n";
15
- export declare const SKILL_SOURCE_QUALITY = "---\nid: FODDA-SKILL-QUALITY-001\ntitle: Fodda Source Quality Skill\nversion: 2.0.0\ncompliance: RFC-2119\n---\n\n### TOKEN: SourceCredibilityTiers\n- Tier 5 (Primary Research): Earnings reports, PubMed, OECD, Census, BLS, government filings.\n- Tier 4 (Expert Analysis): PSFK original research, McKinsey, Deloitte, named expert graphs.\n- Tier 3 (Quality Journalism): Financial Times, Bloomberg, Business of Fashion, Wired.\n- Tier 2 (Industry Sources): Trade publications, brand press releases, industry blogs.\n- Tier 1 (Unverified): Social media posts, individual opinions, unattributed claims.\n\n### RULE: SourcePreferenceHierarchy\n- The agent MUST follow this preference order:\n 1. Fodda knowledge graph evidence (pre-vetted, always prefer).\n 2. Supplemental structured data (BLS, Census, Google Trends, OECD).\n 3. Google Search results (web-sourced context for themes not covered).\n 4. URL-fetched primary sources (for deep verification).\n\n### RULE: SourceQualityGate\n- At least 60% of cited evidence SHOULD be tier 3 or above.\n- The agent MUST NOT present a tier 1-2 source without qualification (\"industry reports suggest...\").\n- Acknowledge explicitly if a finding relies on a single source.\n- Recency: Prefer evidence less than 12 months old.\n- Note geographic concentration (e.g., US-only).\n- Trust the graph over web sources in case of conflicts.\n";
15
+ export declare const SKILL_SOURCE_QUALITY = "---\nid: FODDA-SKILL-QUALITY-001\ntitle: Fodda Source Quality Skill\nversion: 2.0.0\ncompliance: RFC-2119\n---\n\n### TOKEN: SourceCredibilityTiers\n- Tier 5 (Primary Research): Earnings reports, PubMed, OECD, Census, BLS, government filings.\n- Tier 4 (Expert Analysis): PSFK original research, McKinsey, Deloitte, named expert graphs.\n- Tier 3 (Quality Journalism): Financial Times, Bloomberg, Business of Fashion, Wired.\n- Tier 2 (Industry Sources): Trade publications, brand press releases, industry blogs.\n- Tier 1 (Unverified): Social media posts, individual opinions, unattributed claims.\n\n### RULE: SourcePreferenceHierarchy\n- The agent MUST follow this preference order:\n 1. Fodda knowledge graph evidence (pre-vetted, always prefer).\n 2. Supplemental structured data (BLS, Census, Google Trends, OECD).\n 3. Google Search results (web-sourced context for themes not covered).\n 4. URL-fetched primary sources (for deep verification).\n\n### RULE: SourceQualityGate\n- At least 60% of cited evidence SHOULD be tier 3 or above.\n- The agent MUST NOT present a tier 1-2 source without qualification (\"industry reports suggest...\").\n- Acknowledge explicitly if a finding relies on a single source.\n### RULE: ConflictingEstimates\n- When multiple sources provide conflicting quantitative estimates for the same metric (e.g. market size, growth rate, CAGR), the agent MUST surface ALL estimates with their sources rather than silently selecting one.\n- Present conflicting data as: \"Estimates range from $X (Source A) to $Y (Source B), reflecting [methodological, scope, or forecast horizon differences].\"\n- Never present a subset figure (e.g. built-in cabinets) as smaller than a total figure if the source numbers contradict; explicitly flag and reconcile the divergence.\n\n### RULE: OutlierOrderOfMagnitudeGuardrail\n- When reported market size figures for a specific product category differ by an order of magnitude or more from the general consensus cluster (e.g. $430 billion vs $1.5-$3.5 billion for wine fridges/coolers), ALWAYS treat the extreme outlier as a data or unit annotation error (e.g. millions mistranslated as billions) and DISCARD it.\n- NEVER present, include, or hedge an impossible outlier number (e.g. claiming a single niche appliance sub-category is worth hundreds of billions).\n";
16
16
  //# sourceMappingURL=skills.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../../src/agents/fodda-researcher/skills.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,eAAO,MAAM,0BAA0B,wmDAiCtC,CAAC;AAMF,eAAO,MAAM,yBAAyB,mxCAwBrC,CAAC;AAMF,eAAO,MAAM,mBAAmB,klDAwB/B,CAAC;AAMF,eAAO,MAAM,qBAAqB,8qCAuBjC,CAAC;AAMF,eAAO,MAAM,oBAAoB,02CA4BhC,CAAC"}
1
+ {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../../src/agents/fodda-researcher/skills.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,eAAO,MAAM,0BAA0B,wmDAiCtC,CAAC;AAMF,eAAO,MAAM,yBAAyB,mxCAwBrC,CAAC;AAMF,eAAO,MAAM,mBAAmB,klDAwB/B,CAAC;AAMF,eAAO,MAAM,qBAAqB,8qCAuBjC,CAAC;AAMF,eAAO,MAAM,oBAAoB,gyEAiChC,CAAC"}
@@ -156,8 +156,13 @@ compliance: RFC-2119
156
156
  - At least 60% of cited evidence SHOULD be tier 3 or above.
157
157
  - The agent MUST NOT present a tier 1-2 source without qualification ("industry reports suggest...").
158
158
  - Acknowledge explicitly if a finding relies on a single source.
159
- - Recency: Prefer evidence less than 12 months old.
160
- - Note geographic concentration (e.g., US-only).
161
- - Trust the graph over web sources in case of conflicts.
159
+ ### RULE: ConflictingEstimates
160
+ - When multiple sources provide conflicting quantitative estimates for the same metric (e.g. market size, growth rate, CAGR), the agent MUST surface ALL estimates with their sources rather than silently selecting one.
161
+ - Present conflicting data as: "Estimates range from $X (Source A) to $Y (Source B), reflecting [methodological, scope, or forecast horizon differences]."
162
+ - Never present a subset figure (e.g. built-in cabinets) as smaller than a total figure if the source numbers contradict; explicitly flag and reconcile the divergence.
163
+
164
+ ### RULE: OutlierOrderOfMagnitudeGuardrail
165
+ - When reported market size figures for a specific product category differ by an order of magnitude or more from the general consensus cluster (e.g. $430 billion vs $1.5-$3.5 billion for wine fridges/coolers), ALWAYS treat the extreme outlier as a data or unit annotation error (e.g. millions mistranslated as billions) and DISCARD it.
166
+ - NEVER present, include, or hedge an impossible outlier number (e.g. claiming a single niche appliance sub-category is worth hundreds of billions).
162
167
  `;
163
168
  //# sourceMappingURL=skills.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../../src/agents/fodda-researcher/skills.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,8EAA8E;AAC9E,gCAAgC;AAChC,8EAA8E;AAE9E,MAAM,CAAC,MAAM,0BAA0B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCzC,CAAC;AAEF,8EAA8E;AAC9E,+BAA+B;AAC/B,8EAA8E;AAE9E,MAAM,CAAC,MAAM,yBAAyB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;CAwBxC,CAAC;AAEF,8EAA8E;AAC9E,yBAAyB;AACzB,8EAA8E;AAE9E,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;CAwBlC,CAAC;AAEF,8EAA8E;AAC9E,2BAA2B;AAC3B,8EAA8E;AAE9E,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;CAuBpC,CAAC;AAEF,8EAA8E;AAC9E,0BAA0B;AAC1B,8EAA8E;AAE9E,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BnC,CAAC"}
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../../src/agents/fodda-researcher/skills.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,8EAA8E;AAC9E,gCAAgC;AAChC,8EAA8E;AAE9E,MAAM,CAAC,MAAM,0BAA0B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCzC,CAAC;AAEF,8EAA8E;AAC9E,+BAA+B;AAC/B,8EAA8E;AAE9E,MAAM,CAAC,MAAM,yBAAyB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;CAwBxC,CAAC;AAEF,8EAA8E;AAC9E,yBAAyB;AACzB,8EAA8E;AAE9E,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;CAwBlC,CAAC;AAEF,8EAA8E;AAC9E,2BAA2B;AAC3B,8EAA8E;AAE9E,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;CAuBpC,CAAC;AAEF,8EAA8E;AAC9E,0BAA0B;AAC1B,8EAA8E;AAE9E,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCnC,CAAC"}
@@ -10,5 +10,5 @@ export declare function renderBrandWidget(profile: any): Promise<{
10
10
  editorial_context: any;
11
11
  open_slots: string[];
12
12
  }>;
13
- export declare const TEMPLATE = "\n<style>\n:root{--p:#663399;--pl:#F5F0FF;--pm:#9B72CC;--pl-on:#663399;}\n@media(prefers-color-scheme:dark){:root{--p:#9B72CC;--pl:rgba(155,114,204,0.14);--pm:#663399;--pl-on:#C4A7E8;}}\n.w{border:1px solid var(--p);border-top:3px solid var(--p);border-radius:6px;padding:1.25rem;font-family:var(--font-mono);}\n.hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem;padding-bottom:1rem;border-bottom:.5px solid var(--color-border-tertiary);}\n.logo{display:flex;align-items:center;gap:10px;}\n.logo img{height:24px;width:auto;display:block;}\n.lt{font-size:13px;font-weight:500;}.ls{font-size:10px;color:var(--color-text-secondary);}\n.bfolio{font-family:var(--font-mono);font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--color-text-secondary);}\n.bh{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem;}\n.bn{font-family:var(--font-serif);font-style:italic;font-weight:400;font-size:22px;letter-spacing:-0.01em;}\n.vc{font-size:9px;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;padding:3px 8px;border:1px solid currentColor;border-radius:2px;font-family:var(--font-mono);}\n.vc-up{color:var(--color-text-success);}\n.vc-build{color:var(--color-text-info);}\n.vc-steady{color:var(--color-text-secondary);}\n.vc-slow{color:var(--color-text-warning);}\n.pv{font-size:14px;font-family:var(--font-serif);font-style:italic;font-weight:400;line-height:1.65;padding:14px 16px;background:var(--pl);border:1px solid var(--p);border-left-width:3px;border-radius:4px;margin-bottom:1.25rem;color:var(--color-text-primary);}\n.lcb{display:flex;height:8px;border-radius:4px;overflow:hidden;margin-bottom:.75rem;gap:2px;}\n.lcl{display:flex;gap:12px;margin-bottom:1.25rem;flex-wrap:wrap;}\n.lci{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--color-text-secondary);}\n.lcd{width:8px;height:8px;border-radius:2px;}\n.card{background:var(--color-background-primary);border:1px solid var(--color-border-tertiary);border-radius:4px;padding:1rem 1.25rem;margin-bottom:8px;transition:border-color .15s,background .15s;}\n.card:hover{border-color:var(--p);background:var(--pl);}\n.th{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:6px;gap:8px;}\n.tn{font-size:13px;font-weight:500;}\n.ta{display:flex;align-items:center;gap:4px;flex-shrink:0;}\n.td{font-size:12px;color:var(--color-text-secondary);margin-bottom:5px;line-height:1.5;}\n.lb{font-size:9px;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;padding:3px 8px;border:1px solid currentColor;border-radius:2px;white-space:nowrap;font-family:var(--font-mono);background:transparent;}\n.lb-b{color:var(--color-text-info);}\n.lb-e{color:var(--color-text-success);}\n.lb-m{color:var(--color-text-secondary);}\n.lb-f{color:var(--color-text-warning);}\n.bd{font-size:9px;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;padding:3px 8px;border:1px solid currentColor;border-radius:2px;background:transparent;color:var(--color-text-secondary);font-family:var(--font-mono);}\n.bd-fast{font-size:9px;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;padding:3px 8px;border:1px solid currentColor;border-radius:2px;background:transparent;color:#7A4000;font-family:var(--font-mono);}\n.bdp{font-size:10px;padding:2px 8px;border-radius:20px;background:var(--pl);color:var(--pl-on);font-family:var(--font-mono);}\n.brow{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;}\n.wl{font-size:11px;color:var(--color-text-secondary);margin:1.25rem 0 8px;display:flex;align-items:center;gap:6px;}\n.wd{width:6px;height:6px;border-radius:50%;background:var(--color-text-warning);display:inline-block;}\n.ec{border:1px dashed var(--color-border-tertiary);border-radius:4px;margin-bottom:8px;padding:1rem 1.25rem;}\n.et a{color:var(--color-text-info);text-decoration:none;font-size:13px;font-weight:500;}.et a:hover{text-decoration:underline;}\n.ex{font-size:12px;color:var(--color-text-secondary);line-height:1.5;margin:6px 0 8px;}\n.em{display:flex;gap:6px;flex-wrap:wrap;}\n.cit{font-size:10px;color:var(--color-text-secondary);margin-top:8px;padding-top:8px;border-top:.5px solid var(--color-border-tertiary);}\n.cit a{color:var(--color-text-info);text-decoration:none;}\n.cat-cs{background:var(--color-background-info);color:var(--color-text-info);}\n.cat-si{background:var(--pl);color:var(--p);}\n.cat-me{background:var(--color-background-success);color:var(--color-text-success);}\n.cat-qu{background:var(--color-background-warning);color:var(--color-text-warning);}\n.cat-in{background:var(--color-background-secondary);color:var(--color-text-secondary);}\n.cc{background:var(--color-background-primary);border:1px solid var(--color-border-tertiary);border-radius:4px;padding:.875rem 1.25rem;margin-bottom:6px;display:flex;justify-content:space-between;align-items:center;}\n.cn{font-size:13px;font-weight:500;margin-bottom:3px;}\n.cd{font-size:11px;color:var(--color-text-secondary);}\n.ca{display:flex;flex-direction:column;align-items:flex-end;gap:6px;}\n.pb{font-size:9px;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;padding:3px 8px;border:1px solid currentColor;border-radius:2px;font-family:var(--font-mono);background:transparent;}\n.sl2, .sec{font-size:13px;font-weight:500;color:var(--color-text-primary);margin:1.25rem 0 8px;}.sl2:first-child, .sec:first-child{margin-top:0;}\n.br{display:flex;align-items:center;gap:8px;margin-bottom:5px;font-size:12px;}\n.brl{width:120px;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0;}\n.brt{flex:1;height:4px;background:var(--color-background-secondary);border-radius:3px;overflow:hidden;}\n.brf{height:100%;background:var(--p);border-radius:3px;}\n.brc{min-width:44px;text-align:right;color:var(--color-text-secondary);font-size:11px;}\n.sg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:1rem;}\n.sk{background:var(--color-background-secondary);border-radius:8px;padding:10px 12px;}\n.skl{font-size:10px;color:var(--color-text-secondary);margin-bottom:3px;}\n.skv{font-family:var(--font-serif);font-style:italic;font-size:22px;font-weight:400;}.sks{font-size:10px;color:var(--color-text-secondary);margin-top:2px;}\n.rq{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:.75rem;}\n.rqp{font-size:10px;padding:3px 9px;border-radius:20px;background:var(--color-background-secondary);color:var(--color-text-secondary);border:.5px solid var(--color-border-tertiary);}\n.xb{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--color-background-secondary);border:.5px solid var(--color-border-tertiary);border-radius:8px;cursor:pointer;text-align:left;width:100%;margin-bottom:8px;font-family:var(--font-mono);transition:all .15s;}\n.xb:hover{background:var(--pl);border-color:var(--pm);}\n.xi{font-size:11px;width:28px;font-weight:500;flex-shrink:0;color:var(--color-text-secondary);}\n.xd{font-size:11px;color:var(--color-text-secondary);margin-top:2px;}\n.xbl{font-weight:500;font-size:12px;}\n.gf{display:flex;gap:5px;flex-wrap:wrap;margin-top:1.5rem;padding-top:1rem;border-top:.5px solid var(--color-border-tertiary);align-items:center;}\n.gfl{font-size:10px;color:var(--color-text-secondary);margin-right:2px;}\n.gp{font-size:10px;padding:2px 9px;border-radius:20px;background:var(--pl);color:var(--pl-on);border:.5px solid var(--pm);}\n.ap{background:var(--color-background-secondary);border-radius:8px;margin-bottom:6px;padding:.75rem 1rem;display:flex;justify-content:space-between;align-items:center;}\n.an2{font-size:12px;font-weight:500;}\n.am2{font-size:11px;color:var(--color-text-secondary);margin-top:2px;}\n.astar{font-size:11px;color:var(--p);}\n.note{font-size:10px;color:var(--color-text-secondary);margin-bottom:1.25rem;}\n.btn-out{font-size:9px;padding:2px 7px;cursor:pointer;border:.5px solid var(--pm);border-radius:20px;background:var(--pl);color:var(--pl-on);font-family:var(--font-mono);}\n.btn-out:hover{background:var(--p);color:#fff;border-color:var(--p);}\n.cp{font-size:11px;background:var(--pl);color:var(--pl-on);border:.5px solid var(--pm);border-radius:20px;padding:3px 10px;cursor:pointer;font-family:var(--font-mono);transition:all .15s;}\n.cp:hover{background:var(--p);color:#fff;}\n.cv{font-size:10px;background:var(--pl);color:var(--pl-on);border:.5px solid var(--pm);border-radius:20px;padding:2px 8px;cursor:pointer;font-family:var(--font-mono);transition:all .15s;}\n.cv:hover{background:var(--p);color:#fff;}\n.an{font-size:13px;line-height:1.7;color:var(--color-text-primary);}\n.an p{margin:0 0 .75rem;}\n.an strong{font-weight:500;}\n.si{font-size:12px;line-height:1.65;color:var(--color-text-secondary);font-style:italic;margin:0 0 1rem;}\n</style>\n\n<div class=\"w\">\n <div class=\"hd\">\n <div class=\"logo\">\n <img src=\"https://cdn.jsdelivr.net/gh/piers-fawkes/fodda-demo@main/public/fodda-mini-logo-claude.png\" alt=\"Fodda\" style=\"height:24px;width:24px;\"/>\n <div><div class=\"lt\">Fodda</div><div class=\"ls\">Brand Intelligence</div></div>\n </div>\n <div class=\"bfolio\">{{FOLIO}}</div>\n </div>\n\n <div class=\"bh\">\n <div class=\"bn\">{{BRAND_NAME}}</div>\n <span class=\"vc {{VELOCITY_CLASS}}\">{{VELOCITY_LABEL}}</span>\n </div>\n\n <div class=\"pv\">{{ONE_LINER}}</div>\n\n <div class=\"sec\">Case Studies</div>\n {{EVIDENCE_HTML}}\n\n {{EARNINGS_SECTION_HTML}}\n\n <div class=\"sec\">Relevant trends</div>\n {{TREND_FOOTPRINT_INTRO}}\n <div class=\"lcb\">{{LIFECYCLE_BAR}}</div>\n <div class=\"lcl\">{{LIFECYCLE_LEGEND}}</div>\n {{TRENDS_HTML}}\n {{WEAK_SIGNALS_HTML}}\n\n <div class=\"sec\">Competitive</div>\n {{COMPETITOR_LIST_HTML}}\n\n <div class=\"sec\">Market data</div>\n {{MARKET_DATA_INTRO}}\n <div class=\"sl2\">US retail sales \u2014 Census Bureau</div>\n <div class=\"sg\">\n <div class=\"sk\"><div class=\"skl\">{{BEA_STAT_1_LABEL}}</div><div class=\"skv\">{{BEA_STAT_1_VALUE}}</div><div class=\"sks\">{{BEA_STAT_1_SUB}}</div></div>\n <div class=\"sk\"><div class=\"skl\">{{BEA_STAT_2_LABEL}}</div><div class=\"skv\">{{BEA_STAT_2_VALUE}}</div><div class=\"sks\">{{BEA_STAT_2_SUB}}</div></div>\n </div>\n\n {{GT_SECTION_HTML}}\n {{GT_COMPARISON_SECTION_HTML}}\n {{RELATED_QUERIES_SECTION_HTML}}\n\n <div class=\"sl2\">Wikipedia \u2014 avg daily pageviews</div>\n {{WIKI_BARS_HTML}}\n <p class=\"note\">{{WIKI_NOTE}}</p>\n\n <div class=\"sl2\">Amazon footprint</div>\n <div class=\"sg\">\n <div class=\"sk\"><div class=\"skl\">{{AMAZON_STAT_1_LABEL}}</div><div class=\"skv\">{{AMAZON_STAT_1_VALUE}}</div><div class=\"sks\">{{AMAZON_STAT_1_SUB}}</div></div>\n <div class=\"sk\"><div class=\"skl\">{{AMAZON_STAT_2_LABEL}}</div><div class=\"skv\">{{AMAZON_STAT_2_VALUE}}</div><div class=\"sks\">{{AMAZON_STAT_2_SUB}}</div></div>\n <div class=\"sk\"><div class=\"skl\">{{AMAZON_STAT_3_LABEL}}</div><div class=\"skv\">{{AMAZON_STAT_3_VALUE}}</div><div class=\"sks\">{{AMAZON_STAT_3_SUB}}</div></div>\n <div class=\"sk\"><div class=\"skl\">{{AMAZON_STAT_4_LABEL}}</div><div class=\"skv\">{{AMAZON_STAT_4_VALUE}}</div><div class=\"sks\">{{AMAZON_STAT_4_SUB}}</div></div>\n </div>\n {{AMAZON_PRODUCTS_HTML}}\n <p class=\"note\">{{AMAZON_CAPTION}}</p>\n\n {{GEO_SECTION_HTML}}\n\n <div class=\"sec\">Explore further</div>\n {{SUGGESTED_NEXT_HTML}}\n <button class=\"xb\" onclick=\"sendPrompt('{{EXPORT_1_PROMPT}}')\"><span class=\"xi\">\u2197</span><div><div class=\"xbl\">{{EXPORT_1_LABEL}}</div><div class=\"xd\">{{EXPORT_1_DESC}}</div></div></button>\n <button class=\"xb\" onclick=\"sendPrompt('{{EXPORT_2_PROMPT}}')\"><span class=\"xi\">\u2197</span><div><div class=\"xbl\">{{EXPORT_2_LABEL}}</div><div class=\"xd\">{{EXPORT_2_DESC}}</div></div></button>\n <button class=\"xb\" onclick=\"sendPrompt('{{EXPORT_3_PROMPT}}')\"><span class=\"xi\">\u2197</span><div><div class=\"xbl\">{{EXPORT_3_LABEL}}</div><div class=\"xd\">{{EXPORT_3_DESC}}</div></div></button>\n <button class=\"xb\" onclick=\"sendPrompt('{{EXPORT_4_PROMPT}}')\"><span class=\"xi\">\u2197</span><div><div class=\"xbl\">{{EXPORT_4_LABEL}}</div><div class=\"xd\">{{EXPORT_4_DESC}}</div></div></button>\n\n <div class=\"gf\">\n <span class=\"gfl\">Sources:</span>\n {{SOURCE_PILLS_HTML}}\n</div>";
13
+ export declare const TEMPLATE = "\n<style>\n:root{--p:#663399;--pl:#F5F0FF;--pm:#9B72CC;--pl-on:#663399;}\n@media(prefers-color-scheme:dark){:root{--p:#9B72CC;--pl:rgba(155,114,204,0.14);--pm:#663399;--pl-on:#C4A7E8;}}\n.w{border:1px solid var(--p);border-top:3px solid var(--p);border-radius:6px;padding:1.25rem;font-family:var(--font-mono);}\n.hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem;padding-bottom:1rem;border-bottom:.5px solid var(--color-border-tertiary);}\n.logo{display:flex;align-items:center;gap:10px;}\n.logo img{height:24px;width:auto;display:block;}\n.lt{font-size:13px;font-weight:500;}.ls{font-size:10px;color:var(--color-text-secondary);}\n.bfolio{font-family:var(--font-mono);font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--color-text-secondary);}\n.bh{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem;}\n.bn{font-family:var(--font-serif);font-style:italic;font-weight:400;font-size:22px;letter-spacing:-0.01em;}\n.vc{font-size:9px;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;padding:3px 8px;border:1px solid currentColor;border-radius:2px;font-family:var(--font-mono);}\n.vc-up{color:var(--color-text-success);}\n.vc-build{color:var(--color-text-info);}\n.vc-steady{color:var(--color-text-secondary);}\n.vc-slow{color:var(--color-text-warning);}\n.pv{font-size:14px;font-family:var(--font-serif);font-style:italic;font-weight:400;line-height:1.65;padding:14px 16px;background:var(--pl);border:1px solid var(--p);border-left-width:3px;border-radius:4px;margin-bottom:1.25rem;color:var(--color-text-primary);}\n.lcb{display:flex;height:8px;border-radius:4px;overflow:hidden;margin-bottom:.75rem;gap:2px;}\n.lcl{display:flex;gap:12px;margin-bottom:1.25rem;flex-wrap:wrap;}\n.lci{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--color-text-secondary);}\n.lcd{width:8px;height:8px;border-radius:2px;}\n.card{background:var(--color-background-primary);border:1px solid var(--color-border-tertiary);border-radius:4px;padding:1rem 1.25rem;margin-bottom:8px;transition:border-color .15s,background .15s;}\n.card:hover{border-color:var(--p);background:var(--pl);}\n.th{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:6px;gap:8px;}\n.tn{font-size:13px;font-weight:500;}\n.ta{display:flex;align-items:center;gap:4px;flex-shrink:0;}\n.td{font-size:12px;color:var(--color-text-secondary);margin-bottom:5px;line-height:1.5;}\n.lb{font-size:9px;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;padding:3px 8px;border:1px solid currentColor;border-radius:2px;white-space:nowrap;font-family:var(--font-mono);background:transparent;}\n.lb-b{color:var(--color-text-info);}\n.lb-e{color:var(--color-text-success);}\n.lb-m{color:var(--color-text-secondary);}\n.lb-f{color:var(--color-text-warning);}\n.bd{font-size:9px;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;padding:3px 8px;border:1px solid currentColor;border-radius:2px;background:transparent;color:var(--color-text-secondary);font-family:var(--font-mono);}\n.bd-fast{font-size:9px;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;padding:3px 8px;border:1px solid currentColor;border-radius:2px;background:transparent;color:#7A4000;font-family:var(--font-mono);}\n.bdp{font-size:10px;padding:2px 8px;border-radius:20px;background:var(--pl);color:var(--pl-on);font-family:var(--font-mono);}\n.brow{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;}\n.wl{font-size:11px;color:var(--color-text-secondary);margin:1.25rem 0 8px;display:flex;align-items:center;gap:6px;}\n.wd{width:6px;height:6px;border-radius:50%;background:var(--color-text-warning);display:inline-block;}\n.ec{border:1px dashed var(--color-border-tertiary);border-radius:4px;margin-bottom:8px;padding:1rem 1.25rem;}\n.et a{color:var(--color-text-info);text-decoration:none;font-size:13px;font-weight:500;}.et a:hover{text-decoration:underline;}\n.ex{font-size:12px;color:var(--color-text-secondary);line-height:1.5;margin:6px 0 8px;}\n.em{display:flex;gap:6px;flex-wrap:wrap;}\n.cit{font-size:10px;color:var(--color-text-secondary);margin-top:8px;padding-top:8px;border-top:.5px solid var(--color-border-tertiary);}\n.cit a{color:var(--color-text-info);text-decoration:none;}\n.cat-cs{background:var(--color-background-info);color:var(--color-text-info);}\n.cat-si{background:var(--pl);color:var(--p);}\n.cat-me{background:var(--color-background-success);color:var(--color-text-success);}\n.cat-qu{background:var(--color-background-warning);color:var(--color-text-warning);}\n.cat-in{background:var(--color-background-secondary);color:var(--color-text-secondary);}\n.cc{background:var(--color-background-primary);border:1px solid var(--color-border-tertiary);border-radius:4px;padding:.875rem 1.25rem;margin-bottom:6px;display:flex;justify-content:space-between;align-items:center;}\n.cn{font-size:13px;font-weight:500;margin-bottom:3px;}\n.cd{font-size:11px;color:var(--color-text-secondary);}\n.ca{display:flex;flex-direction:column;align-items:flex-end;gap:6px;}\n.pb{font-size:9px;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;padding:3px 8px;border:1px solid currentColor;border-radius:2px;font-family:var(--font-mono);background:transparent;}\n.sl2, .sec{font-size:13px;font-weight:500;color:var(--color-text-primary);margin:1.25rem 0 8px;}.sl2:first-child, .sec:first-child{margin-top:0;}\n.br{display:flex;align-items:center;gap:8px;margin-bottom:5px;font-size:12px;}\n.brl{width:120px;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0;}\n.brt{flex:1;height:4px;background:var(--color-background-secondary);border-radius:3px;overflow:hidden;}\n.brf{height:100%;background:var(--p);border-radius:3px;}\n.brc{min-width:44px;text-align:right;color:var(--color-text-secondary);font-size:11px;}\n.sg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:1rem;}\n.sk{background:var(--color-background-secondary);border-radius:8px;padding:10px 12px;}\n.skl{font-size:10px;color:var(--color-text-secondary);margin-bottom:3px;}\n.skv{font-family:var(--font-serif);font-style:italic;font-size:22px;font-weight:400;}.sks{font-size:10px;color:var(--color-text-secondary);margin-top:2px;}\n.rq{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:.75rem;}\n.rqp{font-size:10px;padding:3px 9px;border-radius:20px;background:var(--color-background-secondary);color:var(--color-text-secondary);border:.5px solid var(--color-border-tertiary);}\n.xb{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--color-background-secondary);border:.5px solid var(--color-border-tertiary);border-radius:8px;cursor:pointer;text-align:left;width:100%;margin-bottom:8px;font-family:var(--font-mono);transition:all .15s;}\n.xb:hover{background:var(--pl);border-color:var(--pm);}\n.xi{font-size:11px;width:28px;font-weight:500;flex-shrink:0;color:var(--color-text-secondary);}\n.xd{font-size:11px;color:var(--color-text-secondary);margin-top:2px;}\n.xbl{font-weight:500;font-size:12px;}\n.gf{display:flex;gap:5px;flex-wrap:wrap;margin-top:1.5rem;padding-top:1rem;border-top:.5px solid var(--color-border-tertiary);align-items:center;}\n.gfl{font-size:10px;color:var(--color-text-secondary);margin-right:2px;}\n.gp{font-size:10px;padding:2px 9px;border-radius:20px;background:var(--pl);color:var(--pl-on);border:.5px solid var(--pm);}\n.ap{background:var(--color-background-secondary);border-radius:8px;margin-bottom:6px;padding:.75rem 1rem;display:flex;justify-content:space-between;align-items:center;}\n.an2{font-size:12px;font-weight:500;}\n.am2{font-size:11px;color:var(--color-text-secondary);margin-top:2px;}\n.astar{font-size:11px;color:var(--p);}\n.note{font-size:10px;color:var(--color-text-secondary);margin-bottom:1.25rem;}\n.btn-out{font-size:9px;padding:2px 7px;cursor:pointer;border:.5px solid var(--pm);border-radius:20px;background:var(--pl);color:var(--pl-on);font-family:var(--font-mono);}\n.btn-out:hover{background:var(--p);color:#fff;border-color:var(--p);}\n.cp{font-size:11px;background:var(--pl);color:var(--pl-on);border:.5px solid var(--pm);border-radius:20px;padding:3px 10px;cursor:pointer;font-family:var(--font-mono);transition:all .15s;}\n.cp:hover{background:var(--p);color:#fff;}\n.cv{font-size:10px;background:var(--pl);color:var(--pl-on);border:.5px solid var(--pm);border-radius:20px;padding:2px 8px;cursor:pointer;font-family:var(--font-mono);transition:all .15s;}\n.cv:hover{background:var(--p);color:#fff;}\n.an{font-size:13px;line-height:1.7;color:var(--color-text-primary);}\n.an p{margin:0 0 .75rem;}\n.an strong{font-weight:500;}\n.si{font-size:12px;line-height:1.65;color:var(--color-text-secondary);font-style:italic;margin:0 0 1rem;}\n</style>\n\n<div class=\"w\">\n <div class=\"hd\">\n <div class=\"logo\">\n <img src=\"https://cdn.jsdelivr.net/gh/piers-fawkes/fodda-demo@main/public/fodda-mini-logo-claude.png\" alt=\"Fodda\" style=\"height:24px;width:24px;\"/>\n <div><div class=\"lt\">Fodda</div><div class=\"ls\">Brand Intelligence</div></div>\n </div>\n <div class=\"bfolio\">{{FOLIO}}</div>\n </div>\n\n <div class=\"bh\">\n <div class=\"bn\">{{BRAND_NAME}}</div>\n <span class=\"vc {{VELOCITY_CLASS}}\">{{VELOCITY_LABEL}}</span>\n </div>\n\n <div class=\"pv\">{{ONE_LINER}}</div>\n\n <div class=\"sec\">Case Studies</div>\n {{EVIDENCE_HTML}}\n\n {{EARNINGS_SECTION_HTML}}\n {{FINANCIAL_SNAPSHOT_SECTION_HTML}}\n\n <div class=\"sec\">Relevant trends</div>\n {{TREND_FOOTPRINT_INTRO}}\n <div class=\"lcb\">{{LIFECYCLE_BAR}}</div>\n <div class=\"lcl\">{{LIFECYCLE_LEGEND}}</div>\n {{TRENDS_HTML}}\n {{WEAK_SIGNALS_HTML}}\n\n <div class=\"sec\">Competitive</div>\n {{COMPETITOR_LIST_HTML}}\n\n <div class=\"sec\">Market data</div>\n {{MARKET_DATA_INTRO}}\n <div class=\"sl2\">US retail sales \u2014 Census Bureau</div>\n <div class=\"sg\">\n <div class=\"sk\"><div class=\"skl\">{{BEA_STAT_1_LABEL}}</div><div class=\"skv\">{{BEA_STAT_1_VALUE}}</div><div class=\"sks\">{{BEA_STAT_1_SUB}}</div></div>\n <div class=\"sk\"><div class=\"skl\">{{BEA_STAT_2_LABEL}}</div><div class=\"skv\">{{BEA_STAT_2_VALUE}}</div><div class=\"sks\">{{BEA_STAT_2_SUB}}</div></div>\n </div>\n\n {{GT_SECTION_HTML}}\n {{GT_COMPARISON_SECTION_HTML}}\n {{RELATED_QUERIES_SECTION_HTML}}\n\n <div class=\"sl2\">Wikipedia \u2014 avg daily pageviews</div>\n {{WIKI_BARS_HTML}}\n <p class=\"note\">{{WIKI_NOTE}}</p>\n\n <div class=\"sl2\">Amazon footprint</div>\n <div class=\"sg\">\n <div class=\"sk\"><div class=\"skl\">{{AMAZON_STAT_1_LABEL}}</div><div class=\"skv\">{{AMAZON_STAT_1_VALUE}}</div><div class=\"sks\">{{AMAZON_STAT_1_SUB}}</div></div>\n <div class=\"sk\"><div class=\"skl\">{{AMAZON_STAT_2_LABEL}}</div><div class=\"skv\">{{AMAZON_STAT_2_VALUE}}</div><div class=\"sks\">{{AMAZON_STAT_2_SUB}}</div></div>\n <div class=\"sk\"><div class=\"skl\">{{AMAZON_STAT_3_LABEL}}</div><div class=\"skv\">{{AMAZON_STAT_3_VALUE}}</div><div class=\"sks\">{{AMAZON_STAT_3_SUB}}</div></div>\n <div class=\"sk\"><div class=\"skl\">{{AMAZON_STAT_4_LABEL}}</div><div class=\"skv\">{{AMAZON_STAT_4_VALUE}}</div><div class=\"sks\">{{AMAZON_STAT_4_SUB}}</div></div>\n </div>\n {{AMAZON_PRODUCTS_HTML}}\n <p class=\"note\">{{AMAZON_CAPTION}}</p>\n\n {{GEO_SECTION_HTML}}\n\n <div class=\"sec\">Explore further</div>\n {{SUGGESTED_NEXT_HTML}}\n <button class=\"xb\" onclick=\"sendPrompt('{{EXPORT_1_PROMPT}}')\"><span class=\"xi\">\u2197</span><div><div class=\"xbl\">{{EXPORT_1_LABEL}}</div><div class=\"xd\">{{EXPORT_1_DESC}}</div></div></button>\n <button class=\"xb\" onclick=\"sendPrompt('{{EXPORT_2_PROMPT}}')\"><span class=\"xi\">\u2197</span><div><div class=\"xbl\">{{EXPORT_2_LABEL}}</div><div class=\"xd\">{{EXPORT_2_DESC}}</div></div></button>\n <button class=\"xb\" onclick=\"sendPrompt('{{EXPORT_3_PROMPT}}')\"><span class=\"xi\">\u2197</span><div><div class=\"xbl\">{{EXPORT_3_LABEL}}</div><div class=\"xd\">{{EXPORT_3_DESC}}</div></div></button>\n <button class=\"xb\" onclick=\"sendPrompt('{{EXPORT_4_PROMPT}}')\"><span class=\"xi\">\u2197</span><div><div class=\"xbl\">{{EXPORT_4_LABEL}}</div><div class=\"xd\">{{EXPORT_4_DESC}}</div></div></button>\n\n <div class=\"gf\">\n <span class=\"gfl\">Sources:</span>\n {{SOURCE_PILLS_HTML}}\n</div>";
14
14
  //# sourceMappingURL=brandTemplate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"brandTemplate.d.ts","sourceRoot":"","sources":["../src/brandTemplate.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA6PH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,GAAG,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CA8WpI;AAGD,eAAO,MAAM,QAAQ,6iYAiKd,CAAC"}
1
+ {"version":3,"file":"brandTemplate.d.ts","sourceRoot":"","sources":["../src/brandTemplate.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAsSH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,GAAG,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAyfpI;AAGD,eAAO,MAAM,QAAQ,olYAkKd,CAAC"}
@@ -241,6 +241,46 @@ function barRow(label, value, maxValue) {
241
241
  return `<div class="br"><div class="brl">${esc(label)}</div><div class="brt"><div class="brf" style="width:${pct}%"></div></div><div class="brc">${value.toLocaleString()}</div></div>`;
242
242
  }
243
243
  // ---------------------------------------------------------------------------
244
+ // Financial data formatting helpers
245
+ // ---------------------------------------------------------------------------
246
+ function formatFinancialCurrency(val) {
247
+ if (val === undefined || val === null || isNaN(val))
248
+ return '—';
249
+ const abs = Math.abs(val);
250
+ const sign = val < 0 ? '-' : '';
251
+ if (abs >= 1e9) {
252
+ return `${sign}$${(abs / 1e9).toFixed(2)}B`;
253
+ }
254
+ if (abs >= 1e6) {
255
+ return `${sign}$${(abs / 1e6).toFixed(1)}M`;
256
+ }
257
+ if (abs >= 1e3) {
258
+ return `${sign}$${(abs / 1e3).toFixed(1)}K`;
259
+ }
260
+ return `${sign}$${abs.toLocaleString()}`;
261
+ }
262
+ function formatEps(eps, dilutedEps) {
263
+ if ((eps === undefined || eps === null || isNaN(eps)) && (dilutedEps === undefined || dilutedEps === null || isNaN(dilutedEps))) {
264
+ return '—';
265
+ }
266
+ const fmt = (v) => `${v < 0 ? '-' : ''}$${Math.abs(v).toFixed(2)}`;
267
+ if (eps != null && !isNaN(eps) && dilutedEps != null && !isNaN(dilutedEps)) {
268
+ return `${fmt(eps)} (Diluted ${fmt(dilutedEps)})`;
269
+ }
270
+ if (eps != null && !isNaN(eps)) {
271
+ return fmt(eps);
272
+ }
273
+ return `${fmt(dilutedEps)} (diluted)`;
274
+ }
275
+ function formatStockPrice(priceWindow) {
276
+ if (!priceWindow || priceWindow.current_price == null || isNaN(priceWindow.current_price))
277
+ return '';
278
+ const dateStr = priceWindow.as_of_date ? ` (as of ${esc(priceWindow.as_of_date)})` : '';
279
+ const p = priceWindow.current_price;
280
+ const priceFormatted = `${p < 0 ? '-' : ''}$${Math.abs(p).toFixed(2)}`;
281
+ return `${priceFormatted}${dateStr}`;
282
+ }
283
+ // ---------------------------------------------------------------------------
244
284
  // Main render function
245
285
  // ---------------------------------------------------------------------------
246
286
  export async function renderBrandWidget(profile) {
@@ -250,7 +290,14 @@ export async function renderBrandWidget(profile) {
250
290
  const competitors = profile.competitive_context?.co_occurring_brands || [];
251
291
  const crossGraph = profile.cross_graph_presence || [];
252
292
  const supplemental = profile.supplemental_signals || {};
253
- const velocity = velocityClass(profile.summary?.evidence_velocity?.trend || 'stable');
293
+ const lcDist = profile.summary?.lifecycle_distribution || {};
294
+ const buildingCount = (lcDist.building || 0) + (lcDist.emerging || 0);
295
+ const fadingCount = (lcDist.fading || 0) + (lcDist.mature || 0);
296
+ let rawVelocityTrend = profile.summary?.evidence_velocity?.trend || 'stable';
297
+ if (fadingCount > buildingCount && rawVelocityTrend === 'accelerating') {
298
+ rawVelocityTrend = 'decelerating';
299
+ }
300
+ const velocity = velocityClass(rawVelocityTrend);
254
301
  const timeline = profile.activity_timeline || [];
255
302
  // Build set of graphIds the target brand is present in (for sector-aware competitor labels)
256
303
  const brandGraphIds = new Set(crossGraph.map((g) => g.graphId).filter(Boolean));
@@ -258,8 +305,69 @@ export async function renderBrandWidget(profile) {
258
305
  const domainGIds = getDomainGraphIds();
259
306
  // ── Earnings Intelligence section ──
260
307
  const earnings = profile.earningsIntelligence || [];
261
- const earningsHtml = earnings.length > 0
262
- ? earnings.slice(0, 5).map((e) => {
308
+ const earningsSource = profile.earningsSource || 'web_backfill';
309
+ const truthLayer = profile.earningsTruthLayer || null;
310
+ const validatedTrends = profile.validatedTrends || [];
311
+ let earningsHtml = '';
312
+ if (earningsSource === 'truth_layer' && truthLayer) {
313
+ // ── Truth layer rendering: structured snapshot ──
314
+ const parts = [];
315
+ if (truthLayer.headline) {
316
+ parts.push(`<div class="ec">
317
+ <div class="et" style="font-size:13px;font-weight:600;">${esc(truthLayer.company || '')} — ${esc(truthLayer.period || '')} Earnings Call Analysis</div>
318
+ <div class="ex" style="font-weight:500;margin-top:4px;">${esc(truthLayer.headline)}</div>
319
+ </div>`);
320
+ }
321
+ if (truthLayer.analyst_concerns) {
322
+ parts.push(`<div class="ec">
323
+ <div class="et" style="font-size:11px;font-weight:600;color:var(--color-text-warning);">Wall Street Analyst Concerns & Q&A Focus</div>
324
+ <div class="ex">${esc(truthLayer.analyst_concerns)}</div>
325
+ </div>`);
326
+ }
327
+ if (truthLayer.analyst_sentiment) {
328
+ parts.push(`<div class="ec">
329
+ <div class="et" style="font-size:11px;font-weight:600;">Institutional Analyst Consensus & Sentiment</div>
330
+ <div class="ex">${esc(truthLayer.analyst_sentiment)}</div>
331
+ </div>`);
332
+ }
333
+ // Activity fields — show if present
334
+ const activities = [
335
+ { key: 'marketing_activity', label: 'Marketing & Brand Building' },
336
+ { key: 'retail_activity', label: 'Retail & Channel Expansion' },
337
+ { key: 'technology_activity', label: 'Technology & AI Infrastructure' },
338
+ { key: 'sustainability_activity', label: 'ESG & Sustainability' },
339
+ ];
340
+ const activityPills = activities
341
+ .filter(a => truthLayer[a.key])
342
+ .map(a => `<span class="rqp">${esc(a.label)}</span>`)
343
+ .join('');
344
+ if (activityPills) {
345
+ parts.push(`<div class="ec">
346
+ <div class="et" style="font-size:11px;font-weight:600;">Management Focus & Strategic Investment Areas</div>
347
+ <div class="rq" style="margin-top:4px;">${activityPills}</div>
348
+ </div>`);
349
+ }
350
+ if (truthLayer.exec_sentiment) {
351
+ parts.push(`<div class="ec">
352
+ <div class="et" style="font-size:11px;font-weight:600;">C-Suite Executive Outlook & Forward Guidance</div>
353
+ <div class="ex">${esc(truthLayer.exec_sentiment)}${truthLayer.quote_from_ceo ? ` — "${esc(truthLayer.quote_from_ceo)}"` : ''}</div>
354
+ </div>`);
355
+ }
356
+ // Validated trends — render only when non-empty (graceful empty state)
357
+ if (validatedTrends.length > 0) {
358
+ const trendPills = validatedTrends.slice(0, 5)
359
+ .map((t) => `<span class="rqp">${esc(t.trend_name)}</span>`)
360
+ .join('');
361
+ parts.push(`<div class="ec">
362
+ <div class="et" style="font-size:11px;font-weight:600;color:var(--color-text-success);">Market Trends Confirmed by Executives</div>
363
+ <div class="rq" style="margin-top:4px;">${trendPills}</div>
364
+ </div>`);
365
+ }
366
+ earningsHtml = parts.join('\n');
367
+ }
368
+ else if (earnings.length > 0) {
369
+ // ── Legacy rendering: array of evidence items ──
370
+ earningsHtml = earnings.slice(0, 5).map((e) => {
263
371
  const topicPills = (e.key_topics || e.keyTopics || []).slice(0, 5)
264
372
  .map((t) => `<span class="rqp">${esc(t)}</span>`).join('');
265
373
  const quarter = e.quarter || e.period || '';
@@ -272,8 +380,61 @@ export async function renderBrandWidget(profile) {
272
380
  <div class="ex">${esc(provenance)}: ${esc(summary)}</div>
273
381
  <div class="rq" style="margin-top:6px;">${topicPills}</div>
274
382
  </div>`;
275
- }).join('\n')
276
- : '';
383
+ }).join('\n');
384
+ }
385
+ // ── Institutional Financial Snapshot (Market Data) section ──
386
+ const marketData = profile.market_data;
387
+ let financialSnapshotHtml = '';
388
+ if (marketData && marketData.data_status !== 'no_signal') {
389
+ const symbol = marketData.primary_symbol || marketData.ticker || '';
390
+ const profileInfo = marketData.company_profile;
391
+ const companyName = profileInfo?.company_name || profile.brand || '';
392
+ const sector = profileInfo?.sector || '';
393
+ const industry = profileInfo?.industry || '';
394
+ const priceStr = formatStockPrice(marketData.price_window);
395
+ const quarters = (marketData.quarterly_financials || []).slice(0, 2);
396
+ const hasContent = Boolean(symbol || profileInfo || priceStr || quarters.length > 0);
397
+ if (hasContent) {
398
+ const headerTitle = companyName ? `${esc(companyName)}${symbol ? ` (${esc(symbol)})` : ''}` : esc(symbol);
399
+ const metaTokens = [];
400
+ if (sector)
401
+ metaTokens.push(`Sector: ${esc(sector)}`);
402
+ if (industry)
403
+ metaTokens.push(`Industry: ${esc(industry)}`);
404
+ const metaHtml = metaTokens.length > 0
405
+ ? `<div style="font-size:11px;color:var(--color-text-secondary);margin-top:2px;margin-bottom:8px;">${metaTokens.join(' · ')}</div>`
406
+ : '';
407
+ const priceHtml = priceStr
408
+ ? `<div style="font-size:12px;color:var(--color-text-primary);margin-bottom:8px;font-weight:500;">Stock Price: <span style="font-family:var(--font-mono);font-weight:600;">${priceStr}</span></div>`
409
+ : '';
410
+ let quartersHtml = '';
411
+ if (quarters.length > 0) {
412
+ const qCards = quarters.map((q) => {
413
+ const qPeriod = q.period || q.period_label || 'Quarterly Financials';
414
+ const rev = formatFinancialCurrency(q.revenue);
415
+ const opInc = formatFinancialCurrency(q.operating_income);
416
+ const netInc = formatFinancialCurrency(q.net_income);
417
+ const eps = formatEps(q.eps, q.diluted_eps);
418
+ return `<div style="background:var(--color-background-secondary);border-radius:6px;padding:8px 10px;margin-top:6px;">
419
+ <div style="font-size:11px;font-weight:600;color:var(--color-text-primary);margin-bottom:4px;">${esc(qPeriod)}</div>
420
+ <div style="display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;font-size:11px;">
421
+ <div><span style="color:var(--color-text-secondary);">Revenue:</span> <strong style="font-family:var(--font-mono);">${rev}</strong></div>
422
+ <div><span style="color:var(--color-text-secondary);">Op. Income:</span> <strong style="font-family:var(--font-mono);">${opInc}</strong></div>
423
+ <div><span style="color:var(--color-text-secondary);">Net Income:</span> <strong style="font-family:var(--font-mono);">${netInc}</strong></div>
424
+ <div><span style="color:var(--color-text-secondary);">EPS:</span> <strong style="font-family:var(--font-mono);">${eps}</strong></div>
425
+ </div>
426
+ </div>`;
427
+ }).join('\n');
428
+ quartersHtml = `<div style="margin-top:6px;">${qCards}</div>`;
429
+ }
430
+ financialSnapshotHtml = `<div class="ec">
431
+ <div class="et" style="font-size:13px;font-weight:600;">${headerTitle}</div>
432
+ ${metaHtml}
433
+ ${priceHtml}
434
+ ${quartersHtml}
435
+ </div>`;
436
+ }
437
+ }
277
438
  // Enrich trends with lifecycle if missing
278
439
  trends.forEach((t) => {
279
440
  if (!t.lifecycle || t.lifecycle === 'unknown') {
@@ -281,7 +442,6 @@ export async function renderBrandWidget(profile) {
281
442
  }
282
443
  });
283
444
  // ── Lifecycle bar ──
284
- const lcDist = profile.summary?.lifecycle_distribution || {};
285
445
  const lcTotal = Object.values(lcDist).reduce((a, b) => a + b, 0);
286
446
  const lcColors = { building: 'var(--color-text-info)', emerging: 'var(--color-text-success)', mature: 'var(--color-text-secondary)', fading: 'var(--color-text-warning)' };
287
447
  const lifecycleBar = Object.entries(lcDist)
@@ -454,6 +614,8 @@ export async function renderBrandWidget(profile) {
454
614
  const graphNames = crossGraph.map((g) => g.graphName).filter(Boolean);
455
615
  const sourcePills = [
456
616
  ...graphNames.map((n) => `<span class="gp">${esc(n)}</span>`),
617
+ (earningsSource === 'truth_layer' || earnings.length > 0) ? '<span class="gp">Earnings Intelligence</span>' : '',
618
+ (marketData && marketData.data_status !== 'no_signal') ? '<span class="gp">Financial Snapshot</span>' : '',
457
619
  hasGoogleTrendsData ? '<span class="gp">Google Trends</span>' : '',
458
620
  supplemental?.wikipedia ? '<span class="gp">Wikipedia</span>' : '',
459
621
  supplemental?.amazon ? '<span class="gp">Amazon</span>' : '',
@@ -528,9 +690,12 @@ export async function renderBrandWidget(profile) {
528
690
  'BEA_STAT_2_SUB': beaChangeSub,
529
691
  'GEO_SECTION_HTML': geoBarsHtml ? `<div class="sl2">Geographic spread</div>
530
692
  ${geoBarsHtml}` : '',
531
- 'EARNINGS_SECTION_HTML': earningsHtml ? `<div class="sl2">Earnings intelligence</div>
693
+ 'EARNINGS_SECTION_HTML': earningsHtml ? `<div class="sl2">Quarterly Earnings & Wall Street Intelligence</div>
532
694
  ${earningsHtml}
533
- <p class="note">Source: Fodda Earnings Intelligence.</p>` : '',
695
+ <p class="note">Source: Fodda Institutional Earnings Intelligence (SEC Filings & Executive Earnings Call Transcripts).</p>` : '',
696
+ 'FINANCIAL_SNAPSHOT_SECTION_HTML': financialSnapshotHtml ? `<div class="sl2">Institutional Financial Snapshot</div>
697
+ ${financialSnapshotHtml}
698
+ <p class="note">Source: Institutional SEC & Market Financial Filings.</p>` : '',
534
699
  'SOURCE_PILLS_HTML': sourcePills,
535
700
  'EXPORT_1_LABEL': exportLabels[0].label,
536
701
  'EXPORT_1_DESC': exportLabels[0].desc,
@@ -565,10 +730,12 @@ export async function renderBrandWidget(profile) {
565
730
  fills['GT_CAPTION'] = supplemental?.google_trends ? `12-month search interest for "${brand}". Peak: ${supplemental.google_trends.peak_interest || '—'}, current: ${supplemental.google_trends.latest_value || '—'}. Source: Google Trends.` : `Search interest data for "${brand}". Source: Google Trends.`;
566
731
  fills['RELATED_QUERIES_NOTE'] = supplemental?.google_trends?.related_queries?.length ? `Top related searches when people look for ${brand}.` : '';
567
732
  fills['WIKI_NOTE'] = wikiData.length > 0 ? `Daily Wikipedia pageviews for ${brand}-related articles. Higher = more cultural attention.` : '';
733
+ const safeBrandName = esc(brand).replace(/'/g, "\\'");
734
+ const safeCompName = competitors[0]?.brand ? esc(competitors[0].brand).replace(/'/g, "\\'") : 'top rival';
568
735
  fills['SUGGESTED_NEXT_HTML'] = `<div style="display:flex;flex-wrap:wrap;gap:6px;">
569
- <button class="btn-out" onclick="sendPrompt('What are ${brand.replace(/'/g, "\\'")}'s competitors doing differently?')">Competitive landscape</button>
570
- <button class="btn-out" onclick="sendPrompt('Show me the evidence behind ${brand.replace(/'/g, "\\'")}'s strongest trend')">Deep dive</button>
571
- <button class="btn-out" onclick="sendPrompt('How does ${brand.replace(/'/g, "\\'")}' compare to ${competitors[0]?.brand.replace(/'/g, "\\'") || 'its top competitor'}?')">Head-to-head</button>
736
+ <button class="btn-out" onclick="sendPrompt('What are competitors of ${safeBrandName} doing differently?')">Competitive landscape</button>
737
+ <button class="btn-out" onclick="sendPrompt('Show me the evidence behind the strongest trend for ${safeBrandName}')">Deep dive</button>
738
+ <button class="btn-out" onclick="sendPrompt('Compare ${safeBrandName} vs ${safeCompName}')">Head-to-head</button>
572
739
  </div>`;
573
740
  html = replaceSlots(html, fills);
574
741
  // ── Final cleanup: strip any remaining unfilled {{...}} placeholders ──
@@ -689,6 +856,7 @@ export const TEMPLATE = `
689
856
  {{EVIDENCE_HTML}}
690
857
 
691
858
  {{EARNINGS_SECTION_HTML}}
859
+ {{FINANCIAL_SNAPSHOT_SECTION_HTML}}
692
860
 
693
861
  <div class="sec">Relevant trends</div>
694
862
  {{TREND_FOOTPRINT_INTRO}}
@@ -1 +1 @@
1
- {"version":3,"file":"brandTemplate.js","sourceRoot":"","sources":["../src/brandTemplate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"brandTemplate.js","sourceRoot":"","sources":["../src/brandTemplate.ts"],"names":[],"mappings":"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"}