rg: /home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/src: No such file or directory (os error 2)
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.d.ts:82:    terminal?: TerminalSettings;
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/assistant-message.js:7: * Component that renders a complete assistant message
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/assistant-message.js:46:    render(width) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/assistant-message.js:47:        const lines = super.render(width);
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/assistant-message.js:73:                // This avoids a superfluous blank line before separately-rendered tool execution blocks.
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.d.ts:45:    /** Where the widget is rendered. Defaults to "aboveEditor". */
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.d.ts:48:/** Raw terminal input listener for extensions. */
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.d.ts:55:    /** Animation frames. Use an empty array to hide the indicator entirely. Custom frames are rendered verbatim. */
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.d.ts:76:    /** Listen to raw terminal input (interactive mode only). Returns an unsubscribe function. */
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.d.ts:90:     * - Custom frames are rendered as provided, so extensions must add their own colors.
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.d.ts:96:    setWidget(key: string, content: string[] | undefined, options?: ExtensionWidgetOptions): void;
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.d.ts:97:    setWidget(key: string, content: ((tui: TUI, theme: Theme) => Component & {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.d.ts:113:    /** Set the terminal window/tab title. */
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.d.ts:211:    /** Current run mode. Use "tui" to guard terminal-only UI such as custom components. */
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.d.ts:303:/** Context passed to tool renderers. */
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.d.ts:305:    /** Current tool call arguments. Shared across call/result renders for the same tool call. */
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.d.ts:307:    /** Unique id for this tool execution. Stable across call/result renders for the same tool call. */
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.d.ts:311:    /** Previously returned component for this render slot, if any. */
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.d.ts:313:    /** Shared renderer state for this tool row. Initialized by tool-execution.ts. */
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.d.ts:346:    /** Controls whether ToolExecutionComponent renders the standard colored shell or the tool renders its own framing. */
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.d.ts:347:    renderShell?: "default" | "self";
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.d.ts:360:    /** Custom rendering for tool call display */
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.d.ts:361:    renderCall?: (args: Static<TParams>, theme: Theme, context: ToolRenderContext<TState, Static<TParams>>) => Component;
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.d.ts:362:    /** Custom rendering for tool result display */
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.d.ts:363:    renderResult?: (result: AgentToolResult<TDetails>, options: ToolRenderResultOptions, theme: Theme, context: ToolRenderContext<TState, Static<TParams>>) => Component;
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.d.ts:837:    /** Register a custom renderer for CustomMessageEntry. */
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.d.ts:838:    registerMessageRenderer<T = unknown>(customType: string, renderer: MessageRenderer<T>): void;
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/runner.js:70:    setWidget: () => { },
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/runner.js:324:            const renderer = ext.messageRenderers.get(customType);
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/runner.js:325:            if (renderer) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/runner.js:326:                return renderer;
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/loader.js:184:        registerMessageRenderer(customType, renderer) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/loader.js:186:            extension.messageRenderers.set(customType, renderer);
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/session-manager.d.ts:89: * display controls TUI rendering:
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/session-manager.d.ts:91: * - true: rendered with distinct styling (different from user messages)
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/tree-selector.d.ts:48:    render(width: number): string[];
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/tree-selector.d.ts:71: * Component that renders a session tree selector for navigation
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/tree-selector.d.ts:82:    constructor(tree: SessionTreeNode[], currentLeafId: string | null, terminalHeight: number, onSelect: (entryId: string) => void, onCancel: () => void, onLabelChange?: (entryId: string, label: string | undefined) => void, initialSelectedId?: string, initialFilterMode?: FilterMode);
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/diff.js:14: * Replace tabs with spaces for consistent rendering.
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/diff.js:20: * Compute word-level diff and render with inverse on changed parts.
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/diff.js:24:function renderIntraLineDiff(oldContent, newContent) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/diff.js:70:export function renderDiff(diffText, _options = {}) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/diff.js:106:                const { removedLine, addedLine } = renderIntraLineDiff(replaceTabs(removed.content), replaceTabs(added.content));
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/user-message.js:7: * Component that renders a user message
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/user-message.js:19:    render(width) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/user-message.js:20:        const lines = super.render(width);
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/oauth-selector.d.ts:9: * Component that renders an auth provider selector
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/theme-selector.js:9: * Component that renders a theme selector
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.js:665:        return this.settings.terminal?.showImages ?? true;
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.js:668:        if (!this.globalSettings.terminal) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.js:669:            this.globalSettings.terminal = {};
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.js:671:        this.globalSettings.terminal.showImages = show;
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.js:672:        this.markModified("terminal", "showImages");
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.js:676:        const width = this.settings.terminal?.imageWidthCells;
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.js:683:        if (!this.globalSettings.terminal) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.js:684:            this.globalSettings.terminal = {};
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.js:686:        this.globalSettings.terminal.imageWidthCells = Math.max(1, Math.floor(width));
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.js:687:        this.markModified("terminal", "imageWidthCells");
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.js:692:        if (this.settings.terminal?.clearOnShrink !== undefined) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.js:693:            return this.settings.terminal.clearOnShrink;
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.js:698:        if (!this.globalSettings.terminal) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.js:699:            this.globalSettings.terminal = {};
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.js:701:        this.globalSettings.terminal.clearOnShrink = enabled;
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.js:702:        this.markModified("terminal", "clearOnShrink");
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.js:706:        return this.settings.terminal?.showTerminalProgress ?? false;
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.js:709:        if (!this.globalSettings.terminal) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.js:710:            this.globalSettings.terminal = {};
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.js:712:        this.globalSettings.terminal.showTerminalProgress = enabled;
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.js:713:        this.markModified("terminal", "showTerminalProgress");
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-convert.d.ts:2: * Convert image to PNG format for terminal display.
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/ansi-to-html.d.ts:4: * Converts terminal ANSI color/style codes to HTML with inline styles.
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/theme-selector.d.ts:3: * Component that renders a theme selector
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/show-images-selector.js:9: * Component that renders a show images selector with borders
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/show-images-selector.js:16:            { value: "yes", label: "Yes", description: "Show images inline in terminal" },
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/render-utils.js:57:export function renderToolPath(rawPath, theme, cwd, options) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/render-utils.js:65://# sourceMappingURL=render-utils.js.map
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit-diff.d.ts:3: * Used by both edit.ts (for execution) and tool-execution.ts (for preview rendering).
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit-diff.d.ts:79: * Used for preview rendering in the TUI before the tool executes.
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit-diff.js:3: * Used by both edit.ts (for execution) and tool-execution.ts (for preview rendering).
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit-diff.js:312: * Used for preview rendering in the TUI before the tool executes.
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/write.js:9:import { normalizeDisplayText, renderToolPath, replaceTabs, str } from "./render-utils.js";
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/write.js:96:    const pathDisplay = renderToolPath(rawPath, theme, cwd);
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/write.js:103:        const renderedLines = lang
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/write.js:106:        const lines = trimTrailingEmptyLines(renderedLines);
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/write.js:165:        renderCall(args, theme, context) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/write.js:166:            const renderArgs = args;
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/write.js:167:            const rawPath = str(renderArgs?.file_path ?? renderArgs?.path);
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/write.js:168:            const fileContent = str(renderArgs?.content);
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/write.js:178:            component.setText(formatWriteCall(renderArgs, { expanded: context.expanded, isPartial: context.isPartial }, theme, component.cache, context.cwd));
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/write.js:181:        renderResult(result, _options, theme, context) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:15:      const { header, entries, leafId: defaultLeafId, systemPrompt, tools, renderedTools } = data;
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:712:      function renderTree() {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:719:        // Full render only on first call or when filter/search changes
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:790:      function forceTreeRerender() {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:792:        renderTree();
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:904:      function renderToolCall(call) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:920:        const renderResultImages = () => {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:960:              html += renderResultImages();
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:1025:            // Check for pre-rendered custom tool HTML
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:1026:            const rendered = renderedTools?.[call.id];
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:1027:            if (rendered?.callHtml || rendered?.resultHtmlCollapsed || rendered?.resultHtmlExpanded) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:1028:              // Custom tool with pre-rendered HTML from TUI renderer
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:1029:              if (rendered.callHtml) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:1030:                html += `<div class="tool-header ansi-rendered">${rendered.callHtml}</div>`;
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:1035:              if (rendered.resultHtmlCollapsed && rendered.resultHtmlExpanded && rendered.resultHtmlCollapsed !== rendered.resultHtmlExpanded) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:1036:                // Both collapsed and expanded differ - render expandable section
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:1037:                html += `<div class="tool-output expandable ansi-rendered" onclick="if(window.getSelection().toString())return;this.classList.toggle('expanded')">
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:1038:                  <div class="output-preview">${rendered.resultHtmlCollapsed}</div>
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:1039:                  <div class="output-full">${rendered.resultHtmlExpanded}</div>
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:1041:              } else if (rendered.resultHtmlExpanded) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:1043:                html += `<div class="tool-output ansi-rendered">${rendered.resultHtmlExpanded}</div>`;
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:1045:                // No pre-rendered result HTML - fallback to JSON
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:1165:      function renderCopyLinkButton(entryId) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:1174:      function renderEntry(entry) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:1178:        const copyBtnHtml = renderCopyLinkButton(entry.id);
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:1259:                html += renderToolCall(block);
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:1366:      function renderHeader() {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:1461:      // Cache for rendered entry DOM nodes
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:1468:          // were already resolved from the escaped id rendered by renderToolCall().
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:1474:      function renderEntryToNode(entry) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:1481:        const html = renderEntry(entry);
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:1500:        renderTree();
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:1502:        document.getElementById('header-container').innerHTML = renderHeader();
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:1510:          const node = renderEntryToNode(entry);
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:1536:            // Tool result entries are rendered inside their assistant tool-call block,
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:1565:          // matching the TUI markdown renderer.
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:1583:        renderer: {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:1639:      // Simple marked parse (escaping handled in renderers)
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:1648:        forceTreeRerender();
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:1657:          forceTreeRerender();
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js:1851:      // Initial render
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/index.js:118:/** Tools rendered directly by the HTML template (not pre-rendered via TUI→ANSI→HTML pipeline) */
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/index.js:121: * Pre-render custom tools to HTML using their TUI renderers.
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/index.js:124:    const renderedTools = {};
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/index.js:133:                    const callHtml = toolRenderer.renderCall(block.id, block.name, block.arguments);
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/index.js:135:                        renderedTools[block.id] = { callHtml };
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/index.js:143:            // Only render if we have a pre-rendered call OR it's not template-rendered
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/index.js:144:            const existing = renderedTools[msg.toolCallId];
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/index.js:146:                const rendered = toolRenderer.renderResult(msg.toolCallId, toolName, msg.content, msg.details, msg.isError || false);
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/index.js:147:                if (rendered) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/index.js:148:                    renderedTools[msg.toolCallId] = {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/index.js:150:                        resultHtmlCollapsed: rendered.collapsed,
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/index.js:151:                        resultHtmlExpanded: rendered.expanded,
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/index.js:157:    return renderedTools;
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/index.js:173:    // Pre-render custom tools if a tool renderer is provided
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/index.js:174:    let renderedTools;
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/index.js:176:        renderedTools = preRenderCustomTools(entries, opts.toolRenderer);
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/index.js:177:        // Only include if we actually rendered something
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/index.js:178:        if (Object.keys(renderedTools).length === 0) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/index.js:179:            renderedTools = undefined;
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/index.js:188:        renderedTools,
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/ansi-to-html.js:4: * Converts terminal ANSI color/style codes to HTML with inline styles.
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts:13:    private rendererState;
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts:58:    render(width: number): string[];
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/tool-definition-wrapper.js:21: * provides plain AgentTool overrides that do not include prompt metadata or renderers.
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/visual-truncate.d.ts:13: * This accounts for line wrapping based on terminal width.
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/visual-truncate.d.ts:17: * @param width - Terminal/render width
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/index.d.ts:4: * Interface for rendering custom tools to HTML.
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/index.d.ts:5: * Used by agent-session to pre-render extension tool output.
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/index.d.ts:8:    /** Render a tool call to HTML. Returns undefined if tool has no custom renderer. */
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/index.d.ts:9:    renderCall(toolCallId: string, toolName: string, args: unknown): string | undefined;
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/index.d.ts:10:    /** Render a tool result to HTML. Returns collapsed/expanded or undefined if tool has no custom renderer. */
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/index.d.ts:11:    renderResult(toolCallId: string, toolName: string, result: Array<{
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/index.d.ts:24:    /** Optional tool renderer for custom tools */
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.js:2: * Tool HTML renderer for custom tools in HTML export.
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.js:4: * Renders custom tool calls and results to HTML by invoking their TUI renderers
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.js:9: * Create a tool HTML renderer.
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.js:11: * The renderer looks up tool definitions and invokes their renderCall/renderResult
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.js:29:    const renderedCallComponents = new Map();
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.js:30:    const renderedResultComponents = new Map();
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.js:31:    const renderedStates = new Map();
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.js:32:    const renderedArgs = new Map();
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.js:34:        let state = renderedStates.get(toolCallId);
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.js:37:            renderedStates.set(toolCallId, state);
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.js:43:            args: renderedArgs.get(toolCallId),
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.js:58:        renderCall(toolCallId, toolName, args) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.js:60:                renderedArgs.set(toolCallId, args);
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.js:62:                if (!toolDef?.renderCall) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.js:65:                const component = toolDef.renderCall(args, theme, createRenderContext(toolCallId, renderedCallComponents.get(toolCallId), false, true, false));
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.js:66:                renderedCallComponents.set(toolCallId, component);
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.js:67:                const lines = component.render(width);
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.js:71:                // On error, return undefined so HTML export can fall back to structured result rendering
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.js:75:        renderResult(toolCallId, toolName, result, details, isError) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.js:78:                if (!toolDef?.renderResult) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.js:89:                const collapsedComponent = toolDef.renderResult(agentToolResult, { expanded: false, isPartial: false }, theme, createRenderContext(toolCallId, renderedResultComponents.get(toolCallId), false, false, isError));
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.js:90:                renderedResultComponents.set(toolCallId, collapsedComponent);
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.js:91:                const collapsed = ansiLinesToHtml(trimRenderedResultLines(collapsedComponent.render(width)));
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.js:93:                const expandedComponent = toolDef.renderResult(agentToolResult, { expanded: true, isPartial: false }, theme, createRenderContext(toolCallId, renderedResultComponents.get(toolCallId), true, false, isError));
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.js:94:                renderedResultComponents.set(toolCallId, expandedComponent);
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.js:95:                const expanded = ansiLinesToHtml(trimRenderedResultLines(expandedComponent.render(width)));
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.js:102:                // On error, return undefined so HTML export can fall back to structured result rendering
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.js:108://# sourceMappingURL=tool-renderer.js.map
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/read.js:13:import { getTextOutput, renderToolPath, replaceTabs, str } from "./render-utils.js";
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/read.js:35:    const pathDisplay = renderToolPath(str(args?.file_path ?? args?.path), theme, cwd);
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/read.js:107:    const renderedLines = lang ? highlightCode(replaceTabs(output), lang) : output.split("\n");
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/read.js:108:    const lines = trimTrailingEmptyLines(renderedLines);
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/read.js:271:        renderCall(args, theme, context) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/read.js:279:        renderResult(result, options, theme, context) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.js:12:import { getTextOutput, invalidArgText, str } from "./render-utils.js";
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.js:139:                render: (width) => {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.js:305:        renderCall(args, _theme, context) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.js:315:        renderResult(result, options, _theme, context) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/branch-summary-message.d.ts:4: * Component that renders a branch summary message with collapsed/expanded state.
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.d.ts:2: * Tool HTML renderer for custom tools in HTML export.
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.d.ts:4: * Renders custom tool calls and results to HTML by invoking their TUI renderers
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.d.ts:14:    /** Working directory for render context */
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.d.ts:16:    /** Terminal width for rendering (default: 100) */
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.d.ts:20:    /** Render a tool call to HTML. Returns undefined if tool has no custom renderer. */
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.d.ts:21:    renderCall(toolCallId: string, toolName: string, args: unknown): string | undefined;
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.d.ts:22:    /** Render a tool result to collapsed/expanded HTML. Returns undefined if tool has no custom renderer. */
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.d.ts:23:    renderResult(toolCallId: string, toolName: string, result: Array<{
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.d.ts:34://# sourceMappingURL=tool-renderer.d.ts.map
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/visual-truncate.js:8: * This accounts for line wrapping based on terminal width.
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/visual-truncate.js:12: * @param width - Terminal/render width
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/visual-truncate.js:22:    // Create a temporary Text component to render and get visual lines
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/visual-truncate.js:24:    const allVisualLines = tempText.render(width);
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/custom-message.d.ts:5: * Component that renders a custom message entry from extensions.
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/index.js:11:export { renderDiff } from "./diff.js";
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/config-selector.js:125:    render(width) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/config-selector.js:159:    constructor(groups, settingsManager, cwd, agentDir, terminalHeight) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/config-selector.js:167:        this.maxVisible = Math.max(5, (terminalHeight ?? 24) - chrome);
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/config-selector.js:260:    render(width) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/config-selector.js:263:        lines.push(...this.searchInput.render(width));
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/config-selector.js:483:    constructor(resolvedPaths, settingsManager, cwd, agentDir, onClose, onExit, requestRender, terminalHeight) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/config-selector.js:493:        this.resourceList = new ResourceList(groups, settingsManager, cwd, agentDir, terminalHeight);
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/show-images-selector.d.ts:3: * Component that renders a show images selector with borders
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/grep.js:10:import { getTextOutput, invalidArgText, shortenPath, str } from "./render-utils.js";
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/grep.js:289:        renderCall(args, theme, context) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/grep.js:294:        renderResult(result, options, theme, context) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/ls.js:7:import { getTextOutput, renderToolPath, str } from "./render-utils.js";
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/ls.js:22:    const pathDisplay = renderToolPath(str(args?.path), theme, cwd, { emptyFallback: "." });
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/ls.js:152:        renderCall(args, theme, context) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/ls.js:157:        renderResult(result, options, theme, context) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/render-utils.d.ts:21:export declare function renderToolPath(rawPath: string | null, theme: Theme, cwd: string, options?: {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/render-utils.d.ts:24://# sourceMappingURL=render-utils.d.ts.map
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/utils/clipboard.js:28:    // Prefer direct clipboard writes. Emitting OSC 52 first can make terminals
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/utils/clipboard.js:30:    // OSC 52 payloads can desynchronize terminal rendering.
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/utils/syntax-highlight.js:59:export function renderHighlightedHtml(html, theme = {}) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/utils/syntax-highlight.js:113:    return renderHighlightedHtml(html, options.theme);
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/vendor/highlight.min.js:317:}),re=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],se=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],oe=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],le=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],ce=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse(),de=oe.concat(le)
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/tree-selector.js:491:    render(width) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/tree-selector.js:950:    render(width) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/tree-selector.js:982:    render(width) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/tree-selector.js:987:        lines.push(...this.input.render(availableWidth).map((line) => truncateToWidth(`${indent}${line}`, width)));
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/tree-selector.js:1006: * Component that renders a session tree selector for navigation
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/tree-selector.js:1026:    constructor(tree, currentLeafId, terminalHeight, onSelect, onCancel, onLabelChange, initialSelectedId, initialFilterMode) {
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/tree-selector.js:1029:        const maxVisibleLines = Math.max(5, Math.floor(terminalHeight / 2));
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/session-selector.d.ts:45:    render(width: number): string[];
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/session-selector.d.ts:51: * Component that renders a session selector
/home/sebas/.npm-global/lib/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/oauth-selector.js:5: * Component that renders an auth provider selector
