@fragola-ai/agent 0.1.0 → 0.1.1

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.
@@ -5,7 +5,7 @@ import type z from "zod";
5
5
  import type { Prettify, StoreLike } from "./types";
6
6
  import OpenAI from "openai/index.js";
7
7
  import { type AgentEventId } from "./event";
8
- import type { EventToolCall, EventUserMessage, EventModelInvocation, EventAiMessage, ModelInvocationPayload } from "./eventDefault";
8
+ import type { EventToolCall, EventUserMessage, EventModelInvocation, EventAiMessage, ModelInvocationPayload, ToolCallPayload } from "./eventDefault";
9
9
  import type { EventAfterStateUpdate, EventAfterStep, EventAfterModelInvocation, EventAfterToolCall } from "./eventAfter";
10
10
  import type { EventBeforeStep, EventBeforeModelInvocation, EventBeforeToolCall, ModelInvocationConfig, ToolCallConfig } from "./eventBefore";
11
11
  import { type registeredEvent, type eventIdToCallback, EventMap } from "./extendedJS/events/EventMap";
@@ -108,14 +108,14 @@ export type applyEventParams<K extends AgentEventId, TMetaData extends DefineMet
108
108
  } : K extends "after:modelInvocation" ? {
109
109
  message: ChatCompletionAssistantMessageParam<TMetaData>;
110
110
  } : K extends "toolCall" ? {
111
- result: any;
111
+ result: ToolCallPayload;
112
112
  params: any;
113
113
  tool: Tool<any>;
114
114
  } : K extends "before:toolCall" ? {
115
115
  config: ToolCallConfig<any>;
116
116
  tool: Tool<any>;
117
117
  } : K extends "after:toolCall" ? {
118
- result: any;
118
+ result: ToolCallPayload;
119
119
  params: any;
120
120
  tool: Tool<any>;
121
121
  } : K extends "after:stateUpdate" ? null : never;
@@ -134,6 +134,8 @@ export declare class Agent<TMetaData extends DefineMetaData<any> = {}, TGlobalSt
134
134
  private hooks;
135
135
  private hookDisposeMap;
136
136
  private pendingHookNames;
137
+ private pendingHookSourceIds;
138
+ private cancelledHookSourceIds;
137
139
  private activeHookSourceId;
138
140
  /** serialized async initialization of hooks (ensures tools are ready before generation) */
139
141
  private hooksLoaded;
@@ -158,8 +160,9 @@ export declare class Agent<TMetaData extends DefineMetaData<any> = {}, TGlobalSt
158
160
  getStore<T extends unknown>(namespace?: string): Store<T> | undefined;
159
161
  addStore(store: Store<any>): void;
160
162
  removeStore(namespace: string): void;
163
+ get systemPrompt(): string;
161
164
  setInstructions(instructions: string, scope?: string): void;
162
- getInstructions(scope?: string): string | undefined;
165
+ instructions(scope?: string): string | undefined;
163
166
  removeInstructions(scope: string): boolean;
164
167
  setOptions(options: SetOptionsParams): void;
165
168
  stop(): Promise<{
@@ -171,6 +174,7 @@ export declare class Agent<TMetaData extends DefineMetaData<any> = {}, TGlobalSt
171
174
  updateTools(callback: (prev: Tool[]) => Tool[]): void;
172
175
  };
173
176
  private setRegisteredEvents;
177
+ private removeHookScopedEvents;
174
178
  [FORK_FRIEND]: {
175
179
  setRegisteredEvents: (map: typeof this.registeredEvents) => void;
176
180
  getRegisteredEvents: () => EventMap<AgentEventId, registeredEvent<AgentEventId, TMetaData, TGlobalStore, TStore>[], TMetaData, TGlobalStore, TStore>;
@@ -198,7 +202,7 @@ export declare class Agent<TMetaData extends DefineMetaData<any> = {}, TGlobalSt
198
202
  /** Build merged instructions from default + scoped instructions. */
199
203
  private computeMergedInstructions;
200
204
  /** Return cached merged instructions, computing them if necessary. */
201
- private getMergedInstructions;
205
+ private get mergedInstructions();
202
206
  private appendMessages;
203
207
  private setIdle;
204
208
  private setGenerating;
@@ -218,6 +222,8 @@ export declare class Agent<TMetaData extends DefineMetaData<any> = {}, TGlobalSt
218
222
  get options(): CreateAgentOptions<TStore>;
219
223
  private stepOptions;
220
224
  private validateStepOptions;
225
+ /** Waits for all pending hook setup to finish without executing a step. */
226
+ init(): Promise<void>;
221
227
  /**
222
228
  * Continues execution from the current message history for one or more steps.
223
229
  *
@@ -337,7 +343,7 @@ export declare class Agent<TMetaData extends DefineMetaData<any> = {}, TGlobalSt
337
343
  * Register a tool result handler.
338
344
  *
339
345
  * This event runs after `before:toolCall` resolves the current config and after the tool
340
- * handler (or an injected result) produces a value. Each callback receives the current result
346
+ * handler (or an injected result) produces a payload. Each callback receives the current payload
341
347
  * and may transform it before it is exposed to later `toolCall` handlers, `after:toolCall`,
342
348
  * and the tool message appended to state.
343
349
  *
@@ -345,11 +351,15 @@ export declare class Agent<TMetaData extends DefineMetaData<any> = {}, TGlobalSt
345
351
  * remaining `toolCall` / `after:toolCall` pipeline for the current tool call.
346
352
  *
347
353
  * @example
348
- * agent.onToolCall((result, params, tool) => {
354
+ * agent.onToolCall((result, params, tool) => {
349
355
  * if (tool.name !== "getWeather") return result;
356
+ * if (!result.success) return result;
350
357
  * return {
351
- * requestedLocation: params.location,
352
- * data: result,
358
+ * success: true,
359
+ * data: {
360
+ * requestedLocation: params.location,
361
+ * data: result.data,
362
+ * },
353
363
  * };
354
364
  * });
355
365
  */
@@ -440,9 +450,9 @@ export declare class Agent<TMetaData extends DefineMetaData<any> = {}, TGlobalSt
440
450
  * Register a handler that can alter a tool call before execution.
441
451
  *
442
452
  * The callback receives `{ params }` before the tool handler runs. It may return a new
443
- * `{ params }` object to rewrite validated arguments or `{ injectResult }` to bypass the
444
- * handler entirely. `skip()` preserves the current config, and `context.stop()` aborts the
445
- * current tool call.
453
+ * `{ params }` object to rewrite validated arguments or `{ injectConfig }` with a full
454
+ * `ToolCallPayload` to bypass the handler entirely. `skip()` preserves the current config,
455
+ * and `context.stop()` aborts the current tool call.
446
456
  *
447
457
  * @example
448
458
  * agent.onBeforeToolCall((config, tool) => {
@@ -454,7 +464,7 @@ export declare class Agent<TMetaData extends DefineMetaData<any> = {}, TGlobalSt
454
464
  /**
455
465
  * Register an after tool call event handler.
456
466
  *
457
- * Called after a tool is executed.
467
+ * Called after a tool payload is finalized.
458
468
  *
459
469
  * @example
460
470
  * agent.onAfterToolCall((result, params, tool, context) => {
@@ -532,7 +542,7 @@ export declare class Agent<TMetaData extends DefineMetaData<any> = {}, TGlobalSt
532
542
  *
533
543
  * @example
534
544
  * ```ts
535
- * import { Hook } from "@fragola-ai/agentic-sdk-core/hook";
545
+ * import { Hook } from "@fragola-ai/agent/hook";
536
546
  *
537
547
  * const loggingHook = Hook((agent) => {
538
548
  * agent.onAfterStateUpdate((context) => {
@@ -554,6 +564,10 @@ export declare class Agent<TMetaData extends DefineMetaData<any> = {}, TGlobalSt
554
564
  * Returns `false` if no hook is registered under that name.
555
565
  */
556
566
  removeHook(name: string): Promise<boolean>;
567
+ /**
568
+ * Removes every hook currently registered on the agent.
569
+ */
570
+ dispose(): Promise<void>;
557
571
  }
558
572
  export type AgentAny = Agent<any, any, any>;
559
573
  export {};