@inkeep/agents-sdk 0.38.2 → 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 +154 -0
- package/dist/index.cjs +555 -1
- package/dist/index.d.cts +391 -1
- package/dist/index.d.ts +391 -1
- package/dist/index.js +545 -2
- package/package.json +2 -2
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
|
+
```
|