@oneshot-agent/sdk 0.51.0 → 0.53.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 +34 -20
- package/dist/approvals.d.ts +1 -1
- package/dist/approvals.d.ts.map +1 -1
- package/dist/errors.js +2 -2
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +16 -17
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +59 -44
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +113 -80
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/types.d.ts
CHANGED
|
@@ -238,7 +238,7 @@ export interface ToolOptions {
|
|
|
238
238
|
* `waitForPhones: true` to keep polling at a slower cadence (every 5s)
|
|
239
239
|
* until phones land or `phoneTimeoutSec` expires (default 360s = 6 min).
|
|
240
240
|
* Only meaningful for tools whose upstream enrichment supports async
|
|
241
|
-
* phone reveals (
|
|
241
|
+
* phone reveals (person-dossier, person-profile, …). For other tools
|
|
242
242
|
* the flag is a no-op.
|
|
243
243
|
*/
|
|
244
244
|
waitForPhones?: boolean;
|
|
@@ -250,8 +250,8 @@ export interface ToolOptions {
|
|
|
250
250
|
* idempotency. Those endpoints reject a conflicting body with 422.
|
|
251
251
|
* Access-token enrichment requests do not receive replay or conflict
|
|
252
252
|
* checks. Replay window and requirement differ by endpoint: email.send
|
|
253
|
-
* is optional with a 24h cached-response replay window;
|
|
254
|
-
*
|
|
253
|
+
* is optional with a 24h cached-response replay window; personProfile /
|
|
254
|
+
* personEmail / personEmailStatus are honored when durable enrichment is enabled
|
|
255
255
|
* on the server AND the session authenticates with a wallet, not an
|
|
256
256
|
* `accessToken` — an access-token session skips the durable-replay check
|
|
257
257
|
* on these three routes entirely and always dispatches a fresh job, even
|
|
@@ -323,7 +323,9 @@ export interface ResearchToolOptions extends ToolOptions {
|
|
|
323
323
|
topic: string;
|
|
324
324
|
depth?: 'deep' | 'quick';
|
|
325
325
|
}
|
|
326
|
-
export interface
|
|
326
|
+
export interface PersonFindOptions extends ToolOptions {
|
|
327
|
+
/** Off by default. Adds $0.10 × requested limit (default 100 → $10) for up to that many people; no phone hit guaranteed. */
|
|
328
|
+
includePhone?: boolean;
|
|
327
329
|
job_titles?: string[];
|
|
328
330
|
keywords?: string[];
|
|
329
331
|
companies?: string[];
|
|
@@ -350,13 +352,15 @@ export interface PeopleSearchOptions extends ToolOptions {
|
|
|
350
352
|
* regardless of which provider answers the search. */
|
|
351
353
|
offset?: number;
|
|
352
354
|
}
|
|
353
|
-
export interface
|
|
355
|
+
export interface PersonProfileOptions extends ToolOptions {
|
|
356
|
+
/** Off by default. Adds $0.10 for up to one person; no phone hit guaranteed. */
|
|
357
|
+
includePhone?: boolean;
|
|
354
358
|
linkedin_url?: string;
|
|
355
359
|
email?: string;
|
|
356
360
|
name?: string;
|
|
357
361
|
company_domain?: string;
|
|
358
362
|
}
|
|
359
|
-
export interface
|
|
363
|
+
export interface CompanyFindOptions extends ToolOptions {
|
|
360
364
|
name?: string;
|
|
361
365
|
domain?: string;
|
|
362
366
|
industry?: string[];
|
|
@@ -368,38 +372,40 @@ export interface CompanySearchOptions extends ToolOptions {
|
|
|
368
372
|
tags?: string[];
|
|
369
373
|
limit?: number;
|
|
370
374
|
}
|
|
371
|
-
export interface
|
|
375
|
+
export interface CompanyProfileOptions extends ToolOptions {
|
|
372
376
|
domain?: string;
|
|
373
377
|
name?: string;
|
|
374
378
|
linkedin_url?: string;
|
|
375
379
|
ticker?: string;
|
|
376
380
|
}
|
|
377
|
-
export interface
|
|
381
|
+
export interface PersonEmailOptions extends ToolOptions {
|
|
378
382
|
full_name?: string;
|
|
379
383
|
first_name?: string;
|
|
380
384
|
last_name?: string;
|
|
381
385
|
company_domain: string;
|
|
382
386
|
}
|
|
383
|
-
export interface
|
|
387
|
+
export interface PersonEmailStatusOptions extends ToolOptions {
|
|
384
388
|
email: string;
|
|
385
389
|
}
|
|
386
|
-
export interface
|
|
390
|
+
export interface PersonDossierOptions extends ToolOptions {
|
|
391
|
+
/** Off by default. Adds $0.10 for up to one person; no phone hit guaranteed. */
|
|
392
|
+
includePhone?: boolean;
|
|
387
393
|
email?: string;
|
|
388
394
|
social_media_url?: string;
|
|
389
395
|
name?: string;
|
|
390
396
|
company?: string;
|
|
391
397
|
}
|
|
392
|
-
export interface
|
|
398
|
+
export interface PersonSocialAccountsOptions extends ToolOptions {
|
|
393
399
|
email?: string;
|
|
394
400
|
social_media_url?: string;
|
|
395
401
|
}
|
|
396
|
-
export interface
|
|
402
|
+
export interface PersonArticlesOptions extends ToolOptions {
|
|
397
403
|
name: string;
|
|
398
404
|
company: string;
|
|
399
405
|
sort?: 'recent' | 'popular';
|
|
400
406
|
limit?: number;
|
|
401
407
|
}
|
|
402
|
-
export interface
|
|
408
|
+
export interface PersonPostsOptions extends ToolOptions {
|
|
403
409
|
social_media_url: string;
|
|
404
410
|
}
|
|
405
411
|
export interface PersonInterestsOptions extends ToolOptions {
|
|
@@ -407,7 +413,7 @@ export interface PersonInterestsOptions extends ToolOptions {
|
|
|
407
413
|
phone?: string;
|
|
408
414
|
social_media_url?: string;
|
|
409
415
|
}
|
|
410
|
-
export interface
|
|
416
|
+
export interface PersonFollowersOptions extends ToolOptions {
|
|
411
417
|
social_media_url: string;
|
|
412
418
|
type?: 'replies' | 'followers' | 'following' | 'followers,following';
|
|
413
419
|
max_results?: number;
|
|
@@ -435,7 +441,7 @@ export interface CommerceBuyOptions extends ToolOptions {
|
|
|
435
441
|
quantity?: number;
|
|
436
442
|
variant_id?: string;
|
|
437
443
|
}
|
|
438
|
-
export interface
|
|
444
|
+
export interface ProductFindOptions extends ToolOptions {
|
|
439
445
|
query: string;
|
|
440
446
|
limit?: number;
|
|
441
447
|
}
|
|
@@ -521,19 +527,24 @@ export interface Education {
|
|
|
521
527
|
start_date?: string;
|
|
522
528
|
end_date?: string;
|
|
523
529
|
}
|
|
530
|
+
/**
|
|
531
|
+
* A normalized person record. The worker returns every scalar field below and
|
|
532
|
+
* uses `null`, not a missing key, for a value the provider did not have; the
|
|
533
|
+
* declared person_dossier schema requires exactly that shape (#1789).
|
|
534
|
+
*/
|
|
524
535
|
export interface PersonResult {
|
|
525
536
|
company_address?: BusinessAddress | null;
|
|
526
|
-
full_name?: string;
|
|
527
|
-
first_name?: string;
|
|
528
|
-
last_name?: string;
|
|
529
|
-
title?: string;
|
|
530
|
-
company?: string;
|
|
531
|
-
company_domain?: string;
|
|
532
|
-
linkedin_url?: string;
|
|
533
|
-
location?: string;
|
|
534
|
-
email?: string;
|
|
535
|
-
phone?: string;
|
|
536
|
-
summary?: string;
|
|
537
|
+
full_name?: string | null;
|
|
538
|
+
first_name?: string | null;
|
|
539
|
+
last_name?: string | null;
|
|
540
|
+
title?: string | null;
|
|
541
|
+
company?: string | null;
|
|
542
|
+
company_domain?: string | null;
|
|
543
|
+
linkedin_url?: string | null;
|
|
544
|
+
location?: string | null;
|
|
545
|
+
email?: string | null;
|
|
546
|
+
phone?: string | null;
|
|
547
|
+
summary?: string | null;
|
|
537
548
|
skills?: string[];
|
|
538
549
|
experience?: Experience[];
|
|
539
550
|
education?: Education[];
|
|
@@ -544,7 +555,7 @@ export interface PersonResult {
|
|
|
544
555
|
best_work_email?: string | null;
|
|
545
556
|
best_personal_email?: string | null;
|
|
546
557
|
}
|
|
547
|
-
export interface
|
|
558
|
+
export interface PersonFindResult {
|
|
548
559
|
status: string;
|
|
549
560
|
results: PersonResult[];
|
|
550
561
|
total_found: number;
|
|
@@ -673,9 +684,20 @@ export interface DomainPoolStatusResult {
|
|
|
673
684
|
warmup_state: DomainWarmupState;
|
|
674
685
|
pause_reason: DomainPauseReason;
|
|
675
686
|
}
|
|
676
|
-
export interface
|
|
687
|
+
export interface SocialAccount {
|
|
688
|
+
platform: string;
|
|
689
|
+
url: string;
|
|
690
|
+
handle: string | null;
|
|
691
|
+
}
|
|
692
|
+
export interface DossierSection<T> {
|
|
693
|
+
state: 'found' | 'none' | 'unavailable';
|
|
694
|
+
data: T;
|
|
695
|
+
}
|
|
696
|
+
export interface PersonProfileResult {
|
|
677
697
|
status: string;
|
|
678
|
-
profile: PersonResult
|
|
698
|
+
profile: PersonResult & {
|
|
699
|
+
social_accounts: SocialAccount[];
|
|
700
|
+
};
|
|
679
701
|
request_id?: string;
|
|
680
702
|
/** Receipt id (`rcpt_…`) for this call. Pass to `tagReceiptValue` to annotate value later. */
|
|
681
703
|
receipt_id?: string;
|
|
@@ -705,7 +727,7 @@ export interface CompanyResult {
|
|
|
705
727
|
linkedin_url?: string;
|
|
706
728
|
[key: string]: unknown;
|
|
707
729
|
}
|
|
708
|
-
export interface
|
|
730
|
+
export interface CompanyFindResult {
|
|
709
731
|
status: string;
|
|
710
732
|
results: CompanyResult[];
|
|
711
733
|
total_found: number;
|
|
@@ -717,7 +739,7 @@ export interface CompanySearchResult {
|
|
|
717
739
|
memo?: string;
|
|
718
740
|
cost?: number;
|
|
719
741
|
}
|
|
720
|
-
export interface
|
|
742
|
+
export interface CompanyProfileResult {
|
|
721
743
|
status: string;
|
|
722
744
|
company: CompanyResult;
|
|
723
745
|
request_id?: string;
|
|
@@ -727,7 +749,7 @@ export interface EnrichCompanyResult {
|
|
|
727
749
|
memo?: string;
|
|
728
750
|
cost?: number;
|
|
729
751
|
}
|
|
730
|
-
export interface
|
|
752
|
+
export interface PersonEmailResult {
|
|
731
753
|
status: string;
|
|
732
754
|
email: string | null;
|
|
733
755
|
found: boolean;
|
|
@@ -744,7 +766,7 @@ export interface AsyncJobResult {
|
|
|
744
766
|
request_id: string;
|
|
745
767
|
status: string;
|
|
746
768
|
}
|
|
747
|
-
/**
|
|
769
|
+
/** Legacy enrichment fields retained for consumers of earlier result shapes. */
|
|
748
770
|
export interface PersonEnrichment {
|
|
749
771
|
displayname?: string;
|
|
750
772
|
firstname?: string;
|
|
@@ -789,26 +811,41 @@ export interface PersonEnrichment {
|
|
|
789
811
|
};
|
|
790
812
|
}>;
|
|
791
813
|
}
|
|
792
|
-
|
|
814
|
+
/** A post can retain null metadata when the collector had no value. */
|
|
815
|
+
export type PersonDossierPost = Omit<PersonPostsResult['result'][number], 'platform' | 'content' | 'url' | 'posted_at'> & {
|
|
816
|
+
platform?: string | null;
|
|
817
|
+
content?: string | null;
|
|
818
|
+
url?: string | null;
|
|
819
|
+
posted_at?: string | null;
|
|
820
|
+
};
|
|
821
|
+
export interface PersonDossierResult {
|
|
793
822
|
status: string;
|
|
794
823
|
result: {
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
824
|
+
profile: {
|
|
825
|
+
state: 'found';
|
|
826
|
+
data: PersonProfileResult['profile'];
|
|
827
|
+
};
|
|
828
|
+
social_accounts: DossierSection<SocialAccount[]>;
|
|
829
|
+
articles: DossierSection<Array<{
|
|
830
|
+
title: string | null;
|
|
831
|
+
url: string | null;
|
|
832
|
+
source: string | null;
|
|
833
|
+
published_date: string | null;
|
|
834
|
+
snippet: string | null;
|
|
835
|
+
}>>;
|
|
836
|
+
/** At most ten recent posts, using the person_posts representation. */
|
|
837
|
+
posts: DossierSection<PersonDossierPost[]>;
|
|
838
|
+
/** Section-grounded prose; one line when only the profile was found. */
|
|
839
|
+
summary: string;
|
|
805
840
|
};
|
|
806
841
|
request_id: string;
|
|
807
842
|
completed_at: string;
|
|
843
|
+
receipt_id?: string;
|
|
844
|
+
decisionContext?: Record<string, unknown>;
|
|
808
845
|
memo?: string;
|
|
809
846
|
cost?: number;
|
|
810
847
|
}
|
|
811
|
-
export interface
|
|
848
|
+
export interface PersonSocialAccountsResult {
|
|
812
849
|
status: string;
|
|
813
850
|
result: Record<string, {
|
|
814
851
|
url?: string;
|
|
@@ -821,7 +858,7 @@ export interface SocialProfilesResult {
|
|
|
821
858
|
memo?: string;
|
|
822
859
|
cost?: number;
|
|
823
860
|
}
|
|
824
|
-
export interface
|
|
861
|
+
export interface PersonArticlesResult {
|
|
825
862
|
status: string;
|
|
826
863
|
result: Array<{
|
|
827
864
|
title?: string;
|
|
@@ -835,7 +872,7 @@ export interface ArticleSearchResult {
|
|
|
835
872
|
memo?: string;
|
|
836
873
|
cost?: number;
|
|
837
874
|
}
|
|
838
|
-
export interface
|
|
875
|
+
export interface PersonPostsResult {
|
|
839
876
|
status: string;
|
|
840
877
|
result: Array<{
|
|
841
878
|
platform?: string;
|
|
@@ -859,7 +896,7 @@ export interface PersonInterestsResult {
|
|
|
859
896
|
memo?: string;
|
|
860
897
|
cost?: number;
|
|
861
898
|
}
|
|
862
|
-
export interface
|
|
899
|
+
export interface PersonFollowersResult {
|
|
863
900
|
status: string;
|
|
864
901
|
result: {
|
|
865
902
|
followers?: Array<Record<string, unknown>>;
|
|
@@ -871,7 +908,7 @@ export interface PersonInteractionsResult {
|
|
|
871
908
|
memo?: string;
|
|
872
909
|
cost?: number;
|
|
873
910
|
}
|
|
874
|
-
export interface
|
|
911
|
+
export interface PersonEmailStatusResult {
|
|
875
912
|
status: string;
|
|
876
913
|
email: string;
|
|
877
914
|
valid: boolean;
|
|
@@ -926,7 +963,7 @@ export interface CommerceBuyResult {
|
|
|
926
963
|
memo?: string;
|
|
927
964
|
cost?: number;
|
|
928
965
|
}
|
|
929
|
-
export interface
|
|
966
|
+
export interface ProductFindProduct {
|
|
930
967
|
product_url: string;
|
|
931
968
|
title: string;
|
|
932
969
|
price: number;
|
|
@@ -938,13 +975,13 @@ export interface CommerceSearchProduct {
|
|
|
938
975
|
in_stock?: boolean;
|
|
939
976
|
description?: string;
|
|
940
977
|
}
|
|
941
|
-
export interface
|
|
978
|
+
export interface ProductFindResult {
|
|
942
979
|
request_id?: string;
|
|
943
980
|
/** Receipt id (`rcpt_…`) for this call. Pass to `tagReceiptValue` to annotate value later. */
|
|
944
981
|
receipt_id?: string;
|
|
945
982
|
status: string;
|
|
946
983
|
query: string;
|
|
947
|
-
products:
|
|
984
|
+
products: ProductFindProduct[];
|
|
948
985
|
count: number;
|
|
949
986
|
memo?: string;
|
|
950
987
|
cost?: number;
|
|
@@ -1702,7 +1739,7 @@ export interface BusinessFindOptions extends ToolOptions {
|
|
|
1702
1739
|
is_chain?: boolean;
|
|
1703
1740
|
/** Default 'open' drops closed businesses. */
|
|
1704
1741
|
operating_status?: 'open' | 'any';
|
|
1705
|
-
/** true = only rows with a resolvable website domain (contactable via
|
|
1742
|
+
/** true = only rows with a resolvable website domain (contactable via personEmail). */
|
|
1706
1743
|
has_domain?: boolean;
|
|
1707
1744
|
/** 1-500, default 100. Effective max is bounded by the vendor-call cap; see `truncated`. */
|
|
1708
1745
|
limit?: number;
|
|
@@ -1756,7 +1793,7 @@ export interface BusinessFindResult {
|
|
|
1756
1793
|
}
|
|
1757
1794
|
export interface BusinessResolveResult {
|
|
1758
1795
|
status: string;
|
|
1759
|
-
/** false is a completed job, not an error — the same contract as
|
|
1796
|
+
/** false is a completed job, not an error — the same contract as personEmail. */
|
|
1760
1797
|
found: boolean;
|
|
1761
1798
|
/** 0..1 confidence of the best candidate (0 when nothing was returned). */
|
|
1762
1799
|
confidence: number;
|
|
@@ -1901,8 +1938,8 @@ export interface LinkedInConnectIntentIssued {
|
|
|
1901
1938
|
requested_actions: string[];
|
|
1902
1939
|
}
|
|
1903
1940
|
export interface LinkedInCoverage {
|
|
1904
|
-
|
|
1905
|
-
|
|
1941
|
+
history_sync_status: 'never' | 'requested' | 'running' | 'done' | 'error';
|
|
1942
|
+
history_sync_completed_at: string | null;
|
|
1906
1943
|
enumerated_as_of: string | null;
|
|
1907
1944
|
enumerated_back_to: string | null;
|
|
1908
1945
|
latest_message_at: string | null;
|
|
@@ -1910,8 +1947,7 @@ export interface LinkedInCoverage {
|
|
|
1910
1947
|
message_count: number;
|
|
1911
1948
|
conversation_count: number;
|
|
1912
1949
|
last_incremental_at: string | null;
|
|
1913
|
-
|
|
1914
|
-
/** provider_history done AND a windowless enumeration finished after it AND no pending cursor. */
|
|
1950
|
+
/** history_sync_status done AND a windowless enumeration finished after it AND no pending cursor. */
|
|
1915
1951
|
complete: boolean;
|
|
1916
1952
|
}
|
|
1917
1953
|
export type LinkedInSyncState = 'reconnect_required' | 'never_synced' | 'syncing' | 'partial' | 'complete';
|
|
@@ -1927,8 +1963,8 @@ export interface LinkedInAccount {
|
|
|
1927
1963
|
};
|
|
1928
1964
|
};
|
|
1929
1965
|
id: string;
|
|
1930
|
-
/**
|
|
1931
|
-
status: 'connected' | 'reconnect_required' | 'error' | 'revoked' | '
|
|
1966
|
+
/** connection_deleted/revoked require a new connect; reconnect_required permits reconnect. */
|
|
1967
|
+
status: 'connected' | 'reconnect_required' | 'error' | 'revoked' | 'connection_deleted';
|
|
1932
1968
|
display_name: string | null;
|
|
1933
1969
|
member_urn: string | null;
|
|
1934
1970
|
allowed_actions: string[];
|
|
@@ -1937,19 +1973,18 @@ export interface LinkedInAccount {
|
|
|
1937
1973
|
reconnected_at: string | null;
|
|
1938
1974
|
last_status_at: string | null;
|
|
1939
1975
|
revoked_at: string | null;
|
|
1940
|
-
/** False for
|
|
1976
|
+
/** False for connection_deleted: start a new connection instead of retrying reconnect. */
|
|
1941
1977
|
reconnect_required: boolean;
|
|
1942
1978
|
idle_revoke_at: string | null;
|
|
1943
|
-
/** Why the grant ended: `agent`, `idle`, `ops` or `
|
|
1979
|
+
/** Why the grant ended: `agent`, `idle`, `ops` or `connection_missing`. Null while active. */
|
|
1944
1980
|
revoked_reason: string | null;
|
|
1945
1981
|
sync: {
|
|
1946
1982
|
history_sync_status: string;
|
|
1947
1983
|
history_sync_completed_at: string | null;
|
|
1948
1984
|
coverage_earliest_at: string | null;
|
|
1949
1985
|
coverage_latest_at: string | null;
|
|
1950
|
-
|
|
1986
|
+
last_full_sync_at: string | null;
|
|
1951
1987
|
last_incremental_at: string | null;
|
|
1952
|
-
last_webhook_at: string | null;
|
|
1953
1988
|
message_count: number;
|
|
1954
1989
|
conversation_count: number;
|
|
1955
1990
|
};
|
|
@@ -1968,12 +2003,12 @@ export interface LinkedInRevokeResult {
|
|
|
1968
2003
|
status: 'revoked';
|
|
1969
2004
|
revoked_at: string;
|
|
1970
2005
|
cancelled_sends: number;
|
|
1971
|
-
|
|
2006
|
+
connection_deleted: boolean;
|
|
1972
2007
|
}
|
|
1973
2008
|
export interface LinkedInSyncRun {
|
|
1974
2009
|
run_id: string;
|
|
1975
|
-
kind: 'initial' | 'continue' | 'incremental' | '
|
|
1976
|
-
trigger: 'paid' | '
|
|
2010
|
+
kind: 'initial' | 'continue' | 'incremental' | 'refresh' | 'history' | 'conversations';
|
|
2011
|
+
trigger: 'paid' | 'scheduled' | 'event' | 'automatic';
|
|
1977
2012
|
status: 'queued' | 'running' | 'succeeded' | 'failed' | 'paused' | 'superseded';
|
|
1978
2013
|
continuation_of: string | null;
|
|
1979
2014
|
has_next_cursor: boolean;
|
|
@@ -1981,15 +2016,13 @@ export interface LinkedInSyncRun {
|
|
|
1981
2016
|
pages: number;
|
|
1982
2017
|
requests: number;
|
|
1983
2018
|
rate_limited: number;
|
|
1984
|
-
cursor_resets: number;
|
|
1985
2019
|
messages_seen: number;
|
|
1986
2020
|
messages_inserted: number;
|
|
1987
2021
|
messages_updated: number;
|
|
1988
2022
|
conversations_inserted: number;
|
|
1989
2023
|
earliest_seen_at: string | null;
|
|
1990
2024
|
latest_seen_at: string | null;
|
|
1991
|
-
|
|
1992
|
-
upstream_ms: number;
|
|
2025
|
+
history_sync_status: string | null;
|
|
1993
2026
|
duration_ms: number | null;
|
|
1994
2027
|
error_code: string | null;
|
|
1995
2028
|
request_id: string | null;
|
|
@@ -2019,7 +2052,7 @@ export interface LinkedInSyncRunResult {
|
|
|
2019
2052
|
kind: string;
|
|
2020
2053
|
outcome: 'exhausted' | 'bounded' | 'partial' | 'not_claimed';
|
|
2021
2054
|
needs_continuation: boolean;
|
|
2022
|
-
|
|
2055
|
+
history_sync_status: string;
|
|
2023
2056
|
pages: number;
|
|
2024
2057
|
requests: number;
|
|
2025
2058
|
messages_seen: number;
|
|
@@ -2029,12 +2062,11 @@ export interface LinkedInSyncRunResult {
|
|
|
2029
2062
|
earliest_seen_at: string | null;
|
|
2030
2063
|
latest_seen_at: string | null;
|
|
2031
2064
|
has_next_cursor: boolean;
|
|
2032
|
-
upstream_ms: number;
|
|
2033
2065
|
duration_ms: number;
|
|
2034
2066
|
[key: string]: unknown;
|
|
2035
2067
|
}
|
|
2036
2068
|
export interface LinkedInAttendee {
|
|
2037
|
-
|
|
2069
|
+
external_id: string | null;
|
|
2038
2070
|
name: string | null;
|
|
2039
2071
|
is_self: boolean;
|
|
2040
2072
|
profile_url: string | null;
|
|
@@ -2045,7 +2077,7 @@ export interface LinkedInAttendee {
|
|
|
2045
2077
|
}
|
|
2046
2078
|
export interface LinkedInConversation {
|
|
2047
2079
|
id: string;
|
|
2048
|
-
|
|
2080
|
+
external_chat_id: string;
|
|
2049
2081
|
name: string | null;
|
|
2050
2082
|
subject: string | null;
|
|
2051
2083
|
type: number | null;
|
|
@@ -2061,9 +2093,9 @@ export interface LinkedInConversation {
|
|
|
2061
2093
|
export interface LinkedInMessage {
|
|
2062
2094
|
id: string;
|
|
2063
2095
|
conversation_id: string;
|
|
2064
|
-
|
|
2096
|
+
external_message_id: string;
|
|
2065
2097
|
direction: 'inbound' | 'outbound';
|
|
2066
|
-
|
|
2098
|
+
sender_external_id: string | null;
|
|
2067
2099
|
sender_name: string | null;
|
|
2068
2100
|
text: string | null;
|
|
2069
2101
|
sent_at: string;
|
|
@@ -2134,14 +2166,14 @@ export interface LinkedInInviteResult {
|
|
|
2134
2166
|
action_request_id: string;
|
|
2135
2167
|
invitation_id: string;
|
|
2136
2168
|
status: 'sent' | 'already_connected' | 'pending';
|
|
2137
|
-
|
|
2169
|
+
external_invitation_id?: string | null;
|
|
2138
2170
|
tracked?: boolean;
|
|
2139
2171
|
}
|
|
2140
2172
|
export interface LinkedInWithdrawInvitationResult {
|
|
2141
2173
|
action_request_id: string;
|
|
2142
2174
|
invitation_id: string;
|
|
2143
2175
|
status: 'cancelled_before_send' | 'withdrawn' | 'already_withdrawn' | 'not_pending';
|
|
2144
|
-
|
|
2176
|
+
external_invitation_id?: string;
|
|
2145
2177
|
}
|
|
2146
2178
|
export interface LinkedInReplyOptions extends ToolOptions {
|
|
2147
2179
|
accountId: string;
|
|
@@ -2212,14 +2244,14 @@ export interface LinkedInReactOptions extends ToolOptions {
|
|
|
2212
2244
|
export interface LinkedInWriteResult {
|
|
2213
2245
|
action_request_id: string;
|
|
2214
2246
|
status: 'sent';
|
|
2215
|
-
|
|
2247
|
+
external_message_id?: string;
|
|
2216
2248
|
message_id?: string | null;
|
|
2217
2249
|
sent_at?: string;
|
|
2218
2250
|
[key: string]: unknown;
|
|
2219
2251
|
}
|
|
2220
2252
|
export interface LinkedInProfileViewResult extends LinkedInWriteResult {
|
|
2221
2253
|
profile: {
|
|
2222
|
-
|
|
2254
|
+
external_id: string | null;
|
|
2223
2255
|
public_identifier: string | null;
|
|
2224
2256
|
name: string | null;
|
|
2225
2257
|
headline: string | null;
|
|
@@ -2238,6 +2270,7 @@ export interface LinkedInExperienceEntry {
|
|
|
2238
2270
|
/** As LinkedIn gives it (string or null). */
|
|
2239
2271
|
start: string | null;
|
|
2240
2272
|
end: string | null;
|
|
2273
|
+
/** Derived: false when `end` is set; otherwise LinkedIn's flag, or (when LinkedIn gives none) true when `start` is set. */
|
|
2241
2274
|
current: boolean;
|
|
2242
2275
|
location: string | null;
|
|
2243
2276
|
}
|