Features: - 30+ Custom Skills (cognitive, development, UI/UX, autonomous agents) - RalphLoop autonomous agent integration - Multi-AI consultation (Qwen) - Agent management system with sync capabilities - Custom hooks for session management - MCP servers integration - Plugin marketplace setup - Comprehensive installation script Components: - Skills: always-use-superpowers, ralph, brainstorming, ui-ux-pro-max, etc. - Agents: 100+ agents across engineering, marketing, product, etc. - Hooks: session-start-superpowers, qwen-consult, ralph-auto-trigger - Commands: /brainstorm, /write-plan, /execute-plan - MCP Servers: zai-mcp-server, web-search-prime, web-reader, zread - Binaries: ralphloop wrapper Installation: ./supercharge.sh
83 lines
2.6 KiB
JavaScript
83 lines
2.6 KiB
JavaScript
import { renderSessionLine } from './session-line.js';
|
|
import { renderToolsLine } from './tools-line.js';
|
|
import { renderAgentsLine } from './agents-line.js';
|
|
import { renderTodosLine } from './todos-line.js';
|
|
import { renderIdentityLine, renderProjectLine, renderEnvironmentLine, renderUsageLine, } from './lines/index.js';
|
|
import { dim, RESET } from './colors.js';
|
|
function visualLength(str) {
|
|
// eslint-disable-next-line no-control-regex
|
|
return str.replace(/\x1b\[[0-9;]*m/g, '').length;
|
|
}
|
|
function makeSeparator(length) {
|
|
return dim('─'.repeat(Math.max(length, 20)));
|
|
}
|
|
function collectActivityLines(ctx) {
|
|
const activityLines = [];
|
|
const display = ctx.config?.display;
|
|
if (display?.showTools !== false) {
|
|
const toolsLine = renderToolsLine(ctx);
|
|
if (toolsLine) {
|
|
activityLines.push(toolsLine);
|
|
}
|
|
}
|
|
if (display?.showAgents !== false) {
|
|
const agentsLine = renderAgentsLine(ctx);
|
|
if (agentsLine) {
|
|
activityLines.push(agentsLine);
|
|
}
|
|
}
|
|
if (display?.showTodos !== false) {
|
|
const todosLine = renderTodosLine(ctx);
|
|
if (todosLine) {
|
|
activityLines.push(todosLine);
|
|
}
|
|
}
|
|
return activityLines;
|
|
}
|
|
function renderCompact(ctx) {
|
|
const lines = [];
|
|
const sessionLine = renderSessionLine(ctx);
|
|
if (sessionLine) {
|
|
lines.push(sessionLine);
|
|
}
|
|
return lines;
|
|
}
|
|
function renderExpanded(ctx) {
|
|
const lines = [];
|
|
const identityLine = renderIdentityLine(ctx);
|
|
if (identityLine) {
|
|
lines.push(identityLine);
|
|
}
|
|
const projectLine = renderProjectLine(ctx);
|
|
if (projectLine) {
|
|
lines.push(projectLine);
|
|
}
|
|
const environmentLine = renderEnvironmentLine(ctx);
|
|
if (environmentLine) {
|
|
lines.push(environmentLine);
|
|
}
|
|
const usageLine = renderUsageLine(ctx);
|
|
if (usageLine) {
|
|
lines.push(usageLine);
|
|
}
|
|
return lines;
|
|
}
|
|
export function render(ctx) {
|
|
const lineLayout = ctx.config?.lineLayout ?? 'expanded';
|
|
const showSeparators = ctx.config?.showSeparators ?? false;
|
|
const headerLines = lineLayout === 'expanded'
|
|
? renderExpanded(ctx)
|
|
: renderCompact(ctx);
|
|
const activityLines = collectActivityLines(ctx);
|
|
const lines = [...headerLines];
|
|
if (showSeparators && activityLines.length > 0) {
|
|
const maxWidth = Math.max(...headerLines.map(visualLength), 20);
|
|
lines.push(makeSeparator(maxWidth));
|
|
}
|
|
lines.push(...activityLines);
|
|
for (const line of lines) {
|
|
const outputLine = `${RESET}${line.replace(/ /g, '\u00A0')}`;
|
|
console.log(outputLine);
|
|
}
|
|
}
|
|
//# sourceMappingURL=index.js.map
|