effect-agent 0.1.0-beta.124 → 0.1.0-beta.125
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/{AgentRuntime-BUxDdLpw.d.mts → AgentRuntime-ov0LFEb-.d.mts} +2 -2
- package/dist/{DurableAgentRuntime-B-9w7jDt.mjs → DurableAgentRuntime-BvDGe7F9.mjs} +2 -1
- package/dist/DurableAgentRuntime-BvDGe7F9.mjs.map +1 -0
- package/dist/{EventSource-CnlZ3Kma.d.mts → EventSource-CNBoY8AA.d.mts} +3 -3
- package/dist/{PreparedInputAdmission-BQLGldl-.d.mts → PreparedInputAdmission--_APJzWY.d.mts} +4 -4
- package/dist/{Records-D88mgvyS.d.mts → Records-uGX4_EGf.d.mts} +3 -3
- package/dist/{Schedule-BIOHA6RR.d.mts → Schedule-C8ze8WTW.d.mts} +2 -2
- package/dist/{Subagent-CNik9RiA.d.mts → Subagent-CCf7rY70.d.mts} +12 -4
- package/dist/{Subagent-DCrB7an7.mjs → Subagent-CudP5BlT.mjs} +2 -1
- package/dist/Subagent-CudP5BlT.mjs.map +1 -0
- package/dist/{SubagentHost-4WB8Hj0C.d.mts → SubagentHost-B0-cRCqs.d.mts} +4 -1
- package/dist/{Subscription-CRteOKRf.d.mts → Subscription-CYb8ltMK.d.mts} +3 -3
- package/dist/{SubscriptionInput-oNcwTPti.d.mts → SubscriptionInput-C1XE9Vyi.d.mts} +3 -3
- package/dist/capabilities/Subagent.d.mts +1 -1
- package/dist/capabilities/Subagent.mjs +1 -1
- package/dist/durable/ActivityStore.d.mts +1 -1
- 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/Digest.d.mts +1 -1
- package/dist/durable/DurableAgentRuntime.d.mts +1 -1
- package/dist/durable/DurableAgentRuntime.mjs +1 -1
- package/dist/durable/EventSource.d.mts +1 -1
- package/dist/durable/GitHubWorkflowSource.d.mts +3 -3
- package/dist/durable/MessageDelivery.d.mts +41 -41
- package/dist/durable/MessageDeliveryStoreConformance.d.mts +39 -39
- package/dist/durable/PersistentHistory.d.mts +1 -1
- package/dist/durable/PreparedInputAdmission.d.mts +1 -1
- package/dist/durable/Records.d.mts +1 -1
- package/dist/durable/Recovery.d.mts +1 -1
- package/dist/durable/RunJournal.d.mts +1 -1
- package/dist/durable/Schedule.d.mts +1 -1
- package/dist/durable/ScheduleStoreConformance.d.mts +1 -1
- package/dist/durable/ScheduleTransition.d.mts +1 -1
- package/dist/durable/Scheduling.d.mts +2 -2
- package/dist/durable/SqlStorageV2Upgrade.d.mts +2 -2
- package/dist/durable/SqlSubscriptionStore.d.mts +2 -2
- package/dist/durable/SqlThreadNativeReads.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 +3 -3
- 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/ThreadContextHistoryProjection.d.mts +1 -1
- package/dist/durable/ThreadInvariants.d.mts +1 -1
- package/dist/durable/ThreadProjection.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/WorkerHost.d.mts +1 -1
- package/dist/engine/AgentRuntime.d.mts +1 -1
- package/dist/engine/SubagentHost.d.mts +1 -1
- package/dist/engine/SubagentHost.mjs.map +1 -1
- package/dist/index.d.mts +9 -9
- package/dist/index.mjs +2 -2
- package/package.json +1 -1
- package/src/capabilities/internal/subagent-background.ts +13 -1
- package/src/durable/internal/worker-host.ts +2 -0
- package/src/engine/SubagentHost.ts +3 -0
- package/dist/DurableAgentRuntime-B-9w7jDt.mjs.map +0 -1
- package/dist/Subagent-DCrB7an7.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubagentHost.mjs","names":[],"sources":["../../src/engine/SubagentHost.ts"],"sourcesContent":["import type { Effect, Option } from \"effect\";\nimport { Context, Schema, Stream } from \"effect\";\n\nimport type * as Agent from \"../core/Agent.ts\";\nimport type { AgentPolicy } from \"../core/AgentPolicy.ts\";\nimport type * as FailureDiagnostic from \"../core/FailureDiagnostic.ts\";\nimport type { DelegationId, RunId, SettlementId, ThreadId } from \"../core/Identifiers.ts\";\nimport type { MessageRef, MessageStatus } from \"../core/Messaging.ts\";\nimport { type IdempotencyKey, type JoinedToHost, type Receipt } from \"../core/Receipt.ts\";\nimport type { SubagentBudgetReservation } from \"../core/SubagentContract.ts\";\nimport {\n WorkerError,\n type WorkerStop,\n type WorkerStopped,\n type WorkerCompletion,\n type WorkerHistoryEntry,\n type WorkerContext,\n type WorkerBudgetScope,\n type WorkerSource,\n type WorkerPage,\n type WorkerRef,\n type WorkerStarted,\n type WorkerSummary,\n} from \"../core/Worker.ts\";\n\n/** Prepared values cross this port only to be Schema-decoded before durable storage. */\nexport interface StartWorkerRequest {\n readonly delegationId: DelegationId;\n readonly target: Agent.AnyDefinition;\n readonly idempotencyKey: IdempotencyKey;\n readonly encodedInput: unknown;\n readonly encodedParameters: unknown;\n readonly policy: AgentPolicy;\n readonly budget: SubagentBudgetReservation;\n readonly encodedGrant: unknown;\n readonly toolCallAllowance?: number;\n /** Author-owned request; the durable host must separately authorize worker-run funding. */\n readonly budgetScope?: WorkerBudgetScope;\n}\n\n/**\n * First-admission preparation stays lazy until the owner authorizes the caller and checks the\n * retained command. Replays compare declared parameters/options and reuse the original capture.\n * Prepared policy, budget, and allowance are frozen first-admission configuration, not replay\n * arguments; changing them requires a new command key. Current caller authorization still applies.\n * Preparation must be free of external effects: concurrent first admissions can prepare before\n * the retained delivery chooses its first writer.\n */\nexport interface DeferredStartWorkerRequest<E = never, R = never> extends Pick<\n StartWorkerRequest,\n | \"delegationId\"\n | \"target\"\n | \"idempotencyKey\"\n | \"encodedParameters\"\n | \"encodedGrant\"\n | \"budgetScope\"\n> {\n readonly prepare: Effect.Effect<\n Pick<StartWorkerRequest, \"encodedInput\" | \"policy\" | \"budget\" | \"toolCallAllowance\">,\n E,\n R\n >;\n}\n\nexport interface FollowUpWorkerRequest {\n readonly worker: WorkerRef;\n readonly target: Agent.AnyDefinition;\n readonly idempotencyKey: IdempotencyKey;\n readonly encodedInput: unknown;\n readonly encodedParameters: unknown;\n}\n\n/**\n * Like deferred starts, follow-ups prepare only after current authorization and retained-command\n * lookup. Replays compare declared parameters and reuse the original input and worker authority.\n * Preparation must be free of external effects because concurrent first admissions can prepare.\n */\nexport interface DeferredFollowUpWorkerRequest<E = never, R = never> extends Omit<\n FollowUpWorkerRequest,\n \"encodedInput\"\n> {\n readonly prepare: Effect.Effect<Pick<FollowUpWorkerRequest, \"encodedInput\">, E, R>;\n}\n\nexport interface WorkerReceiptRequest {\n readonly worker: WorkerRef;\n readonly target: Agent.AnyDefinition;\n readonly receipt: Receipt;\n}\n\nexport interface WorkerMessageRequest {\n readonly worker: WorkerRef;\n readonly target: Agent.AnyDefinition;\n readonly message: MessageRef;\n}\n\n/**\n * Canonical terminal values remain encoded until the capability decodes the saved parameters\n * and target output and applies its declared result projection. Child E does not survive settlement.\n */\nexport type WorkerObservation =\n | { readonly _tag: \"Pending\"; readonly receipt: Receipt }\n | {\n readonly _tag: \"Settled\";\n readonly receipt: Receipt;\n /** Absent when an input failed or was cancelled before any Run started. */\n readonly runId?: RunId;\n readonly settlementId: SettlementId;\n readonly outcome: \"completed\" | \"failed\" | \"aborted\";\n readonly encodedParameters: unknown;\n readonly encodedResult: unknown;\n /** Operator-private failed-settlement evidence; never part of a model Tool result. */\n readonly diagnostic?: FailureDiagnostic.Failure;\n readonly budgetExhausted: boolean;\n };\n\n/** One actual canonical Run, independent of how many input Receipts joined it. */\nexport interface WorkerRunReport {\n readonly worker: WorkerRef;\n readonly context: WorkerContext;\n readonly observation: Extract<WorkerObservation, { readonly _tag: \"Settled\" }> & {\n readonly runId: RunId;\n };\n}\n\n/** A bounded projection failure; raw application errors never enter durable report records. */\nexport class WorkerReportPreparationFailure extends Schema.TaggedError<WorkerReportPreparationFailure>()(\n \"WorkerReportPreparationFailure\",\n { stage: Schema.Literals([\"projection\", \"input\", \"preparation\"]) },\n) {}\n\n/**\n * Source-owned standard projection discovered from background tools.\n * The concrete descriptor retains its E/R; durable registration captures R and records\n * bounded preparation failure rather than serializing arbitrary application errors.\n */\nexport interface WorkerReporting<E = never, R = never> {\n readonly delegationId: DelegationId;\n readonly target: Agent.AnyDefinition;\n readonly prepare: (report: WorkerRunReport) => Effect.Effect<\n {\n readonly message: WorkerCompletion;\n },\n E | WorkerReportPreparationFailure,\n R\n >;\n}\n\n/** Descriptor carried by background tools; registration discovers it without an app handoff. */\nexport const BackgroundReporting = Context.Reference<\n WorkerReporting<WorkerReportPreparationFailure> | undefined\n>(\"@effect-agent/engine/BackgroundReporting\", { defaultValue: () => undefined });\n\n/**\n * Trusted, caller-bound host port. The interpreter supplies a fresh facet for each Tool Call;\n * programmatic callers acquire a separately authorized Thread facet. Request values cannot\n * choose the source identity, replace worker provenance or expand its authority and budgets.\n */\nexport class SubagentHost extends Context.Service<\n SubagentHost,\n {\n readonly context: Effect.Effect<WorkerContext, WorkerError>;\n /** Resolve prepared input through host authority; None retains legacy target inheritance. */\n readonly resolveTargetPolicy: (request: {\n readonly target: Agent.AnyDefinition;\n readonly encodedInput: unknown;\n }) => Effect.Effect<Option.Option<AgentPolicy>, WorkerError>;\n /** Prepared callers retain strict input/policy conflicts; deferred callers replay the saved capture. */\n readonly start: <E = never, R = never>(\n request: StartWorkerRequest | DeferredStartWorkerRequest<E, R>,\n ) => Effect.Effect<WorkerStarted, WorkerError | E, R>;\n /** Prepared callers retain strict input conflicts; deferred callers replay the saved capture. */\n readonly followUp: <E = never, R = never>(\n request: FollowUpWorkerRequest | DeferredFollowUpWorkerRequest<E, R>,\n ) => Effect.Effect<MessageStatus, WorkerError | E, R>;\n readonly inspect: (\n request: WorkerReceiptRequest | WorkerMessageRequest,\n ) => Effect.Effect<WorkerObservation | MessageStatus, WorkerError>;\n /** Inspect the continuing worker using the same summary contract as discovery. */\n readonly summary: (request: {\n readonly worker: WorkerRef;\n readonly target: Agent.AnyDefinition;\n }) => Effect.Effect<WorkerSummary, WorkerError>;\n /** A finite snapshot through the captured tail; resume with the last sequence as `after`. */\n readonly observe: (request: {\n readonly worker: WorkerRef;\n readonly target: Agent.AnyDefinition;\n readonly after?: number;\n }) => Stream.Stream<WorkerHistoryEntry, WorkerError>;\n /** Interrupting this wait never requests cancellation of accepted work. */\n readonly await: (\n request: WorkerReceiptRequest,\n ) => Effect.Effect<WorkerObservation, WorkerError>;\n readonly list: (request: {\n readonly delegationId: DelegationId;\n readonly target: Agent.AnyDefinition;\n readonly limit: number;\n readonly after?: ThreadId;\n }) => Effect.Effect<WorkerPage, WorkerError>;\n /** Seal the whole worker; retries reconcile the same command, including a lost acknowledgement. */\n readonly stop: (\n request: WorkerStop & { readonly target: Agent.AnyDefinition },\n ) => Effect.Effect<WorkerStopped, WorkerError>;\n /** Cancel exactly this Receipt; preserve JoinedToHost without broadening its target. */\n readonly cancel: (\n request: WorkerReceiptRequest,\n ) => Effect.Effect<void, WorkerError | JoinedToHost>;\n }\n>()(\"@effect-agent/engine/SubagentHost\") {\n static readonly unavailable: SubagentHost[\"Service\"] = {\n context: WorkerError.make({ operation: \"context\", reason: \"unavailable\" }),\n resolveTargetPolicy: () => WorkerError.make({ operation: \"start\", reason: \"unavailable\" }),\n start: () => WorkerError.make({ operation: \"start\", reason: \"unavailable\" }),\n followUp: () => WorkerError.make({ operation: \"followUp\", reason: \"unavailable\" }),\n inspect: () => WorkerError.make({ operation: \"inspect\", reason: \"unavailable\" }),\n summary: () => WorkerError.make({ operation: \"inspect\", reason: \"unavailable\" }),\n observe: () => Stream.fail(WorkerError.make({ operation: \"observe\", reason: \"unavailable\" })),\n await: () => WorkerError.make({ operation: \"await\", reason: \"unavailable\" }),\n list: () => WorkerError.make({ operation: \"list\", reason: \"unavailable\" }),\n stop: () => WorkerError.make({ operation: \"stop\", reason: \"unavailable\" }),\n cancel: () => WorkerError.make({ operation: \"cancel\", reason: \"unavailable\" }),\n };\n\n /** Runtime-owned per-call binding. Unconfigured Runs deny background operations. */\n static readonly forTool = Context.Reference<\n (source: Extract<WorkerSource, { readonly _tag: \"tool\" }>) => SubagentHost[\"Service\"]\n >(\"@effect-agent/engine/SubagentHost/forTool\", {\n defaultValue: () => () => SubagentHost.unavailable,\n });\n}\n"],"mappings":";;;;;;;;;;AA8HA,IAAa,iCAAb,cAAoD,OAAO,YAA4C,CAAC,CACtG,kCACA,EAAE,OAAO,OAAO,SAAS;CAAC;CAAc;CAAS;AAAa,CAAC,EAAE,CACnE,CAAC,CAAC,CAAC;;AAoBH,MAAa,sBAAsB,QAAQ,UAEzC,4CAA4C,EAAE,oBAAoB,KAAA,EAAU,CAAC;;;;;;AAO/E,IAAa,eAAb,MAAa,qBAAqB,QAAQ,QAkDxC,CAAC,CAAC,mCAAmC,CAAC,CAAC;CACvC,OAAgB,cAAuC;EACrD,SAAS,YAAY,KAAK;GAAE,WAAW;GAAW,QAAQ;EAAc,CAAC;EACzE,2BAA2B,YAAY,KAAK;GAAE,WAAW;GAAS,QAAQ;EAAc,CAAC;EACzF,aAAa,YAAY,KAAK;GAAE,WAAW;GAAS,QAAQ;EAAc,CAAC;EAC3E,gBAAgB,YAAY,KAAK;GAAE,WAAW;GAAY,QAAQ;EAAc,CAAC;EACjF,eAAe,YAAY,KAAK;GAAE,WAAW;GAAW,QAAQ;EAAc,CAAC;EAC/E,eAAe,YAAY,KAAK;GAAE,WAAW;GAAW,QAAQ;EAAc,CAAC;EAC/E,eAAe,OAAO,KAAK,YAAY,KAAK;GAAE,WAAW;GAAW,QAAQ;EAAc,CAAC,CAAC;EAC5F,aAAa,YAAY,KAAK;GAAE,WAAW;GAAS,QAAQ;EAAc,CAAC;EAC3E,YAAY,YAAY,KAAK;GAAE,WAAW;GAAQ,QAAQ;EAAc,CAAC;EACzE,YAAY,YAAY,KAAK;GAAE,WAAW;GAAQ,QAAQ;EAAc,CAAC;EACzE,cAAc,YAAY,KAAK;GAAE,WAAW;GAAU,QAAQ;EAAc,CAAC;CAC/E;;CAGA,OAAgB,UAAU,QAAQ,UAEhC,6CAA6C,EAC7C,0BAA0B,aAAa,YACzC,CAAC;AACH"}
|
|
1
|
+
{"version":3,"file":"SubagentHost.mjs","names":[],"sources":["../../src/engine/SubagentHost.ts"],"sourcesContent":["import type { Effect, Option } from \"effect\";\nimport { Context, Schema, Stream } from \"effect\";\n\nimport type * as Agent from \"../core/Agent.ts\";\nimport type { AgentPolicy } from \"../core/AgentPolicy.ts\";\nimport type { Update } from \"../core/AgentUpdates.ts\";\nimport type * as FailureDiagnostic from \"../core/FailureDiagnostic.ts\";\nimport type { DelegationId, RunId, SettlementId, ThreadId } from \"../core/Identifiers.ts\";\nimport type { MessageRef, MessageStatus } from \"../core/Messaging.ts\";\nimport { type IdempotencyKey, type JoinedToHost, type Receipt } from \"../core/Receipt.ts\";\nimport type { SubagentBudgetReservation } from \"../core/SubagentContract.ts\";\nimport {\n WorkerError,\n type WorkerStop,\n type WorkerStopped,\n type WorkerCompletion,\n type WorkerHistoryEntry,\n type WorkerContext,\n type WorkerBudgetScope,\n type WorkerSource,\n type WorkerPage,\n type WorkerRef,\n type WorkerStarted,\n type WorkerSummary,\n} from \"../core/Worker.ts\";\n\n/** Prepared values cross this port only to be Schema-decoded before durable storage. */\nexport interface StartWorkerRequest {\n readonly delegationId: DelegationId;\n readonly target: Agent.AnyDefinition;\n readonly idempotencyKey: IdempotencyKey;\n readonly encodedInput: unknown;\n readonly encodedParameters: unknown;\n readonly policy: AgentPolicy;\n readonly budget: SubagentBudgetReservation;\n readonly encodedGrant: unknown;\n readonly toolCallAllowance?: number;\n /** Author-owned request; the durable host must separately authorize worker-run funding. */\n readonly budgetScope?: WorkerBudgetScope;\n}\n\n/**\n * First-admission preparation stays lazy until the owner authorizes the caller and checks the\n * retained command. Replays compare declared parameters/options and reuse the original capture.\n * Prepared policy, budget, and allowance are frozen first-admission configuration, not replay\n * arguments; changing them requires a new command key. Current caller authorization still applies.\n * Preparation must be free of external effects: concurrent first admissions can prepare before\n * the retained delivery chooses its first writer.\n */\nexport interface DeferredStartWorkerRequest<E = never, R = never> extends Pick<\n StartWorkerRequest,\n | \"delegationId\"\n | \"target\"\n | \"idempotencyKey\"\n | \"encodedParameters\"\n | \"encodedGrant\"\n | \"budgetScope\"\n> {\n readonly prepare: Effect.Effect<\n Pick<StartWorkerRequest, \"encodedInput\" | \"policy\" | \"budget\" | \"toolCallAllowance\">,\n E,\n R\n >;\n}\n\nexport interface FollowUpWorkerRequest {\n readonly worker: WorkerRef;\n readonly target: Agent.AnyDefinition;\n readonly idempotencyKey: IdempotencyKey;\n readonly encodedInput: unknown;\n readonly encodedParameters: unknown;\n}\n\n/**\n * Like deferred starts, follow-ups prepare only after current authorization and retained-command\n * lookup. Replays compare declared parameters and reuse the original input and worker authority.\n * Preparation must be free of external effects because concurrent first admissions can prepare.\n */\nexport interface DeferredFollowUpWorkerRequest<E = never, R = never> extends Omit<\n FollowUpWorkerRequest,\n \"encodedInput\"\n> {\n readonly prepare: Effect.Effect<Pick<FollowUpWorkerRequest, \"encodedInput\">, E, R>;\n}\n\nexport interface WorkerReceiptRequest {\n readonly worker: WorkerRef;\n readonly target: Agent.AnyDefinition;\n readonly receipt: Receipt;\n}\n\nexport interface WorkerMessageRequest {\n readonly worker: WorkerRef;\n readonly target: Agent.AnyDefinition;\n readonly message: MessageRef;\n}\n\n/**\n * Canonical terminal values remain encoded until the capability decodes the saved parameters\n * and target output and applies its declared result projection. Child E does not survive settlement.\n */\nexport type WorkerObservation =\n | { readonly _tag: \"Pending\"; readonly receipt: Receipt }\n | {\n readonly _tag: \"Settled\";\n readonly receipt: Receipt;\n /** Absent when an input failed or was cancelled before any Run started. */\n readonly runId?: RunId;\n readonly settlementId: SettlementId;\n readonly outcome: \"completed\" | \"failed\" | \"aborted\";\n readonly encodedParameters: unknown;\n readonly encodedResult: unknown;\n /** Operator-private failed-settlement evidence; never part of a model Tool result. */\n readonly diagnostic?: FailureDiagnostic.Failure;\n readonly budgetExhausted: boolean;\n };\n\n/** One actual canonical Run, independent of how many input Receipts joined it. */\nexport interface WorkerRunReport {\n readonly worker: WorkerRef;\n readonly context: WorkerContext;\n readonly observation: Extract<WorkerObservation, { readonly _tag: \"Settled\" }> & {\n readonly runId: RunId;\n };\n}\n\n/** A bounded projection failure; raw application errors never enter durable report records. */\nexport class WorkerReportPreparationFailure extends Schema.TaggedError<WorkerReportPreparationFailure>()(\n \"WorkerReportPreparationFailure\",\n { stage: Schema.Literals([\"projection\", \"input\", \"preparation\"]) },\n) {}\n\n/**\n * Source-owned standard projection discovered from background tools.\n * The concrete descriptor retains its E/R; durable registration captures R and records\n * bounded preparation failure rather than serializing arbitrary application errors.\n */\nexport interface WorkerReporting<E = never, R = never> {\n readonly delegationId: DelegationId;\n readonly target: Agent.AnyDefinition;\n /** Pure first-emission selection. False retains the canonical update without parent delivery. */\n readonly reportUpdate?: (update: Update) => boolean;\n readonly prepare: (report: WorkerRunReport) => Effect.Effect<\n {\n readonly message: WorkerCompletion;\n },\n E | WorkerReportPreparationFailure,\n R\n >;\n}\n\n/** Descriptor carried by background tools; registration discovers it without an app handoff. */\nexport const BackgroundReporting = Context.Reference<\n WorkerReporting<WorkerReportPreparationFailure> | undefined\n>(\"@effect-agent/engine/BackgroundReporting\", { defaultValue: () => undefined });\n\n/**\n * Trusted, caller-bound host port. The interpreter supplies a fresh facet for each Tool Call;\n * programmatic callers acquire a separately authorized Thread facet. Request values cannot\n * choose the source identity, replace worker provenance or expand its authority and budgets.\n */\nexport class SubagentHost extends Context.Service<\n SubagentHost,\n {\n readonly context: Effect.Effect<WorkerContext, WorkerError>;\n /** Resolve prepared input through host authority; None retains legacy target inheritance. */\n readonly resolveTargetPolicy: (request: {\n readonly target: Agent.AnyDefinition;\n readonly encodedInput: unknown;\n }) => Effect.Effect<Option.Option<AgentPolicy>, WorkerError>;\n /** Prepared callers retain strict input/policy conflicts; deferred callers replay the saved capture. */\n readonly start: <E = never, R = never>(\n request: StartWorkerRequest | DeferredStartWorkerRequest<E, R>,\n ) => Effect.Effect<WorkerStarted, WorkerError | E, R>;\n /** Prepared callers retain strict input conflicts; deferred callers replay the saved capture. */\n readonly followUp: <E = never, R = never>(\n request: FollowUpWorkerRequest | DeferredFollowUpWorkerRequest<E, R>,\n ) => Effect.Effect<MessageStatus, WorkerError | E, R>;\n readonly inspect: (\n request: WorkerReceiptRequest | WorkerMessageRequest,\n ) => Effect.Effect<WorkerObservation | MessageStatus, WorkerError>;\n /** Inspect the continuing worker using the same summary contract as discovery. */\n readonly summary: (request: {\n readonly worker: WorkerRef;\n readonly target: Agent.AnyDefinition;\n }) => Effect.Effect<WorkerSummary, WorkerError>;\n /** A finite snapshot through the captured tail; resume with the last sequence as `after`. */\n readonly observe: (request: {\n readonly worker: WorkerRef;\n readonly target: Agent.AnyDefinition;\n readonly after?: number;\n }) => Stream.Stream<WorkerHistoryEntry, WorkerError>;\n /** Interrupting this wait never requests cancellation of accepted work. */\n readonly await: (\n request: WorkerReceiptRequest,\n ) => Effect.Effect<WorkerObservation, WorkerError>;\n readonly list: (request: {\n readonly delegationId: DelegationId;\n readonly target: Agent.AnyDefinition;\n readonly limit: number;\n readonly after?: ThreadId;\n }) => Effect.Effect<WorkerPage, WorkerError>;\n /** Seal the whole worker; retries reconcile the same command, including a lost acknowledgement. */\n readonly stop: (\n request: WorkerStop & { readonly target: Agent.AnyDefinition },\n ) => Effect.Effect<WorkerStopped, WorkerError>;\n /** Cancel exactly this Receipt; preserve JoinedToHost without broadening its target. */\n readonly cancel: (\n request: WorkerReceiptRequest,\n ) => Effect.Effect<void, WorkerError | JoinedToHost>;\n }\n>()(\"@effect-agent/engine/SubagentHost\") {\n static readonly unavailable: SubagentHost[\"Service\"] = {\n context: WorkerError.make({ operation: \"context\", reason: \"unavailable\" }),\n resolveTargetPolicy: () => WorkerError.make({ operation: \"start\", reason: \"unavailable\" }),\n start: () => WorkerError.make({ operation: \"start\", reason: \"unavailable\" }),\n followUp: () => WorkerError.make({ operation: \"followUp\", reason: \"unavailable\" }),\n inspect: () => WorkerError.make({ operation: \"inspect\", reason: \"unavailable\" }),\n summary: () => WorkerError.make({ operation: \"inspect\", reason: \"unavailable\" }),\n observe: () => Stream.fail(WorkerError.make({ operation: \"observe\", reason: \"unavailable\" })),\n await: () => WorkerError.make({ operation: \"await\", reason: \"unavailable\" }),\n list: () => WorkerError.make({ operation: \"list\", reason: \"unavailable\" }),\n stop: () => WorkerError.make({ operation: \"stop\", reason: \"unavailable\" }),\n cancel: () => WorkerError.make({ operation: \"cancel\", reason: \"unavailable\" }),\n };\n\n /** Runtime-owned per-call binding. Unconfigured Runs deny background operations. */\n static readonly forTool = Context.Reference<\n (source: Extract<WorkerSource, { readonly _tag: \"tool\" }>) => SubagentHost[\"Service\"]\n >(\"@effect-agent/engine/SubagentHost/forTool\", {\n defaultValue: () => () => SubagentHost.unavailable,\n });\n}\n"],"mappings":";;;;;;;;;;AA+HA,IAAa,iCAAb,cAAoD,OAAO,YAA4C,CAAC,CACtG,kCACA,EAAE,OAAO,OAAO,SAAS;CAAC;CAAc;CAAS;AAAa,CAAC,EAAE,CACnE,CAAC,CAAC,CAAC;;AAsBH,MAAa,sBAAsB,QAAQ,UAEzC,4CAA4C,EAAE,oBAAoB,KAAA,EAAU,CAAC;;;;;;AAO/E,IAAa,eAAb,MAAa,qBAAqB,QAAQ,QAkDxC,CAAC,CAAC,mCAAmC,CAAC,CAAC;CACvC,OAAgB,cAAuC;EACrD,SAAS,YAAY,KAAK;GAAE,WAAW;GAAW,QAAQ;EAAc,CAAC;EACzE,2BAA2B,YAAY,KAAK;GAAE,WAAW;GAAS,QAAQ;EAAc,CAAC;EACzF,aAAa,YAAY,KAAK;GAAE,WAAW;GAAS,QAAQ;EAAc,CAAC;EAC3E,gBAAgB,YAAY,KAAK;GAAE,WAAW;GAAY,QAAQ;EAAc,CAAC;EACjF,eAAe,YAAY,KAAK;GAAE,WAAW;GAAW,QAAQ;EAAc,CAAC;EAC/E,eAAe,YAAY,KAAK;GAAE,WAAW;GAAW,QAAQ;EAAc,CAAC;EAC/E,eAAe,OAAO,KAAK,YAAY,KAAK;GAAE,WAAW;GAAW,QAAQ;EAAc,CAAC,CAAC;EAC5F,aAAa,YAAY,KAAK;GAAE,WAAW;GAAS,QAAQ;EAAc,CAAC;EAC3E,YAAY,YAAY,KAAK;GAAE,WAAW;GAAQ,QAAQ;EAAc,CAAC;EACzE,YAAY,YAAY,KAAK;GAAE,WAAW;GAAQ,QAAQ;EAAc,CAAC;EACzE,cAAc,YAAY,KAAK;GAAE,WAAW;GAAU,QAAQ;EAAc,CAAC;CAC/E;;CAGA,OAAgB,UAAU,QAAQ,UAEhC,6CAA6C,EAC7C,0BAA0B,aAAa,YACzC,CAAC;AACH"}
|
package/dist/index.d.mts
CHANGED
|
@@ -46,28 +46,28 @@ import { t as MemoryRevalidation_d_exports } from "./core/MemoryRevalidation.mjs
|
|
|
46
46
|
import { t as SemanticMemoryIndex_d_exports } from "./core/SemanticMemoryIndex.mjs";
|
|
47
47
|
import { t as SemanticMemoryRevalidation_d_exports } from "./core/SemanticMemoryRevalidation.mjs";
|
|
48
48
|
import { t as SemanticMemory_d_exports } from "./capabilities/SemanticMemory.mjs";
|
|
49
|
-
import { s as SubagentHost_d_exports } from "./SubagentHost-
|
|
50
|
-
import { t as AgentRuntime_d_exports } from "./AgentRuntime-
|
|
49
|
+
import { s as SubagentHost_d_exports } from "./SubagentHost-B0-cRCqs.mjs";
|
|
50
|
+
import { t as AgentRuntime_d_exports } from "./AgentRuntime-ov0LFEb-.mjs";
|
|
51
51
|
import { i as RunEventSink_d_exports } from "./RunEventSink-D5aVhISG.mjs";
|
|
52
|
-
import { v as Subagent_d_exports } from "./Subagent-
|
|
52
|
+
import { v as Subagent_d_exports } from "./Subagent-CCf7rY70.mjs";
|
|
53
53
|
import { t as ToolDiscovery_d_exports } from "./capabilities/ToolDiscovery.mjs";
|
|
54
54
|
import { D as PageCapture_d_exports } from "./PageCapture-Df8Xwskw.mjs";
|
|
55
55
|
import { t as WebCapture_d_exports } from "./capabilities/WebCapture.mjs";
|
|
56
56
|
import { t as WebSearch_d_exports } from "./capabilities/WebSearch.mjs";
|
|
57
57
|
import { t as IdGenerator_d_exports } from "./core/IdGenerator.mjs";
|
|
58
58
|
import { t as Memory_d_exports } from "./core/Memory.mjs";
|
|
59
|
-
import { En as ThreadStore_d_exports, Hn as RunJournal_d_exports, Hr as Admin_d_exports, Ln as SubmissionStatus_d_exports, N as Records_d_exports, To as SubmissionLedger_d_exports, bt as DurableAgentRuntime_d_exports, di as AgentRegistration_d_exports, ea as Recovery_d_exports, wi as Digest_d_exports } from "./Records-
|
|
59
|
+
import { En as ThreadStore_d_exports, Hn as RunJournal_d_exports, Hr as Admin_d_exports, Ln as SubmissionStatus_d_exports, N as Records_d_exports, To as SubmissionLedger_d_exports, bt as DurableAgentRuntime_d_exports, di as AgentRegistration_d_exports, ea as Recovery_d_exports, wi as Digest_d_exports } from "./Records-uGX4_EGf.mjs";
|
|
60
60
|
import { t as DurableFailpoint_d_exports } from "./DurableFailpoint-Cnr3wx1L.mjs";
|
|
61
61
|
import { a as OperationAuthorizer_d_exports } from "./OperationAuthorizer-TzcQtpX5.mjs";
|
|
62
62
|
import { l as ToolReconciler_d_exports } from "./ToolReconciler-BmVRAHKs.mjs";
|
|
63
63
|
import { n as WakeScheduler_d_exports } from "./WakeScheduler-EjUF-GhC.mjs";
|
|
64
64
|
import { t as ActivityStore_d_exports } from "./durable/ActivityStore.mjs";
|
|
65
65
|
import { t as CommittedActivity_d_exports } from "./durable/CommittedActivity.mjs";
|
|
66
|
-
import { R as Schedule_d_exports } from "./Schedule-
|
|
67
|
-
import { k as Subscription_d_exports } from "./Subscription-
|
|
68
|
-
import { n as EventSource_d_exports } from "./EventSource-
|
|
69
|
-
import { n as PreparedInputAdmission_d_exports } from "./PreparedInputAdmission
|
|
70
|
-
import { r as SubscriptionInput_d_exports } from "./SubscriptionInput-
|
|
66
|
+
import { R as Schedule_d_exports } from "./Schedule-C8ze8WTW.mjs";
|
|
67
|
+
import { k as Subscription_d_exports } from "./Subscription-CYb8ltMK.mjs";
|
|
68
|
+
import { n as EventSource_d_exports } from "./EventSource-CNBoY8AA.mjs";
|
|
69
|
+
import { n as PreparedInputAdmission_d_exports } from "./PreparedInputAdmission--_APJzWY.mjs";
|
|
70
|
+
import { r as SubscriptionInput_d_exports } from "./SubscriptionInput-C1XE9Vyi.mjs";
|
|
71
71
|
import { t as Subscriptions_d_exports } from "./durable/Subscriptions.mjs";
|
|
72
72
|
import { t as MessageDelivery_d_exports } from "./durable/MessageDelivery.mjs";
|
|
73
73
|
import { t as PersistentHistory_d_exports } from "./durable/PersistentHistory.mjs";
|
package/dist/index.mjs
CHANGED
|
@@ -56,7 +56,7 @@ import { t as RunHooks_exports } from "./capabilities/RunHooks.mjs";
|
|
|
56
56
|
import { t as SemanticMemoryIndex_exports } from "./core/SemanticMemoryIndex.mjs";
|
|
57
57
|
import { t as SemanticMemoryRevalidation_exports } from "./core/SemanticMemoryRevalidation.mjs";
|
|
58
58
|
import { t as SemanticMemory_exports } from "./capabilities/SemanticMemory.mjs";
|
|
59
|
-
import { r as Subagent_exports } from "./Subagent-
|
|
59
|
+
import { r as Subagent_exports } from "./Subagent-CudP5BlT.mjs";
|
|
60
60
|
import { t as ToolDiscovery_exports } from "./capabilities/ToolDiscovery.mjs";
|
|
61
61
|
import { t as ToolExposure_exports } from "./ToolExposure.mjs";
|
|
62
62
|
import { t as WebCapture_exports } from "./capabilities/WebCapture.mjs";
|
|
@@ -68,7 +68,7 @@ import { t as Recovery_exports } from "./durable/Recovery.mjs";
|
|
|
68
68
|
import { t as Admin_exports } from "./durable/Admin.mjs";
|
|
69
69
|
import { t as Digest_exports } from "./durable/Digest.mjs";
|
|
70
70
|
import { t as AgentRegistration_exports } from "./durable/AgentRegistration.mjs";
|
|
71
|
-
import { r as DurableAgentRuntime_exports } from "./DurableAgentRuntime-
|
|
71
|
+
import { r as DurableAgentRuntime_exports } from "./DurableAgentRuntime-BvDGe7F9.mjs";
|
|
72
72
|
import { n as RunJournal_exports } from "./RunJournal-BXrq0VIK.mjs";
|
|
73
73
|
import { t as ThreadStore_exports } from "./durable/ThreadStore.mjs";
|
|
74
74
|
import { t as CommittedActivity_exports } from "./durable/CommittedActivity.mjs";
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"effect-agent","version":"0.1.0-beta.124","devDependencies":{"@effect/platform-node":"4.0.0-rc.116","@effect/vitest":"4.0.0-rc.116","effect":"4.0.0-rc.116","typescript":"7.0.2","vite-plus":"0.3.2"},"peerDependencies":{"effect":"^4.0.0-rc.116"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./activity-store":{"types":"./dist/durable/ActivityStore.d.mts","default":"./dist/durable/ActivityStore.mjs"},"./admin":{"types":"./dist/durable/Admin.d.mts","default":"./dist/durable/Admin.mjs"},"./agent":{"types":"./dist/core/Agent.d.mts","default":"./dist/core/Agent.mjs"},"./agent-error":{"types":"./dist/core/AgentError.d.mts","default":"./dist/core/AgentError.mjs"},"./agent-policy":{"types":"./dist/core/AgentPolicy.d.mts","default":"./dist/core/AgentPolicy.mjs"},"./agent-registration":{"types":"./dist/durable/AgentRegistration.d.mts","default":"./dist/durable/AgentRegistration.mjs"},"./agent-runtime":{"types":"./dist/engine/AgentRuntime.d.mts","default":"./dist/engine/AgentRuntime.mjs"},"./agent-updates":{"types":"./dist/core/AgentUpdates.d.mts","default":"./dist/core/AgentUpdates.mjs"},"./approval":{"types":"./dist/capabilities/Approval.d.mts","default":"./dist/capabilities/Approval.mjs"},"./budget":{"types":"./dist/capabilities/Budget.d.mts","default":"./dist/capabilities/Budget.mjs"},"./code-executor":{"types":"./dist/sandbox/CodeExecutor.d.mts","default":"./dist/sandbox/CodeExecutor.mjs"},"./code-mode":{"types":"./dist/capabilities/CodeMode.d.mts","default":"./dist/capabilities/CodeMode.mjs"},"./commands":{"types":"./dist/capabilities/Commands.d.mts","default":"./dist/capabilities/Commands.mjs"},"./committed-activity":{"types":"./dist/durable/CommittedActivity.d.mts","default":"./dist/durable/CommittedActivity.mjs"},"./compaction":{"types":"./dist/engine/Compaction.d.mts","default":"./dist/engine/Compaction.mjs"},"./context-compactor":{"types":"./dist/engine/ContextCompactor.d.mts","default":"./dist/engine/ContextCompactor.mjs"},"./context-history":{"types":"./dist/engine/ContextHistory.d.mts","default":"./dist/engine/ContextHistory.mjs"},"./context-tools":{"types":"./dist/capabilities/ContextTools.d.mts","default":"./dist/capabilities/ContextTools.mjs"},"./context-window":{"types":"./dist/engine/ContextWindow.d.mts","default":"./dist/engine/ContextWindow.mjs"},"./digest":{"types":"./dist/durable/Digest.d.mts","default":"./dist/durable/Digest.mjs"},"./durable-agent-runtime":{"types":"./dist/durable/DurableAgentRuntime.d.mts","default":"./dist/durable/DurableAgentRuntime.mjs"},"./durable-failpoint":{"types":"./dist/durable/DurableFailpoint.d.mts","default":"./dist/durable/DurableFailpoint.mjs"},"./durable-step":{"types":"./dist/engine/DurableStep.d.mts","default":"./dist/engine/DurableStep.mjs"},"./event-source":{"types":"./dist/durable/EventSource.d.mts","default":"./dist/durable/EventSource.mjs"},"./failure-diagnostic":{"types":"./dist/core/FailureDiagnostic.d.mts","default":"./dist/core/FailureDiagnostic.mjs"},"./git-hub-workflow-source":{"types":"./dist/durable/GitHubWorkflowSource.d.mts","default":"./dist/durable/GitHubWorkflowSource.mjs"},"./id-generator":{"types":"./dist/core/IdGenerator.d.mts","default":"./dist/core/IdGenerator.mjs"},"./identifiers":{"types":"./dist/core/Identifiers.d.mts","default":"./dist/core/Identifiers.mjs"},"./in-memory":{"types":"./dist/InMemory.d.mts","default":"./dist/InMemory.mjs"},"./interactive-browser":{"types":"./dist/sandbox/InteractiveBrowser.d.mts","default":"./dist/sandbox/InteractiveBrowser.mjs"},"./mcp":{"types":"./dist/capabilities/Mcp.d.mts","default":"./dist/capabilities/Mcp.mjs"},"./mcp-client":{"types":"./dist/capabilities/McpClient.d.mts","default":"./dist/capabilities/McpClient.mjs"},"./memory":{"types":"./dist/core/Memory.d.mts","default":"./dist/core/Memory.mjs"},"./memory-namespace":{"types":"./dist/core/MemoryNamespace.d.mts","default":"./dist/core/MemoryNamespace.mjs"},"./memory-notes":{"types":"./dist/capabilities/MemoryNotes.d.mts","default":"./dist/capabilities/MemoryNotes.mjs"},"./memory-reference":{"types":"./dist/core/MemoryReference.d.mts","default":"./dist/core/MemoryReference.mjs"},"./memory-revalidation":{"types":"./dist/core/MemoryRevalidation.d.mts","default":"./dist/core/MemoryRevalidation.mjs"},"./memory-store":{"types":"./dist/core/MemoryStore.d.mts","default":"./dist/core/MemoryStore.mjs"},"./message-delivery":{"types":"./dist/durable/MessageDelivery.d.mts","default":"./dist/durable/MessageDelivery.mjs"},"./messaging":{"types":"./dist/capabilities/Messaging.d.mts","default":"./dist/capabilities/Messaging.mjs"},"./messaging-host":{"types":"./dist/engine/MessagingHost.d.mts","default":"./dist/engine/MessagingHost.mjs"},"./model-context":{"types":"./dist/capabilities/ModelContext.d.mts","default":"./dist/capabilities/ModelContext.mjs"},"./operation-authorizer":{"types":"./dist/durable/OperationAuthorizer.d.mts","default":"./dist/durable/OperationAuthorizer.mjs"},"./output":{"types":"./dist/engine/Output.d.mts","default":"./dist/engine/Output.mjs"},"./page-capture":{"types":"./dist/sandbox/PageCapture.d.mts","default":"./dist/sandbox/PageCapture.mjs"},"./page-crawl":{"types":"./dist/sandbox/PageCrawl.d.mts","default":"./dist/sandbox/PageCrawl.mjs"},"./page-screenshot":{"types":"./dist/sandbox/PageScreenshot.d.mts","default":"./dist/sandbox/PageScreenshot.mjs"},"./persistent-history":{"types":"./dist/durable/PersistentHistory.d.mts","default":"./dist/durable/PersistentHistory.mjs"},"./prepared-input-admission":{"types":"./dist/durable/PreparedInputAdmission.d.mts","default":"./dist/durable/PreparedInputAdmission.mjs"},"./receipt":{"types":"./dist/core/Receipt.d.mts","default":"./dist/core/Receipt.mjs"},"./records":{"types":"./dist/durable/Records.d.mts","default":"./dist/durable/Records.mjs"},"./recovery":{"types":"./dist/durable/Recovery.d.mts","default":"./dist/durable/Recovery.mjs"},"./redaction":{"types":"./dist/capabilities/Redaction.d.mts","default":"./dist/capabilities/Redaction.mjs"},"./remembering":{"types":"./dist/capabilities/Remembering.d.mts","default":"./dist/capabilities/Remembering.mjs"},"./remembering-store":{"types":"./dist/core/RememberingStore.d.mts","default":"./dist/core/RememberingStore.mjs"},"./run-event":{"types":"./dist/core/RunEvent.d.mts","default":"./dist/core/RunEvent.mjs"},"./run-event-sink":{"types":"./dist/engine/RunEventSink.d.mts","default":"./dist/engine/RunEventSink.mjs"},"./run-hooks":{"types":"./dist/capabilities/RunHooks.d.mts","default":"./dist/capabilities/RunHooks.mjs"},"./run-journal":{"types":"./dist/durable/RunJournal.d.mts","default":"./dist/durable/RunJournal.mjs"},"./run-options":{"types":"./dist/engine/RunOptions.d.mts","default":"./dist/engine/RunOptions.mjs"},"./run-policy-usage":{"types":"./dist/core/RunPolicyUsage.d.mts","default":"./dist/core/RunPolicyUsage.mjs"},"./sandbox":{"types":"./dist/sandbox/Sandbox.d.mts","default":"./dist/sandbox/Sandbox.mjs"},"./schedule":{"types":"./dist/durable/Schedule.d.mts","default":"./dist/durable/Schedule.mjs"},"./schedule-transition":{"types":"./dist/durable/ScheduleTransition.d.mts","default":"./dist/durable/ScheduleTransition.mjs"},"./scheduling":{"types":"./dist/durable/Scheduling.d.mts","default":"./dist/durable/Scheduling.mjs"},"./semantic-memory":{"types":"./dist/capabilities/SemanticMemory.d.mts","default":"./dist/capabilities/SemanticMemory.mjs"},"./semantic-memory-index":{"types":"./dist/core/SemanticMemoryIndex.d.mts","default":"./dist/core/SemanticMemoryIndex.mjs"},"./semantic-memory-revalidation":{"types":"./dist/core/SemanticMemoryRevalidation.d.mts","default":"./dist/core/SemanticMemoryRevalidation.mjs"},"./sql-thread-native-reads":{"types":"./dist/durable/SqlThreadNativeReads.d.mts","default":"./dist/durable/SqlThreadNativeReads.mjs"},"./sql-memory-store":{"types":"./dist/durable/SqlMemoryStore.d.mts","default":"./dist/durable/SqlMemoryStore.mjs"},"./sql-message-delivery-store":{"types":"./dist/durable/SqlMessageDeliveryStore.d.mts","default":"./dist/durable/SqlMessageDeliveryStore.mjs"},"./sql-storage-v2-upgrade":{"types":"./dist/durable/SqlStorageV2Upgrade.d.mts","default":"./dist/durable/SqlStorageV2Upgrade.mjs"},"./sql-subscription-store":{"types":"./dist/durable/SqlSubscriptionStore.d.mts","default":"./dist/durable/SqlSubscriptionStore.mjs"},"./subagent":{"types":"./dist/capabilities/Subagent.d.mts","default":"./dist/capabilities/Subagent.mjs"},"./subagent-contract":{"types":"./dist/core/SubagentContract.d.mts","default":"./dist/core/SubagentContract.mjs"},"./subagent-host":{"types":"./dist/engine/SubagentHost.d.mts","default":"./dist/engine/SubagentHost.mjs"},"./subagent-reservations":{"types":"./dist/capabilities/SubagentReservations.d.mts","default":"./dist/capabilities/SubagentReservations.mjs"},"./submission-ledger":{"types":"./dist/durable/SubmissionLedger.d.mts","default":"./dist/durable/SubmissionLedger.mjs"},"./submission-status":{"types":"./dist/durable/SubmissionStatus.d.mts","default":"./dist/durable/SubmissionStatus.mjs"},"./subscription":{"types":"./dist/durable/Subscription.d.mts","default":"./dist/durable/Subscription.mjs"},"./subscription-input":{"types":"./dist/durable/SubscriptionInput.d.mts","default":"./dist/durable/SubscriptionInput.mjs"},"./subscription-tools":{"types":"./dist/durable/SubscriptionTools.d.mts","default":"./dist/durable/SubscriptionTools.mjs"},"./subscription-transition":{"types":"./dist/durable/SubscriptionTransition.d.mts","default":"./dist/durable/SubscriptionTransition.mjs"},"./subscriptions":{"types":"./dist/durable/Subscriptions.d.mts","default":"./dist/durable/Subscriptions.mjs"},"./testing/certification":{"types":"./dist/durable/Certification.d.mts","default":"./dist/durable/Certification.mjs"},"./testing/durable-failpoint-test-control":{"types":"./dist/durable/DurableFailpointTestControl.d.mts","default":"./dist/durable/DurableFailpointTestControl.mjs"},"./testing/message-delivery-store-conformance":{"types":"./dist/durable/MessageDeliveryStoreConformance.d.mts","default":"./dist/durable/MessageDeliveryStoreConformance.mjs"},"./testing/schedule-store-conformance":{"types":"./dist/durable/ScheduleStoreConformance.d.mts","default":"./dist/durable/ScheduleStoreConformance.mjs"},"./testing/submission-ledger-conformance":{"types":"./dist/durable/SubmissionLedgerConformance.d.mts","default":"./dist/durable/SubmissionLedgerConformance.mjs"},"./testing/subscription-store-conformance":{"types":"./dist/durable/SubscriptionStoreConformance.d.mts","default":"./dist/durable/SubscriptionStoreConformance.mjs"},"./testing/thread-store-conformance":{"types":"./dist/durable/ThreadStoreConformance.d.mts","default":"./dist/durable/ThreadStoreConformance.mjs"},"./thread":{"types":"./dist/core/Thread.d.mts","default":"./dist/core/Thread.mjs"},"./thread-context-history":{"types":"./dist/durable/ThreadContextHistory.d.mts","default":"./dist/durable/ThreadContextHistory.mjs"},"./thread-context-history-projection":{"types":"./dist/durable/ThreadContextHistoryProjection.d.mts","default":"./dist/durable/ThreadContextHistoryProjection.mjs"},"./thread-history":{"types":"./dist/engine/ThreadHistory.d.mts","default":"./dist/engine/ThreadHistory.mjs"},"./thread-invariants":{"types":"./dist/durable/ThreadInvariants.d.mts","default":"./dist/durable/ThreadInvariants.mjs"},"./thread-projection":{"types":"./dist/durable/ThreadProjection.d.mts","default":"./dist/durable/ThreadProjection.mjs"},"./thread-projection-maintenance":{"types":"./dist/durable/ThreadProjectionMaintenance.d.mts","default":"./dist/durable/ThreadProjectionMaintenance.mjs"},"./thread-store":{"types":"./dist/durable/ThreadStore.d.mts","default":"./dist/durable/ThreadStore.mjs"},"./tool-broker":{"types":"./dist/engine/ToolBroker.d.mts","default":"./dist/engine/ToolBroker.mjs"},"./tool-discovery":{"types":"./dist/capabilities/ToolDiscovery.d.mts","default":"./dist/capabilities/ToolDiscovery.mjs"},"./tool-exposure":{"types":"./dist/ToolExposure.d.mts","default":"./dist/ToolExposure.mjs"},"./tool-reconciler":{"types":"./dist/durable/ToolReconciler.d.mts","default":"./dist/durable/ToolReconciler.mjs"},"./tool-result":{"types":"./dist/core/ToolResult.d.mts","default":"./dist/core/ToolResult.mjs"},"./usage":{"types":"./dist/core/Usage.d.mts","default":"./dist/core/Usage.mjs"},"./wake-scheduler":{"types":"./dist/durable/WakeScheduler.d.mts","default":"./dist/durable/WakeScheduler.mjs"},"./web-capture":{"types":"./dist/capabilities/WebCapture.d.mts","default":"./dist/capabilities/WebCapture.mjs"},"./web-search":{"types":"./dist/capabilities/WebSearch.d.mts","default":"./dist/capabilities/WebSearch.mjs"},"./worker":{"types":"./dist/core/Worker.d.mts","default":"./dist/core/Worker.mjs"},"./worker-host":{"types":"./dist/durable/WorkerHost.d.mts","default":"./dist/durable/WorkerHost.mjs"}},"description":"Effect-native agents, execution, subagents, and sandbox contracts in one tree-shakeable package.","license":"MIT","repository":{"type":"git","url":"git+https://github.com/danieljvdm/effect-agent.git","directory":"packages/effect-agent"},"files":["dist","src"],"type":"module","sideEffects":[],"publishConfig":{"access":"public"},"scripts":{"build":"vp pack","check":"tsc --noEmit -p tsconfig.json","test":"vp test --passWithNoTests"}}
|
|
1
|
+
{"name":"effect-agent","version":"0.1.0-beta.125","devDependencies":{"@effect/platform-node":"4.0.0-rc.116","@effect/vitest":"4.0.0-rc.116","effect":"4.0.0-rc.116","typescript":"7.0.2","vite-plus":"0.3.2"},"peerDependencies":{"effect":"^4.0.0-rc.116"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./activity-store":{"types":"./dist/durable/ActivityStore.d.mts","default":"./dist/durable/ActivityStore.mjs"},"./admin":{"types":"./dist/durable/Admin.d.mts","default":"./dist/durable/Admin.mjs"},"./agent":{"types":"./dist/core/Agent.d.mts","default":"./dist/core/Agent.mjs"},"./agent-error":{"types":"./dist/core/AgentError.d.mts","default":"./dist/core/AgentError.mjs"},"./agent-policy":{"types":"./dist/core/AgentPolicy.d.mts","default":"./dist/core/AgentPolicy.mjs"},"./agent-registration":{"types":"./dist/durable/AgentRegistration.d.mts","default":"./dist/durable/AgentRegistration.mjs"},"./agent-runtime":{"types":"./dist/engine/AgentRuntime.d.mts","default":"./dist/engine/AgentRuntime.mjs"},"./agent-updates":{"types":"./dist/core/AgentUpdates.d.mts","default":"./dist/core/AgentUpdates.mjs"},"./approval":{"types":"./dist/capabilities/Approval.d.mts","default":"./dist/capabilities/Approval.mjs"},"./budget":{"types":"./dist/capabilities/Budget.d.mts","default":"./dist/capabilities/Budget.mjs"},"./code-executor":{"types":"./dist/sandbox/CodeExecutor.d.mts","default":"./dist/sandbox/CodeExecutor.mjs"},"./code-mode":{"types":"./dist/capabilities/CodeMode.d.mts","default":"./dist/capabilities/CodeMode.mjs"},"./commands":{"types":"./dist/capabilities/Commands.d.mts","default":"./dist/capabilities/Commands.mjs"},"./committed-activity":{"types":"./dist/durable/CommittedActivity.d.mts","default":"./dist/durable/CommittedActivity.mjs"},"./compaction":{"types":"./dist/engine/Compaction.d.mts","default":"./dist/engine/Compaction.mjs"},"./context-compactor":{"types":"./dist/engine/ContextCompactor.d.mts","default":"./dist/engine/ContextCompactor.mjs"},"./context-history":{"types":"./dist/engine/ContextHistory.d.mts","default":"./dist/engine/ContextHistory.mjs"},"./context-tools":{"types":"./dist/capabilities/ContextTools.d.mts","default":"./dist/capabilities/ContextTools.mjs"},"./context-window":{"types":"./dist/engine/ContextWindow.d.mts","default":"./dist/engine/ContextWindow.mjs"},"./digest":{"types":"./dist/durable/Digest.d.mts","default":"./dist/durable/Digest.mjs"},"./durable-agent-runtime":{"types":"./dist/durable/DurableAgentRuntime.d.mts","default":"./dist/durable/DurableAgentRuntime.mjs"},"./durable-failpoint":{"types":"./dist/durable/DurableFailpoint.d.mts","default":"./dist/durable/DurableFailpoint.mjs"},"./durable-step":{"types":"./dist/engine/DurableStep.d.mts","default":"./dist/engine/DurableStep.mjs"},"./event-source":{"types":"./dist/durable/EventSource.d.mts","default":"./dist/durable/EventSource.mjs"},"./failure-diagnostic":{"types":"./dist/core/FailureDiagnostic.d.mts","default":"./dist/core/FailureDiagnostic.mjs"},"./git-hub-workflow-source":{"types":"./dist/durable/GitHubWorkflowSource.d.mts","default":"./dist/durable/GitHubWorkflowSource.mjs"},"./id-generator":{"types":"./dist/core/IdGenerator.d.mts","default":"./dist/core/IdGenerator.mjs"},"./identifiers":{"types":"./dist/core/Identifiers.d.mts","default":"./dist/core/Identifiers.mjs"},"./in-memory":{"types":"./dist/InMemory.d.mts","default":"./dist/InMemory.mjs"},"./interactive-browser":{"types":"./dist/sandbox/InteractiveBrowser.d.mts","default":"./dist/sandbox/InteractiveBrowser.mjs"},"./mcp":{"types":"./dist/capabilities/Mcp.d.mts","default":"./dist/capabilities/Mcp.mjs"},"./mcp-client":{"types":"./dist/capabilities/McpClient.d.mts","default":"./dist/capabilities/McpClient.mjs"},"./memory":{"types":"./dist/core/Memory.d.mts","default":"./dist/core/Memory.mjs"},"./memory-namespace":{"types":"./dist/core/MemoryNamespace.d.mts","default":"./dist/core/MemoryNamespace.mjs"},"./memory-notes":{"types":"./dist/capabilities/MemoryNotes.d.mts","default":"./dist/capabilities/MemoryNotes.mjs"},"./memory-reference":{"types":"./dist/core/MemoryReference.d.mts","default":"./dist/core/MemoryReference.mjs"},"./memory-revalidation":{"types":"./dist/core/MemoryRevalidation.d.mts","default":"./dist/core/MemoryRevalidation.mjs"},"./memory-store":{"types":"./dist/core/MemoryStore.d.mts","default":"./dist/core/MemoryStore.mjs"},"./message-delivery":{"types":"./dist/durable/MessageDelivery.d.mts","default":"./dist/durable/MessageDelivery.mjs"},"./messaging":{"types":"./dist/capabilities/Messaging.d.mts","default":"./dist/capabilities/Messaging.mjs"},"./messaging-host":{"types":"./dist/engine/MessagingHost.d.mts","default":"./dist/engine/MessagingHost.mjs"},"./model-context":{"types":"./dist/capabilities/ModelContext.d.mts","default":"./dist/capabilities/ModelContext.mjs"},"./operation-authorizer":{"types":"./dist/durable/OperationAuthorizer.d.mts","default":"./dist/durable/OperationAuthorizer.mjs"},"./output":{"types":"./dist/engine/Output.d.mts","default":"./dist/engine/Output.mjs"},"./page-capture":{"types":"./dist/sandbox/PageCapture.d.mts","default":"./dist/sandbox/PageCapture.mjs"},"./page-crawl":{"types":"./dist/sandbox/PageCrawl.d.mts","default":"./dist/sandbox/PageCrawl.mjs"},"./page-screenshot":{"types":"./dist/sandbox/PageScreenshot.d.mts","default":"./dist/sandbox/PageScreenshot.mjs"},"./persistent-history":{"types":"./dist/durable/PersistentHistory.d.mts","default":"./dist/durable/PersistentHistory.mjs"},"./prepared-input-admission":{"types":"./dist/durable/PreparedInputAdmission.d.mts","default":"./dist/durable/PreparedInputAdmission.mjs"},"./receipt":{"types":"./dist/core/Receipt.d.mts","default":"./dist/core/Receipt.mjs"},"./records":{"types":"./dist/durable/Records.d.mts","default":"./dist/durable/Records.mjs"},"./recovery":{"types":"./dist/durable/Recovery.d.mts","default":"./dist/durable/Recovery.mjs"},"./redaction":{"types":"./dist/capabilities/Redaction.d.mts","default":"./dist/capabilities/Redaction.mjs"},"./remembering":{"types":"./dist/capabilities/Remembering.d.mts","default":"./dist/capabilities/Remembering.mjs"},"./remembering-store":{"types":"./dist/core/RememberingStore.d.mts","default":"./dist/core/RememberingStore.mjs"},"./run-event":{"types":"./dist/core/RunEvent.d.mts","default":"./dist/core/RunEvent.mjs"},"./run-event-sink":{"types":"./dist/engine/RunEventSink.d.mts","default":"./dist/engine/RunEventSink.mjs"},"./run-hooks":{"types":"./dist/capabilities/RunHooks.d.mts","default":"./dist/capabilities/RunHooks.mjs"},"./run-journal":{"types":"./dist/durable/RunJournal.d.mts","default":"./dist/durable/RunJournal.mjs"},"./run-options":{"types":"./dist/engine/RunOptions.d.mts","default":"./dist/engine/RunOptions.mjs"},"./run-policy-usage":{"types":"./dist/core/RunPolicyUsage.d.mts","default":"./dist/core/RunPolicyUsage.mjs"},"./sandbox":{"types":"./dist/sandbox/Sandbox.d.mts","default":"./dist/sandbox/Sandbox.mjs"},"./schedule":{"types":"./dist/durable/Schedule.d.mts","default":"./dist/durable/Schedule.mjs"},"./schedule-transition":{"types":"./dist/durable/ScheduleTransition.d.mts","default":"./dist/durable/ScheduleTransition.mjs"},"./scheduling":{"types":"./dist/durable/Scheduling.d.mts","default":"./dist/durable/Scheduling.mjs"},"./semantic-memory":{"types":"./dist/capabilities/SemanticMemory.d.mts","default":"./dist/capabilities/SemanticMemory.mjs"},"./semantic-memory-index":{"types":"./dist/core/SemanticMemoryIndex.d.mts","default":"./dist/core/SemanticMemoryIndex.mjs"},"./semantic-memory-revalidation":{"types":"./dist/core/SemanticMemoryRevalidation.d.mts","default":"./dist/core/SemanticMemoryRevalidation.mjs"},"./sql-thread-native-reads":{"types":"./dist/durable/SqlThreadNativeReads.d.mts","default":"./dist/durable/SqlThreadNativeReads.mjs"},"./sql-memory-store":{"types":"./dist/durable/SqlMemoryStore.d.mts","default":"./dist/durable/SqlMemoryStore.mjs"},"./sql-message-delivery-store":{"types":"./dist/durable/SqlMessageDeliveryStore.d.mts","default":"./dist/durable/SqlMessageDeliveryStore.mjs"},"./sql-storage-v2-upgrade":{"types":"./dist/durable/SqlStorageV2Upgrade.d.mts","default":"./dist/durable/SqlStorageV2Upgrade.mjs"},"./sql-subscription-store":{"types":"./dist/durable/SqlSubscriptionStore.d.mts","default":"./dist/durable/SqlSubscriptionStore.mjs"},"./subagent":{"types":"./dist/capabilities/Subagent.d.mts","default":"./dist/capabilities/Subagent.mjs"},"./subagent-contract":{"types":"./dist/core/SubagentContract.d.mts","default":"./dist/core/SubagentContract.mjs"},"./subagent-host":{"types":"./dist/engine/SubagentHost.d.mts","default":"./dist/engine/SubagentHost.mjs"},"./subagent-reservations":{"types":"./dist/capabilities/SubagentReservations.d.mts","default":"./dist/capabilities/SubagentReservations.mjs"},"./submission-ledger":{"types":"./dist/durable/SubmissionLedger.d.mts","default":"./dist/durable/SubmissionLedger.mjs"},"./submission-status":{"types":"./dist/durable/SubmissionStatus.d.mts","default":"./dist/durable/SubmissionStatus.mjs"},"./subscription":{"types":"./dist/durable/Subscription.d.mts","default":"./dist/durable/Subscription.mjs"},"./subscription-input":{"types":"./dist/durable/SubscriptionInput.d.mts","default":"./dist/durable/SubscriptionInput.mjs"},"./subscription-tools":{"types":"./dist/durable/SubscriptionTools.d.mts","default":"./dist/durable/SubscriptionTools.mjs"},"./subscription-transition":{"types":"./dist/durable/SubscriptionTransition.d.mts","default":"./dist/durable/SubscriptionTransition.mjs"},"./subscriptions":{"types":"./dist/durable/Subscriptions.d.mts","default":"./dist/durable/Subscriptions.mjs"},"./testing/certification":{"types":"./dist/durable/Certification.d.mts","default":"./dist/durable/Certification.mjs"},"./testing/durable-failpoint-test-control":{"types":"./dist/durable/DurableFailpointTestControl.d.mts","default":"./dist/durable/DurableFailpointTestControl.mjs"},"./testing/message-delivery-store-conformance":{"types":"./dist/durable/MessageDeliveryStoreConformance.d.mts","default":"./dist/durable/MessageDeliveryStoreConformance.mjs"},"./testing/schedule-store-conformance":{"types":"./dist/durable/ScheduleStoreConformance.d.mts","default":"./dist/durable/ScheduleStoreConformance.mjs"},"./testing/submission-ledger-conformance":{"types":"./dist/durable/SubmissionLedgerConformance.d.mts","default":"./dist/durable/SubmissionLedgerConformance.mjs"},"./testing/subscription-store-conformance":{"types":"./dist/durable/SubscriptionStoreConformance.d.mts","default":"./dist/durable/SubscriptionStoreConformance.mjs"},"./testing/thread-store-conformance":{"types":"./dist/durable/ThreadStoreConformance.d.mts","default":"./dist/durable/ThreadStoreConformance.mjs"},"./thread":{"types":"./dist/core/Thread.d.mts","default":"./dist/core/Thread.mjs"},"./thread-context-history":{"types":"./dist/durable/ThreadContextHistory.d.mts","default":"./dist/durable/ThreadContextHistory.mjs"},"./thread-context-history-projection":{"types":"./dist/durable/ThreadContextHistoryProjection.d.mts","default":"./dist/durable/ThreadContextHistoryProjection.mjs"},"./thread-history":{"types":"./dist/engine/ThreadHistory.d.mts","default":"./dist/engine/ThreadHistory.mjs"},"./thread-invariants":{"types":"./dist/durable/ThreadInvariants.d.mts","default":"./dist/durable/ThreadInvariants.mjs"},"./thread-projection":{"types":"./dist/durable/ThreadProjection.d.mts","default":"./dist/durable/ThreadProjection.mjs"},"./thread-projection-maintenance":{"types":"./dist/durable/ThreadProjectionMaintenance.d.mts","default":"./dist/durable/ThreadProjectionMaintenance.mjs"},"./thread-store":{"types":"./dist/durable/ThreadStore.d.mts","default":"./dist/durable/ThreadStore.mjs"},"./tool-broker":{"types":"./dist/engine/ToolBroker.d.mts","default":"./dist/engine/ToolBroker.mjs"},"./tool-discovery":{"types":"./dist/capabilities/ToolDiscovery.d.mts","default":"./dist/capabilities/ToolDiscovery.mjs"},"./tool-exposure":{"types":"./dist/ToolExposure.d.mts","default":"./dist/ToolExposure.mjs"},"./tool-reconciler":{"types":"./dist/durable/ToolReconciler.d.mts","default":"./dist/durable/ToolReconciler.mjs"},"./tool-result":{"types":"./dist/core/ToolResult.d.mts","default":"./dist/core/ToolResult.mjs"},"./usage":{"types":"./dist/core/Usage.d.mts","default":"./dist/core/Usage.mjs"},"./wake-scheduler":{"types":"./dist/durable/WakeScheduler.d.mts","default":"./dist/durable/WakeScheduler.mjs"},"./web-capture":{"types":"./dist/capabilities/WebCapture.d.mts","default":"./dist/capabilities/WebCapture.mjs"},"./web-search":{"types":"./dist/capabilities/WebSearch.d.mts","default":"./dist/capabilities/WebSearch.mjs"},"./worker":{"types":"./dist/core/Worker.d.mts","default":"./dist/core/Worker.mjs"},"./worker-host":{"types":"./dist/durable/WorkerHost.d.mts","default":"./dist/durable/WorkerHost.mjs"}},"description":"Effect-native agents, execution, subagents, and sandbox contracts in one tree-shakeable package.","license":"MIT","repository":{"type":"git","url":"git+https://github.com/danieljvdm/effect-agent.git","directory":"packages/effect-agent"},"files":["dist","src"],"type":"module","sideEffects":[],"publishConfig":{"access":"public"},"scripts":{"build":"vp pack","check":"tsc --noEmit -p tsconfig.json","test":"vp test --passWithNoTests"}}
|
|
@@ -3,6 +3,7 @@ import { Context, Crypto, Effect, Encoding, Layer, Option, Schema, Stream } from
|
|
|
3
3
|
import { Tool, Toolkit } from "effect/unstable/ai";
|
|
4
4
|
|
|
5
5
|
import type { AnyDefinition } from "../../core/Agent.ts";
|
|
6
|
+
import type { Update } from "../../core/AgentUpdates.ts";
|
|
6
7
|
import * as FailureDiagnostic from "../../core/FailureDiagnostic.ts";
|
|
7
8
|
import { RunId, SettlementId, ThreadId } from "../../core/Identifiers.ts";
|
|
8
9
|
import { utf8ByteLength } from "../../core/internal/utf8.ts";
|
|
@@ -829,6 +830,13 @@ export const cancel = <
|
|
|
829
830
|
export interface BackgroundOptions {
|
|
830
831
|
/** Deliver standard completion and progress messages to the parent. */
|
|
831
832
|
readonly reportToParent?: true;
|
|
833
|
+
/**
|
|
834
|
+
* With reportToParent, select which canonical updates also notify the parent. Defaults to all.
|
|
835
|
+
* This pure predicate receives the encoded update; decode value with the child's update Schema.
|
|
836
|
+
* False retains the update for observers without starting a parent Run. Completion is unaffected.
|
|
837
|
+
* The first accepted emission freezes the decision; replay does not reevaluate it.
|
|
838
|
+
*/
|
|
839
|
+
readonly reportUpdate?: (update: Update) => boolean;
|
|
832
840
|
readonly start?: true;
|
|
833
841
|
readonly followUp?: true;
|
|
834
842
|
readonly inspect?: true;
|
|
@@ -839,7 +847,10 @@ export interface BackgroundOptions {
|
|
|
839
847
|
readonly budgetScope?: WorkerBudgetScope;
|
|
840
848
|
}
|
|
841
849
|
|
|
842
|
-
type Operation = Exclude<
|
|
850
|
+
type Operation = Exclude<
|
|
851
|
+
keyof BackgroundOptions,
|
|
852
|
+
"budgetScope" | "reportToParent" | "reportUpdate"
|
|
853
|
+
>;
|
|
843
854
|
type Suffix = {
|
|
844
855
|
start: "start";
|
|
845
856
|
followUp: "follow_up";
|
|
@@ -1071,6 +1082,7 @@ export const background = <
|
|
|
1071
1082
|
? undefined
|
|
1072
1083
|
: {
|
|
1073
1084
|
...report,
|
|
1085
|
+
...(selected.reportUpdate === undefined ? {} : { reportUpdate: selected.reportUpdate }),
|
|
1074
1086
|
prepare: (value) =>
|
|
1075
1087
|
Effect.flatMap(Effect.serviceOption(reportService), (service) =>
|
|
1076
1088
|
Option.isSome(service)
|
|
@@ -1247,6 +1247,8 @@ export const makeWorkerRuntime = Effect.fn("WorkerHost.make")(function* (
|
|
|
1247
1247
|
);
|
|
1248
1248
|
|
|
1249
1249
|
if (now >= deadlineAtMillis) return yield* failure("followUp", "denied");
|
|
1250
|
+
if (reports[0].reportUpdate !== undefined && !reports[0].reportUpdate(update))
|
|
1251
|
+
return undefined;
|
|
1250
1252
|
const input = destination.input;
|
|
1251
1253
|
|
|
1252
1254
|
let workerAdmission: WorkerAdmission | undefined;
|
|
@@ -3,6 +3,7 @@ import { Context, Schema, Stream } from "effect";
|
|
|
3
3
|
|
|
4
4
|
import type * as Agent from "../core/Agent.ts";
|
|
5
5
|
import type { AgentPolicy } from "../core/AgentPolicy.ts";
|
|
6
|
+
import type { Update } from "../core/AgentUpdates.ts";
|
|
6
7
|
import type * as FailureDiagnostic from "../core/FailureDiagnostic.ts";
|
|
7
8
|
import type { DelegationId, RunId, SettlementId, ThreadId } from "../core/Identifiers.ts";
|
|
8
9
|
import type { MessageRef, MessageStatus } from "../core/Messaging.ts";
|
|
@@ -137,6 +138,8 @@ export class WorkerReportPreparationFailure extends Schema.TaggedError<WorkerRep
|
|
|
137
138
|
export interface WorkerReporting<E = never, R = never> {
|
|
138
139
|
readonly delegationId: DelegationId;
|
|
139
140
|
readonly target: Agent.AnyDefinition;
|
|
141
|
+
/** Pure first-emission selection. False retains the canonical update without parent delivery. */
|
|
142
|
+
readonly reportUpdate?: (update: Update) => boolean;
|
|
140
143
|
readonly prepare: (report: WorkerRunReport) => Effect.Effect<
|
|
141
144
|
{
|
|
142
145
|
readonly message: WorkerCompletion;
|