This commit addresses issue #4005 where the one-line installer was
failing on macOS with a PermissionError when attempting to create
a directory named "None".
Changes:
1. Fix external_providers_dir None handling (src/llama_stack/cli/stack/run.py)
- Changed from truthy check to explicit 'is not None' check
- Use Path objects directly instead of str() conversion to avoid
converting None to the string "None"
- Added proper error handling with descriptive messages for
permission errors
- Added logging when creating external providers directory
2. Improve type conversion documentation (src/llama_stack/core/stack.py)
- Added comments explaining that empty strings from env var defaults
are converted to None
- Documented that code must check for None explicitly to avoid
str(None) creating the literal string "None"
Testing performed:
- All unit tests pass (8/8 in test_stack_config.py)
- All pre-commit hooks pass
- Manual testing on Apple M4 (ARM64) with Podman
- Validated that None values are handled properly without string conversion
Fixes#4005
RAG aka file search is implemented via the Responses API by specifying
the file-search tool. The backend implementation remains unchanged. This
PR merely removes the directly exposed API surface which allowed users
to directly perform searches from the client.
This facility is now available via the `client.vector_store.search()`
OpenAI compatible API.
# What does this PR do?
This API hasn't received any traction and close to zero interest from
the community. Let's revisit in the future if things change.
Signed-off-by: Sébastien Han <seb@redhat.com>
Co-authored-by: Ashwin Bharambe <ashwin.bharambe@gmail.com>
Migrates package structure to src/ layout following Python packaging
best practices.
All code moved from `llama_stack/` to `src/llama_stack/`. Public API
unchanged - imports remain `import llama_stack.*`.
Updated build configs, pre-commit hooks, scripts, and GitHub workflows
accordingly. All hooks pass, package builds cleanly.
**Developer note**: Reinstall after pulling: `pip install -e .`