llmist 3.1.0 → 5.0.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.
@@ -1022,34 +1022,60 @@ type StreamEvent = {
1022
1022
  } | {
1023
1023
  type: "compaction";
1024
1024
  event: CompactionEvent;
1025
- } | StreamCompletionEvent;
1025
+ } | SubagentStreamEvent | StreamCompletionEvent;
1026
+ /** Event for forwarding subagent activity through the stream */
1027
+ interface SubagentStreamEvent {
1028
+ type: "subagent_event";
1029
+ subagentEvent: SubagentEvent;
1030
+ }
1026
1031
  /**
1027
- * Information about an LLM call within a nested subagent.
1032
+ * Information about an LLM call within a subagent.
1028
1033
  * Used by parent agents to display real-time progress of subagent LLM calls.
1034
+ *
1035
+ * This interface provides full context about subagent LLM calls, enabling
1036
+ * first-class display with the same metrics as top-level agents (cached tokens, cost, etc.).
1029
1037
  */
1030
1038
  interface LLMCallInfo {
1031
1039
  /** Iteration number within the subagent loop */
1032
1040
  iteration: number;
1033
1041
  /** Model identifier (e.g., "sonnet", "gpt-4o") */
1034
1042
  model: string;
1035
- /** Input tokens sent to the LLM */
1043
+ /** Input tokens sent to the LLM (for backward compat, prefer usage.inputTokens) */
1036
1044
  inputTokens?: number;
1037
- /** Output tokens received from the LLM */
1045
+ /** Output tokens received from the LLM (for backward compat, prefer usage.outputTokens) */
1038
1046
  outputTokens?: number;
1039
1047
  /** Reason the LLM stopped generating (e.g., "stop", "tool_use") */
1040
1048
  finishReason?: string;
1041
1049
  /** Elapsed time in milliseconds */
1042
1050
  elapsedMs?: number;
1051
+ /**
1052
+ * Full token usage including cached token counts.
1053
+ * This provides the same level of detail as top-level agent calls.
1054
+ */
1055
+ usage?: {
1056
+ inputTokens: number;
1057
+ outputTokens: number;
1058
+ totalTokens: number;
1059
+ /** Number of input tokens served from cache (subset of inputTokens) */
1060
+ cachedInputTokens?: number;
1061
+ /** Number of input tokens written to cache (subset of inputTokens, Anthropic only) */
1062
+ cacheCreationInputTokens?: number;
1063
+ };
1064
+ /**
1065
+ * Cost of this LLM call in USD.
1066
+ * Calculated by the subagent if it has access to model registry.
1067
+ */
1068
+ cost?: number;
1043
1069
  }
1044
1070
  /**
1045
1071
  * Event emitted by subagent gadgets to report internal agent activity.
1046
- * Enables real-time display of nested LLM calls and gadget executions.
1072
+ * Enables real-time display of subagent LLM calls and gadget executions.
1047
1073
  *
1048
1074
  * @example
1049
1075
  * ```typescript
1050
1076
  * // Forwarding events from subagent to parent
1051
1077
  * for await (const event of subagent.run()) {
1052
- * ctx.onNestedEvent?.({
1078
+ * ctx.onSubagentEvent?.({
1053
1079
  * type: event.type === "gadget_call" ? "gadget_call" : "gadget_result",
1054
1080
  * gadgetInvocationId: parentInvocationId,
1055
1081
  * depth: 1,
@@ -1058,10 +1084,10 @@ interface LLMCallInfo {
1058
1084
  * }
1059
1085
  * ```
1060
1086
  */
1061
- interface NestedAgentEvent {
1062
- /** Type of nested event */
1087
+ interface SubagentEvent {
1088
+ /** Type of subagent event */
1063
1089
  type: "llm_call_start" | "llm_call_end" | "gadget_call" | "gadget_result";
1064
- /** Invocation ID of the parent gadget this nested event belongs to */
1090
+ /** Invocation ID of the parent gadget this subagent event belongs to */
1065
1091
  gadgetInvocationId: string;
1066
1092
  /** Nesting depth (1 = direct child, 2 = grandchild, etc.) */
1067
1093
  depth: number;
@@ -1389,7 +1415,7 @@ interface ExecutionContext {
1389
1415
  *
1390
1416
  * When provided, subagent gadgets (like BrowseWeb) can use this callback
1391
1417
  * to report their internal LLM calls and gadget executions in real-time.
1392
- * This enables the parent agent to display nested progress indicators.
1418
+ * This enables the parent agent to display subagent progress indicators.
1393
1419
  *
1394
1420
  * **Recommended:** Use `builder.withParentContext(ctx)` instead of calling
1395
1421
  * this directly - it handles all the forwarding automatically.
@@ -1410,7 +1436,7 @@ interface ExecutionContext {
1410
1436
  * }
1411
1437
  * ```
1412
1438
  */
1413
- onNestedEvent?: (event: NestedAgentEvent) => void;
1439
+ onSubagentEvent?: (event: SubagentEvent) => void;
1414
1440
  }
1415
1441
  /**
1416
1442
  * Parent agent configuration passed to gadgets.
@@ -3037,6 +3063,34 @@ declare function collectText(agentGenerator: AsyncGenerator<StreamEvent>): Promi
3037
3063
  * @module agent/hooks
3038
3064
  */
3039
3065
 
3066
+ /**
3067
+ * Metadata present when an event originates from a subagent.
3068
+ * Undefined for top-level agent events.
3069
+ *
3070
+ * When using subagent gadgets (like BrowseWeb), hook observers receive events
3071
+ * from both the main agent AND subagents. Check this context to distinguish.
3072
+ *
3073
+ * @example
3074
+ * ```typescript
3075
+ * observers: {
3076
+ * onLLMCallStart: (ctx) => {
3077
+ * if (ctx.subagentContext) {
3078
+ * // Event from a subagent
3079
+ * console.log(`↳ Subagent LLM (depth=${ctx.subagentContext.depth})`);
3080
+ * } else {
3081
+ * // Event from the main agent
3082
+ * console.log('Main agent LLM call');
3083
+ * }
3084
+ * }
3085
+ * }
3086
+ * ```
3087
+ */
3088
+ interface SubagentContext {
3089
+ /** Invocation ID of the parent gadget that spawned this subagent */
3090
+ parentGadgetInvocationId: string;
3091
+ /** Nesting depth: 1 = direct child, 2 = grandchild, etc. */
3092
+ depth: number;
3093
+ }
3040
3094
  /**
3041
3095
  * Context provided when an LLM call starts.
3042
3096
  * Read-only observation point.
@@ -3045,6 +3099,8 @@ interface ObserveLLMCallContext {
3045
3099
  iteration: number;
3046
3100
  options: Readonly<LLMGenerationOptions>;
3047
3101
  logger: Logger<ILogObj>;
3102
+ /** Present when event is from a subagent (undefined for top-level agent) */
3103
+ subagentContext?: SubagentContext;
3048
3104
  }
3049
3105
  /**
3050
3106
  * Context provided when an LLM call is ready to execute.
@@ -3057,6 +3113,8 @@ interface ObserveLLMCallReadyContext {
3057
3113
  /** Final options after any controller modifications (e.g., trailing messages) */
3058
3114
  options: Readonly<LLMGenerationOptions>;
3059
3115
  logger: Logger<ILogObj>;
3116
+ /** Present when event is from a subagent (undefined for top-level agent) */
3117
+ subagentContext?: SubagentContext;
3060
3118
  }
3061
3119
  /**
3062
3120
  * Context provided when an LLM call completes successfully.
@@ -3073,6 +3131,8 @@ interface ObserveLLMCompleteContext {
3073
3131
  /** The final message that will be added to history (after interceptors) */
3074
3132
  finalMessage: string;
3075
3133
  logger: Logger<ILogObj>;
3134
+ /** Present when event is from a subagent (undefined for top-level agent) */
3135
+ subagentContext?: SubagentContext;
3076
3136
  }
3077
3137
  /**
3078
3138
  * Context provided when an LLM call fails.
@@ -3085,6 +3145,8 @@ interface ObserveLLMErrorContext {
3085
3145
  /** Whether the error was recovered by a controller */
3086
3146
  recovered: boolean;
3087
3147
  logger: Logger<ILogObj>;
3148
+ /** Present when event is from a subagent (undefined for top-level agent) */
3149
+ subagentContext?: SubagentContext;
3088
3150
  }
3089
3151
  /**
3090
3152
  * Context provided when a gadget execution starts.
@@ -3097,6 +3159,8 @@ interface ObserveGadgetStartContext {
3097
3159
  /** Parameters after controller modifications */
3098
3160
  parameters: Readonly<Record<string, unknown>>;
3099
3161
  logger: Logger<ILogObj>;
3162
+ /** Present when event is from a subagent (undefined for top-level agent) */
3163
+ subagentContext?: SubagentContext;
3100
3164
  }
3101
3165
  /**
3102
3166
  * Context provided when a gadget execution completes.
@@ -3117,6 +3181,8 @@ interface ObserveGadgetCompleteContext {
3117
3181
  /** Cost of gadget execution in USD. 0 if gadget didn't report cost. */
3118
3182
  cost?: number;
3119
3183
  logger: Logger<ILogObj>;
3184
+ /** Present when event is from a subagent (undefined for top-level agent) */
3185
+ subagentContext?: SubagentContext;
3120
3186
  }
3121
3187
  /**
3122
3188
  * Context provided when a gadget is skipped due to a failed dependency.
@@ -3132,6 +3198,8 @@ interface ObserveGadgetSkippedContext {
3132
3198
  /** The error message from the failed dependency */
3133
3199
  failedDependencyError: string;
3134
3200
  logger: Logger<ILogObj>;
3201
+ /** Present when event is from a subagent (undefined for top-level agent) */
3202
+ subagentContext?: SubagentContext;
3135
3203
  }
3136
3204
  /**
3137
3205
  * Context provided for each stream chunk.
@@ -3146,6 +3214,8 @@ interface ObserveChunkContext {
3146
3214
  /** Token usage if available (providers send usage at stream start/end) */
3147
3215
  usage?: TokenUsage;
3148
3216
  logger: Logger<ILogObj>;
3217
+ /** Present when event is from a subagent (undefined for top-level agent) */
3218
+ subagentContext?: SubagentContext;
3149
3219
  }
3150
3220
  /**
3151
3221
  * Observers: Read-only hooks for side effects.
@@ -3188,6 +3258,8 @@ interface ObserveCompactionContext {
3188
3258
  stats: CompactionStats;
3189
3259
  /** Logger instance */
3190
3260
  logger: Logger<ILogObj>;
3261
+ /** Present when event is from a subagent (undefined for top-level agent) */
3262
+ subagentContext?: SubagentContext;
3191
3263
  }
3192
3264
  /**
3193
3265
  * Context provided when the agent is aborted via AbortSignal.
@@ -3200,6 +3272,8 @@ interface ObserveAbortContext {
3200
3272
  reason?: unknown;
3201
3273
  /** Logger instance */
3202
3274
  logger: Logger<ILogObj>;
3275
+ /** Present when event is from a subagent (undefined for top-level agent) */
3276
+ subagentContext?: SubagentContext;
3203
3277
  }
3204
3278
  /**
3205
3279
  * Context for chunk interception.
@@ -3572,8 +3646,8 @@ interface AgentOptions {
3572
3646
  signal?: AbortSignal;
3573
3647
  /** Subagent-specific configuration overrides (from CLI config) */
3574
3648
  subagentConfig?: SubagentConfigMap;
3575
- /** Callback for subagent gadgets to report nested events to parent */
3576
- onNestedEvent?: (event: NestedAgentEvent) => void;
3649
+ /** Callback for subagent gadgets to report subagent events to parent */
3650
+ onSubagentEvent?: (event: SubagentEvent) => void;
3577
3651
  }
3578
3652
  /**
3579
3653
  * Agent: Lean orchestrator that delegates to StreamProcessor.
@@ -3618,12 +3692,19 @@ declare class Agent {
3618
3692
  private readonly signal?;
3619
3693
  private readonly agentContextConfig;
3620
3694
  private readonly subagentConfig?;
3621
- private readonly onNestedEvent?;
3695
+ private readonly userSubagentEventCallback?;
3696
+ private readonly pendingSubagentEvents;
3697
+ private readonly onSubagentEvent;
3622
3698
  /**
3623
3699
  * Creates a new Agent instance.
3624
3700
  * @internal This constructor is private. Use LLMist.createAgent() or AgentBuilder instead.
3625
3701
  */
3626
3702
  constructor(key: typeof AGENT_INTERNAL_KEY, options: AgentOptions);
3703
+ /**
3704
+ * Flush pending subagent events as StreamEvents.
3705
+ * Called from run() to yield queued subagent events from subagent gadgets.
3706
+ */
3707
+ private flushPendingSubagentEvents;
3627
3708
  /**
3628
3709
  * Get the gadget registry for this agent.
3629
3710
  *
@@ -3829,7 +3910,7 @@ declare class AgentBuilder {
3829
3910
  private signal?;
3830
3911
  private trailingMessage?;
3831
3912
  private subagentConfig?;
3832
- private nestedEventCallback?;
3913
+ private subagentEventCallback?;
3833
3914
  private parentContext?;
3834
3915
  constructor(client?: LLMist);
3835
3916
  /**
@@ -4247,35 +4328,35 @@ declare class AgentBuilder {
4247
4328
  */
4248
4329
  withSubagentConfig(config: SubagentConfigMap): this;
4249
4330
  /**
4250
- * Set the callback for nested subagent events.
4331
+ * Set the callback for subagent events.
4251
4332
  *
4252
- * Subagent gadgets (like BrowseWeb) can use ExecutionContext.onNestedEvent
4333
+ * Subagent gadgets (like BrowseWeb) can use ExecutionContext.onSubagentEvent
4253
4334
  * to report their internal LLM calls and gadget executions in real-time.
4254
4335
  * This callback receives those events, enabling hierarchical progress display.
4255
4336
  *
4256
- * @param callback - Function to handle nested agent events
4337
+ * @param callback - Function to handle subagent events
4257
4338
  * @returns This builder for chaining
4258
4339
  *
4259
4340
  * @example
4260
4341
  * ```typescript
4261
- * .withNestedEventCallback((event) => {
4342
+ * .withSubagentEventCallback((event) => {
4262
4343
  * if (event.type === "llm_call_start") {
4263
- * console.log(` Nested LLM #${event.event.iteration} starting...`);
4344
+ * console.log(` Subagent LLM #${event.event.iteration} starting...`);
4264
4345
  * } else if (event.type === "gadget_call") {
4265
4346
  * console.log(` ⏵ ${event.event.call.gadgetName}...`);
4266
4347
  * }
4267
4348
  * })
4268
4349
  * ```
4269
4350
  */
4270
- withNestedEventCallback(callback: (event: NestedAgentEvent) => void): this;
4351
+ withSubagentEventCallback(callback: (event: SubagentEvent) => void): this;
4271
4352
  /**
4272
- * Enable automatic nested event forwarding to parent agent.
4353
+ * Enable automatic subagent event forwarding to parent agent.
4273
4354
  *
4274
4355
  * When building a subagent inside a gadget, call this method to automatically
4275
4356
  * forward all LLM calls and gadget events to the parent agent. This enables
4276
4357
  * hierarchical progress display without any manual event handling.
4277
4358
  *
4278
- * The method extracts `invocationId` and `onNestedEvent` from the execution
4359
+ * The method extracts `invocationId` and `onSubagentEvent` from the execution
4279
4360
  * context and sets up automatic forwarding via hooks and event wrapping.
4280
4361
  *
4281
4362
  * @param ctx - ExecutionContext passed to the gadget's execute() method
@@ -4353,7 +4434,7 @@ declare class AgentBuilder {
4353
4434
  /**
4354
4435
  * Compose the final hooks, including:
4355
4436
  * - Trailing message injection (if configured)
4356
- * - Nested event forwarding for LLM calls (if parentContext is set)
4437
+ * - Subagent event forwarding for LLM calls (if parentContext is set)
4357
4438
  */
4358
4439
  private composeHooks;
4359
4440
  /**
@@ -5261,4 +5342,4 @@ declare function createTextMockStream(text: string, options?: {
5261
5342
  usage?: MockResponse["usage"];
5262
5343
  }): LLMStream;
5263
5344
 
5264
- export { type LLMGenerationOptions as $, AbstractGadget as A, type MessageContent as B, type CompactionConfig as C, GadgetRegistry as D, MediaStore as E, type AgentContextConfig as F, type GadgetMediaOutput as G, type HintTemplate as H, type IConversationManager as I, type SubagentConfigMap as J, type ExecutionContext as K, type LLMMessage as L, MockProviderAdapter as M, type NestedAgentEvent as N, type GadgetExecuteReturn as O, type GadgetExample as P, type ParsedGadgetCall as Q, type ResolvedCompactionConfig as R, type StreamEvent as S, type TokenUsage as T, type GadgetExecutionResult as U, type MediaKind as V, type MediaMetadata as W, type GadgetExecuteResultWithMedia as X, type ProviderAdapter as Y, type ModelDescriptor as Z, type ModelSpec as _, type LLMStream as a, isTextPart as a$, type ImageModelSpec as a0, type ImageGenerationOptions as a1, type ImageGenerationResult as a2, type SpeechModelSpec as a3, type SpeechGenerationOptions as a4, type SpeechGenerationResult as a5, type HistoryMessage as a6, type TrailingMessage as a7, type TrailingMessageContext as a8, AgentBuilder as a9, type ObserveLLMCallContext as aA, type ObserveLLMCompleteContext as aB, type ObserveLLMErrorContext as aC, type Observers as aD, DEFAULT_COMPACTION_CONFIG as aE, DEFAULT_SUMMARIZATION_PROMPT as aF, type LLMistOptions as aG, type AudioContentPart as aH, type AudioMimeType as aI, type AudioSource as aJ, type ContentPart as aK, type ImageBase64Source as aL, type ImageContentPart as aM, type ImageMimeType as aN, type ImageSource as aO, type ImageUrlSource as aP, type TextContentPart as aQ, audioFromBase64 as aR, audioFromBuffer as aS, detectAudioMimeType as aT, detectImageMimeType as aU, imageFromBase64 as aV, imageFromBuffer as aW, imageFromUrl as aX, isAudioPart as aY, isDataUrl as aZ, isImagePart as a_, type EventHandlers as aa, collectEvents as ab, collectText as ac, runWithHandlers as ad, type AfterGadgetExecutionAction as ae, type AfterGadgetExecutionControllerContext as af, type AfterLLMCallAction as ag, type AfterLLMCallControllerContext as ah, type AfterLLMErrorAction as ai, type AgentOptions as aj, type BeforeGadgetExecutionAction as ak, type BeforeLLMCallAction as al, type ChunkInterceptorContext as am, type Controllers as an, type GadgetExecutionControllerContext as ao, type GadgetParameterInterceptorContext as ap, type GadgetResultInterceptorContext as aq, type Interceptors as ar, type LLMCallControllerContext as as, type LLMErrorControllerContext as at, type MessageInterceptorContext as au, type MessageTurn as av, type ObserveChunkContext as aw, type ObserveCompactionContext as ax, type ObserveGadgetCompleteContext as ay, type ObserveGadgetStartContext as az, type LLMStreamChunk as b, parseDataUrl as b0, text as b1, toBase64 as b2, type MessageRole as b3, extractMessageText as b4, LLMMessageBuilder as b5, normalizeMessageContent as b6, type CostEstimate as b7, type ModelFeatures as b8, type ModelLimits as b9, type TextOnlyGadgetConfig as bA, type TextOnlyHandler as bB, type TextOnlyStrategy as bC, type ModelPricing as ba, type VisionAnalyzeOptions as bb, type VisionAnalyzeResult as bc, type ProviderIdentifier as bd, ModelIdentifierParser as be, type HintContext as bf, type PromptContext as bg, type PromptTemplate as bh, type PromptTemplateConfig as bi, DEFAULT_HINTS as bj, DEFAULT_PROMPTS as bk, resolveHintTemplate as bl, resolvePromptTemplate as bm, resolveRulesTemplate as bn, type TextGenerationOptions as bo, complete as bp, stream as bq, type GadgetClass as br, type GadgetOrClass as bs, type CostReportingLLMist as bt, type GadgetExecuteResult as bu, type GadgetSkippedEvent as bv, type StoredMedia as bw, type TextOnlyAction as bx, type TextOnlyContext as by, type TextOnlyCustomHandler as bz, createMockAdapter as c, MockBuilder as d, createMockClient as e, MockManager as f, getMockManager as g, createMockStream as h, createTextMockStream as i, type MockAudioData as j, type MockImageData as k, type MockMatcher as l, mockLLM as m, type MockMatcherContext as n, type MockOptions as o, type MockRegistration as p, type MockResponse as q, type MockStats as r, type AgentHooks as s, ModelRegistry as t, LLMist as u, type CompactionEvent as v, type CompactionStats as w, type CompactionStrategy as x, type CompactionContext as y, type CompactionResult as z };
5345
+ export { type LLMGenerationOptions as $, AbstractGadget as A, type MessageContent as B, type CompactionConfig as C, GadgetRegistry as D, MediaStore as E, type AgentContextConfig as F, type GadgetMediaOutput as G, type HintTemplate as H, type IConversationManager as I, type SubagentConfigMap as J, type SubagentEvent as K, type LLMMessage as L, MockProviderAdapter as M, type ExecutionContext as N, type GadgetExecuteReturn as O, type GadgetExample as P, type ParsedGadgetCall as Q, type ResolvedCompactionConfig as R, type StreamEvent as S, type TokenUsage as T, type GadgetExecutionResult as U, type MediaKind as V, type MediaMetadata as W, type GadgetExecuteResultWithMedia as X, type ProviderAdapter as Y, type ModelDescriptor as Z, type ModelSpec as _, type LLMStream as a, isImagePart as a$, type ImageModelSpec as a0, type ImageGenerationOptions as a1, type ImageGenerationResult as a2, type SpeechModelSpec as a3, type SpeechGenerationOptions as a4, type SpeechGenerationResult as a5, type HistoryMessage as a6, type TrailingMessage as a7, type TrailingMessageContext as a8, AgentBuilder as a9, type ObserveLLMCallContext as aA, type ObserveLLMCompleteContext as aB, type ObserveLLMErrorContext as aC, type Observers as aD, type SubagentContext as aE, DEFAULT_COMPACTION_CONFIG as aF, DEFAULT_SUMMARIZATION_PROMPT as aG, type LLMistOptions as aH, type AudioContentPart as aI, type AudioMimeType as aJ, type AudioSource as aK, type ContentPart as aL, type ImageBase64Source as aM, type ImageContentPart as aN, type ImageMimeType as aO, type ImageSource as aP, type ImageUrlSource as aQ, type TextContentPart as aR, audioFromBase64 as aS, audioFromBuffer as aT, detectAudioMimeType as aU, detectImageMimeType as aV, imageFromBase64 as aW, imageFromBuffer as aX, imageFromUrl as aY, isAudioPart as aZ, isDataUrl as a_, type EventHandlers as aa, collectEvents as ab, collectText as ac, runWithHandlers as ad, type AfterGadgetExecutionAction as ae, type AfterGadgetExecutionControllerContext as af, type AfterLLMCallAction as ag, type AfterLLMCallControllerContext as ah, type AfterLLMErrorAction as ai, type AgentOptions as aj, type BeforeGadgetExecutionAction as ak, type BeforeLLMCallAction as al, type ChunkInterceptorContext as am, type Controllers as an, type GadgetExecutionControllerContext as ao, type GadgetParameterInterceptorContext as ap, type GadgetResultInterceptorContext as aq, type Interceptors as ar, type LLMCallControllerContext as as, type LLMErrorControllerContext as at, type MessageInterceptorContext as au, type MessageTurn as av, type ObserveChunkContext as aw, type ObserveCompactionContext as ax, type ObserveGadgetCompleteContext as ay, type ObserveGadgetStartContext as az, type LLMStreamChunk as b, isTextPart as b0, parseDataUrl as b1, text as b2, toBase64 as b3, type MessageRole as b4, extractMessageText as b5, LLMMessageBuilder as b6, normalizeMessageContent as b7, type CostEstimate as b8, type ModelFeatures as b9, type TextOnlyContext as bA, type TextOnlyCustomHandler as bB, type TextOnlyGadgetConfig as bC, type TextOnlyHandler as bD, type TextOnlyStrategy as bE, type ModelLimits as ba, type ModelPricing as bb, type VisionAnalyzeOptions as bc, type VisionAnalyzeResult as bd, type ProviderIdentifier as be, ModelIdentifierParser as bf, type HintContext as bg, type PromptContext as bh, type PromptTemplate as bi, type PromptTemplateConfig as bj, DEFAULT_HINTS as bk, DEFAULT_PROMPTS as bl, resolveHintTemplate as bm, resolvePromptTemplate as bn, resolveRulesTemplate as bo, type TextGenerationOptions as bp, complete as bq, stream as br, type GadgetClass as bs, type GadgetOrClass as bt, type CostReportingLLMist as bu, type GadgetExecuteResult as bv, type GadgetSkippedEvent as bw, type StoredMedia as bx, type SubagentStreamEvent as by, type TextOnlyAction as bz, createMockAdapter as c, MockBuilder as d, createMockClient as e, MockManager as f, getMockManager as g, createMockStream as h, createTextMockStream as i, type MockAudioData as j, type MockImageData as k, type MockMatcher as l, mockLLM as m, type MockMatcherContext as n, type MockOptions as o, type MockRegistration as p, type MockResponse as q, type MockStats as r, type AgentHooks as s, ModelRegistry as t, LLMist as u, type CompactionEvent as v, type CompactionStats as w, type CompactionStrategy as x, type CompactionContext as y, type CompactionResult as z };