Files
CodeNomad/packages/opencode-config/plugin/codenomad.ts
2025-12-24 01:07:56 +00:00

41 lines
1.1 KiB
TypeScript

import { createCodeNomadClient, getCodeNomadConfig } from "./lib/client"
import { createBackgroundProcessTools } from "./lib/background-process"
export async function CodeNomadPlugin() {
const config = getCodeNomadConfig()
const client = createCodeNomadClient(config)
const backgroundProcessTools = createBackgroundProcessTools(config)
await client.startEvents((event) => {
if (event.type === "codenomad.ping") {
void client.postEvent({
type: "codenomad.pong",
properties: {
ts: Date.now(),
pingTs: (event.properties as any)?.ts,
},
}).catch(() => {})
}
})
return {
tool: {
...backgroundProcessTools,
},
async event(input: { event: any }) {
const opencodeEvent = input?.event
if (!opencodeEvent || typeof opencodeEvent !== "object") return
if (opencodeEvent.type === "session.idle") {
const sessionID = (opencodeEvent as any).properties?.sessionID
void client.postEvent({
type: "opencode.session.idle",
properties: {
sessionID,
},
}).catch(() => {})
}
},
}
}