# E2E LOCAL-AUTH harness config.
#
# Loaded via AAO_CONFIG by ui/playwright.auth.config.ts. Unlike the auth-off
# harness (ui/playwright.config.ts, no AAO_CONFIG => synthetic 'local' user),
# this boots the orchestrator with LOCAL LOGIN ENABLED so real users sign in
# through the browser. This is the ONLY way to exercise the shared-space member
# invite + avatar features end-to-end: they depend on real user identities
# (owner row, /api/users/pickable, space_members membership) that simply do not
# exist under no-auth.
#
# - DB_PATH / WORKTREE_DIR come from env (the playwright config mks fresh temp
#   dirs and passes them to BOTH the webServer and the seeding code), so no
#   storage paths are pinned here.
# - session_secret is inlined (fixed throwaway value) so the server never
#   generates a key file under data/ — keeps the repo clean and the run
#   deterministic.
# - secure_cookie: false is REQUIRED — over plain http://127.0.0.1 a secure
#   cookie is never sent back, so login would appear to fail.

auth:
  session_secret: "e2e-fixed-secret-do-not-use-in-prod-0123456789"
  secure_cookie: false
  primary_provider: local
  local:
    enabled: true
    allow_signup: false
    bootstrap_admin:
      email: "admin@test.local"
      password: "AdminPass123!"

# A single ENABLED worker pointed at an UNREACHABLE endpoint. It must be enabled
# with a non-empty endpoint + model + execution role so the browser setup
# wizard's needsSetup gate (scripts/setup-lib.mjs isLlmConfigured, evaluated over
# the resolved provider.workers) is satisfied — otherwise the SPA renders the
# first-run wizard instead of the real app and no spaces UI is reachable.
#
# NOTE: this MUST be the legacy `provider.workers` block (the runtime-effective
# array that worker.ts and computeNeedsSetup read). The v2 `llm.workers` block is
# NOT mapped back into provider.workers at load time — a config that only sets
# `llm.workers` falls back to the synthetic model-less `default` worker and
# needsSetup stays true.
#
# Reachability is irrelevant: the member/avatar tests never run a job, so the
# queued job that would need this LLM is never picked up.
provider:
  base_url: http://127.0.0.1:1/v1
  model: e2e-noop
  workers:
    - id: e2e-noop
      endpoint: http://127.0.0.1:1/v1
      model: e2e-noop
      roles: [auto, fast, quality]
      enabled: true
