LMMs 2.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (239) hide show
  1. gui.pyc +0 -0
  2. launcher.pyc +0 -0
  3. lmms/__init__.pyc +0 -0
  4. lmms/api/__init__.pyc +0 -0
  5. lmms/api/client.pyc +0 -0
  6. lmms/api/server.pyc +0 -0
  7. lmms/backend/__init__.pyc +0 -0
  8. lmms/backend/agents/__init__.pyc +0 -0
  9. lmms/backend/agents/base/__init__.pyc +0 -0
  10. lmms/backend/agents/base/agent.pyc +0 -0
  11. lmms/backend/agents/context.pyc +0 -0
  12. lmms/backend/agents/core_agents/__init__.pyc +0 -0
  13. lmms/backend/agents/core_agents/agents/__init__.pyc +0 -0
  14. lmms/backend/agents/core_agents/agents/base.pyc +0 -0
  15. lmms/backend/agents/core_agents/agents/context.pyc +0 -0
  16. lmms/backend/agents/core_agents/agents/history.pyc +0 -0
  17. lmms/backend/agents/core_agents/agents/manager.pyc +0 -0
  18. lmms/backend/agents/core_agents/agents/specialized/__init__.pyc +0 -0
  19. lmms/backend/agents/core_agents/agents/specialized/chat.pyc +0 -0
  20. lmms/backend/agents/core_agents/agents/specialized/coding.pyc +0 -0
  21. lmms/backend/agents/core_agents/agents/specialized/git.pyc +0 -0
  22. lmms/backend/agents/core_agents/agents/specialized/orchestrator.pyc +0 -0
  23. lmms/backend/agents/core_agents/agents/specialized/reviewer.pyc +0 -0
  24. lmms/backend/agents/core_agents/agents/specialized/tasks.pyc +0 -0
  25. lmms/backend/agents/core_agents/agents/specialized/tester.pyc +0 -0
  26. lmms/backend/agents/core_agents/agents/specialized/universal.pyc +0 -0
  27. lmms/backend/agents/core_agents/agents/specialized/vision.pyc +0 -0
  28. lmms/backend/agents/execution.pyc +0 -0
  29. lmms/backend/agents/manager.pyc +0 -0
  30. lmms/backend/agents/memory.pyc +0 -0
  31. lmms/backend/agents/permissions.pyc +0 -0
  32. lmms/backend/agents/policies.pyc +0 -0
  33. lmms/backend/agents/registry.pyc +0 -0
  34. lmms/backend/agents/router_hooks/__init__.pyc +0 -0
  35. lmms/backend/agents/router_hooks/rule_based.pyc +0 -0
  36. lmms/backend/agents/states.pyc +0 -0
  37. lmms/backend/cli/__init__.pyc +0 -0
  38. lmms/backend/cli/checkpoints.pyc +0 -0
  39. lmms/backend/cli/cli.pyc +0 -0
  40. lmms/backend/cli/cli_commands.pyc +0 -0
  41. lmms/backend/cli/diagnostics.pyc +0 -0
  42. lmms/backend/cli/review.pyc +0 -0
  43. lmms/backend/cli/scope_cli.pyc +0 -0
  44. lmms/backend/cli/tools_cli.pyc +0 -0
  45. lmms/backend/context/__init__.pyc +0 -0
  46. lmms/backend/context/assembler.pyc +0 -0
  47. lmms/backend/context/budgeting.pyc +0 -0
  48. lmms/backend/context/builder.pyc +0 -0
  49. lmms/backend/context/capabilities.pyc +0 -0
  50. lmms/backend/context/intents.pyc +0 -0
  51. lmms/backend/context/ranking.pyc +0 -0
  52. lmms/backend/context/retrieval.pyc +0 -0
  53. lmms/backend/context/workspace_rules.pyc +0 -0
  54. lmms/backend/contracts/__init__.pyc +0 -0
  55. lmms/backend/contracts/cache.pyc +0 -0
  56. lmms/backend/contracts/generation.pyc +0 -0
  57. lmms/backend/contracts/inference.pyc +0 -0
  58. lmms/backend/contracts/loader.pyc +0 -0
  59. lmms/backend/contracts/memory.pyc +0 -0
  60. lmms/backend/contracts/profile.pyc +0 -0
  61. lmms/backend/contracts/provider.pyc +0 -0
  62. lmms/backend/contracts/runtime.pyc +0 -0
  63. lmms/backend/contracts/scheduler.pyc +0 -0
  64. lmms/backend/contracts/workspace.pyc +0 -0
  65. lmms/backend/core/__init__.pyc +0 -0
  66. lmms/backend/core/agent.pyc +0 -0
  67. lmms/backend/core/capabilities/__init__.pyc +0 -0
  68. lmms/backend/core/capabilities/registry.pyc +0 -0
  69. lmms/backend/core/commands.pyc +0 -0
  70. lmms/backend/core/context.pyc +0 -0
  71. lmms/backend/core/migration.pyc +0 -0
  72. lmms/backend/core/registry/__init__.pyc +0 -0
  73. lmms/backend/core/registry/model_registry.pyc +0 -0
  74. lmms/backend/core/registry/provider_registry.pyc +0 -0
  75. lmms/backend/core/registry/service.pyc +0 -0
  76. lmms/backend/dummy_bug.pyc +0 -0
  77. lmms/backend/dummy_test_bug.pyc +0 -0
  78. lmms/backend/git/__init__.pyc +0 -0
  79. lmms/backend/git/branches.pyc +0 -0
  80. lmms/backend/git/commits.pyc +0 -0
  81. lmms/backend/git/diff.pyc +0 -0
  82. lmms/backend/git/git_manager.pyc +0 -0
  83. lmms/backend/git/hooks.pyc +0 -0
  84. lmms/backend/git/manager.pyc +0 -0
  85. lmms/backend/git/memory.pyc +0 -0
  86. lmms/backend/git/repository.pyc +0 -0
  87. lmms/backend/git/timeline.pyc +0 -0
  88. lmms/backend/git/worktrees.pyc +0 -0
  89. lmms/backend/main.pyc +0 -0
  90. lmms/backend/models.pyc +0 -0
  91. lmms/backend/providers/__init__.pyc +0 -0
  92. lmms/backend/providers/manager.pyc +0 -0
  93. lmms/backend/providers/native/__init__.pyc +0 -0
  94. lmms/backend/providers/native/provider.pyc +0 -0
  95. lmms/backend/research/__init__.pyc +0 -0
  96. lmms/backend/research/engine.pyc +0 -0
  97. lmms/backend/research/events.pyc +0 -0
  98. lmms/backend/research/evidence.pyc +0 -0
  99. lmms/backend/research/fetcher.pyc +0 -0
  100. lmms/backend/research/history.pyc +0 -0
  101. lmms/backend/research/result.pyc +0 -0
  102. lmms/backend/research/search_manager.pyc +0 -0
  103. lmms/backend/router/__init__.pyc +0 -0
  104. lmms/backend/router/execution_graph.pyc +0 -0
  105. lmms/backend/router/fallback.pyc +0 -0
  106. lmms/backend/router/llm_router.pyc +0 -0
  107. lmms/backend/router/manager.pyc +0 -0
  108. lmms/backend/router/memory.pyc +0 -0
  109. lmms/backend/router/pairs.pyc +0 -0
  110. lmms/backend/router/planner.pyc +0 -0
  111. lmms/backend/router/rule_router.pyc +0 -0
  112. lmms/backend/router/validator.pyc +0 -0
  113. lmms/backend/security/__init__.pyc +0 -0
  114. lmms/backend/security/command_parser.pyc +0 -0
  115. lmms/backend/security/defensive.pyc +0 -0
  116. lmms/backend/security/evidence.pyc +0 -0
  117. lmms/backend/security/executor.pyc +0 -0
  118. lmms/backend/security/models.pyc +0 -0
  119. lmms/backend/security/permission_manager.pyc +0 -0
  120. lmms/backend/security/report.pyc +0 -0
  121. lmms/backend/security/scope.pyc +0 -0
  122. lmms/backend/security/target_validator.pyc +0 -0
  123. lmms/backend/security/tool_registry.pyc +0 -0
  124. lmms/backend/services/__init__.pyc +0 -0
  125. lmms/backend/services/chat_event.pyc +0 -0
  126. lmms/backend/services/chat_service.pyc +0 -0
  127. lmms/backend/services/model_cache.pyc +0 -0
  128. lmms/backend/services/model_registry.pyc +0 -0
  129. lmms/backend/services/workspace_service.pyc +0 -0
  130. lmms/backend/tasks/__init__.pyc +0 -0
  131. lmms/backend/tasks/graph.pyc +0 -0
  132. lmms/backend/tasks/hooks.pyc +0 -0
  133. lmms/backend/tasks/manager.pyc +0 -0
  134. lmms/backend/tasks/memory.pyc +0 -0
  135. lmms/backend/tasks/timeline.pyc +0 -0
  136. lmms/backend/telemetry/__init__.pyc +0 -0
  137. lmms/backend/telemetry/metrics.pyc +0 -0
  138. lmms/backend/tools/__init__.pyc +0 -0
  139. lmms/backend/tools/boundaries.pyc +0 -0
  140. lmms/backend/tools/browser.pyc +0 -0
  141. lmms/backend/tools/core/__init__.pyc +0 -0
  142. lmms/backend/tools/core/definitions.pyc +0 -0
  143. lmms/backend/tools/core/executor.pyc +0 -0
  144. lmms/backend/tools/core/registry.pyc +0 -0
  145. lmms/backend/tools/core/result.pyc +0 -0
  146. lmms/backend/tools/files.pyc +0 -0
  147. lmms/backend/tools/kali_knowledge.pyc +0 -0
  148. lmms/backend/tools/rag.pyc +0 -0
  149. lmms/backend/tools/search.pyc +0 -0
  150. lmms/backend/tools/search_provider.pyc +0 -0
  151. lmms/backend/tools/terminal.pyc +0 -0
  152. lmms/backend/tools/vision.pyc +0 -0
  153. lmms/contracts/__init__.pyc +0 -0
  154. lmms/contracts/cache.pyc +0 -0
  155. lmms/contracts/inference.pyc +0 -0
  156. lmms/contracts/loader.pyc +0 -0
  157. lmms/contracts/memory.pyc +0 -0
  158. lmms/contracts/profile.pyc +0 -0
  159. lmms/contracts/provider.pyc +0 -0
  160. lmms/contracts/runtime.pyc +0 -0
  161. lmms/contracts/scheduler.pyc +0 -0
  162. lmms/contracts/workspace.pyc +0 -0
  163. lmms/engine/__init__.pyc +0 -0
  164. lmms/engine/air/__init__.pyc +0 -0
  165. lmms/engine/air/cache.pyc +0 -0
  166. lmms/engine/air/guardrails.pyc +0 -0
  167. lmms/engine/air/loader.pyc +0 -0
  168. lmms/engine/air/memory_map.pyc +0 -0
  169. lmms/engine/air/monitor.pyc +0 -0
  170. lmms/engine/air/pager.pyc +0 -0
  171. lmms/engine/air/prefetch.pyc +0 -0
  172. lmms/engine/air/quantization.pyc +0 -0
  173. lmms/engine/air/ram_cache.pyc +0 -0
  174. lmms/engine/air/runtime.pyc +0 -0
  175. lmms/engine/air/scheduler.pyc +0 -0
  176. lmms/engine/air/stats.pyc +0 -0
  177. lmms/engine/air/swapper.pyc +0 -0
  178. lmms/engine/benchmark.pyc +0 -0
  179. lmms/engine/cache_manager.pyc +0 -0
  180. lmms/engine/connection.pyc +0 -0
  181. lmms/engine/downloads_manager.pyc +0 -0
  182. lmms/engine/hardware.pyc +0 -0
  183. lmms/engine/manager.pyc +0 -0
  184. lmms/engine/modelfile.pyc +0 -0
  185. lmms/engine/profiles.pyc +0 -0
  186. lmms/engine/registry.pyc +0 -0
  187. lmms/engine/response_cleaner.pyc +0 -0
  188. lmms/engine/runtime_matrix.pyc +0 -0
  189. lmms/engine/runtimes/__init__.pyc +0 -0
  190. lmms/engine/runtimes/air.pyc +0 -0
  191. lmms/engine/runtimes/base.pyc +0 -0
  192. lmms/engine/runtimes/hf_vision.pyc +0 -0
  193. lmms/engine/runtimes/llama_cpp.pyc +0 -0
  194. lmms/engine/runtimes/universal_pytorch.pyc +0 -0
  195. lmms/engine/runtimes/vllm.pyc +0 -0
  196. lmms/engine/scheduler.pyc +0 -0
  197. lmms/engine/smart_scheduler.pyc +0 -0
  198. lmms/extensions/__init__.pyc +0 -0
  199. lmms/extensions/commands.pyc +0 -0
  200. lmms/extensions/host.pyc +0 -0
  201. lmms/extensions/installer.pyc +0 -0
  202. lmms/extensions/manager.pyc +0 -0
  203. lmms/extensions/models.pyc +0 -0
  204. lmms/extensions/vscode_api.pyc +0 -0
  205. lmms/gui/__init__.pyc +0 -0
  206. lmms/gui/dialogs/__init__.pyc +0 -0
  207. lmms/gui/dialogs/extension_permissions_dialog.pyc +0 -0
  208. lmms/gui/dialogs/github_auth_dialog.pyc +0 -0
  209. lmms/gui/dialogs/settings_dialog.pyc +0 -0
  210. lmms/providers/__init__.pyc +0 -0
  211. lmms/providers/manager.pyc +0 -0
  212. lmms/ui.pyc +0 -0
  213. lmms-2.0.0.dist-info/METADATA +355 -0
  214. lmms-2.0.0.dist-info/RECORD +239 -0
  215. lmms-2.0.0.dist-info/WHEEL +5 -0
  216. lmms-2.0.0.dist-info/entry_points.txt +4 -0
  217. lmms-2.0.0.dist-info/licenses/LICENSE +176 -0
  218. lmms-2.0.0.dist-info/top_level.txt +4 -0
  219. tests/__init__.pyc +0 -0
  220. tests/test_checkpoints.pyc +0 -0
  221. tests/test_cli_response_contract.pyc +0 -0
  222. tests/test_command_parser.pyc +0 -0
  223. tests/test_diagnostics.pyc +0 -0
  224. tests/test_executor.pyc +0 -0
  225. tests/test_gui_chat.pyc +0 -0
  226. tests/test_launcher.pyc +0 -0
  227. tests/test_parser_edge_cases.pyc +0 -0
  228. tests/test_permission_manager.pyc +0 -0
  229. tests/test_planner.pyc +0 -0
  230. tests/test_pty.pyc +0 -0
  231. tests/test_report.pyc +0 -0
  232. tests/test_research.pyc +0 -0
  233. tests/test_review.pyc +0 -0
  234. tests/test_scope.pyc +0 -0
  235. tests/test_streaming_leak.pyc +0 -0
  236. tests/test_target_validator.pyc +0 -0
  237. tests/test_tools.pyc +0 -0
  238. tests/test_workspace_boundaries.pyc +0 -0
  239. tests/test_workspace_rules.pyc +0 -0
@@ -0,0 +1,355 @@
1
+ Metadata-Version: 2.4
2
+ Name: LMMs
3
+ Version: 2.0.0
4
+ Summary: Local Multi-Model AI System — open style agent
5
+ Author: MarkanM Team (Developer: Raj Singh)
6
+ Requires-Python: >=3.10
7
+ Description-Content-Type: text/markdown
8
+ License-File: LICENSE
9
+ Requires-Dist: ollama
10
+ Requires-Dist: rich
11
+ Requires-Dist: duckduckgo-search
12
+ Requires-Dist: playwright
13
+ Requires-Dist: requests
14
+ Requires-Dist: click
15
+ Requires-Dist: prompt_toolkit
16
+ Requires-Dist: openai
17
+ Requires-Dist: anthropic
18
+ Requires-Dist: pathspec
19
+ Requires-Dist: plotext
20
+ Requires-Dist: textual
21
+ Requires-Dist: huggingface_hub
22
+ Requires-Dist: watchdog
23
+ Requires-Dist: transformers
24
+ Requires-Dist: airllm
25
+ Requires-Dist: PyQt6
26
+ Requires-Dist: PyQt6-Qt6
27
+ Requires-Dist: PyQt6-sip
28
+ Requires-Dist: qasync
29
+ Requires-Dist: PyQt6-WebEngine
30
+ Requires-Dist: python-lsp-server
31
+ Requires-Dist: fastapi
32
+ Requires-Dist: uvicorn[standard]
33
+ Requires-Dist: httpx[http2]
34
+ Requires-Dist: websockets
35
+ Requires-Dist: pydantic
36
+ Requires-Dist: nest_asyncio
37
+ Requires-Dist: psutil
38
+ Requires-Dist: sentence-transformers
39
+ Requires-Dist: numpy
40
+ Requires-Dist: markdown
41
+ Requires-Dist: sqlite-vec
42
+ Requires-Dist: keyring
43
+ Requires-Dist: debugpy>=1.8.0
44
+ Dynamic: author
45
+ Dynamic: description
46
+ Dynamic: description-content-type
47
+ Dynamic: license-file
48
+ Dynamic: requires-dist
49
+ Dynamic: requires-python
50
+ Dynamic: summary
51
+
52
+ # LMMs Unified Architecture
53
+
54
+ ```
55
+ ██╗ ███╗ ███╗███╗ ███╗███████╗
56
+ ██║ ████╗ ████║████╗ ████║██╔════╝
57
+ ██║ ██╔████╔██║██╔████╔██║███████╗
58
+ ██║ ██║╚██╔╝██║██║╚██╔╝██║╚════██║
59
+ ███████╗██║ ╚═╝ ██║██║ ╚═╝ ██║███████║
60
+ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝
61
+ ```
62
+
63
+ <div align="center">
64
+ <a href="https://LMMs.MarkanM.com">
65
+ 🌐 Visit Our Official Website: LMMs.MarkanM.com
66
+ </a>
67
+ </div>
68
+
69
+ <br>
70
+
71
+ **LMMs** is an advanced, multi-component agentic AI ecosystem designed to run any open-source language model — from 1B to 350B+ parameters — and instantly equip it with autonomous agent capabilities like web search, code execution, API calling, file management, vector memory, and state tracking. We never modify the model itself. Instead, our Engine and Backend layer wraps around any model and gives it superpowers.
72
+
73
+ ---
74
+
75
+ ## 👑 Founders
76
+
77
+ | Role | Name |
78
+ |------|------|
79
+ | Founder | **Raj Singh** |
80
+ | Co-Founder | **Adarsh Singh** |
81
+
82
+ ---
83
+
84
+ ## 🏗️ How LMMs Works — Deep Architecture Overview
85
+
86
+ LMMs is built around a core philosophy: **the model should never need to be modified or fine-tuned to gain new capabilities**. Instead, all intelligence is injected through the architecture itself. Here is a deep breakdown of every layer:
87
+
88
+ ---
89
+
90
+ ### ⚙️ Layer 1: LMMs Engine — The Execution Core
91
+
92
+ The Engine is the lowest level of LMMs. It is responsible for actually loading and running the AI model on your hardware. Because AI models come in wildly different sizes and architectures — from tiny 1B models to massive 350B behemoths — LMMs uses a **Dual Engine Architecture** to handle all of them efficiently:
93
+
94
+ #### 🦙 Engine A: `llama.cpp` Runtime
95
+ - **Core Mechanism:** Utilizes zero-copy memory mapping (`mmap`) to load model weights directly from disk into RAM/VRAM without duplication.
96
+ - **Quantization Logic:** Converts standard 16-bit float (fp16) weights into 4-bit or 8-bit integers (GGUF format) using block-wise quantization. This reduces memory footprint by 75% while maintaining ~95% of the model's reasoning capability.
97
+ - **KV Caching:** Employs an optimized Key-Value (KV) cache matrix to store past token attention states, allowing ultra-fast generation of subsequent tokens without re-evaluating the entire prompt.
98
+ - **Best for:** Running highly optimized models (Llama 3, Mistral) on consumer hardware with limited VRAM.
99
+
100
+ #### 🔥 Engine B: `PyTorch` Runtime
101
+ - **Core Mechanism:** Natively loads standard HuggingFace `safetensors`. It utilizes dynamic graph execution and highly optimized CUDA kernels (like Flash Attention 2) to compute multi-head attention blocks faster on modern GPUs.
102
+ - **Memory Management:** Automatically splits the model layers across available GPUs (Tensor Parallelism) or shifts non-active layers to CPU RAM (Model Offloading) to prevent Out of Memory (OOM) errors.
103
+ - **Best for:** Multimodal models (Vision + Text), frontier models with custom attention mechanisms, and unquantized precision tasks.
104
+
105
+ #### 🌬️ Engine C: `AirLLM` (Air Engine) — Distributed / Disk-Offloading
106
+ - **Core Mechanism:** Traditional engines load the *entire* model into RAM/VRAM before generating a single token. AirLLM uses a **Layer-by-Layer Streaming** logic. It keeps only a small subset of the neural network layers in GPU memory at any given millisecond. As the forward pass reaches layer N, layer N+1 is pre-fetched from the SSD, and layer N-1 is evicted.
107
+ - **Impact:** Allows a standard 16GB RAM PC to run massive 70B parameter models by bottlenecking on disk read-speed rather than memory capacity.
108
+
109
+ > **Key Insight:** You can select which engine to use at model load time using `lmms run <model> -use l` (llama.cpp) or `lmms run <model> -use p` (PyTorch). The Engine auto-detects the best runtime if you omit the flag.
110
+
111
+ ---
112
+
113
+ ### 🧠 Layer 2: LMMs Backend — The Brain of the Agent
114
+
115
+ The Backend is the most important layer. It sits between the user and the Engine, intercepting every message and response. It is what transforms a plain language model into a fully autonomous AI agent — without touching the model's weights at all.
116
+
117
+ Here is what the Backend injects into every session:
118
+
119
+ #### 💻 Autonomous Code Execution (The Tool Interceptor)
120
+ - **Logic & Mechanics:** When the user asks for code, the Backend injects a strict "System Prompt" defining available tools. As the model streams tokens, the Backend constantly scans the stream using AST/Regex parsers for `<tool_call>` boundaries.
121
+ - **Execution Sandbox:** If the model emits a tool call (e.g., `execute_python`), the Backend pauses model inference immediately. It extracts the code payload, spawns a heavily monitored isolated OS subprocess, captures the `stdout` and `stderr` (output and errors), and forcefully terminates runaway loops using strict timeouts.
122
+ - **The Feedback Loop:** The captured output is wrapped in an `<observation>` block and appended to the context. The model is then resumed, allowing it to read its own output, realize if its code failed, and autonomously rewrite it until it passes.
123
+
124
+ #### 🗂️ Vector DB & RAG (Retrieval-Augmented Generation)
125
+ - **Ingestion Pipeline:** When a user attaches a folder (`/folder src`), the Backend reads all text/code files. It uses a **Recursive Character Text Splitter** to chop the files into smaller overlapping chunks (e.g., 500 tokens).
126
+ - **Embedding & Indexing:** Each chunk is passed through a lightweight Sentence Transformer model (e.g., `all-MiniLM-L6-v2`) which converts the text into a dense mathematical vector (an array of numbers). These vectors are stored in **FAISS (Facebook AI Similarity Search)**.
127
+ - **Query Retrieval:** When the user asks a question, their prompt is also vectorized. The FAISS database calculates the **Cosine Similarity** between the prompt's vector and the document chunks, fetching only the Top-K most relevant chunks and injecting them into the LLM's context window. This allows the model to "know" entire codebases without overflowing its context limit.
128
+
129
+ #### 🔍 Web Search & API Routing
130
+ - **Search Mechanics:** Upon needing live data, the Backend halts inference and executes a headless query to search APIs (like DuckDuckGo or Google). It parses the raw DOM/HTML of the top 3 results, strips out the noise (ads/scripts), extracts the core text, and feeds a summarized factual snippet back to the model.
131
+ - **Dynamic API Calling:** The Backend can parse REST API schemas dynamically. It allows the model to map natural language intents directly into structured HTTP GET/POST requests with appropriate headers and JSON payloads.
132
+
133
+ #### 📋 Sliding Window State & Session Memory
134
+ - **Context Eviction Logic:** LLMs crash if they exceed their maximum context window (e.g., 8192 tokens). The Backend tracks every single token using a `tiktoken` tokenizer. When the session nears the limit, the Backend activates a **Sliding Window Algorithm**: it safely evicts the oldest middle-conversation pairs while permanently pinning the System Prompt and critical tool observations at the top.
135
+ - **Undo/Redo Graph:** Every step (user input, model response, tool execution) is saved as an immutable node in a JSON state tree. Using `/undo` simply resets the pointer to the previous node and reverts associated filesystem changes.
136
+
137
+ #### 🔄 Intelligent Orchestration
138
+ - **Dynamic Routing:** For complex workflows, the Backend orchestrator monitors the token load. If a task requires massive context (e.g., summarizing 5 large files), the orchestrator dynamically routes the request to the PyTorch runtime; for rapid, short conversational bursts, it routes to the `llama.cpp` engine to save battery and compute cycles.
139
+
140
+ > **The Big Picture:** Because all of this complex tool-calling and memory management lives in the Backend — not the model's weights — you can swap the underlying model at any time. A user can start a conversation with a 1B model for speed, switch mid-chat to a 70B model using `/ml -s <modelname>`, and the entire agentic toolset carries over instantly.
141
+
142
+ ---
143
+
144
+ ### 🖥️ Layer 3: LMMs CLI — The Smart Terminal *(Beta — Ready for Use)*
145
+
146
+ The CLI is the primary interface for LMMs. It is **fully functional** and considered ready for general use in its current beta state. It gives you a rich, interactive terminal session where you can chat with any model, switch models live, and orchestrate the full backend toolset.
147
+
148
+ **Status: ✅ Beta — Stable & Ready**
149
+
150
+ ---
151
+
152
+ ### 🖼️ Layer 4: LMMs GUI — The AI Workspace IDE *(Under Active Development)*
153
+
154
+ The GUI is a PyQt6-based graphical AI Workspace IDE. It is designed to be a visual environment where you can:
155
+
156
+ - **Download models** directly from HuggingFace or the LMMs model hub with one click.
157
+ - **Run and test models** with a visual chat interface.
158
+ - **Browse and manage** your local model library.
159
+ - **Monitor VRAM, CPU, and RAM** usage in real time.
160
+ - **Configure the Backend** tools, vector DB indexes, and session settings visually.
161
+ - **View session state** and conversation history in a structured graph view.
162
+ - **Edit and run code** generated by the AI in an integrated editor.
163
+
164
+ > **Status: 🚧 Under Active Development** — The GUI is currently in an early development phase. Core features like model downloading and basic chat are being built. It is not yet ready for production use, but it is available in the repository as a sandbox for contributors.
165
+
166
+ ---
167
+
168
+ ## 📦 Component Summary
169
+
170
+ | Component | Description | Status |
171
+ |---|---|---|
172
+ | **LMMs Engine** | AI execution layer (llama.cpp + PyTorch + AirLLM) | ✅ Stable |
173
+ | **LMMs Backend** | Agentic brain: tools, RAG, web search, state tracking | ✅ Stable |
174
+ | **LMMs CLI** | Smart terminal interface for all interactions | ✅ Beta |
175
+ | **LMMs GUI** | PyQt6 graphical AI Workspace IDE | 🚧 In Development |
176
+
177
+ ---
178
+
179
+ ## 🛠️ Installation
180
+
181
+ LMMs now uses a standard Python package structure.
182
+
183
+ ```bash
184
+ # Step 1: Clone the repository
185
+ git clone https://github.com/Rajsingh18110/LMMs.git
186
+ cd LMMs
187
+
188
+ # Step 2: Install dependencies
189
+ pip install -r requirements.txt
190
+
191
+ # Step 3: Run the setup to configure LMMs
192
+ python setup.py install
193
+ ```
194
+
195
+ ---
196
+
197
+ ## 💻 Commands Reference
198
+
199
+ ### LMMs Core Launcher Commands
200
+
201
+ | Command | Description |
202
+ |---|---|
203
+ | `LMMs` | Launch your configured default interface |
204
+ | `LMMs --gui` <br> `LMMs --cli` <br> `LMMs --engine` | Directly runs the specified component |
205
+ | `LMMs set --cli` | Set CLI as your permanent default |
206
+ | `LMMs set --engine` | Set Engine as your permanent default |
207
+ | `LMMs stop` | Stop the LMMs background engine |
208
+ | `LMMs -check` | Hardware Profiler & Prerequisites check |
209
+ | `LMMs install --all` | Install Entire Ecosystem (main branch) |
210
+ | `LMMs install --gui` | Install GUI + Backend + Engine only (gui branch) |
211
+ | `LMMs install --cli` | Install CLI + Backend + Engine only (cli branch) |
212
+ | `LMMs update` | Smart update (auto-pulls from your installed branch) |
213
+ | `LMMs update --all` | Force Update Entire Ecosystem from GitHub |
214
+ | `LMMs-uninstall -all` | Remove Source Code (Data Safe) |
215
+ | `LMMs-uninstall -all --purge` | Total Purge (Factory Reset) |
216
+ | `LMMs --help` | Show launcher help |
217
+
218
+ ---
219
+
220
+ ## 🧠 CLI Slash Commands *(Inside the LMMs Terminal)*
221
+
222
+ These commands are typed inside an active LMMs CLI chat session.
223
+
224
+ | Command | Description |
225
+ |---|---|
226
+ | `/fast` | Switch to **FAST** mode — quick responses with no tool use |
227
+ | `/deep` | Switch to **DEEP** mode — full reasoning loop with all tools enabled (default) |
228
+ | `/model <name>` | Switch to a different model for this session (e.g., `/model llama3`) |
229
+ | `/ml -l` | List all models downloaded on your system |
230
+ | `/ml -s <modelname>` | **Live model switch** — swap the active model mid-conversation without losing context |
231
+ | `/folder <name>` | Attach an entire folder to the agent's context (e.g., `/folder src`) |
232
+ | `/code` | Enter focused code generation and editing mode for complex programming tasks |
233
+ | `/chat` | Show a list of all your past chat sessions |
234
+ | `/newchat` | Start a brand new empty chat session |
235
+ | `/chat -r <id> <name>` | Rename a specific chat by its ID |
236
+ | `/chat -d <id>` | Delete a specific chat history by its ID |
237
+ | `/undo` | Undo the last AI action or file edit |
238
+ | `/redo` | Redo the last undone action |
239
+ | `/exit` | Exit the LMMs CLI session |
240
+ | `/reboot` | Reboot the LMMs engine and exit the session |
241
+ | `/mic` | Record audio from the microphone and transcribe it as input |
242
+ | `/vision` (or `/image`) | Switch to VISION mode to analyze images with multimodal models |
243
+ | `/research` | Switch to RESEARCH mode for in-depth web search and data aggregation |
244
+ | `/read <file>` | Quickly read a file's contents into the context |
245
+ | `/task` | Manage background tasks or subagent goals |
246
+ | `/git` | Execute safe Git operations through the agent |
247
+ | `/scope init\|status` | Manage strict workspace boundaries and check scope rules |
248
+ | `/tools list` | List all available system and terminal tools for the agent |
249
+ | `/report` | Generate a detailed security audit report of AI actions |
250
+ | `/checkpoint` | Save a manual checkpoint of the current session state |
251
+ | `/checkpoints` | List all saved session checkpoints |
252
+ | `/rollback` | Rollback the session and file state to a previous checkpoint |
253
+ | `/status` | Check the overall system health and engine status |
254
+ | `/doctor` | Run automated diagnostics and repair engine issues |
255
+ | `/pair` | Enter Pair Programming mode for interactive coding |
256
+ | `/perm <level>` | Change the permission level for AI tool execution |
257
+ | `/agent` | Spawn and manage autonomous subagents |
258
+ | `/orchestrate` | Manage multi-agent orchestration for complex workflows |
259
+
260
+ > **Note:** Only the commands listed above are currently implemented and functional. Legacy or planned commands (e.g. `/cyber`) that are not yet fully available have been removed or are in development.
261
+
262
+ ---
263
+
264
+ ## ⚙️ Engine Terminal Commands
265
+
266
+ These commands are run directly in your system terminal (not inside the chat session) to manage models and the engine.
267
+
268
+ ### Core Model Management
269
+
270
+ | Command | Description |
271
+ |---|---|
272
+ | `lmms pull <model>` | Auto-detect the best quantization and download a model |
273
+ | `lmms run <model>` | Load and start a chat with a model (auto-selects engine) |
274
+ | `lmms run <model> -use l` | Force llama.cpp engine |
275
+ | `lmms run <model> -use p` | Force PyTorch engine |
276
+ | `lmms stop <model>` | Unload a model from memory |
277
+ | `lmms ps` | Show all currently loaded models |
278
+ | `lmms list` | List all locally downloaded models |
279
+ | `lmms info <model>` | Show metadata, parameter count, and quant info for a model |
280
+ | `lmms rm <model>` | Delete a model from disk |
281
+ | `lmms search <query>` | Search the model hub |
282
+ | `lmms benchmark <model>` | Run a speed test on a model |
283
+ | `lmms doctor [--fix]` | Diagnose and optionally repair engine health |
284
+ | `lmms create <model> -f <file>` | Create a custom model from a Modelfile |
285
+ | `lmms server` | Start the LMMs API server / webhook dashboard |
286
+
287
+ ### Air Engine (AirLLM — Disk Offloading for 70B+ Models)
288
+
289
+ | Command | Description |
290
+ |---|---|
291
+ | `lmms -air run <model>` | Run a large model using disk-offloading via AirLLM |
292
+ | `lmms --air run <m1> <m2>` | Run two models in cluster/scheduled mode |
293
+ | `lmms air ps` | Show Air Engine active sessions |
294
+ | `lmms air cache` | Show disk cache usage |
295
+ | `lmms air stats` | Show memory and throughput metrics |
296
+ | `lmms air unload` | Unload Air Engine models from memory |
297
+ | `lmms air benchmark` | Benchmark a model under Air Engine |
298
+
299
+ ---
300
+
301
+ ## 🚀 CI/CD Pipeline (GitHub Actions)
302
+
303
+ Every push to the `main` branch automatically triggers the LMMs build pipeline. It:
304
+
305
+ 1. Compiles the Python source into standalone binaries using PyInstaller:
306
+ - **Windows:** `.exe` files
307
+ - **Linux:** Native ELF binaries
308
+ - **macOS:** `.app` bundles
309
+ 2. Produces **12 build artifacts** (one per component per platform).
310
+ 3. Publishes all artifacts directly to the **GitHub Releases** page.
311
+ 4. You can download the latest standalone binaries directly from the Releases page — no Git required.
312
+
313
+ ---
314
+
315
+ ## 🤝 Join the Revolution: Open Source Contributions & Learning
316
+
317
+ LMMs is an **open-source AI ecosystem**, and we believe that the best software is built collaboratively. We are actively looking for passionate, serious developers, AI enthusiasts, and visionaries to join our community and contribute to the future of agentic AI.
318
+
319
+ Whether you are a seasoned software engineer or just starting your coding journey, there is a place for you here!
320
+
321
+ ### 🎓 Why Students Should Contribute to LMMs
322
+ For computer science students and tech enthusiasts, contributing to LMMs is an unparalleled opportunity to bridge the gap between academic theory and real-world software engineering.
323
+ - **Hands-on AI Experience:** Work directly with cutting-edge Large Language Models (LLMs), RAG pipelines, autonomous agents, and vector databases (FAISS).
324
+ - **Build Your Portfolio:** Open-source contributions to a complex, multi-layered AI architecture like LMMs serve as a powerful resume builder that stands out to top tech recruiters.
325
+ - **Learn Industry Best Practices:** Experience first-hand how an enterprise-grade AI architecture is designed, tested, and maintained at scale.
326
+ - **Networking:** Collaborate with other passionate students, AI researchers, and professional developers globally.
327
+
328
+ ### 🌱 A Playground for Beginner Developers
329
+ Are you a beginner looking for a welcoming open-source project to learn from? LMMs is the perfect training ground!
330
+ - **Mentorship & Guidance:** Our community is extremely welcoming. We love guiding beginners through their first Pull Requests (PRs), code reviews, and architecture discussions.
331
+ - **Modular Codebase:** The project is clearly separated into Engine, Backend, CLI, and GUI layers. You can pick the exact area you are most interested in—whether it's building a PyQt6 user interface or tweaking API routing in Python.
332
+ - **"Good First Issues":** We regularly tag easy, beginner-friendly tasks that help you learn the ropes without feeling overwhelmed.
333
+ - **AI-Powered Learning:** Using LMMs' autonomous coding and pair-programming capabilities (`/pair`, `/code`), you can actually use the AI itself to help you understand and contribute to the codebase!
334
+
335
+ ### 🎯 Who Can Join?
336
+ **Anyone who is serious about learning and building can join us.** You do not need a PhD in Machine Learning to contribute. We need help in various areas:
337
+ - **Python Developers** (Backend, CLI, Tool integration, Agentic loops)
338
+ - **UI/UX Designers & PyQt6 Devs** (LMMs GUI IDE)
339
+ - **Documentation Writers** (Tutorials, API references, SEO optimization, Guides)
340
+ - **QA Testers & Bug Hunters** (Help us find edge cases and improve stability)
341
+ - **AI Enthusiasts** (Prompt engineering, testing new GGUF/PyTorch models)
342
+
343
+ ### 🚀 How to Get Started?
344
+ 1. **Fork the Repository:** Click the 'Fork' button at the top of this GitHub page.
345
+ 2. **Clone & Install:** Follow the Installation guide above to get LMMs running locally.
346
+ 3. **Pick an Issue:** Check out our GitHub Issues tab, filter by `good first issue` or `help wanted`.
347
+ 4. **Submit a Pull Request:** Write your code, push to your fork, and open a PR! We will review it and guide you.
348
+
349
+ *Join us today, and let's build the ultimate autonomous AI ecosystem together!*
350
+
351
+ ---
352
+
353
+ ## 📄 License
354
+
355
+ This project is licensed under the **Apache License 2.0**. See the [LICENSE](LICENSE) file for full details.
@@ -0,0 +1,239 @@
1
+ gui.pyc,sha256=zUU8oStu-cCUx2bpTTifABoabfaVWq5xDOmml9Qaw8w,6049
2
+ launcher.pyc,sha256=9u2J1VmVruo9aXtMm77YzwOYFuIw7ok_59zaPTx3ldo,12429
3
+ lmms/__init__.pyc,sha256=PiyYqIGVsi3wZNxcAxSvRybNXsqEU564xV5omrJgOg8,123
4
+ lmms/ui.pyc,sha256=EJeCHyCN22t8j35NgxxAzQJhPKb6HjKCbcuEdpJIMTM,11025
5
+ lmms/api/__init__.pyc,sha256=WOUBdGF7xFGkWrCt46Px5kdytHI88FbPiW-OX9x0BhQ,127
6
+ lmms/api/client.pyc,sha256=txjgWQjIr3r9Yhnw7WWY67VnfGMtUNR5QUIvrhtjQag,3488
7
+ lmms/api/server.pyc,sha256=w8DVK7vWx37g9xroRxLVLJwEf_dmrEBfwXubmG4bdKU,54424
8
+ lmms/backend/__init__.pyc,sha256=DxRCLzM0kUAs2Wfwj_bibmM8K5Cz3PqiLhlssnEoZK8,214
9
+ lmms/backend/dummy_bug.pyc,sha256=xcIImiSJadIGAUTSrxwzQ5F1lKB8KOmpwXcglWdRLZE,242
10
+ lmms/backend/dummy_test_bug.pyc,sha256=rvESu4tfBP5608Sk1MldWONJkWt-e2PrKEs40BwU4Gk,359
11
+ lmms/backend/main.pyc,sha256=PbaszpBWYmSvwEBDhTRavlePbqYX5-iIe2KpctyjSQU,129347
12
+ lmms/backend/models.pyc,sha256=43ca-ODc2LDISd4fLlFDZsGuhPw7VtKyb5cei861RmE,1577
13
+ lmms/backend/agents/__init__.pyc,sha256=51GOIza8SOpgT1a8_hgNgOMmCjM2_s6FsMyWw6NXeR0,138
14
+ lmms/backend/agents/context.pyc,sha256=p5822dPSi7U7WQnNcrF4YZv6KlLOl4pJRhDeLsn02gw,137
15
+ lmms/backend/agents/execution.pyc,sha256=k2sJAD3dEoYYiu-_xwGLrQkt_CxpMakgFh51lrvkWQY,139
16
+ lmms/backend/agents/manager.pyc,sha256=pKLKG1UPgV-F1w3acfqzEB4m9HiQ0Rkq9ZiuShZC5PE,4323
17
+ lmms/backend/agents/memory.pyc,sha256=I8xjJ_gSFSoOOIVXtkvy_Z9qZHk_E3E5cew7X9RiL3U,136
18
+ lmms/backend/agents/permissions.pyc,sha256=Wl_ECzIRjrPjXvMI_VNRDzG_mTqaXpPfvDsnfl7UCRc,3524
19
+ lmms/backend/agents/policies.pyc,sha256=n1Rq4tmehS7qj6SIc4F2c0-tcq0lOCEg72OXAJJdZdY,138
20
+ lmms/backend/agents/registry.pyc,sha256=1YPIa2Q7ex_c8ct0mOdpJH9vRtxOHUmX98v0QPSMK_o,2477
21
+ lmms/backend/agents/states.pyc,sha256=gIO_EmZ6xaqh-t7S6RvmYYpyKadBRhX0MpYiPNYbIvA,620
22
+ lmms/backend/agents/base/__init__.pyc,sha256=V3lOmadA5pSXA2axAFe-tsWKQd-hNq-AjeJHDyuHA-k,143
23
+ lmms/backend/agents/base/agent.pyc,sha256=nCTVP-LJp86xpEasu3RcELkhWpx4TtOKEvSRMnWz7mo,2010
24
+ lmms/backend/agents/core_agents/__init__.pyc,sha256=3L3NXN6IlMpKc6HSTQEwzgap9R6zCmcY5M84eo6_8mA,150
25
+ lmms/backend/agents/core_agents/agents/__init__.pyc,sha256=5h3bKW82K-7-zUYCbRBkmJHwIGtqsIzJ4WV0P28Dgb4,157
26
+ lmms/backend/agents/core_agents/agents/base.pyc,sha256=N5NgNNlPL5QRRD4KmHi6TUvmYC69K4pE0ERMWBkGNxk,2260
27
+ lmms/backend/agents/core_agents/agents/context.pyc,sha256=Cch1lkifQpPV3stHkMaw74CU7JpPAwEpkx7yy2QaRDE,1590
28
+ lmms/backend/agents/core_agents/agents/history.pyc,sha256=CztYPAX_vY20G0Lslr5Mo52-iNVkY3yXcIdDcN8cNFA,5224
29
+ lmms/backend/agents/core_agents/agents/manager.pyc,sha256=2jtZ_NZDZoZ680pEkY6XxMC-4HfUr4-Qy0778e7IJbg,7501
30
+ lmms/backend/agents/core_agents/agents/specialized/__init__.pyc,sha256=WMajcdv7sgpfMyS1JqNSskPh6m-N7iqx5jufAW61k2Q,169
31
+ lmms/backend/agents/core_agents/agents/specialized/chat.pyc,sha256=rDDp-LmrwHcm04uBZ1Dcbu92d2LQPkRub0VXGLD_6MM,3495
32
+ lmms/backend/agents/core_agents/agents/specialized/coding.pyc,sha256=KPO7UU-P9H8YOn6QIP7e5xQmCoMX1XQA_IfIN60igmw,11299
33
+ lmms/backend/agents/core_agents/agents/specialized/git.pyc,sha256=4ts7C9HsjruiU5di3etkFrHEwKh07jaC84Ou_Hk4TyU,963
34
+ lmms/backend/agents/core_agents/agents/specialized/orchestrator.pyc,sha256=7GnDfGZ9UjotEcAmdSpoDz4bQpYWyGCo6DYA6iLhN0U,12964
35
+ lmms/backend/agents/core_agents/agents/specialized/reviewer.pyc,sha256=z5cUgW3WpQLUv9UZ9NqBG5Jc2PkrJuDaXuoLynhfN8g,5265
36
+ lmms/backend/agents/core_agents/agents/specialized/tasks.pyc,sha256=RAC6kdBoFl7eyGt--7tPTLonI0xo_vqi6VjCZA6RGlQ,1750
37
+ lmms/backend/agents/core_agents/agents/specialized/tester.pyc,sha256=FwwySWIdpmd64m03N07_AVW8KY3b_voHXWvEvdgEnEA,6415
38
+ lmms/backend/agents/core_agents/agents/specialized/universal.pyc,sha256=klfYA7Mxhl2K6eSHiCCjwXHEEkGqn8sNAtHeLVhiRM0,9873
39
+ lmms/backend/agents/core_agents/agents/specialized/vision.pyc,sha256=FrBmplD9_hYwuh6oyUQtFpRD92VMuKLUDbxAXc18ttM,3796
40
+ lmms/backend/agents/router_hooks/__init__.pyc,sha256=wNmqwB6B9rDJq6VliWedyOnmwCsDWHtoadPBNOejGBk,151
41
+ lmms/backend/agents/router_hooks/rule_based.pyc,sha256=WDfXyyMRgXxw4es48omYQfcMvqYD9wbVifbkJoGhhL4,1415
42
+ lmms/backend/cli/__init__.pyc,sha256=RPCQv5pG3LQAkNG1aMLJyKd5Mo8O2rE8Jy8xt4IS3J0,135
43
+ lmms/backend/cli/checkpoints.pyc,sha256=dAlGwJE1qm0Tizt2qFDoM8GrvZDz2HZnK6SeGNQ6epY,10672
44
+ lmms/backend/cli/cli.pyc,sha256=VftI36-N3oA_ZsyO6fV_ju22UVTAQKdWX4DblOPX-uY,31452
45
+ lmms/backend/cli/cli_commands.pyc,sha256=PLa6f-u-Mt8o5TVq0aiio9EbSSF3Yvvtla6pWqrc9cQ,3082
46
+ lmms/backend/cli/diagnostics.pyc,sha256=vWkUyjJxmkOFTB0BMUhCpiMqvfjwGTiC9Id_K0pP9ag,4203
47
+ lmms/backend/cli/review.pyc,sha256=-K1Elir-0mFjK4OXcNjYTsBSi2Kf_1QbGRl3Jxu4USg,3279
48
+ lmms/backend/cli/scope_cli.pyc,sha256=amhhH-_ewjjd8mO5CwzJvTZpQdtIu0-QYF-L3hXXIj0,8263
49
+ lmms/backend/cli/tools_cli.pyc,sha256=Xwlfe1WuoSHMnr0uVLfcmjhP8jcmkwNQV7FjKXKPbBo,1587
50
+ lmms/backend/context/__init__.pyc,sha256=XNkbX8L1BLrl6hwA7ktLu5J8FVh7m3SlI6heGAYMrhU,139
51
+ lmms/backend/context/assembler.pyc,sha256=Djq4k59_fY0ieGcZjwcwD72Wf8EZ7zbyIbsBcnn4330,2070
52
+ lmms/backend/context/budgeting.pyc,sha256=H9h6MWb76MwKzVMm_W8y6Y-2JLsmV4xy2bFK2DyHDRs,1763
53
+ lmms/backend/context/builder.pyc,sha256=WMjl3abDtbsJy5HY1yFPDjyEvmpSEQMrWLGvvKun7ec,3902
54
+ lmms/backend/context/capabilities.pyc,sha256=jet8p2EQ3pwtWWm3_7a8nvppYq5xRbqIUkMrIWqYLlU,2344
55
+ lmms/backend/context/intents.pyc,sha256=tMnjqWF386DRT1pB1PrIpMR5M_FgWW70JDJe1zSrzEA,1583
56
+ lmms/backend/context/ranking.pyc,sha256=-WGVX20VGF35rcM-pYDHRWLrIBnQJPk6Au0Hn09tj_s,1218
57
+ lmms/backend/context/retrieval.pyc,sha256=Ym2RW5mQEdpNhxCr8uFLgY5MWfwKVhFh1dY8oGGldfE,2627
58
+ lmms/backend/context/workspace_rules.pyc,sha256=UY7yPr5t6CR1FnHC18xR4_znJdtw_lrlw_Q5nJrzItw,1601
59
+ lmms/backend/contracts/__init__.pyc,sha256=GRCzFNVW-WiiwqBm2lznL0arlN8t_lm0Fx1NPrGhTfk,661
60
+ lmms/backend/contracts/cache.pyc,sha256=Bn00zLS4hTw1pwpzA9ApzIs3DWqj0hd2pB0xNV2E1fQ,1071
61
+ lmms/backend/contracts/generation.pyc,sha256=ihbq7J3260RkKnA9Kn56KA1S8aJYH3MCznXUriD7nmY,3043
62
+ lmms/backend/contracts/inference.pyc,sha256=RXzNr84QmPXHUPPj1mTLmGmrFMv_Ns3QywbqZL48X1Q,1031
63
+ lmms/backend/contracts/loader.pyc,sha256=4bwecVlz3bWbdu1TFkGY2RxnSY7Ja3Q7tYznjeW7qVU,904
64
+ lmms/backend/contracts/memory.pyc,sha256=Wfrw28VqFkGPbMMDq0YnBJhGzUAGRny7ysCnCt76muQ,1185
65
+ lmms/backend/contracts/profile.pyc,sha256=Mh4Ijki92XKn7FKCC0NrnPQOy2mmR3NLp-U4g7vy874,1065
66
+ lmms/backend/contracts/provider.pyc,sha256=3KTK6xsD49ESfMikG3RIlrBkGoEHQn1eCkQzUrXcvcM,1265
67
+ lmms/backend/contracts/runtime.pyc,sha256=TxW2oIskedCX1PvXY-Pop8n8fWz-JaqRimeeo1xa9MY,1533
68
+ lmms/backend/contracts/scheduler.pyc,sha256=nPDKaen49P7ytxXCePc8ItSM0ehOADCXnCIk1NfKFYs,1141
69
+ lmms/backend/contracts/workspace.pyc,sha256=xooH1pL9SvhutiX1qnnN33V4Fvb1YzOXnBmqOWvbwGU,1105
70
+ lmms/backend/core/__init__.pyc,sha256=XbHkTWONGDFL4syYh8EBL8KYyKVdf5ZjCFXu5DT0VHE,136
71
+ lmms/backend/core/agent.pyc,sha256=0-qi5mHkg4vkXnWX4xF_B7vlLyTtJi_wJuj6q2Ditb8,42975
72
+ lmms/backend/core/commands.pyc,sha256=t11I-VzTS_0vcKXfRrb4Ta2FaSODPGkUbzkw0i7ZYQM,25764
73
+ lmms/backend/core/context.pyc,sha256=Fn9fBwh8UWZEvPdP19US0dR05fonsZ2hAaDPTuM6bpk,1515
74
+ lmms/backend/core/migration.pyc,sha256=UD3itX1JkD8zQdEWpa_K8wrEgE23L82vO9c-3afAv8M,4346
75
+ lmms/backend/core/capabilities/__init__.pyc,sha256=4Co3SyH9-t6qA_cG56xnMjVmNPZ88HSlHnEHu6Fq6-k,263
76
+ lmms/backend/core/capabilities/registry.pyc,sha256=uscl4Oq4lZSV2ZKNKPBEiWGIGvk4vdsbagNAWxeo0GM,1905
77
+ lmms/backend/core/registry/__init__.pyc,sha256=_xndNq8iuoJGcC6clsPvQIdkY99jjdV-cFltygMW9U8,285
78
+ lmms/backend/core/registry/model_registry.pyc,sha256=tItmDVeSHOzuV9OdyFFnK5WRgXBr6YrcKSDUWTbReCo,10526
79
+ lmms/backend/core/registry/provider_registry.pyc,sha256=ndSuTjQ6BB7whsOea6G4TnBnLNf8R_xW8Ucl1m9EpZ8,6620
80
+ lmms/backend/core/registry/service.pyc,sha256=MwPFvCarw9fDKZq2LafMQW55P287hgS4Cm7mRR2M1i0,6136
81
+ lmms/backend/git/__init__.pyc,sha256=5GA7XZ5jwmeSRqQ-2SVlpe96leNVUv0DWZ14OQbM5aM,135
82
+ lmms/backend/git/branches.pyc,sha256=YUWp7egEiEvYm1BKZj_c0XJPelvlElJsiGwN0_pfz4o,447
83
+ lmms/backend/git/commits.pyc,sha256=-L7Ey2Qn_DzyQjyrCbBPSqUXAsfJgiztdVYp3hsIF-4,426
84
+ lmms/backend/git/diff.pyc,sha256=jtnV71jd9G4hcnQAM2Z3JL7O8Zo1qrpnZplf1n1nZ-k,792
85
+ lmms/backend/git/git_manager.pyc,sha256=IjfjhFcyD36s_XUHLcgiIDoa1UBSd0jiRGTPlwgs3PE,5141
86
+ lmms/backend/git/hooks.pyc,sha256=-iG_XzTGC2eJdBsTrsW9u_t80OCc0RQqI61CnUQmEic,1145
87
+ lmms/backend/git/manager.pyc,sha256=C1BSb_1SWeqb20hucM3yLkxCTjxuN71k1TWvD-dQ9PA,2935
88
+ lmms/backend/git/memory.pyc,sha256=SCtaVV5lVczDDcDK0-QYjxmMyNgmEKtLgrugg8dkcWo,615
89
+ lmms/backend/git/repository.pyc,sha256=yMEFkLEI2Qni019dLTlHsrzu5gNREmoko25_WsOjbK4,448
90
+ lmms/backend/git/timeline.pyc,sha256=C87O6pEjJV0uCPvhnHkn7Sc3OcbqcZv74BOA0mT5c6Q,832
91
+ lmms/backend/git/worktrees.pyc,sha256=jNsLqTkJRb_K4WXAMXgGc7MvcxXxKJFmNNkWwN2sIY8,431
92
+ lmms/backend/providers/__init__.pyc,sha256=WlbCEepneo21TpOl5aMPSoZHEvoTO5qOeSd2RMeuIVI,219
93
+ lmms/backend/providers/manager.pyc,sha256=taBdL7RNzYxY49GMZwk_o9c33-ONxlL1UzuoB5ZDsgA,3293
94
+ lmms/backend/providers/native/__init__.pyc,sha256=ApNB9QVM-ApQOeETS8RyRPoIWpusWr7lMokTuiZ46Y4,148
95
+ lmms/backend/providers/native/provider.pyc,sha256=gO03ZXW76G2Fsq6TNNsqc5iApx3CZi32UPecwZ89LDM,3321
96
+ lmms/backend/research/__init__.pyc,sha256=HjjL4InPnapfiqaVhJPzUHU5G529HhZBJnHDmzdDuK0,140
97
+ lmms/backend/research/engine.pyc,sha256=99m5eGWD_mS1z9tkWOxxbd6rIGoTfFx419hQ7Cd66MU,5877
98
+ lmms/backend/research/events.pyc,sha256=3CojJaHbif9KBLqjw3X3Y0e9KXzHzbda2BA4-AIrzV8,5641
99
+ lmms/backend/research/evidence.pyc,sha256=n-XpWxsXPvMO_TEABnsLKwIbOEe7R2vmGB3zyErIl_Y,4176
100
+ lmms/backend/research/fetcher.pyc,sha256=3Q_oSoNgH6Za3Q39wtGwyaWlo5w7nfntIPBfYlsbYQY,9004
101
+ lmms/backend/research/history.pyc,sha256=DYLq-_55g3mJMyQOuc9WyJYu8-FWiF4cH6wb2vFg47o,4362
102
+ lmms/backend/research/result.pyc,sha256=3nQ9RP_Y10L0GmSNSHVwmTkfxV7RnqK6uMajSqdmn0Y,1855
103
+ lmms/backend/research/search_manager.pyc,sha256=mtwG3JfD7RorIC2FSgmnRh167vBvpmoj7LHfbKjYvjI,7834
104
+ lmms/backend/router/__init__.pyc,sha256=8IGwP1zvEUKy5gZEIDuE8J1041c_6EtHn8bkBa2EuKg,138
105
+ lmms/backend/router/execution_graph.pyc,sha256=BCdPvQ7tn4D1P5uL-qez2Hom5lSPpmtCuWrLuhRis-w,1962
106
+ lmms/backend/router/fallback.pyc,sha256=ylshgtol8bENIyndzvlajNHl6FRuUDfvF76fkS0JXgE,2226
107
+ lmms/backend/router/llm_router.pyc,sha256=mtE1t-jI7cIcvQcvGP4iJo4Z2aIdONOBCDulK02s1No,1360
108
+ lmms/backend/router/manager.pyc,sha256=iROCdNPPrAQoL7dJyTPTUFqMz1VVuCJvpHVNc7LCFsQ,3570
109
+ lmms/backend/router/memory.pyc,sha256=HnX7_1eyeVv2k6GOhzz3BAlVVpDKvr7_L-XaBOcux2c,136
110
+ lmms/backend/router/pairs.pyc,sha256=AXkJ0Lydspvtc8BpaCdogso6lSgtl-YIMYM8663Oenw,3679
111
+ lmms/backend/router/planner.pyc,sha256=CtmR1ZlzgRQ1OVhE5kpHApAbtoSODaShtWf3_RSnkhA,6848
112
+ lmms/backend/router/rule_router.pyc,sha256=H5yDKTcvNsXO_Cb_PX1iROaoJmwz92wODElUUZQIurc,1204
113
+ lmms/backend/router/validator.pyc,sha256=Os4AIoi3feOgxVdOxA0ZHfZnEZxjbtGLWUw9PbIgpas,1229
114
+ lmms/backend/security/__init__.pyc,sha256=1Eelvd2BHvwv4dVwGzy-ilLBcZp4RBvd1EKjoxFpRA4,140
115
+ lmms/backend/security/command_parser.pyc,sha256=r-vp-h7xj1FSdo3ffoq_f1aURdh-wWKqsxWD74TMJnY,2803
116
+ lmms/backend/security/defensive.pyc,sha256=TBSfSmfaBXAIIBRmwmj0Z4ucEa9w0V-LaX8gOY5a_RM,5610
117
+ lmms/backend/security/evidence.pyc,sha256=XYtKc3X9XcVtyiO-An4HAenWaLluUxeRX9ZyUHywaDY,3001
118
+ lmms/backend/security/executor.pyc,sha256=8talthbFYgVakq6POVgSQ-qekGS7zdBZ3lVKYvItPVs,2759
119
+ lmms/backend/security/models.pyc,sha256=_mzqKqT9XTN1DCLphdyX-yDzd1_NTj6ZCRaAd0ecUG0,2248
120
+ lmms/backend/security/permission_manager.pyc,sha256=inWwdrjnSsL9ymyMCv178giOdysATxSrFRzb3_Hy3WQ,5403
121
+ lmms/backend/security/report.pyc,sha256=DP0irjSSYOsSZAA1Moh9OlITEh1QWiprzMoA2kpuZhw,6201
122
+ lmms/backend/security/scope.pyc,sha256=1DBudV-3LRJj0ltsC4jf4XsfPRLyd1Ok37AeblvTLFo,2630
123
+ lmms/backend/security/target_validator.pyc,sha256=6GbN-FepdwWC2Z_dZ7Mnkwu2ObQ07vJSg3cgHsIIRsE,1931
124
+ lmms/backend/security/tool_registry.pyc,sha256=kXyCnVWr1eQzJTFnI7mzAVOE2F2YnIzBtKiW3T_8RgI,5139
125
+ lmms/backend/services/__init__.pyc,sha256=urQkgs6XKeNypNCWlMRkGL3JzxhB46aaGVIZCXLH7r4,140
126
+ lmms/backend/services/chat_event.pyc,sha256=7bJmI0HoAtpF8ahNSOA0bYbqFYM0BTFXSeXeeYkW8qM,1999
127
+ lmms/backend/services/chat_service.pyc,sha256=Bv5k0-Z3BG4tJB-aaafaT31PetPA0tKv6A7mvY6zqTY,13705
128
+ lmms/backend/services/model_cache.pyc,sha256=lLsjWkB7fX1l9fX4apJ7Ljhig5Kmg1dMesHIGn1ohRk,7364
129
+ lmms/backend/services/model_registry.pyc,sha256=KquCm9s3YC1Ixav6qEZteEQJwvOejwnzt_M1Yw7tdHk,256
130
+ lmms/backend/services/workspace_service.pyc,sha256=Yby-MfUY5MerGDkBdkninM_1RdHVTPPlDclsMvR5nOg,5300
131
+ lmms/backend/tasks/__init__.pyc,sha256=CPESO99GCUdw6dzbAECgWo7KKALCwJy89Gq9eCUovQI,137
132
+ lmms/backend/tasks/graph.pyc,sha256=zKQ9DxP-NfPO5h7GHKem6MlAZtyXJfnI0do31mxl-nI,1840
133
+ lmms/backend/tasks/hooks.pyc,sha256=L0mHyVKZOG9AG3wKiPZIGHDQtbVqzdkf4ZzVVuJEoGc,1401
134
+ lmms/backend/tasks/manager.pyc,sha256=UDZBbkQrAT4xf2RIUkIe_L6AxhNxoOvCL-jMAsiV0yU,4974
135
+ lmms/backend/tasks/memory.pyc,sha256=XMFDbX335XFI_1PF_pvlwmMjt8GVUoq-XW4d0MqZJHY,1512
136
+ lmms/backend/tasks/timeline.pyc,sha256=TNkxCNHHXbzN-Di7K5Q_oGJ7Z9Tb16pPi0aKGM2zEE8,2057
137
+ lmms/backend/telemetry/__init__.pyc,sha256=IKDZ2Rh_ozmTaj62yOPIUNnI_kw8ok3EbYizbnEG76M,141
138
+ lmms/backend/telemetry/metrics.pyc,sha256=k8Hn4NjS676ZZh4uNDkKRv8K0ATv2Ngbe4Xv4xif9P8,140
139
+ lmms/backend/tools/__init__.pyc,sha256=SEINixk941yDkECyR0jqsKniAkQ9BK0RgGJmQlb1l44,499
140
+ lmms/backend/tools/boundaries.pyc,sha256=LeZiiQH0lNgip9U2SvT84fdqUo4XEFbuvpcQfSoBN0g,1619
141
+ lmms/backend/tools/browser.pyc,sha256=WPG9bMbFCXM1T9hfTC77u5hZNEKSQPqR-Qp-iVACIEA,31331
142
+ lmms/backend/tools/files.pyc,sha256=SnDjBn6oFGIuc_Zg5-Bom-o86kuQLa9b0Z2d-ho1530,10025
143
+ lmms/backend/tools/kali_knowledge.pyc,sha256=wgD0k78Bs0mdc_znC3YxnWMkDls5Zh5enW06SwiioRc,3994
144
+ lmms/backend/tools/rag.pyc,sha256=KtL_dA3CTi1ncZKhrpBZf4FD6H0hI2pK54rPZ0mbwwk,9900
145
+ lmms/backend/tools/search.pyc,sha256=UlisdinU9A7psIiFMwkDe4gkPjFvXELTnI2FsbwWwA8,2141
146
+ lmms/backend/tools/search_provider.pyc,sha256=sXAX3MdAnxmBvY8NtRN6S3HsYgfp8WjTrF1C-f9db3I,2299
147
+ lmms/backend/tools/terminal.pyc,sha256=WrgI-5rcEnHYsdsnRB-_Qp_nQIY43rsj7B7KJBiVFn0,5159
148
+ lmms/backend/tools/vision.pyc,sha256=i65MGiIsWUdlEu_ukUAFVAri22DiJ0F36ZjhBElYfT4,1619
149
+ lmms/backend/tools/core/__init__.pyc,sha256=rjvdHWz6WgvCpr0wt2Y45-mTUB5NBWsaJSaQ27itaSU,719
150
+ lmms/backend/tools/core/definitions.pyc,sha256=UxTeOMiSmdYFLdQMtr883Ry18Y1nY9iG4804xHuKRQU,1220
151
+ lmms/backend/tools/core/executor.pyc,sha256=_KH1fm90wgHzdyA63vhaRaWpQd0XE5JljiGAD_KtnRc,3633
152
+ lmms/backend/tools/core/registry.pyc,sha256=h_vbvwZ3mjmH1lUWo6Pj_QrlQbPUaMMAeqEW3o20xOo,1721
153
+ lmms/backend/tools/core/result.pyc,sha256=XCIKIvVgMHJP6lwoS7kqRpQaa17Rqiks7zBjcdMJDVI,1497
154
+ lmms/contracts/__init__.pyc,sha256=hHuLSUzsOW2kMAl_RipAs_j7IO2tJpV9asybwtWFaJ4,644
155
+ lmms/contracts/cache.pyc,sha256=55JqjMpfGL7dViMshBgCCSvxJNuKiJrpyQM1kk3XOVU,1063
156
+ lmms/contracts/inference.pyc,sha256=bHPHFFb0e2dvo58WccERmmdWE_6vtPMcj5schTG9_Ic,1023
157
+ lmms/contracts/loader.pyc,sha256=cE19yY8sThE3bBC6-VUBb2GEmvsbQgB8IsbvZvK09iM,896
158
+ lmms/contracts/memory.pyc,sha256=cjapw7U-s-x_bkE4KT1T0OSYrx-9z9gr3yuYwG_S-AI,1177
159
+ lmms/contracts/profile.pyc,sha256=0cxXJKudR0rw1_oMoGqw_HCzSwFVnXM5hBGmdV-F01Q,1057
160
+ lmms/contracts/provider.pyc,sha256=ICoDULfJCArMMoIBAMe4BhCOlt6GsbDsfd0MCNcvrr4,982
161
+ lmms/contracts/runtime.pyc,sha256=ja3x0b_gfJ1d8-9W_Q9BDM7k8CR-XdwpS-f4UZcPUqQ,1641
162
+ lmms/contracts/scheduler.pyc,sha256=LnChapRq9UCflMIaVMq3-O8D5NJblrHawL8fNOSWZMM,1133
163
+ lmms/contracts/workspace.pyc,sha256=eaAz93NEa5uy3RwKou7DrtmuF_eajVbgpje4GgAy1qk,1097
164
+ lmms/engine/__init__.pyc,sha256=SNmmelyMEYTV1NAD-NHyGSj173w3xByo6HYDWwudwZU,130
165
+ lmms/engine/benchmark.pyc,sha256=B0MrJp0fh0Z5QInnD9757U6K57IYoBtNiHUSwSX0BK8,2969
166
+ lmms/engine/cache_manager.pyc,sha256=7GGONJ3cppwsWmyrFJWI53P6-7iAZ9OF87x5bZ0AKJ8,5159
167
+ lmms/engine/connection.pyc,sha256=gI_iFVtlgcOwKZ-AfTrKiZr2_O7aHKRlwhuRi1xBPiw,2887
168
+ lmms/engine/downloads_manager.pyc,sha256=2pypmFqHSXfcfM_8gn_DRi15FD8p7f3s0_EUfiji0Jk,2697
169
+ lmms/engine/hardware.pyc,sha256=mOns_zjh7VCSyv9mkE0LP5WA0G2jPXf4mP5T0tgxw_A,915
170
+ lmms/engine/manager.pyc,sha256=rVLkhdA8p7_OcLUz_-6t2c5LP0AFg28AWJXytiCfCws,2757
171
+ lmms/engine/modelfile.pyc,sha256=5H4OXYGA7_f9WzXTt7ojDrp1Q_NVWvFs3ieyFG5JF0Q,5932
172
+ lmms/engine/profiles.pyc,sha256=VugGJ0XlLDYsoZ9VHo_AF4f-QPWpFSj0Pvb8PmZBjWw,5095
173
+ lmms/engine/registry.pyc,sha256=MIYeK3YDelx-cLVDdSll0o1IiacWqDBZA7HUbdDqU_k,7572
174
+ lmms/engine/response_cleaner.pyc,sha256=j-QHPx4YhVowTx7b1XcSi-ZCftxFlfhpCZ7VL3G4oj0,2950
175
+ lmms/engine/runtime_matrix.pyc,sha256=x07X_38HyS3Grf5M8zeuVKGtOmAJvm8BDhGYlhcJL7A,337
176
+ lmms/engine/scheduler.pyc,sha256=ZCfSC_i4u6SuhEr6zNTEl08FIpANB-eCQ422h9nYuFI,8203
177
+ lmms/engine/smart_scheduler.pyc,sha256=LadgdDkBKPJ2vDaxWLjlxwUWr0oAZnxZyBeqU2Kpr2k,1716
178
+ lmms/engine/air/__init__.pyc,sha256=E8hsFy6sfANnv_bjTEMTlMP-tscryncS3Y62UQUbZYs,352
179
+ lmms/engine/air/cache.pyc,sha256=NrGm28iH0tK_iUiydYtsO3yBUqpVFc7KRWFz8Y5a0Eo,131
180
+ lmms/engine/air/guardrails.pyc,sha256=zfRH3mPevLJglX8GVqrAO6UFWezgIXckHAJcnGq_G1o,1004
181
+ lmms/engine/air/loader.pyc,sha256=-xCh68Qh5iQ_cSW5O4w0PfdB6T-2saGMNWZFRmybzcw,3021
182
+ lmms/engine/air/memory_map.pyc,sha256=MrdWk4ACkYzS5hh63HbSgePauL94DJUSyHtaiaqSFJE,136
183
+ lmms/engine/air/monitor.pyc,sha256=T4tqs0jKLslsttaESBB9zUwzXWs8vkEqJK-exJd1tRc,1196
184
+ lmms/engine/air/pager.pyc,sha256=yKLvG4B9gq_CfoPN5YBmBgJTu79IOYLh3jfdrntxhQk,5056
185
+ lmms/engine/air/prefetch.pyc,sha256=rcNMyVJdJ9D4Wf1bxHGwB0pAFcsjRTIsiQHCUCX5kMI,134
186
+ lmms/engine/air/quantization.pyc,sha256=AtejfrPaPUiUCdODRCxmaO_FSgmhNXpxb0pw5tJNnzY,138
187
+ lmms/engine/air/ram_cache.pyc,sha256=j1-f461EMPkswjj3vmCxRcM-ZFvSCBGv4XFfItMFJpI,1481
188
+ lmms/engine/air/runtime.pyc,sha256=OC-_v3RdFa7kUlai7ULG-1K56CQZFfOuavPc9JCAS9k,4795
189
+ lmms/engine/air/scheduler.pyc,sha256=zeVglCAamHrXbGB7pCzxCEplNTJwZYVQHlLM-igKppk,2120
190
+ lmms/engine/air/stats.pyc,sha256=xEjhymmznADbBkF8_JS0Kwu8o6WY_XAQQN5HsXvnCyg,2025
191
+ lmms/engine/air/swapper.pyc,sha256=WBe2giYtdnLqid9W-RhMRVdcbjoS8cWj5oIbf004XJc,4017
192
+ lmms/engine/runtimes/__init__.pyc,sha256=oGOpBs5f7cjdgEDV56oekfRGTohmL3Ham6bf3Gp5Hc0,139
193
+ lmms/engine/runtimes/air.pyc,sha256=VrMGlIeg1WjWecKiUem2XT2l8-Jxe93AFsifCogOTII,1650
194
+ lmms/engine/runtimes/base.pyc,sha256=Mgv7PAS3HxmXG9XdZpZSNuz3ejk2av0y0kFQUvW_FCI,2075
195
+ lmms/engine/runtimes/hf_vision.pyc,sha256=v2CR1O2vvOcFishr39Rbvipsth2bhbiEKvonwO4P-po,9081
196
+ lmms/engine/runtimes/llama_cpp.pyc,sha256=KCTwzHrJIrXdRbVA_F0LJxiRL1oWuzffcgM06uEaftE,19099
197
+ lmms/engine/runtimes/universal_pytorch.pyc,sha256=0lOJdXM5MBryKwbW-HYIGSt1WE7NDrSpwEP-qpxTXb8,12691
198
+ lmms/engine/runtimes/vllm.pyc,sha256=Z60KmyukYGP8BaOnKBysuf17Hx-bhzjXyC4jPFSSTOk,135
199
+ lmms/extensions/__init__.pyc,sha256=bJFU7x7z5zB0GtOrkZVCaMJZcgrOz3Lz-8cKP0liZTI,414
200
+ lmms/extensions/commands.pyc,sha256=1zQggF_pHErDYTMm367hF8S1-toocWZ-wxRnuQeyEjI,4503
201
+ lmms/extensions/host.pyc,sha256=Li4jb0Js_5D-GJAwIMvlrMuIfhtjaolpiZVQUIvIru4,11546
202
+ lmms/extensions/installer.pyc,sha256=oiz-fbd9RjujwPcYrinzSIj6WRj18lxLsW58PDXxCXo,11821
203
+ lmms/extensions/manager.pyc,sha256=jDcnFWK1TTAtMB4qXY49I7XkRHjr5EYzEjsW36V_NQ8,19676
204
+ lmms/extensions/models.pyc,sha256=QZuXfTgPxVKANo1AgkrX6L2o85donmvGAMRzxTZhH60,7100
205
+ lmms/extensions/vscode_api.pyc,sha256=WGU3uc5LkYdupX0tOQtzSTGnaD6pzSKNTuG_zP6HoLc,13240
206
+ lmms/gui/__init__.pyc,sha256=IeVZMNoTNbfPKIB-LgnORRIhYHM1Ie2yQnIIJNm1whc,127
207
+ lmms/gui/dialogs/__init__.pyc,sha256=BEolc3-uiUz3ecpdh1KZaDu6SWNFtO9ar_Ib0IupPtI,135
208
+ lmms/gui/dialogs/extension_permissions_dialog.pyc,sha256=88yJBEAJ7VdQJX4mVqytOQuB0CPm51qZ-sg0yv9b4aI,5873
209
+ lmms/gui/dialogs/github_auth_dialog.pyc,sha256=ytO3tM3jVCvdCrWt4NzbXKJ1SuSEFOaT5VKgn_GJ6P4,4024
210
+ lmms/gui/dialogs/settings_dialog.pyc,sha256=UCbWAvS6aUh_qTF6Jd9Ysk9WNprTOQcj0WquQbe4jEE,6015
211
+ lmms/providers/__init__.pyc,sha256=9FyPeQX10eK8-xtb3IljVeX7b4EgB-akS3cFWrsuNOY,211
212
+ lmms/providers/manager.pyc,sha256=7-5Od4bKtlmpQ6vQ00jCIh9gUn2qDC-HeIIqIWjzegQ,395
213
+ lmms-2.0.0.dist-info/licenses/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
214
+ tests/__init__.pyc,sha256=qil9N7rXS5qz2yIuRG5oISGUYB5QYL4SQvPUOguuZEw,124
215
+ tests/test_checkpoints.pyc,sha256=MMpEvduxDwNp82cX09wuSU9eEMmqM2PvEtkr-ZGZuoI,7260
216
+ tests/test_cli_response_contract.pyc,sha256=tJ12defG9cwJq9DEvMmR6vGni_TRQVhOBe7vW1oke50,3670
217
+ tests/test_command_parser.pyc,sha256=MyI4IzP4ei0VXyKqgsm5fqyZWBvnErRN5aBXlrvqHrY,1588
218
+ tests/test_diagnostics.pyc,sha256=_Cq8ucxFj7wJAq5BiZYmFcdMh-EKbzMt4tfQtQS4brQ,1543
219
+ tests/test_executor.pyc,sha256=pPYTS2w8XJKMVHAIBJwz39GBvK5W6JWrYkU6niB51bA,2446
220
+ tests/test_gui_chat.pyc,sha256=sjz_zExhrpTxof9LmlemsC7o2kUv4vVdB8g0PCwxnjw,7523
221
+ tests/test_launcher.pyc,sha256=z0AgRY6jHYxp2TSbI_qJ47TyR7VKarN-ZtrjPx1Crw8,1388
222
+ tests/test_parser_edge_cases.pyc,sha256=ooWHN_nv8ij4YpxYe8hhd6mKleA9p5LxVFUbIVGIgC8,2669
223
+ tests/test_permission_manager.pyc,sha256=UstIgTBUgSbWV0ykl1XgtMhZRGyn4kWUpceUWHMAdvQ,2797
224
+ tests/test_planner.pyc,sha256=Z4p6QWZH3wwHVP7i2-3iy4fDFXn7vt2GG5riOoRNc18,5689
225
+ tests/test_pty.pyc,sha256=6dd5Ycr9jQvt_QfiD7cEyBnhYbeZZo6Rctks5zkXDFU,1258
226
+ tests/test_report.pyc,sha256=fFB-IVdfB08REZtoH4w1spGvd_EjvT_9CowLAt4Q_-I,2057
227
+ tests/test_research.pyc,sha256=jTC5H8pjpi_UQn7qOvHfQJkgHEST1eBqpDq2dUb5NRw,14176
228
+ tests/test_review.pyc,sha256=DsFQUzzw9hv7cNzViL3KUVN1MpXg_mpCTzpy4Hst5E0,2249
229
+ tests/test_scope.pyc,sha256=FLdorARKP4L5NXOn8mdcD1TmRszHLn98BSXwQ8Hxpyc,4148
230
+ tests/test_streaming_leak.pyc,sha256=ToeAYgDZ9w-LpqsBEyevCJuh2A2HXzS6MolKblOdem8,4036
231
+ tests/test_target_validator.pyc,sha256=S0njYppN4ZuN035Jz4c-rOu_HZRdyUDyciLknJ4-VkU,1824
232
+ tests/test_tools.pyc,sha256=xXVw0E2uil_uMKXZZzLcqzPkNVykTjEBqwS9fFNAmII,7617
233
+ tests/test_workspace_boundaries.pyc,sha256=qZnZfOlqtMazcpO1EyFYcD5Ywc4ZLSVnEmSYvEuDj3Y,1624
234
+ tests/test_workspace_rules.pyc,sha256=-s6DBycXn15ReDHfiTNdC3ivWaXScdY2ppwrlELfXP8,1281
235
+ lmms-2.0.0.dist-info/METADATA,sha256=MLmhSQ3v30iolZxcYP0WJ3UjdcrMo5B9gWF6pPiT_Mc,21042
236
+ lmms-2.0.0.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
237
+ lmms-2.0.0.dist-info/entry_points.txt,sha256=WXO81IrIEpoVvmFbTRys3WhA1DQdFmUgw4ywoLpv3RI,100
238
+ lmms-2.0.0.dist-info/top_level.txt,sha256=velY_s-JlpvsiRavSwr4xyRS5s1H0-bkW8c82vfqlyc,24
239
+ lmms-2.0.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (84.0.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,4 @@
1
+ [console_scripts]
2
+ LMMs = launcher:main
3
+ LMMs-uninstall = launcher:uninstall_main
4
+ lmms-gui = gui:main