lumnisai 0.1.4 → 0.1.6
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/dist/index.cjs +160 -15
- package/dist/index.d.cts +266 -11
- package/dist/index.d.mts +266 -11
- package/dist/index.d.ts +266 -11
- package/dist/index.mjs +157 -16
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -206,19 +206,27 @@ class IntegrationsResource {
|
|
|
206
206
|
/**
|
|
207
207
|
* Check the status of a specific connection
|
|
208
208
|
*/
|
|
209
|
-
async getConnectionStatus(
|
|
209
|
+
async getConnectionStatus(params) {
|
|
210
|
+
const { userId, appName, provider } = params;
|
|
211
|
+
const queryParams = new URLSearchParams();
|
|
212
|
+
if (provider)
|
|
213
|
+
queryParams.append("provider", provider);
|
|
214
|
+
const query = queryParams.toString() ? `?${queryParams.toString()}` : "";
|
|
210
215
|
return this.http.get(
|
|
211
|
-
`/integrations/connections/${encodeURIComponent(userId)}/${appName.toUpperCase()}`
|
|
216
|
+
`/integrations/connections/${encodeURIComponent(userId)}/${appName.toUpperCase()}${query}`
|
|
212
217
|
);
|
|
213
218
|
}
|
|
214
219
|
/**
|
|
215
220
|
* Get all connections for a user
|
|
216
221
|
*/
|
|
217
|
-
async getUserConnections(
|
|
218
|
-
const
|
|
222
|
+
async getUserConnections(params) {
|
|
223
|
+
const { userId, provider, appFilter } = params;
|
|
224
|
+
const queryParams = new URLSearchParams();
|
|
225
|
+
if (provider)
|
|
226
|
+
queryParams.append("provider", provider);
|
|
219
227
|
if (appFilter)
|
|
220
|
-
|
|
221
|
-
const query =
|
|
228
|
+
queryParams.append("app_filter", appFilter);
|
|
229
|
+
const query = queryParams.toString() ? `?${queryParams.toString()}` : "";
|
|
222
230
|
return this.http.get(
|
|
223
231
|
`/integrations/connections/${encodeURIComponent(userId)}${query}`
|
|
224
232
|
);
|
|
@@ -256,23 +264,41 @@ class IntegrationsResource {
|
|
|
256
264
|
const urlParams = new URLSearchParams();
|
|
257
265
|
if (params?.includeAvailable)
|
|
258
266
|
urlParams.append("include_available", "true");
|
|
267
|
+
if (params?.provider)
|
|
268
|
+
urlParams.append("provider", params.provider);
|
|
259
269
|
const query = urlParams.toString() ? `?${urlParams.toString()}` : "";
|
|
260
270
|
return this.http.get(`/integrations/apps${query}`);
|
|
261
271
|
}
|
|
272
|
+
/**
|
|
273
|
+
* List available integration providers
|
|
274
|
+
*/
|
|
275
|
+
async listProviders() {
|
|
276
|
+
return this.http.get("/integrations/providers");
|
|
277
|
+
}
|
|
262
278
|
/**
|
|
263
279
|
* Check if a specific app is enabled
|
|
264
280
|
*/
|
|
265
|
-
async checkAppEnabled(
|
|
281
|
+
async checkAppEnabled(params) {
|
|
282
|
+
const { appName, provider } = params;
|
|
283
|
+
const queryParams = new URLSearchParams();
|
|
284
|
+
if (provider)
|
|
285
|
+
queryParams.append("provider", provider);
|
|
286
|
+
const query = queryParams.toString() ? `?${queryParams.toString()}` : "";
|
|
266
287
|
return this.http.get(
|
|
267
|
-
`/integrations/apps/${appName.toUpperCase()}/enabled`
|
|
288
|
+
`/integrations/apps/${appName.toUpperCase()}/enabled${query}`
|
|
268
289
|
);
|
|
269
290
|
}
|
|
270
291
|
/**
|
|
271
292
|
* Enable or disable an app for the tenant
|
|
272
293
|
*/
|
|
273
|
-
async updateAppStatus(
|
|
294
|
+
async updateAppStatus(params) {
|
|
295
|
+
const { appName, enabled, provider } = params;
|
|
296
|
+
const queryParams = new URLSearchParams();
|
|
297
|
+
queryParams.append("enabled", String(enabled));
|
|
298
|
+
if (provider)
|
|
299
|
+
queryParams.append("provider", provider);
|
|
274
300
|
return this.http.put(
|
|
275
|
-
`/integrations/apps/${appName.toUpperCase()}
|
|
301
|
+
`/integrations/apps/${appName.toUpperCase()}?${queryParams.toString()}`
|
|
276
302
|
);
|
|
277
303
|
}
|
|
278
304
|
/**
|
|
@@ -285,14 +311,14 @@ class IntegrationsResource {
|
|
|
285
311
|
);
|
|
286
312
|
}
|
|
287
313
|
// Aliases for backward compatibility with client methods
|
|
288
|
-
async isAppEnabled(appName) {
|
|
289
|
-
return this.checkAppEnabled(appName);
|
|
314
|
+
async isAppEnabled(appName, provider) {
|
|
315
|
+
return this.checkAppEnabled({ appName, provider });
|
|
290
316
|
}
|
|
291
317
|
async setAppEnabled(appName, data) {
|
|
292
|
-
return this.updateAppStatus(appName, data.enabled);
|
|
318
|
+
return this.updateAppStatus({ appName, enabled: data.enabled, provider: data.provider });
|
|
293
319
|
}
|
|
294
320
|
async listConnections(userId, params) {
|
|
295
|
-
return this.getUserConnections(userId, params?.appFilter);
|
|
321
|
+
return this.getUserConnections({ userId, appFilter: params?.appFilter, provider: params?.provider });
|
|
296
322
|
}
|
|
297
323
|
}
|
|
298
324
|
|
|
@@ -465,6 +491,110 @@ class LocalFileNotSupportedError extends ValidationError {
|
|
|
465
491
|
this.name = "LocalFileNotSupportedError";
|
|
466
492
|
}
|
|
467
493
|
}
|
|
494
|
+
class NoDataSourcesError extends ValidationError {
|
|
495
|
+
constructor(message) {
|
|
496
|
+
super(
|
|
497
|
+
message || "No people data sources configured. Please configure API keys.",
|
|
498
|
+
{ code: "NO_DATA_SOURCES" }
|
|
499
|
+
);
|
|
500
|
+
this.name = "NoDataSourcesError";
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
class SourcesNotAvailableError extends ValidationError {
|
|
504
|
+
availableSources;
|
|
505
|
+
constructor(message, availableSources) {
|
|
506
|
+
super(message, { code: "SOURCES_NOT_AVAILABLE" });
|
|
507
|
+
this.name = "SourcesNotAvailableError";
|
|
508
|
+
this.availableSources = availableSources;
|
|
509
|
+
}
|
|
510
|
+
}
|
|
511
|
+
|
|
512
|
+
var PeopleDataSource = /* @__PURE__ */ ((PeopleDataSource2) => {
|
|
513
|
+
PeopleDataSource2["PDL"] = "PDL";
|
|
514
|
+
PeopleDataSource2["CORESIGNAL"] = "CORESIGNAL";
|
|
515
|
+
PeopleDataSource2["CRUST_DATA"] = "CRUST_DATA";
|
|
516
|
+
return PeopleDataSource2;
|
|
517
|
+
})(PeopleDataSource || {});
|
|
518
|
+
|
|
519
|
+
class PeopleResource {
|
|
520
|
+
constructor(http) {
|
|
521
|
+
this.http = http;
|
|
522
|
+
}
|
|
523
|
+
/**
|
|
524
|
+
* Perform a quick people search across multiple data sources.
|
|
525
|
+
*
|
|
526
|
+
* This endpoint bypasses the full agent framework for faster response times.
|
|
527
|
+
* It searches across PDL, CoreSignal, and CrustData in parallel and returns
|
|
528
|
+
* deduplicated results.
|
|
529
|
+
*
|
|
530
|
+
* @param params - Search parameters
|
|
531
|
+
* @param params.query - Natural language search query
|
|
532
|
+
* @param params.limit - Maximum number of results (1-100, default: 20)
|
|
533
|
+
* @param params.dataSources - Specific data sources to use (optional)
|
|
534
|
+
* @returns Promise resolving to search results
|
|
535
|
+
* @throws {NoDataSourcesError} When no data sources are configured
|
|
536
|
+
* @throws {SourcesNotAvailableError} When requested sources aren't available
|
|
537
|
+
* @throws {ValidationError} For other validation errors
|
|
538
|
+
*
|
|
539
|
+
* @example
|
|
540
|
+
* ```typescript
|
|
541
|
+
* const response = await client.people.quickSearch({
|
|
542
|
+
* query: "Senior engineers in SF with Python",
|
|
543
|
+
* limit: 50,
|
|
544
|
+
* dataSources: [PeopleDataSource.CORESIGNAL, PeopleDataSource.PDL]
|
|
545
|
+
* });
|
|
546
|
+
* ```
|
|
547
|
+
*/
|
|
548
|
+
async quickSearch(params) {
|
|
549
|
+
const { query, limit = 20, dataSources } = params;
|
|
550
|
+
if (limit < 1 || limit > 100) {
|
|
551
|
+
throw new ValidationError("Limit must be between 1 and 100", {
|
|
552
|
+
code: "INVALID_LIMIT"
|
|
553
|
+
});
|
|
554
|
+
}
|
|
555
|
+
if (dataSources) {
|
|
556
|
+
const validSources = Object.values(PeopleDataSource);
|
|
557
|
+
for (const source of dataSources) {
|
|
558
|
+
if (!validSources.includes(source)) {
|
|
559
|
+
throw new ValidationError(
|
|
560
|
+
`Invalid data source: ${source}. Valid sources: ${validSources.join(", ")}`,
|
|
561
|
+
{ code: "INVALID_DATA_SOURCE" }
|
|
562
|
+
);
|
|
563
|
+
}
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
try {
|
|
567
|
+
const response = await this.http.post(
|
|
568
|
+
"/people/quick-search",
|
|
569
|
+
{
|
|
570
|
+
query,
|
|
571
|
+
limit,
|
|
572
|
+
// HTTP client will convert camelCase to snake_case automatically
|
|
573
|
+
dataSources: dataSources?.map((ds) => ds) || void 0
|
|
574
|
+
}
|
|
575
|
+
);
|
|
576
|
+
return response;
|
|
577
|
+
} catch (error) {
|
|
578
|
+
if (error instanceof ValidationError) {
|
|
579
|
+
const details = error.details || {};
|
|
580
|
+
const errorDetail = details.detail?.error || details.error;
|
|
581
|
+
if (errorDetail?.code === "NO_DATA_SOURCES") {
|
|
582
|
+
throw new NoDataSourcesError(errorDetail.message || void 0);
|
|
583
|
+
}
|
|
584
|
+
if (errorDetail?.code === "SOURCES_NOT_AVAILABLE") {
|
|
585
|
+
const message = errorDetail.message || "";
|
|
586
|
+
const availableMatch = message.match(/Available: \[(.+)\]/);
|
|
587
|
+
const availableSources = availableMatch ? availableMatch[1].replace(/'/g, "").split(", ").map((s) => s.trim()).filter((s) => s.length > 0) : [];
|
|
588
|
+
throw new SourcesNotAvailableError(
|
|
589
|
+
errorDetail.message || "Requested data sources not available",
|
|
590
|
+
availableSources
|
|
591
|
+
);
|
|
592
|
+
}
|
|
593
|
+
}
|
|
594
|
+
throw error;
|
|
595
|
+
}
|
|
596
|
+
}
|
|
597
|
+
}
|
|
468
598
|
|
|
469
599
|
class ResponsesResource {
|
|
470
600
|
constructor(http) {
|
|
@@ -990,6 +1120,7 @@ class LumnisClient {
|
|
|
990
1120
|
modelPreferences;
|
|
991
1121
|
mcpServers;
|
|
992
1122
|
skills;
|
|
1123
|
+
people;
|
|
993
1124
|
_scopedUserId;
|
|
994
1125
|
_defaultScope;
|
|
995
1126
|
constructor(options = {}) {
|
|
@@ -1020,6 +1151,7 @@ class LumnisClient {
|
|
|
1020
1151
|
this.modelPreferences = new ModelPreferencesResource(this.http);
|
|
1021
1152
|
this.mcpServers = new MCPServersResource(this.http);
|
|
1022
1153
|
this.skills = new SkillsResource(this.http);
|
|
1154
|
+
this.people = new PeopleResource(this.http);
|
|
1023
1155
|
}
|
|
1024
1156
|
forUser(userId) {
|
|
1025
1157
|
return new LumnisClient({
|
|
@@ -1197,7 +1329,7 @@ class LumnisClient {
|
|
|
1197
1329
|
return this.integrations.initiateConnection(params);
|
|
1198
1330
|
}
|
|
1199
1331
|
async getConnectionStatus(userId, appName) {
|
|
1200
|
-
return this.integrations.getConnectionStatus(userId, appName);
|
|
1332
|
+
return this.integrations.getConnectionStatus({ userId, appName });
|
|
1201
1333
|
}
|
|
1202
1334
|
async listConnections(userId, params) {
|
|
1203
1335
|
return this.integrations.listConnections(userId, params);
|
|
@@ -1290,6 +1422,15 @@ function createSimpleProgressCallback() {
|
|
|
1290
1422
|
};
|
|
1291
1423
|
}
|
|
1292
1424
|
|
|
1425
|
+
var ProviderType = /* @__PURE__ */ ((ProviderType2) => {
|
|
1426
|
+
ProviderType2["COMPOSIO"] = "composio";
|
|
1427
|
+
ProviderType2["UNIPILE"] = "unipile";
|
|
1428
|
+
ProviderType2["NANGO"] = "nango";
|
|
1429
|
+
ProviderType2["ARCADE"] = "arcade";
|
|
1430
|
+
ProviderType2["MERGE"] = "merge";
|
|
1431
|
+
return ProviderType2;
|
|
1432
|
+
})(ProviderType || {});
|
|
1433
|
+
|
|
1293
1434
|
function displayProgress(update, indent = " ") {
|
|
1294
1435
|
if (update.state === "tool_update") {
|
|
1295
1436
|
if (update.toolCalls && update.toolCalls.length > 0) {
|
|
@@ -1390,9 +1531,13 @@ exports.InternalServerError = InternalServerError;
|
|
|
1390
1531
|
exports.LocalFileNotSupportedError = LocalFileNotSupportedError;
|
|
1391
1532
|
exports.LumnisClient = LumnisClient;
|
|
1392
1533
|
exports.LumnisError = LumnisError;
|
|
1534
|
+
exports.NoDataSourcesError = NoDataSourcesError;
|
|
1393
1535
|
exports.NotFoundError = NotFoundError;
|
|
1536
|
+
exports.PeopleDataSource = PeopleDataSource;
|
|
1394
1537
|
exports.ProgressTracker = ProgressTracker;
|
|
1538
|
+
exports.ProviderType = ProviderType;
|
|
1395
1539
|
exports.RateLimitError = RateLimitError;
|
|
1540
|
+
exports.SourcesNotAvailableError = SourcesNotAvailableError;
|
|
1396
1541
|
exports.ValidationError = ValidationError;
|
|
1397
1542
|
exports.default = LumnisClient;
|
|
1398
1543
|
exports.displayProgress = displayProgress;
|
package/dist/index.d.cts
CHANGED
|
@@ -50,7 +50,7 @@ interface TenantDetailsResponse {
|
|
|
50
50
|
updatedAt: string;
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
type ApiProvider = 'OPENAI_API_KEY' | 'ANTHROPIC_API_KEY' | 'EXA_API_KEY' | 'COHERE_API_KEY' | 'GOOGLE_API_KEY' | 'SERPAPI_API_KEY' | 'GROQ_API_KEY' | 'NVIDIA_API_KEY' | 'FIREWORKS_API_KEY' | 'MISTRAL_API_KEY' | 'TOGETHER_API_KEY' | 'XAI_API_KEY' | 'PPLX_API_KEY' | 'HUGGINGFACE_API_KEY' | 'DEEPSEEK_API_KEY' | 'IBM_API_KEY' | 'E2B_API_KEY';
|
|
53
|
+
type ApiProvider = 'OPENAI_API_KEY' | 'ANTHROPIC_API_KEY' | 'EXA_API_KEY' | 'COHERE_API_KEY' | 'CORESIGNAL_API_KEY' | 'GOOGLE_API_KEY' | 'SERPAPI_API_KEY' | 'GROQ_API_KEY' | 'NVIDIA_API_KEY' | 'FIREWORKS_API_KEY' | 'MISTRAL_API_KEY' | 'TOGETHER_API_KEY' | 'XAI_API_KEY' | 'PPLX_API_KEY' | 'HUGGINGFACE_API_KEY' | 'DEEPSEEK_API_KEY' | 'IBM_API_KEY' | 'E2B_API_KEY';
|
|
54
54
|
interface StoreApiKeyRequest {
|
|
55
55
|
provider: ApiProvider;
|
|
56
56
|
apiKey: string;
|
|
@@ -73,11 +73,24 @@ interface DeleteApiKeyResponse {
|
|
|
73
73
|
message: string;
|
|
74
74
|
}
|
|
75
75
|
|
|
76
|
+
/**
|
|
77
|
+
* Integration provider types
|
|
78
|
+
*/
|
|
79
|
+
declare enum ProviderType {
|
|
80
|
+
COMPOSIO = "composio",
|
|
81
|
+
UNIPILE = "unipile",
|
|
82
|
+
NANGO = "nango",// Future
|
|
83
|
+
ARCADE = "arcade",// Future
|
|
84
|
+
MERGE = "merge"
|
|
85
|
+
}
|
|
76
86
|
type ConnectionStatus = 'pending' | 'active' | 'failed' | 'expired' | 'not_connected';
|
|
77
87
|
interface InitiateConnectionRequest {
|
|
78
88
|
userId: string;
|
|
79
89
|
appName: string;
|
|
90
|
+
provider?: ProviderType;
|
|
80
91
|
redirectUrl?: string;
|
|
92
|
+
successRedirectUrl?: string;
|
|
93
|
+
failureRedirectUrl?: string;
|
|
81
94
|
authMode?: string;
|
|
82
95
|
connectionParams?: Record<string, any>;
|
|
83
96
|
}
|
|
@@ -93,10 +106,14 @@ interface ConnectionStatusResponse {
|
|
|
93
106
|
errorMessage?: string | null;
|
|
94
107
|
}
|
|
95
108
|
interface ConnectionInfo {
|
|
109
|
+
connectionId: string | null;
|
|
110
|
+
tenantId: string;
|
|
111
|
+
userId: string;
|
|
112
|
+
provider: ProviderType;
|
|
96
113
|
appName: string;
|
|
97
114
|
status: ConnectionStatus;
|
|
98
|
-
connectedAt
|
|
99
|
-
|
|
115
|
+
connectedAt: string | null;
|
|
116
|
+
metadata: Record<string, any>;
|
|
100
117
|
}
|
|
101
118
|
interface UserConnectionsResponse {
|
|
102
119
|
userId: string;
|
|
@@ -104,6 +121,7 @@ interface UserConnectionsResponse {
|
|
|
104
121
|
}
|
|
105
122
|
interface GetToolsRequest {
|
|
106
123
|
userId: string;
|
|
124
|
+
provider?: ProviderType;
|
|
107
125
|
appFilter?: string[];
|
|
108
126
|
}
|
|
109
127
|
interface ToolInfo {
|
|
@@ -120,6 +138,7 @@ interface GetToolsResponse {
|
|
|
120
138
|
interface DisconnectRequest {
|
|
121
139
|
userId: string;
|
|
122
140
|
appName: string;
|
|
141
|
+
provider?: ProviderType;
|
|
123
142
|
}
|
|
124
143
|
interface DisconnectResponse {
|
|
125
144
|
success: boolean;
|
|
@@ -137,12 +156,15 @@ interface ConnectionCallbackResponse {
|
|
|
137
156
|
message: string;
|
|
138
157
|
}
|
|
139
158
|
interface AppsListResponse {
|
|
140
|
-
|
|
141
|
-
|
|
159
|
+
providers: Record<string, string[]>;
|
|
160
|
+
totalProviders: number;
|
|
161
|
+
enabledApps?: string[];
|
|
162
|
+
totalEnabled?: number;
|
|
142
163
|
availableApps?: string[];
|
|
143
164
|
totalAvailable?: number;
|
|
144
165
|
}
|
|
145
166
|
interface AppEnabledResponse {
|
|
167
|
+
provider: ProviderType;
|
|
146
168
|
appName: string;
|
|
147
169
|
enabled: boolean;
|
|
148
170
|
message: string;
|
|
@@ -153,6 +175,29 @@ interface UpdateAppStatusResponse {
|
|
|
153
175
|
message: string;
|
|
154
176
|
updatedAt: string;
|
|
155
177
|
}
|
|
178
|
+
interface ListProvidersResponse {
|
|
179
|
+
providers: string[];
|
|
180
|
+
total: number;
|
|
181
|
+
}
|
|
182
|
+
interface GetConnectionStatusParams {
|
|
183
|
+
userId: string;
|
|
184
|
+
appName: string;
|
|
185
|
+
provider?: ProviderType;
|
|
186
|
+
}
|
|
187
|
+
interface GetUserConnectionsParams {
|
|
188
|
+
userId: string;
|
|
189
|
+
provider?: ProviderType;
|
|
190
|
+
appFilter?: string;
|
|
191
|
+
}
|
|
192
|
+
interface CheckAppEnabledParams {
|
|
193
|
+
appName: string;
|
|
194
|
+
provider?: ProviderType;
|
|
195
|
+
}
|
|
196
|
+
interface UpdateAppStatusParams {
|
|
197
|
+
appName: string;
|
|
198
|
+
enabled: boolean;
|
|
199
|
+
provider?: ProviderType;
|
|
200
|
+
}
|
|
156
201
|
|
|
157
202
|
type MCPTransport = 'stdio' | 'streamable_http' | 'sse';
|
|
158
203
|
type MCPScope = 'tenant' | 'user';
|
|
@@ -824,11 +869,11 @@ declare class IntegrationsResource {
|
|
|
824
869
|
/**
|
|
825
870
|
* Check the status of a specific connection
|
|
826
871
|
*/
|
|
827
|
-
getConnectionStatus(
|
|
872
|
+
getConnectionStatus(params: GetConnectionStatusParams): Promise<ConnectionStatusResponse>;
|
|
828
873
|
/**
|
|
829
874
|
* Get all connections for a user
|
|
830
875
|
*/
|
|
831
|
-
getUserConnections(
|
|
876
|
+
getUserConnections(params: GetUserConnectionsParams): Promise<UserConnectionsResponse>;
|
|
832
877
|
/**
|
|
833
878
|
* Get available tools for a user based on connections
|
|
834
879
|
*/
|
|
@@ -846,25 +891,32 @@ declare class IntegrationsResource {
|
|
|
846
891
|
*/
|
|
847
892
|
listApps(params?: {
|
|
848
893
|
includeAvailable?: boolean;
|
|
894
|
+
provider?: string;
|
|
849
895
|
}): Promise<AppsListResponse>;
|
|
896
|
+
/**
|
|
897
|
+
* List available integration providers
|
|
898
|
+
*/
|
|
899
|
+
listProviders(): Promise<ListProvidersResponse>;
|
|
850
900
|
/**
|
|
851
901
|
* Check if a specific app is enabled
|
|
852
902
|
*/
|
|
853
|
-
checkAppEnabled(
|
|
903
|
+
checkAppEnabled(params: CheckAppEnabledParams): Promise<AppEnabledResponse>;
|
|
854
904
|
/**
|
|
855
905
|
* Enable or disable an app for the tenant
|
|
856
906
|
*/
|
|
857
|
-
updateAppStatus(
|
|
907
|
+
updateAppStatus(params: UpdateAppStatusParams): Promise<UpdateAppStatusResponse>;
|
|
858
908
|
/**
|
|
859
909
|
* Get required fields for non-OAuth authentication (future)
|
|
860
910
|
*/
|
|
861
911
|
getNonOAuthRequiredFields(appName: string, authScheme: string): Promise<any>;
|
|
862
|
-
isAppEnabled(appName: string): Promise<AppEnabledResponse>;
|
|
912
|
+
isAppEnabled(appName: string, provider?: string): Promise<AppEnabledResponse>;
|
|
863
913
|
setAppEnabled(appName: string, data: {
|
|
864
914
|
enabled: boolean;
|
|
915
|
+
provider?: string;
|
|
865
916
|
}): Promise<UpdateAppStatusResponse>;
|
|
866
917
|
listConnections(userId: string, params?: {
|
|
867
918
|
appFilter?: string;
|
|
919
|
+
provider?: string;
|
|
868
920
|
}): Promise<UserConnectionsResponse>;
|
|
869
921
|
}
|
|
870
922
|
|
|
@@ -952,6 +1004,201 @@ declare class ModelPreferencesResource {
|
|
|
952
1004
|
}): Promise<TenantModelPreferencesResponse>;
|
|
953
1005
|
}
|
|
954
1006
|
|
|
1007
|
+
/**
|
|
1008
|
+
* Available people search data sources
|
|
1009
|
+
*/
|
|
1010
|
+
declare enum PeopleDataSource {
|
|
1011
|
+
PDL = "PDL",
|
|
1012
|
+
CORESIGNAL = "CORESIGNAL",
|
|
1013
|
+
CRUST_DATA = "CRUST_DATA"
|
|
1014
|
+
}
|
|
1015
|
+
/**
|
|
1016
|
+
* Salary range projection data.
|
|
1017
|
+
* Note: Values represent total compensation (base salary + bonuses + equity),
|
|
1018
|
+
* not just base salary. Only available for CoreSignal results.
|
|
1019
|
+
*/
|
|
1020
|
+
interface SalaryRange {
|
|
1021
|
+
/** Minimum total compensation (includes base + bonuses + equity, etc.) */
|
|
1022
|
+
min?: number;
|
|
1023
|
+
/** Median total compensation projection */
|
|
1024
|
+
median?: number;
|
|
1025
|
+
/** Maximum total compensation (includes base + bonuses + equity, etc.) */
|
|
1026
|
+
max?: number;
|
|
1027
|
+
/** Currency code (e.g., "USD", "EUR") */
|
|
1028
|
+
currency?: string;
|
|
1029
|
+
/** Period (e.g., "yearly", "monthly") */
|
|
1030
|
+
period?: string;
|
|
1031
|
+
}
|
|
1032
|
+
/**
|
|
1033
|
+
* Simplified person result model returned in search results.
|
|
1034
|
+
* Contains normalized data from multiple sources (PDL, CoreSignal, CrustData).
|
|
1035
|
+
*/
|
|
1036
|
+
interface PersonResult {
|
|
1037
|
+
/** Unique identifier for the person */
|
|
1038
|
+
id: string;
|
|
1039
|
+
/** Full name */
|
|
1040
|
+
name: string;
|
|
1041
|
+
/** Current job title */
|
|
1042
|
+
currentTitle?: string;
|
|
1043
|
+
/** Current company name */
|
|
1044
|
+
currentCompany?: string;
|
|
1045
|
+
/** Current department */
|
|
1046
|
+
currentDepartment?: string;
|
|
1047
|
+
/** Full location string */
|
|
1048
|
+
location?: string;
|
|
1049
|
+
/** City */
|
|
1050
|
+
city?: string;
|
|
1051
|
+
/** Country */
|
|
1052
|
+
country?: string;
|
|
1053
|
+
/** Primary email address */
|
|
1054
|
+
email?: string;
|
|
1055
|
+
/** List of email addresses (up to 3) */
|
|
1056
|
+
emails: string[];
|
|
1057
|
+
/** LinkedIn profile URL */
|
|
1058
|
+
linkedinUrl?: string;
|
|
1059
|
+
/** Years of professional experience */
|
|
1060
|
+
yearsExperience?: number;
|
|
1061
|
+
/** List of skills (up to 15) */
|
|
1062
|
+
skills: string[];
|
|
1063
|
+
/** Seniority level (e.g., "Senior", "Director", "VP") */
|
|
1064
|
+
seniorityLevel?: string;
|
|
1065
|
+
/** Whether person is identified as a decision maker */
|
|
1066
|
+
isDecisionMaker: boolean;
|
|
1067
|
+
/** Number of LinkedIn connections */
|
|
1068
|
+
connectionsCount?: number;
|
|
1069
|
+
/** Whether person recently changed jobs */
|
|
1070
|
+
recentlyChangedJobs: boolean;
|
|
1071
|
+
/** Data source identifier ("PDL", "CORESIGNAL", or "CRUST_DATA") */
|
|
1072
|
+
source: string;
|
|
1073
|
+
/** Confidence score (0.0-1.0) if available */
|
|
1074
|
+
confidenceScore?: number;
|
|
1075
|
+
/** Salary range projection (CoreSignal only) */
|
|
1076
|
+
salaryRange?: SalaryRange;
|
|
1077
|
+
/** Number of certifications (CoreSignal only) */
|
|
1078
|
+
certificationsCount?: number;
|
|
1079
|
+
/** List of languages spoken (CoreSignal only) */
|
|
1080
|
+
languages?: string[];
|
|
1081
|
+
/** List of education degrees (CoreSignal only, up to 3) */
|
|
1082
|
+
educationDegrees?: string[];
|
|
1083
|
+
}
|
|
1084
|
+
/**
|
|
1085
|
+
* Request model for people search queries.
|
|
1086
|
+
*/
|
|
1087
|
+
interface PeopleSearchRequest {
|
|
1088
|
+
/**
|
|
1089
|
+
* Natural language search query describing the people you want to find.
|
|
1090
|
+
* Examples:
|
|
1091
|
+
* - "Senior software engineers in San Francisco with Python skills"
|
|
1092
|
+
* - "Product managers at Google or Meta with MBA"
|
|
1093
|
+
* - "Data scientists in NYC with 5+ years experience"
|
|
1094
|
+
*/
|
|
1095
|
+
query: string;
|
|
1096
|
+
/**
|
|
1097
|
+
* Maximum number of results to return.
|
|
1098
|
+
* Range: 1-100
|
|
1099
|
+
* Default: 20
|
|
1100
|
+
*/
|
|
1101
|
+
limit?: number;
|
|
1102
|
+
/**
|
|
1103
|
+
* Specific data sources to use for the search.
|
|
1104
|
+
* If not provided, all available sources will be used.
|
|
1105
|
+
* Valid values: "PDL", "CORESIGNAL", "CRUST_DATA"
|
|
1106
|
+
*
|
|
1107
|
+
* Note: The API accepts string values. SDKs should use enums for type safety
|
|
1108
|
+
* but serialize them as strings when sending the request.
|
|
1109
|
+
*/
|
|
1110
|
+
dataSources?: PeopleDataSource[];
|
|
1111
|
+
}
|
|
1112
|
+
/**
|
|
1113
|
+
* Logic operator for filter values
|
|
1114
|
+
*/
|
|
1115
|
+
type FilterLogic = 'or' | 'and' | 'should';
|
|
1116
|
+
/**
|
|
1117
|
+
* A filter with values and logic operator.
|
|
1118
|
+
* Used in applied_filters response.
|
|
1119
|
+
*/
|
|
1120
|
+
interface FilterValue {
|
|
1121
|
+
/** List of values for this filter */
|
|
1122
|
+
values: string[];
|
|
1123
|
+
/**
|
|
1124
|
+
* Logic operator:
|
|
1125
|
+
* - "or": ANY value matches (for alternatives like "SF or NYC")
|
|
1126
|
+
* - "and": ALL values must match (for "must have Python AND Java")
|
|
1127
|
+
* - "should": Optional/preferred (for "preferably PhD")
|
|
1128
|
+
*/
|
|
1129
|
+
logic: FilterLogic;
|
|
1130
|
+
}
|
|
1131
|
+
/**
|
|
1132
|
+
* Structure of the applied_filters field in the response.
|
|
1133
|
+
* Contains extracted filters from the natural language query.
|
|
1134
|
+
*/
|
|
1135
|
+
interface AppliedFilters {
|
|
1136
|
+
/** Cities for the search */
|
|
1137
|
+
cities?: FilterValue;
|
|
1138
|
+
/** Countries for the search */
|
|
1139
|
+
countries?: FilterValue;
|
|
1140
|
+
/** Job titles/roles */
|
|
1141
|
+
jobTitles?: FilterValue;
|
|
1142
|
+
/** Company names */
|
|
1143
|
+
companies?: FilterValue;
|
|
1144
|
+
/** Technical skills */
|
|
1145
|
+
skills?: FilterValue;
|
|
1146
|
+
/** Minimum years of professional experience */
|
|
1147
|
+
minYearsExperience?: number;
|
|
1148
|
+
/** Seniority levels (entry/junior/mid/senior/lead/principal/staff/director/vp/executive) */
|
|
1149
|
+
seniorityLevels?: FilterValue;
|
|
1150
|
+
/** Education levels (bachelors/masters/phd/mba) */
|
|
1151
|
+
educationLevels?: FilterValue;
|
|
1152
|
+
/** Industries/sectors */
|
|
1153
|
+
industries?: FilterValue;
|
|
1154
|
+
}
|
|
1155
|
+
/**
|
|
1156
|
+
* Response model for people search endpoint.
|
|
1157
|
+
*/
|
|
1158
|
+
interface PeopleSearchResponse {
|
|
1159
|
+
/** List of matching candidates */
|
|
1160
|
+
candidates: PersonResult[];
|
|
1161
|
+
/** Total number of unique candidates found (may be more than returned) */
|
|
1162
|
+
totalFound: number;
|
|
1163
|
+
/** Filters extracted and applied from the query */
|
|
1164
|
+
appliedFilters: AppliedFilters;
|
|
1165
|
+
/** Execution time in milliseconds */
|
|
1166
|
+
executionTimeMs: number;
|
|
1167
|
+
/** List of data sources that were actually used */
|
|
1168
|
+
dataSourcesUsed: string[];
|
|
1169
|
+
}
|
|
1170
|
+
|
|
1171
|
+
declare class PeopleResource {
|
|
1172
|
+
private readonly http;
|
|
1173
|
+
constructor(http: Http);
|
|
1174
|
+
/**
|
|
1175
|
+
* Perform a quick people search across multiple data sources.
|
|
1176
|
+
*
|
|
1177
|
+
* This endpoint bypasses the full agent framework for faster response times.
|
|
1178
|
+
* It searches across PDL, CoreSignal, and CrustData in parallel and returns
|
|
1179
|
+
* deduplicated results.
|
|
1180
|
+
*
|
|
1181
|
+
* @param params - Search parameters
|
|
1182
|
+
* @param params.query - Natural language search query
|
|
1183
|
+
* @param params.limit - Maximum number of results (1-100, default: 20)
|
|
1184
|
+
* @param params.dataSources - Specific data sources to use (optional)
|
|
1185
|
+
* @returns Promise resolving to search results
|
|
1186
|
+
* @throws {NoDataSourcesError} When no data sources are configured
|
|
1187
|
+
* @throws {SourcesNotAvailableError} When requested sources aren't available
|
|
1188
|
+
* @throws {ValidationError} For other validation errors
|
|
1189
|
+
*
|
|
1190
|
+
* @example
|
|
1191
|
+
* ```typescript
|
|
1192
|
+
* const response = await client.people.quickSearch({
|
|
1193
|
+
* query: "Senior engineers in SF with Python",
|
|
1194
|
+
* limit: 50,
|
|
1195
|
+
* dataSources: [PeopleDataSource.CORESIGNAL, PeopleDataSource.PDL]
|
|
1196
|
+
* });
|
|
1197
|
+
* ```
|
|
1198
|
+
*/
|
|
1199
|
+
quickSearch(params: PeopleSearchRequest): Promise<PeopleSearchResponse>;
|
|
1200
|
+
}
|
|
1201
|
+
|
|
955
1202
|
declare class ResponsesResource {
|
|
956
1203
|
private readonly http;
|
|
957
1204
|
constructor(http: Http);
|
|
@@ -1201,6 +1448,7 @@ declare class LumnisClient {
|
|
|
1201
1448
|
readonly modelPreferences: ModelPreferencesResource;
|
|
1202
1449
|
readonly mcpServers: MCPServersResource;
|
|
1203
1450
|
readonly skills: SkillsResource;
|
|
1451
|
+
readonly people: PeopleResource;
|
|
1204
1452
|
private readonly _scopedUserId?;
|
|
1205
1453
|
private readonly _defaultScope;
|
|
1206
1454
|
constructor(options?: LumnisClientOptions);
|
|
@@ -1291,6 +1539,13 @@ declare class InternalServerError extends LumnisError {
|
|
|
1291
1539
|
declare class LocalFileNotSupportedError extends ValidationError {
|
|
1292
1540
|
constructor(filePath: string);
|
|
1293
1541
|
}
|
|
1542
|
+
declare class NoDataSourcesError extends ValidationError {
|
|
1543
|
+
constructor(message?: string);
|
|
1544
|
+
}
|
|
1545
|
+
declare class SourcesNotAvailableError extends ValidationError {
|
|
1546
|
+
availableSources: string[];
|
|
1547
|
+
constructor(message: string, availableSources: string[]);
|
|
1548
|
+
}
|
|
1294
1549
|
|
|
1295
1550
|
/**
|
|
1296
1551
|
* Utility functions for displaying progress updates
|
|
@@ -1343,4 +1598,4 @@ declare class ProgressTracker {
|
|
|
1343
1598
|
}
|
|
1344
1599
|
|
|
1345
1600
|
export = LumnisClient;
|
|
1346
|
-
export { type AgentConfig, type ApiKeyMode, type ApiKeyModeRequest, type ApiKeyModeResponse, type ApiProvider, type AppEnabledResponse, type AppsListResponse, type ArtifactObject, type ArtifactsListResponse, AuthenticationError, type BaseResource, type BillingStatus, type BulkDeleteRequest, type BulkDeleteResponse, type BulkUploadResponse, type CancelResponseResponse, type ChunkingStrategy, type ConnectionCallbackRequest, type ConnectionCallbackResponse, type ConnectionInfo, type ConnectionStatus, type ConnectionStatusResponse, type ContentType, type CreateFeedbackRequest, type CreateFeedbackResponse, type CreateResponseRequest, type CreateResponseResponse, type CreateThreadRequest, type DatabaseStatus, type DeleteApiKeyResponse, type DisconnectRequest, type DisconnectResponse, type DuplicateHandling, type Email, type ErrorResponse, ExternalAPIKeysResource, type ExternalApiKeyResponse, type FeedbackListResponse, type FeedbackObject, type FeedbackType, type FileAttachment, type FileChunk, type FileContentResponse, type FileListResponse, type FileMetadata, type FileScope, type FileScopeUpdateRequest, type FileSearchRequest, type FileSearchResponse, type FileSearchResult, type FileStatisticsResponse, type FileUploadResponse, FilesResource, type GetToolsRequest, type GetToolsResponse, type InitiateConnectionRequest, type InitiateConnectionResponse, IntegrationsResource, InternalServerError, LocalFileNotSupportedError, LumnisClient, type LumnisClientOptions, LumnisError, type LumnisErrorOptions, type MCPScope, type MCPServerCreateRequest, type MCPServerListResponse, type MCPServerResponse, type MCPServerUpdateRequest, MCPServersResource, type MCPToolListResponse, type MCPToolResponse, type MCPTransport, type Message, type ModelAvailability, type ModelOverrides, type ModelPreferenceCreate, type ModelPreferencesBulkUpdate, ModelPreferencesResource, type ModelProvider, type ModelType, NotFoundError, type PaginationInfo, type PaginationParams, type Plan, type ProcessingStatus, type ProcessingStatusResponse, type ProgressEntry, ProgressTracker, RateLimitError, type RateLimitErrorOptions, type ResponseArtifact, type ResponseListResponse, type ResponseObject, type ResponseStatus, ResponsesResource, type Scope, type SelectedSkill, type SkillAnalyticsRequest, type SkillEffectivenessMetrics, type SkillGuidelineBase, type SkillGuidelineCreate, type SkillGuidelineListResponse, type SkillGuidelineResponse, type SkillGuidelineUpdate, type SkillRetrievalMetadata, type SkillUsageBase, type SkillUsageCreate, type SkillUsageListResponse, type SkillUsageResponse, type SkillUsageUpdate, SkillsResource, type StoreApiKeyRequest, type TenantDetailsResponse, TenantInfoResource, type TenantModelPreference, type TenantModelPreferencesResponse, type TestConnectionResponse, type ThreadListResponse, type ThreadObject, type ThreadResponsesParams, ThreadsResource, type ToolInfo, type UUID, type UpdateAppStatusResponse, type UpdateThreadRequest, type UserConnectionsResponse, type UserCreateRequest, type UserDeleteResponse, type UserIdentifier, type UserListResponse, type UserResponse, type UserUpdateRequest, UsersResource, ValidationError, displayProgress, formatProgressEntry };
|
|
1601
|
+
export { type AgentConfig, type ApiKeyMode, type ApiKeyModeRequest, type ApiKeyModeResponse, type ApiProvider, type AppEnabledResponse, type AppliedFilters, type AppsListResponse, type ArtifactObject, type ArtifactsListResponse, AuthenticationError, type BaseResource, type BillingStatus, type BulkDeleteRequest, type BulkDeleteResponse, type BulkUploadResponse, type CancelResponseResponse, type CheckAppEnabledParams, type ChunkingStrategy, type ConnectionCallbackRequest, type ConnectionCallbackResponse, type ConnectionInfo, type ConnectionStatus, type ConnectionStatusResponse, type ContentType, type CreateFeedbackRequest, type CreateFeedbackResponse, type CreateResponseRequest, type CreateResponseResponse, type CreateThreadRequest, type DatabaseStatus, type DeleteApiKeyResponse, type DisconnectRequest, type DisconnectResponse, type DuplicateHandling, type Email, type ErrorResponse, ExternalAPIKeysResource, type ExternalApiKeyResponse, type FeedbackListResponse, type FeedbackObject, type FeedbackType, type FileAttachment, type FileChunk, type FileContentResponse, type FileListResponse, type FileMetadata, type FileScope, type FileScopeUpdateRequest, type FileSearchRequest, type FileSearchResponse, type FileSearchResult, type FileStatisticsResponse, type FileUploadResponse, FilesResource, type FilterLogic, type FilterValue, type GetConnectionStatusParams, type GetToolsRequest, type GetToolsResponse, type GetUserConnectionsParams, type InitiateConnectionRequest, type InitiateConnectionResponse, IntegrationsResource, InternalServerError, type ListProvidersResponse, LocalFileNotSupportedError, LumnisClient, type LumnisClientOptions, LumnisError, type LumnisErrorOptions, type MCPScope, type MCPServerCreateRequest, type MCPServerListResponse, type MCPServerResponse, type MCPServerUpdateRequest, MCPServersResource, type MCPToolListResponse, type MCPToolResponse, type MCPTransport, type Message, type ModelAvailability, type ModelOverrides, type ModelPreferenceCreate, type ModelPreferencesBulkUpdate, ModelPreferencesResource, type ModelProvider, type ModelType, NoDataSourcesError, NotFoundError, type PaginationInfo, type PaginationParams, PeopleDataSource, PeopleResource, type PeopleSearchRequest, type PeopleSearchResponse, type PersonResult, type Plan, type ProcessingStatus, type ProcessingStatusResponse, type ProgressEntry, ProgressTracker, ProviderType, RateLimitError, type RateLimitErrorOptions, type ResponseArtifact, type ResponseListResponse, type ResponseObject, type ResponseStatus, ResponsesResource, type SalaryRange, type Scope, type SelectedSkill, type SkillAnalyticsRequest, type SkillEffectivenessMetrics, type SkillGuidelineBase, type SkillGuidelineCreate, type SkillGuidelineListResponse, type SkillGuidelineResponse, type SkillGuidelineUpdate, type SkillRetrievalMetadata, type SkillUsageBase, type SkillUsageCreate, type SkillUsageListResponse, type SkillUsageResponse, type SkillUsageUpdate, SkillsResource, SourcesNotAvailableError, type StoreApiKeyRequest, type TenantDetailsResponse, TenantInfoResource, type TenantModelPreference, type TenantModelPreferencesResponse, type TestConnectionResponse, type ThreadListResponse, type ThreadObject, type ThreadResponsesParams, ThreadsResource, type ToolInfo, type UUID, type UpdateAppStatusParams, type UpdateAppStatusResponse, type UpdateThreadRequest, type UserConnectionsResponse, type UserCreateRequest, type UserDeleteResponse, type UserIdentifier, type UserListResponse, type UserResponse, type UserUpdateRequest, UsersResource, ValidationError, displayProgress, formatProgressEntry };
|