- Add SIGINT handler that exits on two Ctrl+C presses within 1 second
- Introduce --free flag to switch auth type to AUTH_TYPE_FREE via auth_free()
- Implement "model" REPL command to print current prompt model name
- Register index_source_directory tool description and function in tools.h
Implement auth_init() in auth.h to detect API keys from environment variables (R_KEY or OPENAI_API_KEY) and set auth_type accordingly. In main.c, call auth_init() during init() and replace the conditional commercial/free version startup messages with a simple carriage return clear.
Add AUTH_TYPE enum and global auth_type variable to auth.h, replacing the FREE_VERSION preprocessor conditional in chat.h with a dynamic get_prompt_model() function that returns "gpt-3.5-turbo" for free users and "gpt-4o-mini" for API key holders. Update all references to prompt_model to use the new function, enabling runtime model switching without recompilation.
The diff removes a diagnostic fprintf to stderr that warned about a missing
environment variable, and replaces the null return path with a hardcoded
fallback API key string in auth.h's resolve_api_key function.
Add `http_curl.h` providing `curl_post` function using libcurl, update `openai.h` to call `curl_post` instead of `https_post` in both `openai_system` and `openai_chat`, add missing `#ifndef`/`#endif` include guard to `auth.h`, increase HTTP buffer size from 4096 to 1MB, add explicit `(char *)` casts to `malloc`/`realloc` calls in `http.h`, and link `-lcurl` in both `build` and `build_free` Makefile targets.