|
|
| const CONFIG = {
|
| port:process.env.PORT || 3000,
|
|
|
| endpoint: [
|
| {
|
| name: 'openai',
|
| base_url: 'https://app.factory.ai/api/llm/o/v1/responses'
|
| },
|
| {
|
| name: 'anthropic',
|
| base_url: 'https://app.factory.ai/api/llm/a/v1/messages'
|
| },
|
| {
|
| name: 'common',
|
| base_url: 'https://app.factory.ai/api/llm/o/v1/chat/completions'
|
| }
|
| ],
|
|
|
| models: [
|
| {
|
| id: 'claude-opus-4-5-20251101',
|
| type: 'anthropic',
|
| reasoning: 'auto'
|
| },
|
| {
|
| id: 'claude-opus-4-1-20250805',
|
| type: 'anthropic',
|
| reasoning: 'auto'
|
| },
|
| {
|
| id: 'claude-haiku-4-5-20251001',
|
| type: 'anthropic',
|
| reasoning: 'auto'
|
| },
|
| {
|
| id: 'claude-sonnet-4-5-20250929',
|
| type: 'anthropic',
|
| reasoning: 'auto'
|
| },
|
| {
|
| id: 'gpt-5-codex',
|
| type: 'openai',
|
| reasoning: 'off'
|
| },
|
| {
|
| id: 'glm-4.6',
|
| type: 'common'
|
| }
|
| ],
|
|
|
| user_agent: 'factory-cli/0.27.0',
|
| system_prompt: 'You are Droid, an AI software engineering agent built by Factory.\n\n'
|
| }
|
|
|
| export function getConfig() {
|
| return CONFIG
|
| }
|
|
|
| export function getModelById(modelId) {
|
| return CONFIG.models.find(m => m.id === modelId)
|
| }
|
|
|
| export function getEndpointByType(type) {
|
| return CONFIG.endpoint.find(e => e.name === type)
|
| }
|
|
|
| export function getPort() {
|
| return parseInt(process.env.PORT) || CONFIG.port
|
| }
|
|
|
| export function getSystemPrompt() {
|
| return CONFIG.system_prompt || ''
|
| }
|
|
|
| export function getModelReasoning(modelId) {
|
| const model = getModelById(modelId)
|
| if (!model || !model.reasoning) {
|
| return null
|
| }
|
| const reasoningLevel = model.reasoning.toLowerCase()
|
| if (['low', 'medium', 'high', 'auto'].includes(reasoningLevel)) {
|
| return reasoningLevel
|
| }
|
| return null
|
| }
|
|
|
| export function getUserAgent() {
|
| return CONFIG.user_agent
|
| }
|
|
|
| export function getProxyUrl() {
|
| return process.env.PROXY_URL || null
|
| }
|
|
|