persona-sdk-python 0.2.3__tar.gz → 0.2.5__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.
- persona_sdk_python-0.2.5/PKG-INFO +242 -0
- persona_sdk_python-0.2.5/README.md +218 -0
- persona_sdk_python-0.2.5/pyproject.toml +38 -0
- {persona_sdk_python-0.2.3 → persona_sdk_python-0.2.5}/uv.lock +1 -1
- persona_sdk_python-0.2.3/PKG-INFO +0 -7
- persona_sdk_python-0.2.3/pyproject.toml +0 -16
- {persona_sdk_python-0.2.3 → persona_sdk_python-0.2.5}/.gitignore +0 -0
- {persona_sdk_python-0.2.3 → persona_sdk_python-0.2.5}/DEPLOY.md +0 -0
- {persona_sdk_python-0.2.3 → persona_sdk_python-0.2.5}/bitbucket-pipelines.yml +0 -0
- {persona_sdk_python-0.2.3 → persona_sdk_python-0.2.5}/persona_sdk/__init__.py +0 -0
- {persona_sdk_python-0.2.3 → persona_sdk_python-0.2.5}/persona_sdk/api/__init__.py +0 -0
- {persona_sdk_python-0.2.3 → persona_sdk_python-0.2.5}/persona_sdk/api/agents.py +0 -0
- {persona_sdk_python-0.2.3 → persona_sdk_python-0.2.5}/persona_sdk/api/credentials.py +0 -0
- {persona_sdk_python-0.2.3 → persona_sdk_python-0.2.5}/persona_sdk/api/features.py +0 -0
- {persona_sdk_python-0.2.3 → persona_sdk_python-0.2.5}/persona_sdk/api/knowledge_bases.py +0 -0
- {persona_sdk_python-0.2.3 → persona_sdk_python-0.2.5}/persona_sdk/api/missions.py +0 -0
- {persona_sdk_python-0.2.3 → persona_sdk_python-0.2.5}/persona_sdk/api/projects.py +0 -0
- {persona_sdk_python-0.2.3 → persona_sdk_python-0.2.5}/persona_sdk/api/service_prices.py +0 -0
- {persona_sdk_python-0.2.3 → persona_sdk_python-0.2.5}/persona_sdk/api/sessions.py +0 -0
- {persona_sdk_python-0.2.3 → persona_sdk_python-0.2.5}/persona_sdk/api/triggers.py +0 -0
- {persona_sdk_python-0.2.3 → persona_sdk_python-0.2.5}/persona_sdk/api/workflows.py +0 -0
- {persona_sdk_python-0.2.3 → persona_sdk_python-0.2.5}/persona_sdk/auth/__init__.py +0 -0
- {persona_sdk_python-0.2.3 → persona_sdk_python-0.2.5}/persona_sdk/auth/api_key_auth.py +0 -0
- {persona_sdk_python-0.2.3 → persona_sdk_python-0.2.5}/persona_sdk/auth/base.py +0 -0
- {persona_sdk_python-0.2.3 → persona_sdk_python-0.2.5}/persona_sdk/auth/bearer_token_auth.py +0 -0
- {persona_sdk_python-0.2.3 → persona_sdk_python-0.2.5}/persona_sdk/client.py +0 -0
- {persona_sdk_python-0.2.3 → persona_sdk_python-0.2.5}/persona_sdk/runners/__init__.py +0 -0
- {persona_sdk_python-0.2.3 → persona_sdk_python-0.2.5}/persona_sdk/runners/agent_runner.py +0 -0
- {persona_sdk_python-0.2.3 → persona_sdk_python-0.2.5}/persona_sdk/runners/resource_retriever.py +0 -0
- {persona_sdk_python-0.2.3 → persona_sdk_python-0.2.5}/persona_sdk/runners/tool_invoker.py +0 -0
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: persona-sdk-python
|
|
3
|
+
Version: 0.2.5
|
|
4
|
+
Summary: Async Python SDK for the Persona AI platform
|
|
5
|
+
Project-URL: Homepage, https://persona.applica.guru
|
|
6
|
+
Project-URL: Repository, https://bitbucket.org/applicaguru/persona-sdk-python
|
|
7
|
+
Author: Applica Software Guru
|
|
8
|
+
License: Proprietary
|
|
9
|
+
Keywords: agents,ai,async,persona,sdk
|
|
10
|
+
Classifier: Development Status :: 4 - Beta
|
|
11
|
+
Classifier: Framework :: AsyncIO
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: Operating System :: OS Independent
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
19
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
20
|
+
Requires-Python: >=3.10
|
|
21
|
+
Requires-Dist: httpx>=0.27.0
|
|
22
|
+
Requires-Dist: persona-models>=0.1.0
|
|
23
|
+
Description-Content-Type: text/markdown
|
|
24
|
+
|
|
25
|
+
# persona-sdk-python
|
|
26
|
+
|
|
27
|
+
Async Python SDK for the [Persona AI](https://persona.applica.guru) platform.
|
|
28
|
+
|
|
29
|
+
## Installation
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
pip install persona-sdk-python
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Or with [uv](https://docs.astral.sh/uv/):
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
uv add persona-sdk-python
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Requirements: Python 3.10+
|
|
42
|
+
|
|
43
|
+
## Quick start
|
|
44
|
+
|
|
45
|
+
```python
|
|
46
|
+
import asyncio
|
|
47
|
+
from persona_sdk import PersonaSdk
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
async def main():
|
|
51
|
+
sdk = PersonaSdk(
|
|
52
|
+
base_url="https://persona.applica.guru/api",
|
|
53
|
+
auth="prs_your_project_api_key",
|
|
54
|
+
)
|
|
55
|
+
|
|
56
|
+
# List agents in your project
|
|
57
|
+
agents = await sdk.agents.list()
|
|
58
|
+
print(agents)
|
|
59
|
+
|
|
60
|
+
await sdk.close()
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
asyncio.run(main())
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Authentication
|
|
67
|
+
|
|
68
|
+
The SDK supports two authentication methods via the `auth` parameter.
|
|
69
|
+
|
|
70
|
+
### API key (default)
|
|
71
|
+
|
|
72
|
+
A plain string is wrapped automatically in `ApiKeyAuthenticationProvider` and
|
|
73
|
+
sent as the `x-persona-apikey` header. Accepts:
|
|
74
|
+
|
|
75
|
+
- Master key (full admin access)
|
|
76
|
+
- Project API key (`prs_...`)
|
|
77
|
+
- Agent API key (`prs_ag_...`)
|
|
78
|
+
|
|
79
|
+
```python
|
|
80
|
+
from persona_sdk import PersonaSdk
|
|
81
|
+
|
|
82
|
+
sdk = PersonaSdk(
|
|
83
|
+
base_url="https://persona.applica.guru/api",
|
|
84
|
+
auth="prs_your_project_api_key",
|
|
85
|
+
)
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### IAM Bearer token
|
|
89
|
+
|
|
90
|
+
For applications that authenticate users via IAM, pass a
|
|
91
|
+
`BearerTokenAuthenticationProvider` with a valid JWT:
|
|
92
|
+
|
|
93
|
+
```python
|
|
94
|
+
from persona_sdk import PersonaSdk, BearerTokenAuthenticationProvider
|
|
95
|
+
|
|
96
|
+
sdk = PersonaSdk(
|
|
97
|
+
base_url="https://persona.applica.guru/api",
|
|
98
|
+
auth=BearerTokenAuthenticationProvider(iam_jwt_token),
|
|
99
|
+
)
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
The token is sent as the `Authorization: Bearer <token>` header. The server
|
|
103
|
+
validates it via the IAM service and resolves the user's project automatically.
|
|
104
|
+
|
|
105
|
+
### Custom provider
|
|
106
|
+
|
|
107
|
+
Implement your own provider by subclassing `AuthenticationProvider`:
|
|
108
|
+
|
|
109
|
+
```python
|
|
110
|
+
from persona_sdk import AuthenticationProvider
|
|
111
|
+
|
|
112
|
+
class MyProvider(AuthenticationProvider):
|
|
113
|
+
def headers(self) -> dict[str, str]:
|
|
114
|
+
return {"x-custom-header": "value"}
|
|
115
|
+
|
|
116
|
+
def credentials(self) -> str:
|
|
117
|
+
return "my-credentials"
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## Available APIs
|
|
121
|
+
|
|
122
|
+
The `PersonaSdk` instance exposes one client per resource:
|
|
123
|
+
|
|
124
|
+
| Attribute | Description |
|
|
125
|
+
|-----------|-------------|
|
|
126
|
+
| `sdk.agents` | Agent management (CRUD, voices) |
|
|
127
|
+
| `sdk.projects` | Project management and subscriptions |
|
|
128
|
+
| `sdk.sessions` | Sessions, messages, usage |
|
|
129
|
+
| `sdk.knowledge_bases` | Knowledge bases, documents, chunk search |
|
|
130
|
+
| `sdk.workflows` | Workflows, executions, queues |
|
|
131
|
+
| `sdk.triggers` | Triggers and trigger executions |
|
|
132
|
+
| `sdk.missions` | Missions (generate, execute, stop, continue) |
|
|
133
|
+
| `sdk.features` | Feature templates and MCP tools |
|
|
134
|
+
| `sdk.credentials` | OAuth credentials and authorization |
|
|
135
|
+
| `sdk.service_prices` | Service pricing |
|
|
136
|
+
|
|
137
|
+
Each API method is fully async. Always close the SDK when done to release the
|
|
138
|
+
underlying HTTP connection pool:
|
|
139
|
+
|
|
140
|
+
```python
|
|
141
|
+
sdk = PersonaSdk(
|
|
142
|
+
base_url="https://persona.applica.guru/api",
|
|
143
|
+
auth="prs_your_api_key",
|
|
144
|
+
)
|
|
145
|
+
try:
|
|
146
|
+
agents = await sdk.agents.list()
|
|
147
|
+
finally:
|
|
148
|
+
await sdk.close()
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## CRUD example
|
|
152
|
+
|
|
153
|
+
```python
|
|
154
|
+
# Create an agent
|
|
155
|
+
agent = await sdk.agents.create({
|
|
156
|
+
"name": "my-agent",
|
|
157
|
+
"model": {"modelName": "gpt-4o"},
|
|
158
|
+
})
|
|
159
|
+
|
|
160
|
+
# Read
|
|
161
|
+
fetched = await sdk.agents.get(agent["id"])
|
|
162
|
+
|
|
163
|
+
# Update
|
|
164
|
+
fetched["name"] = "renamed-agent"
|
|
165
|
+
await sdk.agents.update(agent["id"], fetched)
|
|
166
|
+
|
|
167
|
+
# Delete
|
|
168
|
+
await sdk.agents.delete(agent["id"])
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
## Pagination
|
|
172
|
+
|
|
173
|
+
List endpoints accept `keyword`, `page`, and `size`:
|
|
174
|
+
|
|
175
|
+
```python
|
|
176
|
+
result = await sdk.agents.list(keyword="bot", page=1, size=20)
|
|
177
|
+
# {
|
|
178
|
+
# "items": [...],
|
|
179
|
+
# "total": 42,
|
|
180
|
+
# "page": 1,
|
|
181
|
+
# "size": 20
|
|
182
|
+
# }
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
## Workflows
|
|
186
|
+
|
|
187
|
+
If your workflows service runs on a different host, pass `workflows_url`:
|
|
188
|
+
|
|
189
|
+
```python
|
|
190
|
+
sdk = PersonaSdk(
|
|
191
|
+
base_url="https://persona.applica.guru/api",
|
|
192
|
+
auth="prs_...",
|
|
193
|
+
workflows_url="https://persona.applica.guru/workflows",
|
|
194
|
+
)
|
|
195
|
+
|
|
196
|
+
# Execute a workflow
|
|
197
|
+
result = await sdk.workflows.execute(
|
|
198
|
+
workflow_id="wf-123",
|
|
199
|
+
data={"input": "value"},
|
|
200
|
+
)
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
## Runners
|
|
204
|
+
|
|
205
|
+
For higher-level abstractions, the SDK provides runners:
|
|
206
|
+
|
|
207
|
+
```python
|
|
208
|
+
from persona_sdk import PersonaClient
|
|
209
|
+
from persona_sdk.runners import AgentRunner, invoke_tool, retrieve_resource
|
|
210
|
+
|
|
211
|
+
client = PersonaClient(
|
|
212
|
+
base_url="https://persona.applica.guru/api",
|
|
213
|
+
auth="prs_...",
|
|
214
|
+
)
|
|
215
|
+
|
|
216
|
+
# Run an agent in an existing session
|
|
217
|
+
runner = AgentRunner(client=client, agent_id="agent-1", session_code="sess-1")
|
|
218
|
+
response = await runner.run("Hello, agent!")
|
|
219
|
+
|
|
220
|
+
# Invoke an MCP tool directly
|
|
221
|
+
result = await invoke_tool(
|
|
222
|
+
client=client,
|
|
223
|
+
mcp_server_name="my-mcp",
|
|
224
|
+
transport=...,
|
|
225
|
+
tool_name="search",
|
|
226
|
+
args={"query": "hello"},
|
|
227
|
+
)
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
## Proxy support
|
|
231
|
+
|
|
232
|
+
```python
|
|
233
|
+
sdk = PersonaSdk(
|
|
234
|
+
base_url="https://persona.applica.guru/api",
|
|
235
|
+
auth="prs_...",
|
|
236
|
+
proxy="http://proxy.local:8080",
|
|
237
|
+
)
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
## License
|
|
241
|
+
|
|
242
|
+
Proprietary — © Applica Software Guru
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
# persona-sdk-python
|
|
2
|
+
|
|
3
|
+
Async Python SDK for the [Persona AI](https://persona.applica.guru) platform.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pip install persona-sdk-python
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Or with [uv](https://docs.astral.sh/uv/):
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
uv add persona-sdk-python
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Requirements: Python 3.10+
|
|
18
|
+
|
|
19
|
+
## Quick start
|
|
20
|
+
|
|
21
|
+
```python
|
|
22
|
+
import asyncio
|
|
23
|
+
from persona_sdk import PersonaSdk
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
async def main():
|
|
27
|
+
sdk = PersonaSdk(
|
|
28
|
+
base_url="https://persona.applica.guru/api",
|
|
29
|
+
auth="prs_your_project_api_key",
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
# List agents in your project
|
|
33
|
+
agents = await sdk.agents.list()
|
|
34
|
+
print(agents)
|
|
35
|
+
|
|
36
|
+
await sdk.close()
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
asyncio.run(main())
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Authentication
|
|
43
|
+
|
|
44
|
+
The SDK supports two authentication methods via the `auth` parameter.
|
|
45
|
+
|
|
46
|
+
### API key (default)
|
|
47
|
+
|
|
48
|
+
A plain string is wrapped automatically in `ApiKeyAuthenticationProvider` and
|
|
49
|
+
sent as the `x-persona-apikey` header. Accepts:
|
|
50
|
+
|
|
51
|
+
- Master key (full admin access)
|
|
52
|
+
- Project API key (`prs_...`)
|
|
53
|
+
- Agent API key (`prs_ag_...`)
|
|
54
|
+
|
|
55
|
+
```python
|
|
56
|
+
from persona_sdk import PersonaSdk
|
|
57
|
+
|
|
58
|
+
sdk = PersonaSdk(
|
|
59
|
+
base_url="https://persona.applica.guru/api",
|
|
60
|
+
auth="prs_your_project_api_key",
|
|
61
|
+
)
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### IAM Bearer token
|
|
65
|
+
|
|
66
|
+
For applications that authenticate users via IAM, pass a
|
|
67
|
+
`BearerTokenAuthenticationProvider` with a valid JWT:
|
|
68
|
+
|
|
69
|
+
```python
|
|
70
|
+
from persona_sdk import PersonaSdk, BearerTokenAuthenticationProvider
|
|
71
|
+
|
|
72
|
+
sdk = PersonaSdk(
|
|
73
|
+
base_url="https://persona.applica.guru/api",
|
|
74
|
+
auth=BearerTokenAuthenticationProvider(iam_jwt_token),
|
|
75
|
+
)
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
The token is sent as the `Authorization: Bearer <token>` header. The server
|
|
79
|
+
validates it via the IAM service and resolves the user's project automatically.
|
|
80
|
+
|
|
81
|
+
### Custom provider
|
|
82
|
+
|
|
83
|
+
Implement your own provider by subclassing `AuthenticationProvider`:
|
|
84
|
+
|
|
85
|
+
```python
|
|
86
|
+
from persona_sdk import AuthenticationProvider
|
|
87
|
+
|
|
88
|
+
class MyProvider(AuthenticationProvider):
|
|
89
|
+
def headers(self) -> dict[str, str]:
|
|
90
|
+
return {"x-custom-header": "value"}
|
|
91
|
+
|
|
92
|
+
def credentials(self) -> str:
|
|
93
|
+
return "my-credentials"
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Available APIs
|
|
97
|
+
|
|
98
|
+
The `PersonaSdk` instance exposes one client per resource:
|
|
99
|
+
|
|
100
|
+
| Attribute | Description |
|
|
101
|
+
|-----------|-------------|
|
|
102
|
+
| `sdk.agents` | Agent management (CRUD, voices) |
|
|
103
|
+
| `sdk.projects` | Project management and subscriptions |
|
|
104
|
+
| `sdk.sessions` | Sessions, messages, usage |
|
|
105
|
+
| `sdk.knowledge_bases` | Knowledge bases, documents, chunk search |
|
|
106
|
+
| `sdk.workflows` | Workflows, executions, queues |
|
|
107
|
+
| `sdk.triggers` | Triggers and trigger executions |
|
|
108
|
+
| `sdk.missions` | Missions (generate, execute, stop, continue) |
|
|
109
|
+
| `sdk.features` | Feature templates and MCP tools |
|
|
110
|
+
| `sdk.credentials` | OAuth credentials and authorization |
|
|
111
|
+
| `sdk.service_prices` | Service pricing |
|
|
112
|
+
|
|
113
|
+
Each API method is fully async. Always close the SDK when done to release the
|
|
114
|
+
underlying HTTP connection pool:
|
|
115
|
+
|
|
116
|
+
```python
|
|
117
|
+
sdk = PersonaSdk(
|
|
118
|
+
base_url="https://persona.applica.guru/api",
|
|
119
|
+
auth="prs_your_api_key",
|
|
120
|
+
)
|
|
121
|
+
try:
|
|
122
|
+
agents = await sdk.agents.list()
|
|
123
|
+
finally:
|
|
124
|
+
await sdk.close()
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## CRUD example
|
|
128
|
+
|
|
129
|
+
```python
|
|
130
|
+
# Create an agent
|
|
131
|
+
agent = await sdk.agents.create({
|
|
132
|
+
"name": "my-agent",
|
|
133
|
+
"model": {"modelName": "gpt-4o"},
|
|
134
|
+
})
|
|
135
|
+
|
|
136
|
+
# Read
|
|
137
|
+
fetched = await sdk.agents.get(agent["id"])
|
|
138
|
+
|
|
139
|
+
# Update
|
|
140
|
+
fetched["name"] = "renamed-agent"
|
|
141
|
+
await sdk.agents.update(agent["id"], fetched)
|
|
142
|
+
|
|
143
|
+
# Delete
|
|
144
|
+
await sdk.agents.delete(agent["id"])
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## Pagination
|
|
148
|
+
|
|
149
|
+
List endpoints accept `keyword`, `page`, and `size`:
|
|
150
|
+
|
|
151
|
+
```python
|
|
152
|
+
result = await sdk.agents.list(keyword="bot", page=1, size=20)
|
|
153
|
+
# {
|
|
154
|
+
# "items": [...],
|
|
155
|
+
# "total": 42,
|
|
156
|
+
# "page": 1,
|
|
157
|
+
# "size": 20
|
|
158
|
+
# }
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
## Workflows
|
|
162
|
+
|
|
163
|
+
If your workflows service runs on a different host, pass `workflows_url`:
|
|
164
|
+
|
|
165
|
+
```python
|
|
166
|
+
sdk = PersonaSdk(
|
|
167
|
+
base_url="https://persona.applica.guru/api",
|
|
168
|
+
auth="prs_...",
|
|
169
|
+
workflows_url="https://persona.applica.guru/workflows",
|
|
170
|
+
)
|
|
171
|
+
|
|
172
|
+
# Execute a workflow
|
|
173
|
+
result = await sdk.workflows.execute(
|
|
174
|
+
workflow_id="wf-123",
|
|
175
|
+
data={"input": "value"},
|
|
176
|
+
)
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
## Runners
|
|
180
|
+
|
|
181
|
+
For higher-level abstractions, the SDK provides runners:
|
|
182
|
+
|
|
183
|
+
```python
|
|
184
|
+
from persona_sdk import PersonaClient
|
|
185
|
+
from persona_sdk.runners import AgentRunner, invoke_tool, retrieve_resource
|
|
186
|
+
|
|
187
|
+
client = PersonaClient(
|
|
188
|
+
base_url="https://persona.applica.guru/api",
|
|
189
|
+
auth="prs_...",
|
|
190
|
+
)
|
|
191
|
+
|
|
192
|
+
# Run an agent in an existing session
|
|
193
|
+
runner = AgentRunner(client=client, agent_id="agent-1", session_code="sess-1")
|
|
194
|
+
response = await runner.run("Hello, agent!")
|
|
195
|
+
|
|
196
|
+
# Invoke an MCP tool directly
|
|
197
|
+
result = await invoke_tool(
|
|
198
|
+
client=client,
|
|
199
|
+
mcp_server_name="my-mcp",
|
|
200
|
+
transport=...,
|
|
201
|
+
tool_name="search",
|
|
202
|
+
args={"query": "hello"},
|
|
203
|
+
)
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
## Proxy support
|
|
207
|
+
|
|
208
|
+
```python
|
|
209
|
+
sdk = PersonaSdk(
|
|
210
|
+
base_url="https://persona.applica.guru/api",
|
|
211
|
+
auth="prs_...",
|
|
212
|
+
proxy="http://proxy.local:8080",
|
|
213
|
+
)
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
## License
|
|
217
|
+
|
|
218
|
+
Proprietary — © Applica Software Guru
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "persona-sdk-python"
|
|
3
|
+
version = "0.2.5"
|
|
4
|
+
description = "Async Python SDK for the Persona AI platform"
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
requires-python = ">=3.10"
|
|
7
|
+
license = { text = "Proprietary" }
|
|
8
|
+
authors = [
|
|
9
|
+
{ name = "Applica Software Guru" },
|
|
10
|
+
]
|
|
11
|
+
keywords = ["persona", "ai", "agents", "sdk", "async"]
|
|
12
|
+
classifiers = [
|
|
13
|
+
"Development Status :: 4 - Beta",
|
|
14
|
+
"Intended Audience :: Developers",
|
|
15
|
+
"Operating System :: OS Independent",
|
|
16
|
+
"Programming Language :: Python :: 3",
|
|
17
|
+
"Programming Language :: Python :: 3.10",
|
|
18
|
+
"Programming Language :: Python :: 3.11",
|
|
19
|
+
"Programming Language :: Python :: 3.12",
|
|
20
|
+
"Programming Language :: Python :: 3.13",
|
|
21
|
+
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
22
|
+
"Framework :: AsyncIO",
|
|
23
|
+
]
|
|
24
|
+
dependencies = [
|
|
25
|
+
"persona-models>=0.1.0",
|
|
26
|
+
"httpx>=0.27.0",
|
|
27
|
+
]
|
|
28
|
+
|
|
29
|
+
[project.urls]
|
|
30
|
+
Homepage = "https://persona.applica.guru"
|
|
31
|
+
Repository = "https://bitbucket.org/applicaguru/persona-sdk-python"
|
|
32
|
+
|
|
33
|
+
[build-system]
|
|
34
|
+
requires = ["hatchling"]
|
|
35
|
+
build-backend = "hatchling.build"
|
|
36
|
+
|
|
37
|
+
[tool.hatch.build.targets.wheel]
|
|
38
|
+
packages = ["persona_sdk"]
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
[project]
|
|
2
|
-
name = "persona-sdk-python"
|
|
3
|
-
version = "0.2.3"
|
|
4
|
-
description = "Python SDK client for Persona AI platform"
|
|
5
|
-
requires-python = ">=3.10"
|
|
6
|
-
dependencies = [
|
|
7
|
-
"persona-models>=0.1.0",
|
|
8
|
-
"httpx>=0.27.0",
|
|
9
|
-
]
|
|
10
|
-
|
|
11
|
-
[build-system]
|
|
12
|
-
requires = ["hatchling"]
|
|
13
|
-
build-backend = "hatchling.build"
|
|
14
|
-
|
|
15
|
-
[tool.hatch.build.targets.wheel]
|
|
16
|
-
packages = ["persona_sdk"]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{persona_sdk_python-0.2.3 → persona_sdk_python-0.2.5}/persona_sdk/runners/resource_retriever.py
RENAMED
|
File without changes
|
|
File without changes
|