@codexhost/cli-darwin-x64 0.16.0 → 0.17.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 +2 -2
- package/THIRD_PARTY_NOTICES.txt +6 -2
- package/app/codexhost-distribution.json +1 -1
- package/app/console-server.mjs +59 -21
- package/app/console-web.js +49 -18
- package/app/desktop-controller.mjs +554 -34
- package/app/host-runtime.mjs +3436 -1846
- package/app/plugins/antigravity/plugin.mjs +39 -3
- package/app/plugins/claude-code/plugin.mjs +16 -7
- package/app/plugins/codebuddy/plugin.mjs +14 -1
- package/app/plugins/codex-usage/plugin.mjs +4 -1
- package/app/plugins/copilot/plugin.mjs +4 -1
- package/app/plugins/cursor-cli/plugin.mjs +13 -6
- package/app/plugins/deepseek-harness/plugin.mjs +463 -47
- package/app/plugins/devin/assets/icon.svg +1 -0
- package/app/plugins/devin/manifest.json +30 -0
- package/app/plugins/devin/plugin.mjs +23363 -0
- package/app/plugins/enabled.json +2 -0
- package/app/plugins/grok/plugin.mjs +476 -392
- package/app/plugins/hermes/plugin.mjs +457 -197
- package/app/plugins/kimi-code/plugin.mjs +4 -1
- package/app/plugins/kiro-cli/plugin.mjs +4 -1
- package/app/plugins/omp/plugin.mjs +4 -1
- package/app/plugins/opencode/plugin.mjs +4 -1
- package/app/plugins/pi/plugin.mjs +1464 -412
- package/app/plugins/qoder/plugin.mjs +9528 -8655
- package/app/plugins/qoder-cn/plugin.mjs +9528 -8655
- package/app/plugins/qwen-code/assets/icon.svg +1 -0
- package/app/plugins/qwen-code/manifest.json +29 -0
- package/app/plugins/qwen-code/plugin.mjs +29298 -0
- package/app/plugins/workbuddy/plugin.mjs +14 -1
- package/app/plugins/zcode/plugin.mjs +4 -1
- package/app/renderer-extension.js +510 -114
- package/bin/codexhost +0 -0
- package/libexec/codexhost-shim +0 -0
- package/libexec/codexhost-updater +0 -0
- package/licenses/Qwen-Code-SDK-LICENSE.txt +203 -0
- package/package.json +2 -2
|
@@ -15977,7 +15977,10 @@ var harnessPluginRouteSchema = external_exports.object({
|
|
|
15977
15977
|
harnessId: harnessPluginIdSchema,
|
|
15978
15978
|
model: harnessModelRefSchema.optional(),
|
|
15979
15979
|
thinkingOptionId: harnessThinkingOptionIdSchema.optional(),
|
|
15980
|
-
permissionModeId: harnessPermissionModeIdSchema.optional()
|
|
15980
|
+
permissionModeId: harnessPermissionModeIdSchema.optional(),
|
|
15981
|
+
/** A draft prewarm create: stays unsubmitted until the user's first Turn.
|
|
15982
|
+
* Desktop forwards only the Model of a main-process prewarm to thread/start. */
|
|
15983
|
+
prewarm: external_exports.literal(true).optional()
|
|
15981
15984
|
}).strict();
|
|
15982
15985
|
|
|
15983
15986
|
// ../../shared-contracts/dist/harness-launch-settings.js
|
|
@@ -19086,6 +19089,32 @@ function createAntigravityUsageStatistics(environment) {
|
|
|
19086
19089
|
}
|
|
19087
19090
|
|
|
19088
19091
|
// dist/antigravity-adapter.js
|
|
19092
|
+
function unstreamedReplyTail(streamed, reply) {
|
|
19093
|
+
const shown = streamed.replace(/\s+/gu, "");
|
|
19094
|
+
if (shown === "")
|
|
19095
|
+
return null;
|
|
19096
|
+
const replied = reply.replace(/\s+/gu, "");
|
|
19097
|
+
if (shown.endsWith(replied))
|
|
19098
|
+
return "";
|
|
19099
|
+
let at = 0;
|
|
19100
|
+
let matched = 0;
|
|
19101
|
+
while (matched < shown.length && at < reply.length) {
|
|
19102
|
+
const char = reply[at] ?? "";
|
|
19103
|
+
if (/\s/u.test(char)) {
|
|
19104
|
+
at += 1;
|
|
19105
|
+
continue;
|
|
19106
|
+
}
|
|
19107
|
+
if (char !== shown[matched])
|
|
19108
|
+
return null;
|
|
19109
|
+
at += 1;
|
|
19110
|
+
matched += 1;
|
|
19111
|
+
}
|
|
19112
|
+
if (matched < shown.length)
|
|
19113
|
+
return null;
|
|
19114
|
+
const tail = reply.slice(at);
|
|
19115
|
+
const shownTrailing = /\s*$/u.exec(streamed)?.[0] ?? "";
|
|
19116
|
+
return tail.startsWith(shownTrailing) ? tail.slice(shownTrailing.length) : tail;
|
|
19117
|
+
}
|
|
19089
19118
|
var antigravityHarnessId = harnessIdSchema.parse("antigravity");
|
|
19090
19119
|
var DEFAULT_INSPECT_TIMEOUT_MS = 2e4;
|
|
19091
19120
|
var DEFAULT_PRINT_TIMEOUT = "30m";
|
|
@@ -19570,6 +19599,7 @@ var AntigravitySession = class {
|
|
|
19570
19599
|
logPath,
|
|
19571
19600
|
agentItem: null,
|
|
19572
19601
|
agentText: "",
|
|
19602
|
+
turnAgentText: "",
|
|
19573
19603
|
tools: /* @__PURE__ */ new Map(),
|
|
19574
19604
|
completedItems: [],
|
|
19575
19605
|
stderr: "",
|
|
@@ -19767,8 +19797,13 @@ ${line}`).slice(-8e3);
|
|
|
19767
19797
|
const repliedThisTurn = Boolean(active.agentItem) || turnReply.trim() !== "";
|
|
19768
19798
|
if (response)
|
|
19769
19799
|
this.#lastResultResponse = response;
|
|
19770
|
-
if (turnReply.trim() !== "")
|
|
19771
|
-
|
|
19800
|
+
if (turnReply.trim() !== "") {
|
|
19801
|
+
const unshown = unstreamedReplyTail(active.turnAgentText, turnReply);
|
|
19802
|
+
if (unshown === null)
|
|
19803
|
+
this.#appendOrSyncAgentText(active, turnReply, false);
|
|
19804
|
+
else if (unshown.trim() !== "")
|
|
19805
|
+
this.#appendAgentText(active, unshown);
|
|
19806
|
+
}
|
|
19772
19807
|
const safeTurnId = event.result.num_turns !== void 0 && event.result.num_turns !== null ? `turn:${event.result.num_turns}` : `turn:${this.#history.snapshot().length + 1}`;
|
|
19773
19808
|
const safeSessionId = convId || this.#nativeRef?.nativeSessionId || "unknown-session";
|
|
19774
19809
|
const nativeTurnRef = nativeTurnRefSchema.parse({
|
|
@@ -19952,6 +19987,7 @@ ${line}`).slice(-8e3);
|
|
|
19952
19987
|
this.#appendAgentText(active, text);
|
|
19953
19988
|
}
|
|
19954
19989
|
#appendAgentText(active, text) {
|
|
19990
|
+
active.turnAgentText += text;
|
|
19955
19991
|
if (!active.agentItem) {
|
|
19956
19992
|
active.agentItem = { type: "agentMessage", itemId: this.#newItemId(), text };
|
|
19957
19993
|
active.agentText = text;
|
|
@@ -15571,7 +15571,10 @@ var harnessPluginRouteSchema = external_exports.object({
|
|
|
15571
15571
|
harnessId: harnessPluginIdSchema,
|
|
15572
15572
|
model: harnessModelRefSchema.optional(),
|
|
15573
15573
|
thinkingOptionId: harnessThinkingOptionIdSchema.optional(),
|
|
15574
|
-
permissionModeId: harnessPermissionModeIdSchema.optional()
|
|
15574
|
+
permissionModeId: harnessPermissionModeIdSchema.optional(),
|
|
15575
|
+
/** A draft prewarm create: stays unsubmitted until the user's first Turn.
|
|
15576
|
+
* Desktop forwards only the Model of a main-process prewarm to thread/start. */
|
|
15577
|
+
prewarm: external_exports.literal(true).optional()
|
|
15575
15578
|
}).strict();
|
|
15576
15579
|
|
|
15577
15580
|
// ../../shared-contracts/dist/harness-launch-settings.js
|
|
@@ -55581,6 +55584,8 @@ function conversationMessages(values, sessionId) {
|
|
|
55581
55584
|
type: value.type,
|
|
55582
55585
|
uuid: value.uuid,
|
|
55583
55586
|
message: value.message,
|
|
55587
|
+
// Failure metadata belongs to the outer SDK/transcript record, not its Message.
|
|
55588
|
+
failed: value.type === "assistant" && (typeof value.error === "string" || value.isApiErrorMessage === true),
|
|
55584
55589
|
nested: typeof value.parent_tool_use_id === "string" && value.parent_tool_use_id.length > 0,
|
|
55585
55590
|
interrupted,
|
|
55586
55591
|
startsTurn: false,
|
|
@@ -55646,7 +55651,7 @@ function turnOutcome(messages) {
|
|
|
55646
55651
|
if (messages.some(({ interrupted }) => interrupted))
|
|
55647
55652
|
return { status: "cancelled", reason: "Cancelled by user" };
|
|
55648
55653
|
const assistants = messages.filter(({ type }) => type === "assistant");
|
|
55649
|
-
const failed = assistants.some(({
|
|
55654
|
+
const failed = assistants.some(({ failed: failed2, nested }) => failed2 && !nested);
|
|
55650
55655
|
if (failed) {
|
|
55651
55656
|
return {
|
|
55652
55657
|
status: "failed",
|
|
@@ -55732,6 +55737,7 @@ function mapClaudeSnapshot(values, sessionId) {
|
|
|
55732
55737
|
}
|
|
55733
55738
|
if (message.type !== "assistant")
|
|
55734
55739
|
return [];
|
|
55740
|
+
const assistantOutcome = outcome.status === "failed" && (!message.failed || message.nested) ? { status: "succeeded" } : itemOutcome(outcome);
|
|
55735
55741
|
const content = message.message.content;
|
|
55736
55742
|
const text2 = textParts(content).join("");
|
|
55737
55743
|
const reasoning = thinkingParts(content).join("");
|
|
@@ -55743,7 +55749,7 @@ function mapClaudeSnapshot(values, sessionId) {
|
|
|
55743
55749
|
itemId: claudeTranscriptItemId(user.uuid, "agentMessage", agentMessageOrdinal += 1),
|
|
55744
55750
|
text: text2
|
|
55745
55751
|
},
|
|
55746
|
-
outcome:
|
|
55752
|
+
outcome: assistantOutcome
|
|
55747
55753
|
}
|
|
55748
55754
|
] : [];
|
|
55749
55755
|
}
|
|
@@ -55760,7 +55766,7 @@ function mapClaudeSnapshot(values, sessionId) {
|
|
|
55760
55766
|
itemId: claudeTranscriptItemId(user.uuid, "reasoning", reasoningOrdinal += 1),
|
|
55761
55767
|
text: reasoning
|
|
55762
55768
|
},
|
|
55763
|
-
outcome:
|
|
55769
|
+
outcome: assistantOutcome
|
|
55764
55770
|
});
|
|
55765
55771
|
projectedReasoning = true;
|
|
55766
55772
|
continue;
|
|
@@ -55772,7 +55778,7 @@ function mapClaudeSnapshot(values, sessionId) {
|
|
|
55772
55778
|
itemId: claudeTranscriptItemId(user.uuid, "agentMessage", agentMessageOrdinal += 1),
|
|
55773
55779
|
text: text2
|
|
55774
55780
|
},
|
|
55775
|
-
outcome:
|
|
55781
|
+
outcome: assistantOutcome
|
|
55776
55782
|
});
|
|
55777
55783
|
projectedText = true;
|
|
55778
55784
|
continue;
|
|
@@ -57548,7 +57554,8 @@ var ClaudeSdkTransport = class {
|
|
|
57548
57554
|
const activeQuery = this.#query;
|
|
57549
57555
|
if (!activeQuery)
|
|
57550
57556
|
throw new Error("Claude SDK transport is not running");
|
|
57551
|
-
this.#idleAccumulator
|
|
57557
|
+
const idle = this.#idleAccumulator ??= new ClaudeNativeTurnAccumulator(this.#provider ? { provider: this.#provider } : {});
|
|
57558
|
+
idle.requestCancel();
|
|
57552
57559
|
try {
|
|
57553
57560
|
await this.#stopRequest(activeQuery.interrupt(), INTERRUPT_TIMEOUT_MESSAGE);
|
|
57554
57561
|
} catch (error52) {
|
|
@@ -59975,7 +59982,9 @@ var ClaudeHarnessSession = class {
|
|
|
59975
59982
|
active.cancellationRequested = true;
|
|
59976
59983
|
const transport = this.#transport;
|
|
59977
59984
|
const taskIds = this.#backgroundTaskIds(active);
|
|
59978
|
-
if (transport && (taskIds.length > 0 ||
|
|
59985
|
+
if (transport && (taskIds.length > 0 || // A written steer survives the interrupt and runs as Claude's next native turn, so the
|
|
59986
|
+
// Turn stays open to interrupt that turn too instead of leaking it into the next one.
|
|
59987
|
+
active.steersAwaitingNative.size > 0 || active.held && (active.rootSegmentActive || this.#occupancy.awaitingContinuation))) {
|
|
59979
59988
|
await this.#cancelBackgroundWork(active, transport, taskIds);
|
|
59980
59989
|
return { ok: true, value: { cancellationRequested: true } };
|
|
59981
59990
|
}
|
|
@@ -16047,7 +16047,10 @@ var harnessPluginRouteSchema = external_exports.object({
|
|
|
16047
16047
|
harnessId: harnessPluginIdSchema,
|
|
16048
16048
|
model: harnessModelRefSchema.optional(),
|
|
16049
16049
|
thinkingOptionId: harnessThinkingOptionIdSchema.optional(),
|
|
16050
|
-
permissionModeId: harnessPermissionModeIdSchema.optional()
|
|
16050
|
+
permissionModeId: harnessPermissionModeIdSchema.optional(),
|
|
16051
|
+
/** A draft prewarm create: stays unsubmitted until the user's first Turn.
|
|
16052
|
+
* Desktop forwards only the Model of a main-process prewarm to thread/start. */
|
|
16053
|
+
prewarm: external_exports.literal(true).optional()
|
|
16051
16054
|
}).strict();
|
|
16052
16055
|
|
|
16053
16056
|
// ../../shared-contracts/dist/harness-launch-settings.js
|
|
@@ -18347,6 +18350,16 @@ function snapshotFromHistory(contents, ref, cwd, profile = CODEBUDDY_RUNTIME_PRO
|
|
|
18347
18350
|
continue;
|
|
18348
18351
|
if (supportsNativeCommands && row.type === "message" && row.role === "user" && data.agent === "compact" && !manualCompactions.has(text(row.id)))
|
|
18349
18352
|
continue;
|
|
18353
|
+
if (row.type === "message" && row.role === "user" && data.startsNewUserRequest === false && !localCommand && data.agent !== "compact" && !isNativeCompactionSummary(row)) {
|
|
18354
|
+
const contextOnly = body.trim().length > 0 && body.replace(/<system-reminder\b[^>]*\sdata-role=(["'])user-context\1[^>]*>[\s\S]*?<\/system-reminder>/gu, "").trim().length === 0;
|
|
18355
|
+
if (data.isMeta === true || contextOnly)
|
|
18356
|
+
continue;
|
|
18357
|
+
if (current) {
|
|
18358
|
+
if (body)
|
|
18359
|
+
current.input.push({ type: "text", text: body });
|
|
18360
|
+
continue;
|
|
18361
|
+
}
|
|
18362
|
+
}
|
|
18350
18363
|
if (includeCompactionHistory && isNativeCompactionSummary(row)) {
|
|
18351
18364
|
if (supportsNativeCommands && current) {
|
|
18352
18365
|
const outcome = data.isCompacted === true ? { status: "succeeded" } : {
|
|
@@ -15565,7 +15565,10 @@ var harnessPluginRouteSchema = external_exports.object({
|
|
|
15565
15565
|
harnessId: harnessPluginIdSchema,
|
|
15566
15566
|
model: harnessModelRefSchema.optional(),
|
|
15567
15567
|
thinkingOptionId: harnessThinkingOptionIdSchema.optional(),
|
|
15568
|
-
permissionModeId: harnessPermissionModeIdSchema.optional()
|
|
15568
|
+
permissionModeId: harnessPermissionModeIdSchema.optional(),
|
|
15569
|
+
/** A draft prewarm create: stays unsubmitted until the user's first Turn.
|
|
15570
|
+
* Desktop forwards only the Model of a main-process prewarm to thread/start. */
|
|
15571
|
+
prewarm: external_exports.literal(true).optional()
|
|
15569
15572
|
}).strict();
|
|
15570
15573
|
|
|
15571
15574
|
// ../../shared-contracts/dist/harness-launch-settings.js
|
|
@@ -19622,7 +19622,10 @@ var harnessPluginRouteSchema = external_exports.object({
|
|
|
19622
19622
|
harnessId: harnessPluginIdSchema,
|
|
19623
19623
|
model: harnessModelRefSchema.optional(),
|
|
19624
19624
|
thinkingOptionId: harnessThinkingOptionIdSchema.optional(),
|
|
19625
|
-
permissionModeId: harnessPermissionModeIdSchema.optional()
|
|
19625
|
+
permissionModeId: harnessPermissionModeIdSchema.optional(),
|
|
19626
|
+
/** A draft prewarm create: stays unsubmitted until the user's first Turn.
|
|
19627
|
+
* Desktop forwards only the Model of a main-process prewarm to thread/start. */
|
|
19628
|
+
prewarm: external_exports.literal(true).optional()
|
|
19626
19629
|
}).strict();
|
|
19627
19630
|
|
|
19628
19631
|
// ../../shared-contracts/dist/harness-launch-settings.js
|
|
@@ -15932,7 +15932,10 @@ var harnessPluginRouteSchema = external_exports.object({
|
|
|
15932
15932
|
harnessId: harnessPluginIdSchema,
|
|
15933
15933
|
model: harnessModelRefSchema.optional(),
|
|
15934
15934
|
thinkingOptionId: harnessThinkingOptionIdSchema.optional(),
|
|
15935
|
-
permissionModeId: harnessPermissionModeIdSchema.optional()
|
|
15935
|
+
permissionModeId: harnessPermissionModeIdSchema.optional(),
|
|
15936
|
+
/** A draft prewarm create: stays unsubmitted until the user's first Turn.
|
|
15937
|
+
* Desktop forwards only the Model of a main-process prewarm to thread/start. */
|
|
15938
|
+
prewarm: external_exports.literal(true).optional()
|
|
15936
15939
|
}).strict();
|
|
15937
15940
|
|
|
15938
15941
|
// ../../shared-contracts/dist/harness-launch-settings.js
|
|
@@ -17135,7 +17138,8 @@ function readCursorNativeHistory(sessionId, cwd, environment, allowMissing = fal
|
|
|
17135
17138
|
result.push({
|
|
17136
17139
|
id,
|
|
17137
17140
|
text: one(user, 1).toString("utf8"),
|
|
17138
|
-
...rewindRoot ? { rewindRoot } : {}
|
|
17141
|
+
...rewindRoot ? { rewindRoot } : {},
|
|
17142
|
+
...user.get(15)?.length ? { notification: true } : {}
|
|
17139
17143
|
});
|
|
17140
17144
|
}
|
|
17141
17145
|
}
|
|
@@ -23800,19 +23804,22 @@ var CursorSession = class {
|
|
|
23800
23804
|
const administrative = command.input.map((part) => part.text).join("\n").trim().toLowerCase() === "/copy-request-id";
|
|
23801
23805
|
if (administrative && JSON.stringify(before) === JSON.stringify(after)) {
|
|
23802
23806
|
} else {
|
|
23803
|
-
|
|
23807
|
+
const prompted = added.filter((turn) => !turn.notification);
|
|
23808
|
+
const own = prompted[0];
|
|
23809
|
+
if (!own || prompted.length !== 1 || after.length !== before.length + added.length || before.some((turn, index) => after[index]?.id !== turn.id) || own.text !== command.input.map((part) => part.text).join("\n"))
|
|
23804
23810
|
throw new Error("Cursor terminal has no unique, verified native turn identity");
|
|
23805
23811
|
nativeTurnRef = nativeTurnRefSchema.parse({
|
|
23806
23812
|
harnessId: "cursor-cli",
|
|
23807
23813
|
nativeSessionId: this.transport.sessionId,
|
|
23808
|
-
nativeTurnKey:
|
|
23814
|
+
nativeTurnKey: own.id,
|
|
23809
23815
|
formatVersion: 1
|
|
23810
23816
|
});
|
|
23811
23817
|
this.#fresh = false;
|
|
23812
|
-
|
|
23818
|
+
const ownIndex = after.findIndex((turn) => turn.id === own.id);
|
|
23819
|
+
if (outcome.status === "succeeded" && cursorForkAvailable() && (ownIndex === after.length - 1 || after[ownIndex + 1]?.rewindRoot))
|
|
23813
23820
|
outcome = {
|
|
23814
23821
|
...outcome,
|
|
23815
|
-
checkpoint: cursorCheckpoint(this.transport.sessionId,
|
|
23822
|
+
checkpoint: cursorCheckpoint(this.transport.sessionId, own.id)
|
|
23816
23823
|
};
|
|
23817
23824
|
}
|
|
23818
23825
|
} catch (error51) {
|