art-framework 0.4.13 → 0.4.14

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.
package/dist/index.d.ts CHANGED
@@ -51,6 +51,484 @@ declare class TypedSocket<DataType, FilterType = any> {
51
51
  clearAllSubscriptions(): void;
52
52
  }
53
53
 
54
+ /**
55
+ * @module types/hitl-types
56
+ *
57
+ * This module defines the types and contracts for Human-in-the-Loop (HITL) functionality
58
+ * in the ART framework. It establishes a clear contract for blocking tools to declare
59
+ * expected feedback types and for the framework to programmatically handle user responses.
60
+ *
61
+ * Key Design Principle:
62
+ * User feedback IS the tool result. When a user provides feedback (approval, text input,
63
+ * selection, etc.), the framework programmatically marks the tool call as SUCCESS with
64
+ * the feedback as the output. The LLM never needs to re-invoke the tool.
65
+ */
66
+ /**
67
+ * Defines the three categories of tools in the ART framework.
68
+ *
69
+ * @remarks
70
+ * Each category has different execution semantics and framework handling:
71
+ *
72
+ * - `functional`: Regular tools that execute synchronously and return results immediately.
73
+ * Examples: webSearch, calculator, fileRead, apiCall
74
+ *
75
+ * - `blocking`: Tools that require human input to complete. They return 'suspended' status
76
+ * initially, and the framework waits for user feedback. The user's feedback becomes
77
+ * the tool's result - no re-execution needed.
78
+ * Examples: confirmAction, getUserInput, selectOption, requestApproval
79
+ *
80
+ * - `display`: Tools for generative UI that render content without producing a traditional
81
+ * "result". They complete immediately but their output is visual/interactive.
82
+ * Examples: renderChart, showModal, displayProgress, generateUI
83
+ */
84
+ type ToolExecutionMode = 'functional' | 'blocking' | 'display';
85
+ /**
86
+ * Defines the type of user input expected for HITL feedback.
87
+ *
88
+ * @remarks
89
+ * This enables blocking tools to declare what kind of UI the application
90
+ * should render to collect user feedback.
91
+ */
92
+ type HITLInputType = 'boolean' | 'text' | 'select' | 'multiselect' | 'number' | 'date' | 'datetime' | 'file' | 'confirm' | 'custom';
93
+ /**
94
+ * Schema for what kind of feedback a blocking tool expects.
95
+ *
96
+ * @remarks
97
+ * Tools declare this schema to inform the UI layer what input to collect.
98
+ * The framework uses this to validate feedback and construct the tool result.
99
+ *
100
+ * @example
101
+ * // Simple confirmation
102
+ * {
103
+ * inputType: 'confirm',
104
+ * prompt: 'Are you sure you want to delete this file?',
105
+ * confirmLabel: 'Delete',
106
+ * cancelLabel: 'Keep'
107
+ * }
108
+ *
109
+ * @example
110
+ * // Selection from options
111
+ * {
112
+ * inputType: 'select',
113
+ * prompt: 'Which deployment environment should we use?',
114
+ * options: [
115
+ * { value: 'staging', label: 'Staging', description: 'Test environment' },
116
+ * { value: 'production', label: 'Production', description: 'Live environment' }
117
+ * ],
118
+ * required: true
119
+ * }
120
+ *
121
+ * @example
122
+ * // Text input with validation
123
+ * {
124
+ * inputType: 'text',
125
+ * prompt: 'Please provide the API key for the service:',
126
+ * placeholder: 'sk-...',
127
+ * validation: {
128
+ * required: true,
129
+ * pattern: '^sk-[a-zA-Z0-9]{32,}$',
130
+ * patternMessage: 'Must be a valid API key starting with sk-'
131
+ * }
132
+ * }
133
+ */
134
+ interface HITLFeedbackSchema {
135
+ /**
136
+ * The type of input expected from the user.
137
+ */
138
+ inputType: HITLInputType;
139
+ /**
140
+ * Human-readable prompt shown to the user.
141
+ * This should clearly explain what input is needed and why.
142
+ */
143
+ prompt: string;
144
+ /**
145
+ * Optional title for the feedback dialog/section.
146
+ */
147
+ title?: string;
148
+ /**
149
+ * For select/multiselect: available options to choose from.
150
+ */
151
+ options?: HITLSelectOption[];
152
+ /**
153
+ * Validation constraints for the input.
154
+ */
155
+ validation?: HITLInputValidation;
156
+ /**
157
+ * Optional default value to pre-fill.
158
+ */
159
+ defaultValue?: unknown;
160
+ /**
161
+ * Placeholder text for text/number inputs.
162
+ */
163
+ placeholder?: string;
164
+ /**
165
+ * For confirm type: custom label for the approve button.
166
+ * @default 'Approve'
167
+ */
168
+ confirmLabel?: string;
169
+ /**
170
+ * For confirm type: custom label for the reject button.
171
+ * @default 'Reject'
172
+ */
173
+ cancelLabel?: string;
174
+ /**
175
+ * If true, user can modify the original tool arguments before submitting.
176
+ * The modified args are returned in the feedback.
177
+ * @default false
178
+ */
179
+ allowModifyArgs?: boolean;
180
+ /**
181
+ * For custom inputType: application-defined JSON schema for the input.
182
+ */
183
+ customSchema?: Record<string, unknown>;
184
+ /**
185
+ * Optional hint text shown below the input.
186
+ */
187
+ hint?: string;
188
+ /**
189
+ * Whether this is a sensitive input (e.g., password, API key).
190
+ * UI should mask the input if true.
191
+ * @default false
192
+ */
193
+ sensitive?: boolean;
194
+ }
195
+ /**
196
+ * An option for select/multiselect input types.
197
+ */
198
+ interface HITLSelectOption {
199
+ /**
200
+ * The value returned when this option is selected.
201
+ */
202
+ value: string | number | boolean;
203
+ /**
204
+ * Human-readable label displayed to the user.
205
+ */
206
+ label: string;
207
+ /**
208
+ * Optional description providing more context about this option.
209
+ */
210
+ description?: string;
211
+ /**
212
+ * Whether this option is disabled (shown but not selectable).
213
+ * @default false
214
+ */
215
+ disabled?: boolean;
216
+ /**
217
+ * Optional icon identifier for UI rendering.
218
+ */
219
+ icon?: string;
220
+ }
221
+ /**
222
+ * Validation constraints for HITL input.
223
+ */
224
+ interface HITLInputValidation {
225
+ /**
226
+ * Whether the input is required (non-empty).
227
+ * @default false
228
+ */
229
+ required?: boolean;
230
+ /**
231
+ * For text: minimum character length.
232
+ */
233
+ minLength?: number;
234
+ /**
235
+ * For text: maximum character length.
236
+ */
237
+ maxLength?: number;
238
+ /**
239
+ * For number: minimum value.
240
+ */
241
+ min?: number;
242
+ /**
243
+ * For number: maximum value.
244
+ */
245
+ max?: number;
246
+ /**
247
+ * For text: regex pattern the input must match.
248
+ */
249
+ pattern?: string;
250
+ /**
251
+ * Custom error message when pattern validation fails.
252
+ */
253
+ patternMessage?: string;
254
+ /**
255
+ * For multiselect: minimum number of selections required.
256
+ */
257
+ minSelections?: number;
258
+ /**
259
+ * For multiselect: maximum number of selections allowed.
260
+ */
261
+ maxSelections?: number;
262
+ }
263
+ /**
264
+ * The standardized feedback structure returned by the user.
265
+ *
266
+ * @remarks
267
+ * This is the canonical format for user feedback. The framework converts this
268
+ * into a successful tool result when resuming execution. The LLM sees this
269
+ * as a normal tool completion.
270
+ */
271
+ interface HITLFeedback {
272
+ /**
273
+ * Whether the action was approved/confirmed.
274
+ * For non-boolean input types, this is true if the user submitted
275
+ * (vs. cancelled/dismissed).
276
+ */
277
+ approved: boolean;
278
+ /**
279
+ * The user's input value, type depends on the inputType:
280
+ * - boolean: true/false
281
+ * - text: string
282
+ * - number: number
283
+ * - select: the selected option's value
284
+ * - multiselect: array of selected values
285
+ * - date/datetime: ISO string
286
+ * - file: file reference object
287
+ * - confirm: undefined (use approved field)
288
+ * - custom: matches customSchema
289
+ */
290
+ value?: unknown;
291
+ /**
292
+ * For text input type, the raw text entered.
293
+ * @deprecated Use `value` instead
294
+ */
295
+ textInput?: string;
296
+ /**
297
+ * For select/multiselect, the selected value(s).
298
+ * @deprecated Use `value` instead
299
+ */
300
+ selectedValues?: (string | number | boolean)[];
301
+ /**
302
+ * Modified tool arguments if allowModifyArgs was true and user modified them.
303
+ */
304
+ modifiedArgs?: Record<string, unknown>;
305
+ /**
306
+ * Optional reason/comment provided by the user.
307
+ * Particularly useful for rejections to explain why.
308
+ */
309
+ reason?: string;
310
+ /**
311
+ * Timestamp when feedback was provided.
312
+ */
313
+ timestamp: number;
314
+ /**
315
+ * Optional metadata about the feedback context.
316
+ */
317
+ metadata?: Record<string, unknown>;
318
+ }
319
+ /**
320
+ * Configuration for blocking tools in the ToolSchema.
321
+ *
322
+ * @remarks
323
+ * This is added to ToolSchema when executionMode is 'blocking'.
324
+ * It defines how the tool interacts with the HITL system.
325
+ */
326
+ interface BlockingToolConfig {
327
+ /**
328
+ * The schema for feedback this tool expects.
329
+ * If not provided, defaults to a simple confirm schema.
330
+ */
331
+ feedbackSchema?: HITLFeedbackSchema;
332
+ /**
333
+ * Message to show in the approval dialog.
334
+ * Can include {{variable}} placeholders that will be replaced
335
+ * with values from the tool's input arguments.
336
+ */
337
+ approvalPrompt?: string;
338
+ /**
339
+ * Whether the tool auto-completes successfully when approved.
340
+ * If true (default), approval = success with feedback as output.
341
+ * If false, the tool's execute() is called again with hitlContext.
342
+ * @default true
343
+ */
344
+ completesOnApproval?: boolean;
345
+ /**
346
+ * Whether rejection allows retry with modified arguments.
347
+ * If true, rejection doesn't fail the step but allows re-planning.
348
+ * @default true
349
+ */
350
+ allowRetryOnReject?: boolean;
351
+ /**
352
+ * Timeout in milliseconds for user response.
353
+ * If exceeded, the tool fails with a timeout error.
354
+ * @default undefined (no timeout)
355
+ */
356
+ timeoutMs?: number;
357
+ /**
358
+ * Category of the blocking action for UI grouping.
359
+ * Examples: 'destructive', 'financial', 'external', 'sensitive'
360
+ */
361
+ category?: string;
362
+ /**
363
+ * Risk level for UI styling/warnings.
364
+ */
365
+ riskLevel?: 'low' | 'medium' | 'high' | 'critical';
366
+ }
367
+ /**
368
+ * Configuration for display tools in the ToolSchema.
369
+ *
370
+ * @remarks
371
+ * This is added to ToolSchema when executionMode is 'display'.
372
+ * Display tools render UI without producing traditional results.
373
+ */
374
+ interface DisplayToolConfig {
375
+ /**
376
+ * The type of UI component this tool renders.
377
+ */
378
+ componentType?: string;
379
+ /**
380
+ * Whether the display persists or is ephemeral.
381
+ * @default 'persistent'
382
+ */
383
+ displayMode?: 'persistent' | 'ephemeral' | 'modal';
384
+ /**
385
+ * Whether this display supports user interaction.
386
+ * If true, interactions may generate new messages.
387
+ * @default false
388
+ */
389
+ interactive?: boolean;
390
+ /**
391
+ * Schema for the data this display component expects.
392
+ */
393
+ dataSchema?: Record<string, unknown>;
394
+ }
395
+ /**
396
+ * HITL-specific context passed to tools via ExecutionContext.
397
+ *
398
+ * @remarks
399
+ * This enables blocking tools to know if they're being called
400
+ * for initial suspension vs. post-approval execution.
401
+ */
402
+ interface HITLContext {
403
+ /**
404
+ * True if this execution is resuming from a previous suspension.
405
+ */
406
+ isResuming: boolean;
407
+ /**
408
+ * True if the user approved the action.
409
+ * Only meaningful when isResuming is true.
410
+ */
411
+ wasApproved?: boolean;
412
+ /**
413
+ * The user's feedback if resuming from approval.
414
+ */
415
+ feedback?: HITLFeedback;
416
+ /**
417
+ * The original suspension ID being resumed.
418
+ */
419
+ suspensionId?: string;
420
+ /**
421
+ * The original tool arguments that were suspended.
422
+ */
423
+ originalArgs?: Record<string, unknown>;
424
+ }
425
+ /**
426
+ * Extended ToolResult for blocking tools that return 'suspended' status.
427
+ *
428
+ * @remarks
429
+ * When a blocking tool returns 'suspended', it should include the
430
+ * feedbackSchema so the UI knows what to render.
431
+ */
432
+ interface BlockingToolSuspendedResult {
433
+ status: 'suspended';
434
+ callId: string;
435
+ toolName: string;
436
+ /**
437
+ * The feedback schema for the UI to render.
438
+ * If not provided, the framework uses the tool's schema config.
439
+ */
440
+ feedbackSchema?: HITLFeedbackSchema;
441
+ /**
442
+ * Display content to show in the suspension UI.
443
+ */
444
+ output?: {
445
+ message: string;
446
+ details?: Record<string, unknown>;
447
+ previewData?: unknown;
448
+ };
449
+ /**
450
+ * Metadata including the suspensionId.
451
+ */
452
+ metadata?: {
453
+ suspensionId: string;
454
+ [key: string]: unknown;
455
+ };
456
+ }
457
+ /**
458
+ * The successful result created by the framework when user provides feedback.
459
+ *
460
+ * @remarks
461
+ * This is what the LLM sees after resumption - a normal successful tool result.
462
+ * The content field contains a description, and output contains the feedback.
463
+ */
464
+ interface BlockingToolCompletedResult {
465
+ status: 'success';
466
+ callId: string;
467
+ toolName: string;
468
+ /**
469
+ * The user's feedback structured as the tool output.
470
+ */
471
+ output: {
472
+ /**
473
+ * Human-readable summary of what happened.
474
+ */
475
+ message: string;
476
+ /**
477
+ * The feedback provided by the user.
478
+ */
479
+ feedback: HITLFeedback;
480
+ /**
481
+ * Whether the user approved the action.
482
+ */
483
+ approved: boolean;
484
+ /**
485
+ * The actual value provided (varies by input type).
486
+ */
487
+ value?: unknown;
488
+ };
489
+ /**
490
+ * Metadata about the completion.
491
+ */
492
+ metadata?: {
493
+ /**
494
+ * The original suspension ID that was resumed.
495
+ */
496
+ suspensionId?: string;
497
+ /**
498
+ * Timestamp of when feedback was received.
499
+ */
500
+ completedAt: number;
501
+ /**
502
+ * Duration from suspension to completion in ms.
503
+ */
504
+ waitDurationMs?: number;
505
+ [key: string]: unknown;
506
+ };
507
+ }
508
+ /**
509
+ * Type guard to check if a ToolResult is a suspended blocking tool result.
510
+ */
511
+ declare function isBlockingSuspendedResult(result: {
512
+ status: string;
513
+ }): result is BlockingToolSuspendedResult;
514
+ /**
515
+ * Type guard to check if feedback indicates approval.
516
+ */
517
+ declare function isFeedbackApproved(feedback: HITLFeedback): boolean;
518
+ /**
519
+ * Creates a standardized successful result from HITL feedback.
520
+ *
521
+ * @param originalCall - The original tool call that was suspended
522
+ * @param feedback - The user's feedback
523
+ * @param suspensionId - The suspension ID being resolved
524
+ * @returns A properly formatted successful ToolResult
525
+ */
526
+ declare function createHITLSuccessResult(originalCall: {
527
+ callId: string;
528
+ toolName: string;
529
+ arguments?: unknown;
530
+ }, feedback: HITLFeedback, suspensionId?: string): BlockingToolCompletedResult;
531
+
54
532
  /**
55
533
  * Entry defining an available provider adapter.
56
534
  *
@@ -1675,6 +2153,7 @@ interface LLMMetadata {
1675
2153
  */
1676
2154
  traceId?: string;
1677
2155
  }
2156
+
1678
2157
  /**
1679
2158
  * Defines the schema for a tool, including its input parameters.
1680
2159
  * Uses JSON Schema format for inputSchema.
@@ -1712,13 +2191,36 @@ interface ToolSchema {
1712
2191
  description?: string;
1713
2192
  }>;
1714
2193
  /**
1715
- * Defines the execution mode of the tool.
1716
- * - 'immediate': The tool executes and returns a result immediately (default).
1717
- * - 'blocking': The tool initiates a process that requires human intervention (HITL).
1718
- * The agent will suspend execution until resumed.
1719
- * @property {'immediate' | 'blocking'} [executionMode]
2194
+ * Defines the execution mode (category) of the tool.
2195
+ *
2196
+ * @remarks
2197
+ * Tools are categorized into three modes with different framework handling:
2198
+ *
2199
+ * - `functional` (default, also 'immediate' for backward compat): Regular tools that
2200
+ * execute synchronously and return results immediately.
2201
+ *
2202
+ * - `blocking`: HITL tools that require human input to complete. They return 'suspended'
2203
+ * status initially. When user provides feedback, the framework programmatically
2204
+ * completes the tool with the feedback as output - no re-execution needed.
2205
+ *
2206
+ * - `display`: Generative UI tools that render visual content. They complete immediately
2207
+ * but their output is meant for rendering rather than LLM consumption.
2208
+ *
2209
+ * @property {'functional' | 'immediate' | 'blocking' | 'display'} [executionMode]
2210
+ */
2211
+ executionMode?: 'functional' | 'immediate' | 'blocking' | 'display';
2212
+ /**
2213
+ * Configuration for blocking tools (HITL).
2214
+ * Only applicable when executionMode is 'blocking'.
2215
+ * @property {import('./hitl-types').BlockingToolConfig} [blockingConfig]
2216
+ */
2217
+ blockingConfig?: BlockingToolConfig;
2218
+ /**
2219
+ * Configuration for display tools (Generative UI).
2220
+ * Only applicable when executionMode is 'display'.
2221
+ * @property {import('./hitl-types').DisplayToolConfig} [displayConfig]
1720
2222
  */
1721
- executionMode?: 'immediate' | 'blocking';
2223
+ displayConfig?: DisplayToolConfig;
1722
2224
  }
1723
2225
  /**
1724
2226
  * Represents the structured result of a tool execution.
@@ -2144,6 +2646,22 @@ interface ExecutionContext {
2144
2646
  * @property {string} [userId]
2145
2647
  */
2146
2648
  userId?: string;
2649
+ /**
2650
+ * HITL context for blocking tools.
2651
+ *
2652
+ * @remarks
2653
+ * This enables blocking tools to differentiate between:
2654
+ * - Initial invocation (should return 'suspended' to request user input)
2655
+ * - Post-approval invocation (if completesOnApproval is false, tool is re-executed)
2656
+ *
2657
+ * For most blocking tools with completesOnApproval=true (default), the tool is NOT
2658
+ * re-executed after approval - the framework creates the success result programmatically.
2659
+ * This field is only populated when completesOnApproval=false and the tool needs
2660
+ * to perform actual work after user approval.
2661
+ *
2662
+ * @property {import('./hitl-types').HITLContext} [hitlContext]
2663
+ */
2664
+ hitlContext?: HITLContext;
2147
2665
  }
2148
2666
  /**
2149
2667
  * Options for configuring an LLM call, including streaming and context information.
@@ -6565,6 +7083,6 @@ declare const generateUUID: () => string;
6565
7083
  /**
6566
7084
  * The current version of the ART Framework package.
6567
7085
  */
6568
- declare const VERSION = "0.4.13";
7086
+ declare const VERSION = "0.4.14";
6569
7087
 
6570
- export { type A2AAgentInfo, type A2ATask, type A2ATaskEvent, type A2ATaskFilter, type A2ATaskMetadata, A2ATaskPriority, type A2ATaskResult, A2ATaskSocket, A2ATaskStatus, ARTError, AdapterInstantiationError, type AgentDiscoveryConfig, AgentDiscoveryService, AgentFactory, type AgentFinalResponse, type AgentOptions, type AgentPersona, type AgentProps, type AgentState, AnthropicAdapter, type AnthropicAdapterOptions, ApiKeyStrategy, ApiQueueTimeoutError, type ArtInstance, type ArtInstanceConfig, type ArtStandardMessage, type ArtStandardMessageRole, ArtStandardMessageSchema, type ArtStandardPrompt, ArtStandardPromptSchema, AuthManager, type AvailableProviderEntry, CalculatorTool, type CallOptions, type ConversationManager, type ConversationMessage, ConversationSocket, type CreateA2ATaskRequest, DeepSeekAdapter, type DeepSeekAdapterOptions, ErrorCode, type ExecutionConfig, type ExecutionContext, type ExecutionMetadata, type ExecutionOutput, type FilterOptions, type FormattedPrompt, GeminiAdapter, type GeminiAdapterOptions, GenericOAuthStrategy, GroqAdapter, type GroqAdapterOptions, type IA2ATaskRepository, type IAgentCore, type IAuthStrategy, type IConversationRepository, type IObservationRepository, type IProviderManager, type IStateRepository, type IToolExecutor, type ITypedSocket, InMemoryStorageAdapter, IndexedDBStorageAdapter, type JsonObjectSchema, type JsonSchema, type LLMMetadata, LLMStreamSocket, LocalInstanceBusyError, LocalProviderConflictError, LogLevel, Logger, type LoggerConfig, type ManagedAdapterAccessor, McpClientController, McpManager, type McpManagerConfig, McpProxyTool, type McpResource, type McpResourceTemplate, type McpServerConfig, type McpServerStatus, type McpToolDefinition, type MessageOptions, MessageRole, ModelCapability, type OAuthConfig, type Observation, type ObservationFilter, type ObservationManager, ObservationSocket, ObservationType, OllamaAdapter, type OllamaAdapterOptions, OpenAIAdapter, type OpenAIAdapterOptions, OpenRouterAdapter, type OpenRouterAdapterOptions, OutputParser, PESAgent, type PESAgentStateData, type PKCEOAuthConfig, PKCEOAuthStrategy, type ParsedToolCall, type PromptBlueprint, type PromptContext, type ProviderAdapter, type ProviderManagerConfig, ProviderManagerImpl, ReasoningEngine, type RuntimeProviderConfig, type StageSpecificPrompts, StateManager, type StateSavingStrategy, type StepOutputEntry, type StorageAdapter, type StreamEvent, type StreamEventTypeFilter, SupabaseStorageAdapter, type SystemPromptMergeStrategy, type SystemPromptOverride, SystemPromptResolver, type SystemPromptSpec, type SystemPromptsRegistry, type TaskDelegationConfig, TaskDelegationService, type TaskStatusResponse, type ThreadConfig, type ThreadContext, type TodoItem, TodoItemStatus, ToolRegistry, type ToolResult, type ToolSchema, type ToolSystem, TypedSocket, UISystem, UnknownProviderError, type UnsubscribeFunction, type UpdateA2ATaskRequest, VERSION, type ZyntopiaOAuthConfig, ZyntopiaOAuthStrategy, createArtInstance, generateUUID };
7088
+ export { type A2AAgentInfo, type A2ATask, type A2ATaskEvent, type A2ATaskFilter, type A2ATaskMetadata, A2ATaskPriority, type A2ATaskResult, A2ATaskSocket, A2ATaskStatus, ARTError, AdapterInstantiationError, type AgentDiscoveryConfig, AgentDiscoveryService, AgentFactory, type AgentFinalResponse, type AgentOptions, type AgentPersona, type AgentProps, type AgentState, AnthropicAdapter, type AnthropicAdapterOptions, ApiKeyStrategy, ApiQueueTimeoutError, type ArtInstance, type ArtInstanceConfig, type ArtStandardMessage, type ArtStandardMessageRole, ArtStandardMessageSchema, type ArtStandardPrompt, ArtStandardPromptSchema, AuthManager, type AvailableProviderEntry, type BlockingToolCompletedResult, type BlockingToolConfig, type BlockingToolSuspendedResult, CalculatorTool, type CallOptions, type ConversationManager, type ConversationMessage, ConversationSocket, type CreateA2ATaskRequest, DeepSeekAdapter, type DeepSeekAdapterOptions, type DisplayToolConfig, ErrorCode, type ExecutionConfig, type ExecutionContext, type ExecutionMetadata, type ExecutionOutput, type FilterOptions, type FormattedPrompt, GeminiAdapter, type GeminiAdapterOptions, GenericOAuthStrategy, GroqAdapter, type GroqAdapterOptions, type HITLContext, type HITLFeedback, type HITLFeedbackSchema, type HITLInputType, type HITLInputValidation, type HITLSelectOption, type IA2ATaskRepository, type IAgentCore, type IAuthStrategy, type IConversationRepository, type IObservationRepository, type IProviderManager, type IStateRepository, type IToolExecutor, type ITypedSocket, InMemoryStorageAdapter, IndexedDBStorageAdapter, type JsonObjectSchema, type JsonSchema, type LLMMetadata, LLMStreamSocket, LocalInstanceBusyError, LocalProviderConflictError, LogLevel, Logger, type LoggerConfig, type ManagedAdapterAccessor, McpClientController, McpManager, type McpManagerConfig, McpProxyTool, type McpResource, type McpResourceTemplate, type McpServerConfig, type McpServerStatus, type McpToolDefinition, type MessageOptions, MessageRole, ModelCapability, type OAuthConfig, type Observation, type ObservationFilter, type ObservationManager, ObservationSocket, ObservationType, OllamaAdapter, type OllamaAdapterOptions, OpenAIAdapter, type OpenAIAdapterOptions, OpenRouterAdapter, type OpenRouterAdapterOptions, OutputParser, PESAgent, type PESAgentStateData, type PKCEOAuthConfig, PKCEOAuthStrategy, type ParsedToolCall, type PromptBlueprint, type PromptContext, type ProviderAdapter, type ProviderManagerConfig, ProviderManagerImpl, ReasoningEngine, type RuntimeProviderConfig, type StageSpecificPrompts, StateManager, type StateSavingStrategy, type StepOutputEntry, type StorageAdapter, type StreamEvent, type StreamEventTypeFilter, SupabaseStorageAdapter, type SystemPromptMergeStrategy, type SystemPromptOverride, SystemPromptResolver, type SystemPromptSpec, type SystemPromptsRegistry, type TaskDelegationConfig, TaskDelegationService, type TaskStatusResponse, type ThreadConfig, type ThreadContext, type TodoItem, TodoItemStatus, type ToolExecutionMode, ToolRegistry, type ToolResult, type ToolSchema, type ToolSystem, TypedSocket, UISystem, UnknownProviderError, type UnsubscribeFunction, type UpdateA2ATaskRequest, VERSION, type ZyntopiaOAuthConfig, ZyntopiaOAuthStrategy, createArtInstance, createHITLSuccessResult, generateUUID, isBlockingSuspendedResult, isFeedbackApproved };