πŸ“„ File detail

components/agents/new-agent-creation/wizard-steps/MemoryStep.tsx

🧩 .tsxπŸ“ 113 linesπŸ’Ύ 14,084 bytesπŸ“ text
← Back to All Files

🎯 Use case

This file lives under β€œcomponents/”, which covers shared React UI pieces. On the API surface it exposes MemoryStep β€” mainly types, interfaces, or factory objects. Dependencies touch React UI. It composes internal code from ink, keybindings, memdir, tools, and ConfigurableShortcutHint (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 React, { type ReactNode } from 'react'; import { Box } from '../../../../ink.js'; import { useKeybinding } from '../../../../keybindings/useKeybinding.js'; import { isAutoMemoryEnabled } from '../../../../memdir/paths.js';

πŸ“€ Exports (heuristic)

  • MemoryStep

πŸ“š External import roots

Package roots from from "…" (relative paths omitted).

  • react

πŸ–₯️ Source preview

import { c as _c } from "react/compiler-runtime";
import React, { type ReactNode } from 'react';
import { Box } from '../../../../ink.js';
import { useKeybinding } from '../../../../keybindings/useKeybinding.js';
import { isAutoMemoryEnabled } from '../../../../memdir/paths.js';
import { type AgentMemoryScope, loadAgentMemoryPrompt } from '../../../../tools/AgentTool/agentMemory.js';
import { ConfigurableShortcutHint } from '../../../ConfigurableShortcutHint.js';
import { Select } from '../../../CustomSelect/select.js';
import { Byline } from '../../../design-system/Byline.js';
import { KeyboardShortcutHint } from '../../../design-system/KeyboardShortcutHint.js';
import { useWizard } from '../../../wizard/index.js';
import { WizardDialogLayout } from '../../../wizard/WizardDialogLayout.js';
import type { AgentWizardData } from '../types.js';
type MemoryOption = {
  label: string;
  value: AgentMemoryScope | 'none';
};
export function MemoryStep() {
  const $ = _c(13);
  const {
    goNext,
    goBack,
    updateWizardData,
    wizardData
  } = useWizard();
  let t0;
  if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
    t0 = {
      context: "Confirmation"
    };
    $[0] = t0;
  } else {
    t0 = $[0];
  }
  useKeybinding("confirm:no", goBack, t0);
  const isUserScope = wizardData.location === "userSettings";
  let t1;
  if ($[1] !== isUserScope) {
    t1 = isUserScope ? [{
      label: "User scope (~/.claude/agent-memory/) (Recommended)",
      value: "user"
    }, {
      label: "None (no persistent memory)",
      value: "none"
    }, {
      label: "Project scope (.claude/agent-memory/)",
      value: "project"
    }, {
      label: "Local scope (.claude/agent-memory-local/)",
      value: "local"
    }] : [{
      label: "Project scope (.claude/agent-memory/) (Recommended)",
      value: "project"
    }, {
      label: "None (no persistent memory)",
      value: "none"
    }, {
      label: "User scope (~/.claude/agent-memory/)",
      value: "user"
    }, {
      label: "Local scope (.claude/agent-memory-local/)",
      value: "local"
    }];
    $[1] = isUserScope;
    $[2] = t1;
  } else {
    t1 = $[2];
  }
  const memoryOptions = t1;
  let t2;
  if ($[3] !== goNext || $[4] !== updateWizardData || $[5] !== wizardData.finalAgent || $[6] !== wizardData.systemPrompt) {
    t2 = value => {
      const memory = value === "none" ? undefined : value as AgentMemoryScope;
      const agentType = wizardData.finalAgent?.agentType;
      updateWizardData({
        selectedMemory: memory,
        finalAgent: wizardData.finalAgent ? {
          ...wizardData.finalAgent,
          memory,
          getSystemPrompt: isAutoMemoryEnabled() && memory && agentType ? () => wizardData.systemPrompt + "\n\n" + loadAgentMemoryPrompt(agentType, memory) : () => wizardData.systemPrompt
        } : undefined
      });
      goNext();
    };
    $[3] = goNext;
    $[4] = updateWizardData;
    $[5] = wizardData.finalAgent;
    $[6] = wizardData.systemPrompt;
    $[7] = t2;
  } else {
    t2 = $[7];
  }
  const handleSelect = t2;
  let t3;
  if ($[8] === Symbol.for("react.memo_cache_sentinel")) {
    t3 = <Byline><KeyboardShortcutHint shortcut={"\u2191\u2193"} action="navigate" /><KeyboardShortcutHint shortcut="Enter" action="select" /><ConfigurableShortcutHint action="confirm:no" context="Confirmation" fallback="Esc" description="go back" /></Byline>;
    $[8] = t3;
  } else {
    t3 = $[8];
  }
  let t4;
  if ($[9] !== goBack || $[10] !== handleSelect || $[11] !== memoryOptions) {
    t4 = <WizardDialogLayout subtitle="Configure agent memory" footerText={t3}><Box><Select key="memory-select" options={memoryOptions} onChange={handleSelect} onCancel={goBack} /></Box></WizardDialogLayout>;
    $[9] = goBack;
    $[10] = handleSelect;
    $[11] = memoryOptions;
    $[12] = t4;
  } else {
    t4 = $[12];
  }
  return t4;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlJlYWN0Tm9kZSIsIkJveCIsInVzZUtleWJpbmRpbmciLCJpc0F1dG9NZW1vcnlFbmFibGVkIiwiQWdlbnRNZW1vcnlTY29wZSIsImxvYWRBZ2VudE1lbW9yeVByb21wdCIsIkNvbmZpZ3VyYWJsZVNob3J0Y3V0SGludCIsIlNlbGVjdCIsIkJ5bGluZSIsIktleWJvYXJkU2hvcnRjdXRIaW50IiwidXNlV2l6YXJkIiwiV2l6YXJkRGlhbG9nTGF5b3V0IiwiQWdlbnRXaXphcmREYXRhIiwiTWVtb3J5T3B0aW9uIiwibGFiZWwiLCJ2YWx1ZSIsIk1lbW9yeVN0ZXAiLCIkIiwiX2MiLCJnb05leHQiLCJnb0JhY2siLCJ1cGRhdGVXaXphcmREYXRhIiwid2l6YXJkRGF0YSIsInQwIiwiU3ltYm9sIiwiZm9yIiwiY29udGV4dCIsImlzVXNlclNjb3BlIiwibG9jYXRpb24iLCJ0MSIsIm1lbW9yeU9wdGlvbnMiLCJ0MiIsImZpbmFsQWdlbnQiLCJzeXN0ZW1Qcm9tcHQiLCJtZW1vcnkiLCJ1bmRlZmluZWQiLCJhZ2VudFR5cGUiLCJzZWxlY3RlZE1lbW9yeSIsImdldFN5c3RlbVByb21wdCIsImhhbmRsZVNlbGVjdCIsInQzIiwidDQiXSwic291cmNlcyI6WyJNZW1vcnlTdGVwLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdHlwZSBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IEJveCB9IGZyb20gJy4uLy4uLy4uLy4uL2luay5qcydcbmltcG9ydCB7IHVzZUtleWJpbmRpbmcgfSBmcm9tICcuLi8uLi8uLi8uLi9rZXliaW5kaW5ncy91c2VLZXliaW5kaW5nLmpzJ1xuaW1wb3J0IHsgaXNBdXRvTWVtb3J5RW5hYmxlZCB9IGZyb20gJy4uLy4uLy4uLy4uL21lbWRpci9wYXRocy5qcydcbmltcG9ydCB7XG4gIHR5cGUgQWdlbnRNZW1vcnlTY29wZSxcbiAgbG9hZEFnZW50TWVtb3J5UHJvbXB0LFxufSBmcm9tICcuLi8uLi8uLi8uLi90b29scy9BZ2VudFRvb2wvYWdlbnRNZW1vcnkuanMnXG5pbXBvcnQgeyBDb25maWd1cmFibGVTaG9ydGN1dEhpbnQgfSBmcm9tICcuLi8uLi8uLi9Db25maWd1cmFibGVTaG9ydGN1dEhpbnQuanMnXG5pbXBvcnQgeyBTZWxlY3QgfSBmcm9tICcuLi8uLi8uLi9DdXN0b21TZWxlY3Qvc2VsZWN0LmpzJ1xuaW1wb3J0IHsgQnlsaW5lIH0gZnJvbSAnLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9CeWxpbmUuanMnXG5pbXBvcnQgeyBLZXlib2FyZFNob3J0Y3V0SGludCB9IGZyb20gJy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vS2V5Ym9hcmRTaG9ydGN1dEhpbnQuanMnXG5pbXBvcnQgeyB1c2VXaXphcmQgfSBmcm9tICcuLi8uLi8uLi93aXphcmQvaW5kZXguanMnXG5pbXBvcnQgeyBXaXphcmREaWFsb2dMYXlvdXQgfSBmcm9tICcuLi8uLi8uLi93aXphcmQvV2l6YXJkRGlhbG9nTGF5b3V0LmpzJ1xuaW1wb3J0IHR5cGUgeyBBZ2VudFdpemFyZERhdGEgfSBmcm9tICcuLi90eXBlcy5qcydcblxudHlwZSBNZW1vcnlPcHRpb24gPSB7XG4gIGxhYmVsOiBzdHJpbmdcbiAgdmFsdWU6IEFnZW50TWVtb3J5U2NvcGUgfCAnbm9uZSdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIE1lbW9yeVN0ZXAoKTogUmVhY3ROb2RlIHtcbiAgY29uc3QgeyBnb05leHQsIGdvQmFjaywgdXBkYXRlV2l6YXJkRGF0YSwgd2l6YXJkRGF0YSB9ID1cbiAgICB1c2VXaXphcmQ8QWdlbnRXaXphcmREYXRhPigpXG5cbiAgdXNlS2V5YmluZGluZygnY29uZmlybTpubycsIGdvQmFjaywgeyBjb250ZXh0OiAnQ29uZmlybWF0aW9uJyB9KVxuXG4gIGNvbnN0IGlzVXNlclNjb3BlID0gd2l6YXJkRGF0YS5sb2NhdGlvbiA9PT0gJ3VzZXJTZXR0aW5ncydcblxuICAvLyBCdWlsZCBvcHRpb25zIHdpdGggdGhlIHJlY29tbWVuZGVkIGRlZmF1bHQgZmlyc3QsIHRoZW4gYWx0ZXJuYXRpdmVzXG4gIC8vIFRoZSByZWNvbW1lbmRlZCBzY29wZSBtYXRjaGVzIHRoZSBhZ2VudCdzIGxvY2F0aW9uIChwcm9qZWN0IGFnZW50IOKGkiBwcm9qZWN0IG1lbW9yeSwgdXNlciBhZ2VudCDihpIgdXNlciBtZW1vcnkpXG4gIGNvbnN0IG1lbW9yeU9wdGlvbnM6IE1lbW9yeU9wdGlvbltdID0gaXNVc2VyU2NvcGVcbiAgICA/IFtcbiAgICAgICAge1xuICAgICAgICAgIGxhYmVsOiAnVXNlciBzY29wZSAofi8uY2xhdWRlL2FnZW50LW1lbW9yeS8pIChSZWNvbW1lbmRlZCknLFxuICAgICAgICAgIHZhbHVlOiAndXNlcicsXG4gICAgICAgIH0sXG4gICAgICAgIHsgbGFiZWw6ICdOb25lIChubyBwZXJzaXN0ZW50IG1lbW9yeSknLCB2YWx1ZTogJ25vbmUnIH0sXG4gICAgICAgIHsgbGFiZWw6ICdQcm9qZWN0IHNjb3BlICguY2xhdWRlL2FnZW50LW1lbW9yeS8pJywgdmFsdWU6ICdwcm9qZWN0JyB9LFxuICAgICAgICB7IGxhYmVsOiAnTG9jYWwgc2NvcGUgKC5jbGF1ZGUvYWdlbnQtbWVtb3J5LWxvY2FsLyknLCB2YWx1ZTogJ2xvY2FsJyB9LFxuICAgICAgXVxuICAgIDogW1xuICAgICAgICB7XG4gICAgICAgICAgbGFiZWw6ICdQcm9qZWN0IHNjb3BlICguY2xhdWRlL2FnZW50LW1lbW9yeS8pIChSZWNvbW1lbmRlZCknLFxuICAgICAgICAgIHZhbHVlOiAncHJvamVjdCcsXG4gICAgICAgIH0sXG4gICAgICAgIHsgbGFiZWw6ICdOb25lIChubyBwZXJzaXN0ZW50IG1lbW9yeSknLCB2YWx1ZTogJ25vbmUnIH0sXG4gICAgICAgIHsgbGFiZWw6ICdVc2VyIHNjb3BlICh+Ly5jbGF1ZGUvYWdlbnQtbWVtb3J5LyknLCB2YWx1ZTogJ3VzZXInIH0sXG4gICAgICAgIHsgbGFiZWw6ICdMb2NhbCBzY29wZSAoLmNsYXVkZS9hZ2VudC1tZW1vcnktbG9jYWwvKScsIHZhbHVlOiAnbG9jYWwnIH0sXG4gICAgICBdXG5cbiAgY29uc3QgaGFuZGxlU2VsZWN0ID0gKHZhbHVlOiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgICBjb25zdCBtZW1vcnkgPSB2YWx1ZSA9PT0gJ25vbmUnID8gdW5kZWZpbmVkIDogKHZhbHVlIGFzIEFnZW50TWVtb3J5U2NvcGUpXG4gICAgY29uc3QgYWdlbnRUeXBlID0gd2l6YXJkRGF0YS5maW5hbEFnZW50Py5hZ2VudFR5cGVcbiAgICB1cGRhdGVXaXphcmREYXRhKHtcbiAgICAgIHNlbGVjdGVkTWVtb3J5OiBtZW1vcnksXG4gICAgICAvLyBVcGRhdGUgZmluYWxBZ2VudCB3aXRoIG1lbW9yeSBhbmQgcmV3aXJlIGdldFN5c3RlbVByb21wdCB0byBpbmNsdWRlIG1lbW9yeSBsb2FkaW5nLlxuICAgICAgLy8gRXhwbGljaXRseSBzZXQgbWVtb3J5IChub3QgY29uZGl0aW9uYWwgc3ByZWFkKSBzbyBzZWxlY3RpbmcgJ25vbmUnIGFmdGVyIGdvaW5nIGJhY2sgY2xlYXJzIGl0LlxuICAgICAgZmluYWxBZ2VudDogd2l6YXJkRGF0YS5maW5hbEFnZW50XG4gICAgICAgID8ge1xuICAgICAgICAgICAgLi4ud2l6YXJkRGF0YS5maW5hbEFnZW50LFxuICAgICAgICAgICAgbWVtb3J5LFxuICAgICAgICAgICAgZ2V0U3lzdGVtUHJvbXB0OlxuICAgICAgICAgICAgICBpc0F1dG9NZW1vcnlFbmFibGVkKCkgJiYgbWVtb3J5ICYmIGFnZW50VHlwZVxuICAgICAgICAgICAgICAgID8gKCkgPT5cbiAgICAgICAgICAgICAgICAgICAgd2l6YXJkRGF0YS5zeXN0ZW1Qcm9tcHQhICtcbiAgICAgICAgICAgICAgICAgICAgJ1xcblxcbicgK1xuICAgICAgICAgICAgICAgICAgICBsb2FkQWdlbnRNZW1vcnlQcm9tcHQoYWdlbnRUeXBlLCBtZW1vcnkpXG4gICAgICAgICAgICAgICAgOiAoKSA9PiB3aXphcmREYXRhLnN5c3RlbVByb21wdCEsXG4gICAgICAgICAgfVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICB9KVxuICAgIGdvTmV4dCgpXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxXaXphcmREaWFsb2dMYXlvdXRcbiAgICAgIHN1YnRpdGxlPVwiQ29uZmlndXJlIGFnZW50IG1lbW9yeVwiXG4gICAgICBmb290ZXJUZXh0PXtcbiAgICAgICAgPEJ5bGluZT5cbiAgICAgICAgICA8S2V5Ym9hcmRTaG9ydGN1dEhpbnQgc2hvcnRjdXQ9XCLihpHihpNcIiBhY3Rpb249XCJuYXZpZ2F0ZVwiIC8+XG4gICAgICAgICAgPEtleWJvYXJkU2hvcnRjdXRIaW50IHNob3J0Y3V0PVwiRW50ZXJcIiBhY3Rpb249XCJzZWxlY3RcIiAvPlxuICAgICAgICAgIDxDb25maWd1cmFibGVTaG9ydGN1dEhpbnRcbiAgICAgICAgICAgIGFjdGlvbj1cImNvbmZpcm06bm9cIlxuICAgICAgICAgICAgY29udGV4dD1cIkNvbmZpcm1hdGlvblwiXG4gICAgICAgICAgICBmYWxsYmFjaz1cIkVzY1wiXG4gICAgICAgICAgICBkZXNjcmlwdGlvbj1cImdvIGJhY2tcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvQnlsaW5lPlxuICAgICAgfVxuICAgID5cbiAgICAgIDxCb3g+XG4gICAgICAgIDxTZWxlY3RcbiAgICAgICAgICBrZXk9XCJtZW1vcnktc2VsZWN0XCJcbiAgICAgICAgICBvcHRpb25zPXttZW1vcnlPcHRpb25zfVxuICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVTZWxlY3R9XG4gICAgICAgICAgb25DYW5jZWw9e2dvQmFja31cbiAgICAgICAgLz5cbiAgICAgIDwvQm94PlxuICAgIDwvV2l6YXJkRGlhbG9nTGF5b3V0PlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPQSxLQUFLLElBQUksS0FBS0MsU0FBUyxRQUFRLE9BQU87QUFDN0MsU0FBU0MsR0FBRyxRQUFRLG9CQUFvQjtBQUN4QyxTQUFTQyxhQUFhLFFBQVEs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