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.
- {squidcloud_client-1.0.483 → squidcloud_client-1.0.485}/PKG-INFO +22 -22
- {squidcloud_client-1.0.483 → squidcloud_client-1.0.485}/pyproject.toml +1 -1
- {squidcloud_client-1.0.483 → squidcloud_client-1.0.485}/setup.cfg +4 -4
- {squidcloud_client-1.0.483 → squidcloud_client-1.0.485}/squidcloud/__init__.py +2 -0
- {squidcloud_client-1.0.483 → squidcloud_client-1.0.485}/squidcloud/ai.py +14 -1
- {squidcloud_client-1.0.483 → squidcloud_client-1.0.485}/squidcloud/http.py +3 -8
- {squidcloud_client-1.0.483 → squidcloud_client-1.0.485}/squidcloud/types.py +30 -1
- {squidcloud_client-1.0.483 → squidcloud_client-1.0.485}/squidcloud_client.egg-info/PKG-INFO +22 -22
- {squidcloud_client-1.0.483 → squidcloud_client-1.0.485}/squidcloud/client.py +0 -0
- {squidcloud_client-1.0.483 → squidcloud_client-1.0.485}/squidcloud/extraction.py +0 -0
- {squidcloud_client-1.0.483 → squidcloud_client-1.0.485}/squidcloud/matchmaking.py +0 -0
- {squidcloud_client-1.0.483 → squidcloud_client-1.0.485}/squidcloud/py.typed +0 -0
- {squidcloud_client-1.0.483 → squidcloud_client-1.0.485}/squidcloud/web.py +0 -0
- {squidcloud_client-1.0.483 → squidcloud_client-1.0.485}/squidcloud_client.egg-info/SOURCES.txt +0 -0
- {squidcloud_client-1.0.483 → squidcloud_client-1.0.485}/squidcloud_client.egg-info/dependency_links.txt +0 -0
- {squidcloud_client-1.0.483 → squidcloud_client-1.0.485}/squidcloud_client.egg-info/requires.txt +0 -0
- {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.
|
|
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"
|
|
@@ -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``, ``
|
|
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
|
|
37
|
-
|
|
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
|
-
|
|
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.
|
|
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"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{squidcloud_client-1.0.483 → squidcloud_client-1.0.485}/squidcloud_client.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{squidcloud_client-1.0.483 → squidcloud_client-1.0.485}/squidcloud_client.egg-info/requires.txt
RENAMED
|
File without changes
|
{squidcloud_client-1.0.483 → squidcloud_client-1.0.485}/squidcloud_client.egg-info/top_level.txt
RENAMED
|
File without changes
|