@yielded/agent-storage-cloudflare 0.1.0-beta.175 → 0.1.0-beta.177
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/dist/DoMemoryStore.mjs +1 -1
- package/dist/DoMessageDeliveryStore.mjs +1 -1
- package/dist/DoSubmissionLedger.d.mts +1 -1
- package/dist/DoSubmissionLedger.mjs +81 -36
- package/dist/DoSubmissionLedger.mjs.map +1 -1
- package/dist/{DoThreadStore-Bd4fTns3.d.mts → DoThreadStore-BzYJjm4O.d.mts} +18 -8
- package/dist/{DoThreadStore-CgIZQUNR.mjs → DoThreadStore-DG0h5J6u.mjs} +4 -3
- package/dist/{DoThreadStore-CgIZQUNR.mjs.map → DoThreadStore-DG0h5J6u.mjs.map} +1 -1
- package/dist/DoThreadStore.d.mts +2 -2
- package/dist/DoThreadStore.mjs +3 -2
- package/dist/PortProtocol.d.mts +6615 -6615
- package/dist/PortRouting.mjs +15 -10
- package/dist/PortRouting.mjs.map +1 -1
- package/dist/{do-journal-7P3DUBz0.mjs → do-journal-ySC3eXNv.mjs} +24 -13
- package/dist/do-journal-ySC3eXNv.mjs.map +1 -0
- package/dist/index.d.mts +1 -1
- package/dist/index.mjs +1 -1
- package/dist/{owned-state-B4QhezMp.mjs → owned-state-BgGOA2Ak.mjs} +3 -3
- package/dist/owned-state-BgGOA2Ak.mjs.map +1 -0
- package/package.json +1 -1
- package/src/DoSubmissionLedger.ts +168 -79
- package/src/DoThreadStore.ts +7 -0
- package/src/PortRouting.ts +47 -29
- package/src/internal/do-journal.ts +52 -24
- package/src/internal/owned-state.ts +3 -4
- package/dist/do-journal-7P3DUBz0.mjs.map +0 -1
- package/dist/owned-state-B4QhezMp.mjs.map +0 -1
package/dist/DoMemoryStore.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.mjs";
|
|
2
|
-
import { r as ownedState } from "./owned-state-
|
|
2
|
+
import { r as ownedState } from "./owned-state-BgGOA2Ak.mjs";
|
|
3
3
|
import { SqlMemoryLimits, SqlStorageOwner, memoryStoreLayerWithFailpoints } from "@yielded/agent/sql-memory-store";
|
|
4
4
|
import { Effect, Layer, Schema } from "effect";
|
|
5
5
|
import * as SqlClientService from "effect/sql/SqlClient";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.mjs";
|
|
2
2
|
import { DoStorageConfig } from "./DoStorageConfig.mjs";
|
|
3
3
|
import { DoStorageFailpoint } from "./DoStorageFailpoint.mjs";
|
|
4
|
-
import { i as initializeDoJournal } from "./do-journal-
|
|
4
|
+
import { i as initializeDoJournal } from "./do-journal-ySC3eXNv.mjs";
|
|
5
5
|
import { BrowserCrypto } from "@effect/platform-browser";
|
|
6
6
|
import { SqlLifecycleSource } from "@yielded/agent-storage-sql/sql-lifecycle-publication";
|
|
7
7
|
import { makeSqlMessageDeliveryStore } from "@yielded/agent-storage-sql/sql-message-delivery-store";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DoStorageConfig } from "./DoStorageConfig.mjs";
|
|
2
2
|
import { DoStorageFailpoint } from "./DoStorageFailpoint.mjs";
|
|
3
|
-
import { n as DoStorageOptions, t as DoStorageInitializationError } from "./DoThreadStore-
|
|
3
|
+
import { n as DoStorageOptions, t as DoStorageInitializationError } from "./DoThreadStore-BzYJjm4O.mjs";
|
|
4
4
|
import { Crypto, Layer } from "effect";
|
|
5
5
|
import * as SqlClientService from "effect/sql/SqlClient";
|
|
6
6
|
import { StorageOwner } from "@yielded/agent/run-storage";
|
|
@@ -2,9 +2,9 @@ import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.mjs";
|
|
|
2
2
|
import { DoStorageConfig } from "./DoStorageConfig.mjs";
|
|
3
3
|
import { DoStorageFailpoint } from "./DoStorageFailpoint.mjs";
|
|
4
4
|
import { DoLedgerError, DoStorageCorruptionError, DoStorageError } from "./DoStorageError.mjs";
|
|
5
|
-
import { n as ownedRows } from "./owned-state-
|
|
6
|
-
import { i as initializeDoJournal, r as decodeRows } from "./do-journal-
|
|
7
|
-
import { l as prepareCanonicalAppend, o as storageConfigLayer, s as storageFailpointLayer } from "./DoThreadStore-
|
|
5
|
+
import { n as ownedRows } from "./owned-state-BgGOA2Ak.mjs";
|
|
6
|
+
import { i as initializeDoJournal, r as decodeRows } from "./do-journal-ySC3eXNv.mjs";
|
|
7
|
+
import { l as prepareCanonicalAppend, o as storageConfigLayer, s as storageFailpointLayer } from "./DoThreadStore-DG0h5J6u.mjs";
|
|
8
8
|
import { BrowserCrypto } from "@effect/platform-browser";
|
|
9
9
|
import { Cause, Clock, Context, Crypto, DateTime, Effect, Layer, Option, Schema, Stream } from "effect";
|
|
10
10
|
import * as SqlClientService from "effect/sql/SqlClient";
|
|
@@ -19,7 +19,7 @@ import { decodeAbortFact, decodeAdmissionFact, decodeApprovalFact, decodeResolut
|
|
|
19
19
|
import { InputMessage } from "@yielded/agent/messaging";
|
|
20
20
|
import { runIdForSubmission } from "@yielded/agent/run-journal";
|
|
21
21
|
import { SettlementPublicationResult, SettlementPublisher, validateCanonicalSettlement, validateJoinedSettlement, validatePublication } from "@yielded/agent/settlement-publisher";
|
|
22
|
-
import { AbortCommand, AbortIntent, AbortIntentRequest, AdmissionAdmitted, AdmissionConflict, AdmissionFence, AdmissionGroup, AdmissionNotAdmitted, AdmissionPolicyError, AdmissionRequest, AdmissionResult, ApprovalConflict, ApprovalDecisionCommand, ApprovalDecisionIntent, AttachChildToReservationRequest, BeginChildBudgetReleaseRequest, ChildAttachmentSnapshot, ChildBudgetReservationRequest, ChildBudgetReservationSnapshot, ChildReservationConflict, ChildReservationStatus, ChildSettledNotification, Claim, ClaimJoiningRequest, ClaimRequest, FundingOwner, FundingOwnerRequest, InputAppliedMarker, JoinSnapshot, JoinedToHost, JoiningClaim, LedgerCapabilities, LedgerError, MarkInputAppliedRequest, MarkJoinedRequest, MarkReadyRequest, MarkUnknownRequest, OwnershipLost, ParentLinkage, QueueSequence, RecoverySnapshot, RecoverySnapshotRequest, ReleaseChildBudgetRequest, ReservedChildBudget, RevertJoiningRequest, Settlement, SettlementConflict, SettlementFinalization, SubmissionAdmissionFence, SubmissionLedger, SubmissionLookup, SubmissionLookupByKey, SubmissionSnapshot, SubmissionState, SubmissionWorkItem, SuspendRequest, SuspensionReason, SuspensionSnapshot, UnknownResolution, UnknownResolutionCommand, UnknownResolutionConflict, UnknownResolutionIntent, UnknownResolutionKind, WorkerLedgerState, WorkerStopCommand, approvalDecisionsCover, settlementFailureFromRecord, submissionAbortRecordId, submissionSettlementBatchId, submissionSettlementRecordId, unknownResolutionKind, unknownResolutionMatchesResult, workerTerminalFromRecord } from "@yielded/agent/submission-ledger";
|
|
22
|
+
import { AbortCommand, AbortIntent, AbortIntentRequest, AdmissionAdmitted, AdmissionConflict, AdmissionFence, AdmissionGroup, AdmissionNotAdmitted, AdmissionPolicyError, AdmissionRequest, AdmissionResult, ApprovalConflict, ApprovalDecisionCommand, ApprovalDecisionIntent, AttachChildToReservationRequest, BeginChildBudgetReleaseRequest, ChildAttachmentSnapshot, ChildBudgetReservationRequest, ChildBudgetReservationSnapshot, ChildReservationConflict, ChildReservationStatus, ChildSettledNotification, Claim, ClaimJoiningRequest, ClaimRequest, FundingOwner, FundingOwnerRequest, InputAppliedMarker, JoinSnapshot, JoinedToHost, JoiningClaim, LedgerCapabilities, LedgerError, MarkInputAppliedRequest, MarkJoinedRequest, MarkReadyRequest, MarkUnknownRequest, OwnershipLost, ParentLinkage, QueueSequence, RecoverySnapshot, RecoverySnapshotRequest, ReleaseChildBudgetRequest, ReservedChildBudget, RevertJoiningRequest, Settlement, SettlementConflict, SettlementFinalization, SubmissionAdmissionFence, SubmissionLedger, SubmissionLookup, SubmissionLookupByKey, SubmissionSnapshot, SubmissionState, SubmissionWorkItem, SuspendRequest, SuspensionReason, SuspensionSnapshot, UnknownResolution, UnknownResolutionCommand, UnknownResolutionConflict, UnknownResolutionIntent, UnknownResolutionKind, WorkerLedgerState, WorkerStopCommand, approvalDecisionsCover, settlementFailureFromRecord, submissionAbortRecordId, submissionInputBatchId, submissionInputRecordId, submissionSettlementBatchId, submissionSettlementRecordId, unknownResolutionKind, unknownResolutionMatchesResult, workerTerminalFromRecord } from "@yielded/agent/submission-ledger";
|
|
23
23
|
import { AssignmentTerminal } from "@yielded/agent/worker";
|
|
24
24
|
//#region src/DoSubmissionLedger.ts
|
|
25
25
|
var DoSubmissionLedger_exports = /* @__PURE__ */ __exportAll({
|
|
@@ -524,8 +524,7 @@ const makeServices = Effect.fnUntraced(function* () {
|
|
|
524
524
|
yield* hitFailpoint("ledger:admit:before", operation);
|
|
525
525
|
const result = yield* inWriteTransaction(operation, Effect.gen(function* () {
|
|
526
526
|
const keyRowKey = `${validated.threadId}/${validated.principal}/${validated.idempotencyKey}`;
|
|
527
|
-
const
|
|
528
|
-
const existing = yield* decodeSubmissionRows(operation, keyRowKey, existingRows);
|
|
527
|
+
const existing = yield* byKey(validated, operation);
|
|
529
528
|
if (existing.length > 1) return yield* corruptionFailure(operation, "effect_agent_submissions", keyRowKey, "An admission idempotency key returned more than one row.");
|
|
530
529
|
if (existing.length === 1) {
|
|
531
530
|
const sameLinkage = validated.parentLinkage === void 0 ? existing[0].parent_submission_id === null && existing[0].parent_tool_call_id === null : existing[0].parent_submission_id === validated.parentLinkage.parentSubmissionId && existing[0].parent_tool_call_id === validated.parentLinkage.parentToolCallId;
|
|
@@ -720,8 +719,7 @@ const makeServices = Effect.fnUntraced(function* () {
|
|
|
720
719
|
if (Option.isNone(row)) return Option.none();
|
|
721
720
|
return Option.some(yield* decodeSubmissionSnapshot(operation, row.value));
|
|
722
721
|
}
|
|
723
|
-
const
|
|
724
|
-
const decoded = yield* decodeSubmissionRows(operation, `${validated.threadId}/${validated.principal}/${validated.idempotencyKey}`, foundRows);
|
|
722
|
+
const decoded = yield* byKey(validated, operation);
|
|
725
723
|
if (decoded.length > 1) return yield* corruptionFailure(operation, "effect_agent_submissions", `${validated.threadId}/${validated.principal}/${validated.idempotencyKey}`, "An admission idempotency key returned more than one row.");
|
|
726
724
|
if (decoded.length === 0) return Option.none();
|
|
727
725
|
return Option.some(yield* decodeSubmissionSnapshot(operation, decoded[0]));
|
|
@@ -729,8 +727,7 @@ const makeServices = Effect.fnUntraced(function* () {
|
|
|
729
727
|
const resolveAdmission = Effect.fnUntraced(function* (request) {
|
|
730
728
|
const operation = "ledger resolve admission";
|
|
731
729
|
const validated = yield* Schema.decodeEffect(Schema.toType(SubmissionLookupByKey))(request).pipe(Effect.mapError(internalFailure(operation)));
|
|
732
|
-
const
|
|
733
|
-
const decoded = yield* decodeSubmissionRows(operation, `${validated.threadId}/${validated.principal}/${validated.idempotencyKey}`, foundRows);
|
|
730
|
+
const decoded = yield* byKey(validated, operation);
|
|
734
731
|
if (decoded.length > 1) return yield* corruptionFailure(operation, "effect_agent_submissions", `${validated.threadId}/${validated.principal}/${validated.idempotencyKey}`, "An admission idempotency key returned more than one row.");
|
|
735
732
|
if (decoded.length === 0) return AdmissionNotAdmitted.make();
|
|
736
733
|
return AdmissionAdmitted.make({ submission: yield* decodeSubmissionSnapshot(operation, decoded[0]) });
|
|
@@ -793,31 +790,76 @@ const makeServices = Effect.fnUntraced(function* () {
|
|
|
793
790
|
yield* hitFailpoint("ledger:claim:after", operation);
|
|
794
791
|
return claimed;
|
|
795
792
|
});
|
|
793
|
+
const markInputAppliedInTransaction = Effect.fnUntraced(function* (validated) {
|
|
794
|
+
const operation = "ledger mark input applied";
|
|
795
|
+
const submission = yield* requireSubmission(operation, validated.submissionId);
|
|
796
|
+
yield* requireOwner(operation, submission);
|
|
797
|
+
if (submission.input_applied_record_id !== null) {
|
|
798
|
+
if (submission.input_applied_record_id === validated.recordId && submission.input_applied_sequence === validated.sequence) return;
|
|
799
|
+
return yield* corruptionFailure(operation, "effect_agent_submissions", validated.submissionId, "A different canonical input marker is already recorded for this Submission.");
|
|
800
|
+
}
|
|
801
|
+
yield* sql`
|
|
802
|
+
UPDATE effect_agent_submissions
|
|
803
|
+
SET
|
|
804
|
+
input_applied_record_id = ${validated.recordId},
|
|
805
|
+
input_applied_sequence = ${validated.sequence},
|
|
806
|
+
state = CASE
|
|
807
|
+
WHEN state IN ('admitted', 'ready') THEN 'input-applied'
|
|
808
|
+
ELSE state
|
|
809
|
+
END
|
|
810
|
+
WHERE submission_id = ${validated.submissionId}
|
|
811
|
+
RETURNING *, ${definitionJson(sql)} AS agent_digests_json`.pipe(rows.submissions.write, Effect.mapError(internalFailure(operation)));
|
|
812
|
+
});
|
|
796
813
|
const markInputApplied = Effect.fnUntraced(function* (request) {
|
|
797
814
|
const operation = "ledger mark input applied";
|
|
798
815
|
const validated = yield* decodeMarkInputAppliedRequestType(request).pipe(Effect.mapError(internalFailure(operation)));
|
|
799
816
|
yield* hitFailpoint("ledger:mark-input-applied:before", operation);
|
|
800
|
-
yield* inWriteTransaction(operation,
|
|
801
|
-
const submission = yield* requireSubmission(operation, validated.submissionId);
|
|
802
|
-
yield* requireOwner(operation, submission);
|
|
803
|
-
if (submission.input_applied_record_id !== null) {
|
|
804
|
-
if (submission.input_applied_record_id === validated.recordId && submission.input_applied_sequence === validated.sequence) return;
|
|
805
|
-
return yield* corruptionFailure(operation, "effect_agent_submissions", validated.submissionId, "A different canonical input marker is already recorded for this Submission.");
|
|
806
|
-
}
|
|
807
|
-
yield* sql`
|
|
808
|
-
UPDATE effect_agent_submissions
|
|
809
|
-
SET
|
|
810
|
-
input_applied_record_id = ${validated.recordId},
|
|
811
|
-
input_applied_sequence = ${validated.sequence},
|
|
812
|
-
state = CASE
|
|
813
|
-
WHEN state IN ('admitted', 'ready') THEN 'input-applied'
|
|
814
|
-
ELSE state
|
|
815
|
-
END
|
|
816
|
-
WHERE submission_id = ${validated.submissionId}
|
|
817
|
-
RETURNING *, ${definitionJson(sql)} AS agent_digests_json`.pipe(rows.submissions.write, Effect.mapError(internalFailure(operation)));
|
|
818
|
-
}));
|
|
817
|
+
yield* inWriteTransaction(operation, markInputAppliedInTransaction(validated));
|
|
819
818
|
yield* hitFailpoint("ledger:mark-input-applied:after", operation);
|
|
820
819
|
});
|
|
820
|
+
const appendInput = Effect.fnUntraced(function* (submissionId, request) {
|
|
821
|
+
const operation = "append original input and context";
|
|
822
|
+
const prepared = yield* prepareCanonicalAppend(request).pipe(Effect.provideService(Crypto.Crypto, crypto));
|
|
823
|
+
const record = prepared.request.batch.records[0];
|
|
824
|
+
const context = prepared.request.executions?.flatMap((update) => update.facts ?? []).find(({ payload }) => payload._tag === "RunContextRecorded");
|
|
825
|
+
if (prepared.request.executions?.length !== 1 || prepared.request.executions[0]?.previousRevision !== 0 || prepared.request.batch.records.length !== 1 || record?.payload._tag !== "UserInputRecorded" || record.payload.kind !== "user" || record.payload.submissionId !== submissionId || record.payload.runId !== runIdForSubmission(submissionId) || record.recordId !== submissionInputRecordId(submissionId) || prepared.request.batch.batchId !== submissionInputBatchId(submissionId) || context?.payload._tag === "RunContextRecorded" && context.payload.historyThrough !== prepared.request.expectedTailSequence) return yield* ThreadStoreError.make({
|
|
826
|
+
operation,
|
|
827
|
+
message: "Original input publication has a different context boundary"
|
|
828
|
+
});
|
|
829
|
+
const mapError = (cause) => ThreadStoreError.make({
|
|
830
|
+
operation,
|
|
831
|
+
message: cause.message,
|
|
832
|
+
cause
|
|
833
|
+
});
|
|
834
|
+
yield* journal.prepareAppend(prepared.raw).pipe(Effect.mapError(mapError));
|
|
835
|
+
return yield* owner.withProgress(prepared.request.threadId, owner.withMutation(Effect.gen(function* () {
|
|
836
|
+
yield* hitFailpoint("append:before", operation);
|
|
837
|
+
yield* hitFailpoint("ledger:mark-input-applied:before", operation);
|
|
838
|
+
const result = yield* journal.withWriteTransaction(operation)(Effect.gen(function* () {
|
|
839
|
+
const submission = yield* requireSubmission(operation, submissionId);
|
|
840
|
+
yield* requireOwner(operation, submission);
|
|
841
|
+
if (submission.thread_id !== prepared.request.threadId) return yield* LedgerError.make({
|
|
842
|
+
operation,
|
|
843
|
+
message: "Original input belongs to another Thread"
|
|
844
|
+
});
|
|
845
|
+
const result = yield* journal.appendPrepared(prepared.raw);
|
|
846
|
+
yield* markInputAppliedInTransaction(MarkInputAppliedRequest.make({
|
|
847
|
+
submissionId,
|
|
848
|
+
recordId: record.recordId,
|
|
849
|
+
sequence: result.firstSequence
|
|
850
|
+
}));
|
|
851
|
+
return result;
|
|
852
|
+
})).pipe(Effect.mapError((error) => error._tag === "DoAppendConflict" ? AppendConflict.make({
|
|
853
|
+
threadId: prepared.request.threadId,
|
|
854
|
+
batchId: prepared.request.batch.batchId,
|
|
855
|
+
reason: error.reason,
|
|
856
|
+
...error.actualTailSequence === void 0 ? {} : { actualTailSequence: error.actualTailSequence }
|
|
857
|
+
}) : error._tag === "OwnershipLost" ? error : mapError(error)));
|
|
858
|
+
yield* hitFailpoint("ledger:mark-input-applied:after", operation);
|
|
859
|
+
yield* hitFailpoint("append:after", operation);
|
|
860
|
+
return result;
|
|
861
|
+
}).pipe(Effect.mapError((error) => error._tag === "OwnershipLost" || error._tag === "ThreadStoreError" || error._tag === "AppendConflict" ? error : mapError(error)))));
|
|
862
|
+
});
|
|
821
863
|
const publish = Effect.fn("DoSubmissionLedger.publishSettlement")(function* (input) {
|
|
822
864
|
const operation = "publish settlement";
|
|
823
865
|
const { request, record, settlement } = yield* validatePublication(input);
|
|
@@ -1767,8 +1809,8 @@ const makeServices = Effect.fnUntraced(function* () {
|
|
|
1767
1809
|
const abortRow = yield* readAbortIntent(operation, validated.submissionId);
|
|
1768
1810
|
if (Option.isSome(abortRow)) abortIntent = yield* abortIntentFromRow(operation, submissionRow, validated.submissionId, abortRow.value);
|
|
1769
1811
|
const joinRows = (yield* cached(rows.submissions.by("joined_host_submission_id", validated.submissionId), operation)).filter((row) => row.joined_host_submission_id === validated.submissionId).sort((a, b) => a.queue_sequence - b.queue_sequence);
|
|
1770
|
-
const
|
|
1771
|
-
const
|
|
1812
|
+
const joins = [];
|
|
1813
|
+
for (const row of joinRows) joins.push(yield* decodeJoinSnapshot({
|
|
1772
1814
|
submissionId: row.submission_id,
|
|
1773
1815
|
state: row.state,
|
|
1774
1816
|
hostSubmissionId: validated.submissionId
|
|
@@ -1784,16 +1826,18 @@ const makeServices = Effect.fnUntraced(function* () {
|
|
|
1784
1826
|
}).pipe(Effect.mapError((error) => corruptionFailure(operation, "effect_agent_submissions", validated.submissionId, error.message)));
|
|
1785
1827
|
}
|
|
1786
1828
|
const decisionRows = yield* readApprovalDecisions(operation, validated.submissionId);
|
|
1787
|
-
const approvalDecisions =
|
|
1829
|
+
const approvalDecisions = [];
|
|
1830
|
+
for (const row of decisionRows) approvalDecisions.push(yield* approvalIntentFromRow(operation, row));
|
|
1788
1831
|
const resolutionRows = yield* readUnknownResolutions(operation, validated.submissionId);
|
|
1789
|
-
const unknownResolutions =
|
|
1832
|
+
const unknownResolutions = [];
|
|
1833
|
+
for (const row of resolutionRows) unknownResolutions.push(yield* unknownResolutionIntentFromRow(operation, row));
|
|
1790
1834
|
const childReservationRows = (yield* cached(rows.childReservations.by("parent_submission_id", validated.submissionId), operation)).filter((row) => row.parent_submission_id === validated.submissionId).sort((a, b) => a.parent_tool_call_id.localeCompare(b.parent_tool_call_id));
|
|
1791
|
-
const
|
|
1792
|
-
const
|
|
1835
|
+
const childReservations = [];
|
|
1836
|
+
for (const row of childReservationRows) childReservations.push(yield* childReservationSnapshotFromRow(operation, row));
|
|
1793
1837
|
const markers = yield* readChildSettlementMarkers(operation, validated.submissionId);
|
|
1794
1838
|
const markersByChild = new Map(markers.map((row) => [row.child_submission_id, row]));
|
|
1795
1839
|
const childAttachments = [];
|
|
1796
|
-
for (const row of
|
|
1840
|
+
for (const row of childReservationRows) {
|
|
1797
1841
|
if (row.child_submission_id === null) continue;
|
|
1798
1842
|
const child = yield* readSubmission(operation, row.child_submission_id);
|
|
1799
1843
|
if (Option.isSome(child)) {
|
|
@@ -1844,6 +1888,7 @@ const makeServices = Effect.fnUntraced(function* () {
|
|
|
1844
1888
|
resolveAdmission,
|
|
1845
1889
|
selectHead,
|
|
1846
1890
|
markInputApplied,
|
|
1891
|
+
appendInput,
|
|
1847
1892
|
finalizeSettlement: (request) => owner.withMutation(finalizeSettlement(request)),
|
|
1848
1893
|
requestAbort,
|
|
1849
1894
|
stopWorker,
|