tickmarkr 1.91.0 → 1.92.1

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.
@@ -46,14 +46,28 @@ export type FleetModelSuggestion = {
46
46
  tier: Tier;
47
47
  note: string;
48
48
  };
49
+ /** Catalog + probe metadata rendered as the browser's metadata columns (omp-style). */
50
+ export type FleetModelEvidence = {
51
+ contextWindow?: number;
52
+ outputWindow?: number;
53
+ inputCostPerMtok?: number;
54
+ outputCostPerMtok?: number;
55
+ /** doctor's model probe wall clock (modelAuth.durationMs) — the "how fast did it answer" column */
56
+ probeMs?: number;
57
+ /** OBS-519: doctor's failed model-auth verdict reason — the row must not render like a healthy one */
58
+ unauthed?: string;
59
+ };
49
60
  export type FleetModelGroup = {
50
61
  adapter: string;
51
62
  vendor?: string;
63
+ /** configured billing channel (cfg.tiers.<adapter>.channel) — prices render for api, quota for sub */
64
+ channel?: "sub" | "api";
52
65
  rows: Array<{
53
66
  model: string;
54
67
  tier?: Tier;
55
68
  detectedAt?: string;
56
69
  suggestion?: FleetModelSuggestion;
70
+ evidence?: FleetModelEvidence;
57
71
  }>;
58
72
  };
59
73
  export type FleetClassification = {
@@ -81,7 +95,7 @@ export type FleetCandidateOption = {
81
95
  };
82
96
  };
83
97
  export declare function formatDoctorAge(ageMs: number | null): string;
84
- export declare function FleetApp({ ageMs, agents, initialDenyAdapters, initialDenyModels, modelGroups, initialMode, modeOptions, initialMap, modePreview, shapeRows, candidatesForShape, preferOptionsForShape, initialSteering, steeringOptionsFor, reviewOverlay, reloadGuard, entry, initialJudge, judgeSeats, viewRows, }: {
98
+ export declare function FleetApp({ ageMs, agents, initialDenyAdapters, initialDenyModels, modelGroups, initialMode, modeOptions, initialMap, modePreview, shapeRows, candidatesForShape, preferOptionsForShape, initialSteering, steeringOptionsFor, reviewOverlay, reloadGuard, entry, initialJudge, judgeSeats, viewRows, frameColumns, frameRows, }: {
85
99
  ageMs: number | null;
86
100
  agents: AgentCli[];
87
101
  initialDenyAdapters: string[];
@@ -90,9 +104,21 @@ export declare function FleetApp({ ageMs, agents, initialDenyAdapters, initialDe
90
104
  initialMode: RoutingMode;
91
105
  modeOptions: FleetModeOption[];
92
106
  initialMap: Record<string, MapEntry>;
93
- modePreview: (mode: RoutingMode, map: Record<string, MapEntry>) => string[];
94
- shapeRows: (mode: RoutingMode, map: Record<string, MapEntry>) => FleetShapeRow[];
95
- candidatesForShape: (shape: Shape, mode: RoutingMode, map: Record<string, MapEntry>) => FleetCandidateOption[];
107
+ modePreview: (mode: RoutingMode, map: Record<string, MapEntry>, deny: {
108
+ adapters: string[];
109
+ models: string[];
110
+ }) => string[];
111
+ shapeRows: (mode: RoutingMode, map: Record<string, MapEntry>, deny: {
112
+ adapters: string[];
113
+ models: string[];
114
+ }) => FleetShapeRow[];
115
+ candidatesForShape: (shape: Shape, mode: RoutingMode, map: Record<string, MapEntry>, deny: {
116
+ adapters: string[];
117
+ models: string[];
118
+ }) => {
119
+ rows: FleetCandidateOption[];
120
+ excludedNote?: string;
121
+ };
96
122
  preferOptionsForShape: (shape: Shape, current: string[]) => string[];
97
123
  initialSteering: Record<FleetSteeringKey, string[] | undefined>;
98
124
  steeringOptionsFor: (which: FleetSteeringKey, current: string[]) => string[];
@@ -105,6 +131,10 @@ export declare function FleetApp({ ageMs, agents, initialDenyAdapters, initialDe
105
131
  judgeSeats?: string[];
106
132
  /** list viewport capacity (terminal rows minus chrome) — long lists window around the cursor */
107
133
  viewRows?: number;
134
+ /** terminal width the frame lays out against */
135
+ frameColumns?: number;
136
+ /** terminal height — set only on a real TTY so the footer sticks to the bottom */
137
+ frameRows?: number;
108
138
  }): import("react").JSX.Element;
109
139
  export declare function runFleetInkEditor({ ageMs, adapters, health, initialDenyAdapters, initialDenyModels, modelGroups, initialMode, modeOptions, initialMap, modePreview, shapeRows, candidatesForShape, preferOptionsForShape, initialSteering, steeringOptionsFor, reviewOverlay, reloadGuard, entry, initialJudge, judgeSeats, initialInput, input, output, debug, }: {
110
140
  ageMs: number | null;
@@ -116,15 +146,27 @@ export declare function runFleetInkEditor({ ageMs, adapters, health, initialDeny
116
146
  initialMode: RoutingMode;
117
147
  modeOptions: FleetModeOption[];
118
148
  initialMap: Record<string, MapEntry>;
119
- modePreview: (mode: RoutingMode, map: Record<string, MapEntry>) => string[];
120
- shapeRows: (mode: RoutingMode, map: Record<string, MapEntry>) => FleetShapeRow[];
121
- candidatesForShape: (shape: Shape, mode: RoutingMode, map: Record<string, MapEntry>) => FleetCandidateOption[];
149
+ modePreview: (mode: RoutingMode, map: Record<string, MapEntry>, deny: {
150
+ adapters: string[];
151
+ models: string[];
152
+ }) => string[];
153
+ shapeRows: (mode: RoutingMode, map: Record<string, MapEntry>, deny: {
154
+ adapters: string[];
155
+ models: string[];
156
+ }) => FleetShapeRow[];
157
+ candidatesForShape: (shape: Shape, mode: RoutingMode, map: Record<string, MapEntry>, deny: {
158
+ adapters: string[];
159
+ models: string[];
160
+ }) => {
161
+ rows: FleetCandidateOption[];
162
+ excludedNote?: string;
163
+ };
122
164
  preferOptionsForShape: (shape: Shape, current: string[]) => string[];
123
165
  initialSteering: Record<FleetSteeringKey, string[] | undefined>;
124
166
  steeringOptionsFor: (which: FleetSteeringKey, current: string[]) => string[];
125
167
  reviewOverlay: (state: FleetEditorState) => FleetOverlayReview;
126
168
  reloadGuard: (bytes: string) => string | null;
127
- /** "presets" opens on the routing-mode screen with the extra custom row; default preserves the probe-first walk */
169
+ /** "presets" = init's entry: Esc in the browser is HOME to the preset overlay, not quit */
128
170
  entry?: "presets" | "probe";
129
171
  initialJudge?: string;
130
172
  judgeSeats?: string[];