# Credential-free e2e config template. e2e/playwright.config.mock.ts copies this # to an ignored runtime path; the in-process fake model (e2e/setup/fake-model.js) # overrides each run, so the placeholder baseURL below is never contacted. version: 1.3.11 cache: true interface: # Exercises the cost row in the context usage gauge (off by default). # Mock models price at the default rate, so synthetic usage yields a value. contextCost: true # Enables the memory feature so the MEMORIES.USE permission is granted and the # ephemeral memory badge (inline set_memory/delete_memory tools) is available. # memory.spec.ts toggles it via the tools dropdown. memory: personalize: true tokenLimit: 10000 mcpSettings: # Deliberately excludes 127.0.0.1, so the URL-based `e2e-http` server below is blocked # at boot (stored as inspectionFailed). mcp-allowlist-override.spec.ts adds that origin # via an admin-panel config override and asserts the server reinitializes — proving the # admin override is honored by inspection/connection. stdio servers skip this check. allowedDomains: - https://allowed.example.com mcpServers: e2e-memory: type: stdio command: node args: - e2e/setup/fake-mcp-server.js title: E2E Memory description: Local MCP fixture used by mock end-to-end tests. timeout: 30000 e2e-http: type: streamable-http url: http://127.0.0.1:8765/mcp title: E2E HTTP description: Local HTTP MCP fixture for allowlist-override e2e tests. timeout: 30000 endpoints: custom: - name: 'Mock Provider A' apiKey: 'e2e-mock-key-a' baseURL: 'http://127.0.0.1:8889/v1' models: default: - 'mock-model-a' fetch: false titleConvo: false modelDisplayLabel: 'Mock Provider A' customParams: defaultParamsEndpoint: anthropic - name: 'Mock Provider B' apiKey: 'e2e-mock-key-b' baseURL: 'http://127.0.0.1:8889/v1' models: default: - 'mock-model-b' fetch: false titleConvo: false modelDisplayLabel: 'Mock Provider B' # No model spec mirrors this endpoint's label, so it stays unambiguous in the # selector and gives e2e tests a real ephemeral endpoint → model option. - name: 'Mock Provider C' apiKey: 'e2e-mock-key-c' baseURL: 'http://127.0.0.1:8889/v1' models: default: - 'mock-model-c' fetch: false titleConvo: false modelDisplayLabel: 'Mock Provider C' # Second non-spec endpoint so e2e tests can switch between two real # ephemeral endpoints (e.g. MCP selection persistence across switches). - name: 'Mock Provider D' apiKey: 'e2e-mock-key-d' baseURL: 'http://127.0.0.1:8889/v1' models: default: - 'mock-model-d' fetch: false titleConvo: false modelDisplayLabel: 'Mock Provider D' modelSpecs: prioritize: true # Enforcement would reject sends from the non-spec paths addedEndpoints # exposes below (buildEndpointOption requires a spec when enforce is true). enforce: false # Surfaces the endpoints menu (modelSelect defaults on when addedEndpoints is # set) limited to entries that don't collide with the spec labels above. addedEndpoints: - 'Mock Provider C' - 'Mock Provider D' - 'agents' list: - name: 'e2e-mock-provider-a' label: 'Mock Provider A' preset: endpoint: 'Mock Provider A' model: 'mock-model-a' - name: 'e2e-mock-provider-b' label: 'Mock Provider B' preset: endpoint: 'Mock Provider B' model: 'mock-model-b' - name: 'e2e-icon-spec' label: 'E2E Icon Spec' iconURL: '/assets/openai.svg' preset: endpoint: 'Mock Provider A' model: 'mock-model-a' - name: 'e2e-skill-scope' label: 'E2E Skill Scope' preset: endpoint: 'Mock Provider A' model: 'mock-model-a' skills: - 'e2e-model-spec-allowed' - 'e2e-model-spec-missing' - 'e2e-model-spec-inaccessible' - name: 'e2e-soft-default' label: 'E2E Soft Default' softDefault: true preset: endpoint: 'Mock Provider A' model: 'mock-model-a' - name: 'e2e-branded' label: 'E2E Branded' description: 'Branded answers brand icon' showOnLanding: true preset: endpoint: 'Mock Provider A' model: 'mock-model-a' - name: 'e2e-starters' label: 'E2E Starters' conversation_starters: - 'E2E_REPLY:starter' - 'Plan my week' - 'Third starter prompt' - 'Fourth starter prompt' - 'Fifth starter beyond the cap' preset: endpoint: 'Mock Provider A' model: 'mock-model-a'