@lota-sdk/core 0.4.12 → 0.4.14
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/package.json +4 -4
- package/src/ai/embedding-cache.ts +17 -11
- package/src/ai-gateway/ai-gateway.ts +164 -94
- package/src/ai-gateway/index.ts +4 -1
- package/src/config/agent-defaults.ts +2 -2
- package/src/config/agent-types.ts +1 -1
- package/src/create-runtime.ts +259 -200
- package/src/db/cursor-pagination.ts +2 -9
- package/src/db/memory-store.ts +194 -175
- package/src/db/memory.ts +125 -71
- package/src/db/schema-fingerprint.ts +5 -4
- package/src/db/service-normalization.ts +4 -3
- package/src/db/service.ts +3 -2
- package/src/db/startup.ts +15 -16
- package/src/effect/errors.ts +161 -21
- package/src/effect/index.ts +0 -1
- package/src/embeddings/provider.ts +15 -7
- package/src/queues/autonomous-job.queue.ts +10 -22
- package/src/queues/delayed-node-promotion.queue.ts +8 -14
- package/src/queues/document-processor.queue.ts +13 -4
- package/src/queues/memory-consolidation.queue.ts +26 -14
- package/src/queues/plan-agent-heartbeat.queue.ts +10 -9
- package/src/queues/plan-scheduler.queue.ts +37 -15
- package/src/queues/queue-factory.ts +59 -35
- package/src/queues/standalone-worker.ts +3 -2
- package/src/redis/connection.ts +10 -3
- package/src/redis/org-memory-lock.ts +1 -1
- package/src/redis/redis-lease-lock.ts +5 -5
- package/src/redis/stream-context.ts +1 -1
- package/src/runtime/chat-message.ts +64 -1
- package/src/runtime/chat-run-orchestration.ts +33 -20
- package/src/runtime/context-compaction/context-compaction-runtime.ts +14 -7
- package/src/runtime/context-compaction/context-compaction.ts +78 -66
- package/src/runtime/domain-layer.ts +13 -7
- package/src/runtime/execution-plan.ts +7 -3
- package/src/runtime/live-turn-trace.ts +6 -49
- package/src/runtime/memory/memory-block.ts +3 -9
- package/src/runtime/memory/memory-scope.ts +3 -1
- package/src/runtime/plugin-resolution.ts +2 -1
- package/src/runtime/post-turn-side-effects.ts +6 -5
- package/src/runtime/retrieval-adapters.ts +8 -20
- package/src/runtime/runtime-config.ts +3 -9
- package/src/runtime/runtime-extensions.ts +2 -4
- package/src/runtime/runtime-lifecycle.ts +56 -16
- package/src/runtime/runtime-services.ts +180 -102
- package/src/runtime/runtime-worker-registry.ts +3 -1
- package/src/runtime/social-chat/social-chat-agent-runner.ts +1 -1
- package/src/runtime/social-chat/social-chat-history.ts +21 -18
- package/src/runtime/social-chat/social-chat.ts +356 -223
- package/src/runtime/specialist-runner.ts +3 -1
- package/src/runtime/team-consultation/team-consultation-orchestrator.ts +3 -2
- package/src/runtime/thread-turn-context.ts +142 -102
- package/src/runtime/turn-lifecycle.ts +15 -46
- package/src/services/agent-activity.service.ts +1 -1
- package/src/services/agent-executor.service.ts +107 -77
- package/src/services/autonomous-job.service.ts +354 -293
- package/src/services/background-work.service.ts +3 -3
- package/src/services/context-compaction.service.ts +7 -2
- package/src/services/document-chunk.service.ts +50 -32
- package/src/services/execution-plan/execution-plan-schedule.ts +5 -3
- package/src/services/execution-plan/execution-plan.service.ts +162 -179
- package/src/services/feedback-loop.service.ts +5 -4
- package/src/services/graph-full-routing.ts +37 -36
- package/src/services/institutional-memory.service.ts +28 -30
- package/src/services/learned-skill.service.ts +107 -72
- package/src/services/memory/memory-errors.ts +4 -23
- package/src/services/memory/memory-org-memory.ts +10 -5
- package/src/services/memory/memory-rerank.ts +18 -6
- package/src/services/memory/memory.service.ts +170 -111
- package/src/services/memory/rerank.service.ts +29 -20
- package/src/services/organization-member.service.ts +1 -1
- package/src/services/organization.service.ts +69 -75
- package/src/services/ownership-dispatcher.service.ts +40 -39
- package/src/services/plan/plan-agent-heartbeat.service.ts +26 -23
- package/src/services/plan/plan-agent-query.service.ts +39 -31
- package/src/services/plan/plan-completion-side-effects.ts +13 -17
- package/src/services/plan/plan-coordination.service.ts +2 -1
- package/src/services/plan/plan-cycle.service.ts +6 -5
- package/src/services/plan/plan-deadline.service.ts +57 -54
- package/src/services/plan/plan-event-delivery.service.ts +5 -4
- package/src/services/plan/plan-executor-graph.ts +18 -15
- package/src/services/plan/plan-executor.service.ts +235 -262
- package/src/services/plan/plan-run.service.ts +169 -93
- package/src/services/plan/plan-scheduler.service.ts +192 -202
- package/src/services/plan/plan-template.service.ts +1 -1
- package/src/services/plan/plan-transaction-events.ts +1 -1
- package/src/services/plan/plan-workspace.service.ts +23 -14
- package/src/services/plugin-executor.service.ts +5 -9
- package/src/services/queue-job.service.ts +117 -59
- package/src/services/recent-activity-title.service.ts +13 -12
- package/src/services/recent-activity.service.ts +6 -1
- package/src/services/social-chat-history.service.ts +29 -25
- package/src/services/system-executor.service.ts +5 -9
- package/src/services/thread/thread-active-run.ts +2 -2
- package/src/services/thread/thread-listing.ts +61 -57
- package/src/services/thread/thread-memory-block.ts +73 -48
- package/src/services/thread/thread-message.service.ts +76 -65
- package/src/services/thread/thread-record-store.ts +8 -8
- package/src/services/thread/thread-title.service.ts +10 -4
- package/src/services/thread/thread-turn-execution.ts +43 -45
- package/src/services/thread/thread-turn-preparation.service.ts +257 -135
- package/src/services/thread/thread-turn-streaming.ts +82 -85
- package/src/services/thread/thread-turn.ts +8 -8
- package/src/services/thread/thread.service.ts +135 -100
- package/src/services/user.service.ts +45 -48
- package/src/storage/attachment-parser.ts +6 -2
- package/src/storage/attachment-storage.service.ts +5 -6
- package/src/storage/generated-document-storage.service.ts +1 -1
- package/src/system-agents/context-compaction.agent.ts +10 -9
- package/src/system-agents/delegated-agent-factory.ts +30 -6
- package/src/system-agents/memory-reranker.agent.ts +10 -9
- package/src/system-agents/memory.agent.ts +10 -9
- package/src/system-agents/recent-activity-title-refiner.agent.ts +13 -15
- package/src/system-agents/regular-chat-memory-digest.agent.ts +13 -12
- package/src/system-agents/skill-extractor.agent.ts +13 -12
- package/src/system-agents/skill-manager.agent.ts +13 -12
- package/src/system-agents/thread-router.agent.ts +10 -5
- package/src/system-agents/title-generator.agent.ts +13 -12
- package/src/tools/fetch-webpage.tool.ts +13 -13
- package/src/tools/memory-block.tool.ts +3 -1
- package/src/tools/plan-approval.tool.ts +4 -2
- package/src/tools/read-file-parts.tool.ts +10 -4
- package/src/tools/remember-memory.tool.ts +3 -1
- package/src/tools/research-topic.tool.ts +9 -5
- package/src/tools/search-web.tool.ts +16 -16
- package/src/tools/search.tool.ts +20 -5
- package/src/tools/team-think.tool.ts +61 -38
- package/src/utils/async.ts +5 -5
- package/src/utils/errors.ts +19 -18
- package/src/utils/sse-keepalive.ts +28 -25
- package/src/workers/bootstrap.ts +75 -11
- package/src/workers/memory-consolidation.worker.ts +82 -91
- package/src/workers/organization-learning.worker.ts +14 -4
- package/src/workers/regular-chat-memory-digest.runner.ts +105 -67
- package/src/workers/skill-extraction.runner.ts +97 -61
- package/src/workers/utils/repo-structure-extractor.ts +13 -8
- package/src/workers/utils/thread-message-query.ts +24 -24
- package/src/workers/worker-utils.ts +23 -4
- package/src/effect/helpers.ts +0 -123
|
@@ -12,12 +12,12 @@ import { stepCountIs, tool } from 'ai'
|
|
|
12
12
|
import type { ToolSet } from 'ai'
|
|
13
13
|
import { Context, Schema, Effect, Layer } from 'effect'
|
|
14
14
|
|
|
15
|
+
import { RuntimeBridgeTag } from '../ai-gateway/ai-gateway'
|
|
15
16
|
import type { ResolvedAgentConfig, ResolvedAgentFactoryConfig } from '../config/agent-defaults'
|
|
16
17
|
import { ensureRecordId } from '../db/record-id'
|
|
17
18
|
import type { SurrealDBService } from '../db/service'
|
|
18
19
|
import { TABLES } from '../db/tables'
|
|
19
|
-
import { BadRequestError, NotFoundError } from '../effect/errors'
|
|
20
|
-
import { makeEffectTryPromiseWithOperation } from '../effect/helpers'
|
|
20
|
+
import { ERROR_TAGS, BadRequestError, NotFoundError } from '../effect/errors'
|
|
21
21
|
import {
|
|
22
22
|
AgentConfigServiceTag,
|
|
23
23
|
AgentFactoryServiceTag,
|
|
@@ -111,22 +111,12 @@ function validateOwner(agentConfig: ResolvedAgentConfig, agentId: string, nodeId
|
|
|
111
111
|
return []
|
|
112
112
|
}
|
|
113
113
|
|
|
114
|
-
class AgentExecutorError extends Schema.TaggedErrorClass<AgentExecutorError>()(
|
|
114
|
+
class AgentExecutorError extends Schema.TaggedErrorClass<AgentExecutorError>()(ERROR_TAGS.AgentExecutorError, {
|
|
115
115
|
operation: Schema.String,
|
|
116
116
|
message: Schema.String,
|
|
117
117
|
cause: Schema.Defect,
|
|
118
118
|
}) {}
|
|
119
119
|
|
|
120
|
-
const tryAgentExecutorPromise = makeEffectTryPromiseWithOperation(
|
|
121
|
-
(operation, message, cause) => new AgentExecutorError({ operation, message, cause }),
|
|
122
|
-
)
|
|
123
|
-
const tryAgentExecutorTask = <A>(
|
|
124
|
-
operation: string,
|
|
125
|
-
message: string,
|
|
126
|
-
task: () => PromiseLike<A>,
|
|
127
|
-
): Effect.Effect<A, AgentExecutorError> =>
|
|
128
|
-
Effect.tryPromise({ try: task, catch: (cause) => new AgentExecutorError({ operation, message, cause }) })
|
|
129
|
-
|
|
130
120
|
function isAgentExecutorOwner(
|
|
131
121
|
owner: PlanNodeSpec['owner'],
|
|
132
122
|
): owner is Extract<PlanNodeSpec['owner'], { executorType: 'agent' }> {
|
|
@@ -138,13 +128,14 @@ function buildWriteIntentTool(params: {
|
|
|
138
128
|
workspace: ReturnType<ReturnType<typeof makeNodeWorkspaceService>['initialize']>
|
|
139
129
|
writeIntentValidatorService: ReturnType<typeof makeWriteIntentValidatorService>
|
|
140
130
|
stageWrite: (intent: WriteIntent) => Effect.Effect<void, BadRequestError>
|
|
131
|
+
runPromise: <A, E>(effect: Effect.Effect<A, E, never>, options?: { signal?: AbortSignal }) => Promise<A>
|
|
141
132
|
}) {
|
|
142
133
|
return tool({
|
|
143
134
|
description:
|
|
144
135
|
'Write a validated artifact or structured output field. Call this for each deliverable. If validation fails, correct your payload and try again.',
|
|
145
136
|
inputSchema: WriteIntentSchema,
|
|
146
|
-
execute: (intent: WriteIntent) =>
|
|
147
|
-
|
|
137
|
+
execute: (intent: WriteIntent, { abortSignal }: { abortSignal?: AbortSignal } = {}) =>
|
|
138
|
+
params.runPromise(
|
|
148
139
|
Effect.gen(function* () {
|
|
149
140
|
const correctionCount = params.workspace.sys.correctionCounts.get(intent.targetPath) ?? 0
|
|
150
141
|
|
|
@@ -178,6 +169,7 @@ function buildWriteIntentTool(params: {
|
|
|
178
169
|
yield* params.stageWrite(intent)
|
|
179
170
|
return { status: 'accepted', message: `Write to "${intent.targetPath}" validated and staged.` }
|
|
180
171
|
}),
|
|
172
|
+
abortSignal ? { signal: abortSignal } : undefined,
|
|
181
173
|
),
|
|
182
174
|
})
|
|
183
175
|
}
|
|
@@ -201,9 +193,15 @@ function createExecuteNode(deps: AgentExecutorDeps) {
|
|
|
201
193
|
return yield* new BadRequestError({ message: `Agent executor "${agentId}" is not registered.` })
|
|
202
194
|
}
|
|
203
195
|
|
|
204
|
-
const thread = yield*
|
|
205
|
-
|
|
206
|
-
|
|
196
|
+
const thread = yield* deps.db
|
|
197
|
+
.findOne(TABLES.THREAD, { id: ensureRecordId(params.context.threadId, TABLES.THREAD) }, ThreadSchema)
|
|
198
|
+
.pipe(
|
|
199
|
+
Effect.mapError(
|
|
200
|
+
(cause) =>
|
|
201
|
+
new AgentExecutorError({ operation: 'load-thread', message: 'Failed to load dispatched thread.', cause }),
|
|
202
|
+
),
|
|
203
|
+
Effect.withSpan('AgentExecutor.loadThread'),
|
|
204
|
+
)
|
|
207
205
|
if (!thread) {
|
|
208
206
|
return yield* new NotFoundError({
|
|
209
207
|
resource: TABLES.THREAD,
|
|
@@ -223,22 +221,34 @@ function createExecuteNode(deps: AgentExecutorDeps) {
|
|
|
223
221
|
const userName = params.context.userName ?? 'User'
|
|
224
222
|
const runtimeAdapters = yield* RuntimeAdaptersServiceTag
|
|
225
223
|
const { linearInstallation, githubInstallation, indexedRepoContext } = yield* Effect.all({
|
|
226
|
-
linearInstallation:
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
224
|
+
linearInstallation: Effect.tryPromise({
|
|
225
|
+
try: () => getLinearInstallationByOrgId(deps.agentFactoryConfig.pluginRuntime, organizationRef),
|
|
226
|
+
catch: (cause) =>
|
|
227
|
+
new AgentExecutorError({
|
|
228
|
+
operation: 'get-linear-installation',
|
|
229
|
+
message: `Failed to load Linear installation for org ${params.context.organizationId}.`,
|
|
230
|
+
cause,
|
|
231
|
+
}),
|
|
232
|
+
}),
|
|
233
|
+
githubInstallation: Effect.tryPromise({
|
|
234
|
+
try: () =>
|
|
235
235
|
getGithubInstallationForOrganization(deps.agentFactoryConfig.pluginRuntime, params.context.organizationId),
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
236
|
+
catch: (cause) =>
|
|
237
|
+
new AgentExecutorError({
|
|
238
|
+
operation: 'get-github-installation',
|
|
239
|
+
message: `Failed to load GitHub installation for org ${params.context.organizationId}.`,
|
|
240
|
+
cause,
|
|
241
|
+
}),
|
|
242
|
+
}),
|
|
243
|
+
indexedRepoContext: Effect.tryPromise({
|
|
244
|
+
try: () => buildIndexedRepositoriesContext(runtimeAdapters, params.context.organizationId),
|
|
245
|
+
catch: (cause) =>
|
|
246
|
+
new AgentExecutorError({
|
|
247
|
+
operation: 'build-indexed-repositories-context',
|
|
248
|
+
message: `Failed to build indexed repository context for org ${params.context.organizationId}.`,
|
|
249
|
+
cause,
|
|
250
|
+
}),
|
|
251
|
+
}),
|
|
242
252
|
}).pipe(Effect.withSpan('AgentExecutor.loadInstallations'))
|
|
243
253
|
|
|
244
254
|
const mode = params.executionMode ?? 'linear'
|
|
@@ -253,12 +263,12 @@ function createExecuteNode(deps: AgentExecutorDeps) {
|
|
|
253
263
|
]
|
|
254
264
|
|
|
255
265
|
const turnHooks = yield* TurnHooksServiceTag
|
|
256
|
-
const
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
(
|
|
260
|
-
|
|
261
|
-
|
|
266
|
+
const resolveAgent = turnHooks.resolveAgent
|
|
267
|
+
let agentResolutionValue: unknown = undefined
|
|
268
|
+
if (resolveAgent) {
|
|
269
|
+
agentResolutionValue = yield* Effect.tryPromise({
|
|
270
|
+
try: () =>
|
|
271
|
+
resolveAgent({
|
|
262
272
|
agentId,
|
|
263
273
|
mode: dispatchMode,
|
|
264
274
|
thread,
|
|
@@ -272,8 +282,14 @@ function createExecuteNode(deps: AgentExecutorDeps) {
|
|
|
272
282
|
additionalInstructionSections: dispatchInstructionSections,
|
|
273
283
|
context: null,
|
|
274
284
|
}),
|
|
275
|
-
)
|
|
276
|
-
|
|
285
|
+
catch: (cause) =>
|
|
286
|
+
new AgentExecutorError({
|
|
287
|
+
operation: 'resolve-agent',
|
|
288
|
+
message: `Failed to resolve agent "${agentId}" for dispatched execution.`,
|
|
289
|
+
cause,
|
|
290
|
+
}),
|
|
291
|
+
})
|
|
292
|
+
}
|
|
277
293
|
const agentResolution = isRecord(agentResolutionValue) ? agentResolutionValue : null
|
|
278
294
|
const resolvedAgentId = readOptionalString(agentResolution?.agentId) ?? agentId
|
|
279
295
|
const runtimeConfig = deps.agentFactoryConfig.getAgentRuntimeConfig({
|
|
@@ -290,32 +306,34 @@ function createExecuteNode(deps: AgentExecutorDeps) {
|
|
|
290
306
|
})
|
|
291
307
|
|
|
292
308
|
const agentFactoryConfig = deps.agentFactoryConfig
|
|
293
|
-
const rawTools = yield*
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
309
|
+
const rawTools = yield* Effect.tryPromise({
|
|
310
|
+
try: () =>
|
|
311
|
+
agentFactoryConfig.buildAgentTools({
|
|
312
|
+
agentId: resolvedAgentId,
|
|
313
|
+
orgId: organizationRef,
|
|
314
|
+
userId: userRef,
|
|
315
|
+
userName,
|
|
316
|
+
threadId: threadRef,
|
|
317
|
+
orgIdString: params.context.organizationId,
|
|
318
|
+
threadType: thread.type,
|
|
319
|
+
mode: dispatchMode,
|
|
320
|
+
linearInstalled: Boolean(linearInstallation),
|
|
321
|
+
onboardingActive: false,
|
|
322
|
+
githubInstalled: Boolean(githubInstallation),
|
|
323
|
+
provideRepoTool: indexedRepoContext.provideRepoTool,
|
|
324
|
+
defaultRepoSections: indexedRepoContext.defaultSectionsByAgent[resolvedAgentId],
|
|
325
|
+
memoryBlock: '',
|
|
326
|
+
onAppendMemoryBlock: () => undefined,
|
|
327
|
+
availableUploads: [],
|
|
328
|
+
includeExecutionPlanTools: false,
|
|
329
|
+
}),
|
|
330
|
+
catch: (cause) =>
|
|
331
|
+
new AgentExecutorError({
|
|
332
|
+
operation: 'build-agent-tools',
|
|
333
|
+
message: `Failed to build agent tools for "${resolvedAgentId}".`,
|
|
334
|
+
cause,
|
|
335
|
+
}),
|
|
336
|
+
})
|
|
319
337
|
const tools = applyToolPolicy(rawTools, params.nodeSpec)
|
|
320
338
|
|
|
321
339
|
const agentFactory = agentFactoryConfig.createAgent[resolvedAgentId]
|
|
@@ -335,11 +353,15 @@ function createExecuteNode(deps: AgentExecutorDeps) {
|
|
|
335
353
|
stopWhen: [stepCountIs(maxSteps)],
|
|
336
354
|
})
|
|
337
355
|
|
|
338
|
-
const result = yield*
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
356
|
+
const result = yield* Effect.tryPromise({
|
|
357
|
+
try: () => agent.generate({ prompt: buildDispatchPrompt(params.nodeSpec) }),
|
|
358
|
+
catch: (cause) =>
|
|
359
|
+
new AgentExecutorError({
|
|
360
|
+
operation: 'generate-agent-dispatch',
|
|
361
|
+
message: `Agent "${resolvedAgentId}" failed to generate a dispatch result.`,
|
|
362
|
+
cause,
|
|
363
|
+
}),
|
|
364
|
+
}).pipe(Effect.withSpan('AgentExecutor.generateLinearDispatch'))
|
|
343
365
|
const outputCandidate = PlanNodeResultSubmissionSchema.safeParse(result.output)
|
|
344
366
|
if (outputCandidate.success) {
|
|
345
367
|
return outputCandidate.data
|
|
@@ -365,6 +387,7 @@ function createExecuteNode(deps: AgentExecutorDeps) {
|
|
|
365
387
|
workspace,
|
|
366
388
|
writeIntentValidatorService: deps.writeIntentValidatorService,
|
|
367
389
|
stageWrite: (intent) => deps.nodeWorkspaceService.stageWrite(workspace, intent, 'validated'),
|
|
390
|
+
runPromise: deps.runPromise,
|
|
368
391
|
}),
|
|
369
392
|
}
|
|
370
393
|
const agent = agentFactory({
|
|
@@ -376,11 +399,15 @@ function createExecuteNode(deps: AgentExecutorDeps) {
|
|
|
376
399
|
stopWhen: [stepCountIs(maxSteps)],
|
|
377
400
|
})
|
|
378
401
|
|
|
379
|
-
yield*
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
402
|
+
yield* Effect.tryPromise({
|
|
403
|
+
try: () => agent.generate({ prompt: buildWriteIntentDispatchPrompt(params.nodeSpec) }),
|
|
404
|
+
catch: (cause) =>
|
|
405
|
+
new AgentExecutorError({
|
|
406
|
+
operation: 'generate-write-intent-dispatch',
|
|
407
|
+
message: `Agent "${resolvedAgentId}" failed to generate a write-intent dispatch result.`,
|
|
408
|
+
cause,
|
|
409
|
+
}),
|
|
410
|
+
}).pipe(Effect.withSpan('AgentExecutor.generateWriteIntentDispatch'))
|
|
384
411
|
|
|
385
412
|
const finalResult = yield* deps.nodeWorkspaceService.finalize(workspace)
|
|
386
413
|
|
|
@@ -411,6 +438,7 @@ interface AgentExecutorDeps {
|
|
|
411
438
|
db: SurrealDBService
|
|
412
439
|
nodeWorkspaceService: ReturnType<typeof makeNodeWorkspaceService>
|
|
413
440
|
writeIntentValidatorService: ReturnType<typeof makeWriteIntentValidatorService>
|
|
441
|
+
runPromise: <A, E>(effect: Effect.Effect<A, E, never>, options?: { signal?: AbortSignal }) => Promise<A>
|
|
414
442
|
}
|
|
415
443
|
|
|
416
444
|
export function makeAgentExecutorService(deps: AgentExecutorDeps) {
|
|
@@ -433,12 +461,14 @@ export const AgentExecutorServiceLive = Layer.effect(
|
|
|
433
461
|
const db = yield* DatabaseServiceTag
|
|
434
462
|
const nodeWorkspaceService = yield* NodeWorkspaceServiceTag
|
|
435
463
|
const writeIntentValidatorService = yield* WriteIntentValidatorServiceTag
|
|
464
|
+
const runtimeBridge = yield* RuntimeBridgeTag
|
|
436
465
|
return makeAgentExecutorService({
|
|
437
466
|
agentConfig,
|
|
438
467
|
agentFactoryConfig,
|
|
439
468
|
db,
|
|
440
469
|
nodeWorkspaceService,
|
|
441
470
|
writeIntentValidatorService,
|
|
471
|
+
runPromise: runtimeBridge.runPromise,
|
|
442
472
|
})
|
|
443
473
|
}),
|
|
444
474
|
)
|