smooth-py 0.2.1.post0.dev20250911__tar.gz → 0.2.2.post0__tar.gz

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 smooth-py might be problematic. Click here for more details.

@@ -1,10 +1,10 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: smooth-py
3
- Version: 0.2.1.post0.dev20250911
3
+ Version: 0.2.2.post0
4
4
  Summary:
5
5
  Author: Luca Pinchetti
6
6
  Author-email: luca@circlemind.co
7
- Requires-Python: >=3.10
7
+ Requires-Python: >=3.10,<4.0
8
8
  Classifier: Programming Language :: Python :: 3
9
9
  Classifier: Programming Language :: Python :: 3.10
10
10
  Classifier: Programming Language :: Python :: 3.11
@@ -14,6 +14,7 @@ Provides-Extra: mcp
14
14
  Requires-Dist: fastmcp (>=2.0.0,<3.0.0) ; extra == "mcp"
15
15
  Requires-Dist: httpx (>=0.28.1,<0.29.0)
16
16
  Requires-Dist: pydantic (>=2.11.7,<3.0.0)
17
+ Requires-Dist: requests (>=2.32.5,<3.0.0)
17
18
  Description-Content-Type: text/markdown
18
19
 
19
20
  # Smooth Python SDK
@@ -1,15 +1,16 @@
1
1
  [project]
2
2
  name = "smooth-py"
3
- version = "0.2.1.post0.dev20250911"
3
+ version = "0.2.2.post0"
4
4
  description = ""
5
5
  authors = [
6
6
  {name = "Luca Pinchetti",email = "luca@circlemind.co"}
7
7
  ]
8
8
  readme = "README.md"
9
- requires-python = ">=3.10"
9
+ requires-python = ">=3.10,<4.0"
10
10
  dependencies = [
11
11
  "pydantic (>=2.11.7,<3.0.0)",
12
- "httpx (>=0.28.1,<0.29.0)"
12
+ "httpx (>=0.28.1,<0.29.0)",
13
+ "requests (>=2.32.5,<3.0.0)"
13
14
  ]
14
15
 
15
16
  [project.optional-dependencies]
@@ -53,9 +53,14 @@ class TaskRequest(BaseModel):
53
53
  )
54
54
  url: str | None = Field(
55
55
  default=None,
56
- description="(Optional) The starting URL for the task. If not provided, the agent will infer it from the task.",
56
+ description="The starting URL for the task. If not provided, the agent will infer it from the task.",
57
57
  )
58
- metadata: dict[str, str | int | float | bool] | None = Field(default=None, description="Optional metadata for the task.")
58
+ metadata: dict[str, str | int | float | bool] | None = Field(
59
+ default=None, description="A dictionary containing variables or parameters that will be passed to the agent."
60
+ )
61
+ files: dict[str, str] | None = Field(
62
+ default=None, description="A dictionary of file names to their url or base64-encoded content to be used by the agent"
63
+ ),
59
64
  agent: Literal["smooth"] = Field(default="smooth", description="The agent to use for the task.")
60
65
  max_steps: int = Field(default=32, ge=2, le=128, description="Maximum number of steps the agent can take (min 2, max 128).")
61
66
  device: Literal["desktop", "mobile"] = Field(default="mobile", description="Device type for the task. Default is mobile.")
@@ -298,6 +303,7 @@ class SmoothClient(BaseClient):
298
303
  response_model: dict[str, Any] | Type[BaseModel] | None = None,
299
304
  url: str | None = None,
300
305
  metadata: dict[str, str | int | float | bool] | None = None,
306
+ files: dict[str, str] | None = None,
301
307
  agent: Literal["smooth"] = "smooth",
302
308
  max_steps: int = 32,
303
309
  device: Literal["desktop", "mobile"] = "mobile",
@@ -317,7 +323,8 @@ class SmoothClient(BaseClient):
317
323
  task: The task to run.
318
324
  response_model: If provided, the schema describing the desired output structure.
319
325
  url: The starting URL for the task. If not provided, the agent will infer it from the task.
320
- metadata: Optional metadata for the task.
326
+ metadata: A dictionary containing variables or parameters that will be passed to the agent.
327
+ files: A dictionary of file names to their url or base64-encoded content to be used by the agent.
321
328
  agent: The agent to use for the task.
322
329
  max_steps: Maximum number of steps the agent can take (max 64).
323
330
  device: Device type for the task. Default is mobile.
@@ -339,6 +346,7 @@ class SmoothClient(BaseClient):
339
346
  response_model=response_model.model_json_schema() if issubclass(response_model, BaseModel) else response_model,
340
347
  url=url,
341
348
  metadata=metadata,
349
+ files=files,
342
350
  agent=agent,
343
351
  max_steps=max_steps,
344
352
  device=device,
@@ -516,6 +524,7 @@ class SmoothAsyncClient(BaseClient):
516
524
  response_model: dict[str, Any] | Type[BaseModel] | None = None,
517
525
  url: str | None = None,
518
526
  metadata: dict[str, str | int | float | bool] | None = None,
527
+ files: dict[str, str] | None = None,
519
528
  agent: Literal["smooth"] = "smooth",
520
529
  max_steps: int = 32,
521
530
  device: Literal["desktop", "mobile"] = "mobile",
@@ -535,7 +544,8 @@ class SmoothAsyncClient(BaseClient):
535
544
  task: The task to run.
536
545
  response_model: If provided, the schema describing the desired output structure.
537
546
  url: The starting URL for the task. If not provided, the agent will infer it from the task.
538
- metadata: Optional metadata for the task.
547
+ metadata: A dictionary containing variables or parameters that will be passed to the agent.
548
+ files: A dictionary of file names to their url or base64-encoded content to be used by the agent.
539
549
  agent: The agent to use for the task.
540
550
  max_steps: Maximum number of steps the agent can take (max 64).
541
551
  device: Device type for the task. Default is mobile.
@@ -559,6 +569,7 @@ class SmoothAsyncClient(BaseClient):
559
569
  response_model=response_model.model_json_schema() if issubclass(response_model, BaseModel) else response_model,
560
570
  url=url,
561
571
  metadata=metadata,
572
+ files=files,
562
573
  agent=agent,
563
574
  max_steps=max_steps,
564
575
  device=device,