π File detail
components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.tsx
π― Use case
This file lives under βcomponents/β, which covers shared React UI pieces. On the API surface it exposes FileEditPermissionRequest β mainly types, interfaces, or factory objects. Dependencies touch React UI, Node path helpers, src, and schema validation. It composes internal code from ink, tools, FilePermissionDialog, and PermissionRequest (relative imports).
Generated from folder role, exports, dependency roots, and inline comments β not hand-reviewed for every path.
π§ Inline summary
import { c as _c } from "react/compiler-runtime"; import { basename, relative } from 'path'; import React from 'react'; import { FileEditToolDiff } from 'src/components/FileEditToolDiff.js'; import { getCwd } from 'src/utils/cwd.js';
π€ Exports (heuristic)
FileEditPermissionRequest
π External import roots
Package roots from from "β¦" (relative paths omitted).
reactpathsrczod
π₯οΈ Source preview
import { c as _c } from "react/compiler-runtime";
import { basename, relative } from 'path';
import React from 'react';
import { FileEditToolDiff } from 'src/components/FileEditToolDiff.js';
import { getCwd } from 'src/utils/cwd.js';
import type { z } from 'zod/v4';
import { Text } from '../../../ink.js';
import { FileEditTool } from '../../../tools/FileEditTool/FileEditTool.js';
import { FilePermissionDialog } from '../FilePermissionDialog/FilePermissionDialog.js';
import { createSingleEditDiffConfig, type FileEdit, type IDEDiffSupport } from '../FilePermissionDialog/ideDiffConfig.js';
import type { PermissionRequestProps } from '../PermissionRequest.js';
type FileEditInput = z.infer<typeof FileEditTool.inputSchema>;
const ideDiffSupport: IDEDiffSupport<FileEditInput> = {
getConfig: (input: FileEditInput) => createSingleEditDiffConfig(input.file_path, input.old_string, input.new_string, input.replace_all),
applyChanges: (input: FileEditInput, modifiedEdits: FileEdit[]) => {
const firstEdit = modifiedEdits[0];
if (firstEdit) {
return {
...input,
old_string: firstEdit.old_string,
new_string: firstEdit.new_string,
replace_all: firstEdit.replace_all
};
}
return input;
}
};
export function FileEditPermissionRequest(props) {
const $ = _c(51);
const parseInput = _temp;
let T0;
let T1;
let T2;
let file_path;
let new_string;
let old_string;
let replace_all;
let t0;
let t1;
let t10;
let t2;
let t3;
let t4;
let t5;
let t6;
let t7;
let t8;
let t9;
if ($[0] !== props.onDone || $[1] !== props.onReject || $[2] !== props.toolUseConfirm || $[3] !== props.toolUseContext || $[4] !== props.workerBadge) {
const parsed = parseInput(props.toolUseConfirm.input);
({
file_path,
old_string,
new_string,
replace_all
} = parsed);
T2 = FilePermissionDialog;
t4 = props.toolUseConfirm;
t5 = props.toolUseContext;
t6 = props.onDone;
t7 = props.onReject;
t8 = props.workerBadge;
t9 = "Edit file";
t10 = relative(getCwd(), file_path);
T1 = Text;
t2 = "Do you want to make this edit to";
t3 = " ";
T0 = Text;
t0 = true;
t1 = basename(file_path);
$[0] = props.onDone;
$[1] = props.onReject;
$[2] = props.toolUseConfirm;
$[3] = props.toolUseContext;
$[4] = props.workerBadge;
$[5] = T0;
$[6] = T1;
$[7] = T2;
$[8] = file_path;
$[9] = new_string;
$[10] = old_string;
$[11] = replace_all;
$[12] = t0;
$[13] = t1;
$[14] = t10;
$[15] = t2;
$[16] = t3;
$[17] = t4;
$[18] = t5;
$[19] = t6;
$[20] = t7;
$[21] = t8;
$[22] = t9;
} else {
T0 = $[5];
T1 = $[6];
T2 = $[7];
file_path = $[8];
new_string = $[9];
old_string = $[10];
replace_all = $[11];
t0 = $[12];
t1 = $[13];
t10 = $[14];
t2 = $[15];
t3 = $[16];
t4 = $[17];
t5 = $[18];
t6 = $[19];
t7 = $[20];
t8 = $[21];
t9 = $[22];
}
let t11;
if ($[23] !== T0 || $[24] !== t0 || $[25] !== t1) {
t11 = <T0 bold={t0}>{t1}</T0>;
$[23] = T0;
$[24] = t0;
$[25] = t1;
$[26] = t11;
} else {
t11 = $[26];
}
let t12;
if ($[27] !== T1 || $[28] !== t11 || $[29] !== t2 || $[30] !== t3) {
t12 = <T1>{t2}{t3}{t11}?</T1>;
$[27] = T1;
$[28] = t11;
$[29] = t2;
$[30] = t3;
$[31] = t12;
} else {
t12 = $[31];
}
const t13 = replace_all || false;
let t14;
if ($[32] !== new_string || $[33] !== old_string || $[34] !== t13) {
t14 = [{
old_string,
new_string,
replace_all: t13
}];
$[32] = new_string;
$[33] = old_string;
$[34] = t13;
$[35] = t14;
} else {
t14 = $[35];
}
let t15;
if ($[36] !== file_path || $[37] !== t14) {
t15 = <FileEditToolDiff file_path={file_path} edits={t14} />;
$[36] = file_path;
$[37] = t14;
$[38] = t15;
} else {
t15 = $[38];
}
let t16;
if ($[39] !== T2 || $[40] !== file_path || $[41] !== t10 || $[42] !== t12 || $[43] !== t15 || $[44] !== t4 || $[45] !== t5 || $[46] !== t6 || $[47] !== t7 || $[48] !== t8 || $[49] !== t9) {
t16 = <T2 toolUseConfirm={t4} toolUseContext={t5} onDone={t6} onReject={t7} workerBadge={t8} title={t9} subtitle={t10} question={t12} content={t15} path={file_path} completionType="str_replace_single" parseInput={parseInput} ideDiffSupport={ideDiffSupport} />;
$[39] = T2;
$[40] = file_path;
$[41] = t10;
$[42] = t12;
$[43] = t15;
$[44] = t4;
$[45] = t5;
$[46] = t6;
$[47] = t7;
$[48] = t8;
$[49] = t9;
$[50] = t16;
} else {
t16 = $[50];
}
return t16;
}
function _temp(input) {
return FileEditTool.inputSchema.parse(input);
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJiYXNlbmFtZSIsInJlbGF0aXZlIiwiUmVhY3QiLCJGaWxlRWRpdFRvb2xEaWZmIiwiZ2V0Q3dkIiwieiIsIlRleHQiLCJGaWxlRWRpdFRvb2wiLCJGaWxlUGVybWlzc2lvbkRpYWxvZyIsImNyZWF0ZVNpbmdsZUVkaXREaWZmQ29uZmlnIiwiRmlsZUVkaXQiLCJJREVEaWZmU3VwcG9ydCIsIlBlcm1pc3Npb25SZXF1ZXN0UHJvcHMiLCJGaWxlRWRpdElucHV0IiwiaW5mZXIiLCJpbnB1dFNjaGVtYSIsImlkZURpZmZTdXBwb3J0IiwiZ2V0Q29uZmlnIiwiaW5wdXQiLCJmaWxlX3BhdGgiLCJvbGRfc3RyaW5nIiwibmV3X3N0cmluZyIsInJlcGxhY2VfYWxsIiwiYXBwbHlDaGFuZ2VzIiwibW9kaWZpZWRFZGl0cyIsImZpcnN0RWRpdCIsIkZpbGVFZGl0UGVybWlzc2lvblJlcXVlc3QiLCJwcm9wcyIsIiQiLCJfYyIsInBhcnNlSW5wdXQiLCJfdGVtcCIsIlQwIiwiVDEiLCJUMiIsInQwIiwidDEiLCJ0MTAiLCJ0MiIsInQzIiwidDQiLCJ0NSIsInQ2IiwidDciLCJ0OCIsInQ5Iiwib25Eb25lIiwib25SZWplY3QiLCJ0b29sVXNlQ29uZmlybSIsInRvb2xVc2VDb250ZXh0Iiwid29ya2VyQmFkZ2UiLCJwYXJzZWQiLCJ0MTEiLCJ0MTIiLCJ0MTMiLCJ0MTQiLCJ0MTUiLCJ0MTYiLCJwYXJzZSJdLCJzb3VyY2VzIjpbIkZpbGVFZGl0UGVybWlzc2lvblJlcXVlc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJhc2VuYW1lLCByZWxhdGl2ZSB9IGZyb20gJ3BhdGgnXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBGaWxlRWRpdFRvb2xEaWZmIH0gZnJvbSAnc3JjL2NvbXBvbmVudHMvRmlsZUVkaXRUb29sRGlmZi5qcydcbmltcG9ydCB7IGdldEN3ZCB9IGZyb20gJ3NyYy91dGlscy9jd2QuanMnXG5pbXBvcnQgdHlwZSB7IHogfSBmcm9tICd6b2QvdjQnXG5pbXBvcnQgeyBUZXh0IH0gZnJvbSAnLi4vLi4vLi4vaW5rLmpzJ1xuaW1wb3J0IHsgRmlsZUVkaXRUb29sIH0gZnJvbSAnLi4vLi4vLi4vdG9vbHMvRmlsZUVkaXRUb29sL0ZpbGVFZGl0VG9vbC5qcydcbmltcG9ydCB7IEZpbGVQZXJtaXNzaW9uRGlhbG9nIH0gZnJvbSAnLi4vRmlsZVBlcm1pc3Npb25EaWFsb2cvRmlsZVBlcm1pc3Npb25EaWFsb2cuanMnXG5pbXBvcnQge1xuICBjcmVhdGVTaW5nbGVFZGl0RGlmZkNvbmZpZyxcbiAgdHlwZSBGaWxlRWRpdCxcbiAgdHlwZSBJREVEaWZmU3VwcG9ydCxcbn0gZnJvbSAnLi4vRmlsZVBlcm1pc3Npb25EaWFsb2cvaWRlRGlmZkNvbmZpZy5qcydcbmltcG9ydCB0eXBlIHsgUGVybWlzc2lvblJlcXVlc3RQcm9wcyB9IGZyb20gJy4uL1Blcm1pc3Npb25SZXF1ZXN0LmpzJ1xuXG50eXBlIEZpbGVFZGl0SW5wdXQgPSB6LmluZmVyPHR5cGVvZiBGaWxlRWRpdFRvb2wuaW5wdXRTY2hlbWE+XG5cbmNvbnN0IGlkZURpZmZTdXBwb3J0OiBJREVEaWZmU3VwcG9ydDxGaWxlRWRpdElucHV0PiA9IHtcbiAgZ2V0Q29uZmlnOiAoaW5wdXQ6IEZpbGVFZGl0SW5wdXQpID0+XG4gICAgY3JlYXRlU2luZ2xlRWRpdERpZmZDb25maWcoXG4gICAgICBpbnB1dC5maWxlX3BhdGgsXG4gICAgICBpbnB1dC5vbGRfc3RyaW5nLFxuICAgICAgaW5wdXQubmV3X3N0cmluZyxcbiAgICAgIGlucHV0LnJlcGxhY2VfYWxsLFxuICAgICksXG4gIGFwcGx5Q2hhbmdlczogKGlucHV0OiBGaWxlRWRpdElucHV0LCBtb2RpZmllZEVkaXRzOiBGaWxlRWRpdFtdKSA9PiB7XG4gICAgY29uc3QgZmlyc3RFZGl0ID0gbW9kaWZpZWRFZGl0c1swXVxuICAgIGlmIChmaXJzdEVkaXQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmlucHV0LFxuICAgICAgICBvbGRfc3RyaW5nOiBmaXJzdEVkaXQub2xkX3N0cmluZyxcbiAgICAgICAgbmV3X3N0cmluZzogZmlyc3RFZGl0Lm5ld19zdHJpbmcsXG4gICAgICAgIHJlcGxhY2VfYWxsOiBmaXJzdEVkaXQucmVwbGFjZV9hbGwsXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBpbnB1dFxuICB9LFxufVxuXG5leHBvcnQgZnVuY3Rpb24gRmlsZUVkaXRQZXJtaXNzaW9uUmVxdWVzdChcbiAgcHJvcHM6IFBlcm1pc3Npb25SZXF1ZXN0UHJvcHMsXG4pOiBSZWFjdC5SZWFjdE5vZGUge1xuICBjb25zdCBwYXJzZUlucHV0ID0gKGlucHV0OiB1bmtub3duKTogRmlsZUVkaXRJbnB1dCA9PiB7XG4gICAgcmV0dXJuIEZpbGVFZGl0VG9vbC5pbnB1dFNjaGVtYS5wYXJzZShpbnB1dClcbiAgfVxuXG4gIGNvbnN0IHBhcnNlZCA9IHBhcnNlSW5wdXQocHJvcHMudG9vbFVzZUNvbmZpcm0uaW5wdXQpXG4gIGNvbnN0IHsgZmlsZV9wYXRoLCBvbGRfc3RyaW5nLCBuZXdfc3RyaW5nLCByZXBsYWNlX2FsbCB9ID0gcGFyc2VkXG5cbiAgcmV0dXJuIChcbiAgICA8RmlsZVBlcm1pc3Npb25EaWFsb2dcbiAgICAgIHRvb2xVc2VDb25maXJtPXtwcm9wcy50b29sVXNlQ29uZmlybX1cbiAgICAgIHRvb2xVc2VDb250ZXh0PXtwcm9wcy50b29sVXNlQ29udGV4dH1cbiAgICAgIG9uRG9uZT17cHJvcHMub25Eb25lfVxuICAgICAgb25SZWplY3Q9e3Byb3BzLm9uUmVqZWN0fVxuICAgICAgd29ya2VyQmFkZ2U9e3Byb3BzLndvcmtlckJhZGdlfVxuICAgICAgdGl0bGU9XCJFZGl0IGZpbGVcIlxuICAgICAgc3VidGl0bGU9e3JlbGF0aXZlKGdldEN3ZCgpLCBmaWxlX3BhdGgpfVxuICAgICAgcXVlc3Rpb249e1xuICAgICAgICA8VGV4dD5cbiAgICAgICAgICBEbyB5b3Ugd2FudCB0byBtYWtlIHRoaXMgZWRpdCB0b3snICd9XG4gICAgICAgICAgPFRleHQgYm9sZD57YmFzZW5hbWUoZmlsZV9wYXRoKX08L1RleHQ+P1xuICAgICAgICA8L1RleHQ+XG4gICAgICB9XG4gICAgICBjb250ZW50PXtcbiAgICAgICAgPEZpbGVFZGl0VG9vbERpZmZcbiAgICAgICAgICBmaWxlX3BhdGg9e2ZpbGVfcGF0aH1cbiAgICAgICAgICBlZGl0cz17W1xuICAgICAgICAgICAgeyBvbGRfc3RyaW5nLCBuZXdfc3RyaW5nLCByZXBsYWNlX2FsbDogcmVwbGFjZV9hbGwgfHwgZmFsc2UgfSxcbiAgICAgICAgICBdfVxuICAgICAgICAvPlxuICAgICAgfVxuICAgICAgcGF0aD17ZmlsZV9wYXRofVxuICAgICAgY29tcGxldGlvblR5cGU9XCJzdHJfcmVwbGFjZV9zaW5nbGVcIlxuICAgICAgcGFyc2VJbnB1dD17cGFyc2VJbnB1dH1cbiAgICAgIGlkZURpZmZTdXBwb3J0PXtpZGVEaWZmU3VwcG9ydH1cbiAgICAvPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxTQUFTQSxRQUFRLEVBQUVDLFFBQVEsUUFBUSxNQUFNO0FBQ3pDLE9BQU9DLEtBQUssTUFBTSxPQUFPO0FBQ3pCLFNBQVNDLGdCQUFnQixRQUFRLG9DQUFvQztBQUNyRSxTQUFTQyxNQUFNLFFBQVEsa0JBQWtCO0FBQ3pDLGNBQWNDLENBQUMsUUFBUSxRQUFRO0FBQy9CLFNBQVNDLElBQUksUUFBUSxpQkFBaUI7QUFDdEMsU0FBU0MsWUFBWSxRQUFRLDZDQUE2QztBQUMxRSxTQUFTQyxvQkFBb0IsUUFBUSxpREFBaUQ7QUFDdEYsU0FDRUMsMEJBQTBCLEVBQzFCLEtBQUtDLFFBQVEsRUFDYixLQUFLQyxjQUFjLFFBQ2QsMENBQTBDO0FBQ2pELGNBQWNDLHNCQUFzQixRQUFRLHlCQUF5QjtBQUVyRSxLQUFLQyxhQUFhLEdBQUdSLENBQUMsQ0FBQ1MsS0FBSyxDQUFDLE9BQU9QLFlBQVksQ0FBQ1EsV0FBVyxDQUFDO0FBRTdELE1BQU1DLGNBQWMsRUFBRUwsY0FB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