chainlit 2.0rc1__py3-none-any.whl → 2.0.2__py3-none-any.whl

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

Files changed (52) hide show
  1. chainlit/__init__.py +47 -57
  2. chainlit/action.py +8 -8
  3. chainlit/auth/__init__.py +1 -1
  4. chainlit/auth/cookie.py +7 -9
  5. chainlit/auth/jwt.py +5 -3
  6. chainlit/callbacks.py +1 -1
  7. chainlit/config.py +8 -59
  8. chainlit/copilot/dist/index.js +8319 -1019
  9. chainlit/data/__init__.py +71 -2
  10. chainlit/data/chainlit_data_layer.py +608 -0
  11. chainlit/data/literalai.py +1 -1
  12. chainlit/data/sql_alchemy.py +26 -2
  13. chainlit/data/storage_clients/azure_blob.py +89 -0
  14. chainlit/data/storage_clients/base.py +10 -0
  15. chainlit/data/storage_clients/gcs.py +88 -0
  16. chainlit/data/storage_clients/s3.py +42 -4
  17. chainlit/element.py +7 -4
  18. chainlit/emitter.py +9 -14
  19. chainlit/frontend/dist/assets/{DailyMotion-C-_sjrtO.js → DailyMotion-DFvM941y.js} +1 -1
  20. chainlit/frontend/dist/assets/Dataframe-CA6SlUSB.js +22 -0
  21. chainlit/frontend/dist/assets/{Facebook-bB34P03l.js → Facebook-BM4MwXR1.js} +1 -1
  22. chainlit/frontend/dist/assets/{FilePlayer-BWgqGrXv.js → FilePlayer-CfjB8iXr.js} +1 -1
  23. chainlit/frontend/dist/assets/{Kaltura-OY4P9Ofd.js → Kaltura-Bg-U6Xkz.js} +1 -1
  24. chainlit/frontend/dist/assets/{Mixcloud-9CtT8w5Y.js → Mixcloud-xJrfoMTv.js} +1 -1
  25. chainlit/frontend/dist/assets/{Mux-BH9A0qEi.js → Mux-CKnKDBmk.js} +1 -1
  26. chainlit/frontend/dist/assets/{Preview-Og00EJ05.js → Preview-DwHPdmIg.js} +1 -1
  27. chainlit/frontend/dist/assets/{SoundCloud-D7resGfn.js → SoundCloud-Crd5dwXV.js} +1 -1
  28. chainlit/frontend/dist/assets/{Streamable-6f_6bYz1.js → Streamable-Dq0c8lyx.js} +1 -1
  29. chainlit/frontend/dist/assets/{Twitch-BZJl3peM.js → Twitch-DIDvP936.js} +1 -1
  30. chainlit/frontend/dist/assets/{Vidyard-B7tv4b8_.js → Vidyard-B1dz9WN4.js} +1 -1
  31. chainlit/frontend/dist/assets/{Vimeo-F-eA4zQI.js → Vimeo-22Su6q2w.js} +1 -1
  32. chainlit/frontend/dist/assets/Wistia-C7adXRjN.js +1 -0
  33. chainlit/frontend/dist/assets/{YouTube-aFdJGjI1.js → YouTube-Dt4UMtQI.js} +1 -1
  34. chainlit/frontend/dist/assets/index-DbdLVHtZ.js +8665 -0
  35. chainlit/frontend/dist/assets/index-g8LTJwwr.css +1 -0
  36. chainlit/frontend/dist/assets/{react-plotly-DoUJXMgz.js → react-plotly-DvpXYYRJ.js} +1 -1
  37. chainlit/frontend/dist/index.html +2 -2
  38. chainlit/message.py +1 -3
  39. chainlit/server.py +297 -78
  40. chainlit/session.py +9 -0
  41. chainlit/socket.py +5 -53
  42. chainlit/step.py +0 -1
  43. chainlit/translations/en-US.json +1 -1
  44. chainlit/types.py +17 -3
  45. chainlit/user_session.py +1 -0
  46. {chainlit-2.0rc1.dist-info → chainlit-2.0.2.dist-info}/METADATA +4 -35
  47. {chainlit-2.0rc1.dist-info → chainlit-2.0.2.dist-info}/RECORD +49 -45
  48. chainlit/frontend/dist/assets/Wistia-Dhxhn3IB.js +0 -1
  49. chainlit/frontend/dist/assets/index-Ba33_hdJ.js +0 -1091
  50. chainlit/frontend/dist/assets/index-CwmincdQ.css +0 -1
  51. {chainlit-2.0rc1.dist-info → chainlit-2.0.2.dist-info}/WHEEL +0 -0
  52. {chainlit-2.0rc1.dist-info → chainlit-2.0.2.dist-info}/entry_points.txt +0 -0
chainlit/socket.py CHANGED
@@ -1,13 +1,11 @@
1
1
  import asyncio
2
2
  import json
3
- import time
4
3
  from typing import Any, Dict, Literal, Optional, Tuple, Union
5
4
  from urllib.parse import unquote
6
5
 
7
6
  from starlette.requests import cookie_parser
8
7
  from typing_extensions import TypeAlias
9
8
 
10
- from chainlit.action import Action
11
9
  from chainlit.auth import get_current_user, require_login
12
10
  from chainlit.chat_context import chat_context
13
11
  from chainlit.config import config
@@ -82,15 +80,6 @@ def load_user_env(user_env):
82
80
  return user_env
83
81
 
84
82
 
85
- def _get_token_from_auth(auth: dict) -> Optional[str]:
86
- # Not using cookie auth, return token.
87
- token = auth.get("token")
88
- if token:
89
- return token.split(" ")[1]
90
-
91
- return None
92
-
93
-
94
83
  def _get_token_from_cookie(environ: WSGIEnvironment) -> Optional[str]:
95
84
  if cookie_header := environ.get("HTTP_COOKIE", None):
96
85
  cookies = cookie_parser(cookie_header)
@@ -101,10 +90,6 @@ def _get_token_from_cookie(environ: WSGIEnvironment) -> Optional[str]:
101
90
 
102
91
  def _get_token(environ: WSGIEnvironment, auth: dict) -> Optional[str]:
103
92
  """Take WSGI environ, return access token."""
104
-
105
- if not config.project.cookie_auth:
106
- return _get_token_from_auth(auth)
107
-
108
93
  return _get_token_from_cookie(environ)
109
94
 
110
95
 
@@ -151,6 +136,7 @@ async def connect(sid, environ, auth):
151
136
 
152
137
  client_type = auth.get("clientType")
153
138
  http_referer = environ.get("HTTP_REFERER")
139
+ http_cookie = environ.get("HTTP_COOKIE")
154
140
  url_encoded_chat_profile = auth.get("chatProfile")
155
141
  chat_profile = (
156
142
  unquote(url_encoded_chat_profile) if url_encoded_chat_profile else None
@@ -169,6 +155,7 @@ async def connect(sid, environ, auth):
169
155
  thread_id=auth.get("threadId"),
170
156
  languages=environ.get("HTTP_ACCEPT_LANGUAGE"),
171
157
  http_referer=http_referer,
158
+ http_cookie=http_cookie,
172
159
  )
173
160
 
174
161
  trace_event("connection_successful")
@@ -202,6 +189,8 @@ async def connection_successful(sid):
202
189
 
203
190
  await context.emitter.resume_thread(thread)
204
191
  return
192
+ else:
193
+ await context.emitter.send_resume_thread_error("Thread not found.")
205
194
 
206
195
  if config.code.on_chat_start:
207
196
  task = asyncio.create_task(config.code.on_chat_start())
@@ -272,8 +261,7 @@ async def process_message(session: WebsocketSession, payload: MessagePayload):
272
261
  message = await context.emitter.process_message(payload)
273
262
 
274
263
  if config.code.on_message:
275
- # Sleep 1ms to make sure any children step starts after the message step start
276
- time.sleep(0.001)
264
+ await asyncio.sleep(0.001)
277
265
  await config.code.on_message(message)
278
266
  except asyncio.CancelledError:
279
267
  pass
@@ -387,42 +375,6 @@ async def audio_end(sid):
387
375
  await context.emitter.task_end()
388
376
 
389
377
 
390
- async def process_action(action: Action):
391
- callback = config.code.action_callbacks.get(action.name)
392
- if callback:
393
- res = await callback(action)
394
- return res
395
- else:
396
- logger.warning("No callback found for action %s", action.name)
397
-
398
-
399
- @sio.on("action_call")
400
- async def call_action(sid, action):
401
- """Handle an action call from the UI."""
402
- context = init_ws_context(sid)
403
-
404
- action = Action(**action)
405
-
406
- try:
407
- if not context.session.has_first_interaction:
408
- context.session.has_first_interaction = True
409
- asyncio.create_task(context.emitter.init_thread(action.name))
410
- res = await process_action(action)
411
- await context.emitter.send_action_response(
412
- id=action.id, status=True, response=res if isinstance(res, str) else None
413
- )
414
-
415
- except asyncio.CancelledError:
416
- await context.emitter.send_action_response(
417
- id=action.id, status=False, response="Action interrupted by the user"
418
- )
419
- except Exception as e:
420
- logger.exception(e)
421
- await context.emitter.send_action_response(
422
- id=action.id, status=False, response="An error occurred"
423
- )
424
-
425
-
426
378
  @sio.on("chat_settings_change")
427
379
  async def change_settings(sid, settings: Dict[str, Any]):
428
380
  """Handle change settings submit from the UI."""
chainlit/step.py CHANGED
@@ -62,7 +62,6 @@ class StepDict(TypedDict, total=False):
62
62
  generation: Optional[Dict]
63
63
  showInput: Optional[Union[bool, str]]
64
64
  language: Optional[str]
65
- indent: Optional[int]
66
65
  feedback: Optional[FeedbackDict]
67
66
 
68
67
 
@@ -176,7 +176,7 @@
176
176
  }
177
177
  },
178
178
  "DeleteThreadButton": {
179
- "confirmMessage": "This will delete the thread as well as it's messages and elements.",
179
+ "confirmMessage": "This will delete the thread as well as its messages and elements.",
180
180
  "cancel": "Cancel",
181
181
  "confirm": "Confirm",
182
182
  "deletingChat": "Deleting chat",
chainlit/types.py CHANGED
@@ -186,12 +186,16 @@ class AskFileResponse:
186
186
 
187
187
  class AskActionResponse(TypedDict):
188
188
  name: str
189
- value: str
189
+ payload: Dict
190
190
  label: str
191
- description: str
191
+ tooltip: str
192
192
  forId: str
193
193
  id: str
194
- collapsed: bool
194
+
195
+
196
+ class UpdateThreadRequest(BaseModel):
197
+ threadId: str
198
+ name: str
195
199
 
196
200
 
197
201
  class DeleteThreadRequest(BaseModel):
@@ -207,6 +211,16 @@ class GetThreadsRequest(BaseModel):
207
211
  filter: ThreadFilter
208
212
 
209
213
 
214
+ class CallActionRequest(BaseModel):
215
+ action: Dict
216
+ sessionId: str
217
+
218
+
219
+ class ElementRequest(BaseModel):
220
+ element: Dict
221
+ sessionId: str
222
+
223
+
210
224
  class Theme(str, Enum):
211
225
  light = "light"
212
226
  dark = "dark"
chainlit/user_session.py CHANGED
@@ -29,6 +29,7 @@ class UserSession:
29
29
  user_session["chat_profile"] = context.session.chat_profile
30
30
  user_session["http_referer"] = context.session.http_referer
31
31
  user_session["client_type"] = context.session.client_type
32
+ user_session["http_cookie"] = context.session.http_cookie
32
33
 
33
34
  if isinstance(context.session, WebsocketSession):
34
35
  user_session["languages"] = context.session.languages
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: chainlit
3
- Version: 2.0rc1
3
+ Version: 2.0.2
4
4
  Summary: Build Conversational AI.
5
5
  Home-page: https://chainlit.io/
6
6
  License: Apache-2.0
@@ -28,14 +28,13 @@ Requires-Dist: fastapi (>=0.115.3,<0.116)
28
28
  Requires-Dist: filetype (>=1.2.0,<2.0.0)
29
29
  Requires-Dist: httpx (>=0.23.0)
30
30
  Requires-Dist: lazify (>=0.4.0,<0.5.0)
31
- Requires-Dist: literalai (==0.0.623)
31
+ Requires-Dist: literalai (==0.1.103)
32
32
  Requires-Dist: nest-asyncio (>=1.6.0,<2.0.0)
33
- Requires-Dist: numpy (>=1.26,<2.0)
34
33
  Requires-Dist: packaging (>=23.1,<24.0)
35
34
  Requires-Dist: pydantic (>=1,<3)
36
35
  Requires-Dist: pyjwt (>=2.8.0,<3.0.0)
37
36
  Requires-Dist: python-dotenv (>=1.0.0,<2.0.0)
38
- Requires-Dist: python-multipart (>=0.0.9,<0.0.10)
37
+ Requires-Dist: python-multipart (>=0.0.18,<0.0.19)
39
38
  Requires-Dist: python-socketio (>=5.11.0,<6.0.0)
40
39
  Requires-Dist: starlette (>=0.41.2,<0.42.0)
41
40
  Requires-Dist: syncer (>=2.0.3,<3.0.0)
@@ -59,22 +58,10 @@ Description-Content-Type: text/markdown
59
58
 
60
59
  Chainlit is an open-source async Python framework which allows developers to build scalable Conversational AI or agentic applications.
61
60
 
62
- - ✅ ChatGPT-like application
63
- - ✅ Embedded Chatbot & Software Copilot
64
- - ✅ Slack & Discord
65
- - ✅ Custom frontend (build your own agentic experience)
66
- - ✅ API Endpoint
67
-
68
61
  Full documentation is available [here](https://docs.chainlit.io). You can ask Chainlit related questions to [Chainlit Help](https://help.chainlit.io/), an app built using Chainlit!
69
62
 
70
- > [!NOTE]
71
- > Check out [Literal AI](https://literalai.com), our product to monitor and evaluate LLM applications! It works with any Python or TypeScript applications and [seamlessly](https://docs.chainlit.io/data-persistence/overview) with Chainlit by adding a `LITERAL_API_KEY` in your project.
72
- >
73
- > Chainlit is developed and maintained by the Literal AI team, which is currently focused on expanding the capabilities of Literal AI. While we continue to support and maintain Chainlit, we are also committed to enabling the community to contribute, particularly in areas like integrations and data layers.
63
+ https://github.com/user-attachments/assets/b3738aba-55c0-42fa-ac00-6efd1ee0d148
74
64
 
75
- <p align="center">
76
- <img src="https://github.com/Chainlit/chainlit/assets/13104895/0c2cc7a9-766c-41d3-aae2-117a2d0eb8ed" alt="Chainlit user interface" width="80%"></img>
77
- </p>
78
65
 
79
66
  ## Installation
80
67
 
@@ -142,24 +129,6 @@ chainlit run demo.py -w
142
129
 
143
130
  <img src="/images/quick-start.png" alt="Quick Start"></img>
144
131
 
145
- ## 🎉 Key Features and Integrations
146
-
147
- Full documentation is available [here](https://docs.chainlit.io). Key features:
148
-
149
- - [💬 Multi Modal chats](https://docs.chainlit.io/advanced-features/multi-modal)
150
- - [💭 Chain of Thought visualization](https://docs.chainlit.io/concepts/step)
151
- - [💾 Data persistence + human feedback](https://docs.chainlit.io/data-persistence/overview)
152
- - [🐛 Debug Mode](https://docs.chainlit.io/data-persistence/enterprise#debug-mode)
153
- - [👤 Authentication](https://docs.chainlit.io/authentication/overview)
154
-
155
- Chainlit is compatible with all Python programs and libraries. That being said, it comes with integrations for:
156
-
157
- - [LangChain](https://docs.chainlit.io/integrations/langchain)
158
- - [Llama Index](https://docs.chainlit.io/integrations/llama-index)
159
- - [Autogen](https://github.com/Chainlit/cookbook/tree/main/pyautogen)
160
- - [OpenAI Assistant](https://github.com/Chainlit/cookbook/tree/main/openai-assistant)
161
- - [Haystack](https://docs.chainlit.io/integrations/haystack)
162
-
163
132
  ## 📚 More Examples - Cookbook
164
133
 
165
134
  You can find various examples of Chainlit apps [here](https://github.com/Chainlit/cookbook) that leverage tools and services such as OpenAI, Anthropiс, LangChain, LlamaIndex, ChromaDB, Pinecone and more.
@@ -1,56 +1,60 @@
1
- chainlit/__init__.py,sha256=EjmySeS9W3evZnNuf3v4BZNMgOqgIupT98H6T45od50,4585
1
+ chainlit/__init__.py,sha256=ZfEoaKPb53KVkzNvnsJLH2NWNaMyYvf0cPCZTAOsiNo,4371
2
2
  chainlit/__main__.py,sha256=7Vg3w3T3qDuz4KDu5lQhLH6lQ3cYdume7gHH7Z1V97U,87
3
3
  chainlit/_utils.py,sha256=vaKfEpXcL4kXktp54IRQWZRK4L_HGK8gJuAoIM29YYc,289
4
- chainlit/action.py,sha256=VF849Yr9R8LM1OXVz_pG3LholAZHPsW0xSSS-ew6jeo,1431
5
- chainlit/auth/__init__.py,sha256=6Hvc9WD6Lk4k3MhWNVyg-MwnB0M1ZxuOZ7Yb764_y2I,2613
6
- chainlit/auth/cookie.py,sha256=1UReymwdrSKWHYERIx-gkpA5_HhQcQRhGDjEmJYwfrs,3886
7
- chainlit/auth/jwt.py,sha256=4WIauNNR4WH42L8np6A-stS1lxxZ96eYjHfgsA0bDl0,869
4
+ chainlit/action.py,sha256=ljtpsPYRtFYigw2G6VbBworRHDL2fq8hE9A4H_fEijw,1333
5
+ chainlit/auth/__init__.py,sha256=RB7rw0-fa4gVh6cAKieqFVGB7F-cr84IOBvx1yoKU1g,2613
6
+ chainlit/auth/cookie.py,sha256=gRIxEnfX1W2MyFhN3Glg414-pDBR9MbbL970fvOpEbo,3809
7
+ chainlit/auth/jwt.py,sha256=2ZgwNljDk-ekpTU1kohvI55gaB9IM1bYJYHN1Xa7AKQ,965
8
8
  chainlit/cache.py,sha256=tPWzO4UHMgNnAnKolKdW0pm08ceZykrs25kvpWJHhN8,1389
9
- chainlit/callbacks.py,sha256=NAc-GCP_jvJLbQ6XRl_awwenMQu6JdSSOykC0UuDJL4,10150
9
+ chainlit/callbacks.py,sha256=_77KLfR2tXHOLpmDZbWsXWRquXlMvPRpeBPGY1rohKM,10151
10
10
  chainlit/chat_context.py,sha256=rVA4t2Df8YzMg-gNVArhDTZZ3wX83nOyKmgyHo8sJjQ,1848
11
11
  chainlit/chat_settings.py,sha256=iZ2vSUUz9UIBwrRBTelTJFzvNMDZ5vX2f16BuSDThEY,898
12
12
  chainlit/cli/__init__.py,sha256=00uuJPlSinXAV2WuHLIVQOQlZfOEUrwb1PD8coIFG6U,6582
13
- chainlit/config.py,sha256=hOJc1Q1IYV9slHZys2PY-iQ1UHaNO7MuG2g_xamiiZU,17787
13
+ chainlit/config.py,sha256=QVFTkgjoEjf1oxq2hOVd40rPH_taEEc-7E1XApFRbMw,16131
14
14
  chainlit/context.py,sha256=BtbGRdmRRqOC5Vbz8zijkgiN0gyKuDamkPPNrscOgo4,3317
15
15
  chainlit/copilot/dist/assets/logo_dark-IkGJ_IwC.svg,sha256=Kjz3QMh-oh-ag4YatjU0YCPqGF7F8nHh8VUQoJIs01E,8887
16
16
  chainlit/copilot/dist/assets/logo_light-Bb_IPh6r.svg,sha256=sHjnvEq1rfqh3bcexJNYUY7WEDdTQZq3aKZYpi4w4ck,8889
17
- chainlit/copilot/dist/index.js,sha256=TFcWFFvjsJFRtlhfhdhA8IClLukgHvozGewTDPjVXXY,7157744
18
- chainlit/data/__init__.py,sha256=T0Ll0aNLBJAPrUlWRA6o1MxU3mlRuBgo6NOUPxGImHs,1491
17
+ chainlit/copilot/dist/index.js,sha256=AcdYxtADJpXxjFbDPxmE94ubOoflBEVR3XQmyxjqlU0,7737537
18
+ chainlit/data/__init__.py,sha256=u9s1XLiryEW9t0PuJOSbIjOHqgOQ8_BbtAwJcJmZyXI,4729
19
19
  chainlit/data/acl.py,sha256=1g9fWxq3K2n06g1Ngb_QNBhyKNXUpKEGiUW6VnAfqtg,575
20
20
  chainlit/data/base.py,sha256=CmqWc9BtqGk79UUqJJIni81vAJFaV_UFpaFCw7gTkR0,2527
21
+ chainlit/data/chainlit_data_layer.py,sha256=75AjmtiKXD6dp6Ua2UPoATeOVMqkK9waWBBSHfZ0GOI,21508
21
22
  chainlit/data/dynamodb.py,sha256=UP3-3KZHFOCWxWQ-PL1VecLLSi0mKwFM-RiEfPtbVWE,19413
22
- chainlit/data/literalai.py,sha256=LByRNmsNLDJvzjF6fH7ds4iTTQqhBW8TKtqW2-hhbBY,17204
23
- chainlit/data/sql_alchemy.py,sha256=z1ZZfJ725mbKUg1Sc5MBJWRmC_tCHiIRjsgisE22cc8,29561
23
+ chainlit/data/literalai.py,sha256=qIuwBnOxvO4BAbKrRAg9h4UiYEcGkDMXKHux5Z1jO1Y,17202
24
+ chainlit/data/sql_alchemy.py,sha256=doDUh3lKXY1TlnHiF6-p576Opf6eIeYOaudtcdIqO8k,30521
24
25
  chainlit/data/storage_clients/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
26
  chainlit/data/storage_clients/azure.py,sha256=QQYX6J60kbYmQTggQQFaHdsVw61skh1FCL3V0X-Qy30,2531
26
- chainlit/data/storage_clients/base.py,sha256=mOu3yWgLaqtdPZFjdngJ8ItTR_8Nwq05JxIjXfXlYMg,440
27
- chainlit/data/storage_clients/s3.py,sha256=P75D4AKr-yzr50-vmiYhaEFWSeI241eCRsjkbZ58s6w,1159
27
+ chainlit/data/storage_clients/azure_blob.py,sha256=c3svW1jovdj-VtnhdJEsCqrABU2NQ9c565GuqER9ZB0,3283
28
+ chainlit/data/storage_clients/base.py,sha256=L_pp4dhLf--BzkfHDzuJbKJinFa9AHJHLZ9BGC-Z28c,644
29
+ chainlit/data/storage_clients/gcs.py,sha256=aRbbyrL7bOasOKVdycW4yykJVGt_IYM3ymoTO4Z3Ydw,2926
30
+ chainlit/data/storage_clients/s3.py,sha256=E9Qtw3SEZkLCd9UXPlz0dTpFz8X-UDYk95dMAen3FDg,2519
28
31
  chainlit/data/utils.py,sha256=cVe8p9F-lITgmAD2xhON_h0nKJVrh1P0AUoLCq6JCWs,966
29
32
  chainlit/discord/__init__.py,sha256=lTHHcYQmfa2wpJ35m3eveEpUbp6ti2YSA7AdopfsREs,219
30
33
  chainlit/discord/app.py,sha256=Kx0Y48Isy1BbwtoVM16tXqAIYtf_j8y1z2kXS5zIkuk,11175
31
- chainlit/element.py,sha256=qX4xuk8CJR8hEUV8CDgwOmQPWSq44_xB8JjOpgTM8Fk,11624
32
- chainlit/emitter.py,sha256=GiOiRqHnxGA1Kz-A5YvNIYbJWKr247Q1LB7uogx033A,14199
33
- chainlit/frontend/dist/assets/DailyMotion-C-_sjrtO.js,sha256=_y-_X9E2jFBz1phlekEKJijHhjT1SQZzMJTn_OLrsrM,2958
34
- chainlit/frontend/dist/assets/Facebook-bB34P03l.js,sha256=C3XLakYS93kOo2a64lpE4WDbZ6UPn1ay7N4zb2ZBTFo,3213
35
- chainlit/frontend/dist/assets/FilePlayer-BWgqGrXv.js,sha256=DJrT-BwE3qWlbgCNXnKs5VNvz74wB2CQjLNkSduB5C0,9038
36
- chainlit/frontend/dist/assets/Kaltura-OY4P9Ofd.js,sha256=ctJjXvgCLR58vpMgGDPRu3tFpEy8QC8oiag2exdrgYk,2787
37
- chainlit/frontend/dist/assets/Mixcloud-9CtT8w5Y.js,sha256=aE1vybcsft_lcekTU-WYp3PrvJeesfhXqFdc7B8kUnk,2635
38
- chainlit/frontend/dist/assets/Mux-BH9A0qEi.js,sha256=yg3TlFZuKEJlcKVahCGZfLeyQpQ9AfqCOV3nBztBXe0,5357
39
- chainlit/frontend/dist/assets/Preview-Og00EJ05.js,sha256=sBlqV2noO2IL0HLw55Hsfe-8wNKTHn6aGjmtgg_xlsc,3008
40
- chainlit/frontend/dist/assets/SoundCloud-D7resGfn.js,sha256=CQW0zISkPS-WtoXyt2fir1Oq4fID0Vl-j2V0Kdk-GO4,2920
41
- chainlit/frontend/dist/assets/Streamable-6f_6bYz1.js,sha256=RgZ-3PEDrxBgHQk7Y7gFzHVnUwzNWwccD72U5Z6kHkk,2932
42
- chainlit/frontend/dist/assets/Twitch-BZJl3peM.js,sha256=_CtEsitOP5us43VszBaQ5K-kjcxPVRpM3OOdXfXVzxE,3080
43
- chainlit/frontend/dist/assets/Vidyard-B7tv4b8_.js,sha256=Sa3k_8hZoD_ZOMk7XY8oCwzI6w4KDqb_XxGG77bn0OA,2854
44
- chainlit/frontend/dist/assets/Vimeo-F-eA4zQI.js,sha256=AAfvp9vOCdfxh91sS9EvIOKUwbyev6BukeFOOI9yJQs,3624
45
- chainlit/frontend/dist/assets/Wistia-Dhxhn3IB.js,sha256=_b8s-XeftgxRDpQJ1IavgNSz_v9Cw_dO82wavAoQa4o,3511
46
- chainlit/frontend/dist/assets/YouTube-aFdJGjI1.js,sha256=M3ZJH15HLCFD2Ywlzez9hgVZxG5glDg8Bc60_ABw_bA,4445
47
- chainlit/frontend/dist/assets/index-Ba33_hdJ.js,sha256=0cOpEPr8Cak_4nBmobbCIdCg5KS5X5uWKbQ6lD3qRP8,3087665
48
- chainlit/frontend/dist/assets/index-CwmincdQ.css,sha256=qvl0qUmR5u0JcmJAfkzaZpN-0ZKdQjzqCSE9cnrQpZQ,2559
34
+ chainlit/element.py,sha256=7YVgbeST8qRAYO2kM8LrNvI2q4c_3xgZJL6paCn2n08,11731
35
+ chainlit/emitter.py,sha256=X8OwAGkcs44Gp3OyLtClFqqMuMJMH_AOJHXafCBCYH4,14088
36
+ chainlit/frontend/dist/assets/DailyMotion-DFvM941y.js,sha256=ErXwiKuHXfkUPYDtp6Ti_qUw2fOdApRJj2xRRXU1Oy0,2958
37
+ chainlit/frontend/dist/assets/Dataframe-CA6SlUSB.js,sha256=0hFrbHjWYpLIP5T0WCz14SukzCUA4WvNywx6rYs4fZk,53932
38
+ chainlit/frontend/dist/assets/Facebook-BM4MwXR1.js,sha256=vczt4Ny4sM5LqliK2btwe0klIpd5OMQ1WwRAO5OL2jU,3213
39
+ chainlit/frontend/dist/assets/FilePlayer-CfjB8iXr.js,sha256=GME3JROpJG4igEeq5Y9XqvfCsTdJj25iXFJbJHCqqrE,9038
40
+ chainlit/frontend/dist/assets/Kaltura-Bg-U6Xkz.js,sha256=lZ_koYDqhKU7RS8UWOM5LG_iXrqr3D7fC9um49d-yqk,2787
41
+ chainlit/frontend/dist/assets/Mixcloud-xJrfoMTv.js,sha256=e_oCuu0wNcaGKNqRFAT5fLL5mFh32wQlheV19aNMb4s,2635
42
+ chainlit/frontend/dist/assets/Mux-CKnKDBmk.js,sha256=jl8vKMIMHrBCL-BfefyXTprSE9NFVhbe8JR6R0uV6EA,5357
43
+ chainlit/frontend/dist/assets/Preview-DwHPdmIg.js,sha256=-s72c4a2AWvZDO0yDxlXfYMjy3673zdUDnr5clE9Th0,3008
44
+ chainlit/frontend/dist/assets/SoundCloud-Crd5dwXV.js,sha256=WeUj6G5QxJ7vmUYCT_mWcFuI5aF9Qg5hIMraAIshrQM,2920
45
+ chainlit/frontend/dist/assets/Streamable-Dq0c8lyx.js,sha256=fh1mFJoEhdXnVcKxPSQ7hZwy2ytbhYzDakn3di2d_Ew,2932
46
+ chainlit/frontend/dist/assets/Twitch-DIDvP936.js,sha256=olNnqgR5bFdE2q6gFLEwfOMDzAErfhD2qQVy9A72yxA,3080
47
+ chainlit/frontend/dist/assets/Vidyard-B1dz9WN4.js,sha256=v-gXgTz5-yNQ72MKhrUsb_HEvjXtzaffN59VbC7mP0A,2854
48
+ chainlit/frontend/dist/assets/Vimeo-22Su6q2w.js,sha256=siRqkA42eOe0N_5nKqKm_LdC0MeA13Ke3OZU4ZIy-gM,3624
49
+ chainlit/frontend/dist/assets/Wistia-C7adXRjN.js,sha256=RAb0s9pHCgkULyBoslhGPTEol9WeYFj_sAvheFc40jk,3516
50
+ chainlit/frontend/dist/assets/YouTube-Dt4UMtQI.js,sha256=zIDBy9Cmjpqz6EL39LbYpoq7S7LbdT7hXP8j-Izmcec,4445
51
+ chainlit/frontend/dist/assets/index-DbdLVHtZ.js,sha256=nNmMY-H5JH-X3yerYy8Ed_xnIXF7_WEScUD0xieuQX8,3729956
52
+ chainlit/frontend/dist/assets/index-g8LTJwwr.css,sha256=uruR7HQDJEhdhARMz0uJXjUecCYmqu29EQAWErVl_p0,60378
49
53
  chainlit/frontend/dist/assets/logo_dark-IkGJ_IwC.svg,sha256=Kjz3QMh-oh-ag4YatjU0YCPqGF7F8nHh8VUQoJIs01E,8887
50
54
  chainlit/frontend/dist/assets/logo_light-Bb_IPh6r.svg,sha256=sHjnvEq1rfqh3bcexJNYUY7WEDdTQZq3aKZYpi4w4ck,8889
51
- chainlit/frontend/dist/assets/react-plotly-DoUJXMgz.js,sha256=9eFe5LNOVztaiBVdOLs9_ijXT4jQxu-7xGLpXzony5M,3762918
55
+ chainlit/frontend/dist/assets/react-plotly-DvpXYYRJ.js,sha256=nAaQw4iPRjWYM8Z8icZRLNc2xzMxOXRXvbyXzXa7XfA,3762918
52
56
  chainlit/frontend/dist/favicon.svg,sha256=0Cy8x28obT5eWW3nxZRhsEvu6_zMqrqbg0y6hT3D0Q0,6455
53
- chainlit/frontend/dist/index.html,sha256=uVeKEFpHMr9_4yJ-hnAUzy43vl-E0t67KQ1xKyklVns,972
57
+ chainlit/frontend/dist/index.html,sha256=4iIBNwSY_CP-yBT3K8OGOA2LI9X-Vyn_u78pvMh7tqY,972
54
58
  chainlit/haystack/__init__.py,sha256=uZ77YiPy-qleSTi3dQCDO9HE6S6F6GpJWmh7jO4cxXA,217
55
59
  chainlit/haystack/callbacks.py,sha256=J5t6YL3QoxyT0sg8t08nPA7b4VOGKIkmWtkbmFZXjBI,5038
56
60
  chainlit/hello.py,sha256=LwENQWo5s5r8nNDn4iKSV77vX60Ky5r_qGjQhyi7qlY,416
@@ -62,24 +66,24 @@ chainlit/llama_index/__init__.py,sha256=weRoIWCaRBGvA1LczCEfsqhWsltQSVlhtRnTovtd
62
66
  chainlit/llama_index/callbacks.py,sha256=aCi39G4Sbh_MjuSZbBv3_PM5190YA5UqNTN7DrdtT1I,7282
63
67
  chainlit/logger.py,sha256=wTwRSZsLfXwWy6U4351IgWAm4KCMThgxm9EZpjGUEr4,373
64
68
  chainlit/markdown.py,sha256=V-Op4hyqyTTvXInU5QrHfxs0nb71lBMU8trOSAlast8,2142
65
- chainlit/message.py,sha256=eR6wbKx9AAIJwdMkB7F9ddPYSVpDASJiLwi-MSG3t30,17300
69
+ chainlit/message.py,sha256=KoBretNwiS2i1BMPhRpqItlcEvyanxgaq8qh-Dwv6R0,17232
66
70
  chainlit/mistralai/__init__.py,sha256=BeH3LRmJ5mUgMlOA8XS61nhoQwVreW6sENJdIrlfDXw,1508
67
71
  chainlit/oauth_providers.py,sha256=AnH-bqeCnS7VgyIhgAHDI5-XkVWsFr52yo65ldePxxw,26653
68
72
  chainlit/openai/__init__.py,sha256=qGC9yJydzlZffrC1oCPZwpuWwJkittDq74o6U2J_-Ho,1691
69
73
  chainlit/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
70
74
  chainlit/secret.py,sha256=eYbDDENGfk1XcQ-hIOT2kEejZeLi6Y3Y3qWD5Y7JbCg,293
71
- chainlit/server.py,sha256=8ZycGs1wTrrmFXEbi3xWDaLwQ0o2xa_FAKK7kRW9Vqg,32499
72
- chainlit/session.py,sha256=8FtqFu31BQKjrHdo_VrrBkSqPqxudoi2bnC8Lifyu-8,9197
75
+ chainlit/server.py,sha256=kwgIFVJol-tlREajOiBgZaCnJqwSC7NYdMtDnS7YItg,39305
76
+ chainlit/session.py,sha256=ILL6j_J2gmiW5qwMIpmy1oO-3sQCob-p7HDgxXufwqk,9490
73
77
  chainlit/slack/__init__.py,sha256=gkC1iYlQrWHDN8bbsWOquwwlyW9DtKAe22GizJJzY7A,226
74
78
  chainlit/slack/app.py,sha256=OvbbGZARI1mHOEdVvxh8KTZ35Ryi4AbdP7grjr-VU1k,11742
75
- chainlit/socket.py,sha256=R6vYCQPKQFWsf2a33Ba8RVCOd7pT_Q6H5YOHezs7Xwc,13633
76
- chainlit/step.py,sha256=XSeoqsPoOSRTZmVpTLYky_s6cLAdHfH0H9YNDWXz74I,14338
79
+ chainlit/socket.py,sha256=QvN54a-1wJXGMtZ-qRTaTdwKrn7pGzsIyV3v9PW2gKg,12214
80
+ chainlit/step.py,sha256=_bJZ3EuPEcLmtvpfJGpgixQcz6aTUqXEil40-BuS5xE,14312
77
81
  chainlit/sync.py,sha256=pEaqdEoOp4W26p9-E11BiXemVTN4_OsYEcYyjLBEj7E,1236
78
82
  chainlit/teams/__init__.py,sha256=_lUcuc5R4bYwUoC15jyKES10KTeH8ciSWqV5JyLrW6M,236
79
83
  chainlit/teams/app.py,sha256=PAvlGkfF-KGe9PYT6rL8UXu4OYzsPjfTiNsysH1X8NY,10534
80
84
  chainlit/telemetry.py,sha256=Rk4dnZv0OnGOgV4kD-VHdhgl4i7i3ypqhSE_R-LZceM,3060
81
85
  chainlit/translations/bn.json,sha256=_44si0jO2AFZytfH9sBcINpOveQ4OZs77yf-_VlUtjs,13172
82
- chainlit/translations/en-US.json,sha256=eS9YSnca-MFpWeZI4JhI0Yl0YBQlrsxB-yFM62K03bI,7778
86
+ chainlit/translations/en-US.json,sha256=1eyiwtp68DPSTdSQzSPjyMilqija1IUc0SA9TtSVJSo,7777
83
87
  chainlit/translations/gu.json,sha256=CkhAowZ0mgMJhQUMrUADfKPfsDgj5mvHlC3WtQ0UjQE,12699
84
88
  chainlit/translations/he-IL.json,sha256=fu6FXfoqYqydSh_NcDpS6ZN7byQ-WZkr4zU0qXznqwc,8789
85
89
  chainlit/translations/hi.json,sha256=J15GBkMu45RJMj1p5sFVnlackwAp_jKySRsKN-wRCUg,12397
@@ -91,12 +95,12 @@ chainlit/translations/ta.json,sha256=kLXucUlMCD3jXlPhmOZ3FFZNdXfGDaqVxwqGqJqVF78
91
95
  chainlit/translations/te.json,sha256=spOs9mYNITEUy_mKp4_9qmXP2yACVrruiQKb1zlRIWU,13608
92
96
  chainlit/translations/zh-CN.json,sha256=Y3MhXUDFi4YMxX8-agpCM68efYXCGcHqyqRAen8LLfk,7508
93
97
  chainlit/translations.py,sha256=WG_r7HzxBYns-zk9tVvoGdoofv71okTZx8k1RlcoTIg,2034
94
- chainlit/types.py,sha256=LZBliyLOEta78oXEa-kbzBsx7ddcbCSGF2i833IvZC4,5181
98
+ chainlit/types.py,sha256=Kx3G-gWd6LeGQweBo5kfC6HaXYysjJT_wU7ztC784Lg,5378
95
99
  chainlit/user.py,sha256=yC9WvWYogoAa-6-mBR2HNHuZdE5rejGQD4vqQixIckA,772
96
- chainlit/user_session.py,sha256=T1nQVN_weELXTrkDIV54YgdrA3zIvJGe1tN-nypunt4,1531
100
+ chainlit/user_session.py,sha256=OWkIuDuy-He9_u6NHmH_mqpMiWFNPR2RoB8Cveum4Vw,1597
97
101
  chainlit/utils.py,sha256=ht6S0RM0-51_EyKZ128yRYAT294Bf3gwgMBzIHv1xRI,3990
98
102
  chainlit/version.py,sha256=VcRO6Iwchkv80BWb4hRGkOnBgDhj87-Yjorcv1u5Z3g,276
99
- chainlit-2.0rc1.dist-info/METADATA,sha256=NA7JMIALTKliEsaTH5QJUw7dgc6qkVG69O6zUedeGQc,7059
100
- chainlit-2.0rc1.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
101
- chainlit-2.0rc1.dist-info/entry_points.txt,sha256=FrkqdjrFl8juSnvBndniyX7XuKojmUwO4ghRh-CFMQc,45
102
- chainlit-2.0rc1.dist-info/RECORD,,
103
+ chainlit-2.0.2.dist-info/METADATA,sha256=HHVlMREsx_fuj0wH_bN7ve5zrtmh2mS2Nk12qwUt2zk,5150
104
+ chainlit-2.0.2.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
105
+ chainlit-2.0.2.dist-info/entry_points.txt,sha256=FrkqdjrFl8juSnvBndniyX7XuKojmUwO4ghRh-CFMQc,45
106
+ chainlit-2.0.2.dist-info/RECORD,,
@@ -1 +0,0 @@
1
- import{g,r as m,u as v,a as w}from"./index-Ba33_hdJ.js";function O(t,e){for(var a=0;a<e.length;a++){const s=e[a];if(typeof s!="string"&&!Array.isArray(s)){for(const r in s)if(r!=="default"&&!(r in t)){const o=Object.getOwnPropertyDescriptor(s,r);o&&Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:()=>s[r]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var C=Object.create,i=Object.defineProperty,k=Object.getOwnPropertyDescriptor,D=Object.getOwnPropertyNames,E=Object.getPrototypeOf,S=Object.prototype.hasOwnProperty,R=(t,e,a)=>e in t?i(t,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[e]=a,j=(t,e)=>{for(var a in e)i(t,a,{get:e[a],enumerable:!0})},h=(t,e,a,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of D(e))!S.call(t,r)&&r!==a&&i(t,r,{get:()=>e[r],enumerable:!(s=k(e,r))||s.enumerable});return t},I=(t,e,a)=>(a=t!=null?C(E(t)):{},h(!t||!t.__esModule?i(a,"default",{value:t,enumerable:!0}):a,t)),M=t=>h(i({},"__esModule",{value:!0}),t),n=(t,e,a)=>(R(t,typeof e!="symbol"?e+"":e,a),a),d={};j(d,{default:()=>l});var _=M(d),y=I(m),c=v,P=w;const W="https://fast.wistia.com/assets/external/E-v1.js",x="Wistia",A="wistia-player-";class l extends y.Component{constructor(){super(...arguments),n(this,"callPlayer",c.callPlayer),n(this,"playerID",this.props.config.playerId||`${A}${(0,c.randomString)()}`),n(this,"onPlay",(...e)=>this.props.onPlay(...e)),n(this,"onPause",(...e)=>this.props.onPause(...e)),n(this,"onSeek",(...e)=>this.props.onSeek(...e)),n(this,"onEnded",(...e)=>this.props.onEnded(...e)),n(this,"onPlaybackRateChange",(...e)=>this.props.onPlaybackRateChange(...e)),n(this,"mute",()=>{this.callPlayer("mute")}),n(this,"unmute",()=>{this.callPlayer("unmute")})}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e){const{playing:a,muted:s,controls:r,onReady:o,config:p,onError:b}=this.props;(0,c.getSDK)(W,x).then(f=>{p.customControls&&p.customControls.forEach(u=>f.defineControl(u)),window._wq=window._wq||[],window._wq.push({id:this.playerID,options:{autoPlay:a,silentAutoPlay:"allow",muted:s,controlsVisibleOnLoad:r,fullscreenButton:r,playbar:r,playbackRateControl:r,qualityControl:r,volumeControl:r,settingsControl:r,smallPlayButton:r,...p.options},onReady:u=>{this.player=u,this.unbind(),this.player.bind("play",this.onPlay),this.player.bind("pause",this.onPause),this.player.bind("seek",this.onSeek),this.player.bind("end",this.onEnded),this.player.bind("playbackratechange",this.onPlaybackRateChange),o()}})},b)}unbind(){this.player.unbind("play",this.onPlay),this.player.unbind("pause",this.onPause),this.player.unbind("seek",this.onSeek),this.player.unbind("end",this.onEnded),this.player.unbind("playbackratechange",this.onPlaybackRateChange)}play(){this.callPlayer("play")}pause(){this.callPlayer("pause")}stop(){this.unbind(),this.callPlayer("remove")}seekTo(e,a=!0){this.callPlayer("time",e),a||this.pause()}setVolume(e){this.callPlayer("volume",e)}setPlaybackRate(e){this.callPlayer("playbackRate",e)}getDuration(){return this.callPlayer("duration")}getCurrentTime(){return this.callPlayer("time")}getSecondsLoaded(){return null}render(){const{url:e}=this.props,a=e&&e.match(P.MATCH_URL_WISTIA)[1],s=`wistia_embed wistia_async_${a}`,r={width:"100%",height:"100%"};return y.default.createElement("div",{id:this.playerID,key:a,className:s,style:r})}}n(l,"displayName","Wistia");n(l,"canPlay",P.canPlay.wistia);n(l,"loopOnEnded",!0);const L=g(_),T=O({__proto__:null,default:L},[_]);export{T as W};