@otto-code/brain 0.8.10 → 0.8.13

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.
Files changed (65) hide show
  1. package/dist/commands/bench.js +2 -2
  2. package/dist/commands/calibrate.js +11 -2
  3. package/dist/commands/catalog.d.ts +1 -0
  4. package/dist/commands/catalog.js +1 -0
  5. package/dist/commands/pull.d.ts +1 -0
  6. package/dist/commands/pull.js +12 -3
  7. package/dist/commands/search.d.ts +1 -0
  8. package/dist/commands/search.js +12 -2
  9. package/dist/config/index.d.ts +2 -2
  10. package/dist/config/index.js +2 -2
  11. package/dist/config/profile-edit.d.ts +88 -1
  12. package/dist/config/profile-edit.js +294 -43
  13. package/dist/config/profiles.d.ts +19 -3
  14. package/dist/config/profiles.js +52 -4
  15. package/dist/config/schema.d.ts +616 -0
  16. package/dist/config/schema.js +65 -3
  17. package/dist/config/store.js +7 -4
  18. package/dist/gguf.d.ts +7 -0
  19. package/dist/gguf.js +15 -2
  20. package/dist/models/download.d.ts +1 -1
  21. package/dist/models/download.js +2 -2
  22. package/dist/models/enrich.d.ts +6 -0
  23. package/dist/models/enrich.js +27 -1
  24. package/dist/models/index.d.ts +1 -1
  25. package/dist/models/index.js +4 -3
  26. package/dist/ops/archive.d.ts +14 -1
  27. package/dist/ops/archive.js +9 -5
  28. package/dist/ops/calibrate.d.ts +38 -3
  29. package/dist/ops/calibrate.js +68 -19
  30. package/dist/ops/report.js +51 -1
  31. package/dist/ops/results.d.ts +77 -11
  32. package/dist/ops/results.js +84 -14
  33. package/dist/ops/sweep.d.ts +38 -1
  34. package/dist/ops/sweep.js +61 -10
  35. package/dist/runtime/args.d.ts +15 -2
  36. package/dist/runtime/args.js +60 -5
  37. package/dist/runtime/managed.js +2 -2
  38. package/dist/service/activity.d.ts +19 -0
  39. package/dist/service/activity.js +47 -4
  40. package/dist/service/host-api.d.ts +28 -4
  41. package/dist/service/host-api.js +109 -28
  42. package/dist/service/log-format.d.ts +18 -0
  43. package/dist/service/log-format.js +32 -0
  44. package/dist/service/process-pool.d.ts +45 -0
  45. package/dist/service/process-pool.js +271 -0
  46. package/dist/service/router.d.ts +74 -3
  47. package/dist/service/router.js +277 -51
  48. package/dist/service/run-log.d.ts +6 -1
  49. package/dist/service/run-log.js +46 -4
  50. package/dist/service/scheduler.d.ts +250 -31
  51. package/dist/service/scheduler.js +408 -63
  52. package/dist/service/serve.d.ts +4 -0
  53. package/dist/service/serve.js +376 -142
  54. package/dist/service/status-events.d.ts +14 -1
  55. package/dist/service/status-events.js +112 -12
  56. package/dist/service/supervisor.d.ts +9 -7
  57. package/dist/service/supervisor.js +37 -12
  58. package/dist/sysmon.d.ts +15 -0
  59. package/dist/sysmon.js +56 -9
  60. package/dist/tui/app.d.ts +8 -2
  61. package/dist/tui/app.js +83 -26
  62. package/dist/types.d.ts +18 -0
  63. package/dist/vram.d.ts +37 -0
  64. package/dist/vram.js +57 -18
  65. package/package.json +1 -1
@@ -6,6 +6,34 @@
6
6
  */
7
7
  import { z } from "zod";
8
8
  export declare const DEFAULT_REASONING_MESSAGE = "Enough analysis. Write the complete answer now.";
9
+ /**
10
+ * Model-native names for reasoning controls exposed by its chat template.
11
+ * These are catalog metadata, not caller-provided flags: the host owns the
12
+ * translation from the OpenAI-compatible request into template arguments.
13
+ */
14
+ export declare const ReasoningTemplateSchema: z.ZodObject<{
15
+ enableThinkingArgument: z.ZodString;
16
+ effortArgument: z.ZodString;
17
+ }, "strict", z.ZodTypeAny, {
18
+ enableThinkingArgument: string;
19
+ effortArgument: string;
20
+ }, {
21
+ enableThinkingArgument: string;
22
+ effortArgument: string;
23
+ }>;
24
+ export type ReasoningTemplate = z.infer<typeof ReasoningTemplateSchema>;
25
+ /** A template's native spelling for Brain's provider-neutral preservation setting. */
26
+ export declare const ReasoningPreservationSchema: z.ZodObject<{
27
+ templateArgument: z.ZodString;
28
+ default: z.ZodOptional<z.ZodBoolean>;
29
+ }, "strict", z.ZodTypeAny, {
30
+ templateArgument: string;
31
+ default?: boolean | undefined;
32
+ }, {
33
+ templateArgument: string;
34
+ default?: boolean | undefined;
35
+ }>;
36
+ export type ReasoningPreservation = z.infer<typeof ReasoningPreservationSchema>;
9
37
  export declare const ProfileSchema: z.ZodObject<{
10
38
  modelId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
11
39
  modelPath: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -22,7 +50,31 @@ export declare const ProfileSchema: z.ZodObject<{
22
50
  vision: z.ZodDefault<z.ZodBoolean>;
23
51
  reasoningBudget: z.ZodDefault<z.ZodNumber>;
24
52
  reasoningBudgetMessage: z.ZodDefault<z.ZodString>;
53
+ /**
54
+ * Tri-state, matching llama-server's own `--reasoning-preserve` /
55
+ * `--no-reasoning-preserve` / unset: `true` keeps the reasoning trace in the
56
+ * whole history, `false` forces it to the last assistant message only, and
57
+ * null/undefined leaves the template's own default alone. Null is the
58
+ * default precisely so an untouched profile emits no flag and launches
59
+ * exactly as it did before this field existed.
60
+ */
61
+ preserveReasoning: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
62
+ temperature: z.ZodDefault<z.ZodNumber>;
63
+ topP: z.ZodDefault<z.ZodNumber>;
64
+ topK: z.ZodDefault<z.ZodNumber>;
65
+ minP: z.ZodDefault<z.ZodNumber>;
66
+ presencePenalty: z.ZodDefault<z.ZodNumber>;
67
+ repeatPenalty: z.ZodDefault<z.ZodNumber>;
25
68
  parallelSlots: z.ZodDefault<z.ZodNumber>;
69
+ /**
70
+ * How many chats' KV state llama-server may park in system RAM when they
71
+ * lose their GPU slot, so returning to one costs a bulk copy instead of a
72
+ * full re-prefill. Stored as a count, not a size: the byte budget it turns
73
+ * into (`--cache-ram`) depends on the measured KV bytes/token and the
74
+ * per-slot context, both of which move when other fields are edited.
75
+ * 0 means "leave llama.cpp's own default alone" - the flag is not emitted.
76
+ */
77
+ cachedChats: z.ZodDefault<z.ZodNumber>;
26
78
  /** RoPE extension factor; 1 keeps the GGUF-native context window. */
27
79
  contextMultiplier: z.ZodDefault<z.ZodNumber>;
28
80
  /** Cleared only by a successful calibration of this saved model profile. */
@@ -68,7 +120,31 @@ export declare const ProfileSchema: z.ZodObject<{
68
120
  vision: z.ZodDefault<z.ZodBoolean>;
69
121
  reasoningBudget: z.ZodDefault<z.ZodNumber>;
70
122
  reasoningBudgetMessage: z.ZodDefault<z.ZodString>;
123
+ /**
124
+ * Tri-state, matching llama-server's own `--reasoning-preserve` /
125
+ * `--no-reasoning-preserve` / unset: `true` keeps the reasoning trace in the
126
+ * whole history, `false` forces it to the last assistant message only, and
127
+ * null/undefined leaves the template's own default alone. Null is the
128
+ * default precisely so an untouched profile emits no flag and launches
129
+ * exactly as it did before this field existed.
130
+ */
131
+ preserveReasoning: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
132
+ temperature: z.ZodDefault<z.ZodNumber>;
133
+ topP: z.ZodDefault<z.ZodNumber>;
134
+ topK: z.ZodDefault<z.ZodNumber>;
135
+ minP: z.ZodDefault<z.ZodNumber>;
136
+ presencePenalty: z.ZodDefault<z.ZodNumber>;
137
+ repeatPenalty: z.ZodDefault<z.ZodNumber>;
71
138
  parallelSlots: z.ZodDefault<z.ZodNumber>;
139
+ /**
140
+ * How many chats' KV state llama-server may park in system RAM when they
141
+ * lose their GPU slot, so returning to one costs a bulk copy instead of a
142
+ * full re-prefill. Stored as a count, not a size: the byte budget it turns
143
+ * into (`--cache-ram`) depends on the measured KV bytes/token and the
144
+ * per-slot context, both of which move when other fields are edited.
145
+ * 0 means "leave llama.cpp's own default alone" - the flag is not emitted.
146
+ */
147
+ cachedChats: z.ZodDefault<z.ZodNumber>;
72
148
  /** RoPE extension factor; 1 keeps the GGUF-native context window. */
73
149
  contextMultiplier: z.ZodDefault<z.ZodNumber>;
74
150
  /** Cleared only by a successful calibration of this saved model profile. */
@@ -114,7 +190,31 @@ export declare const ProfileSchema: z.ZodObject<{
114
190
  vision: z.ZodDefault<z.ZodBoolean>;
115
191
  reasoningBudget: z.ZodDefault<z.ZodNumber>;
116
192
  reasoningBudgetMessage: z.ZodDefault<z.ZodString>;
193
+ /**
194
+ * Tri-state, matching llama-server's own `--reasoning-preserve` /
195
+ * `--no-reasoning-preserve` / unset: `true` keeps the reasoning trace in the
196
+ * whole history, `false` forces it to the last assistant message only, and
197
+ * null/undefined leaves the template's own default alone. Null is the
198
+ * default precisely so an untouched profile emits no flag and launches
199
+ * exactly as it did before this field existed.
200
+ */
201
+ preserveReasoning: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
202
+ temperature: z.ZodDefault<z.ZodNumber>;
203
+ topP: z.ZodDefault<z.ZodNumber>;
204
+ topK: z.ZodDefault<z.ZodNumber>;
205
+ minP: z.ZodDefault<z.ZodNumber>;
206
+ presencePenalty: z.ZodDefault<z.ZodNumber>;
207
+ repeatPenalty: z.ZodDefault<z.ZodNumber>;
117
208
  parallelSlots: z.ZodDefault<z.ZodNumber>;
209
+ /**
210
+ * How many chats' KV state llama-server may park in system RAM when they
211
+ * lose their GPU slot, so returning to one costs a bulk copy instead of a
212
+ * full re-prefill. Stored as a count, not a size: the byte budget it turns
213
+ * into (`--cache-ram`) depends on the measured KV bytes/token and the
214
+ * per-slot context, both of which move when other fields are edited.
215
+ * 0 means "leave llama.cpp's own default alone" - the flag is not emitted.
216
+ */
217
+ cachedChats: z.ZodDefault<z.ZodNumber>;
118
218
  /** RoPE extension factor; 1 keeps the GGUF-native context window. */
119
219
  contextMultiplier: z.ZodDefault<z.ZodNumber>;
120
220
  /** Cleared only by a successful calibration of this saved model profile. */
@@ -287,7 +387,31 @@ export declare const ProfilesStoreSchema: z.ZodObject<{
287
387
  vision: z.ZodDefault<z.ZodBoolean>;
288
388
  reasoningBudget: z.ZodDefault<z.ZodNumber>;
289
389
  reasoningBudgetMessage: z.ZodDefault<z.ZodString>;
390
+ /**
391
+ * Tri-state, matching llama-server's own `--reasoning-preserve` /
392
+ * `--no-reasoning-preserve` / unset: `true` keeps the reasoning trace in the
393
+ * whole history, `false` forces it to the last assistant message only, and
394
+ * null/undefined leaves the template's own default alone. Null is the
395
+ * default precisely so an untouched profile emits no flag and launches
396
+ * exactly as it did before this field existed.
397
+ */
398
+ preserveReasoning: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
399
+ temperature: z.ZodDefault<z.ZodNumber>;
400
+ topP: z.ZodDefault<z.ZodNumber>;
401
+ topK: z.ZodDefault<z.ZodNumber>;
402
+ minP: z.ZodDefault<z.ZodNumber>;
403
+ presencePenalty: z.ZodDefault<z.ZodNumber>;
404
+ repeatPenalty: z.ZodDefault<z.ZodNumber>;
290
405
  parallelSlots: z.ZodDefault<z.ZodNumber>;
406
+ /**
407
+ * How many chats' KV state llama-server may park in system RAM when they
408
+ * lose their GPU slot, so returning to one costs a bulk copy instead of a
409
+ * full re-prefill. Stored as a count, not a size: the byte budget it turns
410
+ * into (`--cache-ram`) depends on the measured KV bytes/token and the
411
+ * per-slot context, both of which move when other fields are edited.
412
+ * 0 means "leave llama.cpp's own default alone" - the flag is not emitted.
413
+ */
414
+ cachedChats: z.ZodDefault<z.ZodNumber>;
291
415
  /** RoPE extension factor; 1 keeps the GGUF-native context window. */
292
416
  contextMultiplier: z.ZodDefault<z.ZodNumber>;
293
417
  /** Cleared only by a successful calibration of this saved model profile. */
@@ -333,7 +457,31 @@ export declare const ProfilesStoreSchema: z.ZodObject<{
333
457
  vision: z.ZodDefault<z.ZodBoolean>;
334
458
  reasoningBudget: z.ZodDefault<z.ZodNumber>;
335
459
  reasoningBudgetMessage: z.ZodDefault<z.ZodString>;
460
+ /**
461
+ * Tri-state, matching llama-server's own `--reasoning-preserve` /
462
+ * `--no-reasoning-preserve` / unset: `true` keeps the reasoning trace in the
463
+ * whole history, `false` forces it to the last assistant message only, and
464
+ * null/undefined leaves the template's own default alone. Null is the
465
+ * default precisely so an untouched profile emits no flag and launches
466
+ * exactly as it did before this field existed.
467
+ */
468
+ preserveReasoning: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
469
+ temperature: z.ZodDefault<z.ZodNumber>;
470
+ topP: z.ZodDefault<z.ZodNumber>;
471
+ topK: z.ZodDefault<z.ZodNumber>;
472
+ minP: z.ZodDefault<z.ZodNumber>;
473
+ presencePenalty: z.ZodDefault<z.ZodNumber>;
474
+ repeatPenalty: z.ZodDefault<z.ZodNumber>;
336
475
  parallelSlots: z.ZodDefault<z.ZodNumber>;
476
+ /**
477
+ * How many chats' KV state llama-server may park in system RAM when they
478
+ * lose their GPU slot, so returning to one costs a bulk copy instead of a
479
+ * full re-prefill. Stored as a count, not a size: the byte budget it turns
480
+ * into (`--cache-ram`) depends on the measured KV bytes/token and the
481
+ * per-slot context, both of which move when other fields are edited.
482
+ * 0 means "leave llama.cpp's own default alone" - the flag is not emitted.
483
+ */
484
+ cachedChats: z.ZodDefault<z.ZodNumber>;
337
485
  /** RoPE extension factor; 1 keeps the GGUF-native context window. */
338
486
  contextMultiplier: z.ZodDefault<z.ZodNumber>;
339
487
  /** Cleared only by a successful calibration of this saved model profile. */
@@ -379,7 +527,31 @@ export declare const ProfilesStoreSchema: z.ZodObject<{
379
527
  vision: z.ZodDefault<z.ZodBoolean>;
380
528
  reasoningBudget: z.ZodDefault<z.ZodNumber>;
381
529
  reasoningBudgetMessage: z.ZodDefault<z.ZodString>;
530
+ /**
531
+ * Tri-state, matching llama-server's own `--reasoning-preserve` /
532
+ * `--no-reasoning-preserve` / unset: `true` keeps the reasoning trace in the
533
+ * whole history, `false` forces it to the last assistant message only, and
534
+ * null/undefined leaves the template's own default alone. Null is the
535
+ * default precisely so an untouched profile emits no flag and launches
536
+ * exactly as it did before this field existed.
537
+ */
538
+ preserveReasoning: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
539
+ temperature: z.ZodDefault<z.ZodNumber>;
540
+ topP: z.ZodDefault<z.ZodNumber>;
541
+ topK: z.ZodDefault<z.ZodNumber>;
542
+ minP: z.ZodDefault<z.ZodNumber>;
543
+ presencePenalty: z.ZodDefault<z.ZodNumber>;
544
+ repeatPenalty: z.ZodDefault<z.ZodNumber>;
382
545
  parallelSlots: z.ZodDefault<z.ZodNumber>;
546
+ /**
547
+ * How many chats' KV state llama-server may park in system RAM when they
548
+ * lose their GPU slot, so returning to one costs a bulk copy instead of a
549
+ * full re-prefill. Stored as a count, not a size: the byte budget it turns
550
+ * into (`--cache-ram`) depends on the measured KV bytes/token and the
551
+ * per-slot context, both of which move when other fields are edited.
552
+ * 0 means "leave llama.cpp's own default alone" - the flag is not emitted.
553
+ */
554
+ cachedChats: z.ZodDefault<z.ZodNumber>;
383
555
  /** RoPE extension factor; 1 keeps the GGUF-native context window. */
384
556
  contextMultiplier: z.ZodDefault<z.ZodNumber>;
385
557
  /** Cleared only by a successful calibration of this saved model profile. */
@@ -539,7 +711,31 @@ export declare const ProfilesStoreSchema: z.ZodObject<{
539
711
  vision: z.ZodDefault<z.ZodBoolean>;
540
712
  reasoningBudget: z.ZodDefault<z.ZodNumber>;
541
713
  reasoningBudgetMessage: z.ZodDefault<z.ZodString>;
714
+ /**
715
+ * Tri-state, matching llama-server's own `--reasoning-preserve` /
716
+ * `--no-reasoning-preserve` / unset: `true` keeps the reasoning trace in the
717
+ * whole history, `false` forces it to the last assistant message only, and
718
+ * null/undefined leaves the template's own default alone. Null is the
719
+ * default precisely so an untouched profile emits no flag and launches
720
+ * exactly as it did before this field existed.
721
+ */
722
+ preserveReasoning: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
723
+ temperature: z.ZodDefault<z.ZodNumber>;
724
+ topP: z.ZodDefault<z.ZodNumber>;
725
+ topK: z.ZodDefault<z.ZodNumber>;
726
+ minP: z.ZodDefault<z.ZodNumber>;
727
+ presencePenalty: z.ZodDefault<z.ZodNumber>;
728
+ repeatPenalty: z.ZodDefault<z.ZodNumber>;
542
729
  parallelSlots: z.ZodDefault<z.ZodNumber>;
730
+ /**
731
+ * How many chats' KV state llama-server may park in system RAM when they
732
+ * lose their GPU slot, so returning to one costs a bulk copy instead of a
733
+ * full re-prefill. Stored as a count, not a size: the byte budget it turns
734
+ * into (`--cache-ram`) depends on the measured KV bytes/token and the
735
+ * per-slot context, both of which move when other fields are edited.
736
+ * 0 means "leave llama.cpp's own default alone" - the flag is not emitted.
737
+ */
738
+ cachedChats: z.ZodDefault<z.ZodNumber>;
543
739
  /** RoPE extension factor; 1 keeps the GGUF-native context window. */
544
740
  contextMultiplier: z.ZodDefault<z.ZodNumber>;
545
741
  /** Cleared only by a successful calibration of this saved model profile. */
@@ -585,7 +781,31 @@ export declare const ProfilesStoreSchema: z.ZodObject<{
585
781
  vision: z.ZodDefault<z.ZodBoolean>;
586
782
  reasoningBudget: z.ZodDefault<z.ZodNumber>;
587
783
  reasoningBudgetMessage: z.ZodDefault<z.ZodString>;
784
+ /**
785
+ * Tri-state, matching llama-server's own `--reasoning-preserve` /
786
+ * `--no-reasoning-preserve` / unset: `true` keeps the reasoning trace in the
787
+ * whole history, `false` forces it to the last assistant message only, and
788
+ * null/undefined leaves the template's own default alone. Null is the
789
+ * default precisely so an untouched profile emits no flag and launches
790
+ * exactly as it did before this field existed.
791
+ */
792
+ preserveReasoning: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
793
+ temperature: z.ZodDefault<z.ZodNumber>;
794
+ topP: z.ZodDefault<z.ZodNumber>;
795
+ topK: z.ZodDefault<z.ZodNumber>;
796
+ minP: z.ZodDefault<z.ZodNumber>;
797
+ presencePenalty: z.ZodDefault<z.ZodNumber>;
798
+ repeatPenalty: z.ZodDefault<z.ZodNumber>;
588
799
  parallelSlots: z.ZodDefault<z.ZodNumber>;
800
+ /**
801
+ * How many chats' KV state llama-server may park in system RAM when they
802
+ * lose their GPU slot, so returning to one costs a bulk copy instead of a
803
+ * full re-prefill. Stored as a count, not a size: the byte budget it turns
804
+ * into (`--cache-ram`) depends on the measured KV bytes/token and the
805
+ * per-slot context, both of which move when other fields are edited.
806
+ * 0 means "leave llama.cpp's own default alone" - the flag is not emitted.
807
+ */
808
+ cachedChats: z.ZodDefault<z.ZodNumber>;
589
809
  /** RoPE extension factor; 1 keeps the GGUF-native context window. */
590
810
  contextMultiplier: z.ZodDefault<z.ZodNumber>;
591
811
  /** Cleared only by a successful calibration of this saved model profile. */
@@ -631,7 +851,31 @@ export declare const ProfilesStoreSchema: z.ZodObject<{
631
851
  vision: z.ZodDefault<z.ZodBoolean>;
632
852
  reasoningBudget: z.ZodDefault<z.ZodNumber>;
633
853
  reasoningBudgetMessage: z.ZodDefault<z.ZodString>;
854
+ /**
855
+ * Tri-state, matching llama-server's own `--reasoning-preserve` /
856
+ * `--no-reasoning-preserve` / unset: `true` keeps the reasoning trace in the
857
+ * whole history, `false` forces it to the last assistant message only, and
858
+ * null/undefined leaves the template's own default alone. Null is the
859
+ * default precisely so an untouched profile emits no flag and launches
860
+ * exactly as it did before this field existed.
861
+ */
862
+ preserveReasoning: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
863
+ temperature: z.ZodDefault<z.ZodNumber>;
864
+ topP: z.ZodDefault<z.ZodNumber>;
865
+ topK: z.ZodDefault<z.ZodNumber>;
866
+ minP: z.ZodDefault<z.ZodNumber>;
867
+ presencePenalty: z.ZodDefault<z.ZodNumber>;
868
+ repeatPenalty: z.ZodDefault<z.ZodNumber>;
634
869
  parallelSlots: z.ZodDefault<z.ZodNumber>;
870
+ /**
871
+ * How many chats' KV state llama-server may park in system RAM when they
872
+ * lose their GPU slot, so returning to one costs a bulk copy instead of a
873
+ * full re-prefill. Stored as a count, not a size: the byte budget it turns
874
+ * into (`--cache-ram`) depends on the measured KV bytes/token and the
875
+ * per-slot context, both of which move when other fields are edited.
876
+ * 0 means "leave llama.cpp's own default alone" - the flag is not emitted.
877
+ */
878
+ cachedChats: z.ZodDefault<z.ZodNumber>;
635
879
  /** RoPE extension factor; 1 keeps the GGUF-native context window. */
636
880
  contextMultiplier: z.ZodDefault<z.ZodNumber>;
637
881
  /** Cleared only by a successful calibration of this saved model profile. */
@@ -791,7 +1035,31 @@ export declare const ProfilesStoreSchema: z.ZodObject<{
791
1035
  vision: z.ZodDefault<z.ZodBoolean>;
792
1036
  reasoningBudget: z.ZodDefault<z.ZodNumber>;
793
1037
  reasoningBudgetMessage: z.ZodDefault<z.ZodString>;
1038
+ /**
1039
+ * Tri-state, matching llama-server's own `--reasoning-preserve` /
1040
+ * `--no-reasoning-preserve` / unset: `true` keeps the reasoning trace in the
1041
+ * whole history, `false` forces it to the last assistant message only, and
1042
+ * null/undefined leaves the template's own default alone. Null is the
1043
+ * default precisely so an untouched profile emits no flag and launches
1044
+ * exactly as it did before this field existed.
1045
+ */
1046
+ preserveReasoning: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
1047
+ temperature: z.ZodDefault<z.ZodNumber>;
1048
+ topP: z.ZodDefault<z.ZodNumber>;
1049
+ topK: z.ZodDefault<z.ZodNumber>;
1050
+ minP: z.ZodDefault<z.ZodNumber>;
1051
+ presencePenalty: z.ZodDefault<z.ZodNumber>;
1052
+ repeatPenalty: z.ZodDefault<z.ZodNumber>;
794
1053
  parallelSlots: z.ZodDefault<z.ZodNumber>;
1054
+ /**
1055
+ * How many chats' KV state llama-server may park in system RAM when they
1056
+ * lose their GPU slot, so returning to one costs a bulk copy instead of a
1057
+ * full re-prefill. Stored as a count, not a size: the byte budget it turns
1058
+ * into (`--cache-ram`) depends on the measured KV bytes/token and the
1059
+ * per-slot context, both of which move when other fields are edited.
1060
+ * 0 means "leave llama.cpp's own default alone" - the flag is not emitted.
1061
+ */
1062
+ cachedChats: z.ZodDefault<z.ZodNumber>;
795
1063
  /** RoPE extension factor; 1 keeps the GGUF-native context window. */
796
1064
  contextMultiplier: z.ZodDefault<z.ZodNumber>;
797
1065
  /** Cleared only by a successful calibration of this saved model profile. */
@@ -837,7 +1105,31 @@ export declare const ProfilesStoreSchema: z.ZodObject<{
837
1105
  vision: z.ZodDefault<z.ZodBoolean>;
838
1106
  reasoningBudget: z.ZodDefault<z.ZodNumber>;
839
1107
  reasoningBudgetMessage: z.ZodDefault<z.ZodString>;
1108
+ /**
1109
+ * Tri-state, matching llama-server's own `--reasoning-preserve` /
1110
+ * `--no-reasoning-preserve` / unset: `true` keeps the reasoning trace in the
1111
+ * whole history, `false` forces it to the last assistant message only, and
1112
+ * null/undefined leaves the template's own default alone. Null is the
1113
+ * default precisely so an untouched profile emits no flag and launches
1114
+ * exactly as it did before this field existed.
1115
+ */
1116
+ preserveReasoning: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
1117
+ temperature: z.ZodDefault<z.ZodNumber>;
1118
+ topP: z.ZodDefault<z.ZodNumber>;
1119
+ topK: z.ZodDefault<z.ZodNumber>;
1120
+ minP: z.ZodDefault<z.ZodNumber>;
1121
+ presencePenalty: z.ZodDefault<z.ZodNumber>;
1122
+ repeatPenalty: z.ZodDefault<z.ZodNumber>;
840
1123
  parallelSlots: z.ZodDefault<z.ZodNumber>;
1124
+ /**
1125
+ * How many chats' KV state llama-server may park in system RAM when they
1126
+ * lose their GPU slot, so returning to one costs a bulk copy instead of a
1127
+ * full re-prefill. Stored as a count, not a size: the byte budget it turns
1128
+ * into (`--cache-ram`) depends on the measured KV bytes/token and the
1129
+ * per-slot context, both of which move when other fields are edited.
1130
+ * 0 means "leave llama.cpp's own default alone" - the flag is not emitted.
1131
+ */
1132
+ cachedChats: z.ZodDefault<z.ZodNumber>;
841
1133
  /** RoPE extension factor; 1 keeps the GGUF-native context window. */
842
1134
  contextMultiplier: z.ZodDefault<z.ZodNumber>;
843
1135
  /** Cleared only by a successful calibration of this saved model profile. */
@@ -883,7 +1175,31 @@ export declare const ProfilesStoreSchema: z.ZodObject<{
883
1175
  vision: z.ZodDefault<z.ZodBoolean>;
884
1176
  reasoningBudget: z.ZodDefault<z.ZodNumber>;
885
1177
  reasoningBudgetMessage: z.ZodDefault<z.ZodString>;
1178
+ /**
1179
+ * Tri-state, matching llama-server's own `--reasoning-preserve` /
1180
+ * `--no-reasoning-preserve` / unset: `true` keeps the reasoning trace in the
1181
+ * whole history, `false` forces it to the last assistant message only, and
1182
+ * null/undefined leaves the template's own default alone. Null is the
1183
+ * default precisely so an untouched profile emits no flag and launches
1184
+ * exactly as it did before this field existed.
1185
+ */
1186
+ preserveReasoning: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
1187
+ temperature: z.ZodDefault<z.ZodNumber>;
1188
+ topP: z.ZodDefault<z.ZodNumber>;
1189
+ topK: z.ZodDefault<z.ZodNumber>;
1190
+ minP: z.ZodDefault<z.ZodNumber>;
1191
+ presencePenalty: z.ZodDefault<z.ZodNumber>;
1192
+ repeatPenalty: z.ZodDefault<z.ZodNumber>;
886
1193
  parallelSlots: z.ZodDefault<z.ZodNumber>;
1194
+ /**
1195
+ * How many chats' KV state llama-server may park in system RAM when they
1196
+ * lose their GPU slot, so returning to one costs a bulk copy instead of a
1197
+ * full re-prefill. Stored as a count, not a size: the byte budget it turns
1198
+ * into (`--cache-ram`) depends on the measured KV bytes/token and the
1199
+ * per-slot context, both of which move when other fields are edited.
1200
+ * 0 means "leave llama.cpp's own default alone" - the flag is not emitted.
1201
+ */
1202
+ cachedChats: z.ZodDefault<z.ZodNumber>;
887
1203
  /** RoPE extension factor; 1 keeps the GGUF-native context window. */
888
1204
  contextMultiplier: z.ZodDefault<z.ZodNumber>;
889
1205
  /** Cleared only by a successful calibration of this saved model profile. */
@@ -1096,12 +1412,16 @@ export type Tls = z.infer<typeof TlsSchema>;
1096
1412
  export declare const RuntimeConfigSchema: z.ZodObject<{
1097
1413
  source: z.ZodDefault<z.ZodEnum<["auto", "managed", "lmstudio"]>>;
1098
1414
  path: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1415
+ /** llama.cpp's `--log-verbosity`: 0 generic output through 5 debug. */
1416
+ logVerbosity: z.ZodDefault<z.ZodNumber>;
1099
1417
  }, "strict", z.ZodTypeAny, {
1100
1418
  path: string | null;
1101
1419
  source: "auto" | "managed" | "lmstudio";
1420
+ logVerbosity: number;
1102
1421
  }, {
1103
1422
  path?: string | null | undefined;
1104
1423
  source?: "auto" | "managed" | "lmstudio" | undefined;
1424
+ logVerbosity?: number | undefined;
1105
1425
  }>;
1106
1426
  export type RuntimeConfig = z.infer<typeof RuntimeConfigSchema>;
1107
1427
  export declare const ProfileDefaultsSchema: z.ZodObject<{
@@ -1182,16 +1502,24 @@ export declare const BrainConfigSchema: z.ZodObject<{
1182
1502
  runtime: z.ZodDefault<z.ZodObject<{
1183
1503
  source: z.ZodDefault<z.ZodEnum<["auto", "managed", "lmstudio"]>>;
1184
1504
  path: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1505
+ /** llama.cpp's `--log-verbosity`: 0 generic output through 5 debug. */
1506
+ logVerbosity: z.ZodDefault<z.ZodNumber>;
1185
1507
  }, "strict", z.ZodTypeAny, {
1186
1508
  path: string | null;
1187
1509
  source: "auto" | "managed" | "lmstudio";
1510
+ logVerbosity: number;
1188
1511
  }, {
1189
1512
  path?: string | null | undefined;
1190
1513
  source?: "auto" | "managed" | "lmstudio" | undefined;
1514
+ logVerbosity?: number | undefined;
1191
1515
  }>>;
1192
1516
  modelsDir: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1193
1517
  hfToken: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1194
1518
  defaultModel: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1519
+ /** Maximum independently hosted llama-server model processes. */
1520
+ maxLoadedModels: z.ZodDefault<z.ZodNumber>;
1521
+ /** Stable ids selected for residency while model locking is enabled. */
1522
+ lockedModels: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1195
1523
  lockModel: z.ZodDefault<z.ZodBoolean>;
1196
1524
  allowRemoteConfig: z.ZodDefault<z.ZodBoolean>;
1197
1525
  allowInsecureBind: z.ZodDefault<z.ZodBoolean>;
@@ -1242,10 +1570,13 @@ export declare const BrainConfigSchema: z.ZodObject<{
1242
1570
  runtime: {
1243
1571
  path: string | null;
1244
1572
  source: "auto" | "managed" | "lmstudio";
1573
+ logVerbosity: number;
1245
1574
  };
1246
1575
  modelsDir: string | null;
1247
1576
  hfToken: string | null;
1248
1577
  defaultModel: string | null;
1578
+ maxLoadedModels: number;
1579
+ lockedModels: string[];
1249
1580
  lockModel: boolean;
1250
1581
  allowRemoteConfig: boolean;
1251
1582
  allowInsecureBind: boolean;
@@ -1282,10 +1613,13 @@ export declare const BrainConfigSchema: z.ZodObject<{
1282
1613
  runtime?: {
1283
1614
  path?: string | null | undefined;
1284
1615
  source?: "auto" | "managed" | "lmstudio" | undefined;
1616
+ logVerbosity?: number | undefined;
1285
1617
  } | undefined;
1286
1618
  modelsDir?: string | null | undefined;
1287
1619
  hfToken?: string | null | undefined;
1288
1620
  defaultModel?: string | null | undefined;
1621
+ maxLoadedModels?: number | undefined;
1622
+ lockedModels?: string[] | undefined;
1289
1623
  lockModel?: boolean | undefined;
1290
1624
  allowRemoteConfig?: boolean | undefined;
1291
1625
  allowInsecureBind?: boolean | undefined;
@@ -1307,6 +1641,8 @@ export declare const CatalogModelSchema: z.ZodObject<{
1307
1641
  name: z.ZodString;
1308
1642
  /** Stable UI family identity. Otto clients resolve this to a monochrome glyph. */
1309
1643
  family: z.ZodOptional<z.ZodString>;
1644
+ /** Otto-curated favorite shown as a gold premium badge in the Brain Library. */
1645
+ favorite: z.ZodDefault<z.ZodBoolean>;
1310
1646
  publisher: z.ZodOptional<z.ZodString>;
1311
1647
  hfRepo: z.ZodString;
1312
1648
  quant: z.ZodString;
@@ -1317,6 +1653,27 @@ export declare const CatalogModelSchema: z.ZodObject<{
1317
1653
  vision: z.ZodOptional<z.ZodBoolean>;
1318
1654
  thinking: z.ZodOptional<z.ZodBoolean>;
1319
1655
  reasoningEfforts: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1656
+ reasoningEffortDefault: z.ZodOptional<z.ZodString>;
1657
+ reasoningTemplate: z.ZodOptional<z.ZodObject<{
1658
+ enableThinkingArgument: z.ZodString;
1659
+ effortArgument: z.ZodString;
1660
+ }, "strict", z.ZodTypeAny, {
1661
+ enableThinkingArgument: string;
1662
+ effortArgument: string;
1663
+ }, {
1664
+ enableThinkingArgument: string;
1665
+ effortArgument: string;
1666
+ }>>;
1667
+ reasoningPreservation: z.ZodOptional<z.ZodObject<{
1668
+ templateArgument: z.ZodString;
1669
+ default: z.ZodOptional<z.ZodBoolean>;
1670
+ }, "strict", z.ZodTypeAny, {
1671
+ templateArgument: string;
1672
+ default?: boolean | undefined;
1673
+ }, {
1674
+ templateArgument: string;
1675
+ default?: boolean | undefined;
1676
+ }>>;
1320
1677
  contextMax: z.ZodOptional<z.ZodNumber>;
1321
1678
  useCases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1322
1679
  tier: z.ZodOptional<z.ZodString>;
@@ -1367,6 +1724,8 @@ export declare const CatalogModelSchema: z.ZodObject<{
1367
1724
  name: z.ZodString;
1368
1725
  /** Stable UI family identity. Otto clients resolve this to a monochrome glyph. */
1369
1726
  family: z.ZodOptional<z.ZodString>;
1727
+ /** Otto-curated favorite shown as a gold premium badge in the Brain Library. */
1728
+ favorite: z.ZodDefault<z.ZodBoolean>;
1370
1729
  publisher: z.ZodOptional<z.ZodString>;
1371
1730
  hfRepo: z.ZodString;
1372
1731
  quant: z.ZodString;
@@ -1377,6 +1736,27 @@ export declare const CatalogModelSchema: z.ZodObject<{
1377
1736
  vision: z.ZodOptional<z.ZodBoolean>;
1378
1737
  thinking: z.ZodOptional<z.ZodBoolean>;
1379
1738
  reasoningEfforts: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1739
+ reasoningEffortDefault: z.ZodOptional<z.ZodString>;
1740
+ reasoningTemplate: z.ZodOptional<z.ZodObject<{
1741
+ enableThinkingArgument: z.ZodString;
1742
+ effortArgument: z.ZodString;
1743
+ }, "strict", z.ZodTypeAny, {
1744
+ enableThinkingArgument: string;
1745
+ effortArgument: string;
1746
+ }, {
1747
+ enableThinkingArgument: string;
1748
+ effortArgument: string;
1749
+ }>>;
1750
+ reasoningPreservation: z.ZodOptional<z.ZodObject<{
1751
+ templateArgument: z.ZodString;
1752
+ default: z.ZodOptional<z.ZodBoolean>;
1753
+ }, "strict", z.ZodTypeAny, {
1754
+ templateArgument: string;
1755
+ default?: boolean | undefined;
1756
+ }, {
1757
+ templateArgument: string;
1758
+ default?: boolean | undefined;
1759
+ }>>;
1380
1760
  contextMax: z.ZodOptional<z.ZodNumber>;
1381
1761
  useCases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1382
1762
  tier: z.ZodOptional<z.ZodString>;
@@ -1427,6 +1807,8 @@ export declare const CatalogModelSchema: z.ZodObject<{
1427
1807
  name: z.ZodString;
1428
1808
  /** Stable UI family identity. Otto clients resolve this to a monochrome glyph. */
1429
1809
  family: z.ZodOptional<z.ZodString>;
1810
+ /** Otto-curated favorite shown as a gold premium badge in the Brain Library. */
1811
+ favorite: z.ZodDefault<z.ZodBoolean>;
1430
1812
  publisher: z.ZodOptional<z.ZodString>;
1431
1813
  hfRepo: z.ZodString;
1432
1814
  quant: z.ZodString;
@@ -1437,6 +1819,27 @@ export declare const CatalogModelSchema: z.ZodObject<{
1437
1819
  vision: z.ZodOptional<z.ZodBoolean>;
1438
1820
  thinking: z.ZodOptional<z.ZodBoolean>;
1439
1821
  reasoningEfforts: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1822
+ reasoningEffortDefault: z.ZodOptional<z.ZodString>;
1823
+ reasoningTemplate: z.ZodOptional<z.ZodObject<{
1824
+ enableThinkingArgument: z.ZodString;
1825
+ effortArgument: z.ZodString;
1826
+ }, "strict", z.ZodTypeAny, {
1827
+ enableThinkingArgument: string;
1828
+ effortArgument: string;
1829
+ }, {
1830
+ enableThinkingArgument: string;
1831
+ effortArgument: string;
1832
+ }>>;
1833
+ reasoningPreservation: z.ZodOptional<z.ZodObject<{
1834
+ templateArgument: z.ZodString;
1835
+ default: z.ZodOptional<z.ZodBoolean>;
1836
+ }, "strict", z.ZodTypeAny, {
1837
+ templateArgument: string;
1838
+ default?: boolean | undefined;
1839
+ }, {
1840
+ templateArgument: string;
1841
+ default?: boolean | undefined;
1842
+ }>>;
1440
1843
  contextMax: z.ZodOptional<z.ZodNumber>;
1441
1844
  useCases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1442
1845
  tier: z.ZodOptional<z.ZodString>;
@@ -1487,6 +1890,8 @@ export declare const CatalogSchema: z.ZodObject<{
1487
1890
  note: z.ZodOptional<z.ZodString>;
1488
1891
  vramBudgetBytes: z.ZodOptional<z.ZodNumber>;
1489
1892
  systemRamBytes: z.ZodOptional<z.ZodNumber>;
1893
+ /** Retired curated ids that no longer belong to any canonical catalog entry. */
1894
+ retiredModelIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1490
1895
  models: z.ZodDefault<z.ZodArray<z.ZodObject<{
1491
1896
  id: z.ZodString;
1492
1897
  /** Retired Otto-curated ids this canonical catalog entry replaces. */
@@ -1494,6 +1899,8 @@ export declare const CatalogSchema: z.ZodObject<{
1494
1899
  name: z.ZodString;
1495
1900
  /** Stable UI family identity. Otto clients resolve this to a monochrome glyph. */
1496
1901
  family: z.ZodOptional<z.ZodString>;
1902
+ /** Otto-curated favorite shown as a gold premium badge in the Brain Library. */
1903
+ favorite: z.ZodDefault<z.ZodBoolean>;
1497
1904
  publisher: z.ZodOptional<z.ZodString>;
1498
1905
  hfRepo: z.ZodString;
1499
1906
  quant: z.ZodString;
@@ -1504,6 +1911,27 @@ export declare const CatalogSchema: z.ZodObject<{
1504
1911
  vision: z.ZodOptional<z.ZodBoolean>;
1505
1912
  thinking: z.ZodOptional<z.ZodBoolean>;
1506
1913
  reasoningEfforts: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1914
+ reasoningEffortDefault: z.ZodOptional<z.ZodString>;
1915
+ reasoningTemplate: z.ZodOptional<z.ZodObject<{
1916
+ enableThinkingArgument: z.ZodString;
1917
+ effortArgument: z.ZodString;
1918
+ }, "strict", z.ZodTypeAny, {
1919
+ enableThinkingArgument: string;
1920
+ effortArgument: string;
1921
+ }, {
1922
+ enableThinkingArgument: string;
1923
+ effortArgument: string;
1924
+ }>>;
1925
+ reasoningPreservation: z.ZodOptional<z.ZodObject<{
1926
+ templateArgument: z.ZodString;
1927
+ default: z.ZodOptional<z.ZodBoolean>;
1928
+ }, "strict", z.ZodTypeAny, {
1929
+ templateArgument: string;
1930
+ default?: boolean | undefined;
1931
+ }, {
1932
+ templateArgument: string;
1933
+ default?: boolean | undefined;
1934
+ }>>;
1507
1935
  contextMax: z.ZodOptional<z.ZodNumber>;
1508
1936
  useCases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1509
1937
  tier: z.ZodOptional<z.ZodString>;
@@ -1554,6 +1982,8 @@ export declare const CatalogSchema: z.ZodObject<{
1554
1982
  name: z.ZodString;
1555
1983
  /** Stable UI family identity. Otto clients resolve this to a monochrome glyph. */
1556
1984
  family: z.ZodOptional<z.ZodString>;
1985
+ /** Otto-curated favorite shown as a gold premium badge in the Brain Library. */
1986
+ favorite: z.ZodDefault<z.ZodBoolean>;
1557
1987
  publisher: z.ZodOptional<z.ZodString>;
1558
1988
  hfRepo: z.ZodString;
1559
1989
  quant: z.ZodString;
@@ -1564,6 +1994,27 @@ export declare const CatalogSchema: z.ZodObject<{
1564
1994
  vision: z.ZodOptional<z.ZodBoolean>;
1565
1995
  thinking: z.ZodOptional<z.ZodBoolean>;
1566
1996
  reasoningEfforts: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1997
+ reasoningEffortDefault: z.ZodOptional<z.ZodString>;
1998
+ reasoningTemplate: z.ZodOptional<z.ZodObject<{
1999
+ enableThinkingArgument: z.ZodString;
2000
+ effortArgument: z.ZodString;
2001
+ }, "strict", z.ZodTypeAny, {
2002
+ enableThinkingArgument: string;
2003
+ effortArgument: string;
2004
+ }, {
2005
+ enableThinkingArgument: string;
2006
+ effortArgument: string;
2007
+ }>>;
2008
+ reasoningPreservation: z.ZodOptional<z.ZodObject<{
2009
+ templateArgument: z.ZodString;
2010
+ default: z.ZodOptional<z.ZodBoolean>;
2011
+ }, "strict", z.ZodTypeAny, {
2012
+ templateArgument: string;
2013
+ default?: boolean | undefined;
2014
+ }, {
2015
+ templateArgument: string;
2016
+ default?: boolean | undefined;
2017
+ }>>;
1567
2018
  contextMax: z.ZodOptional<z.ZodNumber>;
1568
2019
  useCases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1569
2020
  tier: z.ZodOptional<z.ZodString>;
@@ -1614,6 +2065,8 @@ export declare const CatalogSchema: z.ZodObject<{
1614
2065
  name: z.ZodString;
1615
2066
  /** Stable UI family identity. Otto clients resolve this to a monochrome glyph. */
1616
2067
  family: z.ZodOptional<z.ZodString>;
2068
+ /** Otto-curated favorite shown as a gold premium badge in the Brain Library. */
2069
+ favorite: z.ZodDefault<z.ZodBoolean>;
1617
2070
  publisher: z.ZodOptional<z.ZodString>;
1618
2071
  hfRepo: z.ZodString;
1619
2072
  quant: z.ZodString;
@@ -1624,6 +2077,27 @@ export declare const CatalogSchema: z.ZodObject<{
1624
2077
  vision: z.ZodOptional<z.ZodBoolean>;
1625
2078
  thinking: z.ZodOptional<z.ZodBoolean>;
1626
2079
  reasoningEfforts: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2080
+ reasoningEffortDefault: z.ZodOptional<z.ZodString>;
2081
+ reasoningTemplate: z.ZodOptional<z.ZodObject<{
2082
+ enableThinkingArgument: z.ZodString;
2083
+ effortArgument: z.ZodString;
2084
+ }, "strict", z.ZodTypeAny, {
2085
+ enableThinkingArgument: string;
2086
+ effortArgument: string;
2087
+ }, {
2088
+ enableThinkingArgument: string;
2089
+ effortArgument: string;
2090
+ }>>;
2091
+ reasoningPreservation: z.ZodOptional<z.ZodObject<{
2092
+ templateArgument: z.ZodString;
2093
+ default: z.ZodOptional<z.ZodBoolean>;
2094
+ }, "strict", z.ZodTypeAny, {
2095
+ templateArgument: string;
2096
+ default?: boolean | undefined;
2097
+ }, {
2098
+ templateArgument: string;
2099
+ default?: boolean | undefined;
2100
+ }>>;
1627
2101
  contextMax: z.ZodOptional<z.ZodNumber>;
1628
2102
  useCases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1629
2103
  tier: z.ZodOptional<z.ZodString>;
@@ -1673,6 +2147,8 @@ export declare const CatalogSchema: z.ZodObject<{
1673
2147
  note: z.ZodOptional<z.ZodString>;
1674
2148
  vramBudgetBytes: z.ZodOptional<z.ZodNumber>;
1675
2149
  systemRamBytes: z.ZodOptional<z.ZodNumber>;
2150
+ /** Retired curated ids that no longer belong to any canonical catalog entry. */
2151
+ retiredModelIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1676
2152
  models: z.ZodDefault<z.ZodArray<z.ZodObject<{
1677
2153
  id: z.ZodString;
1678
2154
  /** Retired Otto-curated ids this canonical catalog entry replaces. */
@@ -1680,6 +2156,8 @@ export declare const CatalogSchema: z.ZodObject<{
1680
2156
  name: z.ZodString;
1681
2157
  /** Stable UI family identity. Otto clients resolve this to a monochrome glyph. */
1682
2158
  family: z.ZodOptional<z.ZodString>;
2159
+ /** Otto-curated favorite shown as a gold premium badge in the Brain Library. */
2160
+ favorite: z.ZodDefault<z.ZodBoolean>;
1683
2161
  publisher: z.ZodOptional<z.ZodString>;
1684
2162
  hfRepo: z.ZodString;
1685
2163
  quant: z.ZodString;
@@ -1690,6 +2168,27 @@ export declare const CatalogSchema: z.ZodObject<{
1690
2168
  vision: z.ZodOptional<z.ZodBoolean>;
1691
2169
  thinking: z.ZodOptional<z.ZodBoolean>;
1692
2170
  reasoningEfforts: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2171
+ reasoningEffortDefault: z.ZodOptional<z.ZodString>;
2172
+ reasoningTemplate: z.ZodOptional<z.ZodObject<{
2173
+ enableThinkingArgument: z.ZodString;
2174
+ effortArgument: z.ZodString;
2175
+ }, "strict", z.ZodTypeAny, {
2176
+ enableThinkingArgument: string;
2177
+ effortArgument: string;
2178
+ }, {
2179
+ enableThinkingArgument: string;
2180
+ effortArgument: string;
2181
+ }>>;
2182
+ reasoningPreservation: z.ZodOptional<z.ZodObject<{
2183
+ templateArgument: z.ZodString;
2184
+ default: z.ZodOptional<z.ZodBoolean>;
2185
+ }, "strict", z.ZodTypeAny, {
2186
+ templateArgument: string;
2187
+ default?: boolean | undefined;
2188
+ }, {
2189
+ templateArgument: string;
2190
+ default?: boolean | undefined;
2191
+ }>>;
1693
2192
  contextMax: z.ZodOptional<z.ZodNumber>;
1694
2193
  useCases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1695
2194
  tier: z.ZodOptional<z.ZodString>;
@@ -1740,6 +2239,8 @@ export declare const CatalogSchema: z.ZodObject<{
1740
2239
  name: z.ZodString;
1741
2240
  /** Stable UI family identity. Otto clients resolve this to a monochrome glyph. */
1742
2241
  family: z.ZodOptional<z.ZodString>;
2242
+ /** Otto-curated favorite shown as a gold premium badge in the Brain Library. */
2243
+ favorite: z.ZodDefault<z.ZodBoolean>;
1743
2244
  publisher: z.ZodOptional<z.ZodString>;
1744
2245
  hfRepo: z.ZodString;
1745
2246
  quant: z.ZodString;
@@ -1750,6 +2251,27 @@ export declare const CatalogSchema: z.ZodObject<{
1750
2251
  vision: z.ZodOptional<z.ZodBoolean>;
1751
2252
  thinking: z.ZodOptional<z.ZodBoolean>;
1752
2253
  reasoningEfforts: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2254
+ reasoningEffortDefault: z.ZodOptional<z.ZodString>;
2255
+ reasoningTemplate: z.ZodOptional<z.ZodObject<{
2256
+ enableThinkingArgument: z.ZodString;
2257
+ effortArgument: z.ZodString;
2258
+ }, "strict", z.ZodTypeAny, {
2259
+ enableThinkingArgument: string;
2260
+ effortArgument: string;
2261
+ }, {
2262
+ enableThinkingArgument: string;
2263
+ effortArgument: string;
2264
+ }>>;
2265
+ reasoningPreservation: z.ZodOptional<z.ZodObject<{
2266
+ templateArgument: z.ZodString;
2267
+ default: z.ZodOptional<z.ZodBoolean>;
2268
+ }, "strict", z.ZodTypeAny, {
2269
+ templateArgument: string;
2270
+ default?: boolean | undefined;
2271
+ }, {
2272
+ templateArgument: string;
2273
+ default?: boolean | undefined;
2274
+ }>>;
1753
2275
  contextMax: z.ZodOptional<z.ZodNumber>;
1754
2276
  useCases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1755
2277
  tier: z.ZodOptional<z.ZodString>;
@@ -1800,6 +2322,8 @@ export declare const CatalogSchema: z.ZodObject<{
1800
2322
  name: z.ZodString;
1801
2323
  /** Stable UI family identity. Otto clients resolve this to a monochrome glyph. */
1802
2324
  family: z.ZodOptional<z.ZodString>;
2325
+ /** Otto-curated favorite shown as a gold premium badge in the Brain Library. */
2326
+ favorite: z.ZodDefault<z.ZodBoolean>;
1803
2327
  publisher: z.ZodOptional<z.ZodString>;
1804
2328
  hfRepo: z.ZodString;
1805
2329
  quant: z.ZodString;
@@ -1810,6 +2334,27 @@ export declare const CatalogSchema: z.ZodObject<{
1810
2334
  vision: z.ZodOptional<z.ZodBoolean>;
1811
2335
  thinking: z.ZodOptional<z.ZodBoolean>;
1812
2336
  reasoningEfforts: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2337
+ reasoningEffortDefault: z.ZodOptional<z.ZodString>;
2338
+ reasoningTemplate: z.ZodOptional<z.ZodObject<{
2339
+ enableThinkingArgument: z.ZodString;
2340
+ effortArgument: z.ZodString;
2341
+ }, "strict", z.ZodTypeAny, {
2342
+ enableThinkingArgument: string;
2343
+ effortArgument: string;
2344
+ }, {
2345
+ enableThinkingArgument: string;
2346
+ effortArgument: string;
2347
+ }>>;
2348
+ reasoningPreservation: z.ZodOptional<z.ZodObject<{
2349
+ templateArgument: z.ZodString;
2350
+ default: z.ZodOptional<z.ZodBoolean>;
2351
+ }, "strict", z.ZodTypeAny, {
2352
+ templateArgument: string;
2353
+ default?: boolean | undefined;
2354
+ }, {
2355
+ templateArgument: string;
2356
+ default?: boolean | undefined;
2357
+ }>>;
1813
2358
  contextMax: z.ZodOptional<z.ZodNumber>;
1814
2359
  useCases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1815
2360
  tier: z.ZodOptional<z.ZodString>;
@@ -1859,6 +2404,8 @@ export declare const CatalogSchema: z.ZodObject<{
1859
2404
  note: z.ZodOptional<z.ZodString>;
1860
2405
  vramBudgetBytes: z.ZodOptional<z.ZodNumber>;
1861
2406
  systemRamBytes: z.ZodOptional<z.ZodNumber>;
2407
+ /** Retired curated ids that no longer belong to any canonical catalog entry. */
2408
+ retiredModelIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1862
2409
  models: z.ZodDefault<z.ZodArray<z.ZodObject<{
1863
2410
  id: z.ZodString;
1864
2411
  /** Retired Otto-curated ids this canonical catalog entry replaces. */
@@ -1866,6 +2413,8 @@ export declare const CatalogSchema: z.ZodObject<{
1866
2413
  name: z.ZodString;
1867
2414
  /** Stable UI family identity. Otto clients resolve this to a monochrome glyph. */
1868
2415
  family: z.ZodOptional<z.ZodString>;
2416
+ /** Otto-curated favorite shown as a gold premium badge in the Brain Library. */
2417
+ favorite: z.ZodDefault<z.ZodBoolean>;
1869
2418
  publisher: z.ZodOptional<z.ZodString>;
1870
2419
  hfRepo: z.ZodString;
1871
2420
  quant: z.ZodString;
@@ -1876,6 +2425,27 @@ export declare const CatalogSchema: z.ZodObject<{
1876
2425
  vision: z.ZodOptional<z.ZodBoolean>;
1877
2426
  thinking: z.ZodOptional<z.ZodBoolean>;
1878
2427
  reasoningEfforts: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2428
+ reasoningEffortDefault: z.ZodOptional<z.ZodString>;
2429
+ reasoningTemplate: z.ZodOptional<z.ZodObject<{
2430
+ enableThinkingArgument: z.ZodString;
2431
+ effortArgument: z.ZodString;
2432
+ }, "strict", z.ZodTypeAny, {
2433
+ enableThinkingArgument: string;
2434
+ effortArgument: string;
2435
+ }, {
2436
+ enableThinkingArgument: string;
2437
+ effortArgument: string;
2438
+ }>>;
2439
+ reasoningPreservation: z.ZodOptional<z.ZodObject<{
2440
+ templateArgument: z.ZodString;
2441
+ default: z.ZodOptional<z.ZodBoolean>;
2442
+ }, "strict", z.ZodTypeAny, {
2443
+ templateArgument: string;
2444
+ default?: boolean | undefined;
2445
+ }, {
2446
+ templateArgument: string;
2447
+ default?: boolean | undefined;
2448
+ }>>;
1879
2449
  contextMax: z.ZodOptional<z.ZodNumber>;
1880
2450
  useCases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1881
2451
  tier: z.ZodOptional<z.ZodString>;
@@ -1926,6 +2496,8 @@ export declare const CatalogSchema: z.ZodObject<{
1926
2496
  name: z.ZodString;
1927
2497
  /** Stable UI family identity. Otto clients resolve this to a monochrome glyph. */
1928
2498
  family: z.ZodOptional<z.ZodString>;
2499
+ /** Otto-curated favorite shown as a gold premium badge in the Brain Library. */
2500
+ favorite: z.ZodDefault<z.ZodBoolean>;
1929
2501
  publisher: z.ZodOptional<z.ZodString>;
1930
2502
  hfRepo: z.ZodString;
1931
2503
  quant: z.ZodString;
@@ -1936,6 +2508,27 @@ export declare const CatalogSchema: z.ZodObject<{
1936
2508
  vision: z.ZodOptional<z.ZodBoolean>;
1937
2509
  thinking: z.ZodOptional<z.ZodBoolean>;
1938
2510
  reasoningEfforts: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2511
+ reasoningEffortDefault: z.ZodOptional<z.ZodString>;
2512
+ reasoningTemplate: z.ZodOptional<z.ZodObject<{
2513
+ enableThinkingArgument: z.ZodString;
2514
+ effortArgument: z.ZodString;
2515
+ }, "strict", z.ZodTypeAny, {
2516
+ enableThinkingArgument: string;
2517
+ effortArgument: string;
2518
+ }, {
2519
+ enableThinkingArgument: string;
2520
+ effortArgument: string;
2521
+ }>>;
2522
+ reasoningPreservation: z.ZodOptional<z.ZodObject<{
2523
+ templateArgument: z.ZodString;
2524
+ default: z.ZodOptional<z.ZodBoolean>;
2525
+ }, "strict", z.ZodTypeAny, {
2526
+ templateArgument: string;
2527
+ default?: boolean | undefined;
2528
+ }, {
2529
+ templateArgument: string;
2530
+ default?: boolean | undefined;
2531
+ }>>;
1939
2532
  contextMax: z.ZodOptional<z.ZodNumber>;
1940
2533
  useCases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1941
2534
  tier: z.ZodOptional<z.ZodString>;
@@ -1986,6 +2579,8 @@ export declare const CatalogSchema: z.ZodObject<{
1986
2579
  name: z.ZodString;
1987
2580
  /** Stable UI family identity. Otto clients resolve this to a monochrome glyph. */
1988
2581
  family: z.ZodOptional<z.ZodString>;
2582
+ /** Otto-curated favorite shown as a gold premium badge in the Brain Library. */
2583
+ favorite: z.ZodDefault<z.ZodBoolean>;
1989
2584
  publisher: z.ZodOptional<z.ZodString>;
1990
2585
  hfRepo: z.ZodString;
1991
2586
  quant: z.ZodString;
@@ -1996,6 +2591,27 @@ export declare const CatalogSchema: z.ZodObject<{
1996
2591
  vision: z.ZodOptional<z.ZodBoolean>;
1997
2592
  thinking: z.ZodOptional<z.ZodBoolean>;
1998
2593
  reasoningEfforts: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2594
+ reasoningEffortDefault: z.ZodOptional<z.ZodString>;
2595
+ reasoningTemplate: z.ZodOptional<z.ZodObject<{
2596
+ enableThinkingArgument: z.ZodString;
2597
+ effortArgument: z.ZodString;
2598
+ }, "strict", z.ZodTypeAny, {
2599
+ enableThinkingArgument: string;
2600
+ effortArgument: string;
2601
+ }, {
2602
+ enableThinkingArgument: string;
2603
+ effortArgument: string;
2604
+ }>>;
2605
+ reasoningPreservation: z.ZodOptional<z.ZodObject<{
2606
+ templateArgument: z.ZodString;
2607
+ default: z.ZodOptional<z.ZodBoolean>;
2608
+ }, "strict", z.ZodTypeAny, {
2609
+ templateArgument: string;
2610
+ default?: boolean | undefined;
2611
+ }, {
2612
+ templateArgument: string;
2613
+ default?: boolean | undefined;
2614
+ }>>;
1999
2615
  contextMax: z.ZodOptional<z.ZodNumber>;
2000
2616
  useCases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2001
2617
  tier: z.ZodOptional<z.ZodString>;