fodda-mcp 1.3.2 → 1.30.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.
Files changed (109) hide show
  1. package/LICENSE +31 -0
  2. package/README.md +192 -20
  3. package/dist/a2aHandler.d.ts +20 -0
  4. package/dist/a2aHandler.d.ts.map +1 -0
  5. package/dist/a2aHandler.js +247 -0
  6. package/dist/a2aHandler.js.map +1 -0
  7. package/dist/agents/fodda-researcher/index.d.ts +35 -0
  8. package/dist/agents/fodda-researcher/index.d.ts.map +1 -0
  9. package/dist/agents/fodda-researcher/index.js +62 -0
  10. package/dist/agents/fodda-researcher/index.js.map +1 -0
  11. package/dist/agents/fodda-researcher/skills.d.ts +16 -0
  12. package/dist/agents/fodda-researcher/skills.d.ts.map +1 -0
  13. package/dist/agents/fodda-researcher/skills.js +163 -0
  14. package/dist/agents/fodda-researcher/skills.js.map +1 -0
  15. package/dist/brandTemplate.d.ts +14 -0
  16. package/dist/brandTemplate.d.ts.map +1 -0
  17. package/dist/brandTemplate.js +742 -0
  18. package/dist/brandTemplate.js.map +1 -0
  19. package/dist/catalogCache.d.ts +177 -0
  20. package/dist/catalogCache.d.ts.map +1 -0
  21. package/dist/catalogCache.js +708 -0
  22. package/dist/catalogCache.js.map +1 -0
  23. package/dist/editorialFill.d.ts +44 -0
  24. package/dist/editorialFill.d.ts.map +1 -0
  25. package/dist/editorialFill.js +377 -0
  26. package/dist/editorialFill.js.map +1 -0
  27. package/dist/enrichment.d.ts +74 -0
  28. package/dist/enrichment.d.ts.map +1 -0
  29. package/dist/enrichment.js +211 -0
  30. package/dist/enrichment.js.map +1 -0
  31. package/dist/errorHandling.d.ts +52 -0
  32. package/dist/errorHandling.d.ts.map +1 -0
  33. package/dist/errorHandling.js +327 -0
  34. package/dist/errorHandling.js.map +1 -0
  35. package/dist/index.d.ts +0 -1
  36. package/dist/index.js +595 -410
  37. package/dist/index.js.map +1 -1
  38. package/dist/pricingCache.d.ts +99 -0
  39. package/dist/pricingCache.d.ts.map +1 -0
  40. package/dist/pricingCache.js +414 -0
  41. package/dist/pricingCache.js.map +1 -0
  42. package/dist/queryCache.d.ts +25 -0
  43. package/dist/queryCache.d.ts.map +1 -0
  44. package/dist/queryCache.js +194 -0
  45. package/dist/queryCache.js.map +1 -0
  46. package/dist/searchTemplate.d.ts +16 -0
  47. package/dist/searchTemplate.d.ts.map +1 -0
  48. package/dist/searchTemplate.js +318 -0
  49. package/dist/searchTemplate.js.map +1 -0
  50. package/dist/sessionTracker.d.ts +39 -0
  51. package/dist/sessionTracker.d.ts.map +1 -0
  52. package/dist/sessionTracker.js +187 -0
  53. package/dist/sessionTracker.js.map +1 -0
  54. package/dist/skillClient.d.ts +142 -0
  55. package/dist/skillClient.d.ts.map +1 -0
  56. package/dist/skillClient.js +256 -0
  57. package/dist/skillClient.js.map +1 -0
  58. package/dist/svgVisuals.d.ts +77 -0
  59. package/dist/svgVisuals.d.ts.map +1 -0
  60. package/dist/svgVisuals.js +323 -0
  61. package/dist/svgVisuals.js.map +1 -0
  62. package/dist/systemPrompt.d.ts +26 -0
  63. package/dist/systemPrompt.d.ts.map +1 -0
  64. package/dist/systemPrompt.js +546 -0
  65. package/dist/systemPrompt.js.map +1 -0
  66. package/dist/test-waverunner-response.d.ts +2 -0
  67. package/dist/test-waverunner-response.d.ts.map +1 -0
  68. package/dist/test-waverunner-response.js +20 -0
  69. package/dist/test-waverunner-response.js.map +1 -0
  70. package/dist/test_analyst.d.ts +2 -0
  71. package/dist/test_analyst.d.ts.map +1 -0
  72. package/dist/test_analyst.js +39 -0
  73. package/dist/test_analyst.js.map +1 -0
  74. package/dist/test_analyst_local.d.ts +2 -0
  75. package/dist/test_analyst_local.d.ts.map +1 -0
  76. package/dist/test_analyst_local.js +51 -0
  77. package/dist/test_analyst_local.js.map +1 -0
  78. package/dist/test_live_mcp.d.ts +2 -0
  79. package/dist/test_live_mcp.d.ts.map +1 -0
  80. package/dist/test_live_mcp.js +49 -0
  81. package/dist/test_live_mcp.js.map +1 -0
  82. package/dist/test_skills.d.ts +9 -0
  83. package/dist/test_skills.d.ts.map +1 -0
  84. package/dist/test_skills.js +267 -0
  85. package/dist/test_skills.js.map +1 -0
  86. package/dist/toolHandlers.d.ts +11 -0
  87. package/dist/toolHandlers.d.ts.map +1 -0
  88. package/dist/toolHandlers.js +2829 -0
  89. package/dist/toolHandlers.js.map +1 -0
  90. package/dist/tools.d.ts +80 -3
  91. package/dist/tools.d.ts.map +1 -1
  92. package/dist/tools.js +89 -186
  93. package/dist/tools.js.map +1 -1
  94. package/dist/trialTracker.d.ts +58 -0
  95. package/dist/trialTracker.d.ts.map +1 -0
  96. package/dist/trialTracker.js +179 -0
  97. package/dist/trialTracker.js.map +1 -0
  98. package/dist/types.d.ts +3 -0
  99. package/dist/types.d.ts.map +1 -1
  100. package/dist/verify_hmac.js +1 -1
  101. package/dist/verify_hmac.js.map +1 -1
  102. package/dist/verify_tools_endpoint.js +5 -5
  103. package/dist/verify_tools_endpoint.js.map +1 -1
  104. package/dist/widgetShell.d.ts +15 -0
  105. package/dist/widgetShell.d.ts.map +1 -0
  106. package/dist/widgetShell.js +151 -0
  107. package/dist/widgetShell.js.map +1 -0
  108. package/package.json +10 -6
  109. package/server.json +12 -17
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalogCache.js","sourceRoot":"","sources":["../src/catalogCache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Editorial Fill — Server-side slot population for widget templates
3
+ *
4
+ * Tier 1: Simple slots filled mechanically from data (no LLM, instant)
5
+ * Tier 2: Analysis slots filled via Vertex AI Gemini (LLM, ~1-2s)
6
+ *
7
+ * Fallback: If LLM call fails, returns template with {{SLOT}} intact
8
+ * for Claude to fill client-side.
9
+ */
10
+ export interface TrendSummary {
11
+ name: string;
12
+ signal: number;
13
+ stage: string;
14
+ graphName: string;
15
+ brands: string[];
16
+ desc: string;
17
+ }
18
+ export declare function fillSearchInsight(trends: TrendSummary[], query: string): Promise<string>;
19
+ export declare function fillBrandOneLiner(brandName: string, trends: {
20
+ trend_name?: string;
21
+ trendName?: string;
22
+ signal_score?: number;
23
+ }[], velocity: string, topCompetitors: string[]): Promise<string>;
24
+ export declare function fillTrendFootprintIntro(brandName: string, trends: {
25
+ trend_name?: string;
26
+ trendName?: string;
27
+ lifecycle?: string;
28
+ graphName?: string;
29
+ signal_score?: number;
30
+ }[], lifecycleDist: Record<string, number>): Promise<string>;
31
+ export declare function fillMarketDataIntro(brandName: string, supplemental: {
32
+ google_trends?: any;
33
+ wikipedia?: any;
34
+ amazon?: any;
35
+ census_retail?: any;
36
+ }): Promise<string>;
37
+ export declare function fillAnalysis(query: string, trends: TrendSummary[], supplementalSummary: string): Promise<string>;
38
+ export declare function fillBrandVerdict(brandName: string, trendSummary: string, competitorList: string, supplementalSummary: string): Promise<{
39
+ title: string;
40
+ body: string;
41
+ competitive_insight: string;
42
+ }>;
43
+ export declare function replaceSlots(template: string, fills: Record<string, string>): string;
44
+ //# sourceMappingURL=editorialFill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editorialFill.d.ts","sourceRoot":"","sources":["../src/editorialFill.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAiDH,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA8C9F;AAED,wBAAsB,iBAAiB,CACnC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,EAC5E,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EAAE,GACzB,OAAO,CAAC,MAAM,CAAC,CA+CjB;AAMD,wBAAsB,uBAAuB,CACzC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,EACpH,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACtC,OAAO,CAAC,MAAM,CAAC,CAmDjB;AAED,wBAAsB,mBAAmB,CACrC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE;IAAE,aAAa,CAAC,EAAE,GAAG,CAAC;IAAC,SAAS,CAAC,EAAE,GAAG,CAAC;IAAC,MAAM,CAAC,EAAE,GAAG,CAAC;IAAC,aAAa,CAAC,EAAE,GAAG,CAAA;CAAE,GAC1F,OAAO,CAAC,MAAM,CAAC,CA4EjB;AAKD,wBAAsB,YAAY,CAC9B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,YAAY,EAAE,EACtB,mBAAmB,EAAE,MAAM,GAC5B,OAAO,CAAC,MAAM,CAAC,CAsCjB;AAED,wBAAsB,gBAAgB,CAClC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,mBAAmB,EAAE,MAAM,GAC5B,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,mBAAmB,EAAE,MAAM,CAAA;CAAE,CAAC,CAgDvE;AAKD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAQpF"}
@@ -0,0 +1,377 @@
1
+ /**
2
+ * Editorial Fill — Server-side slot population for widget templates
3
+ *
4
+ * Tier 1: Simple slots filled mechanically from data (no LLM, instant)
5
+ * Tier 2: Analysis slots filled via Vertex AI Gemini (LLM, ~1-2s)
6
+ *
7
+ * Fallback: If LLM call fails, returns template with {{SLOT}} intact
8
+ * for Claude to fill client-side.
9
+ */
10
+ import { GoogleGenAI, ServiceTier } from '@google/genai';
11
+ // Singleton: instantiate SDK once at module load, not per-call
12
+ const genAI = process.env.GOOGLE_AI_API_KEY
13
+ ? new GoogleGenAI({ apiKey: process.env.GOOGLE_AI_API_KEY })
14
+ : null;
15
+ const GEMINI_TIMEOUT_MS = 5000; // 5s hard timeout to prevent widget-render hangs
16
+ async function callGemini(prompt, modelName = 'gemini-2.0-flash', maxTokens = 2048) {
17
+ if (!genAI) {
18
+ return { text: '', error: 'GOOGLE_AI_API_KEY environment variable is not set.' };
19
+ }
20
+ try {
21
+ const generatePromise = genAI.models.generateContent({
22
+ model: modelName,
23
+ contents: [{ role: 'user', parts: [{ text: prompt }] }],
24
+ config: {
25
+ temperature: 0.7,
26
+ maxOutputTokens: maxTokens,
27
+ responseMimeType: 'application/json',
28
+ serviceTier: ServiceTier.FLEX,
29
+ },
30
+ });
31
+ const timeoutPromise = new Promise((_, reject) => setTimeout(() => reject(new Error('Gemini timeout')), GEMINI_TIMEOUT_MS));
32
+ const result = await Promise.race([generatePromise, timeoutPromise]);
33
+ const text = result.text ?? '';
34
+ return { text };
35
+ }
36
+ catch (err) {
37
+ return { text: '', error: `Google AI Studio failed: ${err.message}` };
38
+ }
39
+ }
40
+ export async function fillSearchInsight(trends, query) {
41
+ if (trends.length === 0)
42
+ return '';
43
+ const trendList = trends.slice(0, 6).map(t => `"${t.name}" (signal:${t.signal}, ${t.stage}, brands:${t.brands.slice(0, 3).join('/') || '—'})`).join(', ');
44
+ const prompt = `---
45
+ title: Search Insight Fill Prompt
46
+ compliance: RFC-2119
47
+ ---
48
+
49
+ ### FUNCTION: GenerateSearchInsight
50
+ - input_query: "${query}"
51
+ - input_trends: [${trendList}]
52
+
53
+ ### RULE: StyleConstraints
54
+ - The output MUST be a single, concise sentence (max 40 words) summarizing the strategic insight from the trends.
55
+ - The output MUST focus on WHAT the data reveals about the topic, not how many trends or which graphs they came from.
56
+ - The agent MUST NOT mention signal scores, trend counts, graph names, or sources.
57
+ - Write as an editorial insight, not a data description.
58
+ - Do NOT wrap the response in quotation marks.`;
59
+ try {
60
+ const result = await callGemini(prompt, 'gemini-2.0-flash', 256);
61
+ if (result.text && result.text.length > 10) {
62
+ let text = result.text;
63
+ // Unwrap JSON — callGemini uses responseMimeType: 'application/json'
64
+ try {
65
+ const parsed = JSON.parse(text);
66
+ if (typeof parsed === 'string') {
67
+ text = parsed;
68
+ }
69
+ else if (typeof parsed === 'object' && parsed !== null) {
70
+ text = Object.values(parsed).find(v => typeof v === 'string' && v.length > 10) || text;
71
+ }
72
+ }
73
+ catch { /* not JSON, use as-is */ }
74
+ text = text.replace(/^["']|["']$/g, '').trim();
75
+ if (text.length > 10 && text.length < 300)
76
+ return text;
77
+ }
78
+ }
79
+ catch (err) {
80
+ console.error('[fillSearchInsight] Gemini failed:', err);
81
+ }
82
+ // Fallback: simple strategic sentence without metadata
83
+ const topTrend = trends[0];
84
+ return `Key signal: ${topTrend?.name || query} is reshaping the landscape.`;
85
+ }
86
+ export async function fillBrandOneLiner(brandName, trends, velocity, topCompetitors) {
87
+ const topTrends = trends.slice(0, 4).map(t => t.trend_name || t.trendName || '').filter(Boolean);
88
+ const trendLifecycles = trends.slice(0, 4).map(t => `${t.trend_name || t.trendName || ''} (${t.lifecycle || 'building'})`).filter(Boolean);
89
+ const compList = topCompetitors.slice(0, 3).join(', ');
90
+ const prompt = `---
91
+ title: Brand One-Liner Fill Prompt
92
+ compliance: RFC-2119
93
+ ---
94
+
95
+ ### FUNCTION: GenerateBrandOneLiner
96
+ - input_brand: "${brandName}"
97
+ - input_momentum: "${velocity}"
98
+ - input_connected_trends: [${trendLifecycles.map(t => `"${t}"`).join(', ')}]
99
+ ${compList ? `- input_co_occurring: [${topCompetitors.slice(0, 3).map(c => `"${c}"`).join(', ')}]` : ''}
100
+
101
+ ### RULE: ContentConstraints
102
+ - The output MUST be exactly ONE sentence (max 30 words) capturing the most interesting tension in ${brandName}'s current position.
103
+ - The output MUST name at least one specific trend from the input list.
104
+ - The output MUST state a TENSION, SHIFT, or SURPRISE — NOT a strength statement.
105
+ - IMPORTANT: input_momentum describes ${brandName}'s overall evidence velocity (volume of coverage change). Each trend has its own lifecycle stage shown in parentheses. Do NOT say a trend is "${velocity}" if that trend's lifecycle is different — instead, find the tension between them.
106
+ - BANNED words: leverages, solidifies, dominance, premiumization, platform expansion, innovative, commitment. These words MUST NOT be used.
107
+ - Write like a journalist, not a consultant.
108
+ - Return output strictly formatted as JSON matching this schema: {"one_liner":"your sentence"}`;
109
+ try {
110
+ const result = await callGemini(prompt, 'gemini-2.0-flash', 256);
111
+ if (result.text && result.text.length > 10) {
112
+ let text = result.text;
113
+ // Unwrap JSON — callGemini uses responseMimeType: 'application/json'
114
+ try {
115
+ const parsed = JSON.parse(text);
116
+ if (typeof parsed === 'string') {
117
+ text = parsed;
118
+ }
119
+ else if (typeof parsed === 'object' && parsed !== null) {
120
+ text = Object.values(parsed).find(v => typeof v === 'string' && v.length > 10) || text;
121
+ }
122
+ }
123
+ catch { /* not JSON, use as-is */ }
124
+ text = text.replace(/^["']|["']$/g, '').trim();
125
+ if (text.length > 10 && text.length < 300)
126
+ return text;
127
+ }
128
+ }
129
+ catch (err) {
130
+ console.error('[fillBrandOneLiner] Gemini failed:', err);
131
+ }
132
+ // Fallback
133
+ return `${brandName} is ${velocity} across ${trends.length} trend${trends.length !== 1 ? 's' : ''} including ${topTrends[0] || 'emerging signals'}.`;
134
+ }
135
+ // ---------------------------------------------------------------------------
136
+ // Section intros — short interpretive prose for widget sections
137
+ // ---------------------------------------------------------------------------
138
+ export async function fillTrendFootprintIntro(brandName, trends, lifecycleDist) {
139
+ if (trends.length === 0)
140
+ return '';
141
+ // Build a structured summary Gemini can interpret
142
+ const trendList = trends.slice(0, 8).map(t => `"${(t.trend_name || t.trendName || '').trim()}" (${t.lifecycle || '?'}, from ${t.graphName || '?'})`).join('; ');
143
+ const lcSummary = Object.entries(lifecycleDist).map(([k, v]) => `${k}: ${v}`).join(', ');
144
+ const graphNames = [...new Set(trends.map(t => t.graphName).filter(Boolean))];
145
+ const graphSpread = graphNames.length;
146
+ const prompt = `---
147
+ title: Trend Footprint Intro Prompt
148
+ compliance: RFC-2119
149
+ ---
150
+
151
+ ### FUNCTION: GenerateTrendFootprintIntro
152
+ - input_brand: "${brandName}"
153
+ - input_trends: "${trendList}"
154
+ - input_lifecycle_distribution: "${lcSummary}"
155
+ - input_total_trends: ${trends.length}
156
+ - input_graph_spread: "${graphNames.join(', ')}"
157
+
158
+ ### RULE: InterpretationDirectives
159
+ - The output MUST be exactly 2-3 declarative and specific sentences interpreting what ${brandName}'s trend footprint reveals.
160
+ - The output MUST lead with the single most revealing pattern (e.g. fading vs building imbalance, concentration vs spread).
161
+ - The output MUST name 1-2 specific trend names from the inputs to ground the claim.
162
+ - The output MUST say something only true of THIS brand and THIS data, avoiding generic strategy language.
163
+ - The agent MUST NOT use phrases: "leverages", "solidifies dominance", "strategic push", or "commitment to".
164
+ - The agent MUST NOT mention signal scores, evidence counts, or methodology.
165
+ - Return output strictly formatted as JSON matching this schema: {"intro":"your 2-3 sentences"}`;
166
+ try {
167
+ const result = await callGemini(prompt, 'gemini-2.0-flash', 512);
168
+ if (result.text) {
169
+ let text = result.text;
170
+ try {
171
+ const parsed = JSON.parse(text);
172
+ if (typeof parsed === 'string')
173
+ text = parsed;
174
+ else if (parsed?.intro)
175
+ text = parsed.intro;
176
+ else if (typeof parsed === 'object') {
177
+ text = Object.values(parsed).find(v => typeof v === 'string' && v.length > 20) || text;
178
+ }
179
+ }
180
+ catch { /* not JSON */ }
181
+ text = text.replace(/^["']|["']$/g, '').trim();
182
+ if (text.length > 20 && text.length < 500)
183
+ return text;
184
+ }
185
+ }
186
+ catch (err) {
187
+ console.error('[fillTrendFootprintIntro] Gemini failed:', err);
188
+ }
189
+ return '';
190
+ }
191
+ export async function fillMarketDataIntro(brandName, supplemental) {
192
+ // Build a concise data summary for Gemini
193
+ // Note: supplemental API responses wrap data inside .snapshot alongside metadata
194
+ const parts = [];
195
+ const gtRaw = supplemental?.google_trends;
196
+ const gt = gtRaw?.snapshot || gtRaw; // unwrap .snapshot if present
197
+ if (gt?.interest_over_time?.length) {
198
+ const latest = gt.interest_over_time[gt.interest_over_time.length - 1];
199
+ parts.push(`Google Trends: latest relative interest ${latest?.value ?? '?'}/100`);
200
+ }
201
+ else if (gt?.latest_value) {
202
+ parts.push(`Google Trends: latest relative interest ${gt.latest_value}/100, peak: ${gt.peak_interest || '?'}`);
203
+ }
204
+ const wikiRaw = supplemental?.wikipedia;
205
+ const wiki = wikiRaw?.snapshot || wikiRaw; // unwrap .snapshot if present
206
+ if (Array.isArray(wiki) && wiki.length > 0) {
207
+ const brandWiki = wiki.find((w) => w.article?.toLowerCase().includes(brandName.toLowerCase()));
208
+ if (brandWiki?.avg_daily_views)
209
+ parts.push(`Wikipedia: ${brandWiki.avg_daily_views.toLocaleString()} avg daily pageviews`);
210
+ }
211
+ else if (wiki && typeof wiki === 'object' && !Array.isArray(wiki)) {
212
+ const views = wiki.avg_daily_views || wiki.pageviews?.avg_daily || wiki.daily_views;
213
+ if (views)
214
+ parts.push(`Wikipedia: ${Number(views).toLocaleString()} avg daily pageviews`);
215
+ // Try articles array nested inside snapshot
216
+ if (!views && wiki.articles && Array.isArray(wiki.articles)) {
217
+ const brandWiki = wiki.articles.find((w) => w.article?.toLowerCase().includes(brandName.toLowerCase()));
218
+ if (brandWiki?.avg_daily_views)
219
+ parts.push(`Wikipedia: ${brandWiki.avg_daily_views.toLocaleString()} avg daily pageviews`);
220
+ }
221
+ }
222
+ const amzRaw = supplemental?.amazon;
223
+ const amz = amzRaw?.snapshot || amzRaw; // unwrap .snapshot if present
224
+ if (amz?.product_count) {
225
+ parts.push(`Amazon: ${amz.product_count} listings, median price ${amz?.price_range?.median || amz?.median_price || '?'}, avg rating ${amz?.average_rating || '?'}`);
226
+ }
227
+ const censusRaw = supplemental?.census_retail;
228
+ const census = censusRaw?.snapshot || censusRaw; // unwrap .snapshot if present
229
+ if (census?.latest_value || census?.retail_sales) {
230
+ const val = census.latest_value || census.retail_sales;
231
+ parts.push(`US retail sales (Census): ${val}`);
232
+ }
233
+ console.error(`[fillMarketDataIntro] ${brandName}: parts=${parts.length}: ${parts.join(' | ')}`);
234
+ if (parts.length === 0)
235
+ return '';
236
+ const prompt = `---
237
+ title: Market Data Intro Prompt
238
+ compliance: RFC-2119
239
+ ---
240
+
241
+ ### FUNCTION: GenerateMarketDataIntro
242
+ - input_brand: "${brandName}"
243
+ - input_data: "${parts.join('. ')}"
244
+
245
+ ### RULE: InterpretationDirectives
246
+ - The output MUST be exactly 2 sentences interpreting the ${brandName}'s market data signals.
247
+ - The output MUST lead with the most striking number and what it means.
248
+ - Note any surprises in the data, but the agent MUST NOT speculate about causes not present in the data.
249
+ - If comparing pageviews or search interest, note that these are attention signals that fluctuate with news cycles and avoid inferring long-term strategy from them.
250
+ - The agent MUST NOT use phrases like "solidifies market dominance" or "demonstrates strong positioning".
251
+ - Return output strictly formatted as JSON matching this schema: {"intro":"your 2 sentences"}`;
252
+ try {
253
+ const result = await callGemini(prompt, 'gemini-2.0-flash', 512);
254
+ if (result.text) {
255
+ let text = result.text;
256
+ try {
257
+ const parsed = JSON.parse(text);
258
+ if (typeof parsed === 'string')
259
+ text = parsed;
260
+ else if (parsed?.intro)
261
+ text = parsed.intro;
262
+ else if (typeof parsed === 'object') {
263
+ text = Object.values(parsed).find(v => typeof v === 'string' && v.length > 20) || text;
264
+ }
265
+ }
266
+ catch { /* not JSON */ }
267
+ text = text.replace(/^["']|["']$/g, '').trim();
268
+ if (text.length > 20 && text.length < 500)
269
+ return text;
270
+ }
271
+ }
272
+ catch (err) {
273
+ console.error('[fillMarketDataIntro] Gemini failed:', err);
274
+ }
275
+ return '';
276
+ }
277
+ // ---------------------------------------------------------------------------
278
+ // Tier 2: LLM-powered analysis fills
279
+ // ---------------------------------------------------------------------------
280
+ export async function fillAnalysis(query, trends, supplementalSummary) {
281
+ if (trends.length === 0)
282
+ return '';
283
+ const trendList = trends.slice(0, 8).map(t => `"${t.name}" (sig:${t.signal}, ${t.stage}, brands:${t.brands.slice(0, 3).join('/') || '—'}, ${t.graphName})`).join('\n');
284
+ const prompt = `---
285
+ title: Trend Analysis Prompt
286
+ compliance: RFC-2119
287
+ ---
288
+
289
+ ### FUNCTION: GenerateTrendAnalysis
290
+ - input_query: "${query}"
291
+ - input_trends: "${trendList}"
292
+ ${supplementalSummary ? `- input_supplemental_context: "${supplementalSummary}"` : ''}
293
+
294
+ ### RULE: FormatConstraints
295
+ - The output MUST be a 3-5 paragraph analysis written from the perspective of a senior brand strategist.
296
+ - The output MUST be formatted as HTML using only <p> and <strong> tags inside the JSON.
297
+ - The agent MUST reference specific trends, brands, and scores from the inputs.
298
+ - The output MUST NOT contain filler or mention "Fodda".
299
+ - Return output strictly formatted as JSON matching this schema: {"analysis":"HTML paragraphs"}`;
300
+ try {
301
+ const result = await callGemini(prompt, 'gemini-2.0-flash', 1024);
302
+ if (!result.text) {
303
+ console.error(`[fillAnalysis] Gemini returned no text: ${result.error || 'Unknown'}`);
304
+ return '';
305
+ }
306
+ const textToParse = result.text.replace(/^```json\s*/i, '').replace(/\s*```$/i, '');
307
+ const parsedRaw = JSON.parse(textToParse);
308
+ const parsed = Array.isArray(parsedRaw) ? parsedRaw[0] : parsedRaw;
309
+ return parsed.analysis || parsed.analysis_html || parsed.body || parsed.text || '';
310
+ }
311
+ catch (err) {
312
+ console.error(`[fillAnalysis] Gemini analysis failed: ${err.message}`);
313
+ return '';
314
+ }
315
+ }
316
+ export async function fillBrandVerdict(brandName, trendSummary, competitorList, supplementalSummary) {
317
+ const prompt = `---
318
+ title: Brand Verdict Prompt
319
+ compliance: RFC-2119
320
+ ---
321
+
322
+ ### FUNCTION: GenerateBrandVerdict
323
+ - input_brand: "${brandName}"
324
+ - input_trends: "${trendSummary}"
325
+ - input_competitors: "${competitorList}"
326
+ ${supplementalSummary ? `- input_supplemental_context: "${supplementalSummary}"` : ''}
327
+
328
+ ### RULE: ContentConstraints
329
+ - The output MUST be a specific brand intelligence verdict.
330
+ - Return output strictly formatted as JSON matching this schema:
331
+ {
332
+ "verdict_title": "4-8 word headline",
333
+ "verdict_body": "<p>2-3 paragraphs with <strong></p>",
334
+ "competitive_insight": "2-3 sentences comparing against competitors"
335
+ }
336
+ - The output MUST NOT mention "Fodda".`;
337
+ try {
338
+ const result = await callGemini(prompt, 'gemini-2.0-flash', 1024);
339
+ if (!result.text) {
340
+ console.error(`[fillBrandVerdict] Gemini returned no text: ${result.error || 'Unknown'}`);
341
+ return { title: '', body: '', competitive_insight: '' };
342
+ }
343
+ const textToParse = result.text.replace(/^```json\s*/i, '').replace(/\s*```$/i, '');
344
+ const parsedRaw = JSON.parse(textToParse);
345
+ const parsed = Array.isArray(parsedRaw) ? parsedRaw[0] : parsedRaw;
346
+ return {
347
+ title: parsed.verdict_title || parsed.verdictTitle || parsed.title || '',
348
+ body: parsed.verdict_body || parsed.verdictBody || parsed.verdict_content || parsed.verdictContent || parsed.body || parsed.content || parsed.verdict || parsed.text || parsed.analysis || parsed.summary || parsed.description ||
349
+ // Ultimate fallback: find the longest string value in the object (skip the title)
350
+ (() => {
351
+ const titleVal = parsed.verdict_title || parsed.verdictTitle || parsed.title || '';
352
+ const longest = Object.values(parsed)
353
+ .filter((v) => typeof v === 'string' && v !== titleVal && v.length > 20)
354
+ .sort((a, b) => b.length - a.length)[0];
355
+ return longest || '';
356
+ })(),
357
+ competitive_insight: parsed.competitive_insight || parsed.competitiveInsight || parsed.insight || '',
358
+ };
359
+ }
360
+ catch (err) {
361
+ console.error(`[fillBrandVerdict] Gemini brand verdict failed: ${err.message}`);
362
+ return { title: '', body: '', competitive_insight: '' };
363
+ }
364
+ }
365
+ // ---------------------------------------------------------------------------
366
+ // Main entry: fill all slots in a template string
367
+ // ---------------------------------------------------------------------------
368
+ export function replaceSlots(template, fills) {
369
+ let result = template;
370
+ for (const [slot, value] of Object.entries(fills)) {
371
+ if (value !== undefined && value !== null) {
372
+ result = result.replace(`{{${slot}}}`, value);
373
+ }
374
+ }
375
+ return result;
376
+ }
377
+ //# sourceMappingURL=editorialFill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editorialFill.js","sourceRoot":"","sources":["../src/editorialFill.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Trend Enrichment — lifecycle, momentum, and evidence formatting helpers.
3
+ *
4
+ * Extracted from index.ts to reduce monolith size.
5
+ * These functions operate on fields already present on Neo4j Trend nodes
6
+ * (firstSeen, lastSeen, evidenceCount) — no API calls needed.
7
+ */
8
+ export declare function computeLifecycle(row: any, now?: number): string;
9
+ export declare function computeMomentum(row: any, now?: number): string;
10
+ export declare function isFastMover(row: any, now?: number): boolean;
11
+ export declare const GRAPH_BADGES: Record<string, string>;
12
+ /**
13
+ * Enrich evidence items with pre-formatted markdown citations and editorial roles.
14
+ * Models are much more likely to pass through a ready-made link than construct one.
15
+ */
16
+ export declare function enrichEvidence(items: any[], opts?: {
17
+ sortByRecency?: boolean;
18
+ }): any[];
19
+ export declare function getFoddaTheme(graphId: string): {
20
+ brand: {
21
+ primary: string;
22
+ primaryLight: string;
23
+ primaryDark: string;
24
+ chartAccent: string;
25
+ };
26
+ graphType: string;
27
+ clusters: {
28
+ light: {
29
+ techAI: string;
30
+ physicalSpaces: string;
31
+ wellnessHealth: string;
32
+ cultureSociety: string;
33
+ sustainability: string;
34
+ commerceEcon: string;
35
+ designMaterials: string;
36
+ trustGovernance: string;
37
+ foodIndulgence: string;
38
+ globalGeo: string;
39
+ };
40
+ dark: {
41
+ techAI: string;
42
+ physicalSpaces: string;
43
+ wellnessHealth: string;
44
+ cultureSociety: string;
45
+ sustainability: string;
46
+ commerceEcon: string;
47
+ designMaterials: string;
48
+ trustGovernance: string;
49
+ foodIndulgence: string;
50
+ globalGeo: string;
51
+ };
52
+ };
53
+ scales: {
54
+ sequential: string[];
55
+ positive: string[];
56
+ negative: string[];
57
+ };
58
+ };
59
+ export declare function getSupplementalTheme(): {
60
+ brand: {
61
+ primary: string;
62
+ primaryLight: string;
63
+ primaryDark: string;
64
+ chartAccent: string;
65
+ };
66
+ graphType: string;
67
+ clusters: {};
68
+ scales: {
69
+ sequential: string[];
70
+ positive: string[];
71
+ negative: string[];
72
+ };
73
+ };
74
+ //# sourceMappingURL=enrichment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enrichment.d.ts","sourceRoot":"","sources":["../src/enrichment.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAoB/D;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAO9D;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAM3D;AAMD,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAG/C,CAAC;AAgBF;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,IAAI,GAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,GAAG,EAAE,CA2C1F;AAcD,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqD5C;AAED,wBAAgB,oBAAoB;;;;;;;;;;;;;;EAgBnC"}