@oneshot-agent/sdk 0.50.0 → 0.52.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 +24 -22
- 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 +47 -20
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +139 -39
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +130 -83
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/types.d.ts
CHANGED
|
@@ -175,6 +175,19 @@ export interface DecisionContext {
|
|
|
175
175
|
/** Any additional context */
|
|
176
176
|
[key: string]: unknown;
|
|
177
177
|
}
|
|
178
|
+
/** The HTTP methods a declared route of the API uses. */
|
|
179
|
+
export type RouteMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
|
|
180
|
+
/** What {@link OneShot.route} sends to a declared route, besides the {@link ToolOptions} of a paid one. */
|
|
181
|
+
export interface RouteOptions extends ToolOptions {
|
|
182
|
+
/** Values for the `{name}` (or `:name`) parameters of the path; each is URL-encoded. */
|
|
183
|
+
params?: Record<string, string | number>;
|
|
184
|
+
/** The query string. null/undefined are left out; booleans are `true`/`false`; objects and arrays are JSON. */
|
|
185
|
+
query?: Record<string, unknown>;
|
|
186
|
+
/** The JSON body of a POST, PUT or PATCH. An object field is sent as it is. */
|
|
187
|
+
body?: Record<string, unknown>;
|
|
188
|
+
/** The route is paid for (fixed or quoted): go through the quote-to-pay flow. POST only. */
|
|
189
|
+
paid?: boolean;
|
|
190
|
+
}
|
|
178
191
|
export interface ToolOptions {
|
|
179
192
|
/** End-to-end deadline in milliseconds. Existing timeout remains the polling limit in seconds. */
|
|
180
193
|
totalTimeoutMs?: number;
|
|
@@ -225,7 +238,7 @@ export interface ToolOptions {
|
|
|
225
238
|
* `waitForPhones: true` to keep polling at a slower cadence (every 5s)
|
|
226
239
|
* until phones land or `phoneTimeoutSec` expires (default 360s = 6 min).
|
|
227
240
|
* Only meaningful for tools whose upstream enrichment supports async
|
|
228
|
-
* phone reveals (
|
|
241
|
+
* phone reveals (person-dossier, person-profile, …). For other tools
|
|
229
242
|
* the flag is a no-op.
|
|
230
243
|
*/
|
|
231
244
|
waitForPhones?: boolean;
|
|
@@ -237,8 +250,8 @@ export interface ToolOptions {
|
|
|
237
250
|
* idempotency. Those endpoints reject a conflicting body with 422.
|
|
238
251
|
* Access-token enrichment requests do not receive replay or conflict
|
|
239
252
|
* checks. Replay window and requirement differ by endpoint: email.send
|
|
240
|
-
* is optional with a 24h cached-response replay window;
|
|
241
|
-
*
|
|
253
|
+
* is optional with a 24h cached-response replay window; personProfile /
|
|
254
|
+
* personEmail / personEmailStatus are honored when durable enrichment is enabled
|
|
242
255
|
* on the server AND the session authenticates with a wallet, not an
|
|
243
256
|
* `accessToken` — an access-token session skips the durable-replay check
|
|
244
257
|
* on these three routes entirely and always dispatches a fresh job, even
|
|
@@ -310,7 +323,7 @@ export interface ResearchToolOptions extends ToolOptions {
|
|
|
310
323
|
topic: string;
|
|
311
324
|
depth?: 'deep' | 'quick';
|
|
312
325
|
}
|
|
313
|
-
export interface
|
|
326
|
+
export interface PersonFindOptions extends ToolOptions {
|
|
314
327
|
job_titles?: string[];
|
|
315
328
|
keywords?: string[];
|
|
316
329
|
companies?: string[];
|
|
@@ -337,13 +350,13 @@ export interface PeopleSearchOptions extends ToolOptions {
|
|
|
337
350
|
* regardless of which provider answers the search. */
|
|
338
351
|
offset?: number;
|
|
339
352
|
}
|
|
340
|
-
export interface
|
|
353
|
+
export interface PersonProfileOptions extends ToolOptions {
|
|
341
354
|
linkedin_url?: string;
|
|
342
355
|
email?: string;
|
|
343
356
|
name?: string;
|
|
344
357
|
company_domain?: string;
|
|
345
358
|
}
|
|
346
|
-
export interface
|
|
359
|
+
export interface CompanyFindOptions extends ToolOptions {
|
|
347
360
|
name?: string;
|
|
348
361
|
domain?: string;
|
|
349
362
|
industry?: string[];
|
|
@@ -355,38 +368,38 @@ export interface CompanySearchOptions extends ToolOptions {
|
|
|
355
368
|
tags?: string[];
|
|
356
369
|
limit?: number;
|
|
357
370
|
}
|
|
358
|
-
export interface
|
|
371
|
+
export interface CompanyProfileOptions extends ToolOptions {
|
|
359
372
|
domain?: string;
|
|
360
373
|
name?: string;
|
|
361
374
|
linkedin_url?: string;
|
|
362
375
|
ticker?: string;
|
|
363
376
|
}
|
|
364
|
-
export interface
|
|
377
|
+
export interface PersonEmailOptions extends ToolOptions {
|
|
365
378
|
full_name?: string;
|
|
366
379
|
first_name?: string;
|
|
367
380
|
last_name?: string;
|
|
368
381
|
company_domain: string;
|
|
369
382
|
}
|
|
370
|
-
export interface
|
|
383
|
+
export interface PersonEmailStatusOptions extends ToolOptions {
|
|
371
384
|
email: string;
|
|
372
385
|
}
|
|
373
|
-
export interface
|
|
386
|
+
export interface PersonDossierOptions extends ToolOptions {
|
|
374
387
|
email?: string;
|
|
375
388
|
social_media_url?: string;
|
|
376
389
|
name?: string;
|
|
377
390
|
company?: string;
|
|
378
391
|
}
|
|
379
|
-
export interface
|
|
392
|
+
export interface PersonSocialAccountsOptions extends ToolOptions {
|
|
380
393
|
email?: string;
|
|
381
394
|
social_media_url?: string;
|
|
382
395
|
}
|
|
383
|
-
export interface
|
|
396
|
+
export interface PersonArticlesOptions extends ToolOptions {
|
|
384
397
|
name: string;
|
|
385
398
|
company: string;
|
|
386
399
|
sort?: 'recent' | 'popular';
|
|
387
400
|
limit?: number;
|
|
388
401
|
}
|
|
389
|
-
export interface
|
|
402
|
+
export interface PersonPostsOptions extends ToolOptions {
|
|
390
403
|
social_media_url: string;
|
|
391
404
|
}
|
|
392
405
|
export interface PersonInterestsOptions extends ToolOptions {
|
|
@@ -394,7 +407,7 @@ export interface PersonInterestsOptions extends ToolOptions {
|
|
|
394
407
|
phone?: string;
|
|
395
408
|
social_media_url?: string;
|
|
396
409
|
}
|
|
397
|
-
export interface
|
|
410
|
+
export interface PersonFollowersOptions extends ToolOptions {
|
|
398
411
|
social_media_url: string;
|
|
399
412
|
type?: 'replies' | 'followers' | 'following' | 'followers,following';
|
|
400
413
|
max_results?: number;
|
|
@@ -508,19 +521,24 @@ export interface Education {
|
|
|
508
521
|
start_date?: string;
|
|
509
522
|
end_date?: string;
|
|
510
523
|
}
|
|
524
|
+
/**
|
|
525
|
+
* A normalized person record. The worker returns every scalar field below and
|
|
526
|
+
* uses `null`, not a missing key, for a value the provider did not have; the
|
|
527
|
+
* declared person_dossier schema requires exactly that shape (#1789).
|
|
528
|
+
*/
|
|
511
529
|
export interface PersonResult {
|
|
512
530
|
company_address?: BusinessAddress | null;
|
|
513
|
-
full_name?: string;
|
|
514
|
-
first_name?: string;
|
|
515
|
-
last_name?: string;
|
|
516
|
-
title?: string;
|
|
517
|
-
company?: string;
|
|
518
|
-
company_domain?: string;
|
|
519
|
-
linkedin_url?: string;
|
|
520
|
-
location?: string;
|
|
521
|
-
email?: string;
|
|
522
|
-
phone?: string;
|
|
523
|
-
summary?: string;
|
|
531
|
+
full_name?: string | null;
|
|
532
|
+
first_name?: string | null;
|
|
533
|
+
last_name?: string | null;
|
|
534
|
+
title?: string | null;
|
|
535
|
+
company?: string | null;
|
|
536
|
+
company_domain?: string | null;
|
|
537
|
+
linkedin_url?: string | null;
|
|
538
|
+
location?: string | null;
|
|
539
|
+
email?: string | null;
|
|
540
|
+
phone?: string | null;
|
|
541
|
+
summary?: string | null;
|
|
524
542
|
skills?: string[];
|
|
525
543
|
experience?: Experience[];
|
|
526
544
|
education?: Education[];
|
|
@@ -531,7 +549,7 @@ export interface PersonResult {
|
|
|
531
549
|
best_work_email?: string | null;
|
|
532
550
|
best_personal_email?: string | null;
|
|
533
551
|
}
|
|
534
|
-
export interface
|
|
552
|
+
export interface PersonFindResult {
|
|
535
553
|
status: string;
|
|
536
554
|
results: PersonResult[];
|
|
537
555
|
total_found: number;
|
|
@@ -660,9 +678,20 @@ export interface DomainPoolStatusResult {
|
|
|
660
678
|
warmup_state: DomainWarmupState;
|
|
661
679
|
pause_reason: DomainPauseReason;
|
|
662
680
|
}
|
|
663
|
-
export interface
|
|
681
|
+
export interface SocialAccount {
|
|
682
|
+
platform: string;
|
|
683
|
+
url: string;
|
|
684
|
+
handle: string | null;
|
|
685
|
+
}
|
|
686
|
+
export interface DossierSection<T> {
|
|
687
|
+
state: 'found' | 'none' | 'unavailable';
|
|
688
|
+
data: T;
|
|
689
|
+
}
|
|
690
|
+
export interface PersonProfileResult {
|
|
664
691
|
status: string;
|
|
665
|
-
profile: PersonResult
|
|
692
|
+
profile: PersonResult & {
|
|
693
|
+
social_accounts: SocialAccount[];
|
|
694
|
+
};
|
|
666
695
|
request_id?: string;
|
|
667
696
|
/** Receipt id (`rcpt_…`) for this call. Pass to `tagReceiptValue` to annotate value later. */
|
|
668
697
|
receipt_id?: string;
|
|
@@ -692,7 +721,7 @@ export interface CompanyResult {
|
|
|
692
721
|
linkedin_url?: string;
|
|
693
722
|
[key: string]: unknown;
|
|
694
723
|
}
|
|
695
|
-
export interface
|
|
724
|
+
export interface CompanyFindResult {
|
|
696
725
|
status: string;
|
|
697
726
|
results: CompanyResult[];
|
|
698
727
|
total_found: number;
|
|
@@ -704,7 +733,7 @@ export interface CompanySearchResult {
|
|
|
704
733
|
memo?: string;
|
|
705
734
|
cost?: number;
|
|
706
735
|
}
|
|
707
|
-
export interface
|
|
736
|
+
export interface CompanyProfileResult {
|
|
708
737
|
status: string;
|
|
709
738
|
company: CompanyResult;
|
|
710
739
|
request_id?: string;
|
|
@@ -714,7 +743,7 @@ export interface EnrichCompanyResult {
|
|
|
714
743
|
memo?: string;
|
|
715
744
|
cost?: number;
|
|
716
745
|
}
|
|
717
|
-
export interface
|
|
746
|
+
export interface PersonEmailResult {
|
|
718
747
|
status: string;
|
|
719
748
|
email: string | null;
|
|
720
749
|
found: boolean;
|
|
@@ -731,7 +760,7 @@ export interface AsyncJobResult {
|
|
|
731
760
|
request_id: string;
|
|
732
761
|
status: string;
|
|
733
762
|
}
|
|
734
|
-
/**
|
|
763
|
+
/** Legacy enrichment fields retained for consumers of earlier result shapes. */
|
|
735
764
|
export interface PersonEnrichment {
|
|
736
765
|
displayname?: string;
|
|
737
766
|
firstname?: string;
|
|
@@ -776,26 +805,41 @@ export interface PersonEnrichment {
|
|
|
776
805
|
};
|
|
777
806
|
}>;
|
|
778
807
|
}
|
|
779
|
-
|
|
808
|
+
/** A post can retain null metadata when the collector had no value. */
|
|
809
|
+
export type PersonDossierPost = Omit<PersonPostsResult['result'][number], 'platform' | 'content' | 'url' | 'posted_at'> & {
|
|
810
|
+
platform?: string | null;
|
|
811
|
+
content?: string | null;
|
|
812
|
+
url?: string | null;
|
|
813
|
+
posted_at?: string | null;
|
|
814
|
+
};
|
|
815
|
+
export interface PersonDossierResult {
|
|
780
816
|
status: string;
|
|
781
817
|
result: {
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
818
|
+
profile: {
|
|
819
|
+
state: 'found';
|
|
820
|
+
data: PersonProfileResult['profile'];
|
|
821
|
+
};
|
|
822
|
+
social_accounts: DossierSection<SocialAccount[]>;
|
|
823
|
+
articles: DossierSection<Array<{
|
|
824
|
+
title: string | null;
|
|
825
|
+
url: string | null;
|
|
826
|
+
source: string | null;
|
|
827
|
+
published_date: string | null;
|
|
828
|
+
snippet: string | null;
|
|
829
|
+
}>>;
|
|
830
|
+
/** At most ten recent posts, using the person_posts representation. */
|
|
831
|
+
posts: DossierSection<PersonDossierPost[]>;
|
|
832
|
+
/** Section-grounded prose; one line when only the profile was found. */
|
|
833
|
+
summary: string;
|
|
792
834
|
};
|
|
793
835
|
request_id: string;
|
|
794
836
|
completed_at: string;
|
|
837
|
+
receipt_id?: string;
|
|
838
|
+
decisionContext?: Record<string, unknown>;
|
|
795
839
|
memo?: string;
|
|
796
840
|
cost?: number;
|
|
797
841
|
}
|
|
798
|
-
export interface
|
|
842
|
+
export interface PersonSocialAccountsResult {
|
|
799
843
|
status: string;
|
|
800
844
|
result: Record<string, {
|
|
801
845
|
url?: string;
|
|
@@ -808,7 +852,7 @@ export interface SocialProfilesResult {
|
|
|
808
852
|
memo?: string;
|
|
809
853
|
cost?: number;
|
|
810
854
|
}
|
|
811
|
-
export interface
|
|
855
|
+
export interface PersonArticlesResult {
|
|
812
856
|
status: string;
|
|
813
857
|
result: Array<{
|
|
814
858
|
title?: string;
|
|
@@ -822,7 +866,7 @@ export interface ArticleSearchResult {
|
|
|
822
866
|
memo?: string;
|
|
823
867
|
cost?: number;
|
|
824
868
|
}
|
|
825
|
-
export interface
|
|
869
|
+
export interface PersonPostsResult {
|
|
826
870
|
status: string;
|
|
827
871
|
result: Array<{
|
|
828
872
|
platform?: string;
|
|
@@ -846,7 +890,7 @@ export interface PersonInterestsResult {
|
|
|
846
890
|
memo?: string;
|
|
847
891
|
cost?: number;
|
|
848
892
|
}
|
|
849
|
-
export interface
|
|
893
|
+
export interface PersonFollowersResult {
|
|
850
894
|
status: string;
|
|
851
895
|
result: {
|
|
852
896
|
followers?: Array<Record<string, unknown>>;
|
|
@@ -858,7 +902,7 @@ export interface PersonInteractionsResult {
|
|
|
858
902
|
memo?: string;
|
|
859
903
|
cost?: number;
|
|
860
904
|
}
|
|
861
|
-
export interface
|
|
905
|
+
export interface PersonEmailStatusResult {
|
|
862
906
|
status: string;
|
|
863
907
|
email: string;
|
|
864
908
|
valid: boolean;
|
|
@@ -1526,13 +1570,20 @@ export type ComputeDoneCheck =
|
|
|
1526
1570
|
equals?: string | number | boolean;
|
|
1527
1571
|
at_least?: number;
|
|
1528
1572
|
}
|
|
1573
|
+
/** Every case of the goal is in one of `finished_states` (a state in `owner_required_for` also needs an owner in the record). With no cases the check is not met. */
|
|
1574
|
+
| {
|
|
1575
|
+
kind: 'cases';
|
|
1576
|
+
finished_states: string[];
|
|
1577
|
+
owner_required_for?: string[];
|
|
1578
|
+
min_cases?: number;
|
|
1579
|
+
}
|
|
1529
1580
|
/** No check can be written: you confirm with `confirmComputeGoal`. */
|
|
1530
1581
|
| {
|
|
1531
1582
|
kind: 'owner';
|
|
1532
1583
|
};
|
|
1533
1584
|
/** What an evaluation of the done-check found. */
|
|
1534
1585
|
export interface ComputeCheckResult {
|
|
1535
|
-
kind: 'count' | 'tool_result' | 'owner';
|
|
1586
|
+
kind: 'count' | 'tool_result' | 'cases' | 'owner';
|
|
1536
1587
|
/** `null` while waiting for the owner. */
|
|
1537
1588
|
passed: boolean | null;
|
|
1538
1589
|
observed?: unknown;
|
|
@@ -1669,7 +1720,7 @@ export interface ComputeBudgetStatus {
|
|
|
1669
1720
|
created_at: string;
|
|
1670
1721
|
}>;
|
|
1671
1722
|
}
|
|
1672
|
-
export interface
|
|
1723
|
+
export interface BusinessFindOptions extends ToolOptions {
|
|
1673
1724
|
/** Business categories, e.g. ['hvac contractor', 'dental practice']. category or keywords required. */
|
|
1674
1725
|
category?: string[];
|
|
1675
1726
|
/** Free-text keywords (alternative to category). */
|
|
@@ -1682,12 +1733,12 @@ export interface LocalSearchOptions extends ToolOptions {
|
|
|
1682
1733
|
is_chain?: boolean;
|
|
1683
1734
|
/** Default 'open' drops closed businesses. */
|
|
1684
1735
|
operating_status?: 'open' | 'any';
|
|
1685
|
-
/** true = only rows with a resolvable website domain (contactable via
|
|
1736
|
+
/** true = only rows with a resolvable website domain (contactable via personEmail). */
|
|
1686
1737
|
has_domain?: boolean;
|
|
1687
1738
|
/** 1-500, default 100. Effective max is bounded by the vendor-call cap; see `truncated`. */
|
|
1688
1739
|
limit?: number;
|
|
1689
1740
|
}
|
|
1690
|
-
export interface
|
|
1741
|
+
export interface BusinessResolveOptions extends ToolOptions {
|
|
1691
1742
|
name: string;
|
|
1692
1743
|
address?: string;
|
|
1693
1744
|
city?: string;
|
|
@@ -1720,7 +1771,7 @@ export interface LocalResult {
|
|
|
1720
1771
|
latitude: number | null;
|
|
1721
1772
|
longitude: number | null;
|
|
1722
1773
|
}
|
|
1723
|
-
export interface
|
|
1774
|
+
export interface BusinessFindResult {
|
|
1724
1775
|
status: string;
|
|
1725
1776
|
results: LocalResult[];
|
|
1726
1777
|
total_found: number;
|
|
@@ -1734,9 +1785,9 @@ export interface LocalSearchResult {
|
|
|
1734
1785
|
memo?: string;
|
|
1735
1786
|
cost?: number;
|
|
1736
1787
|
}
|
|
1737
|
-
export interface
|
|
1788
|
+
export interface BusinessResolveResult {
|
|
1738
1789
|
status: string;
|
|
1739
|
-
/** false is a completed job, not an error — the same contract as
|
|
1790
|
+
/** false is a completed job, not an error — the same contract as personEmail. */
|
|
1740
1791
|
found: boolean;
|
|
1741
1792
|
/** 0..1 confidence of the best candidate (0 when nothing was returned). */
|
|
1742
1793
|
confidence: number;
|
|
@@ -1757,7 +1808,7 @@ export interface LocalResolveResult {
|
|
|
1757
1808
|
* k=Combined Synopsis/Solicitation, s=Special Notice, a=Award Notice, u=Justification,
|
|
1758
1809
|
* i=Intent to Bundle, g=Surplus Property. */
|
|
1759
1810
|
export type GovNoticeTypeCode = 'r' | 'p' | 'o' | 'k' | 's' | 'a' | 'u' | 'i' | 'g';
|
|
1760
|
-
export interface
|
|
1811
|
+
export interface RecordSolicitationsFindOptions extends ToolOptions {
|
|
1761
1812
|
/** 6-digit NAICS codes, 1-20. Required. */
|
|
1762
1813
|
naics: string[];
|
|
1763
1814
|
/** Default ['r', 'p'] — Sources Sought + Presolicitation, the window where the requirement is still being written. */
|
|
@@ -1821,7 +1872,7 @@ export interface Solicitation {
|
|
|
1821
1872
|
/** = notice_id */
|
|
1822
1873
|
id: string;
|
|
1823
1874
|
}
|
|
1824
|
-
export interface
|
|
1875
|
+
export interface RecordSolicitationsFindResult {
|
|
1825
1876
|
status: string;
|
|
1826
1877
|
results: Solicitation[];
|
|
1827
1878
|
total_found: number;
|
|
@@ -1881,8 +1932,8 @@ export interface LinkedInConnectIntentIssued {
|
|
|
1881
1932
|
requested_actions: string[];
|
|
1882
1933
|
}
|
|
1883
1934
|
export interface LinkedInCoverage {
|
|
1884
|
-
|
|
1885
|
-
|
|
1935
|
+
history_sync_status: 'never' | 'requested' | 'running' | 'done' | 'error';
|
|
1936
|
+
history_sync_completed_at: string | null;
|
|
1886
1937
|
enumerated_as_of: string | null;
|
|
1887
1938
|
enumerated_back_to: string | null;
|
|
1888
1939
|
latest_message_at: string | null;
|
|
@@ -1890,8 +1941,7 @@ export interface LinkedInCoverage {
|
|
|
1890
1941
|
message_count: number;
|
|
1891
1942
|
conversation_count: number;
|
|
1892
1943
|
last_incremental_at: string | null;
|
|
1893
|
-
|
|
1894
|
-
/** provider_history done AND a windowless enumeration finished after it AND no pending cursor. */
|
|
1944
|
+
/** history_sync_status done AND a windowless enumeration finished after it AND no pending cursor. */
|
|
1895
1945
|
complete: boolean;
|
|
1896
1946
|
}
|
|
1897
1947
|
export type LinkedInSyncState = 'reconnect_required' | 'never_synced' | 'syncing' | 'partial' | 'complete';
|
|
@@ -1907,8 +1957,8 @@ export interface LinkedInAccount {
|
|
|
1907
1957
|
};
|
|
1908
1958
|
};
|
|
1909
1959
|
id: string;
|
|
1910
|
-
/**
|
|
1911
|
-
status: 'connected' | 'reconnect_required' | 'error' | 'revoked' | '
|
|
1960
|
+
/** connection_deleted/revoked require a new connect; reconnect_required permits reconnect. */
|
|
1961
|
+
status: 'connected' | 'reconnect_required' | 'error' | 'revoked' | 'connection_deleted';
|
|
1912
1962
|
display_name: string | null;
|
|
1913
1963
|
member_urn: string | null;
|
|
1914
1964
|
allowed_actions: string[];
|
|
@@ -1917,19 +1967,18 @@ export interface LinkedInAccount {
|
|
|
1917
1967
|
reconnected_at: string | null;
|
|
1918
1968
|
last_status_at: string | null;
|
|
1919
1969
|
revoked_at: string | null;
|
|
1920
|
-
/** False for
|
|
1970
|
+
/** False for connection_deleted: start a new connection instead of retrying reconnect. */
|
|
1921
1971
|
reconnect_required: boolean;
|
|
1922
1972
|
idle_revoke_at: string | null;
|
|
1923
|
-
/** Why the grant ended: `agent`, `idle`, `ops` or `
|
|
1973
|
+
/** Why the grant ended: `agent`, `idle`, `ops` or `connection_missing`. Null while active. */
|
|
1924
1974
|
revoked_reason: string | null;
|
|
1925
1975
|
sync: {
|
|
1926
1976
|
history_sync_status: string;
|
|
1927
1977
|
history_sync_completed_at: string | null;
|
|
1928
1978
|
coverage_earliest_at: string | null;
|
|
1929
1979
|
coverage_latest_at: string | null;
|
|
1930
|
-
|
|
1980
|
+
last_full_sync_at: string | null;
|
|
1931
1981
|
last_incremental_at: string | null;
|
|
1932
|
-
last_webhook_at: string | null;
|
|
1933
1982
|
message_count: number;
|
|
1934
1983
|
conversation_count: number;
|
|
1935
1984
|
};
|
|
@@ -1948,12 +1997,12 @@ export interface LinkedInRevokeResult {
|
|
|
1948
1997
|
status: 'revoked';
|
|
1949
1998
|
revoked_at: string;
|
|
1950
1999
|
cancelled_sends: number;
|
|
1951
|
-
|
|
2000
|
+
connection_deleted: boolean;
|
|
1952
2001
|
}
|
|
1953
2002
|
export interface LinkedInSyncRun {
|
|
1954
2003
|
run_id: string;
|
|
1955
|
-
kind: 'initial' | 'continue' | 'incremental' | '
|
|
1956
|
-
trigger: 'paid' | '
|
|
2004
|
+
kind: 'initial' | 'continue' | 'incremental' | 'refresh' | 'history' | 'conversations';
|
|
2005
|
+
trigger: 'paid' | 'scheduled' | 'event' | 'automatic';
|
|
1957
2006
|
status: 'queued' | 'running' | 'succeeded' | 'failed' | 'paused' | 'superseded';
|
|
1958
2007
|
continuation_of: string | null;
|
|
1959
2008
|
has_next_cursor: boolean;
|
|
@@ -1961,15 +2010,13 @@ export interface LinkedInSyncRun {
|
|
|
1961
2010
|
pages: number;
|
|
1962
2011
|
requests: number;
|
|
1963
2012
|
rate_limited: number;
|
|
1964
|
-
cursor_resets: number;
|
|
1965
2013
|
messages_seen: number;
|
|
1966
2014
|
messages_inserted: number;
|
|
1967
2015
|
messages_updated: number;
|
|
1968
2016
|
conversations_inserted: number;
|
|
1969
2017
|
earliest_seen_at: string | null;
|
|
1970
2018
|
latest_seen_at: string | null;
|
|
1971
|
-
|
|
1972
|
-
upstream_ms: number;
|
|
2019
|
+
history_sync_status: string | null;
|
|
1973
2020
|
duration_ms: number | null;
|
|
1974
2021
|
error_code: string | null;
|
|
1975
2022
|
request_id: string | null;
|
|
@@ -1999,7 +2046,7 @@ export interface LinkedInSyncRunResult {
|
|
|
1999
2046
|
kind: string;
|
|
2000
2047
|
outcome: 'exhausted' | 'bounded' | 'partial' | 'not_claimed';
|
|
2001
2048
|
needs_continuation: boolean;
|
|
2002
|
-
|
|
2049
|
+
history_sync_status: string;
|
|
2003
2050
|
pages: number;
|
|
2004
2051
|
requests: number;
|
|
2005
2052
|
messages_seen: number;
|
|
@@ -2009,12 +2056,11 @@ export interface LinkedInSyncRunResult {
|
|
|
2009
2056
|
earliest_seen_at: string | null;
|
|
2010
2057
|
latest_seen_at: string | null;
|
|
2011
2058
|
has_next_cursor: boolean;
|
|
2012
|
-
upstream_ms: number;
|
|
2013
2059
|
duration_ms: number;
|
|
2014
2060
|
[key: string]: unknown;
|
|
2015
2061
|
}
|
|
2016
2062
|
export interface LinkedInAttendee {
|
|
2017
|
-
|
|
2063
|
+
external_id: string | null;
|
|
2018
2064
|
name: string | null;
|
|
2019
2065
|
is_self: boolean;
|
|
2020
2066
|
profile_url: string | null;
|
|
@@ -2025,7 +2071,7 @@ export interface LinkedInAttendee {
|
|
|
2025
2071
|
}
|
|
2026
2072
|
export interface LinkedInConversation {
|
|
2027
2073
|
id: string;
|
|
2028
|
-
|
|
2074
|
+
external_chat_id: string;
|
|
2029
2075
|
name: string | null;
|
|
2030
2076
|
subject: string | null;
|
|
2031
2077
|
type: number | null;
|
|
@@ -2041,9 +2087,9 @@ export interface LinkedInConversation {
|
|
|
2041
2087
|
export interface LinkedInMessage {
|
|
2042
2088
|
id: string;
|
|
2043
2089
|
conversation_id: string;
|
|
2044
|
-
|
|
2090
|
+
external_message_id: string;
|
|
2045
2091
|
direction: 'inbound' | 'outbound';
|
|
2046
|
-
|
|
2092
|
+
sender_external_id: string | null;
|
|
2047
2093
|
sender_name: string | null;
|
|
2048
2094
|
text: string | null;
|
|
2049
2095
|
sent_at: string;
|
|
@@ -2114,14 +2160,14 @@ export interface LinkedInInviteResult {
|
|
|
2114
2160
|
action_request_id: string;
|
|
2115
2161
|
invitation_id: string;
|
|
2116
2162
|
status: 'sent' | 'already_connected' | 'pending';
|
|
2117
|
-
|
|
2163
|
+
external_invitation_id?: string | null;
|
|
2118
2164
|
tracked?: boolean;
|
|
2119
2165
|
}
|
|
2120
2166
|
export interface LinkedInWithdrawInvitationResult {
|
|
2121
2167
|
action_request_id: string;
|
|
2122
2168
|
invitation_id: string;
|
|
2123
2169
|
status: 'cancelled_before_send' | 'withdrawn' | 'already_withdrawn' | 'not_pending';
|
|
2124
|
-
|
|
2170
|
+
external_invitation_id?: string;
|
|
2125
2171
|
}
|
|
2126
2172
|
export interface LinkedInReplyOptions extends ToolOptions {
|
|
2127
2173
|
accountId: string;
|
|
@@ -2192,14 +2238,14 @@ export interface LinkedInReactOptions extends ToolOptions {
|
|
|
2192
2238
|
export interface LinkedInWriteResult {
|
|
2193
2239
|
action_request_id: string;
|
|
2194
2240
|
status: 'sent';
|
|
2195
|
-
|
|
2241
|
+
external_message_id?: string;
|
|
2196
2242
|
message_id?: string | null;
|
|
2197
2243
|
sent_at?: string;
|
|
2198
2244
|
[key: string]: unknown;
|
|
2199
2245
|
}
|
|
2200
2246
|
export interface LinkedInProfileViewResult extends LinkedInWriteResult {
|
|
2201
2247
|
profile: {
|
|
2202
|
-
|
|
2248
|
+
external_id: string | null;
|
|
2203
2249
|
public_identifier: string | null;
|
|
2204
2250
|
name: string | null;
|
|
2205
2251
|
headline: string | null;
|
|
@@ -2218,6 +2264,7 @@ export interface LinkedInExperienceEntry {
|
|
|
2218
2264
|
/** As LinkedIn gives it (string or null). */
|
|
2219
2265
|
start: string | null;
|
|
2220
2266
|
end: string | null;
|
|
2267
|
+
/** Derived: false when `end` is set; otherwise LinkedIn's flag, or (when LinkedIn gives none) true when `start` is set. */
|
|
2221
2268
|
current: boolean;
|
|
2222
2269
|
location: string | null;
|
|
2223
2270
|
}
|