@vcp-dev/contracts 0.6.11 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/README.md +5 -4
  2. package/dist/business-facts.d.ts +23 -0
  3. package/dist/cms-page-directory.d.ts +40 -4
  4. package/dist/colorway-distinctness.js +1 -1
  5. package/dist/connect-dynamic-collection.d.ts +6 -6
  6. package/dist/connect-form.d.ts +6 -6
  7. package/dist/conversion-hints.d.ts +38 -0
  8. package/dist/crawler-task-service.d.ts +244 -2
  9. package/dist/custom-domain.d.ts +119 -239
  10. package/dist/customer-materials.d.ts +5 -5
  11. package/dist/deployment-lifecycle.d.ts +45 -0
  12. package/dist/design-tokens.d.ts +1 -0
  13. package/dist/design-tokens.js +1 -1
  14. package/dist/e2b-preview-proxy.d.ts +5 -0
  15. package/dist/external-site-edit.d.ts +9 -0
  16. package/dist/firecrawl-internal.d.ts +19 -0
  17. package/dist/font-catalog.d.ts +5 -2
  18. package/dist/form-design.d.ts +54 -12
  19. package/dist/google-search-console.d.ts +1 -0
  20. package/dist/index.d.ts +3129 -818
  21. package/dist/index.js +1 -1
  22. package/dist/industry-classification.d.ts +43 -0
  23. package/dist/input-context-bundle.d.ts +10 -0
  24. package/dist/internal-entity-id.d.ts +1 -0
  25. package/dist/knowledge-category.d.ts +20 -0
  26. package/dist/knowledge-source-readiness.d.ts +94 -0
  27. package/dist/launcher-prompt-templates.d.ts +117 -14
  28. package/dist/migration-products.d.ts +45 -0
  29. package/dist/page-slug.d.ts +2 -0
  30. package/dist/page-template.d.ts +95 -0
  31. package/dist/site-build.d.ts +564 -0
  32. package/dist/site-design-presets.d.ts +20 -0
  33. package/dist/site-edit-capability.d.ts +13 -1
  34. package/dist/site-edit-class-name-source.d.ts +40 -8
  35. package/dist/site-edit-command-result.d.ts +15 -4
  36. package/dist/site-edit-composition.d.ts +13 -0
  37. package/dist/site-edit-event.d.ts +68 -14
  38. package/dist/site-edit-history-status.d.ts +193 -0
  39. package/dist/site-edit-operation.d.ts +152 -51
  40. package/dist/site-edit-page-composition.d.ts +101 -22
  41. package/dist/site-edit-patch-plan.d.ts +49 -3
  42. package/dist/site-edit-render-document.d.ts +54 -8
  43. package/dist/site-edit-session.d.ts +5 -2
  44. package/dist/site-edit-source.d.ts +60 -11
  45. package/dist/site-edit-version.d.ts +1 -1
  46. package/dist/site-extra-requirement.d.ts +39 -0
  47. package/dist/site-locale.d.ts +20 -0
  48. package/dist/site-localization-fields.d.ts +196 -0
  49. package/dist/site-localization-scope.d.ts +95 -0
  50. package/dist/site-preview.d.ts +15 -0
  51. package/dist/site-publish-domain.d.ts +680 -0
  52. package/dist/site-publish-workflow.d.ts +612 -0
  53. package/dist/site-workflow-completions.d.ts +163 -0
  54. package/dist/site-workflow.d.ts +231 -211
  55. package/dist/sitemap-navigation.d.ts +4 -1
  56. package/dist/step2-page-selection.d.ts +88 -0
  57. package/dist/step2-site-initialization.d.ts +321 -30
  58. package/dist/step3-digital-employee-analysis.d.ts +177 -211
  59. package/dist/step4-diagnosis.d.ts +72 -4
  60. package/dist/step5-strategy.d.ts +5901 -172
  61. package/dist/step6-design.d.ts +779 -464
  62. package/dist/subsite-localization-input.d.ts +121 -0
  63. package/dist/subsite-mount-path.d.ts +23 -0
  64. package/dist/subsite-sync-diff.d.ts +76 -0
  65. package/dist/subsite-visible-text-export.d.ts +34 -0
  66. package/dist/template-upgrade-observability.d.ts +2 -2
  67. package/dist/theme-presets.d.ts +56 -1
  68. package/dist/workspace-design-apply.d.ts +5 -0
  69. package/dist/workspace-resource-operation.d.ts +58 -24
  70. package/package.json +1 -1
  71. package/dist/publish-quality.d.ts +0 -92
@@ -0,0 +1,43 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * 行业判定:把用户已冻结的业务表述归到一份行业先验上。
4
+ *
5
+ * 为什么要单独一次调用:`skills/page-generation` 下的行业先验从来没被线上路径读
6
+ * 到过,所有站共用同一份通用先验。判定的输入是自由文本(客户资料的行业与主营
7
+ * 产品、原站流冻结的主营产品与现有市场),对自由文本做关键词匹配是本仓明令禁止
8
+ * 的,所以由服务端模型服务做一次轻量分类。
9
+ *
10
+ * 判定发生在建站开始之前(Sitemap 转发时),此时 Step6 设计推荐那次调用还没发生,
11
+ * 搭不了车,只能独立跑一次。
12
+ *
13
+ * 判错比不判更糟 —— 错误的行业先验会把整站带偏。所以宁可返回空,让下游退回通用
14
+ * 先验,也不给一个没把握的答案。
15
+ */
16
+ export declare const IndustryClassificationRequestSchema: z.ZodObject<{
17
+ site_id: z.ZodUUID;
18
+ site_language: z.ZodString;
19
+ business_facts: z.ZodArray<z.ZodString>;
20
+ }, z.core.$strict>;
21
+ export type IndustryClassificationRequest = z.infer<typeof IndustryClassificationRequestSchema>;
22
+ export declare const IndustryConfidenceSchema: z.ZodEnum<{
23
+ high: "high";
24
+ medium: "medium";
25
+ low: "low";
26
+ }>;
27
+ export type IndustryConfidence = z.infer<typeof IndustryConfidenceSchema>;
28
+ /**
29
+ * 判定结果。`skill_name` 为 null 表示判不出 —— 调用方据此整个不注入,agent 缺省
30
+ * 回到通用先验,行为与判定上线前逐字相同。
31
+ *
32
+ * `confidence` 由模型自报,调用方不能只押这一个信号:`low` 一律当判不出处理。
33
+ */
34
+ export declare const IndustryClassificationResultSchema: z.ZodObject<{
35
+ skill_name: z.ZodNullable<z.ZodString>;
36
+ confidence: z.ZodEnum<{
37
+ high: "high";
38
+ medium: "medium";
39
+ low: "low";
40
+ }>;
41
+ reason: z.ZodString;
42
+ }, z.core.$strict>;
43
+ export type IndustryClassificationResult = z.infer<typeof IndustryClassificationResultSchema>;
@@ -250,3 +250,13 @@ export declare const InputContextBundleSchema: z.ZodObject<{
250
250
  }, z.core.$strip>>;
251
251
  }, z.core.$strip>;
252
252
  export type InputContextBundle = z.infer<typeof InputContextBundleSchema>;
253
+ /**
254
+ * 整站视觉参考图:用户自己传的 reference 轨图片优先,其次是参考站扫描截图。
255
+ *
256
+ * 两个消费方必须选出同一张:`apps/api` 的 Step6 推荐把它算进 `input_digest`
257
+ * 并转发 source_id,`apps/agent` 按 source_id 回读字节送多模态。选择规则一旦
258
+ * 分叉,就会出现「API 说图 A、agent 读图 B」的静默错配,所以规则只留这一份。
259
+ */
260
+ export declare function selectReferenceVisualImage(bundle: Pick<InputContextBundle, "sources" | "reference">): {
261
+ source_id: string;
262
+ } | null;
@@ -26,6 +26,7 @@ export declare const SandboxSessionIdSchema: z.ZodUUID;
26
26
  export declare const DeploymentIdSchema: z.ZodUUID;
27
27
  export declare const DeploymentJobIdSchema: z.ZodUUID;
28
28
  export declare const SiteOperationLockIdSchema: z.ZodUUID;
29
+ export declare const SitePublishWorkflowIdSchema: z.ZodUUID;
29
30
  export declare const SiteWorkflowIdSchema: z.ZodUUID;
30
31
  export declare const SiteWorkflowTaskRefIdSchema: z.ZodUUID;
31
32
  export declare const FormDesignOperationRecordIdSchema: z.ZodUUID;
@@ -0,0 +1,20 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * 企业知识库的资料分类。写入侧(`apps/api` 的知识库上传/改分类)与检索侧
4
+ * (`apps/agent` 的 `query_knowledge_base`)共用同一份枚举:上游对非法分类
5
+ * 是 200 + 空召回的静默行为,两侧必须锚定同一份合法值才能把"分类拼错"和
6
+ * "这家企业没这类资料"区分开。
7
+ *
8
+ * 顺序即上游与既有 UI 的展示顺序,不要随意调整。
9
+ */
10
+ export declare const KNOWLEDGE_CATEGORY_CODES: readonly ["company_profile", "product_manual", "product_list", "customer_case", "product_help", "qualification", "industry_material"];
11
+ export declare const KnowledgeCategoryCodeSchema: z.ZodEnum<{
12
+ company_profile: "company_profile";
13
+ product_manual: "product_manual";
14
+ product_list: "product_list";
15
+ customer_case: "customer_case";
16
+ product_help: "product_help";
17
+ qualification: "qualification";
18
+ industry_material: "industry_material";
19
+ }>;
20
+ export type KnowledgeCategoryCode = z.infer<typeof KnowledgeCategoryCodeSchema>;
@@ -0,0 +1,94 @@
1
+ import { z } from "zod";
2
+ export declare const KnowledgeSourceReadinessStatusSchema: z.ZodEnum<{
3
+ ready: "ready";
4
+ failed: "failed";
5
+ pending: "pending";
6
+ running: "running";
7
+ missing: "missing";
8
+ }>;
9
+ export declare const KnowledgeTaskStatusSchema: z.ZodObject<{
10
+ task_id: z.ZodString;
11
+ status: z.ZodEnum<{
12
+ ready: "ready";
13
+ failed: "failed";
14
+ pending: "pending";
15
+ running: "running";
16
+ missing: "missing";
17
+ }>;
18
+ }, z.core.$strict>;
19
+ /** Server-only normalized task results. Do not expose this to browsers. */
20
+ export declare const KnowledgeTaskStatusBatchSchema: z.ZodObject<{
21
+ items: z.ZodArray<z.ZodObject<{
22
+ task_id: z.ZodString;
23
+ status: z.ZodEnum<{
24
+ ready: "ready";
25
+ failed: "failed";
26
+ pending: "pending";
27
+ running: "running";
28
+ missing: "missing";
29
+ }>;
30
+ }, z.core.$strict>>;
31
+ }, z.core.$strict>;
32
+ export declare const Step2KnowledgeOpaqueIdSchema: z.ZodString;
33
+ export declare const Step2KnowledgeScopeSchema: z.ZodObject<{
34
+ knowledge_site_id: z.ZodString;
35
+ source_ids: z.ZodArray<z.ZodString>;
36
+ }, z.core.$strict>;
37
+ export declare const KnowledgeSourceReadinessSchema: z.ZodObject<{
38
+ source_file_id: z.ZodString;
39
+ category_code: z.ZodNullable<z.ZodEnum<{
40
+ company_profile: "company_profile";
41
+ product_manual: "product_manual";
42
+ product_list: "product_list";
43
+ customer_case: "customer_case";
44
+ product_help: "product_help";
45
+ qualification: "qualification";
46
+ industry_material: "industry_material";
47
+ }>>;
48
+ category_confirmed: z.ZodBoolean;
49
+ status: z.ZodEnum<{
50
+ ready: "ready";
51
+ failed: "failed";
52
+ pending: "pending";
53
+ running: "running";
54
+ missing: "missing";
55
+ }>;
56
+ }, z.core.$strict>;
57
+ export declare const KnowledgeContextReadinessSchema: z.ZodObject<{
58
+ ready: z.ZodBoolean;
59
+ files: z.ZodArray<z.ZodObject<{
60
+ source_file_id: z.ZodString;
61
+ category_code: z.ZodNullable<z.ZodEnum<{
62
+ company_profile: "company_profile";
63
+ product_manual: "product_manual";
64
+ product_list: "product_list";
65
+ customer_case: "customer_case";
66
+ product_help: "product_help";
67
+ qualification: "qualification";
68
+ industry_material: "industry_material";
69
+ }>>;
70
+ category_confirmed: z.ZodBoolean;
71
+ status: z.ZodEnum<{
72
+ ready: "ready";
73
+ failed: "failed";
74
+ pending: "pending";
75
+ running: "running";
76
+ missing: "missing";
77
+ }>;
78
+ }, z.core.$strict>>;
79
+ counts: z.ZodObject<{
80
+ total: z.ZodNumber;
81
+ pending: z.ZodNumber;
82
+ running: z.ZodNumber;
83
+ ready: z.ZodNumber;
84
+ failed: z.ZodNumber;
85
+ missing: z.ZodNumber;
86
+ unclassified: z.ZodNumber;
87
+ }, z.core.$strict>;
88
+ }, z.core.$strict>;
89
+ export type KnowledgeSourceReadinessStatus = z.infer<typeof KnowledgeSourceReadinessStatusSchema>;
90
+ export type KnowledgeTaskStatus = z.infer<typeof KnowledgeTaskStatusSchema>;
91
+ export type KnowledgeTaskStatusBatch = z.infer<typeof KnowledgeTaskStatusBatchSchema>;
92
+ export type Step2KnowledgeScope = z.infer<typeof Step2KnowledgeScopeSchema>;
93
+ export type KnowledgeSourceReadiness = z.infer<typeof KnowledgeSourceReadinessSchema>;
94
+ export type KnowledgeContextReadiness = z.infer<typeof KnowledgeContextReadinessSchema>;
@@ -144,6 +144,7 @@ export declare const LauncherPromptTemplateCatalogSchema: z.ZodObject<{
144
144
  next_cursor: z.ZodNullable<z.ZodString>;
145
145
  }, z.core.$strict>;
146
146
  export declare const LauncherPromptTemplateApplyRequestSchema: z.ZodObject<{
147
+ operation_id: z.ZodString;
147
148
  resolved_version: z.ZodNumber;
148
149
  base_sitemap_id: z.ZodString;
149
150
  base_sitemap_version: z.ZodNumber;
@@ -169,6 +170,16 @@ export declare const LauncherPromptTemplateApplyRequestSchema: z.ZodObject<{
169
170
  generatedBy: z.ZodLiteral<"sitemap-agent">;
170
171
  source_brief_id: z.ZodOptional<z.ZodString>;
171
172
  source_answer_ids: z.ZodOptional<z.ZodArray<z.ZodString>>;
173
+ source: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
174
+ kind: z.ZodLiteral<"brief_clarify">;
175
+ brief_id: z.ZodUUID;
176
+ answer_ids: z.ZodArray<z.ZodString>;
177
+ }, z.core.$strict>, z.ZodObject<{
178
+ kind: z.ZodLiteral<"step5_strategy">;
179
+ strategy_version_id: z.ZodString;
180
+ strategy_version: z.ZodNumber;
181
+ strategy_checksum: z.ZodString;
182
+ }, z.core.$strict>], "kind">>;
172
183
  }, z.core.$strip>;
173
184
  skillSelection: z.ZodObject<{
174
185
  id: z.ZodString;
@@ -211,20 +222,19 @@ export declare const LauncherPromptTemplateApplyRequestSchema: z.ZodObject<{
211
222
  }>>;
212
223
  density: z.ZodOptional<z.ZodEnum<{
213
224
  compact: "compact";
214
- airy: "airy";
215
225
  comfortable: "comfortable";
226
+ airy: "airy";
216
227
  editorial: "editorial";
217
228
  }>>;
218
229
  motionPreset: z.ZodOptional<z.ZodEnum<{
219
- none: "none";
220
- pro: "pro";
221
- fade: "fade";
222
- para: "para";
223
- slide: "slide";
230
+ subtle: "subtle";
231
+ moderate: "moderate";
232
+ expressive: "expressive";
224
233
  }>>;
225
234
  colorSeeds: z.ZodOptional<z.ZodObject<{
226
235
  primary: z.ZodString;
227
236
  accent: z.ZodString;
237
+ foreground: z.ZodOptional<z.ZodString>;
228
238
  neutral: z.ZodOptional<z.ZodString>;
229
239
  supporting: z.ZodOptional<z.ZodArray<z.ZodString>>;
230
240
  }, z.core.$strip>>;
@@ -235,6 +245,9 @@ export declare const LauncherPromptTemplateApplyRequestSchema: z.ZodObject<{
235
245
  muted: z.ZodOptional<z.ZodString>;
236
246
  border: z.ZodOptional<z.ZodString>;
237
247
  }, z.core.$strip>>;
248
+ themeId: z.ZodOptional<z.ZodString>;
249
+ themeDescription: z.ZodOptional<z.ZodString>;
250
+ aestheticNote: z.ZodOptional<z.ZodString>;
238
251
  }, z.core.$strip>>;
239
252
  }, z.core.$strip>>;
240
253
  userChoices: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -246,15 +259,51 @@ export declare const LauncherPromptTemplateApplyRequestSchema: z.ZodObject<{
246
259
  protocol: z.ZodEnum<{
247
260
  external: "external";
248
261
  phone: "phone";
249
- route: "route";
250
262
  form: "form";
251
263
  download: "download";
264
+ route: "route";
252
265
  }>;
253
266
  ctaLabel: z.ZodString;
254
267
  ctaTarget: z.ZodOptional<z.ZodString>;
255
268
  requiresOwnerDetail: z.ZodOptional<z.ZodBoolean>;
256
269
  }, z.core.$strip>>;
257
270
  }, z.core.$strip>>;
271
+ seoKeywords: z.ZodOptional<z.ZodArray<z.ZodObject<{
272
+ id: z.ZodString;
273
+ keyword: z.ZodString;
274
+ normalized_keyword: z.ZodString;
275
+ intc: z.ZodEnum<{
276
+ C: "C";
277
+ I: "I";
278
+ N: "N";
279
+ T: "T";
280
+ }>;
281
+ keyword_type: z.ZodString;
282
+ intent_strength: z.ZodEnum<{
283
+ high: "high";
284
+ medium: "medium";
285
+ low: "low";
286
+ }>;
287
+ monthly_volume: z.ZodNullable<z.ZodNumber>;
288
+ keyword_difficulty: z.ZodNullable<z.ZodNumber>;
289
+ fit: z.ZodNullable<z.ZodNumber>;
290
+ sem_cpc: z.ZodNullable<z.ZodNumber>;
291
+ currency: z.ZodNullable<z.ZodString>;
292
+ landing_page: z.ZodString;
293
+ content_format: z.ZodString;
294
+ priority: z.ZodEnum<{
295
+ P0: "P0";
296
+ P1: "P1";
297
+ P2: "P2";
298
+ P3: "P3";
299
+ }>;
300
+ source: z.ZodEnum<{
301
+ semrush: "semrush";
302
+ step5_generation: "step5_generation";
303
+ }>;
304
+ source_market: z.ZodString;
305
+ metric_timestamp: z.ZodNullable<z.ZodString>;
306
+ }, z.core.$strict>>>;
258
307
  pages: z.ZodArray<z.ZodObject<{
259
308
  id: z.ZodString;
260
309
  title: z.ZodString;
@@ -309,6 +358,16 @@ export declare const LauncherPromptTemplateApplyResponseSchema: z.ZodObject<{
309
358
  generatedBy: z.ZodLiteral<"sitemap-agent">;
310
359
  source_brief_id: z.ZodOptional<z.ZodString>;
311
360
  source_answer_ids: z.ZodOptional<z.ZodArray<z.ZodString>>;
361
+ source: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
362
+ kind: z.ZodLiteral<"brief_clarify">;
363
+ brief_id: z.ZodUUID;
364
+ answer_ids: z.ZodArray<z.ZodString>;
365
+ }, z.core.$strict>, z.ZodObject<{
366
+ kind: z.ZodLiteral<"step5_strategy">;
367
+ strategy_version_id: z.ZodString;
368
+ strategy_version: z.ZodNumber;
369
+ strategy_checksum: z.ZodString;
370
+ }, z.core.$strict>], "kind">>;
312
371
  }, z.core.$strip>;
313
372
  skillSelection: z.ZodObject<{
314
373
  id: z.ZodString;
@@ -351,20 +410,19 @@ export declare const LauncherPromptTemplateApplyResponseSchema: z.ZodObject<{
351
410
  }>>;
352
411
  density: z.ZodOptional<z.ZodEnum<{
353
412
  compact: "compact";
354
- airy: "airy";
355
413
  comfortable: "comfortable";
414
+ airy: "airy";
356
415
  editorial: "editorial";
357
416
  }>>;
358
417
  motionPreset: z.ZodOptional<z.ZodEnum<{
359
- none: "none";
360
- pro: "pro";
361
- fade: "fade";
362
- para: "para";
363
- slide: "slide";
418
+ subtle: "subtle";
419
+ moderate: "moderate";
420
+ expressive: "expressive";
364
421
  }>>;
365
422
  colorSeeds: z.ZodOptional<z.ZodObject<{
366
423
  primary: z.ZodString;
367
424
  accent: z.ZodString;
425
+ foreground: z.ZodOptional<z.ZodString>;
368
426
  neutral: z.ZodOptional<z.ZodString>;
369
427
  supporting: z.ZodOptional<z.ZodArray<z.ZodString>>;
370
428
  }, z.core.$strip>>;
@@ -375,6 +433,9 @@ export declare const LauncherPromptTemplateApplyResponseSchema: z.ZodObject<{
375
433
  muted: z.ZodOptional<z.ZodString>;
376
434
  border: z.ZodOptional<z.ZodString>;
377
435
  }, z.core.$strip>>;
436
+ themeId: z.ZodOptional<z.ZodString>;
437
+ themeDescription: z.ZodOptional<z.ZodString>;
438
+ aestheticNote: z.ZodOptional<z.ZodString>;
378
439
  }, z.core.$strip>>;
379
440
  }, z.core.$strip>>;
380
441
  userChoices: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -386,15 +447,51 @@ export declare const LauncherPromptTemplateApplyResponseSchema: z.ZodObject<{
386
447
  protocol: z.ZodEnum<{
387
448
  external: "external";
388
449
  phone: "phone";
389
- route: "route";
390
450
  form: "form";
391
451
  download: "download";
452
+ route: "route";
392
453
  }>;
393
454
  ctaLabel: z.ZodString;
394
455
  ctaTarget: z.ZodOptional<z.ZodString>;
395
456
  requiresOwnerDetail: z.ZodOptional<z.ZodBoolean>;
396
457
  }, z.core.$strip>>;
397
458
  }, z.core.$strip>>;
459
+ seoKeywords: z.ZodOptional<z.ZodArray<z.ZodObject<{
460
+ id: z.ZodString;
461
+ keyword: z.ZodString;
462
+ normalized_keyword: z.ZodString;
463
+ intc: z.ZodEnum<{
464
+ C: "C";
465
+ I: "I";
466
+ N: "N";
467
+ T: "T";
468
+ }>;
469
+ keyword_type: z.ZodString;
470
+ intent_strength: z.ZodEnum<{
471
+ high: "high";
472
+ medium: "medium";
473
+ low: "low";
474
+ }>;
475
+ monthly_volume: z.ZodNullable<z.ZodNumber>;
476
+ keyword_difficulty: z.ZodNullable<z.ZodNumber>;
477
+ fit: z.ZodNullable<z.ZodNumber>;
478
+ sem_cpc: z.ZodNullable<z.ZodNumber>;
479
+ currency: z.ZodNullable<z.ZodString>;
480
+ landing_page: z.ZodString;
481
+ content_format: z.ZodString;
482
+ priority: z.ZodEnum<{
483
+ P0: "P0";
484
+ P1: "P1";
485
+ P2: "P2";
486
+ P3: "P3";
487
+ }>;
488
+ source: z.ZodEnum<{
489
+ semrush: "semrush";
490
+ step5_generation: "step5_generation";
491
+ }>;
492
+ source_market: z.ZodString;
493
+ metric_timestamp: z.ZodNullable<z.ZodString>;
494
+ }, z.core.$strict>>>;
398
495
  pages: z.ZodArray<z.ZodObject<{
399
496
  id: z.ZodString;
400
497
  title: z.ZodString;
@@ -635,5 +732,11 @@ export type LauncherPromptTemplateCatalogQuery = z.input<typeof LauncherPromptTe
635
732
  export type LauncherPromptTemplateCatalog = z.infer<typeof LauncherPromptTemplateCatalogSchema>;
636
733
  export type LauncherPromptTemplateApplyRequest = z.infer<typeof LauncherPromptTemplateApplyRequestSchema>;
637
734
  export type LauncherPromptTemplateApplyResponse = z.infer<typeof LauncherPromptTemplateApplyResponseSchema>;
735
+ export declare function canonicalizeLauncherPromptTemplateOperation(input: {
736
+ tenant_id: string;
737
+ site_id: string;
738
+ stable_key: string;
739
+ request: LauncherPromptTemplateApplyRequest;
740
+ }): string;
638
741
  export type UpstreamPromptTemplateConsumeData = z.infer<typeof UpstreamPromptTemplateConsumeDataSchema>;
639
742
  export type UpstreamPromptTemplateCatalogData = z.infer<typeof UpstreamPromptTemplateCatalogDataSchema>;
@@ -0,0 +1,45 @@
1
+ /**
2
+ * 搬家预置产品页在前端、Agent、CMS 三侧共用的标识。
3
+ *
4
+ * 这个 slug 同时决定了:结构规划页插入的页面路径、Agent 的确定性 CMS 接线和
5
+ * 专用 View 任务匹配依据、以及 CMS 置备详情页时拼出的页面标题。三处必须逐字
6
+ * 相等,差一个字符就会让页面与容器对不上,表现为产品列表页空白或整套预置被
7
+ * 跳过,因此集中在这里定义一次。
8
+ *
9
+ * 不要为它加环境变量覆盖:浏览器读不到服务端环境变量,一旦服务端改了值,前端
10
+ * 插入的路径不会跟随,链路会静默断开。
11
+ */
12
+ export declare const MIGRATION_PRODUCTS_SLUG = "products";
13
+ /** 结构规划页插入的页面路径,也是列表页最终的访问地址。 */
14
+ export declare const MIGRATION_PRODUCTS_ROUTE: "/products";
15
+ /** 详情路由前缀,等于 CMS 地址模板里的固定段。 */
16
+ export declare const MIGRATION_PRODUCTS_DETAIL_PREFIX: "/products";
17
+ /** CMS 置备详情页时自动生成的标题,详情路由的页面身份声明必须与之相等。 */
18
+ export declare const MIGRATION_PRODUCTS_CMS_DETAIL_PAGE_TITLE: "products detail";
19
+ /** Sitemap / DesignPlan / Workspace 共用的产品集合布局节点类型。 */
20
+ export declare const MIGRATION_PRODUCTS_VIEW_BLOCK_TYPE = "cms_collection_view";
21
+ /** 产品中心静态承载页上的列表布局节点。 */
22
+ export declare const MIGRATION_PRODUCTS_LIST_VIEW_VARIANT = "list";
23
+ /** 产品动态详情路由使用的详情布局节点。 */
24
+ export declare const MIGRATION_PRODUCTS_DETAIL_VIEW_VARIANT = "detail";
25
+ export type MigrationProductsViewVariant = typeof MIGRATION_PRODUCTS_LIST_VIEW_VARIANT | typeof MIGRATION_PRODUCTS_DETAIL_VIEW_VARIANT;
26
+ /**
27
+ * 搬家产品页是平台预置页面,但它最终出现在访客导航里,因此文案只能跟随站点
28
+ * 输出语种,不能跟随操作者控制台语种。站点语言目录比平台 UI 语言更宽;没有
29
+ * 明确译文时统一回退英文,避免中文控制台给其它语种站点写入中文导航。
30
+ */
31
+ export interface MigrationProductsLocalizedCopy {
32
+ readonly pageTitle: string;
33
+ /** 列表布局节点文案;保留 blockLabel 名称兼容已有调用。 */
34
+ readonly blockLabel: string;
35
+ readonly detailBlockLabel: string;
36
+ /** 承载页首屏区块名。产品中心是平台建的页,没有它整页就没有 h1。 */
37
+ readonly heroBlockLabel: string;
38
+ /** 详情页面包屑里的首页一级。 */
39
+ readonly homeLabel: string;
40
+ }
41
+ export declare function migrationProductsCopyForLocale(locale: string | null | undefined): MigrationProductsLocalizedCopy;
42
+ /** 系统已知预置标题;仅这些标题允许随站点 locale 自动改写。 */
43
+ export declare function isMigrationProductsPresetPageTitle(value: string): boolean;
44
+ /** 系统已知预置区块名;用户自定义区块名不得被 locale 同步覆盖。 */
45
+ export declare function isMigrationProductsPresetBlockLabel(value: string): boolean;
@@ -25,6 +25,8 @@
25
25
  */
26
26
  export declare const PAGE_SLUG_SEGMENT_PATTERN_SOURCE = "[a-z0-9]+(?:-[a-z0-9]+)*";
27
27
  export declare const PAGE_SLUG_PATTERN: RegExp;
28
+ export declare const PLATFORM_OWNED_PAGE_SLUGS: readonly ["/privacy", "/cookie-policy"];
29
+ export declare const PLATFORM_OWNED_ROUTE_FILE_PATHS: string[];
28
30
  export declare function isCanonicalPageSlug(value: unknown): value is string;
29
31
  /**
30
32
  * Best-effort canonicalization for ASCII-only semantic input. Returns `null`
@@ -0,0 +1,95 @@
1
+ import { z } from "zod";
2
+ /** Raw page-template identity; the contract intentionally preserves its value. */
3
+ export declare const PageTemplateIdSchema: z.ZodString;
4
+ export type PageTemplateId = z.infer<typeof PageTemplateIdSchema>;
5
+ /** Site-relative page path without URL query or fragment components. */
6
+ export declare const PageTemplatePagePathSchema: z.ZodString;
7
+ export type PageTemplatePagePath = z.infer<typeof PageTemplatePagePathSchema>;
8
+ export declare const ManagedPageTemplateRouteManifestV1Schema: z.ZodObject<{
9
+ schema_version: z.ZodLiteral<1>;
10
+ route_id: z.ZodString;
11
+ canonical_entry_file: z.ZodString;
12
+ route_key: z.ZodString;
13
+ default_template_id: z.ZodString;
14
+ templates: z.ZodArray<z.ZodObject<{
15
+ template_id: z.ZodString;
16
+ safe_name: z.ZodString;
17
+ entry_file: z.ZodString;
18
+ kind: z.ZodEnum<{
19
+ default: "default";
20
+ additional: "additional";
21
+ }>;
22
+ }, z.core.$strict>>;
23
+ }, z.core.$strict>;
24
+ export type ManagedPageTemplateRouteManifestV1 = z.infer<typeof ManagedPageTemplateRouteManifestV1Schema>;
25
+ export declare const PageTemplateCreateRequestSchema: z.ZodObject<{
26
+ page_path: z.ZodString;
27
+ template_id: z.ZodString;
28
+ instruction: z.ZodString;
29
+ }, z.core.$strict>;
30
+ export type PageTemplateCreateRequest = z.infer<typeof PageTemplateCreateRequestSchema>;
31
+ export declare const PageTemplatePromoteRequestSchema: z.ZodObject<{
32
+ page_path: z.ZodString;
33
+ template_id: z.ZodString;
34
+ exit_template_ids: z.ZodPipe<z.ZodDefault<z.ZodArray<z.ZodString>>, z.ZodTransform<string[], string[]>>;
35
+ }, z.core.$strict>;
36
+ export type PageTemplatePromoteRequest = z.infer<typeof PageTemplatePromoteRequestSchema>;
37
+ export declare const PageTemplateCleanupRequestSchema: z.ZodObject<{
38
+ page_path: z.ZodString;
39
+ template_ids: z.ZodPipe<z.ZodArray<z.ZodString>, z.ZodTransform<string[], string[]>>;
40
+ }, z.core.$strict>;
41
+ export type PageTemplateCleanupRequest = z.infer<typeof PageTemplateCleanupRequestSchema>;
42
+ export declare const PageTemplateCreateResponseSchema: z.ZodObject<{
43
+ template_id: z.ZodString;
44
+ status: z.ZodLiteral<"created">;
45
+ ok: z.ZodLiteral<true>;
46
+ site_id: z.ZodUUID;
47
+ page_path: z.ZodString;
48
+ route_id: z.ZodString;
49
+ default_template_id: z.ZodString;
50
+ snapshot_id: z.ZodUUID;
51
+ route_mode: z.ZodLiteral<"delegated">;
52
+ }, z.core.$strict>;
53
+ export type PageTemplateCreateResponse = z.infer<typeof PageTemplateCreateResponseSchema>;
54
+ export declare const PageTemplatePromoteResponseSchema: z.ZodObject<{
55
+ promoted_template_id: z.ZodString;
56
+ deleted_template_ids: z.ZodArray<z.ZodString>;
57
+ status: z.ZodLiteral<"promoted">;
58
+ ok: z.ZodLiteral<true>;
59
+ site_id: z.ZodUUID;
60
+ page_path: z.ZodString;
61
+ route_id: z.ZodString;
62
+ default_template_id: z.ZodString;
63
+ snapshot_id: z.ZodUUID;
64
+ route_mode: z.ZodLiteral<"delegated">;
65
+ }, z.core.$strict>;
66
+ export type PageTemplatePromoteResponse = z.infer<typeof PageTemplatePromoteResponseSchema>;
67
+ export declare const PageTemplateCleanupResponseSchema: z.ZodObject<{
68
+ deleted_template_ids: z.ZodArray<z.ZodString>;
69
+ status: z.ZodLiteral<"cleaned">;
70
+ ok: z.ZodLiteral<true>;
71
+ site_id: z.ZodUUID;
72
+ page_path: z.ZodString;
73
+ route_id: z.ZodString;
74
+ default_template_id: z.ZodString;
75
+ snapshot_id: z.ZodUUID;
76
+ route_mode: z.ZodLiteral<"delegated">;
77
+ }, z.core.$strict>;
78
+ export type PageTemplateCleanupResponse = z.infer<typeof PageTemplateCleanupResponseSchema>;
79
+ export declare const PageTemplateErrorCodeSchema: z.ZodEnum<{
80
+ PAGE_TEMPLATE_REQUEST_INVALID: "PAGE_TEMPLATE_REQUEST_INVALID";
81
+ PAGE_TEMPLATE_PAGE_NOT_FOUND: "PAGE_TEMPLATE_PAGE_NOT_FOUND";
82
+ PAGE_TEMPLATE_NOT_FOUND: "PAGE_TEMPLATE_NOT_FOUND";
83
+ PAGE_TEMPLATE_ALREADY_EXISTS: "PAGE_TEMPLATE_ALREADY_EXISTS";
84
+ PAGE_TEMPLATE_ID_COLLISION: "PAGE_TEMPLATE_ID_COLLISION";
85
+ PAGE_TEMPLATE_MANAGED_SOURCE_INVALID: "PAGE_TEMPLATE_MANAGED_SOURCE_INVALID";
86
+ PAGE_TEMPLATE_DEFAULT_PROTECTED: "PAGE_TEMPLATE_DEFAULT_PROTECTED";
87
+ PAGE_TEMPLATE_DEFAULT_ALREADY_ACTIVE: "PAGE_TEMPLATE_DEFAULT_ALREADY_ACTIVE";
88
+ PAGE_TEMPLATE_ASSET_IN_USE: "PAGE_TEMPLATE_ASSET_IN_USE";
89
+ PAGE_TEMPLATE_SNAPSHOT_CONFLICT: "PAGE_TEMPLATE_SNAPSHOT_CONFLICT";
90
+ PAGE_TEMPLATE_DYNAMIC_ROUTE_UNSUPPORTED: "PAGE_TEMPLATE_DYNAMIC_ROUTE_UNSUPPORTED";
91
+ PAGE_TEMPLATE_SOURCE_UNSUPPORTED: "PAGE_TEMPLATE_SOURCE_UNSUPPORTED";
92
+ PAGE_TEMPLATE_GENERATION_FAILED: "PAGE_TEMPLATE_GENERATION_FAILED";
93
+ PAGE_TEMPLATE_PATCH_FAILED: "PAGE_TEMPLATE_PATCH_FAILED";
94
+ }>;
95
+ export type PageTemplateErrorCode = z.infer<typeof PageTemplateErrorCodeSchema>;