@codexhost/cli-win32-arm64 0.13.2 → 0.13.3
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 +1 -1
- package/app/codexhost-distribution.json +1 -1
- package/app/console-server.mjs +36 -3
- package/app/console-web.js +100 -78
- package/app/desktop-controller.mjs +36 -3
- package/app/host-runtime.mjs +81 -21
- package/app/plugins/antigravity/plugin.mjs +52 -7
- package/app/plugins/claude-code/plugin.mjs +194 -45
- package/app/plugins/codebuddy/plugin.mjs +110 -8
- package/app/plugins/codex-usage/plugin.mjs +36 -3
- package/app/plugins/cursor-cli/plugin.mjs +71 -10
- package/app/plugins/deepseek-harness/manifest.json +2 -2
- package/app/plugins/deepseek-harness/plugin.mjs +119 -10
- package/app/plugins/grok/plugin.mjs +64 -5
- package/app/plugins/hermes/plugin.mjs +63 -3
- package/app/plugins/kimi-code/plugin.mjs +64 -9
- package/app/plugins/kiro-cli/plugin.mjs +45 -3
- package/app/plugins/omp/plugin.mjs +46 -3
- package/app/plugins/opencode/plugin.mjs +52 -5
- package/app/plugins/pi/plugin.mjs +37 -3
- package/app/plugins/qoder/plugin.mjs +50 -3
- package/app/plugins/qoder-cn/plugin.mjs +50 -3
- package/app/plugins/workbuddy/plugin.mjs +227 -12
- package/app/plugins/zcode/plugin.mjs +49 -3
- package/app/renderer-extension.js +337 -366
- package/bin/codexhost.exe +0 -0
- package/libexec/codexhost-node-repl.exe +0 -0
- package/libexec/codexhost-shim.exe +0 -0
- package/libexec/codexhost-updater.exe +0 -0
- package/package.json +1 -1
package/app/host-runtime.mjs
CHANGED
|
@@ -20027,6 +20027,15 @@ var harnessDisplaySetSchema = external_exports.strictObject({
|
|
|
20027
20027
|
initializeOnly: external_exports.boolean().optional()
|
|
20028
20028
|
});
|
|
20029
20029
|
|
|
20030
|
+
// packages/shared-contracts/dist/harness-presentation.js
|
|
20031
|
+
var localeSchema = external_exports.string().max(64).regex(/^[a-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$/u);
|
|
20032
|
+
var displayText = (maximum) => external_exports.string().min(1).max(maximum).refine((text) => text.trim().length > 0);
|
|
20033
|
+
var harnessLocalizationsSchema = external_exports.record(localeSchema, external_exports.object({
|
|
20034
|
+
label: displayText(256).optional(),
|
|
20035
|
+
description: displayText(1024).optional()
|
|
20036
|
+
}).strict()).refine((entries) => Object.keys(entries).length <= 16, "Too many locales");
|
|
20037
|
+
var harnessLocalizedTextSchema = external_exports.record(localeSchema, displayText(4096)).refine((entries) => typeof entries.en === "string", "English fallback is required").refine((entries) => Object.keys(entries).length <= 16, "Too many locales");
|
|
20038
|
+
|
|
20030
20039
|
// packages/shared-contracts/dist/model-price-overrides.js
|
|
20031
20040
|
var MODEL_PRICE_OVERRIDES_GET_METHOD = "codexhost/usage/model-prices/get";
|
|
20032
20041
|
var MODEL_PRICE_OVERRIDES_SET_METHOD = "codexhost/usage/model-prices/set";
|
|
@@ -20376,8 +20385,24 @@ var threadUsageSnapshotSchema = external_exports.object({
|
|
|
20376
20385
|
}
|
|
20377
20386
|
});
|
|
20378
20387
|
var usagePercentSchema = external_exports.number().finite().min(0).max(100);
|
|
20388
|
+
var accountCreditsPeriodSchema = external_exports.enum([
|
|
20389
|
+
"weekly",
|
|
20390
|
+
"monthly",
|
|
20391
|
+
"five_hour",
|
|
20392
|
+
"seven_day",
|
|
20393
|
+
"unknown"
|
|
20394
|
+
]);
|
|
20395
|
+
var accountCreditsScopeSchema = external_exports.object({
|
|
20396
|
+
id: external_exports.string().min(1).max(256),
|
|
20397
|
+
label: external_exports.string().min(1).max(256),
|
|
20398
|
+
localizations: harnessLocalizationsSchema.optional()
|
|
20399
|
+
}).strict();
|
|
20379
20400
|
var accountCreditsProductUsageSchema = external_exports.object({
|
|
20380
20401
|
product: external_exports.string().min(1),
|
|
20402
|
+
/** Native period and scope, never inferred from the display name. */
|
|
20403
|
+
periodType: accountCreditsPeriodSchema.optional(),
|
|
20404
|
+
scope: accountCreditsScopeSchema.optional(),
|
|
20405
|
+
localizations: harnessLocalizationsSchema.optional(),
|
|
20381
20406
|
used: external_exports.number().finite().nonnegative().optional(),
|
|
20382
20407
|
// Zero is a real empty cap, not an absent field.
|
|
20383
20408
|
limit: external_exports.number().finite().nonnegative().optional(),
|
|
@@ -20397,9 +20422,11 @@ var accountCreditsSnapshotSchema = external_exports.object({
|
|
|
20397
20422
|
unit: external_exports.string().min(1).max(32).optional(),
|
|
20398
20423
|
/** Native label when the primary limit is scoped to a model or product group. */
|
|
20399
20424
|
label: external_exports.string().min(1).optional(),
|
|
20425
|
+
scope: accountCreditsScopeSchema.optional(),
|
|
20426
|
+
localizations: harnessLocalizationsSchema.optional(),
|
|
20400
20427
|
usedPercent: usagePercentSchema,
|
|
20401
20428
|
resetsAt: external_exports.string().min(1).optional(),
|
|
20402
|
-
periodType:
|
|
20429
|
+
periodType: accountCreditsPeriodSchema,
|
|
20403
20430
|
productUsage: external_exports.array(accountCreditsProductUsageSchema).min(1).optional(),
|
|
20404
20431
|
resetCredits: accountResetCreditsSchema.optional()
|
|
20405
20432
|
}).strict();
|
|
@@ -20410,7 +20437,9 @@ var threadUsageInspectionParamsSchema = external_exports.object({
|
|
|
20410
20437
|
var threadUsageInspectionSchema = external_exports.object({
|
|
20411
20438
|
threadId: hostThreadIdSchema,
|
|
20412
20439
|
usage: threadUsageSnapshotSchema.nullable(),
|
|
20413
|
-
accountCredits: accountCreditsSnapshotSchema.optional()
|
|
20440
|
+
accountCredits: accountCreditsSnapshotSchema.optional(),
|
|
20441
|
+
/** Whether this source can provide cached account quota independently of usage. */
|
|
20442
|
+
accountCreditsSupported: external_exports.boolean().optional()
|
|
20414
20443
|
}).strict();
|
|
20415
20444
|
|
|
20416
20445
|
// packages/shared-contracts/dist/harness-accounts.js
|
|
@@ -20537,7 +20566,8 @@ var harnessPermissionModeSchema = external_exports.object({
|
|
|
20537
20566
|
id: harnessPermissionModeIdSchema,
|
|
20538
20567
|
label: nonBlankTextSchema.max(HARNESS_PERMISSION_MODE_LABEL_MAX_LENGTH),
|
|
20539
20568
|
description: nonBlankTextSchema.max(HARNESS_PERMISSION_MODE_DESCRIPTION_MAX_LENGTH).optional(),
|
|
20540
|
-
dangerous: external_exports.boolean().optional()
|
|
20569
|
+
dangerous: external_exports.boolean().optional(),
|
|
20570
|
+
localizations: harnessLocalizationsSchema.optional()
|
|
20541
20571
|
}).strict();
|
|
20542
20572
|
var harnessPermissionModeCatalogSchema = external_exports.object({
|
|
20543
20573
|
modes: external_exports.array(harnessPermissionModeSchema).min(1).max(HARNESS_PERMISSION_MODE_CATALOG_MAX_LENGTH),
|
|
@@ -20961,6 +20991,8 @@ var harnessInstallationStateSchema = external_exports.object({
|
|
|
20961
20991
|
// Adapter-owned diagnostic text; UI uses messageCode rather than displaying it verbatim.
|
|
20962
20992
|
message: external_exports.string().max(2048).optional(),
|
|
20963
20993
|
messageCode: external_exports.string().min(1).max(128).optional(),
|
|
20994
|
+
/** Safe plugin-owned explanation, distinct from raw diagnostic message. */
|
|
20995
|
+
notice: harnessLocalizedTextSchema.optional(),
|
|
20964
20996
|
latestVersionKind: external_exports.enum(["unknown", "tracking-branch"]).optional()
|
|
20965
20997
|
}).strict();
|
|
20966
20998
|
|
|
@@ -21091,6 +21123,7 @@ var harnessCommandDescriptorSchema = external_exports.object({
|
|
|
21091
21123
|
invocation: commandInvocationSchema,
|
|
21092
21124
|
label: commandLabelSchema,
|
|
21093
21125
|
description: commandDescriptionSchema.optional(),
|
|
21126
|
+
localizations: harnessLocalizationsSchema.optional(),
|
|
21094
21127
|
argumentMode: external_exports.enum(["none", "text"]),
|
|
21095
21128
|
/**
|
|
21096
21129
|
* Native distinction reported by the Harness. Omitted when the Harness does
|
|
@@ -21482,6 +21515,9 @@ var RuntimeMaintenance = class {
|
|
|
21482
21515
|
#watch = null;
|
|
21483
21516
|
#starting = null;
|
|
21484
21517
|
#startingVersion = null;
|
|
21518
|
+
get #startTimeoutMs() {
|
|
21519
|
+
return this.options.updaterStartTimeoutMs ?? UPDATER_START_TIMEOUT_MS;
|
|
21520
|
+
}
|
|
21485
21521
|
#ensureWatching() {
|
|
21486
21522
|
if (this.#watch) return;
|
|
21487
21523
|
this.#watch = setInterval(() => {
|
|
@@ -21578,7 +21614,7 @@ var RuntimeMaintenance = class {
|
|
|
21578
21614
|
}
|
|
21579
21615
|
} else {
|
|
21580
21616
|
const written = (await stat(this.#statusPath)).mtimeMs;
|
|
21581
|
-
alive = Date.now() - written <
|
|
21617
|
+
alive = Date.now() - written < this.#startTimeoutMs * 2;
|
|
21582
21618
|
}
|
|
21583
21619
|
if (!alive) {
|
|
21584
21620
|
parsed2.phase = "failed";
|
|
@@ -21702,7 +21738,7 @@ var RuntimeMaintenance = class {
|
|
|
21702
21738
|
if (!Number.isSafeInteger(helperPid) || helperPid <= 0) {
|
|
21703
21739
|
throw new Error("Remote updater could not be started");
|
|
21704
21740
|
}
|
|
21705
|
-
const deadline = Date.now() +
|
|
21741
|
+
const deadline = Date.now() + this.#startTimeoutMs;
|
|
21706
21742
|
while (!await this.#helperReported()) {
|
|
21707
21743
|
if (Date.now() >= deadline) {
|
|
21708
21744
|
try {
|
|
@@ -25003,6 +25039,16 @@ function rewriteDelegationMentionInput(input, skill) {
|
|
|
25003
25039
|
return rewritten;
|
|
25004
25040
|
}
|
|
25005
25041
|
|
|
25042
|
+
// packages/harness-adapter/dist/account-credits.js
|
|
25043
|
+
function parseHarnessAccountCredits(value2) {
|
|
25044
|
+
if (!value2 || typeof value2 !== "object" || Array.isArray(value2))
|
|
25045
|
+
return null;
|
|
25046
|
+
const publicValue = { ...value2 };
|
|
25047
|
+
delete publicValue.fetchedAt;
|
|
25048
|
+
const parsed2 = accountCreditsSnapshotSchema.safeParse(publicValue);
|
|
25049
|
+
return parsed2.success ? parsed2.data : null;
|
|
25050
|
+
}
|
|
25051
|
+
|
|
25006
25052
|
// packages/harness-adapter/dist/output-channel.js
|
|
25007
25053
|
var HarnessOutputChannel = class {
|
|
25008
25054
|
outputs;
|
|
@@ -27102,6 +27148,7 @@ function projectCodexRateLimitsToCredits(usage, resetCredits) {
|
|
|
27102
27148
|
const resetsAtUnix = hasFiveHour ? usage.planFiveHourResetsAtUnix : usage.planSevenDayResetsAtUnix;
|
|
27103
27149
|
const secondary = hasFiveHour && hasSevenDay && usage.planSevenDayUsedPercent !== void 0 ? {
|
|
27104
27150
|
product: "7-day window",
|
|
27151
|
+
periodType: "seven_day",
|
|
27105
27152
|
usagePercent: usage.planSevenDayUsedPercent,
|
|
27106
27153
|
...usage.planSevenDayResetsAtUnix !== void 0 ? { resetsAt: isoFromUnix(usage.planSevenDayResetsAtUnix) } : {}
|
|
27107
27154
|
} : void 0;
|
|
@@ -35789,7 +35836,9 @@ function hasValidSessionUsage(value2) {
|
|
|
35789
35836
|
}
|
|
35790
35837
|
function isAdapter(value2) {
|
|
35791
35838
|
if (!value2 || typeof value2 !== "object") return false;
|
|
35792
|
-
return hasValidSessionUsage(value2) && ["inspect", "open", "close"].every((key) => typeof Reflect.get(value2, key) === "function")
|
|
35839
|
+
return hasValidSessionUsage(value2) && ["inspect", "open", "close"].every((key) => typeof Reflect.get(value2, key) === "function") && ["credits", "refreshCredits"].every(
|
|
35840
|
+
(key) => Reflect.get(value2, key) === void 0 || typeof Reflect.get(value2, key) === "function"
|
|
35841
|
+
);
|
|
35793
35842
|
}
|
|
35794
35843
|
function isUsageAdapter(value2) {
|
|
35795
35844
|
if (!value2 || typeof value2 !== "object" || typeof Reflect.get(value2, "close") !== "function")
|
|
@@ -37657,6 +37706,16 @@ async function moveThreadSection(input) {
|
|
|
37657
37706
|
}
|
|
37658
37707
|
}
|
|
37659
37708
|
|
|
37709
|
+
// packages/host-runtime/src/external-thread-official-defaults.ts
|
|
37710
|
+
var EMPTY_RESULTS = /* @__PURE__ */ new Map([
|
|
37711
|
+
["thread/attachment/list", () => ({ data: [], nextCursor: null })],
|
|
37712
|
+
["thread/queue/list", () => ({ data: [], nextCursor: null })],
|
|
37713
|
+
["thread/settings/update", () => ({})]
|
|
37714
|
+
]);
|
|
37715
|
+
function externalThreadEmptyOfficialResult(method) {
|
|
37716
|
+
return EMPTY_RESULTS.get(method)?.();
|
|
37717
|
+
}
|
|
37718
|
+
|
|
37660
37719
|
// packages/host-runtime/src/observed-session-usage.ts
|
|
37661
37720
|
var ObservedSessionUsage = class {
|
|
37662
37721
|
constructor(providers, prices, diagnose) {
|
|
@@ -37825,16 +37884,6 @@ function officialThreadBusy(thread) {
|
|
|
37825
37884
|
const latestTurn = turns.at(-1);
|
|
37826
37885
|
return isRecord18(latestTurn) && (latestTurn.status === "inProgress" || latestTurn.status === "running");
|
|
37827
37886
|
}
|
|
37828
|
-
function isCreditsAdapter(adapter) {
|
|
37829
|
-
return typeof adapter.credits === "function";
|
|
37830
|
-
}
|
|
37831
|
-
function projectAccountCredits(value2) {
|
|
37832
|
-
if (!isRecord18(value2)) return null;
|
|
37833
|
-
const rest = { ...value2 };
|
|
37834
|
-
delete rest.fetchedAt;
|
|
37835
|
-
const parsed2 = accountCreditsSnapshotSchema.safeParse(rest);
|
|
37836
|
-
return parsed2.success ? parsed2.data : null;
|
|
37837
|
-
}
|
|
37838
37887
|
function errorMessage4(error51) {
|
|
37839
37888
|
return error51 instanceof Error ? error51.message : String(error51);
|
|
37840
37889
|
}
|
|
@@ -39271,8 +39320,9 @@ var AppServerHost = class {
|
|
|
39271
39320
|
const location = await this.#locateExternalThread(request.params.threadId);
|
|
39272
39321
|
if (await this.#writeResolutionError(request, location)) return;
|
|
39273
39322
|
if (location.kind === "external") {
|
|
39323
|
+
const emptyResult = externalThreadEmptyOfficialResult(request.method);
|
|
39274
39324
|
await this.#writer.json(
|
|
39275
|
-
rpcError(request, -32076, `External Thread does not support ${request.method}`)
|
|
39325
|
+
emptyResult ? rpcEnvelope(request, { result: emptyResult }) : rpcError(request, -32076, `External Thread does not support ${request.method}`)
|
|
39276
39326
|
);
|
|
39277
39327
|
return;
|
|
39278
39328
|
}
|
|
@@ -40328,6 +40378,7 @@ var AppServerHost = class {
|
|
|
40328
40378
|
const result2 = threadUsageInspectionSchema.parse({
|
|
40329
40379
|
threadId: params.data.threadId,
|
|
40330
40380
|
usage: await this.#observedSessionUsage.read(params.data.threadId),
|
|
40381
|
+
accountCreditsSupported: true,
|
|
40331
40382
|
...accountCredits ? { accountCredits } : {}
|
|
40332
40383
|
});
|
|
40333
40384
|
await this.#writer.json(rpcEnvelope(request, { result: jsonValueSchema.parse(result2) }));
|
|
@@ -40335,11 +40386,17 @@ var AppServerHost = class {
|
|
|
40335
40386
|
}
|
|
40336
40387
|
if (params.data.refresh === "exact") void resolution.thread.session.refreshUsage?.();
|
|
40337
40388
|
const adapter = this.#externalAdapters.get(resolution.thread.harnessId);
|
|
40338
|
-
if (adapter &&
|
|
40339
|
-
|
|
40389
|
+
if (adapter?.credits && adapter.refreshCredits)
|
|
40390
|
+
void Promise.resolve().then(() => adapter.refreshCredits?.()).catch(() => void 0);
|
|
40391
|
+
let credits = null;
|
|
40392
|
+
try {
|
|
40393
|
+
credits = parseHarnessAccountCredits(adapter?.credits?.());
|
|
40394
|
+
} catch {
|
|
40395
|
+
}
|
|
40340
40396
|
const result = threadUsageInspectionSchema.parse({
|
|
40341
40397
|
threadId: params.data.threadId,
|
|
40342
40398
|
usage: await this.#threadUsage(resolution.thread),
|
|
40399
|
+
accountCreditsSupported: typeof adapter?.credits === "function",
|
|
40343
40400
|
...credits ? { accountCredits: credits } : {}
|
|
40344
40401
|
});
|
|
40345
40402
|
await this.#writer.json(rpcEnvelope(request, { result: jsonValueSchema.parse(result) }));
|
|
@@ -47853,8 +47910,11 @@ async function startHarnessBrokerServer(input) {
|
|
|
47853
47910
|
retireWhenIdle = false;
|
|
47854
47911
|
if (request.method === "adapter.credits") {
|
|
47855
47912
|
harnessAccountListParamsSchema.parse(request.params);
|
|
47856
|
-
const
|
|
47857
|
-
|
|
47913
|
+
const value2 = input.adapter.credits?.();
|
|
47914
|
+
const credits = parseHarnessAccountCredits(value2);
|
|
47915
|
+
if (value2 != null && !credits)
|
|
47916
|
+
throw new Error("Invalid account credits snapshot");
|
|
47917
|
+
return credits;
|
|
47858
47918
|
}
|
|
47859
47919
|
if (request.method === "adapter.inspectAccount") {
|
|
47860
47920
|
harnessAccountListParamsSchema.parse(request.params);
|
|
@@ -15010,6 +15010,15 @@ var harnessDisplaySetSchema = external_exports.strictObject({
|
|
|
15010
15010
|
initializeOnly: external_exports.boolean().optional()
|
|
15011
15011
|
});
|
|
15012
15012
|
|
|
15013
|
+
// ../../shared-contracts/dist/harness-presentation.js
|
|
15014
|
+
var localeSchema = external_exports.string().max(64).regex(/^[a-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$/u);
|
|
15015
|
+
var displayText = (maximum) => external_exports.string().min(1).max(maximum).refine((text) => text.trim().length > 0);
|
|
15016
|
+
var harnessLocalizationsSchema = external_exports.record(localeSchema, external_exports.object({
|
|
15017
|
+
label: displayText(256).optional(),
|
|
15018
|
+
description: displayText(1024).optional()
|
|
15019
|
+
}).strict()).refine((entries) => Object.keys(entries).length <= 16, "Too many locales");
|
|
15020
|
+
var harnessLocalizedTextSchema = external_exports.record(localeSchema, displayText(4096)).refine((entries) => typeof entries.en === "string", "English fallback is required").refine((entries) => Object.keys(entries).length <= 16, "Too many locales");
|
|
15021
|
+
|
|
15013
15022
|
// ../../shared-contracts/dist/model-price-overrides.js
|
|
15014
15023
|
var usdPerMillionTokens = external_exports.number().finite().nonnegative();
|
|
15015
15024
|
var modelPriceOverrideSchema = external_exports.strictObject({
|
|
@@ -15346,8 +15355,24 @@ var threadUsageSnapshotSchema = external_exports.object({
|
|
|
15346
15355
|
}
|
|
15347
15356
|
});
|
|
15348
15357
|
var usagePercentSchema = external_exports.number().finite().min(0).max(100);
|
|
15358
|
+
var accountCreditsPeriodSchema = external_exports.enum([
|
|
15359
|
+
"weekly",
|
|
15360
|
+
"monthly",
|
|
15361
|
+
"five_hour",
|
|
15362
|
+
"seven_day",
|
|
15363
|
+
"unknown"
|
|
15364
|
+
]);
|
|
15365
|
+
var accountCreditsScopeSchema = external_exports.object({
|
|
15366
|
+
id: external_exports.string().min(1).max(256),
|
|
15367
|
+
label: external_exports.string().min(1).max(256),
|
|
15368
|
+
localizations: harnessLocalizationsSchema.optional()
|
|
15369
|
+
}).strict();
|
|
15349
15370
|
var accountCreditsProductUsageSchema = external_exports.object({
|
|
15350
15371
|
product: external_exports.string().min(1),
|
|
15372
|
+
/** Native period and scope, never inferred from the display name. */
|
|
15373
|
+
periodType: accountCreditsPeriodSchema.optional(),
|
|
15374
|
+
scope: accountCreditsScopeSchema.optional(),
|
|
15375
|
+
localizations: harnessLocalizationsSchema.optional(),
|
|
15351
15376
|
used: external_exports.number().finite().nonnegative().optional(),
|
|
15352
15377
|
// Zero is a real empty cap, not an absent field.
|
|
15353
15378
|
limit: external_exports.number().finite().nonnegative().optional(),
|
|
@@ -15367,9 +15392,11 @@ var accountCreditsSnapshotSchema = external_exports.object({
|
|
|
15367
15392
|
unit: external_exports.string().min(1).max(32).optional(),
|
|
15368
15393
|
/** Native label when the primary limit is scoped to a model or product group. */
|
|
15369
15394
|
label: external_exports.string().min(1).optional(),
|
|
15395
|
+
scope: accountCreditsScopeSchema.optional(),
|
|
15396
|
+
localizations: harnessLocalizationsSchema.optional(),
|
|
15370
15397
|
usedPercent: usagePercentSchema,
|
|
15371
15398
|
resetsAt: external_exports.string().min(1).optional(),
|
|
15372
|
-
periodType:
|
|
15399
|
+
periodType: accountCreditsPeriodSchema,
|
|
15373
15400
|
productUsage: external_exports.array(accountCreditsProductUsageSchema).min(1).optional(),
|
|
15374
15401
|
resetCredits: accountResetCreditsSchema.optional()
|
|
15375
15402
|
}).strict();
|
|
@@ -15380,7 +15407,9 @@ var threadUsageInspectionParamsSchema = external_exports.object({
|
|
|
15380
15407
|
var threadUsageInspectionSchema = external_exports.object({
|
|
15381
15408
|
threadId: hostThreadIdSchema,
|
|
15382
15409
|
usage: threadUsageSnapshotSchema.nullable(),
|
|
15383
|
-
accountCredits: accountCreditsSnapshotSchema.optional()
|
|
15410
|
+
accountCredits: accountCreditsSnapshotSchema.optional(),
|
|
15411
|
+
/** Whether this source can provide cached account quota independently of usage. */
|
|
15412
|
+
accountCreditsSupported: external_exports.boolean().optional()
|
|
15384
15413
|
}).strict();
|
|
15385
15414
|
|
|
15386
15415
|
// ../../shared-contracts/dist/harness-accounts.js
|
|
@@ -15507,7 +15536,8 @@ var harnessPermissionModeSchema = external_exports.object({
|
|
|
15507
15536
|
id: harnessPermissionModeIdSchema,
|
|
15508
15537
|
label: nonBlankTextSchema.max(HARNESS_PERMISSION_MODE_LABEL_MAX_LENGTH),
|
|
15509
15538
|
description: nonBlankTextSchema.max(HARNESS_PERMISSION_MODE_DESCRIPTION_MAX_LENGTH).optional(),
|
|
15510
|
-
dangerous: external_exports.boolean().optional()
|
|
15539
|
+
dangerous: external_exports.boolean().optional(),
|
|
15540
|
+
localizations: harnessLocalizationsSchema.optional()
|
|
15511
15541
|
}).strict();
|
|
15512
15542
|
var harnessPermissionModeCatalogSchema = external_exports.object({
|
|
15513
15543
|
modes: external_exports.array(harnessPermissionModeSchema).min(1).max(HARNESS_PERMISSION_MODE_CATALOG_MAX_LENGTH),
|
|
@@ -15894,6 +15924,8 @@ var harnessInstallationStateSchema = external_exports.object({
|
|
|
15894
15924
|
// Adapter-owned diagnostic text; UI uses messageCode rather than displaying it verbatim.
|
|
15895
15925
|
message: external_exports.string().max(2048).optional(),
|
|
15896
15926
|
messageCode: external_exports.string().min(1).max(128).optional(),
|
|
15927
|
+
/** Safe plugin-owned explanation, distinct from raw diagnostic message. */
|
|
15928
|
+
notice: harnessLocalizedTextSchema.optional(),
|
|
15897
15929
|
latestVersionKind: external_exports.enum(["unknown", "tracking-branch"]).optional()
|
|
15898
15930
|
}).strict();
|
|
15899
15931
|
|
|
@@ -16020,6 +16052,7 @@ var harnessCommandDescriptorSchema = external_exports.object({
|
|
|
16020
16052
|
invocation: commandInvocationSchema,
|
|
16021
16053
|
label: commandLabelSchema,
|
|
16022
16054
|
description: commandDescriptionSchema.optional(),
|
|
16055
|
+
localizations: harnessLocalizationsSchema.optional(),
|
|
16023
16056
|
argumentMode: external_exports.enum(["none", "text"]),
|
|
16024
16057
|
/**
|
|
16025
16058
|
* Native distinction reported by the Harness. Omitted when the Harness does
|
|
@@ -17080,6 +17113,12 @@ var ANTIGRAVITY_PERMISSION_MODE_CATALOG = harnessPermissionModeCatalogSchema.par
|
|
|
17080
17113
|
{
|
|
17081
17114
|
id: "dangerously-skip-permissions",
|
|
17082
17115
|
label: "Skip permissions",
|
|
17116
|
+
localizations: {
|
|
17117
|
+
"zh-CN": {
|
|
17118
|
+
label: "跳过权限检查",
|
|
17119
|
+
description: "使用 --dangerously-skip-permissions 运行 Antigravity CLI;codexhost 不增加工具审批或工作区限制。"
|
|
17120
|
+
}
|
|
17121
|
+
},
|
|
17083
17122
|
description: "Run Antigravity CLI with --dangerously-skip-permissions. codexhost adds no tool approval or workspace restrictions.",
|
|
17084
17123
|
dangerous: true
|
|
17085
17124
|
}
|
|
@@ -17801,6 +17840,8 @@ function parseBuckets(groups) {
|
|
|
17801
17840
|
const resetsAt = nonEmptyString(bucket.reset_time);
|
|
17802
17841
|
buckets.push({
|
|
17803
17842
|
product: groupName ? `${groupName} · ${label}` : label,
|
|
17843
|
+
periodType: periodTypeFrom(window),
|
|
17844
|
+
...groupName ? { scope: { id: groupName, label: groupName } } : {},
|
|
17804
17845
|
usagePercent,
|
|
17805
17846
|
window,
|
|
17806
17847
|
...resetsAt ? { resetsAt } : {}
|
|
@@ -17834,14 +17875,17 @@ function parseAntigravityUsageCommand(command, fetchedAt = (/* @__PURE__ */ new
|
|
|
17834
17875
|
return null;
|
|
17835
17876
|
const others = buckets.filter((bucket) => bucket !== leading);
|
|
17836
17877
|
return {
|
|
17837
|
-
label: leading.product,
|
|
17878
|
+
...leading.scope || periodTypeFrom(leading.window) === "unknown" ? { label: leading.product } : {},
|
|
17879
|
+
...leading.scope ? { scope: leading.scope } : {},
|
|
17838
17880
|
usedPercent: leading.usagePercent,
|
|
17839
17881
|
periodType: periodTypeFrom(leading.window),
|
|
17840
17882
|
fetchedAt,
|
|
17841
17883
|
...leading.resetsAt ? { resetsAt: leading.resetsAt } : {},
|
|
17842
17884
|
...others.length > 0 ? {
|
|
17843
|
-
productUsage: others.map(({ product, usagePercent, resetsAt }) => ({
|
|
17885
|
+
productUsage: others.map(({ product, periodType, scope, usagePercent, resetsAt }) => ({
|
|
17844
17886
|
product,
|
|
17887
|
+
...periodType ? { periodType } : {},
|
|
17888
|
+
...scope ? { scope } : {},
|
|
17845
17889
|
usagePercent,
|
|
17846
17890
|
...resetsAt ? { resetsAt } : {}
|
|
17847
17891
|
}))
|
|
@@ -19885,7 +19929,8 @@ var AntigravityAdapter = class {
|
|
|
19885
19929
|
return null;
|
|
19886
19930
|
return {
|
|
19887
19931
|
credits: {
|
|
19888
|
-
label: snapshot.label,
|
|
19932
|
+
...snapshot.label ? { label: snapshot.label } : {},
|
|
19933
|
+
...snapshot.scope ? { scope: snapshot.scope } : {},
|
|
19889
19934
|
usedPercent: snapshot.usedPercent,
|
|
19890
19935
|
periodType: snapshot.periodType,
|
|
19891
19936
|
...snapshot.resetsAt ? { resetsAt: snapshot.resetsAt } : {},
|
|
@@ -19893,7 +19938,7 @@ var AntigravityAdapter = class {
|
|
|
19893
19938
|
}
|
|
19894
19939
|
};
|
|
19895
19940
|
}
|
|
19896
|
-
/**
|
|
19941
|
+
/** Public account telemetry cache; never attributes quota to historical Thread spend. */
|
|
19897
19942
|
credits() {
|
|
19898
19943
|
return this.#quota;
|
|
19899
19944
|
}
|