@aigne/core 1.72.0-beta.2 → 1.72.0-beta.23

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 (175) hide show
  1. package/CHANGELOG.md +261 -0
  2. package/lib/cjs/agents/agent.d.ts +42 -11
  3. package/lib/cjs/agents/agent.js +34 -8
  4. package/lib/cjs/agents/ai-agent.d.ts +63 -4
  5. package/lib/cjs/agents/ai-agent.js +154 -20
  6. package/lib/cjs/agents/chat-model.d.ts +157 -0
  7. package/lib/cjs/agents/chat-model.js +71 -6
  8. package/lib/cjs/agents/image-agent.d.ts +17 -1
  9. package/lib/cjs/agents/image-agent.js +16 -0
  10. package/lib/cjs/agents/image-model.d.ts +12 -2
  11. package/lib/cjs/agents/image-model.js +1 -1
  12. package/lib/cjs/agents/mcp-agent.d.ts +17 -0
  13. package/lib/cjs/agents/mcp-agent.js +18 -0
  14. package/lib/cjs/agents/model.d.ts +3 -3
  15. package/lib/cjs/agents/model.js +2 -2
  16. package/lib/cjs/agents/team-agent.d.ts +55 -0
  17. package/lib/cjs/agents/team-agent.js +31 -0
  18. package/lib/cjs/agents/transform-agent.d.ts +12 -0
  19. package/lib/cjs/agents/transform-agent.js +13 -0
  20. package/lib/cjs/agents/video-model.d.ts +10 -0
  21. package/lib/cjs/agents/video-model.js +1 -1
  22. package/lib/cjs/aigne/context.js +1 -3
  23. package/lib/cjs/aigne/usage.d.ts +4 -0
  24. package/lib/cjs/aigne/usage.js +6 -0
  25. package/lib/cjs/index.d.ts +1 -0
  26. package/lib/cjs/index.js +1 -0
  27. package/lib/cjs/loader/agent-yaml.d.ts +5 -63
  28. package/lib/cjs/loader/agent-yaml.js +4 -129
  29. package/lib/cjs/loader/agents.d.ts +4 -0
  30. package/lib/cjs/loader/agents.js +17 -0
  31. package/lib/cjs/loader/index.d.ts +16 -12
  32. package/lib/cjs/loader/index.js +20 -81
  33. package/lib/cjs/loader/schema.d.ts +21 -6
  34. package/lib/cjs/loader/schema.js +60 -1
  35. package/lib/cjs/memory/recorder.d.ts +4 -4
  36. package/lib/cjs/memory/retriever.d.ts +4 -4
  37. package/lib/cjs/prompt/agent-session.d.ts +163 -0
  38. package/lib/cjs/prompt/agent-session.js +1008 -0
  39. package/lib/cjs/prompt/compact/compactor.d.ts +7 -0
  40. package/lib/cjs/prompt/compact/compactor.js +52 -0
  41. package/lib/cjs/prompt/compact/session-memory-extractor.d.ts +7 -0
  42. package/lib/cjs/prompt/compact/session-memory-extractor.js +143 -0
  43. package/lib/cjs/prompt/compact/types.d.ts +336 -0
  44. package/lib/cjs/prompt/compact/types.js +53 -0
  45. package/lib/cjs/prompt/compact/user-memory-extractor.d.ts +7 -0
  46. package/lib/cjs/prompt/compact/user-memory-extractor.js +124 -0
  47. package/lib/cjs/prompt/context/afs/history.d.ts +5 -1
  48. package/lib/cjs/prompt/context/afs/history.js +3 -2
  49. package/lib/cjs/prompt/context/afs/index.js +8 -1
  50. package/lib/cjs/prompt/prompt-builder.d.ts +11 -9
  51. package/lib/cjs/prompt/prompt-builder.js +79 -120
  52. package/lib/cjs/prompt/skills/afs/agent-skill/agent-skill.d.ts +19 -0
  53. package/lib/cjs/prompt/skills/afs/agent-skill/agent-skill.js +69 -0
  54. package/lib/cjs/prompt/skills/afs/agent-skill/skill-loader.d.ts +12 -0
  55. package/lib/cjs/prompt/skills/afs/agent-skill/skill-loader.js +50 -0
  56. package/lib/cjs/prompt/skills/afs/delete.js +15 -3
  57. package/lib/cjs/prompt/skills/afs/edit.d.ts +6 -9
  58. package/lib/cjs/prompt/skills/afs/edit.js +85 -59
  59. package/lib/cjs/prompt/skills/afs/exec.js +17 -6
  60. package/lib/cjs/prompt/skills/afs/index.js +4 -1
  61. package/lib/cjs/prompt/skills/afs/list.d.ts +2 -0
  62. package/lib/cjs/prompt/skills/afs/list.js +35 -11
  63. package/lib/cjs/prompt/skills/afs/read.d.ts +9 -3
  64. package/lib/cjs/prompt/skills/afs/read.js +67 -15
  65. package/lib/cjs/prompt/skills/afs/rename.js +18 -4
  66. package/lib/cjs/prompt/skills/afs/search.js +21 -5
  67. package/lib/cjs/prompt/skills/afs/write.js +20 -6
  68. package/lib/cjs/prompt/template.d.ts +84 -9
  69. package/lib/cjs/prompt/template.js +46 -17
  70. package/lib/cjs/utils/mcp-utils.js +1 -1
  71. package/lib/cjs/utils/token-estimator.js +1 -1
  72. package/lib/dts/agents/agent.d.ts +42 -11
  73. package/lib/dts/agents/ai-agent.d.ts +63 -4
  74. package/lib/dts/agents/chat-model.d.ts +157 -0
  75. package/lib/dts/agents/image-agent.d.ts +17 -1
  76. package/lib/dts/agents/image-model.d.ts +12 -2
  77. package/lib/dts/agents/mcp-agent.d.ts +17 -0
  78. package/lib/dts/agents/model.d.ts +3 -3
  79. package/lib/dts/agents/team-agent.d.ts +55 -0
  80. package/lib/dts/agents/transform-agent.d.ts +12 -0
  81. package/lib/dts/agents/video-model.d.ts +10 -0
  82. package/lib/dts/aigne/context.d.ts +2 -2
  83. package/lib/dts/aigne/usage.d.ts +4 -0
  84. package/lib/dts/index.d.ts +1 -0
  85. package/lib/dts/loader/agent-yaml.d.ts +5 -63
  86. package/lib/dts/loader/agents.d.ts +4 -0
  87. package/lib/dts/loader/index.d.ts +16 -12
  88. package/lib/dts/loader/schema.d.ts +21 -6
  89. package/lib/dts/memory/recorder.d.ts +4 -4
  90. package/lib/dts/memory/retriever.d.ts +4 -4
  91. package/lib/dts/prompt/agent-session.d.ts +163 -0
  92. package/lib/dts/prompt/compact/compactor.d.ts +7 -0
  93. package/lib/dts/prompt/compact/session-memory-extractor.d.ts +7 -0
  94. package/lib/dts/prompt/compact/types.d.ts +336 -0
  95. package/lib/dts/prompt/compact/user-memory-extractor.d.ts +7 -0
  96. package/lib/dts/prompt/context/afs/history.d.ts +5 -1
  97. package/lib/dts/prompt/prompt-builder.d.ts +11 -9
  98. package/lib/dts/prompt/skills/afs/agent-skill/agent-skill.d.ts +19 -0
  99. package/lib/dts/prompt/skills/afs/agent-skill/skill-loader.d.ts +12 -0
  100. package/lib/dts/prompt/skills/afs/edit.d.ts +6 -9
  101. package/lib/dts/prompt/skills/afs/list.d.ts +2 -0
  102. package/lib/dts/prompt/skills/afs/read.d.ts +9 -3
  103. package/lib/dts/prompt/template.d.ts +84 -9
  104. package/lib/esm/agents/agent.d.ts +42 -11
  105. package/lib/esm/agents/agent.js +34 -8
  106. package/lib/esm/agents/ai-agent.d.ts +63 -4
  107. package/lib/esm/agents/ai-agent.js +154 -20
  108. package/lib/esm/agents/chat-model.d.ts +157 -0
  109. package/lib/esm/agents/chat-model.js +70 -5
  110. package/lib/esm/agents/image-agent.d.ts +17 -1
  111. package/lib/esm/agents/image-agent.js +16 -0
  112. package/lib/esm/agents/image-model.d.ts +12 -2
  113. package/lib/esm/agents/image-model.js +1 -1
  114. package/lib/esm/agents/mcp-agent.d.ts +17 -0
  115. package/lib/esm/agents/mcp-agent.js +18 -0
  116. package/lib/esm/agents/model.d.ts +3 -3
  117. package/lib/esm/agents/model.js +2 -2
  118. package/lib/esm/agents/team-agent.d.ts +55 -0
  119. package/lib/esm/agents/team-agent.js +31 -0
  120. package/lib/esm/agents/transform-agent.d.ts +12 -0
  121. package/lib/esm/agents/transform-agent.js +13 -0
  122. package/lib/esm/agents/video-model.d.ts +10 -0
  123. package/lib/esm/agents/video-model.js +1 -1
  124. package/lib/esm/aigne/context.d.ts +2 -2
  125. package/lib/esm/aigne/context.js +2 -4
  126. package/lib/esm/aigne/usage.d.ts +4 -0
  127. package/lib/esm/aigne/usage.js +6 -0
  128. package/lib/esm/index.d.ts +1 -0
  129. package/lib/esm/index.js +1 -0
  130. package/lib/esm/loader/agent-yaml.d.ts +5 -63
  131. package/lib/esm/loader/agent-yaml.js +4 -128
  132. package/lib/esm/loader/agents.d.ts +4 -0
  133. package/lib/esm/loader/agents.js +14 -0
  134. package/lib/esm/loader/index.d.ts +16 -12
  135. package/lib/esm/loader/index.js +21 -81
  136. package/lib/esm/loader/schema.d.ts +21 -6
  137. package/lib/esm/loader/schema.js +57 -0
  138. package/lib/esm/memory/recorder.d.ts +4 -4
  139. package/lib/esm/memory/retriever.d.ts +4 -4
  140. package/lib/esm/prompt/agent-session.d.ts +163 -0
  141. package/lib/esm/prompt/agent-session.js +968 -0
  142. package/lib/esm/prompt/compact/compactor.d.ts +7 -0
  143. package/lib/esm/prompt/compact/compactor.js +48 -0
  144. package/lib/esm/prompt/compact/session-memory-extractor.d.ts +7 -0
  145. package/lib/esm/prompt/compact/session-memory-extractor.js +139 -0
  146. package/lib/esm/prompt/compact/types.d.ts +336 -0
  147. package/lib/esm/prompt/compact/types.js +50 -0
  148. package/lib/esm/prompt/compact/user-memory-extractor.d.ts +7 -0
  149. package/lib/esm/prompt/compact/user-memory-extractor.js +120 -0
  150. package/lib/esm/prompt/context/afs/history.d.ts +5 -1
  151. package/lib/esm/prompt/context/afs/history.js +3 -2
  152. package/lib/esm/prompt/context/afs/index.js +8 -1
  153. package/lib/esm/prompt/prompt-builder.d.ts +11 -9
  154. package/lib/esm/prompt/prompt-builder.js +80 -121
  155. package/lib/esm/prompt/skills/afs/agent-skill/agent-skill.d.ts +19 -0
  156. package/lib/esm/prompt/skills/afs/agent-skill/agent-skill.js +65 -0
  157. package/lib/esm/prompt/skills/afs/agent-skill/skill-loader.d.ts +12 -0
  158. package/lib/esm/prompt/skills/afs/agent-skill/skill-loader.js +43 -0
  159. package/lib/esm/prompt/skills/afs/delete.js +15 -3
  160. package/lib/esm/prompt/skills/afs/edit.d.ts +6 -9
  161. package/lib/esm/prompt/skills/afs/edit.js +85 -59
  162. package/lib/esm/prompt/skills/afs/exec.js +17 -6
  163. package/lib/esm/prompt/skills/afs/index.js +4 -1
  164. package/lib/esm/prompt/skills/afs/list.d.ts +2 -0
  165. package/lib/esm/prompt/skills/afs/list.js +35 -11
  166. package/lib/esm/prompt/skills/afs/read.d.ts +9 -3
  167. package/lib/esm/prompt/skills/afs/read.js +67 -15
  168. package/lib/esm/prompt/skills/afs/rename.js +18 -4
  169. package/lib/esm/prompt/skills/afs/search.js +21 -5
  170. package/lib/esm/prompt/skills/afs/write.js +20 -6
  171. package/lib/esm/prompt/template.d.ts +84 -9
  172. package/lib/esm/prompt/template.js +46 -17
  173. package/lib/esm/utils/mcp-utils.js +1 -1
  174. package/lib/esm/utils/token-estimator.js +1 -1
  175. package/package.json +7 -6
@@ -57,7 +57,9 @@ export declare abstract class ChatModel extends Model<ChatModelInput, ChatModelO
57
57
  getModelCapabilities(): {
58
58
  supportsParallelToolCalls: boolean;
59
59
  };
60
+ getModelOptions(input: Message, options: AgentInvokeOptions): Promise<ChatModelInputOptions>;
60
61
  private validateToolNames;
62
+ countTokens(input: ChatModelInput): Promise<number>;
61
63
  /**
62
64
  * Normalizes tool names to ensure compatibility with language models
63
65
  *
@@ -203,6 +205,13 @@ export interface ChatModelInputMessage {
203
205
  * Name of the message sender (for multi-agent scenarios)
204
206
  */
205
207
  name?: string;
208
+ /**
209
+ * Cache control marker for the entire message (only supported by Claude)
210
+ *
211
+ * This is syntactic sugar that applies cacheControl to the last content block
212
+ * of the message. See {@link CacheControl} for details.
213
+ */
214
+ cacheControl?: CacheControl;
206
215
  }
207
216
  /**
208
217
  * Type of input message content
@@ -218,27 +227,66 @@ export type ChatModelInputMessageContent = string | UnionContent[];
218
227
  export type TextContent = {
219
228
  type: "text";
220
229
  text: string;
230
+ isThinking?: boolean;
231
+ isAgentSkill?: boolean;
232
+ /**
233
+ * Cache control marker (only supported by Claude)
234
+ *
235
+ * When set, this content block will be marked as a cache breakpoint.
236
+ * See {@link CacheControl} for details.
237
+ */
238
+ cacheControl?: CacheControl;
221
239
  };
222
240
  export declare const textContentSchema: z.ZodObject<{
223
241
  type: z.ZodLiteral<"text">;
224
242
  text: z.ZodString;
243
+ cacheControl: ZodType<{
244
+ type: "ephemeral";
245
+ ttl?: "5m" | "1h" | undefined;
246
+ } | undefined, z.ZodTypeDef, {
247
+ type: "ephemeral";
248
+ ttl?: "5m" | "1h" | undefined;
249
+ } | undefined>;
225
250
  }, "strip", z.ZodTypeAny, {
226
251
  type: "text";
227
252
  text: string;
253
+ cacheControl?: {
254
+ type: "ephemeral";
255
+ ttl?: "5m" | "1h" | undefined;
256
+ } | undefined;
228
257
  }, {
229
258
  type: "text";
230
259
  text: string;
260
+ cacheControl?: {
261
+ type: "ephemeral";
262
+ ttl?: "5m" | "1h" | undefined;
263
+ } | undefined;
231
264
  }>;
232
265
  export type UnionContent = TextContent | FileUnionContent;
233
266
  export declare const unionContentSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
234
267
  type: z.ZodLiteral<"text">;
235
268
  text: z.ZodString;
269
+ cacheControl: ZodType<{
270
+ type: "ephemeral";
271
+ ttl?: "5m" | "1h" | undefined;
272
+ } | undefined, z.ZodTypeDef, {
273
+ type: "ephemeral";
274
+ ttl?: "5m" | "1h" | undefined;
275
+ } | undefined>;
236
276
  }, "strip", z.ZodTypeAny, {
237
277
  type: "text";
238
278
  text: string;
279
+ cacheControl?: {
280
+ type: "ephemeral";
281
+ ttl?: "5m" | "1h" | undefined;
282
+ } | undefined;
239
283
  }, {
240
284
  type: "text";
241
285
  text: string;
286
+ cacheControl?: {
287
+ type: "ephemeral";
288
+ ttl?: "5m" | "1h" | undefined;
289
+ } | undefined;
242
290
  }>, z.ZodObject<{
243
291
  filename: ZodType<string | undefined, z.ZodTypeDef, string | undefined>;
244
292
  mimeType: ZodType<string | undefined, z.ZodTypeDef, string | undefined>;
@@ -340,6 +388,14 @@ export interface ChatModelInputTool {
340
388
  * For example, Gemini's thought_signature
341
389
  */
342
390
  metadata?: Record<string, any>;
391
+ /**
392
+ * Cache control marker (only supported by Claude)
393
+ *
394
+ * When set, this tool definition will be marked as a cache breakpoint.
395
+ * Typically applied to the last tool in the tools array.
396
+ * See {@link CacheControl} for details.
397
+ */
398
+ cacheControl?: CacheControl;
343
399
  }
344
400
  /**
345
401
  * Tool selection strategy
@@ -362,6 +418,82 @@ export type ChatModelInputToolChoice = "auto" | "none" | "required" | {
362
418
  };
363
419
  };
364
420
  export type Modality = "text" | "image" | "audio";
421
+ /**
422
+ * Cache control marker for prompt caching
423
+ *
424
+ * Used to mark content blocks, messages, or tools for caching.
425
+ * Currently only supported by Anthropic (Claude) models.
426
+ */
427
+ export interface CacheControl {
428
+ /**
429
+ * Cache type (currently only "ephemeral" is supported)
430
+ */
431
+ type: "ephemeral";
432
+ /**
433
+ * Cache TTL (Time To Live)
434
+ * - "5m": 5 minutes (default)
435
+ * - "1h": 1 hour
436
+ */
437
+ ttl?: "5m" | "1h";
438
+ }
439
+ /**
440
+ * Cache configuration options
441
+ *
442
+ * Controls how prompt caching is used for supported providers.
443
+ * Prompt caching can significantly reduce costs and latency by reusing
444
+ * previously processed prompts (system messages, tool definitions, etc.).
445
+ */
446
+ export interface CacheConfig {
447
+ /**
448
+ * Whether to enable prompt caching
449
+ *
450
+ * - OpenAI: Ignored (always enabled automatically)
451
+ * - Gemini: Controls explicit caching
452
+ * - Claude: Controls whether to add cache_control markers
453
+ *
454
+ * @default true
455
+ */
456
+ enabled?: boolean;
457
+ /**
458
+ * Cache TTL (Time To Live)
459
+ *
460
+ * - OpenAI: Ignored (automatic)
461
+ * - Gemini: Supports custom seconds
462
+ * - Claude: Only supports "5m" or "1h"
463
+ *
464
+ * @default "5m"
465
+ */
466
+ ttl?: "5m" | "1h" | number;
467
+ /**
468
+ * Caching strategy
469
+ *
470
+ * - "auto": Automatically add cache breakpoints at optimal locations
471
+ * - "manual": Require explicit cacheControl markers on messages/tools
472
+ *
473
+ * @default "auto"
474
+ */
475
+ strategy?: "auto" | "manual";
476
+ /**
477
+ * Auto cache breakpoint locations (only effective when strategy="auto")
478
+ *
479
+ * @default { tools: true, system: true, lastMessage: false }
480
+ */
481
+ autoBreakpoints?: {
482
+ /** Cache tool definitions */
483
+ tools?: boolean;
484
+ /** Cache system messages */
485
+ system?: boolean;
486
+ /** Cache last message in conversation history */
487
+ lastMessage?: boolean;
488
+ };
489
+ }
490
+ /**
491
+ * Default cache configuration
492
+ *
493
+ * Enables automatic caching for system messages and tool definitions,
494
+ * which typically provides the best cost/performance tradeoff.
495
+ */
496
+ export declare const DEFAULT_CACHE_CONFIG: CacheConfig;
365
497
  /**
366
498
  * Model-specific configuration options
367
499
  *
@@ -395,6 +527,15 @@ export interface ChatModelInputOptions extends Record<string, unknown> {
395
527
  modalities?: Modality[];
396
528
  preferInputFileType?: "file" | "url";
397
529
  reasoningEffort?: number | "minimal" | "low" | "medium" | "high";
530
+ /**
531
+ * Cache configuration for prompt caching
532
+ *
533
+ * Enables caching of system messages, tool definitions, and conversation history
534
+ * to reduce costs and latency. See {@link CacheConfig} for details.
535
+ *
536
+ * @default DEFAULT_CACHE_CONFIG (enabled with auto strategy)
537
+ */
538
+ cacheConfig?: CacheConfig;
398
539
  }
399
540
  export type ChatModelInputOptionsWithGetter = GetterSchema<ChatModelInputOptions>;
400
541
  /**
@@ -492,6 +633,16 @@ export interface ChatModelOutputUsage {
492
633
  * AIGNE Hub credit usage
493
634
  */
494
635
  aigneHubCredits?: number;
636
+ /**
637
+ * Number of tokens written to cache (first time caching)
638
+ * Only applicable for providers that support explicit cache creation (e.g., Anthropic)
639
+ */
640
+ cacheCreationInputTokens?: number;
641
+ /**
642
+ * Number of tokens read from cache (cache hit)
643
+ * Supported by OpenAI, Anthropic, and Gemini
644
+ */
645
+ cacheReadInputTokens?: number;
495
646
  /**
496
647
  * Credit prefix
497
648
  */
@@ -501,15 +652,21 @@ export declare const chatModelOutputUsageSchema: z.ZodObject<{
501
652
  inputTokens: z.ZodNumber;
502
653
  outputTokens: z.ZodNumber;
503
654
  aigneHubCredits: ZodType<number | undefined, z.ZodTypeDef, number | undefined>;
655
+ cacheCreationInputTokens: ZodType<number | undefined, z.ZodTypeDef, number | undefined>;
656
+ cacheReadInputTokens: ZodType<number | undefined, z.ZodTypeDef, number | undefined>;
504
657
  creditPrefix: ZodType<"$" | "€" | "¥" | undefined, z.ZodTypeDef, "$" | "€" | "¥" | undefined>;
505
658
  }, "strip", z.ZodTypeAny, {
506
659
  inputTokens: number;
507
660
  outputTokens: number;
508
661
  aigneHubCredits?: number | undefined;
662
+ cacheCreationInputTokens?: number | undefined;
663
+ cacheReadInputTokens?: number | undefined;
509
664
  creditPrefix?: "$" | "€" | "¥" | undefined;
510
665
  }, {
511
666
  inputTokens: number;
512
667
  outputTokens: number;
513
668
  aigneHubCredits?: number | undefined;
669
+ cacheCreationInputTokens?: number | undefined;
670
+ cacheReadInputTokens?: number | undefined;
514
671
  creditPrefix?: "$" | "€" | "¥" | undefined;
515
672
  }>;
@@ -1,4 +1,4 @@
1
- import { type ZodObject, type ZodType } from "zod";
1
+ import z, { type ZodObject, type ZodType } from "zod";
2
2
  import { PromptBuilder } from "../prompt/prompt-builder.js";
3
3
  import { Agent, type AgentInvokeOptions, type AgentOptions, type Message } from "./agent.js";
4
4
  import { type ImageModelOutput } from "./image-model.js";
@@ -13,6 +13,22 @@ export declare const imageAgentOptionsSchema: ZodObject<{
13
13
  }>;
14
14
  export declare class ImageAgent<I extends Message = any, O extends ImageModelOutput = any> extends Agent<I, O> {
15
15
  tag: string;
16
+ static schema({ filepath }: {
17
+ filepath: string;
18
+ }): z.ZodObject<{
19
+ instructions: z.ZodType<import("../loader/schema.js").Instructions, z.ZodTypeDef, import("../loader/schema.js").Instructions>;
20
+ inputFileKey: z.ZodType<string | undefined, z.ZodTypeDef, string | undefined>;
21
+ }, "strip", z.ZodTypeAny, {
22
+ instructions: import("../loader/schema.js").Instructions;
23
+ inputFileKey?: string | undefined;
24
+ }, {
25
+ instructions: import("../loader/schema.js").Instructions;
26
+ inputFileKey?: string | undefined;
27
+ }>;
28
+ static load<I extends Message = any, O extends Message = any>(options: {
29
+ filepath: string;
30
+ parsed: object;
31
+ }): Promise<Agent<I, O>>;
16
32
  static from<I extends Message = any, O extends ImageModelOutput = any>(options: ImageAgentOptions<I, O>): ImageAgent<I, O>;
17
33
  constructor(options: ImageAgentOptions<I, O>);
18
34
  instructions: PromptBuilder;
@@ -107,8 +107,8 @@ export declare const imageModelInputSchema: z.ZodObject<{
107
107
  filename?: string | undefined;
108
108
  mimeType?: string | undefined;
109
109
  })[] | undefined;
110
- outputFileType?: "local" | "file" | "url" | undefined;
111
110
  n?: number | undefined;
111
+ outputFileType?: "local" | "file" | "url" | undefined;
112
112
  }, {
113
113
  prompt: string;
114
114
  modelOptions?: Record<string, unknown> | undefined;
@@ -128,8 +128,8 @@ export declare const imageModelInputSchema: z.ZodObject<{
128
128
  filename?: string | undefined;
129
129
  mimeType?: string | undefined;
130
130
  })[] | undefined;
131
- outputFileType?: "local" | "file" | "url" | undefined;
132
131
  n?: number | undefined;
132
+ outputFileType?: "local" | "file" | "url" | undefined;
133
133
  }>;
134
134
  export interface ImageModelOutput extends Message {
135
135
  images: FileUnionContent[];
@@ -196,16 +196,22 @@ export declare const imageModelOutputSchema: z.ZodObject<{
196
196
  inputTokens: z.ZodNumber;
197
197
  outputTokens: z.ZodNumber;
198
198
  aigneHubCredits: ZodType<number | undefined, z.ZodTypeDef, number | undefined>;
199
+ cacheCreationInputTokens: ZodType<number | undefined, z.ZodTypeDef, number | undefined>;
200
+ cacheReadInputTokens: ZodType<number | undefined, z.ZodTypeDef, number | undefined>;
199
201
  creditPrefix: ZodType<"$" | "€" | "¥" | undefined, z.ZodTypeDef, "$" | "€" | "¥" | undefined>;
200
202
  }, "strip", z.ZodTypeAny, {
201
203
  inputTokens: number;
202
204
  outputTokens: number;
203
205
  aigneHubCredits?: number | undefined;
206
+ cacheCreationInputTokens?: number | undefined;
207
+ cacheReadInputTokens?: number | undefined;
204
208
  creditPrefix?: "$" | "€" | "¥" | undefined;
205
209
  }, {
206
210
  inputTokens: number;
207
211
  outputTokens: number;
208
212
  aigneHubCredits?: number | undefined;
213
+ cacheCreationInputTokens?: number | undefined;
214
+ cacheReadInputTokens?: number | undefined;
209
215
  creditPrefix?: "$" | "€" | "¥" | undefined;
210
216
  }>>;
211
217
  model: z.ZodOptional<z.ZodString>;
@@ -231,6 +237,8 @@ export declare const imageModelOutputSchema: z.ZodObject<{
231
237
  inputTokens: number;
232
238
  outputTokens: number;
233
239
  aigneHubCredits?: number | undefined;
240
+ cacheCreationInputTokens?: number | undefined;
241
+ cacheReadInputTokens?: number | undefined;
234
242
  creditPrefix?: "$" | "€" | "¥" | undefined;
235
243
  } | undefined;
236
244
  }, {
@@ -255,6 +263,8 @@ export declare const imageModelOutputSchema: z.ZodObject<{
255
263
  inputTokens: number;
256
264
  outputTokens: number;
257
265
  aigneHubCredits?: number | undefined;
266
+ cacheCreationInputTokens?: number | undefined;
267
+ cacheReadInputTokens?: number | undefined;
258
268
  creditPrefix?: "$" | "€" | "¥" | undefined;
259
269
  } | undefined;
260
270
  }>;
@@ -58,6 +58,23 @@ export type SSEServerParameters = {
58
58
  */
59
59
  export declare class MCPAgent extends Agent {
60
60
  tag: string;
61
+ static schema(): z.ZodObject<{
62
+ url: ZodType<string | undefined, z.ZodTypeDef, string | undefined>;
63
+ command: ZodType<string | undefined, z.ZodTypeDef, string | undefined>;
64
+ args: ZodType<string[] | undefined, z.ZodTypeDef, string[] | undefined>;
65
+ }, "strip", z.ZodTypeAny, {
66
+ url?: string | undefined;
67
+ command?: string | undefined;
68
+ args?: string[] | undefined;
69
+ }, {
70
+ url?: string | undefined;
71
+ command?: string | undefined;
72
+ args?: string[] | undefined;
73
+ }>;
74
+ static load<I extends Message = any, O extends Message = any>(options: {
75
+ filepath: string;
76
+ parsed: object;
77
+ }): Promise<Agent<I, O>>;
61
78
  /**
62
79
  * Create an MCPAgent from a connection to an SSE server.
63
80
  *
@@ -17,9 +17,9 @@ export declare abstract class Model<I extends Message = any, O extends Message =
17
17
  */
18
18
  getModelOptions(input: Message, options: AgentInvokeOptions): Promise<Record<string, unknown>>;
19
19
  protected preprocess(input: I, options: AgentInvokeOptions): Promise<void>;
20
- transformFileType(fileType: "file", data: FileUnionContent, options: AgentInvokeOptions): Promise<FileContent>;
21
- transformFileType(fileType: "local" | undefined, data: FileUnionContent, options: AgentInvokeOptions): Promise<LocalContent>;
22
- transformFileType(fileType: FileType | undefined, data: FileUnionContent, options: AgentInvokeOptions): Promise<FileUnionContent>;
20
+ transformFileType(fileType: "file", data: FileUnionContent): Promise<FileContent>;
21
+ transformFileType(fileType: "local" | undefined, data: FileUnionContent): Promise<LocalContent>;
22
+ transformFileType(fileType: FileType | undefined, data: FileUnionContent): Promise<FileUnionContent>;
23
23
  static getFileExtension(type: string): Promise<string | undefined>;
24
24
  static getMimeType(filename: string): Promise<string | undefined>;
25
25
  downloadFile(url: string): Promise<Response>;
@@ -1,3 +1,5 @@
1
+ import { z } from "zod";
2
+ import type { AgentLoadOptions } from "../loader/index.js";
1
3
  import { type PromiseOrValue } from "../utils/type-utils.js";
2
4
  import { Agent, type AgentInvokeOptions, type AgentOptions, type AgentProcessResult, type Message } from "./agent.js";
3
5
  /**
@@ -200,6 +202,59 @@ export interface TeamAgentOptions<I extends Message, O extends Message> extends
200
202
  */
201
203
  export declare class TeamAgent<I extends Message, O extends Message> extends Agent<I, O> {
202
204
  tag: string;
205
+ static schema({ filepath }: {
206
+ filepath: string;
207
+ }): z.ZodObject<{
208
+ mode: z.ZodType<ProcessMode | undefined, z.ZodTypeDef, ProcessMode | undefined>;
209
+ iterateOn: z.ZodType<string | undefined, z.ZodTypeDef, string | undefined>;
210
+ concurrency: z.ZodType<number | undefined, z.ZodTypeDef, number | undefined>;
211
+ iterateWithPreviousOutput: z.ZodType<boolean | undefined, z.ZodTypeDef, boolean | undefined>;
212
+ includeAllStepsOutput: z.ZodType<boolean | undefined, z.ZodTypeDef, boolean | undefined>;
213
+ reflection: z.ZodType<{
214
+ reviewer: import("../loader/agent-yaml.js").NestAgentSchema;
215
+ isApproved: string;
216
+ maxIterations?: number | undefined;
217
+ returnLastOnMaxIterations?: boolean | undefined;
218
+ customErrorMessage?: string | undefined;
219
+ } | undefined, z.ZodTypeDef, {
220
+ reviewer: import("../loader/agent-yaml.js").NestAgentSchema;
221
+ isApproved: string;
222
+ maxIterations?: number | undefined;
223
+ returnLastOnMaxIterations?: boolean | undefined;
224
+ customErrorMessage?: string | undefined;
225
+ } | undefined>;
226
+ }, "strip", z.ZodTypeAny, {
227
+ mode?: ProcessMode | undefined;
228
+ reflection?: {
229
+ reviewer: import("../loader/agent-yaml.js").NestAgentSchema;
230
+ isApproved: string;
231
+ maxIterations?: number | undefined;
232
+ returnLastOnMaxIterations?: boolean | undefined;
233
+ customErrorMessage?: string | undefined;
234
+ } | undefined;
235
+ iterateOn?: string | undefined;
236
+ concurrency?: number | undefined;
237
+ iterateWithPreviousOutput?: boolean | undefined;
238
+ includeAllStepsOutput?: boolean | undefined;
239
+ }, {
240
+ mode?: ProcessMode | undefined;
241
+ reflection?: {
242
+ reviewer: import("../loader/agent-yaml.js").NestAgentSchema;
243
+ isApproved: string;
244
+ maxIterations?: number | undefined;
245
+ returnLastOnMaxIterations?: boolean | undefined;
246
+ customErrorMessage?: string | undefined;
247
+ } | undefined;
248
+ iterateOn?: string | undefined;
249
+ concurrency?: number | undefined;
250
+ iterateWithPreviousOutput?: boolean | undefined;
251
+ includeAllStepsOutput?: boolean | undefined;
252
+ }>;
253
+ static load<I extends Message = any, O extends Message = any>(options: {
254
+ filepath: string;
255
+ parsed: object;
256
+ options: AgentLoadOptions;
257
+ }): Promise<Agent<I, O>>;
203
258
  /**
204
259
  * Create a TeamAgent from the provided options.
205
260
  *
@@ -1,3 +1,4 @@
1
+ import { z } from "zod";
1
2
  import { Agent, type AgentOptions, type Message } from "./agent.js";
2
3
  /**
3
4
  * Configuration options for TransformAgent
@@ -47,6 +48,17 @@ export interface TransformAgentOptions<I extends Message, O extends Message> ext
47
48
  */
48
49
  export declare class TransformAgent<I extends Message = Message, O extends Message = Message> extends Agent<I, O> {
49
50
  static type: string;
51
+ static schema(): z.ZodObject<{
52
+ jsonata: z.ZodString;
53
+ }, "strip", z.ZodTypeAny, {
54
+ jsonata: string;
55
+ }, {
56
+ jsonata: string;
57
+ }>;
58
+ static load<I extends Message = any, O extends Message = any>(options: {
59
+ filepath: string;
60
+ parsed: object;
61
+ }): Promise<Agent<I, O>>;
50
62
  /**
51
63
  * Factory method to create a new TransformAgent instance
52
64
  *
@@ -203,16 +203,22 @@ export declare const videoModelOutputSchema: z.ZodObject<{
203
203
  inputTokens: z.ZodNumber;
204
204
  outputTokens: z.ZodNumber;
205
205
  aigneHubCredits: ZodType<number | undefined, z.ZodTypeDef, number | undefined>;
206
+ cacheCreationInputTokens: ZodType<number | undefined, z.ZodTypeDef, number | undefined>;
207
+ cacheReadInputTokens: ZodType<number | undefined, z.ZodTypeDef, number | undefined>;
206
208
  creditPrefix: ZodType<"$" | "€" | "¥" | undefined, z.ZodTypeDef, "$" | "€" | "¥" | undefined>;
207
209
  }, "strip", z.ZodTypeAny, {
208
210
  inputTokens: number;
209
211
  outputTokens: number;
210
212
  aigneHubCredits?: number | undefined;
213
+ cacheCreationInputTokens?: number | undefined;
214
+ cacheReadInputTokens?: number | undefined;
211
215
  creditPrefix?: "$" | "€" | "¥" | undefined;
212
216
  }, {
213
217
  inputTokens: number;
214
218
  outputTokens: number;
215
219
  aigneHubCredits?: number | undefined;
220
+ cacheCreationInputTokens?: number | undefined;
221
+ cacheReadInputTokens?: number | undefined;
216
222
  creditPrefix?: "$" | "€" | "¥" | undefined;
217
223
  }>>;
218
224
  model: z.ZodOptional<z.ZodString>;
@@ -239,6 +245,8 @@ export declare const videoModelOutputSchema: z.ZodObject<{
239
245
  inputTokens: number;
240
246
  outputTokens: number;
241
247
  aigneHubCredits?: number | undefined;
248
+ cacheCreationInputTokens?: number | undefined;
249
+ cacheReadInputTokens?: number | undefined;
242
250
  creditPrefix?: "$" | "€" | "¥" | undefined;
243
251
  } | undefined;
244
252
  seconds?: number | undefined;
@@ -264,6 +272,8 @@ export declare const videoModelOutputSchema: z.ZodObject<{
264
272
  inputTokens: number;
265
273
  outputTokens: number;
266
274
  aigneHubCredits?: number | undefined;
275
+ cacheCreationInputTokens?: number | undefined;
276
+ cacheReadInputTokens?: number | undefined;
267
277
  creditPrefix?: "$" | "€" | "¥" | undefined;
268
278
  } | undefined;
269
279
  seconds?: number | undefined;
@@ -159,7 +159,7 @@ export declare class AIGNEContext implements Context {
159
159
  readonly internal: AIGNEContextShared;
160
160
  get messageQueue(): MessageQueue;
161
161
  get model(): ChatModel | undefined;
162
- get imageModel(): ImageModel<import("../agents/image-model.js").ImageModelInput, import("../agents/image-model.js").ImageModelOutput> | undefined;
162
+ get imageModel(): ImageModel<import("../index.js").ImageModelInput, import("../index.js").ImageModelOutput> | undefined;
163
163
  get skills(): Agent<any, any>[] | undefined;
164
164
  get agents(): Agent<any, any>[];
165
165
  get observer(): AIGNEObserver | undefined;
@@ -197,7 +197,7 @@ declare class AIGNEContextShared {
197
197
  readonly messageQueue: MessageQueue;
198
198
  readonly events: Emitter<any>;
199
199
  get model(): ChatModel | undefined;
200
- get imageModel(): ImageModel<import("../agents/image-model.js").ImageModelInput, import("../agents/image-model.js").ImageModelOutput> | undefined;
200
+ get imageModel(): ImageModel<import("../index.js").ImageModelInput, import("../index.js").ImageModelOutput> | undefined;
201
201
  get skills(): Agent<any, any>[] | undefined;
202
202
  get agents(): Agent<any, any>[];
203
203
  get observer(): AIGNEObserver | undefined;
@@ -8,6 +8,10 @@ export interface ContextUsage {
8
8
  creditPrefix?: "$" | "€" | "¥";
9
9
  agentCalls: number;
10
10
  duration: number;
11
+ /** Number of tokens written to cache (first time caching) */
12
+ cacheCreationInputTokens: number;
13
+ /** Number of tokens read from cache (cache hit) */
14
+ cacheReadInputTokens: number;
11
15
  }
12
16
  /**
13
17
  * @hidden
@@ -13,6 +13,7 @@ export * from "./agents/user-agent.js";
13
13
  export * from "./agents/video-model.js";
14
14
  export * from "./aigne/index.js";
15
15
  export * from "./memory/index.js";
16
+ export * from "./prompt/agent-session.js";
16
17
  export * from "./prompt/prompt-builder.js";
17
18
  export * from "./prompt/template.js";
18
19
  export * from "./utils/json-utils.js";
@@ -1,9 +1,6 @@
1
1
  import type { AFSOptions } from "@aigne/afs";
2
2
  import { type ZodType, z } from "zod";
3
- import type { AgentClass, AgentHooks, FunctionAgentFn, TaskRenderMode } from "../agents/agent.js";
4
- import { AIAgentToolChoice } from "../agents/ai-agent.js";
5
- import { type Role } from "../agents/chat-model.js";
6
- import { ProcessMode, type ReflectionMode } from "../agents/team-agent.js";
3
+ import type { AgentHooks, TaskRenderMode } from "../agents/agent.js";
7
4
  import type { LoadOptions } from "./index.js";
8
5
  import { chatModelSchema, imageModelSchema } from "./schema.js";
9
6
  export interface HooksSchema {
@@ -45,7 +42,8 @@ export interface AFSContextSchema {
45
42
  presets?: Record<string, AFSContextPresetSchema>;
46
43
  };
47
44
  }
48
- export interface BaseAgentSchema {
45
+ export interface AgentSchema {
46
+ type: string;
49
47
  name?: string;
50
48
  description?: string;
51
49
  model?: z.infer<typeof chatModelSchema>;
@@ -67,67 +65,11 @@ export interface BaseAgentSchema {
67
65
  context?: AFSContextSchema;
68
66
  });
69
67
  shareAFS?: boolean;
68
+ [key: string]: unknown;
70
69
  }
71
- export type Instructions = {
72
- role: Exclude<Role, "tool">;
73
- content: string;
74
- path: string;
75
- }[];
76
- export interface AIAgentSchema extends BaseAgentSchema {
77
- type: "ai";
78
- instructions?: Instructions;
79
- autoReorderSystemMessages?: boolean;
80
- autoMergeSystemMessages?: boolean;
81
- inputKey?: string;
82
- inputFileKey?: string;
83
- outputKey?: string;
84
- outputFileKey?: string;
85
- toolChoice?: AIAgentToolChoice;
86
- toolCallsConcurrency?: number;
87
- keepTextInToolUses?: boolean;
88
- }
89
- export interface ImageAgentSchema extends BaseAgentSchema {
90
- type: "image";
91
- instructions: Instructions;
92
- inputFileKey?: string;
93
- }
94
- export interface MCPAgentSchema extends BaseAgentSchema {
95
- type: "mcp";
96
- url?: string;
97
- command?: string;
98
- args?: string[];
99
- }
100
- export interface TeamAgentSchema extends BaseAgentSchema {
101
- type: "team";
102
- mode?: ProcessMode;
103
- iterateOn?: string;
104
- concurrency?: number;
105
- iterateWithPreviousOutput?: boolean;
106
- includeAllStepsOutput?: boolean;
107
- reflection?: Omit<ReflectionMode, "reviewer"> & {
108
- reviewer: NestAgentSchema;
109
- };
110
- }
111
- export interface TransformAgentSchema extends BaseAgentSchema {
112
- type: "transform";
113
- jsonata: string;
114
- }
115
- export interface FunctionAgentSchema extends BaseAgentSchema {
116
- type: "function";
117
- process: FunctionAgentFn;
118
- }
119
- export interface ThirdAgentSchema extends BaseAgentSchema {
120
- agentClass?: AgentClass;
121
- type: "";
122
- [key: string]: any;
123
- }
124
- export type AgentSchema = AIAgentSchema | ImageAgentSchema | MCPAgentSchema | TeamAgentSchema | TransformAgentSchema | FunctionAgentSchema | ThirdAgentSchema;
125
70
  export declare function parseAgentFile(path: string, data: any, options: LoadOptions): Promise<AgentSchema>;
126
71
  export declare function loadAgentFromYamlFile(path: string, options: LoadOptions): Promise<AgentSchema>;
127
- export declare const getInstructionsSchema: ({ filepath }: {
128
- filepath: string;
129
- }) => ZodType<Instructions>;
130
- export declare const getAgentSchema: ({ filepath, options, }: {
72
+ export declare const getAgentSchema: ({ filepath }: {
131
73
  filepath: string;
132
74
  options?: LoadOptions;
133
75
  }) => ZodType<AgentSchema, z.ZodTypeDef, AgentSchema>;
@@ -0,0 +1,4 @@
1
+ import type { AgentClass } from "../agents/types.ts";
2
+ export declare const builtinAgents: {
3
+ [type: string]: AgentClass;
4
+ };