ponch-mcp-server 1.0.21 → 1.0.23

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 (36) hide show
  1. package/dist/schemas/index.d.ts +968 -118
  2. package/dist/schemas/index.d.ts.map +1 -1
  3. package/dist/schemas/index.js +31 -21
  4. package/dist/schemas/index.js.map +1 -1
  5. package/dist/schemas/marketing/brandBrief.d.ts +916 -0
  6. package/dist/schemas/marketing/brandBrief.d.ts.map +1 -0
  7. package/dist/schemas/marketing/brandBrief.js +206 -0
  8. package/dist/schemas/marketing/brandBrief.js.map +1 -0
  9. package/dist/schemas/marketing/brandConfig.d.ts +1886 -0
  10. package/dist/schemas/marketing/brandConfig.d.ts.map +1 -0
  11. package/dist/schemas/marketing/brandConfig.js +114 -0
  12. package/dist/schemas/marketing/brandConfig.js.map +1 -0
  13. package/dist/schemas/marketing/calendario.d.ts +1093 -0
  14. package/dist/schemas/marketing/calendario.d.ts.map +1 -0
  15. package/dist/schemas/marketing/calendario.js +60 -0
  16. package/dist/schemas/marketing/calendario.js.map +1 -0
  17. package/dist/schemas/marketing/collectionSuggestions.d.ts +274 -0
  18. package/dist/schemas/marketing/collectionSuggestions.d.ts.map +1 -0
  19. package/dist/schemas/marketing/collectionSuggestions.js +125 -0
  20. package/dist/schemas/marketing/collectionSuggestions.js.map +1 -0
  21. package/dist/schemas/marketing/contenido.d.ts +203 -0
  22. package/dist/schemas/marketing/contenido.d.ts.map +1 -0
  23. package/dist/schemas/marketing/contenido.js +84 -0
  24. package/dist/schemas/marketing/contenido.js.map +1 -0
  25. package/dist/schemas/marketing/foto.d.ts +242 -0
  26. package/dist/schemas/marketing/foto.d.ts.map +1 -0
  27. package/dist/schemas/marketing/foto.js +40 -0
  28. package/dist/schemas/marketing/foto.js.map +1 -0
  29. package/dist/schemas/marketing/plan.d.ts +574 -0
  30. package/dist/schemas/marketing/plan.d.ts.map +1 -1
  31. package/dist/schemas/marketing/plan.js +137 -0
  32. package/dist/schemas/marketing/plan.js.map +1 -1
  33. package/dist/tools/marketing.d.ts.map +1 -1
  34. package/dist/tools/marketing.js +46 -18
  35. package/dist/tools/marketing.js.map +1 -1
  36. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brandBrief.d.ts","sourceRoot":"","sources":["../../../src/schemas/marketing/brandBrief.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,eAAO,MAAM,sBAAsB;;;;;;;;;gCAGnB,CAAC;AAEjB,eAAO,MAAM,wBAAwB;;;;;;;;;gCAGrB,CAAC;AAEjB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAKd,CAAC;AAEjB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;gCAOf,CAAC;AAEjB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;gCAIf,CAAC;AAEjB,eAAO,MAAM,cAAc;;;;;;;;;;;;gCAIX,CAAC;AAEjB,eAAO,MAAM,uBAAuB;;;;;;;;;gCAGpB,CAAC;AAEjB,eAAO,MAAM,eAAe;;;;;;;;;;;;gCAIZ,CAAC;AAMjB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCA+Cb,CAAC;AAEjB,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAM1D,MAAM,MAAM,0BAA0B,GAClC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,GAChC;IACE,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEN;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,0BAA0B,CAiB7E;AAmBD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkE/B,CAAC"}
@@ -0,0 +1,206 @@
1
+ /**
2
+ * mcp-server/src/schemas/marketing/brandBrief.ts
3
+ *
4
+ * Schemas Zod del Brand Brief — perfil profundo del negocio.
5
+ *
6
+ * Vive en marketing_config.brands[brandId].brandBrief
7
+ * Generado por Cowork via save_brand_brief, validado en este schema.
8
+ *
9
+ * DEUDA 2 expandida (sesion 176B): brand brief completo migrado.
10
+ */
11
+ import { z } from 'zod';
12
+ // ═══════════════════════════════════════════════════════════
13
+ // PRIMITIVOS
14
+ // ═══════════════════════════════════════════════════════════
15
+ const SegmentoEnum = z.enum(['accesible', 'medio', 'premium', 'lujo']);
16
+ // ═══════════════════════════════════════════════════════════
17
+ // SUB-SCHEMAS REUTILIZABLES
18
+ // ═══════════════════════════════════════════════════════════
19
+ export const ProductoEstrellaSchema = z.object({
20
+ nombre: z.string().min(1),
21
+ porQue: z.string().optional(),
22
+ }).passthrough();
23
+ export const RangoPrecioBracketSchema = z.object({
24
+ min: z.number().nullable().optional(),
25
+ max: z.number().nullable().optional(),
26
+ }).passthrough();
27
+ export const RangoPrecioSchema = z.object({
28
+ entrada: RangoPrecioBracketSchema.optional(),
29
+ medio: RangoPrecioBracketSchema.optional(),
30
+ premium: RangoPrecioBracketSchema.optional(),
31
+ moneda: z.string().optional(),
32
+ }).passthrough();
33
+ export const BuyerPersonaSchema = z.object({
34
+ id: z.string().optional(),
35
+ nombre: z.string().min(1),
36
+ descripcion: z.string().optional(),
37
+ motivacion: z.string().optional(),
38
+ objeciones: z.array(z.string()).optional(),
39
+ canalDescubrimiento: z.array(z.string()).optional(),
40
+ }).passthrough();
41
+ export const ZonaServicioSchema = z.object({
42
+ entrega: z.string().optional(),
43
+ compradores: z.string().optional(),
44
+ tiendaFisica: z.string().optional(),
45
+ }).passthrough();
46
+ export const HorariosSchema = z.object({
47
+ lv: z.string().optional(),
48
+ sabado: z.string().optional(),
49
+ domingo: z.string().optional(),
50
+ }).passthrough();
51
+ export const CompetidorDirectoSchema = z.object({
52
+ dominio: z.string().min(1),
53
+ notas: z.string().nullable().optional(),
54
+ }).passthrough();
55
+ export const ObjetivosSchema = z.object({
56
+ corto: z.string().optional(),
57
+ mediano: z.string().optional(),
58
+ largo: z.string().optional(),
59
+ }).passthrough();
60
+ // ═══════════════════════════════════════════════════════════
61
+ // SCHEMA RAIZ DEL BRAND BRIEF
62
+ // ═══════════════════════════════════════════════════════════
63
+ export const BrandBriefSchema = z.object({
64
+ // Campos minimos obligatorios
65
+ descripcionCorta: z.string().min(1, 'descripcionCorta es obligatorio'),
66
+ segmento: SegmentoEnum,
67
+ // Identidad
68
+ categoriaIndustria: z.string().optional(),
69
+ propuestaDeValor: z.string().optional(),
70
+ // Productos y precios
71
+ productosEstrella: z.array(ProductoEstrellaSchema).optional(),
72
+ rangoPrecio: RangoPrecioSchema.optional(),
73
+ // Negativos
74
+ keywordsNegativas: z.array(z.string()).optional(),
75
+ noHacemos: z.array(z.string()).optional(),
76
+ // Audiencia
77
+ buyerPersonas: z.array(BuyerPersonaSchema).optional(),
78
+ // Zona y servicio
79
+ zonaServicio: ZonaServicioSchema.optional(),
80
+ horarios: HorariosSchema.optional(),
81
+ // Marca y tono
82
+ personalidadMarca: z.array(z.string()).optional(),
83
+ valores: z.array(z.string()).optional(),
84
+ tonoContenido: z.string().optional(),
85
+ mensajesClave: z.array(z.string()).optional(),
86
+ // Competencia
87
+ competidoresDirectos: z.array(CompetidorDirectoSchema).optional(),
88
+ competidoresIndirectos: z.array(z.string()).optional(),
89
+ queMejorHacen: z.string().optional(),
90
+ queEvitar: z.string().optional(),
91
+ // Objetivos
92
+ objetivos: ObjetivosSchema.optional(),
93
+ enfoque: z.string().optional(),
94
+ ocasionesEvergreen: z.array(z.string()).optional(),
95
+ // Meta (gestionado por save_brand_brief, no por Cowork directamente)
96
+ generadoAt: z.union([z.string(), z.date(), z.object({ seconds: z.number() }).passthrough()]).optional(),
97
+ generadoPor: z.string().optional(),
98
+ validadoPor: z.string().nullable().optional(),
99
+ validadoAt: z.union([z.string(), z.date(), z.object({ seconds: z.number() }).passthrough()]).nullable().optional(),
100
+ _validatedFields: z.record(z.boolean()).optional(),
101
+ }).passthrough();
102
+ /**
103
+ * Valida un brand brief completo. Si falla, retorna error estructurado
104
+ * con los 4 campos para que Cowork pueda auto-corregir.
105
+ */
106
+ export function validateBrandBrief(value) {
107
+ const result = BrandBriefSchema.safeParse(value);
108
+ if (result.success) {
109
+ return { ok: true, parsed: result.data };
110
+ }
111
+ const firstError = result.error.errors[0];
112
+ const path = ['brandBrief', ...firstError.path].join('.');
113
+ const received = getValueAtPath(value, firstError.path);
114
+ return {
115
+ ok: false,
116
+ error: firstError.message,
117
+ path,
118
+ received,
119
+ example: BRAND_BRIEF_EXAMPLE,
120
+ };
121
+ }
122
+ function getValueAtPath(obj, path) {
123
+ let current = obj;
124
+ for (const key of path) {
125
+ if (current == null)
126
+ return current;
127
+ if (typeof current === 'object') {
128
+ current = current[key];
129
+ }
130
+ else {
131
+ return undefined;
132
+ }
133
+ }
134
+ return current;
135
+ }
136
+ // ═══════════════════════════════════════════════════════════
137
+ // EJEMPLO HUMAN-READABLE (para system prompt y errores)
138
+ // ═══════════════════════════════════════════════════════════
139
+ export const BRAND_BRIEF_EXAMPLE = {
140
+ descripcionCorta: 'Florería premium en CDMX con entrega el mismo día',
141
+ categoriaIndustria: 'Florería / Regalos premium',
142
+ segmento: 'premium',
143
+ propuestaDeValor: 'Diseño floral curado por colecciones + entrega same-day + presentación que impacta',
144
+ productosEstrella: [
145
+ { nombre: 'Ramillete 50 rosas', porQue: 'Bestseller, alto ticket' },
146
+ { nombre: 'Domos', porQue: 'Piezas statement de lujo' },
147
+ ],
148
+ rangoPrecio: {
149
+ entrada: { min: 600, max: 1200 },
150
+ medio: { min: 1500, max: 3500 },
151
+ premium: { min: 4000, max: 12000 },
152
+ moneda: 'MXN',
153
+ },
154
+ keywordsNegativas: ['coronas fúnebres', 'flores artificiales', 'mayoreo', 'peonías'],
155
+ noHacemos: ['Envíos fuera de CDMX', 'Venta mayorista'],
156
+ buyerPersonas: [
157
+ {
158
+ id: 'comprador-individual',
159
+ nombre: 'Comprador Individual',
160
+ descripcion: 'H/M 25-55, NSE medio-alto/alto, CDMX o internacional',
161
+ motivacion: 'Expresar emociones con diseños que impacten',
162
+ objeciones: ['¿Llegará como en la foto?', '¿Llega hoy?'],
163
+ canalDescubrimiento: ['Google Search', 'Instagram', 'Referidos'],
164
+ },
165
+ ],
166
+ zonaServicio: {
167
+ entrega: 'CDMX',
168
+ compradores: 'CDMX, México, Internacional',
169
+ tiendaFisica: 'Roma Sur, CDMX',
170
+ },
171
+ horarios: {
172
+ lv: '8:00am - 9:00pm',
173
+ sabado: '8:00am - 8:00pm',
174
+ domingo: 'Cerrado',
175
+ },
176
+ personalidadMarca: ['Sofisticada', 'Confiable', 'Editorial'],
177
+ valores: ['Calidad', 'Puntualidad', 'Diseño'],
178
+ tonoContenido: 'Profesional y cercano, nunca casual. Editorial pero cálido.',
179
+ mensajesClave: [
180
+ 'Entrega el mismo día',
181
+ 'Diseños impactantes',
182
+ 'Envío gratis desde $700',
183
+ 'Más de una década de experiencia',
184
+ ],
185
+ competidoresDirectos: [
186
+ { dominio: 'azapflores.com', notas: 'Constancia, UGC' },
187
+ { dominio: 'guapaconflores.com', notas: null },
188
+ ],
189
+ competidoresIndirectos: ['Floristerías físicas locales'],
190
+ queMejorHacen: 'Constancia, disponibilidad en temporadas, UGC',
191
+ queEvitar: 'Sobre-promoción, stock genérico, feeds desordenados',
192
+ objetivos: {
193
+ corto: 'Pipeline de UGC + primeros backlinks editoriales',
194
+ mediano: 'Autoridad SEO + frente B2B + menciones en medios CDMX',
195
+ largo: 'Top-of-mind florería premium CDMX, local e internacional',
196
+ },
197
+ enfoque: 'Florería de ocasión todo el año — NO centrar en San Valentín/Día de las Madres',
198
+ ocasionesEvergreen: [
199
+ 'Cumpleaños',
200
+ 'Aniversarios',
201
+ 'Agradecimiento',
202
+ 'Corporativo',
203
+ 'Sorpresas',
204
+ ],
205
+ };
206
+ //# sourceMappingURL=brandBrief.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brandBrief.js","sourceRoot":"","sources":["../../../src/schemas/marketing/brandBrief.ts"],"names":[],"mappings":"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"}