claude-use 11.53.0 → 11.54.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.cjs +883 -593
- package/dist/index.cjs +41 -4
- package/dist/index.mjs +41 -4
- package/dist/types/index.d.ts +836 -0
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -140,7 +140,7 @@ var init_proxyBypass = __esm({
|
|
|
140
140
|
|
|
141
141
|
// src/config/statusline.ts
|
|
142
142
|
function distinctList(member) {
|
|
143
|
-
return import_zod.z.array(member).refine((items) => new Set(items).size === items.length, "must not repeat
|
|
143
|
+
return import_zod.z.array(member).refine((items) => new Set(items).size === items.length, "must not repeat an entry");
|
|
144
144
|
}
|
|
145
145
|
function isSingleVisibleGrapheme(text) {
|
|
146
146
|
return [...GRAPHEMES.segment(text)].length === 1 && !/[\p{C}\p{Z}]/u.test(text);
|
|
@@ -165,12 +165,12 @@ function resolveStatusline(settings) {
|
|
|
165
165
|
}
|
|
166
166
|
return resolved;
|
|
167
167
|
}
|
|
168
|
-
var import_zod, STATUSLINE_HEADER_SEGMENTS, STATUSLINE_ROWS, STATUSLINE_COLOUR_NAMES, DEFAULT_HEADER_SEGMENTS, DEFAULT_ROWS, STATUSLINE_PATH_LEVELS, MAX_PERCENT, MAX_STATUSLINE_PALETTE_INDEX, MAX_STATUSLINE_LABEL_CHARS, MAX_BAR_CELLS, LABEL_RE2, colourValue, GRAPHEMES, barCharacter, labelText, wholePercent, SHAPES, StatuslineSchema, ResolvedStatuslineSchema, STATUSLINE_DEFAULTS, STATUSLINE_ENV;
|
|
168
|
+
var import_zod, STATUSLINE_HEADER_SEGMENTS, STATUSLINE_ROWS, STATUSLINE_COLOUR_NAMES, DEFAULT_HEADER_SEGMENTS, DEFAULT_ROWS, STATUSLINE_PATH_LEVELS, MAX_PERCENT, MAX_STATUSLINE_PALETTE_INDEX, MAX_STATUSLINE_LABEL_CHARS, MAX_BAR_CELLS, MAX_ACCOUNT_USER_CHARS, MAX_DISPLAY_TEXT_CHARS, LABEL_RE2, OPTIONAL_LABEL_RE, colourValue, GRAPHEMES, barCharacter, labelText, overrideText, wholePercent, SHAPES, StatuslineSchema, ResolvedStatuslineSchema, STATUSLINE_DEFAULTS, STATUSLINE_ENV;
|
|
169
169
|
var init_statusline = __esm({
|
|
170
170
|
"src/config/statusline.ts"() {
|
|
171
171
|
"use strict";
|
|
172
172
|
import_zod = require("zod");
|
|
173
|
-
STATUSLINE_HEADER_SEGMENTS = ["model", "provider", "route", "account", "identity", "headroom", "project", "vcs"];
|
|
173
|
+
STATUSLINE_HEADER_SEGMENTS = ["model", "provider", "route", "account", "identity", "headroom", "project", "vcs", "effort", "advisor", "version", "outputStyle"];
|
|
174
174
|
STATUSLINE_ROWS = ["context", "quota", "addedDirs", "gitFiles"];
|
|
175
175
|
STATUSLINE_COLOUR_NAMES = [
|
|
176
176
|
"default",
|
|
@@ -199,17 +199,39 @@ var init_statusline = __esm({
|
|
|
199
199
|
MAX_STATUSLINE_PALETTE_INDEX = 255;
|
|
200
200
|
MAX_STATUSLINE_LABEL_CHARS = 12;
|
|
201
201
|
MAX_BAR_CELLS = 40;
|
|
202
|
+
MAX_ACCOUNT_USER_CHARS = 254;
|
|
203
|
+
MAX_DISPLAY_TEXT_CHARS = 80;
|
|
202
204
|
LABEL_RE2 = /^[^\p{C}\p{Z}]+(?: [^\p{C}\p{Z}]+)*$/u;
|
|
205
|
+
OPTIONAL_LABEL_RE = /^(?:[^\p{C}\p{Z}]+(?: [^\p{C}\p{Z}]+)*)?$/u;
|
|
203
206
|
colourValue = import_zod.z.union([import_zod.z.enum(STATUSLINE_COLOUR_NAMES), import_zod.z.number().int().min(0).max(MAX_STATUSLINE_PALETTE_INDEX), import_zod.z.string().regex(/^#[0-9a-fA-F]{6}$/, "must be a colour name, a palette index from 0 to 255 or #rrggbb")]);
|
|
204
207
|
GRAPHEMES = new Intl.Segmenter(void 0, { granularity: "grapheme" });
|
|
205
208
|
barCharacter = import_zod.z.string().refine(isSingleVisibleGrapheme, "must be a single visible character");
|
|
206
209
|
labelText = import_zod.z.string().max(MAX_STATUSLINE_LABEL_CHARS).regex(LABEL_RE2, "must be visible text without control characters");
|
|
210
|
+
overrideText = import_zod.z.string().max(MAX_DISPLAY_TEXT_CHARS).regex(OPTIONAL_LABEL_RE, "must be visible text without control characters");
|
|
207
211
|
wholePercent = import_zod.z.number().int().min(1).max(MAX_PERCENT);
|
|
208
212
|
SHAPES = {
|
|
209
213
|
layout: {
|
|
210
214
|
header: distinctList(import_zod.z.enum(STATUSLINE_HEADER_SEGMENTS)).describe("The header segments to draw, in drawing order; a segment left out is hidden, and an empty list hides the header."),
|
|
211
215
|
rows: distinctList(import_zod.z.enum(STATUSLINE_ROWS)).describe("The rows to draw below the header, in drawing order; a row left out is hidden, and an empty list hides every row.")
|
|
212
216
|
},
|
|
217
|
+
model: {
|
|
218
|
+
format: import_zod.z.enum(["full", "compact", "short"]).describe("How the model's name is written: full is the name as the client gives it, compact drops a context-window suffix such as (1M context), and short also drops a leading Claude."),
|
|
219
|
+
override: overrideText.describe("A name to show in place of the client's own model name, whatever model is running; empty shows the model's own name. A dynamic mode's served model still follows it."),
|
|
220
|
+
source: import_zod.z.enum(["client", "transcript", "auto"]).describe("Where the model's name comes from: client is the name the client reports, transcript is the model the session's last reply came from (what a proxy actually served), and auto uses the transcript's model only when it is not a Claude model, which is what a proxy redirect looks like.")
|
|
221
|
+
},
|
|
222
|
+
provider: {
|
|
223
|
+
name: overrideText.describe("A label to show in place of the launch's provider name, or on its own when the launch has no provider; empty shows the provider's own name.")
|
|
224
|
+
},
|
|
225
|
+
account: {
|
|
226
|
+
parts: distinctList(import_zod.z.enum(["user", "organisation", "plan"])).describe("What the account segment says about the login account, in drawing order: the account's email address, its organisation (shown for team and enterprise accounts) and its plan. A part left out is hidden, and an empty list hides the segment."),
|
|
227
|
+
userLength: import_zod.z.number().int().min(0).max(MAX_ACCOUNT_USER_CHARS).describe("The most characters of the account's email address to show, with an ellipsis after a cut one; 0 shows all of it.")
|
|
228
|
+
},
|
|
229
|
+
effort: {
|
|
230
|
+
format: import_zod.z.enum(["full", "symbol", "text"]).describe("How the reasoning effort is written: full is a symbol and the level (a filled circle that grows with the level, then the name), symbol is the symbol alone, and text is the level's name alone. A level with no symbol is always written as its name.")
|
|
231
|
+
},
|
|
232
|
+
advisor: {
|
|
233
|
+
override: overrideText.describe("A name to show for the advisor model in place of the one the session's transcript records; empty shows the transcript's, prettified.")
|
|
234
|
+
},
|
|
213
235
|
bands: {
|
|
214
236
|
warnAt: wholePercent.describe("The whole percentage of use at which a bar turns yellow; it must be below criticalAt."),
|
|
215
237
|
criticalAt: wholePercent.describe("The whole percentage of use at which a bar turns red.")
|
|
@@ -257,6 +279,11 @@ var init_statusline = __esm({
|
|
|
257
279
|
};
|
|
258
280
|
StatuslineSchema = import_zod.z.strictObject({
|
|
259
281
|
layout: import_zod.z.strictObject(SHAPES.layout).partial().optional(),
|
|
282
|
+
model: import_zod.z.strictObject(SHAPES.model).partial().optional(),
|
|
283
|
+
provider: import_zod.z.strictObject(SHAPES.provider).partial().optional(),
|
|
284
|
+
account: import_zod.z.strictObject(SHAPES.account).partial().optional(),
|
|
285
|
+
effort: import_zod.z.strictObject(SHAPES.effort).partial().optional(),
|
|
286
|
+
advisor: import_zod.z.strictObject(SHAPES.advisor).partial().optional(),
|
|
260
287
|
bands: import_zod.z.strictObject(SHAPES.bands).partial().optional(),
|
|
261
288
|
labels: import_zod.z.strictObject(SHAPES.labels).partial().optional(),
|
|
262
289
|
bar: import_zod.z.strictObject(SHAPES.bar).partial().optional(),
|
|
@@ -267,6 +294,11 @@ var init_statusline = __esm({
|
|
|
267
294
|
});
|
|
268
295
|
ResolvedStatuslineSchema = import_zod.z.strictObject({
|
|
269
296
|
layout: import_zod.z.strictObject(SHAPES.layout),
|
|
297
|
+
model: import_zod.z.strictObject(SHAPES.model),
|
|
298
|
+
provider: import_zod.z.strictObject(SHAPES.provider),
|
|
299
|
+
account: import_zod.z.strictObject(SHAPES.account),
|
|
300
|
+
effort: import_zod.z.strictObject(SHAPES.effort),
|
|
301
|
+
advisor: import_zod.z.strictObject(SHAPES.advisor),
|
|
270
302
|
bands: import_zod.z.strictObject(SHAPES.bands),
|
|
271
303
|
labels: import_zod.z.strictObject(SHAPES.labels),
|
|
272
304
|
bar: import_zod.z.strictObject(SHAPES.bar),
|
|
@@ -277,6 +309,11 @@ var init_statusline = __esm({
|
|
|
277
309
|
});
|
|
278
310
|
STATUSLINE_DEFAULTS = {
|
|
279
311
|
layout: { header: [...DEFAULT_HEADER_SEGMENTS], rows: [...DEFAULT_ROWS] },
|
|
312
|
+
model: { format: "full", override: "", source: "client" },
|
|
313
|
+
provider: { name: "" },
|
|
314
|
+
account: { parts: ["user", "organisation", "plan"], userLength: 0 },
|
|
315
|
+
effort: { format: "full" },
|
|
316
|
+
advisor: { override: "" },
|
|
280
317
|
bands: { warnAt: 70, criticalAt: 90 },
|
|
281
318
|
labels: { fiveHour: "5h", sevenDay: "Wk" },
|
|
282
319
|
bar: { width: 10, filled: "\u2588", empty: "\u2591" },
|
|
@@ -4361,7 +4398,7 @@ var init_package = __esm({
|
|
|
4361
4398
|
"package.json"() {
|
|
4362
4399
|
package_default = {
|
|
4363
4400
|
name: "claude-use",
|
|
4364
|
-
version: "11.
|
|
4401
|
+
version: "11.54.0",
|
|
4365
4402
|
description: "A profile manager and launcher for Claude Code that lets one person run multiple logins from one machine while controlling what gets shared between them.",
|
|
4366
4403
|
license: "MIT",
|
|
4367
4404
|
author: "Joseph Mearman <joseph@mearman.co.uk>",
|
package/dist/index.mjs
CHANGED
|
@@ -119,7 +119,7 @@ var init_proxyBypass = __esm({
|
|
|
119
119
|
// src/config/statusline.ts
|
|
120
120
|
import { z } from "zod";
|
|
121
121
|
function distinctList(member) {
|
|
122
|
-
return z.array(member).refine((items) => new Set(items).size === items.length, "must not repeat
|
|
122
|
+
return z.array(member).refine((items) => new Set(items).size === items.length, "must not repeat an entry");
|
|
123
123
|
}
|
|
124
124
|
function isSingleVisibleGrapheme(text) {
|
|
125
125
|
return [...GRAPHEMES.segment(text)].length === 1 && !/[\p{C}\p{Z}]/u.test(text);
|
|
@@ -144,11 +144,11 @@ function resolveStatusline(settings) {
|
|
|
144
144
|
}
|
|
145
145
|
return resolved;
|
|
146
146
|
}
|
|
147
|
-
var STATUSLINE_HEADER_SEGMENTS, STATUSLINE_ROWS, STATUSLINE_COLOUR_NAMES, DEFAULT_HEADER_SEGMENTS, DEFAULT_ROWS, STATUSLINE_PATH_LEVELS, MAX_PERCENT, MAX_STATUSLINE_PALETTE_INDEX, MAX_STATUSLINE_LABEL_CHARS, MAX_BAR_CELLS, LABEL_RE2, colourValue, GRAPHEMES, barCharacter, labelText, wholePercent, SHAPES, StatuslineSchema, ResolvedStatuslineSchema, STATUSLINE_DEFAULTS, STATUSLINE_ENV;
|
|
147
|
+
var STATUSLINE_HEADER_SEGMENTS, STATUSLINE_ROWS, STATUSLINE_COLOUR_NAMES, DEFAULT_HEADER_SEGMENTS, DEFAULT_ROWS, STATUSLINE_PATH_LEVELS, MAX_PERCENT, MAX_STATUSLINE_PALETTE_INDEX, MAX_STATUSLINE_LABEL_CHARS, MAX_BAR_CELLS, MAX_ACCOUNT_USER_CHARS, MAX_DISPLAY_TEXT_CHARS, LABEL_RE2, OPTIONAL_LABEL_RE, colourValue, GRAPHEMES, barCharacter, labelText, overrideText, wholePercent, SHAPES, StatuslineSchema, ResolvedStatuslineSchema, STATUSLINE_DEFAULTS, STATUSLINE_ENV;
|
|
148
148
|
var init_statusline = __esm({
|
|
149
149
|
"src/config/statusline.ts"() {
|
|
150
150
|
"use strict";
|
|
151
|
-
STATUSLINE_HEADER_SEGMENTS = ["model", "provider", "route", "account", "identity", "headroom", "project", "vcs"];
|
|
151
|
+
STATUSLINE_HEADER_SEGMENTS = ["model", "provider", "route", "account", "identity", "headroom", "project", "vcs", "effort", "advisor", "version", "outputStyle"];
|
|
152
152
|
STATUSLINE_ROWS = ["context", "quota", "addedDirs", "gitFiles"];
|
|
153
153
|
STATUSLINE_COLOUR_NAMES = [
|
|
154
154
|
"default",
|
|
@@ -177,17 +177,39 @@ var init_statusline = __esm({
|
|
|
177
177
|
MAX_STATUSLINE_PALETTE_INDEX = 255;
|
|
178
178
|
MAX_STATUSLINE_LABEL_CHARS = 12;
|
|
179
179
|
MAX_BAR_CELLS = 40;
|
|
180
|
+
MAX_ACCOUNT_USER_CHARS = 254;
|
|
181
|
+
MAX_DISPLAY_TEXT_CHARS = 80;
|
|
180
182
|
LABEL_RE2 = /^[^\p{C}\p{Z}]+(?: [^\p{C}\p{Z}]+)*$/u;
|
|
183
|
+
OPTIONAL_LABEL_RE = /^(?:[^\p{C}\p{Z}]+(?: [^\p{C}\p{Z}]+)*)?$/u;
|
|
181
184
|
colourValue = z.union([z.enum(STATUSLINE_COLOUR_NAMES), z.number().int().min(0).max(MAX_STATUSLINE_PALETTE_INDEX), z.string().regex(/^#[0-9a-fA-F]{6}$/, "must be a colour name, a palette index from 0 to 255 or #rrggbb")]);
|
|
182
185
|
GRAPHEMES = new Intl.Segmenter(void 0, { granularity: "grapheme" });
|
|
183
186
|
barCharacter = z.string().refine(isSingleVisibleGrapheme, "must be a single visible character");
|
|
184
187
|
labelText = z.string().max(MAX_STATUSLINE_LABEL_CHARS).regex(LABEL_RE2, "must be visible text without control characters");
|
|
188
|
+
overrideText = z.string().max(MAX_DISPLAY_TEXT_CHARS).regex(OPTIONAL_LABEL_RE, "must be visible text without control characters");
|
|
185
189
|
wholePercent = z.number().int().min(1).max(MAX_PERCENT);
|
|
186
190
|
SHAPES = {
|
|
187
191
|
layout: {
|
|
188
192
|
header: distinctList(z.enum(STATUSLINE_HEADER_SEGMENTS)).describe("The header segments to draw, in drawing order; a segment left out is hidden, and an empty list hides the header."),
|
|
189
193
|
rows: distinctList(z.enum(STATUSLINE_ROWS)).describe("The rows to draw below the header, in drawing order; a row left out is hidden, and an empty list hides every row.")
|
|
190
194
|
},
|
|
195
|
+
model: {
|
|
196
|
+
format: z.enum(["full", "compact", "short"]).describe("How the model's name is written: full is the name as the client gives it, compact drops a context-window suffix such as (1M context), and short also drops a leading Claude."),
|
|
197
|
+
override: overrideText.describe("A name to show in place of the client's own model name, whatever model is running; empty shows the model's own name. A dynamic mode's served model still follows it."),
|
|
198
|
+
source: z.enum(["client", "transcript", "auto"]).describe("Where the model's name comes from: client is the name the client reports, transcript is the model the session's last reply came from (what a proxy actually served), and auto uses the transcript's model only when it is not a Claude model, which is what a proxy redirect looks like.")
|
|
199
|
+
},
|
|
200
|
+
provider: {
|
|
201
|
+
name: overrideText.describe("A label to show in place of the launch's provider name, or on its own when the launch has no provider; empty shows the provider's own name.")
|
|
202
|
+
},
|
|
203
|
+
account: {
|
|
204
|
+
parts: distinctList(z.enum(["user", "organisation", "plan"])).describe("What the account segment says about the login account, in drawing order: the account's email address, its organisation (shown for team and enterprise accounts) and its plan. A part left out is hidden, and an empty list hides the segment."),
|
|
205
|
+
userLength: z.number().int().min(0).max(MAX_ACCOUNT_USER_CHARS).describe("The most characters of the account's email address to show, with an ellipsis after a cut one; 0 shows all of it.")
|
|
206
|
+
},
|
|
207
|
+
effort: {
|
|
208
|
+
format: z.enum(["full", "symbol", "text"]).describe("How the reasoning effort is written: full is a symbol and the level (a filled circle that grows with the level, then the name), symbol is the symbol alone, and text is the level's name alone. A level with no symbol is always written as its name.")
|
|
209
|
+
},
|
|
210
|
+
advisor: {
|
|
211
|
+
override: overrideText.describe("A name to show for the advisor model in place of the one the session's transcript records; empty shows the transcript's, prettified.")
|
|
212
|
+
},
|
|
191
213
|
bands: {
|
|
192
214
|
warnAt: wholePercent.describe("The whole percentage of use at which a bar turns yellow; it must be below criticalAt."),
|
|
193
215
|
criticalAt: wholePercent.describe("The whole percentage of use at which a bar turns red.")
|
|
@@ -235,6 +257,11 @@ var init_statusline = __esm({
|
|
|
235
257
|
};
|
|
236
258
|
StatuslineSchema = z.strictObject({
|
|
237
259
|
layout: z.strictObject(SHAPES.layout).partial().optional(),
|
|
260
|
+
model: z.strictObject(SHAPES.model).partial().optional(),
|
|
261
|
+
provider: z.strictObject(SHAPES.provider).partial().optional(),
|
|
262
|
+
account: z.strictObject(SHAPES.account).partial().optional(),
|
|
263
|
+
effort: z.strictObject(SHAPES.effort).partial().optional(),
|
|
264
|
+
advisor: z.strictObject(SHAPES.advisor).partial().optional(),
|
|
238
265
|
bands: z.strictObject(SHAPES.bands).partial().optional(),
|
|
239
266
|
labels: z.strictObject(SHAPES.labels).partial().optional(),
|
|
240
267
|
bar: z.strictObject(SHAPES.bar).partial().optional(),
|
|
@@ -245,6 +272,11 @@ var init_statusline = __esm({
|
|
|
245
272
|
});
|
|
246
273
|
ResolvedStatuslineSchema = z.strictObject({
|
|
247
274
|
layout: z.strictObject(SHAPES.layout),
|
|
275
|
+
model: z.strictObject(SHAPES.model),
|
|
276
|
+
provider: z.strictObject(SHAPES.provider),
|
|
277
|
+
account: z.strictObject(SHAPES.account),
|
|
278
|
+
effort: z.strictObject(SHAPES.effort),
|
|
279
|
+
advisor: z.strictObject(SHAPES.advisor),
|
|
248
280
|
bands: z.strictObject(SHAPES.bands),
|
|
249
281
|
labels: z.strictObject(SHAPES.labels),
|
|
250
282
|
bar: z.strictObject(SHAPES.bar),
|
|
@@ -255,6 +287,11 @@ var init_statusline = __esm({
|
|
|
255
287
|
});
|
|
256
288
|
STATUSLINE_DEFAULTS = {
|
|
257
289
|
layout: { header: [...DEFAULT_HEADER_SEGMENTS], rows: [...DEFAULT_ROWS] },
|
|
290
|
+
model: { format: "full", override: "", source: "client" },
|
|
291
|
+
provider: { name: "" },
|
|
292
|
+
account: { parts: ["user", "organisation", "plan"], userLength: 0 },
|
|
293
|
+
effort: { format: "full" },
|
|
294
|
+
advisor: { override: "" },
|
|
258
295
|
bands: { warnAt: 70, criticalAt: 90 },
|
|
259
296
|
labels: { fiveHour: "5h", sevenDay: "Wk" },
|
|
260
297
|
bar: { width: 10, filled: "\u2588", empty: "\u2591" },
|
|
@@ -4337,7 +4374,7 @@ var init_package = __esm({
|
|
|
4337
4374
|
"package.json"() {
|
|
4338
4375
|
package_default = {
|
|
4339
4376
|
name: "claude-use",
|
|
4340
|
-
version: "11.
|
|
4377
|
+
version: "11.54.0",
|
|
4341
4378
|
description: "A profile manager and launcher for Claude Code that lets one person run multiple logins from one machine while controlling what gets shared between them.",
|
|
4342
4379
|
license: "MIT",
|
|
4343
4380
|
author: "Joseph Mearman <joseph@mearman.co.uk>",
|