@iqai/adk 0.6.6 → 0.8.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,139 @@
1
1
  # @iqai/adk
2
2
 
3
+ ## 0.8.0
4
+
5
+ ### Minor Changes
6
+
7
+ - d7d8b78: Add popular third-party MCP server wrappers and fix tool name handling
8
+ - Add `McpNotion`, `McpSequentialThinking`, and `McpPlaywright` server wrapper functions
9
+ - Fix MCP tool name sanitization: hyphens in tool names (e.g. `notion-search`) are now replaced with underscores to pass BaseTool validation, while preserving the original name for MCP server calls
10
+
11
+ ## 0.7.0
12
+
13
+ ### Minor Changes
14
+
15
+ - 6e3eddc: Add `AgentScheduler` for recurring agent execution
16
+
17
+ New `AgentScheduler` class that runs ADK agents on cron expressions or fixed intervals. Supports job lifecycle management (schedule, unschedule, pause, resume), manual triggering with `triggerNow` and `triggerNowStream`, overlap prevention, execution limits, per-job callbacks, and global event listeners.
18
+
19
+ ```typescript
20
+ import { AgentBuilder, AgentScheduler } from "@iqai/adk";
21
+
22
+ const { runner } = await AgentBuilder.create("reporter")
23
+ .withModel("gemini-2.5-flash")
24
+ .withInstruction("Generate a daily report")
25
+ .build();
26
+
27
+ const scheduler = new AgentScheduler();
28
+
29
+ scheduler.schedule({
30
+ id: "daily-report",
31
+ cron: "0 9 * * *",
32
+ runner,
33
+ userId: "system",
34
+ input: "Generate today's report",
35
+ });
36
+
37
+ scheduler.start();
38
+ ```
39
+
40
+ - df81392: feat: add Limitless, Kalshi, Opinion, Defillama, and Debank MCP server wrappers
41
+
42
+ Added five new MCP server wrapper functions for integrating with prediction markets, DeFi data, and portfolio tracking platforms:
43
+ - **McpLimitless** - Interact with Limitless prediction markets via `@iqai/mcp-limitless`
44
+ - **McpKalshi** - Interact with Kalshi prediction markets via `@iqai/mcp-kalshi`
45
+ - **McpOpinion** - Interact with opinion.trade prediction market via `@iqai/mcp-opinion`
46
+ - **McpDefillama** - Access DeFi data from Defillama aggregator via `@iqai/defillama-mcp`
47
+ - **McpDebank** - Interact with the DeBank portfolio platform via `@iqai/mcp-debank`
48
+
49
+ - 7066213: feat: add streaming utilities and improve streaming across LLM providers
50
+
51
+ **Streaming Utilities**
52
+ - Add `textStreamFrom()` to extract text-only deltas from an event stream
53
+ - Add `collectTextFrom()` to accumulate streamed text into a single string
54
+ - Add `streamTextWithFinalEvent()` to stream text while capturing the final event with metadata
55
+
56
+ **Anthropic Streaming**
57
+ - Implement full streaming support via `handleStreaming()` async generator
58
+ - Yield partial text deltas, accumulate tool call JSON, and detect thought blocks
59
+ - Emit final response with complete text, tool calls, and usage metadata
60
+
61
+ **AI SDK Streaming Fix**
62
+ - Fix partial responses yielding accumulated text instead of deltas, which caused duplicated text when consumed via streaming utilities
63
+
64
+ **Code Quality**
65
+ - Extract thought tag detection into `THOUGHT_OPEN_TAGS`/`THOUGHT_CLOSE_TAGS` constants and `containsAny()` helper
66
+ - Replace `as any` casts with proper `Part` type from `@google/genai`
67
+ - Use guard clauses in streaming utilities for cleaner control flow
68
+
69
+ - 8bf7a31: Overhaul memory system with pluggable provider architecture
70
+
71
+ This release introduces a completely redesigned memory system with a flexible, pluggable architecture that separates storage, summarization, and embedding concerns.
72
+
73
+ ### New Architecture
74
+
75
+ **Storage Providers** - Pluggable backends for persisting memories:
76
+ - `InMemoryStorageProvider` - Simple in-memory storage for development
77
+ - `FileStorageProvider` - File-based persistence
78
+ - `VectorStorageProvider` - Base class for vector-enabled storage
79
+ - `InMemoryVectorStore` - In-memory vector storage with similarity search
80
+ - `FileVectorStore` - File-based vector storage with persistence
81
+ - `QdrantVectorStore` - Production-ready vector storage using Qdrant
82
+
83
+ **Summary Providers** - Transform sessions into memories:
84
+ - `LlmSummaryProvider` - LLM-powered summarization with topic segmentation and entity extraction
85
+ - `PassthroughSummaryProvider` - Store raw session content without transformation
86
+
87
+ **Embedding Providers** - Generate vector embeddings for semantic search:
88
+ - `OpenAIEmbeddingProvider` - OpenAI embeddings API
89
+ - `CohereEmbeddingProvider` - Cohere embeddings API
90
+ - `OllamaEmbeddingProvider` - Local embeddings via Ollama
91
+ - `OpenRouterEmbeddingProvider` - Embeddings via OpenRouter
92
+
93
+ ### New Types
94
+ - `MemoryServiceConfig` - Unified configuration for the memory service
95
+ - `MemoryStorageProvider` - Interface for storage backends
96
+ - `MemorySummaryProvider` - Interface for summarization
97
+ - `EmbeddingProvider` - Interface for embedding generation
98
+ - `MemoryRecord`, `MemoryContent`, `TopicSegment`, `Entity` - Structured memory types
99
+ - `MemorySearchQuery`, `MemorySearchResult` - Search types with vector support
100
+
101
+ ### Features
102
+ - Semantic search with configurable similarity thresholds
103
+ - Hybrid search combining keyword and vector approaches
104
+ - Topic-based memory segmentation for granular retrieval
105
+ - Entity extraction and relationship tracking
106
+ - Session-to-memory transformation pipeline
107
+ - Debug logging throughout the memory pipeline
108
+
109
+ ### Backwards Compatibility
110
+
111
+ The following legacy exports are deprecated and will be removed in the next major version:
112
+ - `InMemoryMemoryService` - Use `MemoryService` with `InMemoryStorageProvider` instead
113
+ - `BaseMemoryService` - Use `MemoryStorageProvider` interface instead
114
+ - `MemoryEntry` - Use `MemoryRecord` instead
115
+ - `SearchMemoryResponse` - Use `MemorySearchResult[]` instead
116
+
117
+ Migration example:
118
+
119
+ ```typescript
120
+ // Old (deprecated)
121
+ import { InMemoryMemoryService } from "@iqai/adk";
122
+ const memory = new InMemoryMemoryService();
123
+
124
+ // New
125
+ import { MemoryService, InMemoryStorageProvider } from "@iqai/adk";
126
+ const memory = new MemoryService({
127
+ storage: new InMemoryStorageProvider(),
128
+ });
129
+ ```
130
+
131
+ ### Patch Changes
132
+
133
+ - d671e06: Add `ToolOutputFilterPlugin` to intelligently reduce large tool outputs before downstream processing.
134
+
135
+ The plugin dynamically generates safe `jq` filters using an LLM to extract only relevant data, applying adaptive and iterative filtering until configurable size or key-count targets are met. This improves performance, prevents context window overflows, and supports per-tool enablement, schema-aware filtering, and strict security checks against unsafe filters.
136
+
3
137
  ## 0.6.6
4
138
 
5
139
  ### Patch Changes