33 lines
1.0 KiB
JavaScript
33 lines
1.0 KiB
JavaScript
// lvmh worker bridge: headless pi session via SDK; the lvmh plugin (installed
|
|
// at /root/.pi/agent/extensions/lvmh-agent.ts) dials the daemon and delivers
|
|
// web prompts through pi.sendUserMessage. This process just hosts the session.
|
|
import { createAgentSession } from "@earendil-works/pi-coding-agent";
|
|
|
|
process.on("unhandledRejection", (err) => {
|
|
console.error("[lvmh-bridge] unhandledRejection:", err);
|
|
});
|
|
|
|
try {
|
|
const { session } = await createAgentSession();
|
|
console.error(`[lvmh-bridge] session up, cwd=${process.cwd()}`);
|
|
|
|
session.subscribe((event) => {
|
|
// Keep the loop warm; the extension does the mirroring.
|
|
if (event.type === "agent_settled") {
|
|
console.error("[lvmh-bridge] agent settled");
|
|
}
|
|
});
|
|
|
|
for (const sig of ["SIGTERM", "SIGINT"]) {
|
|
process.on(sig, () => {
|
|
console.error(`[lvmh-bridge] ${sig}, exiting`);
|
|
process.exit(0);
|
|
});
|
|
}
|
|
// Stay alive forever.
|
|
setInterval(() => {}, 1 << 30);
|
|
} catch (err) {
|
|
console.error("[lvmh-bridge] failed to create agent session", err);
|
|
process.exit(1);
|
|
}
|