πŸ“„ File detail

components/tasks/renderToolActivity.tsx

🧩 .tsxπŸ“ 33 linesπŸ’Ύ 4,414 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 renderToolActivity β€” mainly functions, hooks, or classes. Dependencies touch React UI. It composes internal code from ink, Tool, tasks, and utils (relative imports).

Generated from folder role, exports, dependency roots, and inline comments β€” not hand-reviewed for every path.

🧠 Inline summary

import React from 'react'; import { Text } from '../../ink.js'; import type { Tools } from '../../Tool.js'; import { findToolByName } from '../../Tool.js'; import type { ToolActivity } from '../../tasks/LocalAgentTask/LocalAgentTask.js';

πŸ“€ Exports (heuristic)

  • renderToolActivity

πŸ“š External import roots

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

  • react

πŸ–₯️ Source preview

import React from 'react';
import { Text } from '../../ink.js';
import type { Tools } from '../../Tool.js';
import { findToolByName } from '../../Tool.js';
import type { ToolActivity } from '../../tasks/LocalAgentTask/LocalAgentTask.js';
import type { ThemeName } from '../../utils/theme.js';
export function renderToolActivity(activity: ToolActivity, tools: Tools, theme: ThemeName): React.ReactNode {
  const tool = findToolByName(tools, activity.toolName);
  if (!tool) {
    return activity.toolName;
  }
  try {
    const parsed = tool.inputSchema.safeParse(activity.input);
    const parsedInput = parsed.success ? parsed.data : {};
    const userFacingName = tool.userFacingName(parsedInput);
    if (!userFacingName) {
      return activity.toolName;
    }
    const toolArgs = tool.renderToolUseMessage(parsedInput, {
      theme,
      verbose: false
    });
    if (toolArgs) {
      return <Text>
          {userFacingName}({toolArgs})
        </Text>;
    }
    return userFacingName;
  } catch {
    return activity.toolName;
  }
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlRleHQiLCJUb29scyIsImZpbmRUb29sQnlOYW1lIiwiVG9vbEFjdGl2aXR5IiwiVGhlbWVOYW1lIiwicmVuZGVyVG9vbEFjdGl2aXR5IiwiYWN0aXZpdHkiLCJ0b29scyIsInRoZW1lIiwiUmVhY3ROb2RlIiwidG9vbCIsInRvb2xOYW1lIiwicGFyc2VkIiwiaW5wdXRTY2hlbWEiLCJzYWZlUGFyc2UiLCJpbnB1dCIsInBhcnNlZElucHV0Iiwic3VjY2VzcyIsImRhdGEiLCJ1c2VyRmFjaW5nTmFtZSIsInRvb2xBcmdzIiwicmVuZGVyVG9vbFVzZU1lc3NhZ2UiLCJ2ZXJib3NlIl0sInNvdXJjZXMiOlsicmVuZGVyVG9vbEFjdGl2aXR5LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBUZXh0IH0gZnJvbSAnLi4vLi4vaW5rLmpzJ1xuaW1wb3J0IHR5cGUgeyBUb29scyB9IGZyb20gJy4uLy4uL1Rvb2wuanMnXG5pbXBvcnQgeyBmaW5kVG9vbEJ5TmFtZSB9IGZyb20gJy4uLy4uL1Rvb2wuanMnXG5pbXBvcnQgdHlwZSB7IFRvb2xBY3Rpdml0eSB9IGZyb20gJy4uLy4uL3Rhc2tzL0xvY2FsQWdlbnRUYXNrL0xvY2FsQWdlbnRUYXNrLmpzJ1xuaW1wb3J0IHR5cGUgeyBUaGVtZU5hbWUgfSBmcm9tICcuLi8uLi91dGlscy90aGVtZS5qcydcblxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlclRvb2xBY3Rpdml0eShcbiAgYWN0aXZpdHk6IFRvb2xBY3Rpdml0eSxcbiAgdG9vbHM6IFRvb2xzLFxuICB0aGVtZTogVGhlbWVOYW1lLFxuKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgY29uc3QgdG9vbCA9IGZpbmRUb29sQnlOYW1lKHRvb2xzLCBhY3Rpdml0eS50b29sTmFtZSlcbiAgaWYgKCF0b29sKSB7XG4gICAgcmV0dXJuIGFjdGl2aXR5LnRvb2xOYW1lXG4gIH1cbiAgdHJ5IHtcbiAgICBjb25zdCBwYXJzZWQgPSB0b29sLmlucHV0U2NoZW1hLnNhZmVQYXJzZShhY3Rpdml0eS5pbnB1dClcbiAgICBjb25zdCBwYXJzZWRJbnB1dCA9IHBhcnNlZC5zdWNjZXNzID8gcGFyc2VkLmRhdGEgOiB7fVxuICAgIGNvbnN0IHVzZXJGYWNpbmdOYW1lID0gdG9vbC51c2VyRmFjaW5nTmFtZShwYXJzZWRJbnB1dClcbiAgICBpZiAoIXVzZXJGYWNpbmdOYW1lKSB7XG4gICAgICByZXR1cm4gYWN0aXZpdHkudG9vbE5hbWVcbiAgICB9XG4gICAgY29uc3QgdG9vbEFyZ3MgPSB0b29sLnJlbmRlclRvb2xVc2VNZXNzYWdlKHBhcnNlZElucHV0LCB7XG4gICAgICB0aGVtZSxcbiAgICAgIHZlcmJvc2U6IGZhbHNlLFxuICAgIH0pXG4gICAgaWYgKHRvb2xBcmdzKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8VGV4dD5cbiAgICAgICAgICB7dXNlckZhY2luZ05hbWV9KHt0b29sQXJnc30pXG4gICAgICAgIDwvVGV4dD5cbiAgICAgIClcbiAgICB9XG4gICAgcmV0dXJuIHVzZXJGYWNpbmdOYW1lXG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBhY3Rpdml0eS50b29sTmFtZVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLEtBQUssTUFBTSxPQUFPO0FBQ3pCLFNBQVNDLElBQUksUUFBUSxjQUFjO0FBQ25DLGNBQWNDLEtBQUssUUFBUSxlQUFlO0FBQzFDLFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLGNBQWNDLFlBQVksUUFBUSw4Q0FBOEM7QUFDaEYsY0FBY0MsU0FBUyxRQUFRLHNCQUFzQjtBQUVyRCxPQUFPLFNBQVNDLGtCQUFrQkEsQ0FDaENDLFFBQVEsRUFBRUgsWUFBWSxFQUN0QkksS0FBSyxFQUFFTixLQUFLLEVBQ1pPLEtBQUssRUFBRUosU0FBUyxDQUNqQixFQUFFTCxLQUFLLENBQUNVLFNBQVMsQ0FBQztFQUNqQixNQUFNQyxJQUFJLEdBQUdSLGNBQWMsQ0FBQ0ssS0FBSyxFQUFFRCxRQUFRLENBQUNLLFFBQVEsQ0FBQztFQUNyRCxJQUFJLENBQUNELElBQUksRUFBRTtJQUNULE9BQU9KLFFBQVEsQ0FBQ0ssUUFBUTtFQUMxQjtFQUNBLElBQUk7SUFDRixNQUFNQyxNQUFNLEdBQUdGLElBQUksQ0FBQ0csV0FBVyxDQUFDQyxTQUFTLENBQUNSLFFBQVEsQ0FBQ1MsS0FBSyxDQUFDO0lBQ3pELE1BQU1DLFdBQVcsR0FBR0osTUFBTSxDQUFDSyxPQUFPLEdBQUdMLE1BQU0sQ0FBQ00sSUFBSSxHQUFHLENBQUMsQ0FBQztJQUNyRCxNQUFNQyxjQUFjLEdBQUdULElBQUksQ0FBQ1MsY0FBYyxDQUFDSCxXQUFXLENBQUM7SUFDdkQsSUFBSSxDQUFDRyxjQUFjLEVBQUU7TUFDbkIsT0FBT2IsUUFBUSxDQUFDSyxRQUFRO0lBQzFCO0lBQ0EsTUFBTVMsUUFBUSxHQUFHVixJQUFJLENBQUNXLG9CQUFvQixDQUFDTCxXQUFXLEVBQUU7TUFDdERSLEtBQUs7TUFDTGMsT0FBTyxFQUFFO0lBQ1gsQ0FBQyxDQUFDO0lBQ0YsSUFBSUYsUUFBUSxFQUFFO01BQ1osT0FDRSxDQUFDLElBQUk7QUFDYixVQUFVLENBQUNELGNBQWMsQ0FBQyxDQUFDLENBQUNDLFFBQVEsQ0FBQztBQUNyQyxRQUFRLEVBQUUsSUFBSSxDQUFDO0lBRVg7SUFDQSxPQUFPRCxjQUFjO0VBQ3ZCLENBQUMsQ0FBQyxNQUFNO0lBQ04sT0FBT2IsUUFBUSxDQUFDSyxRQUFRO0VBQzFCO0FBQ0YiLCJpZ25vcmVMaXN0IjpbXX0=