@otto-code/brain 0.8.10 → 0.8.12

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 (59) hide show
  1. package/dist/commands/calibrate.js +9 -0
  2. package/dist/commands/catalog.d.ts +1 -0
  3. package/dist/commands/catalog.js +1 -0
  4. package/dist/commands/pull.d.ts +1 -0
  5. package/dist/commands/pull.js +12 -3
  6. package/dist/commands/search.d.ts +1 -0
  7. package/dist/commands/search.js +12 -2
  8. package/dist/config/index.d.ts +1 -1
  9. package/dist/config/index.js +1 -1
  10. package/dist/config/profile-edit.d.ts +88 -1
  11. package/dist/config/profile-edit.js +280 -29
  12. package/dist/config/profiles.js +16 -0
  13. package/dist/config/schema.d.ts +608 -0
  14. package/dist/config/schema.js +58 -0
  15. package/dist/config/store.js +7 -4
  16. package/dist/gguf.d.ts +7 -0
  17. package/dist/gguf.js +15 -2
  18. package/dist/models/download.d.ts +1 -1
  19. package/dist/models/download.js +2 -2
  20. package/dist/models/enrich.d.ts +6 -0
  21. package/dist/models/enrich.js +27 -1
  22. package/dist/models/index.d.ts +1 -1
  23. package/dist/models/index.js +4 -3
  24. package/dist/ops/calibrate.d.ts +38 -3
  25. package/dist/ops/calibrate.js +68 -19
  26. package/dist/ops/report.js +51 -1
  27. package/dist/ops/results.d.ts +57 -11
  28. package/dist/ops/results.js +75 -10
  29. package/dist/ops/sweep.d.ts +38 -1
  30. package/dist/ops/sweep.js +61 -10
  31. package/dist/runtime/args.d.ts +15 -2
  32. package/dist/runtime/args.js +60 -5
  33. package/dist/runtime/managed.js +2 -2
  34. package/dist/service/activity.d.ts +19 -0
  35. package/dist/service/activity.js +47 -4
  36. package/dist/service/host-api.d.ts +25 -4
  37. package/dist/service/host-api.js +82 -16
  38. package/dist/service/log-format.d.ts +18 -0
  39. package/dist/service/log-format.js +32 -0
  40. package/dist/service/router.d.ts +70 -2
  41. package/dist/service/router.js +219 -21
  42. package/dist/service/run-log.d.ts +6 -1
  43. package/dist/service/run-log.js +46 -4
  44. package/dist/service/scheduler.d.ts +227 -24
  45. package/dist/service/scheduler.js +395 -63
  46. package/dist/service/serve.d.ts +4 -0
  47. package/dist/service/serve.js +302 -117
  48. package/dist/service/status-events.d.ts +14 -1
  49. package/dist/service/status-events.js +111 -12
  50. package/dist/service/supervisor.d.ts +9 -7
  51. package/dist/service/supervisor.js +37 -12
  52. package/dist/sysmon.d.ts +15 -0
  53. package/dist/sysmon.js +56 -9
  54. package/dist/tui/app.d.ts +8 -2
  55. package/dist/tui/app.js +65 -17
  56. package/dist/types.d.ts +18 -0
  57. package/dist/vram.d.ts +37 -0
  58. package/dist/vram.js +57 -18
  59. 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,12 +1502,16 @@ 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>>;
@@ -1242,6 +1566,7 @@ export declare const BrainConfigSchema: z.ZodObject<{
1242
1566
  runtime: {
1243
1567
  path: string | null;
1244
1568
  source: "auto" | "managed" | "lmstudio";
1569
+ logVerbosity: number;
1245
1570
  };
1246
1571
  modelsDir: string | null;
1247
1572
  hfToken: string | null;
@@ -1282,6 +1607,7 @@ export declare const BrainConfigSchema: z.ZodObject<{
1282
1607
  runtime?: {
1283
1608
  path?: string | null | undefined;
1284
1609
  source?: "auto" | "managed" | "lmstudio" | undefined;
1610
+ logVerbosity?: number | undefined;
1285
1611
  } | undefined;
1286
1612
  modelsDir?: string | null | undefined;
1287
1613
  hfToken?: string | null | undefined;
@@ -1307,6 +1633,8 @@ export declare const CatalogModelSchema: z.ZodObject<{
1307
1633
  name: z.ZodString;
1308
1634
  /** Stable UI family identity. Otto clients resolve this to a monochrome glyph. */
1309
1635
  family: z.ZodOptional<z.ZodString>;
1636
+ /** Otto-curated favorite shown as a gold premium badge in the Brain Library. */
1637
+ favorite: z.ZodDefault<z.ZodBoolean>;
1310
1638
  publisher: z.ZodOptional<z.ZodString>;
1311
1639
  hfRepo: z.ZodString;
1312
1640
  quant: z.ZodString;
@@ -1317,6 +1645,27 @@ export declare const CatalogModelSchema: z.ZodObject<{
1317
1645
  vision: z.ZodOptional<z.ZodBoolean>;
1318
1646
  thinking: z.ZodOptional<z.ZodBoolean>;
1319
1647
  reasoningEfforts: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1648
+ reasoningEffortDefault: z.ZodOptional<z.ZodString>;
1649
+ reasoningTemplate: z.ZodOptional<z.ZodObject<{
1650
+ enableThinkingArgument: z.ZodString;
1651
+ effortArgument: z.ZodString;
1652
+ }, "strict", z.ZodTypeAny, {
1653
+ enableThinkingArgument: string;
1654
+ effortArgument: string;
1655
+ }, {
1656
+ enableThinkingArgument: string;
1657
+ effortArgument: string;
1658
+ }>>;
1659
+ reasoningPreservation: z.ZodOptional<z.ZodObject<{
1660
+ templateArgument: z.ZodString;
1661
+ default: z.ZodOptional<z.ZodBoolean>;
1662
+ }, "strict", z.ZodTypeAny, {
1663
+ templateArgument: string;
1664
+ default?: boolean | undefined;
1665
+ }, {
1666
+ templateArgument: string;
1667
+ default?: boolean | undefined;
1668
+ }>>;
1320
1669
  contextMax: z.ZodOptional<z.ZodNumber>;
1321
1670
  useCases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1322
1671
  tier: z.ZodOptional<z.ZodString>;
@@ -1367,6 +1716,8 @@ export declare const CatalogModelSchema: z.ZodObject<{
1367
1716
  name: z.ZodString;
1368
1717
  /** Stable UI family identity. Otto clients resolve this to a monochrome glyph. */
1369
1718
  family: z.ZodOptional<z.ZodString>;
1719
+ /** Otto-curated favorite shown as a gold premium badge in the Brain Library. */
1720
+ favorite: z.ZodDefault<z.ZodBoolean>;
1370
1721
  publisher: z.ZodOptional<z.ZodString>;
1371
1722
  hfRepo: z.ZodString;
1372
1723
  quant: z.ZodString;
@@ -1377,6 +1728,27 @@ export declare const CatalogModelSchema: z.ZodObject<{
1377
1728
  vision: z.ZodOptional<z.ZodBoolean>;
1378
1729
  thinking: z.ZodOptional<z.ZodBoolean>;
1379
1730
  reasoningEfforts: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1731
+ reasoningEffortDefault: z.ZodOptional<z.ZodString>;
1732
+ reasoningTemplate: z.ZodOptional<z.ZodObject<{
1733
+ enableThinkingArgument: z.ZodString;
1734
+ effortArgument: z.ZodString;
1735
+ }, "strict", z.ZodTypeAny, {
1736
+ enableThinkingArgument: string;
1737
+ effortArgument: string;
1738
+ }, {
1739
+ enableThinkingArgument: string;
1740
+ effortArgument: string;
1741
+ }>>;
1742
+ reasoningPreservation: z.ZodOptional<z.ZodObject<{
1743
+ templateArgument: z.ZodString;
1744
+ default: z.ZodOptional<z.ZodBoolean>;
1745
+ }, "strict", z.ZodTypeAny, {
1746
+ templateArgument: string;
1747
+ default?: boolean | undefined;
1748
+ }, {
1749
+ templateArgument: string;
1750
+ default?: boolean | undefined;
1751
+ }>>;
1380
1752
  contextMax: z.ZodOptional<z.ZodNumber>;
1381
1753
  useCases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1382
1754
  tier: z.ZodOptional<z.ZodString>;
@@ -1427,6 +1799,8 @@ export declare const CatalogModelSchema: z.ZodObject<{
1427
1799
  name: z.ZodString;
1428
1800
  /** Stable UI family identity. Otto clients resolve this to a monochrome glyph. */
1429
1801
  family: z.ZodOptional<z.ZodString>;
1802
+ /** Otto-curated favorite shown as a gold premium badge in the Brain Library. */
1803
+ favorite: z.ZodDefault<z.ZodBoolean>;
1430
1804
  publisher: z.ZodOptional<z.ZodString>;
1431
1805
  hfRepo: z.ZodString;
1432
1806
  quant: z.ZodString;
@@ -1437,6 +1811,27 @@ export declare const CatalogModelSchema: z.ZodObject<{
1437
1811
  vision: z.ZodOptional<z.ZodBoolean>;
1438
1812
  thinking: z.ZodOptional<z.ZodBoolean>;
1439
1813
  reasoningEfforts: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1814
+ reasoningEffortDefault: z.ZodOptional<z.ZodString>;
1815
+ reasoningTemplate: z.ZodOptional<z.ZodObject<{
1816
+ enableThinkingArgument: z.ZodString;
1817
+ effortArgument: z.ZodString;
1818
+ }, "strict", z.ZodTypeAny, {
1819
+ enableThinkingArgument: string;
1820
+ effortArgument: string;
1821
+ }, {
1822
+ enableThinkingArgument: string;
1823
+ effortArgument: string;
1824
+ }>>;
1825
+ reasoningPreservation: z.ZodOptional<z.ZodObject<{
1826
+ templateArgument: z.ZodString;
1827
+ default: z.ZodOptional<z.ZodBoolean>;
1828
+ }, "strict", z.ZodTypeAny, {
1829
+ templateArgument: string;
1830
+ default?: boolean | undefined;
1831
+ }, {
1832
+ templateArgument: string;
1833
+ default?: boolean | undefined;
1834
+ }>>;
1440
1835
  contextMax: z.ZodOptional<z.ZodNumber>;
1441
1836
  useCases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1442
1837
  tier: z.ZodOptional<z.ZodString>;
@@ -1487,6 +1882,8 @@ export declare const CatalogSchema: z.ZodObject<{
1487
1882
  note: z.ZodOptional<z.ZodString>;
1488
1883
  vramBudgetBytes: z.ZodOptional<z.ZodNumber>;
1489
1884
  systemRamBytes: z.ZodOptional<z.ZodNumber>;
1885
+ /** Retired curated ids that no longer belong to any canonical catalog entry. */
1886
+ retiredModelIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1490
1887
  models: z.ZodDefault<z.ZodArray<z.ZodObject<{
1491
1888
  id: z.ZodString;
1492
1889
  /** Retired Otto-curated ids this canonical catalog entry replaces. */
@@ -1494,6 +1891,8 @@ export declare const CatalogSchema: z.ZodObject<{
1494
1891
  name: z.ZodString;
1495
1892
  /** Stable UI family identity. Otto clients resolve this to a monochrome glyph. */
1496
1893
  family: z.ZodOptional<z.ZodString>;
1894
+ /** Otto-curated favorite shown as a gold premium badge in the Brain Library. */
1895
+ favorite: z.ZodDefault<z.ZodBoolean>;
1497
1896
  publisher: z.ZodOptional<z.ZodString>;
1498
1897
  hfRepo: z.ZodString;
1499
1898
  quant: z.ZodString;
@@ -1504,6 +1903,27 @@ export declare const CatalogSchema: z.ZodObject<{
1504
1903
  vision: z.ZodOptional<z.ZodBoolean>;
1505
1904
  thinking: z.ZodOptional<z.ZodBoolean>;
1506
1905
  reasoningEfforts: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1906
+ reasoningEffortDefault: z.ZodOptional<z.ZodString>;
1907
+ reasoningTemplate: z.ZodOptional<z.ZodObject<{
1908
+ enableThinkingArgument: z.ZodString;
1909
+ effortArgument: z.ZodString;
1910
+ }, "strict", z.ZodTypeAny, {
1911
+ enableThinkingArgument: string;
1912
+ effortArgument: string;
1913
+ }, {
1914
+ enableThinkingArgument: string;
1915
+ effortArgument: string;
1916
+ }>>;
1917
+ reasoningPreservation: z.ZodOptional<z.ZodObject<{
1918
+ templateArgument: z.ZodString;
1919
+ default: z.ZodOptional<z.ZodBoolean>;
1920
+ }, "strict", z.ZodTypeAny, {
1921
+ templateArgument: string;
1922
+ default?: boolean | undefined;
1923
+ }, {
1924
+ templateArgument: string;
1925
+ default?: boolean | undefined;
1926
+ }>>;
1507
1927
  contextMax: z.ZodOptional<z.ZodNumber>;
1508
1928
  useCases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1509
1929
  tier: z.ZodOptional<z.ZodString>;
@@ -1554,6 +1974,8 @@ export declare const CatalogSchema: z.ZodObject<{
1554
1974
  name: z.ZodString;
1555
1975
  /** Stable UI family identity. Otto clients resolve this to a monochrome glyph. */
1556
1976
  family: z.ZodOptional<z.ZodString>;
1977
+ /** Otto-curated favorite shown as a gold premium badge in the Brain Library. */
1978
+ favorite: z.ZodDefault<z.ZodBoolean>;
1557
1979
  publisher: z.ZodOptional<z.ZodString>;
1558
1980
  hfRepo: z.ZodString;
1559
1981
  quant: z.ZodString;
@@ -1564,6 +1986,27 @@ export declare const CatalogSchema: z.ZodObject<{
1564
1986
  vision: z.ZodOptional<z.ZodBoolean>;
1565
1987
  thinking: z.ZodOptional<z.ZodBoolean>;
1566
1988
  reasoningEfforts: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1989
+ reasoningEffortDefault: z.ZodOptional<z.ZodString>;
1990
+ reasoningTemplate: z.ZodOptional<z.ZodObject<{
1991
+ enableThinkingArgument: z.ZodString;
1992
+ effortArgument: z.ZodString;
1993
+ }, "strict", z.ZodTypeAny, {
1994
+ enableThinkingArgument: string;
1995
+ effortArgument: string;
1996
+ }, {
1997
+ enableThinkingArgument: string;
1998
+ effortArgument: string;
1999
+ }>>;
2000
+ reasoningPreservation: z.ZodOptional<z.ZodObject<{
2001
+ templateArgument: z.ZodString;
2002
+ default: z.ZodOptional<z.ZodBoolean>;
2003
+ }, "strict", z.ZodTypeAny, {
2004
+ templateArgument: string;
2005
+ default?: boolean | undefined;
2006
+ }, {
2007
+ templateArgument: string;
2008
+ default?: boolean | undefined;
2009
+ }>>;
1567
2010
  contextMax: z.ZodOptional<z.ZodNumber>;
1568
2011
  useCases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1569
2012
  tier: z.ZodOptional<z.ZodString>;
@@ -1614,6 +2057,8 @@ export declare const CatalogSchema: z.ZodObject<{
1614
2057
  name: z.ZodString;
1615
2058
  /** Stable UI family identity. Otto clients resolve this to a monochrome glyph. */
1616
2059
  family: z.ZodOptional<z.ZodString>;
2060
+ /** Otto-curated favorite shown as a gold premium badge in the Brain Library. */
2061
+ favorite: z.ZodDefault<z.ZodBoolean>;
1617
2062
  publisher: z.ZodOptional<z.ZodString>;
1618
2063
  hfRepo: z.ZodString;
1619
2064
  quant: z.ZodString;
@@ -1624,6 +2069,27 @@ export declare const CatalogSchema: z.ZodObject<{
1624
2069
  vision: z.ZodOptional<z.ZodBoolean>;
1625
2070
  thinking: z.ZodOptional<z.ZodBoolean>;
1626
2071
  reasoningEfforts: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2072
+ reasoningEffortDefault: z.ZodOptional<z.ZodString>;
2073
+ reasoningTemplate: z.ZodOptional<z.ZodObject<{
2074
+ enableThinkingArgument: z.ZodString;
2075
+ effortArgument: z.ZodString;
2076
+ }, "strict", z.ZodTypeAny, {
2077
+ enableThinkingArgument: string;
2078
+ effortArgument: string;
2079
+ }, {
2080
+ enableThinkingArgument: string;
2081
+ effortArgument: string;
2082
+ }>>;
2083
+ reasoningPreservation: z.ZodOptional<z.ZodObject<{
2084
+ templateArgument: z.ZodString;
2085
+ default: z.ZodOptional<z.ZodBoolean>;
2086
+ }, "strict", z.ZodTypeAny, {
2087
+ templateArgument: string;
2088
+ default?: boolean | undefined;
2089
+ }, {
2090
+ templateArgument: string;
2091
+ default?: boolean | undefined;
2092
+ }>>;
1627
2093
  contextMax: z.ZodOptional<z.ZodNumber>;
1628
2094
  useCases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1629
2095
  tier: z.ZodOptional<z.ZodString>;
@@ -1673,6 +2139,8 @@ export declare const CatalogSchema: z.ZodObject<{
1673
2139
  note: z.ZodOptional<z.ZodString>;
1674
2140
  vramBudgetBytes: z.ZodOptional<z.ZodNumber>;
1675
2141
  systemRamBytes: z.ZodOptional<z.ZodNumber>;
2142
+ /** Retired curated ids that no longer belong to any canonical catalog entry. */
2143
+ retiredModelIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1676
2144
  models: z.ZodDefault<z.ZodArray<z.ZodObject<{
1677
2145
  id: z.ZodString;
1678
2146
  /** Retired Otto-curated ids this canonical catalog entry replaces. */
@@ -1680,6 +2148,8 @@ export declare const CatalogSchema: z.ZodObject<{
1680
2148
  name: z.ZodString;
1681
2149
  /** Stable UI family identity. Otto clients resolve this to a monochrome glyph. */
1682
2150
  family: z.ZodOptional<z.ZodString>;
2151
+ /** Otto-curated favorite shown as a gold premium badge in the Brain Library. */
2152
+ favorite: z.ZodDefault<z.ZodBoolean>;
1683
2153
  publisher: z.ZodOptional<z.ZodString>;
1684
2154
  hfRepo: z.ZodString;
1685
2155
  quant: z.ZodString;
@@ -1690,6 +2160,27 @@ export declare const CatalogSchema: z.ZodObject<{
1690
2160
  vision: z.ZodOptional<z.ZodBoolean>;
1691
2161
  thinking: z.ZodOptional<z.ZodBoolean>;
1692
2162
  reasoningEfforts: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2163
+ reasoningEffortDefault: z.ZodOptional<z.ZodString>;
2164
+ reasoningTemplate: z.ZodOptional<z.ZodObject<{
2165
+ enableThinkingArgument: z.ZodString;
2166
+ effortArgument: z.ZodString;
2167
+ }, "strict", z.ZodTypeAny, {
2168
+ enableThinkingArgument: string;
2169
+ effortArgument: string;
2170
+ }, {
2171
+ enableThinkingArgument: string;
2172
+ effortArgument: string;
2173
+ }>>;
2174
+ reasoningPreservation: z.ZodOptional<z.ZodObject<{
2175
+ templateArgument: z.ZodString;
2176
+ default: z.ZodOptional<z.ZodBoolean>;
2177
+ }, "strict", z.ZodTypeAny, {
2178
+ templateArgument: string;
2179
+ default?: boolean | undefined;
2180
+ }, {
2181
+ templateArgument: string;
2182
+ default?: boolean | undefined;
2183
+ }>>;
1693
2184
  contextMax: z.ZodOptional<z.ZodNumber>;
1694
2185
  useCases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1695
2186
  tier: z.ZodOptional<z.ZodString>;
@@ -1740,6 +2231,8 @@ export declare const CatalogSchema: z.ZodObject<{
1740
2231
  name: z.ZodString;
1741
2232
  /** Stable UI family identity. Otto clients resolve this to a monochrome glyph. */
1742
2233
  family: z.ZodOptional<z.ZodString>;
2234
+ /** Otto-curated favorite shown as a gold premium badge in the Brain Library. */
2235
+ favorite: z.ZodDefault<z.ZodBoolean>;
1743
2236
  publisher: z.ZodOptional<z.ZodString>;
1744
2237
  hfRepo: z.ZodString;
1745
2238
  quant: z.ZodString;
@@ -1750,6 +2243,27 @@ export declare const CatalogSchema: z.ZodObject<{
1750
2243
  vision: z.ZodOptional<z.ZodBoolean>;
1751
2244
  thinking: z.ZodOptional<z.ZodBoolean>;
1752
2245
  reasoningEfforts: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2246
+ reasoningEffortDefault: z.ZodOptional<z.ZodString>;
2247
+ reasoningTemplate: z.ZodOptional<z.ZodObject<{
2248
+ enableThinkingArgument: z.ZodString;
2249
+ effortArgument: z.ZodString;
2250
+ }, "strict", z.ZodTypeAny, {
2251
+ enableThinkingArgument: string;
2252
+ effortArgument: string;
2253
+ }, {
2254
+ enableThinkingArgument: string;
2255
+ effortArgument: string;
2256
+ }>>;
2257
+ reasoningPreservation: z.ZodOptional<z.ZodObject<{
2258
+ templateArgument: z.ZodString;
2259
+ default: z.ZodOptional<z.ZodBoolean>;
2260
+ }, "strict", z.ZodTypeAny, {
2261
+ templateArgument: string;
2262
+ default?: boolean | undefined;
2263
+ }, {
2264
+ templateArgument: string;
2265
+ default?: boolean | undefined;
2266
+ }>>;
1753
2267
  contextMax: z.ZodOptional<z.ZodNumber>;
1754
2268
  useCases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1755
2269
  tier: z.ZodOptional<z.ZodString>;
@@ -1800,6 +2314,8 @@ export declare const CatalogSchema: z.ZodObject<{
1800
2314
  name: z.ZodString;
1801
2315
  /** Stable UI family identity. Otto clients resolve this to a monochrome glyph. */
1802
2316
  family: z.ZodOptional<z.ZodString>;
2317
+ /** Otto-curated favorite shown as a gold premium badge in the Brain Library. */
2318
+ favorite: z.ZodDefault<z.ZodBoolean>;
1803
2319
  publisher: z.ZodOptional<z.ZodString>;
1804
2320
  hfRepo: z.ZodString;
1805
2321
  quant: z.ZodString;
@@ -1810,6 +2326,27 @@ export declare const CatalogSchema: z.ZodObject<{
1810
2326
  vision: z.ZodOptional<z.ZodBoolean>;
1811
2327
  thinking: z.ZodOptional<z.ZodBoolean>;
1812
2328
  reasoningEfforts: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2329
+ reasoningEffortDefault: z.ZodOptional<z.ZodString>;
2330
+ reasoningTemplate: z.ZodOptional<z.ZodObject<{
2331
+ enableThinkingArgument: z.ZodString;
2332
+ effortArgument: z.ZodString;
2333
+ }, "strict", z.ZodTypeAny, {
2334
+ enableThinkingArgument: string;
2335
+ effortArgument: string;
2336
+ }, {
2337
+ enableThinkingArgument: string;
2338
+ effortArgument: string;
2339
+ }>>;
2340
+ reasoningPreservation: z.ZodOptional<z.ZodObject<{
2341
+ templateArgument: z.ZodString;
2342
+ default: z.ZodOptional<z.ZodBoolean>;
2343
+ }, "strict", z.ZodTypeAny, {
2344
+ templateArgument: string;
2345
+ default?: boolean | undefined;
2346
+ }, {
2347
+ templateArgument: string;
2348
+ default?: boolean | undefined;
2349
+ }>>;
1813
2350
  contextMax: z.ZodOptional<z.ZodNumber>;
1814
2351
  useCases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1815
2352
  tier: z.ZodOptional<z.ZodString>;
@@ -1859,6 +2396,8 @@ export declare const CatalogSchema: z.ZodObject<{
1859
2396
  note: z.ZodOptional<z.ZodString>;
1860
2397
  vramBudgetBytes: z.ZodOptional<z.ZodNumber>;
1861
2398
  systemRamBytes: z.ZodOptional<z.ZodNumber>;
2399
+ /** Retired curated ids that no longer belong to any canonical catalog entry. */
2400
+ retiredModelIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1862
2401
  models: z.ZodDefault<z.ZodArray<z.ZodObject<{
1863
2402
  id: z.ZodString;
1864
2403
  /** Retired Otto-curated ids this canonical catalog entry replaces. */
@@ -1866,6 +2405,8 @@ export declare const CatalogSchema: z.ZodObject<{
1866
2405
  name: z.ZodString;
1867
2406
  /** Stable UI family identity. Otto clients resolve this to a monochrome glyph. */
1868
2407
  family: z.ZodOptional<z.ZodString>;
2408
+ /** Otto-curated favorite shown as a gold premium badge in the Brain Library. */
2409
+ favorite: z.ZodDefault<z.ZodBoolean>;
1869
2410
  publisher: z.ZodOptional<z.ZodString>;
1870
2411
  hfRepo: z.ZodString;
1871
2412
  quant: z.ZodString;
@@ -1876,6 +2417,27 @@ export declare const CatalogSchema: z.ZodObject<{
1876
2417
  vision: z.ZodOptional<z.ZodBoolean>;
1877
2418
  thinking: z.ZodOptional<z.ZodBoolean>;
1878
2419
  reasoningEfforts: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2420
+ reasoningEffortDefault: z.ZodOptional<z.ZodString>;
2421
+ reasoningTemplate: z.ZodOptional<z.ZodObject<{
2422
+ enableThinkingArgument: z.ZodString;
2423
+ effortArgument: z.ZodString;
2424
+ }, "strict", z.ZodTypeAny, {
2425
+ enableThinkingArgument: string;
2426
+ effortArgument: string;
2427
+ }, {
2428
+ enableThinkingArgument: string;
2429
+ effortArgument: string;
2430
+ }>>;
2431
+ reasoningPreservation: z.ZodOptional<z.ZodObject<{
2432
+ templateArgument: z.ZodString;
2433
+ default: z.ZodOptional<z.ZodBoolean>;
2434
+ }, "strict", z.ZodTypeAny, {
2435
+ templateArgument: string;
2436
+ default?: boolean | undefined;
2437
+ }, {
2438
+ templateArgument: string;
2439
+ default?: boolean | undefined;
2440
+ }>>;
1879
2441
  contextMax: z.ZodOptional<z.ZodNumber>;
1880
2442
  useCases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1881
2443
  tier: z.ZodOptional<z.ZodString>;
@@ -1926,6 +2488,8 @@ export declare const CatalogSchema: z.ZodObject<{
1926
2488
  name: z.ZodString;
1927
2489
  /** Stable UI family identity. Otto clients resolve this to a monochrome glyph. */
1928
2490
  family: z.ZodOptional<z.ZodString>;
2491
+ /** Otto-curated favorite shown as a gold premium badge in the Brain Library. */
2492
+ favorite: z.ZodDefault<z.ZodBoolean>;
1929
2493
  publisher: z.ZodOptional<z.ZodString>;
1930
2494
  hfRepo: z.ZodString;
1931
2495
  quant: z.ZodString;
@@ -1936,6 +2500,27 @@ export declare const CatalogSchema: z.ZodObject<{
1936
2500
  vision: z.ZodOptional<z.ZodBoolean>;
1937
2501
  thinking: z.ZodOptional<z.ZodBoolean>;
1938
2502
  reasoningEfforts: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2503
+ reasoningEffortDefault: z.ZodOptional<z.ZodString>;
2504
+ reasoningTemplate: z.ZodOptional<z.ZodObject<{
2505
+ enableThinkingArgument: z.ZodString;
2506
+ effortArgument: z.ZodString;
2507
+ }, "strict", z.ZodTypeAny, {
2508
+ enableThinkingArgument: string;
2509
+ effortArgument: string;
2510
+ }, {
2511
+ enableThinkingArgument: string;
2512
+ effortArgument: string;
2513
+ }>>;
2514
+ reasoningPreservation: z.ZodOptional<z.ZodObject<{
2515
+ templateArgument: z.ZodString;
2516
+ default: z.ZodOptional<z.ZodBoolean>;
2517
+ }, "strict", z.ZodTypeAny, {
2518
+ templateArgument: string;
2519
+ default?: boolean | undefined;
2520
+ }, {
2521
+ templateArgument: string;
2522
+ default?: boolean | undefined;
2523
+ }>>;
1939
2524
  contextMax: z.ZodOptional<z.ZodNumber>;
1940
2525
  useCases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1941
2526
  tier: z.ZodOptional<z.ZodString>;
@@ -1986,6 +2571,8 @@ export declare const CatalogSchema: z.ZodObject<{
1986
2571
  name: z.ZodString;
1987
2572
  /** Stable UI family identity. Otto clients resolve this to a monochrome glyph. */
1988
2573
  family: z.ZodOptional<z.ZodString>;
2574
+ /** Otto-curated favorite shown as a gold premium badge in the Brain Library. */
2575
+ favorite: z.ZodDefault<z.ZodBoolean>;
1989
2576
  publisher: z.ZodOptional<z.ZodString>;
1990
2577
  hfRepo: z.ZodString;
1991
2578
  quant: z.ZodString;
@@ -1996,6 +2583,27 @@ export declare const CatalogSchema: z.ZodObject<{
1996
2583
  vision: z.ZodOptional<z.ZodBoolean>;
1997
2584
  thinking: z.ZodOptional<z.ZodBoolean>;
1998
2585
  reasoningEfforts: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2586
+ reasoningEffortDefault: z.ZodOptional<z.ZodString>;
2587
+ reasoningTemplate: z.ZodOptional<z.ZodObject<{
2588
+ enableThinkingArgument: z.ZodString;
2589
+ effortArgument: z.ZodString;
2590
+ }, "strict", z.ZodTypeAny, {
2591
+ enableThinkingArgument: string;
2592
+ effortArgument: string;
2593
+ }, {
2594
+ enableThinkingArgument: string;
2595
+ effortArgument: string;
2596
+ }>>;
2597
+ reasoningPreservation: z.ZodOptional<z.ZodObject<{
2598
+ templateArgument: z.ZodString;
2599
+ default: z.ZodOptional<z.ZodBoolean>;
2600
+ }, "strict", z.ZodTypeAny, {
2601
+ templateArgument: string;
2602
+ default?: boolean | undefined;
2603
+ }, {
2604
+ templateArgument: string;
2605
+ default?: boolean | undefined;
2606
+ }>>;
1999
2607
  contextMax: z.ZodOptional<z.ZodNumber>;
2000
2608
  useCases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2001
2609
  tier: z.ZodOptional<z.ZodString>;