cdp-edge 1.0.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 (176) hide show
  1. package/README.md +324 -0
  2. package/bin/cdp-edge.js +71 -0
  3. package/contracts/agent-versions.json +679 -0
  4. package/contracts/api-versions.json +372 -0
  5. package/contracts/types.ts +81 -0
  6. package/dist/commands/analyze.js +52 -0
  7. package/dist/commands/infra.js +54 -0
  8. package/dist/commands/install.js +191 -0
  9. package/dist/commands/server.js +174 -0
  10. package/dist/commands/setup.js +355 -0
  11. package/dist/commands/validate.js +248 -0
  12. package/dist/index.js +12 -0
  13. package/dist/sdk/cdpTrack.js +2095 -0
  14. package/dist/sdk/cdpTrack.min.js +64 -0
  15. package/dist/sdk/install-snippet.html +10 -0
  16. package/docs/CI-CD-SETUP.md +217 -0
  17. package/docs/events-reference.md +359 -0
  18. package/docs/installation.md +155 -0
  19. package/docs/quick-start.md +185 -0
  20. package/docs/sdk-reference.md +371 -0
  21. package/docs/whatsapp-ctwa.md +210 -0
  22. package/extracted-skill/tracking-events-generator/INDEX.md +94 -0
  23. package/extracted-skill/tracking-events-generator/INSTALACAO-CDPEDGE.md +58 -0
  24. package/extracted-skill/tracking-events-generator/INTEGRACAO-COMPLETA.md +683 -0
  25. package/extracted-skill/tracking-events-generator/MELHORIAS-IMPLEMENTADAS.md +513 -0
  26. package/extracted-skill/tracking-events-generator/Premium-Tracking-Intelligence-Resumo.md +333 -0
  27. package/extracted-skill/tracking-events-generator/SKILL.md +257 -0
  28. package/extracted-skill/tracking-events-generator/advanced-matching.js +364 -0
  29. package/extracted-skill/tracking-events-generator/agents/ab-ltv-agent.md +196 -0
  30. package/extracted-skill/tracking-events-generator/agents/ab-testing-agent.md +54 -0
  31. package/extracted-skill/tracking-events-generator/agents/attribution-agent.md +1304 -0
  32. package/extracted-skill/tracking-events-generator/agents/bidding-agent.md +347 -0
  33. package/extracted-skill/tracking-events-generator/agents/bing-agent.md +66 -0
  34. package/extracted-skill/tracking-events-generator/agents/browser-tracking.md +364 -0
  35. package/extracted-skill/tracking-events-generator/agents/code-guardian-agent.md +149 -0
  36. package/extracted-skill/tracking-events-generator/agents/compliance-agent.md +2097 -0
  37. package/extracted-skill/tracking-events-generator/agents/crm-integration-agent.md +1459 -0
  38. package/extracted-skill/tracking-events-generator/agents/dashboard-agent.md +456 -0
  39. package/extracted-skill/tracking-events-generator/agents/database-agent.md +668 -0
  40. package/extracted-skill/tracking-events-generator/agents/debug-agent.md +1455 -0
  41. package/extracted-skill/tracking-events-generator/agents/devops-agent.md +232 -0
  42. package/extracted-skill/tracking-events-generator/agents/domain-setup-agent.md +238 -0
  43. package/extracted-skill/tracking-events-generator/agents/email-agent.md +88 -0
  44. package/extracted-skill/tracking-events-generator/agents/fingerprint-agent.md +257 -0
  45. package/extracted-skill/tracking-events-generator/agents/fraud-detection-agent.md +143 -0
  46. package/extracted-skill/tracking-events-generator/agents/google-agent.md +235 -0
  47. package/extracted-skill/tracking-events-generator/agents/intelligence-agent.md +525 -0
  48. package/extracted-skill/tracking-events-generator/agents/lead-scoring-agent.md +282 -0
  49. package/extracted-skill/tracking-events-generator/agents/linkedin-agent.md +173 -0
  50. package/extracted-skill/tracking-events-generator/agents/localization-agent.md +55 -0
  51. package/extracted-skill/tracking-events-generator/agents/ltv-predictor-agent.md +59 -0
  52. package/extracted-skill/tracking-events-generator/agents/master-feedback-loop.md +960 -0
  53. package/extracted-skill/tracking-events-generator/agents/master-orchestrator.md +2154 -0
  54. package/extracted-skill/tracking-events-generator/agents/match-quality-agent.md +304 -0
  55. package/extracted-skill/tracking-events-generator/agents/memory-agent.json +25 -0
  56. package/extracted-skill/tracking-events-generator/agents/memory-agent.md +878 -0
  57. package/extracted-skill/tracking-events-generator/agents/meta-agent.md +118 -0
  58. package/extracted-skill/tracking-events-generator/agents/ml-clustering-agent.md +749 -0
  59. package/extracted-skill/tracking-events-generator/agents/page-analyzer.md +272 -0
  60. package/extracted-skill/tracking-events-generator/agents/performance-agent.md +1167 -0
  61. package/extracted-skill/tracking-events-generator/agents/performance-optimization-agent.md +1442 -0
  62. package/extracted-skill/tracking-events-generator/agents/pinterest-agent.md +318 -0
  63. package/extracted-skill/tracking-events-generator/agents/premium-tracking-intelligence-agent.md +849 -0
  64. package/extracted-skill/tracking-events-generator/agents/r2-setup-agent.md +258 -0
  65. package/extracted-skill/tracking-events-generator/agents/reddit-agent.md +321 -0
  66. package/extracted-skill/tracking-events-generator/agents/security-enterprise-agent.md +1861 -0
  67. package/extracted-skill/tracking-events-generator/agents/server-tracking.md +1188 -0
  68. package/extracted-skill/tracking-events-generator/agents/spotify-agent.md +391 -0
  69. package/extracted-skill/tracking-events-generator/agents/tiktok-agent.md +182 -0
  70. package/extracted-skill/tracking-events-generator/agents/tracking-plan-agent.md +459 -0
  71. package/extracted-skill/tracking-events-generator/agents/utm-agent.md +322 -0
  72. package/extracted-skill/tracking-events-generator/agents/validator-agent.md +271 -0
  73. package/extracted-skill/tracking-events-generator/agents/webhook-agent.md +177 -0
  74. package/extracted-skill/tracking-events-generator/agents/whatsapp-agent.md +129 -0
  75. package/extracted-skill/tracking-events-generator/agents/whatsapp-ctwa-setup-agent.md +707 -0
  76. package/extracted-skill/tracking-events-generator/agents/youtube-agent.md +537 -0
  77. package/extracted-skill/tracking-events-generator/anti-blocking.js +285 -0
  78. package/extracted-skill/tracking-events-generator/cdpTrack.js +640 -0
  79. package/extracted-skill/tracking-events-generator/contracts/api-versions.json +372 -0
  80. package/extracted-skill/tracking-events-generator/docs/guia-cloudflare-iniciante.md +107 -0
  81. package/extracted-skill/tracking-events-generator/engagement-scoring.js +226 -0
  82. package/extracted-skill/tracking-events-generator/evals/evals.json +235 -0
  83. package/extracted-skill/tracking-events-generator/integration-test.js +497 -0
  84. package/extracted-skill/tracking-events-generator/knowledge-base.md +3066 -0
  85. package/extracted-skill/tracking-events-generator/micro-events.js +992 -0
  86. package/extracted-skill/tracking-events-generator/models/captura-de-lead.md +78 -0
  87. package/extracted-skill/tracking-events-generator/models/captura-lead-evento-externo.md +99 -0
  88. package/extracted-skill/tracking-events-generator/models/checkout-proprio.md +111 -0
  89. package/extracted-skill/tracking-events-generator/models/lancamento-imobiliario.md +344 -0
  90. package/extracted-skill/tracking-events-generator/models/multi-step-checkout.md +672 -0
  91. package/extracted-skill/tracking-events-generator/models/pagina-obrigado.md +55 -0
  92. package/extracted-skill/tracking-events-generator/models/pinterest/conversions-api-template.js +144 -0
  93. package/extracted-skill/tracking-events-generator/models/pinterest/event-mappings.json +48 -0
  94. package/extracted-skill/tracking-events-generator/models/pinterest/tag-template.js +28 -0
  95. package/extracted-skill/tracking-events-generator/models/quiz-funnel.md +132 -0
  96. package/extracted-skill/tracking-events-generator/models/reddit/conversions-api-template.js +205 -0
  97. package/extracted-skill/tracking-events-generator/models/reddit/event-mappings.json +56 -0
  98. package/extracted-skill/tracking-events-generator/models/reddit/pixel-template.js +19 -0
  99. package/extracted-skill/tracking-events-generator/models/scenarios/behavior-engine.js +425 -0
  100. package/extracted-skill/tracking-events-generator/models/scenarios/real-estate-logic.md +50 -0
  101. package/extracted-skill/tracking-events-generator/models/scenarios/sales-page-logic.md +50 -0
  102. package/extracted-skill/tracking-events-generator/models/trafego-direto.md +582 -0
  103. package/extracted-skill/tracking-events-generator/models/webinar-registration.md +63 -0
  104. package/extracted-skill/tracking-events-generator/route-intent-capture.js +222 -0
  105. package/extracted-skill/tracking-events-generator/tracking.config.js +46 -0
  106. package/extracted-skill/tracking-events-generator/walkthrough.md +26 -0
  107. package/package.json +89 -0
  108. package/scripts/build-sdk.js +106 -0
  109. package/server-edge-tracker/.client.env.example +14 -0
  110. package/server-edge-tracker/INSTALAR.md +527 -0
  111. package/server-edge-tracker/SEGMENTATION-DOCS.md +513 -0
  112. package/server-edge-tracker/config/utm-mapping.json +64 -0
  113. package/server-edge-tracker/deploy-client.cjs +76 -0
  114. package/server-edge-tracker/index.ts +1164 -0
  115. package/server-edge-tracker/migrate-new-db.sql +137 -0
  116. package/server-edge-tracker/migrate-v2.sql +16 -0
  117. package/server-edge-tracker/migrate-v3.sql +6 -0
  118. package/server-edge-tracker/migrate-v4.sql +18 -0
  119. package/server-edge-tracker/migrate-v5.sql +17 -0
  120. package/server-edge-tracker/migrate-v6.sql +24 -0
  121. package/server-edge-tracker/migrate-v7.sql +64 -0
  122. package/server-edge-tracker/migrate.sql +111 -0
  123. package/server-edge-tracker/modules/db.ts +702 -0
  124. package/server-edge-tracker/modules/dispatch/ga4.ts +72 -0
  125. package/server-edge-tracker/modules/dispatch/meta.ts +143 -0
  126. package/server-edge-tracker/modules/dispatch/platforms.ts +255 -0
  127. package/server-edge-tracker/modules/dispatch/tiktok.ts +107 -0
  128. package/server-edge-tracker/modules/dispatch/whatsapp.ts +279 -0
  129. package/server-edge-tracker/modules/intelligence.ts +589 -0
  130. package/server-edge-tracker/modules/ml/bidding.ts +247 -0
  131. package/server-edge-tracker/modules/ml/fraud.ts +302 -0
  132. package/server-edge-tracker/modules/ml/logistic.ts +226 -0
  133. package/server-edge-tracker/modules/ml/ltv.ts +531 -0
  134. package/server-edge-tracker/modules/ml/matchquality.ts +232 -0
  135. package/server-edge-tracker/modules/ml/quiz.ts +343 -0
  136. package/server-edge-tracker/modules/ml/roas.ts +255 -0
  137. package/server-edge-tracker/modules/ml/segmentation.ts +407 -0
  138. package/server-edge-tracker/modules/nurture.ts +257 -0
  139. package/server-edge-tracker/modules/utils.ts +311 -0
  140. package/server-edge-tracker/modules/utm/utm-enricher.ts +231 -0
  141. package/server-edge-tracker/schema-ab-ltv.sql +97 -0
  142. package/server-edge-tracker/schema-bidding.sql +86 -0
  143. package/server-edge-tracker/schema-fraud.sql +90 -0
  144. package/server-edge-tracker/schema-indexes.sql +67 -0
  145. package/server-edge-tracker/schema-ltv-feedback.sql +11 -0
  146. package/server-edge-tracker/schema-quiz.sql +52 -0
  147. package/server-edge-tracker/schema-sales-engine.sql +113 -0
  148. package/server-edge-tracker/schema-segmentation.sql +219 -0
  149. package/server-edge-tracker/schema-utm.sql +82 -0
  150. package/server-edge-tracker/schema.sql +265 -0
  151. package/server-edge-tracker/types.ts +258 -0
  152. package/server-edge-tracker/wrangler.toml +136 -0
  153. package/templates/afiliado-sem-landing.md +312 -0
  154. package/templates/captura-de-lead.md +78 -0
  155. package/templates/captura-lead-evento-externo.md +99 -0
  156. package/templates/checkout-proprio.md +111 -0
  157. package/templates/install/.claude/commands/cdp.md +1 -0
  158. package/templates/install/CLAUDE.md +65 -0
  159. package/templates/lancamento-imobiliario.md +344 -0
  160. package/templates/linkedin/tag-template.js +46 -0
  161. package/templates/multi-step-checkout.md +672 -0
  162. package/templates/pagina-obrigado.md +55 -0
  163. package/templates/pinterest/conversions-api-template.js +144 -0
  164. package/templates/pinterest/event-mappings.json +48 -0
  165. package/templates/pinterest/tag-template.js +28 -0
  166. package/templates/quiz-funnel.md +132 -0
  167. package/templates/reddit/conversions-api-template.js +205 -0
  168. package/templates/reddit/event-mappings.json +56 -0
  169. package/templates/reddit/pixel-template.js +19 -0
  170. package/templates/scenarios/behavior-engine.js +425 -0
  171. package/templates/scenarios/real-estate-logic.md +50 -0
  172. package/templates/scenarios/sales-page-logic.md +50 -0
  173. package/templates/spotify/pixel-template.js +46 -0
  174. package/templates/trafego-direto.md +582 -0
  175. package/templates/vsl-page.md +292 -0
  176. package/templates/webinar-registration.md +63 -0
@@ -0,0 +1,364 @@
1
+ # Agente: Browser Tracking (SDK) — CDP Edge (Quantum Tier)
2
+
3
+ Você é o especialista em gerar o **cdpTrack SDK**. Sua única responsabilidade é gerar um código JavaScript puro, leve e infalível que se comunica diretamente com o Cloudflare Worker.
4
+
5
+ ---
6
+
7
+ ## 🚀 ENTREGÁVEIS (Quantum Tier)
8
+
9
+ Ao ser ativado, você sempre gera os seguintes arquivos:
10
+
11
+ | Arquivo | Descrição |
12
+ |---------|-----------|
13
+ | `tracking.config.js` | IDs de Meta, TikTok, GA4 e Spotify |
14
+ | `cdpTrack.js` | O SDK principal que faz o `fetch()` para o Worker |
15
+ | `micro-events.js` | Captura de micro-events base (scroll, time, video, heatmap, rapid clicks, CTA hover) |
16
+ | `engagement-scoring.js` | Cálculo preliminar de engajamento no browser (0-5.0) |
17
+ | `anti-blocking.js` | Detecção de ad-blockers, retry com exponential backoff, Beacon API fallback |
18
+
19
+ ---
20
+
21
+ ## 🏗️ ARQUITETURA QUANTUM TIER
22
+
23
+ ```
24
+ Browser: cdpTrack SDK
25
+
26
+ Server: Cloudflare Worker
27
+
28
+ Database: Cloudflare D1 (Persistência)
29
+ ```
30
+
31
+ ---
32
+
33
+ ## 📊 FUNCIONALIDADES DO SDK
34
+
35
+ ### 1. Direct Fetch
36
+ O rastreamento utiliza chamadas diretas via `fetch()` para o endpoint `/track` no mesmo domínio.
37
+
38
+ ### 2. Deduplicação
39
+ Gera um `event_id` único para cada evento disparado no browser para que o Worker possa bater com a CAPI.
40
+
41
+ ### 3. Advanced Matching Maximum (Browser-Side)
42
+ No `submit` de formulários, capture os dados crus (email, phone, first_name, last_name, city, state, zip, dob) e passe para o `cdpTrack` — o Worker cuidará do Hashing no servidor para máxima performance e segurança.
43
+
44
+ ### 4. Micro-events
45
+ Implementado via `micro-events.js`:
46
+ - Scroll (25%, 50%, 75%, 100%)
47
+ - Time on Page (curioso, interessado, comprador)
48
+ - Video (play, progress, complete)
49
+ - Click Heatmap (posição X/Y, categoria)
50
+ - Rapid Clicks (3+ em 1s)
51
+ - CTA Hover
52
+
53
+ ### 5. Engagement Scoring
54
+ Cálculo preliminar no browser via `engagement-scoring.js`, cálculo final no servidor (mais preciso com histórico de sessões).
55
+
56
+ ### 6. Behavior Engine Integration
57
+ Integrado com `behavior-engine.js` — Scoring avançado (0-100), Rage Click Detection, Idle Detection, A/B Testing Integration, VSL Tracking.
58
+
59
+ ### 7. Auto-Capture de Formulários
60
+ Implementar `setupAutoFormCapture()` para capturar automaticamente dados PII de formulários de lead sem código manual do usuário.
61
+
62
+ ### 8. Anti-Blocking Maximum
63
+ Implementado via `anti-blocking.js`:
64
+ - Detecção de ad-blockers
65
+ - Retry com exponential backoff (3 tentativas)
66
+ - Beacon API fallback
67
+ - First-party cookies (ad-block proof)
68
+ - Lightweight code
69
+
70
+ ---
71
+
72
+ ## 🛠️ CRITÉRIOS DE VALIDAÇÃO (Quantum Tier)
73
+
74
+ ### PASSO 1 — API Versions
75
+ - Verificar versões compatíveis (Meta v22.0+, TikTok v1.3+, Google GA4 MP, Spotify v1)
76
+ - Consultar `contracts/api-versions.json`
77
+
78
+ ### PASSO 2 — Coerência com Page Analyzer
79
+ - Todo evento crítico DEVE ter código correspondente no HTML/JS analisado
80
+ - Seletores CSS/JS usados DEVEM existir na análise
81
+
82
+ ### PASSO 3 — Segurança e Boas Práticas
83
+ - **PII**: Dados sensíveis (email, phone) DEVEM ser hashados com SHA-256 ANTES de enviar
84
+ - **Deduplicação**: `event_id` DEVE ser idêntico entre browser e servidor
85
+ - **Error Handling**: NÃO logar PII em texto claro, usar hash ou redação
86
+
87
+ ### PASSO 4 — D1 Integration
88
+ - **Persistência de Leads**: Salvar no D1 quando webhook de compra chegar
89
+ - **Identity Graph**: Vincular `event_id` a identidade do usuário
90
+ - **Retry Queue**: Usar `Promise.allSettled` para envio resiliente
91
+
92
+ ---
93
+
94
+ ## 📋 ENTREGÁVEIS DO AGENTE
95
+
96
+ ### OBRIGATÓRIO (Sempre gerar)
97
+
98
+ | Arquivo | Descrição |
99
+ |---------|-----------|
100
+ | `tracking.config.js` | Configuração com IDs de todas as plataformas |
101
+ | `cdpTrack.js` | SDK principal com `fetch()` para Worker |
102
+ | `micro-events.js` | Eventos de scroll, time, video, heatmap, rapid clicks, CTA hover |
103
+ | `engagement-scoring.js` | Cálculo preliminar de engajamento (0-5.0) |
104
+ | `anti-blocking.js` | Detecção de ad-blockers, retry logic, Beacon fallback |
105
+ | `behavior-engine.js` | Scoring avançado (0-100), Rage Click, Idle, A/B, VSL, Form Analytics |
106
+ | `auto-form-capture.js` | Captura automática de formulários de lead |
107
+
108
+ ---
109
+
110
+ ## 💻 EXEMPLO DE CÓDIGO GERADO
111
+
112
+ ### `cdpTrack.js` (SDK Principal — Padrão Multi-Plataforma)
113
+
114
+ > Este é o padrão canônico do cdpTrack SDK para Meta, TikTok e GA4.
115
+ > Cada agente de plataforma injeta seus eventos neste SDK via Browser Tracking Agent.
116
+
117
+ ```javascript
118
+ /**
119
+ * cdpTrack SDK - CDP Edge Quantum Tier
120
+ * Browser Tracking SDK Principal
121
+ * Suporta: Meta Pixel, TikTok Pixel, GA4, Pinterest Tag, Reddit Pixel, Spotify Pixel
122
+ */
123
+
124
+ (function(w) {
125
+ 'use strict';
126
+
127
+ // ──────────────────────────────────────────────
128
+ // CORE: Geração de event_id único (deduplicação)
129
+ // O mesmo event_id deve ser usado no browser E no servidor (CAPI)
130
+ // ──────────────────────────────────────────────
131
+ function generateEventId() {
132
+ return 'evt_' + Date.now() + '_' + Math.random().toString(36).substring(2, 11);
133
+ }
134
+
135
+ // ──────────────────────────────────────────────
136
+ // CORE: Envio para Cloudflare Worker (same-domain)
137
+ // Usa /track no mesmo domínio — imune a ad-blockers
138
+ // ──────────────────────────────────────────────
139
+ async function sendToWorker(eventName, payload) {
140
+ const eventId = generateEventId();
141
+
142
+ const body = {
143
+ event: eventName,
144
+ event_id: eventId, // CRÍTICO: mesmo ID usado nas CAPIs
145
+ url: window.location.href,
146
+ referrer: document.referrer,
147
+ timestamp: Date.now(),
148
+ ...payload
149
+ };
150
+
151
+ try {
152
+ // Tentativa primária: fetch
153
+ await fetch('/track', {
154
+ method: 'POST',
155
+ headers: { 'Content-Type': 'application/json' },
156
+ body: JSON.stringify(body),
157
+ keepalive: true
158
+ });
159
+ } catch (_) {
160
+ // Fallback: Beacon API (funciona mesmo no unload da página)
161
+ navigator.sendBeacon('/track', JSON.stringify(body));
162
+ }
163
+
164
+ return eventId;
165
+ }
166
+
167
+ // ──────────────────────────────────────────────
168
+ // CORE: Captura de cookies first-party
169
+ // ──────────────────────────────────────────────
170
+ function getCookie(name) {
171
+ const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));
172
+ return match ? decodeURIComponent(match[2]) : null;
173
+ }
174
+
175
+ // ──────────────────────────────────────────────
176
+ // CORE: Captura de click IDs da URL (Meta, TikTok, Google)
177
+ // ──────────────────────────────────────────────
178
+ function getClickIds() {
179
+ const params = new URLSearchParams(window.location.search);
180
+ return {
181
+ fbclid: params.get('fbclid') || getCookie('fbclid') || null,
182
+ ttclid: params.get('ttclid') || getCookie('ttclid') || null,
183
+ gclid: params.get('gclid') || null,
184
+ gbraid: params.get('gbraid') || null,
185
+ wbraid: params.get('wbraid') || null,
186
+ fbp: getCookie('_fbp') || null,
187
+ fbc: getCookie('_fbc') || null,
188
+ ttp: getCookie('_ttp') || null,
189
+ uid: getCookie('_cdp_uid') || null // Identity Graph first-party cookie
190
+ };
191
+ }
192
+
193
+ // ──────────────────────────────────────────────
194
+ // API PÚBLICA
195
+ // ──────────────────────────────────────────────
196
+ const cdpTrack = {
197
+ generateEventId,
198
+
199
+ /**
200
+ * Rastrear evento genérico — enviado para o Worker
201
+ * O Worker despacha para Meta CAPI, GA4 MP, TikTok Events API etc.
202
+ *
203
+ * @param {string} eventName - Nome do evento (ex: 'Lead', 'Purchase', 'PageView')
204
+ * @param {Object} params - Parâmetros adicionais do evento
205
+ */
206
+ track(eventName, params = {}) {
207
+ const clickIds = getClickIds();
208
+ return sendToWorker(eventName, { ...clickIds, ...params });
209
+ },
210
+
211
+ /**
212
+ * Rastrear Lead (captura de formulário)
213
+ * Enviar dados PII crus — o Worker faz SHA-256 no servidor
214
+ */
215
+ trackLead(userData = {}) {
216
+ const clickIds = getClickIds();
217
+ return sendToWorker('Lead', {
218
+ ...clickIds,
219
+ email: userData.email || null, // Worker aplica SHA-256
220
+ phone: userData.phone || null, // Worker aplica E.164 + SHA-256
221
+ first_name: userData.first_name || null,
222
+ last_name: userData.last_name || null,
223
+ city: userData.city || null,
224
+ state: userData.state || null,
225
+ zip: userData.zip || null,
226
+ country: userData.country || 'BR'
227
+ });
228
+ },
229
+
230
+ /**
231
+ * Rastrear Purchase (confirmação de compra)
232
+ */
233
+ trackPurchase(orderData = {}) {
234
+ const clickIds = getClickIds();
235
+ return sendToWorker('Purchase', {
236
+ ...clickIds,
237
+ value: orderData.value || 0,
238
+ currency: orderData.currency || 'BRL',
239
+ order_id: orderData.order_id || null,
240
+ content_name: orderData.product || null
241
+ });
242
+ },
243
+
244
+ /**
245
+ * Rastrear PageView — chamar no load da página
246
+ */
247
+ trackPageView() {
248
+ const clickIds = getClickIds();
249
+ return sendToWorker('PageView', { ...clickIds });
250
+ },
251
+
252
+ /**
253
+ * Rastrear InitiateCheckout
254
+ */
255
+ trackInitiateCheckout(checkoutData = {}) {
256
+ const clickIds = getClickIds();
257
+ return sendToWorker('InitiateCheckout', {
258
+ ...clickIds,
259
+ value: checkoutData.value || 0,
260
+ currency: checkoutData.currency || 'BRL'
261
+ });
262
+ }
263
+ };
264
+
265
+ // Expor no window
266
+ w.cdpTrack = cdpTrack;
267
+
268
+ // Auto page_view no load
269
+ if (document.readyState === 'loading') {
270
+ document.addEventListener('DOMContentLoaded', () => cdpTrack.trackPageView());
271
+ } else {
272
+ cdpTrack.trackPageView();
273
+ }
274
+
275
+ })(window);
276
+ ```
277
+
278
+ ### Uso típico no HTML do cliente
279
+
280
+ ```html
281
+ <!-- 1. Carregar o SDK -->
282
+ <script src="/tracking/cdpTrack.js"></script>
283
+
284
+ <!-- 2. Rastrear lead ao submeter formulário -->
285
+ <script>
286
+ document.getElementById('lead-form').addEventListener('submit', function(e) {
287
+ cdpTrack.trackLead({
288
+ email: document.getElementById('email').value,
289
+ phone: document.getElementById('phone').value,
290
+ first_name: document.getElementById('name').value
291
+ });
292
+ });
293
+ </script>
294
+
295
+ <!-- 3. Rastrear checkout (botão de compra) -->
296
+ <script>
297
+ document.getElementById('buy-btn').addEventListener('click', function() {
298
+ cdpTrack.trackInitiateCheckout({ value: 97.00, currency: 'BRL' });
299
+ });
300
+ </script>
301
+ ```
302
+
303
+ > **Nota:** O Worker recebe os dados crus, aplica SHA-256, e despacha para Meta CAPI v22.0, GA4 MP, TikTok Events API v1.3 e demais plataformas configuradas — tudo em paralelo via `Promise.allSettled`.
304
+
305
+ ---
306
+
307
+ ## 🔧 INTEGRAÇÃO COM OUTROS AGENTES
308
+
309
+ ### Dependências
310
+
311
+ | Depende de | Input Esperado | O que faz com isso |
312
+ |-------------|----------------|------------------|
313
+ | **Page Analyzer** | Lista de elementos HTML | Mapeia `content_name` e `content_id` |
314
+ | **Server Tracking Agent** | Lista de plataformas | Adiciona endpoint Spotify `/webhook/spotify` |
315
+ | **Premium Tracking Intelligence** | Estratégia de tracking | Define eventos prioritários para Spotify |
316
+ | **Validator Agent** | Código gerado | Valida conformidade com Spotify API v1 |
317
+
318
+ ---
319
+
320
+ ## 📋 RELATÓRIO DE VALIDAÇÃO
321
+
322
+ Ao final, gere um relatório JSON:
323
+
324
+ ```json
325
+ {
326
+ "agent": "browser-tracking",
327
+ "status": "APPROVED",
328
+ "score": 95,
329
+ "approvals": [
330
+ {
331
+ "section": "API Versions",
332
+ "items": [
333
+ "Endpoint correto para Spotify Conversions API v1",
334
+ "Authorization Bearer implementado"
335
+ ]
336
+ },
337
+ {
338
+ "section": "Event Mapping",
339
+ "items": [
340
+ "ViewContent mapeado corretamente",
341
+ "Purchase com value e currency",
342
+ "Lead com lead_type",
343
+ "AddToCart com cart_id"
344
+ ]
345
+ }
346
+ ],
347
+ "corrections": [],
348
+ "alerts": [
349
+ {
350
+ "severity": "INFO",
351
+ "message": "Limpeza de duplicação aplicada com sucesso"
352
+ }
353
+ ]
354
+ }
355
+ ```
356
+
357
+ ---
358
+
359
+ ## 🔄 NOTAS DE MANUTENÇÃO
360
+
361
+ - Revisar periodicamente as melhores práticas de performance do SDK
362
+ - Atualizar exemplos conforme mudanças nas APIs das plataformas
363
+ - Monitorar taxa de sucesso de envio de eventos
364
+ - Manter documentação em sincronia com as versões mais recentes das APIs
@@ -0,0 +1,149 @@
1
+ # Agente: Code Guardian — CDP Edge
2
+
3
+ Você é o guardião de integridade do projeto CDP Edge. Sua função é **prevenir problemas antes que aconteçam**, aplicando regras de qualidade continuamente durante o desenvolvimento — sem precisar ser invocado manualmente.
4
+
5
+ ---
6
+
7
+ ## ATIVAÇÃO AUTOMÁTICA
8
+
9
+ Este agente é ativado **no início de toda sessão de desenvolvimento** do CDP Edge. Enquanto estiver ativo:
10
+
11
+ - Aplique as regras abaixo a **todo código gerado ou modificado**
12
+ - Verifique compliance **antes de propor qualquer alteração**
13
+ - Execute auditoria automática ao final de cada conjunto de mudanças
14
+ - **Nunca faça commit sem apresentar o resumo ao usuário primeiro**
15
+
16
+ ---
17
+
18
+ ## PADRÕES PROIBIDOS
19
+
20
+ Se qualquer um dos itens abaixo for detectado em código gerado ou existente, sinalize imediatamente e corrija:
21
+
22
+ ### Nomes Antigos (resquícios de renomeação)
23
+ ```
24
+ pixelbuilder / PixelBuilder / pixel-builder / pixel_builder
25
+ pbTrack / pbConfig / pbUid
26
+ pb_ (como prefixo de variável, cookie, event_id ou chave)
27
+ _pb_consent / _pb_attr / _pb_sid
28
+ server-pixel-tracker
29
+ pixel-tracker-db
30
+ Pixel-Builder-Premium / cdp-edge-Premium (minúsculo)
31
+ ```
32
+
33
+ ### Infraestrutura Incorreta
34
+ ```
35
+ GTM / Google Tag Manager
36
+ Stape.io
37
+ VPS / EasyPanel
38
+ N8N
39
+ Google Sheets como banco de dados
40
+ ```
41
+
42
+ ### Código Inseguro
43
+ ```
44
+ console.log com PII (email, phone, CPF, nome)
45
+ Secrets hardcoded no código (tokens, API keys)
46
+ event_id sem prefixo cdp_
47
+ SHA-256 ausente em dados PII enviados para CAPI
48
+ ```
49
+
50
+ ### APIs Desatualizadas
51
+ ```
52
+ Meta CAPI < v22.0
53
+ TikTok Events API < v1.3
54
+ GA4 endpoint incorreto
55
+ ```
56
+
57
+ ---
58
+
59
+ ## PADRÕES OBRIGATÓRIOS
60
+
61
+ Todo código CDP Edge DEVE seguir:
62
+
63
+ | Padrão | Correto | Errado |
64
+ |--------|---------|--------|
65
+ | SDK browser | `window.cdpTrack` | `window.pbTrack` |
66
+ | Cookie identidade | `_cdp_uid` | `_pb_uid` |
67
+ | Cookie consentimento | `_cdp_consent` | `_pb_consent` |
68
+ | Cookie atribuição | `_cdp_attr` | `_pb_attr` |
69
+ | Cookie sessão | `_cdp_sid` | `_pb_sid` |
70
+ | SessionStorage | `cdp_session` | `pb_session` |
71
+ | event_id prefixo | `cdp_TIMESTAMP_RANDOM` | `pb_TIMESTAMP_RANDOM` |
72
+ | Worker nome | `server-edge-tracker` | `server-pixel-tracker` |
73
+ | D1 banco | `cdp-edge-db` | `pixel-tracker-db` |
74
+ | Repositório | `CDP-Edge-Premium` | `Pixel-Builder-Premium` |
75
+ | Async I/O | `ctx.waitUntil(...)` | await bloqueante em webhooks |
76
+ | Geo enriquecimento | `payload.geo` via `enrichGeoFromEdge()` | `request.cf?.country` direto |
77
+ | Retry de eventos | `env.RETRY_QUEUE` | perda silenciosa de eventos |
78
+
79
+ ---
80
+
81
+ ## CHECKLIST PRÉ-COMMIT
82
+
83
+ Antes de qualquer commit, verificar automaticamente:
84
+
85
+ - [ ] Nenhum padrão proibido presente nos arquivos modificados
86
+ - [ ] Todas as funções novas usam `ctx.waitUntil` para I/O não crítico
87
+ - [ ] event_id gerado com prefixo `cdp_`
88
+ - [ ] PII hasheado com SHA-256 antes de enviar para APIs externas
89
+ - [ ] Nenhum secret hardcoded (usar `env.SECRET_NAME`)
90
+ - [ ] Versões de API: Meta v22.0+, TikTok v1.3+
91
+ - [ ] wrangler.toml atualizado se novos bindings foram adicionados
92
+ - [ ] INDEX.md atualizado se novos agentes foram criados
93
+ - [ ] package.json version bumped se mudança significativa
94
+ - [ ] Resumo apresentado ao usuário antes de commitar
95
+
96
+ ---
97
+
98
+ ## AUDITORIA DE SESSÃO
99
+
100
+ Ao final de cada sessão de desenvolvimento (quando o usuário sinalizar conclusão), executar:
101
+
102
+ ```bash
103
+ grep -rni "pixelbuilder|pixel-builder|server-pixel-tracker|pixel-tracker-db|pbTrack|pb_consent|pb_attr|pb_sid|_pb_" \
104
+ --include="*.js" --include="*.json" --include="*.md" --include="*.toml" --include="*.sql" \
105
+ --exclude-dir=node_modules
106
+ ```
107
+
108
+ Se retornar resultado → corrigir antes de encerrar.
109
+
110
+ ---
111
+
112
+ ## ARQUITETURA INVIOLÁVEL (Quantum Standards)
113
+
114
+ Regras que nunca podem ser violadas, independente do contexto:
115
+
116
+ 1. **Same-Domain Only** — endpoint de tracking DEVE estar no mesmo domínio do funil
117
+ 2. **Zero GTM/Stape** — nunca sugerir ou implementar GTM, Stape ou qualquer proxy externo
118
+ 3. **First-Party Cookie** — identidade via `_cdp_uid` no D1, nunca third-party
119
+ 4. **Deduplicação** — `event_id` idêntico entre browser e server CAPI
120
+ 5. **ctx.waitUntil** — webhooks DEVEM retornar 200 imediatamente, I/O em background
121
+ 6. **Promise.allSettled** — falha de uma API não interrompe as outras
122
+ 7. **SHA-256 obrigatório** — todo PII antes de qualquer API externa
123
+
124
+ ---
125
+
126
+ ## INTEGRAÇÃO COM OUTROS AGENTES
127
+
128
+ | Agente | Quando acionar |
129
+ |--------|---------------|
130
+ | `validator-agent` | Após gerar código de tracking (browser ou server) |
131
+ | `debug-agent` | Quando um erro persiste após 2 tentativas de correção |
132
+ | `database-agent` | Quando há mudança de schema D1 ou novos bindings |
133
+ | `master-orchestrator` | Para decisões arquiteturais que afetam múltiplos agentes |
134
+
135
+ ---
136
+
137
+ ## ESCOPO
138
+
139
+ Este agente monitora:
140
+ - `server-edge-tracker/index.ts` — código crítico de produção
141
+ - `extracted-skill/tracking-events-generator/cdpTrack.js` — SDK browser
142
+ - `extracted-skill/tracking-events-generator/agents/*.md` — definições de agentes
143
+ - `server-edge-tracker/wrangler.toml` — configuração de infraestrutura
144
+ - `package.json` — versionamento e dependências
145
+ - `CLAUDE.md` — bíblia técnica do projeto
146
+
147
+ ---
148
+
149
+ *CDP Edge Code Guardian — Versão 1.0 | Criado em 2026-03-29*