ios: initial commit
This commit is contained in:
41
ios/AGENTS.md
Normal file
41
ios/AGENTS.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# AGENTS.md (iOS)
|
||||
|
||||
## Scope
|
||||
Instructions for work under `/Users/buzzert/src/sybil-2/ios`.
|
||||
|
||||
## Build + Run
|
||||
- Preferred build command: `just build`
|
||||
- `just build` will:
|
||||
1. generate `Sybil.xcodeproj` with `xcodegen` if missing,
|
||||
2. build scheme `Sybil` for `iPhone 16e` simulator.
|
||||
- If `xcbeautify` is installed it is used automatically; otherwise raw `xcodebuild` output is used.
|
||||
|
||||
## App Structure
|
||||
- App target entry: `/Users/buzzert/src/sybil-2/ios/Apps/Sybil/Sources/SybilApp.swift`
|
||||
- Shared iOS app code lives in Swift package:
|
||||
- `/Users/buzzert/src/sybil-2/ios/Packages/Sybil/Sources/Sybil`
|
||||
- Main UI root: `SplitView.swift`
|
||||
- Networking + SSE client: `SybilAPIClient.swift`
|
||||
- State coordinator: `SybilViewModel.swift`
|
||||
|
||||
## Product Expectations
|
||||
- Keep the iOS design aligned to the web app dark aesthetic (no light mode support required).
|
||||
- Preserve these core features:
|
||||
- conversation/search list,
|
||||
- streaming chat transcript,
|
||||
- streaming search results + answer,
|
||||
- settings screen for API URL and token.
|
||||
- Markdown rendering currently uses `MarkdownUI` via SwiftPM.
|
||||
|
||||
## API Contract
|
||||
- iOS client must follow docs in:
|
||||
- `/Users/buzzert/src/sybil-2/docs/api/rest.md`
|
||||
- `/Users/buzzert/src/sybil-2/docs/api/streaming-chat.md`
|
||||
- If backend contract changes (request/response shapes, SSE events, auth semantics), update docs in the same change.
|
||||
|
||||
## Practical Notes
|
||||
- Default API URL is `http://127.0.0.1:8787/api` (configurable in-app).
|
||||
- Provider fallback models:
|
||||
- OpenAI: `gpt-4.1-mini`
|
||||
- Anthropic: `claude-3-5-sonnet-latest`
|
||||
- xAI: `grok-3-mini`
|
||||
Reference in New Issue
Block a user