effect-agent 0.1.0-beta.150 → 0.1.0-beta.152
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/{Admin-B8ISZyYf.d.mts → Admin-CKIdJoP8.d.mts} +6 -5
- package/dist/{DurableAgentRuntime-DLa4IwFi.mjs → DurableAgentRuntime-DQFV26SB.mjs} +68 -82
- package/dist/DurableAgentRuntime-DQFV26SB.mjs.map +1 -0
- package/dist/{EventSource-CkN05NT3.d.mts → EventSource-CMbXXmwe.d.mts} +2 -2
- package/dist/{PreparedInputAdmission-fctZOTnn.d.mts → PreparedInputAdmission-Bt6rgtVu.d.mts} +3 -3
- package/dist/{Subscription-B16A-48F.d.mts → Subscription-BJAzYNw1.d.mts} +2 -2
- package/dist/{SubscriptionInput-DIU7CiXE.d.mts → SubscriptionInput-CkBJt0AS.d.mts} +2 -2
- package/dist/WorkerAdmission-CJ_oWRuS.mjs +171 -0
- package/dist/WorkerAdmission-CJ_oWRuS.mjs.map +1 -0
- package/dist/durable/Admin.d.mts +1 -1
- package/dist/durable/AgentRegistration.d.mts +1 -1
- package/dist/durable/Certification.d.mts +1 -1
- package/dist/durable/CommittedActivity.d.mts +1 -1
- package/dist/durable/DurableAgentRuntime.d.mts +1 -1
- package/dist/durable/DurableAgentRuntime.mjs +2 -1
- package/dist/durable/EventSource.d.mts +1 -1
- package/dist/durable/GitHubWorkflowSource.d.mts +3 -3
- package/dist/durable/LifecyclePublication.d.mts +1 -1
- package/dist/durable/MessageDelivery.d.mts +41 -41
- package/dist/durable/MessageDeliveryStoreConformance.d.mts +1 -1
- package/dist/durable/PersistentHistory.d.mts +1 -1
- package/dist/durable/PreparedInputAdmission.d.mts +1 -1
- package/dist/durable/Recovery.d.mts +1 -1
- package/dist/durable/RunJournal.d.mts +1 -1
- package/dist/durable/Scheduling.d.mts +1 -1
- package/dist/durable/SubmissionLedger.d.mts +1 -1
- package/dist/durable/SubmissionLedgerConformance.d.mts +1 -1
- package/dist/durable/SubmissionStatus.d.mts +1 -1
- package/dist/durable/Subscription.d.mts +1 -1
- package/dist/durable/SubscriptionInput.d.mts +1 -1
- package/dist/durable/SubscriptionStoreConformance.d.mts +1 -1
- package/dist/durable/SubscriptionTools.d.mts +2 -2
- package/dist/durable/SubscriptionTransition.d.mts +1 -1
- package/dist/durable/Subscriptions.d.mts +5 -5
- package/dist/durable/ThreadContextHistory.d.mts +1 -1
- package/dist/durable/ThreadInvariants.d.mts +1 -1
- package/dist/durable/ThreadProjectionMaintenance.d.mts +1 -1
- package/dist/durable/ThreadStore.d.mts +1 -1
- package/dist/durable/ThreadStoreConformance.d.mts +1 -1
- package/dist/durable/WorkerAdmission.d.mts +172 -0
- package/dist/durable/WorkerAdmission.mjs +2 -0
- package/dist/durable/WorkerHost.d.mts +1 -1
- package/dist/index.d.mts +7 -6
- package/dist/index.mjs +3 -2
- package/package.json +1 -1
- package/src/durable/DurableAgentRuntime.ts +79 -109
- package/src/durable/WorkerAdmission.ts +104 -0
- package/src/durable/internal/thread-initialization.ts +195 -0
- package/src/durable/internal/worker-host.ts +121 -123
- package/src/index.ts +1 -0
- package/dist/DurableAgentRuntime-DLa4IwFi.mjs.map +0 -1
|
@@ -1884,6 +1884,11 @@ declare const ThreadStore_base: Context.ServiceClass<ThreadStore, "@effect-agent
|
|
|
1884
1884
|
readonly countPeerMessages?: ((request: ThreadPeerCountRequest) => Effect.Effect<number, ThreadStoreError | ThreadNotMaterialized>) | undefined;
|
|
1885
1885
|
}>;
|
|
1886
1886
|
declare class ThreadStore extends ThreadStore_base {}
|
|
1887
|
+
//#endregion
|
|
1888
|
+
//#region src/durable/internal/thread-initialization.d.ts
|
|
1889
|
+
/** Stable identities retained across admission retries and recovery. */
|
|
1890
|
+
declare const threadCreatedBatchId: (threadId: ThreadId) => BatchId;
|
|
1891
|
+
declare const threadCreatedRecordId: (threadId: ThreadId) => RecordId;
|
|
1887
1892
|
declare namespace DurableAgentRuntime_d_exports {
|
|
1888
1893
|
export { ApprovalSuspensionError, DurableAbortFailure, DurableAgentRuntime, DurableApprovalFailure, DurableApprovalResolver, DurableApprovalSuspension, DurableAwaitFailure, DurableExplainFailure, DurableObligationFailure, DurableObserveOptions, DurableProgressFailure, DurableResolveFailure, DurableRetryFailure, DurableRuntimeConfig, DurableRuntimeConfigOptions, DurableSubmitAgent, DurableSubmitFailure, DurableSubmitOptions, DurableVerifyFailure, DurableWorkerFailure, DurableWorkerRequirements, Receipt, RecoveryBlocked, RecoveryFailure, RecoveryReport, RecoverySweepOptions, RecoverySweepResult, childReservationIdFor, isolateRecovery, recoveryRepairBatchId, recoveryRepairRecordId, threadCreatedBatchId, threadCreatedRecordId };
|
|
1889
1894
|
}
|
|
@@ -1901,10 +1906,6 @@ type InstructionRequirementsOf<Instructions, Input> = InstructionResultOf<Instru
|
|
|
1901
1906
|
* so a replayed establishment converges on the one existing row (SUB-016).
|
|
1902
1907
|
*/
|
|
1903
1908
|
declare const childReservationIdFor: (runId: RunId, toolCallId: ToolCallId) => ChildReservationId;
|
|
1904
|
-
/** Deterministic batch identity of one Thread's initial `ThreadCreated` append. */
|
|
1905
|
-
declare const threadCreatedBatchId: (threadId: ThreadId) => BatchId;
|
|
1906
|
-
/** Deterministic record identity of one Thread's `ThreadCreated` record. */
|
|
1907
|
-
declare const threadCreatedRecordId: (threadId: ThreadId) => RecordId;
|
|
1908
1909
|
/** Deterministic batch identity of one executed recovery decision's audit append (DUR-013). */
|
|
1909
1910
|
declare const recoveryRepairBatchId: (submissionId: SubmissionId, decisionTag: string) => BatchId;
|
|
1910
1911
|
/** Deterministic record identity of one executed recovery decision's `RepairAnnotated` record. */
|
|
@@ -4232,4 +4233,4 @@ declare const RetryRefused_base: Schema.Class<RetryRefused, Schema.TaggedStruct<
|
|
|
4232
4233
|
declare class RetryRefused extends RetryRefused_base {}
|
|
4233
4234
|
//#endregion
|
|
4234
4235
|
export { RepairSubagentStartLink as $, runDurationBatchId as $i, DurableApprovalFailure as $n, ThreadRecoveryCheckpoints as $r, ParentLinkage as $t, AwaitChildSettlement as A, turnResultsBatchId as Aa, JournalBoundary as Ai, SuspensionReason as An, CheckpointRejected as Ar, ChildReservationConflict as At, MarkUnknown as B, ExecutableAgentBinding as Ba, compactionBatchId as Bi, settlementFailureFromRecord as Bn, ThreadExport as Br, InputAppliedMarker as Bt, renderRecoveryExplanation as C, turnBatchId as Ca, drainLifecyclePublications as Ci, SubmissionLookupByKey as Cn, isolateRecovery as Cr, ApprovalDecisionIntent as Ct, ApplyUnknownResolutions as D, turnResponseBatch as Da, SettledSubmission as Di, SubmissionWorkItem as Dn, threadCreatedRecordId as Dr, ChildAttachmentSnapshot as Dt, ApplyJoinAccounting as E, turnPreparedBatchId as Ea, PendingSubmission as Ei, SubmissionState as En, threadCreatedBatchId as Er, BeginChildBudgetReleaseRequest as Et, CompleteMaterialization as F, AgentAttemptContext as Fa, TurnCommitInput as Fi, UnknownResolutionIntent as Fn, SaveCheckpointRequest as Fr, Claim as Ft, PropagateChildAbort as G, definitionDigestsEqual as Ga, modelResponseInterruptedRecordId as Gi, submissionSettlementBatchId as Gn, ThreadNotMaterialized as Gr, MarkInputAppliedRequest as Gt, OpenDelegationCallEvidence as H, ResolvedBinding as Ha, firstWorkerInputRecordId as Hi, submissionAbortRecordId as Hn, ThreadIdentity as Hr, JoiningClaim as Ht, DeclaredPendingBatchEvidence as I, AgentRegistration as Ia, agentUpdateRecordId as Ii, WaitingChild as In, SaveRecoveryCheckpointRequest as Ir, ClaimHandoff as It, Recovery_d_exports as J, projectRunJournal as Ji, workerTerminalFromRecord as Jn, ThreadOutstandingRequest as Jr, MarkUnknownRequest as Jt, RecoveryDecision as K, modelResponseRecordId as Ki, submissionSettlementId as Kn, ThreadObservation as Kr, MarkJoinedRequest as Kt, DelegationAdmissionEvidence as L, BindingUnavailable as La, approvalDecisionBatchId as Li, WaitingForChildSuspension as Ln, SelectedThreadRead as Lr, ClaimJoiningRequest as Lt, AwaitParentEstablishment as M, workerOriginRecordId as Ma, RunJournalProjection as Mi, UnknownResolution as Mn, FencedAppendRequest as Mr, ChildReservationStatus as Mt, AwaitUnknownResolution as N, workerReportRecordId as Na, RunJournalUsage as Ni, UnknownResolutionCommand as Nn, LoadCheckpointRequest as Nr, ChildSettledNotification as Nt, AwaitApprovalDecision as O, turnResponseBatchId as Oa, SubmissionStatus as Oi, SuspendRequest as On, AppendConflict as Or, ChildBudgetReservationRequest as Ot, CompleteChildAdmission as P, AgentRegistration_d_exports as Pa, RunJournal_d_exports as Pi, UnknownResolutionConflict as Pn, MAX_THREAD_EXPORT_RECORDS as Pr, ChildSettledOutcome as Pt, RepairReadiness as Q, runCompletionDigest as Qi, DurableAgentRuntime_d_exports as Qn, ThreadRecordRequest as Qr, OwnershipToken as Qt, EnsureWaitingForChild as R, DurableBindingFailure as Ra, childIdempotencyKeyFor as Ri, WorkerLedgerState as Rn, ThreadCheckpoint as Rr, ClaimRequest as Rt, recoveryDecisionMeaning as S, turnApprovalsBatchId as Sa, LifecyclePublication_d_exports as Si, SubmissionLookupById as Sn, childReservationIdFor as Sr, ApprovalDecisionCommand as St, ApplyInput as T, turnIdForRun as Ta, lifecyclePublicationLayer as Ti, SubmissionSnapshot as Tn, recoveryRepairRecordId as Tr, AttachChildToReservationRequest as Tt, OpenToolCallEvidence as U, compileBindingContracts as Ua, markUnknownBatchId as Ui, submissionInputBatchId as Un, ThreadIdentityRequest as Ur, LedgerCapabilities as Ut, NoAction as V, ReplayVersions as Va, compactionRecordId as Vi, submissionAbortBatchId as Vn, ThreadExportRequest as Vr, JoinSnapshot as Vt, PendingApprovalEvidence as W, compileRegistrations as Wa, modelResponseInterruptedBatchId as Wi, submissionInputRecordId as Wn, ThreadMaterialization as Wr, LedgerError as Wt, RepairInputMarker as X, promptFromCanonicalRecords as Xi, DurableAbortFailure as Xn, ThreadRead as Xr, OwnershipRenewal as Xt, ReleaseOrphanChildReservation as Y, projectRunJournalStream as Yi, ApprovalSuspensionError as Yn, ThreadPeerCountRequest as Yr, OwnershipLost as Yt, RepairJoinMarker as Z, runCompletedRecordId as Zi, DurableAgentRuntime as Zn, ThreadReadRequest as Zr, OwnershipSnapshot as Zt, RetryCommand as _, toolCallResultBatchId as _a, LifecyclePublicationError as _i, SubmissionAdmissionFence as _n, RecoveryBlocked as _r, AdmissionPolicyError as _t, IntegrityCheck as a, subagentJoinedRecordId as aa, ThreadStoreFailure as ai, ReservedChildBudget as an, DurableObserveOptions as ar, SettleAborted as at, obligationSeverityOf as b, toolStepSettledBatchId as ba, LifecyclePublicationSource as bi, SubmissionLedger_d_exports as bn, RecoverySweepOptions as br, AdmissionResult as bt, IntegrityReport as c, subagentRequestedBatchId as ca, ThreadTailRequest as ci, ResolutionCompletedWithResult as cn, DurableRetryFailure as cr, AbortCommand as ct, ObligationReport as d, subagentStartedRecordId as da, getRunInput as di, RevertJoiningRequest as dn, DurableSubmitAgent as dr, AdmissionAdmitted as dt, runDurationRecordId as ea, ThreadRunInputRequest as ei, RecoverySnapshot as en, DurableApprovalResolver as er, ResumeFromTurnBoundary as et, ObligationSeverity as f, toolApprovalDecisionRecordId as fa, readOutstanding as fi, Settlement as fn, DurableSubmitFailure as fr, AdmissionConflict as ft, RecoveryExplanation as g, toolCallResolvedRecordId as ga, LifecyclePublicationConfig as gi, SettlementReservationSnapshot as gn, DurableWorkerRequirements as gr, AdmissionNotAdmitted as gt, RecoveryDisposition as h, toolCallResolutionBatchId as ha, LifecyclePublicationBatch as hi, SettlementReservation as hn, DurableWorkerFailure as hr, AdmissionIndeterminate as ht, ExplainedUnknownCall as i, subagentJoinBatchId as ia, ThreadStoreError as ii, RenewOwnershipRequest as in, DurableObligationFailure as ir, RevertJoining as it, AwaitHostSettlement as j, workerInputRecordId as ja, RunJournalError as ji, SuspensionSnapshot as jn, FenceRejected as jr, ChildReservationId as jt, AwaitChildAdmissionResolution as k, turnResultsBatch as ka, SubmissionStatus_d_exports as ki, SuspensionOutcome as kn, AppendResult as kr, ChildBudgetReservationSnapshot as kt, ObligationBlockedOn as l, subagentRequestedRecordId as la, ThreadWorkerStateRequest as li, ResolutionNeverHappened as ln, DurableRuntimeConfig as lr, AbortIntent as lt, RECOVERY_DECISION_MEANINGS as m, toolCallPreparedRecordId as ma, LifecyclePublication as mi, SettlementFinalization as mn, DurableVerifyFailure as mr, AdmissionGroup as mt, ExplainedEvidence as n, runStartedBatchId as na, ThreadStore as ni, ReleaseChildBudgetRequest as nn, DurableAwaitFailure as nr, ResumeSuspended as nt, IntegrityCheckName as o, subagentLineageBatchId as oa, ThreadStore_d_exports as oi, ReservedSettlement as on, DurableProgressFailure as or, SettleJoinedWithHost as ot, ObligationThresholds as p, toolApprovalRequestRecordId as pa, readWorkerState as pi, SettlementConflict as pn, DurableSubmitOptions as pr, AdmissionFence as pt, RecoveryEvidence as q, peerMessageRecordId as qi, submissionSettlementRecordId as qn, ThreadOutstanding as qr, MarkReadyRequest as qt, ExplainedSubmission as r, runStartedRecordId as ra, ThreadStoreDiagnostic as ri, ReleaseOwnershipRequest as rn, DurableExplainFailure as rr, ResumeWaitingParent as rt, IntegrityCheckStatus as s, subagentLineageRecordId as sa, ThreadTail as si, ResolutionAbortSubmission as sn, DurableResolveFailure as sr, classifyRecovery as st, Admin_d_exports as t, runIdForSubmission as ta, ThreadSelection as ti, RecoverySnapshotRequest as tn, DurableApprovalSuspension as tr, ResumePendingToolBatch as tt, ObligationEntry as u, subagentStartedBatchId as ua, getRecord as ui, ResolutionSafeToRetry as un, DurableRuntimeConfigOptions as ur, AbortIntentRequest as ut, RetryRefusalReason as v, toolCallSettledRecordId as va, LifecyclePublicationFact as vi, SubmissionLedger as vn, RecoveryFailure as vr, AdmissionRequest as vt, AppendReservedSettlement as w, turnCanonicalBatch as wa, lifecyclePublicationBatchMaxFacts as wi, SubmissionScheduling as wn, recoveryRepairBatchId as wr, ApprovalPendingSuspension as wt, predictRecoveryDisposition as x, toolStepSettledRecordId as xa, LifecyclePublicationStorage as xi, SubmissionLookup as xn, RecoverySweepResult as xr, ApprovalConflict as xt, RetryRefused as y, toolCallUnknownRecordId as ya, LifecyclePublicationHandler as yi, SubmissionLedgerFailure as yn, RecoveryReport as yr, AdmissionResolution as yt, FinalizeLedgerFromHistory as z, DurableWorkerBinding as za, childThreadIdFor as zi, WorkerStopCommand as zn, ThreadCheckpoints as zr, DEFAULT_OWNERSHIP_LEASE_DURATION as zt };
|
|
4235
|
-
//# sourceMappingURL=Admin-
|
|
4236
|
+
//# sourceMappingURL=Admin-CKIdJoP8.d.mts.map
|
|
@@ -21,7 +21,7 @@ import { getToolExecutionClass } from "./engine/DurableStep.mjs";
|
|
|
21
21
|
import { CompactionError, ContextCompactor } from "./engine/ContextCompactor.mjs";
|
|
22
22
|
import { RunPolicyUsage } from "./core/RunPolicyUsage.mjs";
|
|
23
23
|
import { AgentUpdateAcceptance, CurrentToolFailureObserver, ModelUsageAccounting, RunContextPreparation, RunContextPreparationPassthrough, RunToolAuthorization, RunToolScheduling } from "./engine/RunOptions.mjs";
|
|
24
|
-
import { AbortRequested, AgentUpdateEmitted, BatchId, CanonicalBatch, CanonicalRecordEnvelope, CanonicalSequence, CompactionCreated, DefinitionDigests, Digest, ModelResponseInterrupted, PeerMessagePrepared, PersistedJson, ProducerEpoch, RecordEnvelope, RecordId, RepairAnnotated, RunDurationExhausted, RunPolicyUsageReserved, RunStartedRecord, SettlementFailureDiagnostic, SubagentJoined, SubagentLineageRecorded, SubagentRequested, SubagentStarted, SubmissionSettled, SubmissionSettledRecord, SubtreeBudgetReserved,
|
|
24
|
+
import { AbortRequested, AgentUpdateEmitted, BatchId, CanonicalBatch, CanonicalRecordEnvelope, CanonicalSequence, CompactionCreated, DefinitionDigests, Digest, ModelResponseInterrupted, PeerMessagePrepared, PersistedJson, ProducerEpoch, RecordEnvelope, RecordId, RepairAnnotated, RunDurationExhausted, RunPolicyUsageReserved, RunStartedRecord, SettlementFailureDiagnostic, SubagentJoined, SubagentLineageRecorded, SubagentRequested, SubagentStarted, SubmissionSettled, SubmissionSettledRecord, SubtreeBudgetReserved, ToolApprovalDecided, ToolApprovalRequested, ToolCallPrepared, ToolCallResolved, ToolCallSettled, ToolCallUnknown, ToolOperation, ToolStepSettled, ToolUnavailable, UserInputRecorded, WorkerAdmission, WorkerContinuation, WorkerInputCompleted, WorkerInputRequested, WorkerOrigin, WorkerReportPrepared, WorkerReportRefused, WorkerReportingIntent, WorkerStopRequested } from "./durable/Records.mjs";
|
|
25
25
|
import { AbortCommand, AbortIntentRequest, AdmissionPolicyError, AdmissionRequest, ApprovalDecisionCommand, ApprovalPendingSuspension, AttachChildToReservationRequest, BeginChildBudgetReleaseRequest, ChildBudgetReservationRequest, ChildReservationId, ChildSettledNotification, ClaimHandoff, ClaimJoiningRequest, ClaimRequest, LedgerError, MarkInputAppliedRequest, MarkJoinedRequest, MarkReadyRequest, MarkUnknownRequest, OwnershipToken, ParentLinkage, RecoverySnapshotRequest, ReleaseChildBudgetRequest, ReleaseOwnershipRequest, RenewOwnershipRequest, RevertJoiningRequest, Settlement, SettlementFinalization, SettlementReservation, SubmissionLedger, SubmissionLookupById, SubmissionLookupByKey, SubmissionScheduling, SuspendRequest, UnknownResolutionCommand, WaitingChild, WaitingForChildSuspension, WorkerLedgerState, submissionAbortBatchId, submissionAbortRecordId, submissionInputBatchId, submissionInputRecordId, submissionSettlementBatchId, submissionSettlementId, submissionSettlementRecordId } from "./durable/SubmissionLedger.mjs";
|
|
26
26
|
import { DeclaredPendingBatchEvidence, OpenDelegationCallEvidence, OpenToolCallEvidence, PendingApprovalEvidence, RecoveryDecision, RecoveryEvidence, classifyRecovery } from "./durable/Recovery.mjs";
|
|
27
27
|
import { ExplainedEvidence, ExplainedSubmission, ExplainedUnknownCall, IntegrityCheck, IntegrityReport, ObligationEntry, ObligationReport, RecoveryExplanation, RetryRefused, obligationSeverityOf, predictRecoveryDisposition, recoveryDecisionMeaning } from "./durable/Admin.mjs";
|
|
@@ -36,6 +36,7 @@ import { PreparedInput } from "./durable/Subscription.mjs";
|
|
|
36
36
|
import { MessageDeliveryDriver, MessageDeliveryFailpoint, MessageDeliveryRecord, MessageDeliveryStore, messageDeliveryCapacity, messageDeliveryUsesCapacity, prepareMessageDelivery } from "./durable/MessageDelivery.mjs";
|
|
37
37
|
import { WakeScheduler } from "./durable/WakeScheduler.mjs";
|
|
38
38
|
import { n as safeUnknownString, t as inspectForeignDiagnostic } from "./foreign-diagnostic-DBQ1XHKh.mjs";
|
|
39
|
+
import { c as threadCreatedBatchId, l as threadCreatedRecordId, n as WorkerAdmissionPort, o as ensureThreadCreated, r as WorkerAdmissionRequest, s as ensureWorkerOrigin } from "./WorkerAdmission-CJ_oWRuS.mjs";
|
|
39
40
|
import { WorkerBudgetAuthorizer, WorkerConcurrencyLimit, WorkerConcurrencyResolver, WorkerHostAuthorizer, WorkerHostConfig, WorkerPolicyResolver } from "./durable/WorkerHost.mjs";
|
|
40
41
|
import { OperationAuthorizationRequest, OperationAuthorizer, OperationDenied } from "./durable/OperationAuthorizer.mjs";
|
|
41
42
|
import { PendingSubmission, SettledSubmission } from "./durable/SubmissionStatus.mjs";
|
|
@@ -767,7 +768,7 @@ const makeWorkerRuntime = Effect.fn("WorkerHost.make")(function* (options) {
|
|
|
767
768
|
recordId: Schema.decodeSync(RecordId)(id),
|
|
768
769
|
family: "thread",
|
|
769
770
|
schemaVersion: 1,
|
|
770
|
-
createdAt: DateTime.makeUnsafe(payload._tag === "WorkerInputRequested" ? payload.admission.createdAtMillis : payload._tag === "
|
|
771
|
+
createdAt: DateTime.makeUnsafe(payload._tag === "WorkerInputRequested" ? payload.admission.createdAtMillis : payload._tag === "WorkerInputCompleted" ? payload.completedAtMillis : yield* Clock.currentTimeMillis),
|
|
771
772
|
deploymentId: deps.deploymentId,
|
|
772
773
|
payload
|
|
773
774
|
}), ...acknowledgements.map((completion) => RecordEnvelope.make({
|
|
@@ -784,20 +785,19 @@ const makeWorkerRuntime = Effect.fn("WorkerHost.make")(function* (options) {
|
|
|
784
785
|
return result;
|
|
785
786
|
}, Effect.mapError(storageFailure("start")));
|
|
786
787
|
const requests = (records) => records.flatMap(({ record }) => record.payload._tag === "WorkerInputRequested" ? [record.payload] : []);
|
|
788
|
+
const completedMessageIds = (records) => new Set(records.flatMap(({ record }) => record.payload._tag === "WorkerInputCompleted" && record.payload.effectsResolved ? [record.payload.messageId] : []));
|
|
787
789
|
const completedInputs = Effect.fn("WorkerHost.completedInputs")(function* (rows, sourceRecords) {
|
|
788
|
-
const completed =
|
|
789
|
-
const acknowledgements =
|
|
790
|
-
for (const { admission } of rows) {
|
|
791
|
-
if (completed.has(admission.messageId)) continue;
|
|
790
|
+
const completed = completedMessageIds(sourceRecords);
|
|
791
|
+
const acknowledgements = (yield* Effect.forEach(rows.filter(({ admission }) => !completed.has(admission.messageId)), Effect.fnUntraced(function* ({ admission }) {
|
|
792
792
|
const receipt = Option.getOrUndefined(yield* getRecord({
|
|
793
793
|
threadId: admission.origin.worker.threadId,
|
|
794
794
|
recordId: Schema.decodeSync(RecordId)(`worker-effects-resolved:${admission.messageId}`)
|
|
795
795
|
}).pipe(Effect.provideService(ThreadStore, deps.store), Effect.catchTag("ThreadNotMaterialized", () => Effect.succeed(Option.none())), Effect.mapError(storageFailure("start"))))?.record.payload;
|
|
796
|
-
if (receipt === void 0)
|
|
796
|
+
if (receipt === void 0) return;
|
|
797
797
|
if (receipt._tag !== "WorkerInputCompleted" || !receipt.effectsResolved || receipt.messageId !== admission.messageId || receipt.workerThreadId !== admission.origin.worker.threadId) return yield* failure("start", "corrupt");
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
798
|
+
return receipt;
|
|
799
|
+
}), { concurrency: 8 })).filter((receipt) => receipt !== void 0);
|
|
800
|
+
for (const receipt of acknowledgements) completed.add(receipt.messageId);
|
|
801
801
|
return {
|
|
802
802
|
completed,
|
|
803
803
|
acknowledgements
|
|
@@ -946,10 +946,18 @@ const makeWorkerRuntime = Effect.fn("WorkerHost.make")(function* (options) {
|
|
|
946
946
|
const limit = Math.min(caps[cap] ?? Infinity, residual);
|
|
947
947
|
if (rows.reduce((sum, row) => sum + row.budget.allocation[amount], payload.budget.allocation[amount]) > limit) return yield* failure("start", "capacity");
|
|
948
948
|
}
|
|
949
|
-
const completedWorkers = yield* completedInputs(requests(source.current.records), source.current.records);
|
|
950
949
|
const completedAttached = new Set(source.current.records.flatMap(({ record }) => record.payload._tag === "SubagentJoined" ? [record.payload.reservationId] : []));
|
|
951
|
-
const
|
|
952
|
-
|
|
950
|
+
const activeLimit = Math.min(caps.maxConcurrentChildren ?? Infinity, source.policy.toolConcurrency);
|
|
951
|
+
const hasSlot = (completed, conservative = false) => {
|
|
952
|
+
const active = new Set(rows.filter((row) => row.lifetime === "background" ? !completed.has(row.reservationId) : !completedAttached.has(row.reservationId)).map((row) => row.childThreadId));
|
|
953
|
+
return active.has(payload.childThreadId) ? !conservative || active.size <= activeLimit : active.size < activeLimit;
|
|
954
|
+
};
|
|
955
|
+
const localCompletions = completedMessageIds(source.current.records);
|
|
956
|
+
const completedWorkers = hasSlot(localCompletions, true) ? {
|
|
957
|
+
completed: localCompletions,
|
|
958
|
+
acknowledgements: []
|
|
959
|
+
} : yield* completedInputs(requests(source.current.records), source.current.records);
|
|
960
|
+
if (!hasSlot(completedWorkers.completed)) return yield* failure("start", "capacity");
|
|
953
961
|
if (yield* append(sourceThreadId, recordId, payload, source.current, "subtree", completedWorkers.acknowledgements)) return;
|
|
954
962
|
}
|
|
955
963
|
return yield* failure("start", "storage");
|
|
@@ -1015,10 +1023,6 @@ const makeWorkerRuntime = Effect.fn("WorkerHost.make")(function* (options) {
|
|
|
1015
1023
|
const limit = Math.min(caps[cap] ?? Infinity, ceilings[cap] ?? Infinity);
|
|
1016
1024
|
if (chargedRows.reduce((sum, row) => sum + row.admission.origin.budget.allocation[amount], origin.budget.allocation[amount]) > limit) return yield* failure("start", "capacity");
|
|
1017
1025
|
}
|
|
1018
|
-
const completed = yield* completedInputs(rows, current.records);
|
|
1019
|
-
const pendingRows = rows.filter((row) => !completed.completed.has(row.admission.messageId));
|
|
1020
|
-
const activeWorkers = new Set(pendingRows.map((row) => row.admission.origin.worker.threadId));
|
|
1021
|
-
const pendingOwn = pendingRows.filter((row) => row.admission.origin.worker.threadId === origin.worker.threadId && row.admission.reportKind === admission.reportKind).length;
|
|
1022
1026
|
const selectedConcurrency = yield* deps.concurrencyResolver.resolve({
|
|
1023
1027
|
source: origin.source,
|
|
1024
1028
|
worker: origin.worker,
|
|
@@ -1027,7 +1031,18 @@ const makeWorkerRuntime = Effect.fn("WorkerHost.make")(function* (options) {
|
|
|
1027
1031
|
...source.submission === void 0 ? {} : { sourceSubmission: source.submission }
|
|
1028
1032
|
});
|
|
1029
1033
|
const sourceConcurrency = Option.isSome(selectedConcurrency) ? (yield* decode(WorkerConcurrencyLimit, selectedConcurrency.value, "start")).maxActiveWorkersPerSource : Infinity;
|
|
1030
|
-
|
|
1034
|
+
const activeLimit = Math.min(sourceConcurrency, deps.limits.maxActiveWorkersPerSource ?? source.policy.toolConcurrency, independent ? Infinity : Math.min(caps.maxConcurrentChildren ?? Infinity, source.policy.toolConcurrency));
|
|
1035
|
+
const hasCapacity = (completed, conservative = false) => {
|
|
1036
|
+
const pendingRows = rows.filter((row) => !completed.has(row.admission.messageId));
|
|
1037
|
+
const activeWorkers = new Set(pendingRows.map((row) => row.admission.origin.worker.threadId));
|
|
1038
|
+
return pendingRows.filter((row) => row.admission.origin.worker.threadId === origin.worker.threadId && row.admission.reportKind === admission.reportKind).length < (admission.reportKind === "update" ? deps.limits.maxPendingUpdateInputsPerWorker ?? 32 : deps.limits.maxPendingInputsPerWorker) && (activeWorkers.has(origin.worker.threadId) ? !conservative || activeWorkers.size <= activeLimit : activeWorkers.size < activeLimit);
|
|
1039
|
+
};
|
|
1040
|
+
const localCompletions = completedMessageIds(current.records);
|
|
1041
|
+
const completed = hasCapacity(localCompletions, true) ? {
|
|
1042
|
+
completed: localCompletions,
|
|
1043
|
+
acknowledgements: []
|
|
1044
|
+
} : yield* completedInputs(rows, current.records);
|
|
1045
|
+
if (!hasCapacity(completed.completed)) return yield* WorkerError.make({
|
|
1031
1046
|
operation: "start",
|
|
1032
1047
|
reason: "capacity",
|
|
1033
1048
|
retryable: true
|
|
@@ -1049,20 +1064,10 @@ const makeWorkerRuntime = Effect.fn("WorkerHost.make")(function* (options) {
|
|
|
1049
1064
|
}
|
|
1050
1065
|
return yield* failure("start", "storage");
|
|
1051
1066
|
});
|
|
1052
|
-
const ensureOrigin =
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
if (existing?._tag === "WorkerOriginRecorded") {
|
|
1057
|
-
if (!sameOrigin(existing.origin, origin)) return yield* failure("start", "worker-mismatch");
|
|
1058
|
-
return;
|
|
1059
|
-
}
|
|
1060
|
-
const first = current.records[0]?.record.payload;
|
|
1061
|
-
if (first?._tag !== "ThreadCreated" || first.agentId !== origin.worker.targetAgentId || !definitionDigestsEqual(first.definitions, origin.targetDigests) || current.records.some(({ record }) => record.payload._tag === "SubagentLineageRecorded")) return yield* failure("start", "worker-mismatch");
|
|
1062
|
-
if (yield* append(origin.worker.threadId, workerOriginRecordId(origin.worker.threadId), WorkerOriginRecorded.make({ origin }), current, "origin")) return;
|
|
1063
|
-
}
|
|
1064
|
-
return yield* failure("start", "storage");
|
|
1065
|
-
});
|
|
1067
|
+
const ensureOrigin = (origin) => ensureWorkerOrigin({
|
|
1068
|
+
producerId: deps.producerId,
|
|
1069
|
+
deploymentId: deps.deploymentId
|
|
1070
|
+
}, origin).pipe(Effect.provideService(ThreadStore, deps.store), Effect.provideService(DurableRuntimeFailpoint, deps.failpoint));
|
|
1066
1071
|
const validateAdmission = Effect.fn("WorkerHost.validateAdmission")(function* (unvalidated, options, agentId, inputDigest, input) {
|
|
1067
1072
|
const admission = yield* decode(WorkerAdmission, unvalidated, "start");
|
|
1068
1073
|
if (admission.reportKind === "update") {
|
|
@@ -2084,10 +2089,6 @@ const childUsageReportsOf = (state) => [...state.started.entries()].map(([toolCa
|
|
|
2084
2089
|
})
|
|
2085
2090
|
});
|
|
2086
2091
|
});
|
|
2087
|
-
/** Deterministic batch identity of one Thread's initial `ThreadCreated` append. */
|
|
2088
|
-
const threadCreatedBatchId = (threadId) => decodeBatchId(`thread-created:${threadId}`);
|
|
2089
|
-
/** Deterministic record identity of one Thread's `ThreadCreated` record. */
|
|
2090
|
-
const threadCreatedRecordId = (threadId) => decodeRecordId(`thread-created:${threadId}`);
|
|
2091
2092
|
/** Deterministic batch identity of one executed recovery decision's audit append (DUR-013). */
|
|
2092
2093
|
const recoveryRepairBatchId = (submissionId, decisionTag) => decodeBatchId(`repair:${submissionId}:${decisionTag}`);
|
|
2093
2094
|
/** Deterministic record identity of one executed recovery decision's `RepairAnnotated` record. */
|
|
@@ -2368,6 +2369,7 @@ const declaredToolCalls = Effect.fn("DurableAgentRuntime.declaredToolCalls")((me
|
|
|
2368
2369
|
const declaredApplicationCalls = Effect.fn("DurableAgentRuntime.declaredApplicationCalls")((messages) => declaredToolCalls(messages).pipe(Effect.map(({ application }) => application)));
|
|
2369
2370
|
const make = Effect.fn("DurableAgentRuntime.make")(function* (bindings) {
|
|
2370
2371
|
const registeredBindings = [...bindings];
|
|
2372
|
+
const workerAdmissionPort = yield* WorkerAdmissionPort;
|
|
2371
2373
|
const ledger = yield* SubmissionLedger;
|
|
2372
2374
|
const submissionScheduling = yield* SubmissionScheduling;
|
|
2373
2375
|
const store = yield* ThreadStore;
|
|
@@ -2910,35 +2912,10 @@ const make = Effect.fn("DurableAgentRuntime.make")(function* (bindings) {
|
|
|
2910
2912
|
threadId,
|
|
2911
2913
|
producerEpoch
|
|
2912
2914
|
})).pipe(Effect.catchTag("FenceRejected", () => Effect.void));
|
|
2913
|
-
|
|
2914
|
-
|
|
2915
|
-
|
|
2916
|
-
|
|
2917
|
-
* child can be claimed before it is runnable; that advances the shared storage fence without
|
|
2918
|
-
* appending anything. Re-read and retry that initialization race with the current fence.
|
|
2919
|
-
*/
|
|
2920
|
-
const ensureThreadCreated = Effect.fn("DurableAgentRuntime.ensureThreadCreated")(function* (threadId, agentId, definitions) {
|
|
2921
|
-
const tail = yield* store.inspectTail(ThreadTailRequest.make({ threadId }));
|
|
2922
|
-
if (tail.tailSequence > 0) return;
|
|
2923
|
-
const record = yield* makeEnvelope(threadCreatedRecordId(threadId), ThreadCreated.make({
|
|
2924
|
-
agentId,
|
|
2925
|
-
definitions
|
|
2926
|
-
}));
|
|
2927
|
-
yield* store.append(FencedAppendRequest.make({
|
|
2928
|
-
threadId,
|
|
2929
|
-
batch: CanonicalBatch.make({
|
|
2930
|
-
batchId: threadCreatedBatchId(threadId),
|
|
2931
|
-
producerId: config.producerId,
|
|
2932
|
-
records: [record]
|
|
2933
|
-
}),
|
|
2934
|
-
expectedTailSequence: tail.tailSequence,
|
|
2935
|
-
expectedTailDigest: tail.tailDigest,
|
|
2936
|
-
producerEpoch: tail.producerEpoch
|
|
2937
|
-
})).pipe(Effect.catchTag(["AppendConflict", "FenceRejected"], (error) => store.inspectTail(ThreadTailRequest.make({ threadId })).pipe(Effect.flatMap((current) => current.tailSequence > 0 ? Effect.void : Effect.fail(error)))), Effect.andThen(wake.notify(threadId)), Effect.asVoid);
|
|
2938
|
-
}, (effect) => effect.pipe(Effect.retry({
|
|
2939
|
-
times: 7,
|
|
2940
|
-
while: (error) => error._tag === "AppendConflict" || error._tag === "FenceRejected"
|
|
2941
|
-
})));
|
|
2915
|
+
const ensureThreadCreated$1 = (threadId, agentId, definitions) => ensureThreadCreated({
|
|
2916
|
+
producerId: config.producerId,
|
|
2917
|
+
deploymentId: config.deploymentId
|
|
2918
|
+
}, threadId, agentId, definitions).pipe(Effect.provideService(ThreadStore, store), Effect.provideService(WakeScheduler, wake));
|
|
2942
2919
|
const attemptContextFor = Effect.fn("DurableAgentRuntime.attemptContextFor")(function* (threadId, producerEpoch) {
|
|
2943
2920
|
const tail = yield* store.inspectTail(ThreadTailRequest.make({ threadId }));
|
|
2944
2921
|
return {
|
|
@@ -3652,7 +3629,7 @@ const make = Effect.fn("DurableAgentRuntime.make")(function* (bindings) {
|
|
|
3652
3629
|
}
|
|
3653
3630
|
yield* hit("subagent:after-admit");
|
|
3654
3631
|
yield* materializeAtLeast(request.childThreadId, ZERO_EPOCH);
|
|
3655
|
-
yield* ensureThreadCreated(request.childThreadId, request.targetAgentId, request.targetDigests);
|
|
3632
|
+
yield* ensureThreadCreated$1(request.childThreadId, request.targetAgentId, request.targetDigests);
|
|
3656
3633
|
const childRead = yield* readAllTolerant(request.childThreadId, []);
|
|
3657
3634
|
yield* ensureChildLineage(parent, request, childRead.records);
|
|
3658
3635
|
yield* ledger.markReady(MarkReadyRequest.make({ submissionId: childSubmissionId }));
|
|
@@ -5261,7 +5238,7 @@ const make = Effect.fn("DurableAgentRuntime.make")(function* (bindings) {
|
|
|
5261
5238
|
...Schema.is(FrameworkMessage)(submission.messageAdmission) ? { frameworkMessage: submission.messageAdmission } : {},
|
|
5262
5239
|
approval,
|
|
5263
5240
|
toolAuthorization,
|
|
5264
|
-
...journal.toolSelection === void 0 ? {} : { toolSelection: journal.toolSelection },
|
|
5241
|
+
...journal.toolSelection === void 0 ? {} : { toolSelection: { toolNames: journal.toolSelection.toolNames.filter((name) => Object.hasOwn(agent.definition.toolkit.tools, name)) } },
|
|
5265
5242
|
durability,
|
|
5266
5243
|
subagent,
|
|
5267
5244
|
delegationDepth,
|
|
@@ -5652,7 +5629,7 @@ const make = Effect.fn("DurableAgentRuntime.make")(function* (bindings) {
|
|
|
5652
5629
|
}));
|
|
5653
5630
|
const snapshot = yield* ledger.loadRecoverySnapshot(RecoverySnapshotRequest.make({ submissionId }));
|
|
5654
5631
|
const submission = snapshot.submission;
|
|
5655
|
-
yield* ensureThreadCreated(threadId, submission.agentId, submission.agentDigests);
|
|
5632
|
+
yield* ensureThreadCreated$1(threadId, submission.agentId, submission.agentDigests);
|
|
5656
5633
|
if (submission.workerAdmission?.origin.reporting?.mode === "standard") yield* updateRuntime.repair(threadId);
|
|
5657
5634
|
if (submission.workerAdmission !== void 0) yield* workerRuntime.ensureOrigin(submission.workerAdmission.origin).pipe(Effect.mapError((cause) => LedgerError.make({
|
|
5658
5635
|
operation: "worker-origin",
|
|
@@ -6094,7 +6071,7 @@ const make = Effect.fn("DurableAgentRuntime.make")(function* (bindings) {
|
|
|
6094
6071
|
if (Option.isNone(claimed)) {
|
|
6095
6072
|
if (submission.state === "ready" && snapshot.ownership === void 0) return yield* Effect.gen(function* () {
|
|
6096
6073
|
yield* materializeAtLeast(submission.threadId, ZERO_EPOCH);
|
|
6097
|
-
yield* ensureThreadCreated(submission.threadId, submission.agentId, submission.agentDigests);
|
|
6074
|
+
yield* ensureThreadCreated$1(submission.threadId, submission.agentId, submission.agentDigests);
|
|
6098
6075
|
const ctx = yield* attemptContextAtTail(submission.threadId);
|
|
6099
6076
|
const tokenRef = yield* Ref.make(QUEUED_ABORT_SETTLEMENT_TOKEN);
|
|
6100
6077
|
yield* settleAborted(ctx, submission, tokenRef, intent, evidence, knownRecordIdsOf(records));
|
|
@@ -6111,7 +6088,7 @@ const make = Effect.fn("DurableAgentRuntime.make")(function* (bindings) {
|
|
|
6111
6088
|
threadId: submission.threadId,
|
|
6112
6089
|
producerEpoch: claim.producerEpoch
|
|
6113
6090
|
}));
|
|
6114
|
-
yield* ensureThreadCreated(submission.threadId, submission.agentId, submission.agentDigests);
|
|
6091
|
+
yield* ensureThreadCreated$1(submission.threadId, submission.agentId, submission.agentDigests);
|
|
6115
6092
|
const ctx = yield* attemptContextFor(submission.threadId, claim.producerEpoch);
|
|
6116
6093
|
const tokenRef = yield* Ref.make(claim.ownershipToken);
|
|
6117
6094
|
yield* settleAborted(ctx, submission, tokenRef, intent, evidence, knownRecordIdsOf(records));
|
|
@@ -6308,7 +6285,7 @@ const make = Effect.fn("DurableAgentRuntime.make")(function* (bindings) {
|
|
|
6308
6285
|
case "CompleteMaterialization":
|
|
6309
6286
|
case "RepairReadiness":
|
|
6310
6287
|
yield* materializeAtLeast(submission.threadId, ZERO_EPOCH);
|
|
6311
|
-
yield* ensureThreadCreated(submission.threadId, submission.agentId, submission.agentDigests);
|
|
6288
|
+
yield* ensureThreadCreated$1(submission.threadId, submission.agentId, submission.agentDigests);
|
|
6312
6289
|
if (submission.workerAdmission !== void 0) yield* workerRuntime.ensureOrigin(submission.workerAdmission.origin).pipe(Effect.mapError((cause) => LedgerError.make({
|
|
6313
6290
|
operation: "worker-origin",
|
|
6314
6291
|
message: cause.reason,
|
|
@@ -6325,7 +6302,7 @@ const make = Effect.fn("DurableAgentRuntime.make")(function* (bindings) {
|
|
|
6325
6302
|
threadId: submission.threadId,
|
|
6326
6303
|
producerEpoch: claim.producerEpoch
|
|
6327
6304
|
}));
|
|
6328
|
-
yield* ensureThreadCreated(submission.threadId, submission.agentId, submission.agentDigests);
|
|
6305
|
+
yield* ensureThreadCreated$1(submission.threadId, submission.agentId, submission.agentDigests);
|
|
6329
6306
|
const ctx = yield* attemptContextFor(submission.threadId, claim.producerEpoch);
|
|
6330
6307
|
const tokenRef = yield* Ref.make(claim.ownershipToken);
|
|
6331
6308
|
const currentRecords = yield* refreshRecoveryHistory(submission.threadId, records, history.throughSequence, history.submissionIds);
|
|
@@ -6603,7 +6580,7 @@ const make = Effect.fn("DurableAgentRuntime.make")(function* (bindings) {
|
|
|
6603
6580
|
code: "unregistered-replay-contract"
|
|
6604
6581
|
});
|
|
6605
6582
|
}
|
|
6606
|
-
const
|
|
6583
|
+
const request = yield* Schema.decodeEffect(AdmissionRequest)({
|
|
6607
6584
|
threadId: options.threadId,
|
|
6608
6585
|
principal: options.principal,
|
|
6609
6586
|
idempotencyKey: options.idempotencyKey,
|
|
@@ -6622,7 +6599,21 @@ const make = Effect.fn("DurableAgentRuntime.make")(function* (bindings) {
|
|
|
6622
6599
|
}).pipe(Effect.mapError(() => LedgerError.make({
|
|
6623
6600
|
operation: "submit",
|
|
6624
6601
|
message: "Admission fields do not satisfy the ledger contract"
|
|
6625
|
-
})))
|
|
6602
|
+
})));
|
|
6603
|
+
if (workerAdmission !== void 0) {
|
|
6604
|
+
const admitted = yield* workerAdmissionPort.admit(WorkerAdmissionRequest.make({
|
|
6605
|
+
...request,
|
|
6606
|
+
workerAdmission,
|
|
6607
|
+
producerId: config.producerId
|
|
6608
|
+
})).pipe(Effect.provideService(SubmissionLedger, ledger), Effect.provideService(ThreadStore, store), Effect.provideService(WakeScheduler, wake), Effect.provideService(DurableRuntimeFailpoint, failpoint));
|
|
6609
|
+
return Receipt.make({
|
|
6610
|
+
receiptId: admitted.receiptId,
|
|
6611
|
+
submissionId: admitted.submissionId,
|
|
6612
|
+
threadId: request.threadId,
|
|
6613
|
+
queueSequence: admitted.queueSequence
|
|
6614
|
+
});
|
|
6615
|
+
}
|
|
6616
|
+
const admitted = yield* ledger.admit(request);
|
|
6626
6617
|
yield* hit("submit:after-admit");
|
|
6627
6618
|
const receipt = Receipt.make({
|
|
6628
6619
|
receiptId: admitted.receiptId,
|
|
@@ -6632,12 +6623,7 @@ const make = Effect.fn("DurableAgentRuntime.make")(function* (bindings) {
|
|
|
6632
6623
|
});
|
|
6633
6624
|
if (admitted.replayed && admitted.state !== "admitted") return receipt;
|
|
6634
6625
|
yield* materializeAtLeast(options.threadId, ZERO_EPOCH);
|
|
6635
|
-
yield* ensureThreadCreated(options.threadId, agent.definition.id, options.definitions);
|
|
6636
|
-
if (workerAdmission !== void 0) yield* workerRuntime.ensureOrigin(workerAdmission.origin).pipe(Effect.mapError((cause) => LedgerError.make({
|
|
6637
|
-
operation: "worker-origin",
|
|
6638
|
-
message: cause.reason,
|
|
6639
|
-
cause
|
|
6640
|
-
})));
|
|
6626
|
+
yield* ensureThreadCreated$1(options.threadId, agent.definition.id, options.definitions);
|
|
6641
6627
|
yield* hit("submit:after-materialize");
|
|
6642
6628
|
yield* ledger.markReady(MarkReadyRequest.make({ submissionId: admitted.submissionId }));
|
|
6643
6629
|
yield* wake.notify(options.threadId);
|
|
@@ -7216,6 +7202,6 @@ var DurableAgentRuntime = class DurableAgentRuntime extends Context.Service()("@
|
|
|
7216
7202
|
static layer = DurableAgentRuntime.layerWithServices.pipe(Layer.provide([RunContextPreparationPassthrough, RunToolAuthorization.allowAll]));
|
|
7217
7203
|
};
|
|
7218
7204
|
//#endregion
|
|
7219
|
-
export { DurableApprovalSuspension as a, RecoveryFailure as c, childReservationIdFor as d, isolateRecovery as f,
|
|
7205
|
+
export { DurableApprovalSuspension as a, RecoveryFailure as c, childReservationIdFor as d, isolateRecovery as f, DurableApprovalResolver as i, RecoveryReport as l, recoveryRepairRecordId as m, DurableAgentRuntime as n, DurableRuntimeConfig as o, recoveryRepairBatchId as p, DurableAgentRuntime_exports as r, RecoveryBlocked as s, ApprovalSuspensionError as t, RecoverySweepResult as u };
|
|
7220
7206
|
|
|
7221
|
-
//# sourceMappingURL=DurableAgentRuntime-
|
|
7207
|
+
//# sourceMappingURL=DurableAgentRuntime-DQFV26SB.mjs.map
|