@hostinger/mcp 3.3.1 → 3.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -0
- package/README.md +76 -3
- package/gemini-extension.json +1 -1
- package/package.json +1 -1
- package/server.json +2 -2
- package/src/core/runtime.js +16 -2
- package/src/core/runtime.ts +16 -2
- package/src/core/tools/all.js +254 -1
- package/src/core/tools/all.ts +254 -1
- package/src/core/tools/hosting.js +5 -1
- package/src/core/tools/hosting.ts +5 -1
- package/src/core/tools/reach.js +249 -0
- package/src/core/tools/reach.ts +249 -0
- package/src/servers/agency-hosting.js +1 -1
- package/src/servers/agency-hosting.ts +1 -1
- package/src/servers/agent-readiness.js +1 -1
- package/src/servers/agent-readiness.ts +1 -1
- package/src/servers/all.js +1 -1
- package/src/servers/all.ts +1 -1
- package/src/servers/billing.js +1 -1
- package/src/servers/billing.ts +1 -1
- package/src/servers/dns.js +1 -1
- package/src/servers/dns.ts +1 -1
- package/src/servers/domains.js +1 -1
- package/src/servers/domains.ts +1 -1
- package/src/servers/ecommerce.js +1 -1
- package/src/servers/ecommerce.ts +1 -1
- package/src/servers/horizons.js +1 -1
- package/src/servers/horizons.ts +1 -1
- package/src/servers/hosting.js +1 -1
- package/src/servers/hosting.ts +1 -1
- package/src/servers/mail.js +1 -1
- package/src/servers/mail.ts +1 -1
- package/src/servers/reach.js +1 -1
- package/src/servers/reach.ts +1 -1
- package/src/servers/vps.js +1 -1
- package/src/servers/vps.ts +1 -1
- package/src/servers/wordpress.js +1 -1
- package/src/servers/wordpress.ts +1 -1
- package/types.d.ts +160 -1
package/src/core/tools/all.ts
CHANGED
|
@@ -25,7 +25,7 @@ const tools: OpenApiTool[] = [
|
|
|
25
25
|
"destructiveHint": true
|
|
26
26
|
},
|
|
27
27
|
"topic": "hosting",
|
|
28
|
-
"description": "Deploy, publish or upload a website to Hostinger web hosting (Shared, Cloud): static HTML, PHP, a nodejs (Node.js) app, a whole WordPress site, or a WordPress plugin or theme, from a local directory, an archive or a GitHub or GitLab repository. It detects what the project is and does the upload, build and Git setup itself: do not call upload or build operations, and do not archive the directory yourself. WARNING: it overwrites the website's contents and cannot be undone; confirm the domain with the user before deploying to a site that already has content. A Node.js build runs on the server: this returns a buildUuid at once, then call hosting_get-deployment until the build state is completed or failed. Static, PHP, plugin and theme deploys are done when this returns; a WordPress site import only starts, and its files are extracted a few minutes later. From Git, pass type (static or nodejs) unless the site already runs a Node.js app or you pass Node.js settings; a static or PHP site deploys the branch now and again on every push; a Node.js site builds the branch now and on every later push, with the settings stored for the site (when none are stored, pass appType and nodeVersion from the project's engines, plus outputDirectory and buildScript if the app has a build step). Git needs GitHub or GitLab connected once in hPanel.",
|
|
28
|
+
"description": "Deploy, publish or upload a website to Hostinger web hosting (Shared, Cloud): static HTML, PHP, a nodejs (Node.js) app, a whole WordPress site, or a WordPress plugin or theme, from a local directory, an archive or a GitHub or GitLab repository. It detects what the project is and does the upload, build and Git setup itself: do not call upload or build operations, and do not archive the directory yourself. WARNING: it overwrites the website's contents and cannot be undone; confirm the domain with the user before deploying to a site that already has content. A Node.js build runs on the server: this returns a buildUuid at once, then call hosting_get-deployment until the build state is completed or failed. For a plugin or theme on a headless WordPress (installed in the cms folder), pass headless: true. Static, PHP, plugin and theme deploys are done when this returns; a WordPress site import only starts, and its files are extracted a few minutes later. From Git, pass type (static or nodejs) unless the site already runs a Node.js app or you pass Node.js settings; a static or PHP site deploys the branch now and again on every push; a Node.js site builds the branch now and on every later push, with the settings stored for the site (when none are stored, pass appType and nodeVersion from the project's engines, plus outputDirectory and buildScript if the app has a build step). Git needs GitHub or GitLab connected once in hPanel.",
|
|
29
29
|
"method": "",
|
|
30
30
|
"path": "",
|
|
31
31
|
"inputSchema": {
|
|
@@ -80,6 +80,10 @@ const tools: OpenApiTool[] = [
|
|
|
80
80
|
"type": "boolean",
|
|
81
81
|
"description": "Activate the theme after deployment (WordPress themes only, default: false)"
|
|
82
82
|
},
|
|
83
|
+
"headless": {
|
|
84
|
+
"type": "boolean",
|
|
85
|
+
"description": "The site runs headless WordPress, installed in the cms folder of the document root: the plugin or theme is uploaded to cms/wp-content/plugins or cms/wp-content/themes and installed there (wordpress-plugin and wordpress-theme only, default: false)"
|
|
86
|
+
},
|
|
83
87
|
"databaseDump": {
|
|
84
88
|
"type": "string",
|
|
85
89
|
"description": "Path to a .sql dump; required for a WordPress site import"
|
|
@@ -13517,6 +13521,90 @@ const tools: OpenApiTool[] = [
|
|
|
13517
13521
|
],
|
|
13518
13522
|
"group": "reach"
|
|
13519
13523
|
},
|
|
13524
|
+
{
|
|
13525
|
+
"name": "reach_forms_update",
|
|
13526
|
+
"title": "Update form",
|
|
13527
|
+
"annotations": {
|
|
13528
|
+
"title": "Update form",
|
|
13529
|
+
"readOnlyHint": false,
|
|
13530
|
+
"destructiveHint": true,
|
|
13531
|
+
"idempotentHint": true
|
|
13532
|
+
},
|
|
13533
|
+
"description": "Rename a form and/or change its status.\n\nSetting a `draft` or `paused` form to `active` takes it live: its latest saved design is published\nand visitors can submit it. `paused` and `draft` stop the form from accepting submissions. A form is\nnot reachable by visitors until it is taken live. Design changes saved while the form is already\n`active` stay unpublished until the form is paused and set to `active` again. Renaming does not rename\nthe automatic `form:{name}` tag.",
|
|
13534
|
+
"method": "PATCH",
|
|
13535
|
+
"path": "/api/reach/v1/profiles/{profileUuid}/forms/{formUuid}",
|
|
13536
|
+
"inputSchema": {
|
|
13537
|
+
"type": "object",
|
|
13538
|
+
"properties": {
|
|
13539
|
+
"profileUuid": {
|
|
13540
|
+
"type": "string",
|
|
13541
|
+
"description": "Profile uuid parameter"
|
|
13542
|
+
},
|
|
13543
|
+
"formUuid": {
|
|
13544
|
+
"type": "string",
|
|
13545
|
+
"description": "Form uuid parameter"
|
|
13546
|
+
},
|
|
13547
|
+
"name": {
|
|
13548
|
+
"type": "string",
|
|
13549
|
+
"description": "Form name. Letters, digits, spaces and - . ' _ only."
|
|
13550
|
+
},
|
|
13551
|
+
"status": {
|
|
13552
|
+
"type": "string",
|
|
13553
|
+
"description": "`active` takes the form live, `paused` and `draft` stop it accepting submissions.",
|
|
13554
|
+
"enum": [
|
|
13555
|
+
"active",
|
|
13556
|
+
"paused",
|
|
13557
|
+
"draft"
|
|
13558
|
+
]
|
|
13559
|
+
}
|
|
13560
|
+
},
|
|
13561
|
+
"required": [
|
|
13562
|
+
"profileUuid",
|
|
13563
|
+
"formUuid"
|
|
13564
|
+
]
|
|
13565
|
+
},
|
|
13566
|
+
"security": [
|
|
13567
|
+
{
|
|
13568
|
+
"apiToken": []
|
|
13569
|
+
}
|
|
13570
|
+
],
|
|
13571
|
+
"group": "reach"
|
|
13572
|
+
},
|
|
13573
|
+
{
|
|
13574
|
+
"name": "reach_forms_duplicate",
|
|
13575
|
+
"title": "Duplicate form",
|
|
13576
|
+
"annotations": {
|
|
13577
|
+
"title": "Duplicate form",
|
|
13578
|
+
"readOnlyHint": false,
|
|
13579
|
+
"destructiveHint": false
|
|
13580
|
+
},
|
|
13581
|
+
"description": "Copy a form into a new draft form with the same name and design.\n\nThe copy shares the source's automatic `form:{name}` tag; other submitter tags are not copied. The\ncopy is not live until its status is set to `active`.",
|
|
13582
|
+
"method": "POST",
|
|
13583
|
+
"path": "/api/reach/v1/profiles/{profileUuid}/forms/{formUuid}/duplicate",
|
|
13584
|
+
"inputSchema": {
|
|
13585
|
+
"type": "object",
|
|
13586
|
+
"properties": {
|
|
13587
|
+
"profileUuid": {
|
|
13588
|
+
"type": "string",
|
|
13589
|
+
"description": "Profile uuid parameter"
|
|
13590
|
+
},
|
|
13591
|
+
"formUuid": {
|
|
13592
|
+
"type": "string",
|
|
13593
|
+
"description": "Form uuid parameter"
|
|
13594
|
+
}
|
|
13595
|
+
},
|
|
13596
|
+
"required": [
|
|
13597
|
+
"profileUuid",
|
|
13598
|
+
"formUuid"
|
|
13599
|
+
]
|
|
13600
|
+
},
|
|
13601
|
+
"security": [
|
|
13602
|
+
{
|
|
13603
|
+
"apiToken": []
|
|
13604
|
+
}
|
|
13605
|
+
],
|
|
13606
|
+
"group": "reach"
|
|
13607
|
+
},
|
|
13520
13608
|
{
|
|
13521
13609
|
"name": "reach_forms_list",
|
|
13522
13610
|
"title": "List forms",
|
|
@@ -13542,6 +13630,15 @@ const tools: OpenApiTool[] = [
|
|
|
13542
13630
|
"per_page": {
|
|
13543
13631
|
"type": "integer",
|
|
13544
13632
|
"description": "Number of items per page"
|
|
13633
|
+
},
|
|
13634
|
+
"status": {
|
|
13635
|
+
"type": "string",
|
|
13636
|
+
"description": "Return only forms with this status.",
|
|
13637
|
+
"enum": [
|
|
13638
|
+
"active",
|
|
13639
|
+
"paused",
|
|
13640
|
+
"draft"
|
|
13641
|
+
]
|
|
13545
13642
|
}
|
|
13546
13643
|
},
|
|
13547
13644
|
"required": [
|
|
@@ -13555,6 +13652,162 @@ const tools: OpenApiTool[] = [
|
|
|
13555
13652
|
],
|
|
13556
13653
|
"group": "reach"
|
|
13557
13654
|
},
|
|
13655
|
+
{
|
|
13656
|
+
"name": "reach_forms_create",
|
|
13657
|
+
"title": "Create form",
|
|
13658
|
+
"annotations": {
|
|
13659
|
+
"title": "Create form",
|
|
13660
|
+
"readOnlyHint": false,
|
|
13661
|
+
"destructiveHint": false
|
|
13662
|
+
},
|
|
13663
|
+
"description": "Create an empty draft form.\n\nReach also adds an automatic `form:{name}` tag that every submitter receives. A draft has no design\nand is not reachable by visitors: save a design with the update form template operation, then take\nthe form live by setting its status to `active`. Creating a form does not consume AI credits.",
|
|
13664
|
+
"method": "POST",
|
|
13665
|
+
"path": "/api/reach/v1/profiles/{profileUuid}/forms",
|
|
13666
|
+
"inputSchema": {
|
|
13667
|
+
"type": "object",
|
|
13668
|
+
"properties": {
|
|
13669
|
+
"profileUuid": {
|
|
13670
|
+
"type": "string",
|
|
13671
|
+
"description": "Profile uuid parameter"
|
|
13672
|
+
},
|
|
13673
|
+
"name": {
|
|
13674
|
+
"type": "string",
|
|
13675
|
+
"description": "Form name. Letters, digits, spaces and - . ' _ only."
|
|
13676
|
+
}
|
|
13677
|
+
},
|
|
13678
|
+
"required": [
|
|
13679
|
+
"profileUuid",
|
|
13680
|
+
"name"
|
|
13681
|
+
]
|
|
13682
|
+
},
|
|
13683
|
+
"security": [
|
|
13684
|
+
{
|
|
13685
|
+
"apiToken": []
|
|
13686
|
+
}
|
|
13687
|
+
],
|
|
13688
|
+
"group": "reach"
|
|
13689
|
+
},
|
|
13690
|
+
{
|
|
13691
|
+
"name": "reach_forms_add-submitter-tags",
|
|
13692
|
+
"title": "Add form submitter tags",
|
|
13693
|
+
"annotations": {
|
|
13694
|
+
"title": "Add form submitter tags",
|
|
13695
|
+
"readOnlyHint": false,
|
|
13696
|
+
"destructiveHint": false
|
|
13697
|
+
},
|
|
13698
|
+
"description": "Add tags to a form so that every contact who submits it from now on receives them.\n\nA tag the form already has is skipped; an unknown tag is rejected. Contacts who submitted earlier are\nnot tagged.",
|
|
13699
|
+
"method": "POST",
|
|
13700
|
+
"path": "/api/reach/v1/profiles/{profileUuid}/forms/{formUuid}/tags",
|
|
13701
|
+
"inputSchema": {
|
|
13702
|
+
"type": "object",
|
|
13703
|
+
"properties": {
|
|
13704
|
+
"profileUuid": {
|
|
13705
|
+
"type": "string",
|
|
13706
|
+
"description": "Profile uuid parameter"
|
|
13707
|
+
},
|
|
13708
|
+
"formUuid": {
|
|
13709
|
+
"type": "string",
|
|
13710
|
+
"description": "Form uuid parameter"
|
|
13711
|
+
},
|
|
13712
|
+
"tag_uuids": {
|
|
13713
|
+
"type": "array",
|
|
13714
|
+
"description": "tag_uuids parameter",
|
|
13715
|
+
"items": {
|
|
13716
|
+
"type": "string",
|
|
13717
|
+
"description": "tag_uuids parameter"
|
|
13718
|
+
}
|
|
13719
|
+
}
|
|
13720
|
+
},
|
|
13721
|
+
"required": [
|
|
13722
|
+
"profileUuid",
|
|
13723
|
+
"formUuid",
|
|
13724
|
+
"tag_uuids"
|
|
13725
|
+
]
|
|
13726
|
+
},
|
|
13727
|
+
"security": [
|
|
13728
|
+
{
|
|
13729
|
+
"apiToken": []
|
|
13730
|
+
}
|
|
13731
|
+
],
|
|
13732
|
+
"group": "reach"
|
|
13733
|
+
},
|
|
13734
|
+
{
|
|
13735
|
+
"name": "reach_forms_remove-submitter-tag",
|
|
13736
|
+
"title": "Remove form submitter tag",
|
|
13737
|
+
"annotations": {
|
|
13738
|
+
"title": "Remove form submitter tag",
|
|
13739
|
+
"readOnlyHint": false,
|
|
13740
|
+
"destructiveHint": true,
|
|
13741
|
+
"idempotentHint": true
|
|
13742
|
+
},
|
|
13743
|
+
"description": "Stop a form from applying a tag to its future submitters.\n\nSucceeds also when the form did not have the tag. Contacts who already received the tag keep it, and\nthe tag itself is not deleted. The automatic `form:{name}` tag cannot be removed and is rejected with\na conflict.",
|
|
13744
|
+
"method": "DELETE",
|
|
13745
|
+
"path": "/api/reach/v1/profiles/{profileUuid}/forms/{formUuid}/tags",
|
|
13746
|
+
"inputSchema": {
|
|
13747
|
+
"type": "object",
|
|
13748
|
+
"properties": {
|
|
13749
|
+
"profileUuid": {
|
|
13750
|
+
"type": "string",
|
|
13751
|
+
"description": "Profile uuid parameter"
|
|
13752
|
+
},
|
|
13753
|
+
"formUuid": {
|
|
13754
|
+
"type": "string",
|
|
13755
|
+
"description": "Form uuid parameter"
|
|
13756
|
+
}
|
|
13757
|
+
},
|
|
13758
|
+
"required": [
|
|
13759
|
+
"profileUuid",
|
|
13760
|
+
"formUuid"
|
|
13761
|
+
]
|
|
13762
|
+
},
|
|
13763
|
+
"security": [
|
|
13764
|
+
{
|
|
13765
|
+
"apiToken": []
|
|
13766
|
+
}
|
|
13767
|
+
],
|
|
13768
|
+
"group": "reach"
|
|
13769
|
+
},
|
|
13770
|
+
{
|
|
13771
|
+
"name": "reach_forms_update-template",
|
|
13772
|
+
"title": "Update form template",
|
|
13773
|
+
"annotations": {
|
|
13774
|
+
"title": "Update form template",
|
|
13775
|
+
"readOnlyHint": false,
|
|
13776
|
+
"destructiveHint": true,
|
|
13777
|
+
"idempotentHint": true
|
|
13778
|
+
},
|
|
13779
|
+
"description": "Save `content` as the latest design of a form and return the stored version.\n\nThe HTML is sanitized and, unless the plan allows removing it, the Reach signature is added. Visitors\nsubmit the form with an `email` field (required) and optional `name`, `surname` and `phone`. After\nsanitizing, the design must contain a form container (`data-reach-form`), an email input\n(`data-reach-field=\"email\"`) and a submit button (`data-reach-submit`); otherwise the request fails\nwith `422` and `errors.content` lists `missing_form_container`, `missing_email_field` and/or\n`missing_submit_button`.\n\nA `draft` or `paused` form stays unreachable until its status is set to `active`, which publishes this\ndesign. On a form that is already `active` the saved design is not public until the form is paused and\nset to `active` again. Saving a design does not consume AI credits.",
|
|
13780
|
+
"method": "PATCH",
|
|
13781
|
+
"path": "/api/reach/v1/profiles/{profileUuid}/forms/{formUuid}/template",
|
|
13782
|
+
"inputSchema": {
|
|
13783
|
+
"type": "object",
|
|
13784
|
+
"properties": {
|
|
13785
|
+
"profileUuid": {
|
|
13786
|
+
"type": "string",
|
|
13787
|
+
"description": "Profile uuid parameter"
|
|
13788
|
+
},
|
|
13789
|
+
"formUuid": {
|
|
13790
|
+
"type": "string",
|
|
13791
|
+
"description": "Form uuid parameter"
|
|
13792
|
+
},
|
|
13793
|
+
"content": {
|
|
13794
|
+
"type": "string",
|
|
13795
|
+
"description": "HTML of the form design. After sanitizing it must still contain a form container\n(`data-reach-form`), an email input (`data-reach-field=\"email\"`) and a submit button\n(`data-reach-submit`)."
|
|
13796
|
+
}
|
|
13797
|
+
},
|
|
13798
|
+
"required": [
|
|
13799
|
+
"profileUuid",
|
|
13800
|
+
"formUuid",
|
|
13801
|
+
"content"
|
|
13802
|
+
]
|
|
13803
|
+
},
|
|
13804
|
+
"security": [
|
|
13805
|
+
{
|
|
13806
|
+
"apiToken": []
|
|
13807
|
+
}
|
|
13808
|
+
],
|
|
13809
|
+
"group": "reach"
|
|
13810
|
+
},
|
|
13558
13811
|
{
|
|
13559
13812
|
"name": "reach_profiles_connected-sending-domain",
|
|
13560
13813
|
"title": "Get connected sending domain",
|
|
@@ -9,7 +9,7 @@ export default [
|
|
|
9
9
|
"destructiveHint": true
|
|
10
10
|
},
|
|
11
11
|
"topic": "hosting",
|
|
12
|
-
"description": "Deploy, publish or upload a website to Hostinger web hosting (Shared, Cloud): static HTML, PHP, a nodejs (Node.js) app, a whole WordPress site, or a WordPress plugin or theme, from a local directory, an archive or a GitHub or GitLab repository. It detects what the project is and does the upload, build and Git setup itself: do not call upload or build operations, and do not archive the directory yourself. WARNING: it overwrites the website's contents and cannot be undone; confirm the domain with the user before deploying to a site that already has content. A Node.js build runs on the server: this returns a buildUuid at once, then call hosting_get-deployment until the build state is completed or failed. Static, PHP, plugin and theme deploys are done when this returns; a WordPress site import only starts, and its files are extracted a few minutes later. From Git, pass type (static or nodejs) unless the site already runs a Node.js app or you pass Node.js settings; a static or PHP site deploys the branch now and again on every push; a Node.js site builds the branch now and on every later push, with the settings stored for the site (when none are stored, pass appType and nodeVersion from the project's engines, plus outputDirectory and buildScript if the app has a build step). Git needs GitHub or GitLab connected once in hPanel.",
|
|
12
|
+
"description": "Deploy, publish or upload a website to Hostinger web hosting (Shared, Cloud): static HTML, PHP, a nodejs (Node.js) app, a whole WordPress site, or a WordPress plugin or theme, from a local directory, an archive or a GitHub or GitLab repository. It detects what the project is and does the upload, build and Git setup itself: do not call upload or build operations, and do not archive the directory yourself. WARNING: it overwrites the website's contents and cannot be undone; confirm the domain with the user before deploying to a site that already has content. A Node.js build runs on the server: this returns a buildUuid at once, then call hosting_get-deployment until the build state is completed or failed. For a plugin or theme on a headless WordPress (installed in the cms folder), pass headless: true. Static, PHP, plugin and theme deploys are done when this returns; a WordPress site import only starts, and its files are extracted a few minutes later. From Git, pass type (static or nodejs) unless the site already runs a Node.js app or you pass Node.js settings; a static or PHP site deploys the branch now and again on every push; a Node.js site builds the branch now and on every later push, with the settings stored for the site (when none are stored, pass appType and nodeVersion from the project's engines, plus outputDirectory and buildScript if the app has a build step). Git needs GitHub or GitLab connected once in hPanel.",
|
|
13
13
|
"method": "",
|
|
14
14
|
"path": "",
|
|
15
15
|
"inputSchema": {
|
|
@@ -64,6 +64,10 @@ export default [
|
|
|
64
64
|
"type": "boolean",
|
|
65
65
|
"description": "Activate the theme after deployment (WordPress themes only, default: false)"
|
|
66
66
|
},
|
|
67
|
+
"headless": {
|
|
68
|
+
"type": "boolean",
|
|
69
|
+
"description": "The site runs headless WordPress, installed in the cms folder of the document root: the plugin or theme is uploaded to cms/wp-content/plugins or cms/wp-content/themes and installed there (wordpress-plugin and wordpress-theme only, default: false)"
|
|
70
|
+
},
|
|
67
71
|
"databaseDump": {
|
|
68
72
|
"type": "string",
|
|
69
73
|
"description": "Path to a .sql dump; required for a WordPress site import"
|
|
@@ -25,7 +25,7 @@ const tools: OpenApiTool[] = [
|
|
|
25
25
|
"destructiveHint": true
|
|
26
26
|
},
|
|
27
27
|
"topic": "hosting",
|
|
28
|
-
"description": "Deploy, publish or upload a website to Hostinger web hosting (Shared, Cloud): static HTML, PHP, a nodejs (Node.js) app, a whole WordPress site, or a WordPress plugin or theme, from a local directory, an archive or a GitHub or GitLab repository. It detects what the project is and does the upload, build and Git setup itself: do not call upload or build operations, and do not archive the directory yourself. WARNING: it overwrites the website's contents and cannot be undone; confirm the domain with the user before deploying to a site that already has content. A Node.js build runs on the server: this returns a buildUuid at once, then call hosting_get-deployment until the build state is completed or failed. Static, PHP, plugin and theme deploys are done when this returns; a WordPress site import only starts, and its files are extracted a few minutes later. From Git, pass type (static or nodejs) unless the site already runs a Node.js app or you pass Node.js settings; a static or PHP site deploys the branch now and again on every push; a Node.js site builds the branch now and on every later push, with the settings stored for the site (when none are stored, pass appType and nodeVersion from the project's engines, plus outputDirectory and buildScript if the app has a build step). Git needs GitHub or GitLab connected once in hPanel.",
|
|
28
|
+
"description": "Deploy, publish or upload a website to Hostinger web hosting (Shared, Cloud): static HTML, PHP, a nodejs (Node.js) app, a whole WordPress site, or a WordPress plugin or theme, from a local directory, an archive or a GitHub or GitLab repository. It detects what the project is and does the upload, build and Git setup itself: do not call upload or build operations, and do not archive the directory yourself. WARNING: it overwrites the website's contents and cannot be undone; confirm the domain with the user before deploying to a site that already has content. A Node.js build runs on the server: this returns a buildUuid at once, then call hosting_get-deployment until the build state is completed or failed. For a plugin or theme on a headless WordPress (installed in the cms folder), pass headless: true. Static, PHP, plugin and theme deploys are done when this returns; a WordPress site import only starts, and its files are extracted a few minutes later. From Git, pass type (static or nodejs) unless the site already runs a Node.js app or you pass Node.js settings; a static or PHP site deploys the branch now and again on every push; a Node.js site builds the branch now and on every later push, with the settings stored for the site (when none are stored, pass appType and nodeVersion from the project's engines, plus outputDirectory and buildScript if the app has a build step). Git needs GitHub or GitLab connected once in hPanel.",
|
|
29
29
|
"method": "",
|
|
30
30
|
"path": "",
|
|
31
31
|
"inputSchema": {
|
|
@@ -80,6 +80,10 @@ const tools: OpenApiTool[] = [
|
|
|
80
80
|
"type": "boolean",
|
|
81
81
|
"description": "Activate the theme after deployment (WordPress themes only, default: false)"
|
|
82
82
|
},
|
|
83
|
+
"headless": {
|
|
84
|
+
"type": "boolean",
|
|
85
|
+
"description": "The site runs headless WordPress, installed in the cms folder of the document root: the plugin or theme is uploaded to cms/wp-content/plugins or cms/wp-content/themes and installed there (wordpress-plugin and wordpress-theme only, default: false)"
|
|
86
|
+
},
|
|
83
87
|
"databaseDump": {
|
|
84
88
|
"type": "string",
|
|
85
89
|
"description": "Path to a .sql dump; required for a WordPress site import"
|
package/src/core/tools/reach.js
CHANGED
|
@@ -2152,6 +2152,90 @@ export default [
|
|
|
2152
2152
|
],
|
|
2153
2153
|
"group": "reach"
|
|
2154
2154
|
},
|
|
2155
|
+
{
|
|
2156
|
+
"name": "reach_forms_update",
|
|
2157
|
+
"title": "Update form",
|
|
2158
|
+
"annotations": {
|
|
2159
|
+
"title": "Update form",
|
|
2160
|
+
"readOnlyHint": false,
|
|
2161
|
+
"destructiveHint": true,
|
|
2162
|
+
"idempotentHint": true
|
|
2163
|
+
},
|
|
2164
|
+
"description": "Rename a form and/or change its status.\n\nSetting a `draft` or `paused` form to `active` takes it live: its latest saved design is published\nand visitors can submit it. `paused` and `draft` stop the form from accepting submissions. A form is\nnot reachable by visitors until it is taken live. Design changes saved while the form is already\n`active` stay unpublished until the form is paused and set to `active` again. Renaming does not rename\nthe automatic `form:{name}` tag.",
|
|
2165
|
+
"method": "PATCH",
|
|
2166
|
+
"path": "/api/reach/v1/profiles/{profileUuid}/forms/{formUuid}",
|
|
2167
|
+
"inputSchema": {
|
|
2168
|
+
"type": "object",
|
|
2169
|
+
"properties": {
|
|
2170
|
+
"profileUuid": {
|
|
2171
|
+
"type": "string",
|
|
2172
|
+
"description": "Profile uuid parameter"
|
|
2173
|
+
},
|
|
2174
|
+
"formUuid": {
|
|
2175
|
+
"type": "string",
|
|
2176
|
+
"description": "Form uuid parameter"
|
|
2177
|
+
},
|
|
2178
|
+
"name": {
|
|
2179
|
+
"type": "string",
|
|
2180
|
+
"description": "Form name. Letters, digits, spaces and - . ' _ only."
|
|
2181
|
+
},
|
|
2182
|
+
"status": {
|
|
2183
|
+
"type": "string",
|
|
2184
|
+
"description": "`active` takes the form live, `paused` and `draft` stop it accepting submissions.",
|
|
2185
|
+
"enum": [
|
|
2186
|
+
"active",
|
|
2187
|
+
"paused",
|
|
2188
|
+
"draft"
|
|
2189
|
+
]
|
|
2190
|
+
}
|
|
2191
|
+
},
|
|
2192
|
+
"required": [
|
|
2193
|
+
"profileUuid",
|
|
2194
|
+
"formUuid"
|
|
2195
|
+
]
|
|
2196
|
+
},
|
|
2197
|
+
"security": [
|
|
2198
|
+
{
|
|
2199
|
+
"apiToken": []
|
|
2200
|
+
}
|
|
2201
|
+
],
|
|
2202
|
+
"group": "reach"
|
|
2203
|
+
},
|
|
2204
|
+
{
|
|
2205
|
+
"name": "reach_forms_duplicate",
|
|
2206
|
+
"title": "Duplicate form",
|
|
2207
|
+
"annotations": {
|
|
2208
|
+
"title": "Duplicate form",
|
|
2209
|
+
"readOnlyHint": false,
|
|
2210
|
+
"destructiveHint": false
|
|
2211
|
+
},
|
|
2212
|
+
"description": "Copy a form into a new draft form with the same name and design.\n\nThe copy shares the source's automatic `form:{name}` tag; other submitter tags are not copied. The\ncopy is not live until its status is set to `active`.",
|
|
2213
|
+
"method": "POST",
|
|
2214
|
+
"path": "/api/reach/v1/profiles/{profileUuid}/forms/{formUuid}/duplicate",
|
|
2215
|
+
"inputSchema": {
|
|
2216
|
+
"type": "object",
|
|
2217
|
+
"properties": {
|
|
2218
|
+
"profileUuid": {
|
|
2219
|
+
"type": "string",
|
|
2220
|
+
"description": "Profile uuid parameter"
|
|
2221
|
+
},
|
|
2222
|
+
"formUuid": {
|
|
2223
|
+
"type": "string",
|
|
2224
|
+
"description": "Form uuid parameter"
|
|
2225
|
+
}
|
|
2226
|
+
},
|
|
2227
|
+
"required": [
|
|
2228
|
+
"profileUuid",
|
|
2229
|
+
"formUuid"
|
|
2230
|
+
]
|
|
2231
|
+
},
|
|
2232
|
+
"security": [
|
|
2233
|
+
{
|
|
2234
|
+
"apiToken": []
|
|
2235
|
+
}
|
|
2236
|
+
],
|
|
2237
|
+
"group": "reach"
|
|
2238
|
+
},
|
|
2155
2239
|
{
|
|
2156
2240
|
"name": "reach_forms_list",
|
|
2157
2241
|
"title": "List forms",
|
|
@@ -2177,6 +2261,15 @@ export default [
|
|
|
2177
2261
|
"per_page": {
|
|
2178
2262
|
"type": "integer",
|
|
2179
2263
|
"description": "Number of items per page"
|
|
2264
|
+
},
|
|
2265
|
+
"status": {
|
|
2266
|
+
"type": "string",
|
|
2267
|
+
"description": "Return only forms with this status.",
|
|
2268
|
+
"enum": [
|
|
2269
|
+
"active",
|
|
2270
|
+
"paused",
|
|
2271
|
+
"draft"
|
|
2272
|
+
]
|
|
2180
2273
|
}
|
|
2181
2274
|
},
|
|
2182
2275
|
"required": [
|
|
@@ -2190,6 +2283,162 @@ export default [
|
|
|
2190
2283
|
],
|
|
2191
2284
|
"group": "reach"
|
|
2192
2285
|
},
|
|
2286
|
+
{
|
|
2287
|
+
"name": "reach_forms_create",
|
|
2288
|
+
"title": "Create form",
|
|
2289
|
+
"annotations": {
|
|
2290
|
+
"title": "Create form",
|
|
2291
|
+
"readOnlyHint": false,
|
|
2292
|
+
"destructiveHint": false
|
|
2293
|
+
},
|
|
2294
|
+
"description": "Create an empty draft form.\n\nReach also adds an automatic `form:{name}` tag that every submitter receives. A draft has no design\nand is not reachable by visitors: save a design with the update form template operation, then take\nthe form live by setting its status to `active`. Creating a form does not consume AI credits.",
|
|
2295
|
+
"method": "POST",
|
|
2296
|
+
"path": "/api/reach/v1/profiles/{profileUuid}/forms",
|
|
2297
|
+
"inputSchema": {
|
|
2298
|
+
"type": "object",
|
|
2299
|
+
"properties": {
|
|
2300
|
+
"profileUuid": {
|
|
2301
|
+
"type": "string",
|
|
2302
|
+
"description": "Profile uuid parameter"
|
|
2303
|
+
},
|
|
2304
|
+
"name": {
|
|
2305
|
+
"type": "string",
|
|
2306
|
+
"description": "Form name. Letters, digits, spaces and - . ' _ only."
|
|
2307
|
+
}
|
|
2308
|
+
},
|
|
2309
|
+
"required": [
|
|
2310
|
+
"profileUuid",
|
|
2311
|
+
"name"
|
|
2312
|
+
]
|
|
2313
|
+
},
|
|
2314
|
+
"security": [
|
|
2315
|
+
{
|
|
2316
|
+
"apiToken": []
|
|
2317
|
+
}
|
|
2318
|
+
],
|
|
2319
|
+
"group": "reach"
|
|
2320
|
+
},
|
|
2321
|
+
{
|
|
2322
|
+
"name": "reach_forms_add-submitter-tags",
|
|
2323
|
+
"title": "Add form submitter tags",
|
|
2324
|
+
"annotations": {
|
|
2325
|
+
"title": "Add form submitter tags",
|
|
2326
|
+
"readOnlyHint": false,
|
|
2327
|
+
"destructiveHint": false
|
|
2328
|
+
},
|
|
2329
|
+
"description": "Add tags to a form so that every contact who submits it from now on receives them.\n\nA tag the form already has is skipped; an unknown tag is rejected. Contacts who submitted earlier are\nnot tagged.",
|
|
2330
|
+
"method": "POST",
|
|
2331
|
+
"path": "/api/reach/v1/profiles/{profileUuid}/forms/{formUuid}/tags",
|
|
2332
|
+
"inputSchema": {
|
|
2333
|
+
"type": "object",
|
|
2334
|
+
"properties": {
|
|
2335
|
+
"profileUuid": {
|
|
2336
|
+
"type": "string",
|
|
2337
|
+
"description": "Profile uuid parameter"
|
|
2338
|
+
},
|
|
2339
|
+
"formUuid": {
|
|
2340
|
+
"type": "string",
|
|
2341
|
+
"description": "Form uuid parameter"
|
|
2342
|
+
},
|
|
2343
|
+
"tag_uuids": {
|
|
2344
|
+
"type": "array",
|
|
2345
|
+
"description": "tag_uuids parameter",
|
|
2346
|
+
"items": {
|
|
2347
|
+
"type": "string",
|
|
2348
|
+
"description": "tag_uuids parameter"
|
|
2349
|
+
}
|
|
2350
|
+
}
|
|
2351
|
+
},
|
|
2352
|
+
"required": [
|
|
2353
|
+
"profileUuid",
|
|
2354
|
+
"formUuid",
|
|
2355
|
+
"tag_uuids"
|
|
2356
|
+
]
|
|
2357
|
+
},
|
|
2358
|
+
"security": [
|
|
2359
|
+
{
|
|
2360
|
+
"apiToken": []
|
|
2361
|
+
}
|
|
2362
|
+
],
|
|
2363
|
+
"group": "reach"
|
|
2364
|
+
},
|
|
2365
|
+
{
|
|
2366
|
+
"name": "reach_forms_remove-submitter-tag",
|
|
2367
|
+
"title": "Remove form submitter tag",
|
|
2368
|
+
"annotations": {
|
|
2369
|
+
"title": "Remove form submitter tag",
|
|
2370
|
+
"readOnlyHint": false,
|
|
2371
|
+
"destructiveHint": true,
|
|
2372
|
+
"idempotentHint": true
|
|
2373
|
+
},
|
|
2374
|
+
"description": "Stop a form from applying a tag to its future submitters.\n\nSucceeds also when the form did not have the tag. Contacts who already received the tag keep it, and\nthe tag itself is not deleted. The automatic `form:{name}` tag cannot be removed and is rejected with\na conflict.",
|
|
2375
|
+
"method": "DELETE",
|
|
2376
|
+
"path": "/api/reach/v1/profiles/{profileUuid}/forms/{formUuid}/tags",
|
|
2377
|
+
"inputSchema": {
|
|
2378
|
+
"type": "object",
|
|
2379
|
+
"properties": {
|
|
2380
|
+
"profileUuid": {
|
|
2381
|
+
"type": "string",
|
|
2382
|
+
"description": "Profile uuid parameter"
|
|
2383
|
+
},
|
|
2384
|
+
"formUuid": {
|
|
2385
|
+
"type": "string",
|
|
2386
|
+
"description": "Form uuid parameter"
|
|
2387
|
+
}
|
|
2388
|
+
},
|
|
2389
|
+
"required": [
|
|
2390
|
+
"profileUuid",
|
|
2391
|
+
"formUuid"
|
|
2392
|
+
]
|
|
2393
|
+
},
|
|
2394
|
+
"security": [
|
|
2395
|
+
{
|
|
2396
|
+
"apiToken": []
|
|
2397
|
+
}
|
|
2398
|
+
],
|
|
2399
|
+
"group": "reach"
|
|
2400
|
+
},
|
|
2401
|
+
{
|
|
2402
|
+
"name": "reach_forms_update-template",
|
|
2403
|
+
"title": "Update form template",
|
|
2404
|
+
"annotations": {
|
|
2405
|
+
"title": "Update form template",
|
|
2406
|
+
"readOnlyHint": false,
|
|
2407
|
+
"destructiveHint": true,
|
|
2408
|
+
"idempotentHint": true
|
|
2409
|
+
},
|
|
2410
|
+
"description": "Save `content` as the latest design of a form and return the stored version.\n\nThe HTML is sanitized and, unless the plan allows removing it, the Reach signature is added. Visitors\nsubmit the form with an `email` field (required) and optional `name`, `surname` and `phone`. After\nsanitizing, the design must contain a form container (`data-reach-form`), an email input\n(`data-reach-field=\"email\"`) and a submit button (`data-reach-submit`); otherwise the request fails\nwith `422` and `errors.content` lists `missing_form_container`, `missing_email_field` and/or\n`missing_submit_button`.\n\nA `draft` or `paused` form stays unreachable until its status is set to `active`, which publishes this\ndesign. On a form that is already `active` the saved design is not public until the form is paused and\nset to `active` again. Saving a design does not consume AI credits.",
|
|
2411
|
+
"method": "PATCH",
|
|
2412
|
+
"path": "/api/reach/v1/profiles/{profileUuid}/forms/{formUuid}/template",
|
|
2413
|
+
"inputSchema": {
|
|
2414
|
+
"type": "object",
|
|
2415
|
+
"properties": {
|
|
2416
|
+
"profileUuid": {
|
|
2417
|
+
"type": "string",
|
|
2418
|
+
"description": "Profile uuid parameter"
|
|
2419
|
+
},
|
|
2420
|
+
"formUuid": {
|
|
2421
|
+
"type": "string",
|
|
2422
|
+
"description": "Form uuid parameter"
|
|
2423
|
+
},
|
|
2424
|
+
"content": {
|
|
2425
|
+
"type": "string",
|
|
2426
|
+
"description": "HTML of the form design. After sanitizing it must still contain a form container\n(`data-reach-form`), an email input (`data-reach-field=\"email\"`) and a submit button\n(`data-reach-submit`)."
|
|
2427
|
+
}
|
|
2428
|
+
},
|
|
2429
|
+
"required": [
|
|
2430
|
+
"profileUuid",
|
|
2431
|
+
"formUuid",
|
|
2432
|
+
"content"
|
|
2433
|
+
]
|
|
2434
|
+
},
|
|
2435
|
+
"security": [
|
|
2436
|
+
{
|
|
2437
|
+
"apiToken": []
|
|
2438
|
+
}
|
|
2439
|
+
],
|
|
2440
|
+
"group": "reach"
|
|
2441
|
+
},
|
|
2193
2442
|
{
|
|
2194
2443
|
"name": "reach_profiles_connected-sending-domain",
|
|
2195
2444
|
"title": "Get connected sending domain",
|