@lota-sdk/core 0.4.13 → 0.4.15

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.
Files changed (139) hide show
  1. package/package.json +4 -4
  2. package/src/ai/embedding-cache.ts +17 -11
  3. package/src/ai-gateway/ai-gateway.ts +164 -94
  4. package/src/ai-gateway/index.ts +4 -1
  5. package/src/config/agent-defaults.ts +2 -2
  6. package/src/config/agent-types.ts +1 -1
  7. package/src/config/constants.ts +1 -1
  8. package/src/create-runtime.ts +259 -200
  9. package/src/db/cursor-pagination.ts +2 -9
  10. package/src/db/memory-store.ts +194 -175
  11. package/src/db/memory.ts +125 -71
  12. package/src/db/schema-fingerprint.ts +5 -4
  13. package/src/db/service-normalization.ts +4 -3
  14. package/src/db/service.ts +3 -2
  15. package/src/db/startup.ts +15 -16
  16. package/src/effect/errors.ts +161 -21
  17. package/src/effect/index.ts +0 -1
  18. package/src/embeddings/provider.ts +15 -7
  19. package/src/queues/autonomous-job.queue.ts +10 -22
  20. package/src/queues/delayed-node-promotion.queue.ts +8 -14
  21. package/src/queues/document-processor.queue.ts +13 -4
  22. package/src/queues/memory-consolidation.queue.ts +26 -14
  23. package/src/queues/plan-agent-heartbeat.queue.ts +48 -31
  24. package/src/queues/plan-scheduler.queue.ts +37 -15
  25. package/src/queues/queue-factory.ts +59 -35
  26. package/src/queues/standalone-worker.ts +3 -2
  27. package/src/redis/connection.ts +10 -3
  28. package/src/redis/org-memory-lock.ts +1 -1
  29. package/src/redis/redis-lease-lock.ts +5 -5
  30. package/src/redis/stream-context.ts +1 -1
  31. package/src/runtime/chat-message.ts +64 -1
  32. package/src/runtime/chat-run-orchestration.ts +33 -20
  33. package/src/runtime/context-compaction/context-compaction-runtime.ts +14 -7
  34. package/src/runtime/context-compaction/context-compaction.ts +78 -66
  35. package/src/runtime/domain-layer.ts +19 -13
  36. package/src/runtime/execution-plan.ts +7 -3
  37. package/src/runtime/memory/memory-block.ts +3 -9
  38. package/src/runtime/memory/memory-scope.ts +3 -1
  39. package/src/runtime/plugin-resolution.ts +2 -1
  40. package/src/runtime/post-turn-side-effects.ts +6 -5
  41. package/src/runtime/retrieval-adapters.ts +8 -20
  42. package/src/runtime/runtime-config.ts +3 -9
  43. package/src/runtime/runtime-extensions.ts +2 -4
  44. package/src/runtime/runtime-lifecycle.ts +56 -16
  45. package/src/runtime/runtime-services.ts +180 -102
  46. package/src/runtime/runtime-worker-registry.ts +3 -1
  47. package/src/runtime/social-chat/social-chat-agent-runner.ts +1 -1
  48. package/src/runtime/social-chat/social-chat-history.ts +21 -18
  49. package/src/runtime/social-chat/social-chat.ts +356 -223
  50. package/src/runtime/specialist-runner.ts +3 -1
  51. package/src/runtime/team-consultation/team-consultation-orchestrator.ts +3 -2
  52. package/src/runtime/thread-turn-context.ts +142 -102
  53. package/src/runtime/turn-lifecycle.ts +15 -46
  54. package/src/services/agent-activity.service.ts +1 -1
  55. package/src/services/agent-executor.service.ts +107 -77
  56. package/src/services/autonomous-job.service.ts +354 -293
  57. package/src/services/background-work.service.ts +3 -3
  58. package/src/services/context-compaction.service.ts +7 -2
  59. package/src/services/document-chunk.service.ts +50 -32
  60. package/src/services/execution-plan/execution-plan-schedule.ts +5 -3
  61. package/src/services/execution-plan/execution-plan.service.ts +162 -179
  62. package/src/services/feedback-loop.service.ts +5 -4
  63. package/src/services/graph-full-routing.ts +37 -36
  64. package/src/services/institutional-memory.service.ts +28 -30
  65. package/src/services/learned-skill.service.ts +107 -72
  66. package/src/services/memory/memory-errors.ts +4 -23
  67. package/src/services/memory/memory-org-memory.ts +10 -5
  68. package/src/services/memory/memory-rerank.ts +18 -6
  69. package/src/services/memory/memory.service.ts +170 -111
  70. package/src/services/memory/rerank.service.ts +29 -20
  71. package/src/services/organization-member.service.ts +1 -1
  72. package/src/services/organization.service.ts +69 -75
  73. package/src/services/ownership-dispatcher.service.ts +40 -39
  74. package/src/services/plan/plan-agent-heartbeat.service.ts +22 -24
  75. package/src/services/plan/plan-agent-query.service.ts +39 -31
  76. package/src/services/plan/plan-completion-side-effects.ts +13 -17
  77. package/src/services/plan/plan-coordination.service.ts +2 -1
  78. package/src/services/plan/plan-cycle.service.ts +6 -5
  79. package/src/services/plan/plan-deadline.service.ts +57 -54
  80. package/src/services/plan/plan-event-delivery.service.ts +5 -4
  81. package/src/services/plan/plan-executor-graph.ts +18 -15
  82. package/src/services/plan/plan-executor.service.ts +235 -262
  83. package/src/services/plan/plan-run.service.ts +169 -93
  84. package/src/services/plan/plan-scheduler.service.ts +192 -202
  85. package/src/services/plan/plan-template.service.ts +1 -1
  86. package/src/services/plan/plan-transaction-events.ts +1 -1
  87. package/src/services/plan/plan-workspace.service.ts +23 -14
  88. package/src/services/plugin-executor.service.ts +5 -9
  89. package/src/services/queue-job.service.ts +117 -59
  90. package/src/services/recent-activity-title.service.ts +13 -12
  91. package/src/services/recent-activity.service.ts +6 -1
  92. package/src/services/social-chat-history.service.ts +29 -25
  93. package/src/services/system-executor.service.ts +5 -9
  94. package/src/services/thread/thread-active-run.ts +2 -2
  95. package/src/services/thread/thread-listing.ts +61 -57
  96. package/src/services/thread/thread-memory-block.ts +73 -48
  97. package/src/services/thread/thread-message.service.ts +76 -65
  98. package/src/services/thread/thread-record-store.ts +8 -8
  99. package/src/services/thread/thread-title.service.ts +10 -4
  100. package/src/services/thread/thread-turn-execution.ts +43 -45
  101. package/src/services/thread/thread-turn-preparation.service.ts +257 -135
  102. package/src/services/thread/thread-turn-streaming.ts +83 -92
  103. package/src/services/thread/thread-turn.ts +18 -16
  104. package/src/services/thread/thread.service.ts +135 -100
  105. package/src/services/user.service.ts +45 -48
  106. package/src/storage/attachment-parser.ts +6 -2
  107. package/src/storage/attachment-storage.service.ts +5 -6
  108. package/src/storage/generated-document-storage.service.ts +1 -1
  109. package/src/system-agents/context-compaction.agent.ts +10 -9
  110. package/src/system-agents/delegated-agent-factory.ts +30 -6
  111. package/src/system-agents/memory-reranker.agent.ts +10 -9
  112. package/src/system-agents/memory.agent.ts +10 -9
  113. package/src/system-agents/recent-activity-title-refiner.agent.ts +13 -15
  114. package/src/system-agents/regular-chat-memory-digest.agent.ts +13 -12
  115. package/src/system-agents/skill-extractor.agent.ts +13 -12
  116. package/src/system-agents/skill-manager.agent.ts +13 -12
  117. package/src/system-agents/thread-router.agent.ts +11 -7
  118. package/src/system-agents/title-generator.agent.ts +13 -12
  119. package/src/tools/fetch-webpage.tool.ts +13 -13
  120. package/src/tools/memory-block.tool.ts +3 -1
  121. package/src/tools/plan-approval.tool.ts +4 -2
  122. package/src/tools/read-file-parts.tool.ts +10 -4
  123. package/src/tools/remember-memory.tool.ts +3 -1
  124. package/src/tools/research-topic.tool.ts +9 -5
  125. package/src/tools/search-web.tool.ts +16 -16
  126. package/src/tools/search.tool.ts +20 -5
  127. package/src/tools/team-think.tool.ts +61 -38
  128. package/src/utils/async.ts +5 -5
  129. package/src/utils/errors.ts +19 -18
  130. package/src/utils/sse-keepalive.ts +28 -25
  131. package/src/workers/bootstrap.ts +75 -11
  132. package/src/workers/memory-consolidation.worker.ts +82 -91
  133. package/src/workers/organization-learning.worker.ts +14 -4
  134. package/src/workers/regular-chat-memory-digest.runner.ts +105 -67
  135. package/src/workers/skill-extraction.runner.ts +97 -61
  136. package/src/workers/utils/repo-structure-extractor.ts +13 -8
  137. package/src/workers/utils/thread-message-query.ts +24 -24
  138. package/src/workers/worker-utils.ts +23 -4
  139. package/src/effect/helpers.ts +0 -123
@@ -6,7 +6,6 @@ import { Schema, Effect } from 'effect'
6
6
  import type { ResolvedAgentConfig } from '../../config/agent-defaults'
7
7
  import { aiLogger } from '../../config/logger'
8
8
  import type { RecordIdRef } from '../../db/record-id'
9
- import { effectTryMaybeAsync, effectTryPromise as effectTryPromiseShared } from '../../effect/helpers'
10
9
  import type { readRuntimeAgentIdentityOverrides } from '../../runtime/agent-identity-overrides'
11
10
  import { resolveRuntimeAgentDisplayName } from '../../runtime/agent-identity-overrides'
12
11
  import { OWNERSHIP_DISPATCH_BLOCKED_TOOL_NAMES } from '../../runtime/agent-runtime-policy'
@@ -68,7 +67,7 @@ interface VisibleAgentRunParams {
68
67
 
69
68
  interface VisibleAgentRunnerDeps<TBuildTurnToolParams> {
70
69
  agentConfig: ResolvedAgentConfig
71
- agentFactoryConfig: { buildAgentTools: (params: TBuildTurnToolParams) => Promise<ToolSet> | ToolSet }
70
+ agentFactoryConfig: { buildAgentTools: (params: TBuildTurnToolParams) => Promise<ToolSet> }
72
71
  buildTurnToolParams: (params: {
73
72
  agentId: string
74
73
  mode: 'direct' | 'fixedThreadMode' | 'threadMode'
@@ -101,19 +100,6 @@ export function createThreadTurnVisibleAgentRunner<TBuildTurnToolParams>(
101
100
  { message: Schema.String, cause: Schema.optional(Schema.Defect) },
102
101
  ) {}
103
102
 
104
- const effectTryPromise = <A, R = never>(
105
- evaluate: () => PromiseLike<A> | Effect.Effect<A, unknown, R>,
106
- message: string,
107
- ): Effect.Effect<A, ThreadTurnExecutionError, R> =>
108
- effectTryPromiseShared(evaluate, (error) => new ThreadTurnExecutionError({ message, cause: error }))
109
-
110
- function effectFromMaybePromise<A>(
111
- evaluate: () => A | PromiseLike<A>,
112
- message: string,
113
- ): Effect.Effect<A, ThreadTurnExecutionError> {
114
- return effectTryMaybeAsync(evaluate, (error) => new ThreadTurnExecutionError({ message, cause: error }))
115
- }
116
-
117
103
  const buildAgentMetadataPatch = (agentId: string, agentName: string): NonNullable<MessageMetadata> => ({
118
104
  agentId,
119
105
  agentName,
@@ -131,7 +117,8 @@ export function createThreadTurnVisibleAgentRunner<TBuildTurnToolParams>(
131
117
  )
132
118
 
133
119
  const createObserver = (agentId: string) => ({
134
- run: async <T>(fn: () => T | Promise<T>): Promise<T> => {
120
+ // @effect-diagnostics-next-line asyncFunction:off -- AI SDK observer callback signature.
121
+ run: async <T>(fn: () => Promise<T>): Promise<T> => {
135
122
  try {
136
123
  return await fn()
137
124
  } catch (error) {
@@ -204,8 +191,8 @@ export function createThreadTurnVisibleAgentRunner<TBuildTurnToolParams>(
204
191
  ) {
205
192
  let runMemoryBlock = deps.getMemoryBlock()
206
193
  const includeExecutionPlanTools = runParams.includeExecutionPlanTools ?? runParams.mode !== 'fixedThreadMode'
207
- const builtTools = yield* effectFromMaybePromise(
208
- () =>
194
+ const builtTools = yield* Effect.tryPromise({
195
+ try: () =>
209
196
  deps.agentFactoryConfig.buildAgentTools(
210
197
  deps.buildTurnToolParams({
211
198
  agentId: runParams.agentId,
@@ -219,27 +206,33 @@ export function createThreadTurnVisibleAgentRunner<TBuildTurnToolParams>(
219
206
  includeExecutionPlanTools,
220
207
  }),
221
208
  ),
222
- `Failed to build tools for ${runParams.agentId}.`,
223
- ).pipe(Effect.withSpan('ThreadTurnExecution.buildAgentTools'))
209
+ catch: (error) =>
210
+ new ThreadTurnExecutionError({ message: `Failed to build tools for ${runParams.agentId}.`, cause: error }),
211
+ }).pipe(Effect.withSpan('ThreadTurnExecution.buildAgentTools'))
224
212
  const rawTools = { ...builtTools, ...runParams.extraTools }
225
213
  const tools = runParams.filterTools ? runParams.filterTools(rawTools) : rawTools
226
214
  deps.streamCtx.memoryBlock = runMemoryBlock
227
215
  yield* failIfRunAborted()
228
- const responseMessage = yield* effectTryPromise(
229
- () =>
230
- streamAgentResponse(deps.streamCtx, {
231
- agentId: runParams.agentId,
232
- mode: runParams.mode,
233
- messages: deps.threadTurnMessageContext.buildRunInputMessages(runParams.extraMessages),
234
- tools,
235
- observer: createObserver(runParams.agentId),
236
- skills: runParams.skills,
237
- additionalInstructionSections: runParams.additionalInstructionSections,
238
- includeExecutionPlanTools,
239
- writer: deps.writer,
240
- }),
241
- `Failed to stream response for ${runParams.agentId}.`,
242
- ).pipe(Effect.withSpan('ThreadTurnExecution.streamVisibleAgent'))
216
+ const responseMessage = yield* streamAgentResponse(deps.streamCtx, {
217
+ agentId: runParams.agentId,
218
+ mode: runParams.mode,
219
+ messages: deps.threadTurnMessageContext.buildRunInputMessages(runParams.extraMessages),
220
+ tools,
221
+ observer: createObserver(runParams.agentId),
222
+ skills: runParams.skills,
223
+ additionalInstructionSections: runParams.additionalInstructionSections,
224
+ includeExecutionPlanTools,
225
+ writer: deps.writer,
226
+ }).pipe(
227
+ Effect.mapError(
228
+ (error) =>
229
+ new ThreadTurnExecutionError({
230
+ message: `Failed to stream response for ${runParams.agentId}.`,
231
+ cause: error,
232
+ }),
233
+ ),
234
+ Effect.withSpan('ThreadTurnExecution.streamVisibleAgent'),
235
+ )
243
236
  deps.setMemoryBlock(runMemoryBlock)
244
237
 
245
238
  // Commit the response under `uninterruptible` so a late lease-lost or
@@ -248,16 +241,21 @@ export function createThreadTurnVisibleAgentRunner<TBuildTurnToolParams>(
248
241
  // this, a race between stream completion and lease refresh rejection
249
242
  // swallows the response without any error trace.
250
243
  return yield* Effect.uninterruptible(
251
- effectTryPromise(
252
- () =>
253
- commitAssistantResponse(
254
- responseMessage,
255
- runParams.agentId,
256
- resolveRuntimeAgentDisplayName(deps.agentConfig, deps.agentIdentityOverrides, runParams.agentId),
257
- runParams.metadataPatch,
258
- ),
259
- `Failed to commit assistant response for ${runParams.agentId}.`,
260
- ).pipe(Effect.withSpan('ThreadTurnExecution.commitAssistantResponse')),
244
+ commitAssistantResponse(
245
+ responseMessage,
246
+ runParams.agentId,
247
+ resolveRuntimeAgentDisplayName(deps.agentConfig, deps.agentIdentityOverrides, runParams.agentId),
248
+ runParams.metadataPatch,
249
+ ).pipe(
250
+ Effect.mapError(
251
+ (error) =>
252
+ new ThreadTurnExecutionError({
253
+ message: `Failed to commit assistant response for ${runParams.agentId}.`,
254
+ cause: error,
255
+ }),
256
+ ),
257
+ Effect.withSpan('ThreadTurnExecution.commitAssistantResponse'),
258
+ ),
261
259
  )
262
260
  })
263
261