@adcp/client 0.2.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.
Files changed (99) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +166 -0
  3. package/dist/lib/agents/index.generated.d.ts +147 -0
  4. package/dist/lib/agents/index.generated.d.ts.map +1 -0
  5. package/dist/lib/agents/index.generated.js +218 -0
  6. package/dist/lib/agents/index.generated.js.map +1 -0
  7. package/dist/lib/auth/index.d.ts +22 -0
  8. package/dist/lib/auth/index.d.ts.map +1 -0
  9. package/dist/lib/auth/index.js +73 -0
  10. package/dist/lib/auth/index.js.map +1 -0
  11. package/dist/lib/core/ADCPClient.d.ts +233 -0
  12. package/dist/lib/core/ADCPClient.d.ts.map +1 -0
  13. package/dist/lib/core/ADCPClient.js +287 -0
  14. package/dist/lib/core/ADCPClient.js.map +1 -0
  15. package/dist/lib/core/ADCPMultiAgentClient.d.ts +308 -0
  16. package/dist/lib/core/ADCPMultiAgentClient.d.ts.map +1 -0
  17. package/dist/lib/core/ADCPMultiAgentClient.js +468 -0
  18. package/dist/lib/core/ADCPMultiAgentClient.js.map +1 -0
  19. package/dist/lib/core/AgentClient.d.ts +124 -0
  20. package/dist/lib/core/AgentClient.d.ts.map +1 -0
  21. package/dist/lib/core/AgentClient.js +242 -0
  22. package/dist/lib/core/AgentClient.js.map +1 -0
  23. package/dist/lib/core/ConfigurationManager.d.ts +79 -0
  24. package/dist/lib/core/ConfigurationManager.d.ts.map +1 -0
  25. package/dist/lib/core/ConfigurationManager.js +254 -0
  26. package/dist/lib/core/ConfigurationManager.js.map +1 -0
  27. package/dist/lib/core/ConversationTypes.d.ts +242 -0
  28. package/dist/lib/core/ConversationTypes.d.ts.map +1 -0
  29. package/dist/lib/core/ConversationTypes.js +5 -0
  30. package/dist/lib/core/ConversationTypes.js.map +1 -0
  31. package/dist/lib/core/ProtocolResponseParser.d.ts +45 -0
  32. package/dist/lib/core/ProtocolResponseParser.d.ts.map +1 -0
  33. package/dist/lib/core/ProtocolResponseParser.js +82 -0
  34. package/dist/lib/core/ProtocolResponseParser.js.map +1 -0
  35. package/dist/lib/core/TaskExecutor.d.ts +108 -0
  36. package/dist/lib/core/TaskExecutor.d.ts.map +1 -0
  37. package/dist/lib/core/TaskExecutor.js +422 -0
  38. package/dist/lib/core/TaskExecutor.js.map +1 -0
  39. package/dist/lib/errors/index.d.ts +125 -0
  40. package/dist/lib/errors/index.d.ts.map +1 -0
  41. package/dist/lib/errors/index.js +211 -0
  42. package/dist/lib/errors/index.js.map +1 -0
  43. package/dist/lib/handlers/types.d.ts +119 -0
  44. package/dist/lib/handlers/types.d.ts.map +1 -0
  45. package/dist/lib/handlers/types.js +239 -0
  46. package/dist/lib/handlers/types.js.map +1 -0
  47. package/dist/lib/index.d.ts +51 -0
  48. package/dist/lib/index.d.ts.map +1 -0
  49. package/dist/lib/index.js +122 -0
  50. package/dist/lib/index.js.map +1 -0
  51. package/dist/lib/protocols/a2a.d.ts +2 -0
  52. package/dist/lib/protocols/a2a.d.ts.map +1 -0
  53. package/dist/lib/protocols/a2a.js +70 -0
  54. package/dist/lib/protocols/a2a.js.map +1 -0
  55. package/dist/lib/protocols/index.d.ts +22 -0
  56. package/dist/lib/protocols/index.d.ts.map +1 -0
  57. package/dist/lib/protocols/index.js +47 -0
  58. package/dist/lib/protocols/index.js.map +1 -0
  59. package/dist/lib/protocols/mcp.d.ts +2 -0
  60. package/dist/lib/protocols/mcp.d.ts.map +1 -0
  61. package/dist/lib/protocols/mcp.js +127 -0
  62. package/dist/lib/protocols/mcp.js.map +1 -0
  63. package/dist/lib/storage/MemoryStorage.d.ts +93 -0
  64. package/dist/lib/storage/MemoryStorage.d.ts.map +1 -0
  65. package/dist/lib/storage/MemoryStorage.js +219 -0
  66. package/dist/lib/storage/MemoryStorage.js.map +1 -0
  67. package/dist/lib/storage/interfaces.d.ts +195 -0
  68. package/dist/lib/storage/interfaces.d.ts.map +1 -0
  69. package/dist/lib/storage/interfaces.js +5 -0
  70. package/dist/lib/storage/interfaces.js.map +1 -0
  71. package/dist/lib/types/adcp.d.ts +407 -0
  72. package/dist/lib/types/adcp.d.ts.map +1 -0
  73. package/dist/lib/types/adcp.js +5 -0
  74. package/dist/lib/types/adcp.js.map +1 -0
  75. package/dist/lib/types/core.generated.d.ts +469 -0
  76. package/dist/lib/types/core.generated.d.ts.map +1 -0
  77. package/dist/lib/types/core.generated.js +5 -0
  78. package/dist/lib/types/core.generated.js.map +1 -0
  79. package/dist/lib/types/index.d.ts +3 -0
  80. package/dist/lib/types/index.d.ts.map +1 -0
  81. package/dist/lib/types/index.js +19 -0
  82. package/dist/lib/types/index.js.map +1 -0
  83. package/dist/lib/types/tools.generated.d.ts +1674 -0
  84. package/dist/lib/types/tools.generated.d.ts.map +1 -0
  85. package/dist/lib/types/tools.generated.js +8 -0
  86. package/dist/lib/types/tools.generated.js.map +1 -0
  87. package/dist/lib/utils/index.d.ts +25 -0
  88. package/dist/lib/utils/index.d.ts.map +1 -0
  89. package/dist/lib/utils/index.js +109 -0
  90. package/dist/lib/utils/index.js.map +1 -0
  91. package/dist/lib/validation/index.d.ts +29 -0
  92. package/dist/lib/validation/index.d.ts.map +1 -0
  93. package/dist/lib/validation/index.js +186 -0
  94. package/dist/lib/validation/index.js.map +1 -0
  95. package/dist/lib/version.d.ts +22 -0
  96. package/dist/lib/version.d.ts.map +1 -0
  97. package/dist/lib/version.js +32 -0
  98. package/dist/lib/version.js.map +1 -0
  99. package/package.json +108 -0
@@ -0,0 +1,219 @@
1
+ "use strict";
2
+ // Default in-memory storage implementation
3
+ // Works out of the box without any external dependencies
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.MemoryStorage = void 0;
6
+ exports.createMemoryStorage = createMemoryStorage;
7
+ exports.createMemoryStorageConfig = createMemoryStorageConfig;
8
+ /**
9
+ * In-memory storage implementation with TTL support
10
+ *
11
+ * This is the default storage used when no external storage is configured.
12
+ * Features:
13
+ * - TTL support with automatic cleanup
14
+ * - Pattern matching
15
+ * - Batch operations
16
+ * - Memory-efficient (garbage collection of expired items)
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * const storage = new MemoryStorage<string>();
21
+ * await storage.set('key', 'value', 60); // TTL of 60 seconds
22
+ * const value = await storage.get('key');
23
+ * ```
24
+ */
25
+ class MemoryStorage {
26
+ options;
27
+ store = new Map();
28
+ cleanupInterval;
29
+ lastCleanup = 0;
30
+ constructor(options = {}) {
31
+ this.options = options;
32
+ const { cleanupIntervalMs = 5 * 60 * 1000, // 5 minutes
33
+ autoCleanup = true } = options;
34
+ if (autoCleanup) {
35
+ this.cleanupInterval = setInterval(() => {
36
+ this.cleanupExpired();
37
+ }, cleanupIntervalMs);
38
+ }
39
+ }
40
+ async get(key) {
41
+ const item = this.store.get(key);
42
+ if (!item) {
43
+ return undefined;
44
+ }
45
+ // Check if expired
46
+ if (item.expiresAt && Date.now() > item.expiresAt) {
47
+ this.store.delete(key);
48
+ return undefined;
49
+ }
50
+ return item.value;
51
+ }
52
+ async set(key, value, ttl) {
53
+ const now = Date.now();
54
+ const expiresAt = ttl ? now + ttl * 1000 : undefined;
55
+ this.store.set(key, {
56
+ value,
57
+ expiresAt,
58
+ createdAt: now
59
+ });
60
+ // Force cleanup if we're approaching max items
61
+ const maxItems = this.options.maxItems || 10000;
62
+ if (this.store.size > maxItems) {
63
+ this.cleanupExpired();
64
+ }
65
+ }
66
+ async delete(key) {
67
+ this.store.delete(key);
68
+ }
69
+ async has(key) {
70
+ const value = await this.get(key);
71
+ return value !== undefined;
72
+ }
73
+ async clear() {
74
+ this.store.clear();
75
+ }
76
+ async keys() {
77
+ // Return only non-expired keys
78
+ const keys = [];
79
+ const now = Date.now();
80
+ for (const [key, item] of this.store) {
81
+ if (!item.expiresAt || now <= item.expiresAt) {
82
+ keys.push(key);
83
+ }
84
+ }
85
+ return keys;
86
+ }
87
+ async size() {
88
+ // Count only non-expired items
89
+ const keys = await this.keys();
90
+ return keys.length;
91
+ }
92
+ // ====== BATCH OPERATIONS ======
93
+ async mget(keys) {
94
+ const promises = keys.map(key => this.get(key));
95
+ return Promise.all(promises);
96
+ }
97
+ async mset(entries) {
98
+ const promises = entries.map(({ key, value, ttl }) => this.set(key, value, ttl));
99
+ await Promise.all(promises);
100
+ }
101
+ async mdel(keys) {
102
+ let deleted = 0;
103
+ for (const key of keys) {
104
+ if (this.store.has(key)) {
105
+ this.store.delete(key);
106
+ deleted++;
107
+ }
108
+ }
109
+ return deleted;
110
+ }
111
+ // ====== PATTERN OPERATIONS ======
112
+ async scan(pattern) {
113
+ const regex = this.patternToRegex(pattern);
114
+ const allKeys = await this.keys();
115
+ return allKeys.filter(key => regex.test(key));
116
+ }
117
+ async deletePattern(pattern) {
118
+ const keys = await this.scan(pattern);
119
+ return this.mdel(keys);
120
+ }
121
+ // ====== UTILITY METHODS ======
122
+ /**
123
+ * Manually trigger cleanup of expired items
124
+ */
125
+ cleanupExpired() {
126
+ const now = Date.now();
127
+ let cleaned = 0;
128
+ for (const [key, item] of this.store) {
129
+ if (item.expiresAt && now > item.expiresAt) {
130
+ this.store.delete(key);
131
+ cleaned++;
132
+ }
133
+ }
134
+ this.lastCleanup = now;
135
+ return cleaned;
136
+ }
137
+ /**
138
+ * Get storage statistics
139
+ */
140
+ getStats() {
141
+ const now = Date.now();
142
+ let expiredItems = 0;
143
+ let oldestItem;
144
+ let newestItem;
145
+ for (const [, item] of this.store) {
146
+ if (item.expiresAt && now > item.expiresAt) {
147
+ expiredItems++;
148
+ }
149
+ if (!oldestItem || item.createdAt < oldestItem) {
150
+ oldestItem = item.createdAt;
151
+ }
152
+ if (!newestItem || item.createdAt > newestItem) {
153
+ newestItem = item.createdAt;
154
+ }
155
+ }
156
+ return {
157
+ totalItems: this.store.size,
158
+ expiredItems,
159
+ memoryUsage: this.estimateMemoryUsage(),
160
+ lastCleanup: this.lastCleanup,
161
+ oldestItem,
162
+ newestItem
163
+ };
164
+ }
165
+ /**
166
+ * Estimate memory usage (rough approximation)
167
+ */
168
+ estimateMemoryUsage() {
169
+ let bytes = 0;
170
+ for (const [key, item] of this.store) {
171
+ // Rough estimate: string length * 2 (UTF-16) + object overhead
172
+ bytes += key.length * 2;
173
+ bytes += JSON.stringify(item.value).length * 2;
174
+ bytes += 64; // Overhead for object and metadata
175
+ }
176
+ return bytes;
177
+ }
178
+ /**
179
+ * Convert glob-style pattern to regex
180
+ */
181
+ patternToRegex(pattern) {
182
+ // Escape special regex characters except * and ?
183
+ const escaped = pattern.replace(/[.+^${}()|[\]\\]/g, '\\$&');
184
+ // Convert glob wildcards to regex
185
+ const regexPattern = escaped
186
+ .replace(/\*/g, '.*') // * matches any sequence
187
+ .replace(/\?/g, '.'); // ? matches any single character
188
+ return new RegExp(`^${regexPattern}$`);
189
+ }
190
+ /**
191
+ * Destroy the storage and cleanup resources
192
+ */
193
+ destroy() {
194
+ if (this.cleanupInterval) {
195
+ clearInterval(this.cleanupInterval);
196
+ this.cleanupInterval = undefined;
197
+ }
198
+ this.store.clear();
199
+ }
200
+ }
201
+ exports.MemoryStorage = MemoryStorage;
202
+ /**
203
+ * Factory function to create a memory storage instance
204
+ */
205
+ function createMemoryStorage(options) {
206
+ return new MemoryStorage(options);
207
+ }
208
+ /**
209
+ * Create a complete storage configuration using memory storage
210
+ */
211
+ function createMemoryStorageConfig() {
212
+ return {
213
+ capabilities: createMemoryStorage({ maxItems: 1000 }),
214
+ conversations: createMemoryStorage({ maxItems: 5000 }),
215
+ tokens: createMemoryStorage({ maxItems: 10000 }),
216
+ debugLogs: createMemoryStorage({ maxItems: 50000 })
217
+ };
218
+ }
219
+ //# sourceMappingURL=MemoryStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemoryStorage.js","sourceRoot":"","sources":["../../../src/lib/storage/MemoryStorage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,195 @@
1
+ /**
2
+ * Generic storage interface for caching and persistence
3
+ *
4
+ * Users can provide their own implementations (Redis, database, etc.)
5
+ * The library provides a default in-memory implementation
6
+ */
7
+ export interface Storage<T> {
8
+ /**
9
+ * Get a value by key
10
+ * @param key - Storage key
11
+ * @returns Value or undefined if not found
12
+ */
13
+ get(key: string): Promise<T | undefined>;
14
+ /**
15
+ * Set a value with optional TTL
16
+ * @param key - Storage key
17
+ * @param value - Value to store
18
+ * @param ttl - Time to live in seconds (optional)
19
+ */
20
+ set(key: string, value: T, ttl?: number): Promise<void>;
21
+ /**
22
+ * Delete a value by key
23
+ * @param key - Storage key
24
+ */
25
+ delete(key: string): Promise<void>;
26
+ /**
27
+ * Check if a key exists
28
+ * @param key - Storage key
29
+ */
30
+ has(key: string): Promise<boolean>;
31
+ /**
32
+ * Clear all stored values (optional)
33
+ */
34
+ clear?(): Promise<void>;
35
+ /**
36
+ * Get all keys (optional, for debugging)
37
+ */
38
+ keys?(): Promise<string[]>;
39
+ /**
40
+ * Get storage size/count (optional, for monitoring)
41
+ */
42
+ size?(): Promise<number>;
43
+ }
44
+ /**
45
+ * Agent capabilities for caching
46
+ */
47
+ export interface AgentCapabilities {
48
+ /** Agent ID */
49
+ agentId: string;
50
+ /** Supported task names */
51
+ supportedTasks: string[];
52
+ /** Task schemas/definitions */
53
+ taskSchemas?: Record<string, any>;
54
+ /** Agent metadata */
55
+ metadata?: {
56
+ version?: string;
57
+ description?: string;
58
+ lastUpdated?: string;
59
+ [key: string]: any;
60
+ };
61
+ /** When capabilities were cached */
62
+ cachedAt: string;
63
+ /** Cache expiration time */
64
+ expiresAt?: string;
65
+ }
66
+ /**
67
+ * Conversation state for persistence
68
+ */
69
+ export interface ConversationState {
70
+ /** Conversation ID */
71
+ conversationId: string;
72
+ /** Agent ID */
73
+ agentId: string;
74
+ /** Message history */
75
+ messages: Array<{
76
+ id: string;
77
+ role: 'user' | 'agent' | 'system';
78
+ content: any;
79
+ timestamp: string;
80
+ metadata?: Record<string, any>;
81
+ }>;
82
+ /** Current task information */
83
+ currentTask?: {
84
+ taskId: string;
85
+ taskName: string;
86
+ status: string;
87
+ params: any;
88
+ };
89
+ /** When conversation was created */
90
+ createdAt: string;
91
+ /** When conversation was last updated */
92
+ updatedAt: string;
93
+ /** Additional metadata */
94
+ metadata?: Record<string, any>;
95
+ }
96
+ /**
97
+ * Deferred task state for resumption
98
+ */
99
+ export interface DeferredTaskState {
100
+ /** Unique token for this deferred task */
101
+ token: string;
102
+ /** Task ID */
103
+ taskId: string;
104
+ /** Task name */
105
+ taskName: string;
106
+ /** Agent ID */
107
+ agentId: string;
108
+ /** Task parameters */
109
+ params: any;
110
+ /** Message history up to deferral point */
111
+ messages: Array<{
112
+ id: string;
113
+ role: 'user' | 'agent' | 'system';
114
+ content: any;
115
+ timestamp: string;
116
+ metadata?: Record<string, any>;
117
+ }>;
118
+ /** Pending input request that caused deferral */
119
+ pendingInput?: {
120
+ question: string;
121
+ field?: string;
122
+ expectedType?: string;
123
+ suggestions?: any[];
124
+ validation?: Record<string, any>;
125
+ };
126
+ /** When task was deferred */
127
+ deferredAt: string;
128
+ /** When token expires */
129
+ expiresAt: string;
130
+ /** Additional metadata */
131
+ metadata?: Record<string, any>;
132
+ }
133
+ /**
134
+ * Storage configuration for different data types
135
+ */
136
+ export interface StorageConfig {
137
+ /** Storage for agent capabilities caching */
138
+ capabilities?: Storage<AgentCapabilities>;
139
+ /** Storage for conversation state persistence */
140
+ conversations?: Storage<ConversationState>;
141
+ /** Storage for deferred task tokens */
142
+ tokens?: Storage<DeferredTaskState>;
143
+ /** Storage for debug logs (optional) */
144
+ debugLogs?: Storage<any>;
145
+ /** Custom storage instances */
146
+ custom?: Record<string, Storage<any>>;
147
+ }
148
+ /**
149
+ * Storage factory interface for creating storage instances
150
+ */
151
+ export interface StorageFactory {
152
+ /**
153
+ * Create a storage instance for a specific data type
154
+ */
155
+ createStorage<T>(type: string, options?: any): Storage<T>;
156
+ }
157
+ /**
158
+ * Utility type for storage middleware/decorators
159
+ */
160
+ export type StorageMiddleware<T> = (storage: Storage<T>) => Storage<T>;
161
+ /**
162
+ * Helper interface for batch operations
163
+ */
164
+ export interface BatchStorage<T> extends Storage<T> {
165
+ /**
166
+ * Get multiple values at once
167
+ */
168
+ mget(keys: string[]): Promise<(T | undefined)[]>;
169
+ /**
170
+ * Set multiple values at once
171
+ */
172
+ mset(entries: Array<{
173
+ key: string;
174
+ value: T;
175
+ ttl?: number;
176
+ }>): Promise<void>;
177
+ /**
178
+ * Delete multiple keys at once
179
+ */
180
+ mdel(keys: string[]): Promise<number>;
181
+ }
182
+ /**
183
+ * Helper interface for pattern-based operations
184
+ */
185
+ export interface PatternStorage<T> extends Storage<T> {
186
+ /**
187
+ * Get keys matching a pattern
188
+ */
189
+ scan(pattern: string): Promise<string[]>;
190
+ /**
191
+ * Delete keys matching a pattern
192
+ */
193
+ deletePattern(pattern: string): Promise<number>;
194
+ }
195
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/lib/storage/interfaces.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ // Optional storage interfaces for caching and persistence
3
+ // These are completely optional - everything works in-memory by default
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/lib/storage/interfaces.ts"],"names":[],"mappings":";AAAA,0DAA0D;AAC1D,wEAAwE"}