alysis-code 0.14.9__tar.gz → 0.15.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 (622) hide show
  1. {alysis_code-0.14.9 → alysis_code-0.15.2}/.gitignore +3 -0
  2. {alysis_code-0.14.9 → alysis_code-0.15.2}/PKG-INFO +49 -16
  3. {alysis_code-0.14.9 → alysis_code-0.15.2}/README.md +31 -9
  4. {alysis_code-0.14.9 → alysis_code-0.15.2}/docs/CHANGELOG.md +97 -22
  5. {alysis_code-0.14.9 → alysis_code-0.15.2}/pyproject.toml +24 -11
  6. alysis_code-0.15.2/schemas/forge-host-v2/forge-host-v2.schema.json +5433 -0
  7. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/__init__.py +1 -1
  8. alysis_code-0.15.2/src/alysis_code/_windows_session_files.py +468 -0
  9. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/account_login.py +153 -15
  10. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent/README.md +3 -7
  11. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent/acceptance_contract.py +113 -33
  12. alysis_code-0.15.2/src/alysis_code/agent/action_approval.py +113 -0
  13. alysis_code-0.15.2/src/alysis_code/agent/approval_review.py +386 -0
  14. alysis_code-0.15.2/src/alysis_code/agent/browser_start.py +375 -0
  15. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent/checkpoint_worker.py +3 -2
  16. alysis_code-0.15.2/src/alysis_code/agent/computer_use_evidence.py +134 -0
  17. alysis_code-0.15.2/src/alysis_code/agent/computer_use_files.py +262 -0
  18. alysis_code-0.15.2/src/alysis_code/agent/computer_use_tools.py +960 -0
  19. alysis_code-0.15.2/src/alysis_code/agent/computer_use_upload_objectives.py +98 -0
  20. alysis_code-0.15.2/src/alysis_code/agent/computer_use_uploads.py +261 -0
  21. alysis_code-0.15.2/src/alysis_code/agent/computer_use_verification.py +156 -0
  22. alysis_code-0.15.2/src/alysis_code/agent/connector_result_evidence.py +107 -0
  23. alysis_code-0.15.2/src/alysis_code/agent/errors.py +57 -0
  24. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent/llm_calls.py +73 -25
  25. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent/prompt_context.py +375 -975
  26. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent/prompt_guidance.py +3 -0
  27. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent/regression_baseline.py +4 -1
  28. alysis_code-0.15.2/src/alysis_code/agent/sensitive_output.py +2017 -0
  29. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent/session.py +1197 -318
  30. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent/subagent_execution.py +30 -71
  31. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent/task_evidence.py +101 -19
  32. alysis_code-0.15.2/src/alysis_code/agent/tool_arguments.py +160 -0
  33. alysis_code-0.15.2/src/alysis_code/agent/tool_contract_recovery.py +89 -0
  34. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent/tools_assembly.py +753 -95
  35. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent/turn/core.py +1854 -271
  36. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent/turn_contract.py +44 -18
  37. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent/verification.py +3 -8
  38. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent_loop.py +5 -39
  39. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent_runtimes/codex_cli.py +4 -5
  40. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/alysis_cloud.py +51 -34
  41. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/approval_scope.py +18 -0
  42. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/asset_read_core.py +5 -2
  43. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/comprehender.py +6 -3
  44. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/ingestion.py +5 -4
  45. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/legacy_migration.py +3 -2
  46. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/ocr.py +2 -1
  47. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/planner_context.py +5 -2
  48. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/surface.py +3 -2
  49. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/worker_mirror.py +3 -2
  50. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/atomic_io.py +7 -0
  51. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/background_runner.py +63 -52
  52. alysis_code-0.15.2/src/alysis_code/branding.py +99 -0
  53. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/budget_policy.py +7 -4
  54. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/build_identity.py +6 -4
  55. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cancellation.py +21 -0
  56. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/capabilities.py +85 -0
  57. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli.py +19 -12
  58. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/chat/commands.py +0 -70
  59. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/chat/loop.py +298 -64
  60. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/chat/mid_turn_policy.py +1 -2
  61. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/chat/state.py +4 -13
  62. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/chat_resume.py +2 -5
  63. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/chat_slash_completer.py +33 -8
  64. alysis_code-0.15.2/src/alysis_code/cli_impl/commands/agents.py +103 -0
  65. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/commands/auth.py +206 -9
  66. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/commands/chat_resume_helpers.py +45 -49
  67. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/commands/chat_terminal.py +12 -3
  68. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/commands/cli_common.py +0 -3
  69. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/commands/config.py +6 -2
  70. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/commands/execution_helpers.py +2 -1
  71. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/commands/extensions.py +13 -5
  72. alysis_code-0.15.2/src/alysis_code/cli_impl/commands/forge.py +2997 -0
  73. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/commands/forge_helpers.py +93 -255
  74. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/commands/mcp.py +19 -4
  75. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/commands/profile.py +242 -6
  76. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/commands/root.py +128 -33
  77. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/commands/startup.py +3 -2
  78. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/commands/welcome.py +4 -6
  79. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/config_menu.py +26 -15
  80. alysis_code-0.15.2/src/alysis_code/cli_impl/file_mention_completer.py +146 -0
  81. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/forge.py +3313 -306
  82. alysis_code-0.15.2/src/alysis_code/cli_impl/tui/actions.py +78 -0
  83. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/tui/app.py +1187 -141
  84. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/tui/config_flow.py +34 -1
  85. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/tui/config_overlay.py +19 -15
  86. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/tui/content.py +6 -1
  87. alysis_code-0.15.2/src/alysis_code/cli_impl/tui/diff_view.py +714 -0
  88. alysis_code-0.15.2/src/alysis_code/cli_impl/tui/integration_inspector.py +428 -0
  89. alysis_code-0.15.2/src/alysis_code/cli_impl/tui/integration_modal.py +395 -0
  90. alysis_code-0.15.2/src/alysis_code/cli_impl/tui/local_action_lifecycle.py +104 -0
  91. alysis_code-0.15.2/src/alysis_code/cli_impl/tui/local_mode_host.py +64 -0
  92. alysis_code-0.15.2/src/alysis_code/cli_impl/tui/modal_focus.py +26 -0
  93. alysis_code-0.15.2/src/alysis_code/cli_impl/tui/navigation_ui.py +307 -0
  94. alysis_code-0.15.2/src/alysis_code/cli_impl/tui/panel_text.py +82 -0
  95. alysis_code-0.15.2/src/alysis_code/cli_impl/tui/planning_backend.py +97 -0
  96. alysis_code-0.15.2/src/alysis_code/cli_impl/tui/planning_chooser.py +251 -0
  97. alysis_code-0.15.2/src/alysis_code/cli_impl/tui/prompt_history.py +196 -0
  98. alysis_code-0.15.2/src/alysis_code/cli_impl/tui/question_panel.py +487 -0
  99. alysis_code-0.15.2/src/alysis_code/cli_impl/tui/report_flow.py +470 -0
  100. alysis_code-0.15.2/src/alysis_code/cli_impl/tui/report_overlay.py +179 -0
  101. alysis_code-0.15.2/src/alysis_code/cli_impl/tui/review.py +377 -0
  102. alysis_code-0.15.2/src/alysis_code/cli_impl/tui/review_client.py +85 -0
  103. alysis_code-0.15.2/src/alysis_code/cli_impl/tui/session_navigation.py +166 -0
  104. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/tui/subagent_panel.py +2 -1
  105. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/tui/surface.py +87 -10
  106. alysis_code-0.15.2/src/alysis_code/cli_impl/tui/tool_trace.py +297 -0
  107. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/tui/transcript.py +93 -15
  108. alysis_code-0.15.2/src/alysis_code/cli_impl/tui/transcript_navigation.py +73 -0
  109. alysis_code-0.15.2/src/alysis_code/cli_impl/workspace_file_index.py +233 -0
  110. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/clipboard.py +28 -6
  111. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/code_review.py +71 -47
  112. alysis_code-0.15.2/src/alysis_code/command_review_rules.py +215 -0
  113. alysis_code-0.15.2/src/alysis_code/command_text.py +117 -0
  114. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/compaction/conversation_compactor.py +31 -4
  115. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/compaction/tool_output_offload.py +74 -0
  116. alysis_code-0.15.2/src/alysis_code/computer_use_diagnostics.py +441 -0
  117. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/config.py +153 -44
  118. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/conflict_auto_resolver.py +2 -1
  119. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/consumer_verification.py +7 -4
  120. alysis_code-0.15.2/src/alysis_code/critical_paths.py +200 -0
  121. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/custom_tools/runtime.py +1 -14
  122. alysis_code-0.15.2/src/alysis_code/desktop_connections.py +135 -0
  123. alysis_code-0.15.2/src/alysis_code/desktop_terminal.py +121 -0
  124. alysis_code-0.15.2/src/alysis_code/device_identity.py +48 -0
  125. alysis_code-0.15.2/src/alysis_code/diff_view.py +230 -0
  126. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/dispatch_timing.py +0 -2
  127. alysis_code-0.15.2/src/alysis_code/documents/__init__.py +44 -0
  128. alysis_code-0.15.2/src/alysis_code/documents/__main__.py +454 -0
  129. alysis_code-0.15.2/src/alysis_code/documents/fonts/LICENSE_LIBERATION +101 -0
  130. alysis_code-0.15.2/src/alysis_code/documents/fonts/LiberationSans-Bold.ttf +0 -0
  131. alysis_code-0.15.2/src/alysis_code/documents/fonts/LiberationSans-BoldItalic.ttf +0 -0
  132. alysis_code-0.15.2/src/alysis_code/documents/fonts/LiberationSans-Italic.ttf +0 -0
  133. alysis_code-0.15.2/src/alysis_code/documents/fonts/LiberationSans-Regular.ttf +0 -0
  134. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/durable_service_manager.py +114 -56
  135. alysis_code-0.15.2/src/alysis_code/embedded_browser.py +293 -0
  136. alysis_code-0.15.2/src/alysis_code/embedded_browser_visual.py +167 -0
  137. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/execution_budget.py +1 -0
  138. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/execution_context.py +3 -2
  139. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/execution_deadline.py +31 -1
  140. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/execution_shared.py +2 -1
  141. alysis_code-0.15.2/src/alysis_code/extensions/bundled/github/alysis-plugin.toml +25 -0
  142. alysis_code-0.15.2/src/alysis_code/extensions/bundled/google-calendar/alysis-plugin.toml +24 -0
  143. alysis_code-0.15.2/src/alysis_code/extensions/bundled/google-chat/alysis-plugin.toml +24 -0
  144. alysis_code-0.15.2/src/alysis_code/extensions/bundled/google-contacts/alysis-plugin.toml +24 -0
  145. alysis_code-0.15.2/src/alysis_code/extensions/bundled/google-docs/alysis-plugin.toml +24 -0
  146. alysis_code-0.15.2/src/alysis_code/extensions/bundled/google-drive/alysis-plugin.toml +24 -0
  147. alysis_code-0.15.2/src/alysis_code/extensions/bundled/google-gmail/alysis-plugin.toml +24 -0
  148. alysis_code-0.15.2/src/alysis_code/extensions/bundled/google-sheets/alysis-plugin.toml +24 -0
  149. alysis_code-0.15.2/src/alysis_code/extensions/bundled/google-slides/alysis-plugin.toml +24 -0
  150. alysis_code-0.15.2/src/alysis_code/extensions/bundled.py +24 -0
  151. alysis_code-0.15.2/src/alysis_code/extensions/component_activation.py +95 -0
  152. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/extensions/install.py +66 -12
  153. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/extensions/manifest.py +9 -20
  154. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/extensions/models.py +7 -0
  155. alysis_code-0.15.2/src/alysis_code/extensions/registry.json +213 -0
  156. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/failed_task_evidence.py +2 -1
  157. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/failure_category.py +1 -0
  158. alysis_code-0.15.2/src/alysis_code/feedback_delivery.py +205 -0
  159. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/forge.py +11 -6
  160. alysis_code-0.15.2/src/alysis_code/forge_conformance.py +558 -0
  161. alysis_code-0.15.2/src/alysis_code/forge_contract_verification.py +197 -0
  162. alysis_code-0.15.2/src/alysis_code/forge_host_cli.py +421 -0
  163. alysis_code-0.15.2/src/alysis_code/forge_host_client.py +222 -0
  164. alysis_code-0.15.2/src/alysis_code/forge_host_engine_bridge.py +698 -0
  165. alysis_code-0.15.2/src/alysis_code/forge_host_native_adapter.py +1263 -0
  166. alysis_code-0.15.2/src/alysis_code/forge_host_protocol/__init__.py +210 -0
  167. alysis_code-0.15.2/src/alysis_code/forge_host_protocol/canonical.py +298 -0
  168. alysis_code-0.15.2/src/alysis_code/forge_host_protocol/codec.py +210 -0
  169. alysis_code-0.15.2/src/alysis_code/forge_host_protocol/errors.py +64 -0
  170. alysis_code-0.15.2/src/alysis_code/forge_host_protocol/ledger.py +752 -0
  171. alysis_code-0.15.2/src/alysis_code/forge_host_protocol/models.py +1878 -0
  172. alysis_code-0.15.2/src/alysis_code/forge_host_protocol/negotiation.py +63 -0
  173. alysis_code-0.15.2/src/alysis_code/forge_host_protocol/redaction.py +63 -0
  174. alysis_code-0.15.2/src/alysis_code/forge_host_protocol/schema.py +51 -0
  175. alysis_code-0.15.2/src/alysis_code/forge_host_runtime.py +653 -0
  176. alysis_code-0.15.2/src/alysis_code/forge_host_service.py +1911 -0
  177. alysis_code-0.15.2/src/alysis_code/forge_host_stdio.py +384 -0
  178. alysis_code-0.15.2/src/alysis_code/forge_host_verification.py +865 -0
  179. alysis_code-0.15.2/src/alysis_code/forge_planner_engine.py +613 -0
  180. alysis_code-0.15.2/src/alysis_code/forge_planning_profile.py +89 -0
  181. alysis_code-0.15.2/src/alysis_code/forge_sequential_engine.py +2253 -0
  182. alysis_code-0.15.2/src/alysis_code/forge_status_channel.py +410 -0
  183. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/git_evidence.py +2 -1
  184. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/git_ops.py +7 -3
  185. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/git_worktrees.py +5 -4
  186. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/hooks/dispatcher.py +3 -14
  187. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/hooks/trust.py +24 -8
  188. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/host_actions.py +228 -2
  189. alysis_code-0.15.2/src/alysis_code/host_images.py +650 -0
  190. alysis_code-0.15.2/src/alysis_code/host_tls.py +113 -0
  191. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/ide/activity_events.py +5 -2
  192. alysis_code-0.15.2/src/alysis_code/ide/approval_binding.py +288 -0
  193. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/ide/change_ledger.py +33 -5
  194. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/ide/event_stream.py +149 -23
  195. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/ide/health.py +182 -3
  196. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/ide/managed_browser.py +2 -1
  197. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/ide/management_protocol.py +92 -8
  198. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/ide/prompt_queue.py +142 -3
  199. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/ide/session_search.py +8 -2
  200. alysis_code-0.15.2/src/alysis_code/ide/skill_invocation.py +46 -0
  201. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/ide/stdio_bridge.py +4149 -446
  202. alysis_code-0.15.2/src/alysis_code/ide/task_budget_channel.py +170 -0
  203. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/knowledge_capture.py +9 -0
  204. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/llm/anthropic_messages.py +131 -32
  205. alysis_code-0.15.2/src/alysis_code/llm/base.py +152 -0
  206. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/llm/cache_capabilities.py +11 -8
  207. alysis_code-0.15.2/src/alysis_code/llm/cancellable_http.py +386 -0
  208. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/llm/factory.py +16 -13
  209. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/llm/gemini_generate_content.py +92 -32
  210. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/llm/gemini_interactions.py +13 -2
  211. alysis_code-0.15.2/src/alysis_code/llm/hosted_request_limits.py +130 -0
  212. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/llm/http_cancellation.py +116 -39
  213. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/llm/openai_compat.py +357 -113
  214. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/llm/openai_responses.py +441 -69
  215. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/llm/protocols.py +63 -2
  216. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/llm/provider_limits.py +114 -6
  217. alysis_code-0.15.2/src/alysis_code/llm/rate_limit_metadata.py +56 -0
  218. alysis_code-0.15.2/src/alysis_code/llm/reasoning_trace.py +154 -0
  219. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/llm/streaming.py +16 -0
  220. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/llm/temperature_compat.py +1 -1
  221. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/llm/types.py +19 -4
  222. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/llm_error_display.py +5 -1
  223. alysis_code-0.15.2/src/alysis_code/managed_session.py +464 -0
  224. alysis_code-0.15.2/src/alysis_code/mcp/cancellation.py +80 -0
  225. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/mcp/client.py +18 -0
  226. alysis_code-0.15.2/src/alysis_code/mcp/github_discovery.py +526 -0
  227. alysis_code-0.15.2/src/alysis_code/mcp/github_host.py +261 -0
  228. alysis_code-0.15.2/src/alysis_code/mcp/google_host.py +171 -0
  229. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/mcp/manager.py +230 -107
  230. alysis_code-0.15.2/src/alysis_code/mcp/retention.py +29 -0
  231. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/mcp/token_store.py +52 -44
  232. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/mcp/transport_stdio.py +167 -11
  233. alysis_code-0.15.2/src/alysis_code/mcp/visual_delivery.py +108 -0
  234. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/merge_conflict_reviewer.py +2 -1
  235. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/model_catalog/chatgpt_codex_subscription_snapshot.json +45 -0
  236. alysis_code-0.15.2/src/alysis_code/model_reasoning.py +286 -0
  237. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/model_registry.py +35 -0
  238. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/model_router.py +3 -0
  239. alysis_code-0.15.2/src/alysis_code/office/__init__.py +60 -0
  240. alysis_code-0.15.2/src/alysis_code/office/__main__.py +211 -0
  241. alysis_code-0.15.2/src/alysis_code/office/rendering.py +174 -0
  242. alysis_code-0.15.2/src/alysis_code/office/sheets.py +817 -0
  243. alysis_code-0.15.2/src/alysis_code/office/slides.py +584 -0
  244. alysis_code-0.15.2/src/alysis_code/office/word.py +482 -0
  245. alysis_code-0.15.2/src/alysis_code/open_panels.py +158 -0
  246. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/personas.py +7 -3
  247. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/plan_assistant.py +26 -2
  248. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/plan_validation.py +10 -1
  249. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/policy.py +18 -0
  250. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/preview_server.py +3 -1
  251. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/process_reaping.py +133 -9
  252. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/profile_presets.py +31 -12
  253. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/profiles.py +41 -28
  254. alysis_code-0.15.2/src/alysis_code/project_data.py +53 -0
  255. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/provider_auth/__init__.py +10 -0
  256. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/provider_auth/base.py +64 -1
  257. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/provider_auth/openai_codex.py +501 -233
  258. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/provider_auth/registry.py +44 -0
  259. alysis_code-0.15.2/src/alysis_code/provider_auth/store.py +333 -0
  260. alysis_code-0.15.2/src/alysis_code/provider_auth/subscription_identity.py +118 -0
  261. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/provider_model_catalog.py +50 -1
  262. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/provider_telemetry.py +46 -7
  263. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/provider_url.py +21 -4
  264. alysis_code-0.15.2/src/alysis_code/read_only_commands.py +586 -0
  265. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/reasoning_contracts.py +97 -15
  266. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/remote_sync.py +22 -1
  267. alysis_code-0.15.2/src/alysis_code/review_service.py +225 -0
  268. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/run_outcome.py +17 -7
  269. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/run_provenance.py +0 -5
  270. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/runtime_artifacts.py +10 -1
  271. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/sandbox_doctor.py +4 -3
  272. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/sandbox_runner.py +289 -82
  273. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/sandbox_settings.py +22 -1
  274. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/server/worker_runner.py +4 -3
  275. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/session_store.py +97 -20
  276. alysis_code-0.15.2/src/alysis_code/shell_command_lexer.py +283 -0
  277. alysis_code-0.15.2/src/alysis_code/skills/bundled/alysis-docs/SKILL.md +24 -0
  278. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/skills/evals.py +2 -1
  279. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/skills/install.py +3 -2
  280. alysis_code-0.15.2/src/alysis_code/subagent_settings.py +308 -0
  281. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/subagents.py +11 -4
  282. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/surface/__init__.py +4 -0
  283. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/surface/base.py +24 -0
  284. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/surface/events.py +57 -0
  285. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/surface/hidden_surface.py +41 -0
  286. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/surface/noop_surface.py +13 -0
  287. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/surface/rich_surface.py +39 -2
  288. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/surface/types.py +33 -1
  289. alysis_code-0.15.2/src/alysis_code/task_budget.py +325 -0
  290. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/task_scope.py +2 -1
  291. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/terminal_ownership.py +2 -1
  292. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/tools/git.py +2 -3
  293. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/tools/registry.py +307 -1
  294. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/tools/repo_map.py +2 -1
  295. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/tools/search.py +5 -3
  296. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/tools/shell.py +51 -12
  297. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/tools/test_discovery.py +2 -1
  298. alysis_code-0.15.2/src/alysis_code/unicode_text.py +14 -0
  299. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/updates.py +6 -14
  300. alysis_code-0.15.2/src/alysis_code/user_questions.py +410 -0
  301. alysis_code-0.15.2/src/alysis_code/verification_contract.py +1559 -0
  302. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/verify_gate.py +24 -2
  303. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/web_research.py +73 -27
  304. alysis_code-0.15.2/src/alysis_code/windows_command_policy.py +355 -0
  305. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/workspace_binding.py +5 -1
  306. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/workspace_binding_ui.py +2 -0
  307. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/workspace_context.py +24 -4
  308. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/workspace_isolation.py +4 -3
  309. alysis_code-0.14.9/src/alysis_code/agent/errors.py +0 -28
  310. alysis_code-0.14.9/src/alysis_code/agent/sensitive_output.py +0 -648
  311. alysis_code-0.14.9/src/alysis_code/agent/task_state.py +0 -1263
  312. alysis_code-0.14.9/src/alysis_code/branding.py +0 -252
  313. alysis_code-0.14.9/src/alysis_code/cli_impl/commands/forge.py +0 -1283
  314. alysis_code-0.14.9/src/alysis_code/extensions/registry.json +0 -4
  315. alysis_code-0.14.9/src/alysis_code/llm/base.py +0 -71
  316. alysis_code-0.14.9/src/alysis_code/provider_auth/store.py +0 -125
  317. alysis_code-0.14.9/src/alysis_code/verification_contract.py +0 -578
  318. {alysis_code-0.14.9 → alysis_code-0.15.2}/LICENSE +0 -0
  319. {alysis_code-0.14.9 → alysis_code-0.15.2}/NOTICE +0 -0
  320. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/__main__.py +0 -0
  321. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/_build_info.py +0 -0
  322. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent/__init__.py +0 -0
  323. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent/anytime_checkpoint.py +0 -0
  324. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent/blast_radius.py +0 -0
  325. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent/cache_keepalive.py +0 -0
  326. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent/completion_certificate.py +0 -0
  327. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent/completion_gate.py +0 -0
  328. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent/empty_response_stall.py +0 -0
  329. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent/mutation_classification.py +0 -0
  330. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent/prompt_families.py +0 -0
  331. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent/read_ledger.py +0 -0
  332. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent/reproduction_first.py +0 -0
  333. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent/steering.py +0 -0
  334. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent/subagent_workspace.py +0 -0
  335. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent/turn/__init__.py +0 -0
  336. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent/turn/events.py +0 -0
  337. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent/turn/exploration.py +0 -0
  338. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent/turn/interventions.py +0 -0
  339. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent/turn/read_cache.py +0 -0
  340. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent/turn/snapshot.py +0 -0
  341. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent/turn/subagent_progress.py +0 -0
  342. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent/turn_path.py +0 -0
  343. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent/verification_commands.py +0 -0
  344. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent/verification_evidence.py +0 -0
  345. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent/verification_result.py +0 -0
  346. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent_runtimes/__init__.py +0 -0
  347. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent_runtimes/base.py +0 -0
  348. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent_runtimes/builtins.py +0 -0
  349. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent_runtimes/host.py +0 -0
  350. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent_runtimes/registry.py +0 -0
  351. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agent_runtimes/service.py +0 -0
  352. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agentbox_client.py +0 -0
  353. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/agentbox_integration.py +0 -0
  354. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/README.md +0 -0
  355. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/__init__.py +0 -0
  356. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/budget_allocator.py +0 -0
  357. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/index.py +0 -0
  358. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/local_tools.py +0 -0
  359. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/models.py +0 -0
  360. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/owl/ascii/f-000.txt +0 -0
  361. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/owl/ascii/f-001.txt +0 -0
  362. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/owl/ascii/f-002.txt +0 -0
  363. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/owl/ascii/f-003.txt +0 -0
  364. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/owl/ascii/f-004.txt +0 -0
  365. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/owl/ascii/f-005.txt +0 -0
  366. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/owl/ascii/f-006.txt +0 -0
  367. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/owl/ascii/f-007.txt +0 -0
  368. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/owl/ascii/f-008.txt +0 -0
  369. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/owl/ascii/f-009.txt +0 -0
  370. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/owl/ascii/f-010.txt +0 -0
  371. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/owl/ascii/f-011.txt +0 -0
  372. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/owl/ascii/f-012.txt +0 -0
  373. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/owl/ascii/f-013.txt +0 -0
  374. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/owl/ascii/f-014.txt +0 -0
  375. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/owl/ascii/f-015.txt +0 -0
  376. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/owl/ascii/f-016.txt +0 -0
  377. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/owl/ascii/f-017.txt +0 -0
  378. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/owl/ascii/f-018.txt +0 -0
  379. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/owl/ascii/f-019.txt +0 -0
  380. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/owl/ascii/f-020.txt +0 -0
  381. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/owl/index.html +0 -0
  382. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/owl/show-owl.sh +0 -0
  383. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/paths.py +0 -0
  384. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/plan_binding.py +0 -0
  385. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/planner_tools.py +0 -0
  386. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/prompts.py +0 -0
  387. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/replanner_context.py +0 -0
  388. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/untrusted_content.py +0 -0
  389. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/usage_logger.py +0 -0
  390. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/worker_section.py +0 -0
  391. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/assets/worker_tools.py +0 -0
  392. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/auth_diagnostics.py +0 -0
  393. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/builtin_hooks/__init__.py +0 -0
  394. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/builtin_hooks/notify_done_windows.py +0 -0
  395. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/bwrap_etc.py +0 -0
  396. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/chatgpt_codex_static_provider.py +0 -0
  397. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/checkpoint_settings.py +0 -0
  398. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/__init__.py +0 -0
  399. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/assets_cli.py +0 -0
  400. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/assets_modal.py +0 -0
  401. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/chat/__init__.py +0 -0
  402. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/chat/forge_visibility.py +0 -0
  403. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/chat/rendering.py +0 -0
  404. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/commands/__init__.py +0 -0
  405. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/commands/_shared.py +0 -0
  406. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/commands/chat_state.py +0 -0
  407. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/commands/chat_status.py +0 -0
  408. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/commands/chat_tui_panels.py +0 -0
  409. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/commands/cli_surface.py +0 -0
  410. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/commands/conventions.py +0 -0
  411. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/commands/forge_asset_view.py +0 -0
  412. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/commands/hooks.py +0 -0
  413. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/commands/ide_bridge.py +0 -0
  414. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/commands/prompt_helpers.py +0 -0
  415. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/commands/report.py +0 -0
  416. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/commands/sandbox.py +0 -0
  417. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/commands/server.py +0 -0
  418. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/commands/sessions.py +0 -0
  419. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/commands/skills.py +0 -0
  420. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/commands/tools.py +0 -0
  421. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/commands/update.py +0 -0
  422. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/forge_recovery.py +0 -0
  423. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/setup_wizard.py +0 -0
  424. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/tui/__init__.py +0 -0
  425. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/tui/attachments.py +0 -0
  426. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/tui/composer.py +0 -0
  427. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/tui/config.py +0 -0
  428. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/tui/footer.py +0 -0
  429. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/tui/forge_status.py +0 -0
  430. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/tui/links.py +0 -0
  431. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/tui/markdown.py +0 -0
  432. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/tui/owl.py +0 -0
  433. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/tui/plan_meta.py +0 -0
  434. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/tui/selection_bindings.py +0 -0
  435. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/tui/setup_app.py +0 -0
  436. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/tui/setup_flow.py +0 -0
  437. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/tui/state.py +0 -0
  438. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/tui/subagent_identity.py +0 -0
  439. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/tui/tips.py +0 -0
  440. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/tui/update_prompt.py +0 -0
  441. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/cli_impl/tui/workspace_guard.py +0 -0
  442. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/compaction/__init__.py +0 -0
  443. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/compaction/importance.py +0 -0
  444. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/compaction/settings.py +0 -0
  445. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/context/__init__.py +0 -0
  446. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/context/tool_schema_budgeter.py +0 -0
  447. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/crash_diagnostics.py +0 -0
  448. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/custom_tools/README.md +0 -0
  449. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/custom_tools/__init__.py +0 -0
  450. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/custom_tools/discovery.py +0 -0
  451. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/custom_tools/session.py +0 -0
  452. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/custom_tools/trust.py +0 -0
  453. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/diff_paths.py +0 -0
  454. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/direction_change.py +0 -0
  455. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/edit_discipline.py +0 -0
  456. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/error_text.py +0 -0
  457. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/extensions/README.md +0 -0
  458. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/extensions/__init__.py +0 -0
  459. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/extensions/activation.py +0 -0
  460. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/extensions/paths.py +0 -0
  461. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/extensions/registry.py +0 -0
  462. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/extensions/state.py +0 -0
  463. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/extensions/workspace_trust.py +0 -0
  464. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/feedback_report.py +0 -0
  465. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/file_classification.py +0 -0
  466. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/forge_completion.py +0 -0
  467. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/forge_events.py +0 -0
  468. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/frontmatter_utils.py +0 -0
  469. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/git_safe.py +0 -0
  470. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/hooks/README.md +0 -0
  471. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/hooks/__init__.py +0 -0
  472. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/hooks/audit.py +0 -0
  473. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/hooks/config.py +0 -0
  474. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/hooks/models.py +0 -0
  475. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/host_browser.py +0 -0
  476. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/ide/__init__.py +0 -0
  477. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/ide/approvals.py +0 -0
  478. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/ide/artifacts.py +0 -0
  479. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/ide/browser_egress_proxy.py +0 -0
  480. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/ide/cdp_websocket_transport.py +0 -0
  481. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/ide/context_blocks.py +0 -0
  482. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/ide/forge_protocol.py +0 -0
  483. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/ide/forge_request_ledger.py +0 -0
  484. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/ide/mcp_oauth_coordinator.py +0 -0
  485. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/ide/mcp_oauth_lifecycle.py +0 -0
  486. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/ide/parent_watchdog.py +0 -0
  487. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/ide/protocol.py +0 -0
  488. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/ide/provider_switch.py +0 -0
  489. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/ide/resumable_swarm.py +0 -0
  490. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/ide/structured_state.py +0 -0
  491. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/ide/swarm_protocol.py +0 -0
  492. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/integration_gate.py +0 -0
  493. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/interactive_input_guard.py +0 -0
  494. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/internal_artifacts.py +0 -0
  495. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/knowledge_base.py +0 -0
  496. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/knowledge_librarian.py +0 -0
  497. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/language_policy.py +0 -0
  498. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/litellm_static_provider.py +0 -0
  499. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/llm/__init__.py +0 -0
  500. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/llm/cache_control_blocks.py +0 -0
  501. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/llm/cache_policy.py +0 -0
  502. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/llm/metadata.py +0 -0
  503. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/llm/request_plan.py +0 -0
  504. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/llm/request_shape.py +0 -0
  505. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/llm/tool_call_markup.py +0 -0
  506. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/llm/usage_normalization.py +0 -0
  507. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/logging_redaction.py +0 -0
  508. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/managed_host_deadline.py +0 -0
  509. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/mcp/README.md +0 -0
  510. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/mcp/__init__.py +0 -0
  511. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/mcp/config.py +0 -0
  512. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/mcp/errors.py +0 -0
  513. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/mcp/forge_scope.py +0 -0
  514. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/mcp/jsonrpc.py +0 -0
  515. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/mcp/models.py +0 -0
  516. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/mcp/oauth.py +0 -0
  517. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/mcp/oauth_runtime.py +0 -0
  518. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/mcp/oauth_store.py +0 -0
  519. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/mcp/prompts.py +0 -0
  520. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/mcp/resources.py +0 -0
  521. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/mcp/roots.py +0 -0
  522. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/mcp/server_requests.py +0 -0
  523. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/mcp/transport_http.py +0 -0
  524. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/mcp/untrusted_content.py +0 -0
  525. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/model_catalog/__init__.py +0 -0
  526. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/model_catalog/litellm_model_prices_snapshot.json +0 -0
  527. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/model_catalog/litellm_model_prices_snapshot.meta.json +0 -0
  528. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/model_metadata_policy.py +0 -0
  529. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/model_metadata_utils.py +0 -0
  530. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/permission_policy.py +0 -0
  531. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/pipeline_facts.py +0 -0
  532. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/plan_reconciliation.py +0 -0
  533. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/plan_repair.py +0 -0
  534. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/planning_constraints.py +0 -0
  535. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/private_artifact_io.py +0 -0
  536. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/prompt_guidance_catalog.py +0 -0
  537. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/provider_diagnostics.py +0 -0
  538. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/replanning.py +0 -0
  539. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/repo_scan.py +0 -0
  540. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/request_estimation.py +0 -0
  541. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/review_gate.py +0 -0
  542. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/run_lock.py +0 -0
  543. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/run_state.py +0 -0
  544. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/runtime_context_features.py +0 -0
  545. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/runtime_kind.py +0 -0
  546. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/safety/__init__.py +0 -0
  547. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/safety/mcp_sanitize.py +0 -0
  548. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/safety/safe_http.py +0 -0
  549. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/safety/subagent_report.py +0 -0
  550. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/serialized_paths.py +0 -0
  551. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/server/__init__.py +0 -0
  552. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/server/app.py +0 -0
  553. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/server/auth.py +0 -0
  554. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/server/job_config.py +0 -0
  555. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/server/settings.py +0 -0
  556. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/server/store.py +0 -0
  557. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/service_persistence.py +0 -0
  558. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/session_artifacts.py +0 -0
  559. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/session_metrics.py +0 -0
  560. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/skills/README.md +0 -0
  561. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/skills/__init__.py +0 -0
  562. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/skills/bundled/address-pr-comments/SKILL.md +0 -0
  563. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/skills/bundled/code-review/SKILL.md +0 -0
  564. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/skills/bundled/commit/SKILL.md +0 -0
  565. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/skills/bundled/debug/SKILL.md +0 -0
  566. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/skills/bundled/fix-ci/SKILL.md +0 -0
  567. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/skills/bundled/release-notes/SKILL.md +0 -0
  568. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/skills/bundled/security-review/SKILL.md +0 -0
  569. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/skills/bundled/skill-creator/SKILL.md +0 -0
  570. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/skills/conventions.py +0 -0
  571. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/skills/discovery.py +0 -0
  572. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/skills/eval_models.py +0 -0
  573. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/skills/eval_runner.py +0 -0
  574. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/skills/loader.py +0 -0
  575. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/skills/matching.py +0 -0
  576. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/skills/models.py +0 -0
  577. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/skills/paths.py +0 -0
  578. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/skills/prompting.py +0 -0
  579. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/skills/scaffold.py +0 -0
  580. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/skills/state.py +0 -0
  581. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/skills/transactions.py +0 -0
  582. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/skills/validation.py +0 -0
  583. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/step_budget.py +0 -0
  584. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/subagent_labels.py +0 -0
  585. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/surface/console.py +0 -0
  586. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/surface/styles.py +0 -0
  587. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/surface/theme.py +0 -0
  588. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/swarm_backend.py +0 -0
  589. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/swarm_orchestrator.py +0 -0
  590. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/swarm_scheduler.py +0 -0
  591. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/swarm_trace.py +0 -0
  592. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/swarm_worker.py +0 -0
  593. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/swarm_write_guard.py +0 -0
  594. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/task_dependencies.py +0 -0
  595. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/task_readiness.py +0 -0
  596. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/terminal_manager.py +0 -0
  597. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/text_normalization.py +0 -0
  598. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/token_budget.py +0 -0
  599. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/tools/README.md +0 -0
  600. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/tools/__init__.py +0 -0
  601. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/tools/artifacts.py +0 -0
  602. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/tools/availability.py +0 -0
  603. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/tools/capability_readiness.py +0 -0
  604. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/tools/fs.py +0 -0
  605. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/tools/history.py +0 -0
  606. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/tools/http_timeout.py +0 -0
  607. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/tools/image_generation.py +0 -0
  608. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/tools/symbols.py +0 -0
  609. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/tools/web.py +0 -0
  610. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/tools/web_search.py +0 -0
  611. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/tools/web_search_dashscope.py +0 -0
  612. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/tools/web_search_ddgs.py +0 -0
  613. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/tools/web_search_provider_adapters.py +0 -0
  614. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/tools/web_search_tavily.py +0 -0
  615. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/transport_retry.py +0 -0
  616. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/usage_tracker.py +0 -0
  617. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/verification_command_analysis.py +0 -0
  618. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/verification_failure_summary.py +0 -0
  619. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/verification_repair.py +0 -0
  620. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/web_search_adapters.py +0 -0
  621. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/web_search_policy.py +0 -0
  622. {alysis_code-0.14.9 → alysis_code-0.15.2}/src/alysis_code/workspace_provisioning.py +0 -0
@@ -35,6 +35,8 @@ alysis-feedback/
35
35
  reports/
36
36
  qa_reports/
37
37
  .qa-results/
38
+ /outputs/
39
+ /private-attestation/
38
40
  .workflow-release-dist/
39
41
  benchmark_results/
40
42
  benchmarks/terminal_bench/artifacts/
@@ -57,6 +59,7 @@ sylliptor_ecs.tar.gz
57
59
 
58
60
  # Claude Code local config
59
61
  .claude/
62
+ .codex/
60
63
 
61
64
  # OS / IDE
62
65
  .DS_Store
@@ -1,13 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: alysis-code
3
- Version: 0.14.9
3
+ Version: 0.15.2
4
4
  Summary: Local CLI coding agent powered by any API.
5
- Project-URL: Changelog, https://github.com/AlysisAi/alysis-code/blob/main/docs/CHANGELOG.md
6
- Project-URL: Documentation, https://github.com/AlysisAi/alysis-code/tree/main/docs
5
+ Project-URL: Changelog, https://github.com/AlysisAi/AlysisCode/blob/main/docs/CHANGELOG.md
6
+ Project-URL: Documentation, https://github.com/AlysisAi/AlysisCode/tree/main/docs
7
7
  Project-URL: Funding, https://github.com/sponsors/AlysisAi
8
- Project-URL: Issues, https://github.com/AlysisAi/alysis-code/issues
9
- Project-URL: Security, https://github.com/AlysisAi/alysis-code/blob/main/.github/SECURITY.md
10
- Project-URL: Source, https://github.com/AlysisAi/alysis-code
8
+ Project-URL: Issues, https://github.com/AlysisAi/AlysisCode/issues
9
+ Project-URL: Security, https://github.com/AlysisAi/AlysisCode/blob/main/.github/SECURITY.md
10
+ Project-URL: Source, https://github.com/AlysisAi/AlysisCode
11
11
  License: Apache-2.0
12
12
  License-File: LICENSE
13
13
  License-File: NOTICE
@@ -26,6 +26,7 @@ Classifier: Topic :: Software Development
26
26
  Classifier: Topic :: Utilities
27
27
  Requires-Python: >=3.11
28
28
  Requires-Dist: anyio>=4.14.2
29
+ Requires-Dist: certifi>=2026.10.19
29
30
  Requires-Dist: click>=8.0.0
30
31
  Requires-Dist: cryptography>=50.0.0
31
32
  Requires-Dist: ddgs>=9.0.0
@@ -34,7 +35,7 @@ Requires-Dist: httpx>=0.27.0
34
35
  Requires-Dist: keyring>=25.0.0
35
36
  Requires-Dist: markdown-it-py<5.0.0,>=4.2.0
36
37
  Requires-Dist: packaging>=23.0
37
- Requires-Dist: pillow>=12.3.0
38
+ Requires-Dist: pillow>=13.0.0
38
39
  Requires-Dist: platformdirs>=4.2.0
39
40
  Requires-Dist: prompt-toolkit>=3.0.43
40
41
  Requires-Dist: psutil<8.0,>=7.2.2
@@ -47,9 +48,19 @@ Requires-Dist: websockets<17.0,>=15.0
47
48
  Provides-Extra: dev
48
49
  Requires-Dist: editables==0.5; extra == 'dev'
49
50
  Requires-Dist: hatchling==1.31.0; extra == 'dev'
51
+ Requires-Dist: jsonschema>=4.23.0; extra == 'dev'
50
52
  Requires-Dist: pytest>=8.0.0; extra == 'dev'
51
53
  Requires-Dist: pyyaml>=6.0.0; extra == 'dev'
52
54
  Requires-Dist: ruff>=0.6.0; extra == 'dev'
55
+ Provides-Extra: documents
56
+ Requires-Dist: lxml==6.1.3; extra == 'documents'
57
+ Requires-Dist: markdown-it-py==4.2.0; extra == 'documents'
58
+ Requires-Dist: openpyxl==3.1.5; extra == 'documents'
59
+ Requires-Dist: pypdfium2==5.13.0; extra == 'documents'
60
+ Requires-Dist: python-docx==1.2.0; extra == 'documents'
61
+ Requires-Dist: python-pptx==1.0.2; extra == 'documents'
62
+ Requires-Dist: reportlab==4.4.9; extra == 'documents'
63
+ Requires-Dist: xlsxwriter==3.2.9; extra == 'documents'
53
64
  Provides-Extra: managed-build
54
65
  Requires-Dist: pyinstaller-hooks-contrib==2026.6; extra == 'managed-build'
55
66
  Requires-Dist: pyinstaller==6.21.0; extra == 'managed-build'
@@ -73,8 +84,8 @@ Description-Content-Type: text/markdown
73
84
 
74
85
  <p align="center">
75
86
  <a href="https://alysiscode.com/">Website</a> ·
76
- <a href="https://github.com/AlysisAi/alysis-code/tree/main/docs">Docs</a> ·
77
- <a href="https://github.com/AlysisAi/alysis-code/blob/main/docs/CHANGELOG.md">Changelog</a>
87
+ <a href="https://github.com/AlysisAi/AlysisCode/tree/main/docs">Docs</a> ·
88
+ <a href="https://github.com/AlysisAi/AlysisCode/blob/main/docs/CHANGELOG.md">Changelog</a>
78
89
  </p>
79
90
 
80
91
  <p align="center">
@@ -82,10 +93,10 @@ Description-Content-Type: text/markdown
82
93
  </p>
83
94
 
84
95
  <p align="center">
85
- <a href="https://github.com/AlysisAi/alysis-code/actions/workflows/ci.yml"><img src="https://github.com/AlysisAi/alysis-code/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
96
+ <a href="https://github.com/AlysisAi/AlysisCode/actions/workflows/ci.yml"><img src="https://github.com/AlysisAi/AlysisCode/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
86
97
  <a href="https://pypi.org/project/alysis-code/"><img src="https://img.shields.io/pypi/v/alysis-code.svg" alt="PyPI version"></a>
87
98
  <a href="https://pypi.org/project/alysis-code/"><img src="https://img.shields.io/pypi/pyversions/alysis-code.svg" alt="Python versions"></a>
88
- <a href="https://github.com/AlysisAi/alysis-code/blob/main/LICENSE"><img src="https://img.shields.io/pypi/l/alysis-code.svg" alt="License"></a>
99
+ <a href="https://github.com/AlysisAi/AlysisCode/blob/main/LICENSE"><img src="https://img.shields.io/pypi/l/alysis-code.svg" alt="License"></a>
89
100
  </p>
90
101
 
91
102
  ---
@@ -96,11 +107,33 @@ Alysis Code requires **Python 3.11+** and runs on macOS, Linux, and Windows.
96
107
 
97
108
  **1 — Install**
98
109
 
99
- ```bash
100
- pipx install alysis-code
110
+ On Windows, paste this into **PowerShell**:
111
+
112
+ ```powershell
113
+ irm https://raw.githubusercontent.com/AlysisAi/AlysisCode/main/scripts/install.ps1 | iex
114
+ ```
115
+
116
+ On Linux, macOS, or inside a **WSL/Ubuntu terminal**:
117
+
118
+ ```sh
119
+ curl -LsSf https://raw.githubusercontent.com/AlysisAi/AlysisCode/main/scripts/install.sh | sh
101
120
  ```
102
121
 
103
- **2 — Launch in your project**
122
+ The installers provision uv and Python 3.12 when needed. No existing Python or pipx is required.
123
+ PowerShell can use `alysis` immediately; after the shell installer, follow its PATH instructions
124
+ or open a new terminal. If you already use pipx, `pipx install alysis-code` also works;
125
+ run `pipx ensurepath` and restart your terminal if the command is missing.
126
+
127
+ **2 — Connect your account**
128
+
129
+ ```sh
130
+ alysis login
131
+ ```
132
+
133
+ Approve the code in your browser to use your Alysis credits. No cloud environment variables
134
+ are needed. Existing 0.15.1 users should upgrade first with `alysis update`.
135
+
136
+ **3 — Launch in your project**
104
137
 
105
138
  ```bash
106
139
  cd your-project
@@ -111,7 +144,7 @@ The first run opens a guided setup wizard: choose **Use an API key** or **Use an
111
144
  connect a provider, and pick your default model. Re-run it anytime with `alysis-code setup`.
112
145
  (`alysis` works too, as a short alias.)
113
146
 
114
- **3 — Start building**
147
+ **Start building**
115
148
 
116
149
  ```bash
117
150
  alysis-code chat # interactive coding session
@@ -219,7 +252,7 @@ More questions? See the [full FAQ](https://alysiscode.com/docs/faq).
219
252
 
220
253
  ---
221
254
 
222
- **Join the community** — [X](https://x.com/alysiscode) | [GitHub Issues](https://github.com/AlysisAi/alysis-code/issues)
255
+ **Join the community** — [X](https://x.com/alysiscode) | [GitHub Issues](https://github.com/AlysisAi/AlysisCode/issues)
223
256
 
224
257
 
225
258
  ## Editor integrations
@@ -12,8 +12,8 @@
12
12
 
13
13
  <p align="center">
14
14
  <a href="https://alysiscode.com/">Website</a> ·
15
- <a href="https://github.com/AlysisAi/alysis-code/tree/main/docs">Docs</a> ·
16
- <a href="https://github.com/AlysisAi/alysis-code/blob/main/docs/CHANGELOG.md">Changelog</a>
15
+ <a href="https://github.com/AlysisAi/AlysisCode/tree/main/docs">Docs</a> ·
16
+ <a href="https://github.com/AlysisAi/AlysisCode/blob/main/docs/CHANGELOG.md">Changelog</a>
17
17
  </p>
18
18
 
19
19
  <p align="center">
@@ -21,10 +21,10 @@
21
21
  </p>
22
22
 
23
23
  <p align="center">
24
- <a href="https://github.com/AlysisAi/alysis-code/actions/workflows/ci.yml"><img src="https://github.com/AlysisAi/alysis-code/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
24
+ <a href="https://github.com/AlysisAi/AlysisCode/actions/workflows/ci.yml"><img src="https://github.com/AlysisAi/AlysisCode/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
25
25
  <a href="https://pypi.org/project/alysis-code/"><img src="https://img.shields.io/pypi/v/alysis-code.svg" alt="PyPI version"></a>
26
26
  <a href="https://pypi.org/project/alysis-code/"><img src="https://img.shields.io/pypi/pyversions/alysis-code.svg" alt="Python versions"></a>
27
- <a href="https://github.com/AlysisAi/alysis-code/blob/main/LICENSE"><img src="https://img.shields.io/pypi/l/alysis-code.svg" alt="License"></a>
27
+ <a href="https://github.com/AlysisAi/AlysisCode/blob/main/LICENSE"><img src="https://img.shields.io/pypi/l/alysis-code.svg" alt="License"></a>
28
28
  </p>
29
29
 
30
30
  ---
@@ -35,11 +35,33 @@ Alysis Code requires **Python 3.11+** and runs on macOS, Linux, and Windows.
35
35
 
36
36
  **1 — Install**
37
37
 
38
- ```bash
39
- pipx install alysis-code
38
+ On Windows, paste this into **PowerShell**:
39
+
40
+ ```powershell
41
+ irm https://raw.githubusercontent.com/AlysisAi/AlysisCode/main/scripts/install.ps1 | iex
42
+ ```
43
+
44
+ On Linux, macOS, or inside a **WSL/Ubuntu terminal**:
45
+
46
+ ```sh
47
+ curl -LsSf https://raw.githubusercontent.com/AlysisAi/AlysisCode/main/scripts/install.sh | sh
40
48
  ```
41
49
 
42
- **2 — Launch in your project**
50
+ The installers provision uv and Python 3.12 when needed. No existing Python or pipx is required.
51
+ PowerShell can use `alysis` immediately; after the shell installer, follow its PATH instructions
52
+ or open a new terminal. If you already use pipx, `pipx install alysis-code` also works;
53
+ run `pipx ensurepath` and restart your terminal if the command is missing.
54
+
55
+ **2 — Connect your account**
56
+
57
+ ```sh
58
+ alysis login
59
+ ```
60
+
61
+ Approve the code in your browser to use your Alysis credits. No cloud environment variables
62
+ are needed. Existing 0.15.1 users should upgrade first with `alysis update`.
63
+
64
+ **3 — Launch in your project**
43
65
 
44
66
  ```bash
45
67
  cd your-project
@@ -50,7 +72,7 @@ The first run opens a guided setup wizard: choose **Use an API key** or **Use an
50
72
  connect a provider, and pick your default model. Re-run it anytime with `alysis-code setup`.
51
73
  (`alysis` works too, as a short alias.)
52
74
 
53
- **3 — Start building**
75
+ **Start building**
54
76
 
55
77
  ```bash
56
78
  alysis-code chat # interactive coding session
@@ -158,7 +180,7 @@ More questions? See the [full FAQ](https://alysiscode.com/docs/faq).
158
180
 
159
181
  ---
160
182
 
161
- **Join the community** — [X](https://x.com/alysiscode) | [GitHub Issues](https://github.com/AlysisAi/alysis-code/issues)
183
+ **Join the community** — [X](https://x.com/alysiscode) | [GitHub Issues](https://github.com/AlysisAi/AlysisCode/issues)
162
184
 
163
185
 
164
186
  ## Editor integrations
@@ -1,5 +1,80 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.15.2 - 2026-10-21
4
+
5
+ - Restore the default hosted API URL so a fresh installation can run
6
+ `alysis login`, read account status, and prepare online feedback without
7
+ environment configuration. Custom deployment overrides remain supported;
8
+ project keys and server credentials are not bundled.
9
+ - Add a Windows PowerShell installer that provisions uv and Python, detects
10
+ conflicting installations, and updates PATH for the current and future terminals.
11
+ - Clarify PowerShell, WSL, pipx prerequisites, and the account sign-in steps.
12
+ - Require a complete simulated device login from the installed release wheel,
13
+ with no cloud environment variables, before publishing Python packages.
14
+ - Refresh the sandbox's pinned certificate, curl, and Go security updates on
15
+ both supported architectures, with native image scans and smoke checks.
16
+ - Require patched Certifi and Pillow releases and refresh their locked versions
17
+ so new and upgraded installations receive the current security fixes.
18
+
19
+ ## 0.15.1 - 2026-10-15
20
+
21
+ - Keep the release qualification's simulated stalled provider connected until
22
+ the test completes. Its previous five-second disconnect could report a
23
+ provider failure before the managed deadline on Windows. Deadline and
24
+ process-cleanup assertions remain enforced.
25
+ - Include all changes listed under 0.15.0 below. The 0.15.0 tag is preserved,
26
+ but its release qualification failed before package publication.
27
+
28
+ ## 0.15.0 - 2026-10-15
29
+
30
+ - Expand the terminal workspace with inline diffs, file mentions, prompt history,
31
+ session navigation, integration inspection, planning, review, tool traces,
32
+ structured questions, and clearer subagent progress.
33
+ - Add IDE command and skill discovery, explicit skill invocation, mid-turn
34
+ steering, and opt-in reasoning summary events.
35
+ - Improve ChatGPT subscription registration, account selection, credential
36
+ refresh, saved profiles, endpoint migration, and reviewed model discovery.
37
+ - Add GPT-6.1 Sol presets and model-specific reasoning controls. Preserve
38
+ reasoning choices across settings reloads and separate safe reasoning summaries
39
+ from final answers.
40
+ - Recover more reliably from output limits, interrupted streams, provider retry
41
+ exhaustion, and cancellation. Improve caching and provider diagnostics.
42
+ - Add approval review and safer command classification, with fixes for Windows
43
+ command execution, macOS image paste, sandbox fallback, and local listeners.
44
+ - Clarify hosted-account billing and capacity errors without mislabeling them as
45
+ rejected API keys; direct model configuration guidance to `/config`.
46
+ - Remove `/objective` and explicit task-relation state. State the current goal in
47
+ the conversation; steer an active turn when requirements change.
48
+ - Stamp builds consistently and persist an installation identifier across client
49
+ sessions.
50
+ - Add optional PDF, Word, spreadsheet, and presentation tools through the
51
+ `documents` extra, with path-scoped input and output acceptance checks.
52
+ - Add host integration contracts for browser and computer actions, GitHub,
53
+ Google services, open panels, task budgets, and Forge verification.
54
+ - Route `forge plan` and `forge run` through the shared host planner and approval
55
+ flow. Machine planning accepts an explicit goal and intent.
56
+ - Add account usage/status, reviewed feedback delivery, corporate CA support,
57
+ and safer managed-session persistence on Windows.
58
+ - Add `profile check`, subagent settings, bundled Alysis documentation guidance,
59
+ and persona restoration when IDE sessions start or resume.
60
+ - Fix Windows `.git/info/exclude` line endings and VS Code provider setup,
61
+ startup readiness, and package inventory checks.
62
+ - Align public links and release provenance checks with `AlysisAi/AlysisCode`.
63
+ - Keep hosted deployment URLs and project keys out of public source and packages.
64
+ Hosted login, account status, and online feedback require runtime configuration
65
+ through `ALYSIS_CLOUD_API_URL`; see [Reference](reference.md). Other configured
66
+ providers remain available.
67
+ - Preserve focused setup actions during streamed sidebar updates and avoid
68
+ repeatedly searching the transcript for static controls.
69
+ - Keep background update checks bound to the data directory that scheduled them.
70
+ - Repair sandbox dependency locks and server packaging, and update the bundled
71
+ Go toolchain to the 1.26.9 security patch.
72
+ - Retire the `sylliptor` command and legacy branding aliases. Use `alysis` or
73
+ `alysis-code`, canonical `ALYSIS_` environment variables, `.alysis` project
74
+ data, and `alysis-plugin.toml` manifests. Back up and migrate legacy locations
75
+ explicitly before upgrading; this release does not move them automatically.
76
+
77
+
3
78
  ## 0.14.9 — Claude Haiku 5.5 on Alysis Free — 2026-10-07
4
79
 
5
80
  - Add Claude Haiku 5.5 to the Alysis Free model picker and direct Anthropic
@@ -471,25 +546,25 @@ Public launch and repository-layout refresh.
471
546
  ## Earlier releases
472
547
 
473
548
  Release notes for versions before 0.9.8 remain available in the
474
- [GitHub Releases archive](https://github.com/AlysisAi/alysis-code/releases).
475
-
476
- [Unreleased]: https://github.com/AlysisAi/alysis-code/compare/v0.14.1...HEAD
477
- [0.14.1]: https://github.com/AlysisAi/alysis-code/compare/v0.14.0...v0.14.1
478
- [0.14.0]: https://github.com/AlysisAi/alysis-code/compare/v0.13.8...v0.14.0
479
- [0.13.8]: https://github.com/AlysisAi/alysis-code/compare/v0.13.7...v0.13.8
480
- [0.13.7]: https://github.com/AlysisAi/alysis-code/compare/v0.13.6.2...v0.13.7
481
- [0.13.6.2]: https://github.com/AlysisAi/alysis-code/compare/v0.13.6.1...v0.13.6.2
482
- [0.13.6.1]: https://github.com/AlysisAi/alysis-code/compare/v0.13.6...v0.13.6.1
483
- [0.13.6]: https://github.com/AlysisAi/alysis-code/compare/v0.13.5...v0.13.6
484
- [0.13.5]: https://github.com/AlysisAi/alysis-code/compare/v0.13.4...v0.13.5
485
- [0.13.4]: https://github.com/AlysisAi/alysis-code/compare/v0.13.3...v0.13.4
486
- [0.13.3]: https://github.com/AlysisAi/alysis-code/compare/v0.13.2...v0.13.3
487
- [0.13.2]: https://github.com/AlysisAi/alysis-code/compare/v0.13.1...v0.13.2
488
- [0.13.1]: https://github.com/AlysisAi/alysis-code/compare/v0.13.0...v0.13.1
489
- [0.13.0]: https://github.com/AlysisAi/alysis-code/compare/v0.12.0...v0.13.0
490
- [0.12.0]: https://github.com/AlysisAi/alysis-code/compare/v0.11.2...v0.12.0
491
- [0.11.2]: https://github.com/AlysisAi/alysis-code/compare/v0.11.1...v0.11.2
492
- [0.11.1]: https://github.com/AlysisAi/alysis-code/compare/v0.11.0...v0.11.1
493
- [0.11.0]: https://github.com/AlysisAi/alysis-code/compare/v0.10.0...v0.11.0
494
- [0.10.0]: https://github.com/AlysisAi/alysis-code/compare/v0.9.8...v0.10.0
495
- [0.9.8]: https://github.com/AlysisAi/alysis-code/releases/tag/v0.9.8
549
+ [GitHub Releases archive](https://github.com/AlysisAi/AlysisCode/releases).
550
+
551
+ [Unreleased]: https://github.com/AlysisAi/AlysisCode/compare/v0.14.1...HEAD
552
+ [0.14.1]: https://github.com/AlysisAi/AlysisCode/compare/v0.14.0...v0.14.1
553
+ [0.14.0]: https://github.com/AlysisAi/AlysisCode/compare/v0.13.8...v0.14.0
554
+ [0.13.8]: https://github.com/AlysisAi/AlysisCode/compare/v0.13.7...v0.13.8
555
+ [0.13.7]: https://github.com/AlysisAi/AlysisCode/compare/v0.13.6.2...v0.13.7
556
+ [0.13.6.2]: https://github.com/AlysisAi/AlysisCode/compare/v0.13.6.1...v0.13.6.2
557
+ [0.13.6.1]: https://github.com/AlysisAi/AlysisCode/compare/v0.13.6...v0.13.6.1
558
+ [0.13.6]: https://github.com/AlysisAi/AlysisCode/compare/v0.13.5...v0.13.6
559
+ [0.13.5]: https://github.com/AlysisAi/AlysisCode/compare/v0.13.4...v0.13.5
560
+ [0.13.4]: https://github.com/AlysisAi/AlysisCode/compare/v0.13.3...v0.13.4
561
+ [0.13.3]: https://github.com/AlysisAi/AlysisCode/compare/v0.13.2...v0.13.3
562
+ [0.13.2]: https://github.com/AlysisAi/AlysisCode/compare/v0.13.1...v0.13.2
563
+ [0.13.1]: https://github.com/AlysisAi/AlysisCode/compare/v0.13.0...v0.13.1
564
+ [0.13.0]: https://github.com/AlysisAi/AlysisCode/compare/v0.12.0...v0.13.0
565
+ [0.12.0]: https://github.com/AlysisAi/AlysisCode/compare/v0.11.2...v0.12.0
566
+ [0.11.2]: https://github.com/AlysisAi/AlysisCode/compare/v0.11.1...v0.11.2
567
+ [0.11.1]: https://github.com/AlysisAi/AlysisCode/compare/v0.11.0...v0.11.1
568
+ [0.11.0]: https://github.com/AlysisAi/AlysisCode/compare/v0.10.0...v0.11.0
569
+ [0.10.0]: https://github.com/AlysisAi/AlysisCode/compare/v0.9.8...v0.10.0
570
+ [0.9.8]: https://github.com/AlysisAi/AlysisCode/releases/tag/v0.9.8
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "alysis-code"
7
- version = "0.14.9"
7
+ version = "0.15.2"
8
8
  description = "Local CLI coding agent powered by any API."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -33,6 +33,7 @@ classifiers = [
33
33
  ]
34
34
  dependencies = [
35
35
  "anyio>=4.14.2",
36
+ "certifi>=2026.10.19",
36
37
  "click>=8.0.0",
37
38
  "cryptography>=50.0.0",
38
39
  "ddgs>=9.0.0",
@@ -41,7 +42,7 @@ dependencies = [
41
42
  "keyring>=25.0.0",
42
43
  "markdown-it-py>=4.2.0,<5.0.0",
43
44
  "packaging>=23.0",
44
- "pillow>=12.3.0",
45
+ "pillow>=13.0.0",
45
46
  "platformdirs>=4.2.0",
46
47
  "pydantic>=2.6.0",
47
48
  "prompt-toolkit>=3.0.43",
@@ -54,15 +55,26 @@ dependencies = [
54
55
  ]
55
56
 
56
57
  [project.urls]
57
- Changelog = "https://github.com/AlysisAi/alysis-code/blob/main/docs/CHANGELOG.md"
58
- Documentation = "https://github.com/AlysisAi/alysis-code/tree/main/docs"
58
+ Changelog = "https://github.com/AlysisAi/AlysisCode/blob/main/docs/CHANGELOG.md"
59
+ Documentation = "https://github.com/AlysisAi/AlysisCode/tree/main/docs"
59
60
  Funding = "https://github.com/sponsors/AlysisAi"
60
- Issues = "https://github.com/AlysisAi/alysis-code/issues"
61
- Security = "https://github.com/AlysisAi/alysis-code/blob/main/.github/SECURITY.md"
62
- Source = "https://github.com/AlysisAi/alysis-code"
61
+ Issues = "https://github.com/AlysisAi/AlysisCode/issues"
62
+ Security = "https://github.com/AlysisAi/AlysisCode/blob/main/.github/SECURITY.md"
63
+ Source = "https://github.com/AlysisAi/AlysisCode"
63
64
 
64
65
  [project.optional-dependencies]
66
+ documents = [
67
+ "reportlab==4.4.9",
68
+ "pypdfium2==5.13.0",
69
+ "markdown-it-py==4.2.0",
70
+ "python-docx==1.2.0",
71
+ "openpyxl==3.1.5",
72
+ "XlsxWriter==3.2.9",
73
+ "python-pptx==1.0.2",
74
+ "lxml==6.1.3",
75
+ ]
65
76
  dev = [
77
+ "jsonschema>=4.23.0",
66
78
  "editables==0.5",
67
79
  "hatchling==1.31.0",
68
80
  "pyyaml>=6.0.0",
@@ -84,10 +96,7 @@ server = [
84
96
  alysis-code = "alysis_code.cli:app"
85
97
  # Short alias.
86
98
  alysis = "alysis_code.cli:app"
87
- # Deprecated alias kept so muscle memory, shell aliases, CI scripts and IDE
88
- # configs written against the old name keep working. Forwards silently.
89
- # Remove no earlier than the next major release.
90
- sylliptor = "alysis_code.cli:legacy_app"
99
+ alysis-ide-bridge = "alysis_code.ide.stdio_bridge:run_stdio_bridge"
91
100
 
92
101
  [tool.hatch.build.targets.wheel]
93
102
  packages = ["src/alysis_code"]
@@ -96,6 +105,9 @@ exclude = [
96
105
  "**/*.py[cod]",
97
106
  ]
98
107
 
108
+ [tool.hatch.build.targets.wheel.force-include]
109
+ "schemas/forge-host-v2/forge-host-v2.schema.json" = "alysis_code/schemas/forge-host-v2/forge-host-v2.schema.json"
110
+
99
111
  [tool.hatch.build.targets.sdist]
100
112
  include = [
101
113
  "/.gitignore",
@@ -105,6 +117,7 @@ include = [
105
117
  "/README.md",
106
118
  "/pyproject.toml",
107
119
  "/src/alysis_code",
120
+ "/schemas/forge-host-v2/forge-host-v2.schema.json",
108
121
  ]
109
122
  exclude = [
110
123
  "**/__pycache__/**",