-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
97 lines (80 loc) · 5.31 KB
/
Copy path.env.example
File metadata and controls
97 lines (80 loc) · 5.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# Copy to .env (gitignored) and fill in what you use. docker compose reads
# this file automatically; the values are passed into the tpk container for
# graphify's semantic extraction (repos marked extraction = "semantic" in
# repos.toml) and, later, the chat agent.
# --- Direct API keys ---------------------------------------------------------
# Anthropic API key — used when [llm].backend is "claude" or "auto"
ANTHROPIC_API_KEY=
# OpenAI API key — used when [llm].backend is "openai" or "auto"
OPENAI_API_KEY=
# --- Custom endpoints (AWS Bedrock, vLLM, LiteLLM, ...) ----------------------
# Bedrock does not speak the OpenAI/Anthropic wire protocols directly (it
# wants SigV4 auth), so run an OpenAI-compatible gateway in front of it —
# LiteLLM proxy or the AWS "Bedrock Access Gateway" — and point these at it.
# A base URL counts as a usable backend even without a real API key.
# OpenAI-compatible endpoint, e.g. your LiteLLM/Bedrock gateway:
# OPENAI_BASE_URL=http://localhost:4000/v1
# OPENAI_API_KEY=dummy # whatever your gateway expects
# OPENAI_MODEL=anthropic.claude-sonnet-5-v1:0 # model id your gateway serves
# Anthropic-compatible endpoint (LiteLLM proxies, gateways). Some Bedrock
# gateways expose the native Anthropic protocol on a separate path (e.g.
# bedrock-mantle at /anthropic, hit as .../anthropic/v1/messages) with the
# standard x-api-key header:
# ANTHROPIC_BASE_URL=https://bedrock-mantle.us-east-1.api.aws/anthropic
# ANTHROPIC_MODEL=anthropic.claude-opus-4-8
# --- Chat agent ---------------------------------------------------------------
# `tpk serve` / the compose `agent` service. These may differ from the
# extraction backend/model above (e.g. a cheaper model for ingest, a
# stronger one for chat) — leave unset to fall back to the same
# ANTHROPIC_*/OPENAI_* keys and each provider's default model.
# TPK_AGENT_PROVIDER=anthropic # anthropic | openai
# TPK_AGENT_MODEL=claude-sonnet-5
# Example split — Claude Opus for chat, gpt-oss for bulk ingest (see README
# "Split: Claude for chat, gpt-oss for ingest"). Both API keys end up set, so
# pin repos.toml [llm].backend explicitly ("auto" would be ambiguous):
# OPENAI_BASE_URL=https://bedrock-mantle.us-east-1.api.aws/v1
# OPENAI_API_KEY=<gateway key>
# OPENAI_MODEL=openai.gpt-oss-120b # repos.toml [llm].backend = "openai"
# ANTHROPIC_BASE_URL=https://bedrock-mantle.us-east-1.api.aws/anthropic
# ANTHROPIC_API_KEY=<gateway key> # usually the same gateway key
# TPK_AGENT_PROVIDER=anthropic
# TPK_AGENT_MODEL=anthropic.claude-opus-4-8
# --- Misc --------------------------------------------------------------------
# Host directory containing the Timeplus repo checkouts (mounted at /repos)
# REPOS_MOUNT=/Users/you/Code/timeplus
# For reasoning models (gpt-oss): "low" keeps answers on the content channel
# instead of ending with empty messages. Leave unset for non-reasoning models.
# TPK_AGENT_REASONING_EFFORT=low
# --- Other runtime settings --------------------------------------------------
# Every setting below ALSO has a config-file equivalent in repos.toml's
# [db]/[agent]/[server] sections; the env var wins when both are set. See the
# README "Configuration" matrix. Uncomment only to override the default shown.
# TIMEPLUS_DATABASE=tpk # [db].database database all tpk streams live under
# TPK_DB_BACKEND=timeplusd # [db].backend timeplusd | proton
# TPK_STREAM_PREFIX= # [db].stream_prefix namespace streams within the database
# TPK_DB_WAIT_SECONDS=60 # [db].wait_seconds serve: DB connect retry budget
# TPK_SESSION_TTL=86400 # [server].session_ttl login session lifetime (s)
# TPK_CHAT_AUDIT=1 # [server].chat_audit false/0 disables chat auditing
# TPK_DAILY_TOKEN_LIMIT=500000 # [server].daily_token_limit global fallback non-admin per-user/day cap; 0 = unlimited
# TPK_CHECKOUT_DIR=~/.tpk/checkouts # [server].checkout_dir github checkout cache
# TPK_EXTRACTION_BACKEND= # [llm].backend auto | claude | openai
# TPK_EXTRACTION_MODEL= # [llm].model semantic-extraction model
# TPK_CONFIG=repos.toml # path to the config file itself
# --- GitHub corpus fetch -----------------------------------------------------
# repos.toml pins corpus repos to GitHub tags; private repos (proton-enterprise,
# timeplus-enterprise) need a token with repo read access:
# GITHUB_TOKEN=ghp_...
# --- Timeplus connection -----------------------------------------------------
# How tpk connects to timeplusd. Defaults (when unset): host=localhost,
# user=default, password=empty.
# Password for the stack's timeplusd. Required by docker compose: provisions
# the `tpk` DB user and locks the `default` user with the same password.
TIMEPLUS_PASSWORD=change-this-db-password
# host and user: the compose stack HARDCODES these (TIMEPLUS_HOST=tpk,
# TIMEPLUS_USER=tpk in docker-compose.yml), so setting them here has no effect
# on the containers. They matter only when running tpk OUTSIDE compose — the
# CLI, MCP server, or pytest against a timeplusd you point it at:
# TIMEPLUS_HOST=localhost
# TIMEPLUS_USER=tpk # use `tpk` + the password above against the
# # hardened compose stack; `default` for a
# # bare dev timeplusd with no password set