@superblocksteam/vite-plugin-file-sync 2.0.59-next.1 → 2.0.59-next.3

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 (279) hide show
  1. package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts.map +1 -1
  2. package/dist/ai-service/agent/prompts/build-base-system-prompt.js +10 -1
  3. package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
  4. package/dist/ai-service/agent/subagents/apis/examples.d.ts.map +1 -1
  5. package/dist/ai-service/agent/subagents/apis/examples.js +137 -10
  6. package/dist/ai-service/agent/subagents/apis/examples.js.map +1 -1
  7. package/dist/ai-service/agent/subagents/apis/static-analysis.d.ts.map +1 -1
  8. package/dist/ai-service/agent/subagents/apis/static-analysis.js +14 -7
  9. package/dist/ai-service/agent/subagents/apis/static-analysis.js.map +1 -1
  10. package/dist/ai-service/agent/tool-message-utils.d.ts.map +1 -1
  11. package/dist/ai-service/agent/tool-message-utils.js +6 -2
  12. package/dist/ai-service/agent/tool-message-utils.js.map +1 -1
  13. package/dist/ai-service/agent/tools/apis/analysis.d.ts +9 -0
  14. package/dist/ai-service/agent/tools/apis/analysis.d.ts.map +1 -0
  15. package/dist/ai-service/agent/tools/apis/analysis.js +357 -0
  16. package/dist/ai-service/agent/tools/apis/analysis.js.map +1 -0
  17. package/dist/ai-service/agent/{subagents → tools}/apis/api-executor.d.ts +35 -10
  18. package/dist/ai-service/agent/tools/apis/api-executor.d.ts.map +1 -0
  19. package/dist/ai-service/agent/{subagents → tools}/apis/api-executor.js +179 -94
  20. package/dist/ai-service/agent/tools/apis/api-executor.js.map +1 -0
  21. package/dist/ai-service/agent/tools/apis/api-source.d.ts +19 -0
  22. package/dist/ai-service/agent/tools/apis/api-source.d.ts.map +1 -0
  23. package/dist/ai-service/agent/tools/apis/api-source.js +73 -0
  24. package/dist/ai-service/agent/tools/apis/api-source.js.map +1 -0
  25. package/dist/ai-service/agent/tools/apis/api-validation-orchestrator.d.ts +51 -0
  26. package/dist/ai-service/agent/tools/apis/api-validation-orchestrator.d.ts.map +1 -0
  27. package/dist/ai-service/agent/tools/apis/api-validation-orchestrator.js +510 -0
  28. package/dist/ai-service/agent/tools/apis/api-validation-orchestrator.js.map +1 -0
  29. package/dist/ai-service/agent/tools/apis/build-api-artifact.d.ts +32 -0
  30. package/dist/ai-service/agent/tools/apis/build-api-artifact.d.ts.map +1 -0
  31. package/dist/ai-service/agent/tools/apis/build-api-artifact.js +313 -0
  32. package/dist/ai-service/agent/tools/apis/build-api-artifact.js.map +1 -0
  33. package/dist/ai-service/agent/tools/apis/build-api.d.ts +1 -10
  34. package/dist/ai-service/agent/tools/apis/build-api.d.ts.map +1 -1
  35. package/dist/ai-service/agent/tools/apis/build-api.js +26 -238
  36. package/dist/ai-service/agent/tools/apis/build-api.js.map +1 -1
  37. package/dist/ai-service/agent/tools/apis/get-api-docs.d.ts +11 -0
  38. package/dist/ai-service/agent/tools/apis/get-api-docs.d.ts.map +1 -0
  39. package/dist/ai-service/agent/tools/apis/get-api-docs.js +1809 -0
  40. package/dist/ai-service/agent/tools/apis/get-api-docs.js.map +1 -0
  41. package/dist/ai-service/agent/tools/apis/integration-types.d.ts +37 -0
  42. package/dist/ai-service/agent/tools/apis/integration-types.d.ts.map +1 -0
  43. package/dist/ai-service/agent/tools/apis/integration-types.js +697 -0
  44. package/dist/ai-service/agent/tools/apis/integration-types.js.map +1 -0
  45. package/dist/ai-service/agent/tools/apis/test-api.d.ts +25 -0
  46. package/dist/ai-service/agent/tools/apis/test-api.d.ts.map +1 -0
  47. package/dist/ai-service/agent/tools/apis/test-api.js +194 -0
  48. package/dist/ai-service/agent/tools/apis/test-api.js.map +1 -0
  49. package/dist/ai-service/agent/tools/apis/write-api.d.ts +11 -0
  50. package/dist/ai-service/agent/tools/apis/write-api.d.ts.map +1 -0
  51. package/dist/ai-service/agent/tools/apis/write-api.js +41 -0
  52. package/dist/ai-service/agent/tools/apis/write-api.js.map +1 -0
  53. package/dist/ai-service/agent/tools/build-read-files.js +2 -2
  54. package/dist/ai-service/agent/tools/build-read-files.js.map +1 -1
  55. package/dist/ai-service/agent/tools.d.ts +2 -5
  56. package/dist/ai-service/agent/tools.d.ts.map +1 -1
  57. package/dist/ai-service/agent/tools.js +51 -22
  58. package/dist/ai-service/agent/tools.js.map +1 -1
  59. package/dist/ai-service/agent/tools2/access-control.d.ts +1 -0
  60. package/dist/ai-service/agent/tools2/access-control.d.ts.map +1 -1
  61. package/dist/ai-service/agent/tools2/access-control.js +15 -13
  62. package/dist/ai-service/agent/tools2/access-control.js.map +1 -1
  63. package/dist/ai-service/agent/tools2/registry.d.ts +2 -1
  64. package/dist/ai-service/agent/tools2/registry.d.ts.map +1 -1
  65. package/dist/ai-service/agent/tools2/registry.js +4 -3
  66. package/dist/ai-service/agent/tools2/registry.js.map +1 -1
  67. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts +2 -1
  68. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts.map +1 -1
  69. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js +103 -88
  70. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js.map +1 -1
  71. package/dist/ai-service/agent/tools2/tools/grep-metadata.d.ts.map +1 -1
  72. package/dist/ai-service/agent/tools2/tools/grep-metadata.js +25 -4
  73. package/dist/ai-service/agent/tools2/tools/grep-metadata.js.map +1 -1
  74. package/dist/ai-service/agent/tools2/types.d.ts +1 -1
  75. package/dist/ai-service/agent/tools2/types.d.ts.map +1 -1
  76. package/dist/ai-service/agent/tools2/types.js.map +1 -1
  77. package/dist/ai-service/agent/tools2/utils.d.ts.map +1 -1
  78. package/dist/ai-service/agent/tools2/utils.js +4 -1
  79. package/dist/ai-service/agent/tools2/utils.js.map +1 -1
  80. package/dist/ai-service/agent/utils.d.ts +1 -3
  81. package/dist/ai-service/agent/utils.d.ts.map +1 -1
  82. package/dist/ai-service/agent/utils.js +44 -4
  83. package/dist/ai-service/agent/utils.js.map +1 -1
  84. package/dist/ai-service/app-interface/shell.d.ts +5 -0
  85. package/dist/ai-service/app-interface/shell.d.ts.map +1 -1
  86. package/dist/ai-service/app-interface/shell.js +17 -2
  87. package/dist/ai-service/app-interface/shell.js.map +1 -1
  88. package/dist/ai-service/chat/chat-session-store.d.ts +7 -0
  89. package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
  90. package/dist/ai-service/chat/chat-session-store.js +26 -0
  91. package/dist/ai-service/chat/chat-session-store.js.map +1 -1
  92. package/dist/ai-service/const.d.ts +2 -1
  93. package/dist/ai-service/const.d.ts.map +1 -1
  94. package/dist/ai-service/const.js +1 -0
  95. package/dist/ai-service/const.js.map +1 -1
  96. package/dist/ai-service/index.d.ts +5 -1
  97. package/dist/ai-service/index.d.ts.map +1 -1
  98. package/dist/ai-service/index.js +55 -7
  99. package/dist/ai-service/index.js.map +1 -1
  100. package/dist/ai-service/integrations/metadata-storage/index.d.ts +10 -0
  101. package/dist/ai-service/integrations/metadata-storage/index.d.ts.map +1 -1
  102. package/dist/ai-service/integrations/metadata-storage/local.d.ts +4 -2
  103. package/dist/ai-service/integrations/metadata-storage/local.d.ts.map +1 -1
  104. package/dist/ai-service/integrations/metadata-storage/local.js +35 -9
  105. package/dist/ai-service/integrations/metadata-storage/local.js.map +1 -1
  106. package/dist/ai-service/integrations/store.d.ts +27 -2
  107. package/dist/ai-service/integrations/store.d.ts.map +1 -1
  108. package/dist/ai-service/integrations/store.js +129 -62
  109. package/dist/ai-service/integrations/store.js.map +1 -1
  110. package/dist/ai-service/llm/client.d.ts +123 -0
  111. package/dist/ai-service/llm/client.d.ts.map +1 -0
  112. package/dist/ai-service/llm/client.js +168 -0
  113. package/dist/ai-service/llm/client.js.map +1 -0
  114. package/dist/ai-service/llm/context/context-handle.d.ts +4 -4
  115. package/dist/ai-service/llm/context/context-handle.d.ts.map +1 -1
  116. package/dist/ai-service/llm/context/context-handle.js +7 -3
  117. package/dist/ai-service/llm/context/context-handle.js.map +1 -1
  118. package/dist/ai-service/llm/context/context.d.ts +28 -0
  119. package/dist/ai-service/llm/context/context.d.ts.map +1 -1
  120. package/dist/ai-service/llm/context/context.js +117 -0
  121. package/dist/ai-service/llm/context/context.js.map +1 -1
  122. package/dist/ai-service/llm/context/manager.d.ts +22 -2
  123. package/dist/ai-service/llm/context/manager.d.ts.map +1 -1
  124. package/dist/ai-service/llm/context/manager.js +86 -13
  125. package/dist/ai-service/llm/context/manager.js.map +1 -1
  126. package/dist/ai-service/llm/context/storage/index.d.ts +1 -0
  127. package/dist/ai-service/llm/context/storage/index.d.ts.map +1 -1
  128. package/dist/ai-service/llm/context/storage/local.d.ts +1 -0
  129. package/dist/ai-service/llm/context/storage/local.d.ts.map +1 -1
  130. package/dist/ai-service/llm/context/storage/local.js +13 -1
  131. package/dist/ai-service/llm/context/storage/local.js.map +1 -1
  132. package/dist/ai-service/llm/error.d.ts +14 -4
  133. package/dist/ai-service/llm/error.d.ts.map +1 -1
  134. package/dist/ai-service/llm/error.js +49 -4
  135. package/dist/ai-service/llm/error.js.map +1 -1
  136. package/dist/ai-service/llm/interaction/adapters/vercel.d.ts +67 -0
  137. package/dist/ai-service/llm/interaction/adapters/vercel.d.ts.map +1 -0
  138. package/dist/ai-service/llm/interaction/adapters/vercel.js +110 -0
  139. package/dist/ai-service/llm/interaction/adapters/vercel.js.map +1 -0
  140. package/dist/ai-service/llm/interaction/compose.d.ts +71 -0
  141. package/dist/ai-service/llm/interaction/compose.d.ts.map +1 -0
  142. package/dist/ai-service/llm/interaction/compose.js +88 -0
  143. package/dist/ai-service/llm/interaction/compose.js.map +1 -0
  144. package/dist/ai-service/llm/interaction/index.d.ts +68 -0
  145. package/dist/ai-service/llm/interaction/index.d.ts.map +1 -0
  146. package/dist/ai-service/llm/interaction/index.js +70 -0
  147. package/dist/ai-service/llm/interaction/index.js.map +1 -0
  148. package/dist/ai-service/llm/interaction/middleware.d.ts +52 -0
  149. package/dist/ai-service/llm/interaction/middleware.d.ts.map +1 -0
  150. package/dist/ai-service/llm/interaction/middleware.js +17 -0
  151. package/dist/ai-service/llm/interaction/middleware.js.map +1 -0
  152. package/dist/ai-service/llm/interaction/middlewares/llmobs.d.ts +45 -0
  153. package/dist/ai-service/llm/interaction/middlewares/llmobs.d.ts.map +1 -0
  154. package/dist/ai-service/llm/interaction/middlewares/llmobs.js +85 -0
  155. package/dist/ai-service/llm/interaction/middlewares/llmobs.js.map +1 -0
  156. package/dist/ai-service/llm/interaction/middlewares/logging.d.ts +88 -0
  157. package/dist/ai-service/llm/interaction/middlewares/logging.d.ts.map +1 -0
  158. package/dist/ai-service/llm/interaction/middlewares/logging.js +238 -0
  159. package/dist/ai-service/llm/interaction/middlewares/logging.js.map +1 -0
  160. package/dist/ai-service/llm/interaction/middlewares/profiler.d.ts +47 -0
  161. package/dist/ai-service/llm/interaction/middlewares/profiler.d.ts.map +1 -0
  162. package/dist/ai-service/llm/interaction/middlewares/profiler.js +183 -0
  163. package/dist/ai-service/llm/interaction/middlewares/profiler.js.map +1 -0
  164. package/dist/ai-service/llm/interaction/middlewares/stream-retry.d.ts +121 -0
  165. package/dist/ai-service/llm/interaction/middlewares/stream-retry.d.ts.map +1 -0
  166. package/dist/ai-service/llm/interaction/middlewares/stream-retry.js +291 -0
  167. package/dist/ai-service/llm/interaction/middlewares/stream-retry.js.map +1 -0
  168. package/dist/ai-service/llm/interaction/provider.d.ts +158 -0
  169. package/dist/ai-service/llm/interaction/provider.d.ts.map +1 -0
  170. package/dist/ai-service/llm/interaction/provider.js +15 -0
  171. package/dist/ai-service/llm/interaction/provider.js.map +1 -0
  172. package/dist/ai-service/llm/interaction/stream-lifecycle.d.ts +48 -0
  173. package/dist/ai-service/llm/interaction/stream-lifecycle.d.ts.map +1 -0
  174. package/dist/ai-service/llm/interaction/stream-lifecycle.js +131 -0
  175. package/dist/ai-service/llm/interaction/stream-lifecycle.js.map +1 -0
  176. package/dist/ai-service/llm/provider.d.ts +1 -2
  177. package/dist/ai-service/llm/provider.d.ts.map +1 -1
  178. package/dist/ai-service/llm/provider.js +3 -6
  179. package/dist/ai-service/llm/provider.js.map +1 -1
  180. package/dist/ai-service/llmobs/helpers.d.ts +7 -8
  181. package/dist/ai-service/llmobs/helpers.d.ts.map +1 -1
  182. package/dist/ai-service/llmobs/helpers.js +8 -48
  183. package/dist/ai-service/llmobs/helpers.js.map +1 -1
  184. package/dist/ai-service/llmobs/middleware/stream-text.d.ts +19 -21
  185. package/dist/ai-service/llmobs/middleware/stream-text.d.ts.map +1 -1
  186. package/dist/ai-service/llmobs/middleware/stream-text.js +98 -106
  187. package/dist/ai-service/llmobs/middleware/stream-text.js.map +1 -1
  188. package/dist/ai-service/llmobs/types.d.ts +14 -1
  189. package/dist/ai-service/llmobs/types.d.ts.map +1 -1
  190. package/dist/ai-service/state-machine/clark-fsm.d.ts +75 -5
  191. package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
  192. package/dist/ai-service/state-machine/clark-fsm.js +100 -0
  193. package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
  194. package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -1
  195. package/dist/ai-service/state-machine/handlers/agent-planning.js +4 -0
  196. package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
  197. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
  198. package/dist/ai-service/state-machine/handlers/llm-generating.js +91 -456
  199. package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
  200. package/dist/ai-service/state-machine/handlers/runtime-reviewing.js +1 -1
  201. package/dist/ai-service/state-machine/handlers/runtime-reviewing.js.map +1 -1
  202. package/dist/ai-service/state-machine/helpers/peer.d.ts.map +1 -1
  203. package/dist/ai-service/state-machine/helpers/peer.js +15 -0
  204. package/dist/ai-service/state-machine/helpers/peer.js.map +1 -1
  205. package/dist/ai-service/state-machine/mocks.d.ts.map +1 -1
  206. package/dist/ai-service/state-machine/mocks.js +1 -0
  207. package/dist/ai-service/state-machine/mocks.js.map +1 -1
  208. package/dist/ai-service/template-renderer.js +1 -1
  209. package/dist/ai-service/template-renderer.js.map +1 -1
  210. package/dist/ai-service/types.d.ts +30 -0
  211. package/dist/ai-service/types.d.ts.map +1 -1
  212. package/dist/binding-extraction/extract-identifiers.d.ts +14 -0
  213. package/dist/binding-extraction/extract-identifiers.d.ts.map +1 -1
  214. package/dist/binding-extraction/extract-identifiers.js +46 -1
  215. package/dist/binding-extraction/extract-identifiers.js.map +1 -1
  216. package/dist/binding-extraction/js-identifiers.d.ts +14 -0
  217. package/dist/binding-extraction/js-identifiers.d.ts.map +1 -1
  218. package/dist/binding-extraction/js-identifiers.js +168 -0
  219. package/dist/binding-extraction/js-identifiers.js.map +1 -1
  220. package/dist/binding-extraction/python-identifiers.d.ts +5 -0
  221. package/dist/binding-extraction/python-identifiers.d.ts.map +1 -1
  222. package/dist/binding-extraction/python-identifiers.js +76 -7
  223. package/dist/binding-extraction/python-identifiers.js.map +1 -1
  224. package/dist/file-sync-vite-plugin.d.ts.map +1 -1
  225. package/dist/file-sync-vite-plugin.js +73 -3
  226. package/dist/file-sync-vite-plugin.js.map +1 -1
  227. package/dist/file-system-manager.d.ts.map +1 -1
  228. package/dist/file-system-manager.js +6 -4
  229. package/dist/file-system-manager.js.map +1 -1
  230. package/dist/index.d.ts +1 -1
  231. package/dist/index.d.ts.map +1 -1
  232. package/dist/index.js +1 -1
  233. package/dist/index.js.map +1 -1
  234. package/dist/lock-service/activity-tracker.d.ts +14 -2
  235. package/dist/lock-service/activity-tracker.d.ts.map +1 -1
  236. package/dist/lock-service/activity-tracker.js +43 -6
  237. package/dist/lock-service/activity-tracker.js.map +1 -1
  238. package/dist/lock-service/index.d.ts +13 -2
  239. package/dist/lock-service/index.d.ts.map +1 -1
  240. package/dist/lock-service/index.js +130 -44
  241. package/dist/lock-service/index.js.map +1 -1
  242. package/dist/parsing/jsx.d.ts.map +1 -1
  243. package/dist/parsing/jsx.js +78 -66
  244. package/dist/parsing/jsx.js.map +1 -1
  245. package/dist/socket-manager.js +1 -1
  246. package/dist/socket-manager.js.map +1 -1
  247. package/dist/sync-service/list-dir.d.ts.map +1 -1
  248. package/dist/sync-service/list-dir.js +41 -18
  249. package/dist/sync-service/list-dir.js.map +1 -1
  250. package/dist/vite-plugin-yaml-types.d.ts.map +1 -1
  251. package/dist/vite-plugin-yaml-types.js +2 -4
  252. package/dist/vite-plugin-yaml-types.js.map +1 -1
  253. package/package.json +7 -7
  254. package/dist/ai-service/agent/subagents/apis/api-executor.d.ts.map +0 -1
  255. package/dist/ai-service/agent/subagents/apis/api-executor.js.map +0 -1
  256. package/dist/ai-service/agent/subagents/apis/context.d.ts +0 -12
  257. package/dist/ai-service/agent/subagents/apis/context.d.ts.map +0 -1
  258. package/dist/ai-service/agent/subagents/apis/context.js +0 -18
  259. package/dist/ai-service/agent/subagents/apis/context.js.map +0 -1
  260. package/dist/ai-service/agent/subagents/apis/generate-api-source.d.ts +0 -40
  261. package/dist/ai-service/agent/subagents/apis/generate-api-source.d.ts.map +0 -1
  262. package/dist/ai-service/agent/subagents/apis/generate-api-source.js +0 -516
  263. package/dist/ai-service/agent/subagents/apis/generate-api-source.js.map +0 -1
  264. package/dist/ai-service/agent/subagents/apis/state.d.ts +0 -49
  265. package/dist/ai-service/agent/subagents/apis/state.d.ts.map +0 -1
  266. package/dist/ai-service/agent/subagents/apis/state.js +0 -25
  267. package/dist/ai-service/agent/subagents/apis/state.js.map +0 -1
  268. package/dist/ai-service/agent/subagents/apis/system-prompt.d.ts +0 -3
  269. package/dist/ai-service/agent/subagents/apis/system-prompt.d.ts.map +0 -1
  270. package/dist/ai-service/agent/subagents/apis/system-prompt.js +0 -1704
  271. package/dist/ai-service/agent/subagents/apis/system-prompt.js.map +0 -1
  272. package/dist/ai-service/agent/tools/apis/finalize-api.d.ts +0 -11
  273. package/dist/ai-service/agent/tools/apis/finalize-api.d.ts.map +0 -1
  274. package/dist/ai-service/agent/tools/apis/finalize-api.js +0 -133
  275. package/dist/ai-service/agent/tools/apis/finalize-api.js.map +0 -1
  276. package/dist/ai-service/llm/middleware/retry.d.ts +0 -112
  277. package/dist/ai-service/llm/middleware/retry.d.ts.map +0 -1
  278. package/dist/ai-service/llm/middleware/retry.js +0 -239
  279. package/dist/ai-service/llm/middleware/retry.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/ai-service/integrations/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/ai-service/integrations/store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * High-level LLM client with integrated middleware support.
3
+ *
4
+ * This client provides a streamText interface that automatically handles:
5
+ * - Context management (conversation history and locking)
6
+ * - Automatic retry on transient failures (with fresh state on each retry)
7
+ * - Logging middleware (logs to artifacts)
8
+ * - Token tracking (optional)
9
+ * - LLMObs middleware (tracing and observability)
10
+ *
11
+ * The client can be used anywhere in the codebase (FSM handlers, subagents, etc.)
12
+ * and provides consistent LLM interaction patterns with proper resource management.
13
+ */
14
+ import { LLMObsTracer } from "../llmobs/tracer.js";
15
+ import { type LoggingMiddlewareOptions } from "./interaction/middlewares/logging.js";
16
+ import type { AcquireContextOptions } from "./context/context-handle.js";
17
+ import type { ContextManager } from "./context/manager.js";
18
+ import type { ContextId, ContextOptions } from "./context/types.js";
19
+ import type { StreamTextOptions, StreamTextResult, StreamTextProvider } from "./interaction/provider.js";
20
+ import type { Tool } from "../agent/tools2/types.js";
21
+ import type { AppShell } from "../app-interface/shell.js";
22
+ import type { LanguageModel, ModelMessage } from "ai";
23
+ /**
24
+ * Options for LLMClient.streamText().
25
+ */
26
+ export interface LLMClientStreamTextOptions<TOOLS extends Record<string, Tool>> extends Omit<StreamTextOptions<TOOLS>, "messages"> {
27
+ /** Language model to use */
28
+ model: LanguageModel;
29
+ /**
30
+ * Context configuration for managing conversation history.
31
+ *
32
+ * If contextId is omitted, an ephemeral context is used.
33
+ * The context is automatically acquired and released around the LLM call.
34
+ * It can be seeded with initial messages and configured with options.
35
+ */
36
+ context?: {
37
+ /** Context identifier for persistent conversation history (omit for ephemeral context) */
38
+ contextId?: ContextId;
39
+ /** Optional messages to initialize context with (useful for forking or custom history) */
40
+ messages?: ModelMessage[];
41
+ /** Owner identifier (auto-generated if not provided) */
42
+ ownerId?: string;
43
+ /** Context configuration options */
44
+ contextOptions?: ContextOptions;
45
+ /** Acquisition options (timeouts, retries) */
46
+ acquireOptions?: AcquireContextOptions;
47
+ };
48
+ /**
49
+ * Logging configuration. Set to false to disable logging.
50
+ */
51
+ logging?: {
52
+ /** Unique identifier for this conversation */
53
+ conversationId?: string;
54
+ /** Optional log reference for external access to log content */
55
+ logRef?: LoggingMiddlewareOptions["logRef"];
56
+ /** Optional additional metadata to log */
57
+ metadata?: LoggingMiddlewareOptions["metadata"];
58
+ } | false;
59
+ }
60
+ /**
61
+ * High-level LLM client with integrated middleware and context management.
62
+ *
63
+ * @example
64
+ * ```typescript
65
+ * const llmClient = new LLMClient(contextManager, appShell);
66
+ *
67
+ * // Ephemeral context (no contextId)
68
+ * await llmClient.streamText({
69
+ * model: anthropic('claude-3-5-sonnet'),
70
+ * user: { role: "user", content: "Hello!" }
71
+ * });
72
+ *
73
+ * // Ephemeral context with custom messages
74
+ * await llmClient.streamText({
75
+ * model,
76
+ * user: { role: "user", content: "Continue" },
77
+ * context: {
78
+ * messages: [
79
+ * { role: "user", content: "Previous question" },
80
+ * { role: "assistant", content: "Previous answer" }
81
+ * ]
82
+ * }
83
+ * });
84
+ *
85
+ * // Persistent context
86
+ * const result = await llmClient.streamText({
87
+ * model: anthropic('claude-3-5-sonnet'),
88
+ * user: { role: "user", content: "Hello!" },
89
+ * context: { contextId: { appId, userId, name: "main" } },
90
+ * logging: { conversationId: "conv-123", runTimestamp: Date.now().toString() }
91
+ * });
92
+ *
93
+ * for await (const text of result.textStream) {
94
+ * console.log(text);
95
+ * }
96
+ * // Context automatically released, log automatically saved
97
+ *
98
+ * // With external logRef for accessing logs during streaming
99
+ * const logRef = { content: "" };
100
+ * await llmClient.streamText({
101
+ * model,
102
+ * user: { role: "user", content: "Hello!" },
103
+ * logging: {
104
+ * conversationId: "conv-123",
105
+ * logRef // Access logs via logRef.content during streaming
106
+ * }
107
+ * });
108
+ * ```
109
+ */
110
+ export declare class LLMClient {
111
+ private readonly contextManager;
112
+ private readonly appShell;
113
+ private readonly baseProvider;
114
+ constructor(contextManager: ContextManager, appShell: AppShell, baseProvider?: StreamTextProvider);
115
+ /**
116
+ * Streams text from an LLM with automatic context and middleware management.
117
+ *
118
+ * @param options - Stream options including model, messages, tools, context config, etc.
119
+ * @returns Promise resolving to stream result
120
+ */
121
+ streamText<TOOLS extends Record<string, Tool>>(options: LLMClientStreamTextOptions<TOOLS>, logger?: import("../../util/logger.js").Logger, tracer?: LLMObsTracer): Promise<StreamTextResult<TOOLS>>;
122
+ }
123
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/ai-service/llm/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAInD,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,sCAAsC,CAAC;AAE9C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAsB,YAAY,EAAE,MAAM,IAAI,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,0BAA0B,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAC5E,SAAQ,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAClD,4BAA4B;IAC5B,KAAK,EAAE,aAAa,CAAC;IAErB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE;QACR,0FAA0F;QAC1F,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,0FAA0F;QAC1F,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;QAC1B,wDAAwD;QACxD,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,oCAAoC;QACpC,cAAc,CAAC,EAAE,cAAc,CAAC;QAChC,8CAA8C;QAC9C,cAAc,CAAC,EAAE,qBAAqB,CAAC;KACxC,CAAC;IAEF;;OAEG;IACH,OAAO,CAAC,EACJ;QACE,8CAA8C;QAC9C,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,gEAAgE;QAChE,MAAM,CAAC,EAAE,wBAAwB,CAAC,QAAQ,CAAC,CAAC;QAC5C,0CAA0C;QAC1C,QAAQ,CAAC,EAAE,wBAAwB,CAAC,UAAU,CAAC,CAAC;KACjD,GACD,KAAK,CAAC;CACX;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,qBAAa,SAAS;IAElB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAFZ,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,QAAQ,EAClB,YAAY,GAAE,kBAA2C;IAG5E;;;;;OAKG;IACG,UAAU,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EACjD,OAAO,EAAE,0BAA0B,CAAC,KAAK,CAAC,EAC1C,MAAM,wCAAc,EACpB,MAAM,eAAwB,GAC7B,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;CAoHpC"}
@@ -0,0 +1,168 @@
1
+ /**
2
+ * High-level LLM client with integrated middleware support.
3
+ *
4
+ * This client provides a streamText interface that automatically handles:
5
+ * - Context management (conversation history and locking)
6
+ * - Automatic retry on transient failures (with fresh state on each retry)
7
+ * - Logging middleware (logs to artifacts)
8
+ * - Token tracking (optional)
9
+ * - LLMObs middleware (tracing and observability)
10
+ *
11
+ * The client can be used anywhere in the codebase (FSM handlers, subagents, etc.)
12
+ * and provides consistent LLM interaction patterns with proper resource management.
13
+ */
14
+ import { getLogger } from "../../util/logger.js";
15
+ import { LLMObsTracer } from "../llmobs/tracer.js";
16
+ import { createVercelProvider } from "./interaction/adapters/vercel.js";
17
+ import { applyMiddleware } from "./interaction/compose.js";
18
+ import { createLLMObsMiddleware } from "./interaction/middlewares/llmobs.js";
19
+ import { createLoggingMiddleware, } from "./interaction/middlewares/logging.js";
20
+ import { createStreamRetryMiddleware } from "./interaction/middlewares/stream-retry.js";
21
+ /**
22
+ * High-level LLM client with integrated middleware and context management.
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * const llmClient = new LLMClient(contextManager, appShell);
27
+ *
28
+ * // Ephemeral context (no contextId)
29
+ * await llmClient.streamText({
30
+ * model: anthropic('claude-3-5-sonnet'),
31
+ * user: { role: "user", content: "Hello!" }
32
+ * });
33
+ *
34
+ * // Ephemeral context with custom messages
35
+ * await llmClient.streamText({
36
+ * model,
37
+ * user: { role: "user", content: "Continue" },
38
+ * context: {
39
+ * messages: [
40
+ * { role: "user", content: "Previous question" },
41
+ * { role: "assistant", content: "Previous answer" }
42
+ * ]
43
+ * }
44
+ * });
45
+ *
46
+ * // Persistent context
47
+ * const result = await llmClient.streamText({
48
+ * model: anthropic('claude-3-5-sonnet'),
49
+ * user: { role: "user", content: "Hello!" },
50
+ * context: { contextId: { appId, userId, name: "main" } },
51
+ * logging: { conversationId: "conv-123", runTimestamp: Date.now().toString() }
52
+ * });
53
+ *
54
+ * for await (const text of result.textStream) {
55
+ * console.log(text);
56
+ * }
57
+ * // Context automatically released, log automatically saved
58
+ *
59
+ * // With external logRef for accessing logs during streaming
60
+ * const logRef = { content: "" };
61
+ * await llmClient.streamText({
62
+ * model,
63
+ * user: { role: "user", content: "Hello!" },
64
+ * logging: {
65
+ * conversationId: "conv-123",
66
+ * logRef // Access logs via logRef.content during streaming
67
+ * }
68
+ * });
69
+ * ```
70
+ */
71
+ export class LLMClient {
72
+ contextManager;
73
+ appShell;
74
+ baseProvider;
75
+ constructor(contextManager, appShell, baseProvider = createVercelProvider()) {
76
+ this.contextManager = contextManager;
77
+ this.appShell = appShell;
78
+ this.baseProvider = baseProvider;
79
+ }
80
+ /**
81
+ * Streams text from an LLM with automatic context and middleware management.
82
+ *
83
+ * @param options - Stream options including model, messages, tools, context config, etc.
84
+ * @returns Promise resolving to stream result
85
+ */
86
+ async streamText(options, logger = getLogger(), tracer = LLMObsTracer.instance) {
87
+ const { model, user, system, context: contextConfig, logging: loggingConfig, prepareStep, onStepFinish, onFinish, onFinally, ...streamOptions } = options;
88
+ // Validate user is provided
89
+ if (!user) {
90
+ throw new Error("user message is required");
91
+ }
92
+ // Extract context parameters
93
+ const contextId = contextConfig?.contextId;
94
+ const ownerId = contextConfig?.ownerId ??
95
+ (contextId
96
+ ? `llmclient-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`
97
+ : `ephemeral-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`);
98
+ // Acquire context lock (undefined contextId creates ephemeral context)
99
+ const contextHandle = await this.contextManager.acquireContext(contextId, ownerId, {
100
+ contextOptions: contextConfig?.contextOptions,
101
+ acquireOptions: contextConfig?.acquireOptions,
102
+ });
103
+ try {
104
+ const ctx = contextHandle.context;
105
+ // Initialize context with custom messages if provided
106
+ if (contextConfig?.messages) {
107
+ ctx.initializeWith(contextConfig.messages);
108
+ }
109
+ // Set system prompt if provided (overrides any in messages array)
110
+ if (system) {
111
+ const systemMsg = {
112
+ role: "system",
113
+ content: system,
114
+ };
115
+ ctx.setSystemPrompt(systemMsg);
116
+ }
117
+ // Start turn with user message
118
+ ctx.startTurn(user);
119
+ // Build middleware stack
120
+ const middlewares = [];
121
+ if (loggingConfig !== false && loggingConfig) {
122
+ middlewares.push(createLoggingMiddleware({
123
+ conversationId: loggingConfig.conversationId,
124
+ saveArtifact: this.appShell.saveGeneratedArtifact.bind(this.appShell),
125
+ logRef: loggingConfig.logRef,
126
+ metadata: loggingConfig.metadata,
127
+ }));
128
+ }
129
+ middlewares.push(createStreamRetryMiddleware({
130
+ maxTotalRetryTimeMs: 2 * 60 * 1000, // 2 minutes
131
+ logger: getLogger(),
132
+ }));
133
+ middlewares.push(createLLMObsMiddleware({ tracer, logger }));
134
+ // Compose all middlewares
135
+ const provider = applyMiddleware(this.baseProvider, ...middlewares);
136
+ // Call streamText with injected lifecycle hooks for context management
137
+ const result = await provider.streamText({
138
+ ...streamOptions,
139
+ model,
140
+ messages: ctx.getMessages(),
141
+ prepareStep: async (step) => {
142
+ ctx.startStep();
143
+ step = { ...step, messages: ctx.getMessages() };
144
+ return prepareStep?.(step) ?? step;
145
+ },
146
+ onStepFinish: async (stepResult) => {
147
+ ctx.endStep(stepResult.response.messages, stepResult.usage);
148
+ return onStepFinish?.(stepResult);
149
+ },
150
+ onFinish: async (finalResult) => {
151
+ ctx.endTurn(finalResult.usage);
152
+ return onFinish?.(finalResult);
153
+ },
154
+ onFinally: async () => {
155
+ contextHandle.release();
156
+ return onFinally?.();
157
+ },
158
+ });
159
+ return result;
160
+ }
161
+ catch (error) {
162
+ // Release context on error before stream starts
163
+ contextHandle.release();
164
+ throw error;
165
+ }
166
+ }
167
+ }
168
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/ai-service/llm/client.ts"],"names":[],"mappings":"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"}
@@ -36,8 +36,8 @@ import type { ContextId } from "./types.js";
36
36
  export declare class ContextHandle {
37
37
  /** The context instance */
38
38
  readonly context: Context;
39
- /** The ID of the context */
40
- readonly contextId: ContextId;
39
+ /** The ID of the context (undefined for ephemeral contexts) */
40
+ readonly contextId: ContextId | undefined;
41
41
  /** The owner ID holding this handle */
42
42
  readonly ownerId: string;
43
43
  /** The lock manager to release the lock */
@@ -46,8 +46,8 @@ export declare class ContextHandle {
46
46
  constructor(
47
47
  /** The context instance */
48
48
  context: Context,
49
- /** The ID of the context */
50
- contextId: ContextId,
49
+ /** The ID of the context (undefined for ephemeral contexts) */
50
+ contextId: ContextId | undefined,
51
51
  /** The owner ID holding this handle */
52
52
  ownerId: string,
53
53
  /** The lock manager to release the lock */
@@ -1 +1 @@
1
- {"version":3,"file":"context-handle.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/context/context-handle.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,aAAa;IAItB,2BAA2B;aACX,OAAO,EAAE,OAAO;IAChC,4BAA4B;aACZ,SAAS,EAAE,SAAS;IACpC,uCAAuC;aACvB,OAAO,EAAE,MAAM;IAC/B,2CAA2C;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW;IAV9B,OAAO,CAAC,SAAS,CAAS;;IAGxB,2BAA2B;IACX,OAAO,EAAE,OAAO;IAChC,4BAA4B;IACZ,SAAS,EAAE,SAAS;IACpC,uCAAuC;IACvB,OAAO,EAAE,MAAM;IAC/B,2CAA2C;IAC1B,WAAW,EAAE,kBAAkB;IAGlD;;OAEG;IACH,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;;;;OAKG;IACH,OAAO,IAAI,IAAI;IASf;;;;OAIG;IACH,WAAW,IAAI,IAAI;IAQnB;;;OAGG;IACG,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5C;;;OAGG;IACH,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;CAGzB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,wDAAwD;IACxD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+CAA+C;IAC/C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wDAAwD;IACxD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,kBAAkB,EAC/B,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,OAAO,CAAC,CAsClB"}
1
+ {"version":3,"file":"context-handle.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/context/context-handle.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,aAAa;IAItB,2BAA2B;aACX,OAAO,EAAE,OAAO;IAChC,+DAA+D;aAC/C,SAAS,EAAE,SAAS,GAAG,SAAS;IAChD,uCAAuC;aACvB,OAAO,EAAE,MAAM;IAC/B,2CAA2C;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW;IAV9B,OAAO,CAAC,SAAS,CAAS;;IAGxB,2BAA2B;IACX,OAAO,EAAE,OAAO;IAChC,+DAA+D;IAC/C,SAAS,EAAE,SAAS,GAAG,SAAS;IAChD,uCAAuC;IACvB,OAAO,EAAE,MAAM;IAC/B,2CAA2C;IAC1B,WAAW,EAAE,kBAAkB;IAGlD;;OAEG;IACH,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;;;;OAKG;IACH,OAAO,IAAI,IAAI;IAYf;;;;OAIG;IACH,WAAW,IAAI,IAAI;IASnB;;;OAGG;IACG,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5C;;;OAGG;IACH,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;CAGzB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,wDAAwD;IACxD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+CAA+C;IAC/C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wDAAwD;IACxD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,kBAAkB,EAC/B,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,OAAO,CAAC,CAsClB"}
@@ -39,7 +39,7 @@ export class ContextHandle {
39
39
  constructor(
40
40
  /** The context instance */
41
41
  context,
42
- /** The ID of the context */
42
+ /** The ID of the context (undefined for ephemeral contexts) */
43
43
  contextId,
44
44
  /** The owner ID holding this handle */
45
45
  ownerId,
@@ -67,7 +67,10 @@ export class ContextHandle {
67
67
  return;
68
68
  }
69
69
  this._released = true;
70
- this.lockManager.release(this.contextId, this.ownerId);
70
+ // Only release lock for persistent contexts (ephemeral ones don't have locks)
71
+ if (this.contextId) {
72
+ this.lockManager.release(this.contextId, this.ownerId);
73
+ }
71
74
  }
72
75
  /**
73
76
  * Ensures the handle is still valid for use.
@@ -76,7 +79,8 @@ export class ContextHandle {
76
79
  */
77
80
  ensureValid() {
78
81
  if (this._released) {
79
- throw new Error(`Context handle for '${this.contextId.name}' has been released and cannot be used`);
82
+ const contextName = this.contextId?.name ?? "ephemeral";
83
+ throw new Error(`Context handle for '${contextName}' has been released and cannot be used`);
80
84
  }
81
85
  }
82
86
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"context-handle.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/context/context-handle.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,OAAO,aAAa;IAKN;IAEA;IAEA;IAEC;IAVX,SAAS,GAAG,KAAK,CAAC;IAE1B;IACE,2BAA2B;IACX,OAAgB;IAChC,4BAA4B;IACZ,SAAoB;IACpC,uCAAuC;IACvB,OAAe;IAC/B,2CAA2C;IAC1B,WAA+B;QANhC,YAAO,GAAP,OAAO,CAAS;QAEhB,cAAS,GAAT,SAAS,CAAW;QAEpB,YAAO,GAAP,OAAO,CAAQ;QAEd,gBAAW,GAAX,WAAW,CAAoB;IAC/C,CAAC;IAEJ;;OAEG;IACH,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;;;OAKG;IACH,OAAO;QACL,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC;IAED;;;;OAIG;IACH,WAAW;QACT,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,uBAAuB,IAAI,CAAC,SAAS,CAAC,IAAI,wCAAwC,CACnF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;QACzB,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,CAAC,MAAM,CAAC,OAAO,CAAC;QACd,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;CACF;AAgBD;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,WAA+B,EAC/B,SAAoB,EACpB,OAAe,EACf,UAAiC,EAAE;IAEnC,MAAM,EACJ,aAAa,GAAG,CAAC,EACjB,aAAa,EACb,eAAe,GAAG,GAAG,EACrB,KAAK,GAAG,KAAK,GACd,GAAG,OAAO,CAAC;IAEZ,MAAM,QAAQ,GAAG,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpE,OAAO,IAAI,EAAE,CAAC;QACZ,0BAA0B;QAC1B,MAAM,QAAQ,GAAG,KAAK;YACpB,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE;gBACtC,KAAK,EAAE,IAAI;gBACX,SAAS,EAAE,aAAa;aACzB,CAAC;YACJ,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,EAAE;gBACzC,SAAS,EAAE,aAAa;aACzB,CAAC,CAAC;QAEP,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QAED,2CAA2C;QAC3C,IAAI,QAAQ,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;YAC3C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,mEAAmE;QACnE,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,uBAAuB;QACvB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC;IACvE,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"context-handle.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/context/context-handle.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,OAAO,aAAa;IAKN;IAEA;IAEA;IAEC;IAVX,SAAS,GAAG,KAAK,CAAC;IAE1B;IACE,2BAA2B;IACX,OAAgB;IAChC,+DAA+D;IAC/C,SAAgC;IAChD,uCAAuC;IACvB,OAAe;IAC/B,2CAA2C;IAC1B,WAA+B;QANhC,YAAO,GAAP,OAAO,CAAS;QAEhB,cAAS,GAAT,SAAS,CAAuB;QAEhC,YAAO,GAAP,OAAO,CAAQ;QAEd,gBAAW,GAAX,WAAW,CAAoB;IAC/C,CAAC;IAEJ;;OAEG;IACH,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;;;OAKG;IACH,OAAO;QACL,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,8EAA8E;QAC9E,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,WAAW;QACT,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,WAAW,CAAC;YACxD,MAAM,IAAI,KAAK,CACb,uBAAuB,WAAW,wCAAwC,CAC3E,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;QACzB,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,CAAC,MAAM,CAAC,OAAO,CAAC;QACd,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;CACF;AAgBD;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,WAA+B,EAC/B,SAAoB,EACpB,OAAe,EACf,UAAiC,EAAE;IAEnC,MAAM,EACJ,aAAa,GAAG,CAAC,EACjB,aAAa,EACb,eAAe,GAAG,GAAG,EACrB,KAAK,GAAG,KAAK,GACd,GAAG,OAAO,CAAC;IAEZ,MAAM,QAAQ,GAAG,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpE,OAAO,IAAI,EAAE,CAAC;QACZ,0BAA0B;QAC1B,MAAM,QAAQ,GAAG,KAAK;YACpB,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE;gBACtC,KAAK,EAAE,IAAI;gBACX,SAAS,EAAE,aAAa;aACzB,CAAC;YACJ,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,EAAE;gBACzC,SAAS,EAAE,aAAa;aACzB,CAAC,CAAC;QAEP,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QAED,2CAA2C;QAC3C,IAAI,QAAQ,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;YAC3C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,mEAAmE;QACnE,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,uBAAuB;QACvB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC;IACvE,CAAC;AACH,CAAC"}
@@ -52,6 +52,30 @@ export declare class Context {
52
52
  * Seed empty context with a summary message.
53
53
  */
54
54
  seedIfEmpty(summary: UserModelMessage): void;
55
+ /**
56
+ * Initializes the context with a list of existing messages.
57
+ *
58
+ * This method is useful for creating ephemeral contexts with custom message
59
+ * history (e.g., forking a conversation or starting with a specific context).
60
+ * Messages are tokenized and stored as L1 turns for full detail preservation.
61
+ *
62
+ * Note: This does NOT start a new turn - call startTurn() separately with
63
+ * the new user message.
64
+ *
65
+ * @param messages - Array of messages to initialize the context with
66
+ * @throws {ContextLimitExceededError} If messages exceed maxTokens and allowOverflow is false
67
+ *
68
+ * @example
69
+ * ```typescript
70
+ * const ctx = await contextManager.acquireContext(undefined, "ephemeral-123");
71
+ * ctx.initializeWith([
72
+ * { role: "user", content: "Previous question" },
73
+ * { role: "assistant", content: "Previous answer" }
74
+ * ]);
75
+ * ctx.startTurn({ role: "user", content: "New question" });
76
+ * ```
77
+ */
78
+ initializeWith(messages: ModelMessage[]): void;
55
79
  /**
56
80
  * Returns all messages in order (system + L3 + L2 + L1).
57
81
  *
@@ -103,6 +127,10 @@ export declare class Context {
103
127
  startTurn(user: UserModelMessage): void;
104
128
  /**
105
129
  * Starts a new step within the active turn.
130
+ *
131
+ * This method is idempotent: if the last step is empty (from a failed attempt),
132
+ * it reuses that step instead of creating a new one. This ensures retry scenarios
133
+ * work correctly without accumulating empty step arrays.
106
134
  */
107
135
  startStep(): void;
108
136
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/context/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/context/context.ts"],"names":[],"mappings":"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"}
@@ -124,6 +124,111 @@ let Context = (() => {
124
124
  }
125
125
  this.l3Turns.push(new L3Turn(this.withTokenCount(summary)));
126
126
  }
127
+ /**
128
+ * Initializes the context with a list of existing messages.
129
+ *
130
+ * This method is useful for creating ephemeral contexts with custom message
131
+ * history (e.g., forking a conversation or starting with a specific context).
132
+ * Messages are tokenized and stored as L1 turns for full detail preservation.
133
+ *
134
+ * Note: This does NOT start a new turn - call startTurn() separately with
135
+ * the new user message.
136
+ *
137
+ * @param messages - Array of messages to initialize the context with
138
+ * @throws {ContextLimitExceededError} If messages exceed maxTokens and allowOverflow is false
139
+ *
140
+ * @example
141
+ * ```typescript
142
+ * const ctx = await contextManager.acquireContext(undefined, "ephemeral-123");
143
+ * ctx.initializeWith([
144
+ * { role: "user", content: "Previous question" },
145
+ * { role: "assistant", content: "Previous answer" }
146
+ * ]);
147
+ * ctx.startTurn({ role: "user", content: "New question" });
148
+ * ```
149
+ */
150
+ initializeWith(messages) {
151
+ if (this.turnMessages.length > 0) {
152
+ this.logger.warn("initializeWith called on non-empty context - this will append to existing history");
153
+ }
154
+ let state = "awaiting-user";
155
+ let currentTurn = null;
156
+ let currentStep = [];
157
+ const finishStep = () => {
158
+ if (currentStep.length > 0 && currentTurn) {
159
+ currentTurn.steps.push(currentStep);
160
+ currentStep = [];
161
+ }
162
+ };
163
+ const finishTurn = () => {
164
+ finishStep();
165
+ if (currentTurn) {
166
+ this.l1Turns.push(currentTurn);
167
+ currentTurn = null;
168
+ }
169
+ };
170
+ for (const message of messages) {
171
+ if (message.role === "user") {
172
+ // User message starts a new turn
173
+ finishTurn();
174
+ const tokenizedUser = this.withTokenCount(message);
175
+ currentTurn = new L1Turn(tokenizedUser);
176
+ state = "awaiting-assistant";
177
+ }
178
+ else if (message.role === "assistant") {
179
+ // Assistant message behavior depends on state
180
+ if (!currentTurn) {
181
+ this.logger.warn("Found assistant message without preceding user message - skipping");
182
+ continue;
183
+ }
184
+ if (state === "in-step") {
185
+ // We've seen tool results, so finish current step before continuing
186
+ // This creates a new empty currentStep array
187
+ finishStep();
188
+ }
189
+ // Add this assistant message to currentStep (which is now empty if we just called finishStep)
190
+ const tokenizedMsg = this.withTokenCount(message);
191
+ currentStep.push(tokenizedMsg);
192
+ state = "awaiting-assistant"; // Waiting for tool results or next assistant
193
+ }
194
+ else {
195
+ // Tool result message - add to current step
196
+ if (!currentTurn) {
197
+ this.logger.warn("Found tool message without preceding user message - skipping");
198
+ continue;
199
+ }
200
+ if (state === "awaiting-assistant" || state === "in-step") {
201
+ const tokenizedMsg = this.withTokenCount(message);
202
+ currentStep.push(tokenizedMsg);
203
+ state = "in-step"; // Mark that we have tool results in this step
204
+ }
205
+ }
206
+ // Ignore system messages - they should be set via setSystemPrompt()
207
+ }
208
+ // Finish final turn
209
+ finishTurn();
210
+ // Validate total tokens don't exceed limit
211
+ const totalTokens = this.tokenCount;
212
+ if (totalTokens > this.options.maxTokens) {
213
+ this.logger.warn(`Initialized messages exceed maxTokens: ${totalTokens} > ${this.options.maxTokens}`);
214
+ if (!this.options.allowOverflow) {
215
+ const info = {
216
+ currentTokens: totalTokens,
217
+ maxTokens: this.options.maxTokens,
218
+ breakdown: {
219
+ system: this.systemPromptTokenCount,
220
+ user: 0,
221
+ activeStep: 0,
222
+ history: totalTokens - this.systemPromptTokenCount,
223
+ },
224
+ };
225
+ throw new ContextLimitExceededError(info);
226
+ }
227
+ }
228
+ // Compact if needed
229
+ this.compactIfNeeded();
230
+ this.printState({ message: "initializeWith" });
231
+ }
127
232
  /**
128
233
  * Returns all messages in order (system + L3 + L2 + L1).
129
234
  *
@@ -276,11 +381,23 @@ let Context = (() => {
276
381
  }
277
382
  /**
278
383
  * Starts a new step within the active turn.
384
+ *
385
+ * This method is idempotent: if the last step is empty (from a failed attempt),
386
+ * it reuses that step instead of creating a new one. This ensures retry scenarios
387
+ * work correctly without accumulating empty step arrays.
279
388
  */
280
389
  startStep() {
281
390
  if (!this.activeTurn) {
282
391
  throw new Error("No active turn to start a step in.");
283
392
  }
393
+ // Check if last step is empty (from a failed/retried attempt)
394
+ const steps = this.activeTurn.steps;
395
+ const lastStep = steps[steps.length - 1];
396
+ if (lastStep && lastStep.length === 0) {
397
+ // Reuse empty step for retry - this makes startStep() idempotent
398
+ this.logger.debug("Reusing empty step for retry");
399
+ return;
400
+ }
284
401
  this.logger.info(`Starting new step in active turn`);
285
402
  if (this.tokenCount > this.options.maxTokens) {
286
403
  this.onContextLimitExceeded();