Vendor all 4 Pi packages (tui, ai, agent-core, coding-agent) from pi-mono v0.57.1 as @gsd/* workspace packages under packages/. This replaces the compiled npm dependency (@mariozechner/pi-coding-agent) and patch-package workflow, giving direct source access for modifications. - Copy Pi source from pi-mono v0.57.1 into packages/ - Create workspace package.json + tsconfig.json for each package - Rename ~240 imports from @mariozechner/pi-* to @gsd/pi-* - Apply existing patches as source edits (setModel persist, VT input) - Remove @mariozechner/pi-coding-agent dep and patch-package - Update build pipeline to build packages in dependency order - Add pi-upstream git remote for future selective syncing Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
25 lines
731 B
TypeScript
25 lines
731 B
TypeScript
/**
|
|
* Central timing instrumentation for startup profiling.
|
|
* Enable with PI_TIMING=1 environment variable.
|
|
*/
|
|
|
|
const ENABLED = process.env.PI_TIMING === "1";
|
|
const timings: Array<{ label: string; ms: number }> = [];
|
|
let lastTime = Date.now();
|
|
|
|
export function time(label: string): void {
|
|
if (!ENABLED) return;
|
|
const now = Date.now();
|
|
timings.push({ label, ms: now - lastTime });
|
|
lastTime = now;
|
|
}
|
|
|
|
export function printTimings(): void {
|
|
if (!ENABLED || timings.length === 0) return;
|
|
console.error("\n--- Startup Timings ---");
|
|
for (const t of timings) {
|
|
console.error(` ${t.label}: ${t.ms}ms`);
|
|
}
|
|
console.error(` TOTAL: ${timings.reduce((a, b) => a + b.ms, 0)}ms`);
|
|
console.error("------------------------\n");
|
|
}
|