agentcrumbs
Version:
Debug mode for any agent.
68 lines • 2.82 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ConsoleSink = void 0;
const node_util_1 = require("node:util");
const colors_js_1 = require("../colors.js");
function formatDelta(dt) {
if (dt < 1000)
return `+${Math.round(dt)}ms`;
if (dt < 60000)
return `+${(dt / 1000).toFixed(1)}s`;
return `+${(dt / 60000).toFixed(1)}m`;
}
function formatData(data) {
if (data === undefined || data === null)
return "";
return (0, node_util_1.inspect)(data, { colors: true, compact: true, depth: 4, breakLength: Infinity });
}
function indent(depth) {
return " ".repeat(depth);
}
class ConsoleSink {
write(crumb) {
const color = (0, colors_js_1.getNamespaceColor)(crumb.ns);
const ns = (0, colors_js_1.colorize)(crumb.ns, color);
const dt = (0, colors_js_1.dim)(formatDelta(crumb.dt));
const depth = crumb.depth ?? 0;
const pad = indent(depth);
let line;
switch (crumb.type) {
case "scope:enter":
line = `${ns} ${pad}${(0, colors_js_1.bold)(`[${crumb.msg}]`)} ${(0, colors_js_1.dim)("->")} enter ${dt}`;
break;
case "scope:exit":
line = `${ns} ${pad}${(0, colors_js_1.bold)(`[${crumb.msg}]`)} ${(0, colors_js_1.dim)("<-")} exit ${dt}`;
break;
case "scope:error":
line = `${ns} ${pad}${(0, colors_js_1.bold)(`[${crumb.msg}]`)} ${(0, colors_js_1.dim)("!!")} error ${dt}`;
break;
case "snapshot":
line = `${ns} ${pad}${(0, colors_js_1.dim)("snapshot:")} ${crumb.msg} ${dt}`;
break;
case "assert":
line = `${ns} ${pad}${(0, colors_js_1.dim)("assert:")} ${crumb.msg} ${dt}`;
break;
case "time":
line = `${ns} ${pad}${(0, colors_js_1.dim)("time:")} ${crumb.msg} ${dt}`;
break;
case "session:start":
line = `${ns} ${pad}${(0, colors_js_1.bold)("session start:")} ${crumb.msg} ${(0, colors_js_1.dim)(`[${crumb.sid}]`)} ${dt}`;
break;
case "session:end":
line = `${ns} ${pad}${(0, colors_js_1.bold)("session end:")} ${crumb.msg} ${(0, colors_js_1.dim)(`[${crumb.sid}]`)} ${dt}`;
break;
default:
line = `${ns} ${pad}${crumb.msg} ${dt}`;
}
if (crumb.tags && crumb.tags.length > 0) {
line += ` ${(0, colors_js_1.dim)(`[${crumb.tags.join(", ")}]`)}`;
}
const dataStr = formatData(crumb.data);
if (dataStr) {
line += ` ${dataStr}`;
}
process.stderr.write(line + "\n");
}
}
exports.ConsoleSink = ConsoleSink;
//# sourceMappingURL=console.js.map