@cmmd-center/forge 0.13.65 → 0.13.66
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/bin.cjs +33 -11
- package/dist/bin.mjs +57 -35
- package/dist/client/assets/{DiffPanel-DUE5CUPF.js → DiffPanel-C3dfPMJX.js} +2 -2
- package/dist/client/assets/{DiffPanel.logic-DkmY3FZZ.js → DiffPanel.logic-N-_02IKx.js} +2 -2
- package/dist/client/assets/{DiffPanelShell-DH6nYRyX.js → DiffPanelShell-COwQln6y.js} +3 -3
- package/dist/client/assets/{DiffWorkerPoolProvider-DTK8o_hI.js → DiffWorkerPoolProvider-CZp4PR1Z.js} +2 -2
- package/dist/client/assets/{PullRequestCodePanel-BIjtTKuP.js → PullRequestCodePanel-1kcdbX1w.js} +2 -2
- package/dist/client/assets/{Virtualizer-CPNxYGbV.js → Virtualizer-BYyEY2Dk.js} +2 -2
- package/dist/client/assets/{index-Df09-gdQ.js → index-D5-o0PGO.js} +60 -60
- package/dist/client/index.html +4 -4
- package/dist/forge-build.json +1 -1
- package/dist/{open-yHTUkd2Y.mjs → open-2-reBrpv.mjs} +3 -3
- package/package.json +1 -1
package/dist/bin.cjs
CHANGED
|
@@ -26977,6 +26977,24 @@ const RelayWsRpcGroup = WsRpcGroup.middleware(RelayAuthorizationMiddleware).midd
|
|
|
26977
26977
|
*/
|
|
26978
26978
|
const SessionWsRpcGroup = WsRpcGroup.middleware(SessionAuthorizationMiddleware);
|
|
26979
26979
|
//#endregion
|
|
26980
|
+
//#region ../../packages/contracts/src/cmmdRuntimeSpriteIdentity.ts
|
|
26981
|
+
function nonEmptyString$3(value) {
|
|
26982
|
+
return typeof value === "string" && value.length > 0 ? value : null;
|
|
26983
|
+
}
|
|
26984
|
+
/**
|
|
26985
|
+
* Resolve the operational Sprite name for provision / connect / readiness gates.
|
|
26986
|
+
*
|
|
26987
|
+
* @see CmmdRuntimeSpriteIdentitySource for the dual-contract rules.
|
|
26988
|
+
*/
|
|
26989
|
+
function resolveCmmdRuntimeSpriteName(runtime) {
|
|
26990
|
+
if (Object.hasOwn(runtime, "spriteName")) return nonEmptyString$3(runtime.spriteName);
|
|
26991
|
+
return nonEmptyString$3(runtime.flyMachineId);
|
|
26992
|
+
}
|
|
26993
|
+
/** True when the payload carries an operational Sprite name after dual-read. */
|
|
26994
|
+
function hasCmmdRuntimeSpriteIdentity(runtime) {
|
|
26995
|
+
return resolveCmmdRuntimeSpriteName(runtime) !== null;
|
|
26996
|
+
}
|
|
26997
|
+
//#endregion
|
|
26980
26998
|
//#region ../../packages/contracts/src/cmmdRuntimeThreadLifecycle.ts
|
|
26981
26999
|
const FORGE_LIFECYCLE_METADATA_KEY = "forgeLifecycle";
|
|
26982
27000
|
const FORGE_LIFECYCLE_SCHEMA_VERSION = 1;
|
|
@@ -66257,7 +66275,7 @@ function normalizeNumberish(value) {
|
|
|
66257
66275
|
}
|
|
66258
66276
|
//#endregion
|
|
66259
66277
|
//#region package.json
|
|
66260
|
-
var version$1 = "0.13.
|
|
66278
|
+
var version$1 = "0.13.66";
|
|
66261
66279
|
//#endregion
|
|
66262
66280
|
//#region src/sentry.ts
|
|
66263
66281
|
const SERVER_APP_NAME = "forge-server";
|
|
@@ -151623,7 +151641,9 @@ const SERVER_ONLY_PROVIDER_CHILD_ENV_KEYS = new Set([
|
|
|
151623
151641
|
"FORGE_CMMD_RUNTIME_PUBLIC_KEY",
|
|
151624
151642
|
"FORGE_PROVIDER_PROXY_URL",
|
|
151625
151643
|
"FORGE_PROXY_HMAC_SECRET",
|
|
151626
|
-
"FORGE_PPROXY_HMAC_SECRET"
|
|
151644
|
+
"FORGE_PPROXY_HMAC_SECRET",
|
|
151645
|
+
"SPRITE_API_TOKEN",
|
|
151646
|
+
"SPRITES_TOKEN"
|
|
151627
151647
|
]);
|
|
151628
151648
|
function scrubForgeProviderChildEnvSecrets(env) {
|
|
151629
151649
|
const scrubbed = { ...env };
|
|
@@ -298380,7 +298400,7 @@ function resolveBuildCommitFromEnv(env) {
|
|
|
298380
298400
|
* environment descriptor down instead of reporting an honest "unknown".
|
|
298381
298401
|
*/
|
|
298382
298402
|
function readBakedBuildCommit() {
|
|
298383
|
-
return "
|
|
298403
|
+
return "00be113a2d44d7842004edc5cef20ef7e4f24518";
|
|
298384
298404
|
}
|
|
298385
298405
|
async function resolveServerBuildCommit(input) {
|
|
298386
298406
|
if (isFullCommitSha(input.baked)) return input.baked;
|
|
@@ -311053,7 +311073,10 @@ function isLegacyRuntimeConnection(value, expectedRuntimeId) {
|
|
|
311053
311073
|
return [
|
|
311054
311074
|
runtime.runtimeId === expectedRuntimeId,
|
|
311055
311075
|
runtime.runtimeCapabilityMode === "legacy_env",
|
|
311056
|
-
|
|
311076
|
+
hasCmmdRuntimeSpriteIdentity({
|
|
311077
|
+
...Object.hasOwn(runtime, "spriteName") ? { spriteName: typeof runtime.spriteName === "string" ? runtime.spriteName : null } : {},
|
|
311078
|
+
...Object.hasOwn(runtime, "flyMachineId") ? { flyMachineId: typeof runtime.flyMachineId === "string" ? runtime.flyMachineId : null } : {}
|
|
311079
|
+
}),
|
|
311057
311080
|
!Object.hasOwn(runtime, "brokerAuthorityAttestedForgeGitCommit"),
|
|
311058
311081
|
runtime.brokerAuthorityAttestedImageRef === null,
|
|
311059
311082
|
runtime.brokerAuthorityAttestedImageVersion === null,
|
|
@@ -321168,7 +321191,7 @@ const execFilePromise = (0, node_util.promisify)(node_child_process.execFile);
|
|
|
321168
321191
|
const COMMAND_TIMEOUT_MS = 15e3;
|
|
321169
321192
|
const MAX_COMMAND_OUTPUT_BYTES = 32e3;
|
|
321170
321193
|
const MAX_PROCESSES = 80;
|
|
321171
|
-
const sanitizeRuntimeDiagnosticText = (value) => value.replace(/\b(OPENAI_API_KEY|ANTHROPIC_API_KEY|ANTHROPIC_AUTH_TOKEN|FLY_ACCESS_TOKEN|FLY_API_TOKEN|GITHUB_TOKEN|FORGE_CMMD_RUNTIME_GRANT_TOKEN|FORGE_NPM_PROXY_TOKEN|FORGE_PROXY_HMAC_SECRET|FORGE_PPROXY_HMAC_SECRET|CMMD_FORGE_RUNTIME_TICKET_PRIVATE_KEY|CMMD_FORGE_RUNTIME_BROWSER_WEBRTC_ICE_SERVERS)=\S+/g, "$1=[redacted]").replace(/\bforge_proxy_[A-Za-z0-9._-]+/g, "forge_proxy_[redacted]").replace(/\bcmmd_provider_[A-Za-z0-9._-]+/g, "cmmd_provider_[redacted]").replace(/\bruntime-grant\.[A-Za-z0-9._-]+/g, "runtime-grant.[redacted]").replace(/\b(sk|ghp|github_pat)_[A-Za-z0-9._-]+/g, "$1_[redacted]").replace(/\bsk-[A-Za-z0-9._-]+/g, "sk-[redacted]");
|
|
321194
|
+
const sanitizeRuntimeDiagnosticText = (value) => value.replace(/\b(OPENAI_API_KEY|ANTHROPIC_API_KEY|ANTHROPIC_AUTH_TOKEN|FLY_ACCESS_TOKEN|FLY_API_TOKEN|SPRITES_TOKEN|SPRITE_API_TOKEN|GITHUB_TOKEN|FORGE_CMMD_RUNTIME_GRANT_TOKEN|FORGE_NPM_PROXY_TOKEN|FORGE_PROXY_HMAC_SECRET|FORGE_PPROXY_HMAC_SECRET|CMMD_FORGE_RUNTIME_TICKET_PRIVATE_KEY|CMMD_FORGE_RUNTIME_BROWSER_WEBRTC_ICE_SERVERS)=\S+/g, "$1=[redacted]").replace(/\bforge_proxy_[A-Za-z0-9._-]+/g, "forge_proxy_[redacted]").replace(/\bcmmd_provider_[A-Za-z0-9._-]+/g, "cmmd_provider_[redacted]").replace(/\bruntime-grant\.[A-Za-z0-9._-]+/g, "runtime-grant.[redacted]").replace(/\b(sk|ghp|github_pat)_[A-Za-z0-9._-]+/g, "$1_[redacted]").replace(/\bsk-[A-Za-z0-9._-]+/g, "sk-[redacted]");
|
|
321172
321195
|
const sanitizeRuntimeDiagnosticValue = (value) => {
|
|
321173
321196
|
const trimmed = value?.trim();
|
|
321174
321197
|
if (!trimmed) return void 0;
|
|
@@ -321215,16 +321238,15 @@ const parseProcessList = (output) => output.split("\n").map((line) => line.trim(
|
|
|
321215
321238
|
if (!Number.isFinite(pid) || !Number.isFinite(ppid) || !stat || !command) return void 0;
|
|
321216
321239
|
const cpuPercent = parseMeasurement(cpuRaw);
|
|
321217
321240
|
const rssKb = parseMeasurement(rssRaw);
|
|
321218
|
-
const
|
|
321219
|
-
if (cpuPercent !== null) measurements.cpuPercent = cpuPercent;
|
|
321220
|
-
if (rssKb !== null) measurements.rssKb = rssKb;
|
|
321221
|
-
return {
|
|
321241
|
+
const parsed = {
|
|
321222
321242
|
pid,
|
|
321223
321243
|
ppid,
|
|
321224
321244
|
stat: sanitizeRuntimeDiagnosticText(stat),
|
|
321225
|
-
command: sanitizeRuntimeDiagnosticText(command)
|
|
321226
|
-
...measurements
|
|
321245
|
+
command: sanitizeRuntimeDiagnosticText(command)
|
|
321227
321246
|
};
|
|
321247
|
+
if (cpuPercent !== null) parsed.cpuPercent = cpuPercent;
|
|
321248
|
+
if (rssKb !== null) parsed.rssKb = rssKb;
|
|
321249
|
+
return parsed;
|
|
321228
321250
|
}).filter((process) => process !== void 0).slice(0, MAX_PROCESSES);
|
|
321229
321251
|
/**
|
|
321230
321252
|
* The process tree, or the reason there isn't one.
|
package/dist/bin.mjs
CHANGED
|
@@ -23,7 +23,7 @@ import { createCipheriv, createDecipheriv, createHash, createHmac, createPublicK
|
|
|
23
23
|
import * as FS$1 from "node:fs";
|
|
24
24
|
import fs, { accessSync, chmodSync, constants, createReadStream, existsSync, mkdirSync, mkdtempSync, promises, readFile, readFileSync, readdir, readdirSync, realpathSync, rmSync, statSync, unlinkSync, writeFileSync } from "node:fs";
|
|
25
25
|
import * as NodeOS from "node:os";
|
|
26
|
-
import
|
|
26
|
+
import $U, { homedir, networkInterfaces, tmpdir } from "node:os";
|
|
27
27
|
import * as Path$1 from "node:path";
|
|
28
28
|
import path, { basename, delimiter, dirname, extname, isAbsolute, join, posix, relative, resolve, sep } from "node:path";
|
|
29
29
|
import { pathToFileURL } from "node:url";
|
|
@@ -26689,6 +26689,24 @@ const RelayWsRpcGroup = WsRpcGroup.middleware(RelayAuthorizationMiddleware).midd
|
|
|
26689
26689
|
*/
|
|
26690
26690
|
const SessionWsRpcGroup = WsRpcGroup.middleware(SessionAuthorizationMiddleware);
|
|
26691
26691
|
//#endregion
|
|
26692
|
+
//#region ../../packages/contracts/src/cmmdRuntimeSpriteIdentity.ts
|
|
26693
|
+
function nonEmptyString$3(value) {
|
|
26694
|
+
return typeof value === "string" && value.length > 0 ? value : null;
|
|
26695
|
+
}
|
|
26696
|
+
/**
|
|
26697
|
+
* Resolve the operational Sprite name for provision / connect / readiness gates.
|
|
26698
|
+
*
|
|
26699
|
+
* @see CmmdRuntimeSpriteIdentitySource for the dual-contract rules.
|
|
26700
|
+
*/
|
|
26701
|
+
function resolveCmmdRuntimeSpriteName(runtime) {
|
|
26702
|
+
if (Object.hasOwn(runtime, "spriteName")) return nonEmptyString$3(runtime.spriteName);
|
|
26703
|
+
return nonEmptyString$3(runtime.flyMachineId);
|
|
26704
|
+
}
|
|
26705
|
+
/** True when the payload carries an operational Sprite name after dual-read. */
|
|
26706
|
+
function hasCmmdRuntimeSpriteIdentity(runtime) {
|
|
26707
|
+
return resolveCmmdRuntimeSpriteName(runtime) !== null;
|
|
26708
|
+
}
|
|
26709
|
+
//#endregion
|
|
26692
26710
|
//#region ../../packages/contracts/src/cmmdRuntimeThreadLifecycle.ts
|
|
26693
26711
|
const FORGE_LIFECYCLE_METADATA_KEY = "forgeLifecycle";
|
|
26694
26712
|
const FORGE_LIFECYCLE_SCHEMA_VERSION = 1;
|
|
@@ -50573,7 +50591,7 @@ function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
|
|
|
50573
50591
|
const min = forceColor || 0;
|
|
50574
50592
|
if (env.TERM === "dumb") return min;
|
|
50575
50593
|
if (process$1.platform === "win32") {
|
|
50576
|
-
const osRelease =
|
|
50594
|
+
const osRelease = $U.release().split(".");
|
|
50577
50595
|
if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) return Number(osRelease[2]) >= 14931 ? 3 : 2;
|
|
50578
50596
|
return 1;
|
|
50579
50597
|
}
|
|
@@ -53016,7 +53034,7 @@ var require_ProcessDetector = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
53016
53034
|
exports.processDetector = void 0;
|
|
53017
53035
|
const api_1 = (init_esm$1(), __toCommonJS(esm_exports$1));
|
|
53018
53036
|
const semconv_1 = require_semconv$1();
|
|
53019
|
-
const os$
|
|
53037
|
+
const os$3 = __require("os");
|
|
53020
53038
|
/**
|
|
53021
53039
|
* ProcessDetector will be used to detect the resources related current process running
|
|
53022
53040
|
* and being instrumented from the NodeJS Process module.
|
|
@@ -53038,7 +53056,7 @@ var require_ProcessDetector = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
53038
53056
|
};
|
|
53039
53057
|
if (process.argv.length > 1) attributes[semconv_1.ATTR_PROCESS_COMMAND] = process.argv[1];
|
|
53040
53058
|
try {
|
|
53041
|
-
const userInfo = os$
|
|
53059
|
+
const userInfo = os$3.userInfo();
|
|
53042
53060
|
attributes[semconv_1.ATTR_PROCESS_OWNER] = userInfo.username;
|
|
53043
53061
|
} catch (e) {
|
|
53044
53062
|
api_1.diag.debug(`error obtaining process owner: ${e}`);
|
|
@@ -65961,7 +65979,7 @@ function normalizeNumberish(value) {
|
|
|
65961
65979
|
}
|
|
65962
65980
|
//#endregion
|
|
65963
65981
|
//#region package.json
|
|
65964
|
-
var version$1 = "0.13.
|
|
65982
|
+
var version$1 = "0.13.66";
|
|
65965
65983
|
//#endregion
|
|
65966
65984
|
//#region src/sentry.ts
|
|
65967
65985
|
const SERVER_APP_NAME = "forge-server";
|
|
@@ -75844,7 +75862,7 @@ var require_node_gyp_build = /* @__PURE__ */ __commonJSMin(((exports, module) =>
|
|
|
75844
75862
|
var fs$6 = __require("fs");
|
|
75845
75863
|
var path$5 = __require("path");
|
|
75846
75864
|
var url$1 = __require("url");
|
|
75847
|
-
var os$
|
|
75865
|
+
var os$2 = __require("os");
|
|
75848
75866
|
var runtimeRequire = typeof __webpack_require__ === "function" ? __non_webpack_require__ : __require;
|
|
75849
75867
|
var vars = process.config && process.config.variables || {};
|
|
75850
75868
|
var prebuildsOnly = !!process.env.PREBUILDS_ONLY;
|
|
@@ -75852,8 +75870,8 @@ var require_node_gyp_build = /* @__PURE__ */ __commonJSMin(((exports, module) =>
|
|
|
75852
75870
|
var abi = versions.modules;
|
|
75853
75871
|
if (versions.deno || process.isBun) abi = "unsupported";
|
|
75854
75872
|
var runtime = isElectron() ? "electron" : isNwjs() ? "node-webkit" : "node";
|
|
75855
|
-
var arch = process.env.npm_config_arch || os$
|
|
75856
|
-
var platform = process.env.npm_config_platform || os$
|
|
75873
|
+
var arch = process.env.npm_config_arch || os$2.arch();
|
|
75874
|
+
var platform = process.env.npm_config_platform || os$2.platform();
|
|
75857
75875
|
var libc = process.env.LIBC || (isMusl(platform) ? "musl" : "glibc");
|
|
75858
75876
|
var armv = process.env.ARM_VERSION || (arch === "arm64" ? "8" : vars.arm_version) || "";
|
|
75859
75877
|
var uv = (versions.uv || "").split(".")[0];
|
|
@@ -93662,7 +93680,7 @@ const launchDetached = (launch) => gen(function* () {
|
|
|
93662
93680
|
});
|
|
93663
93681
|
const OpenLive = effect(Open, gen(function* () {
|
|
93664
93682
|
const open = yield* tryPromise({
|
|
93665
|
-
try: () => import("./open-
|
|
93683
|
+
try: () => import("./open-2-reBrpv.mjs"),
|
|
93666
93684
|
catch: (cause) => new OpenError$1({
|
|
93667
93685
|
message: "failed to load browser opener",
|
|
93668
93686
|
cause
|
|
@@ -151196,7 +151214,9 @@ const SERVER_ONLY_PROVIDER_CHILD_ENV_KEYS = new Set([
|
|
|
151196
151214
|
"FORGE_CMMD_RUNTIME_PUBLIC_KEY",
|
|
151197
151215
|
"FORGE_PROVIDER_PROXY_URL",
|
|
151198
151216
|
"FORGE_PROXY_HMAC_SECRET",
|
|
151199
|
-
"FORGE_PPROXY_HMAC_SECRET"
|
|
151217
|
+
"FORGE_PPROXY_HMAC_SECRET",
|
|
151218
|
+
"SPRITE_API_TOKEN",
|
|
151219
|
+
"SPRITES_TOKEN"
|
|
151200
151220
|
]);
|
|
151201
151221
|
function scrubForgeProviderChildEnvSecrets(env) {
|
|
151202
151222
|
const scrubbed = { ...env };
|
|
@@ -191540,7 +191560,7 @@ var Vce = {
|
|
|
191540
191560
|
function Ve() {
|
|
191541
191561
|
return Vce;
|
|
191542
191562
|
}
|
|
191543
|
-
var Us =
|
|
191563
|
+
var Us = $U.homedir(), lk = $U.tmpdir(), { env: Vc } = process$1, Yce = (e) => {
|
|
191544
191564
|
let t = path.join(Us, "Library");
|
|
191545
191565
|
return {
|
|
191546
191566
|
data: path.join(t, "Application Support", e),
|
|
@@ -201740,12 +201760,12 @@ function qZ(e, t) {
|
|
|
201740
201760
|
}
|
|
201741
201761
|
return n;
|
|
201742
201762
|
}
|
|
201743
|
-
var os$
|
|
201763
|
+
var os$1 = "https://code.claude.com/docs/en", kKe = [
|
|
201744
201764
|
{
|
|
201745
201765
|
matches: (e) => e.path === "permissions.defaultMode" && e.code === "invalid_value",
|
|
201746
201766
|
tip: {
|
|
201747
201767
|
suggestion: "Valid modes: \"acceptEdits\" (ask before file changes), \"plan\" (analysis only), \"bypassPermissions\" (auto-accept all), or \"default\" (standard behavior)",
|
|
201748
|
-
docLink: `${os$
|
|
201768
|
+
docLink: `${os$1}/iam#permission-modes`
|
|
201749
201769
|
}
|
|
201750
201770
|
},
|
|
201751
201771
|
{
|
|
@@ -201760,7 +201780,7 @@ var os$2 = "https://code.claude.com/docs/en", kKe = [
|
|
|
201760
201780
|
matches: (e) => e.path.startsWith("env.") && e.code === "invalid_type",
|
|
201761
201781
|
tip: {
|
|
201762
201782
|
suggestion: "Environment variables must be strings. Wrap numbers and booleans in quotes. Example: \"DEBUG\": \"true\", \"PORT\": \"3000\"",
|
|
201763
|
-
docLink: `${os$
|
|
201783
|
+
docLink: `${os$1}/settings#environment-variables`
|
|
201764
201784
|
}
|
|
201765
201785
|
},
|
|
201766
201786
|
{
|
|
@@ -201771,14 +201791,14 @@ var os$2 = "https://code.claude.com/docs/en", kKe = [
|
|
|
201771
201791
|
matches: (e) => e.path.startsWith("hooks.") && e.code === "invalid_key",
|
|
201772
201792
|
tip: {
|
|
201773
201793
|
suggestion: "Not a recognized hook event. Common events: PreToolUse, PostToolUse, UserPromptSubmit, SessionStart, SessionEnd, Stop. Check spelling and capitalization.",
|
|
201774
|
-
docLink: `${os$
|
|
201794
|
+
docLink: `${os$1}/hooks`
|
|
201775
201795
|
}
|
|
201776
201796
|
},
|
|
201777
201797
|
{
|
|
201778
201798
|
matches: (e) => /\.hooks\.\d+\.command$/.test(e.path) && e.code === "invalid_type" && e.received === "undefined",
|
|
201779
201799
|
tip: {
|
|
201780
201800
|
suggestion: "Command hooks require `command`. For exec form (no shell), set `command` to the executable and `args` to its arguments: {\"type\": \"command\", \"command\": \"echo\", \"args\": [\"hi\"]}. For shell form, set `command` to the full shell string: {\"type\": \"command\", \"command\": \"echo hi\"}.",
|
|
201781
|
-
docLink: `${os$
|
|
201801
|
+
docLink: `${os$1}/hooks#exec-form-and-shell-form`
|
|
201782
201802
|
}
|
|
201783
201803
|
},
|
|
201784
201804
|
{
|
|
@@ -201793,7 +201813,7 @@ var os$2 = "https://code.claude.com/docs/en", kKe = [
|
|
|
201793
201813
|
matches: (e) => e.code === "unrecognized_keys",
|
|
201794
201814
|
tip: {
|
|
201795
201815
|
suggestion: "Check for typos or refer to the documentation for valid fields",
|
|
201796
|
-
docLink: `${os$
|
|
201816
|
+
docLink: `${os$1}/settings`
|
|
201797
201817
|
}
|
|
201798
201818
|
},
|
|
201799
201819
|
{
|
|
@@ -201808,13 +201828,13 @@ var os$2 = "https://code.claude.com/docs/en", kKe = [
|
|
|
201808
201828
|
matches: (e) => e.path === "permissions.additionalDirectories" && e.code === "invalid_type",
|
|
201809
201829
|
tip: {
|
|
201810
201830
|
suggestion: "Must be an array of directory paths. Example: [\"~/projects\", \"/tmp/workspace\"]. You can also use --add-dir flag or /add-dir command",
|
|
201811
|
-
docLink: `${os$
|
|
201831
|
+
docLink: `${os$1}/iam#working-directories`
|
|
201812
201832
|
}
|
|
201813
201833
|
}
|
|
201814
201834
|
], AKe = {
|
|
201815
|
-
permissions: `${os$
|
|
201816
|
-
env: `${os$
|
|
201817
|
-
hooks: `${os$
|
|
201835
|
+
permissions: `${os$1}/iam#configuring-permissions`,
|
|
201836
|
+
env: `${os$1}/settings#environment-variables`,
|
|
201837
|
+
hooks: `${os$1}/hooks`
|
|
201818
201838
|
};
|
|
201819
201839
|
function GZ(e) {
|
|
201820
201840
|
let t = kKe.find((r) => r.matches(e));
|
|
@@ -269766,7 +269786,7 @@ var import_multicast_dns = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMi
|
|
|
269766
269786
|
var dgram = __require("dgram");
|
|
269767
269787
|
var thunky = require_thunky();
|
|
269768
269788
|
var events = __require("events");
|
|
269769
|
-
var os
|
|
269789
|
+
var os = __require("os");
|
|
269770
269790
|
var noop = function() {};
|
|
269771
269791
|
module.exports = function(opts) {
|
|
269772
269792
|
if (!opts) opts = {};
|
|
@@ -269897,14 +269917,14 @@ var import_multicast_dns = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMi
|
|
|
269897
269917
|
return that;
|
|
269898
269918
|
};
|
|
269899
269919
|
function defaultInterface() {
|
|
269900
|
-
var networks = os
|
|
269920
|
+
var networks = os.networkInterfaces();
|
|
269901
269921
|
var names = Object.keys(networks);
|
|
269902
269922
|
for (var i = 0; i < names.length; i++) {
|
|
269903
269923
|
var net = networks[names[i]];
|
|
269904
269924
|
for (var j = 0; j < net.length; j++) {
|
|
269905
269925
|
var iface = net[j];
|
|
269906
269926
|
if (isIPv4(iface.family) && !iface.internal) {
|
|
269907
|
-
if (os
|
|
269927
|
+
if (os.platform() === "darwin" && names[i] === "en0") return iface.address;
|
|
269908
269928
|
return "0.0.0.0";
|
|
269909
269929
|
}
|
|
269910
269930
|
}
|
|
@@ -269912,7 +269932,7 @@ var import_multicast_dns = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMi
|
|
|
269912
269932
|
return "127.0.0.1";
|
|
269913
269933
|
}
|
|
269914
269934
|
function allInterfaces() {
|
|
269915
|
-
var networks = os
|
|
269935
|
+
var networks = os.networkInterfaces();
|
|
269916
269936
|
var names = Object.keys(networks);
|
|
269917
269937
|
var res = [];
|
|
269918
269938
|
for (var i = 0; i < names.length; i++) {
|
|
@@ -297825,7 +297845,7 @@ function resolveBuildCommitFromEnv(env) {
|
|
|
297825
297845
|
* environment descriptor down instead of reporting an honest "unknown".
|
|
297826
297846
|
*/
|
|
297827
297847
|
function readBakedBuildCommit() {
|
|
297828
|
-
return "
|
|
297848
|
+
return "00be113a2d44d7842004edc5cef20ef7e4f24518";
|
|
297829
297849
|
}
|
|
297830
297850
|
async function resolveServerBuildCommit(input) {
|
|
297831
297851
|
if (isFullCommitSha(input.baked)) return input.baked;
|
|
@@ -310426,7 +310446,10 @@ function isLegacyRuntimeConnection(value, expectedRuntimeId) {
|
|
|
310426
310446
|
return [
|
|
310427
310447
|
runtime.runtimeId === expectedRuntimeId,
|
|
310428
310448
|
runtime.runtimeCapabilityMode === "legacy_env",
|
|
310429
|
-
|
|
310449
|
+
hasCmmdRuntimeSpriteIdentity({
|
|
310450
|
+
...Object.hasOwn(runtime, "spriteName") ? { spriteName: typeof runtime.spriteName === "string" ? runtime.spriteName : null } : {},
|
|
310451
|
+
...Object.hasOwn(runtime, "flyMachineId") ? { flyMachineId: typeof runtime.flyMachineId === "string" ? runtime.flyMachineId : null } : {}
|
|
310452
|
+
}),
|
|
310430
310453
|
!Object.hasOwn(runtime, "brokerAuthorityAttestedForgeGitCommit"),
|
|
310431
310454
|
runtime.brokerAuthorityAttestedImageRef === null,
|
|
310432
310455
|
runtime.brokerAuthorityAttestedImageVersion === null,
|
|
@@ -320498,7 +320521,7 @@ const execFilePromise = promisify$1(execFile);
|
|
|
320498
320521
|
const COMMAND_TIMEOUT_MS = 15e3;
|
|
320499
320522
|
const MAX_COMMAND_OUTPUT_BYTES = 32e3;
|
|
320500
320523
|
const MAX_PROCESSES = 80;
|
|
320501
|
-
const sanitizeRuntimeDiagnosticText = (value) => value.replace(/\b(OPENAI_API_KEY|ANTHROPIC_API_KEY|ANTHROPIC_AUTH_TOKEN|FLY_ACCESS_TOKEN|FLY_API_TOKEN|GITHUB_TOKEN|FORGE_CMMD_RUNTIME_GRANT_TOKEN|FORGE_NPM_PROXY_TOKEN|FORGE_PROXY_HMAC_SECRET|FORGE_PPROXY_HMAC_SECRET|CMMD_FORGE_RUNTIME_TICKET_PRIVATE_KEY|CMMD_FORGE_RUNTIME_BROWSER_WEBRTC_ICE_SERVERS)=\S+/g, "$1=[redacted]").replace(/\bforge_proxy_[A-Za-z0-9._-]+/g, "forge_proxy_[redacted]").replace(/\bcmmd_provider_[A-Za-z0-9._-]+/g, "cmmd_provider_[redacted]").replace(/\bruntime-grant\.[A-Za-z0-9._-]+/g, "runtime-grant.[redacted]").replace(/\b(sk|ghp|github_pat)_[A-Za-z0-9._-]+/g, "$1_[redacted]").replace(/\bsk-[A-Za-z0-9._-]+/g, "sk-[redacted]");
|
|
320524
|
+
const sanitizeRuntimeDiagnosticText = (value) => value.replace(/\b(OPENAI_API_KEY|ANTHROPIC_API_KEY|ANTHROPIC_AUTH_TOKEN|FLY_ACCESS_TOKEN|FLY_API_TOKEN|SPRITES_TOKEN|SPRITE_API_TOKEN|GITHUB_TOKEN|FORGE_CMMD_RUNTIME_GRANT_TOKEN|FORGE_NPM_PROXY_TOKEN|FORGE_PROXY_HMAC_SECRET|FORGE_PPROXY_HMAC_SECRET|CMMD_FORGE_RUNTIME_TICKET_PRIVATE_KEY|CMMD_FORGE_RUNTIME_BROWSER_WEBRTC_ICE_SERVERS)=\S+/g, "$1=[redacted]").replace(/\bforge_proxy_[A-Za-z0-9._-]+/g, "forge_proxy_[redacted]").replace(/\bcmmd_provider_[A-Za-z0-9._-]+/g, "cmmd_provider_[redacted]").replace(/\bruntime-grant\.[A-Za-z0-9._-]+/g, "runtime-grant.[redacted]").replace(/\b(sk|ghp|github_pat)_[A-Za-z0-9._-]+/g, "$1_[redacted]").replace(/\bsk-[A-Za-z0-9._-]+/g, "sk-[redacted]");
|
|
320502
320525
|
const sanitizeRuntimeDiagnosticValue = (value) => {
|
|
320503
320526
|
const trimmed = value?.trim();
|
|
320504
320527
|
if (!trimmed) return void 0;
|
|
@@ -320545,16 +320568,15 @@ const parseProcessList = (output) => output.split("\n").map((line) => line.trim(
|
|
|
320545
320568
|
if (!Number.isFinite(pid) || !Number.isFinite(ppid) || !stat || !command) return void 0;
|
|
320546
320569
|
const cpuPercent = parseMeasurement(cpuRaw);
|
|
320547
320570
|
const rssKb = parseMeasurement(rssRaw);
|
|
320548
|
-
const
|
|
320549
|
-
if (cpuPercent !== null) measurements.cpuPercent = cpuPercent;
|
|
320550
|
-
if (rssKb !== null) measurements.rssKb = rssKb;
|
|
320551
|
-
return {
|
|
320571
|
+
const parsed = {
|
|
320552
320572
|
pid,
|
|
320553
320573
|
ppid,
|
|
320554
320574
|
stat: sanitizeRuntimeDiagnosticText(stat),
|
|
320555
|
-
command: sanitizeRuntimeDiagnosticText(command)
|
|
320556
|
-
...measurements
|
|
320575
|
+
command: sanitizeRuntimeDiagnosticText(command)
|
|
320557
320576
|
};
|
|
320577
|
+
if (cpuPercent !== null) parsed.cpuPercent = cpuPercent;
|
|
320578
|
+
if (rssKb !== null) parsed.rssKb = rssKb;
|
|
320579
|
+
return parsed;
|
|
320558
320580
|
}).filter((process) => process !== void 0).slice(0, MAX_PROCESSES);
|
|
320559
320581
|
/**
|
|
320560
320582
|
* The process tree, or the reason there isn't one.
|
|
@@ -322421,7 +322443,7 @@ const connectLoginCommand = make$34("login", {
|
|
|
322421
322443
|
})).json();
|
|
322422
322444
|
},
|
|
322423
322445
|
openBrowser: async (url) => {
|
|
322424
|
-
const open = (await import("./open-
|
|
322446
|
+
const open = (await import("./open-2-reBrpv.mjs")).default;
|
|
322425
322447
|
await open(url);
|
|
322426
322448
|
return true;
|
|
322427
322449
|
},
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{Ha as t,Mi as n,Ua as r,Wa as i}from"./Stream-mUTFnSY9.js";import{Al as a,Fn as o,Gc as s,Hr as c,Jc as l,Qr as u,Rr as d,Sr as f,Tn as p,Uc as m,Xr as h,_r as g,d as _,fn as v,fr as y,gr as b,i as x,is as S,jn as C,l as w,m as T,ms as E,n as D,qc as O,qt as k,r as A,u as j,za as M,zr as N}from"./DiffPanelShell-
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{Ha as t,Mi as n,Ua as r,Wa as i}from"./Stream-mUTFnSY9.js";import{Al as a,Fn as o,Gc as s,Hr as c,Jc as l,Qr as u,Rr as d,Sr as f,Tn as p,Uc as m,Xr as h,_r as g,d as _,fn as v,fr as y,gr as b,i as x,is as S,jn as C,l as w,m as T,ms as E,n as D,qc as O,qt as k,r as A,u as j,za as M,zr as N}from"./DiffPanelShell-COwQln6y.js";import{hn as P}from"./CompositeItem-BsSeqHOM.js";import{a as F,c as I,f as L,i as R,l as z,m as B,n as V,o as H,p as U,r as W,s as G,t as K}from"./Virtualizer-BYyEY2Dk.js";import{Dn as q,at as J,it as ee}from"./src-IM0FnQax.js";import{a as te,c as ne,d as re,h as ie,i as ae,l as oe,m as se,n as ce,o as Y,p as le,r as ue,s as de,t as fe,u as pe}from"./DiffPanel.logic-N-_02IKx.js";var X=e(i(),1),me=typeof window>`u`?X.useEffect:X.useLayoutEffect;function he({fileDiff:e,options:t,editorOptions:n,lineAnnotations:r,selectedLines:i,prerenderedHTML:a,metrics:o,hasGutterRenderUtility:s,hasCustomHeader:c,disableWorkerPool:l,edit:u}){let d=V(),f=i!==void 0,p=(0,X.useContext)(x),m=j(),h=(0,X.useRef)(null),g=_(n=>{if(n!=null){if(h.current!=null)throw Error(`useFileDiffInstance: An instance should not already exist when a node is created`);d==null?h.current=new re(Z({controlledSelection:f,hasCustomHeader:c,hasGutterRenderUtility:s,options:t}),l?void 0:p,!0):h.current=new pe(Z({controlledSelection:f,hasCustomHeader:c,hasGutterRenderUtility:s,options:t}),d,o,l?void 0:p,!0),h.current.hydrate({fileDiff:e,fileContainer:n,lineAnnotations:r,prerenderedHTML:a})}else{if(h.current==null)throw Error(`useFileDiffInstance: A FileDiff instance should exist when unmounting`);h.current.cleanUp(),h.current=null}});return me(()=>{let{current:n}=h;if(n==null)return;let a=Z({controlledSelection:f,hasCustomHeader:c,hasGutterRenderUtility:s,options:t}),o=a!==void 0&&!k(n.options,a);n.setOptions(a),n.render({forceRender:o,fileDiff:e,lineAnnotations:r}),i!==void 0&&n.setSelectedLines(i)}),me(()=>{if(u&&h.current!=null){if(m===void 0)throw Error(`FileDiff: EditContext is not attached`);let e=m(n??{});if(e==null)throw Error(`FileDiff: EditProvider.createEditor must return an editor instance`);try{return e.edit(h.current)}catch(t){throw e.cleanUp(),t}}},[u]),{ref:g,getHoveredLine:(0,X.useCallback)(()=>h.current?.getHoveredLine(),[])}}function Z({options:e,controlledSelection:t,hasCustomHeader:n,hasGutterRenderUtility:r}){return t||r||n?{...e,controlledSelection:t,renderCustomHeader:n?w:e?.renderCustomHeader,renderGutterUtility:r?w:e?.renderGutterUtility}:e}var Q=r();function ge({fileDiff:e,options:t,editorOptions:n,metrics:r,lineAnnotations:i,selectedLines:a,className:o,style:s,prerenderedHTML:c,renderAnnotation:l,renderCustomHeader:u,renderHeaderPrefix:d,renderHeaderFilenameSuffix:f,renderHeaderMetadata:p,renderGutterUtility:m,disableWorkerPool:h=!1,edit:g=!1}){let{ref:_,getHoveredLine:y}=he({fileDiff:e,options:t,editorOptions:n,metrics:r,lineAnnotations:i,selectedLines:a,prerenderedHTML:c,hasGutterRenderUtility:m!=null,hasCustomHeader:u!=null,disableWorkerPool:h,edit:g});return(0,Q.jsx)(v,{ref:_,className:o,style:s,children:W(oe({fileDiff:e,renderCustomHeader:u,renderHeaderPrefix:d,renderHeaderFilenameSuffix:f,renderHeaderMetadata:p,renderAnnotation:l,renderGutterUtility:m,lineAnnotations:i,getHoveredLine:y}),c)})}var $=t();function _e(e){return e.fromTurnCount===0?q(ee)({threadId:e.threadId,toTurnCount:e.toTurnCount}).pipe(n(e=>({kind:`fullThreadDiff`,input:e}))):q(J)({threadId:e.threadId,fromTurnCount:e.fromTurnCount,toTurnCount:e.toTurnCount}).pipe(n(e=>({kind:`turnDiff`,input:e})))}function ve(e){return e instanceof Error?e.message:typeof e==`string`?e:``}function ye(e){let t=ve(e).trim();if(t.length===0)return`Failed to load checkpoint diff.`;let n=t.toLowerCase();if(n.includes(`not a git repository`))return`Turn diffs are unavailable because this project is not a git repository.`;if(n.includes(`checkpoint unavailable for thread`)||n.includes(`checkpoint invariant violation`)){let e=t.indexOf(`:`);if(e>=0){let n=t.slice(e+1).trim();if(n.length>0)return n}}return t}function be(e){let t=ve(e).toLowerCase();return t.includes(`exceeds current turn count`)||t.includes(`checkpoint is unavailable for turn`)||t.includes(`filesystem checkpoint is unavailable`)}function xe(e){let t=_e(e);return O({queryKey:M.checkpointDiff(e),queryFn:async({signal:n})=>{if(!e.environmentId||!e.threadId||t._tag===`None`)throw Error(`Checkpoint diff is unavailable.`);let r=c(e.environmentId);try{return t.value.kind===`fullThreadDiff`?await r.orchestration.getFullThreadDiff(t.value.input,{signal:n}):await r.orchestration.getTurnDiff(t.value.input,{signal:n})}catch(e){throw Error(ye(e),{cause:e})}},enabled:(e.enabled??!0)&&!!e.environmentId&&!!e.threadId&&t._tag===`Some`,staleTime:1/0,retry:(e,t)=>be(t)?e<12:e<3,retryDelay:(e,t)=>be(t)?Math.min(5e3,250*2**(e-1)):Math.min(1e3,100*2**(e-1))})}function Se(e){if(!(!e.canScrollLeft&&!e.canScrollRight))return{maskImage:`linear-gradient(to right, ${e.canScrollLeft?`transparent 24px, black 72px`:`black`}, ${e.canScrollRight?`black calc(100% - 72px), transparent calc(100% - 24px)`:`black`})`}}function Ce(e){return e instanceof Error?e.message:e?`Failed to load checkpoint diff.`:null}function we(e){return{environmentId:e.environmentId??null,threadId:e.threadId,fromTurnCount:e.range?.fromTurnCount??null,toTurnCount:e.range?.toTurnCount??null,cacheScope:e.selectedTurnId?`turn:${e.selectedTurnId}`:e.conversationCacheScope,enabled:e.enabled}}function Te(){let e=(0,$.c)(8),t=(0,X.useRef)(null),[n,r]=(0,X.useState)(!1),[i,a]=(0,X.useState)(!1),o;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=()=>{let e=t.current;if(!e){r(!1),a(!1);return}let n=de({scrollLeft:e.scrollLeft,scrollWidth:e.scrollWidth,clientWidth:e.clientWidth});r(n.canScrollLeft),a(n.canScrollRight)},e[0]=o):o=e[0];let s=o,c;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(c=e=>{t.current?.scrollBy({left:e,behavior:`smooth`})},e[1]=c):c=e[1];let l=c,u;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(u=e=>{let n=t.current;n&&ne({scrollWidth:n.scrollWidth,clientWidth:n.clientWidth,deltaX:e.deltaX,deltaY:e.deltaY})&&(e.preventDefault(),n.scrollBy({left:e.deltaY,behavior:`auto`}))},e[2]=u):u=e[2];let d=u,f,p;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(f=()=>{let e=t.current;if(!e)return;let n=window.requestAnimationFrame(s),r=()=>s();e.addEventListener(`scroll`,r,{passive:!0});let i=new ResizeObserver(()=>s());return i.observe(e),()=>{window.cancelAnimationFrame(n),e.removeEventListener(`scroll`,r),i.disconnect()}},p=[s],e[3]=f,e[4]=p):(f=e[3],p=e[4]),(0,X.useEffect)(f,p);let m;return e[5]!==n||e[6]!==i?(m={ref:t,canScrollLeft:n,canScrollRight:i,scrollBy:l,onWheel:d,remeasure:s},e[5]=n,e[6]=i,e[7]=m):m=e[7],m}function Ee(e,t){let n=(0,$.c)(5),r;n[0]===e.current?r=n[1]:(r=()=>{(e.current?.querySelector(`[data-turn-chip-selected='true']`))?.scrollIntoView({block:`nearest`,inline:`nearest`,behavior:`smooth`})},n[0]=e.current,n[1]=r);let i;n[2]!==e||n[3]!==t?(i=[e,t],n[2]=e,n[3]=t,n[4]=i):i=n[4],(0,X.useEffect)(r,i)}var De=`
|
|
2
2
|
[data-diffs-header],
|
|
3
3
|
[data-diff],
|
|
4
4
|
[data-file],
|
|
@@ -61,4 +61,4 @@ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{Ha as t,Mi as n,Ua as
|
|
|
61
61
|
text-decoration-color: currentColor;
|
|
62
62
|
}
|
|
63
63
|
`;function Oe(e){let t=(0,$.c)(44),{mode:n}=e,r=n===void 0?`inline`:n,{resolvedTheme:i}=b(),a=g(),[c,l]=(0,X.useState)(`stacked`),[u,d]=(0,X.useState)(a.diffWordWrap),h=(0,X.useRef)(null),_=(0,X.useRef)(!1),v=Te(),{activeCwd:y,activeThread:x,bodyState:S,diffOpen:C,inferredCheckpointTurnCountByTurnId:w,orderedTurnDiffSummaries:T,renderableFiles:E,renderablePatch:D,selectedFilePath:O,selectedTurn:k,selectedTurnId:j}=Le(i),M,P;t[0]!==C||t[1]!==a.diffWordWrap?(M=()=>{C&&!_.current&&d(a.diffWordWrap),_.current=C},P=[C,a.diffWordWrap],t[0]=C,t[1]=a.diffWordWrap,t[2]=M,t[3]=P):(M=t[2],P=t[3]),(0,X.useEffect)(M,P);let F;t[4]===O?F=t[5]:(F=()=>{!O||!h.current||Array.from(h.current.querySelectorAll(`[data-diff-file-path]`)).find(e=>e.dataset.diffFilePath===O)?.scrollIntoView({block:`nearest`})},t[4]=O,t[5]=F);let I;t[6]!==E||t[7]!==O?(I=[O,E],t[6]=E,t[7]=O,t[8]=I):I=t[8],(0,X.useEffect)(F,I);let L;t[9]===y?L=t[10]:(L=e=>{let t=f();if(!t)return;let n=y?p(e,y):e;N(t,n).catch(ke)},t[9]=y,t[10]=L);let R=L,z;t[11]===x?z=t[12]:(z=e=>{x&&o.getState().openDiff(s(m(x.environmentId,x.id)),e)},t[11]=x,t[12]=z);let B=z,V;t[13]===x?V=t[14]:(V=()=>{x&&o.getState().openDiff(s(m(x.environmentId,x.id)))},t[13]=x,t[14]=V);let H=V,U;t[15]===v.remeasure?U=t[16]:(U=()=>{let e=window.requestAnimationFrame(v.remeasure);return()=>window.cancelAnimationFrame(e)},t[15]=v.remeasure,t[16]=U);let W;t[17]!==T||t[18]!==j||t[19]!==v.remeasure?(W=[T,j,v.remeasure],t[17]=T,t[18]=j,t[19]=v.remeasure,t[20]=W):W=t[20],(0,X.useEffect)(U,W),Ee(v.ref,k?.turnId??j);let G;t[21]!==c||t[22]!==u||t[23]!==w||t[24]!==T||t[25]!==B||t[26]!==H||t[27]!==k||t[28]!==j||t[29]!==a||t[30]!==v?(G=(0,Q.jsx)(Ae,{diffRenderMode:c,diffWordWrap:u,inferredCheckpointTurnCountByTurnId:w,orderedTurnDiffSummaries:T,selectTurn:B,selectWholeConversation:H,selectedTurn:k,selectedTurnId:j,setDiffRenderMode:l,setDiffWordWrap:d,settings:a,turnStrip:v}),t[21]=c,t[22]=u,t[23]=w,t[24]=T,t[25]=B,t[26]=H,t[27]=k,t[28]=j,t[29]=a,t[30]=v,t[31]=G):G=t[31];let K=G,q;t[32]!==S||t[33]!==c||t[34]!==u||t[35]!==R||t[36]!==E||t[37]!==D||t[38]!==i?(q=(0,Q.jsx)(je,{bodyState:S,diffRenderMode:c,diffWordWrap:u,openDiffFileInEditor:R,patchViewportRef:h,renderableFiles:E,renderablePatch:D,resolvedTheme:i}),t[32]=S,t[33]=c,t[34]=u,t[35]=R,t[36]=E,t[37]=D,t[38]=i,t[39]=q):q=t[39];let J;return t[40]!==K||t[41]!==r||t[42]!==q?(J=(0,Q.jsx)(A,{mode:r,header:K,children:q}),t[40]=K,t[41]=r,t[42]=q,t[43]=J):J=t[43],J}function ke(e){console.warn(`Failed to open diff file in editor.`,e)}function Ae(e){let t=(0,$.c)(59),{diffRenderMode:n,diffWordWrap:r,inferredCheckpointTurnCountByTurnId:i,orderedTurnDiffSummaries:a,selectTurn:o,selectWholeConversation:s,selectedTurn:c,selectedTurnId:l,setDiffRenderMode:u,setDiffWordWrap:d,settings:f,turnStrip:p}=e,m,h;t[0]===p?(m=t[1],h=t[2]):(m=(0,Q.jsx)(Be,{direction:`left`,strip:p}),h=(0,Q.jsx)(Be,{direction:`right`,strip:p}),t[0]=p,t[1]=m,t[2]=h);let g=p.ref,_;t[3]!==p.canScrollLeft||t[4]!==p.canScrollRight?(_=Se({canScrollLeft:p.canScrollLeft,canScrollRight:p.canScrollRight}),t[3]=p.canScrollLeft,t[4]=p.canScrollRight,t[5]=_):_=t[5];let v=p.onWheel,y=l===null,b=l===null?`border-border bg-accent text-accent-foreground`:`border-border/70 bg-background/70 text-muted-foreground/80 hover:border-border hover:text-foreground/80`,x;t[6]===b?x=t[7]:(x=P(`rounded-md border px-2 py-1 text-left transition-colors`,b),t[6]=b,t[7]=x);let S;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,Q.jsx)(`div`,{className:`text-[10px] leading-tight font-medium`,children:`All turns`}),t[8]=S):S=t[8];let C;t[9]===x?C=t[10]:(C=(0,Q.jsx)(`div`,{className:x,children:S}),t[9]=x,t[10]=C);let w;t[11]!==s||t[12]!==C||t[13]!==y?(w=(0,Q.jsx)(`button`,{type:`button`,className:`shrink-0 rounded-md`,onClick:s,"data-turn-chip-selected":y,children:C}),t[11]=s,t[12]=C,t[13]=y,t[14]=w):w=t[14];let T;if(t[15]!==i||t[16]!==a||t[17]!==o||t[18]!==c?.turnId||t[19]!==f){let e;t[21]!==i||t[22]!==o||t[23]!==c?.turnId||t[24]!==f?(e=e=>(0,Q.jsx)(Ve,{summary:e,selected:e.turnId===c?.turnId,turnCount:e.checkpointTurnCount??i[e.turnId],timestampFormat:f.timestampFormat,onSelect:o},e.turnId),t[21]=i,t[22]=o,t[23]=c?.turnId,t[24]=f,t[25]=e):e=t[25],T=a.map(e),t[15]=i,t[16]=a,t[17]=o,t[18]=c?.turnId,t[19]=f,t[20]=T}else T=t[20];let E;t[26]!==w||t[27]!==T||t[28]!==_||t[29]!==p.onWheel||t[30]!==p.ref?(E=(0,Q.jsxs)(`div`,{ref:g,className:`turn-chip-strip flex gap-1 overflow-x-auto px-8 py-0.5`,style:_,onWheel:v,children:[w,T]}),t[26]=w,t[27]=T,t[28]=_,t[29]=p.onWheel,t[30]=p.ref,t[31]=E):E=t[31];let D;t[32]!==m||t[33]!==E||t[34]!==h?(D=(0,Q.jsxs)(`div`,{className:`relative min-w-0 flex-1 [-webkit-app-region:no-drag]`,children:[m,h,E]}),t[32]=m,t[33]=E,t[34]=h,t[35]=D):D=t[35];let O;t[36]===n?O=t[37]:(O=[n],t[36]=n,t[37]=O);let k;t[38]===u?k=t[39]:(k=e=>{let t=e[0];(t===`stacked`||t===`split`)&&u(t)},t[38]=u,t[39]=k);let A;t[40]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,Q.jsx)(R,{"aria-label":`Stacked diff view`,value:`stacked`,children:(0,Q.jsx)(se,{className:`size-3`})}),t[40]=A):A=t[40];let j;t[41]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,Q.jsx)(R,{"aria-label":`Split diff view`,value:`split`,children:(0,Q.jsx)(ie,{className:`size-3`})}),t[41]=j):j=t[41];let M;t[42]!==O||t[43]!==k?(M=(0,Q.jsxs)(F,{className:`shrink-0`,variant:`outline`,size:`xs`,value:O,onValueChange:k,children:[A,j]}),t[42]=O,t[43]=k,t[44]=M):M=t[44];let N=r?`Disable diff line wrapping`:`Enable diff line wrapping`,I=r?`Disable line wrapping`:`Enable line wrapping`,L;t[45]===d?L=t[46]:(L=e=>{d(!!e)},t[45]=d,t[46]=L);let z;t[47]===Symbol.for(`react.memo_cache_sentinel`)?(z=(0,Q.jsx)(le,{className:`size-3`}),t[47]=z):z=t[47];let B;t[48]!==r||t[49]!==N||t[50]!==I||t[51]!==L?(B=(0,Q.jsx)(R,{"aria-label":N,title:I,variant:`outline`,size:`xs`,pressed:r,onPressedChange:L,children:z}),t[48]=r,t[49]=N,t[50]=I,t[51]=L,t[52]=B):B=t[52];let V;t[53]!==M||t[54]!==B?(V=(0,Q.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1 [-webkit-app-region:no-drag]`,children:[M,B]}),t[53]=M,t[54]=B,t[55]=V):V=t[55];let H;return t[56]!==D||t[57]!==V?(H=(0,Q.jsxs)(Q.Fragment,{children:[D,V]}),t[56]=D,t[57]=V,t[58]=H):H=t[58],H}function je(e){let t=(0,$.c)(18),{bodyState:n,diffRenderMode:r,diffWordWrap:i,openDiffFileInEditor:a,patchViewportRef:o,renderableFiles:s,renderablePatch:c,resolvedTheme:l}=e;if(n.kind===`no-thread`){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(Ne,{children:`Select a thread to inspect turn diffs.`}),t[0]=e):e=t[0],e}if(n.kind===`not-git-repo`){let e;return t[1]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(Ne,{children:`Turn diffs are unavailable because this project is not a git repository.`}),t[1]=e):e=t[1],e}if(n.kind===`no-completed-turns`){let e;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(Ne,{children:`No completed turns yet.`}),t[2]=e):e=t[2],e}let u;t[3]!==n.error||t[4]!==c?(u=n.error&&!c&&(0,Q.jsx)(`div`,{className:`px-3`,children:(0,Q.jsx)(`p`,{className:`mb-2 text-[11px] text-destructive-foreground`,children:n.error})}),t[3]=n.error,t[4]=c,t[5]=u):u=t[5];let d;t[6]!==n||t[7]!==r||t[8]!==i||t[9]!==a||t[10]!==s||t[11]!==c||t[12]!==l?(d=c?c.kind===`files`?(0,Q.jsx)(K,{className:`diff-render-surface h-full min-h-0 overflow-auto px-2 pb-2`,config:{overscrollSize:600,intersectionObserverMargin:1200},children:s.map(e=>{let t=Y(e),n=`${fe(e)}:${l}`;return(0,Q.jsx)(`div`,{"data-diff-file-path":t,className:`diff-render-file mb-2 rounded-md first:mt-2 last:mb-0`,onClickCapture:e=>{(e.nativeEvent.composedPath?.()??[]).some(Me)&&a(t)},children:(0,Q.jsx)(ge,{fileDiff:e,options:{diffStyle:r===`split`?`split`:`unified`,lineDiffType:`none`,overflow:i?`wrap`:`scroll`,theme:T(l),themeType:l,unsafeCSS:De}})},n)})}):(0,Q.jsx)(`div`,{className:`h-full overflow-auto p-2`,children:(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[(0,Q.jsx)(`p`,{className:`text-[11px] text-muted-foreground/75`,children:c.reason}),(0,Q.jsx)(`pre`,{className:P(`max-h-[72vh] rounded-md border border-border/70 bg-background/70 p-3 font-mono text-[11px] leading-relaxed text-muted-foreground/90`,i?`overflow-auto whitespace-pre-wrap wrap-break-word`:`overflow-auto`),children:c.text})]})}):(0,Q.jsx)(Re,{bodyState:n}),t[6]=n,t[7]=r,t[8]=i,t[9]=a,t[10]=s,t[11]=c,t[12]=l,t[13]=d):d=t[13];let f;return t[14]!==o||t[15]!==u||t[16]!==d?(f=(0,Q.jsx)(Q.Fragment,{children:(0,Q.jsxs)(`div`,{ref:o,className:`diff-panel-viewport min-h-0 min-w-0 flex-1 overflow-hidden`,children:[u,d]})}),t[14]=o,t[15]=u,t[16]=d,t[17]=f):f=t[17],f}function Me(e){return e instanceof Element&&e.hasAttribute(`data-title`)}function Ne(e){let t=(0,$.c)(2),{children:n}=e,r;return t[0]===n?r=t[1]:(r=(0,Q.jsx)(`div`,{className:`flex flex-1 items-center justify-center px-5 text-center text-xs text-muted-foreground/70`,children:n}),t[0]=n,t[1]=r),r}function Pe(){let e=(0,$.c)(19),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={strict:!1,select:Ie},e[0]=t):t=e[0];let n=a(t),r;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(r={strict:!1,select:Fe},e[1]=r):r=e[1];let i=B(r),o=i.rightPanel===`diff`,s=n?.threadId??null,c,l;e[2]===n?l=e[3]:(l=C(n),e[2]=n,e[3]=l),c=l;let u=E(c),f=He(u),p=u?.worktreePath,m=f?.cwd,h;e[4]!==p||e[5]!==m?(h=I({threadWorktreePath:p,projectCwd:m}),e[4]=p,e[5]=m,e[6]=h):h=e[6];let g=h,_=u?.environmentId??null,v=g??null,y;e[7]!==_||e[8]!==v?(y={environmentId:_,cwd:v},e[7]=_,e[8]=v,e[9]=y):y=e[9];let b=d(y),x;e[10]===b.data?x=e[11]:(x=z(b.data),e[10]=b.data,e[11]=x);let S=x,w;return e[12]!==g||e[13]!==u||e[14]!==s||e[15]!==o||e[16]!==i||e[17]!==S?(w={activeThread:u,activeThreadId:s,activeCwd:g,isGitRepo:S,diffSearch:i,diffOpen:o},e[12]=g,e[13]=u,e[14]=s,e[15]=o,e[16]=i,e[17]=S,e[18]=w):w=e[18],w}function Fe(e){return G(e)}function Ie(e){return h(e)}function Le(e){let{activeThread:t,activeThreadId:n,activeCwd:r,isGitRepo:i,diffSearch:a,diffOpen:o}=Pe(),{turnDiffSummaries:s,inferredCheckpointTurnCountByTurnId:c}=H(t),u=a.diffTurnId??null,d=u===null?null:a.diffFilePath??null,{activeCheckpointRange:f,conversationCacheScope:p,orderedTurnDiffSummaries:m,selectedTurn:h}=(0,X.useMemo)(()=>te({summaries:s,inferredCheckpointTurnCountByTurnId:c,selectedTurnId:u}),[c,u,s]),g=l(xe(we({environmentId:t?.environmentId,threadId:n,range:f,selectedTurnId:h?.turnId,conversationCacheScope:p,enabled:i}))),_=g.isLoading,v=Ce(g.error),y=g.data?.diff,b=typeof y==`string`&&y.trim().length===0,{emptyDiffMessage:x}=(0,X.useMemo)(()=>ae(h),[h]),S=(0,X.useMemo)(()=>ce(y,`diff-panel:${e}`),[e,y]),C=(0,X.useMemo)(()=>Ue(S),[S]);return{activeCwd:r,activeThread:t,bodyState:ue({hasActiveThread:!!t,isGitRepo:i,turnSummaryCount:m.length,checkpointDiffError:v,hasRenderablePatch:!!S,isLoadingCheckpointDiff:_,hasNoNetChanges:b,emptyDiffMessage:x}),diffOpen:o,inferredCheckpointTurnCountByTurnId:c,orderedTurnDiffSummaries:m,renderableFiles:C,renderablePatch:S,selectedFilePath:d,selectedTurn:h,selectedTurnId:u}}function Re(e){let t=(0,$.c)(4),{bodyState:n}=e;if(n.kind===`loading`){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(D,{label:`Loading checkpoint diff...`}),t[0]=e):e=t[0],e}let r;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,Q.jsx)(L,{className:`size-7 text-muted-foreground/25`}),t[1]=r):r=t[1];let i=n.kind===`empty`?n.message:`No diff is available for this range.`,a;return t[2]===i?a=t[3]:(a=(0,Q.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-2 px-5 py-2 text-center`,children:[r,(0,Q.jsx)(`p`,{className:`text-xs text-muted-foreground/70`,children:i})]}),t[2]=i,t[3]=a),a}var ze=180;function Be(e){let t=(0,$.c)(14),{direction:n,strip:r}=e,i=n===`left`,a=i?r.canScrollLeft:r.canScrollRight,o=i?U:u,s=i?`left-0`:`right-0`,c=a?`border-border/70 hover:border-border hover:text-foreground`:`cursor-not-allowed border-border/40 text-muted-foreground/40`,l;t[0]!==s||t[1]!==c?(l=P(`absolute top-1/2 z-20 inline-flex size-6 -translate-y-1/2 items-center justify-center rounded-md border bg-background/90 text-muted-foreground transition-colors`,s,c),t[0]=s,t[1]=c,t[2]=l):l=t[2];let d;t[3]!==i||t[4]!==r?(d=()=>r.scrollBy(i?-180:ze),t[3]=i,t[4]=r,t[5]=d):d=t[5];let f=!a,p=`Scroll turn list ${n}`,m;t[6]===o?m=t[7]:(m=(0,Q.jsx)(o,{className:`size-3.5`}),t[6]=o,t[7]=m);let h;return t[8]!==l||t[9]!==d||t[10]!==f||t[11]!==p||t[12]!==m?(h=(0,Q.jsx)(`button`,{type:`button`,className:l,onClick:d,disabled:f,"aria-label":p,children:m}),t[8]=l,t[9]=d,t[10]=f,t[11]=p,t[12]=m,t[13]=h):h=t[13],h}function Ve(e){let t=(0,$.c)(23),{summary:n,selected:r,turnCount:i,timestampFormat:a,onSelect:o}=e,s;t[0]!==o||t[1]!==n.turnId?(s=()=>o(n.turnId),t[0]=o,t[1]=n.turnId,t[2]=s):s=t[2];let c=n.turnId,l=r?`border-border bg-accent text-accent-foreground`:`border-border/70 bg-background/70 text-muted-foreground/80 hover:border-border hover:text-foreground/80`,u;t[3]===l?u=t[4]:(u=P(`rounded-md border px-2 py-1 text-left transition-colors`,l),t[3]=l,t[4]=u);let d=i??`?`,f;t[5]===d?f=t[6]:(f=(0,Q.jsxs)(`span`,{className:`text-[10px] leading-tight font-medium`,children:[`Turn `,d]}),t[5]=d,t[6]=f);let p;t[7]!==n.completedAt||t[8]!==a?(p=y(n.completedAt,a),t[7]=n.completedAt,t[8]=a,t[9]=p):p=t[9];let m;t[10]===p?m=t[11]:(m=(0,Q.jsx)(`span`,{className:`text-[9px] leading-tight opacity-70`,children:p}),t[10]=p,t[11]=m);let h;t[12]!==f||t[13]!==m?(h=(0,Q.jsxs)(`div`,{className:`flex items-center gap-1`,children:[f,m]}),t[12]=f,t[13]=m,t[14]=h):h=t[14];let g;t[15]!==u||t[16]!==h?(g=(0,Q.jsx)(`div`,{className:u,children:h}),t[15]=u,t[16]=h,t[17]=g):g=t[17];let _;return t[18]!==r||t[19]!==n.turnId||t[20]!==s||t[21]!==g?(_=(0,Q.jsx)(`button`,{type:`button`,className:`shrink-0 rounded-md`,onClick:s,title:c,"data-turn-chip-selected":r,children:g}),t[18]=r,t[19]=n.turnId,t[20]=s,t[21]=g,t[22]=_):_=t[22],_}function He(e){let t=(0,$.c)(3),n=e?.environmentId,r=e?.projectId,i;return t[0]!==n||t[1]!==r?(i=e=>n&&r?S(e,{environmentId:n,projectId:r}):void 0,t[0]=n,t[1]=r,t[2]=i):i=t[2],E(i)}function Ue(e){return!e||e.kind!==`files`?[]:e.files.toSorted((e,t)=>Y(e).localeCompare(Y(t),void 0,{numeric:!0,sensitivity:`base`}))}export{Oe as default};
|
|
64
|
-
//# sourceMappingURL=DiffPanel-
|
|
64
|
+
//# sourceMappingURL=DiffPanel-C3dfPMJX.js.map
|