diff options
| author | joshualitt <[email protected]> | 2025-08-06 10:50:02 -0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-08-06 17:50:02 +0000 |
| commit | 6133bea388a2de69c71a6be6f1450707f2ce4dfb (patch) | |
| tree | 367de1d618069ea80e47d7e86c4fb8f82ad032a7 /packages/core/src/tools/modifiable-tool.ts | |
| parent | 882a97aff998b2f19731e9966d135f1db5a59914 (diff) | |
feat(core): Introduce `DeclarativeTool` and `ToolInvocation`. (#5613)
Diffstat (limited to 'packages/core/src/tools/modifiable-tool.ts')
| -rw-r--r-- | packages/core/src/tools/modifiable-tool.ts | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/packages/core/src/tools/modifiable-tool.ts b/packages/core/src/tools/modifiable-tool.ts index 42de3eb6..25a2906b 100644 --- a/packages/core/src/tools/modifiable-tool.ts +++ b/packages/core/src/tools/modifiable-tool.ts @@ -11,13 +11,14 @@ import fs from 'fs'; import * as Diff from 'diff'; import { DEFAULT_DIFF_OPTIONS } from './diffOptions.js'; import { isNodeError } from '../utils/errors.js'; -import { Tool } from './tools.js'; +import { AnyDeclarativeTool, DeclarativeTool, ToolResult } from './tools.js'; /** - * A tool that supports a modify operation. + * A declarative tool that supports a modify operation. */ -export interface ModifiableTool<ToolParams> extends Tool<ToolParams> { - getModifyContext(abortSignal: AbortSignal): ModifyContext<ToolParams>; +export interface ModifiableDeclarativeTool<TParams extends object> + extends DeclarativeTool<TParams, ToolResult> { + getModifyContext(abortSignal: AbortSignal): ModifyContext<TParams>; } export interface ModifyContext<ToolParams> { @@ -39,9 +40,12 @@ export interface ModifyResult<ToolParams> { updatedDiff: string; } -export function isModifiableTool<TParams>( - tool: Tool<TParams>, -): tool is ModifiableTool<TParams> { +/** + * Type guard to check if a declarative tool is modifiable. + */ +export function isModifiableDeclarativeTool( + tool: AnyDeclarativeTool, +): tool is ModifiableDeclarativeTool<object> { return 'getModifyContext' in tool; } |
