@oh-my-pi/pi-agent-core 6.2.0 → 6.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +3 -3
  2. package/src/types.ts +14 -6
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oh-my-pi/pi-agent-core",
3
- "version": "6.2.0",
3
+ "version": "6.7.0",
4
4
  "description": "General-purpose agent with transport abstraction, state management, and attachment support",
5
5
  "type": "module",
6
6
  "main": "./src/index.ts",
@@ -13,8 +13,8 @@
13
13
  "test": "vitest --run"
14
14
  },
15
15
  "dependencies": {
16
- "@oh-my-pi/pi-ai": "6.2.0",
17
- "@oh-my-pi/pi-tui": "6.2.0"
16
+ "@oh-my-pi/pi-ai": "6.7.0",
17
+ "@oh-my-pi/pi-tui": "6.7.0"
18
18
  },
19
19
  "keywords": [
20
20
  "ai",
package/src/types.ts CHANGED
@@ -165,15 +165,19 @@ export interface AgentState {
165
165
  error?: string;
166
166
  }
167
167
 
168
- export interface AgentToolResult<T> {
168
+ export interface AgentToolResult<T, TNormative extends TSchema = any> {
169
169
  // Content blocks supporting text and images
170
170
  content: (TextContent | ImageContent)[];
171
171
  // Details to be displayed in a UI or logged
172
- details: T;
172
+ details?: T;
173
+ /** Normative input for the tool result */
174
+ $normative?: Static<TNormative>;
173
175
  }
174
176
 
175
177
  // Callback for streaming tool execution updates
176
- export type AgentToolUpdateCallback<T = any> = (partialResult: AgentToolResult<T>) => void;
178
+ export type AgentToolUpdateCallback<T = any, TNormative extends TSchema = any> = (
179
+ partialResult: AgentToolResult<T, TNormative>,
180
+ ) => void;
177
181
 
178
182
  /** Options passed to renderResult */
179
183
  export interface RenderResultOptions {
@@ -204,15 +208,19 @@ export interface AgentTool<TParameters extends TSchema = TSchema, TDetails = any
204
208
  toolCallId: string,
205
209
  params: Static<TParameters>,
206
210
  signal?: AbortSignal,
207
- onUpdate?: AgentToolUpdateCallback<TDetails>,
211
+ onUpdate?: AgentToolUpdateCallback<TDetails, TParameters>,
208
212
  context?: AgentToolContext,
209
- ) => Promise<AgentToolResult<TDetails>>;
213
+ ) => Promise<AgentToolResult<TDetails, TParameters>>;
210
214
 
211
215
  /** Optional custom rendering for tool call display (returns UI component) */
212
216
  renderCall?: (args: Static<TParameters>, theme: TTheme) => unknown;
213
217
 
214
218
  /** Optional custom rendering for tool result display (returns UI component) */
215
- renderResult?: (result: AgentToolResult<TDetails>, options: RenderResultOptions, theme: TTheme) => unknown;
219
+ renderResult?: (
220
+ result: AgentToolResult<TDetails, TParameters>,
221
+ options: RenderResultOptions,
222
+ theme: TTheme,
223
+ ) => unknown;
216
224
  }
217
225
 
218
226
  // AgentContext is like Context but uses AgentTool