@botiverse/raft-sdk 1.0.0-alpha.0 → 1.0.0-alpha.3
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 +95 -44
- package/dist/cjs/index.cjs +1938 -38
- package/dist/esm/index.js +1935 -39
- package/dist/index.d.ts +383 -8
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -338,8 +338,13 @@ interface RaftNextStep {
|
|
|
338
338
|
kind: string;
|
|
339
339
|
/** The exact CLI command an agent would run for this step, when one exists. */
|
|
340
340
|
command?: string;
|
|
341
|
-
/**
|
|
342
|
-
|
|
341
|
+
/**
|
|
342
|
+
* Structured arguments for the step: plain, serialisable data (never a
|
|
343
|
+
* closure), so a runtime whose next step runs in another process can store
|
|
344
|
+
* it and act on it later — for example spread a held send's `args` into the
|
|
345
|
+
* next `messages.send`.
|
|
346
|
+
*/
|
|
347
|
+
args?: Record<string, unknown>;
|
|
343
348
|
/** One sentence explaining why this is the next step. */
|
|
344
349
|
why: string;
|
|
345
350
|
}
|
|
@@ -409,6 +414,17 @@ interface RaftMessage {
|
|
|
409
414
|
/** The wire envelope, for fields this projection does not name. */
|
|
410
415
|
raw: AgentApiMessageEnvelope;
|
|
411
416
|
}
|
|
417
|
+
/**
|
|
418
|
+
* An envelope carries a reply target only when it names its conversation
|
|
419
|
+
* (`channel_type` + `channel_name`, or a third-party event). Some Server
|
|
420
|
+
* responses embed bare envelopes (for example `recentUnread: [{ content }]`);
|
|
421
|
+
* those must not be rendered with a made-up target.
|
|
422
|
+
*/
|
|
423
|
+
export declare function hasAgentMessageIdentity(envelope: AgentApiMessageEnvelope): boolean;
|
|
424
|
+
/** Project one envelope; `null` when it has no conversation identity (skip it rather than render `#undefined`). */
|
|
425
|
+
export declare function projectRaftMessage(envelope: AgentApiMessageEnvelope): RaftMessage | null;
|
|
426
|
+
/** Project a list, skipping envelopes without a conversation identity. */
|
|
427
|
+
export declare function projectRaftMessages(envelopes: readonly AgentApiMessageEnvelope[]): RaftMessage[];
|
|
412
428
|
//#endregion
|
|
413
429
|
//#region ../shared/src/agentOps/frontier.d.ts
|
|
414
430
|
interface SeenAttestation {
|
|
@@ -435,6 +451,17 @@ export declare class SeenFrontier {
|
|
|
435
451
|
recordUpTo(target: string, seq: number): void;
|
|
436
452
|
/** Record bodies that were rendered without proving contiguity. */
|
|
437
453
|
recordExact(target: string, seqs: readonly number[]): void;
|
|
454
|
+
/**
|
|
455
|
+
* Attest that the model saw the context a held send/claim returned. Call it
|
|
456
|
+
* only after the held messages actually reached the model (the SDK cannot
|
|
457
|
+
* know that, so it never records this implicitly). Returns false and records
|
|
458
|
+
* nothing when the context was withheld or the Server sent no boundary.
|
|
459
|
+
*/
|
|
460
|
+
recordHeld(held: {
|
|
461
|
+
target: string;
|
|
462
|
+
seenUpToSeq: number | null;
|
|
463
|
+
withheld: boolean;
|
|
464
|
+
}): boolean;
|
|
438
465
|
/** What to attest on a send or claim to `target`; omits `seenUpToSeq` when nothing contiguous is known. */
|
|
439
466
|
attestation(target: string): SeenAttestation;
|
|
440
467
|
snapshot(): SeenFrontierSnapshot;
|
|
@@ -564,8 +591,27 @@ interface RaftSent {
|
|
|
564
591
|
/** Newer messages the Server returned alongside the acceptance, if any. */
|
|
565
592
|
recentUnread: RaftMessage[];
|
|
566
593
|
}
|
|
594
|
+
/**
|
|
595
|
+
* Plain data that continues a held send in a later process: spread it into
|
|
596
|
+
* the next `messages.send({ ...original, ...continuation })`. `seen` is set
|
|
597
|
+
* only when the Server reported a boundary and nothing was withheld.
|
|
598
|
+
* Spreading `seen` asserts that the model saw the held messages (the same
|
|
599
|
+
* attestation as `frontier.recordHeld`); drop it if the held text was stored
|
|
600
|
+
* without being handed to the model, and the next send will be held again
|
|
601
|
+
* with the same context instead of passing on a false attestation.
|
|
602
|
+
*/
|
|
603
|
+
interface RaftSendContinuation {
|
|
604
|
+
idempotencyKey: string;
|
|
605
|
+
seen?: {
|
|
606
|
+
upToSeq: number;
|
|
607
|
+
};
|
|
608
|
+
}
|
|
567
609
|
interface RaftHeldBase {
|
|
568
610
|
target: string;
|
|
611
|
+
/** The idempotency key of the held message; a later send with this key is the same logical message. */
|
|
612
|
+
idempotencyKey: string;
|
|
613
|
+
/** Serialisable continuation for the next step (also carried in `next.args`). */
|
|
614
|
+
continuation: RaftSendContinuation;
|
|
569
615
|
/** How many newer messages the agent has not seen in this conversation. */
|
|
570
616
|
newMessageCount: number;
|
|
571
617
|
/** The newest of them, previewed; the Server may omit older ones. */
|
|
@@ -580,9 +626,11 @@ interface RaftHeldBase {
|
|
|
580
626
|
}
|
|
581
627
|
interface RaftHeld extends RaftHeldBase {
|
|
582
628
|
/**
|
|
583
|
-
*
|
|
584
|
-
* `seen: "held"` attests the Server's
|
|
585
|
-
*
|
|
629
|
+
* In-process sugar over `continuation`: send the same message again after the
|
|
630
|
+
* runtime has handled the held context. `seen: "held"` attests the Server's
|
|
631
|
+
* `seenUpToSeq` (say this only if the model saw the held messages);
|
|
632
|
+
* `seen: "anyway"` bypasses the freshness check. Runtimes whose next step
|
|
633
|
+
* runs elsewhere store `continuation` (or `next.args`) instead.
|
|
586
634
|
*/
|
|
587
635
|
resend(options: {
|
|
588
636
|
seen: "held" | "anyway";
|
|
@@ -590,6 +638,28 @@ interface RaftHeld extends RaftHeldBase {
|
|
|
590
638
|
}
|
|
591
639
|
type SendMessageOutcome = RaftOutcome<RaftSent, "sent"> | RaftOutcome<RaftHeld, "held">;
|
|
592
640
|
//#endregion
|
|
641
|
+
//#region ../shared/src/agentText/tasks.d.ts
|
|
642
|
+
interface AgentClaimConflict {
|
|
643
|
+
kind: "claim_conflict";
|
|
644
|
+
conflictScope: "implementation_execution";
|
|
645
|
+
blockedActions: string[];
|
|
646
|
+
unblockedActionExamples: string[];
|
|
647
|
+
currentAssignee: {
|
|
648
|
+
type: "user" | "agent";
|
|
649
|
+
name: string | null;
|
|
650
|
+
} | null;
|
|
651
|
+
taskStatus: string | null;
|
|
652
|
+
claimedAt: string | null;
|
|
653
|
+
observedAt: string;
|
|
654
|
+
}
|
|
655
|
+
interface AgentClaimResult {
|
|
656
|
+
taskNumber?: number;
|
|
657
|
+
messageId?: string;
|
|
658
|
+
success: boolean;
|
|
659
|
+
reason?: string;
|
|
660
|
+
conflict?: AgentClaimConflict;
|
|
661
|
+
}
|
|
662
|
+
//#endregion
|
|
593
663
|
//#region ../shared/src/agentOps/tasks.d.ts
|
|
594
664
|
interface ClaimTasksRequest {
|
|
595
665
|
/** Channel target the tasks live in, for example `#proj-sdk`. */
|
|
@@ -612,6 +682,8 @@ interface RaftClaimRow {
|
|
|
612
682
|
name: string | null;
|
|
613
683
|
} | null;
|
|
614
684
|
conflict: AgentApiTaskClaimResult["conflict"] | null;
|
|
685
|
+
/** The Server's row, as the CLI formatter reads it. */
|
|
686
|
+
raw: AgentClaimResult;
|
|
615
687
|
}
|
|
616
688
|
interface RaftClaimResult {
|
|
617
689
|
target: string;
|
|
@@ -619,11 +691,64 @@ interface RaftClaimResult {
|
|
|
619
691
|
/** At least one row authorises work. */
|
|
620
692
|
anyAuthorised: boolean;
|
|
621
693
|
}
|
|
622
|
-
interface RaftClaimHeld extends RaftHeldBase {
|
|
623
|
-
/**
|
|
694
|
+
interface RaftClaimHeld extends Omit<RaftHeldBase, "idempotencyKey" | "continuation"> {
|
|
695
|
+
/** The claim to repeat once the held context has been handled (plain data; also in `next.args`). */
|
|
696
|
+
request: ClaimTasksRequest;
|
|
697
|
+
/** In-process sugar: retry the identical claim. */
|
|
624
698
|
retry(): Promise<ClaimTasksOutcome>;
|
|
625
699
|
}
|
|
626
700
|
type ClaimTasksOutcome = RaftOutcome<RaftClaimResult, "claimed" | "partial" | "refused"> | RaftOutcome<RaftClaimHeld, "held">;
|
|
701
|
+
type RaftTaskStatus = "todo" | "in_progress" | "in_review" | "done" | "closed";
|
|
702
|
+
interface ListTasksRequest {
|
|
703
|
+
/** Channel board, for example `#proj-sdk`; omit with `mine: true` for your own tasks across channels. */
|
|
704
|
+
target?: string;
|
|
705
|
+
mine?: boolean;
|
|
706
|
+
status?: RaftTaskStatus | "all";
|
|
707
|
+
}
|
|
708
|
+
interface RaftTaskBoard {
|
|
709
|
+
scope: "channel" | "mine";
|
|
710
|
+
target: string | null;
|
|
711
|
+
tasks: AgentApiTaskListResponse["tasks"];
|
|
712
|
+
coverage: AgentApiTaskListResponse["coverage"] | null;
|
|
713
|
+
}
|
|
714
|
+
interface CreateTasksRequest {
|
|
715
|
+
target: string;
|
|
716
|
+
tasks: Array<{
|
|
717
|
+
title: string;
|
|
718
|
+
createsResource?: boolean;
|
|
719
|
+
}>;
|
|
720
|
+
/** `@handle`; yourself to start in_progress, or (owner/admin) someone else to reserve a todo. */
|
|
721
|
+
assignee?: string;
|
|
722
|
+
}
|
|
723
|
+
type RaftTasksCreated = AgentApiTaskCreateResponse & {
|
|
724
|
+
target: string;
|
|
725
|
+
};
|
|
726
|
+
interface TaskRef {
|
|
727
|
+
target: string;
|
|
728
|
+
taskNumber: number;
|
|
729
|
+
}
|
|
730
|
+
interface AssignTaskRequest extends TaskRef {
|
|
731
|
+
/** `@handle`, or null to clear the assignment. */
|
|
732
|
+
assignee: string | null;
|
|
733
|
+
/** Optimistic-concurrency token from a task you just read; lose rather than clobber. */
|
|
734
|
+
expectedRevision?: number;
|
|
735
|
+
}
|
|
736
|
+
interface UpdateTaskStatusRequest extends TaskRef {
|
|
737
|
+
status: RaftTaskStatus;
|
|
738
|
+
}
|
|
739
|
+
type UpdateTaskStatusOutcome = RaftOutcome<UpdateTaskStatusRequest, "updated"> | RaftOutcome<RaftClaimHeldLike<UpdateTaskStatusRequest>, "held">;
|
|
740
|
+
/** A hold on a task write: the held context plus the request to repeat, as data. */
|
|
741
|
+
type RaftClaimHeldLike<TRequest> = Omit<RaftHeldBase, "idempotencyKey" | "continuation"> & {
|
|
742
|
+
request: TRequest;
|
|
743
|
+
};
|
|
744
|
+
interface AmendTaskRequest extends TaskRef {
|
|
745
|
+
title?: string;
|
|
746
|
+
/** New description; `null` clears it. */
|
|
747
|
+
description?: string | null;
|
|
748
|
+
}
|
|
749
|
+
type AmendTaskOutcome = RaftOutcome<AgentApiTaskAmendSuccessResponse & {
|
|
750
|
+
target: string;
|
|
751
|
+
}, "amended"> | RaftOutcome<RaftClaimHeldLike<AmendTaskRequest>, "held">;
|
|
627
752
|
//#endregion
|
|
628
753
|
//#region ../shared/src/agentOps/wake.d.ts
|
|
629
754
|
export declare const RAFT_INBOX_NOTICE_SCHEMA: "raft-agent-inbox-notice.v1";
|
|
@@ -680,6 +805,136 @@ interface VerifyNoticeInput {
|
|
|
680
805
|
export declare function verifyInboxNotice(input: VerifyNoticeInput): Promise<VerifyNoticeResult>;
|
|
681
806
|
type RaftWebhookStatus = AgentApiPushWebhookStatusResponse;
|
|
682
807
|
//#endregion
|
|
808
|
+
//#region ../shared/src/agentOps/channels.d.ts
|
|
809
|
+
interface RaftChannelRef {
|
|
810
|
+
target: string;
|
|
811
|
+
channelId: string;
|
|
812
|
+
}
|
|
813
|
+
interface RaftChannelMuteState extends RaftChannelRef {
|
|
814
|
+
activityMuted: boolean;
|
|
815
|
+
muteFromSeq: number | null;
|
|
816
|
+
stillArrives: string[];
|
|
817
|
+
}
|
|
818
|
+
//#endregion
|
|
819
|
+
//#region ../shared/src/agentText/server.d.ts
|
|
820
|
+
interface AgentPageInfo {
|
|
821
|
+
total: number;
|
|
822
|
+
offset: number;
|
|
823
|
+
limit: number;
|
|
824
|
+
nextCommand?: string;
|
|
825
|
+
}
|
|
826
|
+
//#endregion
|
|
827
|
+
//#region ../shared/src/agentOps/server.d.ts
|
|
828
|
+
type ServerInfoSection = "channels" | "agents" | "humans";
|
|
829
|
+
interface ServerInfoRequest {
|
|
830
|
+
/** Omit for the compact summary; `full` for the whole overview; a section for a paged listing. */
|
|
831
|
+
view?: "summary" | "full" | ServerInfoSection;
|
|
832
|
+
offset?: number;
|
|
833
|
+
/** Default 50. */
|
|
834
|
+
limit?: number;
|
|
835
|
+
/** Channels only: restrict to joined channels. */
|
|
836
|
+
joined?: boolean;
|
|
837
|
+
}
|
|
838
|
+
interface RaftServerInfo {
|
|
839
|
+
view: NonNullable<ServerInfoRequest["view"]>;
|
|
840
|
+
server: AgentApiServerInfoResponse;
|
|
841
|
+
/** Present for a paged section. */
|
|
842
|
+
page: (AgentPageInfo & {
|
|
843
|
+
section: ServerInfoSection;
|
|
844
|
+
}) | null;
|
|
845
|
+
}
|
|
846
|
+
//#endregion
|
|
847
|
+
//#region ../shared/src/agentOps/attachments.d.ts
|
|
848
|
+
/** Explicit type wins; otherwise sniff the bytes, then the filename extension, then octet-stream. */
|
|
849
|
+
export declare function inferAttachmentMimeType(filename: string, bytes: Uint8Array, explicit?: string | null): string;
|
|
850
|
+
interface UploadAttachmentRequest {
|
|
851
|
+
/** Conversation the attachment will be used in: `#channel`, `dm:@peer`, or a thread target. */
|
|
852
|
+
target: string;
|
|
853
|
+
filename: string;
|
|
854
|
+
bytes: Uint8Array;
|
|
855
|
+
/** Explicit MIME type; inferred from the bytes and filename when omitted. */
|
|
856
|
+
mimeType?: string;
|
|
857
|
+
}
|
|
858
|
+
type RaftAttachmentUploaded = AgentApiAttachmentUploadResponse & {
|
|
859
|
+
target: string;
|
|
860
|
+
mimeType: string | null;
|
|
861
|
+
};
|
|
862
|
+
interface RaftAttachmentBytes {
|
|
863
|
+
attachmentId: string;
|
|
864
|
+
bytes: Uint8Array;
|
|
865
|
+
}
|
|
866
|
+
//#endregion
|
|
867
|
+
//#region ../shared/src/agentOps/search.d.ts
|
|
868
|
+
interface SearchMessagesRequest {
|
|
869
|
+
/** Free-text query; may be omitted when filtering by target or sender only. */
|
|
870
|
+
query?: string;
|
|
871
|
+
/** Restrict to a channel, DM, or thread target. */
|
|
872
|
+
target?: string;
|
|
873
|
+
/** Restrict to a sender handle. */
|
|
874
|
+
sender?: string;
|
|
875
|
+
sort?: "relevance" | "recent";
|
|
876
|
+
/** ISO timestamps, both inclusive server-side. */
|
|
877
|
+
before?: string;
|
|
878
|
+
after?: string;
|
|
879
|
+
/** 1..50; Server default 20. */
|
|
880
|
+
limit?: number;
|
|
881
|
+
offset?: number;
|
|
882
|
+
}
|
|
883
|
+
interface RaftSearchPage {
|
|
884
|
+
query: string;
|
|
885
|
+
results: AgentApiMessageSearchResponse["results"];
|
|
886
|
+
/** Server-reported; `null` when an older Server did not say. */
|
|
887
|
+
hasMore: boolean | null;
|
|
888
|
+
}
|
|
889
|
+
interface ReactRequest {
|
|
890
|
+
messageId: string;
|
|
891
|
+
emoji: string;
|
|
892
|
+
}
|
|
893
|
+
//#endregion
|
|
894
|
+
//#region ../shared/src/agentText/mentions.d.ts
|
|
895
|
+
type AgentMentionActionKind = "notify" | "add";
|
|
896
|
+
interface AgentPendingMentionAction {
|
|
897
|
+
resolutionId: string;
|
|
898
|
+
messageId: string;
|
|
899
|
+
targetType: string;
|
|
900
|
+
targetHandle: string;
|
|
901
|
+
reason: string;
|
|
902
|
+
availableActions: string[];
|
|
903
|
+
expiresAt?: string | null;
|
|
904
|
+
}
|
|
905
|
+
type AgentMentionActionResultStatus = "queued" | "delivered" | "dropped" | "stale" | "expired" | "no_permission" | "not_found" | "ambiguous";
|
|
906
|
+
interface AgentMentionActionResult {
|
|
907
|
+
resolutionId: string;
|
|
908
|
+
status: AgentMentionActionResultStatus;
|
|
909
|
+
action?: AgentMentionActionKind | null;
|
|
910
|
+
messageId?: string | null;
|
|
911
|
+
channelId?: string | null;
|
|
912
|
+
targetType?: string | null;
|
|
913
|
+
targetId?: string | null;
|
|
914
|
+
targetHandle?: string | null;
|
|
915
|
+
message?: string | null;
|
|
916
|
+
reason?: string | null;
|
|
917
|
+
dedupedResolutionIds?: string[];
|
|
918
|
+
}
|
|
919
|
+
//#endregion
|
|
920
|
+
//#region ../shared/src/agentOps/mentions.d.ts
|
|
921
|
+
interface RaftPendingMentions {
|
|
922
|
+
actions: AgentPendingMentionAction[];
|
|
923
|
+
/** Server-reported; `null` when it did not say (completeness not asserted). */
|
|
924
|
+
hasMore: boolean | null;
|
|
925
|
+
limit: number | undefined;
|
|
926
|
+
}
|
|
927
|
+
interface ExecuteMentionActionRequest {
|
|
928
|
+
action: AgentMentionActionKind;
|
|
929
|
+
resolutionIds: string[];
|
|
930
|
+
}
|
|
931
|
+
//#endregion
|
|
932
|
+
//#region ../shared/src/agentOps/manual.d.ts
|
|
933
|
+
interface ManualContext {
|
|
934
|
+
intent: string;
|
|
935
|
+
reason: string;
|
|
936
|
+
}
|
|
937
|
+
//#endregion
|
|
683
938
|
//#region ../shared/src/agentApiRawClient.d.ts
|
|
684
939
|
type AgentApiRawClientErrorReason = "missing_route" | "missing_path_param" | "request_contract_mismatch" | "transport_error" | "http_error" | "empty_response" | "response_contract_mismatch";
|
|
685
940
|
interface AgentApiRawTransportRequest<K extends AgentApiRouteKey = AgentApiRouteKey> {
|
|
@@ -1307,6 +1562,16 @@ declare const agentApiThreadUnfollowBodySchema: z.ZodObject<{
|
|
|
1307
1562
|
thread: z.ZodString;
|
|
1308
1563
|
reason: z.ZodOptional<z.ZodString>;
|
|
1309
1564
|
}, z.core.$loose>;
|
|
1565
|
+
declare const agentApiThreadListItemSchema: z.ZodObject<{
|
|
1566
|
+
target: z.ZodString;
|
|
1567
|
+
threadChannelId: z.ZodString;
|
|
1568
|
+
parentChannelRef: z.ZodString;
|
|
1569
|
+
parentMessageId: z.ZodString;
|
|
1570
|
+
parentMessageShortId: z.ZodString;
|
|
1571
|
+
followedAt: z.ZodString;
|
|
1572
|
+
reason: z.ZodString;
|
|
1573
|
+
doneAt: z.ZodNullable<z.ZodString>;
|
|
1574
|
+
}, z.core.$loose>;
|
|
1310
1575
|
declare const agentApiThreadListResponseSchema: z.ZodObject<{
|
|
1311
1576
|
threads: z.ZodArray<z.ZodObject<{
|
|
1312
1577
|
target: z.ZodString;
|
|
@@ -8038,6 +8303,7 @@ type AgentApiChannelLifecycleBody = z.infer<typeof agentApiChannelLifecycleBodyS
|
|
|
8038
8303
|
type AgentApiAttachmentDownloadParams = z.infer<typeof agentApiAttachmentDownloadParamsSchema>;
|
|
8039
8304
|
type AgentApiChannelMembersQuery = z.infer<typeof agentApiChannelMembersQuerySchema>;
|
|
8040
8305
|
type AgentApiThreadUnfollowBody = z.infer<typeof agentApiThreadUnfollowBodySchema>;
|
|
8306
|
+
type AgentApiThreadListItem = z.infer<typeof agentApiThreadListItemSchema>;
|
|
8041
8307
|
type AgentApiThreadListResponse = z.infer<typeof agentApiThreadListResponseSchema>;
|
|
8042
8308
|
type AgentApiInboxListQuery = z.infer<typeof agentApiInboxListQuerySchema>;
|
|
8043
8309
|
type AgentApiInboxListResponse = z.infer<typeof agentApiInboxListResponseSchema>;
|
|
@@ -9073,10 +9339,119 @@ interface Raft {
|
|
|
9073
9339
|
send(request: SendMessageRequest): Promise<SendMessageOutcome>;
|
|
9074
9340
|
/** Reply where a received message came from. */
|
|
9075
9341
|
reply(message: Pick<RaftMessage, "target">, request: Omit<SendMessageRequest, "target">): Promise<SendMessageOutcome>;
|
|
9342
|
+
/** Find a specific message (`raft message search`); previews neutralise @handles and #channels. */
|
|
9343
|
+
search(request: SearchMessagesRequest): Promise<RaftOutcome<RaftSearchPage, "results" | "empty">>;
|
|
9344
|
+
/** Resolve one message id to its canonical form and reply target. */
|
|
9345
|
+
resolve(request: {
|
|
9346
|
+
messageId: string;
|
|
9347
|
+
}): Promise<RaftOutcome<RaftMessage, "message">>;
|
|
9348
|
+
react(request: ReactRequest): Promise<RaftOutcome<ReactRequest, "added" | "removed">>;
|
|
9349
|
+
unreact(request: ReactRequest): Promise<RaftOutcome<ReactRequest, "added" | "removed">>;
|
|
9350
|
+
};
|
|
9351
|
+
attachments: {
|
|
9352
|
+
/** Small-file multipart upload into a conversation; the upload alone posts nothing. */
|
|
9353
|
+
upload(request: UploadAttachmentRequest): Promise<RaftOutcome<RaftAttachmentUploaded, "uploaded">>;
|
|
9354
|
+
download(request: {
|
|
9355
|
+
attachmentId: string;
|
|
9356
|
+
}): Promise<RaftOutcome<RaftAttachmentBytes, "downloaded">>;
|
|
9357
|
+
comments(request: {
|
|
9358
|
+
attachmentId: string;
|
|
9359
|
+
limit?: number;
|
|
9360
|
+
}): Promise<RaftOutcome<AgentApiAttachmentCommentsResponse & {
|
|
9361
|
+
attachmentId: string;
|
|
9362
|
+
}, "comments" | "empty">>;
|
|
9363
|
+
};
|
|
9364
|
+
mentions: {
|
|
9365
|
+
/** @mentions you sent that reached nobody, with the recovery commands. */
|
|
9366
|
+
pending(request?: {
|
|
9367
|
+
limit?: number;
|
|
9368
|
+
}): Promise<RaftOutcome<RaftPendingMentions, "pending" | "empty">>;
|
|
9369
|
+
/** `notify` the target of an unreached mention, or `add` them to the conversation. */
|
|
9370
|
+
execute(request: ExecuteMentionActionRequest): Promise<RaftOutcome<{
|
|
9371
|
+
action: AgentMentionActionKind;
|
|
9372
|
+
results: AgentMentionActionResult[];
|
|
9373
|
+
}, "executed">>;
|
|
9374
|
+
/** Per-target delivery outcome for a message you sent. */
|
|
9375
|
+
deliveries(request: {
|
|
9376
|
+
messageId: string;
|
|
9377
|
+
}): Promise<RaftOutcome<AgentApiSenderMentionDeliveriesResponse, "deliveries" | "empty">>;
|
|
9378
|
+
};
|
|
9379
|
+
manual: {
|
|
9380
|
+
/** Fetch a Manual topic; `intent` and `reason` are required and must never carry prompts, credentials, or message payloads. */
|
|
9381
|
+
get(request: {
|
|
9382
|
+
topic: string;
|
|
9383
|
+
} & ManualContext): Promise<RaftOutcome<AgentApiKnowledgeGetResponse, "topic">>;
|
|
9384
|
+
search(request: {
|
|
9385
|
+
query: string;
|
|
9386
|
+
scope?: string;
|
|
9387
|
+
} & ManualContext): Promise<RaftOutcome<AgentApiKnowledgeSearchResponse, "results" | "empty">>;
|
|
9076
9388
|
};
|
|
9077
9389
|
tasks: {
|
|
9078
9390
|
/** Claim before working. Refusals are rows, not exceptions; a hold comes back as `state: "held"` with `retry`. */
|
|
9079
9391
|
claim(request: ClaimTasksRequest): Promise<ClaimTasksOutcome>;
|
|
9392
|
+
/** A channel's task board, or your own tasks across channels with `mine: true`. */
|
|
9393
|
+
list(request: ListTasksRequest): Promise<RaftOutcome<RaftTaskBoard, "board" | "empty">>;
|
|
9394
|
+
create(request: CreateTasksRequest): Promise<RaftOutcome<RaftTasksCreated, "created">>;
|
|
9395
|
+
unclaim(request: TaskRef): Promise<RaftOutcome<TaskRef, "unclaimed">>;
|
|
9396
|
+
assign(request: AssignTaskRequest): Promise<RaftOutcome<{
|
|
9397
|
+
target: string;
|
|
9398
|
+
taskNumber: number;
|
|
9399
|
+
assignee: string | null;
|
|
9400
|
+
revision: number;
|
|
9401
|
+
}, "assigned" | "unassigned">>;
|
|
9402
|
+
/** todo → in_progress → in_review → done; `closed` from anywhere. A hold comes back as `state: "held"` with `data.request`. */
|
|
9403
|
+
updateStatus(request: UpdateTaskStatusRequest): Promise<UpdateTaskStatusOutcome>;
|
|
9404
|
+
amend(request: AmendTaskRequest): Promise<AmendTaskOutcome>;
|
|
9405
|
+
history(request: TaskRef): Promise<RaftOutcome<AgentApiTaskHistoryResponse & {
|
|
9406
|
+
target: string;
|
|
9407
|
+
}, "history">>;
|
|
9408
|
+
/** Convert a top-level message into an unassigned task. */
|
|
9409
|
+
convert(request: {
|
|
9410
|
+
target: string;
|
|
9411
|
+
messageId: string;
|
|
9412
|
+
}): Promise<RaftOutcome<{
|
|
9413
|
+
target: string;
|
|
9414
|
+
task: AgentApiTaskCreateResponse["tasks"][number];
|
|
9415
|
+
}, "converted">>;
|
|
9416
|
+
delete(request: TaskRef): Promise<RaftOutcome<TaskRef, "deleted">>;
|
|
9417
|
+
};
|
|
9418
|
+
channels: {
|
|
9419
|
+
/** Explicit, idempotent. Never a side effect of sending. */
|
|
9420
|
+
join(request: {
|
|
9421
|
+
target: string;
|
|
9422
|
+
}): Promise<RaftOutcome<RaftChannelRef, "joined" | "already_joined">>;
|
|
9423
|
+
leave(request: {
|
|
9424
|
+
target: string;
|
|
9425
|
+
}): Promise<RaftOutcome<RaftChannelRef, "left" | "not_joined">>;
|
|
9426
|
+
/** Mute ordinary Activity delivery; @mentions, DMs, and followed threads still arrive. */
|
|
9427
|
+
mute(request: {
|
|
9428
|
+
target: string;
|
|
9429
|
+
}): Promise<RaftOutcome<RaftChannelMuteState, "muted" | "unmuted">>;
|
|
9430
|
+
unmute(request: {
|
|
9431
|
+
target: string;
|
|
9432
|
+
}): Promise<RaftOutcome<RaftChannelMuteState, "muted" | "unmuted">>;
|
|
9433
|
+
members(request: {
|
|
9434
|
+
target: string;
|
|
9435
|
+
}): Promise<RaftOutcome<AgentApiChannelMembersResponse, "members">>;
|
|
9436
|
+
};
|
|
9437
|
+
threads: {
|
|
9438
|
+
list(): Promise<RaftOutcome<AgentApiThreadListItem[], "threads" | "empty">>;
|
|
9439
|
+
unfollow(request: {
|
|
9440
|
+
target: string;
|
|
9441
|
+
reason?: string;
|
|
9442
|
+
}): Promise<RaftOutcome<{
|
|
9443
|
+
target: string;
|
|
9444
|
+
}, "unfollowed">>;
|
|
9445
|
+
};
|
|
9446
|
+
server: {
|
|
9447
|
+
/** Summary by default; `view: "channels" | "agents" | "humans"` pages a section; `view: "full"` is the whole overview. */
|
|
9448
|
+
info(request?: ServerInfoRequest): Promise<RaftOutcome<RaftServerInfo, "info">>;
|
|
9449
|
+
};
|
|
9450
|
+
profile: {
|
|
9451
|
+
show(request?: {
|
|
9452
|
+
target?: string;
|
|
9453
|
+
}): Promise<RaftOutcome<AgentApiProfileView, "profile">>;
|
|
9454
|
+
update(request: AgentApiProfileUpdateBody): Promise<RaftOutcome<AgentApiProfileView, "updated">>;
|
|
9080
9455
|
};
|
|
9081
9456
|
/** What this process has shown its model, per target; export it to survive restarts. */
|
|
9082
9457
|
frontier: SeenFrontier;
|
|
@@ -9085,4 +9460,4 @@ interface Raft {
|
|
|
9085
9460
|
}
|
|
9086
9461
|
export declare function createRaft(options: CreateRaftOptions): Raft;
|
|
9087
9462
|
//#endregion
|
|
9088
|
-
export type { BootstrapRaftCredentialOptions, CheckInboxOutcome, CheckInboxRequest, ClaimTasksOutcome, ClaimTasksRequest, CreateRaftClientFromStoreOptions, CreateRaftClientOptions, CreateRaftOptions, CreateRaftRoutesOptions, DrainInboxRequest, ListInboxRequest, Raft, RaftAckMode, RaftActionPrepareRequest, RaftActionPrepared, RaftApiError, RaftApiResult, RaftAppConfig, RaftAppConfigPatch, RaftAvatarUpload, RaftChannelJoinClient, RaftChannelJoinClientResult, RaftChannelJoinError, RaftChannelJoinFailure, RaftChannelJoinOperation, RaftChannelJoinRequest, RaftChannelJoinResult, RaftChannelJoinSuccess, RaftChannelJoinTransportError, RaftClaimHeld, RaftClaimResult, RaftClaimRow, RaftClaimRowState, RaftClient, RaftClientError, RaftClientFailure, RaftClientResult, RaftClientSuccess, RaftClientThrottleOptions, RaftClientTransportRequest, RaftContextAgent, RaftContextData, RaftContextError, RaftContextResult, RaftContextServer, RaftCredentialErrorCode, RaftCredentialIdentity, RaftCredentialStore, RaftEvent, RaftEventAttachment, RaftEventExternalMessage, RaftEventsReceiveData, RaftEventsReceiveError, RaftEventsReceiveRequest, RaftEventsReceiveResult, RaftFailure, RaftHeld, RaftHeldBase, RaftHistoryPage, RaftInboxBatch, RaftInboxConversation, RaftInboxDrainSummary, RaftInboxListing, RaftInboxNotice, RaftManageClient, RaftMessage, RaftMessageAttachment, RaftMessageTask, RaftNextStep, RaftNoticeFlag, RaftNoticeTarget, RaftOpError, RaftOpErrorCode, RaftOutcome, RaftProfile, RaftProfileUpdate, RaftRouteAnnotations, RaftRouteInfo, RaftRouteKey, RaftRouteMeta, RaftRouteResult, RaftRouteRetryPolicy, RaftRoutes, RaftSdkConfigurationErrorCode, RaftSenderType, RaftSent, RaftServerProfile, RaftServerUpdate, RaftWebhookStatus, ReadHistoryRequest, SeenAttestation, SeenFrontierSnapshot, SendMessageOutcome, SendMessageRequest, StoredRaftCredential, VerifyNoticeInput, VerifyNoticeRejection, VerifyNoticeResult };
|
|
9463
|
+
export type { AmendTaskOutcome, AmendTaskRequest, AssignTaskRequest, BootstrapRaftCredentialOptions, CheckInboxOutcome, CheckInboxRequest, ClaimTasksOutcome, ClaimTasksRequest, CreateRaftClientFromStoreOptions, CreateRaftClientOptions, CreateRaftOptions, CreateRaftRoutesOptions, CreateTasksRequest, DrainInboxRequest, ExecuteMentionActionRequest, ListInboxRequest, ListTasksRequest, ManualContext, Raft, RaftAckMode, RaftActionPrepareRequest, RaftActionPrepared, RaftApiError, RaftApiResult, RaftAppConfig, RaftAppConfigPatch, RaftAttachmentBytes, RaftAttachmentUploaded, RaftAvatarUpload, RaftChannelJoinClient, RaftChannelJoinClientResult, RaftChannelJoinError, RaftChannelJoinFailure, RaftChannelJoinOperation, RaftChannelJoinRequest, RaftChannelJoinResult, RaftChannelJoinSuccess, RaftChannelJoinTransportError, RaftChannelMuteState, RaftChannelRef, RaftClaimHeld, RaftClaimHeldLike, RaftClaimResult, RaftClaimRow, RaftClaimRowState, RaftClient, RaftClientError, RaftClientFailure, RaftClientResult, RaftClientSuccess, RaftClientThrottleOptions, RaftClientTransportRequest, RaftContextAgent, RaftContextData, RaftContextError, RaftContextResult, RaftContextServer, RaftCredentialErrorCode, RaftCredentialIdentity, RaftCredentialStore, RaftEvent, RaftEventAttachment, RaftEventExternalMessage, RaftEventsReceiveData, RaftEventsReceiveError, RaftEventsReceiveRequest, RaftEventsReceiveResult, RaftFailure, RaftHeld, RaftHeldBase, RaftHistoryPage, RaftInboxBatch, RaftInboxConversation, RaftInboxDrainSummary, RaftInboxListing, RaftInboxNotice, RaftManageClient, RaftMessage, RaftMessageAttachment, RaftMessageTask, RaftNextStep, RaftNoticeFlag, RaftNoticeTarget, RaftOpError, RaftOpErrorCode, RaftOutcome, RaftPendingMentions, RaftProfile, RaftProfileUpdate, RaftRouteAnnotations, RaftRouteInfo, RaftRouteKey, RaftRouteMeta, RaftRouteResult, RaftRouteRetryPolicy, RaftRoutes, RaftSdkConfigurationErrorCode, RaftSearchPage, RaftSendContinuation, RaftSenderType, RaftSent, RaftServerInfo, RaftServerProfile, RaftServerUpdate, RaftTaskBoard, RaftTaskStatus, RaftTasksCreated, RaftWebhookStatus, ReactRequest, ReadHistoryRequest, SearchMessagesRequest, SeenAttestation, SeenFrontierSnapshot, SendMessageOutcome, SendMessageRequest, ServerInfoRequest, ServerInfoSection, StoredRaftCredential, TaskRef, UpdateTaskStatusOutcome, UpdateTaskStatusRequest, UploadAttachmentRequest, VerifyNoticeInput, VerifyNoticeRejection, VerifyNoticeResult };
|