fix: replace console.log with logger.info in CLI commands
- Use provided logger from MoltbotPluginCliContext - Remove eslint-disable comments (no longer needed) - All 54 console.log statements replaced with logger.info - Follows moltbot convention of using logger for output
This commit is contained in:
parent
ce704cf95f
commit
e9951301b4
@ -293,10 +293,9 @@ const plugin = {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// --- CLI Commands ---
|
// --- CLI Commands ---
|
||||||
/* eslint-disable no-console */
|
|
||||||
|
|
||||||
api.registerCli(
|
api.registerCli(
|
||||||
({ program }) => {
|
({ program, logger }) => {
|
||||||
const audit = program.command("audit").description("Web4 governance audit trail");
|
const audit = program.command("audit").description("Web4 governance audit trail");
|
||||||
|
|
||||||
audit
|
audit
|
||||||
@ -305,15 +304,15 @@ const plugin = {
|
|||||||
.action(() => {
|
.action(() => {
|
||||||
for (const [, entry] of sessions) {
|
for (const [, entry] of sessions) {
|
||||||
const v = entry.audit.verify();
|
const v = entry.audit.verify();
|
||||||
console.log(`Session: ${entry.state.lct.tokenId}`);
|
logger.info(`Session: ${entry.state.lct.tokenId}`);
|
||||||
console.log(` Actions: ${entry.state.actionIndex}`);
|
logger.info(` Actions: ${entry.state.actionIndex}`);
|
||||||
console.log(` Audit records: ${v.recordCount}`);
|
logger.info(` Audit records: ${v.recordCount}`);
|
||||||
console.log(` Chain valid: ${v.valid}`);
|
logger.info(` Chain valid: ${v.valid}`);
|
||||||
console.log(` Tools: ${JSON.stringify(entry.state.toolCounts)}`);
|
logger.info(` Tools: ${JSON.stringify(entry.state.toolCounts)}`);
|
||||||
console.log(` Categories: ${JSON.stringify(entry.state.categoryCounts)}`);
|
logger.info(` Categories: ${JSON.stringify(entry.state.categoryCounts)}`);
|
||||||
}
|
}
|
||||||
if (sessions.size === 0) {
|
if (sessions.size === 0) {
|
||||||
console.log("No active governance sessions.");
|
logger.info("No active governance sessions.");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -325,16 +324,16 @@ const plugin = {
|
|||||||
if (sessionId) {
|
if (sessionId) {
|
||||||
const chain = new AuditChain(storagePath, sessionId);
|
const chain = new AuditChain(storagePath, sessionId);
|
||||||
const result = chain.verify();
|
const result = chain.verify();
|
||||||
console.log(`Chain valid: ${result.valid}`);
|
logger.info(`Chain valid: ${result.valid}`);
|
||||||
console.log(`Records: ${result.recordCount}`);
|
logger.info(`Records: ${result.recordCount}`);
|
||||||
if (result.errors.length > 0) {
|
if (result.errors.length > 0) {
|
||||||
console.log("Errors:");
|
logger.info("Errors:");
|
||||||
for (const e of result.errors) console.log(` - ${e}`);
|
for (const e of result.errors) logger.info(` - ${e}`);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
for (const [, entry] of sessions) {
|
for (const [, entry] of sessions) {
|
||||||
const result = entry.audit.verify();
|
const result = entry.audit.verify();
|
||||||
console.log(`${entry.state.sessionId}: ${result.valid ? "VALID" : "INVALID"} (${result.recordCount} records)`);
|
logger.info(`${entry.state.sessionId}: ${result.valid ? "VALID" : "INVALID"} (${result.recordCount} records)`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -348,7 +347,7 @@ const plugin = {
|
|||||||
for (const [, entry] of sessions) {
|
for (const [, entry] of sessions) {
|
||||||
const records = entry.audit.getLast(count);
|
const records = entry.audit.getLast(count);
|
||||||
for (const r of records) {
|
for (const r of records) {
|
||||||
console.log(`${r.timestamp} ${r.tool} → ${r.target ?? "?"} [${r.result.status}]`);
|
logger.info(`${r.timestamp} ${r.tool} → ${r.target ?? "?"} [${r.result.status}]`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -377,16 +376,16 @@ const plugin = {
|
|||||||
|
|
||||||
if (results.length > 0) {
|
if (results.length > 0) {
|
||||||
hasResults = true;
|
hasResults = true;
|
||||||
console.log(`Session: ${entry.state.sessionId} (${results.length} results)`);
|
logger.info(`Session: ${entry.state.sessionId} (${results.length} results)`);
|
||||||
for (const r of results) {
|
for (const r of results) {
|
||||||
const dur = r.result.durationMs !== undefined ? ` ${r.result.durationMs}ms` : "";
|
const dur = r.result.durationMs !== undefined ? ` ${r.result.durationMs}ms` : "";
|
||||||
const err = r.result.errorMessage ? ` — ${r.result.errorMessage}` : "";
|
const err = r.result.errorMessage ? ` — ${r.result.errorMessage}` : "";
|
||||||
console.log(` ${r.timestamp} ${r.tool} [${r.category}] → ${r.target ?? "?"} [${r.result.status}]${dur}${err}`);
|
logger.info(` ${r.timestamp} ${r.tool} [${r.category}] → ${r.target ?? "?"} [${r.result.status}]${dur}${err}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!hasResults) {
|
if (!hasResults) {
|
||||||
console.log("No matching audit records found.");
|
logger.info("No matching audit records found.");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -402,15 +401,15 @@ const plugin = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (allRecords.length === 0) {
|
if (allRecords.length === 0) {
|
||||||
console.log("No audit records to report on.");
|
logger.info("No audit records to report on.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const reporter = new AuditReporter(allRecords);
|
const reporter = new AuditReporter(allRecords);
|
||||||
if (opts.json) {
|
if (opts.json) {
|
||||||
console.log(JSON.stringify(reporter.generate(), null, 2));
|
logger.info(JSON.stringify(reporter.generate(), null, 2));
|
||||||
} else {
|
} else {
|
||||||
console.log(reporter.formatText());
|
logger.info(reporter.formatText());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@ -418,22 +417,21 @@ const plugin = {
|
|||||||
);
|
);
|
||||||
|
|
||||||
// --- Policy Admin CLI ---
|
// --- Policy Admin CLI ---
|
||||||
/* eslint-disable no-console */
|
|
||||||
|
|
||||||
api.registerCli(
|
api.registerCli(
|
||||||
({ program }) => {
|
({ program, logger }) => {
|
||||||
const policy = program.command("policy").description("Web4 policy engine administration");
|
const policy = program.command("policy").description("Web4 policy engine administration");
|
||||||
|
|
||||||
policy
|
policy
|
||||||
.command("status")
|
.command("status")
|
||||||
.description("Show policy engine status")
|
.description("Show policy engine status")
|
||||||
.action(() => {
|
.action(() => {
|
||||||
console.log(`Policy engine:`);
|
logger.info(`Policy engine:`);
|
||||||
console.log(` Rules: ${policyEngine.ruleCount}`);
|
logger.info(` Rules: ${policyEngine.ruleCount}`);
|
||||||
console.log(` Default: ${policyEngine.defaultDecision}`);
|
logger.info(` Default: ${policyEngine.defaultDecision}`);
|
||||||
console.log(` Enforce: ${policyEngine.isEnforcing}`);
|
logger.info(` Enforce: ${policyEngine.isEnforcing}`);
|
||||||
if (config.policy?.preset) {
|
if (config.policy?.preset) {
|
||||||
console.log(` Preset: ${config.policy.preset}`);
|
logger.info(` Preset: ${config.policy.preset}`);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -443,10 +441,10 @@ const plugin = {
|
|||||||
.action(() => {
|
.action(() => {
|
||||||
const rules = policyEngine.sortedRules;
|
const rules = policyEngine.sortedRules;
|
||||||
if (rules.length === 0) {
|
if (rules.length === 0) {
|
||||||
console.log("No policy rules configured.");
|
logger.info("No policy rules configured.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
console.log(`${rules.length} rules (priority order):\n`);
|
logger.info(`${rules.length} rules (priority order):\n`);
|
||||||
for (const rule of rules) {
|
for (const rule of rules) {
|
||||||
const match = rule.match;
|
const match = rule.match;
|
||||||
const criteria: string[] = [];
|
const criteria: string[] = [];
|
||||||
@ -459,13 +457,13 @@ const plugin = {
|
|||||||
if (match.rateLimit) {
|
if (match.rateLimit) {
|
||||||
criteria.push(`rateLimit(max=${match.rateLimit.maxCount}, window=${match.rateLimit.windowMs}ms)`);
|
criteria.push(`rateLimit(max=${match.rateLimit.maxCount}, window=${match.rateLimit.windowMs}ms)`);
|
||||||
}
|
}
|
||||||
console.log(` [${rule.priority}] ${rule.id} → ${rule.decision}`);
|
logger.info(` [${rule.priority}] ${rule.id} → ${rule.decision}`);
|
||||||
console.log(` ${rule.name}`);
|
logger.info(` ${rule.name}`);
|
||||||
if (criteria.length > 0) console.log(` match: ${criteria.join(" AND ")}`);
|
if (criteria.length > 0) logger.info(` match: ${criteria.join(" AND ")}`);
|
||||||
if (rule.reason) console.log(` reason: ${rule.reason}`);
|
if (rule.reason) logger.info(` reason: ${rule.reason}`);
|
||||||
console.log();
|
logger.info();
|
||||||
}
|
}
|
||||||
console.log(`Default: ${policyEngine.defaultDecision} | Enforce: ${policyEngine.isEnforcing}`);
|
logger.info(`Default: ${policyEngine.defaultDecision} | Enforce: ${policyEngine.isEnforcing}`);
|
||||||
});
|
});
|
||||||
|
|
||||||
policy
|
policy
|
||||||
@ -476,16 +474,16 @@ const plugin = {
|
|||||||
.action((toolName: string, target?: string) => {
|
.action((toolName: string, target?: string) => {
|
||||||
const category = classifyTool(toolName);
|
const category = classifyTool(toolName);
|
||||||
const evaluation = policyEngine.evaluate(toolName, category, target);
|
const evaluation = policyEngine.evaluate(toolName, category, target);
|
||||||
console.log(`Tool: ${toolName}`);
|
logger.info(`Tool: ${toolName}`);
|
||||||
console.log(`Category: ${category}`);
|
logger.info(`Category: ${category}`);
|
||||||
console.log(`Target: ${target ?? "(none)"}`);
|
logger.info(`Target: ${target ?? "(none)"}`);
|
||||||
console.log(`Decision: ${evaluation.decision}`);
|
logger.info(`Decision: ${evaluation.decision}`);
|
||||||
console.log(`Enforced: ${evaluation.enforced}`);
|
logger.info(`Enforced: ${evaluation.enforced}`);
|
||||||
console.log(`Reason: ${evaluation.reason}`);
|
logger.info(`Reason: ${evaluation.reason}`);
|
||||||
if (evaluation.matchedRule) {
|
if (evaluation.matchedRule) {
|
||||||
console.log(`Rule: ${evaluation.matchedRule.id} (priority ${evaluation.matchedRule.priority})`);
|
logger.info(`Rule: ${evaluation.matchedRule.id} (priority ${evaluation.matchedRule.priority})`);
|
||||||
}
|
}
|
||||||
console.log(`Constraints: ${evaluation.constraints.join(", ")}`);
|
logger.info(`Constraints: ${evaluation.constraints.join(", ")}`);
|
||||||
});
|
});
|
||||||
|
|
||||||
// --- Policy Presets CLI ---
|
// --- Policy Presets CLI ---
|
||||||
@ -494,15 +492,15 @@ const plugin = {
|
|||||||
.description("List available policy presets")
|
.description("List available policy presets")
|
||||||
.action(() => {
|
.action(() => {
|
||||||
const presets = listPresets();
|
const presets = listPresets();
|
||||||
console.log(`${presets.length} available presets:\n`);
|
logger.info(`${presets.length} available presets:\n`);
|
||||||
for (const p of presets) {
|
for (const p of presets) {
|
||||||
const ruleCount = p.config.rules.length;
|
const ruleCount = p.config.rules.length;
|
||||||
console.log(` ${p.name}`);
|
logger.info(` ${p.name}`);
|
||||||
console.log(` ${p.description}`);
|
logger.info(` ${p.description}`);
|
||||||
console.log(` default: ${p.config.defaultPolicy} | enforce: ${p.config.enforce} | rules: ${ruleCount}`);
|
logger.info(` default: ${p.config.defaultPolicy} | enforce: ${p.config.enforce} | rules: ${ruleCount}`);
|
||||||
console.log();
|
logger.info();
|
||||||
}
|
}
|
||||||
console.log(`Usage: { "policy": { "preset": "<name>" } }`);
|
logger.info(`Usage: { "policy": { "preset": "<name>" } }`);
|
||||||
});
|
});
|
||||||
|
|
||||||
// --- Policy Entity CLI ---
|
// --- Policy Entity CLI ---
|
||||||
@ -512,19 +510,19 @@ const plugin = {
|
|||||||
.action(() => {
|
.action(() => {
|
||||||
const entities = policyRegistry.listPolicies();
|
const entities = policyRegistry.listPolicies();
|
||||||
if (entities.length === 0) {
|
if (entities.length === 0) {
|
||||||
console.log("No policy entities registered.");
|
logger.info("No policy entities registered.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
console.log(`${entities.length} policy entities:\n`);
|
logger.info(`${entities.length} policy entities:\n`);
|
||||||
for (const e of entities) {
|
for (const e of entities) {
|
||||||
console.log(` ${e.entityId}`);
|
logger.info(` ${e.entityId}`);
|
||||||
console.log(` name: ${e.name} | source: ${e.source}`);
|
logger.info(` name: ${e.name} | source: ${e.source}`);
|
||||||
console.log(` hash: ${e.contentHash}`);
|
logger.info(` hash: ${e.contentHash}`);
|
||||||
console.log(` created: ${e.createdAt}`);
|
logger.info(` created: ${e.createdAt}`);
|
||||||
const witnessedBy = policyRegistry.getWitnessedBy(e.entityId);
|
const witnessedBy = policyRegistry.getWitnessedBy(e.entityId);
|
||||||
const hasWitnessed = policyRegistry.getHasWitnessed(e.entityId);
|
const hasWitnessed = policyRegistry.getHasWitnessed(e.entityId);
|
||||||
console.log(` witnessed by: ${witnessedBy.length} | has witnessed: ${hasWitnessed.length}`);
|
logger.info(` witnessed by: ${witnessedBy.length} | has witnessed: ${hasWitnessed.length}`);
|
||||||
console.log();
|
logger.info();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user