Repository Profile Report • Scanned at 2026-07-12 14:35:44
| Size Range | File Count |
|---|---|
| Under 1 KB | 163 |
| 1 KB - 10 KB | 267 |
| 10 KB - 100 KB | 25 |
| 100 KB - 1 MB | 15 |
| Over 1 MB | 0 |
| File Path | File Size |
|---|---|
docs/inspiration/home-2.png |
903.8 KB |
docs/inspiration/home-1.png |
784.7 KB |
docs/inspiration/pin-detail-2.png |
671.7 KB |
docs/inspiration/search-click.png |
414.4 KB |
docs/inspiration/pin-detail-1.png |
397.9 KB |
apps/marketplace/public/vazi/model-002.webm |
381.1 KB |
apps/marketplace/public/vazi/model-004.webm |
329.3 KB |
apps/marketplace/public/vazi/model-003.webm |
309.2 KB |
apps/tauri-app/src-tauri/icons/icon.png |
297.3 KB |
apps/marketplace/public/vazi/model-001.webm |
210.2 KB |
apps/marketplace/public/mitumba-textmark.png |
167.9 KB |
apps/web/assets/images/textmark.png |
167.9 KB |
apps/marketplace/public/favicon.png |
116.6 KB |
apps/marketplace/src/app/icon.png |
116.6 KB |
apps/web/assets/images/logo.png |
116.6 KB |
| Language | Files | Code Lines |
|---|---|---|
| JSON | 28 | 19,416 |
| TypeScript | 172 | 17,132 |
| Markdown | 227 | 10,143 |
| Dart | 21 | 1,606 |
| SQL | 36 | 850 |
| Python | 4 | 477 |
| YAML | 9 | 323 |
| TOML | 13 | 303 |
| Rust | 7 | 246 |
| CSS | 2 | 162 |
| HTML | 2 | 78 |
| Text | 2 | 74 |
| JavaScript | 2 | 65 |
| XML | 4 | 44 |
├── .antigravitycli/
│ └── 8e8ca431-af34-4410-97a6-a0e4170933dc.json
├── .github/
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug_report.md
│ │ └── feature_request.md
│ ├── workflows/
│ │ ├── deploy-workers.yml
│ │ ├── sync-marketplace.yml
│ │ ├── sync-tauri.yml
│ │ └── sync-vazi-ranker.yml
│ └── PULL_REQUEST_TEMPLATE.md
├── apps/
│ ├── marketplace/
│ │ ├── public/
│ │ │ ├── vazi/
│ │ │ │ ├── model-001.webm
│ │ │ │ ├── model-002.webm
│ │ │ │ ├── model-003.webm
│ │ │ │ └── model-004.webm
│ │ │ ├── favicon.png
│ │ │ ├── manifest.json
│ │ │ ├── mitumba-textmark.png
│ │ │ └── robots.txt
│ │ ├── src/
│ │ │ ├── app/
│ │ │ │ ├── (app)/
│ │ │ │ │ ├── [...catchAll]/
│ │ │ │ │ │ └── ... (max depth reached)
│ │ │ │ │ ├── bale-seller/
│ │ │ │ │ │ └── ... (max depth reached)
│ │ │ │ │ ├── cart/
│ │ │ │ │ │ └── ... (max depth reached)
│ │ │ │ │ ├── checkout/
│ │ │ │ │ │ └── ... (max depth reached)
│ │ │ │ │ ├── following/
│ │ │ │ │ │ └── ... (max depth reached)
│ │ │ │ │ ├── inbox/
│ │ │ │ │ │ └── ... (max depth reached)
│ │ │ │ │ ├── notifications/
│ │ │ │ │ │ └── ... (max depth reached)
│ │ │ │ │ ├── orders/
│ │ │ │ │ │ └── ... (max depth reached)
│ │ │ │ │ ├── p/
│ │ │ │ │ │ └── ... (max depth reached)
│ │ │ │ │ ├── profile/
│ │ │ │ │ │ └── ... (max depth reached)
│ │ │ │ │ ├── review/
│ │ │ │ │ │ └── ... (max depth reached)
│ │ │ │ │ ├── search/
│ │ │ │ │ │ └── ... (max depth reached)
│ │ │ │ │ ├── seller/
│ │ │ │ │ │ └── ... (max depth reached)
│ │ │ │ │ ├── settings/
│ │ │ │ │ │ └── ... (max depth reached)
│ │ │ │ │ ├── start-selling/
│ │ │ │ │ │ └── ... (max depth reached)
│ │ │ │ │ ├── store/
│ │ │ │ │ │ └── ... (max depth reached)
│ │ │ │ │ ├── vazi/
│ │ │ │ │ │ └── ... (max depth reached)
│ │ │ │ │ ├── wholesale/
│ │ │ │ │ │ └── ... (max depth reached)
│ │ │ │ │ ├── wishlist/
│ │ │ │ │ │ └── ... (max depth reached)
│ │ │ │ │ ├── layout.tsx
│ │ │ │ │ ├── loading.tsx
│ │ │ │ │ ├── not-found.tsx
│ │ │ │ │ ├── page.module.css
│ │ │ │ │ └── page.tsx
│ │ │ │ ├── authenticate/
│ │ │ │ │ ├── layout.tsx
│ │ │ │ │ └── page.tsx
│ │ │ │ ├── onboarding/
│ │ │ │ │ ├── layout.tsx
│ │ │ │ │ └── page.tsx
│ │ │ │ ├── seller-onboarding/
│ │ │ │ │ ├── layout.tsx
│ │ │ │ │ └── page.tsx
│ │ │ │ ├── verify-email/
│ │ │ │ │ └── page.tsx
│ │ │ │ ├── error.tsx
│ │ │ │ ├── globals.css
│ │ │ │ ├── icon.png
│ │ │ │ ├── layout.tsx
│ │ │ │ └── not-found.tsx
│ │ │ ├── components/
│ │ │ │ ├── auth/
│ │ │ │ │ └── AuthGuard.tsx
│ │ │ │ ├── cart/
│ │ │ │ │ └── CartView.tsx
│ │ │ │ ├── chat/
│ │ │ │ │ └── ChatDockHost.tsx
│ │ │ │ ├── checkout/
│ │ │ │ │ └── CheckoutView.tsx
│ │ │ │ ├── home/
│ │ │ │ │ ├── CategoryPills.tsx
│ │ │ │ │ ├── ForYou.tsx
│ │ │ │ │ ├── ListingPlaceholder.tsx
│ │ │ │ │ ├── RecentlyAdded.tsx
│ │ │ │ │ ├── TopStores.tsx
│ │ │ │ │ ├── TrendingGrid.tsx
│ │ │ │ │ ├── TrendingSearches.tsx
│ │ │ │ │ ├── VaziHero.tsx
│ │ │ │ │ └── WelcomeEmptyState.tsx
│ │ │ │ ├── layout/
│ │ │ │ │ ├── AppShell.tsx
│ │ │ │ │ ├── AwareSidebar.tsx
│ │ │ │ │ ├── GlobalSearch.tsx
│ │ │ │ │ ├── MobileBottomNav.tsx
│ │ │ │ │ ├── MobileTopBar.tsx
│ │ │ │ │ └── UserMenu.tsx
│ │ │ │ ├── notifications/
│ │ │ │ │ └── NotificationFeed.tsx
│ │ │ │ ├── orders/
│ │ │ │ │ ├── OrderHistory.tsx
│ │ │ │ │ └── OrderTimeline.tsx
│ │ │ │ ├── profile/
│ │ │ │ │ └── ProfileDashboard.tsx
│ │ │ │ ├── providers/
│ │ │ │ │ └── ClientProviders.tsx
│ │ │ │ ├── seller/
│ │ │ │ │ ├── CreateListingStudio.tsx
│ │ │ │ │ ├── InventoryManager.tsx
│ │ │ │ │ ├── ListingDetailsForm.tsx
│ │ │ │ │ ├── SellerOrderDetails.tsx
│ │ │ │ │ └── SellerOrderList.tsx
│ │ │ │ ├── settings/
│ │ │ │ │ └── SettingsSection.tsx
│ │ │ │ ├── store/
│ │ │ │ │ ├── ProductDetail.tsx
│ │ │ │ │ ├── StoreHeader.tsx
│ │ │ │ │ └── StoreProductGrid.tsx
│ │ │ │ ├── vazi/
│ │ │ │ │ └── VaziVerticalFeed.tsx
│ │ │ │ └── wholesale/
│ │ │ │ ├── BaleCard.tsx
│ │ │ │ └── BaleConsoleNav.tsx
│ │ │ ├── hooks/
│ │ │ │ └── useTypingIndicator.ts
│ │ │ ├── lib/
│ │ │ │ ├── actions/
│ │ │ │ │ └── addToCart.ts
│ │ │ │ ├── contexts/
│ │ │ │ │ ├── AuthContext.tsx
│ │ │ │ │ ├── ChatDockContext.tsx
│ │ │ │ │ ├── PreferencesContext.tsx
│ │ │ │ │ ├── SellerContext.tsx
│ │ │ │ │ └── StoreContext.tsx
│ │ │ │ ├── hooks/
│ │ │ │ │ ├── useBadgeCounts.ts
│ │ │ │ │ └── useWishlist.ts
│ │ │ │ ├── mock/
│ │ │ │ │ └── bales.ts
│ │ │ │ ├── sdk/
│ │ │ │ │ └── index.ts
│ │ │ │ └── firebase.ts
│ │ │ └── middleware.ts
│ │ ├── .gitignore
│ │ ├── .npmrc
│ │ ├── AGENTS.md
│ │ ├── CLAUDE.md
│ │ ├── LAUNCH.md
│ │ ├── README.md
│ │ ├── UI_OVERHAUL_SPEC.md
│ │ ├── eslint.config.mjs
│ │ ├── fix-grid-v2.js
│ │ ├── middleware.ts
│ │ ├── next.config.ts
│ │ ├── open-next.config.ts
│ │ ├── package.json
│ │ ├── tsconfig.json
│ │ └── wrangler.toml
│ ├── tauri-app/
│ │ ├── .github/
│ │ │ └── workflows/
│ │ │ └── build-android.yml
│ │ ├── src-tauri/
│ │ │ ├── android-overlay/
│ │ │ │ └── app/
│ │ │ │ └── src/
│ │ │ │ └── ... (max depth reached)
│ │ │ ├── icons/
│ │ │ │ ├── android-res/
│ │ │ │ │ ├── mipmap-anydpi-v26/
│ │ │ │ │ │ └── ... (max depth reached)
│ │ │ │ │ ├── mipmap-hdpi/
│ │ │ │ │ │ └── ... (max depth reached)
│ │ │ │ │ ├── mipmap-mdpi/
│ │ │ │ │ │ └── ... (max depth reached)
│ │ │ │ │ ├── mipmap-xhdpi/
│ │ │ │ │ │ └── ... (max depth reached)
│ │ │ │ │ ├── mipmap-xxhdpi/
│ │ │ │ │ │ └── ... (max depth reached)
│ │ │ │ │ └── mipmap-xxxhdpi/
│ │ │ │ │ └── ... (max depth reached)
│ │ │ │ ├── 512x512.png
│ │ │ │ └── icon.png
│ │ │ ├── src/
│ │ │ │ ├── lib.rs
│ │ │ │ └── main.rs
│ │ │ ├── Cargo.toml
│ │ │ ├── build.rs
│ │ │ ├── offline.html
│ │ │ └── tauri.conf.json
│ │ ├── README.md
│ │ └── package.json
│ └── web/
│ ├── assets/
│ │ └── images/
│ │ ├── logo.png
│ │ └── textmark.png
│ ├── lib/
│ │ ├── providers/
│ │ │ └── auth_provider.dart
│ │ ├── screens/
│ │ │ ├── auth/
│ │ │ │ ├── login_screen.dart
│ │ │ │ └── register_screen.dart
│ │ │ ├── cart/
│ │ │ │ └── cart_screen.dart
│ │ │ ├── checkout/
│ │ │ │ └── checkout_screen.dart
│ │ │ ├── feed/
│ │ │ │ └── feed_screen.dart
│ │ │ ├── listing/
│ │ │ │ └── listing_detail_screen.dart
│ │ │ ├── orders/
│ │ │ │ ├── order_detail_screen.dart
│ │ │ │ └── order_history_screen.dart
│ │ │ ├── profile/
│ │ │ │ └── profile_screen.dart
│ │ │ ├── seller/
│ │ │ │ ├── new_listing_screen.dart
│ │ │ │ ├── seller_dashboard_screen.dart
│ │ │ │ └── seller_storefront_screen.dart
│ │ │ └── vazi/
│ │ │ └── vazi_feed_screen.dart
│ │ ├── services/
│ │ │ └── api_client.dart
│ │ ├── theme/
│ │ │ └── app_theme.dart
│ │ ├── widgets/
│ │ │ ├── mitumba_ui.dart
│ │ │ └── responsive.dart
│ │ ├── main.dart
│ │ └── router.dart
│ ├── test/
│ │ └── widget_test.dart
│ ├── web/
│ │ ├── icons/
│ │ │ ├── Icon-192.png
│ │ │ ├── Icon-512.png
│ │ │ ├── Icon-maskable-192.png
│ │ │ └── Icon-maskable-512.png
│ │ ├── favicon.png
│ │ ├── index.html
│ │ └── manifest.json
│ ├── .gitignore
│ ├── .metadata
│ ├── README.md
│ ├── analysis_options.yaml
│ ├── pubspec.lock
│ └── pubspec.yaml
├── docs/
│ ├── agents/
│ │ ├── MESSAGING_COMPONENTS_GUIDE.md
│ │ └── SDK_AGENT.md
│ ├── api/
│ │ ├── rate-limits.md
│ │ └── versioning.md
│ ├── decisions/
│ │ ├── ADR-001-cloudflare-native.md
│ │ ├── ADR-002-flutter-web.md
│ │ ├── ADR-003-vazi-global.md
│ │ ├── ADR-004-per-seller-cart.md
│ │ ├── ADR-005-gateway-service-bindings.md
│ │ └── ADR-006-auth-modes-and-role-model.md
│ ├── email-templates/
│ │ ├── 2fa-email-code.md
│ │ ├── 2fa-method-added.md
│ │ ├── 2fa-method-removed.md
│ │ ├── account-deleted.md
│ │ ├── account-deletion-request.md
│ │ ├── dispute-opened.md
│ │ ├── dispute-resolved.md
│ │ ├── dispute-seller-responded.md
│ │ ├── review-request.md
│ │ └── vazi-outfit-ready.md
│ ├── emails/
│ │ └── EMAIL_TEMPLATES.md
│ ├── inspiration/
│ │ ├── home-1.png
│ │ ├── home-2.png
│ │ ├── pin-detail-1.png
│ │ ├── pin-detail-2.png
│ │ └── search-click.png
│ ├── plans/
│ │ ├── account-deletion.md
│ │ ├── admin-features-audit.md
│ │ ├── bales-marketplace-audit.md
│ │ ├── company-registration-and-domain.md
│ │ ├── daraja-go-live.md
│ │ ├── floating-chat-dock.md
│ │ ├── multi-method-2fa.md
│ │ ├── production-payment-swap.md
│ │ ├── purchase-gated-reviews.md
│ │ └── verification-and-pro.md
│ ├── r2/
│ │ ├── CORS.md
│ │ └── R2_SETUP.md
│ ├── runbooks/
│ │ ├── data-backup.md
│ │ ├── deploy-workers.md
│ │ ├── deployment.md
│ │ ├── health-checks.md
│ │ ├── incident-response.md
│ │ └── vps-runner-setup.md
│ ├── sdk-requests/
│ │ ├── 2fa-totp.md
│ │ ├── admin-module.md
│ │ ├── auth-become-seller.md
│ │ ├── auth-complete-onboarding.md
│ │ ├── auth-delete-account.md
│ │ ├── bale-orders.md
│ │ ├── become-bale-seller.md
│ │ ├── businesses-module.md
│ │ ├── cart-module.md
│ │ ├── cart-update-quantity.md
│ │ ├── cart-wishlist-image-url.md
│ │ ├── create-store-business-id.md
│ │ ├── create-store-images.md
│ │ ├── disputes-module.md
│ │ ├── email-verification.md
│ │ ├── expand-store-type.md
│ │ ├── fix-store-listings-path.md
│ │ ├── home-feed-methods.md
│ │ ├── listing-media-array.md
│ │ ├── listings-module.md
│ │ ├── listings-size-field.md
│ │ ├── listings-upload-image.md
│ │ ├── login-remember-field.md
│ │ ├── mailer-module.md
│ │ ├── messages-from-store.md
│ │ ├── messages-inbox-realtime.md
│ │ ├── messages-module.md
│ │ ├── messages-order-id-grouped.md
│ │ ├── messages-read-typing.md
│ │ ├── messages-store-inbox.md
│ │ ├── notifications-module.md
│ │ ├── orders-store-id-filter.md
│ │ ├── pay-module.md
│ │ ├── pre-launch-unified.md
│ │ ├── reliable-token-lifecycle.md
│ │ ├── reports-submit.md
│ │ ├── reviews-eligible.md
│ │ ├── reviews-module.md
│ │ ├── search-history.md
│ │ ├── settings-module.md
│ │ ├── similar-listings.md
│ │ ├── store-analytics.md
│ │ ├── store-management.md
│ │ ├── store-settings.md
│ │ ├── stores-delete.md
│ │ ├── stores-get-following.md
│ │ ├── stores-module.md
│ │ ├── token-lifecycle-self-contained.md
│ │ ├── two-factor-methods.md
│ │ ├── uploads-generic.md
│ │ └── ... and 9 other files/folders
│ ├── systems/
│ │ ├── DISPUTES.md
│ │ ├── ESCROW_PAYMENTS.md
│ │ ├── MESSAGING.md
│ │ ├── REVIEWS_REPUTATION.md
│ │ ├── STI_SCORE.md
│ │ └── VAZI_ENGINE.md
│ ├── ui-requests/
│ │ ├── add-address-modal.md
│ │ ├── cart-item-breakpoint.md
│ │ ├── cart-item-quantity-options.md
│ │ ├── chatthread-attachment.md
│ │ ├── chatthread-scrollable.md
│ │ ├── chatthread-typing-and-order-bubble.md
│ │ ├── conversation-list-empty-state.md
│ │ ├── destructive-confirm-dialog.md
│ │ ├── dispute-components.md
│ │ ├── email-verification-page.md
│ │ ├── floating-chat-dock-back-button.md
│ │ ├── floating-chat-dock.md
│ │ ├── listing-card-dynamic-height.md
│ │ ├── onboarding-validation.md
│ │ ├── order-message-attachment.md
│ │ ├── passkey-2fa.md
│ │ ├── search-filter-sheet.md
│ │ ├── two-factor-components.md
│ │ ├── two-factor-methods-manager.md
│ │ └── unauthenticated-state.md
│ ├── vazi/
│ │ ├── model-prompts/
│ │ │ ├── baby-0-1-dark.md
│ │ │ ├── baby-0-1-medium.md
│ │ │ ├── child-boy-11-14-dark.md
│ │ │ ├── child-boy-11-14-medium.md
│ │ │ ├── child-boy-4-6-dark.md
│ │ │ ├── child-boy-4-6-medium.md
│ │ │ ├── child-boy-7-10-dark.md
│ │ │ ├── child-boy-7-10-medium.md
│ │ │ ├── child-girl-11-14-dark.md
│ │ │ ├── child-girl-11-14-medium.md
│ │ │ ├── child-girl-4-6-dark.md
│ │ │ ├── child-girl-4-6-medium.md
│ │ │ ├── child-girl-7-10-dark.md
│ │ │ ├── child-girl-7-10-medium.md
│ │ │ ├── f-avg-avg-dark.md
│ │ │ ├── f-avg-avg-light.md
│ │ │ ├── f-avg-avg-medium.md
│ │ │ ├── f-avg-plus-dark.md
│ │ │ ├── f-avg-plus-light.md
│ │ │ ├── f-avg-plus-medium.md
│ │ │ ├── f-avg-slim-dark.md
│ │ │ ├── f-avg-slim-light.md
│ │ │ ├── f-avg-slim-medium.md
│ │ │ ├── f-short-avg-dark.md
│ │ │ ├── f-short-avg-light.md
│ │ │ ├── f-short-avg-medium.md
│ │ │ ├── f-short-plus-dark.md
│ │ │ ├── f-short-plus-light.md
│ │ │ ├── f-short-plus-medium.md
│ │ │ ├── f-short-slim-dark.md
│ │ │ ├── f-short-slim-light.md
│ │ │ ├── f-short-slim-medium.md
│ │ │ ├── f-tall-avg-dark.md
│ │ │ ├── f-tall-avg-light.md
│ │ │ ├── f-tall-avg-medium.md
│ │ │ ├── f-tall-plus-dark.md
│ │ │ ├── f-tall-plus-light.md
│ │ │ ├── f-tall-plus-medium.md
│ │ │ ├── f-tall-slim-dark.md
│ │ │ ├── f-tall-slim-light.md
│ │ │ ├── f-tall-slim-medium.md
│ │ │ ├── m-avg-avg-dark.md
│ │ │ ├── m-avg-avg-light.md
│ │ │ ├── m-avg-avg-medium.md
│ │ │ ├── m-avg-plus-dark.md
│ │ │ ├── m-avg-plus-light.md
│ │ │ ├── m-avg-plus-medium.md
│ │ │ ├── m-avg-slim-dark.md
│ │ │ ├── m-avg-slim-light.md
│ │ │ ├── m-avg-slim-medium.md
│ │ │ └── ... and 22 other files/folders
│ │ ├── VAZI_AUDIO_LIBRARY.md
│ │ ├── VAZI_BASE_MODELS_PRODUCTION.md
│ │ ├── VAZI_ENGINE_SPEC.md
│ │ ├── VAZI_RL_PIPELINE.md
│ │ ├── VAZI_SHOWCASE_UI_NOTES.md
│ │ └── VAZI_SPEC.md
│ ├── CRON_JOBS.md
│ ├── INDEX.md
│ ├── USER_FLOWS.md
│ └── admin-request.md
├── infra/
│ └── migrations/
│ ├── 20260517_000001_initial_schema.sql
│ ├── 20260517_000002_listings_schema.sql
│ ├── 20260517_000003_pay_orders_schema.sql
│ ├── 20260518_000004_vazi_schema.sql
│ ├── 20260523_000005_sti_events.sql
│ ├── 20260610_000005_schema_expansion.sql
│ ├── 20260611_000006_reviews.sql
│ ├── 20260612_000007_listings_belong_to_store.sql
│ ├── 20260612_000008_search_history.sql
│ ├── 20260612_000009_cart_and_order_items.sql
│ ├── 20260613_000010_settings_tables.sql
│ ├── 20260613_000011_sessions.sql
│ ├── 20260613_000012_totp_2fa.sql
│ ├── 20260615_000013_store_settings.sql
│ ├── 20260615_000014_store_events.sql
│ ├── 20260616_000015_orders_store_id.sql
│ ├── 20260616_000016_businesses.sql
│ ├── 20260617_000017_payment_methods_expand_types.sql
│ ├── 20260618_000018_vazi_outfits_expansion.sql
│ ├── 20260618_000019_seed_counties.sql
│ ├── 20260619_000020_listings_size.sql
│ ├── 20260623_000021_stock_quantity.sql
│ ├── 20260623_000022_disputes.sql
│ ├── 20260624_000023_user_suspension.sql
│ ├── 20260624_000024_admin_audit_log.sql
│ ├── 20260624_000025_fix_listings_fts.sql
│ ├── 20260624_000026_reports.sql
│ ├── 20260624_000027_review_hidden.sql
│ ├── 20260624_000028_vazi_outfit_removed.sql
│ ├── 20260629_000029_messages_order_id.sql
│ ├── 20260630_000030_stores_deleted_at.sql
│ ├── 20260630_000031_users_deleted_at.sql
│ ├── 20260630_000032_messages_from_store.sql
│ ├── 20260702_000033_two_factor_methods.sql
│ ├── 20260707_000034_bales_foundation.sql
│ └── 20260708_000035_wholesale_verification_photos.sql
├── modal/
│ ├── README.md
│ ├── SECRETS.md
│ ├── bg_remover.py
│ ├── fashionclip_app.py
│ ├── outfit_generator.py
│ └── rl_trainer.py
├── packages/
│ ├── db/
│ │ ├── src/
│ │ │ ├── index.ts
│ │ │ └── schema.ts
│ │ ├── package.json
│ │ └── tsconfig.json
│ ├── types/
│ │ ├── src/
│ │ │ └── index.ts
│ │ ├── package.json
│ │ └── tsconfig.json
│ ├── utils/
│ │ ├── src/
│ │ │ ├── index.test.ts
│ │ │ ├── index.ts
│ │ │ └── sti.test.ts
│ │ ├── package.json
│ │ └── tsconfig.json
│ └── vazi-ranker/
│ ├── .github/
│ │ └── workflows/
│ │ ├── ci.yml
│ │ └── release.yml
│ ├── src/
│ │ ├── lib.rs
│ │ ├── scoring.rs
│ │ └── types.rs
│ ├── tests/
│ │ └── ranking_tests.rs
│ ├── .gitignore
│ ├── Cargo.toml
│ └── README.md
├── workers/
│ ├── admin/
│ │ ├── src/
│ │ │ └── index.ts
│ │ ├── package.json
│ │ ├── tsconfig.json
│ │ └── wrangler.toml
│ ├── auth/
│ │ ├── src/
│ │ │ ├── config.ts
│ │ │ ├── index.ts
│ │ │ ├── jwt.test.ts
│ │ │ ├── jwt.ts
│ │ │ ├── otp.ts
│ │ │ ├── passkey.ts
│ │ │ ├── password.test.ts
│ │ │ └── password.ts
│ │ ├── package.json
│ │ ├── tsconfig.json
│ │ └── wrangler.toml
│ ├── gateway/
│ │ ├── src/
│ │ │ └── index.ts
│ │ ├── package.json
│ │ ├── tsconfig.json
│ │ └── wrangler.toml
│ ├── listings/
│ │ ├── src/
│ │ │ ├── index.ts
│ │ │ └── wholesale.ts
│ │ ├── package.json
│ │ ├── tsconfig.json
│ │ └── wrangler.toml
│ ├── notifications/
│ │ ├── src/
│ │ │ └── index.ts
│ │ ├── package.json
│ │ ├── tsconfig.json
│ │ └── wrangler.toml
│ ├── orders/
│ │ ├── src/
│ │ │ ├── disputes.ts
│ │ │ ├── do.ts
│ │ │ └── index.ts
│ │ ├── package.json
│ │ ├── tsconfig.json
│ │ └── wrangler.toml
│ ├── pay/
│ │ ├── src/
│ │ │ ├── airtel.ts
│ │ │ ├── daraja.ts
│ │ │ ├── escrow.ts
│ │ │ ├── index.ts
│ │ │ ├── intasend.ts
│ │ │ ├── provider.ts
│ │ │ ├── providers.test.ts
│ │ │ └── router.ts
│ │ ├── package.json
│ │ ├── tsconfig.json
│ │ └── wrangler.toml
│ ├── search/
│ │ ├── src/
│ │ │ └── index.ts
│ │ ├── package.json
│ │ ├── tsconfig.json
│ │ └── wrangler.toml
│ ├── sti/
│ │ ├── src/
│ │ │ └── index.ts
│ │ ├── package.json
│ │ ├── tsconfig.json
│ │ └── wrangler.toml
│ └── vazi/
│ ├── src/
│ │ ├── cache.ts
│ │ ├── classifier.ts
│ │ ├── eligibility.ts
│ │ ├── feed.ts
│ │ ├── index.ts
│ │ ├── modal.ts
│ │ ├── naming.ts
│ │ ├── outfit-matcher.ts
│ │ ├── ranker.ts
│ │ └── types.ts
│ ├── test/
│ │ ├── eligibility.test.ts
│ │ └── naming.test.ts
│ ├── package.json
│ ├── tsconfig.json
│ └── wrangler.toml
├── .env.example
├── .gitignore
├── .npmrc
├── AGENT_PROMPT.md
├── ARCHITECTURE.md
├── CLAUDE.md
├── CONTRIBUTING.md
├── DEPLOYMENT.md
├── GEMINI.md
├── README.md
├── ROADMAP.md
├── VAZI_TODO_B4_LAUNCH.txt
├── package.json
├── tsconfig.base.json
└── vitest.config.ts