@vcp-dev/contracts 0.8.2 → 0.8.4

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<{
@@ -163,6 +187,19 @@ export declare const Step5StrategyPlanSchema: z.ZodObject<{
163
187
  rows: z.ZodArray<z.ZodArray<z.ZodString>>;
164
188
  }, z.core.$strict>;
165
189
  export type Step5StrategyPlan = z.infer<typeof Step5StrategyPlanSchema>;
190
+ export declare const Step5StructureDetailSchema: z.ZodObject<{
191
+ goal: z.ZodString;
192
+ issue: z.ZodString;
193
+ criteria: z.ZodArray<z.ZodString>;
194
+ resources: z.ZodArray<z.ZodString>;
195
+ risks: z.ZodArray<z.ZodString>;
196
+ execution: z.ZodObject<{
197
+ standard: z.ZodArray<z.ZodString>;
198
+ acceptance: z.ZodArray<z.ZodString>;
199
+ downstream: z.ZodArray<z.ZodString>;
200
+ }, z.core.$strict>;
201
+ }, z.core.$strict>;
202
+ export type Step5StructureDetail = z.infer<typeof Step5StructureDetailSchema>;
166
203
  export declare const Step5EvidenceReferenceSchema: z.ZodObject<{
167
204
  source_type: z.ZodEnum<{
168
205
  step2: "step2";
@@ -181,12 +218,20 @@ export declare const Step5SemrushRecommendationStatusSchema: z.ZodEnum<{
181
218
  rate_limited: "rate_limited";
182
219
  quota_exhausted: "quota_exhausted";
183
220
  }>;
221
+ export declare const STEP5_SEMRUSH_SEARCH_INTENTS: readonly ["INFORMATIONAL", "NAVIGATIONAL", "COMMERCIAL", "TRANSACTIONAL"];
184
222
  export declare const Step5SemrushSearchIntentSchema: z.ZodEnum<{
185
223
  INFORMATIONAL: "INFORMATIONAL";
186
224
  NAVIGATIONAL: "NAVIGATIONAL";
187
225
  COMMERCIAL: "COMMERCIAL";
188
226
  TRANSACTIONAL: "TRANSACTIONAL";
189
227
  }>;
228
+ export declare const STEP5_SEO_MIN_SEARCH_VOLUME: 50;
229
+ export declare const STEP5_SEO_MAX_KEYWORD_DIFFICULTY: 60;
230
+ export declare const STEP5_SEO_MIN_FIT: 7;
231
+ export declare const STEP5_SEO_ALLOWED_SEARCH_INTENTS: readonly ["COMMERCIAL", "TRANSACTIONAL"];
232
+ export declare const STEP5_SEO_ALLOWED_INTENT_CODES: readonly ["C", "T"];
233
+ export type Step5SeoAllowedIntentCode = (typeof STEP5_SEO_ALLOWED_INTENT_CODES)[number];
234
+ export declare function isStep5SeoAllowedIntentCode(value: string): value is Step5SeoAllowedIntentCode;
190
235
  export declare const Step5SemrushRecommendationSeedSchema: z.ZodObject<{
191
236
  id: z.ZodString;
192
237
  term: z.ZodString;
@@ -301,12 +346,108 @@ export declare const Step5SemrushSelectionSummarySchema: z.ZodObject<{
301
346
  selected_count: z.ZodNumber;
302
347
  }, z.core.$strict>;
303
348
  export type Step5SemrushSelectionSummary = z.infer<typeof Step5SemrushSelectionSummarySchema>;
304
- export declare const Step5SemrushRecommendationSnapshotSchema: z.ZodObject<{
305
- schema_version: z.ZodLiteral<1>;
349
+ export declare const Step5SemrushRecommendationSnapshotSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
350
+ database: z.ZodString;
351
+ country: z.ZodString;
306
352
  provider: z.ZodLiteral<"semrush">;
307
353
  api_version: z.ZodLiteral<"v4">;
354
+ fetched_at: z.ZodString;
355
+ context_hash: z.ZodString;
356
+ status: z.ZodEnum<{
357
+ ready: "ready";
358
+ failed: "failed";
359
+ disabled: "disabled";
360
+ empty: "empty";
361
+ timeout: "timeout";
362
+ rate_limited: "rate_limited";
363
+ quota_exhausted: "quota_exhausted";
364
+ }>;
365
+ seeds: z.ZodArray<z.ZodObject<{
366
+ id: z.ZodString;
367
+ term: z.ZodString;
368
+ source_type: z.ZodEnum<{
369
+ step2: "step2";
370
+ step3: "step3";
371
+ step5: "step5";
372
+ }>;
373
+ source_id: z.ZodString;
374
+ field_path: z.ZodString;
375
+ source_field: z.ZodOptional<z.ZodString>;
376
+ source_evidence: z.ZodOptional<z.ZodString>;
377
+ business_subject: z.ZodOptional<z.ZodString>;
378
+ reason: z.ZodOptional<z.ZodString>;
379
+ }, z.core.$strict>>;
380
+ intent_groups: z.ZodArray<z.ZodObject<{
381
+ id: z.ZodString;
382
+ intent: z.ZodEnum<{
383
+ INFORMATIONAL: "INFORMATIONAL";
384
+ NAVIGATIONAL: "NAVIGATIONAL";
385
+ COMMERCIAL: "COMMERCIAL";
386
+ TRANSACTIONAL: "TRANSACTIONAL";
387
+ }>;
388
+ title: z.ZodString;
389
+ landing_page_type: z.ZodEnum<{
390
+ product: "product";
391
+ category: "category";
392
+ blog: "blog";
393
+ landing: "landing";
394
+ }>;
395
+ keywords: z.ZodArray<z.ZodObject<{
396
+ keyword: z.ZodString;
397
+ normalized_keyword: z.ZodString;
398
+ intents: z.ZodArray<z.ZodEnum<{
399
+ INFORMATIONAL: "INFORMATIONAL";
400
+ NAVIGATIONAL: "NAVIGATIONAL";
401
+ COMMERCIAL: "COMMERCIAL";
402
+ TRANSACTIONAL: "TRANSACTIONAL";
403
+ }>>;
404
+ search_volume: z.ZodNumber;
405
+ keyword_difficulty: z.ZodNumber;
406
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
407
+ trend: z.ZodArray<z.ZodNumber>;
408
+ serp_features: z.ZodArray<z.ZodString>;
409
+ fit: z.ZodObject<{
410
+ seo: z.ZodNumber;
411
+ geo: z.ZodNumber;
412
+ buyer: z.ZodNumber;
413
+ }, z.core.$strict>;
414
+ recommended_channel: z.ZodEnum<{
415
+ SEO: "SEO";
416
+ GEO: "GEO";
417
+ DUAL: "DUAL";
418
+ }>;
419
+ priority: z.ZodEnum<{
420
+ P0: "P0";
421
+ P1: "P1";
422
+ P2: "P2";
423
+ P3: "P3";
424
+ }>;
425
+ already_in_plan: z.ZodBoolean;
426
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
427
+ }, z.core.$strict>>;
428
+ }, z.core.$strict>>;
429
+ selection_summary: z.ZodOptional<z.ZodObject<{
430
+ fetched_count: z.ZodNumber;
431
+ unique_count: z.ZodNumber;
432
+ metric_gate_pass_count: z.ZodNumber;
433
+ commercial_intent_pass_count: z.ZodNumber;
434
+ fit_pass_count: z.ZodNumber;
435
+ selected_count: z.ZodNumber;
436
+ }, z.core.$strict>>;
437
+ empty_reason_code: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
438
+ NO_SEEDS: "NO_SEEDS";
439
+ NO_PROVIDER_CANDIDATES: "NO_PROVIDER_CANDIDATES";
440
+ NO_METRIC_ELIGIBLE_CANDIDATES: "NO_METRIC_ELIGIBLE_CANDIDATES";
441
+ NO_COMMERCIAL_INTENT_CANDIDATES: "NO_COMMERCIAL_INTENT_CANDIDATES";
442
+ NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
443
+ }>>>;
444
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
445
+ schema_version: z.ZodLiteral<1>;
446
+ }, z.core.$strict>, z.ZodObject<{
308
447
  database: z.ZodString;
309
448
  country: z.ZodString;
449
+ provider: z.ZodLiteral<"semrush">;
450
+ api_version: z.ZodLiteral<"v4">;
310
451
  fetched_at: z.ZodString;
311
452
  context_hash: z.ZodString;
312
453
  status: z.ZodEnum<{
@@ -398,10 +539,11 @@ export declare const Step5SemrushRecommendationSnapshotSchema: z.ZodObject<{
398
539
  NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
399
540
  }>>>;
400
541
  error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
401
- }, z.core.$strict>;
542
+ schema_version: z.ZodLiteral<2>;
543
+ }, z.core.$strict>], "schema_version">;
402
544
  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;
545
+ /** Cloud requires the field; zero disables this non-prototype relevance gate. */
546
+ export declare const STEP5_SEMRUSH_MIN_RELEVANCE_SCORE: 0;
405
547
  /** Browser-safe request for the VCP Semrush keyword candidate proxy. */
406
548
  export declare const Step5SemrushKeywordCandidateSearchRequestSchema: z.ZodObject<{
407
549
  seed_keyword: z.ZodString;
@@ -410,7 +552,7 @@ export declare const Step5SemrushKeywordCandidateSearchRequestSchema: z.ZodObjec
410
552
  offset: z.ZodDefault<z.ZodNumber>;
411
553
  min_search_volume: z.ZodDefault<z.ZodNumber>;
412
554
  max_keyword_difficulty: z.ZodDefault<z.ZodNumber>;
413
- min_relevance_score: z.ZodDefault<z.ZodLiteral<1>>;
555
+ min_relevance_score: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<1>]>>;
414
556
  }, z.core.$strict>;
415
557
  export type Step5SemrushKeywordCandidateSearchRequest = z.infer<typeof Step5SemrushKeywordCandidateSearchRequestSchema>;
416
558
  export declare const Step5SemrushKeywordCandidateSchema: z.ZodObject<{
@@ -546,6 +688,31 @@ export declare const Step5GenerationStatusSchema: z.ZodEnum<{
546
688
  ok: "ok";
547
689
  }>;
548
690
  export type Step5GenerationStatus = z.infer<typeof Step5GenerationStatusSchema>;
691
+ export declare const STEP5_GEO_QUESTION_TYPES: readonly ["category", "selection", "application", "parameter", "cost", "trust", "compliance", "delivery"];
692
+ export declare const Step5GeoQuestionSchema: z.ZodObject<{
693
+ id: z.ZodString;
694
+ question: z.ZodString;
695
+ question_type: z.ZodEnum<{
696
+ category: "category";
697
+ trust: "trust";
698
+ selection: "selection";
699
+ application: "application";
700
+ parameter: "parameter";
701
+ cost: "cost";
702
+ compliance: "compliance";
703
+ delivery: "delivery";
704
+ }>;
705
+ intent_strength: z.ZodEnum<{
706
+ high: "high";
707
+ medium: "medium";
708
+ low: "low";
709
+ }>;
710
+ source: z.ZodEnum<{
711
+ ai_generation: "ai_generation";
712
+ user_input: "user_input";
713
+ }>;
714
+ }, z.core.$strict>;
715
+ export type Step5GeoQuestion = z.infer<typeof Step5GeoQuestionSchema>;
549
716
  /**
550
717
  * 注意这里用 .loose() 而不是 .strict()。
551
718
  *
@@ -676,6 +843,17 @@ export declare const Step5StrategyItemSchema: z.ZodObject<{
676
843
  sr: "sr";
677
844
  is: "is";
678
845
  }>>>;
846
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
847
+ single_country: "single_country";
848
+ regional_combination: "regional_combination";
849
+ multi_market: "multi_market";
850
+ }>>>;
851
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
852
+ code: z.ZodString;
853
+ name_zh: z.ZodString;
854
+ name_en: z.ZodString;
855
+ region: z.ZodString;
856
+ }, z.core.$strict>>>;
679
857
  }, z.core.$loose>, z.ZodObject<{
680
858
  id: z.ZodEnum<{
681
859
  recommended: "recommended";
@@ -778,6 +956,17 @@ export declare const Step5StrategyItemSchema: z.ZodObject<{
778
956
  sr: "sr";
779
957
  is: "is";
780
958
  }>>>;
959
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
960
+ single_country: "single_country";
961
+ regional_combination: "regional_combination";
962
+ multi_market: "multi_market";
963
+ }>>>;
964
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
965
+ code: z.ZodString;
966
+ name_zh: z.ZodString;
967
+ name_en: z.ZodString;
968
+ region: z.ZodString;
969
+ }, z.core.$strict>>>;
781
970
  }, z.core.$loose>, z.ZodObject<{
782
971
  id: z.ZodEnum<{
783
972
  recommended: "recommended";
@@ -880,6 +1069,17 @@ export declare const Step5StrategyItemSchema: z.ZodObject<{
880
1069
  sr: "sr";
881
1070
  is: "is";
882
1071
  }>>>;
1072
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
1073
+ single_country: "single_country";
1074
+ regional_combination: "regional_combination";
1075
+ multi_market: "multi_market";
1076
+ }>>>;
1077
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
1078
+ code: z.ZodString;
1079
+ name_zh: z.ZodString;
1080
+ name_en: z.ZodString;
1081
+ region: z.ZodString;
1082
+ }, z.core.$strict>>>;
883
1083
  }, z.core.$loose>], null>;
884
1084
  plan: z.ZodOptional<z.ZodNullable<z.ZodObject<{
885
1085
  lead: z.ZodString;
@@ -887,6 +1087,18 @@ export declare const Step5StrategyItemSchema: z.ZodObject<{
887
1087
  columns: z.ZodArray<z.ZodString>;
888
1088
  rows: z.ZodArray<z.ZodArray<z.ZodString>>;
889
1089
  }, z.core.$strict>>>;
1090
+ structure_detail: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1091
+ goal: z.ZodString;
1092
+ issue: z.ZodString;
1093
+ criteria: z.ZodArray<z.ZodString>;
1094
+ resources: z.ZodArray<z.ZodString>;
1095
+ risks: z.ZodArray<z.ZodString>;
1096
+ execution: z.ZodObject<{
1097
+ standard: z.ZodArray<z.ZodString>;
1098
+ acceptance: z.ZodArray<z.ZodString>;
1099
+ downstream: z.ZodArray<z.ZodString>;
1100
+ }, z.core.$strict>;
1101
+ }, z.core.$strict>>>;
890
1102
  note_tips: z.ZodArray<z.ZodString>;
891
1103
  note_placeholder: z.ZodString;
892
1104
  evidence_refs: z.ZodArray<z.ZodObject<{
@@ -897,12 +1109,108 @@ export declare const Step5StrategyItemSchema: z.ZodObject<{
897
1109
  source_id: z.ZodString;
898
1110
  field_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
899
1111
  }, z.core.$strict>>;
900
- semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodObject<{
901
- schema_version: z.ZodLiteral<1>;
1112
+ semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
1113
+ database: z.ZodString;
1114
+ country: z.ZodString;
902
1115
  provider: z.ZodLiteral<"semrush">;
903
1116
  api_version: z.ZodLiteral<"v4">;
1117
+ fetched_at: z.ZodString;
1118
+ context_hash: z.ZodString;
1119
+ status: z.ZodEnum<{
1120
+ ready: "ready";
1121
+ failed: "failed";
1122
+ disabled: "disabled";
1123
+ empty: "empty";
1124
+ timeout: "timeout";
1125
+ rate_limited: "rate_limited";
1126
+ quota_exhausted: "quota_exhausted";
1127
+ }>;
1128
+ seeds: z.ZodArray<z.ZodObject<{
1129
+ id: z.ZodString;
1130
+ term: z.ZodString;
1131
+ source_type: z.ZodEnum<{
1132
+ step2: "step2";
1133
+ step3: "step3";
1134
+ step5: "step5";
1135
+ }>;
1136
+ source_id: z.ZodString;
1137
+ field_path: z.ZodString;
1138
+ source_field: z.ZodOptional<z.ZodString>;
1139
+ source_evidence: z.ZodOptional<z.ZodString>;
1140
+ business_subject: z.ZodOptional<z.ZodString>;
1141
+ reason: z.ZodOptional<z.ZodString>;
1142
+ }, z.core.$strict>>;
1143
+ intent_groups: z.ZodArray<z.ZodObject<{
1144
+ id: z.ZodString;
1145
+ intent: z.ZodEnum<{
1146
+ INFORMATIONAL: "INFORMATIONAL";
1147
+ NAVIGATIONAL: "NAVIGATIONAL";
1148
+ COMMERCIAL: "COMMERCIAL";
1149
+ TRANSACTIONAL: "TRANSACTIONAL";
1150
+ }>;
1151
+ title: z.ZodString;
1152
+ landing_page_type: z.ZodEnum<{
1153
+ product: "product";
1154
+ category: "category";
1155
+ blog: "blog";
1156
+ landing: "landing";
1157
+ }>;
1158
+ keywords: z.ZodArray<z.ZodObject<{
1159
+ keyword: z.ZodString;
1160
+ normalized_keyword: z.ZodString;
1161
+ intents: z.ZodArray<z.ZodEnum<{
1162
+ INFORMATIONAL: "INFORMATIONAL";
1163
+ NAVIGATIONAL: "NAVIGATIONAL";
1164
+ COMMERCIAL: "COMMERCIAL";
1165
+ TRANSACTIONAL: "TRANSACTIONAL";
1166
+ }>>;
1167
+ search_volume: z.ZodNumber;
1168
+ keyword_difficulty: z.ZodNumber;
1169
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
1170
+ trend: z.ZodArray<z.ZodNumber>;
1171
+ serp_features: z.ZodArray<z.ZodString>;
1172
+ fit: z.ZodObject<{
1173
+ seo: z.ZodNumber;
1174
+ geo: z.ZodNumber;
1175
+ buyer: z.ZodNumber;
1176
+ }, z.core.$strict>;
1177
+ recommended_channel: z.ZodEnum<{
1178
+ SEO: "SEO";
1179
+ GEO: "GEO";
1180
+ DUAL: "DUAL";
1181
+ }>;
1182
+ priority: z.ZodEnum<{
1183
+ P0: "P0";
1184
+ P1: "P1";
1185
+ P2: "P2";
1186
+ P3: "P3";
1187
+ }>;
1188
+ already_in_plan: z.ZodBoolean;
1189
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1190
+ }, z.core.$strict>>;
1191
+ }, z.core.$strict>>;
1192
+ selection_summary: z.ZodOptional<z.ZodObject<{
1193
+ fetched_count: z.ZodNumber;
1194
+ unique_count: z.ZodNumber;
1195
+ metric_gate_pass_count: z.ZodNumber;
1196
+ commercial_intent_pass_count: z.ZodNumber;
1197
+ fit_pass_count: z.ZodNumber;
1198
+ selected_count: z.ZodNumber;
1199
+ }, z.core.$strict>>;
1200
+ empty_reason_code: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
1201
+ NO_SEEDS: "NO_SEEDS";
1202
+ NO_PROVIDER_CANDIDATES: "NO_PROVIDER_CANDIDATES";
1203
+ NO_METRIC_ELIGIBLE_CANDIDATES: "NO_METRIC_ELIGIBLE_CANDIDATES";
1204
+ NO_COMMERCIAL_INTENT_CANDIDATES: "NO_COMMERCIAL_INTENT_CANDIDATES";
1205
+ NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
1206
+ }>>>;
1207
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1208
+ schema_version: z.ZodLiteral<1>;
1209
+ }, z.core.$strict>, z.ZodObject<{
904
1210
  database: z.ZodString;
905
1211
  country: z.ZodString;
1212
+ provider: z.ZodLiteral<"semrush">;
1213
+ api_version: z.ZodLiteral<"v4">;
906
1214
  fetched_at: z.ZodString;
907
1215
  context_hash: z.ZodString;
908
1216
  status: z.ZodEnum<{
@@ -994,7 +1302,8 @@ export declare const Step5StrategyItemSchema: z.ZodObject<{
994
1302
  NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
995
1303
  }>>>;
996
1304
  error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
997
- }, z.core.$strict>>>;
1305
+ schema_version: z.ZodLiteral<2>;
1306
+ }, z.core.$strict>], "schema_version">>>;
998
1307
  seo_payload: z.ZodOptional<z.ZodNullable<z.ZodLazy<z.ZodObject<{
999
1308
  schema_version: z.ZodLiteral<2>;
1000
1309
  seo_keywords: z.ZodArray<z.ZodObject<{
@@ -1003,9 +1312,9 @@ export declare const Step5StrategyItemSchema: z.ZodObject<{
1003
1312
  normalized_keyword: z.ZodString;
1004
1313
  intc: z.ZodEnum<{
1005
1314
  C: "C";
1315
+ T: "T";
1006
1316
  I: "I";
1007
1317
  N: "N";
1008
- T: "T";
1009
1318
  }>;
1010
1319
  keyword_type: z.ZodString;
1011
1320
  intent_strength: z.ZodEnum<{
@@ -1038,7 +1347,50 @@ export declare const Step5StrategyItemSchema: z.ZodObject<{
1038
1347
  snapshot_id: z.ZodString;
1039
1348
  selected_keywords: z.ZodArray<z.ZodString>;
1040
1349
  }, z.core.$strict>>>;
1350
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
1351
+ id: z.ZodString;
1352
+ question: z.ZodString;
1353
+ question_type: z.ZodEnum<{
1354
+ category: "category";
1355
+ trust: "trust";
1356
+ selection: "selection";
1357
+ application: "application";
1358
+ parameter: "parameter";
1359
+ cost: "cost";
1360
+ compliance: "compliance";
1361
+ delivery: "delivery";
1362
+ }>;
1363
+ intent_strength: z.ZodEnum<{
1364
+ high: "high";
1365
+ medium: "medium";
1366
+ low: "low";
1367
+ }>;
1368
+ source: z.ZodEnum<{
1369
+ ai_generation: "ai_generation";
1370
+ user_input: "user_input";
1371
+ }>;
1372
+ }, z.core.$strict>>>;
1041
1373
  }, z.core.$strict>>>>;
1374
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
1375
+ id: z.ZodString;
1376
+ question: z.ZodString;
1377
+ question_type: z.ZodEnum<{
1378
+ category: "category";
1379
+ trust: "trust";
1380
+ selection: "selection";
1381
+ application: "application";
1382
+ parameter: "parameter";
1383
+ cost: "cost";
1384
+ compliance: "compliance";
1385
+ delivery: "delivery";
1386
+ }>;
1387
+ intent_strength: z.ZodEnum<{
1388
+ high: "high";
1389
+ medium: "medium";
1390
+ low: "low";
1391
+ }>;
1392
+ source: z.ZodLiteral<"ai_generation">;
1393
+ }, z.core.$strict>>>;
1042
1394
  generation_status: z.ZodOptional<z.ZodEnum<{
1043
1395
  degraded: "degraded";
1044
1396
  ok: "ok";
@@ -1053,7 +1405,7 @@ export declare const Step5SeoGeoPlanRowSchema: z.ZodObject<{
1053
1405
  }, z.core.$strict>;
1054
1406
  export type Step5SeoGeoPlanRow = z.infer<typeof Step5SeoGeoPlanRowSchema>;
1055
1407
  export declare const STEP5_SEO_PAYLOAD_SCHEMA_VERSION: 2;
1056
- export declare const STEP5_SEO_KEYWORD_MIN = 1;
1408
+ export declare const STEP5_SEO_KEYWORD_MIN = 0;
1057
1409
  export declare const STEP5_SEO_KEYWORD_DEFAULT = 20;
1058
1410
  export declare const STEP5_SEO_KEYWORD_MAX = 50;
1059
1411
  export declare const Step5LegacySeoKeywordSchema: z.ZodObject<{
@@ -1087,9 +1439,9 @@ export declare const Step5SeoKeywordSchema: z.ZodObject<{
1087
1439
  normalized_keyword: z.ZodString;
1088
1440
  intc: z.ZodEnum<{
1089
1441
  C: "C";
1442
+ T: "T";
1090
1443
  I: "I";
1091
1444
  N: "N";
1092
- T: "T";
1093
1445
  }>;
1094
1446
  keyword_type: z.ZodString;
1095
1447
  intent_strength: z.ZodEnum<{
@@ -1132,9 +1484,9 @@ export declare const Step5SeoPayloadV2Schema: z.ZodObject<{
1132
1484
  normalized_keyword: z.ZodString;
1133
1485
  intc: z.ZodEnum<{
1134
1486
  C: "C";
1487
+ T: "T";
1135
1488
  I: "I";
1136
1489
  N: "N";
1137
- T: "T";
1138
1490
  }>;
1139
1491
  keyword_type: z.ZodString;
1140
1492
  intent_strength: z.ZodEnum<{
@@ -1167,19 +1519,42 @@ export declare const Step5SeoPayloadV2Schema: z.ZodObject<{
1167
1519
  snapshot_id: z.ZodString;
1168
1520
  selected_keywords: z.ZodArray<z.ZodString>;
1169
1521
  }, z.core.$strict>>>;
1170
- }, z.core.$strict>;
1171
- export type Step5SeoPayloadV2 = z.infer<typeof Step5SeoPayloadV2Schema>;
1172
- export declare const Step5SeoPayloadV2InputSchema: z.ZodObject<{
1173
- schema_version: z.ZodLiteral<2>;
1522
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
1523
+ id: z.ZodString;
1524
+ question: z.ZodString;
1525
+ question_type: z.ZodEnum<{
1526
+ category: "category";
1527
+ trust: "trust";
1528
+ selection: "selection";
1529
+ application: "application";
1530
+ parameter: "parameter";
1531
+ cost: "cost";
1532
+ compliance: "compliance";
1533
+ delivery: "delivery";
1534
+ }>;
1535
+ intent_strength: z.ZodEnum<{
1536
+ high: "high";
1537
+ medium: "medium";
1538
+ low: "low";
1539
+ }>;
1540
+ source: z.ZodEnum<{
1541
+ ai_generation: "ai_generation";
1542
+ user_input: "user_input";
1543
+ }>;
1544
+ }, z.core.$strict>>>;
1545
+ }, z.core.$strict>;
1546
+ export type Step5SeoPayloadV2 = z.infer<typeof Step5SeoPayloadV2Schema>;
1547
+ export declare const Step5SeoPayloadV2InputSchema: z.ZodObject<{
1548
+ schema_version: z.ZodLiteral<2>;
1174
1549
  seo_keywords: z.ZodArray<z.ZodObject<{
1175
1550
  id: z.ZodString;
1176
1551
  keyword: z.ZodString;
1177
1552
  normalized_keyword: z.ZodString;
1178
1553
  intc: z.ZodEnum<{
1179
1554
  C: "C";
1555
+ T: "T";
1180
1556
  I: "I";
1181
1557
  N: "N";
1182
- T: "T";
1183
1558
  }>;
1184
1559
  keyword_type: z.ZodString;
1185
1560
  intent_strength: z.ZodEnum<{
@@ -1212,6 +1587,29 @@ export declare const Step5SeoPayloadV2InputSchema: z.ZodObject<{
1212
1587
  snapshot_id: z.ZodString;
1213
1588
  selected_keywords: z.ZodArray<z.ZodString>;
1214
1589
  }, z.core.$strict>>>;
1590
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
1591
+ id: z.ZodString;
1592
+ question: z.ZodString;
1593
+ question_type: z.ZodEnum<{
1594
+ category: "category";
1595
+ trust: "trust";
1596
+ selection: "selection";
1597
+ application: "application";
1598
+ parameter: "parameter";
1599
+ cost: "cost";
1600
+ compliance: "compliance";
1601
+ delivery: "delivery";
1602
+ }>;
1603
+ intent_strength: z.ZodEnum<{
1604
+ high: "high";
1605
+ medium: "medium";
1606
+ low: "low";
1607
+ }>;
1608
+ source: z.ZodEnum<{
1609
+ ai_generation: "ai_generation";
1610
+ user_input: "user_input";
1611
+ }>;
1612
+ }, z.core.$strict>>>;
1215
1613
  }, z.core.$strict>;
1216
1614
  export type Step5SeoPayloadV2Input = z.infer<typeof Step5SeoPayloadV2InputSchema>;
1217
1615
  export declare const Step5LegacyDecisionCustomPayloadSchema: z.ZodObject<{
@@ -1261,9 +1659,9 @@ export declare const Step5DecisionCustomPayloadSchema: z.ZodUnion<readonly [z.Zo
1261
1659
  normalized_keyword: z.ZodString;
1262
1660
  intc: z.ZodEnum<{
1263
1661
  C: "C";
1662
+ T: "T";
1264
1663
  I: "I";
1265
1664
  N: "N";
1266
- T: "T";
1267
1665
  }>;
1268
1666
  keyword_type: z.ZodString;
1269
1667
  intent_strength: z.ZodEnum<{
@@ -1296,6 +1694,29 @@ export declare const Step5DecisionCustomPayloadSchema: z.ZodUnion<readonly [z.Zo
1296
1694
  snapshot_id: z.ZodString;
1297
1695
  selected_keywords: z.ZodArray<z.ZodString>;
1298
1696
  }, z.core.$strict>>>;
1697
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
1698
+ id: z.ZodString;
1699
+ question: z.ZodString;
1700
+ question_type: z.ZodEnum<{
1701
+ category: "category";
1702
+ trust: "trust";
1703
+ selection: "selection";
1704
+ application: "application";
1705
+ parameter: "parameter";
1706
+ cost: "cost";
1707
+ compliance: "compliance";
1708
+ delivery: "delivery";
1709
+ }>;
1710
+ intent_strength: z.ZodEnum<{
1711
+ high: "high";
1712
+ medium: "medium";
1713
+ low: "low";
1714
+ }>;
1715
+ source: z.ZodEnum<{
1716
+ ai_generation: "ai_generation";
1717
+ user_input: "user_input";
1718
+ }>;
1719
+ }, z.core.$strict>>>;
1299
1720
  }, z.core.$strict>, z.ZodObject<{
1300
1721
  rows: z.ZodOptional<z.ZodArray<z.ZodObject<{
1301
1722
  id: z.ZodString;
@@ -1324,9 +1745,9 @@ export declare const Step5DecisionCustomPayloadInputSchema: z.ZodUnion<readonly
1324
1745
  normalized_keyword: z.ZodString;
1325
1746
  intc: z.ZodEnum<{
1326
1747
  C: "C";
1748
+ T: "T";
1327
1749
  I: "I";
1328
1750
  N: "N";
1329
- T: "T";
1330
1751
  }>;
1331
1752
  keyword_type: z.ZodString;
1332
1753
  intent_strength: z.ZodEnum<{
@@ -1359,6 +1780,29 @@ export declare const Step5DecisionCustomPayloadInputSchema: z.ZodUnion<readonly
1359
1780
  snapshot_id: z.ZodString;
1360
1781
  selected_keywords: z.ZodArray<z.ZodString>;
1361
1782
  }, z.core.$strict>>>;
1783
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
1784
+ id: z.ZodString;
1785
+ question: z.ZodString;
1786
+ question_type: z.ZodEnum<{
1787
+ category: "category";
1788
+ trust: "trust";
1789
+ selection: "selection";
1790
+ application: "application";
1791
+ parameter: "parameter";
1792
+ cost: "cost";
1793
+ compliance: "compliance";
1794
+ delivery: "delivery";
1795
+ }>;
1796
+ intent_strength: z.ZodEnum<{
1797
+ high: "high";
1798
+ medium: "medium";
1799
+ low: "low";
1800
+ }>;
1801
+ source: z.ZodEnum<{
1802
+ ai_generation: "ai_generation";
1803
+ user_input: "user_input";
1804
+ }>;
1805
+ }, z.core.$strict>>>;
1362
1806
  }, z.core.$strict>, z.ZodObject<{
1363
1807
  rows: z.ZodOptional<z.ZodArray<z.ZodObject<{
1364
1808
  id: z.ZodString;
@@ -1406,9 +1850,9 @@ export declare const Step5StrategyDecisionInputSchema: z.ZodObject<{
1406
1850
  normalized_keyword: z.ZodString;
1407
1851
  intc: z.ZodEnum<{
1408
1852
  C: "C";
1853
+ T: "T";
1409
1854
  I: "I";
1410
1855
  N: "N";
1411
- T: "T";
1412
1856
  }>;
1413
1857
  keyword_type: z.ZodString;
1414
1858
  intent_strength: z.ZodEnum<{
@@ -1441,6 +1885,29 @@ export declare const Step5StrategyDecisionInputSchema: z.ZodObject<{
1441
1885
  snapshot_id: z.ZodString;
1442
1886
  selected_keywords: z.ZodArray<z.ZodString>;
1443
1887
  }, z.core.$strict>>>;
1888
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
1889
+ id: z.ZodString;
1890
+ question: z.ZodString;
1891
+ question_type: z.ZodEnum<{
1892
+ category: "category";
1893
+ trust: "trust";
1894
+ selection: "selection";
1895
+ application: "application";
1896
+ parameter: "parameter";
1897
+ cost: "cost";
1898
+ compliance: "compliance";
1899
+ delivery: "delivery";
1900
+ }>;
1901
+ intent_strength: z.ZodEnum<{
1902
+ high: "high";
1903
+ medium: "medium";
1904
+ low: "low";
1905
+ }>;
1906
+ source: z.ZodEnum<{
1907
+ ai_generation: "ai_generation";
1908
+ user_input: "user_input";
1909
+ }>;
1910
+ }, z.core.$strict>>>;
1444
1911
  }, z.core.$strict>, z.ZodObject<{
1445
1912
  rows: z.ZodOptional<z.ZodArray<z.ZodObject<{
1446
1913
  id: z.ZodString;
@@ -1495,9 +1962,9 @@ export declare const Step5StrategyDecisionSchema: z.ZodObject<{
1495
1962
  normalized_keyword: z.ZodString;
1496
1963
  intc: z.ZodEnum<{
1497
1964
  C: "C";
1965
+ T: "T";
1498
1966
  I: "I";
1499
1967
  N: "N";
1500
- T: "T";
1501
1968
  }>;
1502
1969
  keyword_type: z.ZodString;
1503
1970
  intent_strength: z.ZodEnum<{
@@ -1530,6 +1997,29 @@ export declare const Step5StrategyDecisionSchema: z.ZodObject<{
1530
1997
  snapshot_id: z.ZodString;
1531
1998
  selected_keywords: z.ZodArray<z.ZodString>;
1532
1999
  }, z.core.$strict>>>;
2000
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
2001
+ id: z.ZodString;
2002
+ question: z.ZodString;
2003
+ question_type: z.ZodEnum<{
2004
+ category: "category";
2005
+ trust: "trust";
2006
+ selection: "selection";
2007
+ application: "application";
2008
+ parameter: "parameter";
2009
+ cost: "cost";
2010
+ compliance: "compliance";
2011
+ delivery: "delivery";
2012
+ }>;
2013
+ intent_strength: z.ZodEnum<{
2014
+ high: "high";
2015
+ medium: "medium";
2016
+ low: "low";
2017
+ }>;
2018
+ source: z.ZodEnum<{
2019
+ ai_generation: "ai_generation";
2020
+ user_input: "user_input";
2021
+ }>;
2022
+ }, z.core.$strict>>>;
1533
2023
  }, z.core.$strict>, z.ZodObject<{
1534
2024
  rows: z.ZodOptional<z.ZodArray<z.ZodObject<{
1535
2025
  id: z.ZodString;
@@ -1549,6 +2039,17 @@ export declare const Step5StrategyDecisionSchema: z.ZodObject<{
1549
2039
  cpc: z.ZodNullable<z.ZodNumber>;
1550
2040
  }, z.core.$strict>>>;
1551
2041
  }, z.core.$strict>]>>;
2042
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
2043
+ single_country: "single_country";
2044
+ regional_combination: "regional_combination";
2045
+ multi_market: "multi_market";
2046
+ }>>>;
2047
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
2048
+ code: z.ZodString;
2049
+ name_zh: z.ZodString;
2050
+ name_en: z.ZodString;
2051
+ region: z.ZodString;
2052
+ }, z.core.$strict>>>;
1552
2053
  selected_value: z.ZodNullable<z.ZodUnknown>;
1553
2054
  accepted_at: z.ZodString;
1554
2055
  }, z.core.$loose>;
@@ -1695,6 +2196,17 @@ export declare const Step5StrategyVersionSnapshotSchema: z.ZodObject<{
1695
2196
  sr: "sr";
1696
2197
  is: "is";
1697
2198
  }>>>;
2199
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
2200
+ single_country: "single_country";
2201
+ regional_combination: "regional_combination";
2202
+ multi_market: "multi_market";
2203
+ }>>>;
2204
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
2205
+ code: z.ZodString;
2206
+ name_zh: z.ZodString;
2207
+ name_en: z.ZodString;
2208
+ region: z.ZodString;
2209
+ }, z.core.$strict>>>;
1698
2210
  }, z.core.$loose>, z.ZodObject<{
1699
2211
  id: z.ZodEnum<{
1700
2212
  recommended: "recommended";
@@ -1797,6 +2309,17 @@ export declare const Step5StrategyVersionSnapshotSchema: z.ZodObject<{
1797
2309
  sr: "sr";
1798
2310
  is: "is";
1799
2311
  }>>>;
2312
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
2313
+ single_country: "single_country";
2314
+ regional_combination: "regional_combination";
2315
+ multi_market: "multi_market";
2316
+ }>>>;
2317
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
2318
+ code: z.ZodString;
2319
+ name_zh: z.ZodString;
2320
+ name_en: z.ZodString;
2321
+ region: z.ZodString;
2322
+ }, z.core.$strict>>>;
1800
2323
  }, z.core.$loose>, z.ZodObject<{
1801
2324
  id: z.ZodEnum<{
1802
2325
  recommended: "recommended";
@@ -1899,6 +2422,17 @@ export declare const Step5StrategyVersionSnapshotSchema: z.ZodObject<{
1899
2422
  sr: "sr";
1900
2423
  is: "is";
1901
2424
  }>>>;
2425
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
2426
+ single_country: "single_country";
2427
+ regional_combination: "regional_combination";
2428
+ multi_market: "multi_market";
2429
+ }>>>;
2430
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
2431
+ code: z.ZodString;
2432
+ name_zh: z.ZodString;
2433
+ name_en: z.ZodString;
2434
+ region: z.ZodString;
2435
+ }, z.core.$strict>>>;
1902
2436
  }, z.core.$loose>], null>;
1903
2437
  plan: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1904
2438
  lead: z.ZodString;
@@ -1906,6 +2440,18 @@ export declare const Step5StrategyVersionSnapshotSchema: z.ZodObject<{
1906
2440
  columns: z.ZodArray<z.ZodString>;
1907
2441
  rows: z.ZodArray<z.ZodArray<z.ZodString>>;
1908
2442
  }, z.core.$strict>>>;
2443
+ structure_detail: z.ZodOptional<z.ZodNullable<z.ZodObject<{
2444
+ goal: z.ZodString;
2445
+ issue: z.ZodString;
2446
+ criteria: z.ZodArray<z.ZodString>;
2447
+ resources: z.ZodArray<z.ZodString>;
2448
+ risks: z.ZodArray<z.ZodString>;
2449
+ execution: z.ZodObject<{
2450
+ standard: z.ZodArray<z.ZodString>;
2451
+ acceptance: z.ZodArray<z.ZodString>;
2452
+ downstream: z.ZodArray<z.ZodString>;
2453
+ }, z.core.$strict>;
2454
+ }, z.core.$strict>>>;
1909
2455
  note_tips: z.ZodArray<z.ZodString>;
1910
2456
  note_placeholder: z.ZodString;
1911
2457
  evidence_refs: z.ZodArray<z.ZodObject<{
@@ -1916,12 +2462,108 @@ export declare const Step5StrategyVersionSnapshotSchema: z.ZodObject<{
1916
2462
  source_id: z.ZodString;
1917
2463
  field_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1918
2464
  }, z.core.$strict>>;
1919
- semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1920
- schema_version: z.ZodLiteral<1>;
2465
+ semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
2466
+ database: z.ZodString;
2467
+ country: z.ZodString;
1921
2468
  provider: z.ZodLiteral<"semrush">;
1922
2469
  api_version: z.ZodLiteral<"v4">;
2470
+ fetched_at: z.ZodString;
2471
+ context_hash: z.ZodString;
2472
+ status: z.ZodEnum<{
2473
+ ready: "ready";
2474
+ failed: "failed";
2475
+ disabled: "disabled";
2476
+ empty: "empty";
2477
+ timeout: "timeout";
2478
+ rate_limited: "rate_limited";
2479
+ quota_exhausted: "quota_exhausted";
2480
+ }>;
2481
+ seeds: z.ZodArray<z.ZodObject<{
2482
+ id: z.ZodString;
2483
+ term: z.ZodString;
2484
+ source_type: z.ZodEnum<{
2485
+ step2: "step2";
2486
+ step3: "step3";
2487
+ step5: "step5";
2488
+ }>;
2489
+ source_id: z.ZodString;
2490
+ field_path: z.ZodString;
2491
+ source_field: z.ZodOptional<z.ZodString>;
2492
+ source_evidence: z.ZodOptional<z.ZodString>;
2493
+ business_subject: z.ZodOptional<z.ZodString>;
2494
+ reason: z.ZodOptional<z.ZodString>;
2495
+ }, z.core.$strict>>;
2496
+ intent_groups: z.ZodArray<z.ZodObject<{
2497
+ id: z.ZodString;
2498
+ intent: z.ZodEnum<{
2499
+ INFORMATIONAL: "INFORMATIONAL";
2500
+ NAVIGATIONAL: "NAVIGATIONAL";
2501
+ COMMERCIAL: "COMMERCIAL";
2502
+ TRANSACTIONAL: "TRANSACTIONAL";
2503
+ }>;
2504
+ title: z.ZodString;
2505
+ landing_page_type: z.ZodEnum<{
2506
+ product: "product";
2507
+ category: "category";
2508
+ blog: "blog";
2509
+ landing: "landing";
2510
+ }>;
2511
+ keywords: z.ZodArray<z.ZodObject<{
2512
+ keyword: z.ZodString;
2513
+ normalized_keyword: z.ZodString;
2514
+ intents: z.ZodArray<z.ZodEnum<{
2515
+ INFORMATIONAL: "INFORMATIONAL";
2516
+ NAVIGATIONAL: "NAVIGATIONAL";
2517
+ COMMERCIAL: "COMMERCIAL";
2518
+ TRANSACTIONAL: "TRANSACTIONAL";
2519
+ }>>;
2520
+ search_volume: z.ZodNumber;
2521
+ keyword_difficulty: z.ZodNumber;
2522
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
2523
+ trend: z.ZodArray<z.ZodNumber>;
2524
+ serp_features: z.ZodArray<z.ZodString>;
2525
+ fit: z.ZodObject<{
2526
+ seo: z.ZodNumber;
2527
+ geo: z.ZodNumber;
2528
+ buyer: z.ZodNumber;
2529
+ }, z.core.$strict>;
2530
+ recommended_channel: z.ZodEnum<{
2531
+ SEO: "SEO";
2532
+ GEO: "GEO";
2533
+ DUAL: "DUAL";
2534
+ }>;
2535
+ priority: z.ZodEnum<{
2536
+ P0: "P0";
2537
+ P1: "P1";
2538
+ P2: "P2";
2539
+ P3: "P3";
2540
+ }>;
2541
+ already_in_plan: z.ZodBoolean;
2542
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
2543
+ }, z.core.$strict>>;
2544
+ }, z.core.$strict>>;
2545
+ selection_summary: z.ZodOptional<z.ZodObject<{
2546
+ fetched_count: z.ZodNumber;
2547
+ unique_count: z.ZodNumber;
2548
+ metric_gate_pass_count: z.ZodNumber;
2549
+ commercial_intent_pass_count: z.ZodNumber;
2550
+ fit_pass_count: z.ZodNumber;
2551
+ selected_count: z.ZodNumber;
2552
+ }, z.core.$strict>>;
2553
+ empty_reason_code: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
2554
+ NO_SEEDS: "NO_SEEDS";
2555
+ NO_PROVIDER_CANDIDATES: "NO_PROVIDER_CANDIDATES";
2556
+ NO_METRIC_ELIGIBLE_CANDIDATES: "NO_METRIC_ELIGIBLE_CANDIDATES";
2557
+ NO_COMMERCIAL_INTENT_CANDIDATES: "NO_COMMERCIAL_INTENT_CANDIDATES";
2558
+ NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
2559
+ }>>>;
2560
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2561
+ schema_version: z.ZodLiteral<1>;
2562
+ }, z.core.$strict>, z.ZodObject<{
1923
2563
  database: z.ZodString;
1924
2564
  country: z.ZodString;
2565
+ provider: z.ZodLiteral<"semrush">;
2566
+ api_version: z.ZodLiteral<"v4">;
1925
2567
  fetched_at: z.ZodString;
1926
2568
  context_hash: z.ZodString;
1927
2569
  status: z.ZodEnum<{
@@ -2013,7 +2655,8 @@ export declare const Step5StrategyVersionSnapshotSchema: z.ZodObject<{
2013
2655
  NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
2014
2656
  }>>>;
2015
2657
  error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2016
- }, z.core.$strict>>>;
2658
+ schema_version: z.ZodLiteral<2>;
2659
+ }, z.core.$strict>], "schema_version">>>;
2017
2660
  seo_payload: z.ZodOptional<z.ZodNullable<z.ZodLazy<z.ZodObject<{
2018
2661
  schema_version: z.ZodLiteral<2>;
2019
2662
  seo_keywords: z.ZodArray<z.ZodObject<{
@@ -2022,9 +2665,9 @@ export declare const Step5StrategyVersionSnapshotSchema: z.ZodObject<{
2022
2665
  normalized_keyword: z.ZodString;
2023
2666
  intc: z.ZodEnum<{
2024
2667
  C: "C";
2668
+ T: "T";
2025
2669
  I: "I";
2026
2670
  N: "N";
2027
- T: "T";
2028
2671
  }>;
2029
2672
  keyword_type: z.ZodString;
2030
2673
  intent_strength: z.ZodEnum<{
@@ -2057,7 +2700,50 @@ export declare const Step5StrategyVersionSnapshotSchema: z.ZodObject<{
2057
2700
  snapshot_id: z.ZodString;
2058
2701
  selected_keywords: z.ZodArray<z.ZodString>;
2059
2702
  }, z.core.$strict>>>;
2703
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
2704
+ id: z.ZodString;
2705
+ question: z.ZodString;
2706
+ question_type: z.ZodEnum<{
2707
+ category: "category";
2708
+ trust: "trust";
2709
+ selection: "selection";
2710
+ application: "application";
2711
+ parameter: "parameter";
2712
+ cost: "cost";
2713
+ compliance: "compliance";
2714
+ delivery: "delivery";
2715
+ }>;
2716
+ intent_strength: z.ZodEnum<{
2717
+ high: "high";
2718
+ medium: "medium";
2719
+ low: "low";
2720
+ }>;
2721
+ source: z.ZodEnum<{
2722
+ ai_generation: "ai_generation";
2723
+ user_input: "user_input";
2724
+ }>;
2725
+ }, z.core.$strict>>>;
2060
2726
  }, z.core.$strict>>>>;
2727
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
2728
+ id: z.ZodString;
2729
+ question: z.ZodString;
2730
+ question_type: z.ZodEnum<{
2731
+ category: "category";
2732
+ trust: "trust";
2733
+ selection: "selection";
2734
+ application: "application";
2735
+ parameter: "parameter";
2736
+ cost: "cost";
2737
+ compliance: "compliance";
2738
+ delivery: "delivery";
2739
+ }>;
2740
+ intent_strength: z.ZodEnum<{
2741
+ high: "high";
2742
+ medium: "medium";
2743
+ low: "low";
2744
+ }>;
2745
+ source: z.ZodLiteral<"ai_generation">;
2746
+ }, z.core.$strict>>>;
2061
2747
  generation_status: z.ZodOptional<z.ZodEnum<{
2062
2748
  degraded: "degraded";
2063
2749
  ok: "ok";
@@ -2091,9 +2777,9 @@ export declare const Step5StrategyVersionSnapshotSchema: z.ZodObject<{
2091
2777
  normalized_keyword: z.ZodString;
2092
2778
  intc: z.ZodEnum<{
2093
2779
  C: "C";
2780
+ T: "T";
2094
2781
  I: "I";
2095
2782
  N: "N";
2096
- T: "T";
2097
2783
  }>;
2098
2784
  keyword_type: z.ZodString;
2099
2785
  intent_strength: z.ZodEnum<{
@@ -2126,6 +2812,29 @@ export declare const Step5StrategyVersionSnapshotSchema: z.ZodObject<{
2126
2812
  snapshot_id: z.ZodString;
2127
2813
  selected_keywords: z.ZodArray<z.ZodString>;
2128
2814
  }, z.core.$strict>>>;
2815
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
2816
+ id: z.ZodString;
2817
+ question: z.ZodString;
2818
+ question_type: z.ZodEnum<{
2819
+ category: "category";
2820
+ trust: "trust";
2821
+ selection: "selection";
2822
+ application: "application";
2823
+ parameter: "parameter";
2824
+ cost: "cost";
2825
+ compliance: "compliance";
2826
+ delivery: "delivery";
2827
+ }>;
2828
+ intent_strength: z.ZodEnum<{
2829
+ high: "high";
2830
+ medium: "medium";
2831
+ low: "low";
2832
+ }>;
2833
+ source: z.ZodEnum<{
2834
+ ai_generation: "ai_generation";
2835
+ user_input: "user_input";
2836
+ }>;
2837
+ }, z.core.$strict>>>;
2129
2838
  }, z.core.$strict>, z.ZodObject<{
2130
2839
  rows: z.ZodOptional<z.ZodArray<z.ZodObject<{
2131
2840
  id: z.ZodString;
@@ -2145,6 +2854,17 @@ export declare const Step5StrategyVersionSnapshotSchema: z.ZodObject<{
2145
2854
  cpc: z.ZodNullable<z.ZodNumber>;
2146
2855
  }, z.core.$strict>>>;
2147
2856
  }, z.core.$strict>]>>;
2857
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
2858
+ single_country: "single_country";
2859
+ regional_combination: "regional_combination";
2860
+ multi_market: "multi_market";
2861
+ }>>>;
2862
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
2863
+ code: z.ZodString;
2864
+ name_zh: z.ZodString;
2865
+ name_en: z.ZodString;
2866
+ region: z.ZodString;
2867
+ }, z.core.$strict>>>;
2148
2868
  selected_value: z.ZodNullable<z.ZodUnknown>;
2149
2869
  accepted_at: z.ZodString;
2150
2870
  }, z.core.$loose>>;
@@ -2302,6 +3022,17 @@ export declare const Step5CommittedVersionSchema: z.ZodObject<{
2302
3022
  sr: "sr";
2303
3023
  is: "is";
2304
3024
  }>>>;
3025
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
3026
+ single_country: "single_country";
3027
+ regional_combination: "regional_combination";
3028
+ multi_market: "multi_market";
3029
+ }>>>;
3030
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
3031
+ code: z.ZodString;
3032
+ name_zh: z.ZodString;
3033
+ name_en: z.ZodString;
3034
+ region: z.ZodString;
3035
+ }, z.core.$strict>>>;
2305
3036
  }, z.core.$loose>, z.ZodObject<{
2306
3037
  id: z.ZodEnum<{
2307
3038
  recommended: "recommended";
@@ -2404,6 +3135,17 @@ export declare const Step5CommittedVersionSchema: z.ZodObject<{
2404
3135
  sr: "sr";
2405
3136
  is: "is";
2406
3137
  }>>>;
3138
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
3139
+ single_country: "single_country";
3140
+ regional_combination: "regional_combination";
3141
+ multi_market: "multi_market";
3142
+ }>>>;
3143
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
3144
+ code: z.ZodString;
3145
+ name_zh: z.ZodString;
3146
+ name_en: z.ZodString;
3147
+ region: z.ZodString;
3148
+ }, z.core.$strict>>>;
2407
3149
  }, z.core.$loose>, z.ZodObject<{
2408
3150
  id: z.ZodEnum<{
2409
3151
  recommended: "recommended";
@@ -2506,6 +3248,17 @@ export declare const Step5CommittedVersionSchema: z.ZodObject<{
2506
3248
  sr: "sr";
2507
3249
  is: "is";
2508
3250
  }>>>;
3251
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
3252
+ single_country: "single_country";
3253
+ regional_combination: "regional_combination";
3254
+ multi_market: "multi_market";
3255
+ }>>>;
3256
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
3257
+ code: z.ZodString;
3258
+ name_zh: z.ZodString;
3259
+ name_en: z.ZodString;
3260
+ region: z.ZodString;
3261
+ }, z.core.$strict>>>;
2509
3262
  }, z.core.$loose>], null>;
2510
3263
  plan: z.ZodOptional<z.ZodNullable<z.ZodObject<{
2511
3264
  lead: z.ZodString;
@@ -2513,6 +3266,18 @@ export declare const Step5CommittedVersionSchema: z.ZodObject<{
2513
3266
  columns: z.ZodArray<z.ZodString>;
2514
3267
  rows: z.ZodArray<z.ZodArray<z.ZodString>>;
2515
3268
  }, z.core.$strict>>>;
3269
+ structure_detail: z.ZodOptional<z.ZodNullable<z.ZodObject<{
3270
+ goal: z.ZodString;
3271
+ issue: z.ZodString;
3272
+ criteria: z.ZodArray<z.ZodString>;
3273
+ resources: z.ZodArray<z.ZodString>;
3274
+ risks: z.ZodArray<z.ZodString>;
3275
+ execution: z.ZodObject<{
3276
+ standard: z.ZodArray<z.ZodString>;
3277
+ acceptance: z.ZodArray<z.ZodString>;
3278
+ downstream: z.ZodArray<z.ZodString>;
3279
+ }, z.core.$strict>;
3280
+ }, z.core.$strict>>>;
2516
3281
  note_tips: z.ZodArray<z.ZodString>;
2517
3282
  note_placeholder: z.ZodString;
2518
3283
  evidence_refs: z.ZodArray<z.ZodObject<{
@@ -2523,12 +3288,11 @@ export declare const Step5CommittedVersionSchema: z.ZodObject<{
2523
3288
  source_id: z.ZodString;
2524
3289
  field_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2525
3290
  }, z.core.$strict>>;
2526
- semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodObject<{
2527
- schema_version: z.ZodLiteral<1>;
2528
- provider: z.ZodLiteral<"semrush">;
2529
- api_version: z.ZodLiteral<"v4">;
3291
+ semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
2530
3292
  database: z.ZodString;
2531
3293
  country: z.ZodString;
3294
+ provider: z.ZodLiteral<"semrush">;
3295
+ api_version: z.ZodLiteral<"v4">;
2532
3296
  fetched_at: z.ZodString;
2533
3297
  context_hash: z.ZodString;
2534
3298
  status: z.ZodEnum<{
@@ -2620,21 +3384,119 @@ export declare const Step5CommittedVersionSchema: z.ZodObject<{
2620
3384
  NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
2621
3385
  }>>>;
2622
3386
  error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2623
- }, z.core.$strict>>>;
2624
- seo_payload: z.ZodOptional<z.ZodNullable<z.ZodLazy<z.ZodObject<{
2625
- schema_version: z.ZodLiteral<2>;
2626
- seo_keywords: z.ZodArray<z.ZodObject<{
2627
- id: z.ZodString;
2628
- keyword: z.ZodString;
2629
- normalized_keyword: z.ZodString;
2630
- intc: z.ZodEnum<{
2631
- C: "C";
2632
- I: "I";
2633
- N: "N";
2634
- T: "T";
2635
- }>;
2636
- keyword_type: z.ZodString;
2637
- intent_strength: z.ZodEnum<{
3387
+ schema_version: z.ZodLiteral<1>;
3388
+ }, z.core.$strict>, z.ZodObject<{
3389
+ database: z.ZodString;
3390
+ country: z.ZodString;
3391
+ provider: z.ZodLiteral<"semrush">;
3392
+ api_version: z.ZodLiteral<"v4">;
3393
+ fetched_at: z.ZodString;
3394
+ context_hash: z.ZodString;
3395
+ status: z.ZodEnum<{
3396
+ ready: "ready";
3397
+ failed: "failed";
3398
+ disabled: "disabled";
3399
+ empty: "empty";
3400
+ timeout: "timeout";
3401
+ rate_limited: "rate_limited";
3402
+ quota_exhausted: "quota_exhausted";
3403
+ }>;
3404
+ seeds: z.ZodArray<z.ZodObject<{
3405
+ id: z.ZodString;
3406
+ term: z.ZodString;
3407
+ source_type: z.ZodEnum<{
3408
+ step2: "step2";
3409
+ step3: "step3";
3410
+ step5: "step5";
3411
+ }>;
3412
+ source_id: z.ZodString;
3413
+ field_path: z.ZodString;
3414
+ source_field: z.ZodOptional<z.ZodString>;
3415
+ source_evidence: z.ZodOptional<z.ZodString>;
3416
+ business_subject: z.ZodOptional<z.ZodString>;
3417
+ reason: z.ZodOptional<z.ZodString>;
3418
+ }, z.core.$strict>>;
3419
+ intent_groups: z.ZodArray<z.ZodObject<{
3420
+ id: z.ZodString;
3421
+ intent: z.ZodEnum<{
3422
+ INFORMATIONAL: "INFORMATIONAL";
3423
+ NAVIGATIONAL: "NAVIGATIONAL";
3424
+ COMMERCIAL: "COMMERCIAL";
3425
+ TRANSACTIONAL: "TRANSACTIONAL";
3426
+ }>;
3427
+ title: z.ZodString;
3428
+ landing_page_type: z.ZodEnum<{
3429
+ product: "product";
3430
+ category: "category";
3431
+ blog: "blog";
3432
+ landing: "landing";
3433
+ }>;
3434
+ keywords: z.ZodArray<z.ZodObject<{
3435
+ keyword: z.ZodString;
3436
+ normalized_keyword: z.ZodString;
3437
+ intents: z.ZodArray<z.ZodEnum<{
3438
+ INFORMATIONAL: "INFORMATIONAL";
3439
+ NAVIGATIONAL: "NAVIGATIONAL";
3440
+ COMMERCIAL: "COMMERCIAL";
3441
+ TRANSACTIONAL: "TRANSACTIONAL";
3442
+ }>>;
3443
+ search_volume: z.ZodNumber;
3444
+ keyword_difficulty: z.ZodNumber;
3445
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
3446
+ trend: z.ZodArray<z.ZodNumber>;
3447
+ serp_features: z.ZodArray<z.ZodString>;
3448
+ fit: z.ZodObject<{
3449
+ seo: z.ZodNumber;
3450
+ geo: z.ZodNumber;
3451
+ buyer: z.ZodNumber;
3452
+ }, z.core.$strict>;
3453
+ recommended_channel: z.ZodEnum<{
3454
+ SEO: "SEO";
3455
+ GEO: "GEO";
3456
+ DUAL: "DUAL";
3457
+ }>;
3458
+ priority: z.ZodEnum<{
3459
+ P0: "P0";
3460
+ P1: "P1";
3461
+ P2: "P2";
3462
+ P3: "P3";
3463
+ }>;
3464
+ already_in_plan: z.ZodBoolean;
3465
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
3466
+ }, z.core.$strict>>;
3467
+ }, z.core.$strict>>;
3468
+ selection_summary: z.ZodOptional<z.ZodObject<{
3469
+ fetched_count: z.ZodNumber;
3470
+ unique_count: z.ZodNumber;
3471
+ metric_gate_pass_count: z.ZodNumber;
3472
+ commercial_intent_pass_count: z.ZodNumber;
3473
+ fit_pass_count: z.ZodNumber;
3474
+ selected_count: z.ZodNumber;
3475
+ }, z.core.$strict>>;
3476
+ empty_reason_code: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
3477
+ NO_SEEDS: "NO_SEEDS";
3478
+ NO_PROVIDER_CANDIDATES: "NO_PROVIDER_CANDIDATES";
3479
+ NO_METRIC_ELIGIBLE_CANDIDATES: "NO_METRIC_ELIGIBLE_CANDIDATES";
3480
+ NO_COMMERCIAL_INTENT_CANDIDATES: "NO_COMMERCIAL_INTENT_CANDIDATES";
3481
+ NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
3482
+ }>>>;
3483
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
3484
+ schema_version: z.ZodLiteral<2>;
3485
+ }, z.core.$strict>], "schema_version">>>;
3486
+ seo_payload: z.ZodOptional<z.ZodNullable<z.ZodLazy<z.ZodObject<{
3487
+ schema_version: z.ZodLiteral<2>;
3488
+ seo_keywords: z.ZodArray<z.ZodObject<{
3489
+ id: z.ZodString;
3490
+ keyword: z.ZodString;
3491
+ normalized_keyword: z.ZodString;
3492
+ intc: z.ZodEnum<{
3493
+ C: "C";
3494
+ T: "T";
3495
+ I: "I";
3496
+ N: "N";
3497
+ }>;
3498
+ keyword_type: z.ZodString;
3499
+ intent_strength: z.ZodEnum<{
2638
3500
  high: "high";
2639
3501
  medium: "medium";
2640
3502
  low: "low";
@@ -2664,7 +3526,50 @@ export declare const Step5CommittedVersionSchema: z.ZodObject<{
2664
3526
  snapshot_id: z.ZodString;
2665
3527
  selected_keywords: z.ZodArray<z.ZodString>;
2666
3528
  }, z.core.$strict>>>;
3529
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
3530
+ id: z.ZodString;
3531
+ question: z.ZodString;
3532
+ question_type: z.ZodEnum<{
3533
+ category: "category";
3534
+ trust: "trust";
3535
+ selection: "selection";
3536
+ application: "application";
3537
+ parameter: "parameter";
3538
+ cost: "cost";
3539
+ compliance: "compliance";
3540
+ delivery: "delivery";
3541
+ }>;
3542
+ intent_strength: z.ZodEnum<{
3543
+ high: "high";
3544
+ medium: "medium";
3545
+ low: "low";
3546
+ }>;
3547
+ source: z.ZodEnum<{
3548
+ ai_generation: "ai_generation";
3549
+ user_input: "user_input";
3550
+ }>;
3551
+ }, z.core.$strict>>>;
2667
3552
  }, z.core.$strict>>>>;
3553
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
3554
+ id: z.ZodString;
3555
+ question: z.ZodString;
3556
+ question_type: z.ZodEnum<{
3557
+ category: "category";
3558
+ trust: "trust";
3559
+ selection: "selection";
3560
+ application: "application";
3561
+ parameter: "parameter";
3562
+ cost: "cost";
3563
+ compliance: "compliance";
3564
+ delivery: "delivery";
3565
+ }>;
3566
+ intent_strength: z.ZodEnum<{
3567
+ high: "high";
3568
+ medium: "medium";
3569
+ low: "low";
3570
+ }>;
3571
+ source: z.ZodLiteral<"ai_generation">;
3572
+ }, z.core.$strict>>>;
2668
3573
  generation_status: z.ZodOptional<z.ZodEnum<{
2669
3574
  degraded: "degraded";
2670
3575
  ok: "ok";
@@ -2698,9 +3603,9 @@ export declare const Step5CommittedVersionSchema: z.ZodObject<{
2698
3603
  normalized_keyword: z.ZodString;
2699
3604
  intc: z.ZodEnum<{
2700
3605
  C: "C";
3606
+ T: "T";
2701
3607
  I: "I";
2702
3608
  N: "N";
2703
- T: "T";
2704
3609
  }>;
2705
3610
  keyword_type: z.ZodString;
2706
3611
  intent_strength: z.ZodEnum<{
@@ -2733,6 +3638,29 @@ export declare const Step5CommittedVersionSchema: z.ZodObject<{
2733
3638
  snapshot_id: z.ZodString;
2734
3639
  selected_keywords: z.ZodArray<z.ZodString>;
2735
3640
  }, z.core.$strict>>>;
3641
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
3642
+ id: z.ZodString;
3643
+ question: z.ZodString;
3644
+ question_type: z.ZodEnum<{
3645
+ category: "category";
3646
+ trust: "trust";
3647
+ selection: "selection";
3648
+ application: "application";
3649
+ parameter: "parameter";
3650
+ cost: "cost";
3651
+ compliance: "compliance";
3652
+ delivery: "delivery";
3653
+ }>;
3654
+ intent_strength: z.ZodEnum<{
3655
+ high: "high";
3656
+ medium: "medium";
3657
+ low: "low";
3658
+ }>;
3659
+ source: z.ZodEnum<{
3660
+ ai_generation: "ai_generation";
3661
+ user_input: "user_input";
3662
+ }>;
3663
+ }, z.core.$strict>>>;
2736
3664
  }, z.core.$strict>, z.ZodObject<{
2737
3665
  rows: z.ZodOptional<z.ZodArray<z.ZodObject<{
2738
3666
  id: z.ZodString;
@@ -2752,6 +3680,17 @@ export declare const Step5CommittedVersionSchema: z.ZodObject<{
2752
3680
  cpc: z.ZodNullable<z.ZodNumber>;
2753
3681
  }, z.core.$strict>>>;
2754
3682
  }, z.core.$strict>]>>;
3683
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
3684
+ single_country: "single_country";
3685
+ regional_combination: "regional_combination";
3686
+ multi_market: "multi_market";
3687
+ }>>>;
3688
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
3689
+ code: z.ZodString;
3690
+ name_zh: z.ZodString;
3691
+ name_en: z.ZodString;
3692
+ region: z.ZodString;
3693
+ }, z.core.$strict>>>;
2755
3694
  selected_value: z.ZodNullable<z.ZodUnknown>;
2756
3695
  accepted_at: z.ZodString;
2757
3696
  }, z.core.$loose>>;
@@ -2900,6 +3839,17 @@ export declare const Step5StrategyJobSchema: z.ZodObject<{
2900
3839
  sr: "sr";
2901
3840
  is: "is";
2902
3841
  }>>>;
3842
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
3843
+ single_country: "single_country";
3844
+ regional_combination: "regional_combination";
3845
+ multi_market: "multi_market";
3846
+ }>>>;
3847
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
3848
+ code: z.ZodString;
3849
+ name_zh: z.ZodString;
3850
+ name_en: z.ZodString;
3851
+ region: z.ZodString;
3852
+ }, z.core.$strict>>>;
2903
3853
  }, z.core.$loose>, z.ZodObject<{
2904
3854
  id: z.ZodEnum<{
2905
3855
  recommended: "recommended";
@@ -3002,6 +3952,17 @@ export declare const Step5StrategyJobSchema: z.ZodObject<{
3002
3952
  sr: "sr";
3003
3953
  is: "is";
3004
3954
  }>>>;
3955
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
3956
+ single_country: "single_country";
3957
+ regional_combination: "regional_combination";
3958
+ multi_market: "multi_market";
3959
+ }>>>;
3960
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
3961
+ code: z.ZodString;
3962
+ name_zh: z.ZodString;
3963
+ name_en: z.ZodString;
3964
+ region: z.ZodString;
3965
+ }, z.core.$strict>>>;
3005
3966
  }, z.core.$loose>, z.ZodObject<{
3006
3967
  id: z.ZodEnum<{
3007
3968
  recommended: "recommended";
@@ -3104,6 +4065,17 @@ export declare const Step5StrategyJobSchema: z.ZodObject<{
3104
4065
  sr: "sr";
3105
4066
  is: "is";
3106
4067
  }>>>;
4068
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
4069
+ single_country: "single_country";
4070
+ regional_combination: "regional_combination";
4071
+ multi_market: "multi_market";
4072
+ }>>>;
4073
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
4074
+ code: z.ZodString;
4075
+ name_zh: z.ZodString;
4076
+ name_en: z.ZodString;
4077
+ region: z.ZodString;
4078
+ }, z.core.$strict>>>;
3107
4079
  }, z.core.$loose>], null>;
3108
4080
  plan: z.ZodOptional<z.ZodNullable<z.ZodObject<{
3109
4081
  lead: z.ZodString;
@@ -3111,6 +4083,18 @@ export declare const Step5StrategyJobSchema: z.ZodObject<{
3111
4083
  columns: z.ZodArray<z.ZodString>;
3112
4084
  rows: z.ZodArray<z.ZodArray<z.ZodString>>;
3113
4085
  }, z.core.$strict>>>;
4086
+ structure_detail: z.ZodOptional<z.ZodNullable<z.ZodObject<{
4087
+ goal: z.ZodString;
4088
+ issue: z.ZodString;
4089
+ criteria: z.ZodArray<z.ZodString>;
4090
+ resources: z.ZodArray<z.ZodString>;
4091
+ risks: z.ZodArray<z.ZodString>;
4092
+ execution: z.ZodObject<{
4093
+ standard: z.ZodArray<z.ZodString>;
4094
+ acceptance: z.ZodArray<z.ZodString>;
4095
+ downstream: z.ZodArray<z.ZodString>;
4096
+ }, z.core.$strict>;
4097
+ }, z.core.$strict>>>;
3114
4098
  note_tips: z.ZodArray<z.ZodString>;
3115
4099
  note_placeholder: z.ZodString;
3116
4100
  evidence_refs: z.ZodArray<z.ZodObject<{
@@ -3121,12 +4105,108 @@ export declare const Step5StrategyJobSchema: z.ZodObject<{
3121
4105
  source_id: z.ZodString;
3122
4106
  field_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
3123
4107
  }, z.core.$strict>>;
3124
- semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodObject<{
3125
- schema_version: z.ZodLiteral<1>;
4108
+ semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
4109
+ database: z.ZodString;
4110
+ country: z.ZodString;
3126
4111
  provider: z.ZodLiteral<"semrush">;
3127
4112
  api_version: z.ZodLiteral<"v4">;
4113
+ fetched_at: z.ZodString;
4114
+ context_hash: z.ZodString;
4115
+ status: z.ZodEnum<{
4116
+ ready: "ready";
4117
+ failed: "failed";
4118
+ disabled: "disabled";
4119
+ empty: "empty";
4120
+ timeout: "timeout";
4121
+ rate_limited: "rate_limited";
4122
+ quota_exhausted: "quota_exhausted";
4123
+ }>;
4124
+ seeds: z.ZodArray<z.ZodObject<{
4125
+ id: z.ZodString;
4126
+ term: z.ZodString;
4127
+ source_type: z.ZodEnum<{
4128
+ step2: "step2";
4129
+ step3: "step3";
4130
+ step5: "step5";
4131
+ }>;
4132
+ source_id: z.ZodString;
4133
+ field_path: z.ZodString;
4134
+ source_field: z.ZodOptional<z.ZodString>;
4135
+ source_evidence: z.ZodOptional<z.ZodString>;
4136
+ business_subject: z.ZodOptional<z.ZodString>;
4137
+ reason: z.ZodOptional<z.ZodString>;
4138
+ }, z.core.$strict>>;
4139
+ intent_groups: z.ZodArray<z.ZodObject<{
4140
+ id: z.ZodString;
4141
+ intent: z.ZodEnum<{
4142
+ INFORMATIONAL: "INFORMATIONAL";
4143
+ NAVIGATIONAL: "NAVIGATIONAL";
4144
+ COMMERCIAL: "COMMERCIAL";
4145
+ TRANSACTIONAL: "TRANSACTIONAL";
4146
+ }>;
4147
+ title: z.ZodString;
4148
+ landing_page_type: z.ZodEnum<{
4149
+ product: "product";
4150
+ category: "category";
4151
+ blog: "blog";
4152
+ landing: "landing";
4153
+ }>;
4154
+ keywords: z.ZodArray<z.ZodObject<{
4155
+ keyword: z.ZodString;
4156
+ normalized_keyword: z.ZodString;
4157
+ intents: z.ZodArray<z.ZodEnum<{
4158
+ INFORMATIONAL: "INFORMATIONAL";
4159
+ NAVIGATIONAL: "NAVIGATIONAL";
4160
+ COMMERCIAL: "COMMERCIAL";
4161
+ TRANSACTIONAL: "TRANSACTIONAL";
4162
+ }>>;
4163
+ search_volume: z.ZodNumber;
4164
+ keyword_difficulty: z.ZodNumber;
4165
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
4166
+ trend: z.ZodArray<z.ZodNumber>;
4167
+ serp_features: z.ZodArray<z.ZodString>;
4168
+ fit: z.ZodObject<{
4169
+ seo: z.ZodNumber;
4170
+ geo: z.ZodNumber;
4171
+ buyer: z.ZodNumber;
4172
+ }, z.core.$strict>;
4173
+ recommended_channel: z.ZodEnum<{
4174
+ SEO: "SEO";
4175
+ GEO: "GEO";
4176
+ DUAL: "DUAL";
4177
+ }>;
4178
+ priority: z.ZodEnum<{
4179
+ P0: "P0";
4180
+ P1: "P1";
4181
+ P2: "P2";
4182
+ P3: "P3";
4183
+ }>;
4184
+ already_in_plan: z.ZodBoolean;
4185
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
4186
+ }, z.core.$strict>>;
4187
+ }, z.core.$strict>>;
4188
+ selection_summary: z.ZodOptional<z.ZodObject<{
4189
+ fetched_count: z.ZodNumber;
4190
+ unique_count: z.ZodNumber;
4191
+ metric_gate_pass_count: z.ZodNumber;
4192
+ commercial_intent_pass_count: z.ZodNumber;
4193
+ fit_pass_count: z.ZodNumber;
4194
+ selected_count: z.ZodNumber;
4195
+ }, z.core.$strict>>;
4196
+ empty_reason_code: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
4197
+ NO_SEEDS: "NO_SEEDS";
4198
+ NO_PROVIDER_CANDIDATES: "NO_PROVIDER_CANDIDATES";
4199
+ NO_METRIC_ELIGIBLE_CANDIDATES: "NO_METRIC_ELIGIBLE_CANDIDATES";
4200
+ NO_COMMERCIAL_INTENT_CANDIDATES: "NO_COMMERCIAL_INTENT_CANDIDATES";
4201
+ NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
4202
+ }>>>;
4203
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
4204
+ schema_version: z.ZodLiteral<1>;
4205
+ }, z.core.$strict>, z.ZodObject<{
3128
4206
  database: z.ZodString;
3129
4207
  country: z.ZodString;
4208
+ provider: z.ZodLiteral<"semrush">;
4209
+ api_version: z.ZodLiteral<"v4">;
3130
4210
  fetched_at: z.ZodString;
3131
4211
  context_hash: z.ZodString;
3132
4212
  status: z.ZodEnum<{
@@ -3218,7 +4298,8 @@ export declare const Step5StrategyJobSchema: z.ZodObject<{
3218
4298
  NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
3219
4299
  }>>>;
3220
4300
  error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
3221
- }, z.core.$strict>>>;
4301
+ schema_version: z.ZodLiteral<2>;
4302
+ }, z.core.$strict>], "schema_version">>>;
3222
4303
  seo_payload: z.ZodOptional<z.ZodNullable<z.ZodLazy<z.ZodObject<{
3223
4304
  schema_version: z.ZodLiteral<2>;
3224
4305
  seo_keywords: z.ZodArray<z.ZodObject<{
@@ -3227,9 +4308,9 @@ export declare const Step5StrategyJobSchema: z.ZodObject<{
3227
4308
  normalized_keyword: z.ZodString;
3228
4309
  intc: z.ZodEnum<{
3229
4310
  C: "C";
4311
+ T: "T";
3230
4312
  I: "I";
3231
4313
  N: "N";
3232
- T: "T";
3233
4314
  }>;
3234
4315
  keyword_type: z.ZodString;
3235
4316
  intent_strength: z.ZodEnum<{
@@ -3262,7 +4343,50 @@ export declare const Step5StrategyJobSchema: z.ZodObject<{
3262
4343
  snapshot_id: z.ZodString;
3263
4344
  selected_keywords: z.ZodArray<z.ZodString>;
3264
4345
  }, z.core.$strict>>>;
4346
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
4347
+ id: z.ZodString;
4348
+ question: z.ZodString;
4349
+ question_type: z.ZodEnum<{
4350
+ category: "category";
4351
+ trust: "trust";
4352
+ selection: "selection";
4353
+ application: "application";
4354
+ parameter: "parameter";
4355
+ cost: "cost";
4356
+ compliance: "compliance";
4357
+ delivery: "delivery";
4358
+ }>;
4359
+ intent_strength: z.ZodEnum<{
4360
+ high: "high";
4361
+ medium: "medium";
4362
+ low: "low";
4363
+ }>;
4364
+ source: z.ZodEnum<{
4365
+ ai_generation: "ai_generation";
4366
+ user_input: "user_input";
4367
+ }>;
4368
+ }, z.core.$strict>>>;
3265
4369
  }, z.core.$strict>>>>;
4370
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
4371
+ id: z.ZodString;
4372
+ question: z.ZodString;
4373
+ question_type: z.ZodEnum<{
4374
+ category: "category";
4375
+ trust: "trust";
4376
+ selection: "selection";
4377
+ application: "application";
4378
+ parameter: "parameter";
4379
+ cost: "cost";
4380
+ compliance: "compliance";
4381
+ delivery: "delivery";
4382
+ }>;
4383
+ intent_strength: z.ZodEnum<{
4384
+ high: "high";
4385
+ medium: "medium";
4386
+ low: "low";
4387
+ }>;
4388
+ source: z.ZodLiteral<"ai_generation">;
4389
+ }, z.core.$strict>>>;
3266
4390
  generation_status: z.ZodOptional<z.ZodEnum<{
3267
4391
  degraded: "degraded";
3268
4392
  ok: "ok";
@@ -3296,9 +4420,9 @@ export declare const Step5StrategyJobSchema: z.ZodObject<{
3296
4420
  normalized_keyword: z.ZodString;
3297
4421
  intc: z.ZodEnum<{
3298
4422
  C: "C";
4423
+ T: "T";
3299
4424
  I: "I";
3300
4425
  N: "N";
3301
- T: "T";
3302
4426
  }>;
3303
4427
  keyword_type: z.ZodString;
3304
4428
  intent_strength: z.ZodEnum<{
@@ -3331,6 +4455,29 @@ export declare const Step5StrategyJobSchema: z.ZodObject<{
3331
4455
  snapshot_id: z.ZodString;
3332
4456
  selected_keywords: z.ZodArray<z.ZodString>;
3333
4457
  }, z.core.$strict>>>;
4458
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
4459
+ id: z.ZodString;
4460
+ question: z.ZodString;
4461
+ question_type: z.ZodEnum<{
4462
+ category: "category";
4463
+ trust: "trust";
4464
+ selection: "selection";
4465
+ application: "application";
4466
+ parameter: "parameter";
4467
+ cost: "cost";
4468
+ compliance: "compliance";
4469
+ delivery: "delivery";
4470
+ }>;
4471
+ intent_strength: z.ZodEnum<{
4472
+ high: "high";
4473
+ medium: "medium";
4474
+ low: "low";
4475
+ }>;
4476
+ source: z.ZodEnum<{
4477
+ ai_generation: "ai_generation";
4478
+ user_input: "user_input";
4479
+ }>;
4480
+ }, z.core.$strict>>>;
3334
4481
  }, z.core.$strict>, z.ZodObject<{
3335
4482
  rows: z.ZodOptional<z.ZodArray<z.ZodObject<{
3336
4483
  id: z.ZodString;
@@ -3350,6 +4497,17 @@ export declare const Step5StrategyJobSchema: z.ZodObject<{
3350
4497
  cpc: z.ZodNullable<z.ZodNumber>;
3351
4498
  }, z.core.$strict>>>;
3352
4499
  }, z.core.$strict>]>>;
4500
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
4501
+ single_country: "single_country";
4502
+ regional_combination: "regional_combination";
4503
+ multi_market: "multi_market";
4504
+ }>>>;
4505
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
4506
+ code: z.ZodString;
4507
+ name_zh: z.ZodString;
4508
+ name_en: z.ZodString;
4509
+ region: z.ZodString;
4510
+ }, z.core.$strict>>>;
3353
4511
  selected_value: z.ZodNullable<z.ZodUnknown>;
3354
4512
  accepted_at: z.ZodString;
3355
4513
  }, z.core.$loose>>;
@@ -3508,6 +4666,17 @@ export declare const Step5StrategyJobSchema: z.ZodObject<{
3508
4666
  sr: "sr";
3509
4667
  is: "is";
3510
4668
  }>>>;
4669
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
4670
+ single_country: "single_country";
4671
+ regional_combination: "regional_combination";
4672
+ multi_market: "multi_market";
4673
+ }>>>;
4674
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
4675
+ code: z.ZodString;
4676
+ name_zh: z.ZodString;
4677
+ name_en: z.ZodString;
4678
+ region: z.ZodString;
4679
+ }, z.core.$strict>>>;
3511
4680
  }, z.core.$loose>, z.ZodObject<{
3512
4681
  id: z.ZodEnum<{
3513
4682
  recommended: "recommended";
@@ -3610,6 +4779,17 @@ export declare const Step5StrategyJobSchema: z.ZodObject<{
3610
4779
  sr: "sr";
3611
4780
  is: "is";
3612
4781
  }>>>;
4782
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
4783
+ single_country: "single_country";
4784
+ regional_combination: "regional_combination";
4785
+ multi_market: "multi_market";
4786
+ }>>>;
4787
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
4788
+ code: z.ZodString;
4789
+ name_zh: z.ZodString;
4790
+ name_en: z.ZodString;
4791
+ region: z.ZodString;
4792
+ }, z.core.$strict>>>;
3613
4793
  }, z.core.$loose>, z.ZodObject<{
3614
4794
  id: z.ZodEnum<{
3615
4795
  recommended: "recommended";
@@ -3712,6 +4892,17 @@ export declare const Step5StrategyJobSchema: z.ZodObject<{
3712
4892
  sr: "sr";
3713
4893
  is: "is";
3714
4894
  }>>>;
4895
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
4896
+ single_country: "single_country";
4897
+ regional_combination: "regional_combination";
4898
+ multi_market: "multi_market";
4899
+ }>>>;
4900
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
4901
+ code: z.ZodString;
4902
+ name_zh: z.ZodString;
4903
+ name_en: z.ZodString;
4904
+ region: z.ZodString;
4905
+ }, z.core.$strict>>>;
3715
4906
  }, z.core.$loose>], null>;
3716
4907
  plan: z.ZodOptional<z.ZodNullable<z.ZodObject<{
3717
4908
  lead: z.ZodString;
@@ -3719,6 +4910,18 @@ export declare const Step5StrategyJobSchema: z.ZodObject<{
3719
4910
  columns: z.ZodArray<z.ZodString>;
3720
4911
  rows: z.ZodArray<z.ZodArray<z.ZodString>>;
3721
4912
  }, z.core.$strict>>>;
4913
+ structure_detail: z.ZodOptional<z.ZodNullable<z.ZodObject<{
4914
+ goal: z.ZodString;
4915
+ issue: z.ZodString;
4916
+ criteria: z.ZodArray<z.ZodString>;
4917
+ resources: z.ZodArray<z.ZodString>;
4918
+ risks: z.ZodArray<z.ZodString>;
4919
+ execution: z.ZodObject<{
4920
+ standard: z.ZodArray<z.ZodString>;
4921
+ acceptance: z.ZodArray<z.ZodString>;
4922
+ downstream: z.ZodArray<z.ZodString>;
4923
+ }, z.core.$strict>;
4924
+ }, z.core.$strict>>>;
3722
4925
  note_tips: z.ZodArray<z.ZodString>;
3723
4926
  note_placeholder: z.ZodString;
3724
4927
  evidence_refs: z.ZodArray<z.ZodObject<{
@@ -3729,12 +4932,108 @@ export declare const Step5StrategyJobSchema: z.ZodObject<{
3729
4932
  source_id: z.ZodString;
3730
4933
  field_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
3731
4934
  }, z.core.$strict>>;
3732
- semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodObject<{
3733
- schema_version: z.ZodLiteral<1>;
4935
+ semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
4936
+ database: z.ZodString;
4937
+ country: z.ZodString;
3734
4938
  provider: z.ZodLiteral<"semrush">;
3735
4939
  api_version: z.ZodLiteral<"v4">;
4940
+ fetched_at: z.ZodString;
4941
+ context_hash: z.ZodString;
4942
+ status: z.ZodEnum<{
4943
+ ready: "ready";
4944
+ failed: "failed";
4945
+ disabled: "disabled";
4946
+ empty: "empty";
4947
+ timeout: "timeout";
4948
+ rate_limited: "rate_limited";
4949
+ quota_exhausted: "quota_exhausted";
4950
+ }>;
4951
+ seeds: z.ZodArray<z.ZodObject<{
4952
+ id: z.ZodString;
4953
+ term: z.ZodString;
4954
+ source_type: z.ZodEnum<{
4955
+ step2: "step2";
4956
+ step3: "step3";
4957
+ step5: "step5";
4958
+ }>;
4959
+ source_id: z.ZodString;
4960
+ field_path: z.ZodString;
4961
+ source_field: z.ZodOptional<z.ZodString>;
4962
+ source_evidence: z.ZodOptional<z.ZodString>;
4963
+ business_subject: z.ZodOptional<z.ZodString>;
4964
+ reason: z.ZodOptional<z.ZodString>;
4965
+ }, z.core.$strict>>;
4966
+ intent_groups: z.ZodArray<z.ZodObject<{
4967
+ id: z.ZodString;
4968
+ intent: z.ZodEnum<{
4969
+ INFORMATIONAL: "INFORMATIONAL";
4970
+ NAVIGATIONAL: "NAVIGATIONAL";
4971
+ COMMERCIAL: "COMMERCIAL";
4972
+ TRANSACTIONAL: "TRANSACTIONAL";
4973
+ }>;
4974
+ title: z.ZodString;
4975
+ landing_page_type: z.ZodEnum<{
4976
+ product: "product";
4977
+ category: "category";
4978
+ blog: "blog";
4979
+ landing: "landing";
4980
+ }>;
4981
+ keywords: z.ZodArray<z.ZodObject<{
4982
+ keyword: z.ZodString;
4983
+ normalized_keyword: z.ZodString;
4984
+ intents: z.ZodArray<z.ZodEnum<{
4985
+ INFORMATIONAL: "INFORMATIONAL";
4986
+ NAVIGATIONAL: "NAVIGATIONAL";
4987
+ COMMERCIAL: "COMMERCIAL";
4988
+ TRANSACTIONAL: "TRANSACTIONAL";
4989
+ }>>;
4990
+ search_volume: z.ZodNumber;
4991
+ keyword_difficulty: z.ZodNumber;
4992
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
4993
+ trend: z.ZodArray<z.ZodNumber>;
4994
+ serp_features: z.ZodArray<z.ZodString>;
4995
+ fit: z.ZodObject<{
4996
+ seo: z.ZodNumber;
4997
+ geo: z.ZodNumber;
4998
+ buyer: z.ZodNumber;
4999
+ }, z.core.$strict>;
5000
+ recommended_channel: z.ZodEnum<{
5001
+ SEO: "SEO";
5002
+ GEO: "GEO";
5003
+ DUAL: "DUAL";
5004
+ }>;
5005
+ priority: z.ZodEnum<{
5006
+ P0: "P0";
5007
+ P1: "P1";
5008
+ P2: "P2";
5009
+ P3: "P3";
5010
+ }>;
5011
+ already_in_plan: z.ZodBoolean;
5012
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
5013
+ }, z.core.$strict>>;
5014
+ }, z.core.$strict>>;
5015
+ selection_summary: z.ZodOptional<z.ZodObject<{
5016
+ fetched_count: z.ZodNumber;
5017
+ unique_count: z.ZodNumber;
5018
+ metric_gate_pass_count: z.ZodNumber;
5019
+ commercial_intent_pass_count: z.ZodNumber;
5020
+ fit_pass_count: z.ZodNumber;
5021
+ selected_count: z.ZodNumber;
5022
+ }, z.core.$strict>>;
5023
+ empty_reason_code: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
5024
+ NO_SEEDS: "NO_SEEDS";
5025
+ NO_PROVIDER_CANDIDATES: "NO_PROVIDER_CANDIDATES";
5026
+ NO_METRIC_ELIGIBLE_CANDIDATES: "NO_METRIC_ELIGIBLE_CANDIDATES";
5027
+ NO_COMMERCIAL_INTENT_CANDIDATES: "NO_COMMERCIAL_INTENT_CANDIDATES";
5028
+ NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
5029
+ }>>>;
5030
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
5031
+ schema_version: z.ZodLiteral<1>;
5032
+ }, z.core.$strict>, z.ZodObject<{
3736
5033
  database: z.ZodString;
3737
5034
  country: z.ZodString;
5035
+ provider: z.ZodLiteral<"semrush">;
5036
+ api_version: z.ZodLiteral<"v4">;
3738
5037
  fetched_at: z.ZodString;
3739
5038
  context_hash: z.ZodString;
3740
5039
  status: z.ZodEnum<{
@@ -3826,7 +5125,8 @@ export declare const Step5StrategyJobSchema: z.ZodObject<{
3826
5125
  NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
3827
5126
  }>>>;
3828
5127
  error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
3829
- }, z.core.$strict>>>;
5128
+ schema_version: z.ZodLiteral<2>;
5129
+ }, z.core.$strict>], "schema_version">>>;
3830
5130
  seo_payload: z.ZodOptional<z.ZodNullable<z.ZodLazy<z.ZodObject<{
3831
5131
  schema_version: z.ZodLiteral<2>;
3832
5132
  seo_keywords: z.ZodArray<z.ZodObject<{
@@ -3835,9 +5135,9 @@ export declare const Step5StrategyJobSchema: z.ZodObject<{
3835
5135
  normalized_keyword: z.ZodString;
3836
5136
  intc: z.ZodEnum<{
3837
5137
  C: "C";
5138
+ T: "T";
3838
5139
  I: "I";
3839
5140
  N: "N";
3840
- T: "T";
3841
5141
  }>;
3842
5142
  keyword_type: z.ZodString;
3843
5143
  intent_strength: z.ZodEnum<{
@@ -3870,7 +5170,50 @@ export declare const Step5StrategyJobSchema: z.ZodObject<{
3870
5170
  snapshot_id: z.ZodString;
3871
5171
  selected_keywords: z.ZodArray<z.ZodString>;
3872
5172
  }, z.core.$strict>>>;
5173
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
5174
+ id: z.ZodString;
5175
+ question: z.ZodString;
5176
+ question_type: z.ZodEnum<{
5177
+ category: "category";
5178
+ trust: "trust";
5179
+ selection: "selection";
5180
+ application: "application";
5181
+ parameter: "parameter";
5182
+ cost: "cost";
5183
+ compliance: "compliance";
5184
+ delivery: "delivery";
5185
+ }>;
5186
+ intent_strength: z.ZodEnum<{
5187
+ high: "high";
5188
+ medium: "medium";
5189
+ low: "low";
5190
+ }>;
5191
+ source: z.ZodEnum<{
5192
+ ai_generation: "ai_generation";
5193
+ user_input: "user_input";
5194
+ }>;
5195
+ }, z.core.$strict>>>;
3873
5196
  }, z.core.$strict>>>>;
5197
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
5198
+ id: z.ZodString;
5199
+ question: z.ZodString;
5200
+ question_type: z.ZodEnum<{
5201
+ category: "category";
5202
+ trust: "trust";
5203
+ selection: "selection";
5204
+ application: "application";
5205
+ parameter: "parameter";
5206
+ cost: "cost";
5207
+ compliance: "compliance";
5208
+ delivery: "delivery";
5209
+ }>;
5210
+ intent_strength: z.ZodEnum<{
5211
+ high: "high";
5212
+ medium: "medium";
5213
+ low: "low";
5214
+ }>;
5215
+ source: z.ZodLiteral<"ai_generation">;
5216
+ }, z.core.$strict>>>;
3874
5217
  generation_status: z.ZodOptional<z.ZodEnum<{
3875
5218
  degraded: "degraded";
3876
5219
  ok: "ok";
@@ -3904,9 +5247,9 @@ export declare const Step5StrategyJobSchema: z.ZodObject<{
3904
5247
  normalized_keyword: z.ZodString;
3905
5248
  intc: z.ZodEnum<{
3906
5249
  C: "C";
5250
+ T: "T";
3907
5251
  I: "I";
3908
5252
  N: "N";
3909
- T: "T";
3910
5253
  }>;
3911
5254
  keyword_type: z.ZodString;
3912
5255
  intent_strength: z.ZodEnum<{
@@ -3939,6 +5282,29 @@ export declare const Step5StrategyJobSchema: z.ZodObject<{
3939
5282
  snapshot_id: z.ZodString;
3940
5283
  selected_keywords: z.ZodArray<z.ZodString>;
3941
5284
  }, z.core.$strict>>>;
5285
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
5286
+ id: z.ZodString;
5287
+ question: z.ZodString;
5288
+ question_type: z.ZodEnum<{
5289
+ category: "category";
5290
+ trust: "trust";
5291
+ selection: "selection";
5292
+ application: "application";
5293
+ parameter: "parameter";
5294
+ cost: "cost";
5295
+ compliance: "compliance";
5296
+ delivery: "delivery";
5297
+ }>;
5298
+ intent_strength: z.ZodEnum<{
5299
+ high: "high";
5300
+ medium: "medium";
5301
+ low: "low";
5302
+ }>;
5303
+ source: z.ZodEnum<{
5304
+ ai_generation: "ai_generation";
5305
+ user_input: "user_input";
5306
+ }>;
5307
+ }, z.core.$strict>>>;
3942
5308
  }, z.core.$strict>, z.ZodObject<{
3943
5309
  rows: z.ZodOptional<z.ZodArray<z.ZodObject<{
3944
5310
  id: z.ZodString;
@@ -3958,6 +5324,17 @@ export declare const Step5StrategyJobSchema: z.ZodObject<{
3958
5324
  cpc: z.ZodNullable<z.ZodNumber>;
3959
5325
  }, z.core.$strict>>>;
3960
5326
  }, z.core.$strict>]>>;
5327
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
5328
+ single_country: "single_country";
5329
+ regional_combination: "regional_combination";
5330
+ multi_market: "multi_market";
5331
+ }>>>;
5332
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
5333
+ code: z.ZodString;
5334
+ name_zh: z.ZodString;
5335
+ name_en: z.ZodString;
5336
+ region: z.ZodString;
5337
+ }, z.core.$strict>>>;
3961
5338
  selected_value: z.ZodNullable<z.ZodUnknown>;
3962
5339
  accepted_at: z.ZodString;
3963
5340
  }, z.core.$loose>>;
@@ -4111,6 +5488,17 @@ export declare const Step5StartStrategyResponseSchema: z.ZodObject<{
4111
5488
  sr: "sr";
4112
5489
  is: "is";
4113
5490
  }>>>;
5491
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
5492
+ single_country: "single_country";
5493
+ regional_combination: "regional_combination";
5494
+ multi_market: "multi_market";
5495
+ }>>>;
5496
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
5497
+ code: z.ZodString;
5498
+ name_zh: z.ZodString;
5499
+ name_en: z.ZodString;
5500
+ region: z.ZodString;
5501
+ }, z.core.$strict>>>;
4114
5502
  }, z.core.$loose>, z.ZodObject<{
4115
5503
  id: z.ZodEnum<{
4116
5504
  recommended: "recommended";
@@ -4213,6 +5601,17 @@ export declare const Step5StartStrategyResponseSchema: z.ZodObject<{
4213
5601
  sr: "sr";
4214
5602
  is: "is";
4215
5603
  }>>>;
5604
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
5605
+ single_country: "single_country";
5606
+ regional_combination: "regional_combination";
5607
+ multi_market: "multi_market";
5608
+ }>>>;
5609
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
5610
+ code: z.ZodString;
5611
+ name_zh: z.ZodString;
5612
+ name_en: z.ZodString;
5613
+ region: z.ZodString;
5614
+ }, z.core.$strict>>>;
4216
5615
  }, z.core.$loose>, z.ZodObject<{
4217
5616
  id: z.ZodEnum<{
4218
5617
  recommended: "recommended";
@@ -4315,29 +5714,148 @@ export declare const Step5StartStrategyResponseSchema: z.ZodObject<{
4315
5714
  sr: "sr";
4316
5715
  is: "is";
4317
5716
  }>>>;
4318
- }, z.core.$loose>], null>;
4319
- plan: z.ZodOptional<z.ZodNullable<z.ZodObject<{
4320
- lead: z.ZodString;
4321
- title: z.ZodString;
4322
- columns: z.ZodArray<z.ZodString>;
4323
- rows: z.ZodArray<z.ZodArray<z.ZodString>>;
4324
- }, z.core.$strict>>>;
4325
- note_tips: z.ZodArray<z.ZodString>;
4326
- note_placeholder: z.ZodString;
4327
- evidence_refs: z.ZodArray<z.ZodObject<{
4328
- source_type: z.ZodEnum<{
4329
- step2: "step2";
4330
- step3: "step3";
4331
- }>;
4332
- source_id: z.ZodString;
4333
- field_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
4334
- }, z.core.$strict>>;
4335
- semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodObject<{
5717
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
5718
+ single_country: "single_country";
5719
+ regional_combination: "regional_combination";
5720
+ multi_market: "multi_market";
5721
+ }>>>;
5722
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
5723
+ code: z.ZodString;
5724
+ name_zh: z.ZodString;
5725
+ name_en: z.ZodString;
5726
+ region: z.ZodString;
5727
+ }, z.core.$strict>>>;
5728
+ }, z.core.$loose>], null>;
5729
+ plan: z.ZodOptional<z.ZodNullable<z.ZodObject<{
5730
+ lead: z.ZodString;
5731
+ title: z.ZodString;
5732
+ columns: z.ZodArray<z.ZodString>;
5733
+ rows: z.ZodArray<z.ZodArray<z.ZodString>>;
5734
+ }, z.core.$strict>>>;
5735
+ structure_detail: z.ZodOptional<z.ZodNullable<z.ZodObject<{
5736
+ goal: z.ZodString;
5737
+ issue: z.ZodString;
5738
+ criteria: z.ZodArray<z.ZodString>;
5739
+ resources: z.ZodArray<z.ZodString>;
5740
+ risks: z.ZodArray<z.ZodString>;
5741
+ execution: z.ZodObject<{
5742
+ standard: z.ZodArray<z.ZodString>;
5743
+ acceptance: z.ZodArray<z.ZodString>;
5744
+ downstream: z.ZodArray<z.ZodString>;
5745
+ }, z.core.$strict>;
5746
+ }, z.core.$strict>>>;
5747
+ note_tips: z.ZodArray<z.ZodString>;
5748
+ note_placeholder: z.ZodString;
5749
+ evidence_refs: z.ZodArray<z.ZodObject<{
5750
+ source_type: z.ZodEnum<{
5751
+ step2: "step2";
5752
+ step3: "step3";
5753
+ }>;
5754
+ source_id: z.ZodString;
5755
+ field_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
5756
+ }, z.core.$strict>>;
5757
+ semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
5758
+ database: z.ZodString;
5759
+ country: z.ZodString;
5760
+ provider: z.ZodLiteral<"semrush">;
5761
+ api_version: z.ZodLiteral<"v4">;
5762
+ fetched_at: z.ZodString;
5763
+ context_hash: z.ZodString;
5764
+ status: z.ZodEnum<{
5765
+ ready: "ready";
5766
+ failed: "failed";
5767
+ disabled: "disabled";
5768
+ empty: "empty";
5769
+ timeout: "timeout";
5770
+ rate_limited: "rate_limited";
5771
+ quota_exhausted: "quota_exhausted";
5772
+ }>;
5773
+ seeds: z.ZodArray<z.ZodObject<{
5774
+ id: z.ZodString;
5775
+ term: z.ZodString;
5776
+ source_type: z.ZodEnum<{
5777
+ step2: "step2";
5778
+ step3: "step3";
5779
+ step5: "step5";
5780
+ }>;
5781
+ source_id: z.ZodString;
5782
+ field_path: z.ZodString;
5783
+ source_field: z.ZodOptional<z.ZodString>;
5784
+ source_evidence: z.ZodOptional<z.ZodString>;
5785
+ business_subject: z.ZodOptional<z.ZodString>;
5786
+ reason: z.ZodOptional<z.ZodString>;
5787
+ }, z.core.$strict>>;
5788
+ intent_groups: z.ZodArray<z.ZodObject<{
5789
+ id: z.ZodString;
5790
+ intent: z.ZodEnum<{
5791
+ INFORMATIONAL: "INFORMATIONAL";
5792
+ NAVIGATIONAL: "NAVIGATIONAL";
5793
+ COMMERCIAL: "COMMERCIAL";
5794
+ TRANSACTIONAL: "TRANSACTIONAL";
5795
+ }>;
5796
+ title: z.ZodString;
5797
+ landing_page_type: z.ZodEnum<{
5798
+ product: "product";
5799
+ category: "category";
5800
+ blog: "blog";
5801
+ landing: "landing";
5802
+ }>;
5803
+ keywords: z.ZodArray<z.ZodObject<{
5804
+ keyword: z.ZodString;
5805
+ normalized_keyword: z.ZodString;
5806
+ intents: z.ZodArray<z.ZodEnum<{
5807
+ INFORMATIONAL: "INFORMATIONAL";
5808
+ NAVIGATIONAL: "NAVIGATIONAL";
5809
+ COMMERCIAL: "COMMERCIAL";
5810
+ TRANSACTIONAL: "TRANSACTIONAL";
5811
+ }>>;
5812
+ search_volume: z.ZodNumber;
5813
+ keyword_difficulty: z.ZodNumber;
5814
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
5815
+ trend: z.ZodArray<z.ZodNumber>;
5816
+ serp_features: z.ZodArray<z.ZodString>;
5817
+ fit: z.ZodObject<{
5818
+ seo: z.ZodNumber;
5819
+ geo: z.ZodNumber;
5820
+ buyer: z.ZodNumber;
5821
+ }, z.core.$strict>;
5822
+ recommended_channel: z.ZodEnum<{
5823
+ SEO: "SEO";
5824
+ GEO: "GEO";
5825
+ DUAL: "DUAL";
5826
+ }>;
5827
+ priority: z.ZodEnum<{
5828
+ P0: "P0";
5829
+ P1: "P1";
5830
+ P2: "P2";
5831
+ P3: "P3";
5832
+ }>;
5833
+ already_in_plan: z.ZodBoolean;
5834
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
5835
+ }, z.core.$strict>>;
5836
+ }, z.core.$strict>>;
5837
+ selection_summary: z.ZodOptional<z.ZodObject<{
5838
+ fetched_count: z.ZodNumber;
5839
+ unique_count: z.ZodNumber;
5840
+ metric_gate_pass_count: z.ZodNumber;
5841
+ commercial_intent_pass_count: z.ZodNumber;
5842
+ fit_pass_count: z.ZodNumber;
5843
+ selected_count: z.ZodNumber;
5844
+ }, z.core.$strict>>;
5845
+ empty_reason_code: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
5846
+ NO_SEEDS: "NO_SEEDS";
5847
+ NO_PROVIDER_CANDIDATES: "NO_PROVIDER_CANDIDATES";
5848
+ NO_METRIC_ELIGIBLE_CANDIDATES: "NO_METRIC_ELIGIBLE_CANDIDATES";
5849
+ NO_COMMERCIAL_INTENT_CANDIDATES: "NO_COMMERCIAL_INTENT_CANDIDATES";
5850
+ NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
5851
+ }>>>;
5852
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
4336
5853
  schema_version: z.ZodLiteral<1>;
4337
- provider: z.ZodLiteral<"semrush">;
4338
- api_version: z.ZodLiteral<"v4">;
5854
+ }, z.core.$strict>, z.ZodObject<{
4339
5855
  database: z.ZodString;
4340
5856
  country: z.ZodString;
5857
+ provider: z.ZodLiteral<"semrush">;
5858
+ api_version: z.ZodLiteral<"v4">;
4341
5859
  fetched_at: z.ZodString;
4342
5860
  context_hash: z.ZodString;
4343
5861
  status: z.ZodEnum<{
@@ -4429,7 +5947,8 @@ export declare const Step5StartStrategyResponseSchema: z.ZodObject<{
4429
5947
  NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
4430
5948
  }>>>;
4431
5949
  error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
4432
- }, z.core.$strict>>>;
5950
+ schema_version: z.ZodLiteral<2>;
5951
+ }, z.core.$strict>], "schema_version">>>;
4433
5952
  seo_payload: z.ZodOptional<z.ZodNullable<z.ZodLazy<z.ZodObject<{
4434
5953
  schema_version: z.ZodLiteral<2>;
4435
5954
  seo_keywords: z.ZodArray<z.ZodObject<{
@@ -4438,9 +5957,9 @@ export declare const Step5StartStrategyResponseSchema: z.ZodObject<{
4438
5957
  normalized_keyword: z.ZodString;
4439
5958
  intc: z.ZodEnum<{
4440
5959
  C: "C";
5960
+ T: "T";
4441
5961
  I: "I";
4442
5962
  N: "N";
4443
- T: "T";
4444
5963
  }>;
4445
5964
  keyword_type: z.ZodString;
4446
5965
  intent_strength: z.ZodEnum<{
@@ -4473,7 +5992,50 @@ export declare const Step5StartStrategyResponseSchema: z.ZodObject<{
4473
5992
  snapshot_id: z.ZodString;
4474
5993
  selected_keywords: z.ZodArray<z.ZodString>;
4475
5994
  }, z.core.$strict>>>;
5995
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
5996
+ id: z.ZodString;
5997
+ question: z.ZodString;
5998
+ question_type: z.ZodEnum<{
5999
+ category: "category";
6000
+ trust: "trust";
6001
+ selection: "selection";
6002
+ application: "application";
6003
+ parameter: "parameter";
6004
+ cost: "cost";
6005
+ compliance: "compliance";
6006
+ delivery: "delivery";
6007
+ }>;
6008
+ intent_strength: z.ZodEnum<{
6009
+ high: "high";
6010
+ medium: "medium";
6011
+ low: "low";
6012
+ }>;
6013
+ source: z.ZodEnum<{
6014
+ ai_generation: "ai_generation";
6015
+ user_input: "user_input";
6016
+ }>;
6017
+ }, z.core.$strict>>>;
4476
6018
  }, z.core.$strict>>>>;
6019
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
6020
+ id: z.ZodString;
6021
+ question: z.ZodString;
6022
+ question_type: z.ZodEnum<{
6023
+ category: "category";
6024
+ trust: "trust";
6025
+ selection: "selection";
6026
+ application: "application";
6027
+ parameter: "parameter";
6028
+ cost: "cost";
6029
+ compliance: "compliance";
6030
+ delivery: "delivery";
6031
+ }>;
6032
+ intent_strength: z.ZodEnum<{
6033
+ high: "high";
6034
+ medium: "medium";
6035
+ low: "low";
6036
+ }>;
6037
+ source: z.ZodLiteral<"ai_generation">;
6038
+ }, z.core.$strict>>>;
4477
6039
  generation_status: z.ZodOptional<z.ZodEnum<{
4478
6040
  degraded: "degraded";
4479
6041
  ok: "ok";
@@ -4507,9 +6069,9 @@ export declare const Step5StartStrategyResponseSchema: z.ZodObject<{
4507
6069
  normalized_keyword: z.ZodString;
4508
6070
  intc: z.ZodEnum<{
4509
6071
  C: "C";
6072
+ T: "T";
4510
6073
  I: "I";
4511
6074
  N: "N";
4512
- T: "T";
4513
6075
  }>;
4514
6076
  keyword_type: z.ZodString;
4515
6077
  intent_strength: z.ZodEnum<{
@@ -4542,6 +6104,29 @@ export declare const Step5StartStrategyResponseSchema: z.ZodObject<{
4542
6104
  snapshot_id: z.ZodString;
4543
6105
  selected_keywords: z.ZodArray<z.ZodString>;
4544
6106
  }, z.core.$strict>>>;
6107
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
6108
+ id: z.ZodString;
6109
+ question: z.ZodString;
6110
+ question_type: z.ZodEnum<{
6111
+ category: "category";
6112
+ trust: "trust";
6113
+ selection: "selection";
6114
+ application: "application";
6115
+ parameter: "parameter";
6116
+ cost: "cost";
6117
+ compliance: "compliance";
6118
+ delivery: "delivery";
6119
+ }>;
6120
+ intent_strength: z.ZodEnum<{
6121
+ high: "high";
6122
+ medium: "medium";
6123
+ low: "low";
6124
+ }>;
6125
+ source: z.ZodEnum<{
6126
+ ai_generation: "ai_generation";
6127
+ user_input: "user_input";
6128
+ }>;
6129
+ }, z.core.$strict>>>;
4545
6130
  }, z.core.$strict>, z.ZodObject<{
4546
6131
  rows: z.ZodOptional<z.ZodArray<z.ZodObject<{
4547
6132
  id: z.ZodString;
@@ -4561,6 +6146,17 @@ export declare const Step5StartStrategyResponseSchema: z.ZodObject<{
4561
6146
  cpc: z.ZodNullable<z.ZodNumber>;
4562
6147
  }, z.core.$strict>>>;
4563
6148
  }, z.core.$strict>]>>;
6149
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
6150
+ single_country: "single_country";
6151
+ regional_combination: "regional_combination";
6152
+ multi_market: "multi_market";
6153
+ }>>>;
6154
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
6155
+ code: z.ZodString;
6156
+ name_zh: z.ZodString;
6157
+ name_en: z.ZodString;
6158
+ region: z.ZodString;
6159
+ }, z.core.$strict>>>;
4564
6160
  selected_value: z.ZodNullable<z.ZodUnknown>;
4565
6161
  accepted_at: z.ZodString;
4566
6162
  }, z.core.$loose>>;
@@ -4719,6 +6315,17 @@ export declare const Step5StartStrategyResponseSchema: z.ZodObject<{
4719
6315
  sr: "sr";
4720
6316
  is: "is";
4721
6317
  }>>>;
6318
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
6319
+ single_country: "single_country";
6320
+ regional_combination: "regional_combination";
6321
+ multi_market: "multi_market";
6322
+ }>>>;
6323
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
6324
+ code: z.ZodString;
6325
+ name_zh: z.ZodString;
6326
+ name_en: z.ZodString;
6327
+ region: z.ZodString;
6328
+ }, z.core.$strict>>>;
4722
6329
  }, z.core.$loose>, z.ZodObject<{
4723
6330
  id: z.ZodEnum<{
4724
6331
  recommended: "recommended";
@@ -4821,6 +6428,17 @@ export declare const Step5StartStrategyResponseSchema: z.ZodObject<{
4821
6428
  sr: "sr";
4822
6429
  is: "is";
4823
6430
  }>>>;
6431
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
6432
+ single_country: "single_country";
6433
+ regional_combination: "regional_combination";
6434
+ multi_market: "multi_market";
6435
+ }>>>;
6436
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
6437
+ code: z.ZodString;
6438
+ name_zh: z.ZodString;
6439
+ name_en: z.ZodString;
6440
+ region: z.ZodString;
6441
+ }, z.core.$strict>>>;
4824
6442
  }, z.core.$loose>, z.ZodObject<{
4825
6443
  id: z.ZodEnum<{
4826
6444
  recommended: "recommended";
@@ -4923,6 +6541,17 @@ export declare const Step5StartStrategyResponseSchema: z.ZodObject<{
4923
6541
  sr: "sr";
4924
6542
  is: "is";
4925
6543
  }>>>;
6544
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
6545
+ single_country: "single_country";
6546
+ regional_combination: "regional_combination";
6547
+ multi_market: "multi_market";
6548
+ }>>>;
6549
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
6550
+ code: z.ZodString;
6551
+ name_zh: z.ZodString;
6552
+ name_en: z.ZodString;
6553
+ region: z.ZodString;
6554
+ }, z.core.$strict>>>;
4926
6555
  }, z.core.$loose>], null>;
4927
6556
  plan: z.ZodOptional<z.ZodNullable<z.ZodObject<{
4928
6557
  lead: z.ZodString;
@@ -4930,6 +6559,18 @@ export declare const Step5StartStrategyResponseSchema: z.ZodObject<{
4930
6559
  columns: z.ZodArray<z.ZodString>;
4931
6560
  rows: z.ZodArray<z.ZodArray<z.ZodString>>;
4932
6561
  }, z.core.$strict>>>;
6562
+ structure_detail: z.ZodOptional<z.ZodNullable<z.ZodObject<{
6563
+ goal: z.ZodString;
6564
+ issue: z.ZodString;
6565
+ criteria: z.ZodArray<z.ZodString>;
6566
+ resources: z.ZodArray<z.ZodString>;
6567
+ risks: z.ZodArray<z.ZodString>;
6568
+ execution: z.ZodObject<{
6569
+ standard: z.ZodArray<z.ZodString>;
6570
+ acceptance: z.ZodArray<z.ZodString>;
6571
+ downstream: z.ZodArray<z.ZodString>;
6572
+ }, z.core.$strict>;
6573
+ }, z.core.$strict>>>;
4933
6574
  note_tips: z.ZodArray<z.ZodString>;
4934
6575
  note_placeholder: z.ZodString;
4935
6576
  evidence_refs: z.ZodArray<z.ZodObject<{
@@ -4940,12 +6581,108 @@ export declare const Step5StartStrategyResponseSchema: z.ZodObject<{
4940
6581
  source_id: z.ZodString;
4941
6582
  field_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
4942
6583
  }, z.core.$strict>>;
4943
- semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodObject<{
4944
- schema_version: z.ZodLiteral<1>;
6584
+ semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
6585
+ database: z.ZodString;
6586
+ country: z.ZodString;
4945
6587
  provider: z.ZodLiteral<"semrush">;
4946
6588
  api_version: z.ZodLiteral<"v4">;
6589
+ fetched_at: z.ZodString;
6590
+ context_hash: z.ZodString;
6591
+ status: z.ZodEnum<{
6592
+ ready: "ready";
6593
+ failed: "failed";
6594
+ disabled: "disabled";
6595
+ empty: "empty";
6596
+ timeout: "timeout";
6597
+ rate_limited: "rate_limited";
6598
+ quota_exhausted: "quota_exhausted";
6599
+ }>;
6600
+ seeds: z.ZodArray<z.ZodObject<{
6601
+ id: z.ZodString;
6602
+ term: z.ZodString;
6603
+ source_type: z.ZodEnum<{
6604
+ step2: "step2";
6605
+ step3: "step3";
6606
+ step5: "step5";
6607
+ }>;
6608
+ source_id: z.ZodString;
6609
+ field_path: z.ZodString;
6610
+ source_field: z.ZodOptional<z.ZodString>;
6611
+ source_evidence: z.ZodOptional<z.ZodString>;
6612
+ business_subject: z.ZodOptional<z.ZodString>;
6613
+ reason: z.ZodOptional<z.ZodString>;
6614
+ }, z.core.$strict>>;
6615
+ intent_groups: z.ZodArray<z.ZodObject<{
6616
+ id: z.ZodString;
6617
+ intent: z.ZodEnum<{
6618
+ INFORMATIONAL: "INFORMATIONAL";
6619
+ NAVIGATIONAL: "NAVIGATIONAL";
6620
+ COMMERCIAL: "COMMERCIAL";
6621
+ TRANSACTIONAL: "TRANSACTIONAL";
6622
+ }>;
6623
+ title: z.ZodString;
6624
+ landing_page_type: z.ZodEnum<{
6625
+ product: "product";
6626
+ category: "category";
6627
+ blog: "blog";
6628
+ landing: "landing";
6629
+ }>;
6630
+ keywords: z.ZodArray<z.ZodObject<{
6631
+ keyword: z.ZodString;
6632
+ normalized_keyword: z.ZodString;
6633
+ intents: z.ZodArray<z.ZodEnum<{
6634
+ INFORMATIONAL: "INFORMATIONAL";
6635
+ NAVIGATIONAL: "NAVIGATIONAL";
6636
+ COMMERCIAL: "COMMERCIAL";
6637
+ TRANSACTIONAL: "TRANSACTIONAL";
6638
+ }>>;
6639
+ search_volume: z.ZodNumber;
6640
+ keyword_difficulty: z.ZodNumber;
6641
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
6642
+ trend: z.ZodArray<z.ZodNumber>;
6643
+ serp_features: z.ZodArray<z.ZodString>;
6644
+ fit: z.ZodObject<{
6645
+ seo: z.ZodNumber;
6646
+ geo: z.ZodNumber;
6647
+ buyer: z.ZodNumber;
6648
+ }, z.core.$strict>;
6649
+ recommended_channel: z.ZodEnum<{
6650
+ SEO: "SEO";
6651
+ GEO: "GEO";
6652
+ DUAL: "DUAL";
6653
+ }>;
6654
+ priority: z.ZodEnum<{
6655
+ P0: "P0";
6656
+ P1: "P1";
6657
+ P2: "P2";
6658
+ P3: "P3";
6659
+ }>;
6660
+ already_in_plan: z.ZodBoolean;
6661
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
6662
+ }, z.core.$strict>>;
6663
+ }, z.core.$strict>>;
6664
+ selection_summary: z.ZodOptional<z.ZodObject<{
6665
+ fetched_count: z.ZodNumber;
6666
+ unique_count: z.ZodNumber;
6667
+ metric_gate_pass_count: z.ZodNumber;
6668
+ commercial_intent_pass_count: z.ZodNumber;
6669
+ fit_pass_count: z.ZodNumber;
6670
+ selected_count: z.ZodNumber;
6671
+ }, z.core.$strict>>;
6672
+ empty_reason_code: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
6673
+ NO_SEEDS: "NO_SEEDS";
6674
+ NO_PROVIDER_CANDIDATES: "NO_PROVIDER_CANDIDATES";
6675
+ NO_METRIC_ELIGIBLE_CANDIDATES: "NO_METRIC_ELIGIBLE_CANDIDATES";
6676
+ NO_COMMERCIAL_INTENT_CANDIDATES: "NO_COMMERCIAL_INTENT_CANDIDATES";
6677
+ NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
6678
+ }>>>;
6679
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
6680
+ schema_version: z.ZodLiteral<1>;
6681
+ }, z.core.$strict>, z.ZodObject<{
4947
6682
  database: z.ZodString;
4948
6683
  country: z.ZodString;
6684
+ provider: z.ZodLiteral<"semrush">;
6685
+ api_version: z.ZodLiteral<"v4">;
4949
6686
  fetched_at: z.ZodString;
4950
6687
  context_hash: z.ZodString;
4951
6688
  status: z.ZodEnum<{
@@ -5037,7 +6774,8 @@ export declare const Step5StartStrategyResponseSchema: z.ZodObject<{
5037
6774
  NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
5038
6775
  }>>>;
5039
6776
  error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
5040
- }, z.core.$strict>>>;
6777
+ schema_version: z.ZodLiteral<2>;
6778
+ }, z.core.$strict>], "schema_version">>>;
5041
6779
  seo_payload: z.ZodOptional<z.ZodNullable<z.ZodLazy<z.ZodObject<{
5042
6780
  schema_version: z.ZodLiteral<2>;
5043
6781
  seo_keywords: z.ZodArray<z.ZodObject<{
@@ -5046,9 +6784,9 @@ export declare const Step5StartStrategyResponseSchema: z.ZodObject<{
5046
6784
  normalized_keyword: z.ZodString;
5047
6785
  intc: z.ZodEnum<{
5048
6786
  C: "C";
6787
+ T: "T";
5049
6788
  I: "I";
5050
6789
  N: "N";
5051
- T: "T";
5052
6790
  }>;
5053
6791
  keyword_type: z.ZodString;
5054
6792
  intent_strength: z.ZodEnum<{
@@ -5081,7 +6819,50 @@ export declare const Step5StartStrategyResponseSchema: z.ZodObject<{
5081
6819
  snapshot_id: z.ZodString;
5082
6820
  selected_keywords: z.ZodArray<z.ZodString>;
5083
6821
  }, z.core.$strict>>>;
6822
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
6823
+ id: z.ZodString;
6824
+ question: z.ZodString;
6825
+ question_type: z.ZodEnum<{
6826
+ category: "category";
6827
+ trust: "trust";
6828
+ selection: "selection";
6829
+ application: "application";
6830
+ parameter: "parameter";
6831
+ cost: "cost";
6832
+ compliance: "compliance";
6833
+ delivery: "delivery";
6834
+ }>;
6835
+ intent_strength: z.ZodEnum<{
6836
+ high: "high";
6837
+ medium: "medium";
6838
+ low: "low";
6839
+ }>;
6840
+ source: z.ZodEnum<{
6841
+ ai_generation: "ai_generation";
6842
+ user_input: "user_input";
6843
+ }>;
6844
+ }, z.core.$strict>>>;
5084
6845
  }, z.core.$strict>>>>;
6846
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
6847
+ id: z.ZodString;
6848
+ question: z.ZodString;
6849
+ question_type: z.ZodEnum<{
6850
+ category: "category";
6851
+ trust: "trust";
6852
+ selection: "selection";
6853
+ application: "application";
6854
+ parameter: "parameter";
6855
+ cost: "cost";
6856
+ compliance: "compliance";
6857
+ delivery: "delivery";
6858
+ }>;
6859
+ intent_strength: z.ZodEnum<{
6860
+ high: "high";
6861
+ medium: "medium";
6862
+ low: "low";
6863
+ }>;
6864
+ source: z.ZodLiteral<"ai_generation">;
6865
+ }, z.core.$strict>>>;
5085
6866
  generation_status: z.ZodOptional<z.ZodEnum<{
5086
6867
  degraded: "degraded";
5087
6868
  ok: "ok";
@@ -5115,9 +6896,9 @@ export declare const Step5StartStrategyResponseSchema: z.ZodObject<{
5115
6896
  normalized_keyword: z.ZodString;
5116
6897
  intc: z.ZodEnum<{
5117
6898
  C: "C";
6899
+ T: "T";
5118
6900
  I: "I";
5119
6901
  N: "N";
5120
- T: "T";
5121
6902
  }>;
5122
6903
  keyword_type: z.ZodString;
5123
6904
  intent_strength: z.ZodEnum<{
@@ -5150,6 +6931,29 @@ export declare const Step5StartStrategyResponseSchema: z.ZodObject<{
5150
6931
  snapshot_id: z.ZodString;
5151
6932
  selected_keywords: z.ZodArray<z.ZodString>;
5152
6933
  }, z.core.$strict>>>;
6934
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
6935
+ id: z.ZodString;
6936
+ question: z.ZodString;
6937
+ question_type: z.ZodEnum<{
6938
+ category: "category";
6939
+ trust: "trust";
6940
+ selection: "selection";
6941
+ application: "application";
6942
+ parameter: "parameter";
6943
+ cost: "cost";
6944
+ compliance: "compliance";
6945
+ delivery: "delivery";
6946
+ }>;
6947
+ intent_strength: z.ZodEnum<{
6948
+ high: "high";
6949
+ medium: "medium";
6950
+ low: "low";
6951
+ }>;
6952
+ source: z.ZodEnum<{
6953
+ ai_generation: "ai_generation";
6954
+ user_input: "user_input";
6955
+ }>;
6956
+ }, z.core.$strict>>>;
5153
6957
  }, z.core.$strict>, z.ZodObject<{
5154
6958
  rows: z.ZodOptional<z.ZodArray<z.ZodObject<{
5155
6959
  id: z.ZodString;
@@ -5169,6 +6973,17 @@ export declare const Step5StartStrategyResponseSchema: z.ZodObject<{
5169
6973
  cpc: z.ZodNullable<z.ZodNumber>;
5170
6974
  }, z.core.$strict>>>;
5171
6975
  }, z.core.$strict>]>>;
6976
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
6977
+ single_country: "single_country";
6978
+ regional_combination: "regional_combination";
6979
+ multi_market: "multi_market";
6980
+ }>>>;
6981
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
6982
+ code: z.ZodString;
6983
+ name_zh: z.ZodString;
6984
+ name_en: z.ZodString;
6985
+ region: z.ZodString;
6986
+ }, z.core.$strict>>>;
5172
6987
  selected_value: z.ZodNullable<z.ZodUnknown>;
5173
6988
  accepted_at: z.ZodString;
5174
6989
  }, z.core.$loose>>;
@@ -5205,9 +7020,9 @@ export declare const Step5SaveDecisionRequestSchema: z.ZodObject<{
5205
7020
  normalized_keyword: z.ZodString;
5206
7021
  intc: z.ZodEnum<{
5207
7022
  C: "C";
7023
+ T: "T";
5208
7024
  I: "I";
5209
7025
  N: "N";
5210
- T: "T";
5211
7026
  }>;
5212
7027
  keyword_type: z.ZodString;
5213
7028
  intent_strength: z.ZodEnum<{
@@ -5240,6 +7055,29 @@ export declare const Step5SaveDecisionRequestSchema: z.ZodObject<{
5240
7055
  snapshot_id: z.ZodString;
5241
7056
  selected_keywords: z.ZodArray<z.ZodString>;
5242
7057
  }, z.core.$strict>>>;
7058
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
7059
+ id: z.ZodString;
7060
+ question: z.ZodString;
7061
+ question_type: z.ZodEnum<{
7062
+ category: "category";
7063
+ trust: "trust";
7064
+ selection: "selection";
7065
+ application: "application";
7066
+ parameter: "parameter";
7067
+ cost: "cost";
7068
+ compliance: "compliance";
7069
+ delivery: "delivery";
7070
+ }>;
7071
+ intent_strength: z.ZodEnum<{
7072
+ high: "high";
7073
+ medium: "medium";
7074
+ low: "low";
7075
+ }>;
7076
+ source: z.ZodEnum<{
7077
+ ai_generation: "ai_generation";
7078
+ user_input: "user_input";
7079
+ }>;
7080
+ }, z.core.$strict>>>;
5243
7081
  }, z.core.$strict>, z.ZodObject<{
5244
7082
  rows: z.ZodOptional<z.ZodArray<z.ZodObject<{
5245
7083
  id: z.ZodString;
@@ -5291,9 +7129,9 @@ export declare const Step5SaveDecisionResponseSchema: z.ZodObject<{
5291
7129
  normalized_keyword: z.ZodString;
5292
7130
  intc: z.ZodEnum<{
5293
7131
  C: "C";
7132
+ T: "T";
5294
7133
  I: "I";
5295
7134
  N: "N";
5296
- T: "T";
5297
7135
  }>;
5298
7136
  keyword_type: z.ZodString;
5299
7137
  intent_strength: z.ZodEnum<{
@@ -5326,6 +7164,29 @@ export declare const Step5SaveDecisionResponseSchema: z.ZodObject<{
5326
7164
  snapshot_id: z.ZodString;
5327
7165
  selected_keywords: z.ZodArray<z.ZodString>;
5328
7166
  }, z.core.$strict>>>;
7167
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
7168
+ id: z.ZodString;
7169
+ question: z.ZodString;
7170
+ question_type: z.ZodEnum<{
7171
+ category: "category";
7172
+ trust: "trust";
7173
+ selection: "selection";
7174
+ application: "application";
7175
+ parameter: "parameter";
7176
+ cost: "cost";
7177
+ compliance: "compliance";
7178
+ delivery: "delivery";
7179
+ }>;
7180
+ intent_strength: z.ZodEnum<{
7181
+ high: "high";
7182
+ medium: "medium";
7183
+ low: "low";
7184
+ }>;
7185
+ source: z.ZodEnum<{
7186
+ ai_generation: "ai_generation";
7187
+ user_input: "user_input";
7188
+ }>;
7189
+ }, z.core.$strict>>>;
5329
7190
  }, z.core.$strict>, z.ZodObject<{
5330
7191
  rows: z.ZodOptional<z.ZodArray<z.ZodObject<{
5331
7192
  id: z.ZodString;
@@ -5345,6 +7206,17 @@ export declare const Step5SaveDecisionResponseSchema: z.ZodObject<{
5345
7206
  cpc: z.ZodNullable<z.ZodNumber>;
5346
7207
  }, z.core.$strict>>>;
5347
7208
  }, z.core.$strict>]>>;
7209
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
7210
+ single_country: "single_country";
7211
+ regional_combination: "regional_combination";
7212
+ multi_market: "multi_market";
7213
+ }>>>;
7214
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
7215
+ code: z.ZodString;
7216
+ name_zh: z.ZodString;
7217
+ name_en: z.ZodString;
7218
+ region: z.ZodString;
7219
+ }, z.core.$strict>>>;
5348
7220
  selected_value: z.ZodNullable<z.ZodUnknown>;
5349
7221
  accepted_at: z.ZodString;
5350
7222
  }, z.core.$loose>;
@@ -5381,9 +7253,9 @@ export declare const Step5CommitStrategyRequestSchema: z.ZodObject<{
5381
7253
  normalized_keyword: z.ZodString;
5382
7254
  intc: z.ZodEnum<{
5383
7255
  C: "C";
7256
+ T: "T";
5384
7257
  I: "I";
5385
7258
  N: "N";
5386
- T: "T";
5387
7259
  }>;
5388
7260
  keyword_type: z.ZodString;
5389
7261
  intent_strength: z.ZodEnum<{
@@ -5416,6 +7288,29 @@ export declare const Step5CommitStrategyRequestSchema: z.ZodObject<{
5416
7288
  snapshot_id: z.ZodString;
5417
7289
  selected_keywords: z.ZodArray<z.ZodString>;
5418
7290
  }, z.core.$strict>>>;
7291
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
7292
+ id: z.ZodString;
7293
+ question: z.ZodString;
7294
+ question_type: z.ZodEnum<{
7295
+ category: "category";
7296
+ trust: "trust";
7297
+ selection: "selection";
7298
+ application: "application";
7299
+ parameter: "parameter";
7300
+ cost: "cost";
7301
+ compliance: "compliance";
7302
+ delivery: "delivery";
7303
+ }>;
7304
+ intent_strength: z.ZodEnum<{
7305
+ high: "high";
7306
+ medium: "medium";
7307
+ low: "low";
7308
+ }>;
7309
+ source: z.ZodEnum<{
7310
+ ai_generation: "ai_generation";
7311
+ user_input: "user_input";
7312
+ }>;
7313
+ }, z.core.$strict>>>;
5419
7314
  }, z.core.$strict>, z.ZodObject<{
5420
7315
  rows: z.ZodOptional<z.ZodArray<z.ZodObject<{
5421
7316
  id: z.ZodString;
@@ -5586,6 +7481,17 @@ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
5586
7481
  sr: "sr";
5587
7482
  is: "is";
5588
7483
  }>>>;
7484
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
7485
+ single_country: "single_country";
7486
+ regional_combination: "regional_combination";
7487
+ multi_market: "multi_market";
7488
+ }>>>;
7489
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
7490
+ code: z.ZodString;
7491
+ name_zh: z.ZodString;
7492
+ name_en: z.ZodString;
7493
+ region: z.ZodString;
7494
+ }, z.core.$strict>>>;
5589
7495
  }, z.core.$loose>, z.ZodObject<{
5590
7496
  id: z.ZodEnum<{
5591
7497
  recommended: "recommended";
@@ -5688,6 +7594,17 @@ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
5688
7594
  sr: "sr";
5689
7595
  is: "is";
5690
7596
  }>>>;
7597
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
7598
+ single_country: "single_country";
7599
+ regional_combination: "regional_combination";
7600
+ multi_market: "multi_market";
7601
+ }>>>;
7602
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
7603
+ code: z.ZodString;
7604
+ name_zh: z.ZodString;
7605
+ name_en: z.ZodString;
7606
+ region: z.ZodString;
7607
+ }, z.core.$strict>>>;
5691
7608
  }, z.core.$loose>, z.ZodObject<{
5692
7609
  id: z.ZodEnum<{
5693
7610
  recommended: "recommended";
@@ -5790,6 +7707,17 @@ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
5790
7707
  sr: "sr";
5791
7708
  is: "is";
5792
7709
  }>>>;
7710
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
7711
+ single_country: "single_country";
7712
+ regional_combination: "regional_combination";
7713
+ multi_market: "multi_market";
7714
+ }>>>;
7715
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
7716
+ code: z.ZodString;
7717
+ name_zh: z.ZodString;
7718
+ name_en: z.ZodString;
7719
+ region: z.ZodString;
7720
+ }, z.core.$strict>>>;
5793
7721
  }, z.core.$loose>], null>;
5794
7722
  plan: z.ZodOptional<z.ZodNullable<z.ZodObject<{
5795
7723
  lead: z.ZodString;
@@ -5797,6 +7725,18 @@ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
5797
7725
  columns: z.ZodArray<z.ZodString>;
5798
7726
  rows: z.ZodArray<z.ZodArray<z.ZodString>>;
5799
7727
  }, z.core.$strict>>>;
7728
+ structure_detail: z.ZodOptional<z.ZodNullable<z.ZodObject<{
7729
+ goal: z.ZodString;
7730
+ issue: z.ZodString;
7731
+ criteria: z.ZodArray<z.ZodString>;
7732
+ resources: z.ZodArray<z.ZodString>;
7733
+ risks: z.ZodArray<z.ZodString>;
7734
+ execution: z.ZodObject<{
7735
+ standard: z.ZodArray<z.ZodString>;
7736
+ acceptance: z.ZodArray<z.ZodString>;
7737
+ downstream: z.ZodArray<z.ZodString>;
7738
+ }, z.core.$strict>;
7739
+ }, z.core.$strict>>>;
5800
7740
  note_tips: z.ZodArray<z.ZodString>;
5801
7741
  note_placeholder: z.ZodString;
5802
7742
  evidence_refs: z.ZodArray<z.ZodObject<{
@@ -5807,12 +7747,108 @@ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
5807
7747
  source_id: z.ZodString;
5808
7748
  field_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
5809
7749
  }, z.core.$strict>>;
5810
- semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodObject<{
5811
- schema_version: z.ZodLiteral<1>;
7750
+ semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
7751
+ database: z.ZodString;
7752
+ country: z.ZodString;
5812
7753
  provider: z.ZodLiteral<"semrush">;
5813
7754
  api_version: z.ZodLiteral<"v4">;
7755
+ fetched_at: z.ZodString;
7756
+ context_hash: z.ZodString;
7757
+ status: z.ZodEnum<{
7758
+ ready: "ready";
7759
+ failed: "failed";
7760
+ disabled: "disabled";
7761
+ empty: "empty";
7762
+ timeout: "timeout";
7763
+ rate_limited: "rate_limited";
7764
+ quota_exhausted: "quota_exhausted";
7765
+ }>;
7766
+ seeds: z.ZodArray<z.ZodObject<{
7767
+ id: z.ZodString;
7768
+ term: z.ZodString;
7769
+ source_type: z.ZodEnum<{
7770
+ step2: "step2";
7771
+ step3: "step3";
7772
+ step5: "step5";
7773
+ }>;
7774
+ source_id: z.ZodString;
7775
+ field_path: z.ZodString;
7776
+ source_field: z.ZodOptional<z.ZodString>;
7777
+ source_evidence: z.ZodOptional<z.ZodString>;
7778
+ business_subject: z.ZodOptional<z.ZodString>;
7779
+ reason: z.ZodOptional<z.ZodString>;
7780
+ }, z.core.$strict>>;
7781
+ intent_groups: z.ZodArray<z.ZodObject<{
7782
+ id: z.ZodString;
7783
+ intent: z.ZodEnum<{
7784
+ INFORMATIONAL: "INFORMATIONAL";
7785
+ NAVIGATIONAL: "NAVIGATIONAL";
7786
+ COMMERCIAL: "COMMERCIAL";
7787
+ TRANSACTIONAL: "TRANSACTIONAL";
7788
+ }>;
7789
+ title: z.ZodString;
7790
+ landing_page_type: z.ZodEnum<{
7791
+ product: "product";
7792
+ category: "category";
7793
+ blog: "blog";
7794
+ landing: "landing";
7795
+ }>;
7796
+ keywords: z.ZodArray<z.ZodObject<{
7797
+ keyword: z.ZodString;
7798
+ normalized_keyword: z.ZodString;
7799
+ intents: z.ZodArray<z.ZodEnum<{
7800
+ INFORMATIONAL: "INFORMATIONAL";
7801
+ NAVIGATIONAL: "NAVIGATIONAL";
7802
+ COMMERCIAL: "COMMERCIAL";
7803
+ TRANSACTIONAL: "TRANSACTIONAL";
7804
+ }>>;
7805
+ search_volume: z.ZodNumber;
7806
+ keyword_difficulty: z.ZodNumber;
7807
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
7808
+ trend: z.ZodArray<z.ZodNumber>;
7809
+ serp_features: z.ZodArray<z.ZodString>;
7810
+ fit: z.ZodObject<{
7811
+ seo: z.ZodNumber;
7812
+ geo: z.ZodNumber;
7813
+ buyer: z.ZodNumber;
7814
+ }, z.core.$strict>;
7815
+ recommended_channel: z.ZodEnum<{
7816
+ SEO: "SEO";
7817
+ GEO: "GEO";
7818
+ DUAL: "DUAL";
7819
+ }>;
7820
+ priority: z.ZodEnum<{
7821
+ P0: "P0";
7822
+ P1: "P1";
7823
+ P2: "P2";
7824
+ P3: "P3";
7825
+ }>;
7826
+ already_in_plan: z.ZodBoolean;
7827
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
7828
+ }, z.core.$strict>>;
7829
+ }, z.core.$strict>>;
7830
+ selection_summary: z.ZodOptional<z.ZodObject<{
7831
+ fetched_count: z.ZodNumber;
7832
+ unique_count: z.ZodNumber;
7833
+ metric_gate_pass_count: z.ZodNumber;
7834
+ commercial_intent_pass_count: z.ZodNumber;
7835
+ fit_pass_count: z.ZodNumber;
7836
+ selected_count: z.ZodNumber;
7837
+ }, z.core.$strict>>;
7838
+ empty_reason_code: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
7839
+ NO_SEEDS: "NO_SEEDS";
7840
+ NO_PROVIDER_CANDIDATES: "NO_PROVIDER_CANDIDATES";
7841
+ NO_METRIC_ELIGIBLE_CANDIDATES: "NO_METRIC_ELIGIBLE_CANDIDATES";
7842
+ NO_COMMERCIAL_INTENT_CANDIDATES: "NO_COMMERCIAL_INTENT_CANDIDATES";
7843
+ NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
7844
+ }>>>;
7845
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
7846
+ schema_version: z.ZodLiteral<1>;
7847
+ }, z.core.$strict>, z.ZodObject<{
5814
7848
  database: z.ZodString;
5815
7849
  country: z.ZodString;
7850
+ provider: z.ZodLiteral<"semrush">;
7851
+ api_version: z.ZodLiteral<"v4">;
5816
7852
  fetched_at: z.ZodString;
5817
7853
  context_hash: z.ZodString;
5818
7854
  status: z.ZodEnum<{
@@ -5904,7 +7940,8 @@ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
5904
7940
  NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
5905
7941
  }>>>;
5906
7942
  error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
5907
- }, z.core.$strict>>>;
7943
+ schema_version: z.ZodLiteral<2>;
7944
+ }, z.core.$strict>], "schema_version">>>;
5908
7945
  seo_payload: z.ZodOptional<z.ZodNullable<z.ZodLazy<z.ZodObject<{
5909
7946
  schema_version: z.ZodLiteral<2>;
5910
7947
  seo_keywords: z.ZodArray<z.ZodObject<{
@@ -5913,9 +7950,9 @@ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
5913
7950
  normalized_keyword: z.ZodString;
5914
7951
  intc: z.ZodEnum<{
5915
7952
  C: "C";
7953
+ T: "T";
5916
7954
  I: "I";
5917
7955
  N: "N";
5918
- T: "T";
5919
7956
  }>;
5920
7957
  keyword_type: z.ZodString;
5921
7958
  intent_strength: z.ZodEnum<{
@@ -5948,7 +7985,50 @@ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
5948
7985
  snapshot_id: z.ZodString;
5949
7986
  selected_keywords: z.ZodArray<z.ZodString>;
5950
7987
  }, z.core.$strict>>>;
7988
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
7989
+ id: z.ZodString;
7990
+ question: z.ZodString;
7991
+ question_type: z.ZodEnum<{
7992
+ category: "category";
7993
+ trust: "trust";
7994
+ selection: "selection";
7995
+ application: "application";
7996
+ parameter: "parameter";
7997
+ cost: "cost";
7998
+ compliance: "compliance";
7999
+ delivery: "delivery";
8000
+ }>;
8001
+ intent_strength: z.ZodEnum<{
8002
+ high: "high";
8003
+ medium: "medium";
8004
+ low: "low";
8005
+ }>;
8006
+ source: z.ZodEnum<{
8007
+ ai_generation: "ai_generation";
8008
+ user_input: "user_input";
8009
+ }>;
8010
+ }, z.core.$strict>>>;
5951
8011
  }, z.core.$strict>>>>;
8012
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
8013
+ id: z.ZodString;
8014
+ question: z.ZodString;
8015
+ question_type: z.ZodEnum<{
8016
+ category: "category";
8017
+ trust: "trust";
8018
+ selection: "selection";
8019
+ application: "application";
8020
+ parameter: "parameter";
8021
+ cost: "cost";
8022
+ compliance: "compliance";
8023
+ delivery: "delivery";
8024
+ }>;
8025
+ intent_strength: z.ZodEnum<{
8026
+ high: "high";
8027
+ medium: "medium";
8028
+ low: "low";
8029
+ }>;
8030
+ source: z.ZodLiteral<"ai_generation">;
8031
+ }, z.core.$strict>>>;
5952
8032
  generation_status: z.ZodOptional<z.ZodEnum<{
5953
8033
  degraded: "degraded";
5954
8034
  ok: "ok";
@@ -5982,9 +8062,9 @@ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
5982
8062
  normalized_keyword: z.ZodString;
5983
8063
  intc: z.ZodEnum<{
5984
8064
  C: "C";
8065
+ T: "T";
5985
8066
  I: "I";
5986
8067
  N: "N";
5987
- T: "T";
5988
8068
  }>;
5989
8069
  keyword_type: z.ZodString;
5990
8070
  intent_strength: z.ZodEnum<{
@@ -6017,6 +8097,29 @@ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
6017
8097
  snapshot_id: z.ZodString;
6018
8098
  selected_keywords: z.ZodArray<z.ZodString>;
6019
8099
  }, z.core.$strict>>>;
8100
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
8101
+ id: z.ZodString;
8102
+ question: z.ZodString;
8103
+ question_type: z.ZodEnum<{
8104
+ category: "category";
8105
+ trust: "trust";
8106
+ selection: "selection";
8107
+ application: "application";
8108
+ parameter: "parameter";
8109
+ cost: "cost";
8110
+ compliance: "compliance";
8111
+ delivery: "delivery";
8112
+ }>;
8113
+ intent_strength: z.ZodEnum<{
8114
+ high: "high";
8115
+ medium: "medium";
8116
+ low: "low";
8117
+ }>;
8118
+ source: z.ZodEnum<{
8119
+ ai_generation: "ai_generation";
8120
+ user_input: "user_input";
8121
+ }>;
8122
+ }, z.core.$strict>>>;
6020
8123
  }, z.core.$strict>, z.ZodObject<{
6021
8124
  rows: z.ZodOptional<z.ZodArray<z.ZodObject<{
6022
8125
  id: z.ZodString;
@@ -6036,6 +8139,17 @@ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
6036
8139
  cpc: z.ZodNullable<z.ZodNumber>;
6037
8140
  }, z.core.$strict>>>;
6038
8141
  }, z.core.$strict>]>>;
8142
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
8143
+ single_country: "single_country";
8144
+ regional_combination: "regional_combination";
8145
+ multi_market: "multi_market";
8146
+ }>>>;
8147
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
8148
+ code: z.ZodString;
8149
+ name_zh: z.ZodString;
8150
+ name_en: z.ZodString;
8151
+ region: z.ZodString;
8152
+ }, z.core.$strict>>>;
6039
8153
  selected_value: z.ZodNullable<z.ZodUnknown>;
6040
8154
  accepted_at: z.ZodString;
6041
8155
  }, z.core.$loose>>;
@@ -6194,6 +8308,17 @@ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
6194
8308
  sr: "sr";
6195
8309
  is: "is";
6196
8310
  }>>>;
8311
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
8312
+ single_country: "single_country";
8313
+ regional_combination: "regional_combination";
8314
+ multi_market: "multi_market";
8315
+ }>>>;
8316
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
8317
+ code: z.ZodString;
8318
+ name_zh: z.ZodString;
8319
+ name_en: z.ZodString;
8320
+ region: z.ZodString;
8321
+ }, z.core.$strict>>>;
6197
8322
  }, z.core.$loose>, z.ZodObject<{
6198
8323
  id: z.ZodEnum<{
6199
8324
  recommended: "recommended";
@@ -6296,6 +8421,17 @@ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
6296
8421
  sr: "sr";
6297
8422
  is: "is";
6298
8423
  }>>>;
8424
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
8425
+ single_country: "single_country";
8426
+ regional_combination: "regional_combination";
8427
+ multi_market: "multi_market";
8428
+ }>>>;
8429
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
8430
+ code: z.ZodString;
8431
+ name_zh: z.ZodString;
8432
+ name_en: z.ZodString;
8433
+ region: z.ZodString;
8434
+ }, z.core.$strict>>>;
6299
8435
  }, z.core.$loose>, z.ZodObject<{
6300
8436
  id: z.ZodEnum<{
6301
8437
  recommended: "recommended";
@@ -6398,6 +8534,17 @@ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
6398
8534
  sr: "sr";
6399
8535
  is: "is";
6400
8536
  }>>>;
8537
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
8538
+ single_country: "single_country";
8539
+ regional_combination: "regional_combination";
8540
+ multi_market: "multi_market";
8541
+ }>>>;
8542
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
8543
+ code: z.ZodString;
8544
+ name_zh: z.ZodString;
8545
+ name_en: z.ZodString;
8546
+ region: z.ZodString;
8547
+ }, z.core.$strict>>>;
6401
8548
  }, z.core.$loose>], null>;
6402
8549
  plan: z.ZodOptional<z.ZodNullable<z.ZodObject<{
6403
8550
  lead: z.ZodString;
@@ -6405,6 +8552,18 @@ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
6405
8552
  columns: z.ZodArray<z.ZodString>;
6406
8553
  rows: z.ZodArray<z.ZodArray<z.ZodString>>;
6407
8554
  }, z.core.$strict>>>;
8555
+ structure_detail: z.ZodOptional<z.ZodNullable<z.ZodObject<{
8556
+ goal: z.ZodString;
8557
+ issue: z.ZodString;
8558
+ criteria: z.ZodArray<z.ZodString>;
8559
+ resources: z.ZodArray<z.ZodString>;
8560
+ risks: z.ZodArray<z.ZodString>;
8561
+ execution: z.ZodObject<{
8562
+ standard: z.ZodArray<z.ZodString>;
8563
+ acceptance: z.ZodArray<z.ZodString>;
8564
+ downstream: z.ZodArray<z.ZodString>;
8565
+ }, z.core.$strict>;
8566
+ }, z.core.$strict>>>;
6408
8567
  note_tips: z.ZodArray<z.ZodString>;
6409
8568
  note_placeholder: z.ZodString;
6410
8569
  evidence_refs: z.ZodArray<z.ZodObject<{
@@ -6415,12 +8574,108 @@ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
6415
8574
  source_id: z.ZodString;
6416
8575
  field_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
6417
8576
  }, z.core.$strict>>;
6418
- semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodObject<{
8577
+ semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
8578
+ database: z.ZodString;
8579
+ country: z.ZodString;
8580
+ provider: z.ZodLiteral<"semrush">;
8581
+ api_version: z.ZodLiteral<"v4">;
8582
+ fetched_at: z.ZodString;
8583
+ context_hash: z.ZodString;
8584
+ status: z.ZodEnum<{
8585
+ ready: "ready";
8586
+ failed: "failed";
8587
+ disabled: "disabled";
8588
+ empty: "empty";
8589
+ timeout: "timeout";
8590
+ rate_limited: "rate_limited";
8591
+ quota_exhausted: "quota_exhausted";
8592
+ }>;
8593
+ seeds: z.ZodArray<z.ZodObject<{
8594
+ id: z.ZodString;
8595
+ term: z.ZodString;
8596
+ source_type: z.ZodEnum<{
8597
+ step2: "step2";
8598
+ step3: "step3";
8599
+ step5: "step5";
8600
+ }>;
8601
+ source_id: z.ZodString;
8602
+ field_path: z.ZodString;
8603
+ source_field: z.ZodOptional<z.ZodString>;
8604
+ source_evidence: z.ZodOptional<z.ZodString>;
8605
+ business_subject: z.ZodOptional<z.ZodString>;
8606
+ reason: z.ZodOptional<z.ZodString>;
8607
+ }, z.core.$strict>>;
8608
+ intent_groups: z.ZodArray<z.ZodObject<{
8609
+ id: z.ZodString;
8610
+ intent: z.ZodEnum<{
8611
+ INFORMATIONAL: "INFORMATIONAL";
8612
+ NAVIGATIONAL: "NAVIGATIONAL";
8613
+ COMMERCIAL: "COMMERCIAL";
8614
+ TRANSACTIONAL: "TRANSACTIONAL";
8615
+ }>;
8616
+ title: z.ZodString;
8617
+ landing_page_type: z.ZodEnum<{
8618
+ product: "product";
8619
+ category: "category";
8620
+ blog: "blog";
8621
+ landing: "landing";
8622
+ }>;
8623
+ keywords: z.ZodArray<z.ZodObject<{
8624
+ keyword: z.ZodString;
8625
+ normalized_keyword: z.ZodString;
8626
+ intents: z.ZodArray<z.ZodEnum<{
8627
+ INFORMATIONAL: "INFORMATIONAL";
8628
+ NAVIGATIONAL: "NAVIGATIONAL";
8629
+ COMMERCIAL: "COMMERCIAL";
8630
+ TRANSACTIONAL: "TRANSACTIONAL";
8631
+ }>>;
8632
+ search_volume: z.ZodNumber;
8633
+ keyword_difficulty: z.ZodNumber;
8634
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
8635
+ trend: z.ZodArray<z.ZodNumber>;
8636
+ serp_features: z.ZodArray<z.ZodString>;
8637
+ fit: z.ZodObject<{
8638
+ seo: z.ZodNumber;
8639
+ geo: z.ZodNumber;
8640
+ buyer: z.ZodNumber;
8641
+ }, z.core.$strict>;
8642
+ recommended_channel: z.ZodEnum<{
8643
+ SEO: "SEO";
8644
+ GEO: "GEO";
8645
+ DUAL: "DUAL";
8646
+ }>;
8647
+ priority: z.ZodEnum<{
8648
+ P0: "P0";
8649
+ P1: "P1";
8650
+ P2: "P2";
8651
+ P3: "P3";
8652
+ }>;
8653
+ already_in_plan: z.ZodBoolean;
8654
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
8655
+ }, z.core.$strict>>;
8656
+ }, z.core.$strict>>;
8657
+ selection_summary: z.ZodOptional<z.ZodObject<{
8658
+ fetched_count: z.ZodNumber;
8659
+ unique_count: z.ZodNumber;
8660
+ metric_gate_pass_count: z.ZodNumber;
8661
+ commercial_intent_pass_count: z.ZodNumber;
8662
+ fit_pass_count: z.ZodNumber;
8663
+ selected_count: z.ZodNumber;
8664
+ }, z.core.$strict>>;
8665
+ empty_reason_code: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
8666
+ NO_SEEDS: "NO_SEEDS";
8667
+ NO_PROVIDER_CANDIDATES: "NO_PROVIDER_CANDIDATES";
8668
+ NO_METRIC_ELIGIBLE_CANDIDATES: "NO_METRIC_ELIGIBLE_CANDIDATES";
8669
+ NO_COMMERCIAL_INTENT_CANDIDATES: "NO_COMMERCIAL_INTENT_CANDIDATES";
8670
+ NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
8671
+ }>>>;
8672
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
6419
8673
  schema_version: z.ZodLiteral<1>;
6420
- provider: z.ZodLiteral<"semrush">;
6421
- api_version: z.ZodLiteral<"v4">;
8674
+ }, z.core.$strict>, z.ZodObject<{
6422
8675
  database: z.ZodString;
6423
8676
  country: z.ZodString;
8677
+ provider: z.ZodLiteral<"semrush">;
8678
+ api_version: z.ZodLiteral<"v4">;
6424
8679
  fetched_at: z.ZodString;
6425
8680
  context_hash: z.ZodString;
6426
8681
  status: z.ZodEnum<{
@@ -6512,7 +8767,8 @@ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
6512
8767
  NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
6513
8768
  }>>>;
6514
8769
  error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
6515
- }, z.core.$strict>>>;
8770
+ schema_version: z.ZodLiteral<2>;
8771
+ }, z.core.$strict>], "schema_version">>>;
6516
8772
  seo_payload: z.ZodOptional<z.ZodNullable<z.ZodLazy<z.ZodObject<{
6517
8773
  schema_version: z.ZodLiteral<2>;
6518
8774
  seo_keywords: z.ZodArray<z.ZodObject<{
@@ -6521,9 +8777,9 @@ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
6521
8777
  normalized_keyword: z.ZodString;
6522
8778
  intc: z.ZodEnum<{
6523
8779
  C: "C";
8780
+ T: "T";
6524
8781
  I: "I";
6525
8782
  N: "N";
6526
- T: "T";
6527
8783
  }>;
6528
8784
  keyword_type: z.ZodString;
6529
8785
  intent_strength: z.ZodEnum<{
@@ -6556,7 +8812,50 @@ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
6556
8812
  snapshot_id: z.ZodString;
6557
8813
  selected_keywords: z.ZodArray<z.ZodString>;
6558
8814
  }, z.core.$strict>>>;
8815
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
8816
+ id: z.ZodString;
8817
+ question: z.ZodString;
8818
+ question_type: z.ZodEnum<{
8819
+ category: "category";
8820
+ trust: "trust";
8821
+ selection: "selection";
8822
+ application: "application";
8823
+ parameter: "parameter";
8824
+ cost: "cost";
8825
+ compliance: "compliance";
8826
+ delivery: "delivery";
8827
+ }>;
8828
+ intent_strength: z.ZodEnum<{
8829
+ high: "high";
8830
+ medium: "medium";
8831
+ low: "low";
8832
+ }>;
8833
+ source: z.ZodEnum<{
8834
+ ai_generation: "ai_generation";
8835
+ user_input: "user_input";
8836
+ }>;
8837
+ }, z.core.$strict>>>;
6559
8838
  }, z.core.$strict>>>>;
8839
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
8840
+ id: z.ZodString;
8841
+ question: z.ZodString;
8842
+ question_type: z.ZodEnum<{
8843
+ category: "category";
8844
+ trust: "trust";
8845
+ selection: "selection";
8846
+ application: "application";
8847
+ parameter: "parameter";
8848
+ cost: "cost";
8849
+ compliance: "compliance";
8850
+ delivery: "delivery";
8851
+ }>;
8852
+ intent_strength: z.ZodEnum<{
8853
+ high: "high";
8854
+ medium: "medium";
8855
+ low: "low";
8856
+ }>;
8857
+ source: z.ZodLiteral<"ai_generation">;
8858
+ }, z.core.$strict>>>;
6560
8859
  generation_status: z.ZodOptional<z.ZodEnum<{
6561
8860
  degraded: "degraded";
6562
8861
  ok: "ok";
@@ -6590,9 +8889,9 @@ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
6590
8889
  normalized_keyword: z.ZodString;
6591
8890
  intc: z.ZodEnum<{
6592
8891
  C: "C";
8892
+ T: "T";
6593
8893
  I: "I";
6594
8894
  N: "N";
6595
- T: "T";
6596
8895
  }>;
6597
8896
  keyword_type: z.ZodString;
6598
8897
  intent_strength: z.ZodEnum<{
@@ -6625,6 +8924,29 @@ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
6625
8924
  snapshot_id: z.ZodString;
6626
8925
  selected_keywords: z.ZodArray<z.ZodString>;
6627
8926
  }, z.core.$strict>>>;
8927
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
8928
+ id: z.ZodString;
8929
+ question: z.ZodString;
8930
+ question_type: z.ZodEnum<{
8931
+ category: "category";
8932
+ trust: "trust";
8933
+ selection: "selection";
8934
+ application: "application";
8935
+ parameter: "parameter";
8936
+ cost: "cost";
8937
+ compliance: "compliance";
8938
+ delivery: "delivery";
8939
+ }>;
8940
+ intent_strength: z.ZodEnum<{
8941
+ high: "high";
8942
+ medium: "medium";
8943
+ low: "low";
8944
+ }>;
8945
+ source: z.ZodEnum<{
8946
+ ai_generation: "ai_generation";
8947
+ user_input: "user_input";
8948
+ }>;
8949
+ }, z.core.$strict>>>;
6628
8950
  }, z.core.$strict>, z.ZodObject<{
6629
8951
  rows: z.ZodOptional<z.ZodArray<z.ZodObject<{
6630
8952
  id: z.ZodString;
@@ -6644,6 +8966,17 @@ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
6644
8966
  cpc: z.ZodNullable<z.ZodNumber>;
6645
8967
  }, z.core.$strict>>>;
6646
8968
  }, z.core.$strict>]>>;
8969
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
8970
+ single_country: "single_country";
8971
+ regional_combination: "regional_combination";
8972
+ multi_market: "multi_market";
8973
+ }>>>;
8974
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
8975
+ code: z.ZodString;
8976
+ name_zh: z.ZodString;
8977
+ name_en: z.ZodString;
8978
+ region: z.ZodString;
8979
+ }, z.core.$strict>>>;
6647
8980
  selected_value: z.ZodNullable<z.ZodUnknown>;
6648
8981
  accepted_at: z.ZodString;
6649
8982
  }, z.core.$loose>>;
@@ -6805,6 +9138,17 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
6805
9138
  sr: "sr";
6806
9139
  is: "is";
6807
9140
  }>>>;
9141
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
9142
+ single_country: "single_country";
9143
+ regional_combination: "regional_combination";
9144
+ multi_market: "multi_market";
9145
+ }>>>;
9146
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
9147
+ code: z.ZodString;
9148
+ name_zh: z.ZodString;
9149
+ name_en: z.ZodString;
9150
+ region: z.ZodString;
9151
+ }, z.core.$strict>>>;
6808
9152
  }, z.core.$loose>, z.ZodObject<{
6809
9153
  id: z.ZodEnum<{
6810
9154
  recommended: "recommended";
@@ -6907,6 +9251,17 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
6907
9251
  sr: "sr";
6908
9252
  is: "is";
6909
9253
  }>>>;
9254
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
9255
+ single_country: "single_country";
9256
+ regional_combination: "regional_combination";
9257
+ multi_market: "multi_market";
9258
+ }>>>;
9259
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
9260
+ code: z.ZodString;
9261
+ name_zh: z.ZodString;
9262
+ name_en: z.ZodString;
9263
+ region: z.ZodString;
9264
+ }, z.core.$strict>>>;
6910
9265
  }, z.core.$loose>, z.ZodObject<{
6911
9266
  id: z.ZodEnum<{
6912
9267
  recommended: "recommended";
@@ -7009,6 +9364,17 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
7009
9364
  sr: "sr";
7010
9365
  is: "is";
7011
9366
  }>>>;
9367
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
9368
+ single_country: "single_country";
9369
+ regional_combination: "regional_combination";
9370
+ multi_market: "multi_market";
9371
+ }>>>;
9372
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
9373
+ code: z.ZodString;
9374
+ name_zh: z.ZodString;
9375
+ name_en: z.ZodString;
9376
+ region: z.ZodString;
9377
+ }, z.core.$strict>>>;
7012
9378
  }, z.core.$loose>], null>;
7013
9379
  plan: z.ZodOptional<z.ZodNullable<z.ZodObject<{
7014
9380
  lead: z.ZodString;
@@ -7016,6 +9382,18 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
7016
9382
  columns: z.ZodArray<z.ZodString>;
7017
9383
  rows: z.ZodArray<z.ZodArray<z.ZodString>>;
7018
9384
  }, z.core.$strict>>>;
9385
+ structure_detail: z.ZodOptional<z.ZodNullable<z.ZodObject<{
9386
+ goal: z.ZodString;
9387
+ issue: z.ZodString;
9388
+ criteria: z.ZodArray<z.ZodString>;
9389
+ resources: z.ZodArray<z.ZodString>;
9390
+ risks: z.ZodArray<z.ZodString>;
9391
+ execution: z.ZodObject<{
9392
+ standard: z.ZodArray<z.ZodString>;
9393
+ acceptance: z.ZodArray<z.ZodString>;
9394
+ downstream: z.ZodArray<z.ZodString>;
9395
+ }, z.core.$strict>;
9396
+ }, z.core.$strict>>>;
7019
9397
  note_tips: z.ZodArray<z.ZodString>;
7020
9398
  note_placeholder: z.ZodString;
7021
9399
  evidence_refs: z.ZodArray<z.ZodObject<{
@@ -7026,12 +9404,108 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
7026
9404
  source_id: z.ZodString;
7027
9405
  field_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
7028
9406
  }, z.core.$strict>>;
7029
- semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodObject<{
7030
- schema_version: z.ZodLiteral<1>;
9407
+ semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
9408
+ database: z.ZodString;
9409
+ country: z.ZodString;
7031
9410
  provider: z.ZodLiteral<"semrush">;
7032
9411
  api_version: z.ZodLiteral<"v4">;
9412
+ fetched_at: z.ZodString;
9413
+ context_hash: z.ZodString;
9414
+ status: z.ZodEnum<{
9415
+ ready: "ready";
9416
+ failed: "failed";
9417
+ disabled: "disabled";
9418
+ empty: "empty";
9419
+ timeout: "timeout";
9420
+ rate_limited: "rate_limited";
9421
+ quota_exhausted: "quota_exhausted";
9422
+ }>;
9423
+ seeds: z.ZodArray<z.ZodObject<{
9424
+ id: z.ZodString;
9425
+ term: z.ZodString;
9426
+ source_type: z.ZodEnum<{
9427
+ step2: "step2";
9428
+ step3: "step3";
9429
+ step5: "step5";
9430
+ }>;
9431
+ source_id: z.ZodString;
9432
+ field_path: z.ZodString;
9433
+ source_field: z.ZodOptional<z.ZodString>;
9434
+ source_evidence: z.ZodOptional<z.ZodString>;
9435
+ business_subject: z.ZodOptional<z.ZodString>;
9436
+ reason: z.ZodOptional<z.ZodString>;
9437
+ }, z.core.$strict>>;
9438
+ intent_groups: z.ZodArray<z.ZodObject<{
9439
+ id: z.ZodString;
9440
+ intent: z.ZodEnum<{
9441
+ INFORMATIONAL: "INFORMATIONAL";
9442
+ NAVIGATIONAL: "NAVIGATIONAL";
9443
+ COMMERCIAL: "COMMERCIAL";
9444
+ TRANSACTIONAL: "TRANSACTIONAL";
9445
+ }>;
9446
+ title: z.ZodString;
9447
+ landing_page_type: z.ZodEnum<{
9448
+ product: "product";
9449
+ category: "category";
9450
+ blog: "blog";
9451
+ landing: "landing";
9452
+ }>;
9453
+ keywords: z.ZodArray<z.ZodObject<{
9454
+ keyword: z.ZodString;
9455
+ normalized_keyword: z.ZodString;
9456
+ intents: z.ZodArray<z.ZodEnum<{
9457
+ INFORMATIONAL: "INFORMATIONAL";
9458
+ NAVIGATIONAL: "NAVIGATIONAL";
9459
+ COMMERCIAL: "COMMERCIAL";
9460
+ TRANSACTIONAL: "TRANSACTIONAL";
9461
+ }>>;
9462
+ search_volume: z.ZodNumber;
9463
+ keyword_difficulty: z.ZodNumber;
9464
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
9465
+ trend: z.ZodArray<z.ZodNumber>;
9466
+ serp_features: z.ZodArray<z.ZodString>;
9467
+ fit: z.ZodObject<{
9468
+ seo: z.ZodNumber;
9469
+ geo: z.ZodNumber;
9470
+ buyer: z.ZodNumber;
9471
+ }, z.core.$strict>;
9472
+ recommended_channel: z.ZodEnum<{
9473
+ SEO: "SEO";
9474
+ GEO: "GEO";
9475
+ DUAL: "DUAL";
9476
+ }>;
9477
+ priority: z.ZodEnum<{
9478
+ P0: "P0";
9479
+ P1: "P1";
9480
+ P2: "P2";
9481
+ P3: "P3";
9482
+ }>;
9483
+ already_in_plan: z.ZodBoolean;
9484
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
9485
+ }, z.core.$strict>>;
9486
+ }, z.core.$strict>>;
9487
+ selection_summary: z.ZodOptional<z.ZodObject<{
9488
+ fetched_count: z.ZodNumber;
9489
+ unique_count: z.ZodNumber;
9490
+ metric_gate_pass_count: z.ZodNumber;
9491
+ commercial_intent_pass_count: z.ZodNumber;
9492
+ fit_pass_count: z.ZodNumber;
9493
+ selected_count: z.ZodNumber;
9494
+ }, z.core.$strict>>;
9495
+ empty_reason_code: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
9496
+ NO_SEEDS: "NO_SEEDS";
9497
+ NO_PROVIDER_CANDIDATES: "NO_PROVIDER_CANDIDATES";
9498
+ NO_METRIC_ELIGIBLE_CANDIDATES: "NO_METRIC_ELIGIBLE_CANDIDATES";
9499
+ NO_COMMERCIAL_INTENT_CANDIDATES: "NO_COMMERCIAL_INTENT_CANDIDATES";
9500
+ NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
9501
+ }>>>;
9502
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
9503
+ schema_version: z.ZodLiteral<1>;
9504
+ }, z.core.$strict>, z.ZodObject<{
7033
9505
  database: z.ZodString;
7034
9506
  country: z.ZodString;
9507
+ provider: z.ZodLiteral<"semrush">;
9508
+ api_version: z.ZodLiteral<"v4">;
7035
9509
  fetched_at: z.ZodString;
7036
9510
  context_hash: z.ZodString;
7037
9511
  status: z.ZodEnum<{
@@ -7123,7 +9597,8 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
7123
9597
  NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
7124
9598
  }>>>;
7125
9599
  error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
7126
- }, z.core.$strict>>>;
9600
+ schema_version: z.ZodLiteral<2>;
9601
+ }, z.core.$strict>], "schema_version">>>;
7127
9602
  seo_payload: z.ZodOptional<z.ZodNullable<z.ZodLazy<z.ZodObject<{
7128
9603
  schema_version: z.ZodLiteral<2>;
7129
9604
  seo_keywords: z.ZodArray<z.ZodObject<{
@@ -7132,9 +9607,9 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
7132
9607
  normalized_keyword: z.ZodString;
7133
9608
  intc: z.ZodEnum<{
7134
9609
  C: "C";
9610
+ T: "T";
7135
9611
  I: "I";
7136
9612
  N: "N";
7137
- T: "T";
7138
9613
  }>;
7139
9614
  keyword_type: z.ZodString;
7140
9615
  intent_strength: z.ZodEnum<{
@@ -7167,7 +9642,50 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
7167
9642
  snapshot_id: z.ZodString;
7168
9643
  selected_keywords: z.ZodArray<z.ZodString>;
7169
9644
  }, z.core.$strict>>>;
9645
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
9646
+ id: z.ZodString;
9647
+ question: z.ZodString;
9648
+ question_type: z.ZodEnum<{
9649
+ category: "category";
9650
+ trust: "trust";
9651
+ selection: "selection";
9652
+ application: "application";
9653
+ parameter: "parameter";
9654
+ cost: "cost";
9655
+ compliance: "compliance";
9656
+ delivery: "delivery";
9657
+ }>;
9658
+ intent_strength: z.ZodEnum<{
9659
+ high: "high";
9660
+ medium: "medium";
9661
+ low: "low";
9662
+ }>;
9663
+ source: z.ZodEnum<{
9664
+ ai_generation: "ai_generation";
9665
+ user_input: "user_input";
9666
+ }>;
9667
+ }, z.core.$strict>>>;
7170
9668
  }, z.core.$strict>>>>;
9669
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
9670
+ id: z.ZodString;
9671
+ question: z.ZodString;
9672
+ question_type: z.ZodEnum<{
9673
+ category: "category";
9674
+ trust: "trust";
9675
+ selection: "selection";
9676
+ application: "application";
9677
+ parameter: "parameter";
9678
+ cost: "cost";
9679
+ compliance: "compliance";
9680
+ delivery: "delivery";
9681
+ }>;
9682
+ intent_strength: z.ZodEnum<{
9683
+ high: "high";
9684
+ medium: "medium";
9685
+ low: "low";
9686
+ }>;
9687
+ source: z.ZodLiteral<"ai_generation">;
9688
+ }, z.core.$strict>>>;
7171
9689
  generation_status: z.ZodOptional<z.ZodEnum<{
7172
9690
  degraded: "degraded";
7173
9691
  ok: "ok";
@@ -7201,9 +9719,9 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
7201
9719
  normalized_keyword: z.ZodString;
7202
9720
  intc: z.ZodEnum<{
7203
9721
  C: "C";
9722
+ T: "T";
7204
9723
  I: "I";
7205
9724
  N: "N";
7206
- T: "T";
7207
9725
  }>;
7208
9726
  keyword_type: z.ZodString;
7209
9727
  intent_strength: z.ZodEnum<{
@@ -7236,6 +9754,29 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
7236
9754
  snapshot_id: z.ZodString;
7237
9755
  selected_keywords: z.ZodArray<z.ZodString>;
7238
9756
  }, z.core.$strict>>>;
9757
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
9758
+ id: z.ZodString;
9759
+ question: z.ZodString;
9760
+ question_type: z.ZodEnum<{
9761
+ category: "category";
9762
+ trust: "trust";
9763
+ selection: "selection";
9764
+ application: "application";
9765
+ parameter: "parameter";
9766
+ cost: "cost";
9767
+ compliance: "compliance";
9768
+ delivery: "delivery";
9769
+ }>;
9770
+ intent_strength: z.ZodEnum<{
9771
+ high: "high";
9772
+ medium: "medium";
9773
+ low: "low";
9774
+ }>;
9775
+ source: z.ZodEnum<{
9776
+ ai_generation: "ai_generation";
9777
+ user_input: "user_input";
9778
+ }>;
9779
+ }, z.core.$strict>>>;
7239
9780
  }, z.core.$strict>, z.ZodObject<{
7240
9781
  rows: z.ZodOptional<z.ZodArray<z.ZodObject<{
7241
9782
  id: z.ZodString;
@@ -7255,6 +9796,17 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
7255
9796
  cpc: z.ZodNullable<z.ZodNumber>;
7256
9797
  }, z.core.$strict>>>;
7257
9798
  }, z.core.$strict>]>>;
9799
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
9800
+ single_country: "single_country";
9801
+ regional_combination: "regional_combination";
9802
+ multi_market: "multi_market";
9803
+ }>>>;
9804
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
9805
+ code: z.ZodString;
9806
+ name_zh: z.ZodString;
9807
+ name_en: z.ZodString;
9808
+ region: z.ZodString;
9809
+ }, z.core.$strict>>>;
7258
9810
  selected_value: z.ZodNullable<z.ZodUnknown>;
7259
9811
  accepted_at: z.ZodString;
7260
9812
  }, z.core.$loose>>;
@@ -7413,6 +9965,17 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
7413
9965
  sr: "sr";
7414
9966
  is: "is";
7415
9967
  }>>>;
9968
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
9969
+ single_country: "single_country";
9970
+ regional_combination: "regional_combination";
9971
+ multi_market: "multi_market";
9972
+ }>>>;
9973
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
9974
+ code: z.ZodString;
9975
+ name_zh: z.ZodString;
9976
+ name_en: z.ZodString;
9977
+ region: z.ZodString;
9978
+ }, z.core.$strict>>>;
7416
9979
  }, z.core.$loose>, z.ZodObject<{
7417
9980
  id: z.ZodEnum<{
7418
9981
  recommended: "recommended";
@@ -7515,6 +10078,17 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
7515
10078
  sr: "sr";
7516
10079
  is: "is";
7517
10080
  }>>>;
10081
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
10082
+ single_country: "single_country";
10083
+ regional_combination: "regional_combination";
10084
+ multi_market: "multi_market";
10085
+ }>>>;
10086
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
10087
+ code: z.ZodString;
10088
+ name_zh: z.ZodString;
10089
+ name_en: z.ZodString;
10090
+ region: z.ZodString;
10091
+ }, z.core.$strict>>>;
7518
10092
  }, z.core.$loose>, z.ZodObject<{
7519
10093
  id: z.ZodEnum<{
7520
10094
  recommended: "recommended";
@@ -7617,29 +10191,148 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
7617
10191
  sr: "sr";
7618
10192
  is: "is";
7619
10193
  }>>>;
7620
- }, z.core.$loose>], null>;
7621
- plan: z.ZodOptional<z.ZodNullable<z.ZodObject<{
7622
- lead: z.ZodString;
7623
- title: z.ZodString;
7624
- columns: z.ZodArray<z.ZodString>;
7625
- rows: z.ZodArray<z.ZodArray<z.ZodString>>;
7626
- }, z.core.$strict>>>;
7627
- note_tips: z.ZodArray<z.ZodString>;
7628
- note_placeholder: z.ZodString;
7629
- evidence_refs: z.ZodArray<z.ZodObject<{
7630
- source_type: z.ZodEnum<{
7631
- step2: "step2";
7632
- step3: "step3";
7633
- }>;
7634
- source_id: z.ZodString;
7635
- field_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
7636
- }, z.core.$strict>>;
7637
- semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodObject<{
10194
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
10195
+ single_country: "single_country";
10196
+ regional_combination: "regional_combination";
10197
+ multi_market: "multi_market";
10198
+ }>>>;
10199
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
10200
+ code: z.ZodString;
10201
+ name_zh: z.ZodString;
10202
+ name_en: z.ZodString;
10203
+ region: z.ZodString;
10204
+ }, z.core.$strict>>>;
10205
+ }, z.core.$loose>], null>;
10206
+ plan: z.ZodOptional<z.ZodNullable<z.ZodObject<{
10207
+ lead: z.ZodString;
10208
+ title: z.ZodString;
10209
+ columns: z.ZodArray<z.ZodString>;
10210
+ rows: z.ZodArray<z.ZodArray<z.ZodString>>;
10211
+ }, z.core.$strict>>>;
10212
+ structure_detail: z.ZodOptional<z.ZodNullable<z.ZodObject<{
10213
+ goal: z.ZodString;
10214
+ issue: z.ZodString;
10215
+ criteria: z.ZodArray<z.ZodString>;
10216
+ resources: z.ZodArray<z.ZodString>;
10217
+ risks: z.ZodArray<z.ZodString>;
10218
+ execution: z.ZodObject<{
10219
+ standard: z.ZodArray<z.ZodString>;
10220
+ acceptance: z.ZodArray<z.ZodString>;
10221
+ downstream: z.ZodArray<z.ZodString>;
10222
+ }, z.core.$strict>;
10223
+ }, z.core.$strict>>>;
10224
+ note_tips: z.ZodArray<z.ZodString>;
10225
+ note_placeholder: z.ZodString;
10226
+ evidence_refs: z.ZodArray<z.ZodObject<{
10227
+ source_type: z.ZodEnum<{
10228
+ step2: "step2";
10229
+ step3: "step3";
10230
+ }>;
10231
+ source_id: z.ZodString;
10232
+ field_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
10233
+ }, z.core.$strict>>;
10234
+ semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
10235
+ database: z.ZodString;
10236
+ country: z.ZodString;
10237
+ provider: z.ZodLiteral<"semrush">;
10238
+ api_version: z.ZodLiteral<"v4">;
10239
+ fetched_at: z.ZodString;
10240
+ context_hash: z.ZodString;
10241
+ status: z.ZodEnum<{
10242
+ ready: "ready";
10243
+ failed: "failed";
10244
+ disabled: "disabled";
10245
+ empty: "empty";
10246
+ timeout: "timeout";
10247
+ rate_limited: "rate_limited";
10248
+ quota_exhausted: "quota_exhausted";
10249
+ }>;
10250
+ seeds: z.ZodArray<z.ZodObject<{
10251
+ id: z.ZodString;
10252
+ term: z.ZodString;
10253
+ source_type: z.ZodEnum<{
10254
+ step2: "step2";
10255
+ step3: "step3";
10256
+ step5: "step5";
10257
+ }>;
10258
+ source_id: z.ZodString;
10259
+ field_path: z.ZodString;
10260
+ source_field: z.ZodOptional<z.ZodString>;
10261
+ source_evidence: z.ZodOptional<z.ZodString>;
10262
+ business_subject: z.ZodOptional<z.ZodString>;
10263
+ reason: z.ZodOptional<z.ZodString>;
10264
+ }, z.core.$strict>>;
10265
+ intent_groups: z.ZodArray<z.ZodObject<{
10266
+ id: z.ZodString;
10267
+ intent: z.ZodEnum<{
10268
+ INFORMATIONAL: "INFORMATIONAL";
10269
+ NAVIGATIONAL: "NAVIGATIONAL";
10270
+ COMMERCIAL: "COMMERCIAL";
10271
+ TRANSACTIONAL: "TRANSACTIONAL";
10272
+ }>;
10273
+ title: z.ZodString;
10274
+ landing_page_type: z.ZodEnum<{
10275
+ product: "product";
10276
+ category: "category";
10277
+ blog: "blog";
10278
+ landing: "landing";
10279
+ }>;
10280
+ keywords: z.ZodArray<z.ZodObject<{
10281
+ keyword: z.ZodString;
10282
+ normalized_keyword: z.ZodString;
10283
+ intents: z.ZodArray<z.ZodEnum<{
10284
+ INFORMATIONAL: "INFORMATIONAL";
10285
+ NAVIGATIONAL: "NAVIGATIONAL";
10286
+ COMMERCIAL: "COMMERCIAL";
10287
+ TRANSACTIONAL: "TRANSACTIONAL";
10288
+ }>>;
10289
+ search_volume: z.ZodNumber;
10290
+ keyword_difficulty: z.ZodNumber;
10291
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
10292
+ trend: z.ZodArray<z.ZodNumber>;
10293
+ serp_features: z.ZodArray<z.ZodString>;
10294
+ fit: z.ZodObject<{
10295
+ seo: z.ZodNumber;
10296
+ geo: z.ZodNumber;
10297
+ buyer: z.ZodNumber;
10298
+ }, z.core.$strict>;
10299
+ recommended_channel: z.ZodEnum<{
10300
+ SEO: "SEO";
10301
+ GEO: "GEO";
10302
+ DUAL: "DUAL";
10303
+ }>;
10304
+ priority: z.ZodEnum<{
10305
+ P0: "P0";
10306
+ P1: "P1";
10307
+ P2: "P2";
10308
+ P3: "P3";
10309
+ }>;
10310
+ already_in_plan: z.ZodBoolean;
10311
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
10312
+ }, z.core.$strict>>;
10313
+ }, z.core.$strict>>;
10314
+ selection_summary: z.ZodOptional<z.ZodObject<{
10315
+ fetched_count: z.ZodNumber;
10316
+ unique_count: z.ZodNumber;
10317
+ metric_gate_pass_count: z.ZodNumber;
10318
+ commercial_intent_pass_count: z.ZodNumber;
10319
+ fit_pass_count: z.ZodNumber;
10320
+ selected_count: z.ZodNumber;
10321
+ }, z.core.$strict>>;
10322
+ empty_reason_code: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
10323
+ NO_SEEDS: "NO_SEEDS";
10324
+ NO_PROVIDER_CANDIDATES: "NO_PROVIDER_CANDIDATES";
10325
+ NO_METRIC_ELIGIBLE_CANDIDATES: "NO_METRIC_ELIGIBLE_CANDIDATES";
10326
+ NO_COMMERCIAL_INTENT_CANDIDATES: "NO_COMMERCIAL_INTENT_CANDIDATES";
10327
+ NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
10328
+ }>>>;
10329
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
7638
10330
  schema_version: z.ZodLiteral<1>;
7639
- provider: z.ZodLiteral<"semrush">;
7640
- api_version: z.ZodLiteral<"v4">;
10331
+ }, z.core.$strict>, z.ZodObject<{
7641
10332
  database: z.ZodString;
7642
10333
  country: z.ZodString;
10334
+ provider: z.ZodLiteral<"semrush">;
10335
+ api_version: z.ZodLiteral<"v4">;
7643
10336
  fetched_at: z.ZodString;
7644
10337
  context_hash: z.ZodString;
7645
10338
  status: z.ZodEnum<{
@@ -7731,7 +10424,8 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
7731
10424
  NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
7732
10425
  }>>>;
7733
10426
  error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
7734
- }, z.core.$strict>>>;
10427
+ schema_version: z.ZodLiteral<2>;
10428
+ }, z.core.$strict>], "schema_version">>>;
7735
10429
  seo_payload: z.ZodOptional<z.ZodNullable<z.ZodLazy<z.ZodObject<{
7736
10430
  schema_version: z.ZodLiteral<2>;
7737
10431
  seo_keywords: z.ZodArray<z.ZodObject<{
@@ -7740,9 +10434,9 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
7740
10434
  normalized_keyword: z.ZodString;
7741
10435
  intc: z.ZodEnum<{
7742
10436
  C: "C";
10437
+ T: "T";
7743
10438
  I: "I";
7744
10439
  N: "N";
7745
- T: "T";
7746
10440
  }>;
7747
10441
  keyword_type: z.ZodString;
7748
10442
  intent_strength: z.ZodEnum<{
@@ -7775,7 +10469,50 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
7775
10469
  snapshot_id: z.ZodString;
7776
10470
  selected_keywords: z.ZodArray<z.ZodString>;
7777
10471
  }, z.core.$strict>>>;
10472
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
10473
+ id: z.ZodString;
10474
+ question: z.ZodString;
10475
+ question_type: z.ZodEnum<{
10476
+ category: "category";
10477
+ trust: "trust";
10478
+ selection: "selection";
10479
+ application: "application";
10480
+ parameter: "parameter";
10481
+ cost: "cost";
10482
+ compliance: "compliance";
10483
+ delivery: "delivery";
10484
+ }>;
10485
+ intent_strength: z.ZodEnum<{
10486
+ high: "high";
10487
+ medium: "medium";
10488
+ low: "low";
10489
+ }>;
10490
+ source: z.ZodEnum<{
10491
+ ai_generation: "ai_generation";
10492
+ user_input: "user_input";
10493
+ }>;
10494
+ }, z.core.$strict>>>;
7778
10495
  }, z.core.$strict>>>>;
10496
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
10497
+ id: z.ZodString;
10498
+ question: z.ZodString;
10499
+ question_type: z.ZodEnum<{
10500
+ category: "category";
10501
+ trust: "trust";
10502
+ selection: "selection";
10503
+ application: "application";
10504
+ parameter: "parameter";
10505
+ cost: "cost";
10506
+ compliance: "compliance";
10507
+ delivery: "delivery";
10508
+ }>;
10509
+ intent_strength: z.ZodEnum<{
10510
+ high: "high";
10511
+ medium: "medium";
10512
+ low: "low";
10513
+ }>;
10514
+ source: z.ZodLiteral<"ai_generation">;
10515
+ }, z.core.$strict>>>;
7779
10516
  generation_status: z.ZodOptional<z.ZodEnum<{
7780
10517
  degraded: "degraded";
7781
10518
  ok: "ok";
@@ -7809,9 +10546,9 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
7809
10546
  normalized_keyword: z.ZodString;
7810
10547
  intc: z.ZodEnum<{
7811
10548
  C: "C";
10549
+ T: "T";
7812
10550
  I: "I";
7813
10551
  N: "N";
7814
- T: "T";
7815
10552
  }>;
7816
10553
  keyword_type: z.ZodString;
7817
10554
  intent_strength: z.ZodEnum<{
@@ -7844,6 +10581,29 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
7844
10581
  snapshot_id: z.ZodString;
7845
10582
  selected_keywords: z.ZodArray<z.ZodString>;
7846
10583
  }, z.core.$strict>>>;
10584
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
10585
+ id: z.ZodString;
10586
+ question: z.ZodString;
10587
+ question_type: z.ZodEnum<{
10588
+ category: "category";
10589
+ trust: "trust";
10590
+ selection: "selection";
10591
+ application: "application";
10592
+ parameter: "parameter";
10593
+ cost: "cost";
10594
+ compliance: "compliance";
10595
+ delivery: "delivery";
10596
+ }>;
10597
+ intent_strength: z.ZodEnum<{
10598
+ high: "high";
10599
+ medium: "medium";
10600
+ low: "low";
10601
+ }>;
10602
+ source: z.ZodEnum<{
10603
+ ai_generation: "ai_generation";
10604
+ user_input: "user_input";
10605
+ }>;
10606
+ }, z.core.$strict>>>;
7847
10607
  }, z.core.$strict>, z.ZodObject<{
7848
10608
  rows: z.ZodOptional<z.ZodArray<z.ZodObject<{
7849
10609
  id: z.ZodString;
@@ -7863,6 +10623,17 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
7863
10623
  cpc: z.ZodNullable<z.ZodNumber>;
7864
10624
  }, z.core.$strict>>>;
7865
10625
  }, z.core.$strict>]>>;
10626
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
10627
+ single_country: "single_country";
10628
+ regional_combination: "regional_combination";
10629
+ multi_market: "multi_market";
10630
+ }>>>;
10631
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
10632
+ code: z.ZodString;
10633
+ name_zh: z.ZodString;
10634
+ name_en: z.ZodString;
10635
+ region: z.ZodString;
10636
+ }, z.core.$strict>>>;
7866
10637
  selected_value: z.ZodNullable<z.ZodUnknown>;
7867
10638
  accepted_at: z.ZodString;
7868
10639
  }, z.core.$loose>>;
@@ -8017,6 +10788,17 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
8017
10788
  sr: "sr";
8018
10789
  is: "is";
8019
10790
  }>>>;
10791
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
10792
+ single_country: "single_country";
10793
+ regional_combination: "regional_combination";
10794
+ multi_market: "multi_market";
10795
+ }>>>;
10796
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
10797
+ code: z.ZodString;
10798
+ name_zh: z.ZodString;
10799
+ name_en: z.ZodString;
10800
+ region: z.ZodString;
10801
+ }, z.core.$strict>>>;
8020
10802
  }, z.core.$loose>, z.ZodObject<{
8021
10803
  id: z.ZodEnum<{
8022
10804
  recommended: "recommended";
@@ -8119,6 +10901,17 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
8119
10901
  sr: "sr";
8120
10902
  is: "is";
8121
10903
  }>>>;
10904
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
10905
+ single_country: "single_country";
10906
+ regional_combination: "regional_combination";
10907
+ multi_market: "multi_market";
10908
+ }>>>;
10909
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
10910
+ code: z.ZodString;
10911
+ name_zh: z.ZodString;
10912
+ name_en: z.ZodString;
10913
+ region: z.ZodString;
10914
+ }, z.core.$strict>>>;
8122
10915
  }, z.core.$loose>, z.ZodObject<{
8123
10916
  id: z.ZodEnum<{
8124
10917
  recommended: "recommended";
@@ -8221,6 +11014,17 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
8221
11014
  sr: "sr";
8222
11015
  is: "is";
8223
11016
  }>>>;
11017
+ market_type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
11018
+ single_country: "single_country";
11019
+ regional_combination: "regional_combination";
11020
+ multi_market: "multi_market";
11021
+ }>>>;
11022
+ markets: z.ZodOptional<z.ZodArray<z.ZodObject<{
11023
+ code: z.ZodString;
11024
+ name_zh: z.ZodString;
11025
+ name_en: z.ZodString;
11026
+ region: z.ZodString;
11027
+ }, z.core.$strict>>>;
8224
11028
  }, z.core.$loose>], null>;
8225
11029
  plan: z.ZodOptional<z.ZodNullable<z.ZodObject<{
8226
11030
  lead: z.ZodString;
@@ -8228,6 +11032,18 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
8228
11032
  columns: z.ZodArray<z.ZodString>;
8229
11033
  rows: z.ZodArray<z.ZodArray<z.ZodString>>;
8230
11034
  }, z.core.$strict>>>;
11035
+ structure_detail: z.ZodOptional<z.ZodNullable<z.ZodObject<{
11036
+ goal: z.ZodString;
11037
+ issue: z.ZodString;
11038
+ criteria: z.ZodArray<z.ZodString>;
11039
+ resources: z.ZodArray<z.ZodString>;
11040
+ risks: z.ZodArray<z.ZodString>;
11041
+ execution: z.ZodObject<{
11042
+ standard: z.ZodArray<z.ZodString>;
11043
+ acceptance: z.ZodArray<z.ZodString>;
11044
+ downstream: z.ZodArray<z.ZodString>;
11045
+ }, z.core.$strict>;
11046
+ }, z.core.$strict>>>;
8231
11047
  note_tips: z.ZodArray<z.ZodString>;
8232
11048
  note_placeholder: z.ZodString;
8233
11049
  evidence_refs: z.ZodArray<z.ZodObject<{
@@ -8238,12 +11054,108 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
8238
11054
  source_id: z.ZodString;
8239
11055
  field_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
8240
11056
  }, z.core.$strict>>;
8241
- semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodObject<{
8242
- schema_version: z.ZodLiteral<1>;
11057
+ semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
11058
+ database: z.ZodString;
11059
+ country: z.ZodString;
8243
11060
  provider: z.ZodLiteral<"semrush">;
8244
11061
  api_version: z.ZodLiteral<"v4">;
11062
+ fetched_at: z.ZodString;
11063
+ context_hash: z.ZodString;
11064
+ status: z.ZodEnum<{
11065
+ ready: "ready";
11066
+ failed: "failed";
11067
+ disabled: "disabled";
11068
+ empty: "empty";
11069
+ timeout: "timeout";
11070
+ rate_limited: "rate_limited";
11071
+ quota_exhausted: "quota_exhausted";
11072
+ }>;
11073
+ seeds: z.ZodArray<z.ZodObject<{
11074
+ id: z.ZodString;
11075
+ term: z.ZodString;
11076
+ source_type: z.ZodEnum<{
11077
+ step2: "step2";
11078
+ step3: "step3";
11079
+ step5: "step5";
11080
+ }>;
11081
+ source_id: z.ZodString;
11082
+ field_path: z.ZodString;
11083
+ source_field: z.ZodOptional<z.ZodString>;
11084
+ source_evidence: z.ZodOptional<z.ZodString>;
11085
+ business_subject: z.ZodOptional<z.ZodString>;
11086
+ reason: z.ZodOptional<z.ZodString>;
11087
+ }, z.core.$strict>>;
11088
+ intent_groups: z.ZodArray<z.ZodObject<{
11089
+ id: z.ZodString;
11090
+ intent: z.ZodEnum<{
11091
+ INFORMATIONAL: "INFORMATIONAL";
11092
+ NAVIGATIONAL: "NAVIGATIONAL";
11093
+ COMMERCIAL: "COMMERCIAL";
11094
+ TRANSACTIONAL: "TRANSACTIONAL";
11095
+ }>;
11096
+ title: z.ZodString;
11097
+ landing_page_type: z.ZodEnum<{
11098
+ product: "product";
11099
+ category: "category";
11100
+ blog: "blog";
11101
+ landing: "landing";
11102
+ }>;
11103
+ keywords: z.ZodArray<z.ZodObject<{
11104
+ keyword: z.ZodString;
11105
+ normalized_keyword: z.ZodString;
11106
+ intents: z.ZodArray<z.ZodEnum<{
11107
+ INFORMATIONAL: "INFORMATIONAL";
11108
+ NAVIGATIONAL: "NAVIGATIONAL";
11109
+ COMMERCIAL: "COMMERCIAL";
11110
+ TRANSACTIONAL: "TRANSACTIONAL";
11111
+ }>>;
11112
+ search_volume: z.ZodNumber;
11113
+ keyword_difficulty: z.ZodNumber;
11114
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
11115
+ trend: z.ZodArray<z.ZodNumber>;
11116
+ serp_features: z.ZodArray<z.ZodString>;
11117
+ fit: z.ZodObject<{
11118
+ seo: z.ZodNumber;
11119
+ geo: z.ZodNumber;
11120
+ buyer: z.ZodNumber;
11121
+ }, z.core.$strict>;
11122
+ recommended_channel: z.ZodEnum<{
11123
+ SEO: "SEO";
11124
+ GEO: "GEO";
11125
+ DUAL: "DUAL";
11126
+ }>;
11127
+ priority: z.ZodEnum<{
11128
+ P0: "P0";
11129
+ P1: "P1";
11130
+ P2: "P2";
11131
+ P3: "P3";
11132
+ }>;
11133
+ already_in_plan: z.ZodBoolean;
11134
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
11135
+ }, z.core.$strict>>;
11136
+ }, z.core.$strict>>;
11137
+ selection_summary: z.ZodOptional<z.ZodObject<{
11138
+ fetched_count: z.ZodNumber;
11139
+ unique_count: z.ZodNumber;
11140
+ metric_gate_pass_count: z.ZodNumber;
11141
+ commercial_intent_pass_count: z.ZodNumber;
11142
+ fit_pass_count: z.ZodNumber;
11143
+ selected_count: z.ZodNumber;
11144
+ }, z.core.$strict>>;
11145
+ empty_reason_code: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
11146
+ NO_SEEDS: "NO_SEEDS";
11147
+ NO_PROVIDER_CANDIDATES: "NO_PROVIDER_CANDIDATES";
11148
+ NO_METRIC_ELIGIBLE_CANDIDATES: "NO_METRIC_ELIGIBLE_CANDIDATES";
11149
+ NO_COMMERCIAL_INTENT_CANDIDATES: "NO_COMMERCIAL_INTENT_CANDIDATES";
11150
+ NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
11151
+ }>>>;
11152
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
11153
+ schema_version: z.ZodLiteral<1>;
11154
+ }, z.core.$strict>, z.ZodObject<{
8245
11155
  database: z.ZodString;
8246
11156
  country: z.ZodString;
11157
+ provider: z.ZodLiteral<"semrush">;
11158
+ api_version: z.ZodLiteral<"v4">;
8247
11159
  fetched_at: z.ZodString;
8248
11160
  context_hash: z.ZodString;
8249
11161
  status: z.ZodEnum<{
@@ -8335,7 +11247,8 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
8335
11247
  NO_FIT_ELIGIBLE_CANDIDATES: "NO_FIT_ELIGIBLE_CANDIDATES";
8336
11248
  }>>>;
8337
11249
  error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
8338
- }, z.core.$strict>>>;
11250
+ schema_version: z.ZodLiteral<2>;
11251
+ }, z.core.$strict>], "schema_version">>>;
8339
11252
  seo_payload: z.ZodOptional<z.ZodNullable<z.ZodLazy<z.ZodObject<{
8340
11253
  schema_version: z.ZodLiteral<2>;
8341
11254
  seo_keywords: z.ZodArray<z.ZodObject<{
@@ -8344,9 +11257,9 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
8344
11257
  normalized_keyword: z.ZodString;
8345
11258
  intc: z.ZodEnum<{
8346
11259
  C: "C";
11260
+ T: "T";
8347
11261
  I: "I";
8348
11262
  N: "N";
8349
- T: "T";
8350
11263
  }>;
8351
11264
  keyword_type: z.ZodString;
8352
11265
  intent_strength: z.ZodEnum<{
@@ -8379,7 +11292,50 @@ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.Zod
8379
11292
  snapshot_id: z.ZodString;
8380
11293
  selected_keywords: z.ZodArray<z.ZodString>;
8381
11294
  }, z.core.$strict>>>;
11295
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
11296
+ id: z.ZodString;
11297
+ question: z.ZodString;
11298
+ question_type: z.ZodEnum<{
11299
+ category: "category";
11300
+ trust: "trust";
11301
+ selection: "selection";
11302
+ application: "application";
11303
+ parameter: "parameter";
11304
+ cost: "cost";
11305
+ compliance: "compliance";
11306
+ delivery: "delivery";
11307
+ }>;
11308
+ intent_strength: z.ZodEnum<{
11309
+ high: "high";
11310
+ medium: "medium";
11311
+ low: "low";
11312
+ }>;
11313
+ source: z.ZodEnum<{
11314
+ ai_generation: "ai_generation";
11315
+ user_input: "user_input";
11316
+ }>;
11317
+ }, z.core.$strict>>>;
8382
11318
  }, z.core.$strict>>>>;
11319
+ geo_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
11320
+ id: z.ZodString;
11321
+ question: z.ZodString;
11322
+ question_type: z.ZodEnum<{
11323
+ category: "category";
11324
+ trust: "trust";
11325
+ selection: "selection";
11326
+ application: "application";
11327
+ parameter: "parameter";
11328
+ cost: "cost";
11329
+ compliance: "compliance";
11330
+ delivery: "delivery";
11331
+ }>;
11332
+ intent_strength: z.ZodEnum<{
11333
+ high: "high";
11334
+ medium: "medium";
11335
+ low: "low";
11336
+ }>;
11337
+ source: z.ZodLiteral<"ai_generation">;
11338
+ }, z.core.$strict>>>;
8383
11339
  generation_status: z.ZodOptional<z.ZodEnum<{
8384
11340
  degraded: "degraded";
8385
11341
  ok: "ok";