@codexhost/cli-darwin-x64 0.12.1 → 0.13.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/README.md +1 -1
- package/THIRD_PARTY_NOTICES.txt +8 -0
- package/app/codexhost-distribution.json +1 -1
- package/app/console-server.mjs +232 -21
- package/app/console-web.js +5434 -1092
- package/app/desktop-controller.mjs +252 -41
- package/app/host-runtime.mjs +5318 -1448
- package/app/plugins/antigravity/manifest.json +18 -1
- package/app/plugins/antigravity/plugin.mjs +276 -42
- package/app/plugins/claude-code/manifest.json +28 -0
- package/app/plugins/claude-code/plugin.mjs +1049 -359
- package/app/plugins/codebuddy/manifest.json +17 -0
- package/app/plugins/codebuddy/plugin.mjs +5931 -5358
- package/app/plugins/codex-usage/manifest.json +9 -0
- package/app/plugins/codex-usage/plugin.mjs +16703 -0
- package/app/plugins/cursor-cli/manifest.json +17 -0
- package/app/plugins/cursor-cli/plugin.mjs +351 -77
- package/app/plugins/deepseek-harness/assets/icon.svg +1 -0
- package/app/plugins/deepseek-harness/manifest.json +35 -2
- package/app/plugins/deepseek-harness/plugin.mjs +798 -242
- package/app/plugins/enabled.json +2 -1
- package/app/plugins/grok/manifest.json +21 -1
- package/app/plugins/grok/plugin.mjs +884 -259
- package/app/plugins/hermes/assets/icon.png +0 -0
- package/app/plugins/hermes/manifest.json +30 -2
- package/app/plugins/hermes/plugin.mjs +278 -33
- package/app/plugins/kimi-code/assets/icon.svg +5 -0
- package/app/plugins/kimi-code/manifest.json +25 -2
- package/app/plugins/kimi-code/plugin.mjs +555 -36
- package/app/plugins/kiro-cli/assets/kiro-agent.svg +11 -0
- package/app/plugins/kiro-cli/manifest.json +18 -1
- package/app/plugins/kiro-cli/plugin.mjs +284 -22
- package/app/plugins/omp/manifest.json +21 -1
- package/app/plugins/omp/plugin.mjs +2737 -1956
- package/app/plugins/opencode/manifest.json +18 -1
- package/app/plugins/opencode/plugin.mjs +694 -147
- package/app/plugins/pi/manifest.json +32 -0
- package/app/plugins/pi/plugin.mjs +2809 -2254
- package/app/plugins/qoder/manifest.json +18 -1
- package/app/plugins/qoder/plugin.mjs +585 -81
- package/app/plugins/qoder-cn/manifest.json +18 -1
- package/app/plugins/qoder-cn/plugin.mjs +585 -81
- package/app/plugins/workbuddy/manifest.json +18 -0
- package/app/plugins/workbuddy/plugin.mjs +6317 -5746
- package/app/plugins/zcode/manifest.json +19 -1
- package/app/plugins/zcode/plugin.mjs +1066 -260
- package/app/renderer-extension.js +1999 -1686
- package/bin/codexhost +0 -0
- package/libexec/codexhost-shim +0 -0
- package/libexec/codexhost-updater +0 -0
- package/licenses/Cordis-LICENSE.txt +21 -0
- package/licenses/Cosmokit-LICENSE.txt +21 -0
- package/package.json +1 -1
- package/app/plugins/kiro-cli/assets/icon.svg +0 -5
|
@@ -3,8 +3,25 @@
|
|
|
3
3
|
"id": "antigravity",
|
|
4
4
|
"name": "Antigravity CLI",
|
|
5
5
|
"version": "0.0.0",
|
|
6
|
+
"installation": {
|
|
7
|
+
"commands": [
|
|
8
|
+
{
|
|
9
|
+
"terminal": "macOS / Linux · Terminal (sh/bash)",
|
|
10
|
+
"command": "curl -fsSL https://antigravity.google/cli/install.sh | bash"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"terminal": "Windows · PowerShell",
|
|
14
|
+
"command": "irm https://antigravity.google/cli/install.ps1 | iex"
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"after": {
|
|
18
|
+
"en": "After installation, run agy to complete login or setup.",
|
|
19
|
+
"zh-CN": "安装后运行 agy,完成登录或配置。"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
6
22
|
"links": {
|
|
7
|
-
"
|
|
23
|
+
"website": "https://antigravity.google/",
|
|
24
|
+
"installation": "https://antigravity.google/download#antigravity-cli"
|
|
8
25
|
},
|
|
9
26
|
"adapterApiVersion": 1,
|
|
10
27
|
"entry": "plugin.mjs",
|
|
@@ -5053,8 +5053,8 @@ function az_default() {
|
|
|
5053
5053
|
}
|
|
5054
5054
|
|
|
5055
5055
|
// ../../../node_modules/zod/v4/locales/be.js
|
|
5056
|
-
function getBelarusianPlural(
|
|
5057
|
-
const absCount = Math.abs(
|
|
5056
|
+
function getBelarusianPlural(count2, one, few, many) {
|
|
5057
|
+
const absCount = Math.abs(count2);
|
|
5058
5058
|
const lastDigit = absCount % 10;
|
|
5059
5059
|
const lastTwoDigits = absCount % 100;
|
|
5060
5060
|
if (lastTwoDigits >= 11 && lastTwoDigits <= 19) {
|
|
@@ -7132,8 +7132,8 @@ function hu_default() {
|
|
|
7132
7132
|
}
|
|
7133
7133
|
|
|
7134
7134
|
// ../../../node_modules/zod/v4/locales/hy.js
|
|
7135
|
-
function getArmenianPlural(
|
|
7136
|
-
return Math.abs(
|
|
7135
|
+
function getArmenianPlural(count2, one, many) {
|
|
7136
|
+
return Math.abs(count2) === 1 ? one : many;
|
|
7137
7137
|
}
|
|
7138
7138
|
function withDefiniteArticle(word) {
|
|
7139
7139
|
if (!word)
|
|
@@ -9261,8 +9261,8 @@ function ro_default() {
|
|
|
9261
9261
|
}
|
|
9262
9262
|
|
|
9263
9263
|
// ../../../node_modules/zod/v4/locales/ru.js
|
|
9264
|
-
function getRussianPlural(
|
|
9265
|
-
const absCount = Math.abs(
|
|
9264
|
+
function getRussianPlural(count2, one, few, many) {
|
|
9265
|
+
const absCount = Math.abs(count2);
|
|
9266
9266
|
const lastDigit = absCount % 10;
|
|
9267
9267
|
const lastTwoDigits = absCount % 100;
|
|
9268
9268
|
if (lastTwoDigits >= 11 && lastTwoDigits <= 19) {
|
|
@@ -14931,6 +14931,15 @@ function date4(params) {
|
|
|
14931
14931
|
// ../../../node_modules/zod/v4/classic/external.js
|
|
14932
14932
|
config(en_default());
|
|
14933
14933
|
|
|
14934
|
+
// ../../shared-contracts/dist/delegation-read.js
|
|
14935
|
+
var REMOTE_THREAD_REPLY_MAX_BYTES = 16 * 1024 * 1024;
|
|
14936
|
+
var delegationReadParamsSchema = external_exports.strictObject({
|
|
14937
|
+
threadId: external_exports.string().min(1).max(1024),
|
|
14938
|
+
view: external_exports.enum(["result", "messages"]),
|
|
14939
|
+
cursor: external_exports.string().min(1).max(8192).optional(),
|
|
14940
|
+
limit: external_exports.number().int().min(1).max(100).optional()
|
|
14941
|
+
});
|
|
14942
|
+
|
|
14934
14943
|
// ../../shared-contracts/dist/credential-imports.js
|
|
14935
14944
|
var credentialSourceSchema = external_exports.object({
|
|
14936
14945
|
id: external_exports.string().min(1).max(256),
|
|
@@ -15001,6 +15010,153 @@ var harnessDisplaySetSchema = external_exports.strictObject({
|
|
|
15001
15010
|
initializeOnly: external_exports.boolean().optional()
|
|
15002
15011
|
});
|
|
15003
15012
|
|
|
15013
|
+
// ../../shared-contracts/dist/model-price-overrides.js
|
|
15014
|
+
var usdPerMillionTokens = external_exports.number().finite().nonnegative();
|
|
15015
|
+
var modelPriceOverrideSchema = external_exports.strictObject({
|
|
15016
|
+
input: usdPerMillionTokens,
|
|
15017
|
+
output: usdPerMillionTokens,
|
|
15018
|
+
cacheRead: usdPerMillionTokens.optional(),
|
|
15019
|
+
cacheWrite: usdPerMillionTokens.optional(),
|
|
15020
|
+
cacheWrite1h: usdPerMillionTokens.optional()
|
|
15021
|
+
});
|
|
15022
|
+
var modelPriceKeySchema = external_exports.string().max(512).refine((key) => key.trim() === key && key.length > 0, "Model ID is required");
|
|
15023
|
+
var modelPriceOverridesSchema = external_exports.strictObject({
|
|
15024
|
+
/** Absolute path of the Host's `pricing.json`. */
|
|
15025
|
+
path: external_exports.string(),
|
|
15026
|
+
entries: external_exports.array(external_exports.strictObject({ key: external_exports.string(), price: modelPriceOverrideSchema })),
|
|
15027
|
+
/** Why the existing file is unusable; the Host then ignores it and refuses to overwrite it. */
|
|
15028
|
+
error: external_exports.string().nullable()
|
|
15029
|
+
});
|
|
15030
|
+
var modelPriceOverridesGetSchema = external_exports.strictObject({});
|
|
15031
|
+
var modelPriceOverridesSetSchema = external_exports.strictObject({
|
|
15032
|
+
key: modelPriceKeySchema,
|
|
15033
|
+
price: modelPriceOverrideSchema.nullable(),
|
|
15034
|
+
previousKey: modelPriceKeySchema.optional()
|
|
15035
|
+
});
|
|
15036
|
+
var modelPriceDefaultParamsSchema = external_exports.strictObject({
|
|
15037
|
+
model: modelPriceKeySchema
|
|
15038
|
+
});
|
|
15039
|
+
var modelPriceSuggestionSchema = external_exports.strictObject({
|
|
15040
|
+
/** Verified from catalog canonical links, not inferred from names or equal prices. */
|
|
15041
|
+
official: external_exports.boolean().optional(),
|
|
15042
|
+
canonicalModelId: external_exports.string().min(1).optional(),
|
|
15043
|
+
provider: external_exports.string().min(1).max(512),
|
|
15044
|
+
model: external_exports.string().min(1).max(512),
|
|
15045
|
+
price: modelPriceOverrideSchema
|
|
15046
|
+
});
|
|
15047
|
+
var modelPriceDefaultResultSchema = external_exports.strictObject({
|
|
15048
|
+
price: modelPriceOverrideSchema.nullable(),
|
|
15049
|
+
/** Local catalog suggestions only; never used automatically for pricing. */
|
|
15050
|
+
suggestions: external_exports.array(modelPriceSuggestionSchema).max(6).optional()
|
|
15051
|
+
});
|
|
15052
|
+
|
|
15053
|
+
// ../../shared-contracts/dist/usage-statistics.js
|
|
15054
|
+
var USAGE_STATISTICS_RANGES = ["today", "7d", "30d", "90d", "all"];
|
|
15055
|
+
var count = external_exports.number().int().min(0).max(Number.MAX_SAFE_INTEGER);
|
|
15056
|
+
var localDate = external_exports.string().regex(/^\d{4}-\d{2}-\d{2}$/u);
|
|
15057
|
+
var harness = external_exports.string().min(1).max(128);
|
|
15058
|
+
var model = external_exports.string().min(1).max(512);
|
|
15059
|
+
var project = external_exports.string().min(1).max(4096);
|
|
15060
|
+
var usageStatisticsParamsSchema = external_exports.strictObject({
|
|
15061
|
+
range: external_exports.enum(USAGE_STATISTICS_RANGES),
|
|
15062
|
+
harness: harness.optional(),
|
|
15063
|
+
model: model.nullable().optional(),
|
|
15064
|
+
project: project.nullable().optional(),
|
|
15065
|
+
/** One local date inside the range. */
|
|
15066
|
+
date: localDate.optional()
|
|
15067
|
+
});
|
|
15068
|
+
var usageStatisticsTotalsSchema = external_exports.strictObject({
|
|
15069
|
+
requests: count,
|
|
15070
|
+
inputTokens: count,
|
|
15071
|
+
cachedInputTokens: count,
|
|
15072
|
+
cacheWriteInputTokens: count,
|
|
15073
|
+
cacheKnownInputTokens: count,
|
|
15074
|
+
outputTokens: count,
|
|
15075
|
+
reasoningOutputTokens: count,
|
|
15076
|
+
/** USD at the public price, summed over the priced requests only. */
|
|
15077
|
+
costUsd: external_exports.number().finite().min(0),
|
|
15078
|
+
/** Requests without a price (or the cache data the price needs); not in `costUsd`. */
|
|
15079
|
+
unpricedRequests: count,
|
|
15080
|
+
/**
|
|
15081
|
+
* Requests whose storage gave no token counts: counted as requests, with neither tokens nor
|
|
15082
|
+
* cost, and not as unpriced.
|
|
15083
|
+
*/
|
|
15084
|
+
unmeteredRequests: count
|
|
15085
|
+
});
|
|
15086
|
+
var totals = usageStatisticsTotalsSchema.shape;
|
|
15087
|
+
var usageStatisticsSessionSchema = external_exports.strictObject({
|
|
15088
|
+
harness,
|
|
15089
|
+
sessionId: external_exports.string().min(1).max(512),
|
|
15090
|
+
project: project.nullable(),
|
|
15091
|
+
/** Models the session used, most requests first. */
|
|
15092
|
+
models: external_exports.array(model).max(16),
|
|
15093
|
+
firstAtMs: count,
|
|
15094
|
+
lastAtMs: count,
|
|
15095
|
+
...totals
|
|
15096
|
+
});
|
|
15097
|
+
var usageStatisticsResultSchema = external_exports.strictObject({
|
|
15098
|
+
range: external_exports.enum(USAGE_STATISTICS_RANGES),
|
|
15099
|
+
/** First local date of the range; null for all time. */
|
|
15100
|
+
from: localDate.nullable(),
|
|
15101
|
+
to: localDate,
|
|
15102
|
+
/** The filters these figures apply, echoed so a late answer to older filters is recognised. */
|
|
15103
|
+
filters: external_exports.strictObject({
|
|
15104
|
+
harness: harness.nullable(),
|
|
15105
|
+
model: model.nullable(),
|
|
15106
|
+
unknownModel: external_exports.boolean(),
|
|
15107
|
+
project: project.nullable(),
|
|
15108
|
+
unknownProject: external_exports.boolean(),
|
|
15109
|
+
date: localDate.nullable()
|
|
15110
|
+
}),
|
|
15111
|
+
/** Reading of native storage: incomplete while the first read, or a refresh, is under way. */
|
|
15112
|
+
reading: external_exports.strictObject({ complete: external_exports.boolean(), sources: count, read: count }),
|
|
15113
|
+
/** Harnesses whose storage could not be read; their part is missing, the rest is complete. */
|
|
15114
|
+
failures: external_exports.array(external_exports.strictObject({ harness, message: external_exports.string().max(2048) })).max(256),
|
|
15115
|
+
/** Every value seen in the range, ignoring the filters, to choose filters from. */
|
|
15116
|
+
options: external_exports.strictObject({
|
|
15117
|
+
harnesses: external_exports.array(harness).max(256),
|
|
15118
|
+
models: external_exports.array(model.nullable()).max(4096),
|
|
15119
|
+
projects: external_exports.array(project.nullable()).max(4096)
|
|
15120
|
+
}),
|
|
15121
|
+
/** Current display metadata, scoped by Harness. Never a pricing or filter identity.
|
|
15122
|
+
* Optional for older Hosts; missing/conflicting labels fall back to the native model ID.
|
|
15123
|
+
*/
|
|
15124
|
+
modelLabels: external_exports.array(external_exports.strictObject({ harness, model, label: model })).max(4096).optional(),
|
|
15125
|
+
/** Native credits, all filters applied, never combined across Harnesses or treated as USD.
|
|
15126
|
+
* Only groups with at least one reported value appear; reportedRequests exposes partial data.
|
|
15127
|
+
*/
|
|
15128
|
+
credits: external_exports.array(external_exports.strictObject({
|
|
15129
|
+
harness,
|
|
15130
|
+
model: model.nullable(),
|
|
15131
|
+
credits: external_exports.number().finite().min(0),
|
|
15132
|
+
reportedRequests: count,
|
|
15133
|
+
requests: count
|
|
15134
|
+
})).max(4096).optional(),
|
|
15135
|
+
/** All filters applied. */
|
|
15136
|
+
totals: usageStatisticsTotalsSchema,
|
|
15137
|
+
/** Each date and Harness of the range: every filter except the day. */
|
|
15138
|
+
daily: external_exports.array(external_exports.strictObject({ date: localDate, harness, ...totals })).max(2e5),
|
|
15139
|
+
/** Local weekday (0 = Sunday) and hour, all filters applied. */
|
|
15140
|
+
hourly: external_exports.array(external_exports.strictObject({
|
|
15141
|
+
weekday: external_exports.number().int().min(0).max(6),
|
|
15142
|
+
hour: external_exports.number().int().min(0).max(23),
|
|
15143
|
+
...totals
|
|
15144
|
+
})).max(168),
|
|
15145
|
+
byHarness: external_exports.array(external_exports.strictObject({ harness, ...totals })).max(256),
|
|
15146
|
+
byModel: external_exports.array(external_exports.strictObject({
|
|
15147
|
+
model: model.nullable(),
|
|
15148
|
+
...totals,
|
|
15149
|
+
/** Requests priced by what the Harness recorded they cost, not by a price list. */
|
|
15150
|
+
harnessPricedRequests: count
|
|
15151
|
+
})).max(4096),
|
|
15152
|
+
byProject: external_exports.array(external_exports.strictObject({ project: project.nullable(), ...totals })).max(4096),
|
|
15153
|
+
/**
|
|
15154
|
+
* The sessions that spent the most, by cost and by tokens without cache, all filters applied;
|
|
15155
|
+
* requests without a native session are not listed here but count everywhere else.
|
|
15156
|
+
*/
|
|
15157
|
+
sessions: external_exports.array(usageStatisticsSessionSchema).max(100)
|
|
15158
|
+
});
|
|
15159
|
+
|
|
15004
15160
|
// ../../shared-contracts/dist/ids.js
|
|
15005
15161
|
var opaqueIdSchema = external_exports.string().refine((value) => value.trim().length > 0, {
|
|
15006
15162
|
message: "Identifier must not be empty or whitespace"
|
|
@@ -15048,6 +15204,10 @@ var CONSOLE_HOST_METHODS = Object.freeze([
|
|
|
15048
15204
|
"codexhost/account/list",
|
|
15049
15205
|
"codexhost/account/refresh",
|
|
15050
15206
|
"codexhost/account/usage/inspect",
|
|
15207
|
+
"codexhost/usage/model-prices/get",
|
|
15208
|
+
"codexhost/usage/model-prices/set",
|
|
15209
|
+
"codexhost/usage/model-prices/default",
|
|
15210
|
+
"codexhost/usage/statistics/get",
|
|
15051
15211
|
"codexhost/update/check",
|
|
15052
15212
|
"codexhost/update/start",
|
|
15053
15213
|
"codexhost/update/status"
|
|
@@ -15112,6 +15272,7 @@ var threadUsageSnapshotSchema = external_exports.object({
|
|
|
15112
15272
|
cacheWriteInputTokens: nonNegativeSafeIntegerSchema.optional(),
|
|
15113
15273
|
outputTokens: nonNegativeSafeIntegerSchema.optional(),
|
|
15114
15274
|
outputTokensPerSecond: finiteNonNegativeNumberSchema.optional(),
|
|
15275
|
+
apiOutputTokensPerSecond: finiteNonNegativeNumberSchema.optional(),
|
|
15115
15276
|
reasoningOutputTokens: nonNegativeSafeIntegerSchema.optional(),
|
|
15116
15277
|
totalTokens: nonNegativeSafeIntegerSchema.optional(),
|
|
15117
15278
|
totalCostUsd: finiteNonNegativeNumberSchema.optional(),
|
|
@@ -15123,7 +15284,11 @@ var threadUsageSnapshotSchema = external_exports.object({
|
|
|
15123
15284
|
planFiveHourUsedPercent: cacheHitRatePercentSchema.optional(),
|
|
15124
15285
|
planFiveHourResetsAtUnix: nonNegativeSafeIntegerSchema.optional(),
|
|
15125
15286
|
planSevenDayUsedPercent: cacheHitRatePercentSchema.optional(),
|
|
15126
|
-
planSevenDayResetsAtUnix: nonNegativeSafeIntegerSchema.optional()
|
|
15287
|
+
planSevenDayResetsAtUnix: nonNegativeSafeIntegerSchema.optional(),
|
|
15288
|
+
sessionCacheHitRatePercent: cacheHitRatePercentSchema.optional(),
|
|
15289
|
+
timeToFirstOutputMs: nonNegativeSafeIntegerSchema.optional(),
|
|
15290
|
+
costSource: external_exports.enum(["publicPrice", "native"]).optional(),
|
|
15291
|
+
unpricedModels: external_exports.array(external_exports.string().min(1)).min(1).optional()
|
|
15127
15292
|
}).strict().superRefine((usage, context) => {
|
|
15128
15293
|
if (Object.keys(usage).length === 0) {
|
|
15129
15294
|
context.addIssue({ code: "custom", message: "Thread Usage must contain a reliable field" });
|
|
@@ -15144,6 +15309,20 @@ var threadUsageSnapshotSchema = external_exports.object({
|
|
|
15144
15309
|
path: ["contextWindowTokens"]
|
|
15145
15310
|
});
|
|
15146
15311
|
}
|
|
15312
|
+
if (usage.costSource !== void 0 && usage.totalCostUsd === void 0) {
|
|
15313
|
+
context.addIssue({
|
|
15314
|
+
code: "custom",
|
|
15315
|
+
message: "Thread Usage costSource must be provided with totalCostUsd",
|
|
15316
|
+
path: ["costSource"]
|
|
15317
|
+
});
|
|
15318
|
+
}
|
|
15319
|
+
if (usage.unpricedModels !== void 0 && usage.costSource !== "publicPrice") {
|
|
15320
|
+
context.addIssue({
|
|
15321
|
+
code: "custom",
|
|
15322
|
+
message: "Thread Usage unpricedModels must be provided with a publicPrice cost",
|
|
15323
|
+
path: ["unpricedModels"]
|
|
15324
|
+
});
|
|
15325
|
+
}
|
|
15147
15326
|
if (usage.planFiveHourResetsAtUnix !== void 0 && usage.planFiveHourUsedPercent === void 0) {
|
|
15148
15327
|
context.addIssue({
|
|
15149
15328
|
code: "custom",
|
|
@@ -15398,27 +15577,27 @@ var harnessModelCatalogSchema = external_exports.object({
|
|
|
15398
15577
|
}).strict().superRefine((catalog, context) => {
|
|
15399
15578
|
const refs = /* @__PURE__ */ new Set();
|
|
15400
15579
|
const thinkingIds = new Set(catalog.thinkingOptions.map(({ id }) => id));
|
|
15401
|
-
for (const [index,
|
|
15402
|
-
if (refs.has(
|
|
15580
|
+
for (const [index, model2] of catalog.models.entries()) {
|
|
15581
|
+
if (refs.has(model2.ref.id)) {
|
|
15403
15582
|
context.addIssue({
|
|
15404
15583
|
code: "custom",
|
|
15405
15584
|
message: "Model Catalog refs must be unique",
|
|
15406
15585
|
path: ["models", index, "ref", "id"]
|
|
15407
15586
|
});
|
|
15408
15587
|
}
|
|
15409
|
-
refs.add(
|
|
15410
|
-
if (
|
|
15411
|
-
if (refs.has(
|
|
15588
|
+
refs.add(model2.ref.id);
|
|
15589
|
+
if (model2.fastModel) {
|
|
15590
|
+
if (refs.has(model2.fastModel.id) || catalog.models.some((entry) => entry.ref.id === model2.fastModel?.id)) {
|
|
15412
15591
|
context.addIssue({
|
|
15413
15592
|
code: "custom",
|
|
15414
15593
|
message: "Fast Model refs must be distinct and unique",
|
|
15415
15594
|
path: ["models", index, "fastModel"]
|
|
15416
15595
|
});
|
|
15417
15596
|
}
|
|
15418
|
-
refs.add(
|
|
15597
|
+
refs.add(model2.fastModel.id);
|
|
15419
15598
|
}
|
|
15420
15599
|
const supportedThinkingIds = /* @__PURE__ */ new Set();
|
|
15421
|
-
for (const [optionIndex, optionId] of (
|
|
15600
|
+
for (const [optionIndex, optionId] of (model2.supportedThinkingOptionIds ?? []).entries()) {
|
|
15422
15601
|
if (supportedThinkingIds.has(optionId)) {
|
|
15423
15602
|
context.addIssue({
|
|
15424
15603
|
code: "custom",
|
|
@@ -15612,13 +15791,40 @@ var HARNESS_PLUGIN_LIMIT = 128;
|
|
|
15612
15791
|
var harnessPluginIdSchema = external_exports.string().min(1).max(128).regex(/^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/u).refine((id) => id !== "codex", "The official Codex identity is reserved").pipe(harnessIdSchema);
|
|
15613
15792
|
var relativeResourceSchema = external_exports.string().min(1).max(512).refine((value) => !/[\\\u0000:#?]/u.test(value) && !value.startsWith("/") && !value.split("/").some((part) => part === ".." || part === ""), "Plugin resources must be relative paths inside the plugin");
|
|
15614
15793
|
var documentationUrlSchema = external_exports.url().refine((value) => /^https:\/\/[^/?#@]+(?:[/?#]|$)/iu.test(value), "Plugin documentation links must be credential-free HTTPS URLs");
|
|
15794
|
+
var localizedTextSchema = external_exports.object({ en: external_exports.string().max(4096), "zh-CN": external_exports.string().max(4096).optional() }).strict();
|
|
15795
|
+
var harnessInstallationGuideSchema = external_exports.object({
|
|
15796
|
+
commands: external_exports.array(external_exports.object({ terminal: external_exports.string().max(256), command: external_exports.string().max(4096) }).strict()).max(8),
|
|
15797
|
+
before: localizedTextSchema.optional(),
|
|
15798
|
+
after: localizedTextSchema.optional(),
|
|
15799
|
+
downloads: external_exports.array(external_exports.object({ label: external_exports.string().max(128), url: documentationUrlSchema }).strict()).max(8).optional()
|
|
15800
|
+
}).strict();
|
|
15615
15801
|
var pluginPresentationShape = {
|
|
15616
15802
|
id: harnessPluginIdSchema,
|
|
15617
15803
|
name: external_exports.string().trim().min(1).max(128),
|
|
15618
15804
|
version: external_exports.string().min(1).max(128),
|
|
15805
|
+
/** Capability-only plugin; omitted for existing session-capable plugins. */
|
|
15806
|
+
kind: external_exports.literal("usage").optional(),
|
|
15807
|
+
/** Original image styling or bounded vector paths; never arbitrary CSS/SVG markup. */
|
|
15808
|
+
iconStyle: external_exports.object({
|
|
15809
|
+
vector: external_exports.object({
|
|
15810
|
+
viewBox: external_exports.string().max(128).regex(/^-?\d+(?:\.\d+)?(?: +-?\d+(?:\.\d+)?){3}$/u),
|
|
15811
|
+
color: external_exports.string().regex(/^(?:currentColor|#[a-f0-9]{6})$/iu),
|
|
15812
|
+
paths: external_exports.array(external_exports.object({
|
|
15813
|
+
d: external_exports.string().min(1).max(32768).regex(/^[MmLlHhVvCcSsQqTtAaZz\d.,+eE\s-]+$/u),
|
|
15814
|
+
fillRule: external_exports.enum(["evenodd", "nonzero"]).optional(),
|
|
15815
|
+
fill: external_exports.string().regex(/^(?:currentColor|#[a-f0-9]{6})$/iu).optional()
|
|
15816
|
+
}).strict()).min(1).max(32)
|
|
15817
|
+
}).strict().optional(),
|
|
15818
|
+
background: external_exports.string().regex(/^#[a-f0-9]{6}$/iu).optional(),
|
|
15819
|
+
borderRadius: external_exports.number().min(0).max(50).optional(),
|
|
15820
|
+
paddingRatio: external_exports.number().min(0).max(0.25).optional()
|
|
15821
|
+
}).strict().optional(),
|
|
15822
|
+
installation: harnessInstallationGuideSchema.optional(),
|
|
15823
|
+
notice: localizedTextSchema.optional(),
|
|
15619
15824
|
/** The factory accepts a persisted local entrypoint through its construction context. */
|
|
15620
15825
|
launchCommand: external_exports.literal(true).optional(),
|
|
15621
15826
|
links: external_exports.object({
|
|
15827
|
+
website: documentationUrlSchema.optional(),
|
|
15622
15828
|
documentation: documentationUrlSchema.optional(),
|
|
15623
15829
|
installation: documentationUrlSchema.optional()
|
|
15624
15830
|
}).strict().optional()
|
|
@@ -16037,6 +16243,11 @@ var codexSshDraftSchema = external_exports.strictObject({
|
|
|
16037
16243
|
});
|
|
16038
16244
|
var remoteConnectionsRequestSchema = external_exports.discriminatedUnion("action", [
|
|
16039
16245
|
external_exports.strictObject({ action: external_exports.literal("list") }),
|
|
16246
|
+
external_exports.strictObject({
|
|
16247
|
+
action: external_exports.literal("read-thread"),
|
|
16248
|
+
hostId: hostId.refine((id) => id !== "local"),
|
|
16249
|
+
input: delegationReadParamsSchema
|
|
16250
|
+
}),
|
|
16040
16251
|
external_exports.strictObject({
|
|
16041
16252
|
action: external_exports.literal("save"),
|
|
16042
16253
|
draft: codexSshDraftSchema,
|
|
@@ -16160,7 +16371,6 @@ var tokenFields = [
|
|
|
16160
16371
|
"cachedInputTokens",
|
|
16161
16372
|
"cacheWriteInputTokens",
|
|
16162
16373
|
"outputTokens",
|
|
16163
|
-
"outputTokensPerSecond",
|
|
16164
16374
|
"reasoningOutputTokens",
|
|
16165
16375
|
"totalTokens",
|
|
16166
16376
|
"contextWindowTokens",
|
|
@@ -16168,10 +16378,12 @@ var tokenFields = [
|
|
|
16168
16378
|
];
|
|
16169
16379
|
var safeIntegerFields = [
|
|
16170
16380
|
"planFiveHourResetsAtUnix",
|
|
16171
|
-
"planSevenDayResetsAtUnix"
|
|
16381
|
+
"planSevenDayResetsAtUnix",
|
|
16382
|
+
"timeToFirstOutputMs"
|
|
16172
16383
|
];
|
|
16173
16384
|
var percentFields = [
|
|
16174
16385
|
"cacheHitRatePercent",
|
|
16386
|
+
"sessionCacheHitRatePercent",
|
|
16175
16387
|
"planFiveHourUsedPercent",
|
|
16176
16388
|
"planSevenDayUsedPercent"
|
|
16177
16389
|
];
|
|
@@ -16179,9 +16391,31 @@ var usageFields = /* @__PURE__ */ new Set([
|
|
|
16179
16391
|
...tokenFields,
|
|
16180
16392
|
...safeIntegerFields,
|
|
16181
16393
|
...percentFields,
|
|
16394
|
+
"sessionCacheUsage",
|
|
16182
16395
|
"totalCostUsd",
|
|
16183
16396
|
"totalCredits",
|
|
16184
|
-
"contextUsagePercent"
|
|
16397
|
+
"contextUsagePercent",
|
|
16398
|
+
"outputTokensPerSecond",
|
|
16399
|
+
"apiOutputTokensPerSecond",
|
|
16400
|
+
"costSource",
|
|
16401
|
+
"unpricedModels"
|
|
16402
|
+
]);
|
|
16403
|
+
var requestTokenFields = [
|
|
16404
|
+
"inputTokens",
|
|
16405
|
+
"cachedInputTokens",
|
|
16406
|
+
"cacheWriteInputTokens",
|
|
16407
|
+
"cacheWrite1hInputTokens",
|
|
16408
|
+
"outputTokens",
|
|
16409
|
+
"reasoningOutputTokens",
|
|
16410
|
+
"startedAtMs",
|
|
16411
|
+
"completedAtMs"
|
|
16412
|
+
];
|
|
16413
|
+
var requestFields = /* @__PURE__ */ new Set([
|
|
16414
|
+
...requestTokenFields,
|
|
16415
|
+
"requestId",
|
|
16416
|
+
"historical",
|
|
16417
|
+
"model",
|
|
16418
|
+
"provider"
|
|
16185
16419
|
]);
|
|
16186
16420
|
|
|
16187
16421
|
// dist/command.js
|
|
@@ -16346,14 +16580,14 @@ var AntigravityHistory = class _AntigravityHistory {
|
|
|
16346
16580
|
const file2 = historyPath(input.environment);
|
|
16347
16581
|
const nativeSessionId = input.nativeSessionId ?? null;
|
|
16348
16582
|
let turns = [];
|
|
16349
|
-
let
|
|
16583
|
+
let model2;
|
|
16350
16584
|
let thinkingOptionId;
|
|
16351
16585
|
if (file2 && nativeSessionId) {
|
|
16352
16586
|
try {
|
|
16353
16587
|
const parsed = historySchema.safeParse(JSON.parse(await readFile(file2, "utf8")));
|
|
16354
16588
|
if (parsed.success && parsed.data.nativeSessionId === nativeSessionId) {
|
|
16355
16589
|
turns = parsed.data.turns;
|
|
16356
|
-
|
|
16590
|
+
model2 = parsed.data.model;
|
|
16357
16591
|
thinkingOptionId = parsed.data.thinkingOptionId;
|
|
16358
16592
|
}
|
|
16359
16593
|
} catch {
|
|
@@ -16374,7 +16608,7 @@ var AntigravityHistory = class _AntigravityHistory {
|
|
|
16374
16608
|
file: file2,
|
|
16375
16609
|
nativeSessionId,
|
|
16376
16610
|
turns,
|
|
16377
|
-
...
|
|
16611
|
+
...model2 ? { model: model2 } : {},
|
|
16378
16612
|
...thinkingOptionId ? { thinkingOptionId } : {}
|
|
16379
16613
|
});
|
|
16380
16614
|
}
|
|
@@ -16456,8 +16690,8 @@ var AntigravityHistory = class _AntigravityHistory {
|
|
|
16456
16690
|
this.#nativeSessionId = nativeSessionId;
|
|
16457
16691
|
this.#queueWrite();
|
|
16458
16692
|
}
|
|
16459
|
-
setSelection(
|
|
16460
|
-
this.#model =
|
|
16693
|
+
setSelection(model2, thinkingOptionId) {
|
|
16694
|
+
this.#model = model2;
|
|
16461
16695
|
this.#thinkingOptionId = thinkingOptionId;
|
|
16462
16696
|
this.#queueWrite();
|
|
16463
16697
|
}
|
|
@@ -16486,7 +16720,7 @@ var AntigravityHistory = class _AntigravityHistory {
|
|
|
16486
16720
|
const file2 = this.#file;
|
|
16487
16721
|
const nativeSessionId = this.#nativeSessionId;
|
|
16488
16722
|
const turns = this.#turns.map(jsonTurn);
|
|
16489
|
-
const
|
|
16723
|
+
const model2 = this.#model;
|
|
16490
16724
|
const thinkingOptionId = this.#thinkingOptionId;
|
|
16491
16725
|
this.#write = this.#write.catch(() => void 0).then(async () => {
|
|
16492
16726
|
const directory = path5.dirname(file2);
|
|
@@ -16497,7 +16731,7 @@ var AntigravityHistory = class _AntigravityHistory {
|
|
|
16497
16731
|
formatVersion: HISTORY_VERSION,
|
|
16498
16732
|
nativeSessionId,
|
|
16499
16733
|
turns,
|
|
16500
|
-
...
|
|
16734
|
+
...model2 ? { model: model2 } : {},
|
|
16501
16735
|
...thinkingOptionId ? { thinkingOptionId } : {}
|
|
16502
16736
|
})}
|
|
16503
16737
|
`, { mode: 384 });
|
|
@@ -16706,14 +16940,14 @@ async function forkAntigravitySession(options) {
|
|
|
16706
16940
|
}
|
|
16707
16941
|
} : {}
|
|
16708
16942
|
}));
|
|
16709
|
-
const
|
|
16943
|
+
const model2 = sourceSession?.model ?? sourceHistory.model;
|
|
16710
16944
|
const thinkingOptionId = sourceSession?.thinkingOptionId ?? sourceHistory.thinkingOptionId;
|
|
16711
16945
|
const permissionMode = sourceSession?.permissionMode ?? "dangerously-skip-permissions";
|
|
16712
16946
|
const forkedHistory = await AntigravityHistory.createDerived({
|
|
16713
16947
|
environment: sessionEnvironment,
|
|
16714
16948
|
nativeSessionId: derivedNativeSessionId,
|
|
16715
16949
|
turns: copiedTurns,
|
|
16716
|
-
...
|
|
16950
|
+
...model2 ? { model: model2 } : {},
|
|
16717
16951
|
...thinkingOptionId ? { thinkingOptionId } : {}
|
|
16718
16952
|
});
|
|
16719
16953
|
await Promise.all([
|
|
@@ -16728,7 +16962,7 @@ async function forkAntigravitySession(options) {
|
|
|
16728
16962
|
const session = createSession({
|
|
16729
16963
|
history: forkedHistory,
|
|
16730
16964
|
nativeRef: derivedNativeRef,
|
|
16731
|
-
...
|
|
16965
|
+
...model2 ? { model: model2 } : {},
|
|
16732
16966
|
...thinkingOptionId ? { thinkingOptionId } : {},
|
|
16733
16967
|
permissionMode,
|
|
16734
16968
|
cwd: input.cwd,
|
|
@@ -16810,19 +17044,19 @@ function parseAntigravityModels(output) {
|
|
|
16810
17044
|
...defaultThinkingOptionId ? { defaultThinkingOptionId } : {}
|
|
16811
17045
|
});
|
|
16812
17046
|
}
|
|
16813
|
-
function antigravityModelArguments(
|
|
16814
|
-
if (!
|
|
17047
|
+
function antigravityModelArguments(model2, thinkingOptionId) {
|
|
17048
|
+
if (!model2)
|
|
16815
17049
|
return [];
|
|
16816
|
-
const arguments_ = ["--model",
|
|
16817
|
-
if (thinkingOptionId && !EFFORT_SUFFIX_PATTERN.test(
|
|
17050
|
+
const arguments_ = ["--model", model2.id];
|
|
17051
|
+
if (thinkingOptionId && !EFFORT_SUFFIX_PATTERN.test(model2.id)) {
|
|
16818
17052
|
arguments_.push("--effort", thinkingOptionId);
|
|
16819
17053
|
}
|
|
16820
17054
|
return arguments_;
|
|
16821
17055
|
}
|
|
16822
|
-
function antigravityAvailableThinkingOptions(catalog,
|
|
16823
|
-
if (!catalog || !
|
|
17056
|
+
function antigravityAvailableThinkingOptions(catalog, model2) {
|
|
17057
|
+
if (!catalog || !model2)
|
|
16824
17058
|
return void 0;
|
|
16825
|
-
const supported = catalog.models.find(({ ref }) => ref.id ===
|
|
17059
|
+
const supported = catalog.models.find(({ ref }) => ref.id === model2.id)?.supportedThinkingOptionIds;
|
|
16826
17060
|
if (!supported)
|
|
16827
17061
|
return void 0;
|
|
16828
17062
|
const options = supported.flatMap((id) => {
|
|
@@ -16920,14 +17154,14 @@ async function rollbackAntigravityLastTurn(options) {
|
|
|
16920
17154
|
}
|
|
16921
17155
|
} : {}
|
|
16922
17156
|
}));
|
|
16923
|
-
const
|
|
17157
|
+
const model2 = sourceSession?.model ?? sourceHistory.model;
|
|
16924
17158
|
const thinkingOptionId = sourceSession?.thinkingOptionId ?? sourceHistory.thinkingOptionId;
|
|
16925
17159
|
const permissionMode = sourceSession?.permissionMode ?? "dangerously-skip-permissions";
|
|
16926
17160
|
const rolledBackHistory = await AntigravityHistory.createDerived({
|
|
16927
17161
|
environment: sessionEnvironment,
|
|
16928
17162
|
nativeSessionId: derivedNativeSessionId,
|
|
16929
17163
|
turns: mappedTurns,
|
|
16930
|
-
...
|
|
17164
|
+
...model2 ? { model: model2 } : {},
|
|
16931
17165
|
...thinkingOptionId ? { thinkingOptionId } : {}
|
|
16932
17166
|
});
|
|
16933
17167
|
await Promise.all([
|
|
@@ -16942,7 +17176,7 @@ async function rollbackAntigravityLastTurn(options) {
|
|
|
16942
17176
|
const session = createSession({
|
|
16943
17177
|
history: rolledBackHistory,
|
|
16944
17178
|
nativeRef: derivedNativeRef,
|
|
16945
|
-
...
|
|
17179
|
+
...model2 ? { model: model2 } : {},
|
|
16946
17180
|
...thinkingOptionId ? { thinkingOptionId } : {},
|
|
16947
17181
|
permissionMode,
|
|
16948
17182
|
cwd: input.cwd,
|
|
@@ -19823,10 +20057,10 @@ var AntigravityAdapter = class {
|
|
|
19823
20057
|
...nativeRef ? { nativeSessionId: nativeRef.nativeSessionId } : {},
|
|
19824
20058
|
...input.kind === "resume" && input.knownTurnRefs ? { knownTurnRefs: input.knownTurnRefs } : {}
|
|
19825
20059
|
});
|
|
19826
|
-
const
|
|
20060
|
+
const model2 = (input.kind === "create" ? input.model : void 0) ?? history.model;
|
|
19827
20061
|
const thinkingOptionId = (input.kind === "create" ? input.thinkingOptionId : void 0) ?? history.thinkingOptionId;
|
|
19828
20062
|
if (thinkingOptionId) {
|
|
19829
|
-
const available = antigravityAvailableThinkingOptions(catalog,
|
|
20063
|
+
const available = antigravityAvailableThinkingOptions(catalog, model2);
|
|
19830
20064
|
if (!available?.some(({ id }) => id === thinkingOptionId)) {
|
|
19831
20065
|
return {
|
|
19832
20066
|
ok: false,
|
|
@@ -19838,15 +20072,15 @@ var AntigravityAdapter = class {
|
|
|
19838
20072
|
};
|
|
19839
20073
|
}
|
|
19840
20074
|
}
|
|
19841
|
-
if (
|
|
19842
|
-
history.setSelection(
|
|
20075
|
+
if (model2 || thinkingOptionId)
|
|
20076
|
+
history.setSelection(model2, thinkingOptionId);
|
|
19843
20077
|
const session = new AntigravitySession({
|
|
19844
20078
|
...catalog ? { catalog } : {},
|
|
19845
20079
|
cwd: input.cwd,
|
|
19846
20080
|
environment: sessionEnvironment,
|
|
19847
20081
|
executable,
|
|
19848
20082
|
history,
|
|
19849
|
-
...
|
|
20083
|
+
...model2 ? { model: model2 } : {},
|
|
19850
20084
|
...nativeRef ? { nativeRef } : {},
|
|
19851
20085
|
permissionMode,
|
|
19852
20086
|
printTimeout: this.#printTimeout,
|
|
@@ -3,7 +3,35 @@
|
|
|
3
3
|
"id": "claude-code",
|
|
4
4
|
"name": "Claude Code",
|
|
5
5
|
"version": "0.0.0",
|
|
6
|
+
"iconStyle": {
|
|
7
|
+
"vector": {
|
|
8
|
+
"viewBox": "0 0 24 24",
|
|
9
|
+
"color": "#d97757",
|
|
10
|
+
"paths": [
|
|
11
|
+
{
|
|
12
|
+
"d": "M4.709 15.955l4.72-2.647.08-.23-.08-.128H9.2l-.79-.048-2.698-.073-2.339-.097-2.266-.122-.571-.121L0 11.784l.055-.352.48-.321.686.06 1.52.103 2.278.158 1.652.097 2.449.255h.389l.055-.157-.134-.098-.103-.097-2.358-1.596-2.552-1.688-1.336-.972-.724-.491-.364-.462-.158-1.008.656-.722.881.06.225.061.893.686 1.908 1.476 2.491 1.833.365.304.145-.103.019-.073-.164-.274-1.355-2.446-1.446-2.49-.644-1.032-.17-.619a2.97 2.97 0 01-.104-.729L6.283.134 6.696 0l.996.134.42.364.62 1.414 1.002 2.229 1.555 3.03.456.898.243.832.091.255h.158V9.01l.128-1.706.237-2.095.23-2.695.08-.76.376-.91.747-.492.584.28.48.685-.067.444-.286 1.851-.559 2.903-.364 1.942h.212l.243-.242.985-1.306 1.652-2.064.73-.82.85-.904.547-.431h1.033l.76 1.129-.34 1.166-1.064 1.347-.881 1.142-1.264 1.7-.79 1.36.073.11.188-.02 2.856-.606 1.543-.28 1.841-.315.833.388.091.395-.328.807-1.969.486-2.309.462-3.439.813-.042.03.049.061 1.549.146.662.036h1.622l3.02.225.79.522.474.638-.079.485-1.215.62-1.64-.389-3.829-.91-1.312-.329h-.182v.11l1.093 1.068 2.006 1.81 2.509 2.33.127.578-.322.455-.34-.049-2.205-1.657-.851-.747-1.926-1.62h-.128v.17l.444.649 2.345 3.521.122 1.08-.17.353-.608.213-.668-.122-1.374-1.925-1.415-2.167-1.143-1.943-.14.08-.674 7.254-.316.37-.729.28-.607-.461-.322-.747.322-1.476.389-1.924.315-1.53.286-1.9.17-.632-.012-.042-.14.018-1.434 1.967-2.18 2.945-1.726 1.845-.414.164-.717-.37.067-.662.401-.589 2.388-3.036 1.44-1.882.93-1.086-.006-.158h-.055L4.132 18.56l-1.13.146-.487-.456.061-.746.231-.243 1.908-1.312-.006.006z"
|
|
13
|
+
}
|
|
14
|
+
]
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"installation": {
|
|
18
|
+
"commands": [
|
|
19
|
+
{
|
|
20
|
+
"terminal": "macOS / Linux · Terminal (sh/bash)",
|
|
21
|
+
"command": "curl -fsSL https://claude.ai/install.sh | bash"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"terminal": "Windows · PowerShell",
|
|
25
|
+
"command": "irm https://claude.ai/install.ps1 | iex"
|
|
26
|
+
}
|
|
27
|
+
],
|
|
28
|
+
"after": {
|
|
29
|
+
"en": "After installation, run claude to complete login or setup.",
|
|
30
|
+
"zh-CN": "安装后运行 claude,完成登录或配置。"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
6
33
|
"links": {
|
|
34
|
+
"website": "https://code.claude.com/",
|
|
7
35
|
"installation": "https://code.claude.com/docs/en/quickstart"
|
|
8
36
|
},
|
|
9
37
|
"adapterApiVersion": 1,
|