lody 0.90.0 → 0.91.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/chunks/{index-Bag7dEYc.js → index-BNIS69wD.js} +3055 -994
- package/dist/chunks/{profile-CPDWaQXE.js → profile-DLuYzIs8.js} +14 -37
- package/dist/chunks/{review-viewer-CGdWKpLa.js → review-viewer-BxVOWMjT.js} +2 -2
- package/dist/codex-acp.js +1 -1
- package/dist/deepseek-acp.js +438 -153
- package/dist/index.js +204 -145
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -42,7 +42,7 @@ import { performance as performance$1 } from "perf_hooks";
|
|
|
42
42
|
import require$$0$9 from "net";
|
|
43
43
|
import require$$4$2 from "tls";
|
|
44
44
|
import require$$7$2, { fileURLToPath as fileURLToPath$1, pathToFileURL as pathToFileURL$1 } from "url";
|
|
45
|
-
import { D as DEEPSEEK_HARNESS_PERMISSION_MODES, a as DEEPSEEK_HARNESS_AGENT_PRESETS,
|
|
45
|
+
import { D as DEEPSEEK_HARNESS_PERMISSION_MODES, a as DEEPSEEK_HARNESS_AGENT_PRESETS, A as ACP_EXTENSION_DSH_CAPABILITY_SOURCE_VERSION, c as createDeepSeekHarnessCordisConfig, b as ACP_EXTENSION_DSH_VERSION, d as ACP_EXTENSION_DSH_PROFILE_REVISION, e as ACP_EXTENSION_DSH_QUERY_PATH_ENV, f as ACP_EXTENSION_DSH_SESSION_ROOT_ENV, g as DEEPSEEK_HARNESS_NPX_PACKAGES, h as DEEPSEEK_HARNESS_VERSION, i as DEEPSEEK_HARNESS_DEFAULT_SESSION_COMPRESSION, j as DEEPSEEK_HARNESS_BASE_URL_ENV } from "./chunks/profile-DLuYzIs8.js";
|
|
46
46
|
import assert from "assert";
|
|
47
47
|
import * as fs$2 from "fs/promises";
|
|
48
48
|
import fs__default$2 from "fs/promises";
|
|
@@ -4325,7 +4325,7 @@ Upgrade Node, then re-run: npx lody@latest`;
|
|
|
4325
4325
|
}
|
|
4326
4326
|
const name$2 = "lody";
|
|
4327
4327
|
const name$1 = "@lody/cli-cloud";
|
|
4328
|
-
const version$9 = "0.
|
|
4328
|
+
const version$9 = "0.91.0";
|
|
4329
4329
|
const type$2 = "module";
|
|
4330
4330
|
const scripts = {
|
|
4331
4331
|
"dev": "node dev.mjs",
|
|
@@ -4703,30 +4703,6 @@ Upgrade Node, then re-run: npx lody@latest`;
|
|
|
4703
4703
|
options: DEEPSEEK_HARNESS_AGENT_PRESETS.map((preset) => ({
|
|
4704
4704
|
...preset
|
|
4705
4705
|
}))
|
|
4706
|
-
},
|
|
4707
|
-
{
|
|
4708
|
-
id: "model",
|
|
4709
|
-
name: "Model",
|
|
4710
|
-
description: "DeepSeek model used for the session",
|
|
4711
|
-
category: "model",
|
|
4712
|
-
type: "select",
|
|
4713
|
-
currentValue: "deepseek-v4-pro",
|
|
4714
|
-
options: DEEPSEEK_HARNESS_MODELS.map((model) => ({
|
|
4715
|
-
value: model.modelId,
|
|
4716
|
-
name: model.name,
|
|
4717
|
-
description: model.description
|
|
4718
|
-
}))
|
|
4719
|
-
},
|
|
4720
|
-
{
|
|
4721
|
-
id: "reasoning_effort",
|
|
4722
|
-
name: "Reasoning effort",
|
|
4723
|
-
description: "How much reasoning effort the model should use",
|
|
4724
|
-
category: "thought_level",
|
|
4725
|
-
type: "select",
|
|
4726
|
-
currentValue: "max",
|
|
4727
|
-
options: DEEPSEEK_HARNESS_REASONING_OPTIONS.map((option2) => ({
|
|
4728
|
-
...option2
|
|
4729
|
-
}))
|
|
4730
4706
|
}
|
|
4731
4707
|
];
|
|
4732
4708
|
const CODEX_STATIC_MODES = [
|
|
@@ -5137,9 +5113,6 @@ Upgrade Node, then re-run: npx lody@latest`;
|
|
|
5137
5113
|
deepseek: {
|
|
5138
5114
|
modes: DEEPSEEK_HARNESS_PERMISSION_MODES.map((mode2) => ({
|
|
5139
5115
|
...mode2
|
|
5140
|
-
})),
|
|
5141
|
-
models: DEEPSEEK_HARNESS_MODELS.map((model) => ({
|
|
5142
|
-
...model
|
|
5143
5116
|
}))
|
|
5144
5117
|
}
|
|
5145
5118
|
});
|
|
@@ -12737,6 +12710,43 @@ Requirements:
|
|
|
12737
12710
|
name: string$1().optional(),
|
|
12738
12711
|
description: string$1().optional()
|
|
12739
12712
|
}).strict();
|
|
12713
|
+
const AcpConfigOptionValueSummarySchema = object$1({
|
|
12714
|
+
value: string$1(),
|
|
12715
|
+
name: string$1(),
|
|
12716
|
+
description: string$1().optional(),
|
|
12717
|
+
group: string$1().optional()
|
|
12718
|
+
}).strict();
|
|
12719
|
+
const AcpConfigOptionSummarySchema = object$1({
|
|
12720
|
+
id: string$1(),
|
|
12721
|
+
name: string$1(),
|
|
12722
|
+
description: string$1().optional(),
|
|
12723
|
+
category: string$1().optional(),
|
|
12724
|
+
type: _enum$1([
|
|
12725
|
+
"select",
|
|
12726
|
+
"boolean"
|
|
12727
|
+
]),
|
|
12728
|
+
currentValue: AcpConfigOptionValueSchema,
|
|
12729
|
+
options: array$2(AcpConfigOptionValueSummarySchema)
|
|
12730
|
+
}).strict();
|
|
12731
|
+
const AcpCapabilityCacheEntrySchema = object$1({
|
|
12732
|
+
cliType: AgentConfigCliTypeSchema,
|
|
12733
|
+
agentType: string$1().trim().min(1),
|
|
12734
|
+
cacheVersion: number$4().optional(),
|
|
12735
|
+
provenance: literal$1("runtime").optional(),
|
|
12736
|
+
sourceVersion: string$1().optional(),
|
|
12737
|
+
modes: array$2(AcpModeSchema),
|
|
12738
|
+
models: array$2(AcpModelSchema),
|
|
12739
|
+
configOptions: array$2(AcpConfigOptionSummarySchema).optional(),
|
|
12740
|
+
modelReasoningEfforts: record$1(string$1(), array$2(string$1())).optional(),
|
|
12741
|
+
availableCommands: array$2(object$1({
|
|
12742
|
+
name: string$1(),
|
|
12743
|
+
description: string$1().optional()
|
|
12744
|
+
}).strict()).optional(),
|
|
12745
|
+
sessionFork: boolean().optional(),
|
|
12746
|
+
acknowledgedSteer: boolean().optional(),
|
|
12747
|
+
sessionForkWorktree: boolean().optional(),
|
|
12748
|
+
fetchedAt: number$4()
|
|
12749
|
+
}).strict();
|
|
12740
12750
|
const MachineAcpAuthMethodSummarySchema = object$1({
|
|
12741
12751
|
type: _enum$1([
|
|
12742
12752
|
"agent",
|
|
@@ -12854,6 +12864,7 @@ Requirements:
|
|
|
12854
12864
|
category: string$1().optional(),
|
|
12855
12865
|
optionCount: number$4()
|
|
12856
12866
|
})).optional(),
|
|
12867
|
+
capability: AcpCapabilityCacheEntrySchema.optional(),
|
|
12857
12868
|
availableCommands: array$2(object$1({
|
|
12858
12869
|
name: string$1(),
|
|
12859
12870
|
description: string$1().optional()
|
|
@@ -13313,10 +13324,7 @@ Requirements:
|
|
|
13313
13324
|
"browser_address",
|
|
13314
13325
|
"share_action"
|
|
13315
13326
|
]),
|
|
13316
|
-
targetClass:
|
|
13317
|
-
"loopback",
|
|
13318
|
-
"private_lan"
|
|
13319
|
-
]),
|
|
13327
|
+
targetClass: literal$1("loopback"),
|
|
13320
13328
|
target: PreviewTargetSchema,
|
|
13321
13329
|
confirmedByUserId: string$1().trim().min(1),
|
|
13322
13330
|
confirmedAt: number$4().int().nonnegative()
|
|
@@ -14717,35 +14725,35 @@ Requirements:
|
|
|
14717
14725
|
{
|
|
14718
14726
|
id: "antigravity-acp",
|
|
14719
14727
|
name: "Google Antigravity",
|
|
14720
|
-
version: "1.
|
|
14728
|
+
version: "1.1.1",
|
|
14721
14729
|
description: "Google\u2019s AI coding agent",
|
|
14722
14730
|
icon: "https://cdn.agentclientprotocol.com/registry/v1/latest/antigravity-acp.svg",
|
|
14723
14731
|
distribution: {
|
|
14724
14732
|
binary: {
|
|
14725
14733
|
"darwin-aarch64": {
|
|
14726
|
-
archive: "https://dl.google.com/agy-extensions/releases/macos/agy-acp-server-
|
|
14734
|
+
archive: "https://dl.google.com/agy-extensions/releases/macos/agy-acp-server-agy_acp_server_1.1.1-darwin-arm64.zip",
|
|
14727
14735
|
cmd: "./agy_acp_server.par"
|
|
14728
14736
|
},
|
|
14729
14737
|
"linux-x86_64": {
|
|
14730
|
-
archive: "https://dl.google.com/agy-extensions/releases/linux/agy-acp-server-
|
|
14738
|
+
archive: "https://dl.google.com/agy-extensions/releases/linux/agy-acp-server-agy_acp_server_1.1.1-linux-x86_64.zip",
|
|
14731
14739
|
cmd: "./agy_acp_server.par",
|
|
14732
14740
|
args: [
|
|
14733
14741
|
"--uid="
|
|
14734
14742
|
]
|
|
14735
14743
|
},
|
|
14736
14744
|
"linux-aarch64": {
|
|
14737
|
-
archive: "https://dl.google.com/agy-extensions/releases/linux/agy-acp-server-
|
|
14745
|
+
archive: "https://dl.google.com/agy-extensions/releases/linux/agy-acp-server-agy_acp_server_1.1.1-linux-arm64.zip",
|
|
14738
14746
|
cmd: "./agy_acp_server.par",
|
|
14739
14747
|
args: [
|
|
14740
14748
|
"--uid="
|
|
14741
14749
|
]
|
|
14742
14750
|
},
|
|
14743
14751
|
"windows-x86_64": {
|
|
14744
|
-
archive: "https://dl.google.com/agy-extensions/releases/windows/agy-acp-server-
|
|
14752
|
+
archive: "https://dl.google.com/agy-extensions/releases/windows/agy-acp-server-agy_acp_server_1.1.1-windows-x86_64.zip",
|
|
14745
14753
|
cmd: "./agy_acp_server.exe"
|
|
14746
14754
|
},
|
|
14747
14755
|
"windows-aarch64": {
|
|
14748
|
-
archive: "https://dl.google.com/agy-extensions/releases/windows/agy-acp-server-
|
|
14756
|
+
archive: "https://dl.google.com/agy-extensions/releases/windows/agy-acp-server-agy_acp_server_1.1.1-windows-arm64.zip",
|
|
14749
14757
|
cmd: "./agy_acp_server.exe"
|
|
14750
14758
|
}
|
|
14751
14759
|
}
|
|
@@ -14784,12 +14792,12 @@ Requirements:
|
|
|
14784
14792
|
{
|
|
14785
14793
|
id: "cline",
|
|
14786
14794
|
name: "Cline",
|
|
14787
|
-
version: "3.0.
|
|
14795
|
+
version: "3.0.61",
|
|
14788
14796
|
description: "Autonomous coding agent CLI - capable of creating/editing files, running commands, using the browser, and more",
|
|
14789
14797
|
icon: "https://cdn.agentclientprotocol.com/registry/v1/latest/cline.svg",
|
|
14790
14798
|
distribution: {
|
|
14791
14799
|
npx: {
|
|
14792
|
-
package: "cline@3.0.
|
|
14800
|
+
package: "cline@3.0.61",
|
|
14793
14801
|
args: [
|
|
14794
14802
|
"--acp"
|
|
14795
14803
|
]
|
|
@@ -14799,12 +14807,12 @@ Requirements:
|
|
|
14799
14807
|
{
|
|
14800
14808
|
id: "codebuddy-code",
|
|
14801
14809
|
name: "Codebuddy Code",
|
|
14802
|
-
version: "2.
|
|
14810
|
+
version: "2.143.1",
|
|
14803
14811
|
description: "Tencent Cloud's official intelligent coding tool",
|
|
14804
14812
|
icon: "https://cdn.agentclientprotocol.com/registry/v1/latest/codebuddy-code.svg",
|
|
14805
14813
|
distribution: {
|
|
14806
14814
|
npx: {
|
|
14807
|
-
package: "@tencent-ai/codebuddy-code@2.
|
|
14815
|
+
package: "@tencent-ai/codebuddy-code@2.143.1",
|
|
14808
14816
|
args: [
|
|
14809
14817
|
"--acp"
|
|
14810
14818
|
]
|
|
@@ -14946,7 +14954,7 @@ Requirements:
|
|
|
14946
14954
|
{
|
|
14947
14955
|
id: "cursor",
|
|
14948
14956
|
name: "Cursor",
|
|
14949
|
-
version: "2026.08.
|
|
14957
|
+
version: "2026.08.31",
|
|
14950
14958
|
description: "Cursor's coding agent",
|
|
14951
14959
|
icon: "https://cdn.agentclientprotocol.com/registry/v1/latest/cursor.svg",
|
|
14952
14960
|
distribution: {
|
|
@@ -14976,48 +14984,48 @@ Requirements:
|
|
|
14976
14984
|
{
|
|
14977
14985
|
id: "devin",
|
|
14978
14986
|
name: "Devin",
|
|
14979
|
-
version: "3000.6.
|
|
14987
|
+
version: "3000.6.14",
|
|
14980
14988
|
description: "Devin CLI coding agent by Cognition",
|
|
14981
14989
|
icon: "https://cdn.agentclientprotocol.com/registry/v1/latest/devin.svg",
|
|
14982
14990
|
distribution: {
|
|
14983
14991
|
binary: {
|
|
14984
14992
|
"darwin-aarch64": {
|
|
14985
|
-
archive: "https://static.devin.ai/cli/3000.6.
|
|
14993
|
+
archive: "https://static.devin.ai/cli/3000.6.14/devin-3000.6.14-aarch64-apple-darwin.tar.gz",
|
|
14986
14994
|
cmd: "./bin/devin",
|
|
14987
14995
|
args: [
|
|
14988
14996
|
"acp"
|
|
14989
14997
|
]
|
|
14990
14998
|
},
|
|
14991
14999
|
"darwin-x86_64": {
|
|
14992
|
-
archive: "https://static.devin.ai/cli/3000.6.
|
|
15000
|
+
archive: "https://static.devin.ai/cli/3000.6.14/devin-3000.6.14-x86_64-apple-darwin.tar.gz",
|
|
14993
15001
|
cmd: "./bin/devin",
|
|
14994
15002
|
args: [
|
|
14995
15003
|
"acp"
|
|
14996
15004
|
]
|
|
14997
15005
|
},
|
|
14998
15006
|
"linux-aarch64": {
|
|
14999
|
-
archive: "https://static.devin.ai/cli/3000.6.
|
|
15007
|
+
archive: "https://static.devin.ai/cli/3000.6.14/devin-3000.6.14-aarch64-unknown-linux.tar.gz",
|
|
15000
15008
|
cmd: "./bin/devin",
|
|
15001
15009
|
args: [
|
|
15002
15010
|
"acp"
|
|
15003
15011
|
]
|
|
15004
15012
|
},
|
|
15005
15013
|
"linux-x86_64": {
|
|
15006
|
-
archive: "https://static.devin.ai/cli/3000.6.
|
|
15014
|
+
archive: "https://static.devin.ai/cli/3000.6.14/devin-3000.6.14-x86_64-unknown-linux.tar.gz",
|
|
15007
15015
|
cmd: "./bin/devin",
|
|
15008
15016
|
args: [
|
|
15009
15017
|
"acp"
|
|
15010
15018
|
]
|
|
15011
15019
|
},
|
|
15012
15020
|
"windows-aarch64": {
|
|
15013
|
-
archive: "https://static.devin.ai/cli/3000.6.
|
|
15021
|
+
archive: "https://static.devin.ai/cli/3000.6.14/devin-3000.6.14-aarch64-pc-windows.zip",
|
|
15014
15022
|
cmd: "./bin\\devin.exe",
|
|
15015
15023
|
args: [
|
|
15016
15024
|
"acp"
|
|
15017
15025
|
]
|
|
15018
15026
|
},
|
|
15019
15027
|
"windows-x86_64": {
|
|
15020
|
-
archive: "https://static.devin.ai/cli/3000.6.
|
|
15028
|
+
archive: "https://static.devin.ai/cli/3000.6.14/devin-3000.6.14-x86_64-pc-windows.zip",
|
|
15021
15029
|
cmd: "./bin\\devin.exe",
|
|
15022
15030
|
args: [
|
|
15023
15031
|
"acp"
|
|
@@ -15029,12 +15037,12 @@ Requirements:
|
|
|
15029
15037
|
{
|
|
15030
15038
|
id: "dimcode",
|
|
15031
15039
|
name: "DimCode",
|
|
15032
|
-
version: "0.3.
|
|
15040
|
+
version: "0.3.28",
|
|
15033
15041
|
description: "A coding agent that puts leading models at your command.",
|
|
15034
15042
|
icon: "https://cdn.agentclientprotocol.com/registry/v1/latest/dimcode.svg",
|
|
15035
15043
|
distribution: {
|
|
15036
15044
|
npx: {
|
|
15037
|
-
package: "dimcode@0.3.
|
|
15045
|
+
package: "dimcode@0.3.28",
|
|
15038
15046
|
args: [
|
|
15039
15047
|
"acp"
|
|
15040
15048
|
]
|
|
@@ -15044,12 +15052,12 @@ Requirements:
|
|
|
15044
15052
|
{
|
|
15045
15053
|
id: "dirac",
|
|
15046
15054
|
name: "Dirac",
|
|
15047
|
-
version: "0.5.
|
|
15055
|
+
version: "0.5.6",
|
|
15048
15056
|
description: "Reduces API costs by more than 50%, produces better and faster work. Uses Hash anchored parallel edits, AST manipulation and a whole lot of neat optimizations. Fully Open Source.",
|
|
15049
15057
|
icon: "https://cdn.agentclientprotocol.com/registry/v1/latest/dirac.svg",
|
|
15050
15058
|
distribution: {
|
|
15051
15059
|
npx: {
|
|
15052
|
-
package: "dirac-cli@0.5.
|
|
15060
|
+
package: "dirac-cli@0.5.6",
|
|
15053
15061
|
args: [
|
|
15054
15062
|
"--acp"
|
|
15055
15063
|
]
|
|
@@ -15059,12 +15067,12 @@ Requirements:
|
|
|
15059
15067
|
{
|
|
15060
15068
|
id: "factory-droid",
|
|
15061
15069
|
name: "Factory Droid",
|
|
15062
|
-
version: "0.
|
|
15070
|
+
version: "0.211.0",
|
|
15063
15071
|
description: "Factory Droid - AI coding agent powered by Factory AI",
|
|
15064
15072
|
icon: "https://cdn.agentclientprotocol.com/registry/v1/latest/factory-droid.svg",
|
|
15065
15073
|
distribution: {
|
|
15066
15074
|
npx: {
|
|
15067
|
-
package: "droid@0.
|
|
15075
|
+
package: "droid@0.211.0",
|
|
15068
15076
|
args: [
|
|
15069
15077
|
"exec",
|
|
15070
15078
|
"--output-format",
|
|
@@ -15098,12 +15106,12 @@ Requirements:
|
|
|
15098
15106
|
{
|
|
15099
15107
|
id: "gemini",
|
|
15100
15108
|
name: "Gemini CLI",
|
|
15101
|
-
version: "0.
|
|
15109
|
+
version: "0.58.0",
|
|
15102
15110
|
description: "Google's official CLI for Gemini",
|
|
15103
15111
|
icon: "https://cdn.agentclientprotocol.com/registry/v1/latest/gemini.svg",
|
|
15104
15112
|
distribution: {
|
|
15105
15113
|
npx: {
|
|
15106
|
-
package: "@google/gemini-cli@0.
|
|
15114
|
+
package: "@google/gemini-cli@0.58.0",
|
|
15107
15115
|
args: [
|
|
15108
15116
|
"--acp"
|
|
15109
15117
|
]
|
|
@@ -15128,19 +15136,19 @@ Requirements:
|
|
|
15128
15136
|
{
|
|
15129
15137
|
id: "glm-acp-agent",
|
|
15130
15138
|
name: "GLM Agent",
|
|
15131
|
-
version: "1.
|
|
15139
|
+
version: "1.8.0",
|
|
15132
15140
|
description: "ACP agent powered by Zhipu AI's GLM Coding Plan models (glm-5.1, glm-5-turbo, glm-4.7, glm-4.5-air). Supports streaming, tool calls, mid-session model switching, image input via Z.AI Coding Plan Vision MCP, and session load/fork/resume with on-disk persistence.",
|
|
15133
15141
|
icon: "https://cdn.agentclientprotocol.com/registry/v1/latest/glm-acp-agent.svg",
|
|
15134
15142
|
distribution: {
|
|
15135
15143
|
npx: {
|
|
15136
|
-
package: "glm-acp-agent@1.
|
|
15144
|
+
package: "glm-acp-agent@1.8.0"
|
|
15137
15145
|
}
|
|
15138
15146
|
}
|
|
15139
15147
|
},
|
|
15140
15148
|
{
|
|
15141
15149
|
id: "goose",
|
|
15142
15150
|
name: "goose",
|
|
15143
|
-
version: "1.
|
|
15151
|
+
version: "1.49.0",
|
|
15144
15152
|
description: "A local, extensible, open source AI agent that automates engineering tasks",
|
|
15145
15153
|
icon: "https://cdn.agentclientprotocol.com/registry/v1/latest/goose.svg",
|
|
15146
15154
|
distribution: {
|
|
@@ -15158,13 +15166,13 @@ Requirements:
|
|
|
15158
15166
|
{
|
|
15159
15167
|
id: "harn",
|
|
15160
15168
|
name: "Harn",
|
|
15161
|
-
version: "0.10.
|
|
15169
|
+
version: "0.10.128",
|
|
15162
15170
|
description: "Harn runs .harn agent pipelines as a native ACP coding agent over stdio.",
|
|
15163
15171
|
icon: "https://cdn.agentclientprotocol.com/registry/v1/latest/harn.svg",
|
|
15164
15172
|
distribution: {
|
|
15165
15173
|
binary: {
|
|
15166
15174
|
"darwin-aarch64": {
|
|
15167
|
-
archive: "https://github.com/burin-labs/harn/releases/download/v0.10.
|
|
15175
|
+
archive: "https://github.com/burin-labs/harn/releases/download/v0.10.128/harn-aarch64-apple-darwin.tar.gz",
|
|
15168
15176
|
cmd: "./harn",
|
|
15169
15177
|
args: [
|
|
15170
15178
|
"serve",
|
|
@@ -15172,7 +15180,7 @@ Requirements:
|
|
|
15172
15180
|
]
|
|
15173
15181
|
},
|
|
15174
15182
|
"darwin-x86_64": {
|
|
15175
|
-
archive: "https://github.com/burin-labs/harn/releases/download/v0.10.
|
|
15183
|
+
archive: "https://github.com/burin-labs/harn/releases/download/v0.10.128/harn-x86_64-apple-darwin.tar.gz",
|
|
15176
15184
|
cmd: "./harn",
|
|
15177
15185
|
args: [
|
|
15178
15186
|
"serve",
|
|
@@ -15180,7 +15188,7 @@ Requirements:
|
|
|
15180
15188
|
]
|
|
15181
15189
|
},
|
|
15182
15190
|
"linux-aarch64": {
|
|
15183
|
-
archive: "https://github.com/burin-labs/harn/releases/download/v0.10.
|
|
15191
|
+
archive: "https://github.com/burin-labs/harn/releases/download/v0.10.128/harn-aarch64-unknown-linux-gnu.tar.gz",
|
|
15184
15192
|
cmd: "./harn",
|
|
15185
15193
|
args: [
|
|
15186
15194
|
"serve",
|
|
@@ -15188,7 +15196,7 @@ Requirements:
|
|
|
15188
15196
|
]
|
|
15189
15197
|
},
|
|
15190
15198
|
"linux-x86_64": {
|
|
15191
|
-
archive: "https://github.com/burin-labs/harn/releases/download/v0.10.
|
|
15199
|
+
archive: "https://github.com/burin-labs/harn/releases/download/v0.10.128/harn-x86_64-unknown-linux-gnu.tar.gz",
|
|
15192
15200
|
cmd: "./harn",
|
|
15193
15201
|
args: [
|
|
15194
15202
|
"serve",
|
|
@@ -15196,7 +15204,7 @@ Requirements:
|
|
|
15196
15204
|
]
|
|
15197
15205
|
},
|
|
15198
15206
|
"windows-x86_64": {
|
|
15199
|
-
archive: "https://github.com/burin-labs/harn/releases/download/v0.10.
|
|
15207
|
+
archive: "https://github.com/burin-labs/harn/releases/download/v0.10.128/harn-x86_64-pc-windows-msvc.zip",
|
|
15200
15208
|
cmd: "harn.exe",
|
|
15201
15209
|
args: [
|
|
15202
15210
|
"serve",
|
|
@@ -15209,7 +15217,7 @@ Requirements:
|
|
|
15209
15217
|
{
|
|
15210
15218
|
id: "junie",
|
|
15211
15219
|
name: "Junie",
|
|
15212
|
-
version: "
|
|
15220
|
+
version: "3123.3.0",
|
|
15213
15221
|
description: "AI Coding Agent by JetBrains",
|
|
15214
15222
|
icon: "https://cdn.agentclientprotocol.com/registry/v1/latest/junie.svg",
|
|
15215
15223
|
distribution: {
|
|
@@ -15227,47 +15235,47 @@ Requirements:
|
|
|
15227
15235
|
{
|
|
15228
15236
|
id: "kilo",
|
|
15229
15237
|
name: "Kilo",
|
|
15230
|
-
version: "7.5.
|
|
15238
|
+
version: "7.5.9",
|
|
15231
15239
|
description: "The open source coding agent",
|
|
15232
15240
|
icon: "https://cdn.agentclientprotocol.com/registry/v1/latest/kilo.svg",
|
|
15233
15241
|
distribution: {
|
|
15234
15242
|
npx: {
|
|
15235
|
-
package: "@kilocode/cli@7.5.
|
|
15243
|
+
package: "@kilocode/cli@7.5.9",
|
|
15236
15244
|
args: [
|
|
15237
15245
|
"acp"
|
|
15238
15246
|
]
|
|
15239
15247
|
},
|
|
15240
15248
|
binary: {
|
|
15241
15249
|
"darwin-aarch64": {
|
|
15242
|
-
archive: "https://github.com/Kilo-Org/kilocode/releases/download/v7.5.
|
|
15250
|
+
archive: "https://github.com/Kilo-Org/kilocode/releases/download/v7.5.9/kilo-darwin-arm64.zip",
|
|
15243
15251
|
cmd: "./kilo",
|
|
15244
15252
|
args: [
|
|
15245
15253
|
"acp"
|
|
15246
15254
|
]
|
|
15247
15255
|
},
|
|
15248
15256
|
"darwin-x86_64": {
|
|
15249
|
-
archive: "https://github.com/Kilo-Org/kilocode/releases/download/v7.5.
|
|
15257
|
+
archive: "https://github.com/Kilo-Org/kilocode/releases/download/v7.5.9/kilo-darwin-x64.zip",
|
|
15250
15258
|
cmd: "./kilo",
|
|
15251
15259
|
args: [
|
|
15252
15260
|
"acp"
|
|
15253
15261
|
]
|
|
15254
15262
|
},
|
|
15255
15263
|
"linux-aarch64": {
|
|
15256
|
-
archive: "https://github.com/Kilo-Org/kilocode/releases/download/v7.5.
|
|
15264
|
+
archive: "https://github.com/Kilo-Org/kilocode/releases/download/v7.5.9/kilo-linux-arm64.tar.gz",
|
|
15257
15265
|
cmd: "./kilo",
|
|
15258
15266
|
args: [
|
|
15259
15267
|
"acp"
|
|
15260
15268
|
]
|
|
15261
15269
|
},
|
|
15262
15270
|
"linux-x86_64": {
|
|
15263
|
-
archive: "https://github.com/Kilo-Org/kilocode/releases/download/v7.5.
|
|
15271
|
+
archive: "https://github.com/Kilo-Org/kilocode/releases/download/v7.5.9/kilo-linux-x64.tar.gz",
|
|
15264
15272
|
cmd: "./kilo",
|
|
15265
15273
|
args: [
|
|
15266
15274
|
"acp"
|
|
15267
15275
|
]
|
|
15268
15276
|
},
|
|
15269
15277
|
"windows-x86_64": {
|
|
15270
|
-
archive: "https://github.com/Kilo-Org/kilocode/releases/download/v7.5.
|
|
15278
|
+
archive: "https://github.com/Kilo-Org/kilocode/releases/download/v7.5.9/kilo-windows-x64.zip",
|
|
15271
15279
|
cmd: "./kilo.exe",
|
|
15272
15280
|
args: [
|
|
15273
15281
|
"acp"
|
|
@@ -15279,7 +15287,7 @@ Requirements:
|
|
|
15279
15287
|
{
|
|
15280
15288
|
id: "kimi",
|
|
15281
15289
|
name: "Kimi CLI",
|
|
15282
|
-
version: "1.
|
|
15290
|
+
version: "1.50.0",
|
|
15283
15291
|
description: "Moonshot AI's coding assistant",
|
|
15284
15292
|
icon: "https://cdn.agentclientprotocol.com/registry/v1/latest/kimi.svg",
|
|
15285
15293
|
distribution: {
|
|
@@ -15364,7 +15372,7 @@ Requirements:
|
|
|
15364
15372
|
{
|
|
15365
15373
|
id: "opencode",
|
|
15366
15374
|
name: "OpenCode",
|
|
15367
|
-
version: "1.18.
|
|
15375
|
+
version: "1.18.27",
|
|
15368
15376
|
description: "The open source coding agent",
|
|
15369
15377
|
icon: "https://cdn.agentclientprotocol.com/registry/v1/latest/opencode.svg",
|
|
15370
15378
|
distribution: {
|
|
@@ -15462,12 +15470,12 @@ Requirements:
|
|
|
15462
15470
|
{
|
|
15463
15471
|
id: "qwen-code",
|
|
15464
15472
|
name: "Qwen Code",
|
|
15465
|
-
version: "0.
|
|
15473
|
+
version: "0.23.0",
|
|
15466
15474
|
description: "Alibaba's Qwen coding assistant",
|
|
15467
15475
|
icon: "https://cdn.agentclientprotocol.com/registry/v1/latest/qwen-code.svg",
|
|
15468
15476
|
distribution: {
|
|
15469
15477
|
npx: {
|
|
15470
|
-
package: "@qwen-code/qwen-code@0.
|
|
15478
|
+
package: "@qwen-code/qwen-code@0.23.0",
|
|
15471
15479
|
args: [
|
|
15472
15480
|
"--acp",
|
|
15473
15481
|
"--experimental-skills"
|
|
@@ -23346,13 +23354,12 @@ ${context2.authorReply.trim()}
|
|
|
23346
23354
|
...right2
|
|
23347
23355
|
];
|
|
23348
23356
|
};
|
|
23349
|
-
const isBenchmarkingIpv4 = ([first2, second]) => first2 === 198 && (second === 18 || second === 19);
|
|
23350
23357
|
const classifyIpv4 = (octets) => {
|
|
23351
23358
|
const [first2, second, third, fourth] = octets;
|
|
23352
23359
|
if (first2 === 127) return "loopback";
|
|
23353
23360
|
if (first2 === 10 || first2 === 172 && second >= 16 && second <= 31) return "private-lan";
|
|
23354
23361
|
if (first2 === 192 && second === 168) return "private-lan";
|
|
23355
|
-
const prohibited = first2 === 0 || first2 >= 224 || first2 === 100 && second >= 64 && second <= 127 || first2 === 169 && second === 254 || first2 === 192 && second === 0 && third === 0 || first2 === 192 && second === 0 && third === 2 ||
|
|
23362
|
+
const prohibited = first2 === 0 || first2 >= 224 || first2 === 100 && second >= 64 && second <= 127 || first2 === 169 && second === 254 || first2 === 192 && second === 0 && third === 0 || first2 === 192 && second === 0 && third === 2 || first2 === 198 && (second === 18 || second === 19) || first2 === 198 && second === 51 && third === 100 || first2 === 203 && second === 0 && third === 113 || first2 === 255 && second === 255 && third === 255 && fourth === 255;
|
|
23356
23363
|
return prohibited ? "prohibited" : "public";
|
|
23357
23364
|
};
|
|
23358
23365
|
const mappedIpv4 = (segments) => {
|
|
@@ -23397,6 +23404,15 @@ ${context2.authorReply.trim()}
|
|
|
23397
23404
|
plainTextBytes: 64 * 1024,
|
|
23398
23405
|
maxCompressedBytes: 1024 * 1024
|
|
23399
23406
|
};
|
|
23407
|
+
const FILE_PREVIEW_LOCAL_IPC_RESPONSE_LIMIT_BYTES = 16 * 1024 * 1024;
|
|
23408
|
+
const FILE_PREVIEW_LOCAL_ENVELOPE_BYTES = 64 * 1024;
|
|
23409
|
+
const FILE_PREVIEW_LOCAL_PAYLOAD_BUDGET_BYTES = FILE_PREVIEW_LOCAL_IPC_RESPONSE_LIMIT_BYTES - FILE_PREVIEW_LOCAL_ENVELOPE_BYTES;
|
|
23410
|
+
const FILE_PREVIEW_V3_LOCAL_LIMITS = {
|
|
23411
|
+
maxTextBytes: FILE_PREVIEW_LOCAL_PAYLOAD_BUDGET_BYTES,
|
|
23412
|
+
maxBinaryBytes: Math.floor(FILE_PREVIEW_LOCAL_PAYLOAD_BUDGET_BYTES * 3 / 4),
|
|
23413
|
+
plainTextBytes: FILE_PREVIEW_LOCAL_PAYLOAD_BUDGET_BYTES,
|
|
23414
|
+
maxCompressedBytes: FILE_PREVIEW_LOCAL_PAYLOAD_BUDGET_BYTES
|
|
23415
|
+
};
|
|
23400
23416
|
const FilePreviewV3DigestSchema = string$1().regex(/^sha256:[0-9a-f]{64}$/u);
|
|
23401
23417
|
const FilePreviewV3TextFormatSchema = object$1({
|
|
23402
23418
|
bom: boolean().optional(),
|
|
@@ -104783,7 +104799,7 @@ ${value}`;
|
|
|
104783
104799
|
await this.machine.init();
|
|
104784
104800
|
}
|
|
104785
104801
|
options.signal?.throwIfAborted();
|
|
104786
|
-
await this.machine.updateAcpCapabilities(configId, cliType, agentType, modes, models, configOptions, availableCommands, sessionFork, sourceVersion, modelReasoningEfforts, acknowledgedSteer, options);
|
|
104802
|
+
return await this.machine.updateAcpCapabilities(configId, cliType, agentType, modes, models, configOptions, availableCommands, sessionFork, sourceVersion, modelReasoningEfforts, acknowledgedSteer, options);
|
|
104787
104803
|
}
|
|
104788
104804
|
async getAcpCapabilities(machineId, configId) {
|
|
104789
104805
|
if (!this.machine) {
|
|
@@ -105962,6 +105978,7 @@ ${value}`;
|
|
|
105962
105978
|
modes: entry.modes,
|
|
105963
105979
|
models: entry.models,
|
|
105964
105980
|
configOptions: entry.configOptions,
|
|
105981
|
+
modelReasoningEfforts: entry.modelReasoningEfforts,
|
|
105965
105982
|
availableCommands: entry.availableCommands,
|
|
105966
105983
|
sessionFork: entry.sessionFork,
|
|
105967
105984
|
acknowledgedSteer: entry.acknowledgedSteer,
|
|
@@ -106057,7 +106074,7 @@ ${value}`;
|
|
|
106057
106074
|
]
|
|
106058
106075
|
}))[capabilityKey];
|
|
106059
106076
|
if (existing && serializeAcpCapabilityWithoutFetchTime(existing) === serializeAcpCapabilityWithoutFetchTime(entry)) {
|
|
106060
|
-
return;
|
|
106077
|
+
return existing;
|
|
106061
106078
|
}
|
|
106062
106079
|
options.signal?.throwIfAborted();
|
|
106063
106080
|
const changed = writeMachineFlockRowToFlock(handle.flock, {
|
|
@@ -106072,6 +106089,7 @@ ${value}`;
|
|
|
106072
106089
|
await handle.syncOnce().catch(() => void 0);
|
|
106073
106090
|
}
|
|
106074
106091
|
}
|
|
106092
|
+
return entry;
|
|
106075
106093
|
}
|
|
106076
106094
|
async getAcpCapabilities(configId) {
|
|
106077
106095
|
const key2 = getAcpCapabilityCacheKey(configId);
|
|
@@ -106478,10 +106496,7 @@ ${value}`;
|
|
|
106478
106496
|
"browser_address",
|
|
106479
106497
|
"share_action"
|
|
106480
106498
|
]),
|
|
106481
|
-
targetClass:
|
|
106482
|
-
"loopback",
|
|
106483
|
-
"private_lan"
|
|
106484
|
-
]),
|
|
106499
|
+
targetClass: literal$1("loopback"),
|
|
106485
106500
|
target: PreviewTargetSchema,
|
|
106486
106501
|
confirmedByUserId: string$1().trim().min(1),
|
|
106487
106502
|
confirmedAt: number$4().int().nonnegative()
|
|
@@ -126155,9 +126170,9 @@ ${error2.message}` : execaMessage;
|
|
|
126155
126170
|
highWaterMark
|
|
126156
126171
|
}));
|
|
126157
126172
|
}
|
|
126158
|
-
const version$7 = "1.
|
|
126173
|
+
const version$7 = "1.10.0";
|
|
126159
126174
|
const dependencies$1 = {
|
|
126160
|
-
"@openai/codex": "^0.
|
|
126175
|
+
"@openai/codex": "^0.153.4"
|
|
126161
126176
|
};
|
|
126162
126177
|
const codexPackageJson = {
|
|
126163
126178
|
version: version$7,
|
|
@@ -126267,37 +126282,37 @@ ${error2.message}` : execaMessage;
|
|
|
126267
126282
|
version: version$3,
|
|
126268
126283
|
artifacts: artifacts$1
|
|
126269
126284
|
};
|
|
126270
|
-
const version$2 = "0.
|
|
126285
|
+
const version$2 = "0.153.4";
|
|
126271
126286
|
const artifacts = {
|
|
126272
126287
|
"darwin-arm64": {
|
|
126273
126288
|
"fileName": "codex-package-aarch64-apple-darwin.tar.zst",
|
|
126274
|
-
"sha256": "
|
|
126275
|
-
"size":
|
|
126289
|
+
"sha256": "be8a1a895533664ba6f2f11bc30ac8dae3b8ce37a152684229148ad9a8c7d269",
|
|
126290
|
+
"size": 80691565
|
|
126276
126291
|
},
|
|
126277
126292
|
"darwin-x64": {
|
|
126278
126293
|
"fileName": "codex-package-x86_64-apple-darwin.tar.zst",
|
|
126279
|
-
"sha256": "
|
|
126280
|
-
"size":
|
|
126294
|
+
"sha256": "a673331d8a21023dca1ca66443c1a41421a3105e587339ea7f81a06a56d8dd9b",
|
|
126295
|
+
"size": 88316449
|
|
126281
126296
|
},
|
|
126282
126297
|
"linux-arm64": {
|
|
126283
126298
|
"fileName": "codex-package-aarch64-unknown-linux-musl.tar.zst",
|
|
126284
|
-
"sha256": "
|
|
126285
|
-
"size":
|
|
126299
|
+
"sha256": "01ce0d1c38aca1ccc0c67f7612160cef5d820b452e1093d3a6d28597bfebfdb6",
|
|
126300
|
+
"size": 85851511
|
|
126286
126301
|
},
|
|
126287
126302
|
"linux-x64": {
|
|
126288
126303
|
"fileName": "codex-package-x86_64-unknown-linux-musl.tar.zst",
|
|
126289
|
-
"sha256": "
|
|
126290
|
-
"size":
|
|
126304
|
+
"sha256": "2b5c00df5758d014c79910fdffed43f29a6cae73f37e92d5ec216543ca53e79e",
|
|
126305
|
+
"size": 92109110
|
|
126291
126306
|
},
|
|
126292
126307
|
"win32-arm64": {
|
|
126293
126308
|
"fileName": "codex-package-aarch64-pc-windows-msvc.tar.zst",
|
|
126294
|
-
"sha256": "
|
|
126295
|
-
"size":
|
|
126309
|
+
"sha256": "92ff19d1012c1934bb1f9c10bfe15ac9f0af308d2de15b91dfc0f59faf8a77ba",
|
|
126310
|
+
"size": 94420871
|
|
126296
126311
|
},
|
|
126297
126312
|
"win32-x64": {
|
|
126298
126313
|
"fileName": "codex-package-x86_64-pc-windows-msvc.tar.zst",
|
|
126299
|
-
"sha256": "
|
|
126300
|
-
"size":
|
|
126314
|
+
"sha256": "f06e52c803cb74fb5fe6d42dc0c3c53ecbbf6822ad0c9d0239a0304165209f29",
|
|
126315
|
+
"size": 102002466
|
|
126301
126316
|
}
|
|
126302
126317
|
};
|
|
126303
126318
|
const codexRuntimeManifestJson = {
|
|
@@ -127679,7 +127694,8 @@ ${error2.message}` : execaMessage;
|
|
|
127679
127694
|
return managedRuntimeVersion ? `builtin-grok-acp:${GROK_ACP_ADAPTER_VERSION}+official-grok:${managedRuntimeVersion}` : `${BUILTIN_GROK_CAPABILITY_SOURCE_VERSION}${runtimeOverrideSuffix}`;
|
|
127680
127695
|
}
|
|
127681
127696
|
if (input2.agentType === "deepseek") {
|
|
127682
|
-
|
|
127697
|
+
const baseUrl = input2.env?.[DEEPSEEK_HARNESS_BASE_URL_ENV];
|
|
127698
|
+
return baseUrl?.trim() ? `${DEEPSEEK_HARNESS_CAPABILITY_SOURCE_VERSION}+endpoint:${createHash("sha256").update(baseUrl).digest("hex").slice(0, 12)}` : DEEPSEEK_HARNESS_CAPABILITY_SOURCE_VERSION;
|
|
127683
127699
|
}
|
|
127684
127700
|
}
|
|
127685
127701
|
return `builtin:${input2.agentType}:unknown`;
|
|
@@ -129202,6 +129218,7 @@ ${fallbackStderrTail}` : errorMessage2;
|
|
|
129202
129218
|
agentType: options.agentType,
|
|
129203
129219
|
customAcp: options.customAcp,
|
|
129204
129220
|
runtimeOverrides: options.runtimeOverrides,
|
|
129221
|
+
env: options.env,
|
|
129205
129222
|
extraArgs: options.extraArgs,
|
|
129206
129223
|
onManagedRuntimeProgress: options.onManagedRuntimeProgress ? (event) => {
|
|
129207
129224
|
if (!options.signal?.aborted) {
|
|
@@ -137672,7 +137689,8 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
137672
137689
|
cliType: config2.agentCliType,
|
|
137673
137690
|
agentType: config2.agentType,
|
|
137674
137691
|
customAcp: config2.customAcp,
|
|
137675
|
-
runtimeOverrides: config2.runtimeOverrides
|
|
137692
|
+
runtimeOverrides: config2.runtimeOverrides,
|
|
137693
|
+
env: config2.env
|
|
137676
137694
|
});
|
|
137677
137695
|
const existing = await this.deps.workspaceDocument.getAcpCapabilities(this.deps.machineId, agentConfigId);
|
|
137678
137696
|
const availableCommands = capabilities.availableCommands !== void 0 ? capabilities.availableCommands : existing?.sourceVersion === sourceVersion ? existing.availableCommands : void 0;
|
|
@@ -137927,11 +137945,12 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
137927
137945
|
}
|
|
137928
137946
|
});
|
|
137929
137947
|
options.signal?.throwIfAborted();
|
|
137930
|
-
await this.deps.workspaceDocument.updateAcpCapabilities(this.deps.machineId, message.configId, message.cliType, message.agentType, modes, models, configOptions, availableCommands, sessionFork, capabilitySourceVersion ?? getAcpCapabilitySourceVersion({
|
|
137948
|
+
const capability = await this.deps.workspaceDocument.updateAcpCapabilities(this.deps.machineId, message.configId, message.cliType, message.agentType, modes, models, configOptions, availableCommands, sessionFork, capabilitySourceVersion ?? getAcpCapabilitySourceVersion({
|
|
137931
137949
|
cliType: message.cliType,
|
|
137932
137950
|
agentType: message.agentType,
|
|
137933
137951
|
customAcp: message.customAcp,
|
|
137934
|
-
runtimeOverrides: message.runtimeOverrides
|
|
137952
|
+
runtimeOverrides: message.runtimeOverrides,
|
|
137953
|
+
env: message.env
|
|
137935
137954
|
}), modelReasoningEfforts, acknowledgedSteer, {
|
|
137936
137955
|
signal: options.signal
|
|
137937
137956
|
});
|
|
@@ -137950,6 +137969,7 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
137950
137969
|
category: opt.category,
|
|
137951
137970
|
optionCount: opt.options.length
|
|
137952
137971
|
})),
|
|
137972
|
+
capability,
|
|
137953
137973
|
availableCommands
|
|
137954
137974
|
};
|
|
137955
137975
|
} catch (error2) {
|
|
@@ -149909,6 +149929,11 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
149909
149929
|
}
|
|
149910
149930
|
}
|
|
149911
149931
|
const PRICE_DATA = {
|
|
149932
|
+
"gpt-6-astra": {
|
|
149933
|
+
inputCostPerToken: 1e-5,
|
|
149934
|
+
cacheReadInputTokenCost: 1e-6,
|
|
149935
|
+
outputCostPerToken: 5e-5
|
|
149936
|
+
},
|
|
149912
149937
|
"gpt-5.6": {
|
|
149913
149938
|
inputCostPerToken: 5e-6,
|
|
149914
149939
|
cacheReadInputTokenCost: 5e-7,
|
|
@@ -161051,6 +161076,10 @@ ${entry.text}`).join("\n\n");
|
|
|
161051
161076
|
}
|
|
161052
161077
|
limits;
|
|
161053
161078
|
async previewFile(request2, options = {}) {
|
|
161079
|
+
const limits = options.sameMachine ? {
|
|
161080
|
+
...FILE_PREVIEW_V3_LOCAL_LIMITS,
|
|
161081
|
+
...this.deps.limits
|
|
161082
|
+
} : this.limits;
|
|
161054
161083
|
const workspace = await this.deps.resolveWorkspace(request2.sessionId);
|
|
161055
161084
|
if (!workspace.ok) {
|
|
161056
161085
|
return filePreviewV3Error(workspace.code, {
|
|
@@ -161081,7 +161110,7 @@ ${entry.text}`).join("\n\n");
|
|
|
161081
161110
|
}
|
|
161082
161111
|
const resolved = resolution.resolved;
|
|
161083
161112
|
const isImageByName = isBinaryImagePath(resolved.reportedPath);
|
|
161084
|
-
const limitBytes = Math.min(isImageByName ?
|
|
161113
|
+
const limitBytes = Math.min(isImageByName ? limits.maxBinaryBytes : limits.maxTextBytes, request2.maxBytes ?? Number.MAX_SAFE_INTEGER);
|
|
161085
161114
|
if (resolved.sizeBytes > limitBytes) {
|
|
161086
161115
|
return filePreviewV3Error("too_large", {
|
|
161087
161116
|
message: "File is too large to preview.",
|
|
@@ -161134,23 +161163,32 @@ ${entry.text}`).join("\n\n");
|
|
|
161134
161163
|
};
|
|
161135
161164
|
}
|
|
161136
161165
|
if (isImageByName || hasBinaryNul(bytes)) {
|
|
161137
|
-
return this.binaryOk(resolved, bytes, digest);
|
|
161166
|
+
return this.binaryOk(resolved, bytes, digest, limits, options.sameMachine === true);
|
|
161138
161167
|
}
|
|
161139
161168
|
let text;
|
|
161140
161169
|
try {
|
|
161141
161170
|
text = decodeUtf8(bytes);
|
|
161142
161171
|
} catch {
|
|
161143
|
-
return this.binaryOk(resolved, bytes, digest);
|
|
161172
|
+
return this.binaryOk(resolved, bytes, digest, limits, options.sameMachine === true);
|
|
161144
161173
|
}
|
|
161145
161174
|
let content;
|
|
161146
161175
|
try {
|
|
161147
|
-
content = await this.encodeTextContent(bytes, text);
|
|
161176
|
+
content = await this.encodeTextContent(bytes, text, limits);
|
|
161148
161177
|
} catch (error2) {
|
|
161149
161178
|
return filePreviewV3Error("too_large", {
|
|
161150
161179
|
message: formatErrorMessage(error2),
|
|
161151
161180
|
path: resolved.reportedPath,
|
|
161152
161181
|
sizeBytes: bytes.byteLength,
|
|
161153
|
-
limitBytes:
|
|
161182
|
+
limitBytes: limits.maxCompressedBytes
|
|
161183
|
+
});
|
|
161184
|
+
}
|
|
161185
|
+
const payloadOverflow = options.sameMachine ? measurePayloadOverflow(content, FILE_PREVIEW_LOCAL_PAYLOAD_BUDGET_BYTES) : null;
|
|
161186
|
+
if (payloadOverflow !== null) {
|
|
161187
|
+
return filePreviewV3Error("too_large", {
|
|
161188
|
+
message: "File is too large to preview.",
|
|
161189
|
+
path: resolved.reportedPath,
|
|
161190
|
+
sizeBytes: bytes.byteLength,
|
|
161191
|
+
limitBytes: FILE_PREVIEW_LOCAL_PAYLOAD_BUDGET_BYTES
|
|
161154
161192
|
});
|
|
161155
161193
|
}
|
|
161156
161194
|
return {
|
|
@@ -161168,13 +161206,22 @@ ${entry.text}`).join("\n\n");
|
|
|
161168
161206
|
readonly: true
|
|
161169
161207
|
};
|
|
161170
161208
|
}
|
|
161171
|
-
binaryOk(resolved, bytes, digest) {
|
|
161172
|
-
if (bytes.byteLength >
|
|
161209
|
+
binaryOk(resolved, bytes, digest, limits, sameMachine) {
|
|
161210
|
+
if (bytes.byteLength > limits.maxBinaryBytes) {
|
|
161173
161211
|
return filePreviewV3Error("too_large", {
|
|
161174
161212
|
message: "Binary file is too large to preview.",
|
|
161175
161213
|
path: resolved.reportedPath,
|
|
161176
161214
|
sizeBytes: bytes.byteLength,
|
|
161177
|
-
limitBytes:
|
|
161215
|
+
limitBytes: limits.maxBinaryBytes
|
|
161216
|
+
});
|
|
161217
|
+
}
|
|
161218
|
+
const data = Buffer.from(bytes).toString("base64");
|
|
161219
|
+
if (sameMachine && data.length > FILE_PREVIEW_LOCAL_PAYLOAD_BUDGET_BYTES) {
|
|
161220
|
+
return filePreviewV3Error("too_large", {
|
|
161221
|
+
message: "Binary file is too large to preview.",
|
|
161222
|
+
path: resolved.reportedPath,
|
|
161223
|
+
sizeBytes: bytes.byteLength,
|
|
161224
|
+
limitBytes: FILE_PREVIEW_LOCAL_PAYLOAD_BUDGET_BYTES
|
|
161178
161225
|
});
|
|
161179
161226
|
}
|
|
161180
161227
|
const mimeType = getImageMimeTypeForPath(resolved.reportedPath);
|
|
@@ -161189,7 +161236,7 @@ ${entry.text}`).join("\n\n");
|
|
|
161189
161236
|
kind: "binary",
|
|
161190
161237
|
content: {
|
|
161191
161238
|
encoding: "base64",
|
|
161192
|
-
data
|
|
161239
|
+
data,
|
|
161193
161240
|
rawBytes: bytes.byteLength
|
|
161194
161241
|
},
|
|
161195
161242
|
mimeType: mimeType ?? "application/octet-stream",
|
|
@@ -161197,8 +161244,8 @@ ${entry.text}`).join("\n\n");
|
|
|
161197
161244
|
readonly: true
|
|
161198
161245
|
};
|
|
161199
161246
|
}
|
|
161200
|
-
async encodeTextContent(bytes, text) {
|
|
161201
|
-
if (bytes.byteLength <=
|
|
161247
|
+
async encodeTextContent(bytes, text, limits) {
|
|
161248
|
+
if (bytes.byteLength <= limits.plainTextBytes) {
|
|
161202
161249
|
return {
|
|
161203
161250
|
encoding: "utf8-plain",
|
|
161204
161251
|
text,
|
|
@@ -161206,8 +161253,8 @@ ${entry.text}`).join("\n\n");
|
|
|
161206
161253
|
};
|
|
161207
161254
|
}
|
|
161208
161255
|
const compressed = await gzipAsync(bytes);
|
|
161209
|
-
if (compressed.byteLength >
|
|
161210
|
-
throw new Error(`Compressed preview payload exceeds ${
|
|
161256
|
+
if (compressed.byteLength > limits.maxCompressedBytes) {
|
|
161257
|
+
throw new Error(`Compressed preview payload exceeds ${limits.maxCompressedBytes} bytes.`);
|
|
161211
161258
|
}
|
|
161212
161259
|
return {
|
|
161213
161260
|
encoding: "utf8-gzip-base64",
|
|
@@ -161217,6 +161264,10 @@ ${entry.text}`).join("\n\n");
|
|
|
161217
161264
|
};
|
|
161218
161265
|
}
|
|
161219
161266
|
}
|
|
161267
|
+
function measurePayloadOverflow(content, budgetBytes) {
|
|
161268
|
+
const encodedBytes = content.encoding === "utf8-plain" ? Buffer.byteLength(JSON.stringify(content.text), "utf8") : content.data.length;
|
|
161269
|
+
return encodedBytes > budgetBytes ? encodedBytes - budgetBytes : null;
|
|
161270
|
+
}
|
|
161220
161271
|
async function readFileWithinLimit(absolutePath, limitBytes) {
|
|
161221
161272
|
const handle = await open(absolutePath, "r");
|
|
161222
161273
|
try {
|
|
@@ -162435,10 +162486,22 @@ ${entry.text}`).join("\n\n");
|
|
|
162435
162486
|
try {
|
|
162436
162487
|
const stat2 = fs__default$1.fstatSync(fd);
|
|
162437
162488
|
if (!stat2.isFile()) return null;
|
|
162438
|
-
const
|
|
162439
|
-
|
|
162489
|
+
const readLimit = maxBytes + 1;
|
|
162490
|
+
let buffer2 = Buffer.alloc(Math.max(1, Math.min(readLimit, stat2.size + 1)));
|
|
162491
|
+
let bytesRead = 0;
|
|
162492
|
+
for (; ; ) {
|
|
162493
|
+
if (bytesRead >= readLimit) break;
|
|
162494
|
+
if (bytesRead === buffer2.length) {
|
|
162495
|
+
const grown = Buffer.alloc(Math.min(readLimit, buffer2.length * 2));
|
|
162496
|
+
buffer2.copy(grown, 0, 0, bytesRead);
|
|
162497
|
+
buffer2 = grown;
|
|
162498
|
+
}
|
|
162499
|
+
const read = fs__default$1.readSync(fd, buffer2, bytesRead, buffer2.length - bytesRead, bytesRead);
|
|
162500
|
+
if (read === 0) break;
|
|
162501
|
+
bytesRead += read;
|
|
162502
|
+
}
|
|
162440
162503
|
const truncated = bytesRead > maxBytes;
|
|
162441
|
-
const safeBytes =
|
|
162504
|
+
const safeBytes = Math.min(bytesRead, maxBytes);
|
|
162442
162505
|
const resolvedRelativePath = toProjectRelativePath(rootRealPath, targetRealPath);
|
|
162443
162506
|
if (allowBinary && isBinaryImagePath(resolvedRelativePath)) {
|
|
162444
162507
|
return {
|
|
@@ -165535,7 +165598,7 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
|
|
|
165535
165598
|
}
|
|
165536
165599
|
return trimmed2;
|
|
165537
165600
|
};
|
|
165538
|
-
const normalizeTarget = (target
|
|
165601
|
+
const normalizeTarget = (target) => {
|
|
165539
165602
|
if (target.protocol !== "http" && target.protocol !== "https") {
|
|
165540
165603
|
return {
|
|
165541
165604
|
code: "invalid_protocol",
|
|
@@ -165559,24 +165622,17 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
|
|
|
165559
165622
|
retryable: false
|
|
165560
165623
|
};
|
|
165561
165624
|
}
|
|
165562
|
-
if (
|
|
165625
|
+
if (targetClass !== "loopback") {
|
|
165563
165626
|
return {
|
|
165564
165627
|
code: "host_not_loopback",
|
|
165565
165628
|
message: `Preview target host must be loopback, got ${target.host}.`,
|
|
165566
165629
|
retryable: false
|
|
165567
165630
|
};
|
|
165568
165631
|
}
|
|
165569
|
-
if (
|
|
165632
|
+
if (host !== "localhost" && require$$0$9.isIP(host) === 0) {
|
|
165570
165633
|
return {
|
|
165571
|
-
code: "
|
|
165572
|
-
message: `
|
|
165573
|
-
retryable: false
|
|
165574
|
-
};
|
|
165575
|
-
}
|
|
165576
|
-
if (policy === "user-approved" && targetClass === "private-lan" && require$$0$9.isIP(host) === 0) {
|
|
165577
|
-
return {
|
|
165578
|
-
code: "target_resolution_failed",
|
|
165579
|
-
message: "Private LAN hostnames are not supported yet. Enter the target IP address.",
|
|
165634
|
+
code: "host_not_loopback",
|
|
165635
|
+
message: `Preview target host must be a loopback address or "localhost", got ${target.host}.`,
|
|
165580
165636
|
retryable: false
|
|
165581
165637
|
};
|
|
165582
165638
|
}
|
|
@@ -165759,7 +165815,7 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
|
|
|
165759
165815
|
};
|
|
165760
165816
|
}
|
|
165761
165817
|
const session2 = await this.getSessionMeta(request2.sessionId);
|
|
165762
|
-
const normalized = normalizeTarget(request2.target
|
|
165818
|
+
const normalized = normalizeTarget(request2.target);
|
|
165763
165819
|
const now2 = this.now();
|
|
165764
165820
|
const baseCandidate = {
|
|
165765
165821
|
status: "invalid",
|
|
@@ -165847,11 +165903,11 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
|
|
|
165847
165903
|
};
|
|
165848
165904
|
return this.failCreate(request2.sessionId, failure, now2, request2.target);
|
|
165849
165905
|
}
|
|
165850
|
-
const requestedTarget = normalizeTarget(request2.target
|
|
165906
|
+
const requestedTarget = normalizeTarget(request2.target);
|
|
165851
165907
|
if (isValidationFailure(requestedTarget)) {
|
|
165852
165908
|
return this.failCreate(request2.sessionId, requestedTarget, now2, request2.target);
|
|
165853
165909
|
}
|
|
165854
|
-
const approvedTarget = normalizeTarget(request2.approval.target
|
|
165910
|
+
const approvedTarget = normalizeTarget(request2.approval.target);
|
|
165855
165911
|
const actualTargetClass = classifyBrowserHostname(requestedTarget.host);
|
|
165856
165912
|
const approvedTargetClass = request2.approval.targetClass.replace("_", "-");
|
|
165857
165913
|
if (isValidationFailure(approvedTarget) || actualTargetClass !== approvedTargetClass || !sameTargetOrigin(approvedTarget, requestedTarget)) {
|
|
@@ -165862,7 +165918,7 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
|
|
|
165862
165918
|
};
|
|
165863
165919
|
return this.failCreate(request2.sessionId, failure, now2, requestedTarget);
|
|
165864
165920
|
}
|
|
165865
|
-
const validation2 = await this.validateTargetForCreate(requestedTarget
|
|
165921
|
+
const validation2 = await this.validateTargetForCreate(requestedTarget);
|
|
165866
165922
|
if ("failure" in validation2) {
|
|
165867
165923
|
return this.failCreate(request2.sessionId, validation2.failure, now2, requestedTarget);
|
|
165868
165924
|
}
|
|
@@ -166028,7 +166084,7 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
|
|
|
166028
166084
|
message: "Only the session initiator can open a managed local preview."
|
|
166029
166085
|
};
|
|
166030
166086
|
}
|
|
166031
|
-
const validation2 = await this.validateTargetForCreate(request2.target
|
|
166087
|
+
const validation2 = await this.validateTargetForCreate(request2.target);
|
|
166032
166088
|
if ("failure" in validation2) {
|
|
166033
166089
|
return {
|
|
166034
166090
|
type: "session/preview-endpoint-acquire_response",
|
|
@@ -166153,8 +166209,8 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
|
|
|
166153
166209
|
connection: revoked
|
|
166154
166210
|
};
|
|
166155
166211
|
}
|
|
166156
|
-
async validateTargetForCreate(target
|
|
166157
|
-
const normalized = normalizeTarget(target
|
|
166212
|
+
async validateTargetForCreate(target) {
|
|
166213
|
+
const normalized = normalizeTarget(target);
|
|
166158
166214
|
if (isValidationFailure(normalized)) {
|
|
166159
166215
|
return {
|
|
166160
166216
|
failure: normalized
|
|
@@ -172589,7 +172645,8 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
|
|
|
172589
172645
|
case "file/preview-local":
|
|
172590
172646
|
await assertOwner(request2.params.sessionId);
|
|
172591
172647
|
return await this.filePreviewService.previewFile(request2.params, {
|
|
172592
|
-
allowArbitraryPaths: true
|
|
172648
|
+
allowArbitraryPaths: true,
|
|
172649
|
+
sameMachine: true
|
|
172593
172650
|
});
|
|
172594
172651
|
case "session/cancel": {
|
|
172595
172652
|
const result = await this.executionService.cancelSession({
|
|
@@ -184787,7 +184844,8 @@ export PATH=${toSingleQuotedShellString(ghShimBinDir)}:"$PATH"
|
|
|
184787
184844
|
cliType: config2.agentCliType,
|
|
184788
184845
|
agentType: config2.agentType,
|
|
184789
184846
|
customAcp: config2.customAcp,
|
|
184790
|
-
runtimeOverrides: config2.runtimeOverrides
|
|
184847
|
+
runtimeOverrides: config2.runtimeOverrides,
|
|
184848
|
+
env: config2.env
|
|
184791
184849
|
});
|
|
184792
184850
|
signal.throwIfAborted();
|
|
184793
184851
|
const worktreeTarget = this.resolveSessionWorktreeTarget(config2);
|
|
@@ -185114,6 +185172,7 @@ export PATH=${toSingleQuotedShellString(ghShimBinDir)}:"$PATH"
|
|
|
185114
185172
|
agentType: config2.agentType,
|
|
185115
185173
|
customAcp: config2.customAcp,
|
|
185116
185174
|
runtimeOverrides: config2.runtimeOverrides,
|
|
185175
|
+
env: config2.env,
|
|
185117
185176
|
onManagedRuntimeProgress: (event) => {
|
|
185118
185177
|
config2.onPresencePhase?.("managed-runtime", formatManagedRuntimeProgressDetail(event));
|
|
185119
185178
|
if (event.phase === "complete" && !managedRuntimeReadyLogged) {
|
|
@@ -222226,7 +222285,7 @@ ${page}${helpTipBottom}${choiceDescription}${ansiEscapes.cursorHide}`;
|
|
|
222226
222285
|
data = createReviewBundleSnapshot(bundle);
|
|
222227
222286
|
}
|
|
222228
222287
|
const { injectReviewSnapshot } = await import("./chunks/index-VoI6Ds2-.js");
|
|
222229
|
-
const { resolveReviewViewerTemplate } = await import("./chunks/review-viewer-
|
|
222288
|
+
const { resolveReviewViewerTemplate } = await import("./chunks/review-viewer-BxVOWMjT.js").then(async (m) => {
|
|
222230
222289
|
await m.__tla;
|
|
222231
222290
|
return m;
|
|
222232
222291
|
});
|