feat: restore experimental.chat.messages.transform and add experimental.chat.system.transform hooks (#5542)
This commit is contained in:
parent
c985ef172d
commit
b98bd90d50
3 changed files with 19 additions and 3 deletions
|
|
@ -1,7 +1,7 @@
|
||||||
import { Provider } from "@/provider/provider"
|
import { Provider } from "@/provider/provider"
|
||||||
import { Log } from "@/util/log"
|
import { Log } from "@/util/log"
|
||||||
import { streamText, wrapLanguageModel, type ModelMessage, type StreamTextResult, type Tool, type ToolSet } from "ai"
|
import { streamText, wrapLanguageModel, type ModelMessage, type StreamTextResult, type Tool, type ToolSet } from "ai"
|
||||||
import { mergeDeep, pipe } from "remeda"
|
import { clone, mergeDeep, pipe } from "remeda"
|
||||||
import { ProviderTransform } from "@/provider/transform"
|
import { ProviderTransform } from "@/provider/transform"
|
||||||
import { Config } from "@/config/config"
|
import { Config } from "@/config/config"
|
||||||
import { Instance } from "@/project/instance"
|
import { Instance } from "@/project/instance"
|
||||||
|
|
@ -60,6 +60,12 @@ export namespace LLM {
|
||||||
.join("\n"),
|
.join("\n"),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const original = clone(system)
|
||||||
|
await Plugin.trigger("experimental.chat.system.transform", {}, { system })
|
||||||
|
if (system.length === 0) {
|
||||||
|
system.push(...original)
|
||||||
|
}
|
||||||
|
|
||||||
const params = await Plugin.trigger(
|
const params = await Plugin.trigger(
|
||||||
"chat.params",
|
"chat.params",
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ import PROMPT_PLAN from "../session/prompt/plan.txt"
|
||||||
import BUILD_SWITCH from "../session/prompt/build-switch.txt"
|
import BUILD_SWITCH from "../session/prompt/build-switch.txt"
|
||||||
import MAX_STEPS from "../session/prompt/max-steps.txt"
|
import MAX_STEPS from "../session/prompt/max-steps.txt"
|
||||||
import { defer } from "../util/defer"
|
import { defer } from "../util/defer"
|
||||||
import { mergeDeep, pipe } from "remeda"
|
import { clone, mergeDeep, pipe } from "remeda"
|
||||||
import { ToolRegistry } from "../tool/registry"
|
import { ToolRegistry } from "../tool/registry"
|
||||||
import { Wildcard } from "../util/wildcard"
|
import { Wildcard } from "../util/wildcard"
|
||||||
import { MCP } from "../mcp"
|
import { MCP } from "../mcp"
|
||||||
|
|
@ -480,6 +480,10 @@ export namespace SessionPrompt {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const sessionMessages = clone(msgs)
|
||||||
|
|
||||||
|
await Plugin.trigger("experimental.chat.messages.transform", {}, { messages: sessionMessages })
|
||||||
|
|
||||||
const result = await processor.process({
|
const result = await processor.process({
|
||||||
user: lastUser,
|
user: lastUser,
|
||||||
agent,
|
agent,
|
||||||
|
|
@ -487,7 +491,7 @@ export namespace SessionPrompt {
|
||||||
sessionID,
|
sessionID,
|
||||||
system: [...(await SystemPrompt.environment()), ...(await SystemPrompt.custom())],
|
system: [...(await SystemPrompt.environment()), ...(await SystemPrompt.custom())],
|
||||||
messages: [
|
messages: [
|
||||||
...MessageV2.toModelMessage(msgs),
|
...MessageV2.toModelMessage(sessionMessages),
|
||||||
...(isLastStep
|
...(isLastStep
|
||||||
? [
|
? [
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -185,6 +185,12 @@ export interface Hooks {
|
||||||
}[]
|
}[]
|
||||||
},
|
},
|
||||||
) => Promise<void>
|
) => Promise<void>
|
||||||
|
"experimental.chat.system.transform"?: (
|
||||||
|
input: {},
|
||||||
|
output: {
|
||||||
|
system: string[]
|
||||||
|
},
|
||||||
|
) => Promise<void>
|
||||||
"experimental.text.complete"?: (
|
"experimental.text.complete"?: (
|
||||||
input: { sessionID: string; messageID: string; partID: string },
|
input: { sessionID: string; messageID: string; partID: string },
|
||||||
output: { text: string },
|
output: { text: string },
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue