lody 0.90.1 → 0.91.1
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-CtZMff5T.js → review-viewer-C_L6J8dc.js} +2 -2
- package/dist/claude-acp.js +54 -2
- package/dist/codex-acp.js +1 -1
- package/dist/deepseek-acp.js +438 -153
- package/dist/index.js +205 -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.1";
|
|
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()
|
|
@@ -114790,6 +114805,7 @@ ${incoming}`).output;
|
|
|
114790
114805
|
modelUsage: record$1(string$1(), ModelUsageSchema).optional()
|
|
114791
114806
|
});
|
|
114792
114807
|
const RateLimitWindowSchema = object$1({
|
|
114808
|
+
label: string$1().optional(),
|
|
114793
114809
|
usedPercent: number$4().min(0).max(100),
|
|
114794
114810
|
windowDurationSeconds: number$4().nonnegative().nullable(),
|
|
114795
114811
|
resetsAtEpochSeconds: number$4().int().positive().nullable()
|
|
@@ -126155,9 +126171,9 @@ ${error2.message}` : execaMessage;
|
|
|
126155
126171
|
highWaterMark
|
|
126156
126172
|
}));
|
|
126157
126173
|
}
|
|
126158
|
-
const version$7 = "1.
|
|
126174
|
+
const version$7 = "1.10.0";
|
|
126159
126175
|
const dependencies$1 = {
|
|
126160
|
-
"@openai/codex": "^0.
|
|
126176
|
+
"@openai/codex": "^0.153.4"
|
|
126161
126177
|
};
|
|
126162
126178
|
const codexPackageJson = {
|
|
126163
126179
|
version: version$7,
|
|
@@ -126267,37 +126283,37 @@ ${error2.message}` : execaMessage;
|
|
|
126267
126283
|
version: version$3,
|
|
126268
126284
|
artifacts: artifacts$1
|
|
126269
126285
|
};
|
|
126270
|
-
const version$2 = "0.
|
|
126286
|
+
const version$2 = "0.153.4";
|
|
126271
126287
|
const artifacts = {
|
|
126272
126288
|
"darwin-arm64": {
|
|
126273
126289
|
"fileName": "codex-package-aarch64-apple-darwin.tar.zst",
|
|
126274
|
-
"sha256": "
|
|
126275
|
-
"size":
|
|
126290
|
+
"sha256": "be8a1a895533664ba6f2f11bc30ac8dae3b8ce37a152684229148ad9a8c7d269",
|
|
126291
|
+
"size": 80691565
|
|
126276
126292
|
},
|
|
126277
126293
|
"darwin-x64": {
|
|
126278
126294
|
"fileName": "codex-package-x86_64-apple-darwin.tar.zst",
|
|
126279
|
-
"sha256": "
|
|
126280
|
-
"size":
|
|
126295
|
+
"sha256": "a673331d8a21023dca1ca66443c1a41421a3105e587339ea7f81a06a56d8dd9b",
|
|
126296
|
+
"size": 88316449
|
|
126281
126297
|
},
|
|
126282
126298
|
"linux-arm64": {
|
|
126283
126299
|
"fileName": "codex-package-aarch64-unknown-linux-musl.tar.zst",
|
|
126284
|
-
"sha256": "
|
|
126285
|
-
"size":
|
|
126300
|
+
"sha256": "01ce0d1c38aca1ccc0c67f7612160cef5d820b452e1093d3a6d28597bfebfdb6",
|
|
126301
|
+
"size": 85851511
|
|
126286
126302
|
},
|
|
126287
126303
|
"linux-x64": {
|
|
126288
126304
|
"fileName": "codex-package-x86_64-unknown-linux-musl.tar.zst",
|
|
126289
|
-
"sha256": "
|
|
126290
|
-
"size":
|
|
126305
|
+
"sha256": "2b5c00df5758d014c79910fdffed43f29a6cae73f37e92d5ec216543ca53e79e",
|
|
126306
|
+
"size": 92109110
|
|
126291
126307
|
},
|
|
126292
126308
|
"win32-arm64": {
|
|
126293
126309
|
"fileName": "codex-package-aarch64-pc-windows-msvc.tar.zst",
|
|
126294
|
-
"sha256": "
|
|
126295
|
-
"size":
|
|
126310
|
+
"sha256": "92ff19d1012c1934bb1f9c10bfe15ac9f0af308d2de15b91dfc0f59faf8a77ba",
|
|
126311
|
+
"size": 94420871
|
|
126296
126312
|
},
|
|
126297
126313
|
"win32-x64": {
|
|
126298
126314
|
"fileName": "codex-package-x86_64-pc-windows-msvc.tar.zst",
|
|
126299
|
-
"sha256": "
|
|
126300
|
-
"size":
|
|
126315
|
+
"sha256": "f06e52c803cb74fb5fe6d42dc0c3c53ecbbf6822ad0c9d0239a0304165209f29",
|
|
126316
|
+
"size": 102002466
|
|
126301
126317
|
}
|
|
126302
126318
|
};
|
|
126303
126319
|
const codexRuntimeManifestJson = {
|
|
@@ -127679,7 +127695,8 @@ ${error2.message}` : execaMessage;
|
|
|
127679
127695
|
return managedRuntimeVersion ? `builtin-grok-acp:${GROK_ACP_ADAPTER_VERSION}+official-grok:${managedRuntimeVersion}` : `${BUILTIN_GROK_CAPABILITY_SOURCE_VERSION}${runtimeOverrideSuffix}`;
|
|
127680
127696
|
}
|
|
127681
127697
|
if (input2.agentType === "deepseek") {
|
|
127682
|
-
|
|
127698
|
+
const baseUrl = input2.env?.[DEEPSEEK_HARNESS_BASE_URL_ENV];
|
|
127699
|
+
return baseUrl?.trim() ? `${DEEPSEEK_HARNESS_CAPABILITY_SOURCE_VERSION}+endpoint:${createHash("sha256").update(baseUrl).digest("hex").slice(0, 12)}` : DEEPSEEK_HARNESS_CAPABILITY_SOURCE_VERSION;
|
|
127683
127700
|
}
|
|
127684
127701
|
}
|
|
127685
127702
|
return `builtin:${input2.agentType}:unknown`;
|
|
@@ -129202,6 +129219,7 @@ ${fallbackStderrTail}` : errorMessage2;
|
|
|
129202
129219
|
agentType: options.agentType,
|
|
129203
129220
|
customAcp: options.customAcp,
|
|
129204
129221
|
runtimeOverrides: options.runtimeOverrides,
|
|
129222
|
+
env: options.env,
|
|
129205
129223
|
extraArgs: options.extraArgs,
|
|
129206
129224
|
onManagedRuntimeProgress: options.onManagedRuntimeProgress ? (event) => {
|
|
129207
129225
|
if (!options.signal?.aborted) {
|
|
@@ -137672,7 +137690,8 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
137672
137690
|
cliType: config2.agentCliType,
|
|
137673
137691
|
agentType: config2.agentType,
|
|
137674
137692
|
customAcp: config2.customAcp,
|
|
137675
|
-
runtimeOverrides: config2.runtimeOverrides
|
|
137693
|
+
runtimeOverrides: config2.runtimeOverrides,
|
|
137694
|
+
env: config2.env
|
|
137676
137695
|
});
|
|
137677
137696
|
const existing = await this.deps.workspaceDocument.getAcpCapabilities(this.deps.machineId, agentConfigId);
|
|
137678
137697
|
const availableCommands = capabilities.availableCommands !== void 0 ? capabilities.availableCommands : existing?.sourceVersion === sourceVersion ? existing.availableCommands : void 0;
|
|
@@ -137927,11 +137946,12 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
137927
137946
|
}
|
|
137928
137947
|
});
|
|
137929
137948
|
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({
|
|
137949
|
+
const capability = await this.deps.workspaceDocument.updateAcpCapabilities(this.deps.machineId, message.configId, message.cliType, message.agentType, modes, models, configOptions, availableCommands, sessionFork, capabilitySourceVersion ?? getAcpCapabilitySourceVersion({
|
|
137931
137950
|
cliType: message.cliType,
|
|
137932
137951
|
agentType: message.agentType,
|
|
137933
137952
|
customAcp: message.customAcp,
|
|
137934
|
-
runtimeOverrides: message.runtimeOverrides
|
|
137953
|
+
runtimeOverrides: message.runtimeOverrides,
|
|
137954
|
+
env: message.env
|
|
137935
137955
|
}), modelReasoningEfforts, acknowledgedSteer, {
|
|
137936
137956
|
signal: options.signal
|
|
137937
137957
|
});
|
|
@@ -137950,6 +137970,7 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
137950
137970
|
category: opt.category,
|
|
137951
137971
|
optionCount: opt.options.length
|
|
137952
137972
|
})),
|
|
137973
|
+
capability,
|
|
137953
137974
|
availableCommands
|
|
137954
137975
|
};
|
|
137955
137976
|
} catch (error2) {
|
|
@@ -149909,6 +149930,11 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
149909
149930
|
}
|
|
149910
149931
|
}
|
|
149911
149932
|
const PRICE_DATA = {
|
|
149933
|
+
"gpt-6-astra": {
|
|
149934
|
+
inputCostPerToken: 1e-5,
|
|
149935
|
+
cacheReadInputTokenCost: 1e-6,
|
|
149936
|
+
outputCostPerToken: 5e-5
|
|
149937
|
+
},
|
|
149912
149938
|
"gpt-5.6": {
|
|
149913
149939
|
inputCostPerToken: 5e-6,
|
|
149914
149940
|
cacheReadInputTokenCost: 5e-7,
|
|
@@ -161051,6 +161077,10 @@ ${entry.text}`).join("\n\n");
|
|
|
161051
161077
|
}
|
|
161052
161078
|
limits;
|
|
161053
161079
|
async previewFile(request2, options = {}) {
|
|
161080
|
+
const limits = options.sameMachine ? {
|
|
161081
|
+
...FILE_PREVIEW_V3_LOCAL_LIMITS,
|
|
161082
|
+
...this.deps.limits
|
|
161083
|
+
} : this.limits;
|
|
161054
161084
|
const workspace = await this.deps.resolveWorkspace(request2.sessionId);
|
|
161055
161085
|
if (!workspace.ok) {
|
|
161056
161086
|
return filePreviewV3Error(workspace.code, {
|
|
@@ -161081,7 +161111,7 @@ ${entry.text}`).join("\n\n");
|
|
|
161081
161111
|
}
|
|
161082
161112
|
const resolved = resolution.resolved;
|
|
161083
161113
|
const isImageByName = isBinaryImagePath(resolved.reportedPath);
|
|
161084
|
-
const limitBytes = Math.min(isImageByName ?
|
|
161114
|
+
const limitBytes = Math.min(isImageByName ? limits.maxBinaryBytes : limits.maxTextBytes, request2.maxBytes ?? Number.MAX_SAFE_INTEGER);
|
|
161085
161115
|
if (resolved.sizeBytes > limitBytes) {
|
|
161086
161116
|
return filePreviewV3Error("too_large", {
|
|
161087
161117
|
message: "File is too large to preview.",
|
|
@@ -161134,23 +161164,32 @@ ${entry.text}`).join("\n\n");
|
|
|
161134
161164
|
};
|
|
161135
161165
|
}
|
|
161136
161166
|
if (isImageByName || hasBinaryNul(bytes)) {
|
|
161137
|
-
return this.binaryOk(resolved, bytes, digest);
|
|
161167
|
+
return this.binaryOk(resolved, bytes, digest, limits, options.sameMachine === true);
|
|
161138
161168
|
}
|
|
161139
161169
|
let text;
|
|
161140
161170
|
try {
|
|
161141
161171
|
text = decodeUtf8(bytes);
|
|
161142
161172
|
} catch {
|
|
161143
|
-
return this.binaryOk(resolved, bytes, digest);
|
|
161173
|
+
return this.binaryOk(resolved, bytes, digest, limits, options.sameMachine === true);
|
|
161144
161174
|
}
|
|
161145
161175
|
let content;
|
|
161146
161176
|
try {
|
|
161147
|
-
content = await this.encodeTextContent(bytes, text);
|
|
161177
|
+
content = await this.encodeTextContent(bytes, text, limits);
|
|
161148
161178
|
} catch (error2) {
|
|
161149
161179
|
return filePreviewV3Error("too_large", {
|
|
161150
161180
|
message: formatErrorMessage(error2),
|
|
161151
161181
|
path: resolved.reportedPath,
|
|
161152
161182
|
sizeBytes: bytes.byteLength,
|
|
161153
|
-
limitBytes:
|
|
161183
|
+
limitBytes: limits.maxCompressedBytes
|
|
161184
|
+
});
|
|
161185
|
+
}
|
|
161186
|
+
const payloadOverflow = options.sameMachine ? measurePayloadOverflow(content, FILE_PREVIEW_LOCAL_PAYLOAD_BUDGET_BYTES) : null;
|
|
161187
|
+
if (payloadOverflow !== null) {
|
|
161188
|
+
return filePreviewV3Error("too_large", {
|
|
161189
|
+
message: "File is too large to preview.",
|
|
161190
|
+
path: resolved.reportedPath,
|
|
161191
|
+
sizeBytes: bytes.byteLength,
|
|
161192
|
+
limitBytes: FILE_PREVIEW_LOCAL_PAYLOAD_BUDGET_BYTES
|
|
161154
161193
|
});
|
|
161155
161194
|
}
|
|
161156
161195
|
return {
|
|
@@ -161168,13 +161207,22 @@ ${entry.text}`).join("\n\n");
|
|
|
161168
161207
|
readonly: true
|
|
161169
161208
|
};
|
|
161170
161209
|
}
|
|
161171
|
-
binaryOk(resolved, bytes, digest) {
|
|
161172
|
-
if (bytes.byteLength >
|
|
161210
|
+
binaryOk(resolved, bytes, digest, limits, sameMachine) {
|
|
161211
|
+
if (bytes.byteLength > limits.maxBinaryBytes) {
|
|
161173
161212
|
return filePreviewV3Error("too_large", {
|
|
161174
161213
|
message: "Binary file is too large to preview.",
|
|
161175
161214
|
path: resolved.reportedPath,
|
|
161176
161215
|
sizeBytes: bytes.byteLength,
|
|
161177
|
-
limitBytes:
|
|
161216
|
+
limitBytes: limits.maxBinaryBytes
|
|
161217
|
+
});
|
|
161218
|
+
}
|
|
161219
|
+
const data = Buffer.from(bytes).toString("base64");
|
|
161220
|
+
if (sameMachine && data.length > FILE_PREVIEW_LOCAL_PAYLOAD_BUDGET_BYTES) {
|
|
161221
|
+
return filePreviewV3Error("too_large", {
|
|
161222
|
+
message: "Binary file is too large to preview.",
|
|
161223
|
+
path: resolved.reportedPath,
|
|
161224
|
+
sizeBytes: bytes.byteLength,
|
|
161225
|
+
limitBytes: FILE_PREVIEW_LOCAL_PAYLOAD_BUDGET_BYTES
|
|
161178
161226
|
});
|
|
161179
161227
|
}
|
|
161180
161228
|
const mimeType = getImageMimeTypeForPath(resolved.reportedPath);
|
|
@@ -161189,7 +161237,7 @@ ${entry.text}`).join("\n\n");
|
|
|
161189
161237
|
kind: "binary",
|
|
161190
161238
|
content: {
|
|
161191
161239
|
encoding: "base64",
|
|
161192
|
-
data
|
|
161240
|
+
data,
|
|
161193
161241
|
rawBytes: bytes.byteLength
|
|
161194
161242
|
},
|
|
161195
161243
|
mimeType: mimeType ?? "application/octet-stream",
|
|
@@ -161197,8 +161245,8 @@ ${entry.text}`).join("\n\n");
|
|
|
161197
161245
|
readonly: true
|
|
161198
161246
|
};
|
|
161199
161247
|
}
|
|
161200
|
-
async encodeTextContent(bytes, text) {
|
|
161201
|
-
if (bytes.byteLength <=
|
|
161248
|
+
async encodeTextContent(bytes, text, limits) {
|
|
161249
|
+
if (bytes.byteLength <= limits.plainTextBytes) {
|
|
161202
161250
|
return {
|
|
161203
161251
|
encoding: "utf8-plain",
|
|
161204
161252
|
text,
|
|
@@ -161206,8 +161254,8 @@ ${entry.text}`).join("\n\n");
|
|
|
161206
161254
|
};
|
|
161207
161255
|
}
|
|
161208
161256
|
const compressed = await gzipAsync(bytes);
|
|
161209
|
-
if (compressed.byteLength >
|
|
161210
|
-
throw new Error(`Compressed preview payload exceeds ${
|
|
161257
|
+
if (compressed.byteLength > limits.maxCompressedBytes) {
|
|
161258
|
+
throw new Error(`Compressed preview payload exceeds ${limits.maxCompressedBytes} bytes.`);
|
|
161211
161259
|
}
|
|
161212
161260
|
return {
|
|
161213
161261
|
encoding: "utf8-gzip-base64",
|
|
@@ -161217,6 +161265,10 @@ ${entry.text}`).join("\n\n");
|
|
|
161217
161265
|
};
|
|
161218
161266
|
}
|
|
161219
161267
|
}
|
|
161268
|
+
function measurePayloadOverflow(content, budgetBytes) {
|
|
161269
|
+
const encodedBytes = content.encoding === "utf8-plain" ? Buffer.byteLength(JSON.stringify(content.text), "utf8") : content.data.length;
|
|
161270
|
+
return encodedBytes > budgetBytes ? encodedBytes - budgetBytes : null;
|
|
161271
|
+
}
|
|
161220
161272
|
async function readFileWithinLimit(absolutePath, limitBytes) {
|
|
161221
161273
|
const handle = await open(absolutePath, "r");
|
|
161222
161274
|
try {
|
|
@@ -162435,10 +162487,22 @@ ${entry.text}`).join("\n\n");
|
|
|
162435
162487
|
try {
|
|
162436
162488
|
const stat2 = fs__default$1.fstatSync(fd);
|
|
162437
162489
|
if (!stat2.isFile()) return null;
|
|
162438
|
-
const
|
|
162439
|
-
|
|
162490
|
+
const readLimit = maxBytes + 1;
|
|
162491
|
+
let buffer2 = Buffer.alloc(Math.max(1, Math.min(readLimit, stat2.size + 1)));
|
|
162492
|
+
let bytesRead = 0;
|
|
162493
|
+
for (; ; ) {
|
|
162494
|
+
if (bytesRead >= readLimit) break;
|
|
162495
|
+
if (bytesRead === buffer2.length) {
|
|
162496
|
+
const grown = Buffer.alloc(Math.min(readLimit, buffer2.length * 2));
|
|
162497
|
+
buffer2.copy(grown, 0, 0, bytesRead);
|
|
162498
|
+
buffer2 = grown;
|
|
162499
|
+
}
|
|
162500
|
+
const read = fs__default$1.readSync(fd, buffer2, bytesRead, buffer2.length - bytesRead, bytesRead);
|
|
162501
|
+
if (read === 0) break;
|
|
162502
|
+
bytesRead += read;
|
|
162503
|
+
}
|
|
162440
162504
|
const truncated = bytesRead > maxBytes;
|
|
162441
|
-
const safeBytes =
|
|
162505
|
+
const safeBytes = Math.min(bytesRead, maxBytes);
|
|
162442
162506
|
const resolvedRelativePath = toProjectRelativePath(rootRealPath, targetRealPath);
|
|
162443
162507
|
if (allowBinary && isBinaryImagePath(resolvedRelativePath)) {
|
|
162444
162508
|
return {
|
|
@@ -165535,7 +165599,7 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
|
|
|
165535
165599
|
}
|
|
165536
165600
|
return trimmed2;
|
|
165537
165601
|
};
|
|
165538
|
-
const normalizeTarget = (target
|
|
165602
|
+
const normalizeTarget = (target) => {
|
|
165539
165603
|
if (target.protocol !== "http" && target.protocol !== "https") {
|
|
165540
165604
|
return {
|
|
165541
165605
|
code: "invalid_protocol",
|
|
@@ -165559,24 +165623,17 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
|
|
|
165559
165623
|
retryable: false
|
|
165560
165624
|
};
|
|
165561
165625
|
}
|
|
165562
|
-
if (
|
|
165626
|
+
if (targetClass !== "loopback") {
|
|
165563
165627
|
return {
|
|
165564
165628
|
code: "host_not_loopback",
|
|
165565
165629
|
message: `Preview target host must be loopback, got ${target.host}.`,
|
|
165566
165630
|
retryable: false
|
|
165567
165631
|
};
|
|
165568
165632
|
}
|
|
165569
|
-
if (
|
|
165633
|
+
if (host !== "localhost" && require$$0$9.isIP(host) === 0) {
|
|
165570
165634
|
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.",
|
|
165635
|
+
code: "host_not_loopback",
|
|
165636
|
+
message: `Preview target host must be a loopback address or "localhost", got ${target.host}.`,
|
|
165580
165637
|
retryable: false
|
|
165581
165638
|
};
|
|
165582
165639
|
}
|
|
@@ -165759,7 +165816,7 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
|
|
|
165759
165816
|
};
|
|
165760
165817
|
}
|
|
165761
165818
|
const session2 = await this.getSessionMeta(request2.sessionId);
|
|
165762
|
-
const normalized = normalizeTarget(request2.target
|
|
165819
|
+
const normalized = normalizeTarget(request2.target);
|
|
165763
165820
|
const now2 = this.now();
|
|
165764
165821
|
const baseCandidate = {
|
|
165765
165822
|
status: "invalid",
|
|
@@ -165847,11 +165904,11 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
|
|
|
165847
165904
|
};
|
|
165848
165905
|
return this.failCreate(request2.sessionId, failure, now2, request2.target);
|
|
165849
165906
|
}
|
|
165850
|
-
const requestedTarget = normalizeTarget(request2.target
|
|
165907
|
+
const requestedTarget = normalizeTarget(request2.target);
|
|
165851
165908
|
if (isValidationFailure(requestedTarget)) {
|
|
165852
165909
|
return this.failCreate(request2.sessionId, requestedTarget, now2, request2.target);
|
|
165853
165910
|
}
|
|
165854
|
-
const approvedTarget = normalizeTarget(request2.approval.target
|
|
165911
|
+
const approvedTarget = normalizeTarget(request2.approval.target);
|
|
165855
165912
|
const actualTargetClass = classifyBrowserHostname(requestedTarget.host);
|
|
165856
165913
|
const approvedTargetClass = request2.approval.targetClass.replace("_", "-");
|
|
165857
165914
|
if (isValidationFailure(approvedTarget) || actualTargetClass !== approvedTargetClass || !sameTargetOrigin(approvedTarget, requestedTarget)) {
|
|
@@ -165862,7 +165919,7 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
|
|
|
165862
165919
|
};
|
|
165863
165920
|
return this.failCreate(request2.sessionId, failure, now2, requestedTarget);
|
|
165864
165921
|
}
|
|
165865
|
-
const validation2 = await this.validateTargetForCreate(requestedTarget
|
|
165922
|
+
const validation2 = await this.validateTargetForCreate(requestedTarget);
|
|
165866
165923
|
if ("failure" in validation2) {
|
|
165867
165924
|
return this.failCreate(request2.sessionId, validation2.failure, now2, requestedTarget);
|
|
165868
165925
|
}
|
|
@@ -166028,7 +166085,7 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
|
|
|
166028
166085
|
message: "Only the session initiator can open a managed local preview."
|
|
166029
166086
|
};
|
|
166030
166087
|
}
|
|
166031
|
-
const validation2 = await this.validateTargetForCreate(request2.target
|
|
166088
|
+
const validation2 = await this.validateTargetForCreate(request2.target);
|
|
166032
166089
|
if ("failure" in validation2) {
|
|
166033
166090
|
return {
|
|
166034
166091
|
type: "session/preview-endpoint-acquire_response",
|
|
@@ -166153,8 +166210,8 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
|
|
|
166153
166210
|
connection: revoked
|
|
166154
166211
|
};
|
|
166155
166212
|
}
|
|
166156
|
-
async validateTargetForCreate(target
|
|
166157
|
-
const normalized = normalizeTarget(target
|
|
166213
|
+
async validateTargetForCreate(target) {
|
|
166214
|
+
const normalized = normalizeTarget(target);
|
|
166158
166215
|
if (isValidationFailure(normalized)) {
|
|
166159
166216
|
return {
|
|
166160
166217
|
failure: normalized
|
|
@@ -172589,7 +172646,8 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
|
|
|
172589
172646
|
case "file/preview-local":
|
|
172590
172647
|
await assertOwner(request2.params.sessionId);
|
|
172591
172648
|
return await this.filePreviewService.previewFile(request2.params, {
|
|
172592
|
-
allowArbitraryPaths: true
|
|
172649
|
+
allowArbitraryPaths: true,
|
|
172650
|
+
sameMachine: true
|
|
172593
172651
|
});
|
|
172594
172652
|
case "session/cancel": {
|
|
172595
172653
|
const result = await this.executionService.cancelSession({
|
|
@@ -184787,7 +184845,8 @@ export PATH=${toSingleQuotedShellString(ghShimBinDir)}:"$PATH"
|
|
|
184787
184845
|
cliType: config2.agentCliType,
|
|
184788
184846
|
agentType: config2.agentType,
|
|
184789
184847
|
customAcp: config2.customAcp,
|
|
184790
|
-
runtimeOverrides: config2.runtimeOverrides
|
|
184848
|
+
runtimeOverrides: config2.runtimeOverrides,
|
|
184849
|
+
env: config2.env
|
|
184791
184850
|
});
|
|
184792
184851
|
signal.throwIfAborted();
|
|
184793
184852
|
const worktreeTarget = this.resolveSessionWorktreeTarget(config2);
|
|
@@ -185114,6 +185173,7 @@ export PATH=${toSingleQuotedShellString(ghShimBinDir)}:"$PATH"
|
|
|
185114
185173
|
agentType: config2.agentType,
|
|
185115
185174
|
customAcp: config2.customAcp,
|
|
185116
185175
|
runtimeOverrides: config2.runtimeOverrides,
|
|
185176
|
+
env: config2.env,
|
|
185117
185177
|
onManagedRuntimeProgress: (event) => {
|
|
185118
185178
|
config2.onPresencePhase?.("managed-runtime", formatManagedRuntimeProgressDetail(event));
|
|
185119
185179
|
if (event.phase === "complete" && !managedRuntimeReadyLogged) {
|
|
@@ -222226,7 +222286,7 @@ ${page}${helpTipBottom}${choiceDescription}${ansiEscapes.cursorHide}`;
|
|
|
222226
222286
|
data = createReviewBundleSnapshot(bundle);
|
|
222227
222287
|
}
|
|
222228
222288
|
const { injectReviewSnapshot } = await import("./chunks/index-VoI6Ds2-.js");
|
|
222229
|
-
const { resolveReviewViewerTemplate } = await import("./chunks/review-viewer-
|
|
222289
|
+
const { resolveReviewViewerTemplate } = await import("./chunks/review-viewer-C_L6J8dc.js").then(async (m) => {
|
|
222230
222290
|
await m.__tla;
|
|
222231
222291
|
return m;
|
|
222232
222292
|
});
|