squidcloud-client 1.0.483__tar.gz → 1.0.485__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.
Files changed (17) hide show
  1. {squidcloud_client-1.0.483 → squidcloud_client-1.0.485}/PKG-INFO +22 -22
  2. {squidcloud_client-1.0.483 → squidcloud_client-1.0.485}/pyproject.toml +1 -1
  3. {squidcloud_client-1.0.483 → squidcloud_client-1.0.485}/setup.cfg +4 -4
  4. {squidcloud_client-1.0.483 → squidcloud_client-1.0.485}/squidcloud/__init__.py +2 -0
  5. {squidcloud_client-1.0.483 → squidcloud_client-1.0.485}/squidcloud/ai.py +14 -1
  6. {squidcloud_client-1.0.483 → squidcloud_client-1.0.485}/squidcloud/http.py +3 -8
  7. {squidcloud_client-1.0.483 → squidcloud_client-1.0.485}/squidcloud/types.py +30 -1
  8. {squidcloud_client-1.0.483 → squidcloud_client-1.0.485}/squidcloud_client.egg-info/PKG-INFO +22 -22
  9. {squidcloud_client-1.0.483 → squidcloud_client-1.0.485}/squidcloud/client.py +0 -0
  10. {squidcloud_client-1.0.483 → squidcloud_client-1.0.485}/squidcloud/extraction.py +0 -0
  11. {squidcloud_client-1.0.483 → squidcloud_client-1.0.485}/squidcloud/matchmaking.py +0 -0
  12. {squidcloud_client-1.0.483 → squidcloud_client-1.0.485}/squidcloud/py.typed +0 -0
  13. {squidcloud_client-1.0.483 → squidcloud_client-1.0.485}/squidcloud/web.py +0 -0
  14. {squidcloud_client-1.0.483 → squidcloud_client-1.0.485}/squidcloud_client.egg-info/SOURCES.txt +0 -0
  15. {squidcloud_client-1.0.483 → squidcloud_client-1.0.485}/squidcloud_client.egg-info/dependency_links.txt +0 -0
  16. {squidcloud_client-1.0.483 → squidcloud_client-1.0.485}/squidcloud_client.egg-info/requires.txt +0 -0
  17. {squidcloud_client-1.0.483 → squidcloud_client-1.0.485}/squidcloud_client.egg-info/top_level.txt +0 -0
@@ -1,22 +1,22 @@
1
- Metadata-Version: 2.4
2
- Name: squidcloud-client
3
- Version: 1.0.483
4
- Summary: Squid Cloud Python client SDK
5
- Author-email: Squid Cloud <support@squid.cloud>
6
- License: MIT
7
- Project-URL: Homepage, https://squid.cloud
8
- Project-URL: Documentation, https://docs.squid.cloud
9
- Project-URL: Repository, https://github.com/squid-cloud/squid-cloud
10
- Classifier: Programming Language :: Python :: 3
11
- Classifier: Programming Language :: Python :: 3.11
12
- Classifier: Programming Language :: Python :: 3.12
13
- Classifier: Programming Language :: Python :: 3.13
14
- Classifier: License :: OSI Approved :: MIT License
15
- Classifier: Operating System :: OS Independent
16
- Classifier: Typing :: Typed
17
- Requires-Python: >=3.11
18
- Requires-Dist: httpx>=0.27.0
19
- Provides-Extra: dev
20
- Requires-Dist: pytest>=7.0; extra == "dev"
21
- Requires-Dist: pytest-asyncio>=0.21; extra == "dev"
22
- Requires-Dist: ruff>=0.11.0; extra == "dev"
1
+ Metadata-Version: 2.4
2
+ Name: squidcloud-client
3
+ Version: 1.0.485
4
+ Summary: Squid Cloud Python client SDK
5
+ Author-email: Squid Cloud <support@squid.cloud>
6
+ License: MIT
7
+ Project-URL: Homepage, https://squid.cloud
8
+ Project-URL: Documentation, https://docs.squid.cloud
9
+ Project-URL: Repository, https://github.com/squid-cloud/squid-cloud
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Programming Language :: Python :: 3.11
12
+ Classifier: Programming Language :: Python :: 3.12
13
+ Classifier: Programming Language :: Python :: 3.13
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Operating System :: OS Independent
16
+ Classifier: Typing :: Typed
17
+ Requires-Python: >=3.11
18
+ Requires-Dist: httpx>=0.27.0
19
+ Provides-Extra: dev
20
+ Requires-Dist: pytest>=7.0; extra == "dev"
21
+ Requires-Dist: pytest-asyncio>=0.21; extra == "dev"
22
+ Requires-Dist: ruff>=0.11.0; extra == "dev"
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "squidcloud-client"
7
- version = "1.0.483"
7
+ version = "1.0.485"
8
8
  description = "Squid Cloud Python client SDK"
9
9
  requires-python = ">=3.11"
10
10
  license = {text = "MIT"}
@@ -1,4 +1,4 @@
1
- [egg_info]
2
- tag_build =
3
- tag_date = 0
4
-
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -35,6 +35,7 @@ from squidcloud.matchmaking import MatchmakingClient
35
35
  from squidcloud.types import (
36
36
  AiAgent,
37
37
  AiAgentExecutionPlanOptions,
38
+ AiAgentMcpServerConfig,
38
39
  AiAgentMemoryOptions,
39
40
  AiAgentResponseFormat,
40
41
  AiAudioCreateSpeechOptions,
@@ -92,6 +93,7 @@ __all__ = [
92
93
  "AgentClient",
93
94
  "AiAgent",
94
95
  "AiAgentExecutionPlanOptions",
96
+ "AiAgentMcpServerConfig",
95
97
  "AiAgentMemoryOptions",
96
98
  "AiAgentResponseFormat",
97
99
  "AiAudioCreateSpeechOptions",
@@ -12,6 +12,7 @@ if TYPE_CHECKING:
12
12
  from squidcloud.http import HttpTransport
13
13
  from squidcloud.types import (
14
14
  AiAgent,
15
+ AiAgentMcpServerConfig,
15
16
  AiAudioCreateSpeechOptions,
16
17
  AiChatModelSelection,
17
18
  AiChatOptions,
@@ -231,7 +232,8 @@ class AgentClient:
231
232
 
232
233
  Returns:
233
234
  An ``AiAgent`` dict with keys: ``id``, ``createdAt``, ``updatedAt``,
234
- ``description``, ``isPublic``, ``auditLog``, ``options``, ``apiKey``.
235
+ ``description``, ``isPublic``, ``auditLog``, ``auditLogFullContext``,
236
+ ``options``, ``apiKey``.
235
237
  Returns ``None`` if the agent does not exist.
236
238
  """
237
239
  return await self._http.get(f"squid-api/v1/ai/agent/get/{self._agent_id}")
@@ -242,7 +244,9 @@ class AgentClient:
242
244
  description: str | None = None,
243
245
  is_public: bool | None = None,
244
246
  audit_log: bool | None = None,
247
+ audit_log_full_context: bool | None = None,
245
248
  api_key: str | None = None,
249
+ mcp_server: AiAgentMcpServerConfig | None = None,
246
250
  options: AiChatOptions | None = None,
247
251
  ) -> None:
248
252
  """Create or update the agent.
@@ -254,7 +258,12 @@ class AgentClient:
254
258
  description: A description of the agent's purpose or capabilities.
255
259
  is_public: Whether the agent is publicly accessible (default ``False``).
256
260
  audit_log: Enable audit logging for the agent's activities.
261
+ audit_log_full_context: Record the full agent context (system
262
+ instructions and retrieved knowledge-base content) in the audit
263
+ log; requires ``audit_log``.
257
264
  api_key: Optional API key used specifically for this agent.
265
+ mcp_server: Configuration for exposing the agent as an MCP server
266
+ at ``/mcp/<agentId>``. See :class:`AiAgentMcpServerConfig`.
258
267
  options: Default chat options applied to every request unless
259
268
  overridden per-call. See :class:`AiChatOptions`.
260
269
 
@@ -272,8 +281,12 @@ class AgentClient:
272
281
  body["isPublic"] = is_public
273
282
  if audit_log is not None:
274
283
  body["auditLog"] = audit_log
284
+ if audit_log_full_context is not None:
285
+ body["auditLogFullContext"] = audit_log_full_context
275
286
  if api_key is not None:
276
287
  body["apiKey"] = api_key
288
+ if mcp_server is not None:
289
+ body["mcpServer"] = mcp_server
277
290
  if options is not None:
278
291
  body["options"] = options
279
292
  await self._http.post("squid-api/v1/ai/agent/upsert", body)
@@ -19,7 +19,6 @@ _KOTLIN_CONTROLLERS = frozenset(
19
19
  "auth",
20
20
  "mutation",
21
21
  "native-query",
22
- "notification",
23
22
  "query",
24
23
  "queue",
25
24
  ]
@@ -33,14 +32,10 @@ def _is_local(region: str) -> bool:
33
32
  def _is_kotlin_path(path: str) -> bool:
34
33
  """Returns True if the given path is served by Kotlin core in local dev (port 8001).
35
34
 
36
- Mirrors ``isKotlinPath()`` from ``internal-common/src/utils/http.ts``. Encodes the
37
- WebSocket split: ``/ws/squidlet`` stays on Kotlin while other ``/ws/*`` paths
38
- (general, localdev) are owned by the TypeScript core.
35
+ Mirrors ``isKotlinPath()`` from ``internal-common/src/utils/http.ts``: every ``/ws/*``
36
+ path is served by the TypeScript core (port 8000), so no controller name is special-cased.
39
37
  """
40
- segments = path.split("/")
41
- first = segments[0]
42
- if first == "ws":
43
- return len(segments) > 1 and segments[1] == "squidlet"
38
+ first = path.lstrip("/").split("/")[0]
44
39
  return first in _KOTLIN_CONTROLLERS
45
40
 
46
41
 
@@ -336,6 +336,21 @@ class AiQueryOptions(TypedDict, total=False):
336
336
  # --- Agent management types ---
337
337
 
338
338
 
339
+ class AiAgentMcpServerConfig(TypedDict, total=False):
340
+ """Configuration for exposing an AI agent as an MCP server at ``/mcp/<agentId>``."""
341
+
342
+ enabled: bool
343
+ """Whether the agent is exposed as an MCP server. Required."""
344
+ description: str
345
+ """Description of the MCP server, served as the ``instructions`` field of the MCP initialize result."""
346
+ toolDescription: str
347
+ """Description of the MCP ``ask`` tool, exposed in the tools manifest."""
348
+ oauthIntegrationId: str
349
+ """ID of an auth integration used to OAuth-protect the MCP server."""
350
+ requireApiKey: bool
351
+ """Require the agent's API key as a bearer token; combinable with OAuth (either is accepted)."""
352
+
353
+
339
354
  class UpsertAgentOptions(TypedDict, total=False):
340
355
  """Options for creating/updating an agent."""
341
356
 
@@ -345,8 +360,12 @@ class UpsertAgentOptions(TypedDict, total=False):
345
360
  """Whether the agent is publicly accessible."""
346
361
  auditLog: bool
347
362
  """Enable audit logging."""
363
+ auditLogFullContext: bool
364
+ """Record the full agent context (system instructions and retrieved knowledge-base content) in the audit log."""
348
365
  apiKey: str
349
366
  """API key for this agent."""
367
+ mcpServer: AiAgentMcpServerConfig
368
+ """Optional configuration for exposing the agent as an MCP server."""
350
369
  options: AiChatOptions
351
370
  """Default chat options."""
352
371
 
@@ -369,10 +388,14 @@ class AiAgent(TypedDict, total=False):
369
388
  """Whether the agent is publicly accessible; defaults to False."""
370
389
  auditLog: bool
371
390
  """Whether audit logging is enabled for the agent's activities; defaults to False."""
391
+ auditLogFullContext: bool
392
+ """Whether the full agent context (system instructions and retrieved knowledge-base content) is recorded in the audit log; requires auditLog; defaults to False."""
372
393
  options: AiChatOptions
373
394
  """The agent's default chat options, overridable by the user during use. Required."""
374
395
  apiKey: str
375
396
  """Optional API key used specifically for operations on this agent."""
397
+ mcpServer: AiAgentMcpServerConfig
398
+ """Optional configuration for exposing the agent as an MCP server."""
376
399
 
377
400
 
378
401
  # --- Knowledge base types ---
@@ -461,6 +484,12 @@ class FileContextRequest(TypedDict, total=False):
461
484
  type: Literal["file"]
462
485
  metadata: dict[str, Any]
463
486
  extractImages: bool
487
+ """Whether to extract and describe images in the file. Defaults to True.
488
+
489
+ This is the opposite of the text context default, which is False: a file's charts and
490
+ scanned pages carry content its text layer does not, while images referenced from pasted
491
+ markdown/HTML are usually layout chrome.
492
+ """
464
493
  imageMinSizePixels: int
465
494
  extractionModel: AiChatModelSelection
466
495
  options: AiContextFileOptions
@@ -666,7 +695,7 @@ class ExtractDataFromDocumentOptions(TypedDict, total=False):
666
695
  """Options for document data extraction."""
667
696
 
668
697
  extractImages: bool
669
- """Whether to extract embedded images."""
698
+ """Whether to extract embedded images. Defaults to True."""
670
699
  imageMinSizePixels: int
671
700
  """Minimum image size to extract."""
672
701
  pageIndexes: list[int]
@@ -1,22 +1,22 @@
1
- Metadata-Version: 2.4
2
- Name: squidcloud-client
3
- Version: 1.0.483
4
- Summary: Squid Cloud Python client SDK
5
- Author-email: Squid Cloud <support@squid.cloud>
6
- License: MIT
7
- Project-URL: Homepage, https://squid.cloud
8
- Project-URL: Documentation, https://docs.squid.cloud
9
- Project-URL: Repository, https://github.com/squid-cloud/squid-cloud
10
- Classifier: Programming Language :: Python :: 3
11
- Classifier: Programming Language :: Python :: 3.11
12
- Classifier: Programming Language :: Python :: 3.12
13
- Classifier: Programming Language :: Python :: 3.13
14
- Classifier: License :: OSI Approved :: MIT License
15
- Classifier: Operating System :: OS Independent
16
- Classifier: Typing :: Typed
17
- Requires-Python: >=3.11
18
- Requires-Dist: httpx>=0.27.0
19
- Provides-Extra: dev
20
- Requires-Dist: pytest>=7.0; extra == "dev"
21
- Requires-Dist: pytest-asyncio>=0.21; extra == "dev"
22
- Requires-Dist: ruff>=0.11.0; extra == "dev"
1
+ Metadata-Version: 2.4
2
+ Name: squidcloud-client
3
+ Version: 1.0.485
4
+ Summary: Squid Cloud Python client SDK
5
+ Author-email: Squid Cloud <support@squid.cloud>
6
+ License: MIT
7
+ Project-URL: Homepage, https://squid.cloud
8
+ Project-URL: Documentation, https://docs.squid.cloud
9
+ Project-URL: Repository, https://github.com/squid-cloud/squid-cloud
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Programming Language :: Python :: 3.11
12
+ Classifier: Programming Language :: Python :: 3.12
13
+ Classifier: Programming Language :: Python :: 3.13
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Operating System :: OS Independent
16
+ Classifier: Typing :: Typed
17
+ Requires-Python: >=3.11
18
+ Requires-Dist: httpx>=0.27.0
19
+ Provides-Extra: dev
20
+ Requires-Dist: pytest>=7.0; extra == "dev"
21
+ Requires-Dist: pytest-asyncio>=0.21; extra == "dev"
22
+ Requires-Dist: ruff>=0.11.0; extra == "dev"