/ hooks / useTeleportResume.tsx
useTeleportResume.tsx
 1  import { c as _c } from "react/compiler-runtime";
 2  import { useCallback, useState } from 'react';
 3  import { setTeleportedSessionInfo } from 'src/bootstrap/state.js';
 4  import { type AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS, logEvent } from 'src/services/analytics/index.js';
 5  import type { TeleportRemoteResponse } from 'src/utils/conversationRecovery.js';
 6  import type { CodeSession } from 'src/utils/teleport/api.js';
 7  import { errorMessage, TeleportOperationError } from '../utils/errors.js';
 8  import { teleportResumeCodeSession } from '../utils/teleport.js';
 9  export type TeleportResumeError = {
10    message: string;
11    formattedMessage?: string;
12    isOperationError: boolean;
13  };
14  export type TeleportSource = 'cliArg' | 'localCommand';
15  export function useTeleportResume(source) {
16    const $ = _c(8);
17    const [isResuming, setIsResuming] = useState(false);
18    const [error, setError] = useState(null);
19    const [selectedSession, setSelectedSession] = useState(null);
20    let t0;
21    if ($[0] !== source) {
22      t0 = async session => {
23        setIsResuming(true);
24        setError(null);
25        setSelectedSession(session);
26        logEvent("tengu_teleport_resume_session", {
27          source: source as AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS,
28          session_id: session.id as AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS
29        });
30        ;
31        try {
32          const result = await teleportResumeCodeSession(session.id);
33          setTeleportedSessionInfo({
34            sessionId: session.id
35          });
36          setIsResuming(false);
37          return result;
38        } catch (t1) {
39          const err = t1;
40          const teleportError = {
41            message: err instanceof TeleportOperationError ? err.message : errorMessage(err),
42            formattedMessage: err instanceof TeleportOperationError ? err.formattedMessage : undefined,
43            isOperationError: err instanceof TeleportOperationError
44          };
45          setError(teleportError);
46          setIsResuming(false);
47          return null;
48        }
49      };
50      $[0] = source;
51      $[1] = t0;
52    } else {
53      t0 = $[1];
54    }
55    const resumeSession = t0;
56    let t1;
57    if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
58      t1 = () => {
59        setError(null);
60      };
61      $[2] = t1;
62    } else {
63      t1 = $[2];
64    }
65    const clearError = t1;
66    let t2;
67    if ($[3] !== error || $[4] !== isResuming || $[5] !== resumeSession || $[6] !== selectedSession) {
68      t2 = {
69        resumeSession,
70        isResuming,
71        error,
72        selectedSession,
73        clearError
74      };
75      $[3] = error;
76      $[4] = isResuming;
77      $[5] = resumeSession;
78      $[6] = selectedSession;
79      $[7] = t2;
80    } else {
81      t2 = $[7];
82    }
83    return t2;
84  }
85  //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZVN0YXRlIiwic2V0VGVsZXBvcnRlZFNlc3Npb25JbmZvIiwiQW5hbHl0aWNzTWV0YWRhdGFfSV9WRVJJRklFRF9USElTX0lTX05PVF9DT0RFX09SX0ZJTEVQQVRIUyIsImxvZ0V2ZW50IiwiVGVsZXBvcnRSZW1vdGVSZXNwb25zZSIsIkNvZGVTZXNzaW9uIiwiZXJyb3JNZXNzYWdlIiwiVGVsZXBvcnRPcGVyYXRpb25FcnJvciIsInRlbGVwb3J0UmVzdW1lQ29kZVNlc3Npb24iLCJUZWxlcG9ydFJlc3VtZUVycm9yIiwibWVzc2FnZSIsImZvcm1hdHRlZE1lc3NhZ2UiLCJpc09wZXJhdGlvbkVycm9yIiwiVGVsZXBvcnRTb3VyY2UiLCJ1c2VUZWxlcG9ydFJlc3VtZSIsInNvdXJjZSIsIiQiLCJfYyIsImlzUmVzdW1pbmciLCJzZXRJc1Jlc3VtaW5nIiwiZXJyb3IiLCJzZXRFcnJvciIsInNlbGVjdGVkU2Vzc2lvbiIsInNldFNlbGVjdGVkU2Vzc2lvbiIsInQwIiwic2Vzc2lvbiIsInNlc3Npb25faWQiLCJpZCIsInJlc3VsdCIsInNlc3Npb25JZCIsInQxIiwiZXJyIiwidGVsZXBvcnRFcnJvciIsInVuZGVmaW5lZCIsInJlc3VtZVNlc3Npb24iLCJTeW1ib2wiLCJmb3IiLCJjbGVhckVycm9yIiwidDIiXSwic291cmNlcyI6WyJ1c2VUZWxlcG9ydFJlc3VtZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBzZXRUZWxlcG9ydGVkU2Vzc2lvbkluZm8gfSBmcm9tICdzcmMvYm9vdHN0cmFwL3N0YXRlLmpzJ1xuaW1wb3J0IHtcbiAgdHlwZSBBbmFseXRpY3NNZXRhZGF0YV9JX1ZFUklGSUVEX1RISVNfSVNfTk9UX0NPREVfT1JfRklMRVBBVEhTLFxuICBsb2dFdmVudCxcbn0gZnJvbSAnc3JjL3NlcnZpY2VzL2FuYWx5dGljcy9pbmRleC5qcydcbmltcG9ydCB0eXBlIHsgVGVsZXBvcnRSZW1vdGVSZXNwb25zZSB9IGZyb20gJ3NyYy91dGlscy9jb252ZXJzYXRpb25SZWNvdmVyeS5qcydcbmltcG9ydCB0eXBlIHsgQ29kZVNlc3Npb24gfSBmcm9tICdzcmMvdXRpbHMvdGVsZXBvcnQvYXBpLmpzJ1xuaW1wb3J0IHsgZXJyb3JNZXNzYWdlLCBUZWxlcG9ydE9wZXJhdGlvbkVycm9yIH0gZnJvbSAnLi4vdXRpbHMvZXJyb3JzLmpzJ1xuaW1wb3J0IHsgdGVsZXBvcnRSZXN1bWVDb2RlU2Vzc2lvbiB9IGZyb20gJy4uL3V0aWxzL3RlbGVwb3J0LmpzJ1xuXG5leHBvcnQgdHlwZSBUZWxlcG9ydFJlc3VtZUVycm9yID0ge1xuICBtZXNzYWdlOiBzdHJpbmdcbiAgZm9ybWF0dGVkTWVzc2FnZT86IHN0cmluZ1xuICBpc09wZXJhdGlvbkVycm9yOiBib29sZWFuXG59XG5cbmV4cG9ydCB0eXBlIFRlbGVwb3J0U291cmNlID0gJ2NsaUFyZycgfCAnbG9jYWxDb21tYW5kJ1xuXG5leHBvcnQgZnVuY3Rpb24gdXNlVGVsZXBvcnRSZXN1bWUoc291cmNlOiBUZWxlcG9ydFNvdXJjZSkge1xuICBjb25zdCBbaXNSZXN1bWluZywgc2V0SXNSZXN1bWluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2Vycm9yLCBzZXRFcnJvcl0gPSB1c2VTdGF0ZTxUZWxlcG9ydFJlc3VtZUVycm9yIHwgbnVsbD4obnVsbClcbiAgY29uc3QgW3NlbGVjdGVkU2Vzc2lvbiwgc2V0U2VsZWN0ZWRTZXNzaW9uXSA9IHVzZVN0YXRlPENvZGVTZXNzaW9uIHwgbnVsbD4oXG4gICAgbnVsbCxcbiAgKVxuXG4gIGNvbnN0IHJlc3VtZVNlc3Npb24gPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoc2Vzc2lvbjogQ29kZVNlc3Npb24pOiBQcm9taXNlPFRlbGVwb3J0UmVtb3RlUmVzcG9uc2UgfCBudWxsPiA9PiB7XG4gICAgICBzZXRJc1Jlc3VtaW5nKHRydWUpXG4gICAgICBzZXRFcnJvcihudWxsKVxuICAgICAgc2V0U2VsZWN0ZWRTZXNzaW9uKHNlc3Npb24pXG5cbiAgICAgIC8vIExvZyB0ZWxlcG9ydCBzZXNzaW9uIHNlbGVjdGlvblxuICAgICAgbG9nRXZlbnQoJ3Rlbmd1X3RlbGVwb3J0X3Jlc3VtZV9zZXNzaW9uJywge1xuICAgICAgICBzb3VyY2U6XG4gICAgICAgICAgc291cmNlIGFzIEFuYWx5dGljc01ldGFkYXRhX0lfVkVSSUZJRURfVEhJU19JU19OT1RfQ09ERV9PUl9GSUxFUEFUSFMsXG4gICAgICAgIHNlc3Npb25faWQ6XG4gICAgICAgICAgc2Vzc2lvbi5pZCBhcyBBbmFseXRpY3NNZXRhZGF0YV9JX1ZFUklGSUVEX1RISVNfSVNfTk9UX0NPREVfT1JfRklMRVBBVEhTLFxuICAgICAgfSlcblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGVsZXBvcnRSZXN1bWVDb2RlU2Vzc2lvbihzZXNzaW9uLmlkKVxuICAgICAgICAvLyBUcmFjayB0ZWxlcG9ydGVkIHNlc3Npb24gZm9yIHJlbGlhYmlsaXR5IGxvZ2dpbmdcbiAgICAgICAgc2V0VGVsZXBvcnRlZFNlc3Npb25JbmZvKHsgc2Vzc2lvbklkOiBzZXNzaW9uLmlkIH0pXG4gICAgICAgIHNldElzUmVzdW1pbmcoZmFsc2UpXG4gICAgICAgIHJldHVybiByZXN1bHRcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBjb25zdCB0ZWxlcG9ydEVycm9yOiBUZWxlcG9ydFJlc3VtZUVycm9yID0ge1xuICAgICAgICAgIG1lc3NhZ2U6XG4gICAgICAgICAgICBlcnIgaW5zdGFuY2VvZiBUZWxlcG9ydE9wZXJhdGlvbkVycm9yXG4gICAgICAgICAgICAgID8gZXJyLm1lc3NhZ2VcbiAgICAgICAgICAgICAgOiBlcnJvck1lc3NhZ2UoZXJyKSxcbiAgICAgICAgICBmb3JtYXR0ZWRNZXNzYWdlOlxuICAgICAgICAgICAgZXJyIGluc3RhbmNlb2YgVGVsZXBvcnRPcGVyYXRpb25FcnJvclxuICAgICAgICAgICAgICA/IGVyci5mb3JtYXR0ZWRNZXNzYWdlXG4gICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgIGlzT3BlcmF0aW9uRXJyb3I6IGVyciBpbnN0YW5jZW9mIFRlbGVwb3J0T3BlcmF0aW9uRXJyb3IsXG4gICAgICAgIH1cbiAgICAgICAgc2V0RXJyb3IodGVsZXBvcnRFcnJvcilcbiAgICAgICAgc2V0SXNSZXN1bWluZyhmYWxzZSlcbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgIH1cbiAgICB9LFxuICAgIFtzb3VyY2VdLFxuICApXG5cbiAgY29uc3QgY2xlYXJFcnJvciA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRFcnJvcihudWxsKVxuICB9LCBbXSlcblxuICByZXR1cm4ge1xuICAgIHJlc3VtZVNlc3Npb24sXG4gICAgaXNSZXN1bWluZyxcbiAgICBlcnJvcixcbiAgICBzZWxlY3RlZFNlc3Npb24sXG4gICAgY2xlYXJFcnJvcixcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsU0FBU0EsV0FBVyxFQUFFQyxRQUFRLFFBQVEsT0FBTztBQUM3QyxTQUFTQyx3QkFBd0IsUUFBUSx3QkFBd0I7QUFDakUsU0FDRSxLQUFLQywwREFBMEQsRUFDL0RDLFFBQVEsUUFDSCxpQ0FBaUM7QUFDeEMsY0FBY0Msc0JBQXNCLFFBQVEsbUNBQW1DO0FBQy9FLGNBQWNDLFdBQVcsUUFBUSwyQkFBMkI7QUFDNUQsU0FBU0MsWUFBWSxFQUFFQyxzQkFBc0IsUUFBUSxvQkFBb0I7QUFDekUsU0FBU0MseUJBQXlCLFFBQVEsc0JBQXNCO0FBRWhFLE9BQU8sS0FBS0MsbUJBQW1CLEdBQUc7RUFDaENDLE9BQU8sRUFBRSxNQUFNO0VBQ2ZDLGdCQUFnQixDQUFDLEVBQUUsTUFBTTtFQUN6QkMsZ0JBQWdCLEVBQUUsT0FBTztBQUMzQixDQUFDO0FBRUQsT0FBTyxLQUFLQyxjQUFjLEdBQUcsUUFBUSxHQUFHLGNBQWM7QUFFdEQsT0FBTyxT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