mcpscraper-memory-sdk 0.13.0__py3-none-any.whl
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.
- mcpscraper_memory/__init__.py +9 -0
- mcpscraper_memory/_generated_client.py +588 -0
- mcpscraper_memory/_mcp_generated_client.py +1111 -0
- mcpscraper_memory/client.py +115 -0
- mcpscraper_memory/errors.py +17 -0
- mcpscraper_memory/mcp_client.py +136 -0
- mcpscraper_memory/mcp_models/__init__.py +0 -0
- mcpscraper_memory/mcp_models/access_accept_share.py +17 -0
- mcpscraper_memory/mcp_models/access_approve_sender.py +16 -0
- mcpscraper_memory/mcp_models/access_decline_share.py +16 -0
- mcpscraper_memory/mcp_models/access_inbox_settings.py +16 -0
- mcpscraper_memory/mcp_models/access_invite_account.py +21 -0
- mcpscraper_memory/mcp_models/access_issue_key.py +26 -0
- mcpscraper_memory/mcp_models/access_list_approved_senders.py +15 -0
- mcpscraper_memory/mcp_models/access_list_keys.py +17 -0
- mcpscraper_memory/mcp_models/access_note_inbox.py +14 -0
- mcpscraper_memory/mcp_models/access_remove_approved_sender.py +17 -0
- mcpscraper_memory/mcp_models/access_revoke_key.py +17 -0
- mcpscraper_memory/mcp_models/access_revoke_share.py +16 -0
- mcpscraper_memory/mcp_models/access_set_scope.py +19 -0
- mcpscraper_memory/mcp_models/access_share_note.py +26 -0
- mcpscraper_memory/mcp_models/access_share_vault.py +20 -0
- mcpscraper_memory/mcp_models/access_swap_vault.py +17 -0
- mcpscraper_memory/mcp_models/access_switch_account.py +18 -0
- mcpscraper_memory/mcp_models/access_unlink_share.py +16 -0
- mcpscraper_memory/mcp_models/add_vault.py +18 -0
- mcpscraper_memory/mcp_models/audit_site.py +17 -0
- mcpscraper_memory/mcp_models/browser_click.py +16 -0
- mcpscraper_memory/mcp_models/browser_close.py +12 -0
- mcpscraper_memory/mcp_models/browser_extension_delete.py +12 -0
- mcpscraper_memory/mcp_models/browser_extension_import.py +13 -0
- mcpscraper_memory/mcp_models/browser_extension_list.py +10 -0
- mcpscraper_memory/mcp_models/browser_goto.py +13 -0
- mcpscraper_memory/mcp_models/browser_list_replays.py +12 -0
- mcpscraper_memory/mcp_models/browser_list_sessions.py +12 -0
- mcpscraper_memory/mcp_models/browser_locate.py +13 -0
- mcpscraper_memory/mcp_models/browser_open.py +17 -0
- mcpscraper_memory/mcp_models/browser_press.py +13 -0
- mcpscraper_memory/mcp_models/browser_profile_connect.py +19 -0
- mcpscraper_memory/mcp_models/browser_profile_list.py +15 -0
- mcpscraper_memory/mcp_models/browser_read.py +12 -0
- mcpscraper_memory/mcp_models/browser_replay_annotate.py +19 -0
- mcpscraper_memory/mcp_models/browser_replay_download.py +14 -0
- mcpscraper_memory/mcp_models/browser_replay_mark.py +20 -0
- mcpscraper_memory/mcp_models/browser_replay_start.py +12 -0
- mcpscraper_memory/mcp_models/browser_replay_stop.py +13 -0
- mcpscraper_memory/mcp_models/browser_screenshot.py +12 -0
- mcpscraper_memory/mcp_models/browser_scroll.py +16 -0
- mcpscraper_memory/mcp_models/browser_type.py +14 -0
- mcpscraper_memory/mcp_models/bulk_delete_notes.py +24 -0
- mcpscraper_memory/mcp_models/call_service_connection_action.py +14 -0
- mcpscraper_memory/mcp_models/capture_serp_page_snapshots.py +16 -0
- mcpscraper_memory/mcp_models/capture_serp_snapshot.py +22 -0
- mcpscraper_memory/mcp_models/check_site_export.py +12 -0
- mcpscraper_memory/mcp_models/cost_usage.py +28 -0
- mcpscraper_memory/mcp_models/create_channel.py +19 -0
- mcpscraper_memory/mcp_models/create_scheduled_action.py +25 -0
- mcpscraper_memory/mcp_models/create_secure_vault.py +17 -0
- mcpscraper_memory/mcp_models/create_webhook.py +19 -0
- mcpscraper_memory/mcp_models/credits_info.py +13 -0
- mcpscraper_memory/mcp_models/delete_note.py +23 -0
- mcpscraper_memory/mcp_models/delete_scheduled_action.py +16 -0
- mcpscraper_memory/mcp_models/delete_vault.py +18 -0
- mcpscraper_memory/mcp_models/describe_service_connection_tool.py +14 -0
- mcpscraper_memory/mcp_models/diff_page.py +14 -0
- mcpscraper_memory/mcp_models/directory_workflow.py +24 -0
- mcpscraper_memory/mcp_models/export_connected_service_data.py +20 -0
- mcpscraper_memory/mcp_models/export_search_console_table_data.py +15 -0
- mcpscraper_memory/mcp_models/extract_site.py +18 -0
- mcpscraper_memory/mcp_models/extract_url.py +20 -0
- mcpscraper_memory/mcp_models/facebook_ad_search.py +14 -0
- mcpscraper_memory/mcp_models/facebook_ad_transcribe.py +12 -0
- mcpscraper_memory/mcp_models/facebook_page_intel.py +16 -0
- mcpscraper_memory/mcp_models/facebook_video_transcribe.py +13 -0
- mcpscraper_memory/mcp_models/fact_history.py +18 -0
- mcpscraper_memory/mcp_models/g2_reviews.py +13 -0
- mcpscraper_memory/mcp_models/get_chat_link.py +15 -0
- mcpscraper_memory/mcp_models/get_message_note.py +17 -0
- mcpscraper_memory/mcp_models/get_schedule_link.py +16 -0
- mcpscraper_memory/mcp_models/get_schedule_status.py +22 -0
- mcpscraper_memory/mcp_models/get_vault_app_link.py +15 -0
- mcpscraper_memory/mcp_models/get_vault_contract.py +17 -0
- mcpscraper_memory/mcp_models/gmail_send_message.py +15 -0
- mcpscraper_memory/mcp_models/google_ads_page_intel.py +15 -0
- mcpscraper_memory/mcp_models/google_ads_search.py +14 -0
- mcpscraper_memory/mcp_models/google_ads_transcribe.py +12 -0
- mcpscraper_memory/mcp_models/google_calendar_create_event.py +20 -0
- mcpscraper_memory/mcp_models/harvest_paa.py +20 -0
- mcpscraper_memory/mcp_models/import_service_connection_to_memory.py +17 -0
- mcpscraper_memory/mcp_models/instagram_media_download.py +19 -0
- mcpscraper_memory/mcp_models/instagram_profile_content.py +19 -0
- mcpscraper_memory/mcp_models/library_ingest.py +31 -0
- mcpscraper_memory/mcp_models/list_channel_members.py +18 -0
- mcpscraper_memory/mcp_models/list_channel_messages.py +17 -0
- mcpscraper_memory/mcp_models/list_memory_tags.py +16 -0
- mcpscraper_memory/mcp_models/list_scheduled_actions.py +14 -0
- mcpscraper_memory/mcp_models/list_service_connections.py +10 -0
- mcpscraper_memory/mcp_models/list_shared_with_me.py +14 -0
- mcpscraper_memory/mcp_models/list_vaults.py +16 -0
- mcpscraper_memory/mcp_models/list_webhooks.py +14 -0
- mcpscraper_memory/mcp_models/map_site_urls.py +13 -0
- mcpscraper_memory/mcp_models/maps_place_intel.py +18 -0
- mcpscraper_memory/mcp_models/maps_search.py +20 -0
- mcpscraper_memory/mcp_models/memory_backlinks.py +18 -0
- mcpscraper_memory/mcp_models/memory_capture.py +31 -0
- mcpscraper_memory/mcp_models/memory_export.py +18 -0
- mcpscraper_memory/mcp_models/memory_get.py +18 -0
- mcpscraper_memory/mcp_models/memory_graph_path.py +21 -0
- mcpscraper_memory/mcp_models/memory_graph_universe.py +23 -0
- mcpscraper_memory/mcp_models/memory_list.py +20 -0
- mcpscraper_memory/mcp_models/memory_put.py +26 -0
- mcpscraper_memory/mcp_models/memory_questions.py +18 -0
- mcpscraper_memory/mcp_models/memory_search.py +39 -0
- mcpscraper_memory/mcp_models/memory_suggest.py +17 -0
- mcpscraper_memory/mcp_models/memory_upload.py +22 -0
- mcpscraper_memory/mcp_models/meta_ad_creative_media.py +15 -0
- mcpscraper_memory/mcp_models/my_mentions.py +16 -0
- mcpscraper_memory/mcp_models/pause_scheduled_action.py +15 -0
- mcpscraper_memory/mcp_models/poll_channel.py +21 -0
- mcpscraper_memory/mcp_models/post_message.py +20 -0
- mcpscraper_memory/mcp_models/prepare_memory_write.py +26 -0
- mcpscraper_memory/mcp_models/propose_scheduled_action.py +21 -0
- mcpscraper_memory/mcp_models/provision_defaults.py +23 -0
- mcpscraper_memory/mcp_models/query_fanout_workflow.py +17 -0
- mcpscraper_memory/mcp_models/rank_tracker_workflow.py +26 -0
- mcpscraper_memory/mcp_models/react_message.py +21 -0
- mcpscraper_memory/mcp_models/read_service_connection.py +14 -0
- mcpscraper_memory/mcp_models/record_fact.py +22 -0
- mcpscraper_memory/mcp_models/reddit_thread.py +13 -0
- mcpscraper_memory/mcp_models/remove_channel_member.py +17 -0
- mcpscraper_memory/mcp_models/renew_connected_data_download.py +12 -0
- mcpscraper_memory/mcp_models/reply_message.py +21 -0
- mcpscraper_memory/mcp_models/report_artifact_read.py +14 -0
- mcpscraper_memory/mcp_models/resolve_memory_tags.py +16 -0
- mcpscraper_memory/mcp_models/resume_scheduled_action.py +17 -0
- mcpscraper_memory/mcp_models/revoke_chat_link.py +14 -0
- mcpscraper_memory/mcp_models/revoke_schedule_link.py +14 -0
- mcpscraper_memory/mcp_models/revoke_vault_app_link.py +14 -0
- mcpscraper_memory/mcp_models/revoke_webhook.py +16 -0
- mcpscraper_memory/mcp_models/route_memory.py +22 -0
- mcpscraper_memory/mcp_models/search_serp.py +20 -0
- mcpscraper_memory/mcp_models/set_agent_identity.py +16 -0
- mcpscraper_memory/mcp_models/set_schedule_defaults.py +16 -0
- mcpscraper_memory/mcp_models/set_schedule_entitlement.py +18 -0
- mcpscraper_memory/mcp_models/set_scheduled_action_connections.py +13 -0
- mcpscraper_memory/mcp_models/slack_send_message.py +14 -0
- mcpscraper_memory/mcp_models/storage_usage.py +19 -0
- mcpscraper_memory/mcp_models/table_create.py +19 -0
- mcpscraper_memory/mcp_models/table_delete_rows.py +17 -0
- mcpscraper_memory/mcp_models/table_describe.py +17 -0
- mcpscraper_memory/mcp_models/table_drop.py +16 -0
- mcpscraper_memory/mcp_models/table_insert_rows.py +17 -0
- mcpscraper_memory/mcp_models/table_list.py +14 -0
- mcpscraper_memory/mcp_models/table_query.py +22 -0
- mcpscraper_memory/mcp_models/temporal_recall.py +22 -0
- mcpscraper_memory/mcp_models/test_service_connection.py +13 -0
- mcpscraper_memory/mcp_models/trustpilot_reviews.py +13 -0
- mcpscraper_memory/mcp_models/upsert_memory_tag.py +19 -0
- mcpscraper_memory/mcp_models/validate_memory_write.py +22 -0
- mcpscraper_memory/mcp_models/video_analyze_start.py +21 -0
- mcpscraper_memory/mcp_models/video_analyze_status.py +22 -0
- mcpscraper_memory/mcp_models/video_frame_analysis.py +16 -0
- mcpscraper_memory/mcp_models/video_frame_analysis_status.py +12 -0
- mcpscraper_memory/mcp_models/workflow_artifact_read.py +14 -0
- mcpscraper_memory/mcp_models/workflow_list.py +12 -0
- mcpscraper_memory/mcp_models/workflow_run.py +14 -0
- mcpscraper_memory/mcp_models/workflow_status.py +12 -0
- mcpscraper_memory/mcp_models/workflow_step.py +12 -0
- mcpscraper_memory/mcp_models/workflow_suggest.py +19 -0
- mcpscraper_memory/mcp_models/youtube_harvest.py +15 -0
- mcpscraper_memory/mcp_models/youtube_transcribe.py +13 -0
- mcpscraper_memory/mcp_models/zoom_create_meeting.py +17 -0
- mcpscraper_memory/models/__init__.py +0 -0
- mcpscraper_memory/models/access_accept_share.py +19 -0
- mcpscraper_memory/models/access_approve_sender.py +18 -0
- mcpscraper_memory/models/access_decline_share.py +18 -0
- mcpscraper_memory/models/access_inbox_settings.py +18 -0
- mcpscraper_memory/models/access_invite_account.py +23 -0
- mcpscraper_memory/models/access_issue_key.py +28 -0
- mcpscraper_memory/models/access_list_approved_senders.py +18 -0
- mcpscraper_memory/models/access_list_keys.py +19 -0
- mcpscraper_memory/models/access_note_inbox.py +17 -0
- mcpscraper_memory/models/access_remove_approved_sender.py +19 -0
- mcpscraper_memory/models/access_revoke_key.py +19 -0
- mcpscraper_memory/models/access_revoke_share.py +18 -0
- mcpscraper_memory/models/access_set_scope.py +21 -0
- mcpscraper_memory/models/access_share_note.py +28 -0
- mcpscraper_memory/models/access_share_vault.py +22 -0
- mcpscraper_memory/models/access_swap_vault.py +19 -0
- mcpscraper_memory/models/access_switch_account.py +20 -0
- mcpscraper_memory/models/access_unlink_share.py +18 -0
- mcpscraper_memory/models/add_vault.py +20 -0
- mcpscraper_memory/models/cost_usage.py +30 -0
- mcpscraper_memory/models/create_channel.py +21 -0
- mcpscraper_memory/models/create_scheduled_action.py +27 -0
- mcpscraper_memory/models/create_secure_vault.py +19 -0
- mcpscraper_memory/models/create_webhook.py +21 -0
- mcpscraper_memory/models/delete_note.py +25 -0
- mcpscraper_memory/models/delete_scheduled_action.py +18 -0
- mcpscraper_memory/models/delete_vault.py +20 -0
- mcpscraper_memory/models/fact_history.py +20 -0
- mcpscraper_memory/models/get_chat_link.py +18 -0
- mcpscraper_memory/models/get_message_note.py +19 -0
- mcpscraper_memory/models/get_schedule_link.py +19 -0
- mcpscraper_memory/models/get_schedule_status.py +25 -0
- mcpscraper_memory/models/get_vault_contract.py +19 -0
- mcpscraper_memory/models/library_ingest.py +33 -0
- mcpscraper_memory/models/list_channel_members.py +20 -0
- mcpscraper_memory/models/list_channel_messages.py +19 -0
- mcpscraper_memory/models/list_memory_tags.py +18 -0
- mcpscraper_memory/models/list_scheduled_actions.py +17 -0
- mcpscraper_memory/models/list_shared_with_me.py +17 -0
- mcpscraper_memory/models/list_vaults.py +19 -0
- mcpscraper_memory/models/list_webhooks.py +17 -0
- mcpscraper_memory/models/memory_backlinks.py +20 -0
- mcpscraper_memory/models/memory_capture.py +33 -0
- mcpscraper_memory/models/memory_export.py +20 -0
- mcpscraper_memory/models/memory_get.py +20 -0
- mcpscraper_memory/models/memory_graph_path.py +23 -0
- mcpscraper_memory/models/memory_graph_universe.py +25 -0
- mcpscraper_memory/models/memory_list.py +22 -0
- mcpscraper_memory/models/memory_put.py +28 -0
- mcpscraper_memory/models/memory_questions.py +20 -0
- mcpscraper_memory/models/memory_search.py +24 -0
- mcpscraper_memory/models/memory_suggest.py +19 -0
- mcpscraper_memory/models/memory_upload.py +24 -0
- mcpscraper_memory/models/my_mentions.py +18 -0
- mcpscraper_memory/models/pause_scheduled_action.py +17 -0
- mcpscraper_memory/models/poll_channel.py +23 -0
- mcpscraper_memory/models/post_message.py +22 -0
- mcpscraper_memory/models/prepare_memory_write.py +28 -0
- mcpscraper_memory/models/propose_scheduled_action.py +21 -0
- mcpscraper_memory/models/provision_defaults.py +25 -0
- mcpscraper_memory/models/react_message.py +23 -0
- mcpscraper_memory/models/record_fact.py +24 -0
- mcpscraper_memory/models/remove_channel_member.py +19 -0
- mcpscraper_memory/models/reply_message.py +23 -0
- mcpscraper_memory/models/resolve_memory_tags.py +18 -0
- mcpscraper_memory/models/resume_scheduled_action.py +19 -0
- mcpscraper_memory/models/revoke_chat_link.py +17 -0
- mcpscraper_memory/models/revoke_schedule_link.py +17 -0
- mcpscraper_memory/models/revoke_webhook.py +18 -0
- mcpscraper_memory/models/route_memory.py +24 -0
- mcpscraper_memory/models/set_agent_identity.py +18 -0
- mcpscraper_memory/models/set_schedule_entitlement.py +20 -0
- mcpscraper_memory/models/storage_usage.py +22 -0
- mcpscraper_memory/models/table_create.py +21 -0
- mcpscraper_memory/models/table_delete_rows.py +19 -0
- mcpscraper_memory/models/table_describe.py +19 -0
- mcpscraper_memory/models/table_drop.py +18 -0
- mcpscraper_memory/models/table_insert_rows.py +19 -0
- mcpscraper_memory/models/table_list.py +17 -0
- mcpscraper_memory/models/table_query.py +24 -0
- mcpscraper_memory/models/temporal_recall.py +24 -0
- mcpscraper_memory/models/upsert_memory_tag.py +21 -0
- mcpscraper_memory/models/validate_memory_write.py +24 -0
- mcpscraper_memory/models/video_analyze_start.py +23 -0
- mcpscraper_memory/models/video_analyze_status.py +24 -0
- mcpscraper_memory_sdk-0.13.0.dist-info/METADATA +61 -0
- mcpscraper_memory_sdk-0.13.0.dist-info/RECORD +261 -0
- mcpscraper_memory_sdk-0.13.0.dist-info/WHEEL +4 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
from typing import Any, Literal
|
|
2
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class PrepareMemoryWriteInput(BaseModel):
|
|
6
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
7
|
+
|
|
8
|
+
title: str = Field(..., alias="title", description="")
|
|
9
|
+
content: str = Field(..., alias="content", description="")
|
|
10
|
+
source: str | None = Field(None, alias="source", description="")
|
|
11
|
+
type: str | None = Field(None, alias="type", description="")
|
|
12
|
+
vault: str | None = Field(None, alias="vault", description="")
|
|
13
|
+
tag_candidates: list[dict[str, Any]] | None = Field(None, alias="tagCandidates", description="")
|
|
14
|
+
max_links: int | None = Field(None, alias="maxLinks", description="")
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class PrepareMemoryWriteOutput(BaseModel):
|
|
18
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
19
|
+
|
|
20
|
+
ok: bool = Field(..., alias="ok", description="")
|
|
21
|
+
route: dict[str, Any] | None = Field(None, alias="route", description="")
|
|
22
|
+
contract: dict[str, Any] | None = Field(None, alias="contract", description="")
|
|
23
|
+
tag_resolutions: list[dict[str, Any]] | None = Field(None, alias="tagResolutions", description="")
|
|
24
|
+
link_opportunities: list[dict[str, Any]] | None = Field(None, alias="linkOpportunities", description="")
|
|
25
|
+
instructions: list[str] | None = Field(None, alias="instructions", description="")
|
|
26
|
+
error: str | None = Field(None, alias="error", description="")
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
from typing import Any, Literal
|
|
2
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class ProposeScheduledActionInput(BaseModel):
|
|
6
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
7
|
+
|
|
8
|
+
request: str = Field(..., alias="request", description="Freeform text describing what you want scheduled.")
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class ProposeScheduledActionOutput(BaseModel):
|
|
12
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
13
|
+
|
|
14
|
+
ok: bool = Field(..., alias="ok", description="")
|
|
15
|
+
description: str | None = Field(None, alias="description", description="Proposed description — edit freely before confirming.")
|
|
16
|
+
vault: str | None = Field(None, alias="vault", description="Proposed target vault.")
|
|
17
|
+
cadence: str | None = Field(None, alias="cadence", description="Proposed cadence: once, daily, weekly, or monthly.")
|
|
18
|
+
time_of_day: str | None = Field(None, alias="timeOfDay", description="Proposed 24-hour HH:MM run time, when the request named one.")
|
|
19
|
+
timezone: str | None = Field(None, alias="timezone", description="Proposed IANA timezone — from the request, or the account default when the request named a time without a zone.")
|
|
20
|
+
rationale: str | None = Field(None, alias="rationale", description="Why these choices were made — read this before confirming.")
|
|
21
|
+
error: str | None = Field(None, alias="error", description="")
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
from typing import Any, Literal
|
|
2
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class ProvisionDefaultsInput(BaseModel):
|
|
6
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
7
|
+
|
|
8
|
+
grantee_identity: str = Field(..., alias="granteeIdentity", description="Identity that should OWN the 14 default vaults (e.g. an email or user id).")
|
|
9
|
+
issue_key: bool | None = Field(None, alias="issueKey", description="When true, also issue a new API key for the identity entitled to all 14 vaults and return its secret once. Default false.")
|
|
10
|
+
plan: Literal["free", "pro", "team", "enterprise"] | None = Field(None, alias="plan", description="Subscription plan carried by the issued key. Optional; defaults to free. Only used when issueKey is true.")
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class ProvisionDefaultsOutput(BaseModel):
|
|
14
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
15
|
+
|
|
16
|
+
ok: bool = Field(..., alias="ok", description="True when provisioning succeeded; false on auth/scope error.")
|
|
17
|
+
identity: str | None = Field(None, alias="identity", description="Identity the vaults were provisioned for.")
|
|
18
|
+
created: list[str] | None = Field(None, alias="created", description="Vault names newly created on this call (empty when all 14 already existed).")
|
|
19
|
+
vaults: list[str] | None = Field(None, alias="vaults", description="All 14 default vault names the identity now owns.")
|
|
20
|
+
key_id: str | None = Field(None, alias="keyId", description="Stable id of the issued key. Present only when issueKey was true.")
|
|
21
|
+
secret: str | None = Field(None, alias="secret", description="The issued key secret — RETURNED ONCE. Present only when issueKey was true.")
|
|
22
|
+
plan: str | None = Field(None, alias="plan", description="Plan assigned to the issued key. Present only when issueKey was true.")
|
|
23
|
+
error: str | None = Field(None, alias="error", description="Human-readable failure reason when ok is false.")
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from typing import Any, Literal
|
|
2
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class QueryFanoutWorkflowInput(BaseModel):
|
|
6
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
7
|
+
|
|
8
|
+
session_id: str = Field(..., alias="session_id", description="Session id from browser_open. Must be on chatgpt.com or claude.ai, logged in via a saved hosted profile.")
|
|
9
|
+
prompt: str | None = Field(None, alias="prompt", description="Optional prompt to type and submit before capturing. Omit to passively capture a prompt the user just ran. Must trigger web search to produce a fan-out.")
|
|
10
|
+
wait_ms: int | None = Field(None, alias="wait_ms", description="How long to wait for the answer stream to finish. Defaults to 90000 when a prompt is sent, 8000 for passive capture.")
|
|
11
|
+
first_party_domain: str | None = Field(None, alias="first_party_domain", description="The brand/site being researched, e.g. example.com — sources on this domain are tagged First-party/vendor.")
|
|
12
|
+
reset: bool | None = Field(None, alias="reset", description="Clear any previously buffered stream for this page before capturing.")
|
|
13
|
+
export: bool | None = Field(None, alias="export", description="Write JSON/CSV/TSV/HTML exports to MCP_SCRAPER_OUTPUT_DIR/fanout, returning relative paths.")
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class QueryFanoutWorkflowOutput(BaseModel):
|
|
17
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
from typing import Any, Literal
|
|
2
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class RankTrackerWorkflowInput(BaseModel):
|
|
6
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
7
|
+
|
|
8
|
+
project_name: str | None = Field(None, alias="projectName", description="Optional name for the rank tracker project, client, or campaign.")
|
|
9
|
+
target_domain: str | None = Field(None, alias="targetDomain", description="Primary domain to track in organic results, AI Overview citations, and PAA sources.")
|
|
10
|
+
target_business_name: str | None = Field(None, alias="targetBusinessName", description="Primary Google Business Profile/brand name to match in Maps results. Required for Maps tracking.")
|
|
11
|
+
tracking_modes: list[Literal["maps", "organic", "ai_overview", "paa"]] | None = Field(None, alias="trackingModes", description="Rank tracker surfaces to build: maps, organic, ai_overview, paa.")
|
|
12
|
+
keywords: list[str] | None = Field(None, alias="keywords", description="Seed keywords or service queries to track. Leave empty to derive from user input downstream.")
|
|
13
|
+
locations: list[str] | None = Field(None, alias="locations", description="Markets, cities, ZIPs, or service areas to track, e.g. \"Denver, CO\".")
|
|
14
|
+
competitors: list[str] | None = Field(None, alias="competitors", description="Optional competitor domains or business names to persist as comparison targets.")
|
|
15
|
+
database: Literal["postgres", "neon", "supabase", "sqlite", "mysql"] | None = Field(None, alias="database", description="Database family to target when generating migrations.")
|
|
16
|
+
schedule_cadence: Literal["daily", "weekly", "monthly", "custom"] | None = Field(None, alias="scheduleCadence", description="Default recurring rank check cadence.")
|
|
17
|
+
custom_cron: str | None = Field(None, alias="customCron", description="Cron expression to use when scheduleCadence is custom.")
|
|
18
|
+
timezone: str | None = Field(None, alias="timezone", description="IANA timezone for scheduled rank checks.")
|
|
19
|
+
include_cron: bool | None = Field(None, alias="includeCron", description="Include a cron/heartbeat worker plan.")
|
|
20
|
+
include_dashboard: bool | None = Field(None, alias="includeDashboard", description="Include dashboard/reporting requirements.")
|
|
21
|
+
include_alerts: bool | None = Field(None, alias="includeAlerts", description="Include alert rules for rank movement and SERP feature changes.")
|
|
22
|
+
notes: str | None = Field(None, alias="notes", description="Extra product, client, stack, or hosting requirements.")
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class RankTrackerWorkflowOutput(BaseModel):
|
|
26
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
from typing import Any, Literal
|
|
2
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class ReactMessageInput(BaseModel):
|
|
6
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
7
|
+
|
|
8
|
+
vault: str = Field(..., alias="vault", description="The channel (vault) the message is in.")
|
|
9
|
+
message_id: str = Field(..., alias="messageId", description="The message or reply to react to (from post-message, reply-message, or list-channel-messages).")
|
|
10
|
+
emoji: str = Field(..., alias="emoji", description="The emoji to add or remove, e.g. \"👍\".")
|
|
11
|
+
remove: bool | None = Field(None, alias="remove", description="Set true to remove a reaction you previously added. Default false (add).")
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class ReactMessageOutput(BaseModel):
|
|
15
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
16
|
+
|
|
17
|
+
ok: bool = Field(..., alias="ok", description="True on success; false on auth/scope error.")
|
|
18
|
+
message_id: str | None = Field(None, alias="messageId", description="The message reacted to.")
|
|
19
|
+
emoji: str | None = Field(None, alias="emoji", description="The emoji applied or removed.")
|
|
20
|
+
removed: bool | None = Field(None, alias="removed", description="True if this call removed a reaction; false if it added one.")
|
|
21
|
+
error: str | None = Field(None, alias="error", description="Human-readable failure reason when ok is false.")
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
from typing import Any, Literal
|
|
2
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class ReadServiceConnectionInput(BaseModel):
|
|
6
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
7
|
+
|
|
8
|
+
connection_id: str = Field(..., alias="connectionId", description="A connectionId from list_service_connections.")
|
|
9
|
+
tool: str = Field(..., alias="tool", description="One of that connection's readTools (from list_service_connections). An unlisted tool name is rejected with the allowed list.")
|
|
10
|
+
args: dict[str, Any] | None = Field(None, alias="args", description="Arguments for the tool, if it needs any (e.g. a channel id, a date filter).")
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class ReadServiceConnectionOutput(BaseModel):
|
|
14
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
from typing import Any, Literal
|
|
2
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class RecordFactInput(BaseModel):
|
|
6
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
7
|
+
|
|
8
|
+
vault: str | None = Field(None, alias="vault", description="Vault to record the fact in. Optional; defaults to the session active vault, then the first vault the caller is entitled to.")
|
|
9
|
+
subject: str = Field(..., alias="subject", description="The thing the fact is about (e.g. \"db preference\"). Canonicalized (lowercased/trimmed) to a stable key.")
|
|
10
|
+
value: str = Field(..., alias="value", description="The current asserted value or conclusion for the subject (e.g. \"Postgres\").")
|
|
11
|
+
source: str | None = Field(None, alias="source", description="Where the fact came from: user / tool / chat / library:… . Optional; drives the source-priority precedence policy.")
|
|
12
|
+
confidence: float | None = Field(None, alias="confidence", description="Salience/confidence in 0..1 on write. Optional; defaults to 0.5.")
|
|
13
|
+
reason: str | None = Field(None, alias="reason", description="Why this assertion replaces the previous one — the audit reason recorded on the superseded fact. Optional; a default is used.")
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class RecordFactOutput(BaseModel):
|
|
17
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
18
|
+
|
|
19
|
+
ok: bool = Field(..., alias="ok", description="True when the fact was recorded (whether or not it superseded one); false on auth/scope/validation error.")
|
|
20
|
+
fact: dict[str, Any] | None = Field(None, alias="fact", description="The new (or refreshed) active fact. Present when ok is true.")
|
|
21
|
+
superseded: Any | None = Field(None, alias="superseded", description="The previously-active fact that this one replaced, with its resolution/precedence. Absent on an idempotent no-op or first assertion.")
|
|
22
|
+
error: str | None = Field(None, alias="error", description="Human-readable failure reason when ok is false.")
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
from typing import Any, Literal
|
|
2
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class RedditThreadInput(BaseModel):
|
|
6
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
7
|
+
|
|
8
|
+
url: str = Field(..., alias="url", description="A reddit.com thread/post URL (www, old, new Reddit, or redd.it).")
|
|
9
|
+
max_comments: int | None = Field(None, alias="maxComments", description="Optional cap on comments returned. Omit to return all captured comments.")
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class RedditThreadOutput(BaseModel):
|
|
13
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from typing import Any, Literal
|
|
2
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class RemoveChannelMemberInput(BaseModel):
|
|
6
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
7
|
+
|
|
8
|
+
vault: str = Field(..., alias="vault", description="The vault (channel) to remove the member from. You must own it.")
|
|
9
|
+
identity: str = Field(..., alias="identity", description="The member to remove.")
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class RemoveChannelMemberOutput(BaseModel):
|
|
13
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
14
|
+
|
|
15
|
+
ok: bool = Field(..., alias="ok", description="True on success; false on auth/scope/ownership error.")
|
|
16
|
+
removed: bool | None = Field(None, alias="removed", description="True if a membership was found and removed; false if they were not a member.")
|
|
17
|
+
error: str | None = Field(None, alias="error", description="Human-readable failure reason when ok is false.")
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
from typing import Any, Literal
|
|
2
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class RenewConnectedDataDownloadInput(BaseModel):
|
|
6
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
7
|
+
|
|
8
|
+
artifact_id: str = Field(..., alias="artifactId", description="Private artifactId returned by export_connected_service_data or export_search_console_table_data.")
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class RenewConnectedDataDownloadOutput(BaseModel):
|
|
12
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
from typing import Any, Literal
|
|
2
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class ReplyMessageInput(BaseModel):
|
|
6
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
7
|
+
|
|
8
|
+
vault: str = Field(..., alias="vault", description="The channel (vault) the parent message is in.")
|
|
9
|
+
parent_message_id: str = Field(..., alias="parentMessageId", description="The top-level message to reply under (messageId from post-message or list-channel-messages).")
|
|
10
|
+
content: str = Field(..., alias="content", description="The reply text.")
|
|
11
|
+
attach_note: dict[str, Any] | None = Field(None, alias="attachNote", description="Attach one of your own notes to this reply, auto-shared with every current channel member. Optional.")
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class ReplyMessageOutput(BaseModel):
|
|
15
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
16
|
+
|
|
17
|
+
ok: bool = Field(..., alias="ok", description="True when the reply was posted; false on auth/scope/lookup error.")
|
|
18
|
+
message_id: str | None = Field(None, alias="messageId", description="Path-style identifier for this reply (e.g. for react-message).")
|
|
19
|
+
posted_at: str | None = Field(None, alias="postedAt", description="ISO-8601 timestamp the reply was posted.")
|
|
20
|
+
attached_note: dict[str, Any] | None = Field(None, alias="attachedNote", description="Present when attachNote was given and the share succeeded.")
|
|
21
|
+
error: str | None = Field(None, alias="error", description="Human-readable failure reason when ok is false.")
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
from typing import Any, Literal
|
|
2
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class ReportArtifactReadInput(BaseModel):
|
|
6
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
7
|
+
|
|
8
|
+
artifact_id: str = Field(..., alias="artifactId", description="Artifact id returned inline by a tool whose result was too large to inline. Use only a returned artifactId; do not construct one yourself.")
|
|
9
|
+
offset: int | None = Field(None, alias="offset", description="Byte offset to start reading from. Pass the previous call's nextOffset to continue.")
|
|
10
|
+
max_bytes: int | None = Field(None, alias="maxBytes", description="Maximum bytes of artifact text to return in this window.")
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class ReportArtifactReadOutput(BaseModel):
|
|
14
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from typing import Any, Literal
|
|
2
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class ResolveMemoryTagsInput(BaseModel):
|
|
6
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
7
|
+
|
|
8
|
+
candidates: list[dict[str, Any]] = Field(..., alias="candidates", description="")
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class ResolveMemoryTagsOutput(BaseModel):
|
|
12
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
13
|
+
|
|
14
|
+
ok: bool = Field(..., alias="ok", description="")
|
|
15
|
+
resolutions: list[dict[str, Any]] | None = Field(None, alias="resolutions", description="")
|
|
16
|
+
error: str | None = Field(None, alias="error", description="")
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from typing import Any, Literal
|
|
2
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class ResumeScheduledActionInput(BaseModel):
|
|
6
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
7
|
+
|
|
8
|
+
id: str = Field(..., alias="id", description="The scheduled action id.")
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class ResumeScheduledActionOutput(BaseModel):
|
|
12
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
13
|
+
|
|
14
|
+
ok: bool = Field(..., alias="ok", description="")
|
|
15
|
+
next_run_at: str | None = Field(None, alias="nextRunAt", description="")
|
|
16
|
+
code: str | None = Field(None, alias="code", description="Machine-readable denial code when the action cannot be resumed.")
|
|
17
|
+
error: str | None = Field(None, alias="error", description="")
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
from typing import Any, Literal
|
|
2
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class RevokeChatLinkInput(BaseModel):
|
|
6
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class RevokeChatLinkOutput(BaseModel):
|
|
10
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
11
|
+
|
|
12
|
+
ok: bool = Field(..., alias="ok", description="True on success; false on auth error.")
|
|
13
|
+
revoked: bool | None = Field(None, alias="revoked", description="True if a link existed and was revoked; false if there was none to revoke.")
|
|
14
|
+
error: str | None = Field(None, alias="error", description="Human-readable failure reason when ok is false.")
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
from typing import Any, Literal
|
|
2
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class RevokeScheduleLinkInput(BaseModel):
|
|
6
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class RevokeScheduleLinkOutput(BaseModel):
|
|
10
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
11
|
+
|
|
12
|
+
ok: bool = Field(..., alias="ok", description="True on success; false on auth error.")
|
|
13
|
+
revoked: bool | None = Field(None, alias="revoked", description="True if a link existed and was revoked; false if there was none to revoke.")
|
|
14
|
+
error: str | None = Field(None, alias="error", description="Human-readable failure reason when ok is false.")
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
from typing import Any, Literal
|
|
2
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class RevokeVaultAppLinkInput(BaseModel):
|
|
6
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class RevokeVaultAppLinkOutput(BaseModel):
|
|
10
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
11
|
+
|
|
12
|
+
ok: bool = Field(..., alias="ok", description="True when the request succeeded.")
|
|
13
|
+
revoked: bool | None = Field(None, alias="revoked", description="True when an active Vault App link was revoked.")
|
|
14
|
+
error: str | None = Field(None, alias="error", description="Human-readable error when the request cannot be completed.")
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from typing import Any, Literal
|
|
2
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class RevokeWebhookInput(BaseModel):
|
|
6
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
7
|
+
|
|
8
|
+
id: str = Field(..., alias="id", description="Webhook id, from list-webhooks.")
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class RevokeWebhookOutput(BaseModel):
|
|
12
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
13
|
+
|
|
14
|
+
ok: bool = Field(..., alias="ok", description="")
|
|
15
|
+
revoked: bool | None = Field(None, alias="revoked", description="")
|
|
16
|
+
error: str | None = Field(None, alias="error", description="")
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
from typing import Any, Literal
|
|
2
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class RouteMemoryInput(BaseModel):
|
|
6
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
7
|
+
|
|
8
|
+
title: str = Field(..., alias="title", description="")
|
|
9
|
+
content: str = Field(..., alias="content", description="")
|
|
10
|
+
type: str | None = Field(None, alias="type", description="")
|
|
11
|
+
source: str | None = Field(None, alias="source", description="")
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class RouteMemoryOutput(BaseModel):
|
|
15
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
16
|
+
|
|
17
|
+
ok: bool = Field(..., alias="ok", description="")
|
|
18
|
+
vault: str | None = Field(None, alias="vault", description="")
|
|
19
|
+
folder: str | None = Field(None, alias="folder", description="")
|
|
20
|
+
reason: str | None = Field(None, alias="reason", description="")
|
|
21
|
+
contract: dict[str, Any] | None = Field(None, alias="contract", description="")
|
|
22
|
+
error: str | None = Field(None, alias="error", description="")
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
from typing import Any, Literal
|
|
2
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class SearchSerpInput(BaseModel):
|
|
6
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
7
|
+
|
|
8
|
+
query: str = Field(..., alias="query", description="The search query. KEEP the place in the query text for localized results (e.g. \"best dentist Brooklyn NY\") and also set location — city-in-query is what localizes reliably.")
|
|
9
|
+
location: str | None = Field(None, alias="location", description="City, region, or country for geo signals. Set alongside city-in-query wording; alone it does NOT reliably localize.")
|
|
10
|
+
gl: str | None = Field(None, alias="gl", description="Google country code inferred from location or user language.")
|
|
11
|
+
hl: str | None = Field(None, alias="hl", description="Google interface/content language inferred from user request.")
|
|
12
|
+
device: Literal["desktop", "mobile"] | None = Field(None, alias="device", description="SERP device context. Use mobile only for mobile rankings.")
|
|
13
|
+
proxy_mode: Literal["location", "configured", "none"] | None = Field(None, alias="proxyMode", description="Leave unset (clean egress). Do NOT set \"location\" just because a city was named — that comes from city-in-query wording. \"location\" forces residential geo-IP for rank-tracking fidelity, is frequently CAPTCHA-blocked, and accepts failures.")
|
|
14
|
+
proxy_zip: str | None = Field(None, alias="proxyZip", description="US ZIP for residential geo-IP targeting. Only meaningful with proxyMode \"location\".")
|
|
15
|
+
debug: bool | None = Field(None, alias="debug", description="Include sanitized diagnostics for debugging localization, CAPTCHA, or proxy behavior.")
|
|
16
|
+
pages: int | None = Field(None, alias="pages", description="Number of result pages to fetch (1–2).")
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class SearchSerpOutput(BaseModel):
|
|
20
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from typing import Any, Literal
|
|
2
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class SetAgentIdentityInput(BaseModel):
|
|
6
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
7
|
+
|
|
8
|
+
is_agent: bool = Field(..., alias="isAgent", description="true to mark this identity as an AI agent; false to unmark it.")
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class SetAgentIdentityOutput(BaseModel):
|
|
12
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
13
|
+
|
|
14
|
+
ok: bool = Field(..., alias="ok", description="True on success; false on auth error.")
|
|
15
|
+
is_agent: bool | None = Field(None, alias="isAgent", description="The flag now in effect.")
|
|
16
|
+
error: str | None = Field(None, alias="error", description="Human-readable failure reason when ok is false.")
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from typing import Any, Literal
|
|
2
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class SetScheduleDefaultsInput(BaseModel):
|
|
6
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
7
|
+
|
|
8
|
+
default_timezone: Any = Field(..., alias="defaultTimezone", description="IANA timezone name, e.g. \"America/Denver\". null clears the default (new schedules fall back to UTC).")
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class SetScheduleDefaultsOutput(BaseModel):
|
|
12
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
13
|
+
|
|
14
|
+
ok: bool = Field(..., alias="ok", description="")
|
|
15
|
+
default_timezone: Any | None = Field(None, alias="defaultTimezone", description="The default timezone now in effect; null means UTC.")
|
|
16
|
+
error: str | None = Field(None, alias="error", description="")
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
from typing import Any, Literal
|
|
2
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class SetScheduleEntitlementInput(BaseModel):
|
|
6
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
7
|
+
|
|
8
|
+
grantee_identity: str = Field(..., alias="granteeIdentity", description="Identity whose scheduling entitlement is being set (e.g. an email).")
|
|
9
|
+
enabled: bool | None = Field(None, alias="enabled", description="Historical entitlement value for migration/recovery only. Omit to preserve the stored value.")
|
|
10
|
+
quota_per_period: float | None = Field(None, alias="quotaPerPeriod", description="Historical monthly quota for migration/recovery only. Omit to preserve the stored value.")
|
|
11
|
+
mcp_scraper_api_key: str | None = Field(None, alias="mcpScraperApiKey", description="The identity's mcp-scraper API key, stored encrypted, used to reach mcp-scraper tools during scheduled-action execution.")
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class SetScheduleEntitlementOutput(BaseModel):
|
|
15
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
16
|
+
|
|
17
|
+
ok: bool = Field(..., alias="ok", description="True when the entitlement was set; false on auth/scope error.")
|
|
18
|
+
error: str | None = Field(None, alias="error", description="Human-readable failure reason when ok is false.")
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
from typing import Any, Literal
|
|
2
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class SetScheduledActionConnectionsInput(BaseModel):
|
|
6
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
7
|
+
|
|
8
|
+
schedule_action_id: str = Field(..., alias="scheduleActionId", description="A scheduled action id returned by create-scheduled-action or list-scheduled-actions.")
|
|
9
|
+
connections: list[dict[str, Any]] = Field(..., alias="connections", description="Exact connection and tool grants for this schedule. Pass an empty array to remove every external-service grant.")
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class SetScheduledActionConnectionsOutput(BaseModel):
|
|
13
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
from typing import Any, Literal
|
|
2
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class SlackSendMessageInput(BaseModel):
|
|
6
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
7
|
+
|
|
8
|
+
connection_id: str = Field(..., alias="connectionId", description="A Slack connectionId from list_service_connections, with actionsEnabled true.")
|
|
9
|
+
channel: str = Field(..., alias="channel", description="Slack channel ID to send to, e.g. \"C1234567890\". Get this from the connection's own read tools, not guessed.")
|
|
10
|
+
text: str = Field(..., alias="text", description="Message text to send.")
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class SlackSendMessageOutput(BaseModel):
|
|
14
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
from typing import Any, Literal
|
|
2
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class StorageUsageInput(BaseModel):
|
|
6
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class StorageUsageOutput(BaseModel):
|
|
10
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
11
|
+
|
|
12
|
+
ok: bool = Field(..., alias="ok", description="True when usage was computed; false on an auth/scope error.")
|
|
13
|
+
total_bytes: float | None = Field(None, alias="totalBytes", description="Total stored bytes across all the caller vaults. Present when ok is true.")
|
|
14
|
+
total_gb: float | None = Field(None, alias="totalGb", description="Total stored size in decimal GB (bytes / 1e9), rounded to 2 decimals. Present when ok is true.")
|
|
15
|
+
quota_bytes: Any | None = Field(None, alias="quotaBytes", description="Storage quota in bytes for the caller plan. Null when the plan is unlimited. Present when ok is true.")
|
|
16
|
+
quota_gb: Any | None = Field(None, alias="quotaGb", description="Storage quota in decimal GB, rounded to 2 decimals. Null when the plan is unlimited. Present when ok is true.")
|
|
17
|
+
unlimited: bool | None = Field(None, alias="unlimited", description="True when the caller plan is unlimited (no storage ceiling). Render \"Unlimited\" instead of a quota figure.")
|
|
18
|
+
per_vault: list[dict[str, Any]] | None = Field(None, alias="perVault", description="Per-vault storage breakdown for the caller vaults. Present when ok is true.")
|
|
19
|
+
error: str | None = Field(None, alias="error", description="Human-readable failure reason when ok is false.")
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
from typing import Any, Literal
|
|
2
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class TableCreateInput(BaseModel):
|
|
6
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
7
|
+
|
|
8
|
+
table_name: str = Field(..., alias="tableName", description="Table name: lowercase letters, numbers, underscores, starting with a letter (e.g. rank_tracker).")
|
|
9
|
+
columns: list[dict[str, Any]] = Field(..., alias="columns", description="Columns to create, in addition to the automatic id/created_at/updated_at.")
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class TableCreateOutput(BaseModel):
|
|
13
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
14
|
+
|
|
15
|
+
ok: bool = Field(..., alias="ok", description="True on success; false on auth/scope/validation error.")
|
|
16
|
+
table_name: str | None = Field(None, alias="tableName", description="The table name.")
|
|
17
|
+
created: bool | None = Field(None, alias="created", description="True if the table was newly created; false if it already existed.")
|
|
18
|
+
columns: list[dict[str, Any]] | None = Field(None, alias="columns", description="The columns requested (existing tables are not altered to match).")
|
|
19
|
+
error: str | None = Field(None, alias="error", description="Human-readable failure reason when ok is false.")
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from typing import Any, Literal
|
|
2
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class TableDeleteRowsInput(BaseModel):
|
|
6
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
7
|
+
|
|
8
|
+
table_name: str = Field(..., alias="tableName", description="Table name, from table-list.")
|
|
9
|
+
filters: list[dict[str, Any]] = Field(..., alias="filters", description="Filters to AND together; rows matching all of them are deleted.")
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class TableDeleteRowsOutput(BaseModel):
|
|
13
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
14
|
+
|
|
15
|
+
ok: bool = Field(..., alias="ok", description="True on success; false on auth/scope/validation error.")
|
|
16
|
+
deleted: float | None = Field(None, alias="deleted", description="Number of rows deleted.")
|
|
17
|
+
error: str | None = Field(None, alias="error", description="Human-readable failure reason when ok is false.")
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from typing import Any, Literal
|
|
2
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class TableDescribeInput(BaseModel):
|
|
6
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
7
|
+
|
|
8
|
+
table_name: str = Field(..., alias="tableName", description="Table name, from table-list.")
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class TableDescribeOutput(BaseModel):
|
|
12
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
13
|
+
|
|
14
|
+
ok: bool = Field(..., alias="ok", description="True on success; false on auth or not-found error.")
|
|
15
|
+
table_name: str | None = Field(None, alias="tableName", description="The table name.")
|
|
16
|
+
columns: list[dict[str, Any]] | None = Field(None, alias="columns", description="Column names and their Postgres types, in table order.")
|
|
17
|
+
error: str | None = Field(None, alias="error", description="Human-readable failure reason when ok is false.")
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from typing import Any, Literal
|
|
2
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class TableDropInput(BaseModel):
|
|
6
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
7
|
+
|
|
8
|
+
table_name: str = Field(..., alias="tableName", description="Table name to permanently delete, from table-list.")
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class TableDropOutput(BaseModel):
|
|
12
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
13
|
+
|
|
14
|
+
ok: bool = Field(..., alias="ok", description="True on success; false on auth/scope error.")
|
|
15
|
+
dropped: bool | None = Field(None, alias="dropped", description="True if the table existed and was dropped; false if it did not exist.")
|
|
16
|
+
error: str | None = Field(None, alias="error", description="Human-readable failure reason when ok is false.")
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from typing import Any, Literal
|
|
2
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class TableInsertRowsInput(BaseModel):
|
|
6
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
7
|
+
|
|
8
|
+
table_name: str = Field(..., alias="tableName", description="Table name, from table-list.")
|
|
9
|
+
rows: list[dict[str, Any]] = Field(..., alias="rows", description="Rows to insert, each an object of column name to value.")
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class TableInsertRowsOutput(BaseModel):
|
|
13
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
14
|
+
|
|
15
|
+
ok: bool = Field(..., alias="ok", description="True on success; false on auth/scope/validation error.")
|
|
16
|
+
inserted: float | None = Field(None, alias="inserted", description="Number of rows inserted.")
|
|
17
|
+
error: str | None = Field(None, alias="error", description="Human-readable failure reason when ok is false.")
|