Update docs/ARCHITECTURE.md
Browse files- docs/ARCHITECTURE.md +0 -97
 
    	
        docs/ARCHITECTURE.md
    CHANGED
    
    | 
         @@ -95,100 +95,3 @@ Edit 
     | 
|
| 95 | 
         
             
               - Chat history pane
         
     | 
| 96 | 
         | 
| 97 | 
         
             
            ---
         
     | 
| 98 | 
         
            -
             
     | 
| 99 | 
         
            -
            ```markdown
         
     | 
| 100 | 
         
            -
            <!-- API_REFERENCE.md -->
         
     | 
| 101 | 
         
            -
             
     | 
| 102 | 
         
            -
            # Shasha AI — API Reference
         
     | 
| 103 | 
         
            -
             
     | 
| 104 | 
         
            -
            This document describes the public interfaces provided by each module.
         
     | 
| 105 | 
         
            -
             
     | 
| 106 | 
         
            -
            ---
         
     | 
| 107 | 
         
            -
             
     | 
| 108 | 
         
            -
            ## `hf_client.py`
         
     | 
| 109 | 
         
            -
             
     | 
| 110 | 
         
            -
            ### `get_inference_client(model_id: str, provider: str = "auto") → InferenceClient`
         
     | 
| 111 | 
         
            -
            Creates and configures a Hugging Face Hub client for chat completions.
         
     | 
| 112 | 
         
            -
             
     | 
| 113 | 
         
            -
            - **model_id**: HF model ID or external provider prefix (e.g. `"openai/gpt-4"`, `"gemini/pro"`, `"moonshotai/Kimi-K2-Instruct"`).
         
     | 
| 114 | 
         
            -
            - **provider**: Override provider; one of `auto`, `groq`, `openai`, `gemini`, `fireworks`.
         
     | 
| 115 | 
         
            -
            - **Returns**: `InferenceClient` instance with proper API key & billing target.
         
     | 
| 116 | 
         
            -
             
     | 
| 117 | 
         
            -
            ---
         
     | 
| 118 | 
         
            -
             
     | 
| 119 | 
         
            -
            ## `models.py`
         
     | 
| 120 | 
         
            -
             
     | 
| 121 | 
         
            -
            ### `ModelInfo`
         
     | 
| 122 | 
         
            -
            Dataclass representing model metadata.
         
     | 
| 123 | 
         
            -
             
     | 
| 124 | 
         
            -
            - **name**: Human‑readable model name.
         
     | 
| 125 | 
         
            -
            - **id**: Model identifier for API calls.
         
     | 
| 126 | 
         
            -
            - **description**: Short description.
         
     | 
| 127 | 
         
            -
            - **default_provider**: Preferred inference provider.
         
     | 
| 128 | 
         
            -
             
     | 
| 129 | 
         
            -
            ### `AVAILABLE_MODELS: List[ModelInfo]`
         
     | 
| 130 | 
         
            -
            Registry of all supported models.
         
     | 
| 131 | 
         
            -
             
     | 
| 132 | 
         
            -
            ### `find_model(identifier: str) → Optional[ModelInfo]`
         
     | 
| 133 | 
         
            -
            Lookup model by name (case‑insensitive) or ID.
         
     | 
| 134 | 
         
            -
             
     | 
| 135 | 
         
            -
            ---
         
     | 
| 136 | 
         
            -
             
     | 
| 137 | 
         
            -
            ## `inference.py`
         
     | 
| 138 | 
         
            -
             
     | 
| 139 | 
         
            -
            ### `chat_completion(model_id: str, messages: List[Dict[str, str]], provider: str = None, max_tokens: int = 4096) → str`
         
     | 
| 140 | 
         
            -
            Synchronously sends a chat completion request.
         
     | 
| 141 | 
         
            -
             
     | 
| 142 | 
         
            -
            - **messages**: List of `{"role": "...", "content": "..."}`  
         
     | 
| 143 | 
         
            -
            - **provider**: Optional override; defaults to model’s `default_provider`.
         
     | 
| 144 | 
         
            -
            - **Returns**: Response content string.
         
     | 
| 145 | 
         
            -
             
     | 
| 146 | 
         
            -
            ### `stream_chat_completion(model_id: str, messages: List[Dict[str, str]], provider: str = None, max_tokens: int = 4096) → Generator[str]`
         
     | 
| 147 | 
         
            -
            Streams a chat completion, yielding incremental content chunks.
         
     | 
| 148 | 
         
            -
             
     | 
| 149 | 
         
            -
            ---
         
     | 
| 150 | 
         
            -
             
     | 
| 151 | 
         
            -
            ## `utils.py`
         
     | 
| 152 | 
         
            -
             
     | 
| 153 | 
         
            -
            ### `history_to_messages(history: History, system: str) → List[Dict]`
         
     | 
| 154 | 
         
            -
            Converts internal history list to OpenAI‑style messages.
         
     | 
| 155 | 
         
            -
             
     | 
| 156 | 
         
            -
            ### `remove_code_block(text: str) → str`
         
     | 
| 157 | 
         
            -
            Strips markdown code fences from AI output and returns raw code.
         
     | 
| 158 | 
         
            -
             
     | 
| 159 | 
         
            -
            ### `parse_transformers_js_output(text: str) → Dict[str, str]`
         
     | 
| 160 | 
         
            -
            Extracts `index.html`, `index.js`, `style.css` from a multi‑file markdown output.
         
     | 
| 161 | 
         
            -
             
     | 
| 162 | 
         
            -
            ### `format_transformers_js_output(files: Dict[str, str]) → str`
         
     | 
| 163 | 
         
            -
            Formats a dict of file contents into a single combined string with section headers.
         
     | 
| 164 | 
         
            -
             
     | 
| 165 | 
         
            -
            *(Other utilities: multimodal image processing, search/replace, history rendering)*
         
     | 
| 166 | 
         
            -
             
     | 
| 167 | 
         
            -
            ---
         
     | 
| 168 | 
         
            -
             
     | 
| 169 | 
         
            -
            ## `deploy.py`
         
     | 
| 170 | 
         
            -
             
     | 
| 171 | 
         
            -
            ### `send_to_sandbox(code: str) → str`
         
     | 
| 172 | 
         
            -
            Wraps HTML code in a base64 data‑URI iframe for live preview.
         
     | 
| 173 | 
         
            -
             
     | 
| 174 | 
         
            -
            ### `load_project_from_url(url: str) → Tuple[str, str]`
         
     | 
| 175 | 
         
            -
            Fetches `app.py` or `index.html` from a public HF Space URL.
         
     | 
| 176 | 
         
            -
             
     | 
| 177 | 
         
            -
            *(Also: HF Spaces deploy helpers: `deploy_to_spaces()`, `deploy_to_spaces_static()`, `deploy_to_user_space()`)*
         
     | 
| 178 | 
         
            -
             
     | 
| 179 | 
         
            -
            ---
         
     | 
| 180 | 
         
            -
             
     | 
| 181 | 
         
            -
            ## `app.py`
         
     | 
| 182 | 
         
            -
             
     | 
| 183 | 
         
            -
            ### `generation_code(query, image, file, website_url, _setting, _history, _current_model, enable_search, language, provider) → Tuple[str, History, str, List[Dict]]`
         
     | 
| 184 | 
         
            -
            Main generation handler bound to the “Generate” button.
         
     | 
| 185 | 
         
            -
             
     | 
| 186 | 
         
            -
            - **Returns**:  
         
     | 
| 187 | 
         
            -
              1. `code_str`: Generated (or edited) source code  
         
     | 
| 188 | 
         
            -
              2. `new_history`: Updated prompt/response history  
         
     | 
| 189 | 
         
            -
              3. `sandbox_html`: Live preview HTML iframe string  
         
     | 
| 190 | 
         
            -
              4. `chat_msgs`: Chatbot‑style history for the UI  
         
     | 
| 191 | 
         
            -
             
     | 
| 192 | 
         
            -
            ---
         
     | 
| 193 | 
         
            -
             
     | 
| 194 | 
         
            -
            _For more examples, see the Jupyter notebooks in_ `notebooks/` and the quick‑start guide in `QUICKSTA
         
     | 
| 
         | 
|
| 95 | 
         
             
               - Chat history pane
         
     | 
| 96 | 
         | 
| 97 | 
         
             
            ---
         
     | 
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         |