@inkeep/agents-sdk 0.38.3 → 0.39.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/README.md CHANGED
@@ -31,6 +31,92 @@ export const myAgent = agent({
31
31
  });
32
32
  ```
33
33
 
34
+ ## Credential Management
35
+
36
+ The SDK provides a clean abstraction for credential management through `InkeepCredentialProvider`:
37
+
38
+ ```typescript
39
+ import { InkeepCredentialProvider, createCredentialProvider } from '@inkeep/agents-sdk';
40
+
41
+ // Simple memory-based storage (default)
42
+ const credentials = new InkeepCredentialProvider();
43
+
44
+ // Or use the factory function
45
+ const credentials = createCredentialProvider({ type: 'memory' });
46
+
47
+ // Store and retrieve credentials
48
+ await credentials.set('my-api-key', 'secret-value');
49
+ const key = await credentials.get('my-api-key');
50
+
51
+ // Environment variables are automatically available
52
+ process.env.MY_TOKEN = 'env-token';
53
+ const token = await credentials.get('MY_TOKEN'); // Returns 'env-token'
54
+ ```
55
+
56
+ ### Credential Provider Types
57
+
58
+ | Type | Description | Requirements |
59
+ |------|-------------|--------------|
60
+ | `memory` | In-memory storage with env var fallback | None (default) |
61
+ | `keychain` | OS keychain storage | `keytar` package |
62
+ | `nango` | OAuth credential management | `@nangohq/node`, `@nangohq/types` |
63
+ | `custom` | Your own implementation | Implement `CredentialStore` interface |
64
+
65
+ ### Advanced: Nango Integration
66
+
67
+ For OAuth-based credentials (requires optional packages):
68
+
69
+ ```bash
70
+ npm install @nangohq/node @nangohq/types
71
+ ```
72
+
73
+ ```typescript
74
+ const credentials = new InkeepCredentialProvider({
75
+ type: 'nango',
76
+ secretKey: process.env.NANGO_SECRET_KEY,
77
+ });
78
+ ```
79
+
80
+ ## Telemetry
81
+
82
+ Telemetry is **opt-in** and disabled by default. The SDK provides abstractions for custom telemetry backends:
83
+
84
+ ```typescript
85
+ import {
86
+ InkeepTelemetryProvider,
87
+ createConsoleTelemetryProvider,
88
+ createOpenTelemetryProvider,
89
+ } from '@inkeep/agents-sdk';
90
+
91
+ // No-op (default - no telemetry overhead)
92
+ const telemetry = new InkeepTelemetryProvider();
93
+
94
+ // Console-based logging (for development)
95
+ const telemetry = createConsoleTelemetryProvider('my-agent');
96
+
97
+ // OpenTelemetry (requires @opentelemetry packages)
98
+ const telemetry = await createOpenTelemetryProvider({
99
+ serviceName: 'my-agent',
100
+ endpoint: 'http://localhost:4318',
101
+ });
102
+
103
+ // Use the tracer
104
+ const tracer = telemetry.getTracer('my-component');
105
+ tracer.startActiveSpan('my-operation', (span) => {
106
+ span.setAttribute('key', 'value');
107
+ // ... your code
108
+ span.end();
109
+ });
110
+ ```
111
+
112
+ ### Telemetry Provider Types
113
+
114
+ | Provider | Description | Requirements |
115
+ |----------|-------------|--------------|
116
+ | `NoOpTelemetryProvider` | Does nothing (default) | None |
117
+ | `ConsoleTelemetryProvider` | Logs to console | None |
118
+ | Custom OpenTelemetry | Full observability | `@opentelemetry/*` packages |
119
+
34
120
  ## API Reference
35
121
 
36
122
  ### Builders
@@ -51,3 +137,71 @@ export const myAgent = agent({
51
137
  - `AgentGraph` - Graph management and operations
52
138
  - `Tool` - Base tool class
53
139
  - `Runner` - Graph execution runner
140
+
141
+ ### Credential Management
142
+
143
+ - `InkeepCredentialProvider` - Main credential provider class
144
+ - `createCredentialProvider()` - Factory function for creating providers
145
+
146
+ ### Telemetry
147
+
148
+ - `InkeepTelemetryProvider` - Main telemetry provider class
149
+ - `createNoOpTelemetryProvider()` - Create disabled telemetry
150
+ - `createConsoleTelemetryProvider()` - Create console-based telemetry
151
+ - `createOpenTelemetryProvider()` - Create OpenTelemetry-based telemetry
152
+
153
+ ## Version Compatibility
154
+
155
+ This section documents how SDK versions relate to Inkeep Cloud runtime versions.
156
+
157
+ ### Versioning Strategy
158
+
159
+ The SDK follows [Semantic Versioning](https://semver.org/):
160
+
161
+ - **Major versions** (X.0.0): Breaking changes to the SDK API
162
+ - **Minor versions** (0.X.0): New features, backward compatible
163
+ - **Patch versions** (0.0.X): Bug fixes, backward compatible
164
+
165
+ ### SDK to Runtime Compatibility
166
+
167
+ | SDK Version | Minimum Runtime Version | Notes |
168
+ |-------------|------------------------|-------|
169
+ | 0.38.x | 0.38.0 | Current stable |
170
+
171
+ ### Breaking Change Policy
172
+
173
+ 1. **Deprecation Notice**: Features are marked deprecated at least one minor version before removal
174
+ 2. **Migration Guide**: Breaking changes include migration documentation
175
+ 3. **Runtime Compatibility**: SDK versions are tested against specific runtime versions
176
+
177
+ ### Upgrade Path
178
+
179
+ When upgrading the SDK:
180
+
181
+ 1. Check the [CHANGELOG](./CHANGELOG.md) for breaking changes
182
+ 2. Update any deprecated API usage
183
+ 3. Test with your target runtime version
184
+ 4. For major upgrades, follow the migration guide
185
+
186
+ ### Optional Dependencies
187
+
188
+ The SDK has minimal required dependencies. Advanced features require optional packages:
189
+
190
+ | Feature | Required Packages |
191
+ |---------|------------------|
192
+ | Nango credentials | `@nangohq/node`, `@nangohq/types` |
193
+ | Keychain storage | `keytar` |
194
+ | OpenTelemetry | `@opentelemetry/api`, `@opentelemetry/sdk-node` |
195
+
196
+ Install only what you need:
197
+
198
+ ```bash
199
+ # Core SDK only (push/pull, memory credentials)
200
+ npm install @inkeep/agents-sdk
201
+
202
+ # With Nango OAuth support
203
+ npm install @inkeep/agents-sdk @nangohq/node @nangohq/types
204
+
205
+ # With OpenTelemetry
206
+ npm install @inkeep/agents-sdk @opentelemetry/api @opentelemetry/sdk-node
207
+ ```