diff options
| author | franlol <[email protected]> | 2025-12-08 02:44:04 +0100 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-12-07 19:44:04 -0600 |
| commit | 81ee8541abd20e67ed1f87a53b8475dd9395b8fa (patch) | |
| tree | 2dcd18b4eab62a288e088bd7641a4ae3a05fa538 | |
| parent | 5b3550ab9fadb12d4a935eb10bcd4daf797aa2f1 (diff) | |
| download | opencode-81ee8541abd20e67ed1f87a53b8475dd9395b8fa.tar.gz opencode-81ee8541abd20e67ed1f87a53b8475dd9395b8fa.zip | |
feat: add experimental.text.complete plugin hook (#4962)
| -rw-r--r-- | packages/opencode/src/session/processor.ts | 11 | ||||
| -rw-r--r-- | packages/plugin/src/index.ts | 4 |
2 files changed, 15 insertions, 0 deletions
diff --git a/packages/opencode/src/session/processor.ts b/packages/opencode/src/session/processor.ts index bf994755c..f1f7dd096 100644 --- a/packages/opencode/src/session/processor.ts +++ b/packages/opencode/src/session/processor.ts @@ -10,6 +10,7 @@ import { SessionSummary } from "./summary" import { Bus } from "@/bus" import { SessionRetry } from "./retry" import { SessionStatus } from "./status" +import { Plugin } from "@/plugin" import type { Provider } from "@/provider/provider" export namespace SessionProcessor { @@ -316,6 +317,16 @@ export namespace SessionProcessor { case "text-end": if (currentText) { currentText.text = currentText.text.trimEnd() + const textOutput = await Plugin.trigger( + "experimental.text.complete", + { + sessionID: input.sessionID, + messageID: input.assistantMessage.id, + partID: currentText.id, + }, + { text: currentText.text }, + ) + currentText.text = textOutput.text currentText.time = { start: Date.now(), end: Date.now(), diff --git a/packages/plugin/src/index.ts b/packages/plugin/src/index.ts index 291d68b79..f00e90482 100644 --- a/packages/plugin/src/index.ts +++ b/packages/plugin/src/index.ts @@ -175,4 +175,8 @@ export interface Hooks { metadata: any }, ) => Promise<void> + "experimental.text.complete"?: ( + input: { sessionID: string; messageID: string; partID: string }, + output: { text: string }, + ) => Promise<void> } |
