a1842f2de7
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
29 lines
952 B
TypeScript
29 lines
952 B
TypeScript
import { log } from "../../shared/logger"
|
|
import { resolveToolCallID, type ToolCallIDCarrier } from "./resolve-tool-call-id"
|
|
import { storeToolMetadata, type PendingToolMetadata } from "./store"
|
|
|
|
export interface ToolMetadataPublisherContext extends ToolCallIDCarrier {
|
|
sessionID: string
|
|
metadata?: (input: PendingToolMetadata) => void | Promise<void>
|
|
}
|
|
|
|
export async function publishToolMetadata(
|
|
ctx: ToolMetadataPublisherContext,
|
|
payload: PendingToolMetadata
|
|
): Promise<{ stored: boolean }> {
|
|
await ctx.metadata?.(payload)
|
|
|
|
const callID = resolveToolCallID(ctx)
|
|
if (!callID) {
|
|
log("[tool-metadata-store] Skipping metadata store publish because tool call ID is unavailable", {
|
|
sessionID: ctx.sessionID,
|
|
hasTitle: typeof payload.title === "string",
|
|
hasMetadata: payload.metadata !== undefined,
|
|
})
|
|
return { stored: false }
|
|
}
|
|
|
|
storeToolMetadata(ctx.sessionID, callID, payload)
|
|
return { stored: true }
|
|
}
|