{"owner":"nguyenphutrong","repo":"quotio","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["AGENTS.md"],"skills":{"AGENTS.md":"# AGENTS.md\n\nQuotio is a native macOS menu bar app for managing CLIProxyAPI: OAuth for multiple AI providers, quota visibility, proxy lifecycle, and CLI agent configuration.\n\n## Stack\n\n- Swift 6, SwiftUI, macOS 15+, Xcode 16+\n- Sparkle via Swift Package Manager\n- No dedicated automated test suite currently exists\n\n## Where to look\n\n- App entry: `Quotio/QuotioApp.swift`\n- Models and enums: `Quotio/Models/`\n- App state: `Quotio/ViewModels/`\n- Business logic, proxy, API, OAuth, menu bar: `Quotio/Services/`\n- SwiftUI screens and components: `Quotio/Views/`\n- Build/release scripts: `scripts/`\n- Build configuration: `Config/`\n\n## Validate changes\n\nUse this for normal code validation:\n\n```bash\nxcodebuild -project Quotio.xcodeproj -scheme Quotio -configuration Debug build\n```\n\nOnly run release scripts when changing packaging, notarization, appcast, or release behavior:\n\n```bash\n./scripts/build.sh\n./scripts/release.sh\n```\n\nFor UI changes, also run the app manually and check light/dark mode. For provider, OAuth, proxy, or menu bar changes, manually verify the affected flow.\n\n## Project rules\n\n- Keep UI-facing mutable state on `@MainActor`; use `actor` for async services with mutable state.\n- DTOs crossing concurrency boundaries should be `Sendable`.\n- Use SwiftUI Observation patterns already present in the repo (`@Observable`, `@Environment`, `@Bindable`).\n- Do not put networking, persistence, process management, or OAuth logic directly in SwiftUI views.\n- User-facing strings should use the existing localization approach, not hardcoded view text.\n- Do not log or commit tokens, authorization headers, OAuth codes, cookies, secrets, or local config.\n- Treat user changes and untracked files as user-owned; never delete, clean, or overwrite them without explicit permission.\n\n## Invariants\n\n- `ProxyStorageManager`: never delete the current proxy version.\n- `AgentConfigurationService`: never overwrite existing backups.\n- `ProxyBridge`: target host must remain localhost.\n- `CLIProxyManager`: base URL must point directly to CLIProxyAPI.\n- Avoid `Text(\"localhost:\\(port)\")`; use `Text(\"localhost:\" + String(port))` to prevent locale formatting.\n\n## Git\n\n- Never commit to `master`.\n- Before committing, inspect `git status`, `git diff`, and `git diff --cached`.\n- Check staged changes for secrets and generated build output.\n- Prefer concise conventional commit messages.\n\nKeep this file short and high-signal. Prefer pointers to source files over copied code or long directory listings.\n"},"files":{"AGENTS.md":"# AGENTS.md\n\nQuotio is a native macOS menu bar app for managing CLIProxyAPI: OAuth for multiple AI providers, quota visibility, proxy lifecycle, and CLI agent configuration.\n\n## Stack\n\n- Swift 6, SwiftUI, macOS 15+, Xcode 16+\n- Sparkle via Swift Package Manager\n- No dedicated automated test suite currently exists\n\n## Where to look\n\n- App entry: `Quotio/QuotioApp.swift`\n- Models and enums: `Quotio/Models/`\n- App state: `Quotio/ViewModels/`\n- Business logic, proxy, API, OAuth, menu bar: `Quotio/Services/`\n- SwiftUI screens and components: `Quotio/Views/`\n- Build/release scripts: `scripts/`\n- Build configuration: `Config/`\n\n## Validate changes\n\nUse this for normal code validation:\n\n```bash\nxcodebuild -project Quotio.xcodeproj -scheme Quotio -configuration Debug build\n```\n\nOnly run release scripts when changing packaging, notarization, appcast, or release behavior:\n\n```bash\n./scripts/build.sh\n./scripts/release.sh\n```\n\nFor UI changes, also run the app manually and check light/dark mode. For provider, OAuth, proxy, or menu bar changes, manually verify the affected flow.\n\n## Project rules\n\n- Keep UI-facing mutable state on `@MainActor`; use `actor` for async services with mutable state.\n- DTOs crossing concurrency boundaries should be `Sendable`.\n- Use SwiftUI Observation patterns already present in the repo (`@Observable`, `@Environment`, `@Bindable`).\n- Do not put networking, persistence, process management, or OAuth logic directly in SwiftUI views.\n- User-facing strings should use the existing localization approach, not hardcoded view text.\n- Do not log or commit tokens, authorization headers, OAuth codes, cookies, secrets, or local config.\n- Treat user changes and untracked files as user-owned; never delete, clean, or overwrite them without explicit permission.\n\n## Invariants\n\n- `ProxyStorageManager`: never delete the current proxy version.\n- `AgentConfigurationService`: never overwrite existing backups.\n- `ProxyBridge`: target host must remain localhost.\n- `CLIProxyManager`: base URL must point directly to CLIProxyAPI.\n- Avoid `Text(\"localhost:\\(port)\")`; use `Text(\"localhost:\" + String(port))` to prevent locale formatting.\n\n## Git\n\n- Never commit to `master`.\n- Before committing, inspect `git status`, `git diff`, and `git diff --cached`.\n- Check staged changes for secrets and generated build output.\n- Prefer concise conventional commit messages.\n\nKeep this file short and high-signal. Prefer pointers to source files over copied code or long directory listings.\n"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","title":"AGENTS.md","content":"# AGENTS.md\n\nQuotio is a native macOS menu bar app for managing CLIProxyAPI: OAuth for multiple AI providers, quota visibility, proxy lifecycle, and CLI agent configuration.\n\n## Stack\n\n- Swift 6, SwiftUI, macOS 15+, Xcode 16+\n- Sparkle via Swift Package Manager\n- No dedicated automated test suite currently exists\n\n## Where to look\n\n- App entry: `Quotio/QuotioApp.swift`\n- Models and enums: `Quotio/Models/`\n- App state: `Quotio/ViewModels/`\n- Business logic, proxy, API, OAuth, menu bar: `Quotio/Services/`\n- SwiftUI screens and components: `Quotio/Views/`\n- Build/release scripts: `scripts/`\n- Build configuration: `Config/`\n\n## Validate changes\n\nUse this for normal code validation:\n\n```bash\nxcodebuild -project Quotio.xcodeproj -scheme Quotio -configuration Debug build\n```\n\nOnly run release scripts when changing packaging, notarization, appcast, or release behavior:\n\n```bash\n./scripts/build.sh\n./scripts/release.sh\n```\n\nFor UI changes, also run the app manually and check light/dark mode. For provider, OAuth, proxy, or menu bar changes, manually verify the affected flow.\n\n## Project rules\n\n- Keep UI-facing mutable state on `@MainActor`; use `actor` for async services with mutable state.\n- DTOs crossing concurrency boundaries should be `Sendable`.\n- Use SwiftUI Observation patterns already present in the repo (`@Observable`, `@Environment`, `@Bindable`).\n- Do not put networking, persistence, process management, or OAuth logic directly in SwiftUI views.\n- User-facing strings should use the existing localization approach, not hardcoded view text.\n- Do not log or commit tokens, authorization headers, OAuth codes, cookies, secrets, or local config.\n- Treat user changes and untracked files as user-owned; never delete, clean, or overwrite them without explicit permission.\n\n## Invariants\n\n- `ProxyStorageManager`: never delete the current proxy version.\n- `AgentConfigurationService`: never overwrite existing backups.\n- `ProxyBridge`: target host must remain localhost.\n- `CLIProxyManager`: base URL must point directly to CLIProxyAPI.\n- Avoid `Text(\"localhost:\\(port)\")`; use `Text(\"localhost:\" + String(port))` to prevent locale formatting.\n\n## Git\n\n- Never commit to `master`.\n- Before committing, inspect `git status`, `git diff`, and `git diff --cached`.\n- Check staged changes for secrets and generated build output.\n- Prefer concise conventional commit messages.\n\nKeep this file short and high-signal. Prefer pointers to source files over copied code or long directory listings.\n","category":"root","tokens":626}]}