File size: 722 Bytes
68d7816
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import { createDecorator } from '#/_base/di/instantiation';
import type { ToolDisclosure } from '#/tool/toolContract';

export interface UserToolRegistration {
  readonly name: string;
  readonly description: string;
  readonly parameters: Record<string, unknown>;
  readonly disclosure?: ToolDisclosure;
}

export interface IAgentUserToolService {
  readonly _serviceBrand: undefined;

  list(): readonly UserToolRegistration[];
  inheritUserTools(
    parent: IAgentUserToolService,
    activeToolNames?: readonly string[],
  ): void;
  register(input: UserToolRegistration): void;
  unregister(name: string): void;
}

export const IAgentUserToolService = createDecorator<IAgentUserToolService>('agentUserToolService');