illusion-code 0.1.0__tar.gz → 0.1.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (404) hide show
  1. {illusion_code-0.1.0 → illusion_code-0.1.2}/.github/workflows/publish.yml +1 -9
  2. {illusion_code-0.1.0 → illusion_code-0.1.2}/PKG-INFO +53 -15
  3. {illusion_code-0.1.0 → illusion_code-0.1.2}/README.md +52 -14
  4. {illusion_code-0.1.0 → illusion_code-0.1.2}/README.zh-CN.md +53 -15
  5. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/terminal/src/App.tsx +305 -41
  6. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/terminal/src/components/CommandPicker.tsx +37 -0
  7. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/terminal/src/components/Composer.tsx +32 -0
  8. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/terminal/src/components/ComposerController.tsx +27 -0
  9. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/terminal/src/components/ConversationView.tsx +52 -3
  10. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/terminal/src/components/Footer.tsx +24 -0
  11. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/terminal/src/components/MarkdownContent.tsx +39 -3
  12. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/terminal/src/components/MarkdownTable.tsx +17 -0
  13. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/terminal/src/components/ModalHost.tsx +73 -0
  14. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/terminal/src/components/MultilineTextInput.tsx +48 -0
  15. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/terminal/src/components/PromptInput.tsx +38 -0
  16. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/terminal/src/components/SelectModal.tsx +31 -0
  17. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/terminal/src/components/SidePanel.tsx +52 -0
  18. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/terminal/src/components/Spinner.tsx +25 -0
  19. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/terminal/src/components/StatusBar.tsx +30 -0
  20. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/terminal/src/components/SwarmPanel.tsx +28 -1
  21. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/terminal/src/components/TodoPanel.tsx +21 -0
  22. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/terminal/src/components/ToolCallDisplay.tsx +24 -0
  23. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/terminal/src/components/TranscriptPane.tsx +20 -0
  24. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/terminal/src/components/WelcomeBanner.tsx +18 -0
  25. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/terminal/src/hooks/useBackendSession.ts +167 -17
  26. illusion_code-0.1.2/frontend/terminal/src/hooks/useTerminalSize.ts +25 -0
  27. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/terminal/src/i18n.ts +64 -0
  28. illusion_code-0.1.2/frontend/terminal/src/index.tsx +72 -0
  29. illusion_code-0.1.2/frontend/terminal/src/theme/ThemeContext.tsx +49 -0
  30. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/terminal/src/theme/builtinThemes.ts +59 -0
  31. illusion_code-0.1.2/frontend/terminal/src/types.ts +268 -0
  32. illusion_code-0.1.2/frontend/terminal/src/utils/markdown.ts +68 -0
  33. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/terminal/src/utils/thinking.ts +5 -5
  34. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/web/package-lock.json +2 -2
  35. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/web/package.json +1 -1
  36. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/web/src/App.tsx +110 -1
  37. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/web/src/components/ChatArea.tsx +40 -1
  38. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/web/src/components/MessageBubble.tsx +62 -0
  39. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/web/src/components/ModalCard.tsx +50 -0
  40. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/web/src/components/PromptInput.tsx +46 -0
  41. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/web/src/components/RightPanel.tsx +37 -0
  42. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/web/src/components/Sidebar.tsx +34 -0
  43. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/web/src/components/TodoPanel.tsx +25 -0
  44. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/web/src/components/Toolbar.tsx +37 -0
  45. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/web/src/components/WelcomeScreen.tsx +21 -0
  46. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/web/src/hooks/useWebSocketSession.ts +53 -0
  47. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/web/src/i18n.ts +30 -2
  48. illusion_code-0.1.2/frontend/web/src/main.tsx +27 -0
  49. illusion_code-0.1.2/frontend/web/src/types/protocol.ts +312 -0
  50. illusion_code-0.1.2/frontend/web/src/vite-env.d.ts +1 -0
  51. {illusion_code-0.1.0 → illusion_code-0.1.2}/pyproject.toml +1 -1
  52. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/api/openai_client.py +23 -14
  53. illusion_code-0.1.2/src/illusion/auth/codex_oauth.py +634 -0
  54. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/cli.py +147 -13
  55. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/commands/__init__.py +2 -2
  56. illusion_code-0.1.2/src/illusion/commands/auth.py +55 -0
  57. illusion_code-0.1.2/src/illusion/commands/bridge.py +75 -0
  58. illusion_code-0.1.2/src/illusion/commands/context.py +66 -0
  59. illusion_code-0.1.2/src/illusion/commands/git.py +54 -0
  60. illusion_code-0.1.2/src/illusion/commands/helpers.py +159 -0
  61. illusion_code-0.1.2/src/illusion/commands/init/__init__.py +20 -0
  62. illusion_code-0.1.2/src/illusion/commands/init/analysis/__init__.py +1 -0
  63. illusion_code-0.1.2/src/illusion/commands/init/analysis/architecture.py +180 -0
  64. illusion_code-0.1.2/src/illusion/commands/init/analysis/conventions.py +231 -0
  65. illusion_code-0.1.2/src/illusion/commands/init/analysis/dependencies.py +173 -0
  66. illusion_code-0.1.2/src/illusion/commands/init/analysis/key_modules.py +109 -0
  67. illusion_code-0.1.2/src/illusion/commands/init/extraction/__init__.py +1 -0
  68. illusion_code-0.1.2/src/illusion/commands/init/extraction/lsp_symbols.py +167 -0
  69. illusion_code-0.1.2/src/illusion/commands/init/extraction/readme.py +138 -0
  70. illusion_code-0.1.2/src/illusion/commands/init/extraction/scanner.py +527 -0
  71. illusion_code-0.1.2/src/illusion/commands/init/generation/__init__.py +1 -0
  72. illusion_code-0.1.2/src/illusion/commands/init/generation/claudemd.py +241 -0
  73. illusion_code-0.1.2/src/illusion/commands/init/generation/illusionmd.py +125 -0
  74. illusion_code-0.1.2/src/illusion/commands/init/generation/memory_template.py +81 -0
  75. illusion_code-0.1.2/src/illusion/commands/init/generation/rules.py +110 -0
  76. illusion_code-0.1.2/src/illusion/commands/init/generation/sections.py +73 -0
  77. illusion_code-0.1.2/src/illusion/commands/init/orchestrator.py +255 -0
  78. illusion_code-0.1.2/src/illusion/commands/init/types.py +96 -0
  79. illusion_code-0.1.2/src/illusion/commands/mcp.py +63 -0
  80. illusion_code-0.1.2/src/illusion/commands/memory.py +54 -0
  81. illusion_code-0.1.2/src/illusion/commands/misc.py +322 -0
  82. illusion_code-0.1.2/src/illusion/commands/model.py +52 -0
  83. illusion_code-0.1.2/src/illusion/commands/plugin.py +40 -0
  84. illusion_code-0.1.2/src/illusion/commands/registry.py +289 -0
  85. illusion_code-0.1.2/src/illusion/commands/rules.py +57 -0
  86. illusion_code-0.1.2/src/illusion/commands/session.py +285 -0
  87. illusion_code-0.1.2/src/illusion/commands/settings.py +298 -0
  88. illusion_code-0.1.2/src/illusion/commands/types.py +70 -0
  89. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/config/i18n.py +43 -0
  90. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/config/paths.py +4 -4
  91. illusion_code-0.1.2/src/illusion/config/plan_file.py +185 -0
  92. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/config/settings.py +13 -1
  93. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/engine/query.py +5 -0
  94. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/engine/query_engine.py +5 -1
  95. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/mcp/client.py +18 -2
  96. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/memory/__init__.py +8 -2
  97. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/memory/paths.py +36 -8
  98. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/permissions/checker.py +45 -2
  99. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/prompts/claudemd.py +34 -6
  100. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/prompts/context.py +40 -1
  101. illusion_code-0.1.2/src/illusion/services/compact/__init__.py +95 -0
  102. illusion_code-0.1.2/src/illusion/services/compact/auto_compact.py +95 -0
  103. illusion_code-0.1.2/src/illusion/services/compact/compact_core.py +157 -0
  104. illusion_code-0.1.2/src/illusion/services/compact/compact_prompt.py +50 -0
  105. illusion_code-0.1.2/src/illusion/services/compact/constants.py +83 -0
  106. illusion_code-0.1.2/src/illusion/services/compact/message_ops.py +185 -0
  107. illusion_code-0.1.2/src/illusion/services/compact/microcompact.py +125 -0
  108. illusion_code-0.1.2/src/illusion/services/compact/models.py +30 -0
  109. illusion_code-0.1.2/src/illusion/services/compact/token_utils.py +131 -0
  110. illusion_code-0.1.2/src/illusion/services/lsp/__init__.py +21 -0
  111. illusion_code-0.1.2/src/illusion/services/lsp/client.py +275 -0
  112. illusion_code-0.1.2/src/illusion/services/lsp/config.py +96 -0
  113. illusion_code-0.1.2/src/illusion/services/lsp/manager.py +213 -0
  114. illusion_code-0.1.2/src/illusion/services/lsp/types.py +70 -0
  115. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tools/enter_plan_mode_tool.py +37 -19
  116. illusion_code-0.1.2/src/illusion/tools/exit_plan_mode_tool.py +120 -0
  117. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tools/glob_tool.py +7 -1
  118. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tools/grep_tool.py +1 -1
  119. illusion_code-0.1.2/src/illusion/tools/lsp_formatters.py +277 -0
  120. illusion_code-0.1.2/src/illusion/tools/lsp_schemas.py +78 -0
  121. illusion_code-0.1.2/src/illusion/tools/lsp_tool.py +351 -0
  122. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/ui/backend_host.py +67 -19
  123. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/ui/protocol.py +6 -3
  124. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/ui/runtime.py +3 -0
  125. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/ui/web/ws_host.py +65 -19
  126. illusion_code-0.1.2/tests/commands/init/test_claudemd.py +134 -0
  127. illusion_code-0.1.2/tests/commands/init/test_orchestrator.py +108 -0
  128. illusion_code-0.1.2/tests/commands/init/test_scanner.py +58 -0
  129. illusion_code-0.1.2/tests/commands/init/test_sections.py +53 -0
  130. illusion_code-0.1.2/tests/services/lsp/test_lsp_client.py +23 -0
  131. illusion_code-0.1.2/tests/services/lsp/test_lsp_config.py +81 -0
  132. illusion_code-0.1.2/tests/services/lsp/test_lsp_manager.py +46 -0
  133. illusion_code-0.1.2/tests/services/lsp/test_lsp_types.py +78 -0
  134. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_commands/test_registry.py +5 -3
  135. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_mcp/test_stdio_flow.py +1 -4
  136. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_plugins/test_lifecycle_flow.py +1 -4
  137. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_skills/test_loader.py +1 -1
  138. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_tools/test_core_tools.py +18 -21
  139. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_tools/test_integration_flows.py +12 -20
  140. illusion_code-0.1.0/frontend/terminal/src/hooks/useTerminalSize.ts +0 -9
  141. illusion_code-0.1.0/frontend/terminal/src/index.tsx +0 -42
  142. illusion_code-0.1.0/frontend/terminal/src/theme/ThemeContext.tsx +0 -19
  143. illusion_code-0.1.0/frontend/terminal/src/types.ts +0 -110
  144. illusion_code-0.1.0/frontend/terminal/src/utils/markdown.ts +0 -33
  145. illusion_code-0.1.0/frontend/web/src/main.tsx +0 -10
  146. illusion_code-0.1.0/frontend/web/src/types/protocol.ts +0 -146
  147. illusion_code-0.1.0/src/illusion/commands/registry.py +0 -1934
  148. illusion_code-0.1.0/src/illusion/py.typed +0 -0
  149. illusion_code-0.1.0/src/illusion/services/compact/__init__.py +0 -1015
  150. illusion_code-0.1.0/src/illusion/services/lsp/__init__.py +0 -455
  151. illusion_code-0.1.0/src/illusion/tools/exit_plan_mode_tool.py +0 -69
  152. illusion_code-0.1.0/src/illusion/tools/lsp_tool.py +0 -333
  153. {illusion_code-0.1.0 → illusion_code-0.1.2}/.gitignore +0 -0
  154. {illusion_code-0.1.0 → illusion_code-0.1.2}/.python-version +0 -0
  155. {illusion_code-0.1.0 → illusion_code-0.1.2}/LICENSE +0 -0
  156. {illusion_code-0.1.0 → illusion_code-0.1.2}/docs/images/image1.png +0 -0
  157. {illusion_code-0.1.0 → illusion_code-0.1.2}/docs/images/image2.png +0 -0
  158. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/terminal/build.mjs +0 -0
  159. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/terminal/package-lock.json +0 -0
  160. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/terminal/package.json +0 -0
  161. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/terminal/tsconfig.json +0 -0
  162. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/web/index.html +0 -0
  163. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/web/postcss.config.js +0 -0
  164. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/web/src/index.css +0 -0
  165. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/web/src/remarkSuperscript.ts +0 -0
  166. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/web/tailwind.config.js +0 -0
  167. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/web/tsconfig.json +0 -0
  168. {illusion_code-0.1.0 → illusion_code-0.1.2}/frontend/web/vite.config.ts +0 -0
  169. {illusion_code-0.1.0 → illusion_code-0.1.2}/main.py +0 -0
  170. {illusion_code-0.1.0 → illusion_code-0.1.2}/scripts/build_frontend.py +0 -0
  171. {illusion_code-0.1.0 → illusion_code-0.1.2}/scripts/hatch_build.py +0 -0
  172. {illusion_code-0.1.0 → illusion_code-0.1.2}/scripts/publish.py +0 -0
  173. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/__init__.py +0 -0
  174. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/__main__.py +0 -0
  175. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/api/__init__.py +0 -0
  176. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/api/client.py +0 -0
  177. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/api/codex_client.py +0 -0
  178. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/api/compat.py +0 -0
  179. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/api/effort.py +0 -0
  180. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/api/errors.py +0 -0
  181. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/api/provider.py +0 -0
  182. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/api/registry.py +0 -0
  183. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/api/usage.py +0 -0
  184. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/auth/__init__.py +0 -0
  185. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/auth/copilot.py +0 -0
  186. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/auth/external.py +0 -0
  187. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/auth/flows.py +0 -0
  188. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/auth/manager.py +0 -0
  189. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/auth/storage.py +0 -0
  190. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/bridge/__init__.py +0 -0
  191. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/bridge/manager.py +0 -0
  192. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/bridge/session_runner.py +0 -0
  193. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/bridge/types.py +0 -0
  194. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/bridge/work_secret.py +0 -0
  195. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/config/__init__.py +0 -0
  196. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/coordinator/__init__.py +0 -0
  197. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/coordinator/agent_definitions.py +0 -0
  198. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/coordinator/coordinator_mode.py +0 -0
  199. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/engine/__init__.py +0 -0
  200. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/engine/cost_tracker.py +0 -0
  201. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/engine/messages.py +0 -0
  202. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/engine/stream_events.py +0 -0
  203. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/hooks/__init__.py +0 -0
  204. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/hooks/events.py +0 -0
  205. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/hooks/executor.py +0 -0
  206. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/hooks/hot_reload.py +0 -0
  207. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/hooks/loader.py +0 -0
  208. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/hooks/schemas.py +0 -0
  209. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/hooks/types.py +0 -0
  210. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/mcp/__init__.py +0 -0
  211. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/mcp/config.py +0 -0
  212. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/mcp/types.py +0 -0
  213. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/memory/manager.py +0 -0
  214. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/memory/memdir.py +0 -0
  215. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/memory/scan.py +0 -0
  216. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/memory/search.py +0 -0
  217. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/memory/types.py +0 -0
  218. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/output_styles/__init__.py +0 -0
  219. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/output_styles/loader.py +0 -0
  220. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/permissions/__init__.py +0 -0
  221. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/permissions/modes.py +0 -0
  222. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/platforms.py +0 -0
  223. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/plugins/__init__.py +0 -0
  224. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/plugins/installer.py +0 -0
  225. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/plugins/loader.py +0 -0
  226. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/plugins/schemas.py +0 -0
  227. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/plugins/types.py +0 -0
  228. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/prompts/__init__.py +0 -0
  229. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/prompts/environment.py +0 -0
  230. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/prompts/system_prompt.py +0 -0
  231. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/sandbox/__init__.py +0 -0
  232. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/sandbox/adapter.py +0 -0
  233. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/services/__init__.py +0 -0
  234. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/services/cron.py +0 -0
  235. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/services/cron_scheduler.py +0 -0
  236. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/services/file_history.py +0 -0
  237. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/services/session_storage.py +0 -0
  238. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/services/token_estimation.py +0 -0
  239. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/skills/__init__.py +0 -0
  240. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/skills/bundled/__init__.py +0 -0
  241. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/skills/bundled/content/batch.md +0 -0
  242. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/skills/bundled/content/coding-guidelines.md +0 -0
  243. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/skills/bundled/content/debug.md +0 -0
  244. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/skills/bundled/content/loop.md +0 -0
  245. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/skills/bundled/content/remember.md +0 -0
  246. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/skills/bundled/content/simplify.md +0 -0
  247. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/skills/bundled/content/skillify.md +0 -0
  248. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/skills/bundled/content/stuck.md +0 -0
  249. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/skills/bundled/content/update-config.md +0 -0
  250. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/skills/bundled/content/verify.md +0 -0
  251. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/skills/loader.py +0 -0
  252. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/skills/registry.py +0 -0
  253. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/skills/types.py +0 -0
  254. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/state/__init__.py +0 -0
  255. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/state/app_state.py +0 -0
  256. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/state/store.py +0 -0
  257. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/swarm/__init__.py +0 -0
  258. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/swarm/agent_executor.py +0 -0
  259. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/swarm/in_process.py +0 -0
  260. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/swarm/subprocess_backend.py +0 -0
  261. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/swarm/team_helpers.py +0 -0
  262. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/swarm/types.py +0 -0
  263. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/swarm/worktree.py +0 -0
  264. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tasks/__init__.py +0 -0
  265. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tasks/local_agent_task.py +0 -0
  266. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tasks/local_shell_task.py +0 -0
  267. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tasks/manager.py +0 -0
  268. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tasks/stop_task.py +0 -0
  269. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tasks/types.py +0 -0
  270. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tools/__init__.py +0 -0
  271. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tools/agent_tool.py +0 -0
  272. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tools/ask_user_question_tool.py +0 -0
  273. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tools/base.py +0 -0
  274. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tools/bash_tool.py +0 -0
  275. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tools/config_tool.py +0 -0
  276. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tools/cron_tool.py +0 -0
  277. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tools/enter_worktree_tool.py +0 -0
  278. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tools/exit_worktree_tool.py +0 -0
  279. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tools/file_edit_tool.py +0 -0
  280. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tools/file_read_tool.py +0 -0
  281. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tools/file_write_tool.py +0 -0
  282. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tools/list_mcp_resources_tool.py +0 -0
  283. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tools/mcp_auth_tool.py +0 -0
  284. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tools/mcp_tool.py +0 -0
  285. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tools/notebook_edit_tool.py +0 -0
  286. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tools/powershell_tool.py +0 -0
  287. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tools/read_mcp_resource_tool.py +0 -0
  288. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tools/repl_tool.py +0 -0
  289. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tools/send_message_tool.py +0 -0
  290. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tools/shell_common.py +0 -0
  291. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tools/skill_tool.py +0 -0
  292. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tools/sleep_tool.py +0 -0
  293. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tools/structured_output_tool.py +0 -0
  294. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tools/task_create_tool.py +0 -0
  295. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tools/task_get_tool.py +0 -0
  296. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tools/task_list_tool.py +0 -0
  297. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tools/task_output_tool.py +0 -0
  298. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tools/task_stop_tool.py +0 -0
  299. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tools/task_update_tool.py +0 -0
  300. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tools/team_create_tool.py +0 -0
  301. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tools/team_delete_tool.py +0 -0
  302. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tools/todo_write_tool.py +0 -0
  303. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tools/tool_search_tool.py +0 -0
  304. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tools/web_fetch_tool.py +0 -0
  305. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/tools/web_search_tool.py +0 -0
  306. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/ui/__init__.py +0 -0
  307. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/ui/app.py +0 -0
  308. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/ui/input.py +0 -0
  309. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/ui/output.py +0 -0
  310. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/ui/permission_dialog.py +0 -0
  311. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/ui/permission_store.py +0 -0
  312. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/ui/react_launcher.py +0 -0
  313. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/ui/textual_app.py +0 -0
  314. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/ui/web/__init__.py +0 -0
  315. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/ui/web/server.py +0 -0
  316. {illusion_code-0.1.0/src/illusion/plugins/bundled → illusion_code-0.1.2/src/illusion/utils}/__init__.py +0 -0
  317. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/utils/ripgrep.py +0 -0
  318. {illusion_code-0.1.0 → illusion_code-0.1.2}/src/illusion/utils/shell.py +0 -0
  319. {illusion_code-0.1.0/src/illusion/utils → illusion_code-0.1.2/tests}/__init__.py +0 -0
  320. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/api/test_anthropic_client.py +0 -0
  321. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/api/test_client.py +0 -0
  322. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/api/test_codex_client.py +0 -0
  323. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/api/test_effort.py +0 -0
  324. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/api/test_fallback/346/217/220/347/244/272.py" +0 -0
  325. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/api/test_openai_client.py +0 -0
  326. {illusion_code-0.1.0/tests → illusion_code-0.1.2/tests/commands/init}/__init__.py +0 -0
  327. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/commands/test_effort_command.py +0 -0
  328. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/config/test_i18n.py +0 -0
  329. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/config/test_settings.py +0 -0
  330. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/conftest.py +0 -0
  331. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/engine/test_query_engine.py +0 -0
  332. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/fixtures/fake_mcp_server.py +0 -0
  333. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/integration/test_effort_integration.py +0 -0
  334. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_api/__init__.py +0 -0
  335. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_api/test_client.py +0 -0
  336. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_api/test_codex_client.py +0 -0
  337. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_api/test_compat.py +0 -0
  338. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_api/test_openai_client.py +0 -0
  339. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_auth/test_external.py +0 -0
  340. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_bridge/test_core.py +0 -0
  341. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_bridge/test_session_flow.py +0 -0
  342. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_commands/__init__.py +0 -0
  343. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_commands/test_cli.py +0 -0
  344. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_commands/test_command_flows.py +0 -0
  345. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_config/__init__.py +0 -0
  346. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_config/test_paths.py +0 -0
  347. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_config/test_settings.py +0 -0
  348. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_coordinator/test_agent_definitions.py +0 -0
  349. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_coordinator/test_coordinator_mode.py +0 -0
  350. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_engine/__init__.py +0 -0
  351. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_engine/test_media_block.py +0 -0
  352. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_engine/test_query_engine.py +0 -0
  353. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_engine/test_tool_result_media.py +0 -0
  354. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_hooks/__init__.py +0 -0
  355. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_hooks/test_executor.py +0 -0
  356. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_hooks_skills_plugins_real.py +0 -0
  357. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_mcp/__init__.py +0 -0
  358. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_mcp/test_integration.py +0 -0
  359. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_memory/__init__.py +0 -0
  360. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_memory/test_memdir.py +0 -0
  361. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_merged_prs_on_autoagent.py +0 -0
  362. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_permissions/__init__.py +0 -0
  363. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_permissions/test_checker.py +0 -0
  364. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_platforms.py +0 -0
  365. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_plugins/__init__.py +0 -0
  366. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_plugins/test_loader.py +0 -0
  367. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_prompts/__init__.py +0 -0
  368. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_prompts/test_claudemd.py +0 -0
  369. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_prompts/test_environment.py +0 -0
  370. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_prompts/test_system_prompt.py +0 -0
  371. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_real_large_tasks.py +0 -0
  372. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_sandbox/test_adapter.py +0 -0
  373. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_services/test_compact.py +0 -0
  374. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_services/test_cron.py +0 -0
  375. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_services/test_cron_scheduler.py +0 -0
  376. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_services/test_session_storage.py +0 -0
  377. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_swarm/__init__.py +0 -0
  378. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_swarm/test_agent_executor.py +0 -0
  379. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_swarm/test_imports.py +0 -0
  380. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_swarm/test_in_process.py +0 -0
  381. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_swarm/test_types.py +0 -0
  382. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_swarm/test_worktree.py +0 -0
  383. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_tasks/test_manager.py +0 -0
  384. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_tools/__init__.py +0 -0
  385. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_tools/test_agent_tool.py +0 -0
  386. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_tools/test_file_read_media.py +0 -0
  387. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_tools/test_glob_tool.py +0 -0
  388. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_tools/test_grep_tool.py +0 -0
  389. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_tools/test_integration.py +0 -0
  390. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_tools/test_mcp_auth_tool.py +0 -0
  391. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_tools/test_ripgrep.py +0 -0
  392. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_tools/test_shell_common.py +0 -0
  393. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_tools/test_task_tools.py +0 -0
  394. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_tools/test_team_tools.py +0 -0
  395. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_tools/test_web_fetch_tool.py +0 -0
  396. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_ui/__init__.py +0 -0
  397. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_ui/test_modes.py +0 -0
  398. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_ui/test_permission_store.py +0 -0
  399. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_ui/test_react_backend.py +0 -0
  400. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_ui/test_react_launcher.py +0 -0
  401. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_ui/test_textual_app.py +0 -0
  402. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_untested_features.py +0 -0
  403. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/test_utils/test_shell.py +0 -0
  404. {illusion_code-0.1.0 → illusion_code-0.1.2}/tests/ui/test_backend_host.py +0 -0
@@ -34,15 +34,7 @@ jobs:
34
34
  run: ruff check src/
35
35
 
36
36
  - name: Test
37
- run: |
38
- pytest tests/ -q \
39
- --deselect tests/test_mcp/test_stdio_flow.py::test_stdio_mcp_manager_connects_and_executes_real_server \
40
- --deselect tests/test_plugins/test_lifecycle_flow.py::test_plugin_install_load_and_uninstall_flow \
41
- --deselect tests/test_skills/test_loader.py::test_load_skill_registry_includes_bundled \
42
- --deselect tests/test_tools/test_core_tools.py::test_glob_and_grep \
43
- --deselect tests/test_tools/test_integration_flows.py::test_search_edit_flow_across_registry \
44
- --deselect tests/test_auth/test_external.py::test_external_binding_for_codex_without_switching \
45
- --deselect tests/test_commands/test_registry.py::test_agents_session_files_and_reload_plugins_commands
37
+ run: pytest tests/ -q
46
38
 
47
39
  - name: Build
48
40
  run: python -m build
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: illusion-code
3
- Version: 0.1.0
3
+ Version: 0.1.2
4
4
  Summary: Open-source Python port of Claude Code - an AI-powered CLI coding assistant
5
5
  Project-URL: Homepage, https://github.com/YunTaiHua/illusion-code
6
6
  Project-URL: Repository, https://github.com/YunTaiHua/illusion-code
@@ -133,17 +133,41 @@ IllusionCode is an open-source AI-powered command-line programming assistant tha
133
133
 
134
134
  ### Installation
135
135
 
136
- #### Recommended: pip install (one-step setup)
136
+ #### Recommended: pip install from PyPI
137
137
 
138
- `pip install .` triggers the hatch build hook to automatically build both frontends (terminal TUI and Web UI), and registers the `illusion` command globally. This is the simplest way to get started.
138
+ The simplest way to install IllusionCode. Automatically installs both frontends and registers the `illusion` command globally.
139
139
 
140
140
  ```bash
141
- git clone https://github.com/your-repo/illusion-code.git
141
+ pip install illusion-code
142
+ ```
143
+
144
+ No git clone or Node.js required — everything is included in the package.
145
+
146
+ #### Alternative: pip install from source
147
+
148
+ Clone the repository and install locally. Triggers the hatch build hook to build frontends automatically.
149
+
150
+ ```bash
151
+ git clone https://github.com/YunTaiHua/illusion-code.git
142
152
  cd illusion-code
143
153
  pip install .
144
154
  ```
145
155
 
146
- After installation, `illusion` is available globally from any directory. Requires Node.js 18+ (for frontend build).
156
+ Requires Node.js 18+ (for frontend build).
157
+
158
+ #### Alternative: pip install -e . (editable, from source)
159
+
160
+ Editable install from source. Like `pip install .`, it triggers the hatch build hook to build frontends automatically and registers `illusion` globally. Like `uv sync`, source code changes take effect immediately without reinstalling.
161
+
162
+ ```bash
163
+ git clone https://github.com/YunTaiHua/illusion-code.git
164
+ cd illusion-code
165
+ pip install -e .
166
+ ```
167
+
168
+ Requires Node.js 18+ (for frontend build).
169
+
170
+ > **When to use**: Best for developers who want both an editable install (live code changes) and the `illusion` command available globally. Unlike `uv sync`, no manual frontend build or `uv run` wrapper is needed.
147
171
 
148
172
  #### Alternative: uv sync (for development)
149
173
 
@@ -176,11 +200,14 @@ python scripts/build_frontend.py --web # Web UI only
176
200
  >
177
201
  > # Option 3: Install globally with pip (recommended)
178
202
  > pip install .
203
+ >
204
+ > # Option 4: Editable install with pip (global + live code changes)
205
+ > pip install -e .
179
206
  > ```
180
207
 
181
- #### Manual frontend build (for both methods)
208
+ #### Manual frontend build (for source installs only)
182
209
 
183
- If you need to rebuild frontends manually (e.g., after updating frontend code):
210
+ If you installed from source and need to rebuild frontends (e.g., after updating frontend code). PyPI users do not need this step.
184
211
 
185
212
  **Build script (recommended)**
186
213
 
@@ -208,12 +235,15 @@ cd ../..
208
235
 
209
236
  #### Key differences
210
237
 
211
- | | `pip install .` | `uv sync` |
212
- |---|---|---|
213
- | Frontend build | Automatic (hatch hook) | Manual |
214
- | `illusion` command | Global | Project-only (via `uv run` or venv activation) |
215
- | Install type | Standard | Editable |
216
- | Best for | End users | Developers |
238
+ | | `pip install illusion-code` | `pip install .` | `pip install -e .` | `uv sync` |
239
+ |---|---|---|---|---|
240
+ | Source | PyPI | Local git clone | Local git clone | Local git clone |
241
+ | Frontend build | Pre-built (included) | Automatic (hatch hook) | Automatic (hatch hook) | Manual |
242
+ | Node.js required | No | Yes (18+) | Yes (18+) | Yes (18+) |
243
+ | `illusion` command | Global | Global | Global | Project-only (via `uv run` or venv activation) |
244
+ | Install type | Standard | Standard | Editable | Editable |
245
+ | Code changes take effect | Reinstall needed | Reinstall needed | Immediately | Immediately |
246
+ | Best for | End users | Contributors | Developers (global + editable) | Developers |
217
247
 
218
248
  ### Basic Usage
219
249
 
@@ -290,6 +320,10 @@ illusion cron toggle <name> <true|false> # Enable/disable task
290
320
  illusion cron run <name> # Manually trigger task
291
321
  illusion cron history # View execution history
292
322
  illusion cron logs # View scheduler logs
323
+
324
+ # Self-update
325
+ illusion update # Check for and install updates from PyPI
326
+ illusion update --deps # Also update project dependencies
293
327
  ```
294
328
 
295
329
  ### Interactive Slash Commands
@@ -304,6 +338,7 @@ In interactive sessions, you can use the following commands:
304
338
  | Plugin Extensions | `/skills`, `/hooks`, `/mcp`, `/plugin` | Manage extension features |
305
339
  | Project Git | `/init`, `/diff`, `/branch`, `/commit` | Project and version control |
306
340
  | Multi-Agent | `/continue` | Agent collaboration |
341
+ | Self-Update | `/update` | Check for and install IllusionCode updates |
307
342
 
308
343
  ---
309
344
 
@@ -586,7 +621,7 @@ settings.json uses the `env_N` grouped format to manage multiple environment/pro
586
621
  | `env_N` | object | - | Environment config group (EnvConfig), supports dynamic env_1, env_2... | See EnvConfig field description below |
587
622
  | `model` | string | "env_1.model_1" | Active model reference, format: `env_N.model_N` | `"env_2.model_1"` |
588
623
  | `context_window` | int | 200000 | Context window size | `128000` |
589
- | `system_prompt` | string\|null | null | Custom system prompt (global override) | `"You are a professional Python developer"` |
624
+ | `system_prompt` | string\|null | null | Custom system prompt (global; can be overridden per env_N) | `"You are a professional Python developer"` |
590
625
  | `max_tokens` | int | 16384 | Maximum output token count | `32768` |
591
626
  | `max_turns` | int | 200 | Maximum conversation turns | `500` |
592
627
  | `ui_language` | string | "en-US" | UI language | `"zh-CN"` |
@@ -609,7 +644,7 @@ IllusionCode supports managing multiple environment/provider configurations thro
609
644
  | `base_url` | string\|null | No | Custom API endpoint, null uses default endpoint |
610
645
  | `api_key` | string | No | API key (can be filled directly, or left empty for `illusion auth login` to store in credentials.json) |
611
646
  | `system_prompt` | string\|null | No | System prompt for this environment (overrides global) |
612
- | `model_N` | string | No | Model name, supports multiple: model_1, model_2, model_3... |
647
+ | `model_N` | string | No | Model name, supports multiple: model_1, model_2, model_3... Append `[1m]` for million-token context (e.g. `claude-sonnet-4-6[1m]`) |
613
648
 
614
649
  #### Multi-Model Configuration Example
615
650
 
@@ -628,6 +663,9 @@ Configure multiple models under the same environment, switch via `env_N.model_N`
628
663
  }
629
664
  ```
630
665
 
666
+ > **Million-Token Context**: Anthropic models support the `[1m]` suffix for extended 1M context window. Append it to the model name (e.g. `claude-sonnet-4-6[1m]`). IllusionCode automatically detects this suffix and adjusts the internal context tracking to 1,000,000 tokens.
667
+ ```
668
+
631
669
  **Ways to switch models**:
632
670
 
633
671
  ```bash
@@ -85,17 +85,41 @@ IllusionCode is an open-source AI-powered command-line programming assistant tha
85
85
 
86
86
  ### Installation
87
87
 
88
- #### Recommended: pip install (one-step setup)
88
+ #### Recommended: pip install from PyPI
89
89
 
90
- `pip install .` triggers the hatch build hook to automatically build both frontends (terminal TUI and Web UI), and registers the `illusion` command globally. This is the simplest way to get started.
90
+ The simplest way to install IllusionCode. Automatically installs both frontends and registers the `illusion` command globally.
91
91
 
92
92
  ```bash
93
- git clone https://github.com/your-repo/illusion-code.git
93
+ pip install illusion-code
94
+ ```
95
+
96
+ No git clone or Node.js required — everything is included in the package.
97
+
98
+ #### Alternative: pip install from source
99
+
100
+ Clone the repository and install locally. Triggers the hatch build hook to build frontends automatically.
101
+
102
+ ```bash
103
+ git clone https://github.com/YunTaiHua/illusion-code.git
94
104
  cd illusion-code
95
105
  pip install .
96
106
  ```
97
107
 
98
- After installation, `illusion` is available globally from any directory. Requires Node.js 18+ (for frontend build).
108
+ Requires Node.js 18+ (for frontend build).
109
+
110
+ #### Alternative: pip install -e . (editable, from source)
111
+
112
+ Editable install from source. Like `pip install .`, it triggers the hatch build hook to build frontends automatically and registers `illusion` globally. Like `uv sync`, source code changes take effect immediately without reinstalling.
113
+
114
+ ```bash
115
+ git clone https://github.com/YunTaiHua/illusion-code.git
116
+ cd illusion-code
117
+ pip install -e .
118
+ ```
119
+
120
+ Requires Node.js 18+ (for frontend build).
121
+
122
+ > **When to use**: Best for developers who want both an editable install (live code changes) and the `illusion` command available globally. Unlike `uv sync`, no manual frontend build or `uv run` wrapper is needed.
99
123
 
100
124
  #### Alternative: uv sync (for development)
101
125
 
@@ -128,11 +152,14 @@ python scripts/build_frontend.py --web # Web UI only
128
152
  >
129
153
  > # Option 3: Install globally with pip (recommended)
130
154
  > pip install .
155
+ >
156
+ > # Option 4: Editable install with pip (global + live code changes)
157
+ > pip install -e .
131
158
  > ```
132
159
 
133
- #### Manual frontend build (for both methods)
160
+ #### Manual frontend build (for source installs only)
134
161
 
135
- If you need to rebuild frontends manually (e.g., after updating frontend code):
162
+ If you installed from source and need to rebuild frontends (e.g., after updating frontend code). PyPI users do not need this step.
136
163
 
137
164
  **Build script (recommended)**
138
165
 
@@ -160,12 +187,15 @@ cd ../..
160
187
 
161
188
  #### Key differences
162
189
 
163
- | | `pip install .` | `uv sync` |
164
- |---|---|---|
165
- | Frontend build | Automatic (hatch hook) | Manual |
166
- | `illusion` command | Global | Project-only (via `uv run` or venv activation) |
167
- | Install type | Standard | Editable |
168
- | Best for | End users | Developers |
190
+ | | `pip install illusion-code` | `pip install .` | `pip install -e .` | `uv sync` |
191
+ |---|---|---|---|---|
192
+ | Source | PyPI | Local git clone | Local git clone | Local git clone |
193
+ | Frontend build | Pre-built (included) | Automatic (hatch hook) | Automatic (hatch hook) | Manual |
194
+ | Node.js required | No | Yes (18+) | Yes (18+) | Yes (18+) |
195
+ | `illusion` command | Global | Global | Global | Project-only (via `uv run` or venv activation) |
196
+ | Install type | Standard | Standard | Editable | Editable |
197
+ | Code changes take effect | Reinstall needed | Reinstall needed | Immediately | Immediately |
198
+ | Best for | End users | Contributors | Developers (global + editable) | Developers |
169
199
 
170
200
  ### Basic Usage
171
201
 
@@ -242,6 +272,10 @@ illusion cron toggle <name> <true|false> # Enable/disable task
242
272
  illusion cron run <name> # Manually trigger task
243
273
  illusion cron history # View execution history
244
274
  illusion cron logs # View scheduler logs
275
+
276
+ # Self-update
277
+ illusion update # Check for and install updates from PyPI
278
+ illusion update --deps # Also update project dependencies
245
279
  ```
246
280
 
247
281
  ### Interactive Slash Commands
@@ -256,6 +290,7 @@ In interactive sessions, you can use the following commands:
256
290
  | Plugin Extensions | `/skills`, `/hooks`, `/mcp`, `/plugin` | Manage extension features |
257
291
  | Project Git | `/init`, `/diff`, `/branch`, `/commit` | Project and version control |
258
292
  | Multi-Agent | `/continue` | Agent collaboration |
293
+ | Self-Update | `/update` | Check for and install IllusionCode updates |
259
294
 
260
295
  ---
261
296
 
@@ -538,7 +573,7 @@ settings.json uses the `env_N` grouped format to manage multiple environment/pro
538
573
  | `env_N` | object | - | Environment config group (EnvConfig), supports dynamic env_1, env_2... | See EnvConfig field description below |
539
574
  | `model` | string | "env_1.model_1" | Active model reference, format: `env_N.model_N` | `"env_2.model_1"` |
540
575
  | `context_window` | int | 200000 | Context window size | `128000` |
541
- | `system_prompt` | string\|null | null | Custom system prompt (global override) | `"You are a professional Python developer"` |
576
+ | `system_prompt` | string\|null | null | Custom system prompt (global; can be overridden per env_N) | `"You are a professional Python developer"` |
542
577
  | `max_tokens` | int | 16384 | Maximum output token count | `32768` |
543
578
  | `max_turns` | int | 200 | Maximum conversation turns | `500` |
544
579
  | `ui_language` | string | "en-US" | UI language | `"zh-CN"` |
@@ -561,7 +596,7 @@ IllusionCode supports managing multiple environment/provider configurations thro
561
596
  | `base_url` | string\|null | No | Custom API endpoint, null uses default endpoint |
562
597
  | `api_key` | string | No | API key (can be filled directly, or left empty for `illusion auth login` to store in credentials.json) |
563
598
  | `system_prompt` | string\|null | No | System prompt for this environment (overrides global) |
564
- | `model_N` | string | No | Model name, supports multiple: model_1, model_2, model_3... |
599
+ | `model_N` | string | No | Model name, supports multiple: model_1, model_2, model_3... Append `[1m]` for million-token context (e.g. `claude-sonnet-4-6[1m]`) |
565
600
 
566
601
  #### Multi-Model Configuration Example
567
602
 
@@ -580,6 +615,9 @@ Configure multiple models under the same environment, switch via `env_N.model_N`
580
615
  }
581
616
  ```
582
617
 
618
+ > **Million-Token Context**: Anthropic models support the `[1m]` suffix for extended 1M context window. Append it to the model name (e.g. `claude-sonnet-4-6[1m]`). IllusionCode automatically detects this suffix and adjusts the internal context tracking to 1,000,000 tokens.
619
+ ```
620
+
583
621
  **Ways to switch models**:
584
622
 
585
623
  ```bash
@@ -85,17 +85,41 @@ IllusionCode 是一个开源的 AI 驱动命令行编程助手,集成了众多
85
85
 
86
86
  ### 安装
87
87
 
88
- #### 推荐方式:pip install(一步到位)
88
+ #### 推荐方式:从 PyPI 安装
89
89
 
90
- `pip install .` 会触发 hatch build hook 自动构建两个前端(终端 TUI 和 Web UI),并将 `illusion` 命令注册到全局 PATH。这是最简单的安装方式。
90
+ 最简单的安装方式,自动安装前端并注册 `illusion` 命令到全局 PATH
91
91
 
92
92
  ```bash
93
- git clone https://github.com/your-repo/illusion-code.git
93
+ pip install illusion-code
94
+ ```
95
+
96
+ 无需克隆仓库或安装 Node.js,所有内容已包含在包中。
97
+
98
+ #### 备选方式:从源码安装
99
+
100
+ 克隆仓库后本地安装,hatch build hook 会自动构建前端。
101
+
102
+ ```bash
103
+ git clone https://github.com/YunTaiHua/illusion-code.git
94
104
  cd illusion-code
95
105
  pip install .
96
106
  ```
97
107
 
98
- 安装完成后,`illusion` 命令在任意目录均可直接使用。需要 Node.js 18+(用于前端构建)。
108
+ 需要 Node.js 18+(用于前端构建)。
109
+
110
+ #### 备选方式:pip install -e .(可编辑安装,从源码)
111
+
112
+ 从源码进行可编辑安装。与 `pip install .` 相同,会触发 hatch build hook 自动构建前端并全局注册 `illusion` 命令;与 `uv sync` 相同,源码修改立即生效,无需重新安装。
113
+
114
+ ```bash
115
+ git clone https://github.com/YunTaiHua/illusion-code.git
116
+ cd illusion-code
117
+ pip install -e .
118
+ ```
119
+
120
+ 需要 Node.js 18+(用于前端构建)。
121
+
122
+ > **适用场景**:适合希望同时拥有可编辑安装(代码即时生效)和全局 `illusion` 命令的开发者。与 `uv sync` 不同,无需手动构建前端,也无需使用 `uv run` 包装。
99
123
 
100
124
  #### 开发方式:uv sync(适合开发者)
101
125
 
@@ -128,11 +152,14 @@ python scripts/build_frontend.py --web # 只构建 Web UI
128
152
  >
129
153
  > # 方式三:使用 pip 全局安装(推荐)
130
154
  > pip install .
155
+ >
156
+ > # 方式四:pip 可编辑安装(全局 + 代码即时生效)
157
+ > pip install -e .
131
158
  > ```
132
159
 
133
- #### 手动构建前端
160
+ #### 手动构建前端(仅源码安装需要)
134
161
 
135
- 如需手动重新构建前端(例如更新了前端代码):
162
+ 如从源码安装后需要重新构建前端(例如更新了前端代码)。PyPI 用户无需此步骤。
136
163
 
137
164
  **构建脚本(推荐)**
138
165
 
@@ -158,14 +185,17 @@ npm run build
158
185
  cd ../..
159
186
  ```
160
187
 
161
- #### 两种方式对比
188
+ #### 四种方式对比
162
189
 
163
- | | `pip install .` | `uv sync` |
164
- |---|---|---|
165
- | 前端构建 | 自动(hatch hook) | 手动 |
166
- | `illusion` 命令 | 全局可用 | 仅项目内(需 `uv run` 或激活虚拟环境) |
167
- | 安装类型 | 标准安装 | Editable 安装 |
168
- | 适用场景 | 终端用户 | 开发者 |
190
+ | | `pip install illusion-code` | `pip install .` | `pip install -e .` | `uv sync` |
191
+ |---|---|---|---|---|
192
+ | 来源 | PyPI | 本地 git clone | 本地 git clone | 本地 git clone |
193
+ | 前端构建 | 预构建(已包含) | 自动(hatch hook) | 自动(hatch hook) | 手动 |
194
+ | 需要 Node.js | | 是(18+) | 是(18+) | 是(18+) |
195
+ | `illusion` 命令 | 全局可用 | 全局可用 | 全局可用 | 仅项目内(需 `uv run` 或激活虚拟环境) |
196
+ | 安装类型 | 标准安装 | 标准安装 | 可编辑安装 | 可编辑安装 |
197
+ | 代码修改生效 | 需重新安装 | 需重新安装 | 即时生效 | 即时生效 |
198
+ | 适用场景 | 终端用户 | 贡献者 | 开发者(全局+可编辑) | 开发者 |
169
199
 
170
200
  ### 基本使用
171
201
 
@@ -242,6 +272,10 @@ illusion cron toggle <name> <true|false> # 启用/禁用任务
242
272
  illusion cron run <name> # 手动触发执行任务
243
273
  illusion cron history # 查看执行历史
244
274
  illusion cron logs # 查看调度器日志
275
+
276
+ # 自更新
277
+ illusion update # 检查并从 PyPI 安装更新
278
+ illusion update --deps # 同时更新项目依赖
245
279
  ```
246
280
 
247
281
  ### 交互式斜杠命令
@@ -256,6 +290,7 @@ illusion cron logs # 查看调度器日志
256
290
  | 插件扩展 | `/skills`, `/hooks`, `/mcp`, `/plugin` | 管理扩展功能 |
257
291
  | 项目 Git | `/init`, `/diff`, `/branch`, `/commit` | 项目与版本控制 |
258
292
  | 多智能体 | `/continue` | Agent 协作 |
293
+ | 自更新 | `/update` | 检查并安装 IllusionCode 更新 |
259
294
 
260
295
  ---
261
296
 
@@ -538,7 +573,7 @@ settings.json 使用 `env_N` 分组格式管理多个环境/提供商配置。
538
573
  | `env_N` | object | - | 环境配置组(EnvConfig),支持动态添加 env_1, env_2... | 见下方 EnvConfig 字段说明 |
539
574
  | `model` | string | "env_1.model_1" | 当前活跃模型引用,格式为 `env_N.model_N` | `"env_2.model_1"` |
540
575
  | `context_window` | int | 200000 | 上下文窗口大小 | `128000` |
541
- | `system_prompt` | string\|null | null | 自定义系统提示词(全局覆盖) | `"你是一个专业的Python开发者"` |
576
+ | `system_prompt` | string\|null | null | 自定义系统提示词(全局,可被 env_N 级别覆盖) | `"你是一个专业的Python开发者"` |
542
577
  | `max_tokens` | int | 16384 | 最大输出 token 数 | `32768` |
543
578
  | `max_turns` | int | 200 | 最大对话轮数 | `500` |
544
579
  | `ui_language` | string | "zh-CN" | 界面语言 | `"en-US"` |
@@ -561,7 +596,7 @@ IllusionCode 支持通过 `env_N` 分组管理多个环境/提供商配置。每
561
596
  | `base_url` | string\|null | 否 | 自定义 API 端点,null 表示使用默认端点 |
562
597
  | `api_key` | string | 否 | API 密钥(可直接填写,也可留空由 `illusion auth login` 存储到 credentials.json) |
563
598
  | `system_prompt` | string\|null | 否 | 该环境的系统提示词(覆盖全局) |
564
- | `model_N` | string | 否 | 模型名称,支持多个 model_1, model_2, model_3... |
599
+ | `model_N` | string | 否 | 模型名称,支持多个 model_1, model_2, model_3... 追加 `[1m]` 可启用百万上下文(如 `claude-sonnet-4-6[1m]`) |
565
600
 
566
601
  #### 多模型配置示例
567
602
 
@@ -580,6 +615,9 @@ IllusionCode 支持通过 `env_N` 分组管理多个环境/提供商配置。每
580
615
  }
581
616
  ```
582
617
 
618
+ > **百万上下文**:Anthropic 模型支持 `[1m]` 后缀以启用 100 万 token 的扩展上下文窗口。在模型名后追加即可(如 `claude-sonnet-4-6[1m]`)。IllusionCode 会自动检测此后缀并将内部上下文追踪调整为 1,000,000 tokens。
619
+ ```
620
+
583
621
  **切换模型的方式**:
584
622
 
585
623
  ```bash