πŸ“„ File detail

components/messages/UserCommandMessage.tsx

🧩 .tsxπŸ“ 108 linesπŸ’Ύ 9,210 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 UserCommandMessage β€” mainly types, interfaces, or factory objects. Dependencies touch React UI, @anthropic-ai, and figures. It composes internal code from constants, ink, and utils (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 type { TextBlockParam } from '@anthropic-ai/sdk/resources/index.mjs'; import figures from 'figures'; import * as React from 'react'; import { COMMAND_MESSAGE_TAG } from '../../constants/xml.js';

πŸ“€ Exports (heuristic)

  • UserCommandMessage

πŸ“š External import roots

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

  • react
  • @anthropic-ai
  • figures

πŸ–₯️ Source preview

import { c as _c } from "react/compiler-runtime";
import type { TextBlockParam } from '@anthropic-ai/sdk/resources/index.mjs';
import figures from 'figures';
import * as React from 'react';
import { COMMAND_MESSAGE_TAG } from '../../constants/xml.js';
import { Box, Text } from '../../ink.js';
import { extractTag } from '../../utils/messages.js';
type Props = {
  addMargin: boolean;
  param: TextBlockParam;
};
export function UserCommandMessage(t0) {
  const $ = _c(19);
  const {
    addMargin,
    param: t1
  } = t0;
  const {
    text
  } = t1;
  let t2;
  if ($[0] !== text) {
    t2 = extractTag(text, COMMAND_MESSAGE_TAG);
    $[0] = text;
    $[1] = t2;
  } else {
    t2 = $[1];
  }
  const commandMessage = t2;
  let t3;
  if ($[2] !== text) {
    t3 = extractTag(text, "command-args");
    $[2] = text;
    $[3] = t3;
  } else {
    t3 = $[3];
  }
  const args = t3;
  const isSkillFormat = extractTag(text, "skill-format") === "true";
  if (!commandMessage) {
    return null;
  }
  if (isSkillFormat) {
    const t4 = addMargin ? 1 : 0;
    let t5;
    if ($[4] === Symbol.for("react.memo_cache_sentinel")) {
      t5 = <Text color="subtle">{figures.pointer} </Text>;
      $[4] = t5;
    } else {
      t5 = $[4];
    }
    let t6;
    if ($[5] !== commandMessage) {
      t6 = <Text>{t5}<Text color="text">Skill({commandMessage})</Text></Text>;
      $[5] = commandMessage;
      $[6] = t6;
    } else {
      t6 = $[6];
    }
    let t7;
    if ($[7] !== t4 || $[8] !== t6) {
      t7 = <Box flexDirection="column" marginTop={t4} backgroundColor="userMessageBackground" paddingRight={1}>{t6}</Box>;
      $[7] = t4;
      $[8] = t6;
      $[9] = t7;
    } else {
      t7 = $[9];
    }
    return t7;
  }
  let t4;
  if ($[10] !== args || $[11] !== commandMessage) {
    t4 = [commandMessage, args].filter(Boolean);
    $[10] = args;
    $[11] = commandMessage;
    $[12] = t4;
  } else {
    t4 = $[12];
  }
  const content = `/${t4.join(" ")}`;
  const t5 = addMargin ? 1 : 0;
  let t6;
  if ($[13] === Symbol.for("react.memo_cache_sentinel")) {
    t6 = <Text color="subtle">{figures.pointer} </Text>;
    $[13] = t6;
  } else {
    t6 = $[13];
  }
  let t7;
  if ($[14] !== content) {
    t7 = <Text>{t6}<Text color="text">{content}</Text></Text>;
    $[14] = content;
    $[15] = t7;
  } else {
    t7 = $[15];
  }
  let t8;
  if ($[16] !== t5 || $[17] !== t7) {
    t8 = <Box flexDirection="column" marginTop={t5} backgroundColor="userMessageBackground" paddingRight={1}>{t7}</Box>;
    $[16] = t5;
    $[17] = t7;
    $[18] = t8;
  } else {
    t8 = $[18];
  }
  return t8;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUZXh0QmxvY2tQYXJhbSIsImZpZ3VyZXMiLCJSZWFjdCIsIkNPTU1BTkRfTUVTU0FHRV9UQUciLCJCb3giLCJUZXh0IiwiZXh0cmFjdFRhZyIsIlByb3BzIiwiYWRkTWFyZ2luIiwicGFyYW0iLCJVc2VyQ29tbWFuZE1lc3NhZ2UiLCJ0MCIsIiQiLCJfYyIsInQxIiwidGV4dCIsInQyIiwiY29tbWFuZE1lc3NhZ2UiLCJ0MyIsImFyZ3MiLCJpc1NraWxsRm9ybWF0IiwidDQiLCJ0NSIsIlN5bWJvbCIsImZvciIsInBvaW50ZXIiLCJ0NiIsInQ3IiwiZmlsdGVyIiwiQm9vbGVhbiIsImNvbnRlbnQiLCJqb2luIiwidDgiXSwic291cmNlcyI6WyJVc2VyQ29tbWFuZE1lc3NhZ2UudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVGV4dEJsb2NrUGFyYW0gfSBmcm9tICdAYW50aHJvcGljLWFpL3Nkay9yZXNvdXJjZXMvaW5kZXgubWpzJ1xuaW1wb3J0IGZpZ3VyZXMgZnJvbSAnZmlndXJlcydcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQ09NTUFORF9NRVNTQUdFX1RBRyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy94bWwuanMnXG5pbXBvcnQgeyBCb3gsIFRleHQgfSBmcm9tICcuLi8uLi9pbmsuanMnXG5pbXBvcnQgeyBleHRyYWN0VGFnIH0gZnJvbSAnLi4vLi4vdXRpbHMvbWVzc2FnZXMuanMnXG5cbnR5cGUgUHJvcHMgPSB7XG4gIGFkZE1hcmdpbjogYm9vbGVhblxuICBwYXJhbTogVGV4dEJsb2NrUGFyYW1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFVzZXJDb21tYW5kTWVzc2FnZSh7XG4gIGFkZE1hcmdpbixcbiAgcGFyYW06IHsgdGV4dCB9LFxufTogUHJvcHMpOiBSZWFjdC5SZWFjdE5vZGUge1xuICBjb25zdCBjb21tYW5kTWVzc2FnZSA9IGV4dHJhY3RUYWcodGV4dCwgQ09NTUFORF9NRVNTQUdFX1RBRylcbiAgY29uc3QgYXJncyA9IGV4dHJhY3RUYWcodGV4dCwgJ2NvbW1hbmQtYXJncycpXG4gIGNvbnN0IGlzU2tpbGxGb3JtYXQgPSBleHRyYWN0VGFnKHRleHQsICdza2lsbC1mb3JtYXQnKSA9PT0gJ3RydWUnXG5cbiAgaWYgKCFjb21tYW5kTWVzc2FnZSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICAvLyBTa2lsbHMgdXNlIFwiU2tpbGwobmFtZSlcIiBmb3JtYXRcbiAgaWYgKGlzU2tpbGxGb3JtYXQpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPEJveFxuICAgICAgICBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCJcbiAgICAgICAgbWFyZ2luVG9wPXthZGRNYXJnaW4gPyAxIDogMH1cbiAgICAgICAgYmFja2dyb3VuZENvbG9yPVwidXNlck1lc3NhZ2VCYWNrZ3JvdW5kXCJcbiAgICAgICAgcGFkZGluZ1JpZ2h0PXsxfVxuICAgICAgPlxuICAgICAgICA8VGV4dD5cbiAgICAgICAgICA8VGV4dCBjb2xvcj1cInN1YnRsZVwiPntmaWd1cmVzLnBvaW50ZXJ9IDwvVGV4dD5cbiAgICAgICAgICA8VGV4dCBjb2xvcj1cInRleHRcIj5Ta2lsbCh7Y29tbWFuZE1lc3NhZ2V9KTwvVGV4dD5cbiAgICAgICAgPC9UZXh0PlxuICAgICAgPC9Cb3g+XG4gICAgKVxuICB9XG5cbiAgLy8gU2xhc2ggY29tbWFuZCBmb3JtYXQ6IHNob3cgYXMgXCLina8gL2NvbW1hbmQgYXJnc1wiXG4gIGNvbnN0IGNvbnRlbnQgPSBgLyR7W2NvbW1hbmRNZXNzYWdlLCBhcmdzXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpfWBcbiAgcmV0dXJuIChcbiAgICA8Qm94XG4gICAgICBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCJcbiAgICAgIG1hcmdpblRvcD17YWRkTWFyZ2luID8gMSA6IDB9XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I9XCJ1c2VyTWVzc2FnZUJhY2tncm91bmRcIlxuICAgICAgcGFkZGluZ1JpZ2h0PXsxfVxuICAgID5cbiAgICAgIDxUZXh0PlxuICAgICAgICA8VGV4dCBjb2xvcj1cInN1YnRsZVwiPntmaWd1cmVzLnBvaW50ZXJ9IDwvVGV4dD5cbiAgICAgICAgPFRleHQgY29sb3I9XCJ0ZXh0XCI+e2NvbnRlbnR9PC9UZXh0PlxuICAgICAgPC9UZXh0PlxuICAgIDwvQm94PlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxjQUFjQSxjQUFjLFFBQVEsdUNBQXVDO0FBQzNFLE9BQU9DLE9BQU8sTUFBTSxTQUFTO0FBQzdCLE9BQU8sS0FBS0MsS0FBSyxNQUFNLE9BQU87QUFDOUIsU0FBU0MsbUJBQW1CLFFBQVEsd0JBQXdCO0FBQzVELFNBQVNDLEdBQUcsRUFBRUMsSUFBSSxRQUFRLGNBQWM7QUFDeEMsU0FBU0MsVUFBVSxRQUFRLHlCQUF5QjtBQUVwRCxLQUFLQyxLQUFLLEdBQUc7RUFDWEMsU0FBUyxFQUFFLE9BQU87RUFDbEJDLEtBQUssRUFBRVQsY0FBYztBQUN2QixDQUFDO0FBRUQsT0FBTyxTQUFBVSxtQkFBQUMsRUFBQTtFQUFBLE1BQUFDLENBQUEsR0FBQUMsRUFBQTtFQUE0QjtJQUFBTCxTQUFBO0lBQUFDLEtBQUEsRUFBQUs7RUFBQSxJQUFBSCxFQUczQjtFQURDO0lBQUFJO0VBQUEsSUFBQUQsRUFBUTtFQUFBLElBQUFFLEVBQUE7RUFBQSxJQUFBSixDQUFBLFFBQUFHLElBQUE7SUFFUUMsRUFBQSxHQUFBVixVQUFVLENBQUNTLElBQUksRUFBRVosbUJBQW1CLENBQUM7SUFBQVMsQ0FBQSxNQUFBRyxJQUFBO0lBQUFILENBQUEsTUFBQUksRUFBQTtFQUFBO0lBQUFBLEVBQUEsR0FBQUosQ0FBQTtFQUFBO0VBQTVELE1BQUFLLGNBQUEsR0FBdUJELEVBQXFDO0VBQUEsSUFBQUUsRUFBQTtFQUFBLElBQUFOLENBQUEsUUFBQUcsSUFBQTtJQUMvQ0csRUFBQSxHQUFBWixVQUFVLENBQUNTLElBQUksRUFBRSxjQUFjLENBQUM7SUFBQUgsQ0FBQSxNQUFBRyxJQUFBO0lBQUFILENB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