@nuxtseo/protocol 0.1.5 → 0.2.0

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.
@@ -317,60 +317,1397 @@ export declare const timelineEntriesOperation: {
317
317
  }];
318
318
  };
319
319
  };
320
+ /**
321
+ * A user-picked calendar day is a reporting-day bucket, never an instant
322
+ * (ADR-0082). It stays `YYYY-MM-DD` text so the marker lands on the chosen day
323
+ * in every timezone.
324
+ */
325
+ export declare const annotationDaySchema: z.ZodISODate;
326
+ /** http(s) only: this value is rendered as a link in marker tooltips. */
327
+ export declare const annotationLinkSchema: z.ZodString;
328
+ export declare const annotationParamsSchema: z.ZodObject<{
329
+ siteId: z.ZodString;
330
+ annotationId: z.ZodString;
331
+ }, z.core.$strict>;
332
+ export declare const annotationCreateBodySchema: z.ZodObject<{
333
+ date: z.ZodISODate;
334
+ title: z.ZodString;
335
+ note: z.ZodOptional<z.ZodNullable<z.ZodString>>;
336
+ url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
337
+ }, z.core.$strict>;
338
+ export declare const annotationUpdateBodySchema: z.ZodObject<{
339
+ date: z.ZodOptional<z.ZodISODate>;
340
+ title: z.ZodOptional<z.ZodString>;
341
+ note: z.ZodOptional<z.ZodNullable<z.ZodString>>;
342
+ url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
343
+ }, z.core.$strict>;
344
+ export declare const annotationSchema: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
345
+ readonly id: z.ZodString;
346
+ readonly date: z.ZodString;
347
+ readonly title: z.ZodString;
348
+ readonly note: z.ZodNullable<z.ZodString>;
349
+ readonly url: z.ZodNullable<z.ZodString>;
350
+ }, z.core.$strip>, z.ZodObject<{
351
+ readonly id: z.ZodString;
352
+ readonly date: z.ZodString;
353
+ readonly title: z.ZodString;
354
+ readonly note: z.ZodNullable<z.ZodString>;
355
+ readonly url: z.ZodNullable<z.ZodString>;
356
+ }, z.core.$strip>>;
357
+ export declare const annotationListDataSchema: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
358
+ readonly annotations: z.ZodArray<z.ZodObject<{
359
+ readonly id: z.ZodString;
360
+ readonly date: z.ZodString;
361
+ readonly title: z.ZodString;
362
+ readonly note: z.ZodNullable<z.ZodString>;
363
+ readonly url: z.ZodNullable<z.ZodString>;
364
+ }, z.core.$strip>>;
365
+ readonly total: z.ZodNumber;
366
+ readonly limit: z.ZodNumber;
367
+ }, z.core.$strip>, z.ZodObject<{
368
+ readonly annotations: z.ZodArray<z.ZodObject<{
369
+ readonly id: z.ZodString;
370
+ readonly date: z.ZodString;
371
+ readonly title: z.ZodString;
372
+ readonly note: z.ZodNullable<z.ZodString>;
373
+ readonly url: z.ZodNullable<z.ZodString>;
374
+ }, z.core.$strip>>;
375
+ readonly total: z.ZodNumber;
376
+ readonly limit: z.ZodNumber;
377
+ }, z.core.$strip>>;
378
+ export declare const annotationListResponseSchema: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
379
+ data: z.ZodObject<{
380
+ readonly annotations: z.ZodArray<z.ZodObject<{
381
+ readonly id: z.ZodString;
382
+ readonly date: z.ZodString;
383
+ readonly title: z.ZodString;
384
+ readonly note: z.ZodNullable<z.ZodString>;
385
+ readonly url: z.ZodNullable<z.ZodString>;
386
+ }, z.core.$strip>>;
387
+ readonly total: z.ZodNumber;
388
+ readonly limit: z.ZodNumber;
389
+ }, z.core.$strip>;
390
+ meta: z.ZodObject<{
391
+ requestId: z.ZodString;
392
+ version: z.ZodLiteral<"1.0">;
393
+ }, z.core.$strict>;
394
+ }, z.core.$strip>, z.ZodObject<{
395
+ data: z.ZodObject<{
396
+ readonly annotations: z.ZodArray<z.ZodObject<{
397
+ readonly id: z.ZodString;
398
+ readonly date: z.ZodString;
399
+ readonly title: z.ZodString;
400
+ readonly note: z.ZodNullable<z.ZodString>;
401
+ readonly url: z.ZodNullable<z.ZodString>;
402
+ }, z.core.$strip>>;
403
+ readonly total: z.ZodNumber;
404
+ readonly limit: z.ZodNumber;
405
+ }, z.core.$strip>;
406
+ meta: z.ZodObject<{
407
+ requestId: z.ZodString;
408
+ version: z.ZodLiteral<"1.0">;
409
+ }, z.core.$loose>;
410
+ }, z.core.$strip>>;
411
+ export declare const annotationDataSchema: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
412
+ readonly annotation: z.ZodObject<{
413
+ readonly id: z.ZodString;
414
+ readonly date: z.ZodString;
415
+ readonly title: z.ZodString;
416
+ readonly note: z.ZodNullable<z.ZodString>;
417
+ readonly url: z.ZodNullable<z.ZodString>;
418
+ }, z.core.$strip>;
419
+ }, z.core.$strip>, z.ZodObject<{
420
+ readonly annotation: z.ZodObject<{
421
+ readonly id: z.ZodString;
422
+ readonly date: z.ZodString;
423
+ readonly title: z.ZodString;
424
+ readonly note: z.ZodNullable<z.ZodString>;
425
+ readonly url: z.ZodNullable<z.ZodString>;
426
+ }, z.core.$strip>;
427
+ }, z.core.$strip>>;
428
+ export declare const annotationResponseSchema: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
429
+ data: z.ZodObject<{
430
+ readonly annotation: z.ZodObject<{
431
+ readonly id: z.ZodString;
432
+ readonly date: z.ZodString;
433
+ readonly title: z.ZodString;
434
+ readonly note: z.ZodNullable<z.ZodString>;
435
+ readonly url: z.ZodNullable<z.ZodString>;
436
+ }, z.core.$strip>;
437
+ }, z.core.$strip>;
438
+ meta: z.ZodObject<{
439
+ requestId: z.ZodString;
440
+ version: z.ZodLiteral<"1.0">;
441
+ }, z.core.$strict>;
442
+ }, z.core.$strip>, z.ZodObject<{
443
+ data: z.ZodObject<{
444
+ readonly annotation: z.ZodObject<{
445
+ readonly id: z.ZodString;
446
+ readonly date: z.ZodString;
447
+ readonly title: z.ZodString;
448
+ readonly note: z.ZodNullable<z.ZodString>;
449
+ readonly url: z.ZodNullable<z.ZodString>;
450
+ }, z.core.$strip>;
451
+ }, z.core.$strip>;
452
+ meta: z.ZodObject<{
453
+ requestId: z.ZodString;
454
+ version: z.ZodLiteral<"1.0">;
455
+ }, z.core.$loose>;
456
+ }, z.core.$strip>>;
457
+ export declare const annotationDeleteDataSchema: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
458
+ readonly annotationId: z.ZodString;
459
+ readonly deleted: z.ZodLiteral<true>;
460
+ }, z.core.$strip>, z.ZodObject<{
461
+ readonly annotationId: z.ZodString;
462
+ readonly deleted: z.ZodLiteral<true>;
463
+ }, z.core.$strip>>;
464
+ export declare const annotationDeleteResponseSchema: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
465
+ data: z.ZodObject<{
466
+ readonly annotationId: z.ZodString;
467
+ readonly deleted: z.ZodLiteral<true>;
468
+ }, z.core.$strip>;
469
+ meta: z.ZodObject<{
470
+ requestId: z.ZodString;
471
+ version: z.ZodLiteral<"1.0">;
472
+ }, z.core.$strict>;
473
+ }, z.core.$strip>, z.ZodObject<{
474
+ data: z.ZodObject<{
475
+ readonly annotationId: z.ZodString;
476
+ readonly deleted: z.ZodLiteral<true>;
477
+ }, z.core.$strip>;
478
+ meta: z.ZodObject<{
479
+ requestId: z.ZodString;
480
+ version: z.ZodLiteral<"1.0">;
481
+ }, z.core.$loose>;
482
+ }, z.core.$strip>>;
483
+ export type Annotations = z.output<typeof annotationListDataSchema.producer>;
484
+ export type Annotation = z.output<typeof annotationDataSchema.producer>;
485
+ export type AnnotationDeleted = z.output<typeof annotationDeleteDataSchema.producer>;
486
+ export type AnnotationCreateBody = z.input<typeof annotationCreateBodySchema>;
487
+ export type AnnotationUpdateBody = z.input<typeof annotationUpdateBodySchema>;
488
+ export declare const annotationListOperation: {
489
+ readonly id: 'timeline.annotations.list';
490
+ readonly method: 'GET';
491
+ readonly path: '/api/v1/sites/{siteId}/timeline/annotations';
492
+ readonly visibility: 'public';
493
+ readonly semantics: {
494
+ readonly kind: 'query';
495
+ readonly sideEffects: 'none';
496
+ readonly retry: 'idempotent';
497
+ readonly readConsistency: 'primary';
498
+ };
499
+ readonly auth: {
500
+ readonly credentials: readonly ["session", "api_token"];
501
+ readonly scopes: readonly ["timeline:read"];
502
+ readonly minimumRole: 'viewer';
503
+ readonly ownership: 'site';
504
+ };
505
+ readonly request: {
506
+ readonly params: z.ZodObject<{
507
+ siteId: z.ZodString;
508
+ }, z.core.$strict>;
509
+ readonly query: null;
510
+ readonly headers: null;
511
+ readonly body: null;
512
+ };
513
+ readonly responses: {
514
+ readonly 200: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
515
+ data: z.ZodObject<{
516
+ readonly annotations: z.ZodArray<z.ZodObject<{
517
+ readonly id: z.ZodString;
518
+ readonly date: z.ZodString;
519
+ readonly title: z.ZodString;
520
+ readonly note: z.ZodNullable<z.ZodString>;
521
+ readonly url: z.ZodNullable<z.ZodString>;
522
+ }, z.core.$strip>>;
523
+ readonly total: z.ZodNumber;
524
+ readonly limit: z.ZodNumber;
525
+ }, z.core.$strip>;
526
+ meta: z.ZodObject<{
527
+ requestId: z.ZodString;
528
+ version: z.ZodLiteral<"1.0">;
529
+ }, z.core.$strict>;
530
+ }, z.core.$strip>, z.ZodObject<{
531
+ data: z.ZodObject<{
532
+ readonly annotations: z.ZodArray<z.ZodObject<{
533
+ readonly id: z.ZodString;
534
+ readonly date: z.ZodString;
535
+ readonly title: z.ZodString;
536
+ readonly note: z.ZodNullable<z.ZodString>;
537
+ readonly url: z.ZodNullable<z.ZodString>;
538
+ }, z.core.$strip>>;
539
+ readonly total: z.ZodNumber;
540
+ readonly limit: z.ZodNumber;
541
+ }, z.core.$strip>;
542
+ meta: z.ZodObject<{
543
+ requestId: z.ZodString;
544
+ version: z.ZodLiteral<"1.0">;
545
+ }, z.core.$loose>;
546
+ }, z.core.$strip>>;
547
+ };
548
+ readonly errors: readonly ["invalid_request", "unauthorized", "auth_expired", "forbidden", "not_found", "rate_limited", "contract_violation", "internal_error"];
549
+ readonly errorResponse: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
550
+ readonly error: z.ZodObject<{
551
+ code: z.ZodEnum<{
552
+ auth_expired: "auth_expired";
553
+ conflict: "conflict";
554
+ contract_violation: "contract_violation";
555
+ entitlement_required: "entitlement_required";
556
+ forbidden: "forbidden";
557
+ internal_error: "internal_error";
558
+ invalid_request: "invalid_request";
559
+ not_found: "not_found";
560
+ provider_unavailable: "provider_unavailable";
561
+ quota_exhausted: "quota_exhausted";
562
+ rate_limited: "rate_limited";
563
+ site_ambiguous: "site_ambiguous";
564
+ stale_evidence: "stale_evidence";
565
+ unauthorized: "unauthorized";
566
+ }>;
567
+ message: z.ZodString;
568
+ requestId: z.ZodString;
569
+ retryable: z.ZodBoolean;
570
+ details: z.ZodRecord<z.ZodString, z.ZodUnknown>;
571
+ }, z.core.$strict>;
572
+ }, z.core.$strip>, z.ZodObject<{
573
+ readonly error: z.ZodObject<{
574
+ code: z.ZodEnum<{
575
+ auth_expired: "auth_expired";
576
+ conflict: "conflict";
577
+ contract_violation: "contract_violation";
578
+ entitlement_required: "entitlement_required";
579
+ forbidden: "forbidden";
580
+ internal_error: "internal_error";
581
+ invalid_request: "invalid_request";
582
+ not_found: "not_found";
583
+ provider_unavailable: "provider_unavailable";
584
+ quota_exhausted: "quota_exhausted";
585
+ rate_limited: "rate_limited";
586
+ site_ambiguous: "site_ambiguous";
587
+ stale_evidence: "stale_evidence";
588
+ unauthorized: "unauthorized";
589
+ }>;
590
+ message: z.ZodString;
591
+ requestId: z.ZodString;
592
+ retryable: z.ZodBoolean;
593
+ details: z.ZodRecord<z.ZodString, z.ZodUnknown>;
594
+ }, z.core.$loose>;
595
+ }, z.core.$strip>>;
596
+ readonly resources: {
597
+ readonly reads: readonly [{
598
+ readonly type: 'site.timeline';
599
+ readonly idFrom: 'params.siteId';
600
+ }];
601
+ readonly changes: readonly [];
602
+ };
603
+ readonly policy: {
604
+ readonly rate: {
605
+ readonly name: 'public-v1-fixed-window';
606
+ readonly limit: 50;
607
+ readonly windowSeconds: 60;
608
+ };
609
+ readonly idempotency: {
610
+ readonly _tag: 'none';
611
+ };
612
+ readonly entitlement: null;
613
+ readonly meter: null;
614
+ };
615
+ readonly lifecycle: {
616
+ readonly introduced: '1.2.0';
617
+ };
618
+ readonly docs: {
619
+ readonly summary: 'List chart annotations';
620
+ readonly description: 'Returns this Site own chart annotations, oldest day first. These are the markers a person or an agent placed; detected events and releases are read through the Timeline instead. `limit` is the per-Site cap, not a paging window.';
621
+ readonly tags: readonly ["Timeline"];
622
+ readonly examples: readonly [{
623
+ readonly request: {
624
+ readonly params: {
625
+ readonly siteId: 'site_01JXYZ';
626
+ };
627
+ };
628
+ readonly response: {
629
+ readonly status: 200;
630
+ readonly body: {
631
+ readonly data: {
632
+ readonly annotations: readonly [{
633
+ readonly id: 'ann_01JXYZ';
634
+ readonly date: '2026-07-30';
635
+ readonly title: 'Shipped v3.2';
636
+ readonly note: 'Canonical tags repaired across /docs';
637
+ readonly url: 'https://github.com/owner/repo/releases/tag/v3.2.0';
638
+ }];
639
+ readonly total: 1;
640
+ readonly limit: 100;
641
+ };
642
+ readonly meta: {
643
+ readonly requestId: 'req_01JXYZ';
644
+ readonly version: '1.0';
645
+ };
646
+ };
647
+ };
648
+ }];
649
+ };
650
+ };
651
+ export declare const annotationCreateOperation: {
652
+ readonly id: 'timeline.annotations.create';
653
+ readonly method: 'POST';
654
+ readonly path: '/api/v1/sites/{siteId}/timeline/annotations';
655
+ readonly visibility: 'public';
656
+ readonly semantics: {
657
+ readonly kind: 'mutation';
658
+ readonly sideEffects: 'state';
659
+ readonly retry: 'never';
660
+ readonly readConsistency: null;
661
+ };
662
+ readonly auth: {
663
+ readonly credentials: readonly ['session', 'api_token'];
664
+ readonly scopes: readonly ['timeline:write'];
665
+ readonly minimumRole: 'member';
666
+ readonly ownership: 'site';
667
+ };
668
+ readonly request: {
669
+ readonly params: z.ZodObject<{
670
+ siteId: z.ZodString;
671
+ }, z.core.$strict>;
672
+ readonly query: null;
673
+ readonly headers: null;
674
+ readonly body: z.ZodObject<{
675
+ date: z.ZodISODate;
676
+ title: z.ZodString;
677
+ note: z.ZodOptional<z.ZodNullable<z.ZodString>>;
678
+ url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
679
+ }, z.core.$strict>;
680
+ };
681
+ readonly responses: {
682
+ readonly 200: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
683
+ data: z.ZodObject<{
684
+ readonly annotation: z.ZodObject<{
685
+ readonly id: z.ZodString;
686
+ readonly date: z.ZodString;
687
+ readonly title: z.ZodString;
688
+ readonly note: z.ZodNullable<z.ZodString>;
689
+ readonly url: z.ZodNullable<z.ZodString>;
690
+ }, z.core.$strip>;
691
+ }, z.core.$strip>;
692
+ meta: z.ZodObject<{
693
+ requestId: z.ZodString;
694
+ version: z.ZodLiteral<"1.0">;
695
+ }, z.core.$strict>;
696
+ }, z.core.$strip>, z.ZodObject<{
697
+ data: z.ZodObject<{
698
+ readonly annotation: z.ZodObject<{
699
+ readonly id: z.ZodString;
700
+ readonly date: z.ZodString;
701
+ readonly title: z.ZodString;
702
+ readonly note: z.ZodNullable<z.ZodString>;
703
+ readonly url: z.ZodNullable<z.ZodString>;
704
+ }, z.core.$strip>;
705
+ }, z.core.$strip>;
706
+ meta: z.ZodObject<{
707
+ requestId: z.ZodString;
708
+ version: z.ZodLiteral<"1.0">;
709
+ }, z.core.$loose>;
710
+ }, z.core.$strip>>;
711
+ };
712
+ readonly errors: readonly ["invalid_request", "unauthorized", "auth_expired", "forbidden", "not_found", "conflict", "quota_exhausted", "rate_limited", "contract_violation", "internal_error"];
713
+ readonly errorResponse: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
714
+ readonly error: z.ZodObject<{
715
+ code: z.ZodEnum<{
716
+ auth_expired: "auth_expired";
717
+ conflict: "conflict";
718
+ contract_violation: "contract_violation";
719
+ entitlement_required: "entitlement_required";
720
+ forbidden: "forbidden";
721
+ internal_error: "internal_error";
722
+ invalid_request: "invalid_request";
723
+ not_found: "not_found";
724
+ provider_unavailable: "provider_unavailable";
725
+ quota_exhausted: "quota_exhausted";
726
+ rate_limited: "rate_limited";
727
+ site_ambiguous: "site_ambiguous";
728
+ stale_evidence: "stale_evidence";
729
+ unauthorized: "unauthorized";
730
+ }>;
731
+ message: z.ZodString;
732
+ requestId: z.ZodString;
733
+ retryable: z.ZodBoolean;
734
+ details: z.ZodRecord<z.ZodString, z.ZodUnknown>;
735
+ }, z.core.$strict>;
736
+ }, z.core.$strip>, z.ZodObject<{
737
+ readonly error: z.ZodObject<{
738
+ code: z.ZodEnum<{
739
+ auth_expired: "auth_expired";
740
+ conflict: "conflict";
741
+ contract_violation: "contract_violation";
742
+ entitlement_required: "entitlement_required";
743
+ forbidden: "forbidden";
744
+ internal_error: "internal_error";
745
+ invalid_request: "invalid_request";
746
+ not_found: "not_found";
747
+ provider_unavailable: "provider_unavailable";
748
+ quota_exhausted: "quota_exhausted";
749
+ rate_limited: "rate_limited";
750
+ site_ambiguous: "site_ambiguous";
751
+ stale_evidence: "stale_evidence";
752
+ unauthorized: "unauthorized";
753
+ }>;
754
+ message: z.ZodString;
755
+ requestId: z.ZodString;
756
+ retryable: z.ZodBoolean;
757
+ details: z.ZodRecord<z.ZodString, z.ZodUnknown>;
758
+ }, z.core.$loose>;
759
+ }, z.core.$strip>>;
760
+ readonly resources: {
761
+ readonly reads: readonly [{
762
+ readonly type: 'site.timeline';
763
+ readonly idFrom: 'params.siteId';
764
+ }];
765
+ readonly changes: readonly [{
766
+ readonly type: 'site.timeline';
767
+ readonly idFrom: 'params.siteId';
768
+ }];
769
+ };
770
+ readonly policy: {
771
+ readonly rate: {
772
+ readonly name: 'public-v1-fixed-window';
773
+ readonly limit: 50;
774
+ readonly windowSeconds: 60;
775
+ };
776
+ readonly idempotency: {
777
+ readonly _tag: 'none';
778
+ };
779
+ readonly entitlement: null;
780
+ readonly meter: null;
781
+ };
782
+ readonly lifecycle: {
783
+ readonly introduced: '1.2.0';
784
+ };
785
+ readonly docs: {
786
+ readonly summary: 'Create a chart annotation';
787
+ readonly description: 'Places one dated marker on this Site charts. Mark the day work shipped, so the next traffic or ranking move has a cause beside it. The Site has a fixed annotation cap; when it is reached the request is rejected and stale markers must be deleted first.';
788
+ readonly tags: readonly ["Timeline"];
789
+ readonly examples: readonly [{
790
+ readonly request: {
791
+ readonly params: {
792
+ readonly siteId: 'site_01JXYZ';
793
+ };
794
+ readonly body: {
795
+ readonly date: '2026-07-30';
796
+ readonly title: 'Shipped v3.2';
797
+ readonly note: null;
798
+ readonly url: null;
799
+ };
800
+ };
801
+ readonly response: {
802
+ readonly status: 200;
803
+ readonly body: {
804
+ readonly data: {
805
+ readonly annotation: {
806
+ readonly id: 'ann_01JXYZ';
807
+ readonly date: '2026-07-30';
808
+ readonly title: 'Shipped v3.2';
809
+ readonly note: null;
810
+ readonly url: null;
811
+ };
812
+ };
813
+ readonly meta: {
814
+ readonly requestId: 'req_01JXYZ';
815
+ readonly version: '1.0';
816
+ };
817
+ };
818
+ };
819
+ }];
820
+ };
821
+ };
822
+ export declare const annotationUpdateOperation: {
823
+ readonly id: 'timeline.annotations.update';
824
+ readonly method: 'PATCH';
825
+ readonly path: '/api/v1/sites/{siteId}/timeline/annotations/{annotationId}';
826
+ readonly visibility: 'public';
827
+ readonly semantics: {
828
+ readonly kind: 'mutation';
829
+ readonly sideEffects: 'state';
830
+ readonly retry: 'never';
831
+ readonly readConsistency: null;
832
+ };
833
+ readonly auth: {
834
+ readonly credentials: readonly ['session', 'api_token'];
835
+ readonly scopes: readonly ['timeline:write'];
836
+ readonly minimumRole: 'member';
837
+ readonly ownership: 'site';
838
+ };
839
+ readonly request: {
840
+ readonly params: z.ZodObject<{
841
+ siteId: z.ZodString;
842
+ annotationId: z.ZodString;
843
+ }, z.core.$strict>;
844
+ readonly query: null;
845
+ readonly headers: null;
846
+ readonly body: z.ZodObject<{
847
+ date: z.ZodOptional<z.ZodISODate>;
848
+ title: z.ZodOptional<z.ZodString>;
849
+ note: z.ZodOptional<z.ZodNullable<z.ZodString>>;
850
+ url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
851
+ }, z.core.$strict>;
852
+ };
853
+ readonly responses: {
854
+ readonly 200: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
855
+ data: z.ZodObject<{
856
+ readonly annotation: z.ZodObject<{
857
+ readonly id: z.ZodString;
858
+ readonly date: z.ZodString;
859
+ readonly title: z.ZodString;
860
+ readonly note: z.ZodNullable<z.ZodString>;
861
+ readonly url: z.ZodNullable<z.ZodString>;
862
+ }, z.core.$strip>;
863
+ }, z.core.$strip>;
864
+ meta: z.ZodObject<{
865
+ requestId: z.ZodString;
866
+ version: z.ZodLiteral<"1.0">;
867
+ }, z.core.$strict>;
868
+ }, z.core.$strip>, z.ZodObject<{
869
+ data: z.ZodObject<{
870
+ readonly annotation: z.ZodObject<{
871
+ readonly id: z.ZodString;
872
+ readonly date: z.ZodString;
873
+ readonly title: z.ZodString;
874
+ readonly note: z.ZodNullable<z.ZodString>;
875
+ readonly url: z.ZodNullable<z.ZodString>;
876
+ }, z.core.$strip>;
877
+ }, z.core.$strip>;
878
+ meta: z.ZodObject<{
879
+ requestId: z.ZodString;
880
+ version: z.ZodLiteral<"1.0">;
881
+ }, z.core.$loose>;
882
+ }, z.core.$strip>>;
883
+ };
884
+ readonly errors: readonly ["invalid_request", "unauthorized", "auth_expired", "forbidden", "not_found", "conflict", "quota_exhausted", "rate_limited", "contract_violation", "internal_error"];
885
+ readonly errorResponse: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
886
+ readonly error: z.ZodObject<{
887
+ code: z.ZodEnum<{
888
+ auth_expired: "auth_expired";
889
+ conflict: "conflict";
890
+ contract_violation: "contract_violation";
891
+ entitlement_required: "entitlement_required";
892
+ forbidden: "forbidden";
893
+ internal_error: "internal_error";
894
+ invalid_request: "invalid_request";
895
+ not_found: "not_found";
896
+ provider_unavailable: "provider_unavailable";
897
+ quota_exhausted: "quota_exhausted";
898
+ rate_limited: "rate_limited";
899
+ site_ambiguous: "site_ambiguous";
900
+ stale_evidence: "stale_evidence";
901
+ unauthorized: "unauthorized";
902
+ }>;
903
+ message: z.ZodString;
904
+ requestId: z.ZodString;
905
+ retryable: z.ZodBoolean;
906
+ details: z.ZodRecord<z.ZodString, z.ZodUnknown>;
907
+ }, z.core.$strict>;
908
+ }, z.core.$strip>, z.ZodObject<{
909
+ readonly error: z.ZodObject<{
910
+ code: z.ZodEnum<{
911
+ auth_expired: "auth_expired";
912
+ conflict: "conflict";
913
+ contract_violation: "contract_violation";
914
+ entitlement_required: "entitlement_required";
915
+ forbidden: "forbidden";
916
+ internal_error: "internal_error";
917
+ invalid_request: "invalid_request";
918
+ not_found: "not_found";
919
+ provider_unavailable: "provider_unavailable";
920
+ quota_exhausted: "quota_exhausted";
921
+ rate_limited: "rate_limited";
922
+ site_ambiguous: "site_ambiguous";
923
+ stale_evidence: "stale_evidence";
924
+ unauthorized: "unauthorized";
925
+ }>;
926
+ message: z.ZodString;
927
+ requestId: z.ZodString;
928
+ retryable: z.ZodBoolean;
929
+ details: z.ZodRecord<z.ZodString, z.ZodUnknown>;
930
+ }, z.core.$loose>;
931
+ }, z.core.$strip>>;
932
+ readonly resources: {
933
+ readonly reads: readonly [{
934
+ readonly type: 'site.timeline';
935
+ readonly idFrom: 'params.siteId';
936
+ }];
937
+ readonly changes: readonly [{
938
+ readonly type: 'site.timeline';
939
+ readonly idFrom: 'params.siteId';
940
+ }];
941
+ };
942
+ readonly policy: {
943
+ readonly rate: {
944
+ readonly name: 'public-v1-fixed-window';
945
+ readonly limit: 50;
946
+ readonly windowSeconds: 60;
947
+ };
948
+ readonly idempotency: {
949
+ readonly _tag: 'none';
950
+ };
951
+ readonly entitlement: null;
952
+ readonly meter: null;
953
+ };
954
+ readonly lifecycle: {
955
+ readonly introduced: '1.2.0';
956
+ };
957
+ readonly docs: {
958
+ readonly summary: 'Update a chart annotation';
959
+ readonly description: 'Changes the day, title, note, or link of one annotation. Send only the fields that change. Pass null for note or url to clear it.';
960
+ readonly tags: readonly ["Timeline"];
961
+ readonly examples: readonly [{
962
+ readonly request: {
963
+ readonly params: {
964
+ readonly siteId: 'site_01JXYZ';
965
+ readonly annotationId: 'ann_01JXYZ';
966
+ };
967
+ readonly body: {
968
+ readonly title: 'Shipped v3.2.1';
969
+ };
970
+ };
971
+ readonly response: {
972
+ readonly status: 200;
973
+ readonly body: {
974
+ readonly data: {
975
+ readonly annotation: {
976
+ readonly id: 'ann_01JXYZ';
977
+ readonly date: '2026-07-30';
978
+ readonly title: 'Shipped v3.2.1';
979
+ readonly note: null;
980
+ readonly url: null;
981
+ };
982
+ };
983
+ readonly meta: {
984
+ readonly requestId: 'req_01JXYZ';
985
+ readonly version: '1.0';
986
+ };
987
+ };
988
+ };
989
+ }];
990
+ };
991
+ };
992
+ export declare const annotationDeleteOperation: {
993
+ readonly id: 'timeline.annotations.delete';
994
+ readonly method: 'DELETE';
995
+ readonly path: '/api/v1/sites/{siteId}/timeline/annotations/{annotationId}';
996
+ readonly visibility: 'public';
997
+ readonly semantics: {
998
+ readonly kind: 'mutation';
999
+ readonly sideEffects: 'state';
1000
+ readonly retry: 'never';
1001
+ readonly readConsistency: null;
1002
+ };
1003
+ readonly auth: {
1004
+ readonly credentials: readonly ['session', 'api_token'];
1005
+ readonly scopes: readonly ['timeline:write'];
1006
+ readonly minimumRole: 'member';
1007
+ readonly ownership: 'site';
1008
+ };
1009
+ readonly request: {
1010
+ readonly params: z.ZodObject<{
1011
+ siteId: z.ZodString;
1012
+ annotationId: z.ZodString;
1013
+ }, z.core.$strict>;
1014
+ readonly query: null;
1015
+ readonly headers: null;
1016
+ readonly body: null;
1017
+ };
1018
+ readonly responses: {
1019
+ readonly 200: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
1020
+ data: z.ZodObject<{
1021
+ readonly annotationId: z.ZodString;
1022
+ readonly deleted: z.ZodLiteral<true>;
1023
+ }, z.core.$strip>;
1024
+ meta: z.ZodObject<{
1025
+ requestId: z.ZodString;
1026
+ version: z.ZodLiteral<"1.0">;
1027
+ }, z.core.$strict>;
1028
+ }, z.core.$strip>, z.ZodObject<{
1029
+ data: z.ZodObject<{
1030
+ readonly annotationId: z.ZodString;
1031
+ readonly deleted: z.ZodLiteral<true>;
1032
+ }, z.core.$strip>;
1033
+ meta: z.ZodObject<{
1034
+ requestId: z.ZodString;
1035
+ version: z.ZodLiteral<"1.0">;
1036
+ }, z.core.$loose>;
1037
+ }, z.core.$strip>>;
1038
+ };
1039
+ readonly errors: readonly ["invalid_request", "unauthorized", "auth_expired", "forbidden", "not_found", "conflict", "quota_exhausted", "rate_limited", "contract_violation", "internal_error"];
1040
+ readonly errorResponse: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
1041
+ readonly error: z.ZodObject<{
1042
+ code: z.ZodEnum<{
1043
+ auth_expired: "auth_expired";
1044
+ conflict: "conflict";
1045
+ contract_violation: "contract_violation";
1046
+ entitlement_required: "entitlement_required";
1047
+ forbidden: "forbidden";
1048
+ internal_error: "internal_error";
1049
+ invalid_request: "invalid_request";
1050
+ not_found: "not_found";
1051
+ provider_unavailable: "provider_unavailable";
1052
+ quota_exhausted: "quota_exhausted";
1053
+ rate_limited: "rate_limited";
1054
+ site_ambiguous: "site_ambiguous";
1055
+ stale_evidence: "stale_evidence";
1056
+ unauthorized: "unauthorized";
1057
+ }>;
1058
+ message: z.ZodString;
1059
+ requestId: z.ZodString;
1060
+ retryable: z.ZodBoolean;
1061
+ details: z.ZodRecord<z.ZodString, z.ZodUnknown>;
1062
+ }, z.core.$strict>;
1063
+ }, z.core.$strip>, z.ZodObject<{
1064
+ readonly error: z.ZodObject<{
1065
+ code: z.ZodEnum<{
1066
+ auth_expired: "auth_expired";
1067
+ conflict: "conflict";
1068
+ contract_violation: "contract_violation";
1069
+ entitlement_required: "entitlement_required";
1070
+ forbidden: "forbidden";
1071
+ internal_error: "internal_error";
1072
+ invalid_request: "invalid_request";
1073
+ not_found: "not_found";
1074
+ provider_unavailable: "provider_unavailable";
1075
+ quota_exhausted: "quota_exhausted";
1076
+ rate_limited: "rate_limited";
1077
+ site_ambiguous: "site_ambiguous";
1078
+ stale_evidence: "stale_evidence";
1079
+ unauthorized: "unauthorized";
1080
+ }>;
1081
+ message: z.ZodString;
1082
+ requestId: z.ZodString;
1083
+ retryable: z.ZodBoolean;
1084
+ details: z.ZodRecord<z.ZodString, z.ZodUnknown>;
1085
+ }, z.core.$loose>;
1086
+ }, z.core.$strip>>;
1087
+ readonly resources: {
1088
+ readonly reads: readonly [{
1089
+ readonly type: 'site.timeline';
1090
+ readonly idFrom: 'params.siteId';
1091
+ }];
1092
+ readonly changes: readonly [{
1093
+ readonly type: 'site.timeline';
1094
+ readonly idFrom: 'params.siteId';
1095
+ }];
1096
+ };
1097
+ readonly policy: {
1098
+ readonly rate: {
1099
+ readonly name: 'public-v1-fixed-window';
1100
+ readonly limit: 50;
1101
+ readonly windowSeconds: 60;
1102
+ };
1103
+ readonly idempotency: {
1104
+ readonly _tag: 'none';
1105
+ };
1106
+ readonly entitlement: null;
1107
+ readonly meter: null;
1108
+ };
1109
+ readonly lifecycle: {
1110
+ readonly introduced: '1.2.0';
1111
+ };
1112
+ readonly docs: {
1113
+ readonly summary: 'Delete a chart annotation';
1114
+ readonly description: 'Removes one annotation permanently. Deleting frees a slot against the per-Site cap.';
1115
+ readonly tags: readonly ["Timeline"];
1116
+ readonly examples: readonly [{
1117
+ readonly request: {
1118
+ readonly params: {
1119
+ readonly siteId: 'site_01JXYZ';
1120
+ readonly annotationId: 'ann_01JXYZ';
1121
+ };
1122
+ };
1123
+ readonly response: {
1124
+ readonly status: 200;
1125
+ readonly body: {
1126
+ readonly data: {
1127
+ readonly annotationId: 'ann_01JXYZ';
1128
+ readonly deleted: true;
1129
+ };
1130
+ readonly meta: {
1131
+ readonly requestId: 'req_01JXYZ';
1132
+ readonly version: '1.0';
1133
+ };
1134
+ };
1135
+ };
1136
+ }];
1137
+ };
1138
+ };
320
1139
  export declare const timelineV1Registry: import("./core.js").PublicV1Registry<{
321
1140
  readonly entries: {
322
1141
  readonly id: 'timeline.entries';
323
1142
  readonly method: 'GET';
324
- readonly path: '/api/v1/sites/{siteId}/timeline';
1143
+ readonly path: '/api/v1/sites/{siteId}/timeline';
1144
+ readonly visibility: 'public';
1145
+ readonly semantics: {
1146
+ readonly kind: 'query';
1147
+ readonly sideEffects: 'none';
1148
+ readonly retry: 'idempotent';
1149
+ readonly readConsistency: 'primary';
1150
+ };
1151
+ readonly auth: {
1152
+ readonly credentials: readonly ['session', 'api_token'];
1153
+ readonly scopes: readonly ['timeline:read'];
1154
+ readonly minimumRole: 'viewer';
1155
+ readonly ownership: 'site';
1156
+ };
1157
+ readonly request: {
1158
+ readonly params: z.ZodObject<{
1159
+ siteId: z.ZodString;
1160
+ }, z.core.$strict>;
1161
+ readonly query: z.ZodObject<{
1162
+ kinds: z.ZodPipe<z.ZodOptional<z.ZodString>, z.ZodTransform<string[] | undefined, string | undefined>>;
1163
+ feature: z.ZodOptional<z.ZodString>;
1164
+ severity: z.ZodPipe<z.ZodOptional<z.ZodString>, z.ZodTransform<("high" | "info" | "notable")[] | undefined, string | undefined>>;
1165
+ since: z.ZodOptional<z.ZodString>;
1166
+ limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
1167
+ cursor: z.ZodOptional<z.ZodString>;
1168
+ includeClosed: z.ZodPipe<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodEnum<{
1169
+ false: "false";
1170
+ true: "true";
1171
+ }>]>>, z.ZodTransform<boolean, "false" | "true" | boolean>>;
1172
+ }, z.core.$strict>;
1173
+ readonly headers: null;
1174
+ readonly body: null;
1175
+ };
1176
+ readonly responses: {
1177
+ readonly 200: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
1178
+ data: z.ZodObject<{
1179
+ readonly entries: z.ZodArray<z.ZodObject<{
1180
+ readonly id: z.ZodString;
1181
+ readonly kind: z.ZodString;
1182
+ readonly severity: z.ZodNullable<z.ZodEnum<{
1183
+ high: "high";
1184
+ info: "info";
1185
+ notable: "notable";
1186
+ }>>;
1187
+ readonly occurredAt: z.ZodString;
1188
+ readonly rendered: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1189
+ readonly payload: z.ZodRecord<z.ZodString, z.ZodUnknown>;
1190
+ }, z.core.$strip>>;
1191
+ readonly nextCursor: z.ZodNullable<z.ZodString>;
1192
+ readonly counts: z.ZodRecord<z.ZodString, z.ZodNumber>;
1193
+ }, z.core.$strip>;
1194
+ meta: z.ZodObject<{
1195
+ requestId: z.ZodString;
1196
+ version: z.ZodLiteral<"1.0">;
1197
+ }, z.core.$strict>;
1198
+ }, z.core.$strip>, z.ZodObject<{
1199
+ data: z.ZodObject<{
1200
+ readonly entries: z.ZodArray<z.ZodObject<{
1201
+ readonly id: z.ZodString;
1202
+ readonly kind: z.ZodString;
1203
+ readonly severity: z.ZodNullable<z.ZodEnum<{
1204
+ high: "high";
1205
+ info: "info";
1206
+ notable: "notable";
1207
+ }>>;
1208
+ readonly occurredAt: z.ZodString;
1209
+ readonly rendered: z.ZodNullable<z.ZodObject<{}, z.core.$loose>>;
1210
+ readonly payload: z.ZodObject<{}, z.core.$loose>;
1211
+ }, z.core.$strip>>;
1212
+ readonly nextCursor: z.ZodNullable<z.ZodString>;
1213
+ readonly counts: z.ZodRecord<z.ZodString, z.ZodNumber>;
1214
+ }, z.core.$strip>;
1215
+ meta: z.ZodObject<{
1216
+ requestId: z.ZodString;
1217
+ version: z.ZodLiteral<"1.0">;
1218
+ }, z.core.$loose>;
1219
+ }, z.core.$strip>>;
1220
+ };
1221
+ readonly errors: readonly ["invalid_request", "unauthorized", "auth_expired", "forbidden", "not_found", "rate_limited", "provider_unavailable", "contract_violation", "internal_error"];
1222
+ readonly errorResponse: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
1223
+ readonly error: z.ZodObject<{
1224
+ code: z.ZodEnum<{
1225
+ auth_expired: "auth_expired";
1226
+ conflict: "conflict";
1227
+ contract_violation: "contract_violation";
1228
+ entitlement_required: "entitlement_required";
1229
+ forbidden: "forbidden";
1230
+ internal_error: "internal_error";
1231
+ invalid_request: "invalid_request";
1232
+ not_found: "not_found";
1233
+ provider_unavailable: "provider_unavailable";
1234
+ quota_exhausted: "quota_exhausted";
1235
+ rate_limited: "rate_limited";
1236
+ site_ambiguous: "site_ambiguous";
1237
+ stale_evidence: "stale_evidence";
1238
+ unauthorized: "unauthorized";
1239
+ }>;
1240
+ message: z.ZodString;
1241
+ requestId: z.ZodString;
1242
+ retryable: z.ZodBoolean;
1243
+ details: z.ZodRecord<z.ZodString, z.ZodUnknown>;
1244
+ }, z.core.$strict>;
1245
+ }, z.core.$strip>, z.ZodObject<{
1246
+ readonly error: z.ZodObject<{
1247
+ code: z.ZodEnum<{
1248
+ auth_expired: "auth_expired";
1249
+ conflict: "conflict";
1250
+ contract_violation: "contract_violation";
1251
+ entitlement_required: "entitlement_required";
1252
+ forbidden: "forbidden";
1253
+ internal_error: "internal_error";
1254
+ invalid_request: "invalid_request";
1255
+ not_found: "not_found";
1256
+ provider_unavailable: "provider_unavailable";
1257
+ quota_exhausted: "quota_exhausted";
1258
+ rate_limited: "rate_limited";
1259
+ site_ambiguous: "site_ambiguous";
1260
+ stale_evidence: "stale_evidence";
1261
+ unauthorized: "unauthorized";
1262
+ }>;
1263
+ message: z.ZodString;
1264
+ requestId: z.ZodString;
1265
+ retryable: z.ZodBoolean;
1266
+ details: z.ZodRecord<z.ZodString, z.ZodUnknown>;
1267
+ }, z.core.$loose>;
1268
+ }, z.core.$strip>>;
1269
+ readonly resources: {
1270
+ readonly reads: readonly [{
1271
+ readonly type: 'site.timeline';
1272
+ readonly idFrom: 'params.siteId';
1273
+ }];
1274
+ readonly changes: readonly [];
1275
+ };
1276
+ readonly policy: {
1277
+ readonly rate: {
1278
+ readonly name: 'public-v1-fixed-window';
1279
+ readonly limit: 50;
1280
+ readonly windowSeconds: 60;
1281
+ };
1282
+ readonly idempotency: {
1283
+ readonly _tag: 'none';
1284
+ };
1285
+ readonly entitlement: null;
1286
+ readonly meter: null;
1287
+ };
1288
+ readonly lifecycle: {
1289
+ readonly introduced: '1.0.0';
1290
+ };
1291
+ readonly docs: {
1292
+ readonly summary: 'Read the Timeline';
1293
+ readonly description: 'What changed on this Site — Timeline Entries such as traffic drops, indexing changes, sitemap changes, rank shifts and deploys. Filter by kind, feature, severity and since; paginated with an opaque cursor.';
1294
+ readonly tags: readonly ["Timeline"];
1295
+ readonly examples: readonly [{
1296
+ readonly request: {
1297
+ readonly params: {
1298
+ readonly siteId: 'site_01JXYZ';
1299
+ };
1300
+ readonly query: {
1301
+ readonly severity: 'high';
1302
+ };
1303
+ };
1304
+ readonly response: {
1305
+ readonly status: 200;
1306
+ readonly body: {
1307
+ readonly data: {
1308
+ readonly entries: readonly [{
1309
+ readonly id: 'timeline_01JXYZ';
1310
+ readonly kind: 'traffic.dropped';
1311
+ readonly severity: 'high';
1312
+ readonly occurredAt: '2026-08-10T01:30:00.000Z';
1313
+ readonly rendered: {
1314
+ readonly label: 'Clicks dropped 42%';
1315
+ readonly value: -0.42;
1316
+ readonly direction: 'down';
1317
+ };
1318
+ readonly payload: {
1319
+ readonly clicksDelta: -180;
1320
+ };
1321
+ }];
1322
+ readonly nextCursor: null;
1323
+ readonly counts: {
1324
+ readonly 'traffic.dropped': 1;
1325
+ };
1326
+ };
1327
+ readonly meta: {
1328
+ readonly requestId: 'req_01JXYZ';
1329
+ readonly version: '1.0';
1330
+ };
1331
+ };
1332
+ };
1333
+ }];
1334
+ };
1335
+ };
1336
+ readonly listAnnotations: {
1337
+ readonly id: 'timeline.annotations.list';
1338
+ readonly method: 'GET';
1339
+ readonly path: '/api/v1/sites/{siteId}/timeline/annotations';
1340
+ readonly visibility: 'public';
1341
+ readonly semantics: {
1342
+ readonly kind: 'query';
1343
+ readonly sideEffects: 'none';
1344
+ readonly retry: 'idempotent';
1345
+ readonly readConsistency: 'primary';
1346
+ };
1347
+ readonly auth: {
1348
+ readonly credentials: readonly ["session", "api_token"];
1349
+ readonly scopes: readonly ["timeline:read"];
1350
+ readonly minimumRole: 'viewer';
1351
+ readonly ownership: 'site';
1352
+ };
1353
+ readonly request: {
1354
+ readonly params: z.ZodObject<{
1355
+ siteId: z.ZodString;
1356
+ }, z.core.$strict>;
1357
+ readonly query: null;
1358
+ readonly headers: null;
1359
+ readonly body: null;
1360
+ };
1361
+ readonly responses: {
1362
+ readonly 200: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
1363
+ data: z.ZodObject<{
1364
+ readonly annotations: z.ZodArray<z.ZodObject<{
1365
+ readonly id: z.ZodString;
1366
+ readonly date: z.ZodString;
1367
+ readonly title: z.ZodString;
1368
+ readonly note: z.ZodNullable<z.ZodString>;
1369
+ readonly url: z.ZodNullable<z.ZodString>;
1370
+ }, z.core.$strip>>;
1371
+ readonly total: z.ZodNumber;
1372
+ readonly limit: z.ZodNumber;
1373
+ }, z.core.$strip>;
1374
+ meta: z.ZodObject<{
1375
+ requestId: z.ZodString;
1376
+ version: z.ZodLiteral<"1.0">;
1377
+ }, z.core.$strict>;
1378
+ }, z.core.$strip>, z.ZodObject<{
1379
+ data: z.ZodObject<{
1380
+ readonly annotations: z.ZodArray<z.ZodObject<{
1381
+ readonly id: z.ZodString;
1382
+ readonly date: z.ZodString;
1383
+ readonly title: z.ZodString;
1384
+ readonly note: z.ZodNullable<z.ZodString>;
1385
+ readonly url: z.ZodNullable<z.ZodString>;
1386
+ }, z.core.$strip>>;
1387
+ readonly total: z.ZodNumber;
1388
+ readonly limit: z.ZodNumber;
1389
+ }, z.core.$strip>;
1390
+ meta: z.ZodObject<{
1391
+ requestId: z.ZodString;
1392
+ version: z.ZodLiteral<"1.0">;
1393
+ }, z.core.$loose>;
1394
+ }, z.core.$strip>>;
1395
+ };
1396
+ readonly errors: readonly ["invalid_request", "unauthorized", "auth_expired", "forbidden", "not_found", "rate_limited", "contract_violation", "internal_error"];
1397
+ readonly errorResponse: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
1398
+ readonly error: z.ZodObject<{
1399
+ code: z.ZodEnum<{
1400
+ auth_expired: "auth_expired";
1401
+ conflict: "conflict";
1402
+ contract_violation: "contract_violation";
1403
+ entitlement_required: "entitlement_required";
1404
+ forbidden: "forbidden";
1405
+ internal_error: "internal_error";
1406
+ invalid_request: "invalid_request";
1407
+ not_found: "not_found";
1408
+ provider_unavailable: "provider_unavailable";
1409
+ quota_exhausted: "quota_exhausted";
1410
+ rate_limited: "rate_limited";
1411
+ site_ambiguous: "site_ambiguous";
1412
+ stale_evidence: "stale_evidence";
1413
+ unauthorized: "unauthorized";
1414
+ }>;
1415
+ message: z.ZodString;
1416
+ requestId: z.ZodString;
1417
+ retryable: z.ZodBoolean;
1418
+ details: z.ZodRecord<z.ZodString, z.ZodUnknown>;
1419
+ }, z.core.$strict>;
1420
+ }, z.core.$strip>, z.ZodObject<{
1421
+ readonly error: z.ZodObject<{
1422
+ code: z.ZodEnum<{
1423
+ auth_expired: "auth_expired";
1424
+ conflict: "conflict";
1425
+ contract_violation: "contract_violation";
1426
+ entitlement_required: "entitlement_required";
1427
+ forbidden: "forbidden";
1428
+ internal_error: "internal_error";
1429
+ invalid_request: "invalid_request";
1430
+ not_found: "not_found";
1431
+ provider_unavailable: "provider_unavailable";
1432
+ quota_exhausted: "quota_exhausted";
1433
+ rate_limited: "rate_limited";
1434
+ site_ambiguous: "site_ambiguous";
1435
+ stale_evidence: "stale_evidence";
1436
+ unauthorized: "unauthorized";
1437
+ }>;
1438
+ message: z.ZodString;
1439
+ requestId: z.ZodString;
1440
+ retryable: z.ZodBoolean;
1441
+ details: z.ZodRecord<z.ZodString, z.ZodUnknown>;
1442
+ }, z.core.$loose>;
1443
+ }, z.core.$strip>>;
1444
+ readonly resources: {
1445
+ readonly reads: readonly [{
1446
+ readonly type: 'site.timeline';
1447
+ readonly idFrom: 'params.siteId';
1448
+ }];
1449
+ readonly changes: readonly [];
1450
+ };
1451
+ readonly policy: {
1452
+ readonly rate: {
1453
+ readonly name: 'public-v1-fixed-window';
1454
+ readonly limit: 50;
1455
+ readonly windowSeconds: 60;
1456
+ };
1457
+ readonly idempotency: {
1458
+ readonly _tag: 'none';
1459
+ };
1460
+ readonly entitlement: null;
1461
+ readonly meter: null;
1462
+ };
1463
+ readonly lifecycle: {
1464
+ readonly introduced: '1.2.0';
1465
+ };
1466
+ readonly docs: {
1467
+ readonly summary: 'List chart annotations';
1468
+ readonly description: 'Returns this Site own chart annotations, oldest day first. These are the markers a person or an agent placed; detected events and releases are read through the Timeline instead. `limit` is the per-Site cap, not a paging window.';
1469
+ readonly tags: readonly ["Timeline"];
1470
+ readonly examples: readonly [{
1471
+ readonly request: {
1472
+ readonly params: {
1473
+ readonly siteId: 'site_01JXYZ';
1474
+ };
1475
+ };
1476
+ readonly response: {
1477
+ readonly status: 200;
1478
+ readonly body: {
1479
+ readonly data: {
1480
+ readonly annotations: readonly [{
1481
+ readonly id: 'ann_01JXYZ';
1482
+ readonly date: '2026-07-30';
1483
+ readonly title: 'Shipped v3.2';
1484
+ readonly note: 'Canonical tags repaired across /docs';
1485
+ readonly url: 'https://github.com/owner/repo/releases/tag/v3.2.0';
1486
+ }];
1487
+ readonly total: 1;
1488
+ readonly limit: 100;
1489
+ };
1490
+ readonly meta: {
1491
+ readonly requestId: 'req_01JXYZ';
1492
+ readonly version: '1.0';
1493
+ };
1494
+ };
1495
+ };
1496
+ }];
1497
+ };
1498
+ };
1499
+ readonly createAnnotation: {
1500
+ readonly id: 'timeline.annotations.create';
1501
+ readonly method: 'POST';
1502
+ readonly path: '/api/v1/sites/{siteId}/timeline/annotations';
1503
+ readonly visibility: 'public';
1504
+ readonly semantics: {
1505
+ readonly kind: 'mutation';
1506
+ readonly sideEffects: 'state';
1507
+ readonly retry: 'never';
1508
+ readonly readConsistency: null;
1509
+ };
1510
+ readonly auth: {
1511
+ readonly credentials: readonly ['session', 'api_token'];
1512
+ readonly scopes: readonly ['timeline:write'];
1513
+ readonly minimumRole: 'member';
1514
+ readonly ownership: 'site';
1515
+ };
1516
+ readonly request: {
1517
+ readonly params: z.ZodObject<{
1518
+ siteId: z.ZodString;
1519
+ }, z.core.$strict>;
1520
+ readonly query: null;
1521
+ readonly headers: null;
1522
+ readonly body: z.ZodObject<{
1523
+ date: z.ZodISODate;
1524
+ title: z.ZodString;
1525
+ note: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1526
+ url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1527
+ }, z.core.$strict>;
1528
+ };
1529
+ readonly responses: {
1530
+ readonly 200: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
1531
+ data: z.ZodObject<{
1532
+ readonly annotation: z.ZodObject<{
1533
+ readonly id: z.ZodString;
1534
+ readonly date: z.ZodString;
1535
+ readonly title: z.ZodString;
1536
+ readonly note: z.ZodNullable<z.ZodString>;
1537
+ readonly url: z.ZodNullable<z.ZodString>;
1538
+ }, z.core.$strip>;
1539
+ }, z.core.$strip>;
1540
+ meta: z.ZodObject<{
1541
+ requestId: z.ZodString;
1542
+ version: z.ZodLiteral<"1.0">;
1543
+ }, z.core.$strict>;
1544
+ }, z.core.$strip>, z.ZodObject<{
1545
+ data: z.ZodObject<{
1546
+ readonly annotation: z.ZodObject<{
1547
+ readonly id: z.ZodString;
1548
+ readonly date: z.ZodString;
1549
+ readonly title: z.ZodString;
1550
+ readonly note: z.ZodNullable<z.ZodString>;
1551
+ readonly url: z.ZodNullable<z.ZodString>;
1552
+ }, z.core.$strip>;
1553
+ }, z.core.$strip>;
1554
+ meta: z.ZodObject<{
1555
+ requestId: z.ZodString;
1556
+ version: z.ZodLiteral<"1.0">;
1557
+ }, z.core.$loose>;
1558
+ }, z.core.$strip>>;
1559
+ };
1560
+ readonly errors: readonly ["invalid_request", "unauthorized", "auth_expired", "forbidden", "not_found", "conflict", "quota_exhausted", "rate_limited", "contract_violation", "internal_error"];
1561
+ readonly errorResponse: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
1562
+ readonly error: z.ZodObject<{
1563
+ code: z.ZodEnum<{
1564
+ auth_expired: "auth_expired";
1565
+ conflict: "conflict";
1566
+ contract_violation: "contract_violation";
1567
+ entitlement_required: "entitlement_required";
1568
+ forbidden: "forbidden";
1569
+ internal_error: "internal_error";
1570
+ invalid_request: "invalid_request";
1571
+ not_found: "not_found";
1572
+ provider_unavailable: "provider_unavailable";
1573
+ quota_exhausted: "quota_exhausted";
1574
+ rate_limited: "rate_limited";
1575
+ site_ambiguous: "site_ambiguous";
1576
+ stale_evidence: "stale_evidence";
1577
+ unauthorized: "unauthorized";
1578
+ }>;
1579
+ message: z.ZodString;
1580
+ requestId: z.ZodString;
1581
+ retryable: z.ZodBoolean;
1582
+ details: z.ZodRecord<z.ZodString, z.ZodUnknown>;
1583
+ }, z.core.$strict>;
1584
+ }, z.core.$strip>, z.ZodObject<{
1585
+ readonly error: z.ZodObject<{
1586
+ code: z.ZodEnum<{
1587
+ auth_expired: "auth_expired";
1588
+ conflict: "conflict";
1589
+ contract_violation: "contract_violation";
1590
+ entitlement_required: "entitlement_required";
1591
+ forbidden: "forbidden";
1592
+ internal_error: "internal_error";
1593
+ invalid_request: "invalid_request";
1594
+ not_found: "not_found";
1595
+ provider_unavailable: "provider_unavailable";
1596
+ quota_exhausted: "quota_exhausted";
1597
+ rate_limited: "rate_limited";
1598
+ site_ambiguous: "site_ambiguous";
1599
+ stale_evidence: "stale_evidence";
1600
+ unauthorized: "unauthorized";
1601
+ }>;
1602
+ message: z.ZodString;
1603
+ requestId: z.ZodString;
1604
+ retryable: z.ZodBoolean;
1605
+ details: z.ZodRecord<z.ZodString, z.ZodUnknown>;
1606
+ }, z.core.$loose>;
1607
+ }, z.core.$strip>>;
1608
+ readonly resources: {
1609
+ readonly reads: readonly [{
1610
+ readonly type: 'site.timeline';
1611
+ readonly idFrom: 'params.siteId';
1612
+ }];
1613
+ readonly changes: readonly [{
1614
+ readonly type: 'site.timeline';
1615
+ readonly idFrom: 'params.siteId';
1616
+ }];
1617
+ };
1618
+ readonly policy: {
1619
+ readonly rate: {
1620
+ readonly name: 'public-v1-fixed-window';
1621
+ readonly limit: 50;
1622
+ readonly windowSeconds: 60;
1623
+ };
1624
+ readonly idempotency: {
1625
+ readonly _tag: 'none';
1626
+ };
1627
+ readonly entitlement: null;
1628
+ readonly meter: null;
1629
+ };
1630
+ readonly lifecycle: {
1631
+ readonly introduced: '1.2.0';
1632
+ };
1633
+ readonly docs: {
1634
+ readonly summary: 'Create a chart annotation';
1635
+ readonly description: 'Places one dated marker on this Site charts. Mark the day work shipped, so the next traffic or ranking move has a cause beside it. The Site has a fixed annotation cap; when it is reached the request is rejected and stale markers must be deleted first.';
1636
+ readonly tags: readonly ["Timeline"];
1637
+ readonly examples: readonly [{
1638
+ readonly request: {
1639
+ readonly params: {
1640
+ readonly siteId: 'site_01JXYZ';
1641
+ };
1642
+ readonly body: {
1643
+ readonly date: '2026-07-30';
1644
+ readonly title: 'Shipped v3.2';
1645
+ readonly note: null;
1646
+ readonly url: null;
1647
+ };
1648
+ };
1649
+ readonly response: {
1650
+ readonly status: 200;
1651
+ readonly body: {
1652
+ readonly data: {
1653
+ readonly annotation: {
1654
+ readonly id: 'ann_01JXYZ';
1655
+ readonly date: '2026-07-30';
1656
+ readonly title: 'Shipped v3.2';
1657
+ readonly note: null;
1658
+ readonly url: null;
1659
+ };
1660
+ };
1661
+ readonly meta: {
1662
+ readonly requestId: 'req_01JXYZ';
1663
+ readonly version: '1.0';
1664
+ };
1665
+ };
1666
+ };
1667
+ }];
1668
+ };
1669
+ };
1670
+ readonly updateAnnotation: {
1671
+ readonly id: 'timeline.annotations.update';
1672
+ readonly method: 'PATCH';
1673
+ readonly path: '/api/v1/sites/{siteId}/timeline/annotations/{annotationId}';
325
1674
  readonly visibility: 'public';
326
1675
  readonly semantics: {
327
- readonly kind: 'query';
328
- readonly sideEffects: 'none';
329
- readonly retry: 'idempotent';
330
- readonly readConsistency: 'primary';
1676
+ readonly kind: 'mutation';
1677
+ readonly sideEffects: 'state';
1678
+ readonly retry: 'never';
1679
+ readonly readConsistency: null;
331
1680
  };
332
1681
  readonly auth: {
333
1682
  readonly credentials: readonly ['session', 'api_token'];
334
- readonly scopes: readonly ['timeline:read'];
335
- readonly minimumRole: 'viewer';
1683
+ readonly scopes: readonly ['timeline:write'];
1684
+ readonly minimumRole: 'member';
336
1685
  readonly ownership: 'site';
337
1686
  };
338
1687
  readonly request: {
339
1688
  readonly params: z.ZodObject<{
340
1689
  siteId: z.ZodString;
1690
+ annotationId: z.ZodString;
341
1691
  }, z.core.$strict>;
342
- readonly query: z.ZodObject<{
343
- kinds: z.ZodPipe<z.ZodOptional<z.ZodString>, z.ZodTransform<string[] | undefined, string | undefined>>;
344
- feature: z.ZodOptional<z.ZodString>;
345
- severity: z.ZodPipe<z.ZodOptional<z.ZodString>, z.ZodTransform<("high" | "info" | "notable")[] | undefined, string | undefined>>;
346
- since: z.ZodOptional<z.ZodString>;
347
- limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
348
- cursor: z.ZodOptional<z.ZodString>;
349
- includeClosed: z.ZodPipe<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodEnum<{
350
- false: "false";
351
- true: "true";
352
- }>]>>, z.ZodTransform<boolean, "false" | "true" | boolean>>;
353
- }, z.core.$strict>;
1692
+ readonly query: null;
354
1693
  readonly headers: null;
355
- readonly body: null;
1694
+ readonly body: z.ZodObject<{
1695
+ date: z.ZodOptional<z.ZodISODate>;
1696
+ title: z.ZodOptional<z.ZodString>;
1697
+ note: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1698
+ url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1699
+ }, z.core.$strict>;
356
1700
  };
357
1701
  readonly responses: {
358
1702
  readonly 200: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
359
1703
  data: z.ZodObject<{
360
- readonly entries: z.ZodArray<z.ZodObject<{
1704
+ readonly annotation: z.ZodObject<{
361
1705
  readonly id: z.ZodString;
362
- readonly kind: z.ZodString;
363
- readonly severity: z.ZodNullable<z.ZodEnum<{
364
- high: "high";
365
- info: "info";
366
- notable: "notable";
367
- }>>;
368
- readonly occurredAt: z.ZodString;
369
- readonly rendered: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
370
- readonly payload: z.ZodRecord<z.ZodString, z.ZodUnknown>;
371
- }, z.core.$strip>>;
372
- readonly nextCursor: z.ZodNullable<z.ZodString>;
373
- readonly counts: z.ZodRecord<z.ZodString, z.ZodNumber>;
1706
+ readonly date: z.ZodString;
1707
+ readonly title: z.ZodString;
1708
+ readonly note: z.ZodNullable<z.ZodString>;
1709
+ readonly url: z.ZodNullable<z.ZodString>;
1710
+ }, z.core.$strip>;
374
1711
  }, z.core.$strip>;
375
1712
  meta: z.ZodObject<{
376
1713
  requestId: z.ZodString;
@@ -378,20 +1715,13 @@ export declare const timelineV1Registry: import("./core.js").PublicV1Registry<{
378
1715
  }, z.core.$strict>;
379
1716
  }, z.core.$strip>, z.ZodObject<{
380
1717
  data: z.ZodObject<{
381
- readonly entries: z.ZodArray<z.ZodObject<{
1718
+ readonly annotation: z.ZodObject<{
382
1719
  readonly id: z.ZodString;
383
- readonly kind: z.ZodString;
384
- readonly severity: z.ZodNullable<z.ZodEnum<{
385
- high: "high";
386
- info: "info";
387
- notable: "notable";
388
- }>>;
389
- readonly occurredAt: z.ZodString;
390
- readonly rendered: z.ZodNullable<z.ZodObject<{}, z.core.$loose>>;
391
- readonly payload: z.ZodObject<{}, z.core.$loose>;
392
- }, z.core.$strip>>;
393
- readonly nextCursor: z.ZodNullable<z.ZodString>;
394
- readonly counts: z.ZodRecord<z.ZodString, z.ZodNumber>;
1720
+ readonly date: z.ZodString;
1721
+ readonly title: z.ZodString;
1722
+ readonly note: z.ZodNullable<z.ZodString>;
1723
+ readonly url: z.ZodNullable<z.ZodString>;
1724
+ }, z.core.$strip>;
395
1725
  }, z.core.$strip>;
396
1726
  meta: z.ZodObject<{
397
1727
  requestId: z.ZodString;
@@ -399,7 +1729,7 @@ export declare const timelineV1Registry: import("./core.js").PublicV1Registry<{
399
1729
  }, z.core.$loose>;
400
1730
  }, z.core.$strip>>;
401
1731
  };
402
- readonly errors: readonly ["invalid_request", "unauthorized", "auth_expired", "forbidden", "not_found", "rate_limited", "provider_unavailable", "contract_violation", "internal_error"];
1732
+ readonly errors: readonly ["invalid_request", "unauthorized", "auth_expired", "forbidden", "not_found", "conflict", "quota_exhausted", "rate_limited", "contract_violation", "internal_error"];
403
1733
  readonly errorResponse: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
404
1734
  readonly error: z.ZodObject<{
405
1735
  code: z.ZodEnum<{
@@ -452,7 +1782,10 @@ export declare const timelineV1Registry: import("./core.js").PublicV1Registry<{
452
1782
  readonly type: 'site.timeline';
453
1783
  readonly idFrom: 'params.siteId';
454
1784
  }];
455
- readonly changes: readonly [];
1785
+ readonly changes: readonly [{
1786
+ readonly type: 'site.timeline';
1787
+ readonly idFrom: 'params.siteId';
1788
+ }];
456
1789
  };
457
1790
  readonly policy: {
458
1791
  readonly rate: {
@@ -467,42 +1800,32 @@ export declare const timelineV1Registry: import("./core.js").PublicV1Registry<{
467
1800
  readonly meter: null;
468
1801
  };
469
1802
  readonly lifecycle: {
470
- readonly introduced: '1.0.0';
1803
+ readonly introduced: '1.2.0';
471
1804
  };
472
1805
  readonly docs: {
473
- readonly summary: 'Read the Timeline';
474
- readonly description: 'What changed on this Site — Timeline Entries such as traffic drops, indexing changes, sitemap changes, rank shifts and deploys. Filter by kind, feature, severity and since; paginated with an opaque cursor.';
1806
+ readonly summary: 'Update a chart annotation';
1807
+ readonly description: 'Changes the day, title, note, or link of one annotation. Send only the fields that change. Pass null for note or url to clear it.';
475
1808
  readonly tags: readonly ["Timeline"];
476
1809
  readonly examples: readonly [{
477
1810
  readonly request: {
478
1811
  readonly params: {
479
1812
  readonly siteId: 'site_01JXYZ';
1813
+ readonly annotationId: 'ann_01JXYZ';
480
1814
  };
481
- readonly query: {
482
- readonly severity: 'high';
1815
+ readonly body: {
1816
+ readonly title: 'Shipped v3.2.1';
483
1817
  };
484
1818
  };
485
1819
  readonly response: {
486
1820
  readonly status: 200;
487
1821
  readonly body: {
488
1822
  readonly data: {
489
- readonly entries: readonly [{
490
- readonly id: 'timeline_01JXYZ';
491
- readonly kind: 'traffic.dropped';
492
- readonly severity: 'high';
493
- readonly occurredAt: '2026-08-10T01:30:00.000Z';
494
- readonly rendered: {
495
- readonly label: 'Clicks dropped 42%';
496
- readonly value: -0.42;
497
- readonly direction: 'down';
498
- };
499
- readonly payload: {
500
- readonly clicksDelta: -180;
501
- };
502
- }];
503
- readonly nextCursor: null;
504
- readonly counts: {
505
- readonly 'traffic.dropped': 1;
1823
+ readonly annotation: {
1824
+ readonly id: 'ann_01JXYZ';
1825
+ readonly date: '2026-07-30';
1826
+ readonly title: 'Shipped v3.2.1';
1827
+ readonly note: null;
1828
+ readonly url: null;
506
1829
  };
507
1830
  };
508
1831
  readonly meta: {
@@ -514,4 +1837,151 @@ export declare const timelineV1Registry: import("./core.js").PublicV1Registry<{
514
1837
  }];
515
1838
  };
516
1839
  };
1840
+ readonly deleteAnnotation: {
1841
+ readonly id: 'timeline.annotations.delete';
1842
+ readonly method: 'DELETE';
1843
+ readonly path: '/api/v1/sites/{siteId}/timeline/annotations/{annotationId}';
1844
+ readonly visibility: 'public';
1845
+ readonly semantics: {
1846
+ readonly kind: 'mutation';
1847
+ readonly sideEffects: 'state';
1848
+ readonly retry: 'never';
1849
+ readonly readConsistency: null;
1850
+ };
1851
+ readonly auth: {
1852
+ readonly credentials: readonly ['session', 'api_token'];
1853
+ readonly scopes: readonly ['timeline:write'];
1854
+ readonly minimumRole: 'member';
1855
+ readonly ownership: 'site';
1856
+ };
1857
+ readonly request: {
1858
+ readonly params: z.ZodObject<{
1859
+ siteId: z.ZodString;
1860
+ annotationId: z.ZodString;
1861
+ }, z.core.$strict>;
1862
+ readonly query: null;
1863
+ readonly headers: null;
1864
+ readonly body: null;
1865
+ };
1866
+ readonly responses: {
1867
+ readonly 200: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
1868
+ data: z.ZodObject<{
1869
+ readonly annotationId: z.ZodString;
1870
+ readonly deleted: z.ZodLiteral<true>;
1871
+ }, z.core.$strip>;
1872
+ meta: z.ZodObject<{
1873
+ requestId: z.ZodString;
1874
+ version: z.ZodLiteral<"1.0">;
1875
+ }, z.core.$strict>;
1876
+ }, z.core.$strip>, z.ZodObject<{
1877
+ data: z.ZodObject<{
1878
+ readonly annotationId: z.ZodString;
1879
+ readonly deleted: z.ZodLiteral<true>;
1880
+ }, z.core.$strip>;
1881
+ meta: z.ZodObject<{
1882
+ requestId: z.ZodString;
1883
+ version: z.ZodLiteral<"1.0">;
1884
+ }, z.core.$loose>;
1885
+ }, z.core.$strip>>;
1886
+ };
1887
+ readonly errors: readonly ["invalid_request", "unauthorized", "auth_expired", "forbidden", "not_found", "conflict", "quota_exhausted", "rate_limited", "contract_violation", "internal_error"];
1888
+ readonly errorResponse: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
1889
+ readonly error: z.ZodObject<{
1890
+ code: z.ZodEnum<{
1891
+ auth_expired: "auth_expired";
1892
+ conflict: "conflict";
1893
+ contract_violation: "contract_violation";
1894
+ entitlement_required: "entitlement_required";
1895
+ forbidden: "forbidden";
1896
+ internal_error: "internal_error";
1897
+ invalid_request: "invalid_request";
1898
+ not_found: "not_found";
1899
+ provider_unavailable: "provider_unavailable";
1900
+ quota_exhausted: "quota_exhausted";
1901
+ rate_limited: "rate_limited";
1902
+ site_ambiguous: "site_ambiguous";
1903
+ stale_evidence: "stale_evidence";
1904
+ unauthorized: "unauthorized";
1905
+ }>;
1906
+ message: z.ZodString;
1907
+ requestId: z.ZodString;
1908
+ retryable: z.ZodBoolean;
1909
+ details: z.ZodRecord<z.ZodString, z.ZodUnknown>;
1910
+ }, z.core.$strict>;
1911
+ }, z.core.$strip>, z.ZodObject<{
1912
+ readonly error: z.ZodObject<{
1913
+ code: z.ZodEnum<{
1914
+ auth_expired: "auth_expired";
1915
+ conflict: "conflict";
1916
+ contract_violation: "contract_violation";
1917
+ entitlement_required: "entitlement_required";
1918
+ forbidden: "forbidden";
1919
+ internal_error: "internal_error";
1920
+ invalid_request: "invalid_request";
1921
+ not_found: "not_found";
1922
+ provider_unavailable: "provider_unavailable";
1923
+ quota_exhausted: "quota_exhausted";
1924
+ rate_limited: "rate_limited";
1925
+ site_ambiguous: "site_ambiguous";
1926
+ stale_evidence: "stale_evidence";
1927
+ unauthorized: "unauthorized";
1928
+ }>;
1929
+ message: z.ZodString;
1930
+ requestId: z.ZodString;
1931
+ retryable: z.ZodBoolean;
1932
+ details: z.ZodRecord<z.ZodString, z.ZodUnknown>;
1933
+ }, z.core.$loose>;
1934
+ }, z.core.$strip>>;
1935
+ readonly resources: {
1936
+ readonly reads: readonly [{
1937
+ readonly type: 'site.timeline';
1938
+ readonly idFrom: 'params.siteId';
1939
+ }];
1940
+ readonly changes: readonly [{
1941
+ readonly type: 'site.timeline';
1942
+ readonly idFrom: 'params.siteId';
1943
+ }];
1944
+ };
1945
+ readonly policy: {
1946
+ readonly rate: {
1947
+ readonly name: 'public-v1-fixed-window';
1948
+ readonly limit: 50;
1949
+ readonly windowSeconds: 60;
1950
+ };
1951
+ readonly idempotency: {
1952
+ readonly _tag: 'none';
1953
+ };
1954
+ readonly entitlement: null;
1955
+ readonly meter: null;
1956
+ };
1957
+ readonly lifecycle: {
1958
+ readonly introduced: '1.2.0';
1959
+ };
1960
+ readonly docs: {
1961
+ readonly summary: 'Delete a chart annotation';
1962
+ readonly description: 'Removes one annotation permanently. Deleting frees a slot against the per-Site cap.';
1963
+ readonly tags: readonly ["Timeline"];
1964
+ readonly examples: readonly [{
1965
+ readonly request: {
1966
+ readonly params: {
1967
+ readonly siteId: 'site_01JXYZ';
1968
+ readonly annotationId: 'ann_01JXYZ';
1969
+ };
1970
+ };
1971
+ readonly response: {
1972
+ readonly status: 200;
1973
+ readonly body: {
1974
+ readonly data: {
1975
+ readonly annotationId: 'ann_01JXYZ';
1976
+ readonly deleted: true;
1977
+ };
1978
+ readonly meta: {
1979
+ readonly requestId: 'req_01JXYZ';
1980
+ readonly version: '1.0';
1981
+ };
1982
+ };
1983
+ };
1984
+ }];
1985
+ };
1986
+ };
517
1987
  }>;