@codemem/server 0.23.0 → 0.24.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/dist/index.js CHANGED
@@ -193,6 +193,15 @@ var ALLOWED_KEYS = [
193
193
  "observer_base_url",
194
194
  "observer_provider",
195
195
  "observer_model",
196
+ "observer_tier_routing_enabled",
197
+ "observer_simple_model",
198
+ "observer_simple_temperature",
199
+ "observer_rich_model",
200
+ "observer_rich_temperature",
201
+ "observer_rich_openai_use_responses",
202
+ "observer_rich_reasoning_effort",
203
+ "observer_rich_reasoning_summary",
204
+ "observer_rich_max_output_tokens",
196
205
  "observer_runtime",
197
206
  "observer_auth_source",
198
207
  "observer_auth_file",
@@ -221,6 +230,8 @@ var DEFAULTS = {
221
230
  claude_command: ["claude"],
222
231
  observer_runtime: "api_http",
223
232
  observer_auth_source: "auto",
233
+ observer_tier_routing_enabled: false,
234
+ observer_rich_openai_use_responses: false,
224
235
  observer_auth_command: [],
225
236
  observer_auth_timeout_ms: 1500,
226
237
  observer_auth_cache_ttl_s: 300,
@@ -319,6 +330,13 @@ function parsePositiveInt(value, allowZero = false) {
319
330
  if (allowZero) return parsed >= 0 ? parsed : null;
320
331
  return parsed > 0 ? parsed : null;
321
332
  }
333
+ function parseFiniteNumber(value, allowZero = true) {
334
+ if (typeof value === "boolean") return null;
335
+ const parsed = typeof value === "number" ? value : typeof value === "string" && value.trim().length > 0 ? Number(value.trim()) : NaN;
336
+ if (!Number.isFinite(parsed)) return null;
337
+ if (allowZero) return parsed >= 0 ? parsed : null;
338
+ return parsed > 0 ? parsed : null;
339
+ }
322
340
  function asStringMap(value) {
323
341
  if (value == null || typeof value !== "object" || Array.isArray(value)) return null;
324
342
  const parsed = {};
@@ -388,13 +406,24 @@ function validateAndApplyUpdate(configData, key, value, providers) {
388
406
  configData[key] = value;
389
407
  return null;
390
408
  }
391
- if (key === "observer_base_url" || key === "observer_model" || key === "observer_auth_file" || key === "sync_host" || key === "sync_coordinator_url" || key === "sync_coordinator_group") {
409
+ if (key === "observer_tier_routing_enabled" || key === "observer_rich_openai_use_responses") {
410
+ if (typeof value !== "boolean") return `${key} must be boolean`;
411
+ configData[key] = value;
412
+ return null;
413
+ }
414
+ if (key === "observer_base_url" || key === "observer_model" || key === "observer_simple_model" || key === "observer_rich_model" || key === "observer_rich_reasoning_effort" || key === "observer_rich_reasoning_summary" || key === "observer_auth_file" || key === "sync_host" || key === "sync_coordinator_url" || key === "sync_coordinator_group") {
392
415
  if (typeof value !== "string") return `${key} must be string`;
393
416
  const trimmed = value.trim();
394
417
  if (!trimmed) delete configData[key];
395
418
  else configData[key] = trimmed;
396
419
  return null;
397
420
  }
421
+ if (key === "observer_simple_temperature" || key === "observer_rich_temperature") {
422
+ const parsed = parseFiniteNumber(value, true);
423
+ if (parsed == null) return `${key} must be non-negative number`;
424
+ configData[key] = parsed;
425
+ return null;
426
+ }
398
427
  const allowZero = key === "observer_auth_cache_ttl_s";
399
428
  const parsed = parsePositiveInt(value, allowZero);
400
429
  if (parsed == null) return `${key} must be ${allowZero ? "non-negative int" : "int"}`;