e115934061
Publish `@librechat/data-schemas` to NPM / pack (push) Failing after 8s
Publish `@librechat/client` to NPM / pack (push) Failing after 0s
GitNexus Index / index (push) Failing after 1s
Sync Locize Translations & Create Translation PR / Create Translation PR on Version Published (push) Has been skipped
Sync Helm Chart Tags / Sync chart tags (push) Failing after 2s
Publish `librechat-data-provider` to NPM / pack (push) Failing after 1s
Docker Dev Images Build / build (Dockerfile, librechat-dev, node) (push) Failing after 1s
Docker Dev Images Build / build (Dockerfile.multi, librechat-dev-api, api-build) (push) Failing after 0s
Sync Helm Chart Tags / Ignore non-main push (push) Has been skipped
Sync Locize Translations & Create Translation PR / Sync Translation Keys with Locize (push) Failing after 1s
Publish `@librechat/client` to NPM / publish-npm (push) Has been cancelled
Publish `librechat-data-provider` to NPM / publish-npm (push) Has been cancelled
GitNexus Index / post-index (push) Has been cancelled
Publish `@librechat/data-schemas` to NPM / publish-npm (push) Has been cancelled
158 lines
4.7 KiB
YAML
158 lines
4.7 KiB
YAML
# 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: '<strong>Branded</strong> answers <img src="/assets/openai.svg" alt="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'
|