/ components / permissions / NotebookEditPermissionRequest / NotebookEditPermissionRequest.tsx
NotebookEditPermissionRequest.tsx
  1  import { c as _c } from "react/compiler-runtime";
  2  import { basename } from 'path';
  3  import React from 'react';
  4  import type { z } from 'zod/v4';
  5  import { Text } from '../../../ink.js';
  6  import { NotebookEditTool } from '../../../tools/NotebookEditTool/NotebookEditTool.js';
  7  import { logError } from '../../../utils/log.js';
  8  import { FilePermissionDialog } from '../FilePermissionDialog/FilePermissionDialog.js';
  9  import type { PermissionRequestProps } from '../PermissionRequest.js';
 10  import { NotebookEditToolDiff } from './NotebookEditToolDiff.js';
 11  type NotebookEditInput = z.infer<typeof NotebookEditTool.inputSchema>;
 12  export function NotebookEditPermissionRequest(props) {
 13    const $ = _c(52);
 14    const parseInput = _temp;
 15    let T0;
 16    let T1;
 17    let T2;
 18    let language;
 19    let notebook_path;
 20    let parsed;
 21    let t0;
 22    let t1;
 23    let t10;
 24    let t2;
 25    let t3;
 26    let t4;
 27    let t5;
 28    let t6;
 29    let t7;
 30    let t8;
 31    let t9;
 32    if ($[0] !== props.onDone || $[1] !== props.onReject || $[2] !== props.toolUseConfirm || $[3] !== props.toolUseContext || $[4] !== props.workerBadge) {
 33      parsed = parseInput(props.toolUseConfirm.input);
 34      const {
 35        notebook_path: t11,
 36        edit_mode,
 37        cell_type
 38      } = parsed;
 39      notebook_path = t11;
 40      language = cell_type === "markdown" ? "markdown" : "python";
 41      const editTypeText = edit_mode === "insert" ? "insert this cell into" : edit_mode === "delete" ? "delete this cell from" : "make this edit to";
 42      T2 = FilePermissionDialog;
 43      t5 = props.toolUseConfirm;
 44      t6 = props.toolUseContext;
 45      t7 = props.onDone;
 46      t8 = props.onReject;
 47      t9 = props.workerBadge;
 48      t10 = "Edit notebook";
 49      T1 = Text;
 50      t2 = "Do you want to ";
 51      t3 = editTypeText;
 52      t4 = " ";
 53      T0 = Text;
 54      t0 = true;
 55      t1 = basename(notebook_path);
 56      $[0] = props.onDone;
 57      $[1] = props.onReject;
 58      $[2] = props.toolUseConfirm;
 59      $[3] = props.toolUseContext;
 60      $[4] = props.workerBadge;
 61      $[5] = T0;
 62      $[6] = T1;
 63      $[7] = T2;
 64      $[8] = language;
 65      $[9] = notebook_path;
 66      $[10] = parsed;
 67      $[11] = t0;
 68      $[12] = t1;
 69      $[13] = t10;
 70      $[14] = t2;
 71      $[15] = t3;
 72      $[16] = t4;
 73      $[17] = t5;
 74      $[18] = t6;
 75      $[19] = t7;
 76      $[20] = t8;
 77      $[21] = t9;
 78    } else {
 79      T0 = $[5];
 80      T1 = $[6];
 81      T2 = $[7];
 82      language = $[8];
 83      notebook_path = $[9];
 84      parsed = $[10];
 85      t0 = $[11];
 86      t1 = $[12];
 87      t10 = $[13];
 88      t2 = $[14];
 89      t3 = $[15];
 90      t4 = $[16];
 91      t5 = $[17];
 92      t6 = $[18];
 93      t7 = $[19];
 94      t8 = $[20];
 95      t9 = $[21];
 96    }
 97    let t11;
 98    if ($[22] !== T0 || $[23] !== t0 || $[24] !== t1) {
 99      t11 = <T0 bold={t0}>{t1}</T0>;
100      $[22] = T0;
101      $[23] = t0;
102      $[24] = t1;
103      $[25] = t11;
104    } else {
105      t11 = $[25];
106    }
107    let t12;
108    if ($[26] !== T1 || $[27] !== t11 || $[28] !== t2 || $[29] !== t3 || $[30] !== t4) {
109      t12 = <T1>{t2}{t3}{t4}{t11}?</T1>;
110      $[26] = T1;
111      $[27] = t11;
112      $[28] = t2;
113      $[29] = t3;
114      $[30] = t4;
115      $[31] = t12;
116    } else {
117      t12 = $[31];
118    }
119    const t13 = props.verbose ? 120 : 80;
120    let t14;
121    if ($[32] !== parsed.cell_id || $[33] !== parsed.cell_type || $[34] !== parsed.edit_mode || $[35] !== parsed.new_source || $[36] !== parsed.notebook_path || $[37] !== props.verbose || $[38] !== t13) {
122      t14 = <NotebookEditToolDiff notebook_path={parsed.notebook_path} cell_id={parsed.cell_id} new_source={parsed.new_source} cell_type={parsed.cell_type} edit_mode={parsed.edit_mode} verbose={props.verbose} width={t13} />;
123      $[32] = parsed.cell_id;
124      $[33] = parsed.cell_type;
125      $[34] = parsed.edit_mode;
126      $[35] = parsed.new_source;
127      $[36] = parsed.notebook_path;
128      $[37] = props.verbose;
129      $[38] = t13;
130      $[39] = t14;
131    } else {
132      t14 = $[39];
133    }
134    let t15;
135    if ($[40] !== T2 || $[41] !== language || $[42] !== notebook_path || $[43] !== t10 || $[44] !== t12 || $[45] !== t14 || $[46] !== t5 || $[47] !== t6 || $[48] !== t7 || $[49] !== t8 || $[50] !== t9) {
136      t15 = <T2 toolUseConfirm={t5} toolUseContext={t6} onDone={t7} onReject={t8} workerBadge={t9} title={t10} question={t12} content={t14} path={notebook_path} completionType="tool_use_single" languageName={language} parseInput={parseInput} />;
137      $[40] = T2;
138      $[41] = language;
139      $[42] = notebook_path;
140      $[43] = t10;
141      $[44] = t12;
142      $[45] = t14;
143      $[46] = t5;
144      $[47] = t6;
145      $[48] = t7;
146      $[49] = t8;
147      $[50] = t9;
148      $[51] = t15;
149    } else {
150      t15 = $[51];
151    }
152    return t15;
153  }
154  function _temp(input) {
155    const result = NotebookEditTool.inputSchema.safeParse(input);
156    if (!result.success) {
157      logError(new Error(`Failed to parse notebook edit input: ${result.error.message}`));
158      return {
159        notebook_path: "",
160        new_source: "",
161        cell_id: ""
162      } as NotebookEditInput;
163    }
164    return result.data;
165  }
166  //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJiYXNlbmFtZSIsIlJlYWN0IiwieiIsIlRleHQiLCJOb3RlYm9va0VkaXRUb29sIiwibG9nRXJyb3IiLCJGaWxlUGVybWlzc2lvbkRpYWxvZyIsIlBlcm1pc3Npb25SZXF1ZXN0UHJvcHMiLCJOb3RlYm9va0VkaXRUb29sRGlmZiIsIk5vdGVib29rRWRpdElucHV0IiwiaW5mZXIiLCJpbnB1dFNjaGVtYSIsIk5vdGVib29rRWRpdFBlcm1pc3Npb25SZXF1ZXN0IiwicHJvcHMiLCIkIiwiX2MiLCJwYXJzZUlucHV0IiwiX3RlbXAiLCJUMCIsIlQxIiwiVDIiLCJsYW5ndWFnZSIsIm5vdGVib29rX3BhdGgiLCJwYXJzZWQiLCJ0MCIsInQxIiwidDEwIiwidDIiLCJ0MyIsInQ0IiwidDUiLCJ0NiIsInQ3IiwidDgiLCJ0OSIsIm9uRG9uZSIsIm9uUmVqZWN0IiwidG9vbFVzZUNvbmZpcm0iLCJ0b29sVXNlQ29udGV4dCIsIndvcmtlckJhZGdlIiwiaW5wdXQiLCJ0MTEiLCJlZGl0X21vZGUiLCJjZWxsX3R5cGUiLCJlZGl0VHlwZVRleHQiLCJ0MTIiLCJ0MTMiLCJ2ZXJib3NlIiwidDE0IiwiY2VsbF9pZCIsIm5ld19zb3VyY2UiLCJ0MTUiLCJyZXN1bHQiLCJzYWZlUGFyc2UiLCJzdWNjZXNzIiwiRXJyb3IiLCJlcnJvciIsIm1lc3NhZ2UiLCJkYXRhIl0sInNvdXJjZXMiOlsiTm90ZWJvb2tFZGl0UGVybWlzc2lvblJlcXVlc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJhc2VuYW1lIH0gZnJvbSAncGF0aCdcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgeiB9IGZyb20gJ3pvZC92NCdcbmltcG9ydCB7IFRleHQgfSBmcm9tICcuLi8uLi8uLi9pbmsuanMnXG5pbXBvcnQgeyBOb3RlYm9va0VkaXRUb29sIH0gZnJvbSAnLi4vLi4vLi4vdG9vbHMvTm90ZWJvb2tFZGl0VG9vbC9Ob3RlYm9va0VkaXRUb29sLmpzJ1xuaW1wb3J0IHsgbG9nRXJyb3IgfSBmcm9tICcuLi8uLi8uLi91dGlscy9sb2cuanMnXG5pbXBvcnQgeyBGaWxlUGVybWlzc2lvbkRpYWxvZyB9IGZyb20gJy4uL0ZpbGVQZXJtaXNzaW9uRGlhbG9nL0ZpbGVQZXJtaXNzaW9uRGlhbG9nLmpzJ1xuaW1wb3J0IHR5cGUgeyBQZXJtaXNzaW9uUmVxdWVzdFByb3BzIH0gZnJvbSAnLi4vUGVybWlzc2lvblJlcXVlc3QuanMnXG5pbXBvcnQgeyBOb3RlYm9va0VkaXRUb29sRGlmZiB9IGZyb20gJy4vTm90ZWJvb2tFZGl0VG9vbERpZmYuanMnXG5cbnR5cGUgTm90ZWJvb2tFZGl0SW5wdXQgPSB6LmluZmVyPHR5cGVvZiBOb3RlYm9va0VkaXRUb29sLmlucHV0U2NoZW1hPlxuXG5leHBvcnQgZnVuY3Rpb24gTm90ZWJvb2tFZGl0UGVybWlzc2lvblJlcXVlc3QoXG4gIHByb3BzOiBQZXJtaXNzaW9uUmVxdWVzdFByb3BzLFxuKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgY29uc3QgcGFyc2VJbnB1dCA9IChpbnB1dDogdW5rbm93bik6IE5vdGVib29rRWRpdElucHV0ID0+IHtcbiAgICBjb25zdCByZXN1bHQgPSBOb3RlYm9va0VkaXRUb29sLmlucHV0U2NoZW1hLnNhZmVQYXJzZShpbnB1dClcbiAgICBpZiAoIXJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICBsb2dFcnJvcihcbiAgICAgICAgbmV3IEVycm9yKFxuICAgICAgICAgIGBGYWlsZWQgdG8gcGFyc2Ugbm90ZWJvb2sgZWRpdCBpbnB1dDogJHtyZXN1bHQuZXJyb3IubWVzc2FnZX1gLFxuICAgICAgICApLFxuICAgICAgKVxuICAgICAgLy8gUmV0dXJuIGEgZGVmYXVsdCB2YWx1ZSB0byBhdm9pZCBjcmFzaGluZ1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbm90ZWJvb2tfcGF0aDogJycsXG4gICAgICAgIG5ld19zb3VyY2U6ICcnLFxuICAgICAgICBjZWxsX2lkOiAnJyxcbiAgICAgIH0gYXMgTm90ZWJvb2tFZGl0SW5wdXRcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdC5kYXRhXG4gIH1cblxuICBjb25zdCBwYXJzZWQgPSBwYXJzZUlucHV0KHByb3BzLnRvb2xVc2VDb25maXJtLmlucHV0KVxuICBjb25zdCB7IG5vdGVib29rX3BhdGgsIGVkaXRfbW9kZSwgY2VsbF90eXBlIH0gPSBwYXJzZWRcblxuICBjb25zdCBsYW5ndWFnZSA9IGNlbGxfdHlwZSA9PT0gJ21hcmtkb3duJyA/ICdtYXJrZG93bicgOiAncHl0aG9uJ1xuXG4gIGNvbnN0IGVkaXRUeXBlVGV4dCA9XG4gICAgZWRpdF9tb2RlID09PSAnaW5zZXJ0J1xuICAgICAgPyAnaW5zZXJ0IHRoaXMgY2VsbCBpbnRvJ1xuICAgICAgOiBlZGl0X21vZGUgPT09ICdkZWxldGUnXG4gICAgICAgID8gJ2RlbGV0ZSB0aGlzIGNlbGwgZnJvbSdcbiAgICAgICAgOiAnbWFrZSB0aGlzIGVkaXQgdG8nXG5cbiAgcmV0dXJuIChcbiAgICA8RmlsZVBlcm1pc3Npb25EaWFsb2dcbiAgICAgIHRvb2xVc2VDb25maXJtPXtwcm9wcy50b29sVXNlQ29uZmlybX1cbiAgICAgIHRvb2xVc2VDb250ZXh0PXtwcm9wcy50b29sVXNlQ29udGV4dH1cbiAgICAgIG9uRG9uZT17cHJvcHMub25Eb25lfVxuICAgICAgb25SZWplY3Q9e3Byb3BzLm9uUmVqZWN0fVxuICAgICAgd29ya2VyQmFkZ2U9e3Byb3BzLndvcmtlckJhZGdlfVxuICAgICAgdGl0bGU9XCJFZGl0IG5vdGVib29rXCJcbiAgICAgIHF1ZXN0aW9uPXtcbiAgICAgICAgPFRleHQ+XG4gICAgICAgICAgRG8geW91IHdhbnQgdG8ge2VkaXRUeXBlVGV4dH17JyAnfVxuICAgICAgICAgIDxUZXh0IGJvbGQ+e2Jhc2VuYW1lKG5vdGVib29rX3BhdGgpfTwvVGV4dD4/XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIH1cbiAgICAgIGNvbnRlbnQ9e1xuICAgICAgICA8Tm90ZWJvb2tFZGl0VG9vbERpZmZcbiAgICAgICAgICBub3RlYm9va19wYXRoPXtwYXJzZWQubm90ZWJvb2tfcGF0aH1cbiAgICAgICAgICBjZWxsX2lkPXtwYXJzZWQuY2VsbF9pZH1cbiAgICAgICAgICBuZXdfc291cmNlPXtwYXJzZWQubmV3X3NvdXJjZX1cbiAgICAgICAgICBjZWxsX3R5cGU9e3BhcnNlZC5jZWxsX3R5cGV9XG4gICAgICAgICAgZWRpdF9tb2RlPXtwYXJzZWQuZWRpdF9tb2RlfVxuICAgICAgICAgIHZlcmJvc2U9e3Byb3BzLnZlcmJvc2V9XG4gICAgICAgICAgd2lkdGg9e3Byb3BzLnZlcmJvc2UgPyAxMjAgOiA4MH1cbiAgICAgICAgLz5cbiAgICAgIH1cbiAgICAgIHBhdGg9e25vdGVib29rX3BhdGh9XG4gICAgICBjb21wbGV0aW9uVHlwZT1cInRvb2xfdXNlX3NpbmdsZVwiXG4gICAgICBsYW5ndWFnZU5hbWU9e2xhbmd1YWdlfVxuICAgICAgcGFyc2VJbnB1dD17cGFyc2VJbnB1dH1cbiAgICAvPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxTQUFTQSxRQUFRLFFBQVEsTUFBTTtBQUMvQixPQUFPQyxLQUFLLE1BQU0sT0FBTztBQUN6QixjQUFjQyxDQUFDLFFBQVEsUUFBUTtBQUMvQixTQUFTQyxJQUFJLFFBQVEsaUJBQWlCO0FBQ3RDLFNBQVNDLGdCQUFnQixRQUFRLHFEQUFxRDtBQUN0RixTQUFTQyxRQUFRLFFBQVEsdUJBQXVCO0FBQ2hELFNBQVNDLG9CQUFvQixRQUFRLGlEQUFpRDtBQUN0RixjQUFjQyxzQkFBc0IsUUFBUSx5QkFBeUI7QUFDckUsU0FBU0Msb0JBQW9CLFFBQVEsMkJBQTJCO0FBRWhFLEtBQUtDLGlCQUFpQixHQUFHUCxDQUFDLENBQUNRLEtBQUssQ0FBQyxPQUFPTixnQkFBZ0IsQ0FBQ08sV0FBVyxDQUFDO0FBRXJFLE9BQU8sU0FBQUMsOEJBQUFDLEtBQUE7RUFBQSxNQUFBQyxDQUFBLEdBQUFDLEVBQUE7RUFHTCxNQUFBQyxVQUFBLEdBQW1CQyxLQWdCbEI7RUFBQSxJ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