@relayfx/sdk 0.3.3 → 0.3.4

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.
@@ -15467,11 +15467,24 @@ var reconcileCompactionCheckpoint = Effect81.fn("AgentLoop.reconcileCompactionCh
15467
15467
  const checkpoint = path2.at(-1);
15468
15468
  if (checkpoint?._tag !== "Compaction" || checkpoint.version !== 2)
15469
15469
  return restoredHistory;
15470
+ const entryScope = input.sessionEntryScope ?? input.executionId;
15471
+ if (!checkpoint.id.startsWith(`${input.sessionId}:entry:${entryScope}:`))
15472
+ return restoredHistory;
15473
+ const result = {
15474
+ _tag: "AlreadyPresent",
15475
+ checkpoint,
15476
+ leafId: checkpoint.id
15477
+ };
15478
+ const repaired = exports_session.buildContext(path2);
15479
+ if (restoredHistory === undefined) {
15480
+ yield* persistTranscript(chats, input, repaired);
15481
+ yield* onCheckpointCommitted(result);
15482
+ return repaired;
15483
+ }
15470
15484
  const before = exports_session.buildContext(path2.slice(0, -1));
15471
15485
  if (!promptEquivalence2(before, restoredHistory)) {
15472
- const repaired2 = exports_session.buildContext(path2);
15473
- if (promptEquivalence2(repaired2, restoredHistory)) {
15474
- yield* onCheckpointCommitted(checkpoint);
15486
+ if (promptEquivalence2(repaired, restoredHistory)) {
15487
+ yield* onCheckpointCommitted(result);
15475
15488
  return restoredHistory;
15476
15489
  }
15477
15490
  if (!failOnMismatch)
@@ -15481,9 +15494,8 @@ var reconcileCompactionCheckpoint = Effect81.fn("AgentLoop.reconcileCompactionCh
15481
15494
  next_event_sequence: input.eventSequence + 1
15482
15495
  });
15483
15496
  }
15484
- const repaired = exports_session.buildContext(path2);
15485
15497
  yield* persistTranscript(chats, input, repaired);
15486
- yield* onCheckpointCommitted(checkpoint);
15498
+ yield* onCheckpointCommitted(result);
15487
15499
  return repaired;
15488
15500
  });
15489
15501
  var toolCallDecodeMaxRetriesConfig = Config4.int("RELAY_AGENT_TOOL_CALL_DECODE_MAX_RETRIES").pipe(Config4.withDefault(2));
@@ -15631,7 +15643,7 @@ var compactionOptions = (agent) => agent.compaction_policy === undefined ? undef
15631
15643
  reserveTokens: agent.compaction_policy.reserve_tokens,
15632
15644
  keepRecentTokens: agent.compaction_policy.keep_recent_tokens
15633
15645
  };
15634
- var layer58 = Layer71.effect(Service61, Effect81.gen(function* () {
15646
+ var make11 = (layerOptions) => Effect81.gen(function* () {
15635
15647
  const eventLog = yield* Service41;
15636
15648
  const languageModels = yield* Service8;
15637
15649
  const tools = yield* Service12;
@@ -15714,12 +15726,12 @@ var layer58 = Layer71.effect(Service61, Effect81.gen(function* () {
15714
15726
  input: jsonValue6(resumeSuspension.tool_params)
15715
15727
  };
15716
15728
  const storedHistory = resumeToolCall === undefined ? yield* loadStoredHistory(chats, input) : yield* restoreHistory(chats, input);
15717
- const continuingDurableHistory = storedHistory !== undefined;
15718
- const durableMaxSequence = continuingDurableHistory ? yield* eventLog.maxSequence(input.executionId).pipe(Effect81.mapError((error5) => loopError(error5, input.eventSequence + 1))) : undefined;
15729
+ const durableMaxSequence = yield* eventLog.maxSequence(input.executionId).pipe(Effect81.mapError((error5) => loopError(error5, input.eventSequence + 1)));
15719
15730
  const nextEventSequence5 = Math.max(input.eventSequence + 1, (durableMaxSequence ?? -1) + 1);
15720
15731
  const allocator = yield* make10(nextEventSequence5);
15721
- const onCheckpointCommitted = (checkpoint) => appendCompactionCommittedEvent(eventLog, allocator, input, checkpoint);
15722
- const durableHistory = storedHistory === undefined || Option19.isNone(sessionRepository) ? storedHistory : yield* reconcileCompactionCheckpoint(sessionRepository.value, chats, input, storedHistory, onCheckpointCommitted, resumeSuspension === undefined);
15732
+ const onCheckpointCommitted = (result) => appendCompactionCommittedEvent(eventLog, allocator, input, result.checkpoint).pipe(Effect81.andThen(layerOptions?.onCheckpointCommitted?.(result) ?? Effect81.void));
15733
+ const durableHistory = Option19.isNone(sessionRepository) ? storedHistory : yield* reconcileCompactionCheckpoint(sessionRepository.value, chats, input, storedHistory, onCheckpointCommitted, resumeSuspension === undefined);
15734
+ const continuingDurableHistory = durableHistory !== undefined;
15723
15735
  const permissionsLayer = input.agent.permission_rules === undefined ? Layer71.empty : Option19.isNone(permissionRules) || Option19.isNone(waits) ? yield* AgentLoopError.make({
15724
15736
  message: "Execution permission rules require PermissionRuleRepository and WaitService in context",
15725
15737
  next_event_sequence: input.eventSequence + 1
@@ -15749,6 +15761,7 @@ var layer58 = Layer71.effect(Service61, Effect81.gen(function* () {
15749
15761
  const seededTokens = continuingDurableHistory ? yield* eventLog.sumUsage(input.executionId).pipe(Effect81.mapError((error5) => loopError(error5, input.eventSequence + 1))) : 0;
15750
15762
  const memory = input.memorySubjectId === undefined ? undefined : { key: { agent: input.agent.name, subject: input.memorySubjectId } };
15751
15763
  const restoredEpoch = durableHistory !== undefined && Option19.isSome(contextEpochs) ? yield* restoreContextEpoch(contextEpochs.value, input) : undefined;
15764
+ const freshSessionHistory = durableHistory !== undefined || input.sessionId === undefined || Option19.isNone(sessionRepository) ? undefined : yield* sessionRepository.value.path({ sessionId: input.sessionId }).pipe(Effect81.mapError((error5) => loopError(error5, input.eventSequence + 1)), Effect81.map((path2) => path2.length === 0 ? undefined : exports_session.buildContext(path2)));
15752
15765
  const { options, instructionsLayer } = durableHistory === undefined ? yield* assembler.assemble({ agent: input.agent, tools: definitions2, input: input.input }).pipe(Effect81.mapError((error5) => loopError(error5, input.eventSequence + 1)), Effect81.flatMap((assembled) => Effect81.gen(function* () {
15753
15766
  const epoch = { baseline: assembled.system, dynamicSourceIds: [] };
15754
15767
  if (Option19.isSome(contextEpochs))
@@ -15756,10 +15769,11 @@ var layer58 = Layer71.effect(Service61, Effect81.gen(function* () {
15756
15769
  return {
15757
15770
  options: {
15758
15771
  prompt: assembled.prompt,
15772
+ ...freshSessionHistory === undefined ? {} : { history: freshSessionHistory },
15759
15773
  sessionId: input.sessionId ?? input.executionId,
15760
15774
  ...memory === undefined ? {} : { memory }
15761
15775
  },
15762
- instructionsLayer: layerFromEpoch(epoch)
15776
+ instructionsLayer: freshSessionHistory === undefined ? layerFromEpoch(epoch) : Layer71.empty
15763
15777
  };
15764
15778
  }))) : {
15765
15779
  options: {
@@ -15910,7 +15924,7 @@ var layer58 = Layer71.effect(Service61, Effect81.gen(function* () {
15910
15924
  const runFold = Effect81.scoped(Effect81.gen(function* () {
15911
15925
  const base = withToolCallDecodeResilience(yield* LanguageModel.LanguageModel, definitions2.map((definition) => definition.name), toolCallDecodeMaxRetries, (classification) => Ref18.set(lastModelFailureClassification, classification));
15912
15926
  const sessionStore = input.sessionId !== undefined && Option19.isSome(sessionRepository) ? yield* make4(input.sessionId, input.sessionEntryScope ?? input.executionId, {
15913
- onCheckpointCommitted: (result) => onCheckpointCommitted(result.checkpoint).pipe(Effect81.orDie)
15927
+ onCheckpointCommitted: (result) => onCheckpointCommitted(result).pipe(Effect81.orDie)
15914
15928
  }).pipe(Effect81.provideService(exports_session_repository.Service, sessionRepository.value)) : undefined;
15915
15929
  const foldContext = yield* Layer71.build(Layer71.mergeAll(executorLayer, handlerLayer, layer53, exports_model_middleware.identityLayer, instructionsLayer, permissionsLayer, steeringLayer));
15916
15930
  const folded = exports_agent.stream(agent, batonOptions).pipe(Stream9.runFoldEffect(() => ({
@@ -15952,7 +15966,9 @@ var layer58 = Layer71.effect(Service61, Effect81.gen(function* () {
15952
15966
  };
15953
15967
  })
15954
15968
  });
15955
- }));
15969
+ });
15970
+ var layerWith = (layerOptions) => Layer71.effect(Service61, make11(layerOptions));
15971
+ var layer58 = layerWith();
15956
15972
  var run5 = Effect81.fn("AgentLoop.run.call")(function* (input) {
15957
15973
  const service = yield* Service61;
15958
15974
  return yield* service.run(input);
@@ -16285,7 +16301,7 @@ var nextEventSequence5 = Effect86.fn("SchedulerService.nextEventSequence")(funct
16285
16301
  const max = yield* eventLog.maxSequence(executionId).pipe(Effect86.mapError(toSchedulerError));
16286
16302
  return max === undefined ? 0 : max + 1;
16287
16303
  });
16288
- var make11 = Effect86.gen(function* () {
16304
+ var make12 = Effect86.gen(function* () {
16289
16305
  const schedules = yield* exports_schedule_repository.Service;
16290
16306
  const waits = yield* Service42;
16291
16307
  const eventLog = yield* Service41;
@@ -16393,7 +16409,7 @@ var pollLoop = (service, pollIntervalMillis) => Effect86.gen(function* () {
16393
16409
  }
16394
16410
  });
16395
16411
  var layer62 = Layer76.effect(Service69, Effect86.gen(function* () {
16396
- const service = yield* make11;
16412
+ const service = yield* make12;
16397
16413
  const enabled3 = yield* enabledConfig;
16398
16414
  const pollIntervalMillis = yield* pollIntervalMillisConfig;
16399
16415
  if (enabled3) {
@@ -16401,7 +16417,7 @@ var layer62 = Layer76.effect(Service69, Effect86.gen(function* () {
16401
16417
  }
16402
16418
  return service;
16403
16419
  }));
16404
- var memoryLayer45 = Layer76.effect(Service69, make11);
16420
+ var memoryLayer45 = Layer76.effect(Service69, make12);
16405
16421
  var runOnce2 = Effect86.fn("SchedulerService.runOnce.call")(function* () {
16406
16422
  const service = yield* Service69;
16407
16423
  return yield* service.runOnce;
@@ -16556,8 +16572,8 @@ var parentNotifierLayer = Layer77.effect(Service54, Effect87.gen(function* () {
16556
16572
  }).pipe(Effect87.provideService(exports_execution_repository.Service, executionRepository))
16557
16573
  });
16558
16574
  }));
16559
- var agentLoopLayerWith = (toolRuntimeLayer, promptAssemblerLayer, schemaRegistryLayer) => layer58.pipe(Layer77.provideMerge(toolRuntimeLayer), Layer77.provideMerge(layer40), Layer77.provideMerge(layer42()), Layer77.provideMerge(promptAssemblerLayer), Layer77.provideMerge(schemaRegistryLayer));
16560
- var runtimeServicesLayerWith = (toolRuntimeLayer, promptAssemblerLayer, schemaRegistryLayer, toolTransitionCoordinatorLayer) => {
16575
+ var agentLoopLayerWith = (toolRuntimeLayer, promptAssemblerLayer, schemaRegistryLayer, options) => layerWith(options).pipe(Layer77.provideMerge(toolRuntimeLayer), Layer77.provideMerge(layer40), Layer77.provideMerge(layer42()), Layer77.provideMerge(promptAssemblerLayer), Layer77.provideMerge(schemaRegistryLayer));
16576
+ var runtimeServicesLayerWith = (toolRuntimeLayer, promptAssemblerLayer, schemaRegistryLayer, toolTransitionCoordinatorLayer, agentLoopOptions) => {
16561
16577
  const inboxLayer = Layer77.unwrap(Effect87.gen(function* () {
16562
16578
  const makeExecutionClient = yield* client;
16563
16579
  const executionRepository = yield* exports_execution_repository.Service;
@@ -16565,13 +16581,13 @@ var runtimeServicesLayerWith = (toolRuntimeLayer, promptAssemblerLayer, schemaRe
16565
16581
  }));
16566
16582
  const envelopeLayer = layer52.pipe(Layer77.provideMerge(layerFromRepository3), Layer77.provideMerge(inboxLayer));
16567
16583
  const topicLayer = layer51.pipe(Layer77.provideMerge(inboxLayer));
16568
- const agentLayer = agentLoopLayerWith(toolRuntimeLayer, promptAssemblerLayer, schemaRegistryLayer).pipe(Layer77.provideMerge(inboxLayer), Layer77.provideMerge(envelopeLayer), Layer77.provideMerge(topicLayer));
16584
+ const agentLayer = agentLoopLayerWith(toolRuntimeLayer, promptAssemblerLayer, schemaRegistryLayer, agentLoopOptions).pipe(Layer77.provideMerge(inboxLayer), Layer77.provideMerge(envelopeLayer), Layer77.provideMerge(topicLayer));
16569
16585
  const entityRegistryLayer = layer60.pipe(Layer77.provideMerge(layer39));
16570
16586
  const entityInstanceLayer = layer61.pipe(Layer77.provideMerge(entityRegistryLayer), Layer77.provideMerge(layerFromRepository3), Layer77.provideMerge(layerFromRepository));
16571
16587
  return Layer77.mergeAll(addressResolutionLayerWith(toolRuntimeLayer), layer45, executionServiceLayer, layerFromServices, layerFromServices2, layerFromRepository2, agentLayer, layer48, parentNotifierLayer, inboxLayer, envelopeLayer, topicLayer, entityRegistryLayer, toolTransitionCoordinatorLayer, layer47).pipe(Layer77.provideMerge(entityInstanceLayer), Layer77.provideMerge(layer38), Layer77.provideMerge(layer34), Layer77.provideMerge(layerFromRepository));
16572
16588
  };
16573
- var workflowLayerWith = (toolRuntimeLayer, promptAssemblerLayer, schemaRegistryLayer, toolTransitionCoordinatorLayer) => layer49.pipe(Layer77.provideMerge(runtimeServicesLayerWith(toolRuntimeLayer, promptAssemblerLayer, schemaRegistryLayer, toolTransitionCoordinatorLayer)));
16574
- var workflowAndEntityLayerWith = (toolRuntimeLayer, schedulerLayer, promptAssemblerLayer, schemaRegistryLayer, toolTransitionCoordinatorLayer) => Layer77.mergeAll(layer59, schedulerLayer).pipe(Layer77.provideMerge(workflowLayerWith(toolRuntimeLayer, promptAssemblerLayer, schemaRegistryLayer, toolTransitionCoordinatorLayer)));
16589
+ var workflowLayerWith = (toolRuntimeLayer, promptAssemblerLayer, schemaRegistryLayer, toolTransitionCoordinatorLayer, agentLoopOptions) => layer49.pipe(Layer77.provideMerge(runtimeServicesLayerWith(toolRuntimeLayer, promptAssemblerLayer, schemaRegistryLayer, toolTransitionCoordinatorLayer, agentLoopOptions)));
16590
+ var workflowAndEntityLayerWith = (toolRuntimeLayer, schedulerLayer, promptAssemblerLayer, schemaRegistryLayer, toolTransitionCoordinatorLayer, agentLoopOptions) => Layer77.mergeAll(layer59, schedulerLayer).pipe(Layer77.provideMerge(workflowLayerWith(toolRuntimeLayer, promptAssemblerLayer, schemaRegistryLayer, toolTransitionCoordinatorLayer, agentLoopOptions)));
16575
16591
  var makeService2 = (database, checkDatabase) => Effect87.gen(function* () {
16576
16592
  const sharding = yield* Sharding.Sharding;
16577
16593
  const workflow = yield* WorkflowEngine2.WorkflowEngine;
@@ -16660,7 +16676,7 @@ var testLanguageModelLayer = layerFromRegistrationEffects2([
16660
16676
  ]).pipe(Layer77.orDie);
16661
16677
  var testEmbeddingModelLayer = deterministicTestLayer();
16662
16678
  var defaultPromptAssemblerLayer = (blobStoreLayer = passthroughLayer2, artifactStoreLayer = passthroughLayer) => defaultLayerWithStores.pipe(Layer77.provide(Layer77.mergeAll(blobStoreLayer, artifactStoreLayer)));
16663
- var layerWith = (options) => {
16679
+ var layerWith2 = (options) => {
16664
16680
  const blobStoreLayer = options.blobStoreLayer ?? passthroughLayer2;
16665
16681
  const artifactStoreLayer = options.artifactStoreLayer ?? passthroughLayer;
16666
16682
  const promptAssemblerLayer = options.promptAssemblerLayer ?? defaultPromptAssemblerLayer(blobStoreLayer, artifactStoreLayer);
@@ -16669,7 +16685,7 @@ var layerWith = (options) => {
16669
16685
  const memoryLayer46 = layer41().pipe(Layer77.provideMerge(embeddingModelLayer));
16670
16686
  const clusterContextLayer = Layer77.mergeAll(options.languageModelLayer, memoryLayer46, blobStoreLayer, artifactStoreLayer, promptAssemblerLayer, schemaRegistryLayer);
16671
16687
  const clusterLayer = options.clusterLayer.pipe(Layer77.provide(clusterContextLayer));
16672
- return Layer77.mergeAll(options.checkLayer, workflowAndEntityLayerWith(options.toolRuntimeLayer, options.schedulerLayer, promptAssemblerLayer, schemaRegistryLayer, options.toolTransitionCoordinatorLayer)).pipe(Layer77.provideMerge(options.languageModelLayer), Layer77.provide(memoryLayer46), Layer77.provideMerge(ClusterWorkflowEngine.layer), Layer77.provideMerge(clusterLayer), Layer77.provideMerge(options.repositoryLayer), Layer77.provideMerge(blobStoreLayer), Layer77.provideMerge(artifactStoreLayer));
16688
+ return Layer77.mergeAll(options.checkLayer, workflowAndEntityLayerWith(options.toolRuntimeLayer, options.schedulerLayer, promptAssemblerLayer, schemaRegistryLayer, options.toolTransitionCoordinatorLayer, options.onCheckpointCommitted === undefined ? undefined : { onCheckpointCommitted: options.onCheckpointCommitted })).pipe(Layer77.provideMerge(options.languageModelLayer), Layer77.provide(memoryLayer46), Layer77.provideMerge(ClusterWorkflowEngine.layer), Layer77.provideMerge(clusterLayer), Layer77.provideMerge(options.repositoryLayer), Layer77.provideMerge(blobStoreLayer), Layer77.provideMerge(artifactStoreLayer));
16673
16689
  };
16674
16690
  var layerWithClient = (options) => {
16675
16691
  const blobStoreLayer = options.blobStoreLayer ?? passthroughLayer2;
@@ -16681,7 +16697,7 @@ var layerWithClient = (options) => {
16681
16697
  return Layer77.mergeAll(options.checkLayer, runtimeServicesLayerWith(options.toolRuntimeLayer, promptAssemblerLayer, schemaRegistryLayer, options.toolTransitionCoordinatorLayer)).pipe(Layer77.provideMerge(options.languageModelLayer), Layer77.provide(memoryLayer46), Layer77.provideMerge(options.clusterLayer), Layer77.provideMerge(options.repositoryLayer), Layer77.provideMerge(blobStoreLayer), Layer77.provideMerge(artifactStoreLayer));
16682
16698
  };
16683
16699
  var layerWithServices = (options) => {
16684
- const runtime = layerWith({
16700
+ const runtime = layerWith2({
16685
16701
  toolTransitionCoordinatorLayer: sqlLayer,
16686
16702
  checkLayer: sqlCheckLayer,
16687
16703
  clusterLayer: sqlClusterLayer,
@@ -16693,12 +16709,13 @@ var layerWithServices = (options) => {
16693
16709
  promptAssemblerLayer: options.promptAssemblerLayer,
16694
16710
  blobStoreLayer: options.blobStoreLayer,
16695
16711
  artifactStoreLayer: options.artifactStoreLayer,
16696
- schemaRegistryLayer: options.schemaRegistryLayer
16712
+ schemaRegistryLayer: options.schemaRegistryLayer,
16713
+ ...options.onCheckpointCommitted === undefined ? {} : { onCheckpointCommitted: options.onCheckpointCommitted }
16697
16714
  });
16698
16715
  return runtime.pipe(Layer77.provide(options.databaseLayer));
16699
16716
  };
16700
16717
  var layerWithServicesMultiNode = (options) => {
16701
- const runtime = layerWith({
16718
+ const runtime = layerWith2({
16702
16719
  toolTransitionCoordinatorLayer: sqlLayer,
16703
16720
  checkLayer: Layer77.mergeAll(sqlCheckLayer, multiNodeDialectGuard),
16704
16721
  clusterLayer: clusterLayerHttp(options.cluster),
@@ -16710,7 +16727,8 @@ var layerWithServicesMultiNode = (options) => {
16710
16727
  promptAssemblerLayer: options.promptAssemblerLayer,
16711
16728
  blobStoreLayer: options.blobStoreLayer,
16712
16729
  artifactStoreLayer: options.artifactStoreLayer,
16713
- schemaRegistryLayer: options.schemaRegistryLayer
16730
+ schemaRegistryLayer: options.schemaRegistryLayer,
16731
+ ...options.onCheckpointCommitted === undefined ? {} : { onCheckpointCommitted: options.onCheckpointCommitted }
16714
16732
  });
16715
16733
  return runtime.pipe(Layer77.provide(options.databaseLayer));
16716
16734
  };
@@ -16730,7 +16748,7 @@ var layerWithServicesMultiNodeClientOnly = (options) => {
16730
16748
  });
16731
16749
  return runtime.pipe(Layer77.provide(options.databaseLayer));
16732
16750
  };
16733
- var layer63 = layerWith({
16751
+ var layer63 = layerWith2({
16734
16752
  toolTransitionCoordinatorLayer: sqlLayer,
16735
16753
  checkLayer: sqlCheckLayer,
16736
16754
  clusterLayer: sqlClusterLayer,
@@ -16740,7 +16758,7 @@ var layer63 = layerWith({
16740
16758
  toolRuntimeLayer: layer35(),
16741
16759
  schedulerLayer: layer62
16742
16760
  });
16743
- var testLayerWithServices = (options) => layerWith({
16761
+ var testLayerWithServices = (options) => layerWith2({
16744
16762
  toolTransitionCoordinatorLayer: memoryLayer41,
16745
16763
  checkLayer: memoryCheckLayer,
16746
16764
  clusterLayer: memoryClusterLayer,
@@ -18574,7 +18592,7 @@ class Service73 extends Context73.Service()("@relayfx/sdk/runtime-database/Servi
18574
18592
  // src/runtime-database-owner.ts
18575
18593
  import { Effect as Effect91, Layer as Layer81 } from "effect";
18576
18594
  var internals = new WeakMap;
18577
- var make12 = (value) => {
18595
+ var make13 = (value) => {
18578
18596
  const database = {
18579
18597
  dialect: value.dialect,
18580
18598
  migrate: value.migrate,
@@ -18846,7 +18864,8 @@ function layerEmbedded(options) {
18846
18864
  blobStoreLayer: options.blobStoreLayer,
18847
18865
  artifactStoreLayer: options.artifactStoreLayer,
18848
18866
  promptAssemblerLayer: options.promptAssemblerLayer,
18849
- schemaRegistryLayer: options.schemaRegistryLayer
18867
+ schemaRegistryLayer: options.schemaRegistryLayer,
18868
+ ...options.onCheckpointCommitted === undefined ? {} : { onCheckpointCommitted: options.onCheckpointCommitted }
18850
18869
  });
18851
18870
  const host = normalizeHost(publicGraph(withHosts(runner, options), runtimeLayer(options.database), "embedded", {
18852
18871
  fanOut: options.childFanOutHostLayer !== undefined,
@@ -18864,6 +18883,7 @@ var layerRunner = (options) => {
18864
18883
  artifactStoreLayer: options.artifactStoreLayer,
18865
18884
  promptAssemblerLayer: options.promptAssemblerLayer,
18866
18885
  schemaRegistryLayer: options.schemaRegistryLayer,
18886
+ ...options.onCheckpointCommitted === undefined ? {} : { onCheckpointCommitted: options.onCheckpointCommitted },
18867
18887
  cluster: options.cluster
18868
18888
  });
18869
18889
  return normalizeHost(publicGraph(runner, runtimeLayer(options.database), "runner"), "runner", options.database.dialect);
@@ -18879,4 +18899,4 @@ var layerClient = (options) => {
18879
18899
  return embeddedOutput(normalizeHost(publicGraph(runner, runtimeLayer(options.database), "client"), "client", options.database.dialect));
18880
18900
  };
18881
18901
 
18882
- export { exports_child_fan_out_host, exports_artifact_store_service, exports_blob_store_service, exports_prompt_assembler_service, Dialect, dialect, fromDbTimestamp, fromNullableDbTimestamp, timestampParam, encodeJson, decodeJson, decodeBool, exports_embedding_model_service, exports_language_model_service, exports_model_hub, exports_schema_registry_service, RuntimeConfigurationError, normalizeAcquisitionCause, DatabaseIdentity, makeDatabaseIdentity, exports_workflow_definition_host, Service73 as Service, make12 as make, runtimeLayer, exports_tool_runtime, SqlFailure, DatabaseAlreadyOwned, MigratorError, SchemaHeadMismatch, RuntimeTopologyError, RuntimeMigrationError, exports_runtime };
18902
+ export { exports_child_fan_out_host, exports_artifact_store_service, exports_blob_store_service, exports_prompt_assembler_service, Dialect, dialect, fromDbTimestamp, fromNullableDbTimestamp, timestampParam, encodeJson, decodeJson, decodeBool, exports_embedding_model_service, exports_language_model_service, exports_model_hub, exports_schema_registry_service, RuntimeConfigurationError, normalizeAcquisitionCause, DatabaseIdentity, makeDatabaseIdentity, exports_workflow_definition_host, Service73 as Service, make13 as make, runtimeLayer, exports_tool_runtime, SqlFailure, DatabaseAlreadyOwned, MigratorError, SchemaHeadMismatch, RuntimeTopologyError, RuntimeMigrationError, exports_runtime };
@@ -8,7 +8,7 @@ import {
8
8
  SqlFailure,
9
9
  make,
10
10
  normalizeAcquisitionCause
11
- } from "./index-8pa5e2yn.js";
11
+ } from "./index-01rpd00m.js";
12
12
 
13
13
  // src/migration-errors.ts
14
14
  import { Cause, Effect, Function } from "effect";
package/dist/index.js CHANGED
@@ -13,7 +13,7 @@ import {
13
13
  exports_tool_runtime,
14
14
  exports_workflow_definition_host,
15
15
  makeDatabaseIdentity
16
- } from "./index-8pa5e2yn.js";
16
+ } from "./index-01rpd00m.js";
17
17
  import {
18
18
  exports_model_registry
19
19
  } from "./index-25gwk9tj.js";
package/dist/mysql.js CHANGED
@@ -2,12 +2,12 @@
2
2
  import {
3
3
  database,
4
4
  normalizeMigrationCause
5
- } from "./index-49fm2rdv.js";
5
+ } from "./index-pr9133xv.js";
6
6
  import {
7
7
  MigratorError,
8
8
  RuntimeMigrationError,
9
9
  SqlFailure
10
- } from "./index-8pa5e2yn.js";
10
+ } from "./index-01rpd00m.js";
11
11
  import"./index-25gwk9tj.js";
12
12
  import"./index-cphmds30.js";
13
13
  import"./index-nb39b5ae.js";
package/dist/postgres.js CHANGED
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  database,
4
4
  normalizeMigrationCause
5
- } from "./index-49fm2rdv.js";
5
+ } from "./index-pr9133xv.js";
6
6
  import {
7
7
  Dialect,
8
8
  RuntimeMigrationError,
@@ -14,7 +14,7 @@ import {
14
14
  fromDbTimestamp,
15
15
  fromNullableDbTimestamp,
16
16
  timestampParam
17
- } from "./index-8pa5e2yn.js";
17
+ } from "./index-01rpd00m.js";
18
18
  import"./index-25gwk9tj.js";
19
19
  import {
20
20
  exports_ids_schema
package/dist/sqlite.js CHANGED
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  database,
4
4
  normalizeMigrationCause
5
- } from "./index-49fm2rdv.js";
5
+ } from "./index-pr9133xv.js";
6
6
  import {
7
7
  DatabaseAlreadyOwned,
8
8
  RuntimeConfigurationError,
@@ -12,7 +12,7 @@ import {
12
12
  make,
13
13
  makeDatabaseIdentity,
14
14
  runtimeLayer
15
- } from "./index-8pa5e2yn.js";
15
+ } from "./index-01rpd00m.js";
16
16
  import"./index-25gwk9tj.js";
17
17
  import"./index-cphmds30.js";
18
18
  import"./index-nb39b5ae.js";
@@ -1,3 +1,4 @@
1
+ import { Session } from "@batonfx/core";
1
2
  import { Service as PromptAssemblerService } from "../runtime/agent/prompt-assembler-service";
2
3
  import { Service as ArtifactStoreService } from "../runtime/content/artifact-store-service";
3
4
  import { Service as BlobStoreService } from "../runtime/content/blob-store-service";
@@ -171,6 +172,7 @@ export type MultiNodeDatabase<E = never, R = never> = Database<"pg", E, R> | Dat
171
172
  type HostOptions<HostE, HostR, ToolE = HostE, ToolR = HostR> = {
172
173
  readonly languageModelLayer: Layer.Layer<LanguageModelServiceService, HostE, HostR>;
173
174
  readonly toolRuntimeLayer: Layer.Layer<ToolRuntimeHostService, ToolE, ToolR>;
175
+ readonly onCheckpointCommitted?: (checkpoint: Session.CheckpointAppend) => Effect.Effect<void>;
174
176
  readonly embeddingModelLayer?: Layer.Layer<EmbeddingModelServiceService, HostE, HostR>;
175
177
  readonly blobStoreLayer?: Layer.Layer<BlobStoreService, HostE, HostR>;
176
178
  readonly artifactStoreLayer?: Layer.Layer<ArtifactStoreService, HostE, HostR>;
@@ -1,4 +1,4 @@
1
- import { AgentEvent, ModelRegistry } from "@batonfx/core";
1
+ import { AgentEvent, ModelRegistry, Session } from "@batonfx/core";
2
2
  import { Agent, Content, Execution, Ids, Shared, Tool } from "../../schema/index";
3
3
  import { AgentChatRepository } from "../../store-sql/portable";
4
4
  import { Cause, Context, Effect, Layer, Schema } from "effect";
@@ -77,6 +77,10 @@ export declare const mapBoundaryError: {
77
77
  (current: Execution.ExecutionEventSequence): (error: unknown) => AgentLoopError | AgentLoopWaitRequested | AgentLoopBudgetExceeded;
78
78
  (error: unknown, current: Execution.ExecutionEventSequence, failureClassification?: ModelRegistry.FailureClassification): AgentLoopError | AgentLoopWaitRequested | AgentLoopBudgetExceeded;
79
79
  };
80
+ export interface LayerOptions {
81
+ readonly onCheckpointCommitted?: (checkpoint: Session.CheckpointAppend) => Effect.Effect<void>;
82
+ }
83
+ export declare const layerWith: (layerOptions?: LayerOptions) => Layer.Layer<Service, never, AgentChatRepository.Service | EventLogService | ToolRuntimeService | LanguageModelServiceService | ModelCallPolicyService | SchemaRegistryService | PromptAssemblerService>;
80
84
  export declare const layer: Layer.Layer<Service, never, AgentChatRepository.Service | EventLogService | ToolRuntimeService | LanguageModelServiceService | ModelCallPolicyService | SchemaRegistryService | PromptAssemblerService>;
81
85
  export declare const testLayer: (implementation: Interface) => Layer.Layer<Service, never, never>;
82
86
  export declare const run: (input: RunInput) => Effect.Effect<RunResult, AgentLoopBudgetExceeded | AgentLoopError | AgentLoopWaitRequested, Service>;
@@ -4,6 +4,7 @@ import { Config, Context, Crypto, Duration, Effect, Layer, Option, Schema } from
4
4
  import { MessageStorage, RunnerAddress, RunnerStorage, Runners, Sharding, ShardingConfig } from "effect/unstable/cluster";
5
5
  import { SqlClient } from "effect/unstable/sql/SqlClient";
6
6
  import { WorkflowEngine } from "effect/unstable/workflow";
7
+ import { type LayerOptions as AgentLoopLayerOptions } from "../agent/agent-loop-service";
7
8
  import { Service as ArtifactStoreService } from "../content/artifact-store-service";
8
9
  import { Service as BlobStoreService } from "../content/blob-store-service";
9
10
  import { Service as EmbeddingModelServiceService } from "../model/embedding-model-service";
@@ -71,6 +72,7 @@ export declare const assertClusterConfig: (expected: {
71
72
  }) => Effect.Effect<undefined, ClusterConfigMismatch, ShardingConfig.ShardingConfig>;
72
73
  /** @deprecated Use `Runtime.layerEmbedded` for an embedded process role. */
73
74
  export declare const layerWith: <CheckError, CheckIn, ClusterOut, ClusterError, ClusterIn, RepositoryOut, RepositoryError, RepositoryIn, LanguageModelOut, LanguageModelError, LanguageModelIn, EmbeddingModelError, EmbeddingModelIn, ToolRuntimeError, ToolRuntimeIn, SchedulerError, SchedulerIn, CoordinatorError, CoordinatorIn>(options: {
75
+ readonly onCheckpointCommitted?: AgentLoopLayerOptions["onCheckpointCommitted"];
74
76
  readonly checkLayer: Layer.Layer<Service, CheckError, CheckIn>;
75
77
  readonly clusterLayer: Layer.Layer<ClusterOut, ClusterError, ClusterIn>;
76
78
  readonly repositoryLayer: Layer.Layer<RepositoryOut, RepositoryError, RepositoryIn>;
@@ -100,6 +102,7 @@ export declare const layerWithClient: <CheckError, CheckIn, ClusterOut, ClusterE
100
102
  }) => Layer.Layer<ClusterOut | LanguageModelOut | RepositoryOut | import("../address/address-book-service").Service | import("../execution/event-log-service").Service | import("../wait/wait-service").Service | ToolRuntimeService | import("../agent/agent-registry-service").Service | import("../address/address-resolution-service").Service | import("../child/child-run-service").Service | import("../model/model-call-policy").Service | import("../presence/presence-contract").Service | SchemaRegistryService | BlobStoreService | import("../state/execution-state-service").Service | ParentNotifierService | import("../skill/skill-registry-service").Service | import("../execution/execution-service").Service | import("../execution/active-execution-registry").Service | ToolTransitionCoordinatorService | import("../workspace/workspace-planner-service").Service | import("../inbox/inbox-service").Service | import("../topic/topic-service").Service | import("../envelope/envelope-service").Service | ArtifactStoreService | PromptAssemblerService | import("../agent/agent-loop-service").Service | import("../entity/entity-registry-service").Service | import("../entity/entity-instance-service").Service | import("../execution/execution-watch-service").Service | import("../execution/session-stream-service").Service | Service, CheckError | ClusterError | CoordinatorError | LanguageModelError | RepositoryError | ToolRuntimeError | Config.ConfigError, LanguageModelIn | Exclude<LanguageModelIn, ArtifactStoreService> | Exclude<Exclude<RepositoryIn, BlobStoreService>, ArtifactStoreService> | Exclude<Exclude<Exclude<ClusterIn, RepositoryOut>, BlobStoreService>, ArtifactStoreService> | Exclude<Exclude<Exclude<Exclude<Exclude<LanguageModelIn, never>, ClusterOut>, RepositoryOut>, BlobStoreService>, ArtifactStoreService> | Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<CheckIn, LanguageModelOut>, never>, ClusterOut>, RepositoryOut>, BlobStoreService>, ArtifactStoreService> | Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<AddressBookRepository.Service, LanguageModelOut>, never>, ClusterOut>, RepositoryOut>, BlobStoreService>, ArtifactStoreService> | Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<AgentChatRepository.Service, LanguageModelOut>, never>, ClusterOut>, RepositoryOut>, BlobStoreService>, ArtifactStoreService> | Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<AgentDefinitionRepository.Service, LanguageModelOut>, never>, ClusterOut>, RepositoryOut>, BlobStoreService>, ArtifactStoreService> | Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<ChildExecutionRepository.Service, LanguageModelOut>, never>, ClusterOut>, RepositoryOut>, BlobStoreService>, ArtifactStoreService> | Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<EnvelopeRepository.Service, LanguageModelOut>, never>, ClusterOut>, RepositoryOut>, BlobStoreService>, ArtifactStoreService> | Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<EntityRepository.Service, LanguageModelOut>, never>, ClusterOut>, RepositoryOut>, BlobStoreService>, ArtifactStoreService> | Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<ExecutionEventRepository.Service, LanguageModelOut>, never>, ClusterOut>, RepositoryOut>, BlobStoreService>, ArtifactStoreService> | Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<ExecutionRepository.Service, LanguageModelOut>, never>, ClusterOut>, RepositoryOut>, BlobStoreService>, ArtifactStoreService> | Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<ExecutionStateRepository.Service, LanguageModelOut>, never>, ClusterOut>, RepositoryOut>, BlobStoreService>, ArtifactStoreService> | Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<InboxRepository.Service, LanguageModelOut>, never>, ClusterOut>, RepositoryOut>, BlobStoreService>, ArtifactStoreService> | Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<TopicRepository.Service, LanguageModelOut>, never>, ClusterOut>, RepositoryOut>, BlobStoreService>, ArtifactStoreService> | Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<PresenceRepository.Service, LanguageModelOut>, never>, ClusterOut>, RepositoryOut>, BlobStoreService>, ArtifactStoreService> | Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<ScheduleRepository.Service, LanguageModelOut>, never>, ClusterOut>, RepositoryOut>, BlobStoreService>, ArtifactStoreService> | Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<SkillDefinitionRepository.Service, LanguageModelOut>, never>, ClusterOut>, RepositoryOut>, BlobStoreService>, ArtifactStoreService> | Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<WorkspaceLeaseRepository.Service, LanguageModelOut>, never>, ClusterOut>, RepositoryOut>, BlobStoreService>, ArtifactStoreService> | Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<LanguageModelServiceService, LanguageModelOut>, never>, ClusterOut>, RepositoryOut>, BlobStoreService>, ArtifactStoreService> | Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<BlobStoreService, LanguageModelOut>, never>, ClusterOut>, RepositoryOut>, BlobStoreService>, ArtifactStoreService> | Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Sharding.Sharding, LanguageModelOut>, never>, ClusterOut>, RepositoryOut>, BlobStoreService>, ArtifactStoreService> | Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<ShardingConfig.ShardingConfig, LanguageModelOut>, never>, ClusterOut>, RepositoryOut>, BlobStoreService>, ArtifactStoreService> | Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<CoordinatorIn, import("../address/address-book-service").Service | import("../execution/event-log-service").Service | import("../agent/agent-registry-service").Service | import("../entity/entity-registry-service").Service | import("../entity/entity-instance-service").Service>, import("../state/execution-state-service").Service>, import("../wait/wait-service").Service>, import("../execution/event-log-service").Service>, LanguageModelOut>, never>, ClusterOut>, RepositoryOut>, BlobStoreService>, ArtifactStoreService> | Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<ToolRuntimeIn, import("../address/address-book-service").Service | import("../execution/event-log-service").Service | import("../agent/agent-registry-service").Service | import("../entity/entity-registry-service").Service | import("../entity/entity-instance-service").Service>, import("../state/execution-state-service").Service>, import("../wait/wait-service").Service>, import("../execution/event-log-service").Service>, LanguageModelOut>, never>, ClusterOut>, RepositoryOut>, BlobStoreService>, ArtifactStoreService> | Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<LanguageModelIn, import("../inbox/inbox-service").Service>, import("../address/address-book-service").Service | import("../inbox/inbox-service").Service | import("../envelope/envelope-service").Service>, import("../inbox/inbox-service").Service | import("../topic/topic-service").Service>, import("../address/address-book-service").Service | import("../execution/event-log-service").Service | import("../agent/agent-registry-service").Service | import("../entity/entity-registry-service").Service | import("../entity/entity-instance-service").Service>, import("../state/execution-state-service").Service>, import("../wait/wait-service").Service>, import("../execution/event-log-service").Service>, LanguageModelOut>, never>, ClusterOut>, RepositoryOut>, BlobStoreService>, ArtifactStoreService> | Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<LanguageModelIn, SchemaRegistryService>, import("../inbox/inbox-service").Service>, import("../address/address-book-service").Service | import("../inbox/inbox-service").Service | import("../envelope/envelope-service").Service>, import("../inbox/inbox-service").Service | import("../topic/topic-service").Service>, import("../address/address-book-service").Service | import("../execution/event-log-service").Service | import("../agent/agent-registry-service").Service | import("../entity/entity-registry-service").Service | import("../entity/entity-instance-service").Service>, import("../state/execution-state-service").Service>, import("../wait/wait-service").Service>, import("../execution/event-log-service").Service>, LanguageModelOut>, never>, ClusterOut>, RepositoryOut>, BlobStoreService>, ArtifactStoreService> | Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<ToolRuntimeIn, import("../child/child-run-service").Service>, import("../model/model-call-policy").Service>, PromptAssemblerService>, SchemaRegistryService>, import("../inbox/inbox-service").Service>, import("../address/address-book-service").Service | import("../inbox/inbox-service").Service | import("../envelope/envelope-service").Service>, import("../inbox/inbox-service").Service | import("../topic/topic-service").Service>, import("../address/address-book-service").Service | import("../execution/event-log-service").Service | import("../agent/agent-registry-service").Service | import("../entity/entity-registry-service").Service | import("../entity/entity-instance-service").Service>, import("../state/execution-state-service").Service>, import("../wait/wait-service").Service>, import("../execution/event-log-service").Service>, LanguageModelOut>, never>, ClusterOut>, RepositoryOut>, BlobStoreService>, ArtifactStoreService>>;
101
103
  /** @deprecated Use `Runtime.layerEmbedded` for an embedded process role. */
102
104
  export declare const layerWithServices: <DatabaseError, DatabaseIn, LanguageModelError, LanguageModelIn, EmbeddingModelError, EmbeddingModelIn, ToolRuntimeError, ToolRuntimeIn>(options: {
105
+ readonly onCheckpointCommitted?: AgentLoopLayerOptions["onCheckpointCommitted"];
103
106
  readonly databaseLayer: Layer.Layer<SqlClient, DatabaseError, DatabaseIn>;
104
107
  readonly languageModelLayer: Layer.Layer<LanguageModelServiceService, LanguageModelError, LanguageModelIn>;
105
108
  readonly embeddingModelLayer?: Layer.Layer<EmbeddingModelServiceService, EmbeddingModelError, EmbeddingModelIn> | undefined;
@@ -111,6 +114,7 @@ export declare const layerWithServices: <DatabaseError, DatabaseIn, LanguageMode
111
114
  }) => Layer.Layer<MessageStorage.MessageStorage | Runners.Runners | AddressBookRepository.Service | AgentChatRepository.Service | AgentDefinitionRepository.Service | ChildExecutionRepository.Service | ChildFanOutRepository.Service | ClusterRegistryRepository.Service | CompactionRepository.Service | ContextEpochRepository.Service | EnvelopeRepository.Service | EntityRepository.Service | NotificationBus.Service | ExecutionEventRepository.Service | ExecutionRepository.Service | ExecutionStateRepository.Service | InboxRepository.Service | TopicRepository.Service | MemoryRepository.Service | PermissionRuleRepository.Service | PresenceRepository.Service | ScheduleRepository.Service | SessionRepository.Service | SkillDefinitionRepository.Service | SteeringRepository.Service | ToolCallRepository.Service | WorkspaceLeaseRepository.Service | WorkflowDefinitionRepository.Service | import("../address/address-book-service").Service | import("../execution/event-log-service").Service | import("../wait/wait-service").Service | ToolRuntimeService | import("../agent/agent-registry-service").Service | import("../address/address-resolution-service").Service | import("../child/child-run-service").Service | LanguageModelServiceService | import("../model/model-call-policy").Service | import("../presence/presence-contract").Service | SchemaRegistryService | BlobStoreService | import("../state/execution-state-service").Service | ParentNotifierService | import("../skill/skill-registry-service").Service | import("../execution/execution-service").Service | import("../execution/active-execution-registry").Service | ToolTransitionCoordinatorService | import("../workspace/workspace-planner-service").Service | import("../inbox/inbox-service").Service | import("../topic/topic-service").Service | import("../envelope/envelope-service").Service | ArtifactStoreService | PromptAssemblerService | import("../agent/agent-loop-service").Service | import("../entity/entity-registry-service").Service | import("../entity/entity-instance-service").Service | import("../execution/execution-watch-service").Service | import("../execution/session-stream-service").Service | SchedulerServiceService | Service | Sharding.Sharding | ShardingConfig.ShardingConfig | WorkflowEngine.WorkflowEngine, DatabaseError | LanguageModelError | ToolRuntimeError | ClusterConfigMismatch | Config.ConfigError, DatabaseIn | Exclude<LanguageModelIn, SqlClient> | Exclude<Exclude<LanguageModelIn, ArtifactStoreService>, SqlClient> | Exclude<Exclude<Exclude<Exclude<LanguageModelIn, AddressBookRepository.Service | AgentChatRepository.Service | AgentDefinitionRepository.Service | ChildExecutionRepository.Service | ChildFanOutRepository.Service | ClusterRegistryRepository.Service | CompactionRepository.Service | ContextEpochRepository.Service | EnvelopeRepository.Service | EntityRepository.Service | NotificationBus.Service | ExecutionEventRepository.Service | ExecutionRepository.Service | ExecutionStateRepository.Service | InboxRepository.Service | TopicRepository.Service | MemoryRepository.Service | PermissionRuleRepository.Service | PresenceRepository.Service | ScheduleRepository.Service | SessionRepository.Service | SkillDefinitionRepository.Service | SteeringRepository.Service | ToolCallRepository.Service | WorkspaceLeaseRepository.Service | WorkflowDefinitionRepository.Service>, BlobStoreService>, ArtifactStoreService>, SqlClient> | Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<LanguageModelIn, never>, WorkflowEngine.WorkflowEngine>, MessageStorage.MessageStorage | Runners.Runners | Sharding.Sharding | ShardingConfig.ShardingConfig>, AddressBookRepository.Service | AgentChatRepository.Service | AgentDefinitionRepository.Service | ChildExecutionRepository.Service | ChildFanOutRepository.Service | ClusterRegistryRepository.Service | CompactionRepository.Service | ContextEpochRepository.Service | EnvelopeRepository.Service | EntityRepository.Service | NotificationBus.Service | ExecutionEventRepository.Service | ExecutionRepository.Service | ExecutionStateRepository.Service | InboxRepository.Service | TopicRepository.Service | MemoryRepository.Service | PermissionRuleRepository.Service | PresenceRepository.Service | ScheduleRepository.Service | SessionRepository.Service | SkillDefinitionRepository.Service | SteeringRepository.Service | ToolCallRepository.Service | WorkspaceLeaseRepository.Service | WorkflowDefinitionRepository.Service>, BlobStoreService>, ArtifactStoreService>, SqlClient> | Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<ToolRuntimeIn, import("../address/address-book-service").Service | import("../execution/event-log-service").Service | import("../agent/agent-registry-service").Service | import("../entity/entity-registry-service").Service | import("../entity/entity-instance-service").Service>, import("../state/execution-state-service").Service>, import("../wait/wait-service").Service>, import("../execution/event-log-service").Service>, LanguageModelServiceService>, never>, WorkflowEngine.WorkflowEngine>, MessageStorage.MessageStorage | Runners.Runners | Sharding.Sharding | ShardingConfig.ShardingConfig>, AddressBookRepository.Service | AgentChatRepository.Service | AgentDefinitionRepository.Service | ChildExecutionRepository.Service | ChildFanOutRepository.Service | ClusterRegistryRepository.Service | CompactionRepository.Service | ContextEpochRepository.Service | EnvelopeRepository.Service | EntityRepository.Service | NotificationBus.Service | ExecutionEventRepository.Service | ExecutionRepository.Service | ExecutionStateRepository.Service | InboxRepository.Service | TopicRepository.Service | MemoryRepository.Service | PermissionRuleRepository.Service | PresenceRepository.Service | ScheduleRepository.Service | SessionRepository.Service | SkillDefinitionRepository.Service | SteeringRepository.Service | ToolCallRepository.Service | WorkspaceLeaseRepository.Service | WorkflowDefinitionRepository.Service>, BlobStoreService>, ArtifactStoreService>, SqlClient> | Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<LanguageModelIn, import("../inbox/inbox-service").Service>, import("../address/address-book-service").Service | import("../inbox/inbox-service").Service | import("../envelope/envelope-service").Service>, import("../inbox/inbox-service").Service | import("../topic/topic-service").Service>, import("../address/address-book-service").Service | import("../execution/event-log-service").Service | import("../agent/agent-registry-service").Service | import("../entity/entity-registry-service").Service | import("../entity/entity-instance-service").Service>, import("../state/execution-state-service").Service>, import("../wait/wait-service").Service>, import("../execution/event-log-service").Service>, LanguageModelServiceService>, never>, WorkflowEngine.WorkflowEngine>, MessageStorage.MessageStorage | Runners.Runners | Sharding.Sharding | ShardingConfig.ShardingConfig>, AddressBookRepository.Service | AgentChatRepository.Service | AgentDefinitionRepository.Service | ChildExecutionRepository.Service | ChildFanOutRepository.Service | ClusterRegistryRepository.Service | CompactionRepository.Service | ContextEpochRepository.Service | EnvelopeRepository.Service | EntityRepository.Service | NotificationBus.Service | ExecutionEventRepository.Service | ExecutionRepository.Service | ExecutionStateRepository.Service | InboxRepository.Service | TopicRepository.Service | MemoryRepository.Service | PermissionRuleRepository.Service | PresenceRepository.Service | ScheduleRepository.Service | SessionRepository.Service | SkillDefinitionRepository.Service | SteeringRepository.Service | ToolCallRepository.Service | WorkspaceLeaseRepository.Service | WorkflowDefinitionRepository.Service>, BlobStoreService>, ArtifactStoreService>, SqlClient> | Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<LanguageModelIn, SchemaRegistryService>, import("../inbox/inbox-service").Service>, import("../address/address-book-service").Service | import("../inbox/inbox-service").Service | import("../envelope/envelope-service").Service>, import("../inbox/inbox-service").Service | import("../topic/topic-service").Service>, import("../address/address-book-service").Service | import("../execution/event-log-service").Service | import("../agent/agent-registry-service").Service | import("../entity/entity-registry-service").Service | import("../entity/entity-instance-service").Service>, import("../state/execution-state-service").Service>, import("../wait/wait-service").Service>, import("../execution/event-log-service").Service>, LanguageModelServiceService>, never>, WorkflowEngine.WorkflowEngine>, MessageStorage.MessageStorage | Runners.Runners | Sharding.Sharding | ShardingConfig.ShardingConfig>, AddressBookRepository.Service | AgentChatRepository.Service | AgentDefinitionRepository.Service | ChildExecutionRepository.Service | ChildFanOutRepository.Service | ClusterRegistryRepository.Service | CompactionRepository.Service | ContextEpochRepository.Service | EnvelopeRepository.Service | EntityRepository.Service | NotificationBus.Service | ExecutionEventRepository.Service | ExecutionRepository.Service | ExecutionStateRepository.Service | InboxRepository.Service | TopicRepository.Service | MemoryRepository.Service | PermissionRuleRepository.Service | PresenceRepository.Service | ScheduleRepository.Service | SessionRepository.Service | SkillDefinitionRepository.Service | SteeringRepository.Service | ToolCallRepository.Service | WorkspaceLeaseRepository.Service | WorkflowDefinitionRepository.Service>, BlobStoreService>, ArtifactStoreService>, SqlClient> | Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<Exclude<ToolRuntimeIn, import("../child/child-run-service").Service>, import("../model/model-call-policy").Service>, PromptAssemblerService>, SchemaRegistryService>, import("../inbox/inbox-service").Service>, import("../address/address-book-service").Service | import("../inbox/inbox-service").Service | import("../envelope/envelope-service").Service>, import("../inbox/inbox-service").Service | import("../topic/topic-service").Service>, import("../address/address-book-service").Service | import("../execution/event-log-service").Service | import("../agent/agent-registry-service").Service | import("../entity/entity-registry-service").Service | import("../entity/entity-instance-service").Service>, import("../state/execution-state-service").Service>, import("../wait/wait-service").Service>, import("../execution/event-log-service").Service>, LanguageModelServiceService>, never>, WorkflowEngine.WorkflowEngine>, MessageStorage.MessageStorage | Runners.Runners | Sharding.Sharding | ShardingConfig.ShardingConfig>, AddressBookRepository.Service | AgentChatRepository.Service | AgentDefinitionRepository.Service | ChildExecutionRepository.Service | ChildFanOutRepository.Service | ClusterRegistryRepository.Service | CompactionRepository.Service | ContextEpochRepository.Service | EnvelopeRepository.Service | EntityRepository.Service | NotificationBus.Service | ExecutionEventRepository.Service | ExecutionRepository.Service | ExecutionStateRepository.Service | InboxRepository.Service | TopicRepository.Service | MemoryRepository.Service | PermissionRuleRepository.Service | PresenceRepository.Service | ScheduleRepository.Service | SessionRepository.Service | SkillDefinitionRepository.Service | SteeringRepository.Service | ToolCallRepository.Service | WorkspaceLeaseRepository.Service | WorkflowDefinitionRepository.Service>, BlobStoreService>, ArtifactStoreService>, SqlClient>>;
112
115
  /** @deprecated Use `Runtime.layerRunner` for a runner process role. */
113
116
  export declare const layerWithServicesMultiNode: <DatabaseError, DatabaseIn, LanguageModelError, LanguageModelIn, EmbeddingModelError, EmbeddingModelIn, ToolRuntimeError, ToolRuntimeIn>(options: {
117
+ readonly onCheckpointCommitted?: AgentLoopLayerOptions["onCheckpointCommitted"];
114
118
  readonly databaseLayer: Layer.Layer<SqlClient, DatabaseError, DatabaseIn>;
115
119
  readonly languageModelLayer: Layer.Layer<LanguageModelServiceService, LanguageModelError, LanguageModelIn>;
116
120
  readonly embeddingModelLayer?: Layer.Layer<EmbeddingModelServiceService, EmbeddingModelError, EmbeddingModelIn> | undefined;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "@relayfx/sdk",
4
- "version": "0.3.3",
4
+ "version": "0.3.4",
5
5
  "description": "Effect-native durable execution SDK for addressable agents and tools",
6
6
  "type": "module",
7
7
  "exports": {