intentkit 0.6.0.dev14__py3-none-any.whl → 0.6.0.dev16__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.

Potentially problematic release.


This version of intentkit might be problematic. Click here for more details.

intentkit/__init__.py CHANGED
@@ -3,7 +3,7 @@
3
3
  A powerful platform for building AI agents with blockchain and cryptocurrency capabilities.
4
4
  """
5
5
 
6
- __version__ = "0.6.0-dev.14"
6
+ __version__ = "0.6.0-dev.16"
7
7
  __author__ = "hyacinthus"
8
8
  __email__ = "hyacinthus@gmail.com"
9
9
 
@@ -535,6 +535,10 @@
535
535
  "title": "System",
536
536
  "$ref": "../skills/system/schema.json"
537
537
  },
538
+ "http": {
539
+ "title": "HTTP Client",
540
+ "$ref": "../skills/http/schema.json"
541
+ },
538
542
  "web_scraper": {
539
543
  "title": "Web Scraper & Content Indexing",
540
544
  "$ref": "../skills/web_scraper/schema.json"
@@ -567,6 +571,10 @@
567
571
  "title": "Slack",
568
572
  "$ref": "../skills/slack/schema.json"
569
573
  },
574
+ "supabase": {
575
+ "title": "Supabase",
576
+ "$ref": "../skills/supabase/schema.json"
577
+ },
570
578
  "venice_audio": {
571
579
  "title": "Venice Audio",
572
580
  "$ref": "../skills/venice_audio/schema.json"
@@ -0,0 +1,78 @@
1
+ # HTTP Client Skills
2
+
3
+ This skill category provides HTTP client functionality for making web requests using the httpx async client library.
4
+
5
+ ## Available Skills
6
+
7
+ ### http_get
8
+ Make HTTP GET requests to fetch data from web APIs and websites.
9
+
10
+ **Parameters:**
11
+ - `url` (string, required): The URL to send the GET request to
12
+ - `headers` (dict, optional): Custom headers to include in the request
13
+ - `params` (dict, optional): Query parameters to include in the request
14
+ - `timeout` (float, optional): Request timeout in seconds (default: 30)
15
+
16
+ **Example usage:**
17
+ ```
18
+ Fetch data from https://api.example.com/users with timeout of 10 seconds
19
+ ```
20
+
21
+ ### http_post
22
+ Make HTTP POST requests to send data to web APIs and submit forms.
23
+
24
+ **Parameters:**
25
+ - `url` (string, required): The URL to send the POST request to
26
+ - `data` (dict or string, optional): The data to send in the request body
27
+ - `headers` (dict, optional): Custom headers to include in the request
28
+ - `params` (dict, optional): Query parameters to include in the request
29
+ - `timeout` (float, optional): Request timeout in seconds (default: 30)
30
+
31
+ **Example usage:**
32
+ ```
33
+ Send a POST request to https://api.example.com/users with JSON data {"name": "John", "email": "john@example.com"}
34
+ ```
35
+
36
+ ### http_put
37
+ Make HTTP PUT requests to update or replace data on web APIs.
38
+
39
+ **Parameters:**
40
+ - `url` (string, required): The URL to send the PUT request to
41
+ - `data` (dict or string, optional): The data to send in the request body
42
+ - `headers` (dict, optional): Custom headers to include in the request
43
+ - `params` (dict, optional): Query parameters to include in the request
44
+ - `timeout` (float, optional): Request timeout in seconds (default: 30)
45
+
46
+ **Example usage:**
47
+ ```
48
+ Update user data at https://api.example.com/users/123 with {"name": "Jane Doe"}
49
+ ```
50
+
51
+ ## Features
52
+
53
+ - **Async Support**: All HTTP operations are asynchronous using httpx
54
+ - **Automatic JSON Handling**: Dictionary data is automatically sent as JSON with proper Content-Type headers
55
+ - **Error Handling**: Comprehensive error handling for timeouts, HTTP errors, and connection issues
56
+ - **Flexible Data Types**: Support for both JSON (dict) and raw string data in POST/PUT requests
57
+ - **Custom Headers**: Support for custom headers in all request types
58
+ - **Query Parameters**: Support for URL query parameters
59
+ - **Configurable Timeouts**: Customizable request timeouts
60
+
61
+ ## Configuration
62
+
63
+ Each skill can be configured with one of three states:
64
+ - `disabled`: Skill is not available
65
+ - `public`: Available to both agent owner and all users
66
+ - `private`: Available only to the agent owner
67
+
68
+ ## Natural Language Usage
69
+
70
+ These skills are designed to work seamlessly with natural language instructions:
71
+
72
+ - "Get the weather data from the API"
73
+ - "Send a POST request to create a new user"
74
+ - "Update the user profile using PUT request"
75
+ - "Fetch the latest news from the RSS feed"
76
+ - "Submit the form data to the webhook"
77
+
78
+ The AI agent will automatically select the appropriate HTTP method and construct the proper request based on your natural language description.
@@ -0,0 +1,100 @@
1
+ """HTTP client skills."""
2
+
3
+ import logging
4
+ from typing import TypedDict
5
+
6
+ from intentkit.abstracts.skill import SkillStoreABC
7
+ from intentkit.skills.base import SkillConfig, SkillState
8
+ from intentkit.skills.http.base import HttpBaseTool
9
+ from intentkit.skills.http.get import HttpGet
10
+ from intentkit.skills.http.post import HttpPost
11
+ from intentkit.skills.http.put import HttpPut
12
+
13
+ # Cache skills at the system level, because they are stateless
14
+ _cache: dict[str, HttpBaseTool] = {}
15
+
16
+ logger = logging.getLogger(__name__)
17
+
18
+
19
+ class SkillStates(TypedDict):
20
+ """Type definition for HTTP skill states."""
21
+
22
+ http_get: SkillState
23
+ http_post: SkillState
24
+ http_put: SkillState
25
+
26
+
27
+ class Config(SkillConfig):
28
+ """Configuration for HTTP client skills."""
29
+
30
+ states: SkillStates
31
+
32
+
33
+ async def get_skills(
34
+ config: "Config",
35
+ is_private: bool,
36
+ store: SkillStoreABC,
37
+ **_,
38
+ ) -> list[HttpBaseTool]:
39
+ """Get all HTTP client skills.
40
+
41
+ Args:
42
+ config: The configuration for HTTP client skills.
43
+ is_private: Whether to include private skills.
44
+ store: The skill store for persisting data.
45
+
46
+ Returns:
47
+ A list of HTTP client skills.
48
+ """
49
+ available_skills = []
50
+
51
+ # Include skills based on their state
52
+ for skill_name, state in config["states"].items():
53
+ if state == "disabled":
54
+ continue
55
+ elif state == "public" or (state == "private" and is_private):
56
+ available_skills.append(skill_name)
57
+
58
+ # Get each skill using the cached getter
59
+ result = []
60
+ for name in available_skills:
61
+ skill = get_http_skill(name, store)
62
+ if skill:
63
+ result.append(skill)
64
+ return result
65
+
66
+
67
+ def get_http_skill(
68
+ name: str,
69
+ store: SkillStoreABC,
70
+ ) -> HttpBaseTool:
71
+ """Get an HTTP client skill by name.
72
+
73
+ Args:
74
+ name: The name of the skill to get
75
+ store: The skill store for persisting data
76
+
77
+ Returns:
78
+ The requested HTTP client skill
79
+ """
80
+ if name == "http_get":
81
+ if name not in _cache:
82
+ _cache[name] = HttpGet(
83
+ skill_store=store,
84
+ )
85
+ return _cache[name]
86
+ elif name == "http_post":
87
+ if name not in _cache:
88
+ _cache[name] = HttpPost(
89
+ skill_store=store,
90
+ )
91
+ return _cache[name]
92
+ elif name == "http_put":
93
+ if name not in _cache:
94
+ _cache[name] = HttpPut(
95
+ skill_store=store,
96
+ )
97
+ return _cache[name]
98
+ else:
99
+ logger.warning(f"Unknown HTTP skill: {name}")
100
+ return None
@@ -0,0 +1,21 @@
1
+ from typing import Type
2
+
3
+ from pydantic import BaseModel, Field
4
+
5
+ from intentkit.abstracts.skill import SkillStoreABC
6
+ from intentkit.skills.base import IntentKitSkill
7
+
8
+
9
+ class HttpBaseTool(IntentKitSkill):
10
+ """Base class for HTTP client tools."""
11
+
12
+ name: str = Field(description="The name of the tool")
13
+ description: str = Field(description="A description of what the tool does")
14
+ args_schema: Type[BaseModel]
15
+ skill_store: SkillStoreABC = Field(
16
+ description="The skill store for persisting data"
17
+ )
18
+
19
+ @property
20
+ def category(self) -> str:
21
+ return "http"
@@ -0,0 +1,96 @@
1
+ import logging
2
+ from typing import Any, Dict, Optional, Type
3
+
4
+ import httpx
5
+ from langchain_core.runnables import RunnableConfig
6
+ from pydantic import BaseModel, Field
7
+
8
+ from intentkit.skills.http.base import HttpBaseTool
9
+
10
+ logger = logging.getLogger(__name__)
11
+
12
+
13
+ class HttpGetInput(BaseModel):
14
+ """Input for HTTP GET request."""
15
+
16
+ url: str = Field(description="The URL to send the GET request to")
17
+ headers: Optional[Dict[str, str]] = Field(
18
+ description="Optional headers to include in the request",
19
+ default=None,
20
+ )
21
+ params: Optional[Dict[str, Any]] = Field(
22
+ description="Optional query parameters to include in the request",
23
+ default=None,
24
+ )
25
+ timeout: Optional[float] = Field(
26
+ description="Request timeout in seconds (default: 30)",
27
+ default=30.0,
28
+ )
29
+
30
+
31
+ class HttpGet(HttpBaseTool):
32
+ """Tool for making HTTP GET requests.
33
+
34
+ This tool allows you to make HTTP GET requests to any URL with optional
35
+ headers and query parameters. It returns the response content as a string.
36
+
37
+ Attributes:
38
+ name: The name of the tool.
39
+ description: A description of what the tool does.
40
+ args_schema: The schema for the tool's input arguments.
41
+ """
42
+
43
+ name: str = "http_get"
44
+ description: str = (
45
+ "Make an HTTP GET request to a specified URL. "
46
+ "You can include custom headers and query parameters. "
47
+ "Returns the response content as text. "
48
+ "Use this when you need to fetch data from web APIs or websites."
49
+ )
50
+ args_schema: Type[BaseModel] = HttpGetInput
51
+
52
+ async def _arun(
53
+ self,
54
+ url: str,
55
+ headers: Optional[Dict[str, str]] = None,
56
+ params: Optional[Dict[str, Any]] = None,
57
+ timeout: float = 30.0,
58
+ config: RunnableConfig = None,
59
+ **kwargs,
60
+ ) -> str:
61
+ """Implementation of the HTTP GET request.
62
+
63
+ Args:
64
+ url: The URL to send the GET request to.
65
+ headers: Optional headers to include in the request.
66
+ params: Optional query parameters to include in the request.
67
+ timeout: Request timeout in seconds.
68
+ config: The runnable config (unused but required by interface).
69
+
70
+ Returns:
71
+ str: The response content as text, or error message if request fails.
72
+ """
73
+ try:
74
+ async with httpx.AsyncClient() as client:
75
+ response = await client.get(
76
+ url=url,
77
+ headers=headers,
78
+ params=params,
79
+ timeout=timeout,
80
+ )
81
+
82
+ # Raise an exception for bad status codes
83
+ response.raise_for_status()
84
+
85
+ # Return response content
86
+ return f"Status: {response.status_code}\nContent: {response.text}"
87
+
88
+ except httpx.TimeoutException:
89
+ return f"Error: Request to {url} timed out after {timeout} seconds"
90
+ except httpx.HTTPStatusError as e:
91
+ return f"Error: HTTP {e.response.status_code} - {e.response.text}"
92
+ except httpx.RequestError as e:
93
+ return f"Error: Failed to connect to {url} - {str(e)}"
94
+ except Exception as e:
95
+ logger.error(f"Unexpected error in HTTP GET request: {e}")
96
+ return f"Error: Unexpected error occurred - {str(e)}"
@@ -0,0 +1,15 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="100" height="100">
2
+ <!-- Background -->
3
+ <rect width="100" height="100" fill="#2563eb" rx="15"/>
4
+
5
+ <!-- HTTP text -->
6
+ <text x="50" y="35" font-family="Arial, sans-serif" font-size="14" font-weight="bold" fill="white" text-anchor="middle">HTTP</text>
7
+
8
+ <!-- Arrow indicating request/response -->
9
+ <path d="M20 50 L35 45 L35 48 L65 48 L65 45 L80 50 L65 55 L65 52 L35 52 L35 55 Z" fill="white"/>
10
+
11
+ <!-- Globe/network icon -->
12
+ <circle cx="50" cy="75" r="12" fill="none" stroke="white" stroke-width="2"/>
13
+ <path d="M38 75 Q50 65 62 75 M38 75 Q50 85 62 75" fill="none" stroke="white" stroke-width="1.5"/>
14
+ <line x1="50" y1="63" x2="50" y2="87" stroke="white" stroke-width="1.5"/>
15
+ </svg>
@@ -0,0 +1,113 @@
1
+ import logging
2
+ from typing import Any, Dict, Optional, Type, Union
3
+
4
+ import httpx
5
+ from langchain_core.runnables import RunnableConfig
6
+ from pydantic import BaseModel, Field
7
+
8
+ from intentkit.skills.http.base import HttpBaseTool
9
+
10
+ logger = logging.getLogger(__name__)
11
+
12
+
13
+ class HttpPostInput(BaseModel):
14
+ """Input for HTTP POST request."""
15
+
16
+ url: str = Field(description="The URL to send the POST request to")
17
+ data: Optional[Union[Dict[str, Any], str]] = Field(
18
+ description="The data to send in the request body. Can be a dictionary (will be sent as JSON) or a string",
19
+ default=None,
20
+ )
21
+ headers: Optional[Dict[str, str]] = Field(
22
+ description="Optional headers to include in the request",
23
+ default=None,
24
+ )
25
+ params: Optional[Dict[str, Any]] = Field(
26
+ description="Optional query parameters to include in the request",
27
+ default=None,
28
+ )
29
+ timeout: Optional[float] = Field(
30
+ description="Request timeout in seconds (default: 30)",
31
+ default=30.0,
32
+ )
33
+
34
+
35
+ class HttpPost(HttpBaseTool):
36
+ """Tool for making HTTP POST requests.
37
+
38
+ This tool allows you to make HTTP POST requests to any URL with optional
39
+ headers, query parameters, and request body data. It returns the response content as a string.
40
+
41
+ Attributes:
42
+ name: The name of the tool.
43
+ description: A description of what the tool does.
44
+ args_schema: The schema for the tool's input arguments.
45
+ """
46
+
47
+ name: str = "http_post"
48
+ description: str = (
49
+ "Make an HTTP POST request to a specified URL. "
50
+ "You can include custom headers, query parameters, and request body data. "
51
+ "Data can be provided as a dictionary (sent as JSON) or as a string. "
52
+ "Returns the response content as text. "
53
+ "Use this when you need to send data to web APIs or submit forms."
54
+ )
55
+ args_schema: Type[BaseModel] = HttpPostInput
56
+
57
+ async def _arun(
58
+ self,
59
+ url: str,
60
+ data: Optional[Union[Dict[str, Any], str]] = None,
61
+ headers: Optional[Dict[str, str]] = None,
62
+ params: Optional[Dict[str, Any]] = None,
63
+ timeout: float = 30.0,
64
+ config: RunnableConfig = None,
65
+ **kwargs,
66
+ ) -> str:
67
+ """Implementation of the HTTP POST request.
68
+
69
+ Args:
70
+ url: The URL to send the POST request to.
71
+ data: The data to send in the request body.
72
+ headers: Optional headers to include in the request.
73
+ params: Optional query parameters to include in the request.
74
+ timeout: Request timeout in seconds.
75
+ config: The runnable config (unused but required by interface).
76
+
77
+ Returns:
78
+ str: The response content as text, or error message if request fails.
79
+ """
80
+ try:
81
+ # Prepare headers
82
+ request_headers = headers or {}
83
+
84
+ # If data is a dictionary, send as JSON
85
+ if isinstance(data, dict):
86
+ if "content-type" not in {k.lower() for k in request_headers.keys()}:
87
+ request_headers["Content-Type"] = "application/json"
88
+
89
+ async with httpx.AsyncClient() as client:
90
+ response = await client.post(
91
+ url=url,
92
+ json=data if isinstance(data, dict) else None,
93
+ content=data if isinstance(data, str) else None,
94
+ headers=request_headers,
95
+ params=params,
96
+ timeout=timeout,
97
+ )
98
+
99
+ # Raise an exception for bad status codes
100
+ response.raise_for_status()
101
+
102
+ # Return response content
103
+ return f"Status: {response.status_code}\nContent: {response.text}"
104
+
105
+ except httpx.TimeoutException:
106
+ return f"Error: Request to {url} timed out after {timeout} seconds"
107
+ except httpx.HTTPStatusError as e:
108
+ return f"Error: HTTP {e.response.status_code} - {e.response.text}"
109
+ except httpx.RequestError as e:
110
+ return f"Error: Failed to connect to {url} - {str(e)}"
111
+ except Exception as e:
112
+ logger.error(f"Unexpected error in HTTP POST request: {e}")
113
+ return f"Error: Unexpected error occurred - {str(e)}"
@@ -0,0 +1,113 @@
1
+ import logging
2
+ from typing import Any, Dict, Optional, Type, Union
3
+
4
+ import httpx
5
+ from langchain_core.runnables import RunnableConfig
6
+ from pydantic import BaseModel, Field
7
+
8
+ from intentkit.skills.http.base import HttpBaseTool
9
+
10
+ logger = logging.getLogger(__name__)
11
+
12
+
13
+ class HttpPutInput(BaseModel):
14
+ """Input for HTTP PUT request."""
15
+
16
+ url: str = Field(description="The URL to send the PUT request to")
17
+ data: Optional[Union[Dict[str, Any], str]] = Field(
18
+ description="The data to send in the request body. Can be a dictionary (will be sent as JSON) or a string",
19
+ default=None,
20
+ )
21
+ headers: Optional[Dict[str, str]] = Field(
22
+ description="Optional headers to include in the request",
23
+ default=None,
24
+ )
25
+ params: Optional[Dict[str, Any]] = Field(
26
+ description="Optional query parameters to include in the request",
27
+ default=None,
28
+ )
29
+ timeout: Optional[float] = Field(
30
+ description="Request timeout in seconds (default: 30)",
31
+ default=30.0,
32
+ )
33
+
34
+
35
+ class HttpPut(HttpBaseTool):
36
+ """Tool for making HTTP PUT requests.
37
+
38
+ This tool allows you to make HTTP PUT requests to any URL with optional
39
+ headers, query parameters, and request body data. It returns the response content as a string.
40
+
41
+ Attributes:
42
+ name: The name of the tool.
43
+ description: A description of what the tool does.
44
+ args_schema: The schema for the tool's input arguments.
45
+ """
46
+
47
+ name: str = "http_put"
48
+ description: str = (
49
+ "Make an HTTP PUT request to a specified URL. "
50
+ "You can include custom headers, query parameters, and request body data. "
51
+ "Data can be provided as a dictionary (sent as JSON) or as a string. "
52
+ "Returns the response content as text. "
53
+ "Use this when you need to update or replace data on web APIs."
54
+ )
55
+ args_schema: Type[BaseModel] = HttpPutInput
56
+
57
+ async def _arun(
58
+ self,
59
+ url: str,
60
+ data: Optional[Union[Dict[str, Any], str]] = None,
61
+ headers: Optional[Dict[str, str]] = None,
62
+ params: Optional[Dict[str, Any]] = None,
63
+ timeout: float = 30.0,
64
+ config: RunnableConfig = None,
65
+ **kwargs,
66
+ ) -> str:
67
+ """Implementation of the HTTP PUT request.
68
+
69
+ Args:
70
+ url: The URL to send the PUT request to.
71
+ data: The data to send in the request body.
72
+ headers: Optional headers to include in the request.
73
+ params: Optional query parameters to include in the request.
74
+ timeout: Request timeout in seconds.
75
+ config: The runnable config (unused but required by interface).
76
+
77
+ Returns:
78
+ str: The response content as text, or error message if request fails.
79
+ """
80
+ try:
81
+ # Prepare headers
82
+ request_headers = headers or {}
83
+
84
+ # If data is a dictionary, send as JSON
85
+ if isinstance(data, dict):
86
+ if "content-type" not in {k.lower() for k in request_headers.keys()}:
87
+ request_headers["Content-Type"] = "application/json"
88
+
89
+ async with httpx.AsyncClient() as client:
90
+ response = await client.put(
91
+ url=url,
92
+ json=data if isinstance(data, dict) else None,
93
+ content=data if isinstance(data, str) else None,
94
+ headers=request_headers,
95
+ params=params,
96
+ timeout=timeout,
97
+ )
98
+
99
+ # Raise an exception for bad status codes
100
+ response.raise_for_status()
101
+
102
+ # Return response content
103
+ return f"Status: {response.status_code}\nContent: {response.text}"
104
+
105
+ except httpx.TimeoutException:
106
+ return f"Error: Request to {url} timed out after {timeout} seconds"
107
+ except httpx.HTTPStatusError as e:
108
+ return f"Error: HTTP {e.response.status_code} - {e.response.text}"
109
+ except httpx.RequestError as e:
110
+ return f"Error: Failed to connect to {url} - {str(e)}"
111
+ except Exception as e:
112
+ logger.error(f"Unexpected error in HTTP PUT request: {e}")
113
+ return f"Error: Unexpected error occurred - {str(e)}"
@@ -0,0 +1,80 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "type": "object",
4
+ "title": "HTTP Client",
5
+ "description": "HTTP client skills for making web requests",
6
+ "x-icon": "https://ai.service.crestal.dev/skills/http/http.svg",
7
+ "x-tags": [
8
+ "HTTP",
9
+ "Web",
10
+ "API",
11
+ "Client"
12
+ ],
13
+ "properties": {
14
+ "enabled": {
15
+ "type": "boolean",
16
+ "title": "Enabled",
17
+ "description": "Whether this skill is enabled",
18
+ "default": false
19
+ },
20
+ "states": {
21
+ "type": "object",
22
+ "properties": {
23
+ "http_get": {
24
+ "type": "string",
25
+ "title": "HTTP GET",
26
+ "enum": [
27
+ "disabled",
28
+ "public",
29
+ "private"
30
+ ],
31
+ "x-enum-title": [
32
+ "Disabled",
33
+ "Agent Owner + All Users",
34
+ "Agent Owner Only"
35
+ ],
36
+ "description": "Make HTTP GET requests to fetch data from web APIs and websites",
37
+ "default": "private"
38
+ },
39
+ "http_post": {
40
+ "type": "string",
41
+ "title": "HTTP POST",
42
+ "enum": [
43
+ "disabled",
44
+ "public",
45
+ "private"
46
+ ],
47
+ "x-enum-title": [
48
+ "Disabled",
49
+ "Agent Owner + All Users",
50
+ "Agent Owner Only"
51
+ ],
52
+ "description": "Make HTTP POST requests to send data to web APIs and submit forms",
53
+ "default": "private"
54
+ },
55
+ "http_put": {
56
+ "type": "string",
57
+ "title": "HTTP PUT",
58
+ "enum": [
59
+ "disabled",
60
+ "public",
61
+ "private"
62
+ ],
63
+ "x-enum-title": [
64
+ "Disabled",
65
+ "Agent Owner + All Users",
66
+ "Agent Owner Only"
67
+ ],
68
+ "description": "Make HTTP PUT requests to update or replace data on web APIs",
69
+ "default": "private"
70
+ }
71
+ },
72
+ "description": "States for each HTTP client skill (disabled, public, or private)"
73
+ }
74
+ },
75
+ "required": [
76
+ "states",
77
+ "enabled"
78
+ ],
79
+ "additionalProperties": true
80
+ }
@@ -3,7 +3,7 @@
3
3
  "type": "object",
4
4
  "title": "Supabase",
5
5
  "description": "Integration with Supabase backend-as-a-service platform enabling database operations and Edge Function invocations",
6
- "x-icon": "https://ai.service.crestal.dev/skills/supabase/supabase.png",
6
+ "x-icon": "https://ai.service.crestal.dev/skills/supabase/supabase.svg",
7
7
  "x-tags": [
8
8
  "Database",
9
9
  "Backend"
@@ -132,19 +132,21 @@
132
132
  "supabase_url": {
133
133
  "type": "string",
134
134
  "title": "Supabase URL",
135
- "description": "Your Supabase project URL (e.g., https://your-project.supabase.co)",
135
+ "description": "Your Supabase project URL (e.g., https://your-project.supabase.co). You can find it in Project Settings -> Data API",
136
+ "x-link": "https://supabase.com/",
136
137
  "format": "uri"
137
138
  },
138
139
  "supabase_key": {
139
140
  "type": "string",
140
- "title": "Supabase Anon Key",
141
- "description": "Your Supabase project's anon/public key",
141
+ "title": "Supabase API Key",
142
+ "description": "Your Supabase project's API key. You can find it in Project Settings -> API Keys",
143
+ "x-sensitive": true,
142
144
  "format": "password"
143
145
  },
144
146
  "public_write_tables": {
145
147
  "type": "string",
146
148
  "title": "Public Write Tables",
147
- "description": "Add tables split by comma, when insert,update,upsert,delete enabled in public use, they can only use tables from this list. When skills in owner mode, this list will not limit skills.",
149
+ "description": "Add tables separated by commas. When insert, update, upsert, or delete operations are enabled for public use, only tables from this list can be used. This list does not restrict the skills executed by the owner or in autonomous chat.",
148
150
  "default": ""
149
151
  }
150
152
  },
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: intentkit
3
- Version: 0.6.0.dev14
3
+ Version: 0.6.0.dev16
4
4
  Summary: Intent-based AI Agent Platform - Core Package
5
5
  Project-URL: Homepage, https://github.com/crestal-network/intentkit
6
6
  Project-URL: Repository, https://github.com/crestal-network/intentkit
@@ -1,4 +1,4 @@
1
- intentkit/__init__.py,sha256=LhNMnq9_G5I1QbAtU1o7psnvVpY3Y_HcLh55YeU8ZJk,385
1
+ intentkit/__init__.py,sha256=hUWe3DJJ3b06wVI7VvqEEKBqFWh0FfoB-KjBqef10fM,385
2
2
  intentkit/abstracts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
3
  intentkit/abstracts/agent.py,sha256=108gb5W8Q1Sy4G55F2_ZFv2-_CnY76qrBtpIr0Oxxqk,1489
4
4
  intentkit/abstracts/api.py,sha256=ZUc24vaQvQVbbjznx7bV0lbbQxdQPfEV8ZxM2R6wZWo,166
@@ -23,7 +23,7 @@ intentkit/core/prompt.py,sha256=9jxRYUUqSdBj8bdmCUAa-5yTbiQFVInOJsDqbAuUcfo,3512
23
23
  intentkit/core/skill.py,sha256=fFM_HVc8Qam2zICb_dH3nRcInEXdtfgzFnL0vvMNz2Y,3830
24
24
  intentkit/models/agent.py,sha256=5amc4rjPHmZp7a4Z6chomDiFHaxgyr0Md5mKeI90jWQ,57487
25
25
  intentkit/models/agent_data.py,sha256=h__b3658ZOclV1Pwpp3UCCu0Nt49CKYfc2JZKG1dKeE,26929
26
- intentkit/models/agent_schema.json,sha256=SCJZOKh1sYaFLUqyW85C7LE8TPWlPA5yk1vVTgjVOYY,21499
26
+ intentkit/models/agent_schema.json,sha256=M5MMMAVNJnp6kE8hjti6D0WLdFIGtIdF66_Cg6nZfJU,21724
27
27
  intentkit/models/app_setting.py,sha256=WgW-9t0EbiVemRLrVaC6evdfRU5QFSDK0elsnUU5nIo,5008
28
28
  intentkit/models/base.py,sha256=o-zRjVrak-f5Jokdvj8BjLm8gcC3yYiYMCTLegwT2lA,185
29
29
  intentkit/models/chat.py,sha256=H4fKBgrseOaFIp83sYYiuyYpYufQAvnoca6V4TVbibE,18013
@@ -215,6 +215,14 @@ intentkit/skills/heurist/image_generation_cyber_realistic_xl.py,sha256=-FHi3omvW
215
215
  intentkit/skills/heurist/image_generation_flux_1_dev.py,sha256=9vDGm8ASQmDPh8omKhZJ5RGcJdj7ROr6_G3JDzx5FTU,5726
216
216
  intentkit/skills/heurist/image_generation_sdxl.py,sha256=D3H3gNysOnZrTZ9EhbQxZXJ1qBsAitHjr2E-VdJUXHU,5706
217
217
  intentkit/skills/heurist/schema.json,sha256=0CJES27ZxA3Qp0r9vWzc6YI1gNOhCYuw3MSrEhZYt5U,5792
218
+ intentkit/skills/http/README.md,sha256=vGsKtAm8mgwPSCZKrpWdMPHARbiP3WMtTcV8H2cK_vg,3040
219
+ intentkit/skills/http/__init__.py,sha256=xcd4PhtDuQSBR7gPWKeRuLSEiCer-6zs2q1XiDE4KEA,2570
220
+ intentkit/skills/http/base.py,sha256=c4IsTaByJgBtaLVnVxkNEUZYBSVFoTlM2Yv-kG7KYgk,591
221
+ intentkit/skills/http/get.py,sha256=F5FxeSfuqo4HgpimTyvxHYbbwaCZU-fAxY0lvkTfMdE,3343
222
+ intentkit/skills/http/http.svg,sha256=VMPivLGjOH2zaxH9mvn7r-T9Z-Td6eO04xRNYQJcAGM,767
223
+ intentkit/skills/http/post.py,sha256=d5Nol7HW-r5Ie8yfsmf7lDg-3aPtKAqcShV-5HSvVxA,4268
224
+ intentkit/skills/http/put.py,sha256=iO4lWSh2KciUaX_bUU1oatrjHJ_dcKgDq1G6bcdRGqU,4252
225
+ intentkit/skills/http/schema.json,sha256=zryLRzGm4_BpBZmzlmNlyHmWrPFu3bdv0yx0sqrCwa4,2074
218
226
  intentkit/skills/lifi/README.md,sha256=7Cjn6-VDzXIeNNlt8aXrwErEOk22ofPzk4hCubyT3vQ,8355
219
227
  intentkit/skills/lifi/__init__.py,sha256=m7fim2BabigaWsv1VNr0TtVlvkNbHwvFvohPZTQHw_8,4944
220
228
  intentkit/skills/lifi/base.py,sha256=8MrF3vJmh0ZmVHoGZ51K73u0o9AljVV1bch6ji9rS5E,584
@@ -278,7 +286,7 @@ intentkit/skills/supabase/delete_data.py,sha256=MptS05UgRSy5C3Ndlbzd23kFj7P_IuOe
278
286
  intentkit/skills/supabase/fetch_data.py,sha256=OGe8rfeFDmRDiI0gOIwL-z_5c6NwQFh9fw6p5BsyMFU,4735
279
287
  intentkit/skills/supabase/insert_data.py,sha256=B423NtKmUW-MzWki9akglvzii98dStHie9ssAYrlwzo,2229
280
288
  intentkit/skills/supabase/invoke_function.py,sha256=i3AzobqaaEy6P-_QdGjzhyD2UiC1qipOyCKu8hD0rwg,2522
281
- intentkit/skills/supabase/schema.json,sha256=Sax0p0coNRg_AU7QSaMwWmI2KWqtH0lq5eYOlSStH9I,4638
289
+ intentkit/skills/supabase/schema.json,sha256=dAKAyp_L94YSh9jj2KCYLJE7XDZQvcrBx-Jud-Shs7Y,4845
282
290
  intentkit/skills/supabase/supabase.svg,sha256=65_80QCtJiKKV4EAuny_xbOD5JlTONEiq9xqO00hDtM,1107
283
291
  intentkit/skills/supabase/update_data.py,sha256=GM-JtpQHcZbX3fezjWLgdia3zZDKfgz6ZOhHfYSWXI0,3984
284
292
  intentkit/skills/supabase/upsert_data.py,sha256=STKu3e0n2krpzTOznJPV9hw2__GL6e1foIyNo3hh_xU,2499
@@ -382,7 +390,7 @@ intentkit/utils/random.py,sha256=DymMxu9g0kuQLgJUqalvgksnIeLdS-v0aRk5nQU0mLI,452
382
390
  intentkit/utils/s3.py,sha256=9trQNkKQ5VgxWsewVsV8Y0q_pXzGRvsCYP8xauyUYkg,8549
383
391
  intentkit/utils/slack_alert.py,sha256=s7UpRgyzLW7Pbmt8cKzTJgMA9bm4EP-1rQ5KXayHu6E,2264
384
392
  intentkit/utils/tx.py,sha256=2yLLGuhvfBEY5n_GJ8wmIWLCzn0FsYKv5kRNzw_sLUI,1454
385
- intentkit-0.6.0.dev14.dist-info/METADATA,sha256=ATHQPhj3Rq-fbTtUIN8Wvmi8jzMDDxrPpyDKme0XQjA,7286
386
- intentkit-0.6.0.dev14.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
387
- intentkit-0.6.0.dev14.dist-info/licenses/LICENSE,sha256=Bln6DhK-LtcO4aXy-PBcdZv2f24MlJFm_qn222biJtE,1071
388
- intentkit-0.6.0.dev14.dist-info/RECORD,,
393
+ intentkit-0.6.0.dev16.dist-info/METADATA,sha256=w1LdgxgEmc6a3V6c0DEnlOOgRStElpNRjhNUg_gcF2I,7286
394
+ intentkit-0.6.0.dev16.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
395
+ intentkit-0.6.0.dev16.dist-info/licenses/LICENSE,sha256=Bln6DhK-LtcO4aXy-PBcdZv2f24MlJFm_qn222biJtE,1071
396
+ intentkit-0.6.0.dev16.dist-info/RECORD,,