@vcp-dev/contracts 0.8.2 → 0.8.3

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.
@@ -47,6 +47,19 @@ export declare const Step5StrategyOptionIdSchema: z.ZodEnum<{
47
47
  focused: "focused";
48
48
  }>;
49
49
  export type Step5StrategyOptionId = z.infer<typeof Step5StrategyOptionIdSchema>;
50
+ export declare const Step5MarketTypeSchema: z.ZodEnum<{
51
+ single_country: "single_country";
52
+ regional_combination: "regional_combination";
53
+ multi_market: "multi_market";
54
+ }>;
55
+ export type Step5MarketType = z.infer<typeof Step5MarketTypeSchema>;
56
+ export declare const Step5MarketCountrySchema: z.ZodObject<{
57
+ code: z.ZodString;
58
+ name_zh: z.ZodString;
59
+ name_en: z.ZodString;
60
+ region: z.ZodString;
61
+ }, z.core.$strict>;
62
+ export type Step5MarketCountry = z.infer<typeof Step5MarketCountrySchema>;
50
63
  /**
51
64
  * 与 Step5StrategyItemSchema 同理由用 .loose():校验的是上游返回的数据,不是
52
65
  * 浏览器提交的数据。option 是 item 的嵌套对象,外层放开传不进来,必须各自放开,
@@ -154,6 +167,17 @@ export declare const Step5StrategyOptionSchema: z.ZodObject<{
154
167
  sr: "sr";
155
168
  is: "is";
156
169
  }>>>;
170
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
171
+ single_country: "single_country";
172
+ regional_combination: "regional_combination";
173
+ multi_market: "multi_market";
174
+ }>>>;
175
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
176
+ code: z.ZodString;
177
+ name_zh: z.ZodString;
178
+ name_en: z.ZodString;
179
+ region: z.ZodString;
180
+ }, z.core.$strict>>>;
157
181
  }, z.core.$loose>;
158
182
  export type Step5StrategyOption = z.infer<typeof Step5StrategyOptionSchema>;
159
183
  export declare const Step5StrategyPlanSchema: z.ZodObject<{
@@ -181,12 +205,20 @@ export declare const Step5SemrushRecommendationStatusSchema: z.ZodEnum<{
181
205
  rate_limited: "rate_limited";
182
206
  quota_exhausted: "quota_exhausted";
183
207
  }>;
208
+ export declare const STEP5_SEMRUSH_SEARCH_INTENTS: readonly ["INFORMATIONAL", "NAVIGATIONAL", "COMMERCIAL", "TRANSACTIONAL"];
184
209
  export declare const Step5SemrushSearchIntentSchema: z.ZodEnum<{
185
210
  INFORMATIONAL: "INFORMATIONAL";
186
211
  NAVIGATIONAL: "NAVIGATIONAL";
187
212
  COMMERCIAL: "COMMERCIAL";
188
213
  TRANSACTIONAL: "TRANSACTIONAL";
189
214
  }>;
215
+ export declare const STEP5_SEO_MIN_SEARCH_VOLUME: 50;
216
+ export declare const STEP5_SEO_MAX_KEYWORD_DIFFICULTY: 60;
217
+ export declare const STEP5_SEO_MIN_FIT: 7;
218
+ export declare const STEP5_SEO_ALLOWED_SEARCH_INTENTS: readonly ["COMMERCIAL", "TRANSACTIONAL"];
219
+ export declare const STEP5_SEO_ALLOWED_INTENT_CODES: readonly ["C", "T"];
220
+ export type Step5SeoAllowedIntentCode = (typeof STEP5_SEO_ALLOWED_INTENT_CODES)[number];
221
+ export declare function isStep5SeoAllowedIntentCode(value: string): value is Step5SeoAllowedIntentCode;
190
222
  export declare const Step5SemrushRecommendationSeedSchema: z.ZodObject<{
191
223
  id: z.ZodString;
192
224
  term: z.ZodString;
@@ -301,12 +333,108 @@ export declare const Step5SemrushSelectionSummarySchema: z.ZodObject<{
301
333
  selected_count: z.ZodNumber;
302
334
  }, z.core.$strict>;
303
335
  export type Step5SemrushSelectionSummary = z.infer<typeof Step5SemrushSelectionSummarySchema>;
304
- export declare const Step5SemrushRecommendationSnapshotSchema: z.ZodObject<{
305
- schema_version: z.ZodLiteral<1>;
336
+ export declare const Step5SemrushRecommendationSnapshotSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
337
+ database: z.ZodString;
338
+ country: z.ZodString;
306
339
  provider: z.ZodLiteral<"semrush">;
307
340
  api_version: z.ZodLiteral<"v4">;
341
+ fetched_at: z.ZodString;
342
+ context_hash: z.ZodString;
343
+ status: z.ZodEnum<{
344
+ ready: "ready";
345
+ failed: "failed";
346
+ disabled: "disabled";
347
+ empty: "empty";
348
+ timeout: "timeout";
349
+ rate_limited: "rate_limited";
350
+ quota_exhausted: "quota_exhausted";
351
+ }>;
352
+ seeds: z.ZodArray<z.ZodObject<{
353
+ id: z.ZodString;
354
+ term: z.ZodString;
355
+ source_type: z.ZodEnum<{
356
+ step2: "step2";
357
+ step3: "step3";
358
+ step5: "step5";
359
+ }>;
360
+ source_id: z.ZodString;
361
+ field_path: z.ZodString;
362
+ source_field: z.ZodOptional<z.ZodString>;
363
+ source_evidence: z.ZodOptional<z.ZodString>;
364
+ business_subject: z.ZodOptional<z.ZodString>;
365
+ reason: z.ZodOptional<z.ZodString>;
366
+ }, z.core.$strict>>;
367
+ intent_groups: z.ZodArray<z.ZodObject<{
368
+ id: z.ZodString;
369
+ intent: z.ZodEnum<{
370
+ INFORMATIONAL: "INFORMATIONAL";
371
+ NAVIGATIONAL: "NAVIGATIONAL";
372
+ COMMERCIAL: "COMMERCIAL";
373
+ TRANSACTIONAL: "TRANSACTIONAL";
374
+ }>;
375
+ title: z.ZodString;
376
+ landing_page_type: z.ZodEnum<{
377
+ product: "product";
378
+ category: "category";
379
+ blog: "blog";
380
+ landing: "landing";
381
+ }>;
382
+ keywords: z.ZodArray<z.ZodObject<{
383
+ keyword: z.ZodString;
384
+ normalized_keyword: z.ZodString;
385
+ intents: z.ZodArray<z.ZodEnum<{
386
+ INFORMATIONAL: "INFORMATIONAL";
387
+ NAVIGATIONAL: "NAVIGATIONAL";
388
+ COMMERCIAL: "COMMERCIAL";
389
+ TRANSACTIONAL: "TRANSACTIONAL";
390
+ }>>;
391
+ search_volume: z.ZodNumber;
392
+ keyword_difficulty: z.ZodNumber;
393
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
394
+ trend: z.ZodArray<z.ZodNumber>;
395
+ serp_features: z.ZodArray<z.ZodString>;
396
+ fit: z.ZodObject<{
397
+ seo: z.ZodNumber;
398
+ geo: z.ZodNumber;
399
+ buyer: z.ZodNumber;
400
+ }, z.core.$strict>;
401
+ recommended_channel: z.ZodEnum<{
402
+ SEO: "SEO";
403
+ GEO: "GEO";
404
+ DUAL: "DUAL";
405
+ }>;
406
+ priority: z.ZodEnum<{
407
+ P0: "P0";
408
+ P1: "P1";
409
+ P2: "P2";
410
+ P3: "P3";
411
+ }>;
412
+ already_in_plan: z.ZodBoolean;
413
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
414
+ }, z.core.$strict>>;
415
+ }, z.core.$strict>>;
416
+ selection_summary: z.ZodOptional<z.ZodObject<{
417
+ fetched_count: z.ZodNumber;
418
+ unique_count: z.ZodNumber;
419
+ metric_gate_pass_count: z.ZodNumber;
420
+ commercial_intent_pass_count: z.ZodNumber;
421
+ fit_pass_count: z.ZodNumber;
422
+ selected_count: z.ZodNumber;
423
+ }, z.core.$strict>>;
424
+ empty_reason_code: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
425
+ NO_SEEDS: "NO_SEEDS";
426
+ NO_PROVIDER_CANDIDATES: "NO_PROVIDER_CANDIDATES";
427
+ NO_METRIC_ELIGIBLE_CANDIDATES: "NO_METRIC_ELIGIBLE_CANDIDATES";
428
+ NO_COMMERCIAL_INTENT_CANDIDATES: "NO_COMMERCIAL_INTENT_CANDIDATES";
429
+ NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
430
+ }>>>;
431
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
432
+ schema_version: z.ZodLiteral<1>;
433
+ }, z.core.$strict>, z.ZodObject<{
308
434
  database: z.ZodString;
309
435
  country: z.ZodString;
436
+ provider: z.ZodLiteral<"semrush">;
437
+ api_version: z.ZodLiteral<"v4">;
310
438
  fetched_at: z.ZodString;
311
439
  context_hash: z.ZodString;
312
440
  status: z.ZodEnum<{
@@ -398,10 +526,11 @@ export declare const Step5SemrushRecommendationSnapshotSchema: z.ZodObject<{
398
526
  NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
399
527
  }>>>;
400
528
  error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
401
- }, z.core.$strict>;
529
+ schema_version: z.ZodLiteral<2>;
530
+ }, z.core.$strict>], "schema_version">;
402
531
  export type Step5SemrushRecommendationSnapshot = z.infer<typeof Step5SemrushRecommendationSnapshotSchema>;
403
- /** Cloud relevance is only a coarse noise filter, not the public 0-10 Fit. */
404
- export declare const STEP5_SEMRUSH_MIN_RELEVANCE_SCORE: 1;
532
+ /** Cloud requires the field; zero disables this non-prototype relevance gate. */
533
+ export declare const STEP5_SEMRUSH_MIN_RELEVANCE_SCORE: 0;
405
534
  /** Browser-safe request for the VCP Semrush keyword candidate proxy. */
406
535
  export declare const Step5SemrushKeywordCandidateSearchRequestSchema: z.ZodObject<{
407
536
  seed_keyword: z.ZodString;
@@ -410,7 +539,7 @@ export declare const Step5SemrushKeywordCandidateSearchRequestSchema: z.ZodObjec
410
539
  offset: z.ZodDefault<z.ZodNumber>;
411
540
  min_search_volume: z.ZodDefault<z.ZodNumber>;
412
541
  max_keyword_difficulty: z.ZodDefault<z.ZodNumber>;
413
- min_relevance_score: z.ZodDefault<z.ZodLiteral<1>>;
542
+ min_relevance_score: z.ZodDefault<z.ZodLiteral<0>>;
414
543
  }, z.core.$strict>;
415
544
  export type Step5SemrushKeywordCandidateSearchRequest = z.infer<typeof Step5SemrushKeywordCandidateSearchRequestSchema>;
416
545
  export declare const Step5SemrushKeywordCandidateSchema: z.ZodObject<{
@@ -546,6 +675,28 @@ export declare const Step5GenerationStatusSchema: z.ZodEnum<{
546
675
  ok: "ok";
547
676
  }>;
548
677
  export type Step5GenerationStatus = z.infer<typeof Step5GenerationStatusSchema>;
678
+ export declare const STEP5_GEO_QUESTION_TYPES: readonly ["category", "selection", "application", "parameter", "cost", "trust", "compliance", "delivery"];
679
+ export declare const Step5GeoQuestionSchema: z.ZodObject<{
680
+ id: z.ZodString;
681
+ question: z.ZodString;
682
+ question_type: z.ZodEnum<{
683
+ category: "category";
684
+ trust: "trust";
685
+ selection: "selection";
686
+ application: "application";
687
+ parameter: "parameter";
688
+ cost: "cost";
689
+ compliance: "compliance";
690
+ delivery: "delivery";
691
+ }>;
692
+ intent_strength: z.ZodEnum<{
693
+ high: "high";
694
+ medium: "medium";
695
+ low: "low";
696
+ }>;
697
+ source: z.ZodLiteral<"ai_generation">;
698
+ }, z.core.$strict>;
699
+ export type Step5GeoQuestion = z.infer<typeof Step5GeoQuestionSchema>;
549
700
  /**
550
701
  * 注意这里用 .loose() 而不是 .strict()。
551
702
  *
@@ -676,6 +827,17 @@ export declare const Step5StrategyItemSchema: z.ZodObject<{
676
827
  sr: "sr";
677
828
  is: "is";
678
829
  }>>>;
830
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
831
+ single_country: "single_country";
832
+ regional_combination: "regional_combination";
833
+ multi_market: "multi_market";
834
+ }>>>;
835
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
836
+ code: z.ZodString;
837
+ name_zh: z.ZodString;
838
+ name_en: z.ZodString;
839
+ region: z.ZodString;
840
+ }, z.core.$strict>>>;
679
841
  }, z.core.$loose>, z.ZodObject<{
680
842
  id: z.ZodEnum<{
681
843
  recommended: "recommended";
@@ -778,6 +940,17 @@ export declare const Step5StrategyItemSchema: z.ZodObject<{
778
940
  sr: "sr";
779
941
  is: "is";
780
942
  }>>>;
943
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
944
+ single_country: "single_country";
945
+ regional_combination: "regional_combination";
946
+ multi_market: "multi_market";
947
+ }>>>;
948
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
949
+ code: z.ZodString;
950
+ name_zh: z.ZodString;
951
+ name_en: z.ZodString;
952
+ region: z.ZodString;
953
+ }, z.core.$strict>>>;
781
954
  }, z.core.$loose>, z.ZodObject<{
782
955
  id: z.ZodEnum<{
783
956
  recommended: "recommended";
@@ -880,6 +1053,17 @@ export declare const Step5StrategyItemSchema: z.ZodObject<{
880
1053
  sr: "sr";
881
1054
  is: "is";
882
1055
  }>>>;
1056
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
1057
+ single_country: "single_country";
1058
+ regional_combination: "regional_combination";
1059
+ multi_market: "multi_market";
1060
+ }>>>;
1061
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
1062
+ code: z.ZodString;
1063
+ name_zh: z.ZodString;
1064
+ name_en: z.ZodString;
1065
+ region: z.ZodString;
1066
+ }, z.core.$strict>>>;
883
1067
  }, z.core.$loose>], null>;
884
1068
  plan: z.ZodOptional<z.ZodNullable<z.ZodObject<{
885
1069
  lead: z.ZodString;
@@ -897,12 +1081,108 @@ export declare const Step5StrategyItemSchema: z.ZodObject<{
897
1081
  source_id: z.ZodString;
898
1082
  field_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
899
1083
  }, z.core.$strict>>;
900
- semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodObject<{
901
- schema_version: z.ZodLiteral<1>;
1084
+ semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
1085
+ database: z.ZodString;
1086
+ country: z.ZodString;
902
1087
  provider: z.ZodLiteral<"semrush">;
903
1088
  api_version: z.ZodLiteral<"v4">;
1089
+ fetched_at: z.ZodString;
1090
+ context_hash: z.ZodString;
1091
+ status: z.ZodEnum<{
1092
+ ready: "ready";
1093
+ failed: "failed";
1094
+ disabled: "disabled";
1095
+ empty: "empty";
1096
+ timeout: "timeout";
1097
+ rate_limited: "rate_limited";
1098
+ quota_exhausted: "quota_exhausted";
1099
+ }>;
1100
+ seeds: z.ZodArray<z.ZodObject<{
1101
+ id: z.ZodString;
1102
+ term: z.ZodString;
1103
+ source_type: z.ZodEnum<{
1104
+ step2: "step2";
1105
+ step3: "step3";
1106
+ step5: "step5";
1107
+ }>;
1108
+ source_id: z.ZodString;
1109
+ field_path: z.ZodString;
1110
+ source_field: z.ZodOptional<z.ZodString>;
1111
+ source_evidence: z.ZodOptional<z.ZodString>;
1112
+ business_subject: z.ZodOptional<z.ZodString>;
1113
+ reason: z.ZodOptional<z.ZodString>;
1114
+ }, z.core.$strict>>;
1115
+ intent_groups: z.ZodArray<z.ZodObject<{
1116
+ id: z.ZodString;
1117
+ intent: z.ZodEnum<{
1118
+ INFORMATIONAL: "INFORMATIONAL";
1119
+ NAVIGATIONAL: "NAVIGATIONAL";
1120
+ COMMERCIAL: "COMMERCIAL";
1121
+ TRANSACTIONAL: "TRANSACTIONAL";
1122
+ }>;
1123
+ title: z.ZodString;
1124
+ landing_page_type: z.ZodEnum<{
1125
+ product: "product";
1126
+ category: "category";
1127
+ blog: "blog";
1128
+ landing: "landing";
1129
+ }>;
1130
+ keywords: z.ZodArray<z.ZodObject<{
1131
+ keyword: z.ZodString;
1132
+ normalized_keyword: z.ZodString;
1133
+ intents: z.ZodArray<z.ZodEnum<{
1134
+ INFORMATIONAL: "INFORMATIONAL";
1135
+ NAVIGATIONAL: "NAVIGATIONAL";
1136
+ COMMERCIAL: "COMMERCIAL";
1137
+ TRANSACTIONAL: "TRANSACTIONAL";
1138
+ }>>;
1139
+ search_volume: z.ZodNumber;
1140
+ keyword_difficulty: z.ZodNumber;
1141
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
1142
+ trend: z.ZodArray<z.ZodNumber>;
1143
+ serp_features: z.ZodArray<z.ZodString>;
1144
+ fit: z.ZodObject<{
1145
+ seo: z.ZodNumber;
1146
+ geo: z.ZodNumber;
1147
+ buyer: z.ZodNumber;
1148
+ }, z.core.$strict>;
1149
+ recommended_channel: z.ZodEnum<{
1150
+ SEO: "SEO";
1151
+ GEO: "GEO";
1152
+ DUAL: "DUAL";
1153
+ }>;
1154
+ priority: z.ZodEnum<{
1155
+ P0: "P0";
1156
+ P1: "P1";
1157
+ P2: "P2";
1158
+ P3: "P3";
1159
+ }>;
1160
+ already_in_plan: z.ZodBoolean;
1161
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1162
+ }, z.core.$strict>>;
1163
+ }, z.core.$strict>>;
1164
+ selection_summary: z.ZodOptional<z.ZodObject<{
1165
+ fetched_count: z.ZodNumber;
1166
+ unique_count: z.ZodNumber;
1167
+ metric_gate_pass_count: z.ZodNumber;
1168
+ commercial_intent_pass_count: z.ZodNumber;
1169
+ fit_pass_count: z.ZodNumber;
1170
+ selected_count: z.ZodNumber;
1171
+ }, z.core.$strict>>;
1172
+ empty_reason_code: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
1173
+ NO_SEEDS: "NO_SEEDS";
1174
+ NO_PROVIDER_CANDIDATES: "NO_PROVIDER_CANDIDATES";
1175
+ NO_METRIC_ELIGIBLE_CANDIDATES: "NO_METRIC_ELIGIBLE_CANDIDATES";
1176
+ NO_COMMERCIAL_INTENT_CANDIDATES: "NO_COMMERCIAL_INTENT_CANDIDATES";
1177
+ NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
1178
+ }>>>;
1179
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1180
+ schema_version: z.ZodLiteral<1>;
1181
+ }, z.core.$strict>, z.ZodObject<{
904
1182
  database: z.ZodString;
905
1183
  country: z.ZodString;
1184
+ provider: z.ZodLiteral<"semrush">;
1185
+ api_version: z.ZodLiteral<"v4">;
906
1186
  fetched_at: z.ZodString;
907
1187
  context_hash: z.ZodString;
908
1188
  status: z.ZodEnum<{
@@ -994,7 +1274,8 @@ export declare const Step5StrategyItemSchema: z.ZodObject<{
994
1274
  NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
995
1275
  }>>>;
996
1276
  error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
997
- }, z.core.$strict>>>;
1277
+ schema_version: z.ZodLiteral<2>;
1278
+ }, z.core.$strict>], "schema_version">>>;
998
1279
  seo_payload: z.ZodOptional<z.ZodNullable<z.ZodLazy<z.ZodObject<{
999
1280
  schema_version: z.ZodLiteral<2>;
1000
1281
  seo_keywords: z.ZodArray<z.ZodObject<{
@@ -1003,9 +1284,9 @@ export declare const Step5StrategyItemSchema: z.ZodObject<{
1003
1284
  normalized_keyword: z.ZodString;
1004
1285
  intc: z.ZodEnum<{
1005
1286
  C: "C";
1287
+ T: "T";
1006
1288
  I: "I";
1007
1289
  N: "N";
1008
- T: "T";
1009
1290
  }>;
1010
1291
  keyword_type: z.ZodString;
1011
1292
  intent_strength: z.ZodEnum<{
@@ -1039,6 +1320,26 @@ export declare const Step5StrategyItemSchema: z.ZodObject<{
1039
1320
  selected_keywords: z.ZodArray<z.ZodString>;
1040
1321
  }, z.core.$strict>>>;
1041
1322
  }, z.core.$strict>>>>;
1323
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
1324
+ id: z.ZodString;
1325
+ question: z.ZodString;
1326
+ question_type: z.ZodEnum<{
1327
+ category: "category";
1328
+ trust: "trust";
1329
+ selection: "selection";
1330
+ application: "application";
1331
+ parameter: "parameter";
1332
+ cost: "cost";
1333
+ compliance: "compliance";
1334
+ delivery: "delivery";
1335
+ }>;
1336
+ intent_strength: z.ZodEnum<{
1337
+ high: "high";
1338
+ medium: "medium";
1339
+ low: "low";
1340
+ }>;
1341
+ source: z.ZodLiteral<"ai_generation">;
1342
+ }, z.core.$strict>>>;
1042
1343
  generation_status: z.ZodOptional<z.ZodEnum<{
1043
1344
  degraded: "degraded";
1044
1345
  ok: "ok";
@@ -1087,9 +1388,9 @@ export declare const Step5SeoKeywordSchema: z.ZodObject<{
1087
1388
  normalized_keyword: z.ZodString;
1088
1389
  intc: z.ZodEnum<{
1089
1390
  C: "C";
1391
+ T: "T";
1090
1392
  I: "I";
1091
1393
  N: "N";
1092
- T: "T";
1093
1394
  }>;
1094
1395
  keyword_type: z.ZodString;
1095
1396
  intent_strength: z.ZodEnum<{
@@ -1132,9 +1433,9 @@ export declare const Step5SeoPayloadV2Schema: z.ZodObject<{
1132
1433
  normalized_keyword: z.ZodString;
1133
1434
  intc: z.ZodEnum<{
1134
1435
  C: "C";
1436
+ T: "T";
1135
1437
  I: "I";
1136
1438
  N: "N";
1137
- T: "T";
1138
1439
  }>;
1139
1440
  keyword_type: z.ZodString;
1140
1441
  intent_strength: z.ZodEnum<{
@@ -1177,9 +1478,9 @@ export declare const Step5SeoPayloadV2InputSchema: z.ZodObject<{
1177
1478
  normalized_keyword: z.ZodString;
1178
1479
  intc: z.ZodEnum<{
1179
1480
  C: "C";
1481
+ T: "T";
1180
1482
  I: "I";
1181
1483
  N: "N";
1182
- T: "T";
1183
1484
  }>;
1184
1485
  keyword_type: z.ZodString;
1185
1486
  intent_strength: z.ZodEnum<{
@@ -1261,9 +1562,9 @@ export declare const Step5DecisionCustomPayloadSchema: z.ZodUnion<readonly [z.Zo
1261
1562
  normalized_keyword: z.ZodString;
1262
1563
  intc: z.ZodEnum<{
1263
1564
  C: "C";
1565
+ T: "T";
1264
1566
  I: "I";
1265
1567
  N: "N";
1266
- T: "T";
1267
1568
  }>;
1268
1569
  keyword_type: z.ZodString;
1269
1570
  intent_strength: z.ZodEnum<{
@@ -1324,9 +1625,9 @@ export declare const Step5DecisionCustomPayloadInputSchema: z.ZodUnion<readonly
1324
1625
  normalized_keyword: z.ZodString;
1325
1626
  intc: z.ZodEnum<{
1326
1627
  C: "C";
1628
+ T: "T";
1327
1629
  I: "I";
1328
1630
  N: "N";
1329
- T: "T";
1330
1631
  }>;
1331
1632
  keyword_type: z.ZodString;
1332
1633
  intent_strength: z.ZodEnum<{
@@ -1406,9 +1707,9 @@ export declare const Step5StrategyDecisionInputSchema: z.ZodObject<{
1406
1707
  normalized_keyword: z.ZodString;
1407
1708
  intc: z.ZodEnum<{
1408
1709
  C: "C";
1710
+ T: "T";
1409
1711
  I: "I";
1410
1712
  N: "N";
1411
- T: "T";
1412
1713
  }>;
1413
1714
  keyword_type: z.ZodString;
1414
1715
  intent_strength: z.ZodEnum<{
@@ -1495,9 +1796,9 @@ export declare const Step5StrategyDecisionSchema: z.ZodObject<{
1495
1796
  normalized_keyword: z.ZodString;
1496
1797
  intc: z.ZodEnum<{
1497
1798
  C: "C";
1799
+ T: "T";
1498
1800
  I: "I";
1499
1801
  N: "N";
1500
- T: "T";
1501
1802
  }>;
1502
1803
  keyword_type: z.ZodString;
1503
1804
  intent_strength: z.ZodEnum<{
@@ -1549,6 +1850,17 @@ export declare const Step5StrategyDecisionSchema: z.ZodObject<{
1549
1850
  cpc: z.ZodNullable<z.ZodNumber>;
1550
1851
  }, z.core.$strict>>>;
1551
1852
  }, z.core.$strict>]>>;
1853
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
1854
+ single_country: "single_country";
1855
+ regional_combination: "regional_combination";
1856
+ multi_market: "multi_market";
1857
+ }>>>;
1858
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
1859
+ code: z.ZodString;
1860
+ name_zh: z.ZodString;
1861
+ name_en: z.ZodString;
1862
+ region: z.ZodString;
1863
+ }, z.core.$strict>>>;
1552
1864
  selected_value: z.ZodNullable<z.ZodUnknown>;
1553
1865
  accepted_at: z.ZodString;
1554
1866
  }, z.core.$loose>;
@@ -1695,6 +2007,17 @@ export declare const Step5StrategyVersionSnapshotSchema: z.ZodObject<{
1695
2007
  sr: "sr";
1696
2008
  is: "is";
1697
2009
  }>>>;
2010
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
2011
+ single_country: "single_country";
2012
+ regional_combination: "regional_combination";
2013
+ multi_market: "multi_market";
2014
+ }>>>;
2015
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
2016
+ code: z.ZodString;
2017
+ name_zh: z.ZodString;
2018
+ name_en: z.ZodString;
2019
+ region: z.ZodString;
2020
+ }, z.core.$strict>>>;
1698
2021
  }, z.core.$loose>, z.ZodObject<{
1699
2022
  id: z.ZodEnum<{
1700
2023
  recommended: "recommended";
@@ -1797,6 +2120,17 @@ export declare const Step5StrategyVersionSnapshotSchema: z.ZodObject<{
1797
2120
  sr: "sr";
1798
2121
  is: "is";
1799
2122
  }>>>;
2123
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
2124
+ single_country: "single_country";
2125
+ regional_combination: "regional_combination";
2126
+ multi_market: "multi_market";
2127
+ }>>>;
2128
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
2129
+ code: z.ZodString;
2130
+ name_zh: z.ZodString;
2131
+ name_en: z.ZodString;
2132
+ region: z.ZodString;
2133
+ }, z.core.$strict>>>;
1800
2134
  }, z.core.$loose>, z.ZodObject<{
1801
2135
  id: z.ZodEnum<{
1802
2136
  recommended: "recommended";
@@ -1899,6 +2233,17 @@ export declare const Step5StrategyVersionSnapshotSchema: z.ZodObject<{
1899
2233
  sr: "sr";
1900
2234
  is: "is";
1901
2235
  }>>>;
2236
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
2237
+ single_country: "single_country";
2238
+ regional_combination: "regional_combination";
2239
+ multi_market: "multi_market";
2240
+ }>>>;
2241
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
2242
+ code: z.ZodString;
2243
+ name_zh: z.ZodString;
2244
+ name_en: z.ZodString;
2245
+ region: z.ZodString;
2246
+ }, z.core.$strict>>>;
1902
2247
  }, z.core.$loose>], null>;
1903
2248
  plan: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1904
2249
  lead: z.ZodString;
@@ -1916,12 +2261,108 @@ export declare const Step5StrategyVersionSnapshotSchema: z.ZodObject<{
1916
2261
  source_id: z.ZodString;
1917
2262
  field_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1918
2263
  }, z.core.$strict>>;
1919
- semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1920
- schema_version: z.ZodLiteral<1>;
1921
- provider: z.ZodLiteral<"semrush">;
2264
+ semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
2265
+ database: z.ZodString;
2266
+ country: z.ZodString;
2267
+ provider: z.ZodLiteral<"semrush">;
1922
2268
  api_version: z.ZodLiteral<"v4">;
2269
+ fetched_at: z.ZodString;
2270
+ context_hash: z.ZodString;
2271
+ status: z.ZodEnum<{
2272
+ ready: "ready";
2273
+ failed: "failed";
2274
+ disabled: "disabled";
2275
+ empty: "empty";
2276
+ timeout: "timeout";
2277
+ rate_limited: "rate_limited";
2278
+ quota_exhausted: "quota_exhausted";
2279
+ }>;
2280
+ seeds: z.ZodArray<z.ZodObject<{
2281
+ id: z.ZodString;
2282
+ term: z.ZodString;
2283
+ source_type: z.ZodEnum<{
2284
+ step2: "step2";
2285
+ step3: "step3";
2286
+ step5: "step5";
2287
+ }>;
2288
+ source_id: z.ZodString;
2289
+ field_path: z.ZodString;
2290
+ source_field: z.ZodOptional<z.ZodString>;
2291
+ source_evidence: z.ZodOptional<z.ZodString>;
2292
+ business_subject: z.ZodOptional<z.ZodString>;
2293
+ reason: z.ZodOptional<z.ZodString>;
2294
+ }, z.core.$strict>>;
2295
+ intent_groups: z.ZodArray<z.ZodObject<{
2296
+ id: z.ZodString;
2297
+ intent: z.ZodEnum<{
2298
+ INFORMATIONAL: "INFORMATIONAL";
2299
+ NAVIGATIONAL: "NAVIGATIONAL";
2300
+ COMMERCIAL: "COMMERCIAL";
2301
+ TRANSACTIONAL: "TRANSACTIONAL";
2302
+ }>;
2303
+ title: z.ZodString;
2304
+ landing_page_type: z.ZodEnum<{
2305
+ product: "product";
2306
+ category: "category";
2307
+ blog: "blog";
2308
+ landing: "landing";
2309
+ }>;
2310
+ keywords: z.ZodArray<z.ZodObject<{
2311
+ keyword: z.ZodString;
2312
+ normalized_keyword: z.ZodString;
2313
+ intents: z.ZodArray<z.ZodEnum<{
2314
+ INFORMATIONAL: "INFORMATIONAL";
2315
+ NAVIGATIONAL: "NAVIGATIONAL";
2316
+ COMMERCIAL: "COMMERCIAL";
2317
+ TRANSACTIONAL: "TRANSACTIONAL";
2318
+ }>>;
2319
+ search_volume: z.ZodNumber;
2320
+ keyword_difficulty: z.ZodNumber;
2321
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
2322
+ trend: z.ZodArray<z.ZodNumber>;
2323
+ serp_features: z.ZodArray<z.ZodString>;
2324
+ fit: z.ZodObject<{
2325
+ seo: z.ZodNumber;
2326
+ geo: z.ZodNumber;
2327
+ buyer: z.ZodNumber;
2328
+ }, z.core.$strict>;
2329
+ recommended_channel: z.ZodEnum<{
2330
+ SEO: "SEO";
2331
+ GEO: "GEO";
2332
+ DUAL: "DUAL";
2333
+ }>;
2334
+ priority: z.ZodEnum<{
2335
+ P0: "P0";
2336
+ P1: "P1";
2337
+ P2: "P2";
2338
+ P3: "P3";
2339
+ }>;
2340
+ already_in_plan: z.ZodBoolean;
2341
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
2342
+ }, z.core.$strict>>;
2343
+ }, z.core.$strict>>;
2344
+ selection_summary: z.ZodOptional<z.ZodObject<{
2345
+ fetched_count: z.ZodNumber;
2346
+ unique_count: z.ZodNumber;
2347
+ metric_gate_pass_count: z.ZodNumber;
2348
+ commercial_intent_pass_count: z.ZodNumber;
2349
+ fit_pass_count: z.ZodNumber;
2350
+ selected_count: z.ZodNumber;
2351
+ }, z.core.$strict>>;
2352
+ empty_reason_code: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
2353
+ NO_SEEDS: "NO_SEEDS";
2354
+ NO_PROVIDER_CANDIDATES: "NO_PROVIDER_CANDIDATES";
2355
+ NO_METRIC_ELIGIBLE_CANDIDATES: "NO_METRIC_ELIGIBLE_CANDIDATES";
2356
+ NO_COMMERCIAL_INTENT_CANDIDATES: "NO_COMMERCIAL_INTENT_CANDIDATES";
2357
+ NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
2358
+ }>>>;
2359
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2360
+ schema_version: z.ZodLiteral<1>;
2361
+ }, z.core.$strict>, z.ZodObject<{
1923
2362
  database: z.ZodString;
1924
2363
  country: z.ZodString;
2364
+ provider: z.ZodLiteral<"semrush">;
2365
+ api_version: z.ZodLiteral<"v4">;
1925
2366
  fetched_at: z.ZodString;
1926
2367
  context_hash: z.ZodString;
1927
2368
  status: z.ZodEnum<{
@@ -2013,7 +2454,8 @@ export declare const Step5StrategyVersionSnapshotSchema: z.ZodObject<{
2013
2454
  NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
2014
2455
  }>>>;
2015
2456
  error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2016
- }, z.core.$strict>>>;
2457
+ schema_version: z.ZodLiteral<2>;
2458
+ }, z.core.$strict>], "schema_version">>>;
2017
2459
  seo_payload: z.ZodOptional<z.ZodNullable<z.ZodLazy<z.ZodObject<{
2018
2460
  schema_version: z.ZodLiteral<2>;
2019
2461
  seo_keywords: z.ZodArray<z.ZodObject<{
@@ -2022,9 +2464,9 @@ export declare const Step5StrategyVersionSnapshotSchema: z.ZodObject<{
2022
2464
  normalized_keyword: z.ZodString;
2023
2465
  intc: z.ZodEnum<{
2024
2466
  C: "C";
2467
+ T: "T";
2025
2468
  I: "I";
2026
2469
  N: "N";
2027
- T: "T";
2028
2470
  }>;
2029
2471
  keyword_type: z.ZodString;
2030
2472
  intent_strength: z.ZodEnum<{
@@ -2058,6 +2500,26 @@ export declare const Step5StrategyVersionSnapshotSchema: z.ZodObject<{
2058
2500
  selected_keywords: z.ZodArray<z.ZodString>;
2059
2501
  }, z.core.$strict>>>;
2060
2502
  }, z.core.$strict>>>>;
2503
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
2504
+ id: z.ZodString;
2505
+ question: z.ZodString;
2506
+ question_type: z.ZodEnum<{
2507
+ category: "category";
2508
+ trust: "trust";
2509
+ selection: "selection";
2510
+ application: "application";
2511
+ parameter: "parameter";
2512
+ cost: "cost";
2513
+ compliance: "compliance";
2514
+ delivery: "delivery";
2515
+ }>;
2516
+ intent_strength: z.ZodEnum<{
2517
+ high: "high";
2518
+ medium: "medium";
2519
+ low: "low";
2520
+ }>;
2521
+ source: z.ZodLiteral<"ai_generation">;
2522
+ }, z.core.$strict>>>;
2061
2523
  generation_status: z.ZodOptional<z.ZodEnum<{
2062
2524
  degraded: "degraded";
2063
2525
  ok: "ok";
@@ -2091,9 +2553,9 @@ export declare const Step5StrategyVersionSnapshotSchema: z.ZodObject<{
2091
2553
  normalized_keyword: z.ZodString;
2092
2554
  intc: z.ZodEnum<{
2093
2555
  C: "C";
2556
+ T: "T";
2094
2557
  I: "I";
2095
2558
  N: "N";
2096
- T: "T";
2097
2559
  }>;
2098
2560
  keyword_type: z.ZodString;
2099
2561
  intent_strength: z.ZodEnum<{
@@ -2145,6 +2607,17 @@ export declare const Step5StrategyVersionSnapshotSchema: z.ZodObject<{
2145
2607
  cpc: z.ZodNullable<z.ZodNumber>;
2146
2608
  }, z.core.$strict>>>;
2147
2609
  }, z.core.$strict>]>>;
2610
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
2611
+ single_country: "single_country";
2612
+ regional_combination: "regional_combination";
2613
+ multi_market: "multi_market";
2614
+ }>>>;
2615
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
2616
+ code: z.ZodString;
2617
+ name_zh: z.ZodString;
2618
+ name_en: z.ZodString;
2619
+ region: z.ZodString;
2620
+ }, z.core.$strict>>>;
2148
2621
  selected_value: z.ZodNullable<z.ZodUnknown>;
2149
2622
  accepted_at: z.ZodString;
2150
2623
  }, z.core.$loose>>;
@@ -2302,6 +2775,17 @@ export declare const Step5CommittedVersionSchema: z.ZodObject<{
2302
2775
  sr: "sr";
2303
2776
  is: "is";
2304
2777
  }>>>;
2778
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
2779
+ single_country: "single_country";
2780
+ regional_combination: "regional_combination";
2781
+ multi_market: "multi_market";
2782
+ }>>>;
2783
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
2784
+ code: z.ZodString;
2785
+ name_zh: z.ZodString;
2786
+ name_en: z.ZodString;
2787
+ region: z.ZodString;
2788
+ }, z.core.$strict>>>;
2305
2789
  }, z.core.$loose>, z.ZodObject<{
2306
2790
  id: z.ZodEnum<{
2307
2791
  recommended: "recommended";
@@ -2404,6 +2888,17 @@ export declare const Step5CommittedVersionSchema: z.ZodObject<{
2404
2888
  sr: "sr";
2405
2889
  is: "is";
2406
2890
  }>>>;
2891
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
2892
+ single_country: "single_country";
2893
+ regional_combination: "regional_combination";
2894
+ multi_market: "multi_market";
2895
+ }>>>;
2896
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
2897
+ code: z.ZodString;
2898
+ name_zh: z.ZodString;
2899
+ name_en: z.ZodString;
2900
+ region: z.ZodString;
2901
+ }, z.core.$strict>>>;
2407
2902
  }, z.core.$loose>, z.ZodObject<{
2408
2903
  id: z.ZodEnum<{
2409
2904
  recommended: "recommended";
@@ -2506,6 +3001,17 @@ export declare const Step5CommittedVersionSchema: z.ZodObject<{
2506
3001
  sr: "sr";
2507
3002
  is: "is";
2508
3003
  }>>>;
3004
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
3005
+ single_country: "single_country";
3006
+ regional_combination: "regional_combination";
3007
+ multi_market: "multi_market";
3008
+ }>>>;
3009
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
3010
+ code: z.ZodString;
3011
+ name_zh: z.ZodString;
3012
+ name_en: z.ZodString;
3013
+ region: z.ZodString;
3014
+ }, z.core.$strict>>>;
2509
3015
  }, z.core.$loose>], null>;
2510
3016
  plan: z.ZodOptional<z.ZodNullable<z.ZodObject<{
2511
3017
  lead: z.ZodString;
@@ -2523,12 +3029,108 @@ export declare const Step5CommittedVersionSchema: z.ZodObject<{
2523
3029
  source_id: z.ZodString;
2524
3030
  field_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2525
3031
  }, z.core.$strict>>;
2526
- semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodObject<{
2527
- schema_version: z.ZodLiteral<1>;
3032
+ semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
3033
+ database: z.ZodString;
3034
+ country: z.ZodString;
2528
3035
  provider: z.ZodLiteral<"semrush">;
2529
3036
  api_version: z.ZodLiteral<"v4">;
3037
+ fetched_at: z.ZodString;
3038
+ context_hash: z.ZodString;
3039
+ status: z.ZodEnum<{
3040
+ ready: "ready";
3041
+ failed: "failed";
3042
+ disabled: "disabled";
3043
+ empty: "empty";
3044
+ timeout: "timeout";
3045
+ rate_limited: "rate_limited";
3046
+ quota_exhausted: "quota_exhausted";
3047
+ }>;
3048
+ seeds: z.ZodArray<z.ZodObject<{
3049
+ id: z.ZodString;
3050
+ term: z.ZodString;
3051
+ source_type: z.ZodEnum<{
3052
+ step2: "step2";
3053
+ step3: "step3";
3054
+ step5: "step5";
3055
+ }>;
3056
+ source_id: z.ZodString;
3057
+ field_path: z.ZodString;
3058
+ source_field: z.ZodOptional<z.ZodString>;
3059
+ source_evidence: z.ZodOptional<z.ZodString>;
3060
+ business_subject: z.ZodOptional<z.ZodString>;
3061
+ reason: z.ZodOptional<z.ZodString>;
3062
+ }, z.core.$strict>>;
3063
+ intent_groups: z.ZodArray<z.ZodObject<{
3064
+ id: z.ZodString;
3065
+ intent: z.ZodEnum<{
3066
+ INFORMATIONAL: "INFORMATIONAL";
3067
+ NAVIGATIONAL: "NAVIGATIONAL";
3068
+ COMMERCIAL: "COMMERCIAL";
3069
+ TRANSACTIONAL: "TRANSACTIONAL";
3070
+ }>;
3071
+ title: z.ZodString;
3072
+ landing_page_type: z.ZodEnum<{
3073
+ product: "product";
3074
+ category: "category";
3075
+ blog: "blog";
3076
+ landing: "landing";
3077
+ }>;
3078
+ keywords: z.ZodArray<z.ZodObject<{
3079
+ keyword: z.ZodString;
3080
+ normalized_keyword: z.ZodString;
3081
+ intents: z.ZodArray<z.ZodEnum<{
3082
+ INFORMATIONAL: "INFORMATIONAL";
3083
+ NAVIGATIONAL: "NAVIGATIONAL";
3084
+ COMMERCIAL: "COMMERCIAL";
3085
+ TRANSACTIONAL: "TRANSACTIONAL";
3086
+ }>>;
3087
+ search_volume: z.ZodNumber;
3088
+ keyword_difficulty: z.ZodNumber;
3089
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
3090
+ trend: z.ZodArray<z.ZodNumber>;
3091
+ serp_features: z.ZodArray<z.ZodString>;
3092
+ fit: z.ZodObject<{
3093
+ seo: z.ZodNumber;
3094
+ geo: z.ZodNumber;
3095
+ buyer: z.ZodNumber;
3096
+ }, z.core.$strict>;
3097
+ recommended_channel: z.ZodEnum<{
3098
+ SEO: "SEO";
3099
+ GEO: "GEO";
3100
+ DUAL: "DUAL";
3101
+ }>;
3102
+ priority: z.ZodEnum<{
3103
+ P0: "P0";
3104
+ P1: "P1";
3105
+ P2: "P2";
3106
+ P3: "P3";
3107
+ }>;
3108
+ already_in_plan: z.ZodBoolean;
3109
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
3110
+ }, z.core.$strict>>;
3111
+ }, z.core.$strict>>;
3112
+ selection_summary: z.ZodOptional<z.ZodObject<{
3113
+ fetched_count: z.ZodNumber;
3114
+ unique_count: z.ZodNumber;
3115
+ metric_gate_pass_count: z.ZodNumber;
3116
+ commercial_intent_pass_count: z.ZodNumber;
3117
+ fit_pass_count: z.ZodNumber;
3118
+ selected_count: z.ZodNumber;
3119
+ }, z.core.$strict>>;
3120
+ empty_reason_code: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
3121
+ NO_SEEDS: "NO_SEEDS";
3122
+ NO_PROVIDER_CANDIDATES: "NO_PROVIDER_CANDIDATES";
3123
+ NO_METRIC_ELIGIBLE_CANDIDATES: "NO_METRIC_ELIGIBLE_CANDIDATES";
3124
+ NO_COMMERCIAL_INTENT_CANDIDATES: "NO_COMMERCIAL_INTENT_CANDIDATES";
3125
+ NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
3126
+ }>>>;
3127
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
3128
+ schema_version: z.ZodLiteral<1>;
3129
+ }, z.core.$strict>, z.ZodObject<{
2530
3130
  database: z.ZodString;
2531
3131
  country: z.ZodString;
3132
+ provider: z.ZodLiteral<"semrush">;
3133
+ api_version: z.ZodLiteral<"v4">;
2532
3134
  fetched_at: z.ZodString;
2533
3135
  context_hash: z.ZodString;
2534
3136
  status: z.ZodEnum<{
@@ -2620,7 +3222,8 @@ export declare const Step5CommittedVersionSchema: z.ZodObject<{
2620
3222
  NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
2621
3223
  }>>>;
2622
3224
  error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2623
- }, z.core.$strict>>>;
3225
+ schema_version: z.ZodLiteral<2>;
3226
+ }, z.core.$strict>], "schema_version">>>;
2624
3227
  seo_payload: z.ZodOptional<z.ZodNullable<z.ZodLazy<z.ZodObject<{
2625
3228
  schema_version: z.ZodLiteral<2>;
2626
3229
  seo_keywords: z.ZodArray<z.ZodObject<{
@@ -2629,9 +3232,9 @@ export declare const Step5CommittedVersionSchema: z.ZodObject<{
2629
3232
  normalized_keyword: z.ZodString;
2630
3233
  intc: z.ZodEnum<{
2631
3234
  C: "C";
3235
+ T: "T";
2632
3236
  I: "I";
2633
3237
  N: "N";
2634
- T: "T";
2635
3238
  }>;
2636
3239
  keyword_type: z.ZodString;
2637
3240
  intent_strength: z.ZodEnum<{
@@ -2665,6 +3268,26 @@ export declare const Step5CommittedVersionSchema: z.ZodObject<{
2665
3268
  selected_keywords: z.ZodArray<z.ZodString>;
2666
3269
  }, z.core.$strict>>>;
2667
3270
  }, z.core.$strict>>>>;
3271
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
3272
+ id: z.ZodString;
3273
+ question: z.ZodString;
3274
+ question_type: z.ZodEnum<{
3275
+ category: "category";
3276
+ trust: "trust";
3277
+ selection: "selection";
3278
+ application: "application";
3279
+ parameter: "parameter";
3280
+ cost: "cost";
3281
+ compliance: "compliance";
3282
+ delivery: "delivery";
3283
+ }>;
3284
+ intent_strength: z.ZodEnum<{
3285
+ high: "high";
3286
+ medium: "medium";
3287
+ low: "low";
3288
+ }>;
3289
+ source: z.ZodLiteral<"ai_generation">;
3290
+ }, z.core.$strict>>>;
2668
3291
  generation_status: z.ZodOptional<z.ZodEnum<{
2669
3292
  degraded: "degraded";
2670
3293
  ok: "ok";
@@ -2698,9 +3321,9 @@ export declare const Step5CommittedVersionSchema: z.ZodObject<{
2698
3321
  normalized_keyword: z.ZodString;
2699
3322
  intc: z.ZodEnum<{
2700
3323
  C: "C";
3324
+ T: "T";
2701
3325
  I: "I";
2702
3326
  N: "N";
2703
- T: "T";
2704
3327
  }>;
2705
3328
  keyword_type: z.ZodString;
2706
3329
  intent_strength: z.ZodEnum<{
@@ -2752,6 +3375,17 @@ export declare const Step5CommittedVersionSchema: z.ZodObject<{
2752
3375
  cpc: z.ZodNullable<z.ZodNumber>;
2753
3376
  }, z.core.$strict>>>;
2754
3377
  }, z.core.$strict>]>>;
3378
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
3379
+ single_country: "single_country";
3380
+ regional_combination: "regional_combination";
3381
+ multi_market: "multi_market";
3382
+ }>>>;
3383
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
3384
+ code: z.ZodString;
3385
+ name_zh: z.ZodString;
3386
+ name_en: z.ZodString;
3387
+ region: z.ZodString;
3388
+ }, z.core.$strict>>>;
2755
3389
  selected_value: z.ZodNullable<z.ZodUnknown>;
2756
3390
  accepted_at: z.ZodString;
2757
3391
  }, z.core.$loose>>;
@@ -2900,6 +3534,17 @@ export declare const Step5StrategyJobSchema: z.ZodObject<{
2900
3534
  sr: "sr";
2901
3535
  is: "is";
2902
3536
  }>>>;
3537
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
3538
+ single_country: "single_country";
3539
+ regional_combination: "regional_combination";
3540
+ multi_market: "multi_market";
3541
+ }>>>;
3542
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
3543
+ code: z.ZodString;
3544
+ name_zh: z.ZodString;
3545
+ name_en: z.ZodString;
3546
+ region: z.ZodString;
3547
+ }, z.core.$strict>>>;
2903
3548
  }, z.core.$loose>, z.ZodObject<{
2904
3549
  id: z.ZodEnum<{
2905
3550
  recommended: "recommended";
@@ -3002,6 +3647,17 @@ export declare const Step5StrategyJobSchema: z.ZodObject<{
3002
3647
  sr: "sr";
3003
3648
  is: "is";
3004
3649
  }>>>;
3650
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
3651
+ single_country: "single_country";
3652
+ regional_combination: "regional_combination";
3653
+ multi_market: "multi_market";
3654
+ }>>>;
3655
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
3656
+ code: z.ZodString;
3657
+ name_zh: z.ZodString;
3658
+ name_en: z.ZodString;
3659
+ region: z.ZodString;
3660
+ }, z.core.$strict>>>;
3005
3661
  }, z.core.$loose>, z.ZodObject<{
3006
3662
  id: z.ZodEnum<{
3007
3663
  recommended: "recommended";
@@ -3104,6 +3760,17 @@ export declare const Step5StrategyJobSchema: z.ZodObject<{
3104
3760
  sr: "sr";
3105
3761
  is: "is";
3106
3762
  }>>>;
3763
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
3764
+ single_country: "single_country";
3765
+ regional_combination: "regional_combination";
3766
+ multi_market: "multi_market";
3767
+ }>>>;
3768
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
3769
+ code: z.ZodString;
3770
+ name_zh: z.ZodString;
3771
+ name_en: z.ZodString;
3772
+ region: z.ZodString;
3773
+ }, z.core.$strict>>>;
3107
3774
  }, z.core.$loose>], null>;
3108
3775
  plan: z.ZodOptional<z.ZodNullable<z.ZodObject<{
3109
3776
  lead: z.ZodString;
@@ -3121,12 +3788,11 @@ export declare const Step5StrategyJobSchema: z.ZodObject<{
3121
3788
  source_id: z.ZodString;
3122
3789
  field_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
3123
3790
  }, z.core.$strict>>;
3124
- semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodObject<{
3125
- schema_version: z.ZodLiteral<1>;
3126
- provider: z.ZodLiteral<"semrush">;
3127
- api_version: z.ZodLiteral<"v4">;
3791
+ semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
3128
3792
  database: z.ZodString;
3129
3793
  country: z.ZodString;
3794
+ provider: z.ZodLiteral<"semrush">;
3795
+ api_version: z.ZodLiteral<"v4">;
3130
3796
  fetched_at: z.ZodString;
3131
3797
  context_hash: z.ZodString;
3132
3798
  status: z.ZodEnum<{
@@ -3218,18 +3884,116 @@ export declare const Step5StrategyJobSchema: z.ZodObject<{
3218
3884
  NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
3219
3885
  }>>>;
3220
3886
  error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
3221
- }, z.core.$strict>>>;
3222
- seo_payload: z.ZodOptional<z.ZodNullable<z.ZodLazy<z.ZodObject<{
3223
- schema_version: z.ZodLiteral<2>;
3224
- seo_keywords: z.ZodArray<z.ZodObject<{
3225
- id: z.ZodString;
3226
- keyword: z.ZodString;
3227
- normalized_keyword: z.ZodString;
3228
- intc: z.ZodEnum<{
3229
- C: "C";
3887
+ schema_version: z.ZodLiteral<1>;
3888
+ }, z.core.$strict>, z.ZodObject<{
3889
+ database: z.ZodString;
3890
+ country: z.ZodString;
3891
+ provider: z.ZodLiteral<"semrush">;
3892
+ api_version: z.ZodLiteral<"v4">;
3893
+ fetched_at: z.ZodString;
3894
+ context_hash: z.ZodString;
3895
+ status: z.ZodEnum<{
3896
+ ready: "ready";
3897
+ failed: "failed";
3898
+ disabled: "disabled";
3899
+ empty: "empty";
3900
+ timeout: "timeout";
3901
+ rate_limited: "rate_limited";
3902
+ quota_exhausted: "quota_exhausted";
3903
+ }>;
3904
+ seeds: z.ZodArray<z.ZodObject<{
3905
+ id: z.ZodString;
3906
+ term: z.ZodString;
3907
+ source_type: z.ZodEnum<{
3908
+ step2: "step2";
3909
+ step3: "step3";
3910
+ step5: "step5";
3911
+ }>;
3912
+ source_id: z.ZodString;
3913
+ field_path: z.ZodString;
3914
+ source_field: z.ZodOptional<z.ZodString>;
3915
+ source_evidence: z.ZodOptional<z.ZodString>;
3916
+ business_subject: z.ZodOptional<z.ZodString>;
3917
+ reason: z.ZodOptional<z.ZodString>;
3918
+ }, z.core.$strict>>;
3919
+ intent_groups: z.ZodArray<z.ZodObject<{
3920
+ id: z.ZodString;
3921
+ intent: z.ZodEnum<{
3922
+ INFORMATIONAL: "INFORMATIONAL";
3923
+ NAVIGATIONAL: "NAVIGATIONAL";
3924
+ COMMERCIAL: "COMMERCIAL";
3925
+ TRANSACTIONAL: "TRANSACTIONAL";
3926
+ }>;
3927
+ title: z.ZodString;
3928
+ landing_page_type: z.ZodEnum<{
3929
+ product: "product";
3930
+ category: "category";
3931
+ blog: "blog";
3932
+ landing: "landing";
3933
+ }>;
3934
+ keywords: z.ZodArray<z.ZodObject<{
3935
+ keyword: z.ZodString;
3936
+ normalized_keyword: z.ZodString;
3937
+ intents: z.ZodArray<z.ZodEnum<{
3938
+ INFORMATIONAL: "INFORMATIONAL";
3939
+ NAVIGATIONAL: "NAVIGATIONAL";
3940
+ COMMERCIAL: "COMMERCIAL";
3941
+ TRANSACTIONAL: "TRANSACTIONAL";
3942
+ }>>;
3943
+ search_volume: z.ZodNumber;
3944
+ keyword_difficulty: z.ZodNumber;
3945
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
3946
+ trend: z.ZodArray<z.ZodNumber>;
3947
+ serp_features: z.ZodArray<z.ZodString>;
3948
+ fit: z.ZodObject<{
3949
+ seo: z.ZodNumber;
3950
+ geo: z.ZodNumber;
3951
+ buyer: z.ZodNumber;
3952
+ }, z.core.$strict>;
3953
+ recommended_channel: z.ZodEnum<{
3954
+ SEO: "SEO";
3955
+ GEO: "GEO";
3956
+ DUAL: "DUAL";
3957
+ }>;
3958
+ priority: z.ZodEnum<{
3959
+ P0: "P0";
3960
+ P1: "P1";
3961
+ P2: "P2";
3962
+ P3: "P3";
3963
+ }>;
3964
+ already_in_plan: z.ZodBoolean;
3965
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
3966
+ }, z.core.$strict>>;
3967
+ }, z.core.$strict>>;
3968
+ selection_summary: z.ZodOptional<z.ZodObject<{
3969
+ fetched_count: z.ZodNumber;
3970
+ unique_count: z.ZodNumber;
3971
+ metric_gate_pass_count: z.ZodNumber;
3972
+ commercial_intent_pass_count: z.ZodNumber;
3973
+ fit_pass_count: z.ZodNumber;
3974
+ selected_count: z.ZodNumber;
3975
+ }, z.core.$strict>>;
3976
+ empty_reason_code: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
3977
+ NO_SEEDS: "NO_SEEDS";
3978
+ NO_PROVIDER_CANDIDATES: "NO_PROVIDER_CANDIDATES";
3979
+ NO_METRIC_ELIGIBLE_CANDIDATES: "NO_METRIC_ELIGIBLE_CANDIDATES";
3980
+ NO_COMMERCIAL_INTENT_CANDIDATES: "NO_COMMERCIAL_INTENT_CANDIDATES";
3981
+ NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
3982
+ }>>>;
3983
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
3984
+ schema_version: z.ZodLiteral<2>;
3985
+ }, z.core.$strict>], "schema_version">>>;
3986
+ seo_payload: z.ZodOptional<z.ZodNullable<z.ZodLazy<z.ZodObject<{
3987
+ schema_version: z.ZodLiteral<2>;
3988
+ seo_keywords: z.ZodArray<z.ZodObject<{
3989
+ id: z.ZodString;
3990
+ keyword: z.ZodString;
3991
+ normalized_keyword: z.ZodString;
3992
+ intc: z.ZodEnum<{
3993
+ C: "C";
3994
+ T: "T";
3230
3995
  I: "I";
3231
3996
  N: "N";
3232
- T: "T";
3233
3997
  }>;
3234
3998
  keyword_type: z.ZodString;
3235
3999
  intent_strength: z.ZodEnum<{
@@ -3263,6 +4027,26 @@ export declare const Step5StrategyJobSchema: z.ZodObject<{
3263
4027
  selected_keywords: z.ZodArray<z.ZodString>;
3264
4028
  }, z.core.$strict>>>;
3265
4029
  }, z.core.$strict>>>>;
4030
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
4031
+ id: z.ZodString;
4032
+ question: z.ZodString;
4033
+ question_type: z.ZodEnum<{
4034
+ category: "category";
4035
+ trust: "trust";
4036
+ selection: "selection";
4037
+ application: "application";
4038
+ parameter: "parameter";
4039
+ cost: "cost";
4040
+ compliance: "compliance";
4041
+ delivery: "delivery";
4042
+ }>;
4043
+ intent_strength: z.ZodEnum<{
4044
+ high: "high";
4045
+ medium: "medium";
4046
+ low: "low";
4047
+ }>;
4048
+ source: z.ZodLiteral<"ai_generation">;
4049
+ }, z.core.$strict>>>;
3266
4050
  generation_status: z.ZodOptional<z.ZodEnum<{
3267
4051
  degraded: "degraded";
3268
4052
  ok: "ok";
@@ -3296,9 +4080,9 @@ export declare const Step5StrategyJobSchema: z.ZodObject<{
3296
4080
  normalized_keyword: z.ZodString;
3297
4081
  intc: z.ZodEnum<{
3298
4082
  C: "C";
4083
+ T: "T";
3299
4084
  I: "I";
3300
4085
  N: "N";
3301
- T: "T";
3302
4086
  }>;
3303
4087
  keyword_type: z.ZodString;
3304
4088
  intent_strength: z.ZodEnum<{
@@ -3350,6 +4134,17 @@ export declare const Step5StrategyJobSchema: z.ZodObject<{
3350
4134
  cpc: z.ZodNullable<z.ZodNumber>;
3351
4135
  }, z.core.$strict>>>;
3352
4136
  }, z.core.$strict>]>>;
4137
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
4138
+ single_country: "single_country";
4139
+ regional_combination: "regional_combination";
4140
+ multi_market: "multi_market";
4141
+ }>>>;
4142
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
4143
+ code: z.ZodString;
4144
+ name_zh: z.ZodString;
4145
+ name_en: z.ZodString;
4146
+ region: z.ZodString;
4147
+ }, z.core.$strict>>>;
3353
4148
  selected_value: z.ZodNullable<z.ZodUnknown>;
3354
4149
  accepted_at: z.ZodString;
3355
4150
  }, z.core.$loose>>;
@@ -3508,6 +4303,17 @@ export declare const Step5StrategyJobSchema: z.ZodObject<{
3508
4303
  sr: "sr";
3509
4304
  is: "is";
3510
4305
  }>>>;
4306
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
4307
+ single_country: "single_country";
4308
+ regional_combination: "regional_combination";
4309
+ multi_market: "multi_market";
4310
+ }>>>;
4311
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
4312
+ code: z.ZodString;
4313
+ name_zh: z.ZodString;
4314
+ name_en: z.ZodString;
4315
+ region: z.ZodString;
4316
+ }, z.core.$strict>>>;
3511
4317
  }, z.core.$loose>, z.ZodObject<{
3512
4318
  id: z.ZodEnum<{
3513
4319
  recommended: "recommended";
@@ -3610,6 +4416,17 @@ export declare const Step5StrategyJobSchema: z.ZodObject<{
3610
4416
  sr: "sr";
3611
4417
  is: "is";
3612
4418
  }>>>;
4419
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
4420
+ single_country: "single_country";
4421
+ regional_combination: "regional_combination";
4422
+ multi_market: "multi_market";
4423
+ }>>>;
4424
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
4425
+ code: z.ZodString;
4426
+ name_zh: z.ZodString;
4427
+ name_en: z.ZodString;
4428
+ region: z.ZodString;
4429
+ }, z.core.$strict>>>;
3613
4430
  }, z.core.$loose>, z.ZodObject<{
3614
4431
  id: z.ZodEnum<{
3615
4432
  recommended: "recommended";
@@ -3712,6 +4529,17 @@ export declare const Step5StrategyJobSchema: z.ZodObject<{
3712
4529
  sr: "sr";
3713
4530
  is: "is";
3714
4531
  }>>>;
4532
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
4533
+ single_country: "single_country";
4534
+ regional_combination: "regional_combination";
4535
+ multi_market: "multi_market";
4536
+ }>>>;
4537
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
4538
+ code: z.ZodString;
4539
+ name_zh: z.ZodString;
4540
+ name_en: z.ZodString;
4541
+ region: z.ZodString;
4542
+ }, z.core.$strict>>>;
3715
4543
  }, z.core.$loose>], null>;
3716
4544
  plan: z.ZodOptional<z.ZodNullable<z.ZodObject<{
3717
4545
  lead: z.ZodString;
@@ -3729,12 +4557,108 @@ export declare const Step5StrategyJobSchema: z.ZodObject<{
3729
4557
  source_id: z.ZodString;
3730
4558
  field_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
3731
4559
  }, z.core.$strict>>;
3732
- semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodObject<{
3733
- schema_version: z.ZodLiteral<1>;
4560
+ semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
4561
+ database: z.ZodString;
4562
+ country: z.ZodString;
3734
4563
  provider: z.ZodLiteral<"semrush">;
3735
4564
  api_version: z.ZodLiteral<"v4">;
4565
+ fetched_at: z.ZodString;
4566
+ context_hash: z.ZodString;
4567
+ status: z.ZodEnum<{
4568
+ ready: "ready";
4569
+ failed: "failed";
4570
+ disabled: "disabled";
4571
+ empty: "empty";
4572
+ timeout: "timeout";
4573
+ rate_limited: "rate_limited";
4574
+ quota_exhausted: "quota_exhausted";
4575
+ }>;
4576
+ seeds: z.ZodArray<z.ZodObject<{
4577
+ id: z.ZodString;
4578
+ term: z.ZodString;
4579
+ source_type: z.ZodEnum<{
4580
+ step2: "step2";
4581
+ step3: "step3";
4582
+ step5: "step5";
4583
+ }>;
4584
+ source_id: z.ZodString;
4585
+ field_path: z.ZodString;
4586
+ source_field: z.ZodOptional<z.ZodString>;
4587
+ source_evidence: z.ZodOptional<z.ZodString>;
4588
+ business_subject: z.ZodOptional<z.ZodString>;
4589
+ reason: z.ZodOptional<z.ZodString>;
4590
+ }, z.core.$strict>>;
4591
+ intent_groups: z.ZodArray<z.ZodObject<{
4592
+ id: z.ZodString;
4593
+ intent: z.ZodEnum<{
4594
+ INFORMATIONAL: "INFORMATIONAL";
4595
+ NAVIGATIONAL: "NAVIGATIONAL";
4596
+ COMMERCIAL: "COMMERCIAL";
4597
+ TRANSACTIONAL: "TRANSACTIONAL";
4598
+ }>;
4599
+ title: z.ZodString;
4600
+ landing_page_type: z.ZodEnum<{
4601
+ product: "product";
4602
+ category: "category";
4603
+ blog: "blog";
4604
+ landing: "landing";
4605
+ }>;
4606
+ keywords: z.ZodArray<z.ZodObject<{
4607
+ keyword: z.ZodString;
4608
+ normalized_keyword: z.ZodString;
4609
+ intents: z.ZodArray<z.ZodEnum<{
4610
+ INFORMATIONAL: "INFORMATIONAL";
4611
+ NAVIGATIONAL: "NAVIGATIONAL";
4612
+ COMMERCIAL: "COMMERCIAL";
4613
+ TRANSACTIONAL: "TRANSACTIONAL";
4614
+ }>>;
4615
+ search_volume: z.ZodNumber;
4616
+ keyword_difficulty: z.ZodNumber;
4617
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
4618
+ trend: z.ZodArray<z.ZodNumber>;
4619
+ serp_features: z.ZodArray<z.ZodString>;
4620
+ fit: z.ZodObject<{
4621
+ seo: z.ZodNumber;
4622
+ geo: z.ZodNumber;
4623
+ buyer: z.ZodNumber;
4624
+ }, z.core.$strict>;
4625
+ recommended_channel: z.ZodEnum<{
4626
+ SEO: "SEO";
4627
+ GEO: "GEO";
4628
+ DUAL: "DUAL";
4629
+ }>;
4630
+ priority: z.ZodEnum<{
4631
+ P0: "P0";
4632
+ P1: "P1";
4633
+ P2: "P2";
4634
+ P3: "P3";
4635
+ }>;
4636
+ already_in_plan: z.ZodBoolean;
4637
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
4638
+ }, z.core.$strict>>;
4639
+ }, z.core.$strict>>;
4640
+ selection_summary: z.ZodOptional<z.ZodObject<{
4641
+ fetched_count: z.ZodNumber;
4642
+ unique_count: z.ZodNumber;
4643
+ metric_gate_pass_count: z.ZodNumber;
4644
+ commercial_intent_pass_count: z.ZodNumber;
4645
+ fit_pass_count: z.ZodNumber;
4646
+ selected_count: z.ZodNumber;
4647
+ }, z.core.$strict>>;
4648
+ empty_reason_code: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
4649
+ NO_SEEDS: "NO_SEEDS";
4650
+ NO_PROVIDER_CANDIDATES: "NO_PROVIDER_CANDIDATES";
4651
+ NO_METRIC_ELIGIBLE_CANDIDATES: "NO_METRIC_ELIGIBLE_CANDIDATES";
4652
+ NO_COMMERCIAL_INTENT_CANDIDATES: "NO_COMMERCIAL_INTENT_CANDIDATES";
4653
+ NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
4654
+ }>>>;
4655
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
4656
+ schema_version: z.ZodLiteral<1>;
4657
+ }, z.core.$strict>, z.ZodObject<{
3736
4658
  database: z.ZodString;
3737
4659
  country: z.ZodString;
4660
+ provider: z.ZodLiteral<"semrush">;
4661
+ api_version: z.ZodLiteral<"v4">;
3738
4662
  fetched_at: z.ZodString;
3739
4663
  context_hash: z.ZodString;
3740
4664
  status: z.ZodEnum<{
@@ -3826,7 +4750,8 @@ export declare const Step5StrategyJobSchema: z.ZodObject<{
3826
4750
  NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
3827
4751
  }>>>;
3828
4752
  error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
3829
- }, z.core.$strict>>>;
4753
+ schema_version: z.ZodLiteral<2>;
4754
+ }, z.core.$strict>], "schema_version">>>;
3830
4755
  seo_payload: z.ZodOptional<z.ZodNullable<z.ZodLazy<z.ZodObject<{
3831
4756
  schema_version: z.ZodLiteral<2>;
3832
4757
  seo_keywords: z.ZodArray<z.ZodObject<{
@@ -3835,9 +4760,9 @@ export declare const Step5StrategyJobSchema: z.ZodObject<{
3835
4760
  normalized_keyword: z.ZodString;
3836
4761
  intc: z.ZodEnum<{
3837
4762
  C: "C";
4763
+ T: "T";
3838
4764
  I: "I";
3839
4765
  N: "N";
3840
- T: "T";
3841
4766
  }>;
3842
4767
  keyword_type: z.ZodString;
3843
4768
  intent_strength: z.ZodEnum<{
@@ -3871,6 +4796,26 @@ export declare const Step5StrategyJobSchema: z.ZodObject<{
3871
4796
  selected_keywords: z.ZodArray<z.ZodString>;
3872
4797
  }, z.core.$strict>>>;
3873
4798
  }, z.core.$strict>>>>;
4799
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
4800
+ id: z.ZodString;
4801
+ question: z.ZodString;
4802
+ question_type: z.ZodEnum<{
4803
+ category: "category";
4804
+ trust: "trust";
4805
+ selection: "selection";
4806
+ application: "application";
4807
+ parameter: "parameter";
4808
+ cost: "cost";
4809
+ compliance: "compliance";
4810
+ delivery: "delivery";
4811
+ }>;
4812
+ intent_strength: z.ZodEnum<{
4813
+ high: "high";
4814
+ medium: "medium";
4815
+ low: "low";
4816
+ }>;
4817
+ source: z.ZodLiteral<"ai_generation">;
4818
+ }, z.core.$strict>>>;
3874
4819
  generation_status: z.ZodOptional<z.ZodEnum<{
3875
4820
  degraded: "degraded";
3876
4821
  ok: "ok";
@@ -3904,9 +4849,9 @@ export declare const Step5StrategyJobSchema: z.ZodObject<{
3904
4849
  normalized_keyword: z.ZodString;
3905
4850
  intc: z.ZodEnum<{
3906
4851
  C: "C";
4852
+ T: "T";
3907
4853
  I: "I";
3908
4854
  N: "N";
3909
- T: "T";
3910
4855
  }>;
3911
4856
  keyword_type: z.ZodString;
3912
4857
  intent_strength: z.ZodEnum<{
@@ -3958,6 +4903,17 @@ export declare const Step5StrategyJobSchema: z.ZodObject<{
3958
4903
  cpc: z.ZodNullable<z.ZodNumber>;
3959
4904
  }, z.core.$strict>>>;
3960
4905
  }, z.core.$strict>]>>;
4906
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
4907
+ single_country: "single_country";
4908
+ regional_combination: "regional_combination";
4909
+ multi_market: "multi_market";
4910
+ }>>>;
4911
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
4912
+ code: z.ZodString;
4913
+ name_zh: z.ZodString;
4914
+ name_en: z.ZodString;
4915
+ region: z.ZodString;
4916
+ }, z.core.$strict>>>;
3961
4917
  selected_value: z.ZodNullable<z.ZodUnknown>;
3962
4918
  accepted_at: z.ZodString;
3963
4919
  }, z.core.$loose>>;
@@ -4111,6 +5067,17 @@ export declare const Step5StartStrategyResponseSchema: z.ZodObject<{
4111
5067
  sr: "sr";
4112
5068
  is: "is";
4113
5069
  }>>>;
5070
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
5071
+ single_country: "single_country";
5072
+ regional_combination: "regional_combination";
5073
+ multi_market: "multi_market";
5074
+ }>>>;
5075
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
5076
+ code: z.ZodString;
5077
+ name_zh: z.ZodString;
5078
+ name_en: z.ZodString;
5079
+ region: z.ZodString;
5080
+ }, z.core.$strict>>>;
4114
5081
  }, z.core.$loose>, z.ZodObject<{
4115
5082
  id: z.ZodEnum<{
4116
5083
  recommended: "recommended";
@@ -4213,6 +5180,17 @@ export declare const Step5StartStrategyResponseSchema: z.ZodObject<{
4213
5180
  sr: "sr";
4214
5181
  is: "is";
4215
5182
  }>>>;
5183
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
5184
+ single_country: "single_country";
5185
+ regional_combination: "regional_combination";
5186
+ multi_market: "multi_market";
5187
+ }>>>;
5188
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
5189
+ code: z.ZodString;
5190
+ name_zh: z.ZodString;
5191
+ name_en: z.ZodString;
5192
+ region: z.ZodString;
5193
+ }, z.core.$strict>>>;
4216
5194
  }, z.core.$loose>, z.ZodObject<{
4217
5195
  id: z.ZodEnum<{
4218
5196
  recommended: "recommended";
@@ -4315,6 +5293,17 @@ export declare const Step5StartStrategyResponseSchema: z.ZodObject<{
4315
5293
  sr: "sr";
4316
5294
  is: "is";
4317
5295
  }>>>;
5296
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
5297
+ single_country: "single_country";
5298
+ regional_combination: "regional_combination";
5299
+ multi_market: "multi_market";
5300
+ }>>>;
5301
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
5302
+ code: z.ZodString;
5303
+ name_zh: z.ZodString;
5304
+ name_en: z.ZodString;
5305
+ region: z.ZodString;
5306
+ }, z.core.$strict>>>;
4318
5307
  }, z.core.$loose>], null>;
4319
5308
  plan: z.ZodOptional<z.ZodNullable<z.ZodObject<{
4320
5309
  lead: z.ZodString;
@@ -4332,12 +5321,108 @@ export declare const Step5StartStrategyResponseSchema: z.ZodObject<{
4332
5321
  source_id: z.ZodString;
4333
5322
  field_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
4334
5323
  }, z.core.$strict>>;
4335
- semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodObject<{
5324
+ semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
5325
+ database: z.ZodString;
5326
+ country: z.ZodString;
5327
+ provider: z.ZodLiteral<"semrush">;
5328
+ api_version: z.ZodLiteral<"v4">;
5329
+ fetched_at: z.ZodString;
5330
+ context_hash: z.ZodString;
5331
+ status: z.ZodEnum<{
5332
+ ready: "ready";
5333
+ failed: "failed";
5334
+ disabled: "disabled";
5335
+ empty: "empty";
5336
+ timeout: "timeout";
5337
+ rate_limited: "rate_limited";
5338
+ quota_exhausted: "quota_exhausted";
5339
+ }>;
5340
+ seeds: z.ZodArray<z.ZodObject<{
5341
+ id: z.ZodString;
5342
+ term: z.ZodString;
5343
+ source_type: z.ZodEnum<{
5344
+ step2: "step2";
5345
+ step3: "step3";
5346
+ step5: "step5";
5347
+ }>;
5348
+ source_id: z.ZodString;
5349
+ field_path: z.ZodString;
5350
+ source_field: z.ZodOptional<z.ZodString>;
5351
+ source_evidence: z.ZodOptional<z.ZodString>;
5352
+ business_subject: z.ZodOptional<z.ZodString>;
5353
+ reason: z.ZodOptional<z.ZodString>;
5354
+ }, z.core.$strict>>;
5355
+ intent_groups: z.ZodArray<z.ZodObject<{
5356
+ id: z.ZodString;
5357
+ intent: z.ZodEnum<{
5358
+ INFORMATIONAL: "INFORMATIONAL";
5359
+ NAVIGATIONAL: "NAVIGATIONAL";
5360
+ COMMERCIAL: "COMMERCIAL";
5361
+ TRANSACTIONAL: "TRANSACTIONAL";
5362
+ }>;
5363
+ title: z.ZodString;
5364
+ landing_page_type: z.ZodEnum<{
5365
+ product: "product";
5366
+ category: "category";
5367
+ blog: "blog";
5368
+ landing: "landing";
5369
+ }>;
5370
+ keywords: z.ZodArray<z.ZodObject<{
5371
+ keyword: z.ZodString;
5372
+ normalized_keyword: z.ZodString;
5373
+ intents: z.ZodArray<z.ZodEnum<{
5374
+ INFORMATIONAL: "INFORMATIONAL";
5375
+ NAVIGATIONAL: "NAVIGATIONAL";
5376
+ COMMERCIAL: "COMMERCIAL";
5377
+ TRANSACTIONAL: "TRANSACTIONAL";
5378
+ }>>;
5379
+ search_volume: z.ZodNumber;
5380
+ keyword_difficulty: z.ZodNumber;
5381
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
5382
+ trend: z.ZodArray<z.ZodNumber>;
5383
+ serp_features: z.ZodArray<z.ZodString>;
5384
+ fit: z.ZodObject<{
5385
+ seo: z.ZodNumber;
5386
+ geo: z.ZodNumber;
5387
+ buyer: z.ZodNumber;
5388
+ }, z.core.$strict>;
5389
+ recommended_channel: z.ZodEnum<{
5390
+ SEO: "SEO";
5391
+ GEO: "GEO";
5392
+ DUAL: "DUAL";
5393
+ }>;
5394
+ priority: z.ZodEnum<{
5395
+ P0: "P0";
5396
+ P1: "P1";
5397
+ P2: "P2";
5398
+ P3: "P3";
5399
+ }>;
5400
+ already_in_plan: z.ZodBoolean;
5401
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
5402
+ }, z.core.$strict>>;
5403
+ }, z.core.$strict>>;
5404
+ selection_summary: z.ZodOptional<z.ZodObject<{
5405
+ fetched_count: z.ZodNumber;
5406
+ unique_count: z.ZodNumber;
5407
+ metric_gate_pass_count: z.ZodNumber;
5408
+ commercial_intent_pass_count: z.ZodNumber;
5409
+ fit_pass_count: z.ZodNumber;
5410
+ selected_count: z.ZodNumber;
5411
+ }, z.core.$strict>>;
5412
+ empty_reason_code: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
5413
+ NO_SEEDS: "NO_SEEDS";
5414
+ NO_PROVIDER_CANDIDATES: "NO_PROVIDER_CANDIDATES";
5415
+ NO_METRIC_ELIGIBLE_CANDIDATES: "NO_METRIC_ELIGIBLE_CANDIDATES";
5416
+ NO_COMMERCIAL_INTENT_CANDIDATES: "NO_COMMERCIAL_INTENT_CANDIDATES";
5417
+ NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
5418
+ }>>>;
5419
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
4336
5420
  schema_version: z.ZodLiteral<1>;
4337
- provider: z.ZodLiteral<"semrush">;
4338
- api_version: z.ZodLiteral<"v4">;
5421
+ }, z.core.$strict>, z.ZodObject<{
4339
5422
  database: z.ZodString;
4340
5423
  country: z.ZodString;
5424
+ provider: z.ZodLiteral<"semrush">;
5425
+ api_version: z.ZodLiteral<"v4">;
4341
5426
  fetched_at: z.ZodString;
4342
5427
  context_hash: z.ZodString;
4343
5428
  status: z.ZodEnum<{
@@ -4429,7 +5514,8 @@ export declare const Step5StartStrategyResponseSchema: z.ZodObject<{
4429
5514
  NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
4430
5515
  }>>>;
4431
5516
  error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
4432
- }, z.core.$strict>>>;
5517
+ schema_version: z.ZodLiteral<2>;
5518
+ }, z.core.$strict>], "schema_version">>>;
4433
5519
  seo_payload: z.ZodOptional<z.ZodNullable<z.ZodLazy<z.ZodObject<{
4434
5520
  schema_version: z.ZodLiteral<2>;
4435
5521
  seo_keywords: z.ZodArray<z.ZodObject<{
@@ -4438,9 +5524,9 @@ export declare const Step5StartStrategyResponseSchema: z.ZodObject<{
4438
5524
  normalized_keyword: z.ZodString;
4439
5525
  intc: z.ZodEnum<{
4440
5526
  C: "C";
5527
+ T: "T";
4441
5528
  I: "I";
4442
5529
  N: "N";
4443
- T: "T";
4444
5530
  }>;
4445
5531
  keyword_type: z.ZodString;
4446
5532
  intent_strength: z.ZodEnum<{
@@ -4474,6 +5560,26 @@ export declare const Step5StartStrategyResponseSchema: z.ZodObject<{
4474
5560
  selected_keywords: z.ZodArray<z.ZodString>;
4475
5561
  }, z.core.$strict>>>;
4476
5562
  }, z.core.$strict>>>>;
5563
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
5564
+ id: z.ZodString;
5565
+ question: z.ZodString;
5566
+ question_type: z.ZodEnum<{
5567
+ category: "category";
5568
+ trust: "trust";
5569
+ selection: "selection";
5570
+ application: "application";
5571
+ parameter: "parameter";
5572
+ cost: "cost";
5573
+ compliance: "compliance";
5574
+ delivery: "delivery";
5575
+ }>;
5576
+ intent_strength: z.ZodEnum<{
5577
+ high: "high";
5578
+ medium: "medium";
5579
+ low: "low";
5580
+ }>;
5581
+ source: z.ZodLiteral<"ai_generation">;
5582
+ }, z.core.$strict>>>;
4477
5583
  generation_status: z.ZodOptional<z.ZodEnum<{
4478
5584
  degraded: "degraded";
4479
5585
  ok: "ok";
@@ -4507,9 +5613,9 @@ export declare const Step5StartStrategyResponseSchema: z.ZodObject<{
4507
5613
  normalized_keyword: z.ZodString;
4508
5614
  intc: z.ZodEnum<{
4509
5615
  C: "C";
5616
+ T: "T";
4510
5617
  I: "I";
4511
5618
  N: "N";
4512
- T: "T";
4513
5619
  }>;
4514
5620
  keyword_type: z.ZodString;
4515
5621
  intent_strength: z.ZodEnum<{
@@ -4561,6 +5667,17 @@ export declare const Step5StartStrategyResponseSchema: z.ZodObject<{
4561
5667
  cpc: z.ZodNullable<z.ZodNumber>;
4562
5668
  }, z.core.$strict>>>;
4563
5669
  }, z.core.$strict>]>>;
5670
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
5671
+ single_country: "single_country";
5672
+ regional_combination: "regional_combination";
5673
+ multi_market: "multi_market";
5674
+ }>>>;
5675
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
5676
+ code: z.ZodString;
5677
+ name_zh: z.ZodString;
5678
+ name_en: z.ZodString;
5679
+ region: z.ZodString;
5680
+ }, z.core.$strict>>>;
4564
5681
  selected_value: z.ZodNullable<z.ZodUnknown>;
4565
5682
  accepted_at: z.ZodString;
4566
5683
  }, z.core.$loose>>;
@@ -4719,6 +5836,17 @@ export declare const Step5StartStrategyResponseSchema: z.ZodObject<{
4719
5836
  sr: "sr";
4720
5837
  is: "is";
4721
5838
  }>>>;
5839
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
5840
+ single_country: "single_country";
5841
+ regional_combination: "regional_combination";
5842
+ multi_market: "multi_market";
5843
+ }>>>;
5844
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
5845
+ code: z.ZodString;
5846
+ name_zh: z.ZodString;
5847
+ name_en: z.ZodString;
5848
+ region: z.ZodString;
5849
+ }, z.core.$strict>>>;
4722
5850
  }, z.core.$loose>, z.ZodObject<{
4723
5851
  id: z.ZodEnum<{
4724
5852
  recommended: "recommended";
@@ -4821,6 +5949,17 @@ export declare const Step5StartStrategyResponseSchema: z.ZodObject<{
4821
5949
  sr: "sr";
4822
5950
  is: "is";
4823
5951
  }>>>;
5952
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
5953
+ single_country: "single_country";
5954
+ regional_combination: "regional_combination";
5955
+ multi_market: "multi_market";
5956
+ }>>>;
5957
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
5958
+ code: z.ZodString;
5959
+ name_zh: z.ZodString;
5960
+ name_en: z.ZodString;
5961
+ region: z.ZodString;
5962
+ }, z.core.$strict>>>;
4824
5963
  }, z.core.$loose>, z.ZodObject<{
4825
5964
  id: z.ZodEnum<{
4826
5965
  recommended: "recommended";
@@ -4923,6 +6062,17 @@ export declare const Step5StartStrategyResponseSchema: z.ZodObject<{
4923
6062
  sr: "sr";
4924
6063
  is: "is";
4925
6064
  }>>>;
6065
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
6066
+ single_country: "single_country";
6067
+ regional_combination: "regional_combination";
6068
+ multi_market: "multi_market";
6069
+ }>>>;
6070
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
6071
+ code: z.ZodString;
6072
+ name_zh: z.ZodString;
6073
+ name_en: z.ZodString;
6074
+ region: z.ZodString;
6075
+ }, z.core.$strict>>>;
4926
6076
  }, z.core.$loose>], null>;
4927
6077
  plan: z.ZodOptional<z.ZodNullable<z.ZodObject<{
4928
6078
  lead: z.ZodString;
@@ -4940,12 +6090,108 @@ export declare const Step5StartStrategyResponseSchema: z.ZodObject<{
4940
6090
  source_id: z.ZodString;
4941
6091
  field_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
4942
6092
  }, z.core.$strict>>;
4943
- semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodObject<{
4944
- schema_version: z.ZodLiteral<1>;
6093
+ semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
6094
+ database: z.ZodString;
6095
+ country: z.ZodString;
4945
6096
  provider: z.ZodLiteral<"semrush">;
4946
6097
  api_version: z.ZodLiteral<"v4">;
6098
+ fetched_at: z.ZodString;
6099
+ context_hash: z.ZodString;
6100
+ status: z.ZodEnum<{
6101
+ ready: "ready";
6102
+ failed: "failed";
6103
+ disabled: "disabled";
6104
+ empty: "empty";
6105
+ timeout: "timeout";
6106
+ rate_limited: "rate_limited";
6107
+ quota_exhausted: "quota_exhausted";
6108
+ }>;
6109
+ seeds: z.ZodArray<z.ZodObject<{
6110
+ id: z.ZodString;
6111
+ term: z.ZodString;
6112
+ source_type: z.ZodEnum<{
6113
+ step2: "step2";
6114
+ step3: "step3";
6115
+ step5: "step5";
6116
+ }>;
6117
+ source_id: z.ZodString;
6118
+ field_path: z.ZodString;
6119
+ source_field: z.ZodOptional<z.ZodString>;
6120
+ source_evidence: z.ZodOptional<z.ZodString>;
6121
+ business_subject: z.ZodOptional<z.ZodString>;
6122
+ reason: z.ZodOptional<z.ZodString>;
6123
+ }, z.core.$strict>>;
6124
+ intent_groups: z.ZodArray<z.ZodObject<{
6125
+ id: z.ZodString;
6126
+ intent: z.ZodEnum<{
6127
+ INFORMATIONAL: "INFORMATIONAL";
6128
+ NAVIGATIONAL: "NAVIGATIONAL";
6129
+ COMMERCIAL: "COMMERCIAL";
6130
+ TRANSACTIONAL: "TRANSACTIONAL";
6131
+ }>;
6132
+ title: z.ZodString;
6133
+ landing_page_type: z.ZodEnum<{
6134
+ product: "product";
6135
+ category: "category";
6136
+ blog: "blog";
6137
+ landing: "landing";
6138
+ }>;
6139
+ keywords: z.ZodArray<z.ZodObject<{
6140
+ keyword: z.ZodString;
6141
+ normalized_keyword: z.ZodString;
6142
+ intents: z.ZodArray<z.ZodEnum<{
6143
+ INFORMATIONAL: "INFORMATIONAL";
6144
+ NAVIGATIONAL: "NAVIGATIONAL";
6145
+ COMMERCIAL: "COMMERCIAL";
6146
+ TRANSACTIONAL: "TRANSACTIONAL";
6147
+ }>>;
6148
+ search_volume: z.ZodNumber;
6149
+ keyword_difficulty: z.ZodNumber;
6150
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
6151
+ trend: z.ZodArray<z.ZodNumber>;
6152
+ serp_features: z.ZodArray<z.ZodString>;
6153
+ fit: z.ZodObject<{
6154
+ seo: z.ZodNumber;
6155
+ geo: z.ZodNumber;
6156
+ buyer: z.ZodNumber;
6157
+ }, z.core.$strict>;
6158
+ recommended_channel: z.ZodEnum<{
6159
+ SEO: "SEO";
6160
+ GEO: "GEO";
6161
+ DUAL: "DUAL";
6162
+ }>;
6163
+ priority: z.ZodEnum<{
6164
+ P0: "P0";
6165
+ P1: "P1";
6166
+ P2: "P2";
6167
+ P3: "P3";
6168
+ }>;
6169
+ already_in_plan: z.ZodBoolean;
6170
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
6171
+ }, z.core.$strict>>;
6172
+ }, z.core.$strict>>;
6173
+ selection_summary: z.ZodOptional<z.ZodObject<{
6174
+ fetched_count: z.ZodNumber;
6175
+ unique_count: z.ZodNumber;
6176
+ metric_gate_pass_count: z.ZodNumber;
6177
+ commercial_intent_pass_count: z.ZodNumber;
6178
+ fit_pass_count: z.ZodNumber;
6179
+ selected_count: z.ZodNumber;
6180
+ }, z.core.$strict>>;
6181
+ empty_reason_code: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
6182
+ NO_SEEDS: "NO_SEEDS";
6183
+ NO_PROVIDER_CANDIDATES: "NO_PROVIDER_CANDIDATES";
6184
+ NO_METRIC_ELIGIBLE_CANDIDATES: "NO_METRIC_ELIGIBLE_CANDIDATES";
6185
+ NO_COMMERCIAL_INTENT_CANDIDATES: "NO_COMMERCIAL_INTENT_CANDIDATES";
6186
+ NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
6187
+ }>>>;
6188
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
6189
+ schema_version: z.ZodLiteral<1>;
6190
+ }, z.core.$strict>, z.ZodObject<{
4947
6191
  database: z.ZodString;
4948
6192
  country: z.ZodString;
6193
+ provider: z.ZodLiteral<"semrush">;
6194
+ api_version: z.ZodLiteral<"v4">;
4949
6195
  fetched_at: z.ZodString;
4950
6196
  context_hash: z.ZodString;
4951
6197
  status: z.ZodEnum<{
@@ -5037,7 +6283,8 @@ export declare const Step5StartStrategyResponseSchema: z.ZodObject<{
5037
6283
  NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
5038
6284
  }>>>;
5039
6285
  error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
5040
- }, z.core.$strict>>>;
6286
+ schema_version: z.ZodLiteral<2>;
6287
+ }, z.core.$strict>], "schema_version">>>;
5041
6288
  seo_payload: z.ZodOptional<z.ZodNullable<z.ZodLazy<z.ZodObject<{
5042
6289
  schema_version: z.ZodLiteral<2>;
5043
6290
  seo_keywords: z.ZodArray<z.ZodObject<{
@@ -5046,9 +6293,9 @@ export declare const Step5StartStrategyResponseSchema: z.ZodObject<{
5046
6293
  normalized_keyword: z.ZodString;
5047
6294
  intc: z.ZodEnum<{
5048
6295
  C: "C";
6296
+ T: "T";
5049
6297
  I: "I";
5050
6298
  N: "N";
5051
- T: "T";
5052
6299
  }>;
5053
6300
  keyword_type: z.ZodString;
5054
6301
  intent_strength: z.ZodEnum<{
@@ -5082,6 +6329,26 @@ export declare const Step5StartStrategyResponseSchema: z.ZodObject<{
5082
6329
  selected_keywords: z.ZodArray<z.ZodString>;
5083
6330
  }, z.core.$strict>>>;
5084
6331
  }, z.core.$strict>>>>;
6332
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
6333
+ id: z.ZodString;
6334
+ question: z.ZodString;
6335
+ question_type: z.ZodEnum<{
6336
+ category: "category";
6337
+ trust: "trust";
6338
+ selection: "selection";
6339
+ application: "application";
6340
+ parameter: "parameter";
6341
+ cost: "cost";
6342
+ compliance: "compliance";
6343
+ delivery: "delivery";
6344
+ }>;
6345
+ intent_strength: z.ZodEnum<{
6346
+ high: "high";
6347
+ medium: "medium";
6348
+ low: "low";
6349
+ }>;
6350
+ source: z.ZodLiteral<"ai_generation">;
6351
+ }, z.core.$strict>>>;
5085
6352
  generation_status: z.ZodOptional<z.ZodEnum<{
5086
6353
  degraded: "degraded";
5087
6354
  ok: "ok";
@@ -5115,9 +6382,9 @@ export declare const Step5StartStrategyResponseSchema: z.ZodObject<{
5115
6382
  normalized_keyword: z.ZodString;
5116
6383
  intc: z.ZodEnum<{
5117
6384
  C: "C";
6385
+ T: "T";
5118
6386
  I: "I";
5119
6387
  N: "N";
5120
- T: "T";
5121
6388
  }>;
5122
6389
  keyword_type: z.ZodString;
5123
6390
  intent_strength: z.ZodEnum<{
@@ -5169,6 +6436,17 @@ export declare const Step5StartStrategyResponseSchema: z.ZodObject<{
5169
6436
  cpc: z.ZodNullable<z.ZodNumber>;
5170
6437
  }, z.core.$strict>>>;
5171
6438
  }, z.core.$strict>]>>;
6439
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
6440
+ single_country: "single_country";
6441
+ regional_combination: "regional_combination";
6442
+ multi_market: "multi_market";
6443
+ }>>>;
6444
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
6445
+ code: z.ZodString;
6446
+ name_zh: z.ZodString;
6447
+ name_en: z.ZodString;
6448
+ region: z.ZodString;
6449
+ }, z.core.$strict>>>;
5172
6450
  selected_value: z.ZodNullable<z.ZodUnknown>;
5173
6451
  accepted_at: z.ZodString;
5174
6452
  }, z.core.$loose>>;
@@ -5205,9 +6483,9 @@ export declare const Step5SaveDecisionRequestSchema: z.ZodObject<{
5205
6483
  normalized_keyword: z.ZodString;
5206
6484
  intc: z.ZodEnum<{
5207
6485
  C: "C";
6486
+ T: "T";
5208
6487
  I: "I";
5209
6488
  N: "N";
5210
- T: "T";
5211
6489
  }>;
5212
6490
  keyword_type: z.ZodString;
5213
6491
  intent_strength: z.ZodEnum<{
@@ -5291,9 +6569,9 @@ export declare const Step5SaveDecisionResponseSchema: z.ZodObject<{
5291
6569
  normalized_keyword: z.ZodString;
5292
6570
  intc: z.ZodEnum<{
5293
6571
  C: "C";
6572
+ T: "T";
5294
6573
  I: "I";
5295
6574
  N: "N";
5296
- T: "T";
5297
6575
  }>;
5298
6576
  keyword_type: z.ZodString;
5299
6577
  intent_strength: z.ZodEnum<{
@@ -5345,6 +6623,17 @@ export declare const Step5SaveDecisionResponseSchema: z.ZodObject<{
5345
6623
  cpc: z.ZodNullable<z.ZodNumber>;
5346
6624
  }, z.core.$strict>>>;
5347
6625
  }, z.core.$strict>]>>;
6626
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
6627
+ single_country: "single_country";
6628
+ regional_combination: "regional_combination";
6629
+ multi_market: "multi_market";
6630
+ }>>>;
6631
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
6632
+ code: z.ZodString;
6633
+ name_zh: z.ZodString;
6634
+ name_en: z.ZodString;
6635
+ region: z.ZodString;
6636
+ }, z.core.$strict>>>;
5348
6637
  selected_value: z.ZodNullable<z.ZodUnknown>;
5349
6638
  accepted_at: z.ZodString;
5350
6639
  }, z.core.$loose>;
@@ -5381,9 +6670,9 @@ export declare const Step5CommitStrategyRequestSchema: z.ZodObject<{
5381
6670
  normalized_keyword: z.ZodString;
5382
6671
  intc: z.ZodEnum<{
5383
6672
  C: "C";
6673
+ T: "T";
5384
6674
  I: "I";
5385
6675
  N: "N";
5386
- T: "T";
5387
6676
  }>;
5388
6677
  keyword_type: z.ZodString;
5389
6678
  intent_strength: z.ZodEnum<{
@@ -5586,6 +6875,17 @@ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
5586
6875
  sr: "sr";
5587
6876
  is: "is";
5588
6877
  }>>>;
6878
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
6879
+ single_country: "single_country";
6880
+ regional_combination: "regional_combination";
6881
+ multi_market: "multi_market";
6882
+ }>>>;
6883
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
6884
+ code: z.ZodString;
6885
+ name_zh: z.ZodString;
6886
+ name_en: z.ZodString;
6887
+ region: z.ZodString;
6888
+ }, z.core.$strict>>>;
5589
6889
  }, z.core.$loose>, z.ZodObject<{
5590
6890
  id: z.ZodEnum<{
5591
6891
  recommended: "recommended";
@@ -5688,6 +6988,17 @@ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
5688
6988
  sr: "sr";
5689
6989
  is: "is";
5690
6990
  }>>>;
6991
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
6992
+ single_country: "single_country";
6993
+ regional_combination: "regional_combination";
6994
+ multi_market: "multi_market";
6995
+ }>>>;
6996
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
6997
+ code: z.ZodString;
6998
+ name_zh: z.ZodString;
6999
+ name_en: z.ZodString;
7000
+ region: z.ZodString;
7001
+ }, z.core.$strict>>>;
5691
7002
  }, z.core.$loose>, z.ZodObject<{
5692
7003
  id: z.ZodEnum<{
5693
7004
  recommended: "recommended";
@@ -5790,6 +7101,17 @@ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
5790
7101
  sr: "sr";
5791
7102
  is: "is";
5792
7103
  }>>>;
7104
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
7105
+ single_country: "single_country";
7106
+ regional_combination: "regional_combination";
7107
+ multi_market: "multi_market";
7108
+ }>>>;
7109
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
7110
+ code: z.ZodString;
7111
+ name_zh: z.ZodString;
7112
+ name_en: z.ZodString;
7113
+ region: z.ZodString;
7114
+ }, z.core.$strict>>>;
5793
7115
  }, z.core.$loose>], null>;
5794
7116
  plan: z.ZodOptional<z.ZodNullable<z.ZodObject<{
5795
7117
  lead: z.ZodString;
@@ -5807,12 +7129,108 @@ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
5807
7129
  source_id: z.ZodString;
5808
7130
  field_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
5809
7131
  }, z.core.$strict>>;
5810
- semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodObject<{
7132
+ semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
7133
+ database: z.ZodString;
7134
+ country: z.ZodString;
7135
+ provider: z.ZodLiteral<"semrush">;
7136
+ api_version: z.ZodLiteral<"v4">;
7137
+ fetched_at: z.ZodString;
7138
+ context_hash: z.ZodString;
7139
+ status: z.ZodEnum<{
7140
+ ready: "ready";
7141
+ failed: "failed";
7142
+ disabled: "disabled";
7143
+ empty: "empty";
7144
+ timeout: "timeout";
7145
+ rate_limited: "rate_limited";
7146
+ quota_exhausted: "quota_exhausted";
7147
+ }>;
7148
+ seeds: z.ZodArray<z.ZodObject<{
7149
+ id: z.ZodString;
7150
+ term: z.ZodString;
7151
+ source_type: z.ZodEnum<{
7152
+ step2: "step2";
7153
+ step3: "step3";
7154
+ step5: "step5";
7155
+ }>;
7156
+ source_id: z.ZodString;
7157
+ field_path: z.ZodString;
7158
+ source_field: z.ZodOptional<z.ZodString>;
7159
+ source_evidence: z.ZodOptional<z.ZodString>;
7160
+ business_subject: z.ZodOptional<z.ZodString>;
7161
+ reason: z.ZodOptional<z.ZodString>;
7162
+ }, z.core.$strict>>;
7163
+ intent_groups: z.ZodArray<z.ZodObject<{
7164
+ id: z.ZodString;
7165
+ intent: z.ZodEnum<{
7166
+ INFORMATIONAL: "INFORMATIONAL";
7167
+ NAVIGATIONAL: "NAVIGATIONAL";
7168
+ COMMERCIAL: "COMMERCIAL";
7169
+ TRANSACTIONAL: "TRANSACTIONAL";
7170
+ }>;
7171
+ title: z.ZodString;
7172
+ landing_page_type: z.ZodEnum<{
7173
+ product: "product";
7174
+ category: "category";
7175
+ blog: "blog";
7176
+ landing: "landing";
7177
+ }>;
7178
+ keywords: z.ZodArray<z.ZodObject<{
7179
+ keyword: z.ZodString;
7180
+ normalized_keyword: z.ZodString;
7181
+ intents: z.ZodArray<z.ZodEnum<{
7182
+ INFORMATIONAL: "INFORMATIONAL";
7183
+ NAVIGATIONAL: "NAVIGATIONAL";
7184
+ COMMERCIAL: "COMMERCIAL";
7185
+ TRANSACTIONAL: "TRANSACTIONAL";
7186
+ }>>;
7187
+ search_volume: z.ZodNumber;
7188
+ keyword_difficulty: z.ZodNumber;
7189
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
7190
+ trend: z.ZodArray<z.ZodNumber>;
7191
+ serp_features: z.ZodArray<z.ZodString>;
7192
+ fit: z.ZodObject<{
7193
+ seo: z.ZodNumber;
7194
+ geo: z.ZodNumber;
7195
+ buyer: z.ZodNumber;
7196
+ }, z.core.$strict>;
7197
+ recommended_channel: z.ZodEnum<{
7198
+ SEO: "SEO";
7199
+ GEO: "GEO";
7200
+ DUAL: "DUAL";
7201
+ }>;
7202
+ priority: z.ZodEnum<{
7203
+ P0: "P0";
7204
+ P1: "P1";
7205
+ P2: "P2";
7206
+ P3: "P3";
7207
+ }>;
7208
+ already_in_plan: z.ZodBoolean;
7209
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
7210
+ }, z.core.$strict>>;
7211
+ }, z.core.$strict>>;
7212
+ selection_summary: z.ZodOptional<z.ZodObject<{
7213
+ fetched_count: z.ZodNumber;
7214
+ unique_count: z.ZodNumber;
7215
+ metric_gate_pass_count: z.ZodNumber;
7216
+ commercial_intent_pass_count: z.ZodNumber;
7217
+ fit_pass_count: z.ZodNumber;
7218
+ selected_count: z.ZodNumber;
7219
+ }, z.core.$strict>>;
7220
+ empty_reason_code: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
7221
+ NO_SEEDS: "NO_SEEDS";
7222
+ NO_PROVIDER_CANDIDATES: "NO_PROVIDER_CANDIDATES";
7223
+ NO_METRIC_ELIGIBLE_CANDIDATES: "NO_METRIC_ELIGIBLE_CANDIDATES";
7224
+ NO_COMMERCIAL_INTENT_CANDIDATES: "NO_COMMERCIAL_INTENT_CANDIDATES";
7225
+ NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
7226
+ }>>>;
7227
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
5811
7228
  schema_version: z.ZodLiteral<1>;
5812
- provider: z.ZodLiteral<"semrush">;
5813
- api_version: z.ZodLiteral<"v4">;
7229
+ }, z.core.$strict>, z.ZodObject<{
5814
7230
  database: z.ZodString;
5815
7231
  country: z.ZodString;
7232
+ provider: z.ZodLiteral<"semrush">;
7233
+ api_version: z.ZodLiteral<"v4">;
5816
7234
  fetched_at: z.ZodString;
5817
7235
  context_hash: z.ZodString;
5818
7236
  status: z.ZodEnum<{
@@ -5904,7 +7322,8 @@ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
5904
7322
  NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
5905
7323
  }>>>;
5906
7324
  error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
5907
- }, z.core.$strict>>>;
7325
+ schema_version: z.ZodLiteral<2>;
7326
+ }, z.core.$strict>], "schema_version">>>;
5908
7327
  seo_payload: z.ZodOptional<z.ZodNullable<z.ZodLazy<z.ZodObject<{
5909
7328
  schema_version: z.ZodLiteral<2>;
5910
7329
  seo_keywords: z.ZodArray<z.ZodObject<{
@@ -5913,9 +7332,9 @@ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
5913
7332
  normalized_keyword: z.ZodString;
5914
7333
  intc: z.ZodEnum<{
5915
7334
  C: "C";
7335
+ T: "T";
5916
7336
  I: "I";
5917
7337
  N: "N";
5918
- T: "T";
5919
7338
  }>;
5920
7339
  keyword_type: z.ZodString;
5921
7340
  intent_strength: z.ZodEnum<{
@@ -5949,6 +7368,26 @@ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
5949
7368
  selected_keywords: z.ZodArray<z.ZodString>;
5950
7369
  }, z.core.$strict>>>;
5951
7370
  }, z.core.$strict>>>>;
7371
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
7372
+ id: z.ZodString;
7373
+ question: z.ZodString;
7374
+ question_type: z.ZodEnum<{
7375
+ category: "category";
7376
+ trust: "trust";
7377
+ selection: "selection";
7378
+ application: "application";
7379
+ parameter: "parameter";
7380
+ cost: "cost";
7381
+ compliance: "compliance";
7382
+ delivery: "delivery";
7383
+ }>;
7384
+ intent_strength: z.ZodEnum<{
7385
+ high: "high";
7386
+ medium: "medium";
7387
+ low: "low";
7388
+ }>;
7389
+ source: z.ZodLiteral<"ai_generation">;
7390
+ }, z.core.$strict>>>;
5952
7391
  generation_status: z.ZodOptional<z.ZodEnum<{
5953
7392
  degraded: "degraded";
5954
7393
  ok: "ok";
@@ -5982,9 +7421,9 @@ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
5982
7421
  normalized_keyword: z.ZodString;
5983
7422
  intc: z.ZodEnum<{
5984
7423
  C: "C";
7424
+ T: "T";
5985
7425
  I: "I";
5986
7426
  N: "N";
5987
- T: "T";
5988
7427
  }>;
5989
7428
  keyword_type: z.ZodString;
5990
7429
  intent_strength: z.ZodEnum<{
@@ -6036,6 +7475,17 @@ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
6036
7475
  cpc: z.ZodNullable<z.ZodNumber>;
6037
7476
  }, z.core.$strict>>>;
6038
7477
  }, z.core.$strict>]>>;
7478
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
7479
+ single_country: "single_country";
7480
+ regional_combination: "regional_combination";
7481
+ multi_market: "multi_market";
7482
+ }>>>;
7483
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
7484
+ code: z.ZodString;
7485
+ name_zh: z.ZodString;
7486
+ name_en: z.ZodString;
7487
+ region: z.ZodString;
7488
+ }, z.core.$strict>>>;
6039
7489
  selected_value: z.ZodNullable<z.ZodUnknown>;
6040
7490
  accepted_at: z.ZodString;
6041
7491
  }, z.core.$loose>>;
@@ -6194,6 +7644,17 @@ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
6194
7644
  sr: "sr";
6195
7645
  is: "is";
6196
7646
  }>>>;
7647
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
7648
+ single_country: "single_country";
7649
+ regional_combination: "regional_combination";
7650
+ multi_market: "multi_market";
7651
+ }>>>;
7652
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
7653
+ code: z.ZodString;
7654
+ name_zh: z.ZodString;
7655
+ name_en: z.ZodString;
7656
+ region: z.ZodString;
7657
+ }, z.core.$strict>>>;
6197
7658
  }, z.core.$loose>, z.ZodObject<{
6198
7659
  id: z.ZodEnum<{
6199
7660
  recommended: "recommended";
@@ -6296,6 +7757,17 @@ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
6296
7757
  sr: "sr";
6297
7758
  is: "is";
6298
7759
  }>>>;
7760
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
7761
+ single_country: "single_country";
7762
+ regional_combination: "regional_combination";
7763
+ multi_market: "multi_market";
7764
+ }>>>;
7765
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
7766
+ code: z.ZodString;
7767
+ name_zh: z.ZodString;
7768
+ name_en: z.ZodString;
7769
+ region: z.ZodString;
7770
+ }, z.core.$strict>>>;
6299
7771
  }, z.core.$loose>, z.ZodObject<{
6300
7772
  id: z.ZodEnum<{
6301
7773
  recommended: "recommended";
@@ -6398,6 +7870,17 @@ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
6398
7870
  sr: "sr";
6399
7871
  is: "is";
6400
7872
  }>>>;
7873
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
7874
+ single_country: "single_country";
7875
+ regional_combination: "regional_combination";
7876
+ multi_market: "multi_market";
7877
+ }>>>;
7878
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
7879
+ code: z.ZodString;
7880
+ name_zh: z.ZodString;
7881
+ name_en: z.ZodString;
7882
+ region: z.ZodString;
7883
+ }, z.core.$strict>>>;
6401
7884
  }, z.core.$loose>], null>;
6402
7885
  plan: z.ZodOptional<z.ZodNullable<z.ZodObject<{
6403
7886
  lead: z.ZodString;
@@ -6415,12 +7898,108 @@ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
6415
7898
  source_id: z.ZodString;
6416
7899
  field_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
6417
7900
  }, z.core.$strict>>;
6418
- semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodObject<{
6419
- schema_version: z.ZodLiteral<1>;
7901
+ semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
7902
+ database: z.ZodString;
7903
+ country: z.ZodString;
6420
7904
  provider: z.ZodLiteral<"semrush">;
6421
7905
  api_version: z.ZodLiteral<"v4">;
7906
+ fetched_at: z.ZodString;
7907
+ context_hash: z.ZodString;
7908
+ status: z.ZodEnum<{
7909
+ ready: "ready";
7910
+ failed: "failed";
7911
+ disabled: "disabled";
7912
+ empty: "empty";
7913
+ timeout: "timeout";
7914
+ rate_limited: "rate_limited";
7915
+ quota_exhausted: "quota_exhausted";
7916
+ }>;
7917
+ seeds: z.ZodArray<z.ZodObject<{
7918
+ id: z.ZodString;
7919
+ term: z.ZodString;
7920
+ source_type: z.ZodEnum<{
7921
+ step2: "step2";
7922
+ step3: "step3";
7923
+ step5: "step5";
7924
+ }>;
7925
+ source_id: z.ZodString;
7926
+ field_path: z.ZodString;
7927
+ source_field: z.ZodOptional<z.ZodString>;
7928
+ source_evidence: z.ZodOptional<z.ZodString>;
7929
+ business_subject: z.ZodOptional<z.ZodString>;
7930
+ reason: z.ZodOptional<z.ZodString>;
7931
+ }, z.core.$strict>>;
7932
+ intent_groups: z.ZodArray<z.ZodObject<{
7933
+ id: z.ZodString;
7934
+ intent: z.ZodEnum<{
7935
+ INFORMATIONAL: "INFORMATIONAL";
7936
+ NAVIGATIONAL: "NAVIGATIONAL";
7937
+ COMMERCIAL: "COMMERCIAL";
7938
+ TRANSACTIONAL: "TRANSACTIONAL";
7939
+ }>;
7940
+ title: z.ZodString;
7941
+ landing_page_type: z.ZodEnum<{
7942
+ product: "product";
7943
+ category: "category";
7944
+ blog: "blog";
7945
+ landing: "landing";
7946
+ }>;
7947
+ keywords: z.ZodArray<z.ZodObject<{
7948
+ keyword: z.ZodString;
7949
+ normalized_keyword: z.ZodString;
7950
+ intents: z.ZodArray<z.ZodEnum<{
7951
+ INFORMATIONAL: "INFORMATIONAL";
7952
+ NAVIGATIONAL: "NAVIGATIONAL";
7953
+ COMMERCIAL: "COMMERCIAL";
7954
+ TRANSACTIONAL: "TRANSACTIONAL";
7955
+ }>>;
7956
+ search_volume: z.ZodNumber;
7957
+ keyword_difficulty: z.ZodNumber;
7958
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
7959
+ trend: z.ZodArray<z.ZodNumber>;
7960
+ serp_features: z.ZodArray<z.ZodString>;
7961
+ fit: z.ZodObject<{
7962
+ seo: z.ZodNumber;
7963
+ geo: z.ZodNumber;
7964
+ buyer: z.ZodNumber;
7965
+ }, z.core.$strict>;
7966
+ recommended_channel: z.ZodEnum<{
7967
+ SEO: "SEO";
7968
+ GEO: "GEO";
7969
+ DUAL: "DUAL";
7970
+ }>;
7971
+ priority: z.ZodEnum<{
7972
+ P0: "P0";
7973
+ P1: "P1";
7974
+ P2: "P2";
7975
+ P3: "P3";
7976
+ }>;
7977
+ already_in_plan: z.ZodBoolean;
7978
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
7979
+ }, z.core.$strict>>;
7980
+ }, z.core.$strict>>;
7981
+ selection_summary: z.ZodOptional<z.ZodObject<{
7982
+ fetched_count: z.ZodNumber;
7983
+ unique_count: z.ZodNumber;
7984
+ metric_gate_pass_count: z.ZodNumber;
7985
+ commercial_intent_pass_count: z.ZodNumber;
7986
+ fit_pass_count: z.ZodNumber;
7987
+ selected_count: z.ZodNumber;
7988
+ }, z.core.$strict>>;
7989
+ empty_reason_code: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
7990
+ NO_SEEDS: "NO_SEEDS";
7991
+ NO_PROVIDER_CANDIDATES: "NO_PROVIDER_CANDIDATES";
7992
+ NO_METRIC_ELIGIBLE_CANDIDATES: "NO_METRIC_ELIGIBLE_CANDIDATES";
7993
+ NO_COMMERCIAL_INTENT_CANDIDATES: "NO_COMMERCIAL_INTENT_CANDIDATES";
7994
+ NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
7995
+ }>>>;
7996
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
7997
+ schema_version: z.ZodLiteral<1>;
7998
+ }, z.core.$strict>, z.ZodObject<{
6422
7999
  database: z.ZodString;
6423
8000
  country: z.ZodString;
8001
+ provider: z.ZodLiteral<"semrush">;
8002
+ api_version: z.ZodLiteral<"v4">;
6424
8003
  fetched_at: z.ZodString;
6425
8004
  context_hash: z.ZodString;
6426
8005
  status: z.ZodEnum<{
@@ -6512,7 +8091,8 @@ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
6512
8091
  NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
6513
8092
  }>>>;
6514
8093
  error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
6515
- }, z.core.$strict>>>;
8094
+ schema_version: z.ZodLiteral<2>;
8095
+ }, z.core.$strict>], "schema_version">>>;
6516
8096
  seo_payload: z.ZodOptional<z.ZodNullable<z.ZodLazy<z.ZodObject<{
6517
8097
  schema_version: z.ZodLiteral<2>;
6518
8098
  seo_keywords: z.ZodArray<z.ZodObject<{
@@ -6521,9 +8101,9 @@ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
6521
8101
  normalized_keyword: z.ZodString;
6522
8102
  intc: z.ZodEnum<{
6523
8103
  C: "C";
8104
+ T: "T";
6524
8105
  I: "I";
6525
8106
  N: "N";
6526
- T: "T";
6527
8107
  }>;
6528
8108
  keyword_type: z.ZodString;
6529
8109
  intent_strength: z.ZodEnum<{
@@ -6557,6 +8137,26 @@ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
6557
8137
  selected_keywords: z.ZodArray<z.ZodString>;
6558
8138
  }, z.core.$strict>>>;
6559
8139
  }, z.core.$strict>>>>;
8140
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
8141
+ id: z.ZodString;
8142
+ question: z.ZodString;
8143
+ question_type: z.ZodEnum<{
8144
+ category: "category";
8145
+ trust: "trust";
8146
+ selection: "selection";
8147
+ application: "application";
8148
+ parameter: "parameter";
8149
+ cost: "cost";
8150
+ compliance: "compliance";
8151
+ delivery: "delivery";
8152
+ }>;
8153
+ intent_strength: z.ZodEnum<{
8154
+ high: "high";
8155
+ medium: "medium";
8156
+ low: "low";
8157
+ }>;
8158
+ source: z.ZodLiteral<"ai_generation">;
8159
+ }, z.core.$strict>>>;
6560
8160
  generation_status: z.ZodOptional<z.ZodEnum<{
6561
8161
  degraded: "degraded";
6562
8162
  ok: "ok";
@@ -6590,9 +8190,9 @@ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
6590
8190
  normalized_keyword: z.ZodString;
6591
8191
  intc: z.ZodEnum<{
6592
8192
  C: "C";
8193
+ T: "T";
6593
8194
  I: "I";
6594
8195
  N: "N";
6595
- T: "T";
6596
8196
  }>;
6597
8197
  keyword_type: z.ZodString;
6598
8198
  intent_strength: z.ZodEnum<{
@@ -6644,6 +8244,17 @@ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
6644
8244
  cpc: z.ZodNullable<z.ZodNumber>;
6645
8245
  }, z.core.$strict>>>;
6646
8246
  }, z.core.$strict>]>>;
8247
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
8248
+ single_country: "single_country";
8249
+ regional_combination: "regional_combination";
8250
+ multi_market: "multi_market";
8251
+ }>>>;
8252
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
8253
+ code: z.ZodString;
8254
+ name_zh: z.ZodString;
8255
+ name_en: z.ZodString;
8256
+ region: z.ZodString;
8257
+ }, z.core.$strict>>>;
6647
8258
  selected_value: z.ZodNullable<z.ZodUnknown>;
6648
8259
  accepted_at: z.ZodString;
6649
8260
  }, z.core.$loose>>;
@@ -6805,6 +8416,17 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
6805
8416
  sr: "sr";
6806
8417
  is: "is";
6807
8418
  }>>>;
8419
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
8420
+ single_country: "single_country";
8421
+ regional_combination: "regional_combination";
8422
+ multi_market: "multi_market";
8423
+ }>>>;
8424
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
8425
+ code: z.ZodString;
8426
+ name_zh: z.ZodString;
8427
+ name_en: z.ZodString;
8428
+ region: z.ZodString;
8429
+ }, z.core.$strict>>>;
6808
8430
  }, z.core.$loose>, z.ZodObject<{
6809
8431
  id: z.ZodEnum<{
6810
8432
  recommended: "recommended";
@@ -6907,6 +8529,17 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
6907
8529
  sr: "sr";
6908
8530
  is: "is";
6909
8531
  }>>>;
8532
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
8533
+ single_country: "single_country";
8534
+ regional_combination: "regional_combination";
8535
+ multi_market: "multi_market";
8536
+ }>>>;
8537
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
8538
+ code: z.ZodString;
8539
+ name_zh: z.ZodString;
8540
+ name_en: z.ZodString;
8541
+ region: z.ZodString;
8542
+ }, z.core.$strict>>>;
6910
8543
  }, z.core.$loose>, z.ZodObject<{
6911
8544
  id: z.ZodEnum<{
6912
8545
  recommended: "recommended";
@@ -7009,6 +8642,17 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
7009
8642
  sr: "sr";
7010
8643
  is: "is";
7011
8644
  }>>>;
8645
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
8646
+ single_country: "single_country";
8647
+ regional_combination: "regional_combination";
8648
+ multi_market: "multi_market";
8649
+ }>>>;
8650
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
8651
+ code: z.ZodString;
8652
+ name_zh: z.ZodString;
8653
+ name_en: z.ZodString;
8654
+ region: z.ZodString;
8655
+ }, z.core.$strict>>>;
7012
8656
  }, z.core.$loose>], null>;
7013
8657
  plan: z.ZodOptional<z.ZodNullable<z.ZodObject<{
7014
8658
  lead: z.ZodString;
@@ -7026,12 +8670,108 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
7026
8670
  source_id: z.ZodString;
7027
8671
  field_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
7028
8672
  }, z.core.$strict>>;
7029
- semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodObject<{
7030
- schema_version: z.ZodLiteral<1>;
8673
+ semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
8674
+ database: z.ZodString;
8675
+ country: z.ZodString;
7031
8676
  provider: z.ZodLiteral<"semrush">;
7032
8677
  api_version: z.ZodLiteral<"v4">;
8678
+ fetched_at: z.ZodString;
8679
+ context_hash: z.ZodString;
8680
+ status: z.ZodEnum<{
8681
+ ready: "ready";
8682
+ failed: "failed";
8683
+ disabled: "disabled";
8684
+ empty: "empty";
8685
+ timeout: "timeout";
8686
+ rate_limited: "rate_limited";
8687
+ quota_exhausted: "quota_exhausted";
8688
+ }>;
8689
+ seeds: z.ZodArray<z.ZodObject<{
8690
+ id: z.ZodString;
8691
+ term: z.ZodString;
8692
+ source_type: z.ZodEnum<{
8693
+ step2: "step2";
8694
+ step3: "step3";
8695
+ step5: "step5";
8696
+ }>;
8697
+ source_id: z.ZodString;
8698
+ field_path: z.ZodString;
8699
+ source_field: z.ZodOptional<z.ZodString>;
8700
+ source_evidence: z.ZodOptional<z.ZodString>;
8701
+ business_subject: z.ZodOptional<z.ZodString>;
8702
+ reason: z.ZodOptional<z.ZodString>;
8703
+ }, z.core.$strict>>;
8704
+ intent_groups: z.ZodArray<z.ZodObject<{
8705
+ id: z.ZodString;
8706
+ intent: z.ZodEnum<{
8707
+ INFORMATIONAL: "INFORMATIONAL";
8708
+ NAVIGATIONAL: "NAVIGATIONAL";
8709
+ COMMERCIAL: "COMMERCIAL";
8710
+ TRANSACTIONAL: "TRANSACTIONAL";
8711
+ }>;
8712
+ title: z.ZodString;
8713
+ landing_page_type: z.ZodEnum<{
8714
+ product: "product";
8715
+ category: "category";
8716
+ blog: "blog";
8717
+ landing: "landing";
8718
+ }>;
8719
+ keywords: z.ZodArray<z.ZodObject<{
8720
+ keyword: z.ZodString;
8721
+ normalized_keyword: z.ZodString;
8722
+ intents: z.ZodArray<z.ZodEnum<{
8723
+ INFORMATIONAL: "INFORMATIONAL";
8724
+ NAVIGATIONAL: "NAVIGATIONAL";
8725
+ COMMERCIAL: "COMMERCIAL";
8726
+ TRANSACTIONAL: "TRANSACTIONAL";
8727
+ }>>;
8728
+ search_volume: z.ZodNumber;
8729
+ keyword_difficulty: z.ZodNumber;
8730
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
8731
+ trend: z.ZodArray<z.ZodNumber>;
8732
+ serp_features: z.ZodArray<z.ZodString>;
8733
+ fit: z.ZodObject<{
8734
+ seo: z.ZodNumber;
8735
+ geo: z.ZodNumber;
8736
+ buyer: z.ZodNumber;
8737
+ }, z.core.$strict>;
8738
+ recommended_channel: z.ZodEnum<{
8739
+ SEO: "SEO";
8740
+ GEO: "GEO";
8741
+ DUAL: "DUAL";
8742
+ }>;
8743
+ priority: z.ZodEnum<{
8744
+ P0: "P0";
8745
+ P1: "P1";
8746
+ P2: "P2";
8747
+ P3: "P3";
8748
+ }>;
8749
+ already_in_plan: z.ZodBoolean;
8750
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
8751
+ }, z.core.$strict>>;
8752
+ }, z.core.$strict>>;
8753
+ selection_summary: z.ZodOptional<z.ZodObject<{
8754
+ fetched_count: z.ZodNumber;
8755
+ unique_count: z.ZodNumber;
8756
+ metric_gate_pass_count: z.ZodNumber;
8757
+ commercial_intent_pass_count: z.ZodNumber;
8758
+ fit_pass_count: z.ZodNumber;
8759
+ selected_count: z.ZodNumber;
8760
+ }, z.core.$strict>>;
8761
+ empty_reason_code: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
8762
+ NO_SEEDS: "NO_SEEDS";
8763
+ NO_PROVIDER_CANDIDATES: "NO_PROVIDER_CANDIDATES";
8764
+ NO_METRIC_ELIGIBLE_CANDIDATES: "NO_METRIC_ELIGIBLE_CANDIDATES";
8765
+ NO_COMMERCIAL_INTENT_CANDIDATES: "NO_COMMERCIAL_INTENT_CANDIDATES";
8766
+ NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
8767
+ }>>>;
8768
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
8769
+ schema_version: z.ZodLiteral<1>;
8770
+ }, z.core.$strict>, z.ZodObject<{
7033
8771
  database: z.ZodString;
7034
8772
  country: z.ZodString;
8773
+ provider: z.ZodLiteral<"semrush">;
8774
+ api_version: z.ZodLiteral<"v4">;
7035
8775
  fetched_at: z.ZodString;
7036
8776
  context_hash: z.ZodString;
7037
8777
  status: z.ZodEnum<{
@@ -7123,7 +8863,8 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
7123
8863
  NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
7124
8864
  }>>>;
7125
8865
  error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
7126
- }, z.core.$strict>>>;
8866
+ schema_version: z.ZodLiteral<2>;
8867
+ }, z.core.$strict>], "schema_version">>>;
7127
8868
  seo_payload: z.ZodOptional<z.ZodNullable<z.ZodLazy<z.ZodObject<{
7128
8869
  schema_version: z.ZodLiteral<2>;
7129
8870
  seo_keywords: z.ZodArray<z.ZodObject<{
@@ -7132,9 +8873,9 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
7132
8873
  normalized_keyword: z.ZodString;
7133
8874
  intc: z.ZodEnum<{
7134
8875
  C: "C";
8876
+ T: "T";
7135
8877
  I: "I";
7136
8878
  N: "N";
7137
- T: "T";
7138
8879
  }>;
7139
8880
  keyword_type: z.ZodString;
7140
8881
  intent_strength: z.ZodEnum<{
@@ -7168,6 +8909,26 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
7168
8909
  selected_keywords: z.ZodArray<z.ZodString>;
7169
8910
  }, z.core.$strict>>>;
7170
8911
  }, z.core.$strict>>>>;
8912
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
8913
+ id: z.ZodString;
8914
+ question: z.ZodString;
8915
+ question_type: z.ZodEnum<{
8916
+ category: "category";
8917
+ trust: "trust";
8918
+ selection: "selection";
8919
+ application: "application";
8920
+ parameter: "parameter";
8921
+ cost: "cost";
8922
+ compliance: "compliance";
8923
+ delivery: "delivery";
8924
+ }>;
8925
+ intent_strength: z.ZodEnum<{
8926
+ high: "high";
8927
+ medium: "medium";
8928
+ low: "low";
8929
+ }>;
8930
+ source: z.ZodLiteral<"ai_generation">;
8931
+ }, z.core.$strict>>>;
7171
8932
  generation_status: z.ZodOptional<z.ZodEnum<{
7172
8933
  degraded: "degraded";
7173
8934
  ok: "ok";
@@ -7201,9 +8962,9 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
7201
8962
  normalized_keyword: z.ZodString;
7202
8963
  intc: z.ZodEnum<{
7203
8964
  C: "C";
8965
+ T: "T";
7204
8966
  I: "I";
7205
8967
  N: "N";
7206
- T: "T";
7207
8968
  }>;
7208
8969
  keyword_type: z.ZodString;
7209
8970
  intent_strength: z.ZodEnum<{
@@ -7255,6 +9016,17 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
7255
9016
  cpc: z.ZodNullable<z.ZodNumber>;
7256
9017
  }, z.core.$strict>>>;
7257
9018
  }, z.core.$strict>]>>;
9019
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
9020
+ single_country: "single_country";
9021
+ regional_combination: "regional_combination";
9022
+ multi_market: "multi_market";
9023
+ }>>>;
9024
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
9025
+ code: z.ZodString;
9026
+ name_zh: z.ZodString;
9027
+ name_en: z.ZodString;
9028
+ region: z.ZodString;
9029
+ }, z.core.$strict>>>;
7258
9030
  selected_value: z.ZodNullable<z.ZodUnknown>;
7259
9031
  accepted_at: z.ZodString;
7260
9032
  }, z.core.$loose>>;
@@ -7413,6 +9185,17 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
7413
9185
  sr: "sr";
7414
9186
  is: "is";
7415
9187
  }>>>;
9188
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
9189
+ single_country: "single_country";
9190
+ regional_combination: "regional_combination";
9191
+ multi_market: "multi_market";
9192
+ }>>>;
9193
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
9194
+ code: z.ZodString;
9195
+ name_zh: z.ZodString;
9196
+ name_en: z.ZodString;
9197
+ region: z.ZodString;
9198
+ }, z.core.$strict>>>;
7416
9199
  }, z.core.$loose>, z.ZodObject<{
7417
9200
  id: z.ZodEnum<{
7418
9201
  recommended: "recommended";
@@ -7515,6 +9298,17 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
7515
9298
  sr: "sr";
7516
9299
  is: "is";
7517
9300
  }>>>;
9301
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
9302
+ single_country: "single_country";
9303
+ regional_combination: "regional_combination";
9304
+ multi_market: "multi_market";
9305
+ }>>>;
9306
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
9307
+ code: z.ZodString;
9308
+ name_zh: z.ZodString;
9309
+ name_en: z.ZodString;
9310
+ region: z.ZodString;
9311
+ }, z.core.$strict>>>;
7518
9312
  }, z.core.$loose>, z.ZodObject<{
7519
9313
  id: z.ZodEnum<{
7520
9314
  recommended: "recommended";
@@ -7617,6 +9411,17 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
7617
9411
  sr: "sr";
7618
9412
  is: "is";
7619
9413
  }>>>;
9414
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
9415
+ single_country: "single_country";
9416
+ regional_combination: "regional_combination";
9417
+ multi_market: "multi_market";
9418
+ }>>>;
9419
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
9420
+ code: z.ZodString;
9421
+ name_zh: z.ZodString;
9422
+ name_en: z.ZodString;
9423
+ region: z.ZodString;
9424
+ }, z.core.$strict>>>;
7620
9425
  }, z.core.$loose>], null>;
7621
9426
  plan: z.ZodOptional<z.ZodNullable<z.ZodObject<{
7622
9427
  lead: z.ZodString;
@@ -7634,12 +9439,108 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
7634
9439
  source_id: z.ZodString;
7635
9440
  field_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
7636
9441
  }, z.core.$strict>>;
7637
- semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodObject<{
7638
- schema_version: z.ZodLiteral<1>;
9442
+ semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
9443
+ database: z.ZodString;
9444
+ country: z.ZodString;
7639
9445
  provider: z.ZodLiteral<"semrush">;
7640
9446
  api_version: z.ZodLiteral<"v4">;
9447
+ fetched_at: z.ZodString;
9448
+ context_hash: z.ZodString;
9449
+ status: z.ZodEnum<{
9450
+ ready: "ready";
9451
+ failed: "failed";
9452
+ disabled: "disabled";
9453
+ empty: "empty";
9454
+ timeout: "timeout";
9455
+ rate_limited: "rate_limited";
9456
+ quota_exhausted: "quota_exhausted";
9457
+ }>;
9458
+ seeds: z.ZodArray<z.ZodObject<{
9459
+ id: z.ZodString;
9460
+ term: z.ZodString;
9461
+ source_type: z.ZodEnum<{
9462
+ step2: "step2";
9463
+ step3: "step3";
9464
+ step5: "step5";
9465
+ }>;
9466
+ source_id: z.ZodString;
9467
+ field_path: z.ZodString;
9468
+ source_field: z.ZodOptional<z.ZodString>;
9469
+ source_evidence: z.ZodOptional<z.ZodString>;
9470
+ business_subject: z.ZodOptional<z.ZodString>;
9471
+ reason: z.ZodOptional<z.ZodString>;
9472
+ }, z.core.$strict>>;
9473
+ intent_groups: z.ZodArray<z.ZodObject<{
9474
+ id: z.ZodString;
9475
+ intent: z.ZodEnum<{
9476
+ INFORMATIONAL: "INFORMATIONAL";
9477
+ NAVIGATIONAL: "NAVIGATIONAL";
9478
+ COMMERCIAL: "COMMERCIAL";
9479
+ TRANSACTIONAL: "TRANSACTIONAL";
9480
+ }>;
9481
+ title: z.ZodString;
9482
+ landing_page_type: z.ZodEnum<{
9483
+ product: "product";
9484
+ category: "category";
9485
+ blog: "blog";
9486
+ landing: "landing";
9487
+ }>;
9488
+ keywords: z.ZodArray<z.ZodObject<{
9489
+ keyword: z.ZodString;
9490
+ normalized_keyword: z.ZodString;
9491
+ intents: z.ZodArray<z.ZodEnum<{
9492
+ INFORMATIONAL: "INFORMATIONAL";
9493
+ NAVIGATIONAL: "NAVIGATIONAL";
9494
+ COMMERCIAL: "COMMERCIAL";
9495
+ TRANSACTIONAL: "TRANSACTIONAL";
9496
+ }>>;
9497
+ search_volume: z.ZodNumber;
9498
+ keyword_difficulty: z.ZodNumber;
9499
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
9500
+ trend: z.ZodArray<z.ZodNumber>;
9501
+ serp_features: z.ZodArray<z.ZodString>;
9502
+ fit: z.ZodObject<{
9503
+ seo: z.ZodNumber;
9504
+ geo: z.ZodNumber;
9505
+ buyer: z.ZodNumber;
9506
+ }, z.core.$strict>;
9507
+ recommended_channel: z.ZodEnum<{
9508
+ SEO: "SEO";
9509
+ GEO: "GEO";
9510
+ DUAL: "DUAL";
9511
+ }>;
9512
+ priority: z.ZodEnum<{
9513
+ P0: "P0";
9514
+ P1: "P1";
9515
+ P2: "P2";
9516
+ P3: "P3";
9517
+ }>;
9518
+ already_in_plan: z.ZodBoolean;
9519
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
9520
+ }, z.core.$strict>>;
9521
+ }, z.core.$strict>>;
9522
+ selection_summary: z.ZodOptional<z.ZodObject<{
9523
+ fetched_count: z.ZodNumber;
9524
+ unique_count: z.ZodNumber;
9525
+ metric_gate_pass_count: z.ZodNumber;
9526
+ commercial_intent_pass_count: z.ZodNumber;
9527
+ fit_pass_count: z.ZodNumber;
9528
+ selected_count: z.ZodNumber;
9529
+ }, z.core.$strict>>;
9530
+ empty_reason_code: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
9531
+ NO_SEEDS: "NO_SEEDS";
9532
+ NO_PROVIDER_CANDIDATES: "NO_PROVIDER_CANDIDATES";
9533
+ NO_METRIC_ELIGIBLE_CANDIDATES: "NO_METRIC_ELIGIBLE_CANDIDATES";
9534
+ NO_COMMERCIAL_INTENT_CANDIDATES: "NO_COMMERCIAL_INTENT_CANDIDATES";
9535
+ NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
9536
+ }>>>;
9537
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
9538
+ schema_version: z.ZodLiteral<1>;
9539
+ }, z.core.$strict>, z.ZodObject<{
7641
9540
  database: z.ZodString;
7642
9541
  country: z.ZodString;
9542
+ provider: z.ZodLiteral<"semrush">;
9543
+ api_version: z.ZodLiteral<"v4">;
7643
9544
  fetched_at: z.ZodString;
7644
9545
  context_hash: z.ZodString;
7645
9546
  status: z.ZodEnum<{
@@ -7731,7 +9632,8 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
7731
9632
  NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
7732
9633
  }>>>;
7733
9634
  error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
7734
- }, z.core.$strict>>>;
9635
+ schema_version: z.ZodLiteral<2>;
9636
+ }, z.core.$strict>], "schema_version">>>;
7735
9637
  seo_payload: z.ZodOptional<z.ZodNullable<z.ZodLazy<z.ZodObject<{
7736
9638
  schema_version: z.ZodLiteral<2>;
7737
9639
  seo_keywords: z.ZodArray<z.ZodObject<{
@@ -7740,9 +9642,9 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
7740
9642
  normalized_keyword: z.ZodString;
7741
9643
  intc: z.ZodEnum<{
7742
9644
  C: "C";
9645
+ T: "T";
7743
9646
  I: "I";
7744
9647
  N: "N";
7745
- T: "T";
7746
9648
  }>;
7747
9649
  keyword_type: z.ZodString;
7748
9650
  intent_strength: z.ZodEnum<{
@@ -7776,6 +9678,26 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
7776
9678
  selected_keywords: z.ZodArray<z.ZodString>;
7777
9679
  }, z.core.$strict>>>;
7778
9680
  }, z.core.$strict>>>>;
9681
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
9682
+ id: z.ZodString;
9683
+ question: z.ZodString;
9684
+ question_type: z.ZodEnum<{
9685
+ category: "category";
9686
+ trust: "trust";
9687
+ selection: "selection";
9688
+ application: "application";
9689
+ parameter: "parameter";
9690
+ cost: "cost";
9691
+ compliance: "compliance";
9692
+ delivery: "delivery";
9693
+ }>;
9694
+ intent_strength: z.ZodEnum<{
9695
+ high: "high";
9696
+ medium: "medium";
9697
+ low: "low";
9698
+ }>;
9699
+ source: z.ZodLiteral<"ai_generation">;
9700
+ }, z.core.$strict>>>;
7779
9701
  generation_status: z.ZodOptional<z.ZodEnum<{
7780
9702
  degraded: "degraded";
7781
9703
  ok: "ok";
@@ -7809,9 +9731,9 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
7809
9731
  normalized_keyword: z.ZodString;
7810
9732
  intc: z.ZodEnum<{
7811
9733
  C: "C";
9734
+ T: "T";
7812
9735
  I: "I";
7813
9736
  N: "N";
7814
- T: "T";
7815
9737
  }>;
7816
9738
  keyword_type: z.ZodString;
7817
9739
  intent_strength: z.ZodEnum<{
@@ -7863,6 +9785,17 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
7863
9785
  cpc: z.ZodNullable<z.ZodNumber>;
7864
9786
  }, z.core.$strict>>>;
7865
9787
  }, z.core.$strict>]>>;
9788
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
9789
+ single_country: "single_country";
9790
+ regional_combination: "regional_combination";
9791
+ multi_market: "multi_market";
9792
+ }>>>;
9793
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
9794
+ code: z.ZodString;
9795
+ name_zh: z.ZodString;
9796
+ name_en: z.ZodString;
9797
+ region: z.ZodString;
9798
+ }, z.core.$strict>>>;
7866
9799
  selected_value: z.ZodNullable<z.ZodUnknown>;
7867
9800
  accepted_at: z.ZodString;
7868
9801
  }, z.core.$loose>>;
@@ -8017,6 +9950,17 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
8017
9950
  sr: "sr";
8018
9951
  is: "is";
8019
9952
  }>>>;
9953
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
9954
+ single_country: "single_country";
9955
+ regional_combination: "regional_combination";
9956
+ multi_market: "multi_market";
9957
+ }>>>;
9958
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
9959
+ code: z.ZodString;
9960
+ name_zh: z.ZodString;
9961
+ name_en: z.ZodString;
9962
+ region: z.ZodString;
9963
+ }, z.core.$strict>>>;
8020
9964
  }, z.core.$loose>, z.ZodObject<{
8021
9965
  id: z.ZodEnum<{
8022
9966
  recommended: "recommended";
@@ -8119,6 +10063,17 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
8119
10063
  sr: "sr";
8120
10064
  is: "is";
8121
10065
  }>>>;
10066
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
10067
+ single_country: "single_country";
10068
+ regional_combination: "regional_combination";
10069
+ multi_market: "multi_market";
10070
+ }>>>;
10071
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
10072
+ code: z.ZodString;
10073
+ name_zh: z.ZodString;
10074
+ name_en: z.ZodString;
10075
+ region: z.ZodString;
10076
+ }, z.core.$strict>>>;
8122
10077
  }, z.core.$loose>, z.ZodObject<{
8123
10078
  id: z.ZodEnum<{
8124
10079
  recommended: "recommended";
@@ -8221,6 +10176,17 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
8221
10176
  sr: "sr";
8222
10177
  is: "is";
8223
10178
  }>>>;
10179
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
10180
+ single_country: "single_country";
10181
+ regional_combination: "regional_combination";
10182
+ multi_market: "multi_market";
10183
+ }>>>;
10184
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
10185
+ code: z.ZodString;
10186
+ name_zh: z.ZodString;
10187
+ name_en: z.ZodString;
10188
+ region: z.ZodString;
10189
+ }, z.core.$strict>>>;
8224
10190
  }, z.core.$loose>], null>;
8225
10191
  plan: z.ZodOptional<z.ZodNullable<z.ZodObject<{
8226
10192
  lead: z.ZodString;
@@ -8238,12 +10204,108 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
8238
10204
  source_id: z.ZodString;
8239
10205
  field_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
8240
10206
  }, z.core.$strict>>;
8241
- semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodObject<{
8242
- schema_version: z.ZodLiteral<1>;
10207
+ semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
10208
+ database: z.ZodString;
10209
+ country: z.ZodString;
8243
10210
  provider: z.ZodLiteral<"semrush">;
8244
10211
  api_version: z.ZodLiteral<"v4">;
10212
+ fetched_at: z.ZodString;
10213
+ context_hash: z.ZodString;
10214
+ status: z.ZodEnum<{
10215
+ ready: "ready";
10216
+ failed: "failed";
10217
+ disabled: "disabled";
10218
+ empty: "empty";
10219
+ timeout: "timeout";
10220
+ rate_limited: "rate_limited";
10221
+ quota_exhausted: "quota_exhausted";
10222
+ }>;
10223
+ seeds: z.ZodArray<z.ZodObject<{
10224
+ id: z.ZodString;
10225
+ term: z.ZodString;
10226
+ source_type: z.ZodEnum<{
10227
+ step2: "step2";
10228
+ step3: "step3";
10229
+ step5: "step5";
10230
+ }>;
10231
+ source_id: z.ZodString;
10232
+ field_path: z.ZodString;
10233
+ source_field: z.ZodOptional<z.ZodString>;
10234
+ source_evidence: z.ZodOptional<z.ZodString>;
10235
+ business_subject: z.ZodOptional<z.ZodString>;
10236
+ reason: z.ZodOptional<z.ZodString>;
10237
+ }, z.core.$strict>>;
10238
+ intent_groups: z.ZodArray<z.ZodObject<{
10239
+ id: z.ZodString;
10240
+ intent: z.ZodEnum<{
10241
+ INFORMATIONAL: "INFORMATIONAL";
10242
+ NAVIGATIONAL: "NAVIGATIONAL";
10243
+ COMMERCIAL: "COMMERCIAL";
10244
+ TRANSACTIONAL: "TRANSACTIONAL";
10245
+ }>;
10246
+ title: z.ZodString;
10247
+ landing_page_type: z.ZodEnum<{
10248
+ product: "product";
10249
+ category: "category";
10250
+ blog: "blog";
10251
+ landing: "landing";
10252
+ }>;
10253
+ keywords: z.ZodArray<z.ZodObject<{
10254
+ keyword: z.ZodString;
10255
+ normalized_keyword: z.ZodString;
10256
+ intents: z.ZodArray<z.ZodEnum<{
10257
+ INFORMATIONAL: "INFORMATIONAL";
10258
+ NAVIGATIONAL: "NAVIGATIONAL";
10259
+ COMMERCIAL: "COMMERCIAL";
10260
+ TRANSACTIONAL: "TRANSACTIONAL";
10261
+ }>>;
10262
+ search_volume: z.ZodNumber;
10263
+ keyword_difficulty: z.ZodNumber;
10264
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
10265
+ trend: z.ZodArray<z.ZodNumber>;
10266
+ serp_features: z.ZodArray<z.ZodString>;
10267
+ fit: z.ZodObject<{
10268
+ seo: z.ZodNumber;
10269
+ geo: z.ZodNumber;
10270
+ buyer: z.ZodNumber;
10271
+ }, z.core.$strict>;
10272
+ recommended_channel: z.ZodEnum<{
10273
+ SEO: "SEO";
10274
+ GEO: "GEO";
10275
+ DUAL: "DUAL";
10276
+ }>;
10277
+ priority: z.ZodEnum<{
10278
+ P0: "P0";
10279
+ P1: "P1";
10280
+ P2: "P2";
10281
+ P3: "P3";
10282
+ }>;
10283
+ already_in_plan: z.ZodBoolean;
10284
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
10285
+ }, z.core.$strict>>;
10286
+ }, z.core.$strict>>;
10287
+ selection_summary: z.ZodOptional<z.ZodObject<{
10288
+ fetched_count: z.ZodNumber;
10289
+ unique_count: z.ZodNumber;
10290
+ metric_gate_pass_count: z.ZodNumber;
10291
+ commercial_intent_pass_count: z.ZodNumber;
10292
+ fit_pass_count: z.ZodNumber;
10293
+ selected_count: z.ZodNumber;
10294
+ }, z.core.$strict>>;
10295
+ empty_reason_code: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
10296
+ NO_SEEDS: "NO_SEEDS";
10297
+ NO_PROVIDER_CANDIDATES: "NO_PROVIDER_CANDIDATES";
10298
+ NO_METRIC_ELIGIBLE_CANDIDATES: "NO_METRIC_ELIGIBLE_CANDIDATES";
10299
+ NO_COMMERCIAL_INTENT_CANDIDATES: "NO_COMMERCIAL_INTENT_CANDIDATES";
10300
+ NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
10301
+ }>>>;
10302
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
10303
+ schema_version: z.ZodLiteral<1>;
10304
+ }, z.core.$strict>, z.ZodObject<{
8245
10305
  database: z.ZodString;
8246
10306
  country: z.ZodString;
10307
+ provider: z.ZodLiteral<"semrush">;
10308
+ api_version: z.ZodLiteral<"v4">;
8247
10309
  fetched_at: z.ZodString;
8248
10310
  context_hash: z.ZodString;
8249
10311
  status: z.ZodEnum<{
@@ -8335,7 +10397,8 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
8335
10397
  NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
8336
10398
  }>>>;
8337
10399
  error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
8338
- }, z.core.$strict>>>;
10400
+ schema_version: z.ZodLiteral<2>;
10401
+ }, z.core.$strict>], "schema_version">>>;
8339
10402
  seo_payload: z.ZodOptional<z.ZodNullable<z.ZodLazy<z.ZodObject<{
8340
10403
  schema_version: z.ZodLiteral<2>;
8341
10404
  seo_keywords: z.ZodArray<z.ZodObject<{
@@ -8344,9 +10407,9 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
8344
10407
  normalized_keyword: z.ZodString;
8345
10408
  intc: z.ZodEnum<{
8346
10409
  C: "C";
10410
+ T: "T";
8347
10411
  I: "I";
8348
10412
  N: "N";
8349
- T: "T";
8350
10413
  }>;
8351
10414
  keyword_type: z.ZodString;
8352
10415
  intent_strength: z.ZodEnum<{
@@ -8380,6 +10443,26 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
8380
10443
  selected_keywords: z.ZodArray<z.ZodString>;
8381
10444
  }, z.core.$strict>>>;
8382
10445
  }, z.core.$strict>>>>;
10446
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
10447
+ id: z.ZodString;
10448
+ question: z.ZodString;
10449
+ question_type: z.ZodEnum<{
10450
+ category: "category";
10451
+ trust: "trust";
10452
+ selection: "selection";
10453
+ application: "application";
10454
+ parameter: "parameter";
10455
+ cost: "cost";
10456
+ compliance: "compliance";
10457
+ delivery: "delivery";
10458
+ }>;
10459
+ intent_strength: z.ZodEnum<{
10460
+ high: "high";
10461
+ medium: "medium";
10462
+ low: "low";
10463
+ }>;
10464
+ source: z.ZodLiteral<"ai_generation">;
10465
+ }, z.core.$strict>>>;
8383
10466
  generation_status: z.ZodOptional<z.ZodEnum<{
8384
10467
  degraded: "degraded";
8385
10468
  ok: "ok";