@auxiora/config 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +191 -0
- package/dist/index.d.ts +1790 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +358 -0
- package/dist/index.js.map +1 -0
- package/dist/validator.d.ts +38 -0
- package/dist/validator.d.ts.map +1 -0
- package/dist/validator.js +180 -0
- package/dist/validator.js.map +1 -0
- package/package.json +26 -0
- package/src/index.ts +403 -0
- package/src/validator.ts +226 -0
- package/tests/config.test.ts +390 -0
- package/tsconfig.json +11 -0
- package/tsconfig.tsbuildinfo +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiCxB,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoBtB,CAAC;AA2GH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAGhE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;EAO5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAG5D,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;EAOrB,CAAC;AAEH,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;EAOxB,CAAC;AAEH,QAAA,MAAM,kBAAkB;;;;;;;;;EAGtB,CAAC;AA2BH,QAAA,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;EAS7B,CAAC;AAiBH,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMrB,CAAC;AAEH,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BvB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;QA9RvB,4CAA4C;;QAE5C,+DAA+D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsT/D,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAClD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAkC5D,wBAAsB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAmBlD;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAU9D;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,CAExD"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
import * as fs from 'node:fs/promises';
|
|
2
|
+
import * as path from 'node:path';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { getConfigPath, isWindows } from '@auxiora/core';
|
|
5
|
+
const GatewayConfigSchema = z.object({
|
|
6
|
+
host: z.string().default('0.0.0.0'),
|
|
7
|
+
port: z.number().int().min(1).max(65535).default(18800),
|
|
8
|
+
corsOrigins: z.array(z.string()).default(['http://localhost:18800']),
|
|
9
|
+
});
|
|
10
|
+
const AuthConfigSchema = z.object({
|
|
11
|
+
mode: z.enum(['none', 'password', 'jwt']).default('none'),
|
|
12
|
+
/** Argon2id hash of the gateway password */
|
|
13
|
+
passwordHash: z.string().optional(),
|
|
14
|
+
/** Secret for signing JWT tokens (min 32 chars recommended) */
|
|
15
|
+
jwtSecret: z.string().optional(),
|
|
16
|
+
jwtExpiresIn: z.string().default('7d'),
|
|
17
|
+
refreshExpiresIn: z.string().default('30d'),
|
|
18
|
+
});
|
|
19
|
+
const RateLimitConfigSchema = z.object({
|
|
20
|
+
enabled: z.boolean().default(true),
|
|
21
|
+
windowMs: z.number().int().positive().default(60000), // 1 minute
|
|
22
|
+
maxRequests: z.number().int().positive().default(300),
|
|
23
|
+
});
|
|
24
|
+
const PairingConfigSchema = z.object({
|
|
25
|
+
enabled: z.boolean().default(true),
|
|
26
|
+
codeLength: z.number().int().min(4).max(12).default(6),
|
|
27
|
+
expiryMinutes: z.number().int().positive().default(15),
|
|
28
|
+
autoApproveChannels: z.array(z.string()).default(['webchat']),
|
|
29
|
+
persistPath: z.string().optional(),
|
|
30
|
+
});
|
|
31
|
+
const ModelRoutingSchema = z.object({
|
|
32
|
+
enabled: z.boolean().default(true),
|
|
33
|
+
defaultModel: z.string().optional(),
|
|
34
|
+
rules: z.array(z.object({
|
|
35
|
+
task: z.enum(['reasoning', 'code', 'creative', 'vision', 'long-context', 'fast', 'private', 'image-gen']),
|
|
36
|
+
provider: z.string(),
|
|
37
|
+
model: z.string(),
|
|
38
|
+
priority: z.number().default(0),
|
|
39
|
+
})).default([]),
|
|
40
|
+
costLimits: z.object({
|
|
41
|
+
dailyBudget: z.number().positive().optional(),
|
|
42
|
+
monthlyBudget: z.number().positive().optional(),
|
|
43
|
+
perMessageMax: z.number().positive().optional(),
|
|
44
|
+
warnAt: z.number().min(0).max(1).default(0.8),
|
|
45
|
+
}).default({}),
|
|
46
|
+
preferences: z.object({
|
|
47
|
+
preferLocal: z.boolean().default(false),
|
|
48
|
+
preferCheap: z.boolean().default(false),
|
|
49
|
+
sensitiveToLocal: z.boolean().default(false),
|
|
50
|
+
}).default({}),
|
|
51
|
+
});
|
|
52
|
+
const ProviderConfigSchema = z.object({
|
|
53
|
+
primary: z.string().default('anthropic'),
|
|
54
|
+
fallback: z.string().optional(),
|
|
55
|
+
anthropic: z.object({
|
|
56
|
+
model: z.string().default('claude-sonnet-4-20250514'),
|
|
57
|
+
maxTokens: z.number().int().positive().default(4096),
|
|
58
|
+
}).default({}),
|
|
59
|
+
openai: z.object({
|
|
60
|
+
model: z.string().default('gpt-5.2'),
|
|
61
|
+
maxTokens: z.number().int().positive().default(4096),
|
|
62
|
+
}).default({}),
|
|
63
|
+
google: z.object({
|
|
64
|
+
model: z.string().default('gemini-2.5-flash'),
|
|
65
|
+
maxTokens: z.number().int().positive().default(4096),
|
|
66
|
+
}).default({}),
|
|
67
|
+
ollama: z.object({
|
|
68
|
+
model: z.string().default('llama3'),
|
|
69
|
+
maxTokens: z.number().int().positive().default(4096),
|
|
70
|
+
baseUrl: z.string().default('http://localhost:11434'),
|
|
71
|
+
}).default({}),
|
|
72
|
+
openaiCompatible: z.object({
|
|
73
|
+
model: z.string().default(''),
|
|
74
|
+
maxTokens: z.number().int().positive().default(4096),
|
|
75
|
+
baseUrl: z.string().default(''),
|
|
76
|
+
name: z.string().default('custom'),
|
|
77
|
+
}).default({}),
|
|
78
|
+
});
|
|
79
|
+
const SessionConfigSchema = z.object({
|
|
80
|
+
maxContextTokens: z.number().int().positive().default(100000),
|
|
81
|
+
ttlMinutes: z.number().int().positive().default(1440), // 24 hours
|
|
82
|
+
autoSave: z.boolean().default(true),
|
|
83
|
+
compactionEnabled: z.boolean().default(true),
|
|
84
|
+
});
|
|
85
|
+
const LoggingConfigSchema = z.object({
|
|
86
|
+
level: z.enum(['debug', 'info', 'warn', 'error']).default('info'),
|
|
87
|
+
auditEnabled: z.boolean().default(true),
|
|
88
|
+
maxFileSizeMb: z.number().positive().default(10),
|
|
89
|
+
maxFiles: z.number().int().positive().default(5),
|
|
90
|
+
});
|
|
91
|
+
const ChannelConfigSchema = z.object({
|
|
92
|
+
discord: z.object({
|
|
93
|
+
enabled: z.boolean().default(false),
|
|
94
|
+
mentionOnly: z.boolean().default(true),
|
|
95
|
+
}).default({}),
|
|
96
|
+
telegram: z.object({
|
|
97
|
+
enabled: z.boolean().default(false),
|
|
98
|
+
webhookMode: z.boolean().default(false),
|
|
99
|
+
}).default({}),
|
|
100
|
+
slack: z.object({
|
|
101
|
+
enabled: z.boolean().default(false),
|
|
102
|
+
socketMode: z.boolean().default(true),
|
|
103
|
+
}).default({}),
|
|
104
|
+
twilio: z.object({
|
|
105
|
+
enabled: z.boolean().default(false),
|
|
106
|
+
smsEnabled: z.boolean().default(true),
|
|
107
|
+
whatsappEnabled: z.boolean().default(false),
|
|
108
|
+
}).default({}),
|
|
109
|
+
webchat: z.object({
|
|
110
|
+
enabled: z.boolean().default(true),
|
|
111
|
+
}).default({}),
|
|
112
|
+
matrix: z.object({
|
|
113
|
+
enabled: z.boolean().default(false),
|
|
114
|
+
autoJoinRooms: z.boolean().default(true),
|
|
115
|
+
}).default({}),
|
|
116
|
+
signal: z.object({
|
|
117
|
+
enabled: z.boolean().default(false),
|
|
118
|
+
}).default({}),
|
|
119
|
+
email: z.object({
|
|
120
|
+
enabled: z.boolean().default(false),
|
|
121
|
+
pollInterval: z.number().int().positive().default(30000),
|
|
122
|
+
}).default({}),
|
|
123
|
+
teams: z.object({
|
|
124
|
+
enabled: z.boolean().default(false),
|
|
125
|
+
}).default({}),
|
|
126
|
+
whatsapp: z.object({
|
|
127
|
+
enabled: z.boolean().default(false),
|
|
128
|
+
}).default({}),
|
|
129
|
+
});
|
|
130
|
+
const VoiceConfigSchema = z.object({
|
|
131
|
+
enabled: z.boolean().default(false),
|
|
132
|
+
sttProvider: z.enum(['openai-whisper']).default('openai-whisper'),
|
|
133
|
+
ttsProvider: z.enum(['openai-tts']).default('openai-tts'),
|
|
134
|
+
defaultVoice: z.string().default('alloy'),
|
|
135
|
+
language: z.string().default('en'),
|
|
136
|
+
maxAudioDuration: z.number().int().positive().default(30),
|
|
137
|
+
sampleRate: z.number().int().positive().default(16000),
|
|
138
|
+
});
|
|
139
|
+
const WebhookConfigSchema = z.object({
|
|
140
|
+
enabled: z.boolean().default(false),
|
|
141
|
+
basePath: z.string().default('/api/v1/webhooks'),
|
|
142
|
+
signatureHeader: z.string().default('x-webhook-signature'),
|
|
143
|
+
maxPayloadSize: z.number().int().positive().default(65536),
|
|
144
|
+
});
|
|
145
|
+
const DashboardConfigSchema = z.object({
|
|
146
|
+
enabled: z.boolean().default(true),
|
|
147
|
+
sessionTtlMs: z.number().int().positive().default(86_400_000),
|
|
148
|
+
});
|
|
149
|
+
// [P6] Desktop config
|
|
150
|
+
export const DesktopConfigSchema = z.object({
|
|
151
|
+
autoStart: z.boolean().default(false),
|
|
152
|
+
minimizeToTray: z.boolean().default(true),
|
|
153
|
+
hotkey: z.string().default('CommandOrControl+Shift+A'),
|
|
154
|
+
notificationsEnabled: z.boolean().default(true),
|
|
155
|
+
updateChannel: z.enum(['stable', 'beta', 'nightly']).default('stable'),
|
|
156
|
+
ollamaEnabled: z.boolean().default(false),
|
|
157
|
+
ollamaPort: z.number().int().min(1).max(65535).default(11434),
|
|
158
|
+
windowWidth: z.number().int().positive().default(1024),
|
|
159
|
+
windowHeight: z.number().int().positive().default(768),
|
|
160
|
+
});
|
|
161
|
+
// [P7] Cloud config
|
|
162
|
+
export const CloudConfigSchema = z.object({
|
|
163
|
+
enabled: z.boolean().default(false),
|
|
164
|
+
baseDataDir: z.string().default('/data/tenants'),
|
|
165
|
+
jwtSecret: z.string().default(''),
|
|
166
|
+
stripeSecretKey: z.string().optional(),
|
|
167
|
+
stripeWebhookSecret: z.string().optional(),
|
|
168
|
+
domain: z.string().default('localhost'),
|
|
169
|
+
});
|
|
170
|
+
// [P12] Trust / Autonomy
|
|
171
|
+
const TrustConfigSchema = z.object({
|
|
172
|
+
enabled: z.boolean().default(true),
|
|
173
|
+
defaultLevel: z.number().int().min(0).max(4).default(0),
|
|
174
|
+
autoPromote: z.boolean().default(true),
|
|
175
|
+
promotionThreshold: z.number().int().positive().default(10),
|
|
176
|
+
demotionThreshold: z.number().int().positive().default(3),
|
|
177
|
+
autoPromoteCeiling: z.number().int().min(0).max(4).default(3),
|
|
178
|
+
});
|
|
179
|
+
const ResearchConfigSchema = z.object({
|
|
180
|
+
enabled: z.boolean().default(true),
|
|
181
|
+
braveApiKey: z.string().optional(),
|
|
182
|
+
defaultDepth: z.enum(['quick', 'standard', 'deep']).default('standard'),
|
|
183
|
+
maxConcurrentSources: z.number().int().positive().default(5),
|
|
184
|
+
searchTimeout: z.number().int().positive().default(10000),
|
|
185
|
+
fetchTimeout: z.number().int().positive().default(15000),
|
|
186
|
+
});
|
|
187
|
+
const IntentConfigSchema = z.object({
|
|
188
|
+
enabled: z.boolean().default(true),
|
|
189
|
+
confidenceThreshold: z.number().min(0).max(1).default(0.3),
|
|
190
|
+
});
|
|
191
|
+
const PluginsConfigSchema = z.object({
|
|
192
|
+
enabled: z.boolean().default(true),
|
|
193
|
+
dir: z.string().optional(),
|
|
194
|
+
marketplace: z.object({
|
|
195
|
+
registryUrl: z.string().default('https://registry.auxiora.dev'),
|
|
196
|
+
autoUpdate: z.boolean().default(false),
|
|
197
|
+
}).default({}),
|
|
198
|
+
pluginConfigs: z.record(z.string(), z.unknown()).default({}),
|
|
199
|
+
approvedPermissions: z.record(z.string(), z.array(z.enum([
|
|
200
|
+
'NETWORK', 'FILESYSTEM', 'SHELL', 'PROVIDER_ACCESS', 'CHANNEL_ACCESS', 'MEMORY_ACCESS',
|
|
201
|
+
]))).default({}),
|
|
202
|
+
});
|
|
203
|
+
const MemoryConfigSchema = z.object({
|
|
204
|
+
enabled: z.boolean().default(true),
|
|
205
|
+
autoExtract: z.boolean().default(true),
|
|
206
|
+
maxEntries: z.number().int().positive().default(1000),
|
|
207
|
+
encryptAtRest: z.boolean().default(false),
|
|
208
|
+
cleanupIntervalMinutes: z.number().int().positive().default(60),
|
|
209
|
+
adaptivePersonality: z.boolean().default(true),
|
|
210
|
+
patternDetection: z.boolean().default(true),
|
|
211
|
+
relationshipTracking: z.boolean().default(true),
|
|
212
|
+
importanceDecay: z.number().min(0).max(1).default(0.01),
|
|
213
|
+
});
|
|
214
|
+
const OrchestrationConfigSchema = z.object({
|
|
215
|
+
enabled: z.boolean().default(true),
|
|
216
|
+
maxConcurrentAgents: z.number().int().min(1).max(10).default(5),
|
|
217
|
+
defaultTimeout: z.number().int().positive().default(60000),
|
|
218
|
+
totalTimeout: z.number().int().positive().default(300000),
|
|
219
|
+
allowedPatterns: z.array(z.enum([
|
|
220
|
+
'parallel', 'sequential', 'debate', 'map-reduce', 'supervisor',
|
|
221
|
+
])).default(['parallel', 'sequential', 'debate', 'map-reduce', 'supervisor']),
|
|
222
|
+
costMultiplierWarning: z.number().positive().default(3),
|
|
223
|
+
});
|
|
224
|
+
const UserPreferencesSchema = z.object({
|
|
225
|
+
verbosity: z.number().min(0).max(1).default(0.5),
|
|
226
|
+
formality: z.number().min(0).max(1).default(0.5),
|
|
227
|
+
proactiveness: z.number().min(0).max(1).default(0.5),
|
|
228
|
+
riskTolerance: z.number().min(0).max(1).default(0.5),
|
|
229
|
+
humor: z.number().min(0).max(1).default(0.3),
|
|
230
|
+
feedbackStyle: z.enum(['direct', 'sandwich', 'gentle']).default('direct'),
|
|
231
|
+
expertiseAssumption: z.enum(['beginner', 'intermediate', 'expert']).default('intermediate'),
|
|
232
|
+
});
|
|
233
|
+
const ModeIdSchema = z.enum([
|
|
234
|
+
'operator', 'analyst', 'advisor', 'writer',
|
|
235
|
+
'socratic', 'legal', 'roast', 'companion',
|
|
236
|
+
]);
|
|
237
|
+
const ModesConfigSchema = z.object({
|
|
238
|
+
enabled: z.boolean().default(true),
|
|
239
|
+
defaultMode: z.union([ModeIdSchema, z.literal('auto'), z.literal('off')]).default('auto'),
|
|
240
|
+
autoDetection: z.boolean().default(true),
|
|
241
|
+
confirmationThreshold: z.number().min(0).max(1).default(0.4),
|
|
242
|
+
preferences: UserPreferencesSchema.default({}),
|
|
243
|
+
});
|
|
244
|
+
const AgentIdentitySchema = z.object({
|
|
245
|
+
name: z.string().default('Auxiora'),
|
|
246
|
+
pronouns: z.string().default('they/them'),
|
|
247
|
+
avatar: z.string().optional(),
|
|
248
|
+
vibe: z.string().max(200).optional(),
|
|
249
|
+
customInstructions: z.string().max(4000).optional(),
|
|
250
|
+
personality: z.string().default('professional'),
|
|
251
|
+
tone: z.object({
|
|
252
|
+
warmth: z.number().min(0).max(1).default(0.6),
|
|
253
|
+
directness: z.number().min(0).max(1).default(0.5),
|
|
254
|
+
humor: z.number().min(0).max(1).default(0.3),
|
|
255
|
+
formality: z.number().min(0).max(1).default(0.5),
|
|
256
|
+
}).default({}),
|
|
257
|
+
expertise: z.array(z.string()).default([]),
|
|
258
|
+
errorStyle: z.enum(['apologetic', 'matter_of_fact', 'self_deprecating', 'professional', 'gentle', 'detailed', 'encouraging', 'terse', 'educational']).default('professional'),
|
|
259
|
+
catchphrases: z.object({
|
|
260
|
+
greeting: z.string().optional(),
|
|
261
|
+
farewell: z.string().optional(),
|
|
262
|
+
thinking: z.string().optional(),
|
|
263
|
+
success: z.string().optional(),
|
|
264
|
+
error: z.string().optional(),
|
|
265
|
+
}).default({}),
|
|
266
|
+
boundaries: z.object({
|
|
267
|
+
neverJokeAbout: z.array(z.string()).default([]),
|
|
268
|
+
neverAdviseOn: z.array(z.string()).default([]),
|
|
269
|
+
}).default({}),
|
|
270
|
+
});
|
|
271
|
+
export const ConfigSchema = z.object({
|
|
272
|
+
gateway: GatewayConfigSchema.default({}),
|
|
273
|
+
auth: AuthConfigSchema.default({}),
|
|
274
|
+
rateLimit: RateLimitConfigSchema.default({}),
|
|
275
|
+
pairing: PairingConfigSchema.default({}),
|
|
276
|
+
provider: ProviderConfigSchema.default({}),
|
|
277
|
+
routing: ModelRoutingSchema.default({}),
|
|
278
|
+
session: SessionConfigSchema.default({}),
|
|
279
|
+
logging: LoggingConfigSchema.default({}),
|
|
280
|
+
channels: ChannelConfigSchema.default({}),
|
|
281
|
+
voice: VoiceConfigSchema.default({}),
|
|
282
|
+
webhooks: WebhookConfigSchema.default({}),
|
|
283
|
+
dashboard: DashboardConfigSchema.default({}),
|
|
284
|
+
plugins: PluginsConfigSchema.default({}),
|
|
285
|
+
memory: MemoryConfigSchema.default({}),
|
|
286
|
+
orchestration: OrchestrationConfigSchema.default({}),
|
|
287
|
+
agent: AgentIdentitySchema.default({}),
|
|
288
|
+
modes: ModesConfigSchema.default({}),
|
|
289
|
+
research: ResearchConfigSchema.default({}),
|
|
290
|
+
// [P12] Trust / Autonomy
|
|
291
|
+
trust: TrustConfigSchema.default({}),
|
|
292
|
+
intent: IntentConfigSchema.default({}),
|
|
293
|
+
// [P6] Desktop
|
|
294
|
+
desktop: DesktopConfigSchema.default({}),
|
|
295
|
+
// [P7] Cloud
|
|
296
|
+
cloud: CloudConfigSchema.default({}),
|
|
297
|
+
});
|
|
298
|
+
const ENV_PREFIX = 'AUXIORA_';
|
|
299
|
+
function camelToSnake(str) {
|
|
300
|
+
return str.replace(/[A-Z]/g, (letter) => `_${letter}`).toUpperCase();
|
|
301
|
+
}
|
|
302
|
+
function getEnvValue(path) {
|
|
303
|
+
const envKey = ENV_PREFIX + path.map(camelToSnake).join('_');
|
|
304
|
+
return process.env[envKey];
|
|
305
|
+
}
|
|
306
|
+
function applyEnvOverrides(config, path = []) {
|
|
307
|
+
for (const [key, value] of Object.entries(config)) {
|
|
308
|
+
const currentPath = [...path, key];
|
|
309
|
+
if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
|
|
310
|
+
applyEnvOverrides(value, currentPath);
|
|
311
|
+
}
|
|
312
|
+
else {
|
|
313
|
+
const envValue = getEnvValue(currentPath);
|
|
314
|
+
if (envValue !== undefined) {
|
|
315
|
+
if (typeof value === 'boolean') {
|
|
316
|
+
config[key] = envValue.toLowerCase() === 'true';
|
|
317
|
+
}
|
|
318
|
+
else if (typeof value === 'number') {
|
|
319
|
+
config[key] = Number(envValue);
|
|
320
|
+
}
|
|
321
|
+
else {
|
|
322
|
+
config[key] = envValue;
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
export async function loadConfig() {
|
|
329
|
+
const configPath = getConfigPath();
|
|
330
|
+
let rawConfig = {};
|
|
331
|
+
try {
|
|
332
|
+
const content = await fs.readFile(configPath, 'utf-8');
|
|
333
|
+
rawConfig = JSON.parse(content);
|
|
334
|
+
}
|
|
335
|
+
catch (error) {
|
|
336
|
+
if (error.code !== 'ENOENT') {
|
|
337
|
+
throw error;
|
|
338
|
+
}
|
|
339
|
+
// File doesn't exist, use defaults
|
|
340
|
+
}
|
|
341
|
+
// Apply environment variable overrides
|
|
342
|
+
applyEnvOverrides(rawConfig);
|
|
343
|
+
// Validate and return
|
|
344
|
+
return ConfigSchema.parse(rawConfig);
|
|
345
|
+
}
|
|
346
|
+
export async function saveConfig(config) {
|
|
347
|
+
const configPath = getConfigPath();
|
|
348
|
+
const configDir = path.dirname(configPath);
|
|
349
|
+
await fs.mkdir(configDir, { recursive: true });
|
|
350
|
+
await fs.writeFile(configPath, JSON.stringify(config, null, 2), 'utf-8');
|
|
351
|
+
if (!isWindows()) {
|
|
352
|
+
await fs.chmod(configPath, 0o600);
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
export async function getDefaultConfig() {
|
|
356
|
+
return ConfigSchema.parse({});
|
|
357
|
+
}
|
|
358
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration validation with detailed error messages
|
|
3
|
+
*/
|
|
4
|
+
import { type Config } from './index.js';
|
|
5
|
+
import type { ZodError } from 'zod';
|
|
6
|
+
export interface ValidationResult {
|
|
7
|
+
valid: boolean;
|
|
8
|
+
errors: ValidationError[];
|
|
9
|
+
warnings: ValidationWarning[];
|
|
10
|
+
}
|
|
11
|
+
export interface ValidationError {
|
|
12
|
+
path: string;
|
|
13
|
+
message: string;
|
|
14
|
+
value?: any;
|
|
15
|
+
suggestion?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface ValidationWarning {
|
|
18
|
+
path: string;
|
|
19
|
+
message: string;
|
|
20
|
+
suggestion: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Validate configuration and provide helpful error messages
|
|
24
|
+
*/
|
|
25
|
+
export declare function validateConfig(config: Config): ValidationResult;
|
|
26
|
+
/**
|
|
27
|
+
* Format validation errors for display
|
|
28
|
+
*/
|
|
29
|
+
export declare function formatValidationErrors(result: ValidationResult): string;
|
|
30
|
+
/**
|
|
31
|
+
* Format Zod validation errors
|
|
32
|
+
*/
|
|
33
|
+
export declare function formatZodError(error: ZodError): string;
|
|
34
|
+
/**
|
|
35
|
+
* Validate and report configuration issues
|
|
36
|
+
*/
|
|
37
|
+
export declare function validateAndReport(config: Config): boolean;
|
|
38
|
+
//# sourceMappingURL=validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAoH/D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAwBvE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAwBtD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAiBzD"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration validation with detailed error messages
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Validate configuration and provide helpful error messages
|
|
6
|
+
*/
|
|
7
|
+
export function validateConfig(config) {
|
|
8
|
+
const errors = [];
|
|
9
|
+
const warnings = [];
|
|
10
|
+
// Validate gateway configuration
|
|
11
|
+
if (config.gateway.host === '0.0.0.0' && config.auth.mode === 'none') {
|
|
12
|
+
warnings.push({
|
|
13
|
+
path: 'gateway.host',
|
|
14
|
+
message: 'Gateway bound to 0.0.0.0 with no authentication',
|
|
15
|
+
suggestion: 'Consider binding to 127.0.0.1 or enabling JWT authentication for security',
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
if (config.gateway.port < 1024) {
|
|
19
|
+
warnings.push({
|
|
20
|
+
path: 'gateway.port',
|
|
21
|
+
message: `Port ${config.gateway.port} requires elevated privileges`,
|
|
22
|
+
suggestion: 'Use a port >= 1024 to avoid needing root/admin access',
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
// Validate authentication configuration
|
|
26
|
+
if (config.auth.mode === 'jwt') {
|
|
27
|
+
if (!config.auth.jwtSecret) {
|
|
28
|
+
errors.push({
|
|
29
|
+
path: 'auth.jwtSecret',
|
|
30
|
+
message: 'JWT secret required when auth mode is "jwt"',
|
|
31
|
+
suggestion: 'Generate a secret: openssl rand -hex 32',
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
else if (config.auth.jwtSecret.length < 32) {
|
|
35
|
+
warnings.push({
|
|
36
|
+
path: 'auth.jwtSecret',
|
|
37
|
+
message: 'JWT secret should be at least 32 characters',
|
|
38
|
+
suggestion: 'Use a longer secret for better security: openssl rand -hex 32',
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
if (config.auth.mode === 'password' && !config.auth.passwordHash) {
|
|
43
|
+
errors.push({
|
|
44
|
+
path: 'auth.passwordHash',
|
|
45
|
+
message: 'Password hash required when auth mode is "password"',
|
|
46
|
+
suggestion: 'Set a password using the CLI: auxiora auth set-password',
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
// Validate rate limiting
|
|
50
|
+
if (!config.rateLimit.enabled) {
|
|
51
|
+
warnings.push({
|
|
52
|
+
path: 'rateLimit.enabled',
|
|
53
|
+
message: 'Rate limiting is disabled',
|
|
54
|
+
suggestion: 'Enable rate limiting to prevent abuse',
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
if (config.rateLimit.maxRequests > 1000) {
|
|
58
|
+
warnings.push({
|
|
59
|
+
path: 'rateLimit.maxRequests',
|
|
60
|
+
message: `High rate limit (${config.rateLimit.maxRequests} requests)`,
|
|
61
|
+
suggestion: 'Consider a lower limit to prevent API quota exhaustion',
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
// Validate provider configuration
|
|
65
|
+
if (config.provider.primary === config.provider.fallback) {
|
|
66
|
+
warnings.push({
|
|
67
|
+
path: 'provider.fallback',
|
|
68
|
+
message: 'Fallback provider same as primary',
|
|
69
|
+
suggestion: 'Use a different provider for fallback or remove fallback',
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
// Validate session configuration
|
|
73
|
+
if (config.session.maxContextTokens > 200000) {
|
|
74
|
+
warnings.push({
|
|
75
|
+
path: 'session.maxContextTokens',
|
|
76
|
+
message: 'Very large context window may cause performance issues',
|
|
77
|
+
suggestion: 'Consider reducing to 100000 tokens for better performance',
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
if (config.session.ttlMinutes < 60) {
|
|
81
|
+
warnings.push({
|
|
82
|
+
path: 'session.ttlMinutes',
|
|
83
|
+
message: 'Short session TTL may cause frequent session loss',
|
|
84
|
+
suggestion: 'Consider at least 60 minutes for better user experience',
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
// Validate channel configuration
|
|
88
|
+
const enabledChannels = Object.entries(config.channels)
|
|
89
|
+
.filter(([_, channelConfig]) => channelConfig.enabled)
|
|
90
|
+
.map(([name]) => name);
|
|
91
|
+
if (enabledChannels.length === 0) {
|
|
92
|
+
warnings.push({
|
|
93
|
+
path: 'channels',
|
|
94
|
+
message: 'No channels enabled',
|
|
95
|
+
suggestion: 'Enable at least webchat for testing',
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
// Validate logging configuration
|
|
99
|
+
if (config.logging.maxFileSizeMb > 100) {
|
|
100
|
+
warnings.push({
|
|
101
|
+
path: 'logging.maxFileSizeMb',
|
|
102
|
+
message: 'Large log file size may consume significant disk space',
|
|
103
|
+
suggestion: 'Consider a smaller size with log rotation',
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
return {
|
|
107
|
+
valid: errors.length === 0,
|
|
108
|
+
errors,
|
|
109
|
+
warnings,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Format validation errors for display
|
|
114
|
+
*/
|
|
115
|
+
export function formatValidationErrors(result) {
|
|
116
|
+
const lines = [];
|
|
117
|
+
if (result.errors.length > 0) {
|
|
118
|
+
lines.push('ā Configuration Errors:\n');
|
|
119
|
+
for (const error of result.errors) {
|
|
120
|
+
lines.push(` ${error.path}: ${error.message}`);
|
|
121
|
+
if (error.suggestion) {
|
|
122
|
+
lines.push(` š” ${error.suggestion}`);
|
|
123
|
+
}
|
|
124
|
+
lines.push('');
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
if (result.warnings.length > 0) {
|
|
128
|
+
lines.push('ā ļø Configuration Warnings:\n');
|
|
129
|
+
for (const warning of result.warnings) {
|
|
130
|
+
lines.push(` ${warning.path}: ${warning.message}`);
|
|
131
|
+
lines.push(` š” ${warning.suggestion}`);
|
|
132
|
+
lines.push('');
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return lines.join('\n');
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Format Zod validation errors
|
|
139
|
+
*/
|
|
140
|
+
export function formatZodError(error) {
|
|
141
|
+
const lines = ['ā Configuration Validation Failed:\n'];
|
|
142
|
+
for (const issue of error.issues) {
|
|
143
|
+
const path = issue.path.join('.');
|
|
144
|
+
lines.push(` ${path || 'config'}: ${issue.message}`);
|
|
145
|
+
// Add helpful suggestions based on error type
|
|
146
|
+
if (issue.code === 'invalid_type') {
|
|
147
|
+
lines.push(` š” Expected ${issue.expected}, got ${issue.received}`);
|
|
148
|
+
}
|
|
149
|
+
else if (issue.code === 'invalid_enum_value') {
|
|
150
|
+
lines.push(` š” Valid options: ${issue.options.join(', ')}`);
|
|
151
|
+
}
|
|
152
|
+
else if (issue.code === 'too_small') {
|
|
153
|
+
lines.push(` š” Minimum value: ${issue.minimum}`);
|
|
154
|
+
}
|
|
155
|
+
else if (issue.code === 'too_big') {
|
|
156
|
+
lines.push(` š” Maximum value: ${issue.maximum}`);
|
|
157
|
+
}
|
|
158
|
+
lines.push('');
|
|
159
|
+
}
|
|
160
|
+
lines.push('See .env.example for configuration reference');
|
|
161
|
+
return lines.join('\n');
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Validate and report configuration issues
|
|
165
|
+
*/
|
|
166
|
+
export function validateAndReport(config) {
|
|
167
|
+
const result = validateConfig(config);
|
|
168
|
+
if (!result.valid || result.warnings.length > 0) {
|
|
169
|
+
console.error(formatValidationErrors(result));
|
|
170
|
+
}
|
|
171
|
+
if (!result.valid) {
|
|
172
|
+
console.error('\nā Cannot start with invalid configuration\n');
|
|
173
|
+
return false;
|
|
174
|
+
}
|
|
175
|
+
if (result.warnings.length > 0) {
|
|
176
|
+
console.warn('ā ļø Starting with warnings (see above)\n');
|
|
177
|
+
}
|
|
178
|
+
return true;
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@auxiora/config",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Zod-validated configuration system for Auxiora",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.js"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"dependencies": {
|
|
15
|
+
"zod": "^3.24.0",
|
|
16
|
+
"@auxiora/core": "1.0.0"
|
|
17
|
+
},
|
|
18
|
+
"engines": {
|
|
19
|
+
"node": ">=22.0.0"
|
|
20
|
+
},
|
|
21
|
+
"scripts": {
|
|
22
|
+
"build": "tsc",
|
|
23
|
+
"clean": "rm -rf dist",
|
|
24
|
+
"typecheck": "tsc --noEmit"
|
|
25
|
+
}
|
|
26
|
+
}
|