@recursiv/sdk 0.7.33 → 0.7.35
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 +3 -1
- package/dist/index.d.ts +1 -1
- package/dist/resources/protocols.d.ts +92 -1
- package/dist/resources/protocols.js +39 -1
- package/llm.md +4 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -111,7 +111,7 @@ for await (const chunk of r.agents.chatStream(agent.id, { message: 'Hello!' }))
|
|
|
111
111
|
| `r.admin` | User management, stats, content reports (`listReports`, `resolveReport`, `dismissReport`) |
|
|
112
112
|
| `r.dispatcher` | Task queue, claims, signals, outcomes, webhooks |
|
|
113
113
|
| `r.goals` | Org goals with task rollups (group dispatcher tasks) |
|
|
114
|
-
| `r.protocols` | Private Minds safety: `sourceControls` (current enablement and saved choices), `setSourceControl`, `onSourceControlChange`, `reportSource`. Delegated accounts: `nativeSocialAccounts`, `startNativeSocialConnection`, `finishNativeSocialConnection`, `disconnectNativeSocialAccount`. Native follows: `nativeFollowState`, `prepareNativeFollow`, `submitNativeFollow`, `nativeFollowStatus` (native following or pending approval, distinct from a Minds feed subscription; preserve the complete signed Nostr list). Native reposts and undo: `nativeRepostState`, `prepareNativeRepost`, `submitNativeRepost`, `nativeRepostStatus` (public posts, explicit approval, connected account, no uncertain retries). Native likes and unlikes: `nativeLikeState`, `prepareNativeLike`, `submitNativeLike`, `nativeLikeStatus` (connected authority, app enablement and explicit approval; resume pending actions instead of duplicating them). Reviewed replies and optional linked posts: `prepareNativeReply`, `submitNativeReply`, `nativeReplyStatus`, `nativeReplyHistory`, `prepareNativeReplyRemoval`, `removeNativeReply` (require deployed API support and app enablement). Keyless shared post links: `sharedNetworks(projectId)`, `getSharedConversation(projectId, { protocol, post, readRef? })`. Member public reading: `publicNetworks`, `searchPublicProfiles`, `getPublicProfile`, `getPublicAuthorFeed`, `getFollowingFeed`, `getPublicConversation`, `getPublicTrends`, `getPublicTrendFeed`; private app subscriptions: `listSubscriptions`, `subscribeToProfile`, `unsubscribeFromProfile`, `onSubscriptionChange`. `list` returns bounded adapter `maturity`, `limitations`, and exhaustive `supported`/`planned`/`unsupported` implementation capabilities (not provider health or enablement); settings, candidate refresh/status, search, and read-only quarantined candidate review via `listCandidates` / `getCandidate` |
|
|
114
|
+
| `r.protocols` | Private Minds safety: `sourceControls` (current enablement and saved choices), `setSourceControl`, `onSourceControlChange`, `reportSource`. Delegated accounts: `nativeSocialAccounts`, `startNativeSocialConnection`, `finishNativeSocialConnection`, `disconnectNativeSocialAccount`. Native follows: `nativeFollowState`, `prepareNativeFollow`, `submitNativeFollow`, `nativeFollowStatus` (native following or pending approval, distinct from a Minds feed subscription; preserve the complete signed Nostr list). Native reposts and undo: `nativeRepostState`, `prepareNativeRepost`, `submitNativeRepost`, `nativeRepostStatus` (public posts, explicit approval, connected account, no uncertain retries). Native likes and unlikes: `nativeLikeState`, `prepareNativeLike`, `submitNativeLike`, `nativeLikeStatus` (connected authority, app enablement and explicit approval; resume pending actions instead of duplicating them). Reviewed replies and optional linked posts: `prepareNativeReply`, `submitNativeReply`, `nativeReplyStatus`, `nativeReplyHistory`, `prepareNativeReplyRemoval`, `removeNativeReply` (require deployed API support and app enablement). Keyless shared post links: `sharedNetworks(projectId)`, `getSharedConversation(projectId, { protocol, post, readRef? })`. Member public reading: `searchPublicPosts` (selected account required for Bluesky/ActivityPub; public Nostr search), `getConnectedSocialConversation` (preserve result readerAccountId/readRef), `publicNetworks`, `searchPublicProfiles`, `getPublicProfile`, `getPublicAuthorFeed`, `getFollowingFeed`, `getPublicConversation`, `getPublicTrends`, `getPublicTrendFeed`; private app subscriptions: `listSubscriptions`, `subscribeToProfile`, `unsubscribeFromProfile`, `onSubscriptionChange`. `list` returns bounded adapter `maturity`, `limitations`, and exhaustive `supported`/`planned`/`unsupported` implementation capabilities (not provider health or enablement); settings, candidate refresh/status, search, and read-only quarantined candidate review via `listCandidates` / `getCandidate` |
|
|
115
115
|
|
|
116
116
|
Full reference: see [llm.md](./llm.md) (ships with this package) or the type definitions in `dist/`.
|
|
117
117
|
|
|
@@ -589,3 +589,5 @@ per-IP/app budgets. They return no subscriptions, personal safety preferences, a
|
|
|
589
589
|
connections or signing authority. Missing configuration or unavailable safety checks fail
|
|
590
590
|
closed. Signed-in members continue using `getPublicConversation` to apply personal
|
|
591
591
|
blocks/mutes as well. All reply and account endpoints still require authentication.
|
|
592
|
+
|
|
593
|
+
Standalone public text publication uses `protocols.prepareNativePost({ clientMutationId, text, accountIds })`, then explicitly approved `submitNativePost`. Keep the same mutation ID after uncertain preparation; previously attempted deliveries are reconciled without resending. `nativePostStatus` and paginated `nativePostHistory` expose private app/user-owned outcomes. Review current own posts with `prepareNativePostRemoval`, then approve exact removal IDs through `removeNativePost`. Check connected-account `publish_text` capabilities; only explicitly enabled apps may publish. Text is sent unchanged, public only, with each provider’s actual limits. These methods do not accept media, a reply parent or caller-supplied authority.
|
package/dist/index.d.ts
CHANGED
|
@@ -194,7 +194,7 @@ export type { UploadMediaInput, UploadUrlInput, UploadUrlResult } from './resour
|
|
|
194
194
|
export { WalletResource } from './resources/wallet.js';
|
|
195
195
|
export { ProtocolsResource } from './resources/protocols.js';
|
|
196
196
|
export { PROTOCOL_ADAPTER_MATURITIES, PROTOCOL_CAPABILITY_OPERATIONS, PROTOCOL_CAPABILITY_STATUSES, } from './resources/protocols.js';
|
|
197
|
-
export type { SocialProfile, SocialSubscription, SocialSubscriptionChange, SocialProfilePage, SocialNetwork, SocialPost, SocialConversation, SocialTrend, SocialTrendProvenance, SocialTrends, SocialTrendFeed, SocialPopularProfiles, SocialAuthorFeed, SocialFollowingFeed, SocialFollowingSource, SearchPublicProfilesParams, HostedProtocolConnections, HostedProtocol, HostedProtocolIdentity, HostedNostrChallenge, HostedNostrIdentityProof, NativeNostrPrepareInput, NativeNostrPrepared, NativeNostrAccount, NativeNostrPostState, NativeNostrReceipt, NativeSocialProtocol, FederationIdentity, FederationIdentityView, NativeSocialAccount, NativeSocialCallbackInput, NativeReplyPrepareInput, NativeFollowSourceInput, NativeFollowPrepareInput, NativeFollowTarget, NativeFollowReceipt, NativeFollowState, NativeFollowReview, NativeLikeSourceInput, NativeRepostSourceInput, NativeLikePrepareInput, NativeRepostPrepareInput, NativeLikeTarget, NativeRepostTarget, NativeLikeReceipt, NativeRepostReceipt, NativeLikeState, NativeRepostState, NativeLikeReview, NativeRepostReview, NativeReplyReceipt, NativeReplyBatch, NativeReplyHistory, NativeDelegatedReplyHistoryItem, NativeNostrReplyResult, NativeNostrReplyHistoryItem, NativeReplyRemovalReceipt, NativeReplyRemovalPreview, SocialSourceRef, SocialSourceControl, SocialSourceControlChange, HostedPostPreview, ConnectHostedIdentityInput, PreviewHostedPostInput, PublishHostedPostInput, ListProtocolCandidatesParams, ProtocolAdapterMaturity, ProtocolAdapterMetadata, ProtocolCandidateListResponse, ProtocolCandidatePageMeta, ProtocolCapabilityOperation, ProtocolCapabilityStatus, ProtocolCollectionStatus, ProtocolIngestionReplayResult, ProtocolIngestionStatus, ProtocolQuarantinedCandidate, ProtocolRefreshResult, ProtocolSettings, ProtocolSettingsUpdateResult, ReplayProtocolIngestionJobInput, UpdateSettingsInput as UpdateProtocolSettingsInput, } from './resources/protocols.js';
|
|
197
|
+
export type { SocialProfile, SocialSubscription, SocialSubscriptionChange, SocialProfilePage, SocialNetwork, SocialPost, SocialConversation, SocialTrend, SocialTrendProvenance, SocialTrends, SocialTrendFeed, SocialPopularProfiles, SocialAuthorFeed, SocialFollowingFeed, SocialFollowingSource, SearchPublicProfilesParams, SearchPublicPostsParams, SocialPostSearch, HostedProtocolConnections, HostedProtocol, HostedProtocolIdentity, HostedNostrChallenge, HostedNostrIdentityProof, NativeNostrPrepareInput, NativeNostrPrepared, NativeNostrAccount, NativeNostrPostState, NativeNostrReceipt, NativeSocialProtocol, FederationIdentity, FederationIdentityView, NativeSocialAccount, NativeSocialCallbackInput, NativeReplyPrepareInput, NativePostPrepareInput, NativePostBatch, NativePostHistory, NativeFollowSourceInput, NativeFollowPrepareInput, NativeFollowTarget, NativeFollowReceipt, NativeFollowState, NativeFollowReview, NativeLikeSourceInput, NativeRepostSourceInput, NativeLikePrepareInput, NativeRepostPrepareInput, NativeLikeTarget, NativeRepostTarget, NativeLikeReceipt, NativeRepostReceipt, NativeLikeState, NativeRepostState, NativeLikeReview, NativeRepostReview, NativeReplyReceipt, NativeReplyBatch, NativeReplyHistory, NativeDelegatedReplyHistoryItem, NativeNostrReplyResult, NativeNostrReplyHistoryItem, NativeReplyRemovalReceipt, NativeReplyRemovalPreview, SocialSourceRef, SocialSourceControl, SocialSourceControlChange, HostedPostPreview, ConnectHostedIdentityInput, PreviewHostedPostInput, PublishHostedPostInput, ListProtocolCandidatesParams, ProtocolAdapterMaturity, ProtocolAdapterMetadata, ProtocolCandidateListResponse, ProtocolCandidatePageMeta, ProtocolCapabilityOperation, ProtocolCapabilityStatus, ProtocolCollectionStatus, ProtocolIngestionReplayResult, ProtocolIngestionStatus, ProtocolQuarantinedCandidate, ProtocolRefreshResult, ProtocolSettings, ProtocolSettingsUpdateResult, ReplayProtocolIngestionJobInput, UpdateSettingsInput as UpdateProtocolSettingsInput, } from './resources/protocols.js';
|
|
198
198
|
export { InboxResource } from './resources/inbox.js';
|
|
199
199
|
export { NetworkResource } from './resources/network.js';
|
|
200
200
|
export { SimulatorResource } from './resources/simulator.js';
|
|
@@ -589,6 +589,31 @@ export interface NativeReplyBatch {
|
|
|
589
589
|
} | null;
|
|
590
590
|
}>;
|
|
591
591
|
}
|
|
592
|
+
/** Public text only; accounts are selected explicitly in the shared editor. */
|
|
593
|
+
export interface NativePostPrepareInput {
|
|
594
|
+
clientMutationId: string;
|
|
595
|
+
text: string;
|
|
596
|
+
accountIds: string[];
|
|
597
|
+
}
|
|
598
|
+
export interface NativePostBatch {
|
|
599
|
+
id: string;
|
|
600
|
+
clientMutationId: string;
|
|
601
|
+
expiresAt: string;
|
|
602
|
+
deliveries: Array<Omit<NativeReplyBatch['deliveries'][number], 'kind' | 'parent' | 'recoverable' | 'replacedBy'> & {
|
|
603
|
+
audience: 'public';
|
|
604
|
+
maxCharacters: number;
|
|
605
|
+
}>;
|
|
606
|
+
}
|
|
607
|
+
export interface NativePostHistory {
|
|
608
|
+
items: Array<{
|
|
609
|
+
id: string;
|
|
610
|
+
createdAt: string;
|
|
611
|
+
text: string;
|
|
612
|
+
textTruncated: boolean;
|
|
613
|
+
deliveries: Array<Omit<NativePostBatch['deliveries'][number], 'text' | 'wireText' | 'maxCharacters'>>;
|
|
614
|
+
}>;
|
|
615
|
+
cursor: string | null;
|
|
616
|
+
}
|
|
592
617
|
export interface NativeSocialCallbackInput {
|
|
593
618
|
protocol: NativeSocialProtocol;
|
|
594
619
|
state: string;
|
|
@@ -742,8 +767,9 @@ export interface SocialNetwork {
|
|
|
742
767
|
url: string;
|
|
743
768
|
};
|
|
744
769
|
coverage: string;
|
|
745
|
-
capabilities: Array<'profile_search' | 'profile_read' | 'original_author_posts' | 'minds_subscription' | 'following_feed' | 'conversation_read' | 'public_trends' | 'trend_feed' | 'popular_accounts'>;
|
|
770
|
+
capabilities: Array<'profile_search' | 'profile_read' | 'original_author_posts' | 'minds_subscription' | 'following_feed' | 'conversation_read' | 'public_trends' | 'trend_feed' | 'popular_accounts' | 'post_search'>;
|
|
746
771
|
profileSearchPagination: boolean;
|
|
772
|
+
postSearchAccountRequired?: boolean;
|
|
747
773
|
conversationCoverage?: string;
|
|
748
774
|
}
|
|
749
775
|
/** Public source identity, independent of any local Minds user or handle. */
|
|
@@ -805,6 +831,25 @@ export interface SocialPost {
|
|
|
805
831
|
}>;
|
|
806
832
|
hasAdditionalContent: boolean;
|
|
807
833
|
}
|
|
834
|
+
export interface SocialPostSearch {
|
|
835
|
+
items: SocialPost[];
|
|
836
|
+
cursor: string | null;
|
|
837
|
+
query: string;
|
|
838
|
+
provider: {
|
|
839
|
+
name: string;
|
|
840
|
+
url: string;
|
|
841
|
+
};
|
|
842
|
+
observedAt: string;
|
|
843
|
+
coverage: 'provider_search_window';
|
|
844
|
+
readerAccountId: string | null;
|
|
845
|
+
}
|
|
846
|
+
export interface SearchPublicPostsParams {
|
|
847
|
+
protocol: 'bluesky' | 'activitypub' | 'nostr';
|
|
848
|
+
query: string;
|
|
849
|
+
accountId?: string;
|
|
850
|
+
limit?: number;
|
|
851
|
+
cursor?: string;
|
|
852
|
+
}
|
|
808
853
|
export interface SocialAuthorFeed {
|
|
809
854
|
items: SocialPost[];
|
|
810
855
|
cursor: string | null;
|
|
@@ -907,6 +952,15 @@ export declare class ProtocolsResource {
|
|
|
907
952
|
}): Promise<SingleResponse<SocialConversation>>;
|
|
908
953
|
publicNetworks(): Promise<SingleResponse<SocialNetwork[]>>;
|
|
909
954
|
/** Query the live public network. It does not import users or posts. */
|
|
955
|
+
searchPublicPosts(params: SearchPublicPostsParams): Promise<SingleResponse<SocialPostSearch>>;
|
|
956
|
+
/** Read public-only conversation content through the current owner's selected account. */
|
|
957
|
+
getConnectedSocialConversation(params: {
|
|
958
|
+
protocol: 'bluesky' | 'activitypub';
|
|
959
|
+
accountId: string;
|
|
960
|
+
post: string;
|
|
961
|
+
readRef?: string;
|
|
962
|
+
}): Promise<SingleResponse<SocialConversation>>;
|
|
963
|
+
/** Search public profiles from a network's configured provider. */
|
|
910
964
|
searchPublicProfiles(params: SearchPublicProfilesParams): Promise<SingleResponse<SocialProfilePage>>;
|
|
911
965
|
getPublicProfile(protocol: string, actor: string): Promise<SingleResponse<SocialProfile>>;
|
|
912
966
|
getPublicAuthorFeed(params: {
|
|
@@ -979,6 +1033,42 @@ export declare class ProtocolsResource {
|
|
|
979
1033
|
}): Promise<SingleResponse<NativeRepostReview>>;
|
|
980
1034
|
/** Reconcile the saved action without sending another native write. */
|
|
981
1035
|
nativeRepostStatus(id: string): Promise<SingleResponse<NativeRepostReview>>;
|
|
1036
|
+
/** Prepare exact public text for selected connected Bluesky/ActivityPub accounts. */
|
|
1037
|
+
prepareNativePost(input: NativePostPrepareInput): Promise<SingleResponse<NativePostBatch>>;
|
|
1038
|
+
/** Explicitly approve selected deliveries; never auto-retry an uncertain write. */
|
|
1039
|
+
submitNativePost(id: string, input: {
|
|
1040
|
+
approve: true;
|
|
1041
|
+
deliveryIds: string[];
|
|
1042
|
+
}): Promise<SingleResponse<NativePostBatch & {
|
|
1043
|
+
errors: Record<string, {
|
|
1044
|
+
code: string;
|
|
1045
|
+
message: string;
|
|
1046
|
+
}>;
|
|
1047
|
+
}>>;
|
|
1048
|
+
/** Read the signed-in owner's saved publication review and durable receipts. */
|
|
1049
|
+
nativePostStatus(id: string): Promise<SingleResponse<NativePostBatch>>;
|
|
1050
|
+
/** Page the current app user's standalone publication history. This never sends. */
|
|
1051
|
+
nativePostHistory(params?: {
|
|
1052
|
+
limit?: number;
|
|
1053
|
+
cursor?: string;
|
|
1054
|
+
}): Promise<SingleResponse<NativePostHistory>>;
|
|
1055
|
+
/** Review the current own posts before approving removal. */
|
|
1056
|
+
prepareNativePostRemoval(id: string, input: {
|
|
1057
|
+
deliveryIds: string[];
|
|
1058
|
+
}): Promise<SingleResponse<NativeReplyRemovalPreview>>;
|
|
1059
|
+
/** Remove only the explicitly reviewed own publications. */
|
|
1060
|
+
removeNativePost(id: string, input: {
|
|
1061
|
+
approve: true;
|
|
1062
|
+
removals: Array<{
|
|
1063
|
+
deliveryId: string;
|
|
1064
|
+
removalId: string;
|
|
1065
|
+
}>;
|
|
1066
|
+
}): Promise<SingleResponse<NativePostBatch & {
|
|
1067
|
+
errors: Record<string, {
|
|
1068
|
+
code: string;
|
|
1069
|
+
message: string;
|
|
1070
|
+
}>;
|
|
1071
|
+
}>>;
|
|
982
1072
|
/** Prepare one exact shared reply preview. Keep the mutation ID across uncertain responses. */
|
|
983
1073
|
prepareNativeReply(input: NativeReplyPrepareInput): Promise<SingleResponse<NativeReplyBatch>>;
|
|
984
1074
|
/** Send only explicitly approved delivery IDs from this preview. Repeated submissions reconcile; they do not replay a write. */
|
|
@@ -1040,6 +1130,7 @@ export declare class ProtocolsResource {
|
|
|
1040
1130
|
reportSource(input: {
|
|
1041
1131
|
source: SocialSourceRef;
|
|
1042
1132
|
readRef?: string;
|
|
1133
|
+
accountId?: string;
|
|
1043
1134
|
reason: string;
|
|
1044
1135
|
details?: string;
|
|
1045
1136
|
scope: 'minds';
|
|
@@ -74,6 +74,15 @@ export class ProtocolsResource {
|
|
|
74
74
|
return this.client.get('/protocols/social/networks');
|
|
75
75
|
}
|
|
76
76
|
/** Query the live public network. It does not import users or posts. */
|
|
77
|
+
searchPublicPosts(params) {
|
|
78
|
+
return this.client.get('/protocols/social/post-search', { protocol: params.protocol, query: params.query,
|
|
79
|
+
accountId: params.accountId, limit: params.limit, cursor: params.cursor });
|
|
80
|
+
}
|
|
81
|
+
/** Read public-only conversation content through the current owner's selected account. */
|
|
82
|
+
getConnectedSocialConversation(params) {
|
|
83
|
+
return this.client.get('/protocols/social/connected-conversation', { protocol: params.protocol, accountId: params.accountId, post: params.post, readRef: params.readRef });
|
|
84
|
+
}
|
|
85
|
+
/** Search public profiles from a network's configured provider. */
|
|
77
86
|
searchPublicProfiles(params) {
|
|
78
87
|
return this.client.get('/protocols/social/profiles', {
|
|
79
88
|
protocol: params.protocol, query: params.query, limit: params.limit, cursor: params.cursor,
|
|
@@ -176,6 +185,35 @@ export class ProtocolsResource {
|
|
|
176
185
|
hostedIdentityPath(id);
|
|
177
186
|
return this.client.get(`/protocols/social/reposts/${encodeURIComponent(id)}`);
|
|
178
187
|
}
|
|
188
|
+
/** Prepare exact public text for selected connected Bluesky/ActivityPub accounts. */
|
|
189
|
+
prepareNativePost(input) {
|
|
190
|
+
return this.client.post('/protocols/social/posts/prepare', { clientMutationId: input.clientMutationId,
|
|
191
|
+
text: input.text, accountIds: input.accountIds }, { retry: false });
|
|
192
|
+
}
|
|
193
|
+
/** Explicitly approve selected deliveries; never auto-retry an uncertain write. */
|
|
194
|
+
submitNativePost(id, input) {
|
|
195
|
+
hostedIdentityPath(id);
|
|
196
|
+
return this.client.post(`/protocols/social/posts/${encodeURIComponent(id)}/submit`, { approve: input.approve, deliveryIds: input.deliveryIds }, { retry: false });
|
|
197
|
+
}
|
|
198
|
+
/** Read the signed-in owner's saved publication review and durable receipts. */
|
|
199
|
+
nativePostStatus(id) {
|
|
200
|
+
hostedIdentityPath(id);
|
|
201
|
+
return this.client.get(`/protocols/social/posts/${encodeURIComponent(id)}`);
|
|
202
|
+
}
|
|
203
|
+
/** Page the current app user's standalone publication history. This never sends. */
|
|
204
|
+
nativePostHistory(params = {}) {
|
|
205
|
+
return this.client.get('/protocols/social/posts', { limit: params.limit, cursor: params.cursor });
|
|
206
|
+
}
|
|
207
|
+
/** Review the current own posts before approving removal. */
|
|
208
|
+
prepareNativePostRemoval(id, input) {
|
|
209
|
+
hostedIdentityPath(id);
|
|
210
|
+
return this.client.post(`/protocols/social/posts/${encodeURIComponent(id)}/removals/prepare`, { deliveryIds: input.deliveryIds }, { retry: false });
|
|
211
|
+
}
|
|
212
|
+
/** Remove only the explicitly reviewed own publications. */
|
|
213
|
+
removeNativePost(id, input) {
|
|
214
|
+
hostedIdentityPath(id);
|
|
215
|
+
return this.client.post(`/protocols/social/posts/${encodeURIComponent(id)}/removals/submit`, { approve: input.approve, removals: input.removals.map(item => ({ deliveryId: item.deliveryId, removalId: item.removalId })) }, { retry: false });
|
|
216
|
+
}
|
|
179
217
|
/** Prepare one exact shared reply preview. Keep the mutation ID across uncertain responses. */
|
|
180
218
|
prepareNativeReply(input) {
|
|
181
219
|
return this.client.post('/protocols/social/replies/prepare', { clientMutationId: input.clientMutationId, text: input.text,
|
|
@@ -239,7 +277,7 @@ export class ProtocolsResource {
|
|
|
239
277
|
/** File a report in the app's existing moderation queue, using server-read public source evidence. */
|
|
240
278
|
reportSource(input) {
|
|
241
279
|
return this.client.post('/protocols/social/reports', { source: { protocol: input.source.protocol, kind: input.source.kind, nativeId: input.source.nativeId },
|
|
242
|
-
readRef: input.readRef, reason: input.reason, details: input.details, scope: input.scope }, { retry: false });
|
|
280
|
+
readRef: input.readRef, ...(input.accountId ? { accountId: input.accountId } : {}), reason: input.reason, details: input.details, scope: input.scope }, { retry: false });
|
|
243
281
|
}
|
|
244
282
|
/** Open the returned authorization URL in the user's browser; never submit passwords or tokens. */
|
|
245
283
|
startNativeSocialConnection(input) {
|
package/llm.md
CHANGED
|
@@ -820,3 +820,7 @@ its author's deletion requests on the recorded relay. Other history items use
|
|
|
820
820
|
publication; history stores no signature, signing key or intent. Keep the acting
|
|
821
821
|
user/app-bound result IDs and discard UI state after an account switch. The last
|
|
822
822
|
read-back observation is separate from retained publication/deletion evidence.
|
|
823
|
+
|
|
824
|
+
Standalone public text posts: `prepareNativePost({ clientMutationId, text, accountIds })` → review → `submitNativePost(id, { approve: true, deliveryIds })`. Use `nativePostStatus(id)` / `nativePostHistory({limit,cursor})` for private durable outcomes and `prepareNativePostRemoval(id,{deliveryIds})` → `removeNativePost(id,{approve:true,removals:[{deliveryId,removalId}]})` for reviewed own-post removal. Check `publish_text` capability; no media, reply parent or audience override. Preserve mutation IDs, never create a new send to recover uncertainty.
|
|
825
|
+
|
|
826
|
+
Public post search (API/SDK 0.7.35): `const { data: page } = await r.protocols.searchPublicPosts({ protocol: 'nostr', query: 'open social', limit: 10 })`. Bluesky/ActivityPub require a selected `accountId` from `nativeSocialAccounts()` with `post_search`; older Bluesky grants must reconnect with consent. Open their results with `getConnectedSocialConversation({ protocol, accountId: page.readerAccountId, post: item.nativeId, readRef: item.readRef })` and pass the same accountId to `reportSource` for post reports. Nostr uses `getPublicConversation`. Pages report provider/observedAt and bounded coverage; no invented exhaustive or global search. Keep cursors paired with the exact owner, query, account, limit and connection revision. No writes, credentials or new ingestion are part of search.
|