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.
- package/README.md +12 -9
- package/dist/adapters/model-lints.d.ts +1 -0
- package/dist/adapters/model-lints.js +29 -1
- package/dist/brand.d.ts +2 -0
- package/dist/brand.js +13 -0
- package/dist/cli/commands/doctor.js +34 -6
- package/dist/cli/commands/fleet-picker.js +1 -1
- package/dist/cli/commands/fleet.d.ts +4 -4
- package/dist/cli/commands/fleet.js +168 -35
- package/dist/cli/commands/init.js +6 -4
- package/dist/config/config.d.ts +34 -1
- package/dist/config/config.js +96 -5
- package/dist/config/fleet-overlay.d.ts +9 -2
- package/dist/config/fleet-overlay.js +176 -18
- package/dist/route/preference.d.ts +1 -1
- package/dist/route/preference.js +12 -2
- package/dist/route/router.js +31 -2
- package/dist/tui/ink/fleet-app.d.ts +50 -8
- package/dist/tui/ink/fleet-app.js +1210 -839
- package/dist/tui/ink/frame.d.ts +62 -0
- package/dist/tui/ink/frame.js +204 -0
- package/dist/tui/ink/init-app.d.ts +2 -1
- package/dist/tui/ink/init-app.js +28 -100
- package/package.json +1 -1
|
@@ -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
|
|
94
|
-
|
|
95
|
-
|
|
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
|
|
120
|
-
|
|
121
|
-
|
|
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"
|
|
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[];
|