@nuxtseo/protocol 0.4.1 → 0.5.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.
@@ -18,6 +18,10 @@ export declare const actionShowQuerySchema: z.ZodObject<{
18
18
  export declare const actionResolveBodySchema: z.ZodObject<{
19
19
  artifactVersion: z.ZodString;
20
20
  }, z.core.$strict>;
21
+ export declare const actionDismissBodySchema: z.ZodObject<{
22
+ artifactVersion: z.ZodString;
23
+ note: z.ZodOptional<z.ZodString>;
24
+ }, z.core.$strict>;
21
25
  /**
22
26
  * `url` is the URL the finding was observed on and stays exactly as observed —
23
27
  * it is what verification re-checks. `redirectsTo` is the read-time answer to
@@ -1229,6 +1233,8 @@ export declare const actionEvidenceGroupSchema: import("./core.js").CompatibleRe
1229
1233
  export declare const actionShowDataSchema: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
1230
1234
  readonly id: z.ZodString;
1231
1235
  readonly status: z.ZodString;
1236
+ readonly markedAt: z.ZodNullable<z.ZodString>;
1237
+ readonly checkBackAt: z.ZodNullable<z.ZodString>;
1232
1238
  readonly findingType: z.ZodString;
1233
1239
  readonly artifactVersion: z.ZodString;
1234
1240
  readonly assessmentId: z.ZodString;
@@ -1321,6 +1327,8 @@ export declare const actionShowDataSchema: import("./core.js").CompatibleRespons
1321
1327
  }, z.core.$strip>, z.ZodObject<{
1322
1328
  readonly id: z.ZodString;
1323
1329
  readonly status: z.ZodString;
1330
+ readonly markedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1331
+ readonly checkBackAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1324
1332
  readonly findingType: z.ZodString;
1325
1333
  readonly artifactVersion: z.ZodString;
1326
1334
  readonly assessmentId: z.ZodString;
@@ -1415,6 +1423,8 @@ export declare const actionShowResponseSchema: import("./core.js").CompatibleRes
1415
1423
  data: z.ZodObject<{
1416
1424
  readonly id: z.ZodString;
1417
1425
  readonly status: z.ZodString;
1426
+ readonly markedAt: z.ZodNullable<z.ZodString>;
1427
+ readonly checkBackAt: z.ZodNullable<z.ZodString>;
1418
1428
  readonly findingType: z.ZodString;
1419
1429
  readonly artifactVersion: z.ZodString;
1420
1430
  readonly assessmentId: z.ZodString;
@@ -1513,6 +1523,8 @@ export declare const actionShowResponseSchema: import("./core.js").CompatibleRes
1513
1523
  data: z.ZodObject<{
1514
1524
  readonly id: z.ZodString;
1515
1525
  readonly status: z.ZodString;
1526
+ readonly markedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1527
+ readonly checkBackAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1516
1528
  readonly findingType: z.ZodString;
1517
1529
  readonly artifactVersion: z.ZodString;
1518
1530
  readonly assessmentId: z.ZodString;
@@ -1611,6 +1623,8 @@ export declare const actionShowResponseSchema: import("./core.js").CompatibleRes
1611
1623
  export declare const actionResolveDataSchema: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
1612
1624
  readonly actionId: z.ZodString;
1613
1625
  readonly status: z.ZodString;
1626
+ readonly markedAt: z.ZodNullable<z.ZodString>;
1627
+ readonly checkBackAt: z.ZodNullable<z.ZodString>;
1614
1628
  readonly verification: z.ZodEnum<{
1615
1629
  "metric-watch": "metric-watch";
1616
1630
  "next-assessment": "next-assessment";
@@ -1621,6 +1635,8 @@ export declare const actionResolveDataSchema: import("./core.js").CompatibleResp
1621
1635
  }, z.core.$strip>, z.ZodObject<{
1622
1636
  readonly actionId: z.ZodString;
1623
1637
  readonly status: z.ZodString;
1638
+ readonly markedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1639
+ readonly checkBackAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1624
1640
  readonly verification: z.ZodEnum<{
1625
1641
  "metric-watch": "metric-watch";
1626
1642
  "next-assessment": "next-assessment";
@@ -1633,6 +1649,8 @@ export declare const actionResolveResponseSchema: import("./core.js").Compatible
1633
1649
  data: z.ZodObject<{
1634
1650
  readonly actionId: z.ZodString;
1635
1651
  readonly status: z.ZodString;
1652
+ readonly markedAt: z.ZodNullable<z.ZodString>;
1653
+ readonly checkBackAt: z.ZodNullable<z.ZodString>;
1636
1654
  readonly verification: z.ZodEnum<{
1637
1655
  "metric-watch": "metric-watch";
1638
1656
  "next-assessment": "next-assessment";
@@ -1649,6 +1667,8 @@ export declare const actionResolveResponseSchema: import("./core.js").Compatible
1649
1667
  data: z.ZodObject<{
1650
1668
  readonly actionId: z.ZodString;
1651
1669
  readonly status: z.ZodString;
1670
+ readonly markedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1671
+ readonly checkBackAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1652
1672
  readonly verification: z.ZodEnum<{
1653
1673
  "metric-watch": "metric-watch";
1654
1674
  "next-assessment": "next-assessment";
@@ -2182,6 +2202,8 @@ export declare const actionShowOperation: {
2182
2202
  data: z.ZodObject<{
2183
2203
  readonly id: z.ZodString;
2184
2204
  readonly status: z.ZodString;
2205
+ readonly markedAt: z.ZodNullable<z.ZodString>;
2206
+ readonly checkBackAt: z.ZodNullable<z.ZodString>;
2185
2207
  readonly findingType: z.ZodString;
2186
2208
  readonly artifactVersion: z.ZodString;
2187
2209
  readonly assessmentId: z.ZodString;
@@ -2280,6 +2302,8 @@ export declare const actionShowOperation: {
2280
2302
  data: z.ZodObject<{
2281
2303
  readonly id: z.ZodString;
2282
2304
  readonly status: z.ZodString;
2305
+ readonly markedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2306
+ readonly checkBackAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2283
2307
  readonly findingType: z.ZodString;
2284
2308
  readonly artifactVersion: z.ZodString;
2285
2309
  readonly assessmentId: z.ZodString;
@@ -2466,6 +2490,8 @@ export declare const actionShowOperation: {
2466
2490
  readonly data: {
2467
2491
  readonly id: 'action_01JXYZ';
2468
2492
  readonly status: 'open';
2493
+ readonly markedAt: null;
2494
+ readonly checkBackAt: null;
2469
2495
  readonly findingType: 'broken-pages';
2470
2496
  readonly artifactVersion: 'te2:action_01JXYZ:scope';
2471
2497
  readonly assessmentId: 'assessment_01JXYZ';
@@ -2530,6 +2556,8 @@ export declare const actionResolveOperation: {
2530
2556
  data: z.ZodObject<{
2531
2557
  readonly actionId: z.ZodString;
2532
2558
  readonly status: z.ZodString;
2559
+ readonly markedAt: z.ZodNullable<z.ZodString>;
2560
+ readonly checkBackAt: z.ZodNullable<z.ZodString>;
2533
2561
  readonly verification: z.ZodEnum<{
2534
2562
  "metric-watch": "metric-watch";
2535
2563
  "next-assessment": "next-assessment";
@@ -2546,6 +2574,8 @@ export declare const actionResolveOperation: {
2546
2574
  data: z.ZodObject<{
2547
2575
  readonly actionId: z.ZodString;
2548
2576
  readonly status: z.ZodString;
2577
+ readonly markedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2578
+ readonly checkBackAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2549
2579
  readonly verification: z.ZodEnum<{
2550
2580
  "metric-watch": "metric-watch";
2551
2581
  "next-assessment": "next-assessment";
@@ -2654,6 +2684,8 @@ export declare const actionResolveOperation: {
2654
2684
  readonly actionId: 'action_01JXYZ';
2655
2685
  readonly status: 'open';
2656
2686
  readonly verification: 'recheck-queued';
2687
+ readonly markedAt: '2026-08-10T01:30:00.000Z';
2688
+ readonly checkBackAt: '2026-08-10T01:40:00.000Z';
2657
2689
  };
2658
2690
  readonly meta: {
2659
2691
  readonly requestId: 'req_01JXYZ';
@@ -2696,11 +2728,9 @@ export declare const actionDismissResponseSchema: import("./core.js").Compatible
2696
2728
  }, z.core.$strip>>;
2697
2729
  export type ActionDismiss = z.output<typeof actionDismissDataSchema.client>;
2698
2730
  /**
2699
- * Dismissing is the opposite decision from resolving: the page stays gone.
2700
- * It is admitted only for a broken-page Action whose evidence is complete and
2701
- * shows no internal referrer, so a caller cannot use it to hide work. The same
2702
- * `artifactVersion` fence as resolve applies, so a decision made against stale
2703
- * evidence is rejected rather than applied.
2731
+ * An explicit note records the owner's decision to dismiss reviewed work.
2732
+ * Without a note, only complete, unlinked 404/410 evidence admits dismissal.
2733
+ * Both paths retain the artifactVersion fence and never claim a verified fix.
2704
2734
  */
2705
2735
  export declare const actionDismissOperation: {
2706
2736
  readonly id: 'actions.dismiss';
@@ -2728,6 +2758,7 @@ export declare const actionDismissOperation: {
2728
2758
  readonly headers: null;
2729
2759
  readonly body: z.ZodObject<{
2730
2760
  artifactVersion: z.ZodString;
2761
+ note: z.ZodOptional<z.ZodString>;
2731
2762
  }, z.core.$strict>;
2732
2763
  };
2733
2764
  readonly responses: {
@@ -2828,7 +2859,7 @@ export declare const actionDismissOperation: {
2828
2859
  };
2829
2860
  readonly docs: {
2830
2861
  readonly summary: 'Dismiss an action';
2831
- readonly description: 'Dismisses a broken-page action when its evidence is complete and shows no internal referrers, so the removed page stays removed. It is rejected when the action has other evidence, when it is already decided, or when the artifactVersion no longer matches. The action stays dismissed until a person restores it.';
2862
+ readonly description: 'Records an owner decision to dismiss an action when a note explains why it is intentional or incorrect. Without a note, only complete 404 or 410 evidence with no internal referrers is accepted. Stale details and decided actions are rejected. Dismissal preserves observations and does not verify a fix. The action stays dismissed until a person restores it.';
2832
2863
  readonly tags: readonly ["Actions"];
2833
2864
  readonly examples: readonly [{
2834
2865
  readonly request: {
@@ -2854,6 +2885,31 @@ export declare const actionDismissOperation: {
2854
2885
  };
2855
2886
  };
2856
2887
  };
2888
+ }, {
2889
+ readonly request: {
2890
+ readonly params: {
2891
+ readonly siteId: 'site_01JXYZ';
2892
+ readonly actionId: 'action_01JXYZ';
2893
+ };
2894
+ readonly body: {
2895
+ readonly artifactVersion: 'te2:action_01JXYZ:scope';
2896
+ readonly note: 'Temporary retired sitemap. Review after the recovery gate.';
2897
+ };
2898
+ };
2899
+ readonly response: {
2900
+ readonly status: 200;
2901
+ readonly body: {
2902
+ readonly data: {
2903
+ readonly actionId: 'action_01JXYZ';
2904
+ readonly status: 'dismissed';
2905
+ readonly message: 'Dismissed. Your note is saved. No fix was verified.';
2906
+ };
2907
+ readonly meta: {
2908
+ readonly requestId: 'req_01JXYZ';
2909
+ readonly version: '1.0';
2910
+ };
2911
+ };
2912
+ };
2857
2913
  }];
2858
2914
  };
2859
2915
  };
@@ -3372,6 +3428,8 @@ export declare const actionsV1Registry: import("./core.js").PublicV1Registry<{
3372
3428
  data: z.ZodObject<{
3373
3429
  readonly id: z.ZodString;
3374
3430
  readonly status: z.ZodString;
3431
+ readonly markedAt: z.ZodNullable<z.ZodString>;
3432
+ readonly checkBackAt: z.ZodNullable<z.ZodString>;
3375
3433
  readonly findingType: z.ZodString;
3376
3434
  readonly artifactVersion: z.ZodString;
3377
3435
  readonly assessmentId: z.ZodString;
@@ -3470,6 +3528,8 @@ export declare const actionsV1Registry: import("./core.js").PublicV1Registry<{
3470
3528
  data: z.ZodObject<{
3471
3529
  readonly id: z.ZodString;
3472
3530
  readonly status: z.ZodString;
3531
+ readonly markedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
3532
+ readonly checkBackAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
3473
3533
  readonly findingType: z.ZodString;
3474
3534
  readonly artifactVersion: z.ZodString;
3475
3535
  readonly assessmentId: z.ZodString;
@@ -3656,6 +3716,8 @@ export declare const actionsV1Registry: import("./core.js").PublicV1Registry<{
3656
3716
  readonly data: {
3657
3717
  readonly id: 'action_01JXYZ';
3658
3718
  readonly status: 'open';
3719
+ readonly markedAt: null;
3720
+ readonly checkBackAt: null;
3659
3721
  readonly findingType: 'broken-pages';
3660
3722
  readonly artifactVersion: 'te2:action_01JXYZ:scope';
3661
3723
  readonly assessmentId: 'assessment_01JXYZ';
@@ -3720,6 +3782,8 @@ export declare const actionsV1Registry: import("./core.js").PublicV1Registry<{
3720
3782
  data: z.ZodObject<{
3721
3783
  readonly actionId: z.ZodString;
3722
3784
  readonly status: z.ZodString;
3785
+ readonly markedAt: z.ZodNullable<z.ZodString>;
3786
+ readonly checkBackAt: z.ZodNullable<z.ZodString>;
3723
3787
  readonly verification: z.ZodEnum<{
3724
3788
  "metric-watch": "metric-watch";
3725
3789
  "next-assessment": "next-assessment";
@@ -3736,6 +3800,8 @@ export declare const actionsV1Registry: import("./core.js").PublicV1Registry<{
3736
3800
  data: z.ZodObject<{
3737
3801
  readonly actionId: z.ZodString;
3738
3802
  readonly status: z.ZodString;
3803
+ readonly markedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
3804
+ readonly checkBackAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
3739
3805
  readonly verification: z.ZodEnum<{
3740
3806
  "metric-watch": "metric-watch";
3741
3807
  "next-assessment": "next-assessment";
@@ -3844,6 +3910,8 @@ export declare const actionsV1Registry: import("./core.js").PublicV1Registry<{
3844
3910
  readonly actionId: 'action_01JXYZ';
3845
3911
  readonly status: 'open';
3846
3912
  readonly verification: 'recheck-queued';
3913
+ readonly markedAt: '2026-08-10T01:30:00.000Z';
3914
+ readonly checkBackAt: '2026-08-10T01:40:00.000Z';
3847
3915
  };
3848
3916
  readonly meta: {
3849
3917
  readonly requestId: 'req_01JXYZ';
@@ -3880,6 +3948,7 @@ export declare const actionsV1Registry: import("./core.js").PublicV1Registry<{
3880
3948
  readonly headers: null;
3881
3949
  readonly body: z.ZodObject<{
3882
3950
  artifactVersion: z.ZodString;
3951
+ note: z.ZodOptional<z.ZodString>;
3883
3952
  }, z.core.$strict>;
3884
3953
  };
3885
3954
  readonly responses: {
@@ -3980,7 +4049,7 @@ export declare const actionsV1Registry: import("./core.js").PublicV1Registry<{
3980
4049
  };
3981
4050
  readonly docs: {
3982
4051
  readonly summary: 'Dismiss an action';
3983
- readonly description: 'Dismisses a broken-page action when its evidence is complete and shows no internal referrers, so the removed page stays removed. It is rejected when the action has other evidence, when it is already decided, or when the artifactVersion no longer matches. The action stays dismissed until a person restores it.';
4052
+ readonly description: 'Records an owner decision to dismiss an action when a note explains why it is intentional or incorrect. Without a note, only complete 404 or 410 evidence with no internal referrers is accepted. Stale details and decided actions are rejected. Dismissal preserves observations and does not verify a fix. The action stays dismissed until a person restores it.';
3984
4053
  readonly tags: readonly ["Actions"];
3985
4054
  readonly examples: readonly [{
3986
4055
  readonly request: {
@@ -4006,6 +4075,31 @@ export declare const actionsV1Registry: import("./core.js").PublicV1Registry<{
4006
4075
  };
4007
4076
  };
4008
4077
  };
4078
+ }, {
4079
+ readonly request: {
4080
+ readonly params: {
4081
+ readonly siteId: 'site_01JXYZ';
4082
+ readonly actionId: 'action_01JXYZ';
4083
+ };
4084
+ readonly body: {
4085
+ readonly artifactVersion: 'te2:action_01JXYZ:scope';
4086
+ readonly note: 'Temporary retired sitemap. Review after the recovery gate.';
4087
+ };
4088
+ };
4089
+ readonly response: {
4090
+ readonly status: 200;
4091
+ readonly body: {
4092
+ readonly data: {
4093
+ readonly actionId: 'action_01JXYZ';
4094
+ readonly status: 'dismissed';
4095
+ readonly message: 'Dismissed. Your note is saved. No fix was verified.';
4096
+ };
4097
+ readonly meta: {
4098
+ readonly requestId: 'req_01JXYZ';
4099
+ readonly version: '1.0';
4100
+ };
4101
+ };
4102
+ };
4009
4103
  }];
4010
4104
  };
4011
4105
  };
@@ -19,6 +19,10 @@ export const actionShowQuerySchema = schema.strictObject({
19
19
  export const actionResolveBodySchema = schema.strictObject({
20
20
  artifactVersion: schema.string().min(1),
21
21
  });
22
+ export const actionDismissBodySchema = schema.strictObject({
23
+ artifactVersion: schema.string().min(1),
24
+ note: schema.string().trim().min(1).max(2000).optional(),
25
+ });
22
26
  /**
23
27
  * `url` is the URL the finding was observed on and stays exactly as observed —
24
28
  * it is what verification re-checks. `redirectsTo` is the read-time answer to
@@ -292,6 +296,8 @@ export const actionEvidenceGroupSchema = defineResponseObject({
292
296
  export const actionShowDataSchema = defineResponseObject({
293
297
  id: schema.string().min(1),
294
298
  status: schema.string().min(1),
299
+ markedAt: schema.string().datetime().nullable(),
300
+ checkBackAt: schema.string().datetime().nullable(),
295
301
  findingType: schema.string().min(1),
296
302
  artifactVersion: schema.string().min(1),
297
303
  assessmentId: schema.string().min(1),
@@ -309,6 +315,8 @@ export const actionShowDataSchema = defineResponseObject({
309
315
  }, {
310
316
  id: schema.string().min(1),
311
317
  status: schema.string().min(1),
318
+ markedAt: schema.string().datetime().nullable().optional(),
319
+ checkBackAt: schema.string().datetime().nullable().optional(),
312
320
  findingType: schema.string().min(1),
313
321
  artifactVersion: schema.string().min(1),
314
322
  assessmentId: schema.string().min(1),
@@ -328,10 +336,14 @@ export const actionShowResponseSchema = defineSuccessEnvelope(actionShowDataSche
328
336
  export const actionResolveDataSchema = defineResponseObject({
329
337
  actionId: schema.string().min(1),
330
338
  status: schema.string().min(1),
339
+ markedAt: schema.string().datetime().nullable(),
340
+ checkBackAt: schema.string().datetime().nullable(),
331
341
  verification: schema.enum(['recheck-queued', 'scan-queued', 'next-assessment', 'metric-watch', 'user-resolved']),
332
342
  }, {
333
343
  actionId: schema.string().min(1),
334
344
  status: schema.string().min(1),
345
+ markedAt: schema.string().datetime().nullable().optional(),
346
+ checkBackAt: schema.string().datetime().nullable().optional(),
335
347
  verification: schema.enum(['recheck-queued', 'scan-queued', 'next-assessment', 'metric-watch', 'user-resolved']),
336
348
  });
337
349
  export const actionResolveResponseSchema = defineSuccessEnvelope(actionResolveDataSchema);
@@ -432,6 +444,8 @@ export const actionShowOperation = defineOperation({
432
444
  data: {
433
445
  id: 'action_01JXYZ',
434
446
  status: 'open',
447
+ markedAt: null,
448
+ checkBackAt: null,
435
449
  findingType: 'broken-pages',
436
450
  artifactVersion: 'te2:action_01JXYZ:scope',
437
451
  assessmentId: 'assessment_01JXYZ',
@@ -501,7 +515,7 @@ export const actionResolveOperation = defineOperation({
501
515
  response: {
502
516
  status: 200,
503
517
  body: {
504
- data: { actionId: 'action_01JXYZ', status: 'open', verification: 'recheck-queued' },
518
+ data: { actionId: 'action_01JXYZ', status: 'open', verification: 'recheck-queued', markedAt: '2026-08-10T01:30:00.000Z', checkBackAt: '2026-08-10T01:40:00.000Z' },
505
519
  meta: { requestId: 'req_01JXYZ', version: '1.0' },
506
520
  },
507
521
  },
@@ -519,11 +533,9 @@ export const actionDismissDataSchema = defineResponseObject({
519
533
  });
520
534
  export const actionDismissResponseSchema = defineSuccessEnvelope(actionDismissDataSchema);
521
535
  /**
522
- * Dismissing is the opposite decision from resolving: the page stays gone.
523
- * It is admitted only for a broken-page Action whose evidence is complete and
524
- * shows no internal referrer, so a caller cannot use it to hide work. The same
525
- * `artifactVersion` fence as resolve applies, so a decision made against stale
526
- * evidence is rejected rather than applied.
536
+ * An explicit note records the owner's decision to dismiss reviewed work.
537
+ * Without a note, only complete, unlinked 404/410 evidence admits dismissal.
538
+ * Both paths retain the artifactVersion fence and never claim a verified fix.
527
539
  */
528
540
  export const actionDismissOperation = defineOperation({
529
541
  id: 'actions.dismiss',
@@ -537,7 +549,7 @@ export const actionDismissOperation = defineOperation({
537
549
  minimumRole: 'member',
538
550
  ownership: 'site',
539
551
  },
540
- request: { params: actionParamsSchema, query: null, headers: null, body: actionResolveBodySchema },
552
+ request: { params: actionParamsSchema, query: null, headers: null, body: actionDismissBodySchema },
541
553
  responses: { 200: actionDismissResponseSchema },
542
554
  errors: [
543
555
  'invalid_request',
@@ -566,7 +578,7 @@ export const actionDismissOperation = defineOperation({
566
578
  lifecycle: { introduced: '1.2.0' },
567
579
  docs: {
568
580
  summary: 'Dismiss an action',
569
- description: 'Dismisses a broken-page action when its evidence is complete and shows no internal referrers, so the removed page stays removed. It is rejected when the action has other evidence, when it is already decided, or when the artifactVersion no longer matches. The action stays dismissed until a person restores it.',
581
+ description: 'Records an owner decision to dismiss an action when a note explains why it is intentional or incorrect. Without a note, only complete 404 or 410 evidence with no internal referrers is accepted. Stale details and decided actions are rejected. Dismissal preserves observations and does not verify a fix. The action stays dismissed until a person restores it.',
570
582
  tags: ['Actions'],
571
583
  examples: [{
572
584
  request: {
@@ -580,6 +592,21 @@ export const actionDismissOperation = defineOperation({
580
592
  meta: { requestId: 'req_01JXYZ', version: '1.0' },
581
593
  },
582
594
  },
595
+ }, {
596
+ request: {
597
+ params: { siteId: 'site_01JXYZ', actionId: 'action_01JXYZ' },
598
+ body: {
599
+ artifactVersion: 'te2:action_01JXYZ:scope',
600
+ note: 'Temporary retired sitemap. Review after the recovery gate.',
601
+ },
602
+ },
603
+ response: {
604
+ status: 200,
605
+ body: {
606
+ data: { actionId: 'action_01JXYZ', status: 'dismissed', message: 'Dismissed. Your note is saved. No fix was verified.' },
607
+ meta: { requestId: 'req_01JXYZ', version: '1.0' },
608
+ },
609
+ },
583
610
  }],
584
611
  },
585
612
  });