mirror of
https://github.com/MoonshotAI/kimi-code.git
synced 2026-08-26 09:05:46 +00:00
- rename workspace package `@moonshot-ai/daemon` to `@moonshot-ai/server`\n- rename `@moonshot-ai/daemon-e2e` to `@moonshot-ai/server-e2e`\n- replace `kimi daemon` and `kimi web` with `kimi server run`\n- keep `kimi web` as alias for `kimi server run --open`\n- add `kimi server install/uninstall/start/stop/restart/status`\n for launchd (darwin), systemd (linux), and schtasks (win32)\n- update dev scripts, kimi-web stub, documentation, and service naming checks\n\nBREAKING CHANGE: the `kimi daemon` command and `@moonshot-ai/daemon`\npackage are removed; use `kimi server` and `@moonshot-ai/server`.
59 lines
1.4 KiB
TypeScript
59 lines
1.4 KiB
TypeScript
import { onTestFailed, onTestFinished } from 'vitest';
|
|
|
|
import { recordReportEvent, setActiveReportCase } from '../src/report.js';
|
|
|
|
export function createCaseLogger(caseName: string): (label: string, value?: unknown) => void {
|
|
setActiveReportCase(caseName);
|
|
let failed = false;
|
|
onTestFailed((error) => {
|
|
failed = true;
|
|
recordReportEvent({
|
|
kind: 'test-result',
|
|
caseName,
|
|
state: 'failed',
|
|
error: errorForLog(error),
|
|
});
|
|
});
|
|
onTestFinished(() => {
|
|
if (failed) return;
|
|
recordReportEvent({
|
|
kind: 'test-result',
|
|
caseName,
|
|
state: 'passed',
|
|
});
|
|
});
|
|
return (label, value) => {
|
|
recordReportEvent({ kind: 'log', caseName, label, value });
|
|
const prefix = `[server-e2e] ${caseName} :: ${label}`;
|
|
if (value === undefined) {
|
|
writeLogLine(prefix);
|
|
return;
|
|
}
|
|
writeLogLine(`${prefix}\n${stringifyForLog(value)}`);
|
|
};
|
|
}
|
|
|
|
export function errorForLog(error: unknown): unknown {
|
|
if (error instanceof Error) {
|
|
return {
|
|
name: error.name,
|
|
message: error.message,
|
|
...objectFields(error),
|
|
};
|
|
}
|
|
return error;
|
|
}
|
|
|
|
function objectFields(value: object): Record<string, unknown> {
|
|
return Object.fromEntries(
|
|
Object.entries(value).filter(([, field]) => field !== undefined),
|
|
);
|
|
}
|
|
|
|
function stringifyForLog(value: unknown): string {
|
|
return JSON.stringify(value, null, 2);
|
|
}
|
|
|
|
function writeLogLine(line: string): void {
|
|
process.stdout.write(`${line}\n`);
|
|
}
|