source dump of claude code
at main 141 lines 12 kB view raw
1import { c as _c } from "react/compiler-runtime"; 2import * as React from 'react'; 3import { useState } from 'react'; 4import { Box, Text } from 'src/ink.js'; 5import { formatAPIError } from 'src/services/api/errorUtils.js'; 6import type { SystemAPIErrorMessage } from 'src/types/message.js'; 7import { useInterval } from 'usehooks-ts'; 8import { CtrlOToExpand } from '../CtrlOToExpand.js'; 9import { MessageResponse } from '../MessageResponse.js'; 10const MAX_API_ERROR_CHARS = 1000; 11type Props = { 12 message: SystemAPIErrorMessage; 13 verbose: boolean; 14}; 15export function SystemAPIErrorMessage(t0) { 16 const $ = _c(33); 17 const { 18 message: t1, 19 verbose 20 } = t0; 21 const { 22 retryAttempt, 23 error, 24 retryInMs, 25 maxRetries 26 } = t1; 27 const hidden = true && retryAttempt < 4; 28 const [countdownMs, setCountdownMs] = useState(0); 29 const done = countdownMs >= retryInMs; 30 let t2; 31 if ($[0] === Symbol.for("react.memo_cache_sentinel")) { 32 t2 = () => setCountdownMs(_temp); 33 $[0] = t2; 34 } else { 35 t2 = $[0]; 36 } 37 useInterval(t2, hidden || done ? null : 1000); 38 if (hidden) { 39 return null; 40 } 41 let t3; 42 if ($[1] !== countdownMs || $[2] !== retryInMs) { 43 t3 = Math.round((retryInMs - countdownMs) / 1000); 44 $[1] = countdownMs; 45 $[2] = retryInMs; 46 $[3] = t3; 47 } else { 48 t3 = $[3]; 49 } 50 const retryInSecondsLive = Math.max(0, t3); 51 let T0; 52 let T1; 53 let T2; 54 let t4; 55 let t5; 56 let t6; 57 let truncated; 58 if ($[4] !== error || $[5] !== verbose) { 59 const formatted = formatAPIError(error); 60 truncated = !verbose && formatted.length > MAX_API_ERROR_CHARS; 61 T2 = MessageResponse; 62 T1 = Box; 63 t6 = "column"; 64 T0 = Text; 65 t4 = "error"; 66 t5 = truncated ? formatted.slice(0, MAX_API_ERROR_CHARS) + "\u2026" : formatted; 67 $[4] = error; 68 $[5] = verbose; 69 $[6] = T0; 70 $[7] = T1; 71 $[8] = T2; 72 $[9] = t4; 73 $[10] = t5; 74 $[11] = t6; 75 $[12] = truncated; 76 } else { 77 T0 = $[6]; 78 T1 = $[7]; 79 T2 = $[8]; 80 t4 = $[9]; 81 t5 = $[10]; 82 t6 = $[11]; 83 truncated = $[12]; 84 } 85 let t7; 86 if ($[13] !== T0 || $[14] !== t4 || $[15] !== t5) { 87 t7 = <T0 color={t4}>{t5}</T0>; 88 $[13] = T0; 89 $[14] = t4; 90 $[15] = t5; 91 $[16] = t7; 92 } else { 93 t7 = $[16]; 94 } 95 let t8; 96 if ($[17] !== truncated) { 97 t8 = truncated && <CtrlOToExpand />; 98 $[17] = truncated; 99 $[18] = t8; 100 } else { 101 t8 = $[18]; 102 } 103 const t9 = retryInSecondsLive === 1 ? "second" : "seconds"; 104 let t10; 105 if ($[19] !== maxRetries || $[20] !== retryAttempt || $[21] !== retryInSecondsLive || $[22] !== t9) { 106 t10 = <Text dimColor={true}>Retrying in {retryInSecondsLive}{" "}{t9} (attempt{" "}{retryAttempt}/{maxRetries}){process.env.API_TIMEOUT_MS ? ` · API_TIMEOUT_MS=${process.env.API_TIMEOUT_MS}ms, try increasing it` : ""}</Text>; 107 $[19] = maxRetries; 108 $[20] = retryAttempt; 109 $[21] = retryInSecondsLive; 110 $[22] = t9; 111 $[23] = t10; 112 } else { 113 t10 = $[23]; 114 } 115 let t11; 116 if ($[24] !== T1 || $[25] !== t10 || $[26] !== t6 || $[27] !== t7 || $[28] !== t8) { 117 t11 = <T1 flexDirection={t6}>{t7}{t8}{t10}</T1>; 118 $[24] = T1; 119 $[25] = t10; 120 $[26] = t6; 121 $[27] = t7; 122 $[28] = t8; 123 $[29] = t11; 124 } else { 125 t11 = $[29]; 126 } 127 let t12; 128 if ($[30] !== T2 || $[31] !== t11) { 129 t12 = <T2>{t11}</T2>; 130 $[30] = T2; 131 $[31] = t11; 132 $[32] = t12; 133 } else { 134 t12 = $[32]; 135 } 136 return t12; 137} 138function _temp(ms) { 139 return ms + 1000; 140} 141//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZVN0YXRlIiwiQm94IiwiVGV4dCIsImZvcm1hdEFQSUVycm9yIiwiU3lzdGVtQVBJRXJyb3JNZXNzYWdlIiwidXNlSW50ZXJ2YWwiLCJDdHJsT1RvRXhwYW5kIiwiTWVzc2FnZVJlc3BvbnNlIiwiTUFYX0FQSV9FUlJPUl9DSEFSUyIsIlByb3BzIiwibWVzc2FnZSIsInZlcmJvc2UiLCJ0MCIsIiQiLCJfYyIsInQxIiwicmV0cnlBdHRlbXB0IiwiZXJyb3IiLCJyZXRyeUluTXMiLCJtYXhSZXRyaWVzIiwiaGlkZGVuIiwiY291bnRkb3duTXMiLCJzZXRDb3VudGRvd25NcyIsImRvbmUiLCJ0MiIsIlN5bWJvbCIsImZvciIsIl90ZW1wIiwidDMiLCJNYXRoIiwicm91bmQiLCJyZXRyeUluU2Vjb25kc0xpdmUiLCJtYXgiLCJUMCIsIlQxIiwiVDIiLCJ0NCIsInQ1IiwidDYiLCJ0cnVuY2F0ZWQiLCJmb3JtYXR0ZWQiLCJsZW5ndGgiLCJzbGljZSIsInQ3IiwidDgiLCJ0OSIsInQxMCIsInByb2Nlc3MiLCJlbnYiLCJBUElfVElNRU9VVF9NUyIsInQxMSIsInQxMiIsIm1zIl0sInNvdXJjZXMiOlsiU3lzdGVtQVBJRXJyb3JNZXNzYWdlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBCb3gsIFRleHQgfSBmcm9tICdzcmMvaW5rLmpzJ1xuaW1wb3J0IHsgZm9ybWF0QVBJRXJyb3IgfSBmcm9tICdzcmMvc2VydmljZXMvYXBpL2Vycm9yVXRpbHMuanMnXG5pbXBvcnQgdHlwZSB7IFN5c3RlbUFQSUVycm9yTWVzc2FnZSB9IGZyb20gJ3NyYy90eXBlcy9tZXNzYWdlLmpzJ1xuaW1wb3J0IHsgdXNlSW50ZXJ2YWwgfSBmcm9tICd1c2Vob29rcy10cydcbmltcG9ydCB7IEN0cmxPVG9FeHBhbmQgfSBmcm9tICcuLi9DdHJsT1RvRXhwYW5kLmpzJ1xuaW1wb3J0IHsgTWVzc2FnZVJlc3BvbnNlIH0gZnJvbSAnLi4vTWVzc2FnZVJlc3BvbnNlLmpzJ1xuXG5jb25zdCBNQVhfQVBJX0VSUk9SX0NIQVJTID0gMTAwMFxuXG50eXBlIFByb3BzID0ge1xuICBtZXNzYWdlOiBTeXN0ZW1BUElFcnJvck1lc3NhZ2VcbiAgdmVyYm9zZTogYm9vbGVhblxufVxuXG5leHBvcnQgZnVuY3Rpb24gU3lzdGVtQVBJRXJyb3JNZXNzYWdlKHtcbiAgbWVzc2FnZTogeyByZXRyeUF0dGVtcHQsIGVycm9yLCByZXRyeUluTXMsIG1heFJldHJpZXMgfSxcbiAgdmVyYm9zZSxcbn06IFByb3BzKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgLy8gSGlkZGVuIGZvciBlYXJseSByZXRyaWVzIG9uIGV4dGVybmFsIGJ1aWxkcyB0byBhdm9pZCBub2lzZS4gQ29tcHV0ZSBiZWZvcmVcbiAgLy8gdXNlSW50ZXJ2YWwgc28gd2UgbmV2ZXIgcmVnaXN0ZXIgYSB0aW1lciB0aGF0IGp1c3QgZHJpdmVzIGEgbnVsbCByZW5kZXIuXG4gIGNvbnN0IGhpZGRlbiA9IFwiZXh0ZXJuYWxcIiA9PT0gJ2V4dGVybmFsJyAmJiByZXRyeUF0dGVtcHQgPCA0XG5cbiAgY29uc3QgW2NvdW50ZG93bk1zLCBzZXRDb3VudGRvd25Nc10gPSB1c2VTdGF0ZSgwKVxuICBjb25zdCBkb25lID0gY291bnRkb3duTXMgPj0gcmV0cnlJbk1zXG4gIHVzZUludGVydmFsKFxuICAgICgpID0+IHNldENvdW50ZG93bk1zKG1zID0+IG1zICsgMTAwMCksXG4gICAgaGlkZGVuIHx8IGRvbmUgPyBudWxsIDogMTAwMCxcbiAgKVxuXG4gIGlmIChoaWRkZW4pIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgY29uc3QgcmV0cnlJblNlY29uZHNMaXZlID0gTWF0aC5tYXgoXG4gICAgMCxcbiAgICBNYXRoLnJvdW5kKChyZXRyeUluTXMgLSBjb3VudGRvd25NcykgLyAxMDAwKSxcbiAgKVxuXG4gIGNvbnN0IGZvcm1hdHRlZCA9IGZvcm1hdEFQSUVycm9yKGVycm9yKVxuICBjb25zdCB0cnVuY2F0ZWQgPSAhdmVyYm9zZSAmJiBmb3JtYXR0ZWQubGVuZ3RoID4gTUFYX0FQSV9FUlJPUl9DSEFSU1xuXG4gIHJldHVybiAoXG4gICAgPE1lc3NhZ2VSZXNwb25zZT5cbiAgICAgIDxCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiPlxuICAgICAgICA8VGV4dCBjb2xvcj1cImVycm9yXCI+XG4gICAgICAgICAge3RydW5jYXRlZFxuICAgICAgICAgICAgPyBmb3JtYXR0ZWQuc2xpY2UoMCwgTUFYX0FQSV9FUlJPUl9DSEFSUykgKyAn4oCmJ1xuICAgICAgICAgICAgOiBmb3JtYXR0ZWR9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgICAge3RydW5jYXRlZCAmJiA8Q3RybE9Ub0V4cGFuZCAvPn1cbiAgICAgICAgPFRleHQgZGltQ29sb3I+XG4gICAgICAgICAgUmV0cnlpbmcgaW4ge3JldHJ5SW5TZWNvbmRzTGl2ZX17JyAnfVxuICAgICAgICAgIHtyZXRyeUluU2Vjb25kc0xpdmUgPT09IDEgPyAnc2Vjb25kJyA6ICdzZWNvbmRzJ33igKYgKGF0dGVtcHR7JyAnfVxuICAgICAgICAgIHtyZXRyeUF0dGVtcHR9L3ttYXhSZXRyaWVzfSlcbiAgICAgICAgICB7cHJvY2Vzcy5lbnYuQVBJX1RJTUVPVVRfTVNcbiAgICAgICAgICAgID8gYCDCtyBBUElfVElNRU9VVF9NUz0ke3Byb2Nlc3MuZW52LkFQSV9USU1FT1VUX01TfW1zLCB0cnkgaW5jcmVhc2luZyBpdGBcbiAgICAgICAgICAgIDogJyd9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvQm94PlxuICAgIDwvTWVzc2FnZVJlc3BvbnNlPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEtBQUtBLEtBQUssTUFBTSxPQUFPO0FBQzlCLFNBQVNDLFFBQVEsUUFBUSxPQUFPO0FBQ2hDLFNBQVNDLEdBQUcsRUFBRUMsSUFBSSxRQUFR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