mirror of
https://github.com/anomalyco/opencode.git
synced 2026-08-09 19:09:49 -04:00
d2c99ba97c
Co-authored-by: exe.dev user <exedev@jlongster-site.exe.xyz>
46 lines
1.2 KiB
TypeScript
46 lines
1.2 KiB
TypeScript
import { Tool } from "@opencode-ai/schema/tool"
|
|
import type { Agent } from "@opencode-ai/schema/agent"
|
|
import type { Session } from "@opencode-ai/schema/session"
|
|
import type { SessionMessage } from "@opencode-ai/schema/session-message"
|
|
import type { Hooks, Transform } from "./registration.js"
|
|
|
|
export interface ToolDraft {
|
|
add<
|
|
Input extends Tool.ValueSchema<any>,
|
|
Output extends Tool.ValueSchema<any> | undefined,
|
|
>(tool: Tool.Info<Input, Output>): void
|
|
}
|
|
|
|
export interface ToolHooks {
|
|
readonly "execute.before": {
|
|
readonly tool: string
|
|
readonly sessionID: Session.ID
|
|
readonly agent: Agent.ID
|
|
readonly messageID: SessionMessage.ID
|
|
readonly id: Tool.CallID
|
|
input: unknown
|
|
}
|
|
readonly "execute.after": {
|
|
readonly tool: string
|
|
readonly sessionID: Session.ID
|
|
readonly agent: Agent.ID
|
|
readonly messageID: SessionMessage.ID
|
|
readonly id: Tool.CallID
|
|
readonly input: unknown
|
|
} & (
|
|
| {
|
|
readonly status: "completed"
|
|
result: Tool.Result
|
|
}
|
|
| {
|
|
readonly status: "error"
|
|
error: Tool.Error
|
|
}
|
|
)
|
|
}
|
|
|
|
export interface ToolDomain {
|
|
readonly transform: Transform<ToolDraft>
|
|
readonly hook: Hooks<ToolHooks>
|
|
}
|