illusion-code 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.
Files changed (214) hide show
  1. illusion/__init__.py +24 -0
  2. illusion/__main__.py +15 -0
  3. illusion/_frontend/dist/index.mjs +39208 -0
  4. illusion/_frontend/package.json +27 -0
  5. illusion/_frontend/src/App.tsx +624 -0
  6. illusion/_frontend/src/components/CommandPicker.tsx +98 -0
  7. illusion/_frontend/src/components/Composer.tsx +55 -0
  8. illusion/_frontend/src/components/ComposerController.tsx +128 -0
  9. illusion/_frontend/src/components/ConversationView.tsx +750 -0
  10. illusion/_frontend/src/components/Footer.tsx +25 -0
  11. illusion/_frontend/src/components/MarkdownContent.tsx +537 -0
  12. illusion/_frontend/src/components/MarkdownTable.tsx +245 -0
  13. illusion/_frontend/src/components/ModalHost.tsx +425 -0
  14. illusion/_frontend/src/components/MultilineTextInput.tsx +250 -0
  15. illusion/_frontend/src/components/PromptInput.tsx +64 -0
  16. illusion/_frontend/src/components/SelectModal.tsx +78 -0
  17. illusion/_frontend/src/components/SidePanel.tsx +175 -0
  18. illusion/_frontend/src/components/Spinner.tsx +77 -0
  19. illusion/_frontend/src/components/StatusBar.tsx +142 -0
  20. illusion/_frontend/src/components/SwarmPanel.tsx +141 -0
  21. illusion/_frontend/src/components/TodoPanel.tsx +126 -0
  22. illusion/_frontend/src/components/ToolCallDisplay.tsx +202 -0
  23. illusion/_frontend/src/components/TranscriptPane.tsx +79 -0
  24. illusion/_frontend/src/components/WelcomeBanner.tsx +37 -0
  25. illusion/_frontend/src/hooks/useBackendSession.ts +468 -0
  26. illusion/_frontend/src/hooks/useTerminalSize.ts +9 -0
  27. illusion/_frontend/src/i18n.ts +78 -0
  28. illusion/_frontend/src/index.tsx +42 -0
  29. illusion/_frontend/src/theme/ThemeContext.tsx +19 -0
  30. illusion/_frontend/src/theme/builtinThemes.ts +89 -0
  31. illusion/_frontend/src/types.ts +110 -0
  32. illusion/_frontend/src/utils/markdown.ts +33 -0
  33. illusion/_frontend/src/utils/thinking.ts +191 -0
  34. illusion/_frontend/tsconfig.json +13 -0
  35. illusion/_web_dist/assets/index-BseIw-ik.css +10 -0
  36. illusion/_web_dist/assets/index-C_0ZWMuW.js +82 -0
  37. illusion/_web_dist/index.html +16 -0
  38. illusion/api/__init__.py +36 -0
  39. illusion/api/client.py +568 -0
  40. illusion/api/codex_client.py +563 -0
  41. illusion/api/compat.py +138 -0
  42. illusion/api/effort.py +128 -0
  43. illusion/api/errors.py +57 -0
  44. illusion/api/openai_client.py +819 -0
  45. illusion/api/provider.py +148 -0
  46. illusion/api/registry.py +479 -0
  47. illusion/api/usage.py +45 -0
  48. illusion/auth/__init__.py +50 -0
  49. illusion/auth/copilot.py +419 -0
  50. illusion/auth/external.py +612 -0
  51. illusion/auth/flows.py +58 -0
  52. illusion/auth/manager.py +214 -0
  53. illusion/auth/storage.py +372 -0
  54. illusion/bridge/__init__.py +38 -0
  55. illusion/bridge/manager.py +190 -0
  56. illusion/bridge/session_runner.py +84 -0
  57. illusion/bridge/types.py +113 -0
  58. illusion/bridge/work_secret.py +131 -0
  59. illusion/cli.py +1228 -0
  60. illusion/commands/__init__.py +32 -0
  61. illusion/commands/registry.py +1934 -0
  62. illusion/config/__init__.py +39 -0
  63. illusion/config/i18n.py +522 -0
  64. illusion/config/paths.py +259 -0
  65. illusion/config/settings.py +564 -0
  66. illusion/coordinator/__init__.py +41 -0
  67. illusion/coordinator/agent_definitions.py +1093 -0
  68. illusion/coordinator/coordinator_mode.py +127 -0
  69. illusion/engine/__init__.py +95 -0
  70. illusion/engine/cost_tracker.py +55 -0
  71. illusion/engine/messages.py +369 -0
  72. illusion/engine/query.py +632 -0
  73. illusion/engine/query_engine.py +343 -0
  74. illusion/engine/stream_events.py +169 -0
  75. illusion/hooks/__init__.py +67 -0
  76. illusion/hooks/events.py +43 -0
  77. illusion/hooks/executor.py +397 -0
  78. illusion/hooks/hot_reload.py +74 -0
  79. illusion/hooks/loader.py +133 -0
  80. illusion/hooks/schemas.py +121 -0
  81. illusion/hooks/types.py +86 -0
  82. illusion/mcp/__init__.py +104 -0
  83. illusion/mcp/client.py +377 -0
  84. illusion/mcp/config.py +140 -0
  85. illusion/mcp/types.py +175 -0
  86. illusion/memory/__init__.py +36 -0
  87. illusion/memory/manager.py +94 -0
  88. illusion/memory/memdir.py +58 -0
  89. illusion/memory/paths.py +57 -0
  90. illusion/memory/scan.py +120 -0
  91. illusion/memory/search.py +83 -0
  92. illusion/memory/types.py +43 -0
  93. illusion/output_styles/__init__.py +15 -0
  94. illusion/output_styles/loader.py +64 -0
  95. illusion/permissions/__init__.py +39 -0
  96. illusion/permissions/checker.py +174 -0
  97. illusion/permissions/modes.py +38 -0
  98. illusion/platforms.py +148 -0
  99. illusion/plugins/__init__.py +71 -0
  100. illusion/plugins/bundled/__init__.py +0 -0
  101. illusion/plugins/installer.py +59 -0
  102. illusion/plugins/loader.py +301 -0
  103. illusion/plugins/schemas.py +51 -0
  104. illusion/plugins/types.py +56 -0
  105. illusion/prompts/__init__.py +29 -0
  106. illusion/prompts/claudemd.py +74 -0
  107. illusion/prompts/context.py +187 -0
  108. illusion/prompts/environment.py +189 -0
  109. illusion/prompts/system_prompt.py +155 -0
  110. illusion/py.typed +0 -0
  111. illusion/sandbox/__init__.py +29 -0
  112. illusion/sandbox/adapter.py +174 -0
  113. illusion/services/__init__.py +59 -0
  114. illusion/services/compact/__init__.py +1015 -0
  115. illusion/services/cron.py +338 -0
  116. illusion/services/cron_scheduler.py +715 -0
  117. illusion/services/file_history.py +258 -0
  118. illusion/services/lsp/__init__.py +455 -0
  119. illusion/services/session_storage.py +237 -0
  120. illusion/services/token_estimation.py +72 -0
  121. illusion/skills/__init__.py +60 -0
  122. illusion/skills/bundled/__init__.py +110 -0
  123. illusion/skills/bundled/content/batch.md +86 -0
  124. illusion/skills/bundled/content/coding-guidelines.md +70 -0
  125. illusion/skills/bundled/content/debug.md +38 -0
  126. illusion/skills/bundled/content/loop.md +82 -0
  127. illusion/skills/bundled/content/remember.md +105 -0
  128. illusion/skills/bundled/content/simplify.md +53 -0
  129. illusion/skills/bundled/content/skillify.md +113 -0
  130. illusion/skills/bundled/content/stuck.md +54 -0
  131. illusion/skills/bundled/content/update-config.md +329 -0
  132. illusion/skills/bundled/content/verify.md +74 -0
  133. illusion/skills/loader.py +219 -0
  134. illusion/skills/registry.py +40 -0
  135. illusion/skills/types.py +24 -0
  136. illusion/state/__init__.py +18 -0
  137. illusion/state/app_state.py +67 -0
  138. illusion/state/store.py +93 -0
  139. illusion/swarm/__init__.py +71 -0
  140. illusion/swarm/agent_executor.py +857 -0
  141. illusion/swarm/in_process.py +259 -0
  142. illusion/swarm/subprocess_backend.py +136 -0
  143. illusion/swarm/team_helpers.py +123 -0
  144. illusion/swarm/types.py +159 -0
  145. illusion/swarm/worktree.py +347 -0
  146. illusion/tasks/__init__.py +33 -0
  147. illusion/tasks/local_agent_task.py +42 -0
  148. illusion/tasks/local_shell_task.py +27 -0
  149. illusion/tasks/manager.py +377 -0
  150. illusion/tasks/stop_task.py +21 -0
  151. illusion/tasks/types.py +88 -0
  152. illusion/tools/__init__.py +126 -0
  153. illusion/tools/agent_tool.py +388 -0
  154. illusion/tools/ask_user_question_tool.py +186 -0
  155. illusion/tools/base.py +149 -0
  156. illusion/tools/bash_tool.py +413 -0
  157. illusion/tools/config_tool.py +90 -0
  158. illusion/tools/cron_tool.py +473 -0
  159. illusion/tools/enter_plan_mode_tool.py +147 -0
  160. illusion/tools/enter_worktree_tool.py +188 -0
  161. illusion/tools/exit_plan_mode_tool.py +69 -0
  162. illusion/tools/exit_worktree_tool.py +225 -0
  163. illusion/tools/file_edit_tool.py +283 -0
  164. illusion/tools/file_read_tool.py +294 -0
  165. illusion/tools/file_write_tool.py +184 -0
  166. illusion/tools/glob_tool.py +165 -0
  167. illusion/tools/grep_tool.py +190 -0
  168. illusion/tools/list_mcp_resources_tool.py +80 -0
  169. illusion/tools/lsp_tool.py +333 -0
  170. illusion/tools/mcp_auth_tool.py +100 -0
  171. illusion/tools/mcp_tool.py +75 -0
  172. illusion/tools/notebook_edit_tool.py +242 -0
  173. illusion/tools/powershell_tool.py +334 -0
  174. illusion/tools/read_mcp_resource_tool.py +63 -0
  175. illusion/tools/repl_tool.py +100 -0
  176. illusion/tools/send_message_tool.py +112 -0
  177. illusion/tools/shell_common.py +187 -0
  178. illusion/tools/skill_tool.py +86 -0
  179. illusion/tools/sleep_tool.py +62 -0
  180. illusion/tools/structured_output_tool.py +58 -0
  181. illusion/tools/task_create_tool.py +98 -0
  182. illusion/tools/task_get_tool.py +94 -0
  183. illusion/tools/task_list_tool.py +94 -0
  184. illusion/tools/task_output_tool.py +55 -0
  185. illusion/tools/task_stop_tool.py +52 -0
  186. illusion/tools/task_update_tool.py +224 -0
  187. illusion/tools/team_create_tool.py +236 -0
  188. illusion/tools/team_delete_tool.py +104 -0
  189. illusion/tools/todo_write_tool.py +198 -0
  190. illusion/tools/tool_search_tool.py +156 -0
  191. illusion/tools/web_fetch_tool.py +264 -0
  192. illusion/tools/web_search_tool.py +186 -0
  193. illusion/ui/__init__.py +23 -0
  194. illusion/ui/app.py +258 -0
  195. illusion/ui/backend_host.py +1180 -0
  196. illusion/ui/input.py +86 -0
  197. illusion/ui/output.py +363 -0
  198. illusion/ui/permission_dialog.py +47 -0
  199. illusion/ui/permission_store.py +99 -0
  200. illusion/ui/protocol.py +384 -0
  201. illusion/ui/react_launcher.py +280 -0
  202. illusion/ui/runtime.py +787 -0
  203. illusion/ui/textual_app.py +603 -0
  204. illusion/ui/web/__init__.py +10 -0
  205. illusion/ui/web/server.py +87 -0
  206. illusion/ui/web/ws_host.py +1197 -0
  207. illusion/utils/__init__.py +0 -0
  208. illusion/utils/ripgrep.py +299 -0
  209. illusion/utils/shell.py +248 -0
  210. illusion_code-0.1.0.dist-info/METADATA +1159 -0
  211. illusion_code-0.1.0.dist-info/RECORD +214 -0
  212. illusion_code-0.1.0.dist-info/WHEEL +4 -0
  213. illusion_code-0.1.0.dist-info/entry_points.txt +2 -0
  214. illusion_code-0.1.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,214 @@
1
+ illusion/__init__.py,sha256=RhZHVxxfjOs1mf6nwc9OWZFqi9zLvo0uwuz2VjOs0LE,595
2
+ illusion/__main__.py,sha256=XsDieAZniqJi9g_qAaq56hrJKh7-8oQlsQiJagqsv-4,500
3
+ illusion/cli.py,sha256=C0Z-WYYo8A7977mjPtrkHqdgKcbNmeI7PPD3qh8MsPU,40054
4
+ illusion/platforms.py,sha256=ycdL2Wn3YaqkHA29Cau_8z_i6sUUVoh8D6bArcz9JTU,5469
5
+ illusion/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
+ illusion/api/__init__.py,sha256=rr52WfZ36mMVlqN3gjAS8Vdaml_KFOsQOCjlsXqTE3I,1059
7
+ illusion/api/client.py,sha256=ib8CbEXb8zWbov0PMkP2DMqpwyO0bDesiQQdDFimWEU,19900
8
+ illusion/api/codex_client.py,sha256=hcRH_jXIENLU1a_Iaas6SgztZv6Lwqqe38ql0yWs29U,22170
9
+ illusion/api/compat.py,sha256=KmIBDnVHCOPpQlTCvhtDmFsqQy1qZM3d2l_NueIVnMs,4536
10
+ illusion/api/effort.py,sha256=UV0gtwsFhTtsKIHNMttDejdecMnIZHVPWkLSxU05vXo,3992
11
+ illusion/api/errors.py,sha256=H1ZrU7qDSMPFdM3YIjvbEociSies94fZXlAoRsT54Eg,1556
12
+ illusion/api/openai_client.py,sha256=-JefcYB10ak-bPRJB6Tg9xGQsrp0leGMq9ElNPZ1Do0,32747
13
+ illusion/api/provider.py,sha256=RlmDJVxcS98imu8fqOqkslCQaJChl_rusoTzmmYcA3M,4539
14
+ illusion/api/registry.py,sha256=Vt3dGa5bpMJNpqsSnXG_gnBZf5dGSDNA9wB8fdkz6Yo,14932
15
+ illusion/api/usage.py,sha256=PxP8ejast6-OFQmD7std5YmU7joOFBWivg5y7u_kuts,1084
16
+ illusion/auth/__init__.py,sha256=XB_DRA1nHfnpq1u7cj0_n274RWZZefSthp8BcF6_POY,1325
17
+ illusion/auth/copilot.py,sha256=_6E3mejXPEuFGcFNXtUBISKbEEW9gAvriNqcHEdYB_w,13295
18
+ illusion/auth/external.py,sha256=LVlFxFyiaY6wIDCDPxEp2vr0zo6_2VpByXZInRWWsIc,19238
19
+ illusion/auth/flows.py,sha256=IAP1ySSSRefy8-Cs6IbG_5VI79oV3VLakCq83XHnqyI,1339
20
+ illusion/auth/manager.py,sha256=76W546-bCIc87_Mt7Fq1VPSm7MzF4n-fhIv1e-C3kxs,6523
21
+ illusion/auth/storage.py,sha256=OGRrHdIRoCtibWbLHKxq15q3lRlc8CabR5ldpW1IAUw,10356
22
+ illusion/bridge/__init__.py,sha256=uNUzEWYRyoYeoeJl17d9_LeWyKmexgMSrfIHBhs5Vnw,1098
23
+ illusion/bridge/manager.py,sha256=pAcGbRlbqHGsqsbkM--oJ-MPY8kSZe41nsjApnyb9Wo,6822
24
+ illusion/bridge/session_runner.py,sha256=MO5MKIKjF-MxvYqLqr70yk4GGLBk_ex8FQsEkvM_JWU,2321
25
+ illusion/bridge/types.py,sha256=hIRfknp1vQJa2m753eEqVKxOIKsQ1bkiH1QbX4w1Wb0,3255
26
+ illusion/bridge/work_secret.py,sha256=M1aifq5bpZu06qiYvLy3wMGBvVhBDnHMmqjyV6h2YdM,4789
27
+ illusion/commands/__init__.py,sha256=ZubA0xD-ZLD74O_Dgv7Om0rYvY1Z2E4haC6IUVIlVNY,710
28
+ illusion/commands/registry.py,sha256=UaM2IpvJoGi1kmhNHMYYJPtb3zQgsbUham8efG_LCZ8,83982
29
+ illusion/config/__init__.py,sha256=AYN95X9AlUe-irAvMN6KTFqjDyb4aotfrvcgLzIAuPQ,862
30
+ illusion/config/i18n.py,sha256=Nee9uWqLt0aBHcUqdaIQnmEykMH_V-XwiHSJAW-CJac,33759
31
+ illusion/config/paths.py,sha256=KRYx58DdztMTYSu41jlR2YCYdFgaKqGQBVON48ypiEo,7202
32
+ illusion/config/settings.py,sha256=WyBLeSr3jA4G5AmRrPGIb4l4v98DH9-HT632lY2P0SU,18718
33
+ illusion/coordinator/__init__.py,sha256=j4020QmJ4kuHcsz24Ip5p-h4aGAeFrfiaKprej51V4U,1162
34
+ illusion/coordinator/agent_definitions.py,sha256=cdnvcM1bKHEfVl1N380m3Aw_BsLVsVTnv-jWUst-BzQ,49703
35
+ illusion/coordinator/coordinator_mode.py,sha256=yri3zsSeyA7e6XQX1QG5i8J3pQsIzPRQghHDEIrjq2A,3521
36
+ illusion/engine/__init__.py,sha256=uGcWGSLhHOTyvDRuq_NQQ_BfY8i4Nzwq-gw33vbzJPs,2623
37
+ illusion/engine/cost_tracker.py,sha256=-NwVd01vt9N7urbuSt1O9_XEiLIcsDvDtWPmYrRR5W4,1525
38
+ illusion/engine/messages.py,sha256=jhjV0wvgugQcoW3-0UbxIZ5TSfBglC9-I2f9PxIaWyQ,11834
39
+ illusion/engine/query.py,sha256=pZ39S4XTaw6PT2zu77g5qwDeRvRW-UgSuGf-aOR9VZk,23937
40
+ illusion/engine/query_engine.py,sha256=KGtzmpy2HM9XPFTaxIuSexsCb1f4oJvfQgKMfAJr9Lg,12373
41
+ illusion/engine/stream_events.py,sha256=qkh7JKlhj9Jcb8wc1wUReuqwyCDL5YirFRObzE8CaQ4,3873
42
+ illusion/hooks/__init__.py,sha256=BtGsOEXe9Cm-lAJq6hNA4QAzOxIYMWMe3La_HQ-iW2w,1937
43
+ illusion/hooks/events.py,sha256=U1Qhllc0D7zmUHLgJZR9UZxTYf-WaJMHtXmOhJGZLUo,1120
44
+ illusion/hooks/executor.py,sha256=fVFu1i5p3iIHMjl2yBfcIRqvE1OL6w86zsfnU59O0UM,13059
45
+ illusion/hooks/hot_reload.py,sha256=m1zYLekt68nOLSjMRJqYWRe42XXlFSUa5qkLOHYxZSw,2409
46
+ illusion/hooks/loader.py,sha256=CbUjT-fnl_pAWtxo1QKqxPjq6rHIXlFxrkwOZLNQNRw,4381
47
+ illusion/hooks/schemas.py,sha256=hsN5-Dnp9ITD_PnKgPtYsQoLT7g6XbDHHBDkEhHUXNc,4157
48
+ illusion/hooks/types.py,sha256=kz41uc133Mi40TlfCu9NIkzb92_dDTujg2bd0TY31Ew,2493
49
+ illusion/mcp/__init__.py,sha256=K5O7suxxC_a_EVRABT9czOARFOEqzTErY4-7XViJ_FM,3137
50
+ illusion/mcp/client.py,sha256=WWnaJMYiuw1kjj5by5y3A65PkzCXeyM2yPMtnSQyf6A,13990
51
+ illusion/mcp/config.py,sha256=vW1ULWaJOvdCSOi8X1AwtlRMjrf269IQukDI6wGUCM0,5172
52
+ illusion/mcp/types.py,sha256=M3m9IOj30OVSKHBc2ncbvaS8sSKSjrlwdb-byM8gOr4,4849
53
+ illusion/memory/__init__.py,sha256=NXipJzbajNss-nTgMa1rebDcHlghbqX3bbSOdDCpPWk,1151
54
+ illusion/memory/manager.py,sha256=iDIkqtaeaNOJLjOG3U12mK-7KAkBs0aXR42oFNl8IoI,3303
55
+ illusion/memory/memdir.py,sha256=5BAQKBO8J0OtcI3YwU2lv2ORabd8CKXseQpOjrbVBKw,1940
56
+ illusion/memory/paths.py,sha256=KdnrhotZMT_qsN77LvegWAXV6U-azPZ6Q9bYayijkSI,1601
57
+ illusion/memory/scan.py,sha256=NyBilV9ubWYkAnsF_7vRscIakA0cYoLGrEUSTz0rvr0,4664
58
+ illusion/memory/search.py,sha256=Nyd-Jf_7xpupfCXKakoN0NLHUStx8AzrnreET_xtPk8,2741
59
+ illusion/memory/types.py,sha256=CABN93vkBYXQaqRq094lPsRiw2EGrmvHdtC8sQXZT88,1117
60
+ illusion/output_styles/__init__.py,sha256=0tns6XddfVVJSvCWED-jzih4ZWFMy4t_Hr8EPiYT7Ko,445
61
+ illusion/output_styles/loader.py,sha256=fbLjgl03PH-zBZ0qFeThF0vdMPjZos7w6bajCQntD4w,1694
62
+ illusion/permissions/__init__.py,sha256=eESTW9_DEb5MKEVE-2MtfPB6FFHtKWeCM0Y3JtZVIIw,1112
63
+ illusion/permissions/checker.py,sha256=GhspDUg8D_P0VWTfFBdM9aaCMTKeQa3tCbgwChvU7nE,6035
64
+ illusion/permissions/modes.py,sha256=_Yt22f37GYFYQEnvW_qHKri8LwovHrKD-QsrxAypgf8,1023
65
+ illusion/plugins/__init__.py,sha256=0ajkRVMODMAAW7UEWd1d8OLEhKmtPawdr8EkduB9rUc,2157
66
+ illusion/plugins/installer.py,sha256=2uCfB3T02zVtm5S30QnDzf4NhrjsymiEA8bi_bLDuo0,1345
67
+ illusion/plugins/loader.py,sha256=ftYhPhYUoG0VuJhUu98gLpdnXKusE4plH9ikTjq_PDw,9091
68
+ illusion/plugins/schemas.py,sha256=we2AUJW6uNK-y_GI2q4H3tOrIGu4DnJsAbZP1ekUiHM,1552
69
+ illusion/plugins/types.py,sha256=UOdW3eROTZ31L7SdhHJDjjnzaWAzUB-RRM2fURMKNU8,1634
70
+ illusion/plugins/bundled/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
+ illusion/prompts/__init__.py,sha256=UPULMR3hfVd34GZEH_aquLLp34evIN24qPJxIU_Osv0,926
72
+ illusion/prompts/claudemd.py,sha256=hWDH-3pBmZEqEJLaiUImXd28RrMBuzq4WyGgk0L_mBQ,2220
73
+ illusion/prompts/context.py,sha256=3_0QMvD9BCCFqOuQpG0S3-TzS5EV3n33rG_xV3ioATo,6026
74
+ illusion/prompts/environment.py,sha256=eS0PnYQaF_35FIK9LO_zHCgjZ-M77eJksfFx6lRJPQQ,5440
75
+ illusion/prompts/system_prompt.py,sha256=mc26bvVNza1fXGn-4cPMEb9rfH7lBkyjO1wBnc6rcrM,14189
76
+ illusion/sandbox/__init__.py,sha256=tTIwFALIiUP7ikZLfR70PzVv6tqpKlBsgGxrceJ6Xt0,776
77
+ illusion/sandbox/adapter.py,sha256=Pd8O-cQUuBDF6DMRwX6LiwrzZM-FLIjaWY5M9H7BUPE,6156
78
+ illusion/services/__init__.py,sha256=n6a-rHElkY7edJZVGMRp3mJ0q3xvVtyC6Ofem3Ou1A8,1555
79
+ illusion/services/cron.py,sha256=stNJrxbJtnxZ8xD_m0Kk9hp3VSAZGhmfRIchI91Py4U,10234
80
+ illusion/services/cron_scheduler.py,sha256=SMc6u2hleBRnaZ2qsyZuGHlzn0RvF7FPZUSfTPYTzTo,21691
81
+ illusion/services/file_history.py,sha256=xdgqyo8XcuvRw4FRGwZWPRrDq27k5-rdev0JXzloi7Q,8726
82
+ illusion/services/session_storage.py,sha256=pOVqV4JPMWCsRypgftXnbdT6xfYVKDvGgpwjmICJ9Is,8707
83
+ illusion/services/token_estimation.py,sha256=OZjk9-9nhht-SFtrB8-dms1f25n8Oc5LFSnthPDGRW4,2270
84
+ illusion/services/compact/__init__.py,sha256=oUbfun_c8drpt1bB3PwEQwLR2J0lD8hzRK4teNoQZ-w,36983
85
+ illusion/services/lsp/__init__.py,sha256=5byF0lNIg-Ukoa3MMfdfFb2GXMCCaQCnH8_ubNaLEuc,15566
86
+ illusion/skills/__init__.py,sha256=hGMq_pEt7mtOtR_6qHTauWhj8fUminBTqfdGvMhZ0E0,1601
87
+ illusion/skills/loader.py,sha256=bP-RwLQQx83zZyXMViBw8lP_NKCSTDt5zdCRrbfynGk,7685
88
+ illusion/skills/registry.py,sha256=YRsC_FnBXbEqXj2PGFx0y62sIIbWpiP6IPWkG-rHW4E,1124
89
+ illusion/skills/types.py,sha256=WejMspDskV99lmc1oea2DUV0n2fF07BLEr-7AtZjkxQ,412
90
+ illusion/skills/bundled/__init__.py,sha256=DTHcKfevVRJ2lNtLjDdk870gAIVpf220oo6nUQSRT7w,3611
91
+ illusion/skills/bundled/content/batch.md,sha256=5kVS7ULtRJrfh_kVIY0j6LLaBl0aUXT-MmjWf84awPY,5102
92
+ illusion/skills/bundled/content/coding-guidelines.md,sha256=t_t6XY-k9QEaKoiOdnOVndQRdpZ7hFCKFHeEIFlQi44,2631
93
+ illusion/skills/bundled/content/debug.md,sha256=5LaujFIrV-u-uKuWThRCO693N9HR6iHPvZ0ly-b9qCw,1244
94
+ illusion/skills/bundled/content/loop.md,sha256=tOg0t1BNE95VKMBTmSzjoCpBCwVbtBm5D-9Wm1ZnM6o,3886
95
+ illusion/skills/bundled/content/remember.md,sha256=vC3aaTEw48plbbaE-OXdpAB-6vGufXlzw7lhCZkAd6k,4051
96
+ illusion/skills/bundled/content/simplify.md,sha256=1Csk-awbl1724D3oUSxilKkYa-XFdWd7aGZkweS35as,3580
97
+ illusion/skills/bundled/content/skillify.md,sha256=IfsCSFIwkplef0vctBwYe-Qa6f6zC2moIgOeitLKRqA,6292
98
+ illusion/skills/bundled/content/stuck.md,sha256=s4Kli_t-KQxzk3XZvWARtVNt9usLMtI2FxK2mN7A6_c,2792
99
+ illusion/skills/bundled/content/update-config.md,sha256=TwsBFMW6r8A-5ijGlTf1DLsdkKwILMkn9ls97Zr2o0A,8042
100
+ illusion/skills/bundled/content/verify.md,sha256=llGJMMWIRYBHMiII6QZx2XQxL45lrc0XilC1Tg8LtGs,2209
101
+ illusion/state/__init__.py,sha256=Nq4m09-YQYQB_ooNFhsSynGTtvDN1VvVAFVRz55CimU,395
102
+ illusion/state/app_state.py,sha256=awa4apDplleLdkkp45FWy3CbAD637Obli3SIsigARqo,2434
103
+ illusion/state/store.py,sha256=oqySQFiulFEIE_YZXaB1ZjIXZCK71q4jOPosYzZroC0,2930
104
+ illusion/swarm/__init__.py,sha256=9-ZDcHNnRut7Da6UREid4lG8dtAd6du--S4anC5aXdM,1788
105
+ illusion/swarm/agent_executor.py,sha256=YPEjviASLvp3TMZA51yBngpxyxd29LwT4_cYxQiI8-s,26824
106
+ illusion/swarm/in_process.py,sha256=4ru2RD3sX2AbynvyN344DOi4TuygIUjljqqHIgHJ2EM,9351
107
+ illusion/swarm/subprocess_backend.py,sha256=ObN0pOjJ72TY6FzyQv7gyEZjdsqfi8GVPOMSQd5Xk9g,4541
108
+ illusion/swarm/team_helpers.py,sha256=yWrh01y2spxR0zTOw7eW6qdsOng4CIhANO3ECyqtxyU,3970
109
+ illusion/swarm/types.py,sha256=koCCvDeS_UTUwmPi2yOVxtXSxRKMnvjEG0vW_TWXw2Q,4332
110
+ illusion/swarm/worktree.py,sha256=GisL83akk4GPA8_0WWvrXC7WUtW-8dSdY5Ar2GVY3dg,11743
111
+ illusion/tasks/__init__.py,sha256=GOHa77idN4eHgChe7riYFx1NK3iKRfYET0sTWcIQ_f0,940
112
+ illusion/tasks/local_agent_task.py,sha256=drpHJhX_qfO_i4GWrb2n-hYtVmV7nwLRB_soKMkhRvA,1049
113
+ illusion/tasks/local_shell_task.py,sha256=zbsxbTdkBh61S0DvozA5CDxCDJ6nREEFhuWMbyGk_OA,735
114
+ illusion/tasks/manager.py,sha256=sf7qLMt_5THQs2T57lSkvHnsSgZLTu86UBnqBEWIrTI,13638
115
+ illusion/tasks/stop_task.py,sha256=70mg-RXXX7XZxqIsi7Dexr3kzJ0iSDAIa4rN6q6siMM,539
116
+ illusion/tasks/types.py,sha256=qvRSv73zEKuXkIf3kY9MXMNsY_FI13kK1mR5RQmbpQo,2623
117
+ illusion/tools/__init__.py,sha256=Y0ufRbCfwVMwRWGv5cXwjVwEejJ-n_bJkUvMvWx3Plc,4605
118
+ illusion/tools/agent_tool.py,sha256=zSw9ETT2r_ZQcZ-Si9EgORFp28YPhZOjBMZVhLvLltg,18399
119
+ illusion/tools/ask_user_question_tool.py,sha256=G_AnY_Wg8h655CrUh9S8chZ6jpYwkpxaXgtdHY5Avrw,7683
120
+ illusion/tools/base.py,sha256=96uT8iaUIX2q8AhZQ26MVkdElxU0PxF17HMFDzQvVyY,3571
121
+ illusion/tools/bash_tool.py,sha256=nEWJdD0010CN3NxnDZ7fZaQwumjunjgW-XHLiNH10Po,20733
122
+ illusion/tools/config_tool.py,sha256=rmZuPevsLa0rdK59Hhj8rYnFTw9tC6gYLLz1xwjTu6o,3612
123
+ illusion/tools/cron_tool.py,sha256=glbW1TsTZsWQ35imooDGyPJjlD1RuhhVIJFxYsD5X18,16601
124
+ illusion/tools/enter_plan_mode_tool.py,sha256=y7AW7tb48-EFFKO6I7kJV3M-HexSgqVPQJ4pIKsjzn0,5992
125
+ illusion/tools/enter_worktree_tool.py,sha256=lcVI9HNXiM6AL6N70TEQ53FN6bs9p_C3JgNogMJ3S1w,6510
126
+ illusion/tools/exit_plan_mode_tool.py,sha256=gEOfBVbDYD3rhVhh4b27xwQyGp-7NxHBjTSoVnN6u-w,3371
127
+ illusion/tools/exit_worktree_tool.py,sha256=LjGR3MJi24tO9w5GP1k3M_u0RxKk2gb4XOp53Fhu1Xk,7966
128
+ illusion/tools/file_edit_tool.py,sha256=GNUkYgJTJgCC96MdRhsiZAkJYN5RY8Z3o_e1Rv-ZY14,10733
129
+ illusion/tools/file_read_tool.py,sha256=_OCYn7L-BV9ndVh07LP2IBmEvCnJiCwMoUb4fQ_q9KI,11881
130
+ illusion/tools/file_write_tool.py,sha256=ACKPSO90KiHsSuad5gh2KWx7IEHCFzvR7diw15nHMXU,5922
131
+ illusion/tools/glob_tool.py,sha256=QaY0kW8yBNPI5c3RXv4c3RLTgKJfiseslNyr4Magr14,4939
132
+ illusion/tools/grep_tool.py,sha256=xtV_SgEwXFP4RttCzfxqcXYkkfGrlEKsIxAVfOM-WOg,7714
133
+ illusion/tools/list_mcp_resources_tool.py,sha256=l1Yzia27DD522lpBqXReJhdC6sBIi0x6XKZbBq2VlK8,3030
134
+ illusion/tools/lsp_tool.py,sha256=PX67_bVd1eQ885-m4p6-PaZjHPoIotGnEkT_Hc9jlAw,12497
135
+ illusion/tools/mcp_auth_tool.py,sha256=4Ik_2ag498OIEqiijI6hfRP5WcYLC7XJLohpxQb9p4g,4107
136
+ illusion/tools/mcp_tool.py,sha256=3w7nhPvYUzVOSXL590rzIq-83-8vFZ8mdKIcJ4-toIQ,2679
137
+ illusion/tools/notebook_edit_tool.py,sha256=4xtX6J7o7mFKGDrlKAgnIdXTzLP-L8N9qXSzP1FHBYw,8580
138
+ illusion/tools/powershell_tool.py,sha256=axJWIQNT0mSXi1KD_RA44-DnCfOnhuDjSNF23qRbOsY,15504
139
+ illusion/tools/read_mcp_resource_tool.py,sha256=iH6f4b8VNkPODe8G12i7cGrS8CHblOh0TCL4pk1i5q4,1832
140
+ illusion/tools/repl_tool.py,sha256=9FfnIeVlgivNH9M7f44__BBXAxi6cbB22t_Zcw1PO24,3112
141
+ illusion/tools/send_message_tool.py,sha256=t72lY9TskJtFBRomyH3au4NDJKA-LPO3E4JwftiENyQ,3668
142
+ illusion/tools/shell_common.py,sha256=XRYRO3NzPL52LuP2VKwo0wUaiTsKHGhMqq1xAicdGkc,5966
143
+ illusion/tools/skill_tool.py,sha256=-QKd03PtL3jty3dYswT_Ehv135I78J1OvfdekJaqQQ8,3527
144
+ illusion/tools/sleep_tool.py,sha256=U-CwyY6VhaiECEgVzHS5oiaX3UbWozQSAZj4gews5MA,1687
145
+ illusion/tools/structured_output_tool.py,sha256=uAwoh50qhoJhTQzKp9QJQHb6dE2RRz79WvZAEvxtuk4,1589
146
+ illusion/tools/task_create_tool.py,sha256=kXKBW7yT7IoPXERpTgrHgs0z1qlKS6YZHowE29aiq2w,4021
147
+ illusion/tools/task_get_tool.py,sha256=28kzUWvgU8m6YlEcD3u-sj3iskMSmu8ewtTX0FGAESg,2954
148
+ illusion/tools/task_list_tool.py,sha256=W2coUIqQRRF6nI49CWUQZfZeZWa6mFOqNbN_P6SZMog,3524
149
+ illusion/tools/task_output_tool.py,sha256=KAwsD3i6-Jhzyr1vGJgSM2OWpz1WhJYGO1SKjzsTUe0,1533
150
+ illusion/tools/task_stop_tool.py,sha256=tom3C83sGD524RKbh5SeGf5hPptqjbgeR_NRqfxRb2I,1412
151
+ illusion/tools/task_update_tool.py,sha256=2Vo4LaWmPxcQGsJtylmie6cuBDKruaF3jU2xEBUBpgE,7935
152
+ illusion/tools/team_create_tool.py,sha256=p4RcUQuAyfKAJRL26Gld2CnoSYclENcTZSkF8WDc968,11318
153
+ illusion/tools/team_delete_tool.py,sha256=cKI3JG01ceMPg0BpsSS99vd1DY_-ZIXPeSlmOsNFoUo,3934
154
+ illusion/tools/todo_write_tool.py,sha256=-URy_ITVikx7KNseJ8dG_6El8UyPLML9feBIA5uAlIM,8560
155
+ illusion/tools/tool_search_tool.py,sha256=IbTs-7WadAavbdlyUOrIZbRsKYZPIc1xJL-whDbNsKc,6229
156
+ illusion/tools/web_fetch_tool.py,sha256=-0TQAp5sN5gLjkubWdp625mkuHh8ovUpo2PXIcieEBk,9646
157
+ illusion/tools/web_search_tool.py,sha256=AiZhujUAy4Tqm4ZICNyAtX0XD2iuNE5IfXjmuiyY8rs,6563
158
+ illusion/ui/__init__.py,sha256=93dYDBu8DbERWybhA-N1W47mIHgwpYhl0PO_vYQu59I,617
159
+ illusion/ui/app.py,sha256=4tHFQU6ZW6cxMcKzDcrAPJNG7pVhLoCoa36ofKrk51s,8902
160
+ illusion/ui/backend_host.py,sha256=W225MyjeIFYoPX3SKuAxUzTFV7lAAr6sK912IwUJZOY,51665
161
+ illusion/ui/input.py,sha256=cJC4VdrJyTWJBH2CaZgyU0C9YjefUX2eHaAq0knqYI0,2427
162
+ illusion/ui/output.py,sha256=7BNKE1RUfqIuNzPiDFVIKjH9Gsi2PgLvsFQ9DMnVUfc,12492
163
+ illusion/ui/permission_dialog.py,sha256=MfYH7_1qhkiADTKywdPGJxPYX-Rh80Zx7DUlRiXscdg,1242
164
+ illusion/ui/permission_store.py,sha256=qF0WEFFoIUX2xXjoDl5LpyYVyeQ0jPAwmlM_I0I2kXg,2912
165
+ illusion/ui/protocol.py,sha256=x60tEyaJkVFRwjyyI51iG9NI1BfFqbq4qyGMUYDV_88,10952
166
+ illusion/ui/react_launcher.py,sha256=_sl6zzpgcNMVTie5voZslzYL6WIaFOPDLQ_H0rbWfuc,8228
167
+ illusion/ui/runtime.py,sha256=zVBNuETPr1_9AQ22aM_S0Z117trZu3UPBFRZ3KF99Vw,30151
168
+ illusion/ui/textual_app.py,sha256=AhfeZxqyeG8RqLVHrVfV18tVQ74ugc2seDxbU-LC1JY,21864
169
+ illusion/ui/web/__init__.py,sha256=9e5UUOU5T74sdbTOiuoGpYJOdpuhN6LGBhr5mwtsOzU,261
170
+ illusion/ui/web/server.py,sha256=oPQxzaHMiqGn3ZbG5lDp7ovwffwx-jNPsk-U81w4L2Q,2899
171
+ illusion/ui/web/ws_host.py,sha256=MqfHXPMPjHQa4H6ObR9Vr-wV1oVqPqTRtXGczZEjBc4,52495
172
+ illusion/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
173
+ illusion/utils/ripgrep.py,sha256=UDVef7Dsvjr9HBXwjVHr7kkguD2BqDGYwAHCTsomP3M,8009
174
+ illusion/utils/shell.py,sha256=3InLiLLrKdgc-cnRmTCEmsXFpBaK1pSeZBptUfuV5zw,8108
175
+ illusion/_web_dist/index.html,sha256=O5uemXP-uCrcYJtOfEHHRevORu-4-162rw3P38YU9b0,736
176
+ illusion/_web_dist/assets/index-BseIw-ik.css,sha256=8WDu3h2N8Z1FcyrUn736a6fZ-VKcfR6UMTPLXeuV7hw,23484
177
+ illusion/_web_dist/assets/index-C_0ZWMuW.js,sha256=aaSIN0hl0koxNF9kH9ifSI2ZWRk8nrMNLTkFOn-iXW0,707255
178
+ illusion/_frontend/dist/index.mjs,sha256=eMbipRGVrV4CU11Qzde8BHmTWP3wLs2HhZXTmmPJ2ns,1647954
179
+ illusion/_frontend/package.json,sha256=k1cd2Wxtod6AiyEvYnvNcYqMujeR_uL0YYktP4ZE2A8,595
180
+ illusion/_frontend/src/App.tsx,sha256=kavBYXEneqt_3W3Lh8C8l1TaI2RWrhggQssFLe5ZJxo,18833
181
+ illusion/_frontend/src/i18n.ts,sha256=_attiMcHrc8cdnZ0pQDcDrXZ3g9TeYJLzF3l9b5ya4g,2342
182
+ illusion/_frontend/src/index.tsx,sha256=SDg4UBzUDpALmsIOclRlnaL42dL8_uoioL4kxZcJU7g,1622
183
+ illusion/_frontend/src/types.ts,sha256=t_WaVkI-e4AO72W5VVfQiiQgOj0IfUzFQx24tvWRWzk,2496
184
+ illusion/_frontend/src/components/CommandPicker.tsx,sha256=fx2GcJj0ZV1vVVOJKQ-6erOXsa3S8x-mObgmi9dLQ4E,2816
185
+ illusion/_frontend/src/components/Composer.tsx,sha256=IhcROgUMsCB7Y3ZhCQDfLP7l0Jw-i76EOFYy8slMX74,1488
186
+ illusion/_frontend/src/components/ComposerController.tsx,sha256=3IaXFnqabB3mWnAEag0SFG_5wGmamVZZiZj31rbGLgQ,2851
187
+ illusion/_frontend/src/components/ConversationView.tsx,sha256=MZ8swua_tTQENfEZXU1BoibamIqvMFVzqA7on583BoM,23225
188
+ illusion/_frontend/src/components/Footer.tsx,sha256=Dc-ghY4uRWoC0jd7AEBqwIQ_5Skz76-ae8sqC_SKqZ8,1373
189
+ illusion/_frontend/src/components/MarkdownContent.tsx,sha256=i4Ef6LDGk-LAQe1vzlT1lLh0VmL_OrSWe86e6RKQH00,17888
190
+ illusion/_frontend/src/components/MarkdownTable.tsx,sha256=nun6rSpgAJl-6SdmkCZoiK5bAcZvQyAJtFqnQSx3pXM,8093
191
+ illusion/_frontend/src/components/ModalHost.tsx,sha256=jnYwsI_QivOnQLZ1UjWApvh-9PAG9wbcGRm5GaZ6JS0,11815
192
+ illusion/_frontend/src/components/MultilineTextInput.tsx,sha256=0r4HgUDheunU3Goee9SY7ZpCMGZb8yEbB34HvAGiWz0,6964
193
+ illusion/_frontend/src/components/PromptInput.tsx,sha256=PtRssHmI-v_SgtlUxewPcy4__syv23meBVFOIx_eH5s,1578
194
+ illusion/_frontend/src/components/SelectModal.tsx,sha256=pM8nCFD-4UA0izXSuNGJOzowsEYydI06jnSW4wM0Q4s,1997
195
+ illusion/_frontend/src/components/SidePanel.tsx,sha256=k9tAHWZWOtu6RfOPc5HfSwu8QECq0DiDqYhF5P79y8Y,6217
196
+ illusion/_frontend/src/components/Spinner.tsx,sha256=D0QiN--Xegx0XOp5A-p_RtN3Mm1PXz5P5ieQkPCb38I,2586
197
+ illusion/_frontend/src/components/StatusBar.tsx,sha256=4toNRuWdphH_fHtWz8jnTGRUA6H4hk9Z4Wn6JB4Y5dQ,3666
198
+ illusion/_frontend/src/components/SwarmPanel.tsx,sha256=0U0fXh7WFLYTYFzMGD9X9tMBDPYJPUuWEFFN_2rZ3Fc,3512
199
+ illusion/_frontend/src/components/TodoPanel.tsx,sha256=h0MRqCkIsFjacVKSqW0uGpWkVHYbQn5uZVWMOrjq_vI,4146
200
+ illusion/_frontend/src/components/ToolCallDisplay.tsx,sha256=S_pexNjO3E_zSCURM3VNBx0JJ5Z31T0h-FHZ0ljE_wA,6188
201
+ illusion/_frontend/src/components/TranscriptPane.tsx,sha256=DR7m23rF6BG5XHpm18TMQAoPyoSoAz-xFiJ7_gKjvzM,2119
202
+ illusion/_frontend/src/components/WelcomeBanner.tsx,sha256=JTzAfmjy4M4XKQsUx9bfpNYbh2JAwdsw5NKVV0cVcRE,2023
203
+ illusion/_frontend/src/hooks/useBackendSession.ts,sha256=K7uTx33YlZhrAU_jS9AKMGeymvw5V1vkcLljIS5vWDU,15753
204
+ illusion/_frontend/src/hooks/useTerminalSize.ts,sha256=b_L_pRssdPkJ4OENczBNyKOFjyviz7EdcuqrPAOTrAY,210
205
+ illusion/_frontend/src/theme/ThemeContext.tsx,sha256=hQlboVJhN13zsil53jxxVgUcc7trN9LN5V0Smk3aVl8,492
206
+ illusion/_frontend/src/theme/builtinThemes.ts,sha256=FPUai3k18YAt5lvgjDGOeeC_m65R67M3IkAaTPlSTY0,1642
207
+ illusion/_frontend/src/utils/markdown.ts,sha256=bqeN6-ozALogG_7i4j-4-cVGzdjtlls0uXMWggjaQRw,1004
208
+ illusion/_frontend/src/utils/thinking.ts,sha256=U9x5VSYhN3G7pIWGJnrGDRXJ_jAhxtnQzaxitp20yOk,5916
209
+ illusion/_frontend/tsconfig.json,sha256=D1eU9hIQU77lUibw5SJpZ9tTAh6eyze0DeIjZIwFVNY,282
210
+ illusion_code-0.1.0.dist-info/METADATA,sha256=Jlg01l7oGdUQu7EerwZQg7fT-69klx0HQCF99fYO4Oc,37442
211
+ illusion_code-0.1.0.dist-info/WHEEL,sha256=QccIxa26bgl1E6uMy58deGWi-0aeIkkangHcxk2kWfw,87
212
+ illusion_code-0.1.0.dist-info/entry_points.txt,sha256=U3M2xO7l0VPno-9ej1tF0x-x-RkC0ZFneJq8kPQehYs,46
213
+ illusion_code-0.1.0.dist-info/licenses/LICENSE,sha256=_qSpOwgK9u1mU9g6J7QaG97M1kSo9xRsTGjYOoatL7Y,1082
214
+ illusion_code-0.1.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.29.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ illusion = illusion.cli:app
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 IllusionCode Contributors
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
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.