@pulsarinteractive/geniusfitness 0.1.0-beta.2 → 0.1.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/docs/CHATGPT.md +44 -0
- package/docs/OPENAI.md +14 -0
- package/docs/WORKFLOWS.md +35 -0
- package/examples/codex.toml +1 -1
- package/examples/mcp.json +1 -1
- package/mcp.json +1 -1
- package/package.json +1 -1
- package/plugin.json +1 -1
- package/remote/tool-catalog.json +859 -3
- package/remote/workflows.json +66 -0
- package/skills/geniusfitness/SKILL.md +23 -0
- package/skills/geniusfitness/references/training.md +6 -3
- package/skills/geniusfitness-catalogue/SKILL.md +25 -0
- package/skills/geniusfitness-catalogue/agents/openai.yaml +4 -0
- package/skills/geniusfitness-planning/SKILL.md +24 -0
- package/skills/geniusfitness-planning/agents/openai.yaml +4 -0
- package/skills/geniusfitness-progress/SKILL.md +2 -2
- package/src/cli.mjs +4 -0
- package/src/mcp.mjs +9 -2
- package/src/workflows.mjs +9 -0
package/remote/tool-catalog.json
CHANGED
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
{
|
|
48
48
|
"name": "fitness_resources",
|
|
49
49
|
"title": "Read records",
|
|
50
|
-
"description": "Read a bounded page or exact record before modifying it. Preserve epoch/revision. Never crawl all collections. Use personal scope only for the connected owner; revoked access is unavailable.",
|
|
50
|
+
"description": "Read a bounded page or exact record before modifying it. Preserve epoch/revision. Never crawl all collections. Use personal scope only for the connected owner; revoked access is unavailable. Prefer the permission-specific read tools for new calls.",
|
|
51
51
|
"inputSchema": {
|
|
52
52
|
"type": "object",
|
|
53
53
|
"properties": {
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
},
|
|
96
96
|
"archive": {
|
|
97
97
|
"type": "string",
|
|
98
|
-
"enum": ["
|
|
98
|
+
"enum": ["active", "archived", "all"]
|
|
99
99
|
}
|
|
100
100
|
},
|
|
101
101
|
"required": ["scope", "collection"],
|
|
@@ -316,7 +316,7 @@
|
|
|
316
316
|
{
|
|
317
317
|
"name": "fitness_execute_command",
|
|
318
318
|
"title": "Apply the approved edit",
|
|
319
|
-
"description": "Execute the exact command returned by prepare_command after user approval. This changes account data and may delete records. After timeout retry the SAME command; after conflict read the current record and ask before preparing a replacement. Permissions, subscription and quotas are checked on the server.",
|
|
319
|
+
"description": "Execute the exact command returned by prepare_command after user approval. This changes account data and may delete records. After timeout retry the SAME command; after conflict read the current record and ask before preparing a replacement. Permissions, subscription and quotas are checked on the server. Prefer the permission-specific edit tools for new calls; this generic entry point remains for existing clients.",
|
|
320
320
|
"inputSchema": {
|
|
321
321
|
"type": "object",
|
|
322
322
|
"properties": {
|
|
@@ -415,5 +415,861 @@
|
|
|
415
415
|
"route": "commands",
|
|
416
416
|
"write": true,
|
|
417
417
|
"destructive": true
|
|
418
|
+
},
|
|
419
|
+
{
|
|
420
|
+
"name": "fitness_edit_exercises",
|
|
421
|
+
"title": "Apply approved exercises changes",
|
|
422
|
+
"description": "Apply an exact immutable command returned by prepare_command for exercises, after user approval. Only the listed command kinds are accepted. Preserve operationId and all fields for retries. Existing account, resource, subscription and quota checks apply.",
|
|
423
|
+
"inputSchema": {
|
|
424
|
+
"type": "object",
|
|
425
|
+
"properties": {
|
|
426
|
+
"operationId": {
|
|
427
|
+
"type": "string",
|
|
428
|
+
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
|
|
429
|
+
},
|
|
430
|
+
"issuedAt": {
|
|
431
|
+
"type": "integer",
|
|
432
|
+
"minimum": 0
|
|
433
|
+
},
|
|
434
|
+
"kind": {
|
|
435
|
+
"type": "string",
|
|
436
|
+
"enum": ["exercise.create", "exercise.delete", "exercise.import", "exercise.update"]
|
|
437
|
+
},
|
|
438
|
+
"scope": {
|
|
439
|
+
"type": "string",
|
|
440
|
+
"minLength": 1,
|
|
441
|
+
"maxLength": 256
|
|
442
|
+
},
|
|
443
|
+
"id": {
|
|
444
|
+
"type": "string",
|
|
445
|
+
"minLength": 1,
|
|
446
|
+
"maxLength": 128
|
|
447
|
+
},
|
|
448
|
+
"epoch": {
|
|
449
|
+
"type": "string",
|
|
450
|
+
"minLength": 1,
|
|
451
|
+
"maxLength": 128
|
|
452
|
+
},
|
|
453
|
+
"expectedRevision": {
|
|
454
|
+
"anyOf": [
|
|
455
|
+
{
|
|
456
|
+
"type": "string",
|
|
457
|
+
"minLength": 1,
|
|
458
|
+
"maxLength": 32
|
|
459
|
+
},
|
|
460
|
+
{
|
|
461
|
+
"type": "null"
|
|
462
|
+
}
|
|
463
|
+
]
|
|
464
|
+
},
|
|
465
|
+
"data": {
|
|
466
|
+
"type": "object",
|
|
467
|
+
"maxProperties": 40
|
|
468
|
+
}
|
|
469
|
+
},
|
|
470
|
+
"required": [
|
|
471
|
+
"operationId",
|
|
472
|
+
"issuedAt",
|
|
473
|
+
"kind",
|
|
474
|
+
"scope",
|
|
475
|
+
"id",
|
|
476
|
+
"epoch",
|
|
477
|
+
"expectedRevision",
|
|
478
|
+
"data"
|
|
479
|
+
],
|
|
480
|
+
"additionalProperties": false
|
|
481
|
+
},
|
|
482
|
+
"scopes": ["exercises:write"],
|
|
483
|
+
"route": "commands",
|
|
484
|
+
"write": true,
|
|
485
|
+
"destructive": true
|
|
486
|
+
},
|
|
487
|
+
{
|
|
488
|
+
"name": "fitness_edit_health",
|
|
489
|
+
"title": "Apply approved health changes",
|
|
490
|
+
"description": "Apply an exact immutable command returned by prepare_command for health, after user approval. Only the listed command kinds are accepted. Preserve operationId and all fields for retries. Existing account, resource, subscription and quota checks apply.",
|
|
491
|
+
"inputSchema": {
|
|
492
|
+
"type": "object",
|
|
493
|
+
"properties": {
|
|
494
|
+
"operationId": {
|
|
495
|
+
"type": "string",
|
|
496
|
+
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
|
|
497
|
+
},
|
|
498
|
+
"issuedAt": {
|
|
499
|
+
"type": "integer",
|
|
500
|
+
"minimum": 0
|
|
501
|
+
},
|
|
502
|
+
"kind": {
|
|
503
|
+
"type": "string",
|
|
504
|
+
"enum": ["health.create", "health.delete", "health.update"]
|
|
505
|
+
},
|
|
506
|
+
"scope": {
|
|
507
|
+
"type": "string",
|
|
508
|
+
"minLength": 1,
|
|
509
|
+
"maxLength": 256
|
|
510
|
+
},
|
|
511
|
+
"id": {
|
|
512
|
+
"type": "string",
|
|
513
|
+
"minLength": 1,
|
|
514
|
+
"maxLength": 128
|
|
515
|
+
},
|
|
516
|
+
"epoch": {
|
|
517
|
+
"type": "string",
|
|
518
|
+
"minLength": 1,
|
|
519
|
+
"maxLength": 128
|
|
520
|
+
},
|
|
521
|
+
"expectedRevision": {
|
|
522
|
+
"anyOf": [
|
|
523
|
+
{
|
|
524
|
+
"type": "string",
|
|
525
|
+
"minLength": 1,
|
|
526
|
+
"maxLength": 32
|
|
527
|
+
},
|
|
528
|
+
{
|
|
529
|
+
"type": "null"
|
|
530
|
+
}
|
|
531
|
+
]
|
|
532
|
+
},
|
|
533
|
+
"data": {
|
|
534
|
+
"type": "object",
|
|
535
|
+
"maxProperties": 40
|
|
536
|
+
}
|
|
537
|
+
},
|
|
538
|
+
"required": [
|
|
539
|
+
"operationId",
|
|
540
|
+
"issuedAt",
|
|
541
|
+
"kind",
|
|
542
|
+
"scope",
|
|
543
|
+
"id",
|
|
544
|
+
"epoch",
|
|
545
|
+
"expectedRevision",
|
|
546
|
+
"data"
|
|
547
|
+
],
|
|
548
|
+
"additionalProperties": false
|
|
549
|
+
},
|
|
550
|
+
"scopes": ["health:write"],
|
|
551
|
+
"route": "commands",
|
|
552
|
+
"write": true,
|
|
553
|
+
"destructive": true
|
|
554
|
+
},
|
|
555
|
+
{
|
|
556
|
+
"name": "fitness_edit_metrics",
|
|
557
|
+
"title": "Apply approved metrics changes",
|
|
558
|
+
"description": "Apply an exact immutable command returned by prepare_command for metrics, after user approval. Only the listed command kinds are accepted. Preserve operationId and all fields for retries. Existing account, resource, subscription and quota checks apply.",
|
|
559
|
+
"inputSchema": {
|
|
560
|
+
"type": "object",
|
|
561
|
+
"properties": {
|
|
562
|
+
"operationId": {
|
|
563
|
+
"type": "string",
|
|
564
|
+
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
|
|
565
|
+
},
|
|
566
|
+
"issuedAt": {
|
|
567
|
+
"type": "integer",
|
|
568
|
+
"minimum": 0
|
|
569
|
+
},
|
|
570
|
+
"kind": {
|
|
571
|
+
"type": "string",
|
|
572
|
+
"enum": [
|
|
573
|
+
"run.create",
|
|
574
|
+
"run.delete",
|
|
575
|
+
"run.update",
|
|
576
|
+
"session.create",
|
|
577
|
+
"session.delete",
|
|
578
|
+
"session.update"
|
|
579
|
+
]
|
|
580
|
+
},
|
|
581
|
+
"scope": {
|
|
582
|
+
"type": "string",
|
|
583
|
+
"minLength": 1,
|
|
584
|
+
"maxLength": 256
|
|
585
|
+
},
|
|
586
|
+
"id": {
|
|
587
|
+
"type": "string",
|
|
588
|
+
"minLength": 1,
|
|
589
|
+
"maxLength": 128
|
|
590
|
+
},
|
|
591
|
+
"epoch": {
|
|
592
|
+
"type": "string",
|
|
593
|
+
"minLength": 1,
|
|
594
|
+
"maxLength": 128
|
|
595
|
+
},
|
|
596
|
+
"expectedRevision": {
|
|
597
|
+
"anyOf": [
|
|
598
|
+
{
|
|
599
|
+
"type": "string",
|
|
600
|
+
"minLength": 1,
|
|
601
|
+
"maxLength": 32
|
|
602
|
+
},
|
|
603
|
+
{
|
|
604
|
+
"type": "null"
|
|
605
|
+
}
|
|
606
|
+
]
|
|
607
|
+
},
|
|
608
|
+
"data": {
|
|
609
|
+
"type": "object",
|
|
610
|
+
"maxProperties": 40
|
|
611
|
+
}
|
|
612
|
+
},
|
|
613
|
+
"required": [
|
|
614
|
+
"operationId",
|
|
615
|
+
"issuedAt",
|
|
616
|
+
"kind",
|
|
617
|
+
"scope",
|
|
618
|
+
"id",
|
|
619
|
+
"epoch",
|
|
620
|
+
"expectedRevision",
|
|
621
|
+
"data"
|
|
622
|
+
],
|
|
623
|
+
"additionalProperties": false
|
|
624
|
+
},
|
|
625
|
+
"scopes": ["metrics:write"],
|
|
626
|
+
"route": "commands",
|
|
627
|
+
"write": true,
|
|
628
|
+
"destructive": true
|
|
629
|
+
},
|
|
630
|
+
{
|
|
631
|
+
"name": "fitness_coach_metrics",
|
|
632
|
+
"title": "Coach: apply approved metrics changes",
|
|
633
|
+
"description": "Apply an approved metrics command to another athlete's authorized program. Requires an active Coach subscription, explicit coaching permission and current program membership. Prepare the exact command first; preserve it for retries. Never use this to widen access.",
|
|
634
|
+
"inputSchema": {
|
|
635
|
+
"type": "object",
|
|
636
|
+
"properties": {
|
|
637
|
+
"operationId": {
|
|
638
|
+
"type": "string",
|
|
639
|
+
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
|
|
640
|
+
},
|
|
641
|
+
"issuedAt": {
|
|
642
|
+
"type": "integer",
|
|
643
|
+
"minimum": 0
|
|
644
|
+
},
|
|
645
|
+
"kind": {
|
|
646
|
+
"type": "string",
|
|
647
|
+
"enum": [
|
|
648
|
+
"run.create",
|
|
649
|
+
"run.delete",
|
|
650
|
+
"run.update",
|
|
651
|
+
"session.create",
|
|
652
|
+
"session.delete",
|
|
653
|
+
"session.update"
|
|
654
|
+
]
|
|
655
|
+
},
|
|
656
|
+
"scope": {
|
|
657
|
+
"type": "string",
|
|
658
|
+
"minLength": 1,
|
|
659
|
+
"maxLength": 256
|
|
660
|
+
},
|
|
661
|
+
"id": {
|
|
662
|
+
"type": "string",
|
|
663
|
+
"minLength": 1,
|
|
664
|
+
"maxLength": 128
|
|
665
|
+
},
|
|
666
|
+
"epoch": {
|
|
667
|
+
"type": "string",
|
|
668
|
+
"minLength": 1,
|
|
669
|
+
"maxLength": 128
|
|
670
|
+
},
|
|
671
|
+
"expectedRevision": {
|
|
672
|
+
"anyOf": [
|
|
673
|
+
{
|
|
674
|
+
"type": "string",
|
|
675
|
+
"minLength": 1,
|
|
676
|
+
"maxLength": 32
|
|
677
|
+
},
|
|
678
|
+
{
|
|
679
|
+
"type": "null"
|
|
680
|
+
}
|
|
681
|
+
]
|
|
682
|
+
},
|
|
683
|
+
"data": {
|
|
684
|
+
"type": "object",
|
|
685
|
+
"maxProperties": 40
|
|
686
|
+
}
|
|
687
|
+
},
|
|
688
|
+
"required": [
|
|
689
|
+
"operationId",
|
|
690
|
+
"issuedAt",
|
|
691
|
+
"kind",
|
|
692
|
+
"scope",
|
|
693
|
+
"id",
|
|
694
|
+
"epoch",
|
|
695
|
+
"expectedRevision",
|
|
696
|
+
"data"
|
|
697
|
+
],
|
|
698
|
+
"additionalProperties": false
|
|
699
|
+
},
|
|
700
|
+
"scopes": ["metrics:write", "coaching:write"],
|
|
701
|
+
"route": "commands",
|
|
702
|
+
"write": true,
|
|
703
|
+
"destructive": true
|
|
704
|
+
},
|
|
705
|
+
{
|
|
706
|
+
"name": "fitness_edit_planning",
|
|
707
|
+
"title": "Apply approved planning changes",
|
|
708
|
+
"description": "Apply an exact immutable command returned by prepare_command for planning, after user approval. Only the listed command kinds are accepted. Preserve operationId and all fields for retries. Existing account, resource, subscription and quota checks apply.",
|
|
709
|
+
"inputSchema": {
|
|
710
|
+
"type": "object",
|
|
711
|
+
"properties": {
|
|
712
|
+
"operationId": {
|
|
713
|
+
"type": "string",
|
|
714
|
+
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
|
|
715
|
+
},
|
|
716
|
+
"issuedAt": {
|
|
717
|
+
"type": "integer",
|
|
718
|
+
"minimum": 0
|
|
719
|
+
},
|
|
720
|
+
"kind": {
|
|
721
|
+
"type": "string",
|
|
722
|
+
"enum": [
|
|
723
|
+
"goal.create",
|
|
724
|
+
"goal.delete",
|
|
725
|
+
"goal.update",
|
|
726
|
+
"planning.create",
|
|
727
|
+
"planning.delete",
|
|
728
|
+
"planning.update",
|
|
729
|
+
"schedule.create",
|
|
730
|
+
"schedule.delete",
|
|
731
|
+
"schedule.update"
|
|
732
|
+
]
|
|
733
|
+
},
|
|
734
|
+
"scope": {
|
|
735
|
+
"type": "string",
|
|
736
|
+
"minLength": 1,
|
|
737
|
+
"maxLength": 256
|
|
738
|
+
},
|
|
739
|
+
"id": {
|
|
740
|
+
"type": "string",
|
|
741
|
+
"minLength": 1,
|
|
742
|
+
"maxLength": 128
|
|
743
|
+
},
|
|
744
|
+
"epoch": {
|
|
745
|
+
"type": "string",
|
|
746
|
+
"minLength": 1,
|
|
747
|
+
"maxLength": 128
|
|
748
|
+
},
|
|
749
|
+
"expectedRevision": {
|
|
750
|
+
"anyOf": [
|
|
751
|
+
{
|
|
752
|
+
"type": "string",
|
|
753
|
+
"minLength": 1,
|
|
754
|
+
"maxLength": 32
|
|
755
|
+
},
|
|
756
|
+
{
|
|
757
|
+
"type": "null"
|
|
758
|
+
}
|
|
759
|
+
]
|
|
760
|
+
},
|
|
761
|
+
"data": {
|
|
762
|
+
"type": "object",
|
|
763
|
+
"maxProperties": 40
|
|
764
|
+
}
|
|
765
|
+
},
|
|
766
|
+
"required": [
|
|
767
|
+
"operationId",
|
|
768
|
+
"issuedAt",
|
|
769
|
+
"kind",
|
|
770
|
+
"scope",
|
|
771
|
+
"id",
|
|
772
|
+
"epoch",
|
|
773
|
+
"expectedRevision",
|
|
774
|
+
"data"
|
|
775
|
+
],
|
|
776
|
+
"additionalProperties": false
|
|
777
|
+
},
|
|
778
|
+
"scopes": ["planning:write"],
|
|
779
|
+
"route": "commands",
|
|
780
|
+
"write": true,
|
|
781
|
+
"destructive": true
|
|
782
|
+
},
|
|
783
|
+
{
|
|
784
|
+
"name": "fitness_coach_planning",
|
|
785
|
+
"title": "Coach: apply approved planning changes",
|
|
786
|
+
"description": "Apply an approved planning command to another athlete's authorized program. Requires an active Coach subscription, explicit coaching permission and current program membership. Prepare the exact command first; preserve it for retries. Never use this to widen access.",
|
|
787
|
+
"inputSchema": {
|
|
788
|
+
"type": "object",
|
|
789
|
+
"properties": {
|
|
790
|
+
"operationId": {
|
|
791
|
+
"type": "string",
|
|
792
|
+
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
|
|
793
|
+
},
|
|
794
|
+
"issuedAt": {
|
|
795
|
+
"type": "integer",
|
|
796
|
+
"minimum": 0
|
|
797
|
+
},
|
|
798
|
+
"kind": {
|
|
799
|
+
"type": "string",
|
|
800
|
+
"enum": [
|
|
801
|
+
"goal.create",
|
|
802
|
+
"goal.delete",
|
|
803
|
+
"goal.update",
|
|
804
|
+
"planning.create",
|
|
805
|
+
"planning.delete",
|
|
806
|
+
"planning.update",
|
|
807
|
+
"schedule.create",
|
|
808
|
+
"schedule.delete",
|
|
809
|
+
"schedule.update"
|
|
810
|
+
]
|
|
811
|
+
},
|
|
812
|
+
"scope": {
|
|
813
|
+
"type": "string",
|
|
814
|
+
"minLength": 1,
|
|
815
|
+
"maxLength": 256
|
|
816
|
+
},
|
|
817
|
+
"id": {
|
|
818
|
+
"type": "string",
|
|
819
|
+
"minLength": 1,
|
|
820
|
+
"maxLength": 128
|
|
821
|
+
},
|
|
822
|
+
"epoch": {
|
|
823
|
+
"type": "string",
|
|
824
|
+
"minLength": 1,
|
|
825
|
+
"maxLength": 128
|
|
826
|
+
},
|
|
827
|
+
"expectedRevision": {
|
|
828
|
+
"anyOf": [
|
|
829
|
+
{
|
|
830
|
+
"type": "string",
|
|
831
|
+
"minLength": 1,
|
|
832
|
+
"maxLength": 32
|
|
833
|
+
},
|
|
834
|
+
{
|
|
835
|
+
"type": "null"
|
|
836
|
+
}
|
|
837
|
+
]
|
|
838
|
+
},
|
|
839
|
+
"data": {
|
|
840
|
+
"type": "object",
|
|
841
|
+
"maxProperties": 40
|
|
842
|
+
}
|
|
843
|
+
},
|
|
844
|
+
"required": [
|
|
845
|
+
"operationId",
|
|
846
|
+
"issuedAt",
|
|
847
|
+
"kind",
|
|
848
|
+
"scope",
|
|
849
|
+
"id",
|
|
850
|
+
"epoch",
|
|
851
|
+
"expectedRevision",
|
|
852
|
+
"data"
|
|
853
|
+
],
|
|
854
|
+
"additionalProperties": false
|
|
855
|
+
},
|
|
856
|
+
"scopes": ["planning:write", "coaching:write"],
|
|
857
|
+
"route": "commands",
|
|
858
|
+
"write": true,
|
|
859
|
+
"destructive": true
|
|
860
|
+
},
|
|
861
|
+
{
|
|
862
|
+
"name": "fitness_edit_programs",
|
|
863
|
+
"title": "Apply approved programs changes",
|
|
864
|
+
"description": "Apply an exact immutable command returned by prepare_command for programs, after user approval. Only the listed command kinds are accepted. Preserve operationId and all fields for retries. Existing account, resource, subscription and quota checks apply.",
|
|
865
|
+
"inputSchema": {
|
|
866
|
+
"type": "object",
|
|
867
|
+
"properties": {
|
|
868
|
+
"operationId": {
|
|
869
|
+
"type": "string",
|
|
870
|
+
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
|
|
871
|
+
},
|
|
872
|
+
"issuedAt": {
|
|
873
|
+
"type": "integer",
|
|
874
|
+
"minimum": 0
|
|
875
|
+
},
|
|
876
|
+
"kind": {
|
|
877
|
+
"type": "string",
|
|
878
|
+
"enum": [
|
|
879
|
+
"exercise.document.create",
|
|
880
|
+
"exercise.document.delete",
|
|
881
|
+
"exercise.document.update",
|
|
882
|
+
"program.create",
|
|
883
|
+
"program.delete",
|
|
884
|
+
"program.update",
|
|
885
|
+
"workout.create",
|
|
886
|
+
"workout.delete",
|
|
887
|
+
"workout.exercise.create",
|
|
888
|
+
"workout.exercise.delete",
|
|
889
|
+
"workout.exercise.update",
|
|
890
|
+
"workout.update"
|
|
891
|
+
]
|
|
892
|
+
},
|
|
893
|
+
"scope": {
|
|
894
|
+
"type": "string",
|
|
895
|
+
"minLength": 1,
|
|
896
|
+
"maxLength": 256
|
|
897
|
+
},
|
|
898
|
+
"id": {
|
|
899
|
+
"type": "string",
|
|
900
|
+
"minLength": 1,
|
|
901
|
+
"maxLength": 128
|
|
902
|
+
},
|
|
903
|
+
"epoch": {
|
|
904
|
+
"type": "string",
|
|
905
|
+
"minLength": 1,
|
|
906
|
+
"maxLength": 128
|
|
907
|
+
},
|
|
908
|
+
"expectedRevision": {
|
|
909
|
+
"anyOf": [
|
|
910
|
+
{
|
|
911
|
+
"type": "string",
|
|
912
|
+
"minLength": 1,
|
|
913
|
+
"maxLength": 32
|
|
914
|
+
},
|
|
915
|
+
{
|
|
916
|
+
"type": "null"
|
|
917
|
+
}
|
|
918
|
+
]
|
|
919
|
+
},
|
|
920
|
+
"data": {
|
|
921
|
+
"type": "object",
|
|
922
|
+
"maxProperties": 40
|
|
923
|
+
}
|
|
924
|
+
},
|
|
925
|
+
"required": [
|
|
926
|
+
"operationId",
|
|
927
|
+
"issuedAt",
|
|
928
|
+
"kind",
|
|
929
|
+
"scope",
|
|
930
|
+
"id",
|
|
931
|
+
"epoch",
|
|
932
|
+
"expectedRevision",
|
|
933
|
+
"data"
|
|
934
|
+
],
|
|
935
|
+
"additionalProperties": false
|
|
936
|
+
},
|
|
937
|
+
"scopes": ["programs:write"],
|
|
938
|
+
"route": "commands",
|
|
939
|
+
"write": true,
|
|
940
|
+
"destructive": true
|
|
941
|
+
},
|
|
942
|
+
{
|
|
943
|
+
"name": "fitness_coach_programs",
|
|
944
|
+
"title": "Coach: apply approved programs changes",
|
|
945
|
+
"description": "Apply an approved programs command to another athlete's authorized program. Requires an active Coach subscription, explicit coaching permission and current program membership. Prepare the exact command first; preserve it for retries. Never use this to widen access.",
|
|
946
|
+
"inputSchema": {
|
|
947
|
+
"type": "object",
|
|
948
|
+
"properties": {
|
|
949
|
+
"operationId": {
|
|
950
|
+
"type": "string",
|
|
951
|
+
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
|
|
952
|
+
},
|
|
953
|
+
"issuedAt": {
|
|
954
|
+
"type": "integer",
|
|
955
|
+
"minimum": 0
|
|
956
|
+
},
|
|
957
|
+
"kind": {
|
|
958
|
+
"type": "string",
|
|
959
|
+
"enum": [
|
|
960
|
+
"exercise.document.create",
|
|
961
|
+
"exercise.document.delete",
|
|
962
|
+
"exercise.document.update",
|
|
963
|
+
"program.create",
|
|
964
|
+
"program.delete",
|
|
965
|
+
"program.update",
|
|
966
|
+
"workout.create",
|
|
967
|
+
"workout.delete",
|
|
968
|
+
"workout.exercise.create",
|
|
969
|
+
"workout.exercise.delete",
|
|
970
|
+
"workout.exercise.update",
|
|
971
|
+
"workout.update"
|
|
972
|
+
]
|
|
973
|
+
},
|
|
974
|
+
"scope": {
|
|
975
|
+
"type": "string",
|
|
976
|
+
"minLength": 1,
|
|
977
|
+
"maxLength": 256
|
|
978
|
+
},
|
|
979
|
+
"id": {
|
|
980
|
+
"type": "string",
|
|
981
|
+
"minLength": 1,
|
|
982
|
+
"maxLength": 128
|
|
983
|
+
},
|
|
984
|
+
"epoch": {
|
|
985
|
+
"type": "string",
|
|
986
|
+
"minLength": 1,
|
|
987
|
+
"maxLength": 128
|
|
988
|
+
},
|
|
989
|
+
"expectedRevision": {
|
|
990
|
+
"anyOf": [
|
|
991
|
+
{
|
|
992
|
+
"type": "string",
|
|
993
|
+
"minLength": 1,
|
|
994
|
+
"maxLength": 32
|
|
995
|
+
},
|
|
996
|
+
{
|
|
997
|
+
"type": "null"
|
|
998
|
+
}
|
|
999
|
+
]
|
|
1000
|
+
},
|
|
1001
|
+
"data": {
|
|
1002
|
+
"type": "object",
|
|
1003
|
+
"maxProperties": 40
|
|
1004
|
+
}
|
|
1005
|
+
},
|
|
1006
|
+
"required": [
|
|
1007
|
+
"operationId",
|
|
1008
|
+
"issuedAt",
|
|
1009
|
+
"kind",
|
|
1010
|
+
"scope",
|
|
1011
|
+
"id",
|
|
1012
|
+
"epoch",
|
|
1013
|
+
"expectedRevision",
|
|
1014
|
+
"data"
|
|
1015
|
+
],
|
|
1016
|
+
"additionalProperties": false
|
|
1017
|
+
},
|
|
1018
|
+
"scopes": ["programs:write", "coaching:write"],
|
|
1019
|
+
"route": "commands",
|
|
1020
|
+
"write": true,
|
|
1021
|
+
"destructive": true
|
|
1022
|
+
},
|
|
1023
|
+
{
|
|
1024
|
+
"name": "fitness_read_exercises",
|
|
1025
|
+
"title": "Read exercises records",
|
|
1026
|
+
"description": "Read one authorized page or exact record from the listed exercises collections. Preserve epoch/revision and follow nextAfter only when needed. This tool cannot change data. Existing resource access and quotas apply.",
|
|
1027
|
+
"inputSchema": {
|
|
1028
|
+
"type": "object",
|
|
1029
|
+
"properties": {
|
|
1030
|
+
"scope": {
|
|
1031
|
+
"type": "string",
|
|
1032
|
+
"minLength": 1,
|
|
1033
|
+
"maxLength": 256
|
|
1034
|
+
},
|
|
1035
|
+
"collection": {
|
|
1036
|
+
"type": "string",
|
|
1037
|
+
"enum": ["exercises"]
|
|
1038
|
+
},
|
|
1039
|
+
"id": {
|
|
1040
|
+
"type": "string",
|
|
1041
|
+
"minLength": 1,
|
|
1042
|
+
"maxLength": 128
|
|
1043
|
+
},
|
|
1044
|
+
"after": {
|
|
1045
|
+
"type": "string",
|
|
1046
|
+
"minLength": 1,
|
|
1047
|
+
"maxLength": 4096
|
|
1048
|
+
},
|
|
1049
|
+
"epoch": {
|
|
1050
|
+
"type": "string",
|
|
1051
|
+
"minLength": 1,
|
|
1052
|
+
"maxLength": 128
|
|
1053
|
+
},
|
|
1054
|
+
"checkpoint": {
|
|
1055
|
+
"type": "string",
|
|
1056
|
+
"minLength": 1,
|
|
1057
|
+
"maxLength": 128
|
|
1058
|
+
},
|
|
1059
|
+
"archive": {
|
|
1060
|
+
"type": "string",
|
|
1061
|
+
"enum": ["active", "archived", "all"]
|
|
1062
|
+
}
|
|
1063
|
+
},
|
|
1064
|
+
"required": ["scope", "collection"],
|
|
1065
|
+
"additionalProperties": false
|
|
1066
|
+
},
|
|
1067
|
+
"scopes": ["exercises:read"],
|
|
1068
|
+
"route": "resources"
|
|
1069
|
+
},
|
|
1070
|
+
{
|
|
1071
|
+
"name": "fitness_read_health",
|
|
1072
|
+
"title": "Read health records",
|
|
1073
|
+
"description": "Read one authorized page or exact record from the listed health collections. Preserve epoch/revision and follow nextAfter only when needed. This tool cannot change data. Existing resource access and quotas apply.",
|
|
1074
|
+
"inputSchema": {
|
|
1075
|
+
"type": "object",
|
|
1076
|
+
"properties": {
|
|
1077
|
+
"scope": {
|
|
1078
|
+
"type": "string",
|
|
1079
|
+
"minLength": 1,
|
|
1080
|
+
"maxLength": 256
|
|
1081
|
+
},
|
|
1082
|
+
"collection": {
|
|
1083
|
+
"type": "string",
|
|
1084
|
+
"enum": ["health"]
|
|
1085
|
+
},
|
|
1086
|
+
"id": {
|
|
1087
|
+
"type": "string",
|
|
1088
|
+
"minLength": 1,
|
|
1089
|
+
"maxLength": 128
|
|
1090
|
+
},
|
|
1091
|
+
"after": {
|
|
1092
|
+
"type": "string",
|
|
1093
|
+
"minLength": 1,
|
|
1094
|
+
"maxLength": 4096
|
|
1095
|
+
},
|
|
1096
|
+
"epoch": {
|
|
1097
|
+
"type": "string",
|
|
1098
|
+
"minLength": 1,
|
|
1099
|
+
"maxLength": 128
|
|
1100
|
+
},
|
|
1101
|
+
"checkpoint": {
|
|
1102
|
+
"type": "string",
|
|
1103
|
+
"minLength": 1,
|
|
1104
|
+
"maxLength": 128
|
|
1105
|
+
},
|
|
1106
|
+
"archive": {
|
|
1107
|
+
"type": "string",
|
|
1108
|
+
"enum": ["active", "archived", "all"]
|
|
1109
|
+
}
|
|
1110
|
+
},
|
|
1111
|
+
"required": ["scope", "collection"],
|
|
1112
|
+
"additionalProperties": false
|
|
1113
|
+
},
|
|
1114
|
+
"scopes": ["health:read"],
|
|
1115
|
+
"route": "resources"
|
|
1116
|
+
},
|
|
1117
|
+
{
|
|
1118
|
+
"name": "fitness_read_metrics",
|
|
1119
|
+
"title": "Read metrics records",
|
|
1120
|
+
"description": "Read one authorized page or exact record from the listed metrics collections. Preserve epoch/revision and follow nextAfter only when needed. This tool cannot change data. Existing resource access and quotas apply.",
|
|
1121
|
+
"inputSchema": {
|
|
1122
|
+
"type": "object",
|
|
1123
|
+
"properties": {
|
|
1124
|
+
"scope": {
|
|
1125
|
+
"type": "string",
|
|
1126
|
+
"minLength": 1,
|
|
1127
|
+
"maxLength": 256
|
|
1128
|
+
},
|
|
1129
|
+
"collection": {
|
|
1130
|
+
"type": "string",
|
|
1131
|
+
"enum": ["runs", "sessions"]
|
|
1132
|
+
},
|
|
1133
|
+
"id": {
|
|
1134
|
+
"type": "string",
|
|
1135
|
+
"minLength": 1,
|
|
1136
|
+
"maxLength": 128
|
|
1137
|
+
},
|
|
1138
|
+
"after": {
|
|
1139
|
+
"type": "string",
|
|
1140
|
+
"minLength": 1,
|
|
1141
|
+
"maxLength": 4096
|
|
1142
|
+
},
|
|
1143
|
+
"epoch": {
|
|
1144
|
+
"type": "string",
|
|
1145
|
+
"minLength": 1,
|
|
1146
|
+
"maxLength": 128
|
|
1147
|
+
},
|
|
1148
|
+
"checkpoint": {
|
|
1149
|
+
"type": "string",
|
|
1150
|
+
"minLength": 1,
|
|
1151
|
+
"maxLength": 128
|
|
1152
|
+
},
|
|
1153
|
+
"archive": {
|
|
1154
|
+
"type": "string",
|
|
1155
|
+
"enum": ["active", "archived", "all"]
|
|
1156
|
+
}
|
|
1157
|
+
},
|
|
1158
|
+
"required": ["scope", "collection"],
|
|
1159
|
+
"additionalProperties": false
|
|
1160
|
+
},
|
|
1161
|
+
"scopes": ["metrics:read"],
|
|
1162
|
+
"route": "resources"
|
|
1163
|
+
},
|
|
1164
|
+
{
|
|
1165
|
+
"name": "fitness_read_planning",
|
|
1166
|
+
"title": "Read planning records",
|
|
1167
|
+
"description": "Read one authorized page or exact record from the listed planning collections. Preserve epoch/revision and follow nextAfter only when needed. This tool cannot change data. Existing resource access and quotas apply.",
|
|
1168
|
+
"inputSchema": {
|
|
1169
|
+
"type": "object",
|
|
1170
|
+
"properties": {
|
|
1171
|
+
"scope": {
|
|
1172
|
+
"type": "string",
|
|
1173
|
+
"minLength": 1,
|
|
1174
|
+
"maxLength": 256
|
|
1175
|
+
},
|
|
1176
|
+
"collection": {
|
|
1177
|
+
"type": "string",
|
|
1178
|
+
"enum": ["goals", "planning", "schedules"]
|
|
1179
|
+
},
|
|
1180
|
+
"id": {
|
|
1181
|
+
"type": "string",
|
|
1182
|
+
"minLength": 1,
|
|
1183
|
+
"maxLength": 128
|
|
1184
|
+
},
|
|
1185
|
+
"after": {
|
|
1186
|
+
"type": "string",
|
|
1187
|
+
"minLength": 1,
|
|
1188
|
+
"maxLength": 4096
|
|
1189
|
+
},
|
|
1190
|
+
"epoch": {
|
|
1191
|
+
"type": "string",
|
|
1192
|
+
"minLength": 1,
|
|
1193
|
+
"maxLength": 128
|
|
1194
|
+
},
|
|
1195
|
+
"checkpoint": {
|
|
1196
|
+
"type": "string",
|
|
1197
|
+
"minLength": 1,
|
|
1198
|
+
"maxLength": 128
|
|
1199
|
+
},
|
|
1200
|
+
"archive": {
|
|
1201
|
+
"type": "string",
|
|
1202
|
+
"enum": ["active", "archived", "all"]
|
|
1203
|
+
}
|
|
1204
|
+
},
|
|
1205
|
+
"required": ["scope", "collection"],
|
|
1206
|
+
"additionalProperties": false
|
|
1207
|
+
},
|
|
1208
|
+
"scopes": ["planning:read"],
|
|
1209
|
+
"route": "resources"
|
|
1210
|
+
},
|
|
1211
|
+
{
|
|
1212
|
+
"name": "fitness_read_programs",
|
|
1213
|
+
"title": "Read programs records",
|
|
1214
|
+
"description": "Read one authorized page or exact record from the listed programs collections. Preserve epoch/revision and follow nextAfter only when needed. This tool cannot change data. Existing resource access and quotas apply.",
|
|
1215
|
+
"inputSchema": {
|
|
1216
|
+
"type": "object",
|
|
1217
|
+
"properties": {
|
|
1218
|
+
"scope": {
|
|
1219
|
+
"type": "string",
|
|
1220
|
+
"minLength": 1,
|
|
1221
|
+
"maxLength": 256
|
|
1222
|
+
},
|
|
1223
|
+
"collection": {
|
|
1224
|
+
"type": "string",
|
|
1225
|
+
"enum": ["exerciseDocuments", "members", "programs", "workoutExercises", "workouts"]
|
|
1226
|
+
},
|
|
1227
|
+
"id": {
|
|
1228
|
+
"type": "string",
|
|
1229
|
+
"minLength": 1,
|
|
1230
|
+
"maxLength": 128
|
|
1231
|
+
},
|
|
1232
|
+
"after": {
|
|
1233
|
+
"type": "string",
|
|
1234
|
+
"minLength": 1,
|
|
1235
|
+
"maxLength": 4096
|
|
1236
|
+
},
|
|
1237
|
+
"epoch": {
|
|
1238
|
+
"type": "string",
|
|
1239
|
+
"minLength": 1,
|
|
1240
|
+
"maxLength": 128
|
|
1241
|
+
},
|
|
1242
|
+
"checkpoint": {
|
|
1243
|
+
"type": "string",
|
|
1244
|
+
"minLength": 1,
|
|
1245
|
+
"maxLength": 128
|
|
1246
|
+
},
|
|
1247
|
+
"archive": {
|
|
1248
|
+
"type": "string",
|
|
1249
|
+
"enum": ["active", "archived", "all"]
|
|
1250
|
+
}
|
|
1251
|
+
},
|
|
1252
|
+
"required": ["scope", "collection"],
|
|
1253
|
+
"additionalProperties": false
|
|
1254
|
+
},
|
|
1255
|
+
"scopes": ["programs:read"],
|
|
1256
|
+
"route": "resources"
|
|
1257
|
+
},
|
|
1258
|
+
{
|
|
1259
|
+
"name": "fitness_workflow",
|
|
1260
|
+
"title": "Workflow guides",
|
|
1261
|
+
"description": "Read reviewed product instructions for a specific workflow before unfamiliar operations. Explains available commands, permissions, pagination and remote versus local retry behavior; does not read personal data or grant access.",
|
|
1262
|
+
"inputSchema": {
|
|
1263
|
+
"type": "object",
|
|
1264
|
+
"properties": {
|
|
1265
|
+
"topic": {
|
|
1266
|
+
"type": "string",
|
|
1267
|
+
"enum": ["connection", "mutations", "catalogue", "planning", "progress", "coaching"]
|
|
1268
|
+
}
|
|
1269
|
+
},
|
|
1270
|
+
"required": ["topic"],
|
|
1271
|
+
"additionalProperties": false
|
|
1272
|
+
},
|
|
1273
|
+
"scopes": []
|
|
418
1274
|
}
|
|
419
1275
|
]
|