Submission
Submissions: durably admitted user inputs and passive entry writes. Conversation.submit admits one in a commit;
this module reads, awaits and withdraws them.
import { Conversation, type Ids, Submission } from "@effective-harness/core"import * as Effect from "effect/Effect"
declare const root: { readonly id: Ids.ConversationId }
const program = Effect.gen(function* () { const id = yield* Conversation.submit(root.id, { type: "input", content: "hello" }) const settled = yield* Submission.wait(id)})Since v0.0.0
Settled (type alias)
Section titled “Settled (type alias)”A submission that reached done or unanswered.
Signature
type Settled = Extract<SubmissionRecord, { readonly status: "done" | "unanswered" }>Since v0.0.0
SubmissionDraft
Section titled “SubmissionDraft”Signature
declare const SubmissionDraft: SubmissionDraftSince v0.0.0
Submissions (class)
Section titled “Submissions (class)”Waiters for settling submissions; the Harness provides it.
Signature
declare class SubmissionsSince v0.0.0
Withdraw a queued submission: it settles unanswered with aborted and leaves the inbox. A placed input is reported
as already_placed (abort the conversation to stop its run), and a settled one as settled.
Signature
declare const abort: ( id: SubmissionId) => Effect.Effect<"aborted" | "already_placed" | "settled", SubmissionNotFound | CommitError, Session>Since v0.0.0
isSettled
Section titled “isSettled”Signature
declare const isSettled: (record: SubmissionRecord) => record is SettledSince v0.0.0
status
Section titled “status”The committed record of a submission.
Signature
declare const status: ( id: SubmissionId) => Effect.Effect<SubmissionRecord, SubmissionNotFound | StorageFailure | SessionPoisoned, Session>Since v0.0.0
Wait until the submission settles.
Signature
declare const wait: ( id: SubmissionId) => Effect.Effect<Settled, SubmissionNotFound | StorageFailure | SessionPoisoned, Submissions>Since v0.0.0