@apteva/integrations 0.3.33 → 0.3.35

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apteva/integrations",
3
- "version": "0.3.33",
3
+ "version": "0.3.35",
4
4
  "description": "Local integrations, connections, and webhooks for Apteva. Self-contained app templates, OAuth engine, and trigger provider.",
5
5
  "author": "Apteva <hello@apteva.com>",
6
6
  "license": "Elastic-2.0",
@@ -219,7 +219,7 @@
219
219
  },
220
220
  {
221
221
  "name": "update_content_entry",
222
- "description": "Update an existing content entry",
222
+ "description": "Update a content entry's fields. Now does a DEEP MERGE on the data object — only provided fields are changed, others are preserved.\n\nExample: { \"data\": { \"title\": \"New Title\" } } updates only the title. The content, excerpt, and all other fields stay untouched.\n\nFor surgical text edits within a large field (e.g., fixing a typo in a 5000-word article), use patch-content-field instead — it supports find/replace, append, prepend without resending the full content.",
223
223
  "method": "PUT",
224
224
  "path": "/cms/entries/{id}",
225
225
  "input_schema": {
@@ -849,6 +849,77 @@
849
849
  "version_number"
850
850
  ]
851
851
  }
852
+ },
853
+ {
854
+ "name": "patch_content_field",
855
+ "description": "Surgically edit a specific field within a content entry without resending the entire content. Ideal for large articles.\n\nOperations (applied in order):\n- set: Replace the entire field value\n- find_replace: Find and replace text (all occurrences). { \"op\": \"find_replace\", \"find\": \"old\", \"replace\": \"new\" }\n- regex_replace: Regex find/replace. { \"op\": \"regex_replace\", \"pattern\": \"\\bfoo\\b\", \"replace\": \"bar\", \"flags\": \"gi\" }\n- append: Add text to end. { \"op\": \"append\", \"value\": \"\\n\\nNew paragraph.\" }\n- prepend: Add text to start. { \"op\": \"prepend\", \"value\": \"Note: Updated.\\n\\n\" }\n\nCreates a version before patching. If entry is published, automatically sets to draft.",
856
+ "method": "POST",
857
+ "path": "/cms/entries/{id}/patch",
858
+ "input_schema": {
859
+ "type": "object",
860
+ "properties": {
861
+ "id": {
862
+ "type": "string",
863
+ "description": "Content entry ID (UUID)"
864
+ },
865
+ "field": {
866
+ "type": "string",
867
+ "description": "Name of the field to patch (e.g., 'content', 'title', 'excerpt')"
868
+ },
869
+ "operations": {
870
+ "type": "array",
871
+ "description": "Array of patch operations to apply in order",
872
+ "items": {
873
+ "type": "object",
874
+ "properties": {
875
+ "op": {
876
+ "type": "string",
877
+ "enum": [
878
+ "set",
879
+ "find_replace",
880
+ "regex_replace",
881
+ "append",
882
+ "prepend"
883
+ ],
884
+ "description": "Operation type"
885
+ },
886
+ "value": {
887
+ "type": "string",
888
+ "description": "Value for set/append/prepend operations"
889
+ },
890
+ "find": {
891
+ "type": "string",
892
+ "description": "Text to find (for find_replace)"
893
+ },
894
+ "replace": {
895
+ "type": "string",
896
+ "description": "Replacement text (for find_replace and regex_replace)"
897
+ },
898
+ "pattern": {
899
+ "type": "string",
900
+ "description": "Regex pattern (for regex_replace)"
901
+ },
902
+ "flags": {
903
+ "type": "string",
904
+ "description": "Regex flags (for regex_replace, default: 'g')"
905
+ }
906
+ },
907
+ "required": [
908
+ "op"
909
+ ]
910
+ }
911
+ },
912
+ "change_description": {
913
+ "type": "string",
914
+ "description": "Description of the change (stored in version history)"
915
+ }
916
+ },
917
+ "required": [
918
+ "id",
919
+ "field",
920
+ "operations"
921
+ ]
922
+ }
852
923
  }
853
924
  ],
854
925
  "webhooks": {
@@ -646,6 +646,173 @@
646
646
  "messages"
647
647
  ]
648
648
  }
649
+ },
650
+ {
651
+ "name": "create_script",
652
+ "description": "Create a new script for audio/speech generation. Write text content, assign a voice, and configure output settings. Use generate-script to produce the audio.",
653
+ "method": "POST",
654
+ "path": "/ai/scripts",
655
+ "input_schema": {
656
+ "type": "object",
657
+ "properties": {
658
+ "title": {
659
+ "type": "string",
660
+ "description": "Script title"
661
+ },
662
+ "content": {
663
+ "type": "string",
664
+ "description": "The text content to be converted to speech"
665
+ },
666
+ "voiceId": {
667
+ "type": "string",
668
+ "description": "Voice ID from list-voices (optional, can set later)"
669
+ },
670
+ "voiceSettings": {
671
+ "type": "object",
672
+ "description": "Voice settings: stability, similarity_boost, etc. (optional)"
673
+ },
674
+ "outputType": {
675
+ "type": "string",
676
+ "enum": [
677
+ "audio",
678
+ "video"
679
+ ],
680
+ "default": "audio",
681
+ "description": "Output type"
682
+ }
683
+ },
684
+ "required": [
685
+ "title",
686
+ "content"
687
+ ]
688
+ }
689
+ },
690
+ {
691
+ "name": "list_scripts",
692
+ "description": "List all scripts with optional filtering by status. Returns title, content preview, voice assignment, and generation status.",
693
+ "method": "GET",
694
+ "path": "/ai/scripts",
695
+ "input_schema": {
696
+ "type": "object",
697
+ "properties": {
698
+ "limit": {
699
+ "type": "integer",
700
+ "default": 50,
701
+ "description": "Max results"
702
+ },
703
+ "offset": {
704
+ "type": "integer",
705
+ "default": 0,
706
+ "description": "Pagination offset"
707
+ }
708
+ }
709
+ }
710
+ },
711
+ {
712
+ "name": "get_script",
713
+ "description": "Get a script by ID with full content, voice settings, and generation history.",
714
+ "method": "GET",
715
+ "path": "/ai/scripts/{id}",
716
+ "input_schema": {
717
+ "type": "object",
718
+ "properties": {
719
+ "id": {
720
+ "type": "string",
721
+ "description": "Script ID"
722
+ }
723
+ },
724
+ "required": [
725
+ "id"
726
+ ]
727
+ }
728
+ },
729
+ {
730
+ "name": "update_script",
731
+ "description": "Update a script's title, content, voice, or settings. Only provided fields are changed.",
732
+ "method": "PUT",
733
+ "path": "/ai/scripts/{id}",
734
+ "input_schema": {
735
+ "type": "object",
736
+ "properties": {
737
+ "id": {
738
+ "type": "string",
739
+ "description": "Script ID"
740
+ },
741
+ "title": {
742
+ "type": "string",
743
+ "description": "New title"
744
+ },
745
+ "content": {
746
+ "type": "string",
747
+ "description": "New text content"
748
+ },
749
+ "voiceId": {
750
+ "type": "string",
751
+ "description": "New voice ID"
752
+ },
753
+ "voiceSettings": {
754
+ "type": "object",
755
+ "description": "New voice settings"
756
+ }
757
+ },
758
+ "required": [
759
+ "id"
760
+ ]
761
+ }
762
+ },
763
+ {
764
+ "name": "delete_script",
765
+ "description": "Delete a script and its generated audio.",
766
+ "method": "DELETE",
767
+ "path": "/ai/scripts/{id}",
768
+ "input_schema": {
769
+ "type": "object",
770
+ "properties": {
771
+ "id": {
772
+ "type": "string",
773
+ "description": "Script ID"
774
+ }
775
+ },
776
+ "required": [
777
+ "id"
778
+ ]
779
+ }
780
+ },
781
+ {
782
+ "name": "generate_script",
783
+ "description": "Generate audio from a script using text-to-speech. Uses the script's assigned voice or an override. Returns a job — check status with get-job-status.",
784
+ "method": "POST",
785
+ "path": "/ai/scripts/{id}/generate",
786
+ "input_schema": {
787
+ "type": "object",
788
+ "properties": {
789
+ "id": {
790
+ "type": "string",
791
+ "description": "Script ID to generate audio for"
792
+ },
793
+ "voiceId": {
794
+ "type": "string",
795
+ "description": "Override voice ID (optional, uses script's voice if not set)"
796
+ },
797
+ "model": {
798
+ "type": "string",
799
+ "description": "TTS model (optional)"
800
+ },
801
+ "outputFormat": {
802
+ "type": "string",
803
+ "enum": [
804
+ "mp3",
805
+ "wav",
806
+ "ogg"
807
+ ],
808
+ "default": "mp3",
809
+ "description": "Audio format"
810
+ }
811
+ },
812
+ "required": [
813
+ "id"
814
+ ]
815
+ }
649
816
  }
650
817
  ]
651
818
  }