webagents 0.1.0__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.
- webagents/__init__.py +18 -0
- webagents/__main__.py +55 -0
- webagents/agents/__init__.py +13 -0
- webagents/agents/core/__init__.py +19 -0
- webagents/agents/core/base_agent.py +1834 -0
- webagents/agents/core/handoffs.py +293 -0
- webagents/agents/handoffs/__init__.py +0 -0
- webagents/agents/interfaces/__init__.py +0 -0
- webagents/agents/lifecycle/__init__.py +0 -0
- webagents/agents/skills/__init__.py +109 -0
- webagents/agents/skills/base.py +136 -0
- webagents/agents/skills/core/__init__.py +8 -0
- webagents/agents/skills/core/guardrails/__init__.py +0 -0
- webagents/agents/skills/core/llm/__init__.py +0 -0
- webagents/agents/skills/core/llm/anthropic/__init__.py +1 -0
- webagents/agents/skills/core/llm/litellm/__init__.py +10 -0
- webagents/agents/skills/core/llm/litellm/skill.py +538 -0
- webagents/agents/skills/core/llm/openai/__init__.py +1 -0
- webagents/agents/skills/core/llm/xai/__init__.py +1 -0
- webagents/agents/skills/core/mcp/README.md +375 -0
- webagents/agents/skills/core/mcp/__init__.py +15 -0
- webagents/agents/skills/core/mcp/skill.py +731 -0
- webagents/agents/skills/core/memory/__init__.py +11 -0
- webagents/agents/skills/core/memory/long_term_memory/__init__.py +10 -0
- webagents/agents/skills/core/memory/long_term_memory/memory_skill.py +639 -0
- webagents/agents/skills/core/memory/short_term_memory/__init__.py +9 -0
- webagents/agents/skills/core/memory/short_term_memory/skill.py +341 -0
- webagents/agents/skills/core/memory/vector_memory/skill.py +447 -0
- webagents/agents/skills/core/planning/__init__.py +9 -0
- webagents/agents/skills/core/planning/planner.py +343 -0
- webagents/agents/skills/ecosystem/__init__.py +0 -0
- webagents/agents/skills/ecosystem/crewai/__init__.py +1 -0
- webagents/agents/skills/ecosystem/database/__init__.py +1 -0
- webagents/agents/skills/ecosystem/filesystem/__init__.py +0 -0
- webagents/agents/skills/ecosystem/google/__init__.py +0 -0
- webagents/agents/skills/ecosystem/google/calendar/__init__.py +6 -0
- webagents/agents/skills/ecosystem/google/calendar/skill.py +306 -0
- webagents/agents/skills/ecosystem/n8n/__init__.py +0 -0
- webagents/agents/skills/ecosystem/openai_agents/__init__.py +0 -0
- webagents/agents/skills/ecosystem/web/__init__.py +0 -0
- webagents/agents/skills/ecosystem/zapier/__init__.py +0 -0
- webagents/agents/skills/robutler/__init__.py +11 -0
- webagents/agents/skills/robutler/auth/README.md +63 -0
- webagents/agents/skills/robutler/auth/__init__.py +17 -0
- webagents/agents/skills/robutler/auth/skill.py +354 -0
- webagents/agents/skills/robutler/crm/__init__.py +18 -0
- webagents/agents/skills/robutler/crm/skill.py +368 -0
- webagents/agents/skills/robutler/discovery/README.md +281 -0
- webagents/agents/skills/robutler/discovery/__init__.py +16 -0
- webagents/agents/skills/robutler/discovery/skill.py +230 -0
- webagents/agents/skills/robutler/kv/__init__.py +6 -0
- webagents/agents/skills/robutler/kv/skill.py +80 -0
- webagents/agents/skills/robutler/message_history/__init__.py +9 -0
- webagents/agents/skills/robutler/message_history/skill.py +270 -0
- webagents/agents/skills/robutler/messages/__init__.py +0 -0
- webagents/agents/skills/robutler/nli/__init__.py +13 -0
- webagents/agents/skills/robutler/nli/skill.py +687 -0
- webagents/agents/skills/robutler/notifications/__init__.py +5 -0
- webagents/agents/skills/robutler/notifications/skill.py +141 -0
- webagents/agents/skills/robutler/payments/__init__.py +41 -0
- webagents/agents/skills/robutler/payments/exceptions.py +255 -0
- webagents/agents/skills/robutler/payments/skill.py +610 -0
- webagents/agents/skills/robutler/storage/__init__.py +10 -0
- webagents/agents/skills/robutler/storage/files/__init__.py +9 -0
- webagents/agents/skills/robutler/storage/files/skill.py +445 -0
- webagents/agents/skills/robutler/storage/json/__init__.py +9 -0
- webagents/agents/skills/robutler/storage/json/skill.py +336 -0
- webagents/agents/skills/robutler/storage/kv/skill.py +88 -0
- webagents/agents/skills/robutler/storage.py +389 -0
- webagents/agents/tools/__init__.py +0 -0
- webagents/agents/tools/decorators.py +426 -0
- webagents/agents/tracing/__init__.py +0 -0
- webagents/agents/workflows/__init__.py +0 -0
- webagents/scripts/__init__.py +0 -0
- webagents/server/__init__.py +28 -0
- webagents/server/context/__init__.py +0 -0
- webagents/server/context/context_vars.py +121 -0
- webagents/server/core/__init__.py +0 -0
- webagents/server/core/app.py +843 -0
- webagents/server/core/middleware.py +69 -0
- webagents/server/core/models.py +98 -0
- webagents/server/core/monitoring.py +59 -0
- webagents/server/endpoints/__init__.py +0 -0
- webagents/server/interfaces/__init__.py +0 -0
- webagents/server/middleware.py +330 -0
- webagents/server/models.py +92 -0
- webagents/server/monitoring.py +659 -0
- webagents/utils/__init__.py +0 -0
- webagents/utils/logging.py +359 -0
- webagents-0.1.0.dist-info/METADATA +230 -0
- webagents-0.1.0.dist-info/RECORD +94 -0
- webagents-0.1.0.dist-info/WHEEL +4 -0
- webagents-0.1.0.dist-info/entry_points.txt +2 -0
- webagents-0.1.0.dist-info/licenses/LICENSE +20 -0
@@ -0,0 +1,94 @@
|
|
1
|
+
webagents/__init__.py,sha256=N4dAwBpmq88YlPYFlBM2yQ0V_B7_uLxzhLzwGDb6Dew,374
|
2
|
+
webagents/__main__.py,sha256=5e1gYVYHzbADPIMYsoZRyBg-gRtdvFi8ykBsZYXFrqU,1346
|
3
|
+
webagents/agents/__init__.py,sha256=xh0Q3JyTN71ByorxVz_o_4lSrmVicA6LxNsuA7aF7W8,245
|
4
|
+
webagents/agents/core/__init__.py,sha256=WL5kMK1NuAWfKLTJQ0le68k4tRTOrOcf485bKRHBPiw,542
|
5
|
+
webagents/agents/core/base_agent.py,sha256=0DgHqdey-tqmv0JTHMzICBdzVuensUQkMSL23sx0Gog,93823
|
6
|
+
webagents/agents/core/handoffs.py,sha256=vfojIHoy_IKHU5sxs2PY8hZFyBLlYdlujQFXnqzvK9c,11076
|
7
|
+
webagents/agents/handoffs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
8
|
+
webagents/agents/interfaces/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
9
|
+
webagents/agents/lifecycle/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
10
|
+
webagents/agents/skills/__init__.py,sha256=qGawdVNp1AtF09-vAVR2s77SwQCTnZIaIGskDv5e81g,3211
|
11
|
+
webagents/agents/skills/base.py,sha256=s_wdhmqDGVCSXJiahwuUdKWeXIpdPfe_e8NL67oKbsc,5099
|
12
|
+
webagents/agents/skills/core/__init__.py,sha256=xT_-sPnLbxTUqjvg0toVCqQyB6OP-An_vBprdv_t0xA,258
|
13
|
+
webagents/agents/skills/core/guardrails/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
14
|
+
webagents/agents/skills/core/llm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
15
|
+
webagents/agents/skills/core/llm/anthropic/__init__.py,sha256=NkitGyW7aAdDPKsIeZaU979us3yg84Hej1L_Ogtw-f8,68
|
16
|
+
webagents/agents/skills/core/llm/litellm/__init__.py,sha256=DaUZozXF_x7LWfH_Blrn7rpF7Y7k91VRnRKoh_2JbqI,272
|
17
|
+
webagents/agents/skills/core/llm/litellm/skill.py,sha256=tNQ61DmvpmfwB6fU0cJlzb0OicV6jB1wPJHUdiU80zc,22267
|
18
|
+
webagents/agents/skills/core/llm/openai/__init__.py,sha256=eHvy20Z-geoVAZu8MstRiPXsEXZLJcBq3GtSZSLeOXo,65
|
19
|
+
webagents/agents/skills/core/llm/xai/__init__.py,sha256=HPcn0Ki-Di0kIzV5bvb-Vt-8vGW-ufBmHI9ZBeIdlA8,62
|
20
|
+
webagents/agents/skills/core/mcp/README.md,sha256=niQJlntyF6WbaxsUuJVYHFYJ93nV6u4F_QQ_TJZIAP8,14950
|
21
|
+
webagents/agents/skills/core/mcp/__init__.py,sha256=0dBqPqObN8kREXP28fX-ANxxyf6NFol_n95TgxTYkjU,366
|
22
|
+
webagents/agents/skills/core/mcp/skill.py,sha256=CrsamhExnEwDJRlHT57PItTWSajWqM-uGLhJxoE_zqU,30254
|
23
|
+
webagents/agents/skills/core/memory/__init__.py,sha256=EH3YM_WQ9GZcgJnbxfB5UaKZj6VU3a9k8pD-GcLnExI,328
|
24
|
+
webagents/agents/skills/core/memory/long_term_memory/__init__.py,sha256=Bk4DChm7NDLizK0yS-NBWTA7FWSc_SSVYI80F_BJ6MU,258
|
25
|
+
webagents/agents/skills/core/memory/long_term_memory/memory_skill.py,sha256=Swc2eQUKRheH88J-AVoP7zj8pqMxYrXtSsAbILBHVdM,24069
|
26
|
+
webagents/agents/skills/core/memory/short_term_memory/__init__.py,sha256=TH5ijPbZau6oUTjgj5R1YqSw5x_kqWJhzJlaoGVeymc,217
|
27
|
+
webagents/agents/skills/core/memory/short_term_memory/skill.py,sha256=rif35KGClq6tC_Tf5Y0GDND_jEyGZc9GVtm8Mhugyog,12791
|
28
|
+
webagents/agents/skills/core/memory/vector_memory/skill.py,sha256=VJwwmlO1daPBeUD0YSumEX9Xeb2o525eL8ZT1i5l2Zo,20001
|
29
|
+
webagents/agents/skills/core/planning/__init__.py,sha256=VjFRykXTRe9F0oHukmCFcbDuXg_bQU8XIcI8VEA69Y4,223
|
30
|
+
webagents/agents/skills/core/planning/planner.py,sha256=EFBH9vrYcYaWgXSlC0c8nUP9eGj6b_RyZ4dHbNjFVXU,13900
|
31
|
+
webagents/agents/skills/ecosystem/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
32
|
+
webagents/agents/skills/ecosystem/crewai/__init__.py,sha256=MfHsOOPpXVUWcXyiip2_svHF8YxrJ60cH28TM8ef__Q,30
|
33
|
+
webagents/agents/skills/ecosystem/database/__init__.py,sha256=x2y6F1FCplEmLaUXKztNDtNg_o1Y61ttiH1EiSrqCJ0,32
|
34
|
+
webagents/agents/skills/ecosystem/filesystem/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
35
|
+
webagents/agents/skills/ecosystem/google/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
36
|
+
webagents/agents/skills/ecosystem/google/calendar/__init__.py,sha256=s_e6EPc07c-iO06BUYaVyat1arGkNBLt29BKHubL6-0,77
|
37
|
+
webagents/agents/skills/ecosystem/google/calendar/skill.py,sha256=hWFICppmWbHvecRLNz8NJJyT1GiQj_oR-ioxDDzQ_ig,15623
|
38
|
+
webagents/agents/skills/ecosystem/n8n/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
39
|
+
webagents/agents/skills/ecosystem/openai_agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
40
|
+
webagents/agents/skills/ecosystem/web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
41
|
+
webagents/agents/skills/ecosystem/zapier/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
42
|
+
webagents/agents/skills/robutler/__init__.py,sha256=r3pYQje2t1T6ooLa45JXPgVOnTJPDvtrFV3i1i-fDTA,166
|
43
|
+
webagents/agents/skills/robutler/storage.py,sha256=qUTeGUYoW46TshYlLKTORoUIRT3fmzoatNE4gCGB6hU,14690
|
44
|
+
webagents/agents/skills/robutler/auth/README.md,sha256=mRcuGF3ty3WyoMCwR0pxYnOWNOKyM7h5MW67-9Y3V4M,2556
|
45
|
+
webagents/agents/skills/robutler/auth/__init__.py,sha256=OFcHOoGHoPrfRw4xJfbBPIooZ9GAwTbdHFXzhMH8ams,452
|
46
|
+
webagents/agents/skills/robutler/auth/skill.py,sha256=_LsWWmpiqZKWQ3G_KORAl-kjsw4GR4oYvhQ-TBWccWQ,14831
|
47
|
+
webagents/agents/skills/robutler/crm/__init__.py,sha256=rd43zSRWB14p-oj-Apj83PiwhIwXip1jWTikFdhcf-Y,337
|
48
|
+
webagents/agents/skills/robutler/crm/skill.py,sha256=9NmyZxmMvv5L8Fo4BVgTSkViQGGhXiJu--GbueEEZ0Q,12953
|
49
|
+
webagents/agents/skills/robutler/discovery/README.md,sha256=WNP7Rd1Gt_SOiEMi29JemcVRNWKlO8rqKxh_QpCr9u8,9191
|
50
|
+
webagents/agents/skills/robutler/discovery/__init__.py,sha256=VJYay8yjA1d42HVJDD1GjoZBZD5bEkQovy0jz3GZHbM,319
|
51
|
+
webagents/agents/skills/robutler/discovery/skill.py,sha256=MS3vTKoy8_MxilmkFWUT6LyQBuxtxKCZWeoWkZdDjvU,9321
|
52
|
+
webagents/agents/skills/robutler/kv/__init__.py,sha256=sbaE6gr_OksCWIhJE0kFMpFErAHUnW_7coW8HiKePM8,53
|
53
|
+
webagents/agents/skills/robutler/kv/skill.py,sha256=ftZulx4gQD9lQVstCTj7ZjsWML2XcZ6PU-2lSGpePHU,3364
|
54
|
+
webagents/agents/skills/robutler/message_history/__init__.py,sha256=15EdlGC6jbcj5ba_kr9U93B1x4U_wG4VeWkY5WW36ZI,215
|
55
|
+
webagents/agents/skills/robutler/message_history/skill.py,sha256=RlDY9JGVGChhdy1dtdKU8-REj8WeWS8Ql6BOBX0c6-0,11178
|
56
|
+
webagents/agents/skills/robutler/messages/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
57
|
+
webagents/agents/skills/robutler/nli/__init__.py,sha256=MrwX21Q5sRlaShckZ56Xt4Xi655wPOdBnJEPZ9ZLm3Q,310
|
58
|
+
webagents/agents/skills/robutler/nli/skill.py,sha256=AxagO3clC1PEb3kKopHq0-sGe7MKlYa8_w-lxZqW8bQ,30604
|
59
|
+
webagents/agents/skills/robutler/notifications/__init__.py,sha256=N5ZWC0YkDRpKsIlazlVdYLBDMvhFg3s1ZIOzpi75EJg,74
|
60
|
+
webagents/agents/skills/robutler/notifications/skill.py,sha256=uJpAoCWh0XR475tPhETEePhu0RzvDSxz9cDH2SC7-qQ,5576
|
61
|
+
webagents/agents/skills/robutler/payments/__init__.py,sha256=cPe_qLG0nHRxfd5-stleNIFpGktH9_nvpIbjdDJTRCk,1112
|
62
|
+
webagents/agents/skills/robutler/payments/exceptions.py,sha256=92mP-sWdU3bgiPpqGsGN8Z0pWif7coBT5ifDhuEtgM0,9697
|
63
|
+
webagents/agents/skills/robutler/payments/skill.py,sha256=t3m1pysHBxGauA5xh9oPOGDxW4t8n3XsE2Pj2rL_1r8,27880
|
64
|
+
webagents/agents/skills/robutler/storage/__init__.py,sha256=A3FW8rqu5cMJatys-58Y9qyGFllN1t-XkBDOs_pzCHg,227
|
65
|
+
webagents/agents/skills/robutler/storage/files/__init__.py,sha256=fUM9VH98PQFgA9d32ok_cIGP4QnszLDm2cqWzXJkqGk,202
|
66
|
+
webagents/agents/skills/robutler/storage/files/skill.py,sha256=7HVZMJPfMNjES3AGJbcU-oaqh2ukdRMDFinZcmkFQ2o,19303
|
67
|
+
webagents/agents/skills/robutler/storage/json/__init__.py,sha256=Sg6k7ZY032a5SnWUPsW9t2TnK4WFtWsU8TjI3VDLNQo,189
|
68
|
+
webagents/agents/skills/robutler/storage/json/skill.py,sha256=9X_ZHZs6HkGLmBhniFyd6zlav3xchtIbF51A-7otcwg,12423
|
69
|
+
webagents/agents/skills/robutler/storage/kv/skill.py,sha256=npihRPzf8nDK30Kl9rkzi-tpDKUvgqPVfzX8PsjN8TQ,3347
|
70
|
+
webagents/agents/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
71
|
+
webagents/agents/tools/decorators.py,sha256=CjVqPPQif7jrAm8MWvvcSYfNA4hSeb0BpzJXL-ush-c,17163
|
72
|
+
webagents/agents/tracing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
73
|
+
webagents/agents/workflows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
74
|
+
webagents/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
75
|
+
webagents/server/__init__.py,sha256=GGDg1QqMjG0vLElBS1GggsWIyVe-wtMNyUi5FnNXTUI,609
|
76
|
+
webagents/server/middleware.py,sha256=kbneMSTKcdn9rlawMM0r3ngo6MAOG_iKXXRrpj7drbM,12068
|
77
|
+
webagents/server/models.py,sha256=Q7MsOa2aaZuwgrJZ2rXJ3p8Byv021DuKQ53AEw5twT4,4802
|
78
|
+
webagents/server/monitoring.py,sha256=IA98D_mFellWSA94ytgnMKOUEUSEOoXmSHD9mUB87z4,20461
|
79
|
+
webagents/server/context/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
80
|
+
webagents/server/context/context_vars.py,sha256=grtkAFK_rI9rWcxIpFoLwhOKfIgisfMr29_cGK7Zowo,3615
|
81
|
+
webagents/server/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
82
|
+
webagents/server/core/app.py,sha256=TuXAAYosbcTlTNUOA5wBo3dPCT02v9mHkFJJST5Qq9Q,38468
|
83
|
+
webagents/server/core/middleware.py,sha256=t3sBbLdjhtLx-MJiNRfmCS0Os63ghCpBsgeVH70KfnA,2228
|
84
|
+
webagents/server/core/models.py,sha256=kVIil3ocUvqmUOF-tH0P_GySrFciV2buFXQpprkQz8k,4675
|
85
|
+
webagents/server/core/monitoring.py,sha256=aYIj-Pv_5-KWlSOMfQR3nnaROGE04W9tZ1osQhf9sAA,1525
|
86
|
+
webagents/server/endpoints/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
87
|
+
webagents/server/interfaces/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
88
|
+
webagents/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
89
|
+
webagents/utils/logging.py,sha256=SOfNh9FDjrqFI8SoTBe-Hqp7nzagyQU9LDWGZt9GpQ8,14079
|
90
|
+
webagents-0.1.0.dist-info/METADATA,sha256=rR5Vl_TMsMK1t0Ib056YchyKUoPZ37W6Z6sRcBepAEo,9091
|
91
|
+
webagents-0.1.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
92
|
+
webagents-0.1.0.dist-info/entry_points.txt,sha256=bITAYBK8-H8EQUrDctEeEKuer4jAp3lfxKfvH5TT1eM,54
|
93
|
+
webagents-0.1.0.dist-info/licenses/LICENSE,sha256=q_-MstZzVvShVsmUTYc9G-PWmUM2j28kHhPrRCxu92w,1064
|
94
|
+
webagents-0.1.0.dist-info/RECORD,,
|
@@ -0,0 +1,20 @@
|
|
1
|
+
MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2025 Robutler
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
15
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
16
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
17
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
18
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
19
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
20
|
+
SOFTWARE.
|