@everworker/oneringai 0.4.2 → 0.4.4
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 +132 -13
- package/dist/{IProvider-CNJqZItJ.d.cts → IProvider-B8sqUzJG.d.cts} +36 -6
- package/dist/{IProvider-B6hqVVq8.d.ts → IProvider-CxDUGl6n.d.ts} +36 -6
- package/dist/{ImageModel-B64HX3lN.d.cts → ImageModel-Ds5_6sf7.d.cts} +1 -1
- package/dist/{ImageModel-DU-y_WOb.d.ts → ImageModel-OWbA277F.d.ts} +1 -1
- package/dist/capabilities/agents/index.d.cts +2 -2
- package/dist/capabilities/agents/index.d.ts +2 -2
- package/dist/capabilities/images/index.cjs +251 -106
- package/dist/capabilities/images/index.cjs.map +1 -1
- package/dist/capabilities/images/index.d.cts +2 -2
- package/dist/capabilities/images/index.d.ts +2 -2
- package/dist/capabilities/images/index.js +251 -106
- package/dist/capabilities/images/index.js.map +1 -1
- package/dist/index-DmYrHH7d.d.cts +2556 -0
- package/dist/index-Dyl6pHfq.d.ts +2556 -0
- package/dist/index.cjs +4141 -444
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +825 -945
- package/dist/index.d.ts +825 -945
- package/dist/index.js +4107 -429
- package/dist/index.js.map +1 -1
- package/dist/shared/index.cjs +9 -0
- package/dist/shared/index.cjs.map +1 -1
- package/dist/shared/index.js +9 -0
- package/dist/shared/index.js.map +1 -1
- package/package.json +2 -1
- package/dist/index-9VOnAX17.d.ts +0 -1397
- package/dist/index-BMjyFNJQ.d.cts +0 -1397
package/README.md
CHANGED
|
@@ -34,6 +34,7 @@
|
|
|
34
34
|
- [20. Routine Execution](#20-routine-execution) — Multi-step workflows with task dependencies, validation, and memory bridging
|
|
35
35
|
- [21. External API Integration](#21-external-api-integration) — Scoped Registry, Vendor Templates, Tool Discovery
|
|
36
36
|
- [22. Microsoft Graph Connector Tools](#22-microsoft-graph-connector-tools-new) — Email, calendar, meetings, and Teams transcripts
|
|
37
|
+
- [23. Tool Catalog](#23-tool-catalog-new) — Dynamic tool loading/unloading for agents with 100+ tools
|
|
37
38
|
- [MCP Integration](#mcp-model-context-protocol-integration)
|
|
38
39
|
- [Documentation](#documentation)
|
|
39
40
|
- [Examples](#examples)
|
|
@@ -54,12 +55,16 @@
|
|
|
54
55
|
| **[User Guide](./USER_GUIDE.md)** | Comprehensive guide covering every feature with examples — connectors, agents, context, plugins, audio, video, search, MCP, OAuth, and more |
|
|
55
56
|
| **[API Reference](./API_REFERENCE.md)** | Auto-generated reference for all 600+ public exports — classes, interfaces, types, and functions with signatures |
|
|
56
57
|
| [CHANGELOG](./CHANGELOG.md) | Version history and migration notes |
|
|
57
|
-
| [MCP Integration](./MCP_INTEGRATION.md) | Model Context Protocol setup and usage |
|
|
58
|
-
| [Architecture (CLAUDE.md)](./CLAUDE.md) | Internal architecture guide |
|
|
59
|
-
| [Testing Guide](./TESTING.md) | How to run and write tests |
|
|
60
58
|
|
|
61
59
|
---
|
|
62
60
|
|
|
61
|
+
## Tutorial / Architecture Series
|
|
62
|
+
|
|
63
|
+
**Part 0**. [One Lib to Rule Them All: Why We Built OneRingAI](https://medium.com/superstringtheory/one-library-to-rule-them-all-why-we-built-oneringai-689f904874d6): introduction and architecture overview
|
|
64
|
+
|
|
65
|
+
**Part 1**. [Your AI Agent Forgets Everything. Here’s How We Fixed It.](https://medium.com/superstringtheory/your-ai-agent-forgets-everything-heres-how-we-fixed-it-276b39aedbb3): context management plugins
|
|
66
|
+
|
|
67
|
+
|
|
63
68
|
## HOSEA APP
|
|
64
69
|
We realize that library alone in these times is not enough to get you excited, so we built a FREE FOREVER desktop app on top of this library to showcase its power! It's as easy to start using as cloning this library's repo, and then `cd apps/hosea` and then `npm install` and then `npm run dev`. Or watch the video first:
|
|
65
70
|
|
|
@@ -109,6 +114,9 @@ Showcasing another amazing "built with oneringai": ["no saas" agentic business t
|
|
|
109
114
|
- 📦 **Vendor Templates** - NEW: Pre-configured auth templates for 43+ services (GitHub, Slack, Stripe, etc.)
|
|
110
115
|
- 📧 **Microsoft Graph Tools** - NEW: Email, calendar, meetings, and Teams transcripts via Microsoft Graph API
|
|
111
116
|
- 🔁 **Routine Execution** - NEW: Multi-step workflows with task dependencies, LLM validation, retry logic, and memory bridging between tasks
|
|
117
|
+
- 📊 **Execution Recording** - NEW: Persist full routine execution history with `createExecutionRecorder()` — replaces manual hook wiring
|
|
118
|
+
- ⏰ **Scheduling & Triggers** - NEW: `SimpleScheduler` for interval/one-time schedules, `EventEmitterTrigger` for webhook/queue-driven execution
|
|
119
|
+
- 📦 **Tool Catalog** - NEW: Dynamic tool loading/unloading — agents discover and load only the categories they need at runtime
|
|
112
120
|
- 🔄 **Streaming** - Real-time responses with event streams
|
|
113
121
|
- 📝 **TypeScript** - Full type safety and IntelliSense support
|
|
114
122
|
|
|
@@ -788,6 +796,8 @@ const agent = Agent.create({
|
|
|
788
796
|
| `workingMemory` | `true` | WorkingMemoryPluginNextGen | `memory_store/retrieve/delete/list` |
|
|
789
797
|
| `inContextMemory` | `false` | InContextMemoryPluginNextGen | `context_set/delete/list` |
|
|
790
798
|
| `persistentInstructions` | `false` | PersistentInstructionsPluginNextGen | `instructions_set/remove/list/clear` |
|
|
799
|
+
| `userInfo` | `false` | UserInfoPluginNextGen | `user_info_set/get/remove/clear`, `todo_add/update/remove` |
|
|
800
|
+
| `toolCatalog` | `false` | ToolCatalogPluginNextGen | `tool_catalog_search/load/unload` |
|
|
791
801
|
|
|
792
802
|
**AgentContextNextGen architecture:**
|
|
793
803
|
- **Plugin-first design** - All features are composable plugins
|
|
@@ -910,13 +920,20 @@ const agent = Agent.create({
|
|
|
910
920
|
- 👥 **User-Scoped** - Data is per-user, not per-agent — different agents share the same user data
|
|
911
921
|
- 🔧 **LLM-Modifiable** - Agent can update user info during execution
|
|
912
922
|
|
|
913
|
-
**
|
|
923
|
+
**User Info Tools:**
|
|
914
924
|
- `user_info_set` - Store/update user information by key (`key`, `value`, `description?`)
|
|
915
925
|
- `user_info_get` - Retrieve one entry by key, or all entries if no key
|
|
916
926
|
- `user_info_remove` - Remove a specific entry
|
|
917
927
|
- `user_info_clear` - Clear all entries (requires confirmation)
|
|
918
928
|
|
|
919
|
-
**
|
|
929
|
+
**TODO Tools** (built into the same plugin):
|
|
930
|
+
- `todo_add` - Create a TODO (`title`, `description?`, `people?`, `dueDate?`, `tags?`)
|
|
931
|
+
- `todo_update` - Update a TODO (`id`, plus any fields to change including `status: 'done'`)
|
|
932
|
+
- `todo_remove` - Delete a TODO by id
|
|
933
|
+
|
|
934
|
+
TODOs are stored alongside user info and rendered in a separate **"Current TODOs"** checklist in context. The agent proactively suggests creating TODOs when conversation implies action items, reminds about due/overdue items once per day, and auto-cleans completed TODOs after 48 hours.
|
|
935
|
+
|
|
936
|
+
**Use cases:** User preferences (theme, language, timezone), user context (role, location), accumulated knowledge about the user, task/TODO tracking with deadlines and people.
|
|
920
937
|
|
|
921
938
|
### 11. Direct LLM Access
|
|
922
939
|
|
|
@@ -1290,13 +1307,75 @@ console.log(execution.status); // 'completed' | 'failed'
|
|
|
1290
1307
|
```
|
|
1291
1308
|
|
|
1292
1309
|
**Key Features:**
|
|
1293
|
-
-
|
|
1294
|
-
-
|
|
1295
|
-
-
|
|
1296
|
-
-
|
|
1297
|
-
-
|
|
1298
|
-
-
|
|
1299
|
-
-
|
|
1310
|
+
- **Task Dependencies** - DAG-based ordering via `dependsOn`
|
|
1311
|
+
- **Memory Bridging** - In-context memory (`context_set`) + working memory (`memory_store`) persist across tasks while conversation is cleared
|
|
1312
|
+
- **LLM Validation** - Self-reflection against completion criteria with configurable score thresholds
|
|
1313
|
+
- **Retry Logic** - Configurable `maxAttempts` per task with automatic retry on validation failure
|
|
1314
|
+
- **Smart Error Classification** - Permanent errors (auth, config, model-not-found) skip retry; transient errors retry normally
|
|
1315
|
+
- **Control Flow** - `map`, `fold`, and `until` flows with optional per-iteration timeout (`iterationTimeoutMs`)
|
|
1316
|
+
- **Progress Tracking** - Real-time callbacks and progress percentage
|
|
1317
|
+
- **Failure Modes** - `fail-fast` (default) or `continue` for independent tasks
|
|
1318
|
+
- **Custom Prompts** - Override system, task, or validation prompts
|
|
1319
|
+
- **`ROUTINE_KEYS` export** - Well-known ICM/WM key constants for custom integrations
|
|
1320
|
+
|
|
1321
|
+
**Control Flow with Timeout:**
|
|
1322
|
+
|
|
1323
|
+
```typescript
|
|
1324
|
+
const routine = createRoutineDefinition({
|
|
1325
|
+
name: 'Process Batch',
|
|
1326
|
+
tasks: [{
|
|
1327
|
+
name: 'Process Each',
|
|
1328
|
+
description: 'Process each item',
|
|
1329
|
+
controlFlow: {
|
|
1330
|
+
type: 'map',
|
|
1331
|
+
source: '__items',
|
|
1332
|
+
resultKey: '__results',
|
|
1333
|
+
iterationTimeoutMs: 60000, // 1 min per item
|
|
1334
|
+
tasks: [{ name: 'Process', description: 'Handle the current item' }],
|
|
1335
|
+
},
|
|
1336
|
+
}],
|
|
1337
|
+
});
|
|
1338
|
+
```
|
|
1339
|
+
|
|
1340
|
+
**Execution Recording:** Persist full execution history (steps, task snapshots, progress) with `createExecutionRecorder()`. Replaces ~140 lines of manual hook wiring with a single factory call:
|
|
1341
|
+
|
|
1342
|
+
```typescript
|
|
1343
|
+
import {
|
|
1344
|
+
createRoutineExecutionRecord, createExecutionRecorder,
|
|
1345
|
+
type IRoutineExecutionStorage,
|
|
1346
|
+
} from '@everworker/oneringai';
|
|
1347
|
+
|
|
1348
|
+
const record = createRoutineExecutionRecord(definition, 'openai', 'gpt-4');
|
|
1349
|
+
const execId = await storage.insert(userId, record);
|
|
1350
|
+
const recorder = createExecutionRecorder({ storage, executionId: execId });
|
|
1351
|
+
|
|
1352
|
+
executeRoutine({
|
|
1353
|
+
definition, agent, inputs,
|
|
1354
|
+
hooks: recorder.hooks,
|
|
1355
|
+
onTaskStarted: recorder.onTaskStarted,
|
|
1356
|
+
onTaskComplete: recorder.onTaskComplete,
|
|
1357
|
+
onTaskFailed: recorder.onTaskFailed,
|
|
1358
|
+
onTaskValidation: recorder.onTaskValidation,
|
|
1359
|
+
})
|
|
1360
|
+
.then(exec => recorder.finalize(exec))
|
|
1361
|
+
.catch(err => recorder.finalize(null, err));
|
|
1362
|
+
```
|
|
1363
|
+
|
|
1364
|
+
**Scheduling & Triggers:** Run routines on a timer or from external events:
|
|
1365
|
+
|
|
1366
|
+
```typescript
|
|
1367
|
+
import { SimpleScheduler, EventEmitterTrigger } from '@everworker/oneringai';
|
|
1368
|
+
|
|
1369
|
+
// Schedule: run every hour
|
|
1370
|
+
const scheduler = new SimpleScheduler();
|
|
1371
|
+
scheduler.schedule('hourly-report', { intervalMs: 3600000 }, () => executeRoutine({ ... }));
|
|
1372
|
+
|
|
1373
|
+
// Event trigger: run from webhook
|
|
1374
|
+
const trigger = new EventEmitterTrigger();
|
|
1375
|
+
trigger.on('new-order', (payload) => executeRoutine({ ... }));
|
|
1376
|
+
// In your webhook handler:
|
|
1377
|
+
trigger.emit('new-order', { orderId: '123' });
|
|
1378
|
+
```
|
|
1300
1379
|
|
|
1301
1380
|
**Routine Persistence:** Save and load routine definitions with `FileRoutineDefinitionStorage` (or implement `IRoutineDefinitionStorage` for custom backends). Per-user isolation via optional `userId`. Integrated into `StorageRegistry` as `routineDefinitions`.
|
|
1302
1381
|
|
|
@@ -1560,6 +1639,46 @@ await agent.run('Find available meeting slots for alice and bob this week');
|
|
|
1560
1639
|
|
|
1561
1640
|
Supports both **delegated** (`/me` — user signs in) and **application** (`/users/{id}` — app-only) permission modes. See the [User Guide](./USER_GUIDE.md#microsoft-graph-connector-tools) for full parameter reference.
|
|
1562
1641
|
|
|
1642
|
+
### 23. Tool Catalog (NEW)
|
|
1643
|
+
|
|
1644
|
+
When agents have 100+ available tools, sending all definitions to the LLM wastes tokens and degrades performance. The Tool Catalog lets agents discover and load only the categories they need:
|
|
1645
|
+
|
|
1646
|
+
```typescript
|
|
1647
|
+
import { Agent, ToolCatalogRegistry } from '@everworker/oneringai';
|
|
1648
|
+
|
|
1649
|
+
// Register custom categories (built-in tools auto-register)
|
|
1650
|
+
ToolCatalogRegistry.registerCategory({
|
|
1651
|
+
name: 'knowledge',
|
|
1652
|
+
displayName: 'Knowledge Graph',
|
|
1653
|
+
description: 'Search entities, get facts, manage references',
|
|
1654
|
+
});
|
|
1655
|
+
ToolCatalogRegistry.registerTools('knowledge', [
|
|
1656
|
+
{ name: 'entity_search', displayName: 'Entity Search', description: 'Search entities', tool: entitySearchTool, safeByDefault: true },
|
|
1657
|
+
]);
|
|
1658
|
+
|
|
1659
|
+
// Enable tool catalog on an agent
|
|
1660
|
+
const agent = Agent.create({
|
|
1661
|
+
connector: 'openai',
|
|
1662
|
+
model: 'gpt-4',
|
|
1663
|
+
context: {
|
|
1664
|
+
features: { toolCatalog: true },
|
|
1665
|
+
},
|
|
1666
|
+
toolCategories: ['filesystem', 'knowledge'], // optional scope
|
|
1667
|
+
});
|
|
1668
|
+
|
|
1669
|
+
// Agent gets 3 metatools: tool_catalog_search, tool_catalog_load, tool_catalog_unload
|
|
1670
|
+
// It can browse categories, load what it needs, and unload when done
|
|
1671
|
+
await agent.run('Search for information about quantum computing');
|
|
1672
|
+
```
|
|
1673
|
+
|
|
1674
|
+
**Key Features:**
|
|
1675
|
+
- **Dynamic loading** — Agent loads only needed categories, saving token budget
|
|
1676
|
+
- **Category scoping** — Restrict visible categories per agent (allowlist/blocklist)
|
|
1677
|
+
- **Connector discovery** — Connector tools auto-discovered as categories
|
|
1678
|
+
- **Registry API** — `ToolCatalogRegistry.resolveTools()` for app-level tool resolution
|
|
1679
|
+
|
|
1680
|
+
See the [User Guide](./USER_GUIDE.md#tool-catalog) for full documentation.
|
|
1681
|
+
|
|
1563
1682
|
---
|
|
1564
1683
|
|
|
1565
1684
|
## MCP (Model Context Protocol) Integration
|
|
@@ -1708,4 +1827,4 @@ MIT License - See [LICENSE](./LICENSE) file.
|
|
|
1708
1827
|
|
|
1709
1828
|
---
|
|
1710
1829
|
|
|
1711
|
-
**Version:** 0.4.
|
|
1830
|
+
**Version:** 0.4.4 | **Last Updated:** 2026-02-26 | **[User Guide](./USER_GUIDE.md)** | **[API Reference](./API_REFERENCE.md)** | **[Changelog](./CHANGELOG.md)**
|
|
@@ -204,6 +204,13 @@ interface ITokenStorage {
|
|
|
204
204
|
* @returns True if token exists
|
|
205
205
|
*/
|
|
206
206
|
hasToken(key: string): Promise<boolean>;
|
|
207
|
+
/**
|
|
208
|
+
* List all storage keys (for account enumeration).
|
|
209
|
+
* Optional — implementations that support it enable multi-account listing.
|
|
210
|
+
*
|
|
211
|
+
* @returns Array of all stored token keys
|
|
212
|
+
*/
|
|
213
|
+
listKeys?(): Promise<string[]>;
|
|
207
214
|
}
|
|
208
215
|
|
|
209
216
|
/**
|
|
@@ -406,22 +413,43 @@ declare class Connector {
|
|
|
406
413
|
/**
|
|
407
414
|
* Get the current access token (for OAuth, JWT, or API key)
|
|
408
415
|
* Handles automatic refresh if needed
|
|
416
|
+
*
|
|
417
|
+
* @param userId - Optional user identifier for multi-user support
|
|
418
|
+
* @param accountId - Optional account alias for multi-account support (e.g., 'work', 'personal')
|
|
409
419
|
*/
|
|
410
|
-
getToken(userId?: string): Promise<string>;
|
|
420
|
+
getToken(userId?: string, accountId?: string): Promise<string>;
|
|
411
421
|
/**
|
|
412
422
|
* Start OAuth authorization flow
|
|
413
423
|
* Returns the URL to redirect the user to
|
|
424
|
+
*
|
|
425
|
+
* @param userId - Optional user identifier for multi-user support
|
|
426
|
+
* @param accountId - Optional account alias for multi-account support (e.g., 'work', 'personal')
|
|
414
427
|
*/
|
|
415
|
-
startAuth(userId?: string): Promise<string>;
|
|
428
|
+
startAuth(userId?: string, accountId?: string): Promise<string>;
|
|
416
429
|
/**
|
|
417
430
|
* Handle OAuth callback
|
|
418
431
|
* Call this after user is redirected back from OAuth provider
|
|
432
|
+
*
|
|
433
|
+
* @param callbackUrl - Full callback URL with code and state parameters
|
|
434
|
+
* @param userId - Optional user identifier (can be extracted from state if embedded)
|
|
435
|
+
* @param accountId - Optional account alias (can be extracted from state if embedded)
|
|
419
436
|
*/
|
|
420
|
-
handleCallback(callbackUrl: string, userId?: string): Promise<void>;
|
|
437
|
+
handleCallback(callbackUrl: string, userId?: string, accountId?: string): Promise<void>;
|
|
421
438
|
/**
|
|
422
439
|
* Check if the connector has a valid token
|
|
440
|
+
*
|
|
441
|
+
* @param userId - Optional user identifier for multi-user support
|
|
442
|
+
* @param accountId - Optional account alias for multi-account support
|
|
443
|
+
*/
|
|
444
|
+
hasValidToken(userId?: string, accountId?: string): Promise<boolean>;
|
|
445
|
+
/**
|
|
446
|
+
* List account aliases for a user on this connector.
|
|
447
|
+
* Only applicable for OAuth connectors with multi-account support.
|
|
448
|
+
*
|
|
449
|
+
* @param userId - Optional user identifier
|
|
450
|
+
* @returns Array of account aliases (e.g., ['work', 'personal'])
|
|
423
451
|
*/
|
|
424
|
-
|
|
452
|
+
listAccounts(userId?: string): Promise<string[]>;
|
|
425
453
|
/**
|
|
426
454
|
* Get vendor-specific options from config
|
|
427
455
|
*/
|
|
@@ -457,9 +485,10 @@ declare class Connector {
|
|
|
457
485
|
* @param endpoint - API endpoint (relative to baseURL) or full URL
|
|
458
486
|
* @param options - Fetch options with connector-specific settings
|
|
459
487
|
* @param userId - Optional user ID for multi-user OAuth
|
|
488
|
+
* @param accountId - Optional account alias for multi-account OAuth
|
|
460
489
|
* @returns Fetch Response
|
|
461
490
|
*/
|
|
462
|
-
fetch(endpoint: string, options?: ConnectorFetchOptions, userId?: string): Promise<Response>;
|
|
491
|
+
fetch(endpoint: string, options?: ConnectorFetchOptions, userId?: string, accountId?: string): Promise<Response>;
|
|
463
492
|
/**
|
|
464
493
|
* Make an authenticated fetch request and parse JSON response
|
|
465
494
|
* Throws on non-OK responses
|
|
@@ -467,9 +496,10 @@ declare class Connector {
|
|
|
467
496
|
* @param endpoint - API endpoint (relative to baseURL) or full URL
|
|
468
497
|
* @param options - Fetch options with connector-specific settings
|
|
469
498
|
* @param userId - Optional user ID for multi-user OAuth
|
|
499
|
+
* @param accountId - Optional account alias for multi-account OAuth
|
|
470
500
|
* @returns Parsed JSON response
|
|
471
501
|
*/
|
|
472
|
-
fetchJSON<T = unknown>(endpoint: string, options?: ConnectorFetchOptions, userId?: string): Promise<T>;
|
|
502
|
+
fetchJSON<T = unknown>(endpoint: string, options?: ConnectorFetchOptions, userId?: string, accountId?: string): Promise<T>;
|
|
473
503
|
private sleep;
|
|
474
504
|
private logRequest;
|
|
475
505
|
private logResponse;
|
|
@@ -204,6 +204,13 @@ interface ITokenStorage {
|
|
|
204
204
|
* @returns True if token exists
|
|
205
205
|
*/
|
|
206
206
|
hasToken(key: string): Promise<boolean>;
|
|
207
|
+
/**
|
|
208
|
+
* List all storage keys (for account enumeration).
|
|
209
|
+
* Optional — implementations that support it enable multi-account listing.
|
|
210
|
+
*
|
|
211
|
+
* @returns Array of all stored token keys
|
|
212
|
+
*/
|
|
213
|
+
listKeys?(): Promise<string[]>;
|
|
207
214
|
}
|
|
208
215
|
|
|
209
216
|
/**
|
|
@@ -406,22 +413,43 @@ declare class Connector {
|
|
|
406
413
|
/**
|
|
407
414
|
* Get the current access token (for OAuth, JWT, or API key)
|
|
408
415
|
* Handles automatic refresh if needed
|
|
416
|
+
*
|
|
417
|
+
* @param userId - Optional user identifier for multi-user support
|
|
418
|
+
* @param accountId - Optional account alias for multi-account support (e.g., 'work', 'personal')
|
|
409
419
|
*/
|
|
410
|
-
getToken(userId?: string): Promise<string>;
|
|
420
|
+
getToken(userId?: string, accountId?: string): Promise<string>;
|
|
411
421
|
/**
|
|
412
422
|
* Start OAuth authorization flow
|
|
413
423
|
* Returns the URL to redirect the user to
|
|
424
|
+
*
|
|
425
|
+
* @param userId - Optional user identifier for multi-user support
|
|
426
|
+
* @param accountId - Optional account alias for multi-account support (e.g., 'work', 'personal')
|
|
414
427
|
*/
|
|
415
|
-
startAuth(userId?: string): Promise<string>;
|
|
428
|
+
startAuth(userId?: string, accountId?: string): Promise<string>;
|
|
416
429
|
/**
|
|
417
430
|
* Handle OAuth callback
|
|
418
431
|
* Call this after user is redirected back from OAuth provider
|
|
432
|
+
*
|
|
433
|
+
* @param callbackUrl - Full callback URL with code and state parameters
|
|
434
|
+
* @param userId - Optional user identifier (can be extracted from state if embedded)
|
|
435
|
+
* @param accountId - Optional account alias (can be extracted from state if embedded)
|
|
419
436
|
*/
|
|
420
|
-
handleCallback(callbackUrl: string, userId?: string): Promise<void>;
|
|
437
|
+
handleCallback(callbackUrl: string, userId?: string, accountId?: string): Promise<void>;
|
|
421
438
|
/**
|
|
422
439
|
* Check if the connector has a valid token
|
|
440
|
+
*
|
|
441
|
+
* @param userId - Optional user identifier for multi-user support
|
|
442
|
+
* @param accountId - Optional account alias for multi-account support
|
|
443
|
+
*/
|
|
444
|
+
hasValidToken(userId?: string, accountId?: string): Promise<boolean>;
|
|
445
|
+
/**
|
|
446
|
+
* List account aliases for a user on this connector.
|
|
447
|
+
* Only applicable for OAuth connectors with multi-account support.
|
|
448
|
+
*
|
|
449
|
+
* @param userId - Optional user identifier
|
|
450
|
+
* @returns Array of account aliases (e.g., ['work', 'personal'])
|
|
423
451
|
*/
|
|
424
|
-
|
|
452
|
+
listAccounts(userId?: string): Promise<string[]>;
|
|
425
453
|
/**
|
|
426
454
|
* Get vendor-specific options from config
|
|
427
455
|
*/
|
|
@@ -457,9 +485,10 @@ declare class Connector {
|
|
|
457
485
|
* @param endpoint - API endpoint (relative to baseURL) or full URL
|
|
458
486
|
* @param options - Fetch options with connector-specific settings
|
|
459
487
|
* @param userId - Optional user ID for multi-user OAuth
|
|
488
|
+
* @param accountId - Optional account alias for multi-account OAuth
|
|
460
489
|
* @returns Fetch Response
|
|
461
490
|
*/
|
|
462
|
-
fetch(endpoint: string, options?: ConnectorFetchOptions, userId?: string): Promise<Response>;
|
|
491
|
+
fetch(endpoint: string, options?: ConnectorFetchOptions, userId?: string, accountId?: string): Promise<Response>;
|
|
463
492
|
/**
|
|
464
493
|
* Make an authenticated fetch request and parse JSON response
|
|
465
494
|
* Throws on non-OK responses
|
|
@@ -467,9 +496,10 @@ declare class Connector {
|
|
|
467
496
|
* @param endpoint - API endpoint (relative to baseURL) or full URL
|
|
468
497
|
* @param options - Fetch options with connector-specific settings
|
|
469
498
|
* @param userId - Optional user ID for multi-user OAuth
|
|
499
|
+
* @param accountId - Optional account alias for multi-account OAuth
|
|
470
500
|
* @returns Parsed JSON response
|
|
471
501
|
*/
|
|
472
|
-
fetchJSON<T = unknown>(endpoint: string, options?: ConnectorFetchOptions, userId?: string): Promise<T>;
|
|
502
|
+
fetchJSON<T = unknown>(endpoint: string, options?: ConnectorFetchOptions, userId?: string, accountId?: string): Promise<T>;
|
|
473
503
|
private sleep;
|
|
474
504
|
private logRequest;
|
|
475
505
|
private logResponse;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export {
|
|
2
|
-
import '../../IProvider-
|
|
1
|
+
export { a3 as AfterToolContext, a4 as AgentEventName, w as AgentEvents, a5 as AgenticLoopEventName, a6 as AgenticLoopEvents, a7 as ApprovalResult, a8 as ApproveToolContext, z as AuditEntry, a9 as BeforeToolContext, be as ExecutionCompleteEvent, al as ExecutionConfig, E as ExecutionContext, y as ExecutionMetrics, bf as ExecutionStartEvent, v as HistoryMode, am as Hook, H as HookConfig, an as HookManager, D as HookName, bg as LLMRequestEvent, bh as LLMResponseEvent, aw as ModifyingHook, bi as ToolCompleteEvent, aU as ToolModification, bj as ToolStartEvent } from '../../index-DmYrHH7d.cjs';
|
|
2
|
+
import '../../IProvider-B8sqUzJG.cjs';
|
|
3
3
|
import '../../Vendor-DYh_bzwo.cjs';
|
|
4
4
|
import 'eventemitter3';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export {
|
|
2
|
-
import '../../IProvider-
|
|
1
|
+
export { a3 as AfterToolContext, a4 as AgentEventName, w as AgentEvents, a5 as AgenticLoopEventName, a6 as AgenticLoopEvents, a7 as ApprovalResult, a8 as ApproveToolContext, z as AuditEntry, a9 as BeforeToolContext, be as ExecutionCompleteEvent, al as ExecutionConfig, E as ExecutionContext, y as ExecutionMetrics, bf as ExecutionStartEvent, v as HistoryMode, am as Hook, H as HookConfig, an as HookManager, D as HookName, bg as LLMRequestEvent, bh as LLMResponseEvent, aw as ModifyingHook, bi as ToolCompleteEvent, aU as ToolModification, bj as ToolStartEvent } from '../../index-Dyl6pHfq.js';
|
|
2
|
+
import '../../IProvider-CxDUGl6n.js';
|
|
3
3
|
import '../../Vendor-DYh_bzwo.js';
|
|
4
4
|
import 'eventemitter3';
|