wiil-python 0.0.0__tar.gz → 0.0.2__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 (128) hide show
  1. {wiil_python-0.0.0 → wiil_python-0.0.2}/PKG-INFO +129 -7
  2. {wiil_python-0.0.0 → wiil_python-0.0.2}/README.md +128 -6
  3. {wiil_python-0.0.0 → wiil_python-0.0.2}/pyproject.toml +2 -2
  4. wiil_python-0.0.2/setup.py +8 -0
  5. wiil_python-0.0.2/wiil/client/__init__.py +17 -0
  6. wiil_python-0.0.2/wiil/client/async_wiil_client.py +80 -0
  7. wiil_python-0.0.2/wiil/client/http_client.py +537 -0
  8. wiil_python-0.0.2/wiil/client/types.py +163 -0
  9. wiil_python-0.0.2/wiil/client/wiil_client.py +218 -0
  10. wiil_python-0.0.2/wiil/client/will_service.py +89 -0
  11. wiil_python-0.0.2/wiil/errors/__init__.py +17 -0
  12. wiil_python-0.0.2/wiil/errors/exceptions.py +215 -0
  13. wiil_python-0.0.2/wiil/models/__init__.py +607 -0
  14. wiil_python-0.0.2/wiil/models/account/__init__.py +28 -0
  15. wiil_python-0.0.2/wiil/models/account/organization.py +158 -0
  16. wiil_python-0.0.2/wiil/models/account/project.py +210 -0
  17. wiil_python-0.0.2/wiil/models/account/supported_business_verticals.py +39 -0
  18. wiil_python-0.0.2/wiil/models/assistant_setups/__init__.py +32 -0
  19. wiil_python-0.0.2/wiil/models/assistant_setups/assistant_setup_result.py +82 -0
  20. wiil_python-0.0.2/wiil/models/assistant_setups/base_assistant_setup.py +133 -0
  21. wiil_python-0.0.2/wiil/models/assistant_setups/phone_assistant_setup.py +73 -0
  22. wiil_python-0.0.2/wiil/models/assistant_setups/web_assistant_setup.py +63 -0
  23. wiil_python-0.0.2/wiil/models/base.py +94 -0
  24. wiil_python-0.0.2/wiil/models/business_mgt/__init__.py +247 -0
  25. wiil_python-0.0.2/wiil/models/business_mgt/appointment_additional_info.py +149 -0
  26. wiil_python-0.0.2/wiil/models/business_mgt/appointment_field_config.py +157 -0
  27. wiil_python-0.0.2/wiil/models/business_mgt/customer.py +225 -0
  28. wiil_python-0.0.2/wiil/models/business_mgt/menu_config.py +345 -0
  29. wiil_python-0.0.2/wiil/models/business_mgt/menu_order.py +501 -0
  30. wiil_python-0.0.2/wiil/models/business_mgt/order.py +181 -0
  31. wiil_python-0.0.2/wiil/models/business_mgt/product_config.py +344 -0
  32. wiil_python-0.0.2/wiil/models/business_mgt/product_order.py +519 -0
  33. wiil_python-0.0.2/wiil/models/business_mgt/property_config.py +576 -0
  34. wiil_python-0.0.2/wiil/models/business_mgt/property_inquiry.py +362 -0
  35. wiil_python-0.0.2/wiil/models/business_mgt/reservation.py +323 -0
  36. wiil_python-0.0.2/wiil/models/business_mgt/reservation_resource.py +328 -0
  37. wiil_python-0.0.2/wiil/models/business_mgt/service_appointment.py +227 -0
  38. wiil_python-0.0.2/wiil/models/business_mgt/service_config.py +204 -0
  39. wiil_python-0.0.2/wiil/models/business_mgt/service_person.py +107 -0
  40. wiil_python-0.0.2/wiil/models/conversation/__init__.py +89 -0
  41. wiil_python-0.0.2/wiil/models/conversation/conversation_config.py +539 -0
  42. wiil_python-0.0.2/wiil/models/conversation/conversation_message.py +239 -0
  43. wiil_python-0.0.2/wiil/models/conversation/translation_config.py +156 -0
  44. wiil_python-0.0.2/wiil/models/conversation/translation_conversation.py +554 -0
  45. wiil_python-0.0.2/wiil/models/request/__init__.py +32 -0
  46. wiil_python-0.0.2/wiil/models/request/paginated_query.py +58 -0
  47. wiil_python-0.0.2/wiil/models/request/paginated_result.py +192 -0
  48. wiil_python-0.0.2/wiil/models/service_mgt/__init__.py +235 -0
  49. wiil_python-0.0.2/wiil/models/service_mgt/agent_config.py +182 -0
  50. wiil_python-0.0.2/wiil/models/service_mgt/call_transfer_config.py +70 -0
  51. wiil_python-0.0.2/wiil/models/service_mgt/deployment_config.py +267 -0
  52. wiil_python-0.0.2/wiil/models/service_mgt/dynamic_setup/__init__.py +50 -0
  53. wiil_python-0.0.2/wiil/models/service_mgt/dynamic_setup/base_agent_setup.py +229 -0
  54. wiil_python-0.0.2/wiil/models/service_mgt/dynamic_setup/phone_agent_setup.py +113 -0
  55. wiil_python-0.0.2/wiil/models/service_mgt/dynamic_setup/web_agent_setup.py +129 -0
  56. wiil_python-0.0.2/wiil/models/service_mgt/instruction_config.py +192 -0
  57. wiil_python-0.0.2/wiil/models/service_mgt/interaction_channels.py +558 -0
  58. wiil_python-0.0.2/wiil/models/service_mgt/knowledge.py +164 -0
  59. wiil_python-0.0.2/wiil/models/service_mgt/phone_config.py +173 -0
  60. wiil_python-0.0.2/wiil/models/service_mgt/phone_number.py +282 -0
  61. wiil_python-0.0.2/wiil/models/service_mgt/provisioning_config.py +306 -0
  62. wiil_python-0.0.2/wiil/models/service_mgt/support_llm.py +107 -0
  63. wiil_python-0.0.2/wiil/models/service_mgt/voice_language.py +142 -0
  64. wiil_python-0.0.2/wiil/models/type_definitions/__init__.py +147 -0
  65. wiil_python-0.0.2/wiil/models/type_definitions/account_definitions.py +91 -0
  66. wiil_python-0.0.2/wiil/models/type_definitions/business_definitions.py +409 -0
  67. wiil_python-0.0.2/wiil/models/type_definitions/conversation_definitions.py +55 -0
  68. wiil_python-0.0.2/wiil/models/type_definitions/dynamic_fields/__init__.py +42 -0
  69. wiil_python-0.0.2/wiil/models/type_definitions/dynamic_fields/field_definition.py +245 -0
  70. wiil_python-0.0.2/wiil/models/type_definitions/dynamic_fields/field_types.py +129 -0
  71. wiil_python-0.0.2/wiil/models/type_definitions/knowledge_definitions.py +48 -0
  72. wiil_python-0.0.2/wiil/models/type_definitions/service_config_definitions.py +161 -0
  73. wiil_python-0.0.2/wiil/resources/__init__.py +6 -0
  74. wiil_python-0.0.2/wiil/resources/account/__init__.py +9 -0
  75. wiil_python-0.0.2/wiil/resources/account/organizations.py +62 -0
  76. wiil_python-0.0.2/wiil/resources/account/projects.py +250 -0
  77. wiil_python-0.0.2/wiil/resources/business_mgt/__init__.py +27 -0
  78. wiil_python-0.0.2/wiil/resources/business_mgt/business_services.py +80 -0
  79. wiil_python-0.0.2/wiil/resources/business_mgt/customers.py +299 -0
  80. wiil_python-0.0.2/wiil/resources/business_mgt/menu_orders.py +85 -0
  81. wiil_python-0.0.2/wiil/resources/business_mgt/menus.py +272 -0
  82. wiil_python-0.0.2/wiil/resources/business_mgt/product_orders.py +85 -0
  83. wiil_python-0.0.2/wiil/resources/business_mgt/products.py +142 -0
  84. wiil_python-0.0.2/wiil/resources/business_mgt/property_config.py +324 -0
  85. wiil_python-0.0.2/wiil/resources/business_mgt/property_inquiry.py +164 -0
  86. wiil_python-0.0.2/wiil/resources/business_mgt/reservation_resources.py +76 -0
  87. wiil_python-0.0.2/wiil/resources/business_mgt/reservations.py +140 -0
  88. wiil_python-0.0.2/wiil/resources/business_mgt/service_appointments.py +111 -0
  89. wiil_python-0.0.2/wiil/resources/service_mgt/__init__.py +41 -0
  90. wiil_python-0.0.2/wiil/resources/service_mgt/agent_configs.py +86 -0
  91. wiil_python-0.0.2/wiil/resources/service_mgt/conversation_configs.py +48 -0
  92. wiil_python-0.0.2/wiil/resources/service_mgt/deployment_channels.py +120 -0
  93. wiil_python-0.0.2/wiil/resources/service_mgt/deployment_configs.py +156 -0
  94. wiil_python-0.0.2/wiil/resources/service_mgt/dynamic_agent_status.py +32 -0
  95. wiil_python-0.0.2/wiil/resources/service_mgt/dynamic_phone_agent.py +106 -0
  96. wiil_python-0.0.2/wiil/resources/service_mgt/dynamic_web_agent.py +100 -0
  97. wiil_python-0.0.2/wiil/resources/service_mgt/instruction_configs.py +94 -0
  98. wiil_python-0.0.2/wiil/resources/service_mgt/knowledge_sources.py +48 -0
  99. wiil_python-0.0.2/wiil/resources/service_mgt/phone_configs.py +78 -0
  100. wiil_python-0.0.2/wiil/resources/service_mgt/provisioning_configs.py +114 -0
  101. wiil_python-0.0.2/wiil/resources/service_mgt/support_models.py +297 -0
  102. wiil_python-0.0.2/wiil/resources/service_mgt/telephony_provider.py +228 -0
  103. wiil_python-0.0.2/wiil/resources/service_mgt/translation_sessions.py +48 -0
  104. wiil_python-0.0.2/wiil/services/__init__.py +31 -0
  105. wiil_python-0.0.2/wiil/services/ott/__init__.py +17 -0
  106. wiil_python-0.0.2/wiil/services/ott/models.py +44 -0
  107. wiil_python-0.0.2/wiil/services/ott/service.py +92 -0
  108. wiil_python-0.0.2/wiil/services/translation/__init__.py +15 -0
  109. wiil_python-0.0.2/wiil/services/translation/models.py +41 -0
  110. wiil_python-0.0.2/wiil/services/translation/service.py +53 -0
  111. wiil_python-0.0.2/wiil/types/__init__.py +176 -0
  112. wiil_python-0.0.2/wiil/types/account_types.py +89 -0
  113. wiil_python-0.0.2/wiil/types/business_types.py +522 -0
  114. wiil_python-0.0.2/wiil/types/conversation_types.py +115 -0
  115. wiil_python-0.0.2/wiil/types/knowledge_types.py +85 -0
  116. wiil_python-0.0.2/wiil/types/paginated_quest.py +64 -0
  117. wiil_python-0.0.2/wiil/types/paginated_result.py +196 -0
  118. wiil_python-0.0.2/wiil/types/service_types.py +270 -0
  119. {wiil_python-0.0.0 → wiil_python-0.0.2}/wiil_python.egg-info/PKG-INFO +129 -7
  120. wiil_python-0.0.2/wiil_python.egg-info/SOURCES.txt +124 -0
  121. wiil_python-0.0.0/setup.py +0 -5
  122. wiil_python-0.0.0/wiil_python.egg-info/SOURCES.txt +0 -10
  123. {wiil_python-0.0.0 → wiil_python-0.0.2}/setup.cfg +0 -0
  124. {wiil_python-0.0.0 → wiil_python-0.0.2}/wiil/__init__.py +0 -0
  125. {wiil_python-0.0.0 → wiil_python-0.0.2}/wiil/py.typed +0 -0
  126. {wiil_python-0.0.0 → wiil_python-0.0.2}/wiil_python.egg-info/dependency_links.txt +0 -0
  127. {wiil_python-0.0.0 → wiil_python-0.0.2}/wiil_python.egg-info/requires.txt +0 -0
  128. {wiil_python-0.0.0 → wiil_python-0.0.2}/wiil_python.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wiil-python
3
- Version: 0.0.0
3
+ Version: 0.0.2
4
4
  Summary: Official Python SDK for WIIL Platform - AI-powered conversational services for intelligent customer interactions, voice processing, real-time translation, and business management
5
5
  Author-email: WIIL <dev-support@wiil.io>
6
6
  License: MIT
@@ -82,7 +82,7 @@ venv\Scripts\activate
82
82
  ### 2. Install the SDK
83
83
 
84
84
  ```bash
85
- pip install wiil
85
+ pip install wiil-python
86
86
  ```
87
87
 
88
88
  ## Quick Start
@@ -169,6 +169,7 @@ The platform integrates two core architectural domains through the **Conversatio
169
169
  |--------|----------------|---------------------|
170
170
  | **Appointment Management** | Business Services | Service Appointments |
171
171
  | **Reservation Management** | Reservable Assets (Resources) | Reservations |
172
+ | **Property Management** | Properties & Listings | Property Inquiries |
172
173
  | **Menu Management** | Menu Categories & Items | Menu Orders |
173
174
  | **Product Management** | Product Categories & Products | Product Orders |
174
175
 
@@ -176,6 +177,7 @@ The platform integrates two core architectural domains through the **Conversatio
176
177
 
177
178
  - **Business Services** - Bookable services (salons, clinics, consulting)
178
179
  - **Reservable Assets** - Bookable resources (tables, rooms, equipment)
180
+ - **Properties & Listings** - Managed properties and listing availability data
179
181
  - **Menu Categories & Items** - Food and beverage offerings
180
182
  - **Product Categories & Products** - Retail products
181
183
 
@@ -183,10 +185,11 @@ The platform integrates two core architectural domains through the **Conversatio
183
185
 
184
186
  - **Service Appointments** - Created through AI conversations
185
187
  - **Reservations** - Created through AI conversations
188
+ - **Property Inquiries** - Created through AI conversations
186
189
  - **Menu Orders** - Created through AI conversations
187
190
  - **Product Orders** - Created through AI conversations
188
191
 
189
- **SDK Resources**: `business_services`, `reservation_resources`, `menus`, `products`, `customers`, `service_appointments`, `reservations`, `menu_orders`, `product_orders`
192
+ **SDK Resources**: `business_services`, `reservation_resources`, `property_config`, `property_inquiry`, `menus`, `products`, `customers`, `service_appointments`, `reservations`, `menu_orders`, `product_orders`
190
193
 
191
194
  ### Integration Hub: Conversations
192
195
 
@@ -241,7 +244,8 @@ The **Conversations** entity serves as the central integration point, bridging S
241
244
 
242
245
  6. Transaction Created
243
246
  • Service Appointment
244
- • Reservation
247
+ • Reservation
248
+ • Property Inquiry
245
249
  • Menu Order
246
250
  • Product Order
247
251
 
@@ -264,7 +268,125 @@ The **Conversations** entity serves as the central integration point, bridging S
264
268
 
265
269
  ## Usage Examples
266
270
 
267
- ### Account Management
271
+ ### 1. Dynamic Agent Setup (Recommended)
272
+
273
+ The Dynamic Agent Setup APIs are the fastest way to deploy agents. Instead of creating each service-management component separately, you can provision a deployable assistant in one call.
274
+
275
+ #### Phone Agent - Single Call Deployment
276
+
277
+ ```python
278
+ from wiil import WiilClient
279
+ from wiil.models.service_mgt.dynamic_setup import DynamicPhoneAgentSetup
280
+ from wiil.types import BusinessSupportServices
281
+
282
+ client = WiilClient(api_key="your-api-key")
283
+
284
+ result = client.dynamic_phone_agent.create(
285
+ DynamicPhoneAgentSetup(
286
+ assistant_name="Sarah",
287
+ language="en-US",
288
+ capabilities=[BusinessSupportServices.APPOINTMENT_MANAGEMENT],
289
+ )
290
+ )
291
+
292
+ print("Phone number:", result.phone_number)
293
+ print("Agent ID:", result.agent_configuration_id)
294
+ ```
295
+
296
+ #### Web Agent - Single Call Deployment
297
+
298
+ ```python
299
+ from wiil import WiilClient
300
+ from wiil.models.service_mgt.dynamic_setup import DynamicWebAgentSetup
301
+ from wiil.types import BusinessSupportServices
302
+
303
+ client = WiilClient(api_key="your-api-key")
304
+
305
+ result = client.dynamic_web_agent.create(
306
+ DynamicWebAgentSetup(
307
+ assistant_name="Emma",
308
+ website_url="https://example.com",
309
+ communication_type="UNIFIED",
310
+ language="en-US",
311
+ capabilities=[BusinessSupportServices.APPOINTMENT_MANAGEMENT],
312
+ )
313
+ )
314
+
315
+ print("Integration snippets:", result.integration_snippets)
316
+ print("Agent ID:", result.agent_configuration_id)
317
+ ```
318
+
319
+ #### Dynamic Agent with Chained STT/TTS Configuration
320
+
321
+ ```python
322
+ from wiil import WiilClient
323
+ from wiil.models.service_mgt.dynamic_setup import DynamicWebAgentSetup
324
+ from wiil.types import BusinessSupportServices
325
+
326
+ client = WiilClient(api_key="your-api-key")
327
+
328
+ result = client.dynamic_web_agent.create(
329
+ DynamicWebAgentSetup(
330
+ assistant_name="Marcus",
331
+ website_url="https://example.com",
332
+ communication_type="VOICE",
333
+ language="en-US",
334
+ capabilities=[
335
+ BusinessSupportServices.APPOINTMENT_MANAGEMENT,
336
+ BusinessSupportServices.PRODUCT_ORDER_MANAGEMENT,
337
+ ],
338
+ stt_configuration={
339
+ "provider_type": "Deepgram",
340
+ "provider_model_id": "nova-2",
341
+ "language_id": "en-US",
342
+ },
343
+ tts_configuration={
344
+ "provider_type": "ElevenLabs",
345
+ "provider_model_id": "eleven_turbo_v2",
346
+ "language_id": "en-US",
347
+ "voice_id": "voice_rachel",
348
+ },
349
+ )
350
+ )
351
+
352
+ print("Agent ID:", result.agent_configuration_id)
353
+ ```
354
+
355
+ #### Dynamic Agent Operations
356
+
357
+ ```python
358
+ from wiil import WiilClient
359
+ from wiil.models.service_mgt.dynamic_setup import DynamicPhoneAgentSetup, UpdateDynamicPhoneAgent
360
+
361
+ client = WiilClient(api_key="your-api-key")
362
+
363
+ # Create
364
+ created = client.dynamic_phone_agent.create(
365
+ DynamicPhoneAgentSetup(
366
+ assistant_name="Nathan",
367
+ language="en-US",
368
+ capabilities=[],
369
+ )
370
+ )
371
+
372
+ # Update (partial)
373
+ updated = client.dynamic_phone_agent.update(
374
+ UpdateDynamicPhoneAgent(
375
+ id=created.id,
376
+ assistant_name="Nathan Updated",
377
+ )
378
+ )
379
+
380
+ # Delete
381
+ deleted = client.dynamic_phone_agent.delete(created.id)
382
+ print("Deleted:", deleted)
383
+ ```
384
+
385
+ For full walkthroughs, see `../guides/dynamic-agent-setup-guide.md`.
386
+
387
+ ---
388
+
389
+ ### 2. Account Management
268
390
 
269
391
  ```python
270
392
  from wiil import WiilClient
@@ -297,7 +419,7 @@ deleted = client.projects.delete("proj_123")
297
419
  projects = client.projects.list(page=1, page_size=20)
298
420
  ```
299
421
 
300
- ### Service Configuration
422
+ ### 3. Service Configuration
301
423
 
302
424
  ```python
303
425
  # Create an agent configuration
@@ -313,7 +435,7 @@ agent = client.agent_configs.get("agent_123")
313
435
  agents = client.agent_configs.list(page=1, page_size=20)
314
436
  ```
315
437
 
316
- ### Business Management
438
+ ### 4. Business Management
317
439
 
318
440
  ```python
319
441
  # Create a business service
@@ -43,7 +43,7 @@ venv\Scripts\activate
43
43
  ### 2. Install the SDK
44
44
 
45
45
  ```bash
46
- pip install wiil
46
+ pip install wiil-python
47
47
  ```
48
48
 
49
49
  ## Quick Start
@@ -130,6 +130,7 @@ The platform integrates two core architectural domains through the **Conversatio
130
130
  |--------|----------------|---------------------|
131
131
  | **Appointment Management** | Business Services | Service Appointments |
132
132
  | **Reservation Management** | Reservable Assets (Resources) | Reservations |
133
+ | **Property Management** | Properties & Listings | Property Inquiries |
133
134
  | **Menu Management** | Menu Categories & Items | Menu Orders |
134
135
  | **Product Management** | Product Categories & Products | Product Orders |
135
136
 
@@ -137,6 +138,7 @@ The platform integrates two core architectural domains through the **Conversatio
137
138
 
138
139
  - **Business Services** - Bookable services (salons, clinics, consulting)
139
140
  - **Reservable Assets** - Bookable resources (tables, rooms, equipment)
141
+ - **Properties & Listings** - Managed properties and listing availability data
140
142
  - **Menu Categories & Items** - Food and beverage offerings
141
143
  - **Product Categories & Products** - Retail products
142
144
 
@@ -144,10 +146,11 @@ The platform integrates two core architectural domains through the **Conversatio
144
146
 
145
147
  - **Service Appointments** - Created through AI conversations
146
148
  - **Reservations** - Created through AI conversations
149
+ - **Property Inquiries** - Created through AI conversations
147
150
  - **Menu Orders** - Created through AI conversations
148
151
  - **Product Orders** - Created through AI conversations
149
152
 
150
- **SDK Resources**: `business_services`, `reservation_resources`, `menus`, `products`, `customers`, `service_appointments`, `reservations`, `menu_orders`, `product_orders`
153
+ **SDK Resources**: `business_services`, `reservation_resources`, `property_config`, `property_inquiry`, `menus`, `products`, `customers`, `service_appointments`, `reservations`, `menu_orders`, `product_orders`
151
154
 
152
155
  ### Integration Hub: Conversations
153
156
 
@@ -202,7 +205,8 @@ The **Conversations** entity serves as the central integration point, bridging S
202
205
 
203
206
  6. Transaction Created
204
207
  • Service Appointment
205
- • Reservation
208
+ • Reservation
209
+ • Property Inquiry
206
210
  • Menu Order
207
211
  • Product Order
208
212
 
@@ -225,7 +229,125 @@ The **Conversations** entity serves as the central integration point, bridging S
225
229
 
226
230
  ## Usage Examples
227
231
 
228
- ### Account Management
232
+ ### 1. Dynamic Agent Setup (Recommended)
233
+
234
+ The Dynamic Agent Setup APIs are the fastest way to deploy agents. Instead of creating each service-management component separately, you can provision a deployable assistant in one call.
235
+
236
+ #### Phone Agent - Single Call Deployment
237
+
238
+ ```python
239
+ from wiil import WiilClient
240
+ from wiil.models.service_mgt.dynamic_setup import DynamicPhoneAgentSetup
241
+ from wiil.types import BusinessSupportServices
242
+
243
+ client = WiilClient(api_key="your-api-key")
244
+
245
+ result = client.dynamic_phone_agent.create(
246
+ DynamicPhoneAgentSetup(
247
+ assistant_name="Sarah",
248
+ language="en-US",
249
+ capabilities=[BusinessSupportServices.APPOINTMENT_MANAGEMENT],
250
+ )
251
+ )
252
+
253
+ print("Phone number:", result.phone_number)
254
+ print("Agent ID:", result.agent_configuration_id)
255
+ ```
256
+
257
+ #### Web Agent - Single Call Deployment
258
+
259
+ ```python
260
+ from wiil import WiilClient
261
+ from wiil.models.service_mgt.dynamic_setup import DynamicWebAgentSetup
262
+ from wiil.types import BusinessSupportServices
263
+
264
+ client = WiilClient(api_key="your-api-key")
265
+
266
+ result = client.dynamic_web_agent.create(
267
+ DynamicWebAgentSetup(
268
+ assistant_name="Emma",
269
+ website_url="https://example.com",
270
+ communication_type="UNIFIED",
271
+ language="en-US",
272
+ capabilities=[BusinessSupportServices.APPOINTMENT_MANAGEMENT],
273
+ )
274
+ )
275
+
276
+ print("Integration snippets:", result.integration_snippets)
277
+ print("Agent ID:", result.agent_configuration_id)
278
+ ```
279
+
280
+ #### Dynamic Agent with Chained STT/TTS Configuration
281
+
282
+ ```python
283
+ from wiil import WiilClient
284
+ from wiil.models.service_mgt.dynamic_setup import DynamicWebAgentSetup
285
+ from wiil.types import BusinessSupportServices
286
+
287
+ client = WiilClient(api_key="your-api-key")
288
+
289
+ result = client.dynamic_web_agent.create(
290
+ DynamicWebAgentSetup(
291
+ assistant_name="Marcus",
292
+ website_url="https://example.com",
293
+ communication_type="VOICE",
294
+ language="en-US",
295
+ capabilities=[
296
+ BusinessSupportServices.APPOINTMENT_MANAGEMENT,
297
+ BusinessSupportServices.PRODUCT_ORDER_MANAGEMENT,
298
+ ],
299
+ stt_configuration={
300
+ "provider_type": "Deepgram",
301
+ "provider_model_id": "nova-2",
302
+ "language_id": "en-US",
303
+ },
304
+ tts_configuration={
305
+ "provider_type": "ElevenLabs",
306
+ "provider_model_id": "eleven_turbo_v2",
307
+ "language_id": "en-US",
308
+ "voice_id": "voice_rachel",
309
+ },
310
+ )
311
+ )
312
+
313
+ print("Agent ID:", result.agent_configuration_id)
314
+ ```
315
+
316
+ #### Dynamic Agent Operations
317
+
318
+ ```python
319
+ from wiil import WiilClient
320
+ from wiil.models.service_mgt.dynamic_setup import DynamicPhoneAgentSetup, UpdateDynamicPhoneAgent
321
+
322
+ client = WiilClient(api_key="your-api-key")
323
+
324
+ # Create
325
+ created = client.dynamic_phone_agent.create(
326
+ DynamicPhoneAgentSetup(
327
+ assistant_name="Nathan",
328
+ language="en-US",
329
+ capabilities=[],
330
+ )
331
+ )
332
+
333
+ # Update (partial)
334
+ updated = client.dynamic_phone_agent.update(
335
+ UpdateDynamicPhoneAgent(
336
+ id=created.id,
337
+ assistant_name="Nathan Updated",
338
+ )
339
+ )
340
+
341
+ # Delete
342
+ deleted = client.dynamic_phone_agent.delete(created.id)
343
+ print("Deleted:", deleted)
344
+ ```
345
+
346
+ For full walkthroughs, see `../guides/dynamic-agent-setup-guide.md`.
347
+
348
+ ---
349
+
350
+ ### 2. Account Management
229
351
 
230
352
  ```python
231
353
  from wiil import WiilClient
@@ -258,7 +380,7 @@ deleted = client.projects.delete("proj_123")
258
380
  projects = client.projects.list(page=1, page_size=20)
259
381
  ```
260
382
 
261
- ### Service Configuration
383
+ ### 3. Service Configuration
262
384
 
263
385
  ```python
264
386
  # Create an agent configuration
@@ -274,7 +396,7 @@ agent = client.agent_configs.get("agent_123")
274
396
  agents = client.agent_configs.list(page=1, page_size=20)
275
397
  ```
276
398
 
277
- ### Business Management
399
+ ### 4. Business Management
278
400
 
279
401
  ```python
280
402
  # Create a business service
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "wiil-python"
7
- version = "0.0.0"
7
+ version = "0.0.2"
8
8
  description = "Official Python SDK for WIIL Platform - AI-powered conversational services for intelligent customer interactions, voice processing, real-time translation, and business management"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.8"
@@ -79,7 +79,7 @@ Repository = "https://github.com/wiil-io/wiil-python"
79
79
  Issues = "https://github.com/wiil-io/wiil-python/issues"
80
80
 
81
81
  [tool.setuptools]
82
- packages = ["wiil"]
82
+ packages = { find = { include = ["wiil", "wiil.*"] } }
83
83
 
84
84
  [tool.setuptools.package-data]
85
85
  wiil = ["py.typed"]
@@ -0,0 +1,8 @@
1
+ """Setup script for WIIL Python SDK."""
2
+ from setuptools import find_packages, setup
3
+
4
+ # Keep metadata in pyproject.toml while forcing reliable package discovery.
5
+ setup(
6
+ packages=find_packages(include=["wiil", "wiil.*"]),
7
+ package_data={"wiil": ["py.typed"]},
8
+ )
@@ -0,0 +1,17 @@
1
+ """WIIL SDK client module."""
2
+
3
+ from wiil.client.types import WiilClientConfig, APIResponse, APIErrorResponse
4
+ from wiil.client.http_client import HttpClient
5
+ from wiil.client.async_wiil_client import AsyncWiilClient
6
+ from wiil.client.will_service import WillService
7
+ from wiil.client.wiil_client import WiilClient
8
+
9
+ __all__ = [
10
+ 'WiilClient',
11
+ 'AsyncWiilClient',
12
+ 'WillService',
13
+ 'WiilClientConfig',
14
+ 'HttpClient',
15
+ 'APIResponse',
16
+ 'APIErrorResponse',
17
+ ]
@@ -0,0 +1,80 @@
1
+ """Async WIIL SDK client.
2
+
3
+ This module provides an async facade over the existing synchronous WIIL SDK
4
+ resources. Resource method calls are executed in worker threads via
5
+ ``asyncio.to_thread`` so consumers can use ``await`` and async context
6
+ managers.
7
+ """
8
+
9
+ import asyncio
10
+ from typing import Any
11
+
12
+ from wiil.client.wiil_client import WiilClient
13
+
14
+
15
+ class _AsyncResourceProxy:
16
+ """Async wrapper for a synchronous resource object."""
17
+
18
+ def __init__(self, target: Any):
19
+ self._target = target
20
+
21
+ def __getattr__(self, name: str) -> Any:
22
+ attribute = getattr(self._target, name)
23
+
24
+ if callable(attribute):
25
+ async def _async_call(*args: Any, **kwargs: Any) -> Any:
26
+ return await asyncio.to_thread(attribute, *args, **kwargs)
27
+
28
+ return _async_call
29
+
30
+ return attribute
31
+
32
+
33
+ class AsyncWiilClient:
34
+ """Async client for interacting with the WIIL Platform API.
35
+
36
+ This client mirrors ``WiilClient`` properties while exposing resource
37
+ method calls as awaitable coroutines.
38
+ """
39
+
40
+ def __init__(
41
+ self,
42
+ api_key: str,
43
+ base_url: str = "https://api.wiil.io/v1",
44
+ timeout: int = 30,
45
+ ):
46
+ self._sync_client = WiilClient(
47
+ api_key=api_key,
48
+ base_url=base_url,
49
+ timeout=timeout,
50
+ )
51
+
52
+ for name, value in vars(self._sync_client).items():
53
+ if name.startswith("_"):
54
+ continue
55
+ setattr(self, name, _AsyncResourceProxy(value))
56
+
57
+ def __getattr__(self, name: str) -> Any:
58
+ """Proxy any additional attributes to the underlying sync client."""
59
+ attribute = getattr(self._sync_client, name)
60
+
61
+ if callable(attribute):
62
+ async def _async_call(*args: Any, **kwargs: Any) -> Any:
63
+ return await asyncio.to_thread(attribute, *args, **kwargs)
64
+
65
+ return _async_call
66
+
67
+ return attribute
68
+
69
+ async def aclose(self) -> None:
70
+ """Close the underlying HTTP session."""
71
+ await asyncio.to_thread(self._sync_client._http.session.close)
72
+
73
+ async def __aenter__(self) -> "AsyncWiilClient":
74
+ return self
75
+
76
+ async def __aexit__(self, exc_type, exc, tb) -> None:
77
+ await self.aclose()
78
+
79
+
80
+ __all__ = ["AsyncWiilClient"]