diff --git a/src/features/background-agent/manager.ts b/src/features/background-agent/manager.ts index a2ab9a00..cb0d5a9e 100644 --- a/src/features/background-agent/manager.ts +++ b/src/features/background-agent/manager.ts @@ -122,6 +122,19 @@ export class BackgroundManager { log("[background-agent] Launching task:", { taskId: task.id, sessionID, agent: input.agent }) + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const tuiClient = this.client as any + if (tuiClient.tui?.showToast) { + tuiClient.tui.showToast({ + body: { + title: "Background Task Started", + message: `"${input.description}" running with ${input.agent}`, + variant: "info", + duration: 3000, + }, + }).catch(() => {}) + } + this.client.session.promptAsync({ path: { id: sessionID }, body: { diff --git a/src/index.ts b/src/index.ts index d73bd67a..86d9b9ca 100644 --- a/src/index.ts +++ b/src/index.ts @@ -29,6 +29,7 @@ import { createTaskResumeInfoHook, createStartWorkHook, createSisyphusOrchestratorHook, + createPrometheusMdOnlyHook, } from "./hooks"; import { contextCollector, @@ -198,6 +199,10 @@ const OhMyOpenCodePlugin: Plugin = async (ctx) => { ? createSisyphusOrchestratorHook(ctx) : null; + const prometheusMdOnly = isHookEnabled("prometheus-md-only") + ? createPrometheusMdOnlyHook(ctx) + : null; + const taskResumeInfo = createTaskResumeInfoHook(); const backgroundManager = new BackgroundManager(ctx); @@ -451,6 +456,7 @@ const OhMyOpenCodePlugin: Plugin = async (ctx) => { await directoryAgentsInjector?.["tool.execute.before"]?.(input, output); await directoryReadmeInjector?.["tool.execute.before"]?.(input, output); await rulesInjector?.["tool.execute.before"]?.(input, output); + await prometheusMdOnly?.["tool.execute.before"]?.(input, output); if (input.tool === "task") { const args = output.args as Record; diff --git a/src/tools/sisyphus-task/tools.ts b/src/tools/sisyphus-task/tools.ts index 7481e503..ea798a2a 100644 --- a/src/tools/sisyphus-task/tools.ts +++ b/src/tools/sisyphus-task/tools.ts @@ -243,6 +243,19 @@ System notifies on completion. Use \`background_output\` with task_id="${task.id } try { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const tuiClient = client as any + if (tuiClient.tui?.showToast) { + tuiClient.tui.showToast({ + body: { + title: "Task Started", + message: `"${args.description}" running with ${agentToUse}`, + variant: "info", + duration: 3000, + }, + }).catch(() => {}) + } + const createResult = await client.session.create({ body: { parentID: ctx.sessionID,