MCPcopy Create free account
hub / github.com/effect-app/libs / lastRepliesById

Function lastRepliesById

packages/infra/src/ClusterCosmos.ts:781–799  ·  view source on GitHub ↗
(
  docs: ReadonlyArray<MessageDoc>,
  activeRequestIds: ReadonlySet<string>,
  queryReplies: (
    query: string,
    parameters: ReadonlyArray<CosmosParameter>
  ) => Effect.Effect<Array<ReplyDoc>, E>
)

Source from the content-addressed store, hash-verified

779}
780
781const lastRepliesById = <E>(
782 docs: ReadonlyArray<MessageDoc>,
783 activeRequestIds: ReadonlySet<string>,
784 queryReplies: (
785 query: string,
786 parameters: ReadonlyArray<CosmosParameter>
787 ) => Effect.Effect<Array<ReplyDoc>, E>
788) => {
789 const replyIds = Array.from(
790 new Set(docs
791 .flatMap((doc) => activeRequestIds.has(doc.requestId) || doc.lastReplyId === null ? [] : [doc.lastReplyId]))
792 )
793 if (!Arr.isArrayNonEmpty(replyIds)) return Effect.succeed(new Map<string, Reply.Encoded>())
794 return queryReplies(
795 "SELECT * FROM c WHERE c.type = 'reply' AND ARRAY_CONTAINS(@replyIds, c.rowid)",
796 [{ name: "@replyIds", value: replyIds }]
797 )
798 .pipe(Effect.map((replies) => new Map(replies.map((reply) => [reply.rowid, replyFromDoc(reply)]))))
799}
800
801export const makeRunnerStorage = Effect.fnUntraced(function*(options?: {
802 readonly prefix?: string | undefined

Callers 2

collectUnprocessedFunction · 0.85
collectUnprocessedByIdFunction · 0.85

Calls 6

queryRepliesFunction · 0.85
replyFromDocFunction · 0.85
pipeMethod · 0.65
mapMethod · 0.65
hasMethod · 0.45
succeedMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…