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
illusion/api/effort.py ADDED
@@ -0,0 +1,128 @@
1
+ """
2
+ Effort 级别管理模块
3
+ ===================
4
+
5
+ 本模块提供 effort(推理强度)级别的管理和映射功能。
6
+
7
+ 主要功能:
8
+ - EffortLevel 枚举:定义所有支持的 effort 级别
9
+ - EffortMapper 类:管理 effort 级别的映射和降级
10
+
11
+ 使用示例:
12
+ >>> from illusion.api.effort import EffortLevel, EffortMapper
13
+ >>> effort = EffortMapper.normalize("high")
14
+ >>> fallback = EffortMapper.fallback(effort, {EffortLevel.HIGH})
15
+ """
16
+
17
+ from __future__ import annotations
18
+
19
+ from enum import Enum
20
+
21
+
22
+ class EffortLevel(str, Enum):
23
+ """Effort 级别枚举
24
+
25
+ 定义所有支持的 effort(推理强度)级别。
26
+
27
+ Attributes:
28
+ LOW: 低强度,最快响应
29
+ MEDIUM: 中等强度,平衡推理
30
+ HIGH: 高强度,最深推理
31
+ XHIGH: 超高强度,比 high 更深的推理
32
+ MAX: 最大强度,最大推理深度
33
+ """
34
+
35
+ LOW = "low"
36
+ MEDIUM = "medium"
37
+ HIGH = "high"
38
+ XHIGH = "xhigh"
39
+ MAX = "max"
40
+
41
+
42
+ class EffortMapper:
43
+ """Effort 级别映射器
44
+
45
+ 管理 effort 级别的映射和降级逻辑。
46
+
47
+ 类属性:
48
+ SUPPORTED_LEVELS: 支持的 effort 级别集合
49
+ FALLBACK_MAP: 降级映射表
50
+ REVERSE_MAP: 反向映射表
51
+ """
52
+
53
+ # 支持的 effort 级别(默认支持 low/medium/high)
54
+ SUPPORTED_LEVELS: set[EffortLevel] = {
55
+ EffortLevel.LOW,
56
+ EffortLevel.MEDIUM,
57
+ EffortLevel.HIGH,
58
+ }
59
+
60
+ # 降级映射表:当模型不支持当前级别时,按优先级尝试的级别列表
61
+ FALLBACK_CHAIN: dict[EffortLevel, list[EffortLevel]] = {
62
+ EffortLevel.LOW: [EffortLevel.HIGH],
63
+ EffortLevel.MEDIUM: [EffortLevel.HIGH],
64
+ EffortLevel.HIGH: [EffortLevel.HIGH],
65
+ EffortLevel.XHIGH: [EffortLevel.MAX, EffortLevel.HIGH],
66
+ EffortLevel.MAX: [EffortLevel.XHIGH, EffortLevel.HIGH],
67
+ }
68
+
69
+ @classmethod
70
+ def normalize(cls, effort: str | EffortLevel) -> EffortLevel:
71
+ """标准化 effort 级别
72
+
73
+ 将字符串或 EffortLevel 对象标准化为 EffortLevel 枚举值。
74
+
75
+ Args:
76
+ effort: effort 级别字符串或 EffortLevel 对象
77
+
78
+ Returns:
79
+ EffortLevel: 标准化后的 EffortLevel 枚举值
80
+
81
+ Raises:
82
+ ValueError: 当字符串不是有效的 effort 级别时
83
+ """
84
+ if isinstance(effort, str):
85
+ return EffortLevel(effort.lower())
86
+ return effort
87
+
88
+ @classmethod
89
+ def fallback(cls, effort: EffortLevel, supported_levels: set[EffortLevel]) -> EffortLevel:
90
+ """当模型不支持当前 effort 级别时,返回降级后的级别
91
+
92
+ 支持链式降级:如果第一个降级目标也不支持,继续尝试下一个。
93
+
94
+ Args:
95
+ effort: 当前 effort 级别
96
+ supported_levels: 模型支持的 effort 级别集合
97
+
98
+ Returns:
99
+ EffortLevel: 降级后的 effort 级别
100
+ """
101
+ if effort in supported_levels:
102
+ return effort
103
+ # 按优先级尝试降级
104
+ for fallback_effort in cls.FALLBACK_CHAIN.get(effort, [EffortLevel.HIGH]):
105
+ if fallback_effort in supported_levels:
106
+ return fallback_effort
107
+ # 所有降级都失败,返回 high 作为最终兜底
108
+ return EffortLevel.HIGH
109
+
110
+ @classmethod
111
+ def reverse_fallback(cls, effort: EffortLevel) -> EffortLevel:
112
+ """反向降级:将高级别映射到低级别
113
+
114
+ 当模型不支持高级别时,反向映射到低级别。
115
+ 对于 LOW/MEDIUM/HIGH 等基础级别,返回原值不做降级。
116
+
117
+ Args:
118
+ effort: 当前 effort 级别
119
+
120
+ Returns:
121
+ EffortLevel: 反向降级后的 effort 级别
122
+ """
123
+ # LOW/MEDIUM/HIGH 不需要降级
124
+ if effort in cls.SUPPORTED_LEVELS:
125
+ return effort
126
+ # XHIGH/MAX 按链式降级
127
+ chain = cls.FALLBACK_CHAIN.get(effort, [])
128
+ return chain[0] if chain else EffortLevel.HIGH
illusion/api/errors.py ADDED
@@ -0,0 +1,57 @@
1
+ """
2
+ API 错误类型模块
3
+ ================
4
+
5
+ 本模块定义 IllusionCode API 相关的自定义异常类型。
6
+
7
+ 主要功能:
8
+ - 定义基础 API 异常类
9
+ - 提供认证失败、速率限制、请求失败等具体异常
10
+
11
+ 类说明:
12
+ - IllusionCodeApiError: 所有 API 异常的基类
13
+ - AuthenticationFailure: 认证失败异常
14
+ - RateLimitFailure: 速率限制异常
15
+ - RequestFailure: 请求失败异常
16
+
17
+ 使用示例:
18
+ >>> from illusion.api.errors import AuthenticationFailure, RateLimitFailure
19
+ >>> try:
20
+ >>> # API 调用
21
+ >>> except AuthenticationFailure as e:
22
+ >>> print(f"认证失败: {e}")
23
+ """
24
+
25
+ from __future__ import annotations
26
+
27
+
28
+ class IllusionCodeApiError(RuntimeError):
29
+ """API 异常基类
30
+
31
+ 所有上游 API 失败异常的基类,继承自 RuntimeError。
32
+ 用于统一处理来自不同 API 提供商的错误。
33
+ """
34
+
35
+
36
+ class AuthenticationFailure(IllusionCodeApiError):
37
+ """认证失败异常
38
+
39
+ 当上游服务拒绝提供的凭据时抛出此异常。
40
+ 可能的原因包括:API 密钥无效、令牌过期、权限不足等。
41
+ """
42
+
43
+
44
+ class RateLimitFailure(IllusionCodeApiError):
45
+ """速率限制异常
46
+
47
+ 当上游服务因请求频率超限而拒绝请求时抛出此异常。
48
+ 通常包含重试建议信息。
49
+ """
50
+
51
+
52
+ class RequestFailure(IllusionCodeApiError):
53
+ """请求失败异常
54
+
55
+ 用于通用的请求或传输失败情况。
56
+ 可能的原因包括:网络连接错误、服务不可用、超时等。
57
+ """