@superblocksteam/vite-plugin-file-sync 2.0.77 → 2.0.78-next.1

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 (307) 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 +26 -0
  3. package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
  4. package/dist/ai-service/agent/tool-message-utils.d.ts.map +1 -1
  5. package/dist/ai-service/agent/tool-message-utils.js +13 -0
  6. package/dist/ai-service/agent/tool-message-utils.js.map +1 -1
  7. package/dist/ai-service/agent/tools/apis/api-executor.d.ts.map +1 -1
  8. package/dist/ai-service/agent/tools/apis/api-executor.js +102 -7
  9. package/dist/ai-service/agent/tools/apis/api-executor.js.map +1 -1
  10. package/dist/ai-service/agent/tools/apis/build-api-artifact.d.ts +17 -0
  11. package/dist/ai-service/agent/tools/apis/build-api-artifact.d.ts.map +1 -1
  12. package/dist/ai-service/agent/tools/apis/build-api-artifact.js +20 -12
  13. package/dist/ai-service/agent/tools/apis/build-api-artifact.js.map +1 -1
  14. package/dist/ai-service/agent/tools/apis/build-api.d.ts.map +1 -1
  15. package/dist/ai-service/agent/tools/apis/build-api.js +9 -1
  16. package/dist/ai-service/agent/tools/apis/build-api.js.map +1 -1
  17. package/dist/ai-service/agent/tools/apis/get-api-docs.d.ts +46 -0
  18. package/dist/ai-service/agent/tools/apis/get-api-docs.d.ts.map +1 -1
  19. package/dist/ai-service/agent/tools/apis/get-api-docs.js +326 -58
  20. package/dist/ai-service/agent/tools/apis/get-api-docs.js.map +1 -1
  21. package/dist/ai-service/agent/tools/apis/integration-types.d.ts +20 -1
  22. package/dist/ai-service/agent/tools/apis/integration-types.d.ts.map +1 -1
  23. package/dist/ai-service/agent/tools/apis/integration-types.js +1033 -288
  24. package/dist/ai-service/agent/tools/apis/integration-types.js.map +1 -1
  25. package/dist/ai-service/agent/tools/apis/test-api.d.ts +1 -1
  26. package/dist/ai-service/agent/tools/apis/write-api.d.ts +2 -2
  27. package/dist/ai-service/agent/tools/build-manage-checklist.d.ts +1 -1
  28. package/dist/ai-service/agent/tools/build-read-file.d.ts +1 -1
  29. package/dist/ai-service/agent/tools/integrations/execute-request.d.ts +1 -1
  30. package/dist/ai-service/agent/tools/integrations/metadata.js +1 -1
  31. package/dist/ai-service/agent/tools/integrations/metadata.js.map +1 -1
  32. package/dist/ai-service/agent/tools.d.ts.map +1 -1
  33. package/dist/ai-service/agent/tools.js +18 -10
  34. package/dist/ai-service/agent/tools.js.map +1 -1
  35. package/dist/ai-service/agent/tools2/tools/ask-multi-choice.d.ts.map +1 -1
  36. package/dist/ai-service/agent/tools2/tools/ask-multi-choice.js +11 -7
  37. package/dist/ai-service/agent/tools2/tools/ask-multi-choice.js.map +1 -1
  38. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts.map +1 -1
  39. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js +27 -5
  40. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js.map +1 -1
  41. package/dist/ai-service/agent/tools2/tools/grep-metadata-ripgrep.d.ts.map +1 -1
  42. package/dist/ai-service/agent/tools2/tools/grep-metadata-ripgrep.js +78 -7
  43. package/dist/ai-service/agent/tools2/tools/grep-metadata-ripgrep.js.map +1 -1
  44. package/dist/ai-service/agent/tools2/tools/grep-metadata.d.ts +6 -2
  45. package/dist/ai-service/agent/tools2/tools/grep-metadata.d.ts.map +1 -1
  46. package/dist/ai-service/agent/tools2/tools/grep-metadata.js +26 -0
  47. package/dist/ai-service/agent/tools2/tools/grep-metadata.js.map +1 -1
  48. package/dist/ai-service/agent/tools2/tools/index.d.ts +2 -0
  49. package/dist/ai-service/agent/tools2/tools/index.d.ts.map +1 -1
  50. package/dist/ai-service/agent/tools2/tools/index.js +2 -0
  51. package/dist/ai-service/agent/tools2/tools/index.js.map +1 -1
  52. package/dist/ai-service/agent/tools2/tools/list-attachments.d.ts.map +1 -1
  53. package/dist/ai-service/agent/tools2/tools/list-attachments.js +2 -3
  54. package/dist/ai-service/agent/tools2/tools/list-attachments.js.map +1 -1
  55. package/dist/ai-service/agent/tools2/tools/start-test-run.d.ts.map +1 -1
  56. package/dist/ai-service/agent/tools2/tools/start-test-run.js +51 -6
  57. package/dist/ai-service/agent/tools2/tools/start-test-run.js.map +1 -1
  58. package/dist/ai-service/agent/tools2/tools/web-fetch.d.ts +28 -0
  59. package/dist/ai-service/agent/tools2/tools/web-fetch.d.ts.map +1 -0
  60. package/dist/ai-service/agent/tools2/tools/web-fetch.js +274 -0
  61. package/dist/ai-service/agent/tools2/tools/web-fetch.js.map +1 -0
  62. package/dist/ai-service/agent/tools2/tools/web-search.d.ts +25 -0
  63. package/dist/ai-service/agent/tools2/tools/web-search.d.ts.map +1 -0
  64. package/dist/ai-service/agent/tools2/tools/web-search.js +210 -0
  65. package/dist/ai-service/agent/tools2/tools/web-search.js.map +1 -0
  66. package/dist/ai-service/attachments/store.d.ts +4 -4
  67. package/dist/ai-service/attachments/store.d.ts.map +1 -1
  68. package/dist/ai-service/attachments/store.js.map +1 -1
  69. package/dist/ai-service/chat/chat-session-store.d.ts +19 -4
  70. package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
  71. package/dist/ai-service/chat/chat-session-store.js +32 -6
  72. package/dist/ai-service/chat/chat-session-store.js.map +1 -1
  73. package/dist/ai-service/clark-provider/clark-language-model.d.ts.map +1 -1
  74. package/dist/ai-service/clark-provider/clark-language-model.js +11 -2
  75. package/dist/ai-service/clark-provider/clark-language-model.js.map +1 -1
  76. package/dist/ai-service/const.d.ts +3 -2
  77. package/dist/ai-service/const.d.ts.map +1 -1
  78. package/dist/ai-service/const.js +3 -2
  79. package/dist/ai-service/const.js.map +1 -1
  80. package/dist/ai-service/context-download.d.ts +4 -1
  81. package/dist/ai-service/context-download.d.ts.map +1 -1
  82. package/dist/ai-service/context-download.js +36 -7
  83. package/dist/ai-service/context-download.js.map +1 -1
  84. package/dist/ai-service/features.d.ts +8 -0
  85. package/dist/ai-service/features.d.ts.map +1 -1
  86. package/dist/ai-service/features.js +8 -0
  87. package/dist/ai-service/features.js.map +1 -1
  88. package/dist/ai-service/index.d.ts +1 -0
  89. package/dist/ai-service/index.d.ts.map +1 -1
  90. package/dist/ai-service/index.js +101 -18
  91. package/dist/ai-service/index.js.map +1 -1
  92. package/dist/ai-service/integrations/store.d.ts +14 -2
  93. package/dist/ai-service/integrations/store.d.ts.map +1 -1
  94. package/dist/ai-service/integrations/store.js +19 -2
  95. package/dist/ai-service/integrations/store.js.map +1 -1
  96. package/dist/ai-service/judge/judge-eval-service-runner.d.ts.map +1 -1
  97. package/dist/ai-service/judge/judge-eval-service-runner.js +7 -0
  98. package/dist/ai-service/judge/judge-eval-service-runner.js.map +1 -1
  99. package/dist/ai-service/llm/client.d.ts +29 -11
  100. package/dist/ai-service/llm/client.d.ts.map +1 -1
  101. package/dist/ai-service/llm/client.js +95 -78
  102. package/dist/ai-service/llm/client.js.map +1 -1
  103. package/dist/ai-service/llm/context/context.d.ts +2 -1
  104. package/dist/ai-service/llm/context/context.d.ts.map +1 -1
  105. package/dist/ai-service/llm/context/context.js.map +1 -1
  106. package/dist/ai-service/llm/context/conversation-context.d.ts +89 -0
  107. package/dist/ai-service/llm/context/conversation-context.d.ts.map +1 -0
  108. package/dist/ai-service/llm/context/conversation-context.js +13 -0
  109. package/dist/ai-service/llm/context/conversation-context.js.map +1 -0
  110. package/dist/ai-service/llm/context/index.d.ts +1 -0
  111. package/dist/ai-service/llm/context/index.d.ts.map +1 -1
  112. package/dist/ai-service/llm/context/utils/get-loaded-context.d.ts +12 -0
  113. package/dist/ai-service/llm/context/utils/get-loaded-context.d.ts.map +1 -0
  114. package/dist/ai-service/llm/context/utils/get-loaded-context.js +7 -0
  115. package/dist/ai-service/llm/context/utils/get-loaded-context.js.map +1 -0
  116. package/dist/ai-service/llm/context/utils/index.d.ts +1 -5
  117. package/dist/ai-service/llm/context/utils/index.d.ts.map +1 -1
  118. package/dist/ai-service/llm/context/utils/index.js +1 -5
  119. package/dist/ai-service/llm/context/utils/index.js.map +1 -1
  120. package/dist/ai-service/llm/context-v2/adapter.d.ts +26 -0
  121. package/dist/ai-service/llm/context-v2/adapter.d.ts.map +1 -0
  122. package/dist/ai-service/llm/context-v2/adapter.js +88 -0
  123. package/dist/ai-service/llm/context-v2/adapter.js.map +1 -0
  124. package/dist/ai-service/llm/context-v2/caching.d.ts +39 -0
  125. package/dist/ai-service/llm/context-v2/caching.d.ts.map +1 -0
  126. package/dist/ai-service/llm/context-v2/caching.js +48 -0
  127. package/dist/ai-service/llm/context-v2/caching.js.map +1 -0
  128. package/dist/ai-service/llm/context-v2/compactor.d.ts +16 -0
  129. package/dist/ai-service/llm/context-v2/compactor.d.ts.map +1 -0
  130. package/dist/ai-service/llm/context-v2/compactor.js +164 -0
  131. package/dist/ai-service/llm/context-v2/compactor.js.map +1 -0
  132. package/dist/ai-service/llm/context-v2/config.d.ts +6 -0
  133. package/dist/ai-service/llm/context-v2/config.d.ts.map +1 -0
  134. package/dist/ai-service/llm/context-v2/config.js +8 -0
  135. package/dist/ai-service/llm/context-v2/config.js.map +1 -0
  136. package/dist/ai-service/llm/context-v2/context.d.ts +61 -0
  137. package/dist/ai-service/llm/context-v2/context.d.ts.map +1 -0
  138. package/dist/ai-service/llm/context-v2/context.js +238 -0
  139. package/dist/ai-service/llm/context-v2/context.js.map +1 -0
  140. package/dist/ai-service/llm/context-v2/index.d.ts +16 -0
  141. package/dist/ai-service/llm/context-v2/index.d.ts.map +1 -0
  142. package/dist/ai-service/llm/context-v2/index.js +16 -0
  143. package/dist/ai-service/llm/context-v2/index.js.map +1 -0
  144. package/dist/ai-service/llm/context-v2/manager.d.ts +57 -0
  145. package/dist/ai-service/llm/context-v2/manager.d.ts.map +1 -0
  146. package/dist/ai-service/llm/context-v2/manager.js +129 -0
  147. package/dist/ai-service/llm/context-v2/manager.js.map +1 -0
  148. package/dist/ai-service/llm/context-v2/migrations/index.d.ts +8 -0
  149. package/dist/ai-service/llm/context-v2/migrations/index.d.ts.map +1 -0
  150. package/dist/ai-service/llm/context-v2/migrations/index.js +8 -0
  151. package/dist/ai-service/llm/context-v2/migrations/index.js.map +1 -0
  152. package/dist/ai-service/llm/context-v2/migrations/registry.d.ts +19 -0
  153. package/dist/ai-service/llm/context-v2/migrations/registry.d.ts.map +1 -0
  154. package/dist/ai-service/llm/context-v2/migrations/registry.js +32 -0
  155. package/dist/ai-service/llm/context-v2/migrations/registry.js.map +1 -0
  156. package/dist/ai-service/llm/context-v2/migrations/runner.d.ts +3 -0
  157. package/dist/ai-service/llm/context-v2/migrations/runner.d.ts.map +1 -0
  158. package/dist/ai-service/llm/context-v2/migrations/runner.js +61 -0
  159. package/dist/ai-service/llm/context-v2/migrations/runner.js.map +1 -0
  160. package/dist/ai-service/llm/context-v2/migrations/types.d.ts +22 -0
  161. package/dist/ai-service/llm/context-v2/migrations/types.d.ts.map +1 -0
  162. package/dist/ai-service/llm/context-v2/migrations/types.js +33 -0
  163. package/dist/ai-service/llm/context-v2/migrations/types.js.map +1 -0
  164. package/dist/ai-service/llm/context-v2/migrations/v1-to-v2.d.ts +29 -0
  165. package/dist/ai-service/llm/context-v2/migrations/v1-to-v2.d.ts.map +1 -0
  166. package/dist/ai-service/llm/context-v2/migrations/v1-to-v2.js +143 -0
  167. package/dist/ai-service/llm/context-v2/migrations/v1-to-v2.js.map +1 -0
  168. package/dist/ai-service/llm/context-v2/operation-queue.d.ts +9 -0
  169. package/dist/ai-service/llm/context-v2/operation-queue.d.ts.map +1 -0
  170. package/dist/ai-service/llm/context-v2/operation-queue.js +13 -0
  171. package/dist/ai-service/llm/context-v2/operation-queue.js.map +1 -0
  172. package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.d.ts +16 -0
  173. package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.d.ts.map +1 -0
  174. package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.js +135 -0
  175. package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.js.map +1 -0
  176. package/dist/ai-service/llm/context-v2/phase2-session-summarizer.d.ts +20 -0
  177. package/dist/ai-service/llm/context-v2/phase2-session-summarizer.d.ts.map +1 -0
  178. package/dist/ai-service/llm/context-v2/phase2-session-summarizer.js +213 -0
  179. package/dist/ai-service/llm/context-v2/phase2-session-summarizer.js.map +1 -0
  180. package/dist/ai-service/llm/context-v2/prompts/compaction.d.ts +11 -0
  181. package/dist/ai-service/llm/context-v2/prompts/compaction.d.ts.map +1 -0
  182. package/dist/ai-service/llm/context-v2/prompts/compaction.js +57 -0
  183. package/dist/ai-service/llm/context-v2/prompts/compaction.js.map +1 -0
  184. package/dist/ai-service/llm/context-v2/session-capture.d.ts +18 -0
  185. package/dist/ai-service/llm/context-v2/session-capture.d.ts.map +1 -0
  186. package/dist/ai-service/llm/context-v2/session-capture.js +64 -0
  187. package/dist/ai-service/llm/context-v2/session-capture.js.map +1 -0
  188. package/dist/ai-service/llm/context-v2/storage/index.d.ts +14 -0
  189. package/dist/ai-service/llm/context-v2/storage/index.d.ts.map +1 -0
  190. package/dist/ai-service/llm/context-v2/storage/index.js +2 -0
  191. package/dist/ai-service/llm/context-v2/storage/index.js.map +1 -0
  192. package/dist/ai-service/llm/context-v2/storage/local.d.ts +25 -0
  193. package/dist/ai-service/llm/context-v2/storage/local.d.ts.map +1 -0
  194. package/dist/ai-service/llm/context-v2/storage/local.js +71 -0
  195. package/dist/ai-service/llm/context-v2/storage/local.js.map +1 -0
  196. package/dist/ai-service/llm/context-v2/storage/types.d.ts +12 -0
  197. package/dist/ai-service/llm/context-v2/storage/types.d.ts.map +1 -0
  198. package/dist/ai-service/llm/context-v2/storage/types.js +2 -0
  199. package/dist/ai-service/llm/context-v2/storage/types.js.map +1 -0
  200. package/dist/ai-service/llm/context-v2/token-tracker.d.ts +4 -0
  201. package/dist/ai-service/llm/context-v2/token-tracker.d.ts.map +1 -0
  202. package/dist/ai-service/llm/context-v2/token-tracker.js +13 -0
  203. package/dist/ai-service/llm/context-v2/token-tracker.js.map +1 -0
  204. package/dist/ai-service/llm/context-v2/truncation-fallback.d.ts +10 -0
  205. package/dist/ai-service/llm/context-v2/truncation-fallback.d.ts.map +1 -0
  206. package/dist/ai-service/llm/context-v2/truncation-fallback.js +120 -0
  207. package/dist/ai-service/llm/context-v2/truncation-fallback.js.map +1 -0
  208. package/dist/ai-service/llm/context-v2/turns.d.ts +23 -0
  209. package/dist/ai-service/llm/context-v2/turns.d.ts.map +1 -0
  210. package/dist/ai-service/llm/context-v2/turns.js +61 -0
  211. package/dist/ai-service/llm/context-v2/turns.js.map +1 -0
  212. package/dist/ai-service/llm/context-v2/types.d.ts +100 -0
  213. package/dist/ai-service/llm/context-v2/types.d.ts.map +1 -0
  214. package/dist/ai-service/llm/context-v2/types.js +262 -0
  215. package/dist/ai-service/llm/context-v2/types.js.map +1 -0
  216. package/dist/ai-service/llm/error.d.ts +4 -0
  217. package/dist/ai-service/llm/error.d.ts.map +1 -1
  218. package/dist/ai-service/llm/error.js +26 -0
  219. package/dist/ai-service/llm/error.js.map +1 -1
  220. package/dist/ai-service/llm/impl/clark.d.ts.map +1 -1
  221. package/dist/ai-service/llm/impl/clark.js +3 -2
  222. package/dist/ai-service/llm/impl/clark.js.map +1 -1
  223. package/dist/ai-service/llm/interaction/adapters/vercel.d.ts.map +1 -1
  224. package/dist/ai-service/llm/interaction/adapters/vercel.js +3 -1
  225. package/dist/ai-service/llm/interaction/adapters/vercel.js.map +1 -1
  226. package/dist/ai-service/llm/provider.d.ts +2 -2
  227. package/dist/ai-service/llm/provider.d.ts.map +1 -1
  228. package/dist/ai-service/llm/provider.js +2 -2
  229. package/dist/ai-service/llm/provider.js.map +1 -1
  230. package/dist/ai-service/llm/stream/event-bus.d.ts +1 -1
  231. package/dist/ai-service/llm/stream/event-bus.d.ts.map +1 -1
  232. package/dist/ai-service/llm/stream/observers/context.d.ts +2 -9
  233. package/dist/ai-service/llm/stream/observers/context.d.ts.map +1 -1
  234. package/dist/ai-service/llm/stream/observers/context.js +4 -4
  235. package/dist/ai-service/llm/stream/observers/context.js.map +1 -1
  236. package/dist/ai-service/llm/stream/observers/llmobs.d.ts.map +1 -1
  237. package/dist/ai-service/llm/stream/observers/llmobs.js +2 -1
  238. package/dist/ai-service/llm/stream/observers/llmobs.js.map +1 -1
  239. package/dist/ai-service/llm/stream/observers/logging.js +1 -1
  240. package/dist/ai-service/llm/stream/observers/logging.js.map +1 -1
  241. package/dist/ai-service/llm/stream/orchestrator.d.ts.map +1 -1
  242. package/dist/ai-service/llm/stream/orchestrator.js +22 -13
  243. package/dist/ai-service/llm/stream/orchestrator.js.map +1 -1
  244. package/dist/ai-service/llm/stream/session.d.ts +3 -0
  245. package/dist/ai-service/llm/stream/session.d.ts.map +1 -1
  246. package/dist/ai-service/llm/stream/session.js +2 -0
  247. package/dist/ai-service/llm/stream/session.js.map +1 -1
  248. package/dist/ai-service/llm/utils.d.ts +2 -2
  249. package/dist/ai-service/llm/utils.d.ts.map +1 -1
  250. package/dist/ai-service/llm/utils.js +27 -10
  251. package/dist/ai-service/llm/utils.js.map +1 -1
  252. package/dist/ai-service/llm/workflow-metrics.d.ts +14 -0
  253. package/dist/ai-service/llm/workflow-metrics.d.ts.map +1 -0
  254. package/dist/ai-service/llm/workflow-metrics.js +19 -0
  255. package/dist/ai-service/llm/workflow-metrics.js.map +1 -0
  256. package/dist/ai-service/security/safety-classifier.d.ts +2 -0
  257. package/dist/ai-service/security/safety-classifier.d.ts.map +1 -1
  258. package/dist/ai-service/security/safety-classifier.js +9 -6
  259. package/dist/ai-service/security/safety-classifier.js.map +1 -1
  260. package/dist/ai-service/state-machine/clark-fsm.d.ts +15 -0
  261. package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
  262. package/dist/ai-service/state-machine/clark-fsm.js +3 -4
  263. package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
  264. package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -1
  265. package/dist/ai-service/state-machine/handlers/agent-planning.js +32 -18
  266. package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
  267. package/dist/ai-service/state-machine/handlers/awaiting-user.d.ts.map +1 -1
  268. package/dist/ai-service/state-machine/handlers/awaiting-user.js +34 -0
  269. package/dist/ai-service/state-machine/handlers/awaiting-user.js.map +1 -1
  270. package/dist/ai-service/state-machine/handlers/idle.d.ts.map +1 -1
  271. package/dist/ai-service/state-machine/handlers/idle.js +6 -1
  272. package/dist/ai-service/state-machine/handlers/idle.js.map +1 -1
  273. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
  274. package/dist/ai-service/state-machine/handlers/llm-generating.js +84 -1
  275. package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
  276. package/dist/ai-service/state-machine/handlers/runtime-reviewing.d.ts.map +1 -1
  277. package/dist/ai-service/state-machine/handlers/runtime-reviewing.js +6 -1
  278. package/dist/ai-service/state-machine/handlers/runtime-reviewing.js.map +1 -1
  279. package/dist/ai-service/state-machine/helpers/peer.d.ts +7 -0
  280. package/dist/ai-service/state-machine/helpers/peer.d.ts.map +1 -1
  281. package/dist/ai-service/state-machine/helpers/peer.js +24 -8
  282. package/dist/ai-service/state-machine/helpers/peer.js.map +1 -1
  283. package/dist/ai-service/transform/api-builder/shared.d.ts +5 -0
  284. package/dist/ai-service/transform/api-builder/shared.d.ts.map +1 -1
  285. package/dist/ai-service/transform/api-builder/shared.js +13 -1
  286. package/dist/ai-service/transform/api-builder/shared.js.map +1 -1
  287. package/dist/ai-service/transform/api-builder/to-sdk-transformer.d.ts +11 -0
  288. package/dist/ai-service/transform/api-builder/to-sdk-transformer.d.ts.map +1 -1
  289. package/dist/ai-service/transform/api-builder/to-sdk-transformer.js +11 -4
  290. package/dist/ai-service/transform/api-builder/to-sdk-transformer.js.map +1 -1
  291. package/dist/ai-service/transform/api-builder/to-yaml-transformer.d.ts +4 -0
  292. package/dist/ai-service/transform/api-builder/to-yaml-transformer.d.ts.map +1 -1
  293. package/dist/ai-service/transform/api-builder/to-yaml-transformer.js +7 -0
  294. package/dist/ai-service/transform/api-builder/to-yaml-transformer.js.map +1 -1
  295. package/dist/binding-extraction/extract-identifiers.d.ts.map +1 -1
  296. package/dist/binding-extraction/extract-identifiers.js +39 -3
  297. package/dist/binding-extraction/extract-identifiers.js.map +1 -1
  298. package/dist/clark-log-forwarder.d.ts.map +1 -1
  299. package/dist/clark-log-forwarder.js +1 -0
  300. package/dist/clark-log-forwarder.js.map +1 -1
  301. package/dist/resolver.d.ts.map +1 -1
  302. package/dist/resolver.js +4 -1
  303. package/dist/resolver.js.map +1 -1
  304. package/dist/router-parser.d.ts.map +1 -1
  305. package/dist/router-parser.js +34 -9
  306. package/dist/router-parser.js.map +1 -1
  307. package/package.json +23 -18
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/context-v2/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,GAE3B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,8BAA8B,EAC9B,mCAAmC,GACpC,MAAM,YAAY,CAAC;AAKpB,MAAM,CAAC,MAAM,eAAe,GAAkB;IAC5C,cAAc,EAAE,8BAA8B;IAC9C,kBAAkB,EAAE,mCAAmC;CACxD,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,0BAA0B,CAAC"}
@@ -0,0 +1,61 @@
1
+ import type { ContextOptionsV2, CachingConfig } from "./config.js";
2
+ import type { ContextRecordV2, CompactionCallbacks, CompactionPhase, AttachmentsRecord } from "./types.js";
3
+ import type { LLMObsTracer } from "../../llmobs/tracer.js";
4
+ import type { CompactionSummary } from "../context/serialization.js";
5
+ import type { LanguageModel, ModelMessage, UserModelMessage, SystemModelMessage, LanguageModelUsage } from "ai";
6
+ export interface Context {
7
+ setSystemPrompt(prompt: SystemModelMessage): void;
8
+ addUserMessage(message: UserModelMessage): Promise<void>;
9
+ addResponse(response: ModelMessage, usage: LanguageModelUsage): Promise<void>;
10
+ getMessages(): Promise<ModelMessage[]>;
11
+ }
12
+ export type { CompactionPhase, CompactionCallbacks };
13
+ export interface ContextV2Options {
14
+ rootDir: string;
15
+ summarizationModel: LanguageModel;
16
+ config?: Partial<ContextOptionsV2>;
17
+ caching?: Partial<CachingConfig>;
18
+ onPersist?: (record: ContextRecordV2) => Promise<void>;
19
+ compactionCallbacks?: CompactionCallbacks;
20
+ tracer?: LLMObsTracer;
21
+ }
22
+ export declare class ContextV2 implements Context {
23
+ private systemPrompt?;
24
+ private messages;
25
+ private attachments?;
26
+ private config;
27
+ private caching;
28
+ private summarizationModel;
29
+ private queue;
30
+ private onPersist?;
31
+ private compactionCallbacks?;
32
+ private tracer?;
33
+ private rootDir;
34
+ private pendingInputSummaries;
35
+ private pendingOutputSummaries;
36
+ constructor(options: ContextV2Options);
37
+ setCompactionCallbacks(callbacks: CompactionCallbacks | undefined): void;
38
+ updateConfig(config: Partial<ContextOptionsV2>): void;
39
+ storeSummary(toolCallId: string, summary: CompactionSummary): void;
40
+ setAttachments(attachments: AttachmentsRecord): void;
41
+ getAttachments(): AttachmentsRecord | undefined;
42
+ truncateAfterTimestamp(timestamp: number): void;
43
+ static fromRecord(record: ContextRecordV2, options: ContextV2Options): ContextV2;
44
+ toRecord(): ContextRecordV2;
45
+ setSystemPrompt(prompt: SystemModelMessage): void;
46
+ private collectPendingInputSummaries;
47
+ private collectPendingOutputSummaries;
48
+ addUserMessage(message: UserModelMessage): Promise<void>;
49
+ addResponse(response: ModelMessage, usage: LanguageModelUsage, options?: {
50
+ skipCompaction?: boolean;
51
+ }): Promise<void>;
52
+ getMessages(): Promise<ModelMessage[]>;
53
+ /**
54
+ * Returns the last known input token count from the most recent assistant message.
55
+ * This represents the cumulative context size at the time of that turn.
56
+ */
57
+ private getLastKnownInputTokens;
58
+ private persist;
59
+ private compactIfNeeded;
60
+ }
61
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/context-v2/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,238 @@
1
+ import { getPrefixedLogger } from "../../../util/logger.js";
2
+ import { findBreakpoints } from "./caching.js";
3
+ import { compact } from "./compactor.js";
4
+ import { DEFAULT_OPTIONS, DEFAULT_CACHING } from "./config.js";
5
+ import { OperationQueue } from "./operation-queue.js";
6
+ import { getTotalTokens } from "./token-tracker.js";
7
+ import { toStoredMessage, toSdkMessages, CACHE_BREAKPOINT_PROVIDER_OPTIONS, normalizeToolMessage, stripUndefinedFromToolOutputs, prependReasoningBlockIfNeeded, repairBrokenToolCalls, } from "./types.js";
8
+ const logger = getPrefixedLogger("[context-v2]");
9
+ export class ContextV2 {
10
+ systemPrompt;
11
+ messages = [];
12
+ attachments;
13
+ config;
14
+ caching;
15
+ summarizationModel;
16
+ queue = new OperationQueue();
17
+ onPersist;
18
+ compactionCallbacks;
19
+ tracer;
20
+ rootDir;
21
+ // Pending summaries waiting to be attached to messages
22
+ pendingInputSummaries = new Map();
23
+ pendingOutputSummaries = new Map();
24
+ constructor(options) {
25
+ this.rootDir = options.rootDir;
26
+ this.summarizationModel = options.summarizationModel;
27
+ this.config = { ...DEFAULT_OPTIONS, ...options.config };
28
+ this.caching = { ...DEFAULT_CACHING, ...options.caching };
29
+ this.onPersist = options.onPersist;
30
+ this.compactionCallbacks = options.compactionCallbacks;
31
+ this.tracer = options.tracer;
32
+ }
33
+ setCompactionCallbacks(callbacks) {
34
+ this.compactionCallbacks = callbacks;
35
+ }
36
+ updateConfig(config) {
37
+ this.config = { ...this.config, ...config };
38
+ }
39
+ storeSummary(toolCallId, summary) {
40
+ if (summary.input) {
41
+ this.pendingInputSummaries.set(toolCallId, summary.input);
42
+ }
43
+ this.pendingOutputSummaries.set(toolCallId, summary.output);
44
+ }
45
+ setAttachments(attachments) {
46
+ this.attachments = attachments;
47
+ void this.persist();
48
+ }
49
+ getAttachments() {
50
+ return this.attachments;
51
+ }
52
+ truncateAfterTimestamp(timestamp) {
53
+ void this.queue.enqueue(async () => {
54
+ const initialCount = this.messages.length;
55
+ this.messages = this.messages.filter((msg) => !msg._superblocks?.timestamp ||
56
+ msg._superblocks.timestamp <= timestamp);
57
+ const removed = initialCount - this.messages.length;
58
+ logger.info(`Truncated context after timestamp ${timestamp}. Removed ${removed} messages, ${this.messages.length} remaining.`);
59
+ await this.persist();
60
+ });
61
+ }
62
+ static fromRecord(record, options) {
63
+ const context = new ContextV2(options);
64
+ context.messages = record.messages;
65
+ context.attachments = record.attachments;
66
+ return context;
67
+ }
68
+ toRecord() {
69
+ return {
70
+ version: 2,
71
+ messages: this.messages,
72
+ attachments: this.attachments,
73
+ };
74
+ }
75
+ setSystemPrompt(prompt) {
76
+ this.systemPrompt = toStoredMessage(prompt);
77
+ }
78
+ collectPendingInputSummaries(message) {
79
+ if (message.role !== "assistant" || typeof message.content === "string") {
80
+ return undefined;
81
+ }
82
+ const toolCallIds = message.content
83
+ .filter((p) => p.type === "tool-call" && p.toolCallId)
84
+ .map((p) => p.toolCallId);
85
+ const summaries = {};
86
+ for (const id of toolCallIds) {
87
+ const summary = this.pendingInputSummaries.get(id);
88
+ if (summary) {
89
+ summaries[id] = summary;
90
+ this.pendingInputSummaries.delete(id);
91
+ }
92
+ }
93
+ return Object.keys(summaries).length > 0 ? summaries : undefined;
94
+ }
95
+ collectPendingOutputSummaries(message) {
96
+ if (message.role !== "tool" || !Array.isArray(message.content)) {
97
+ return undefined;
98
+ }
99
+ const toolCallIds = message.content
100
+ .filter((p) => p.type === "tool-result" && p.toolCallId)
101
+ .map((p) => p.toolCallId);
102
+ const summaries = {};
103
+ for (const id of toolCallIds) {
104
+ const summary = this.pendingOutputSummaries.get(id);
105
+ if (summary) {
106
+ summaries[id] = summary;
107
+ this.pendingOutputSummaries.delete(id);
108
+ }
109
+ }
110
+ return Object.keys(summaries).length > 0 ? summaries : undefined;
111
+ }
112
+ async addUserMessage(message) {
113
+ return this.queue.enqueue(async () => {
114
+ this.messages.push(toStoredMessage(message));
115
+ });
116
+ }
117
+ async addResponse(response, usage, options) {
118
+ return this.queue.enqueue(async () => {
119
+ switch (response.role) {
120
+ case "assistant": {
121
+ const withReasoning = prependReasoningBlockIfNeeded(response);
122
+ // Total input tokens = non-cached + cached (prompt caching splits these)
123
+ const reportedInputTokens = (usage.inputTokens ?? 0) + (usage.cachedInputTokens ?? 0);
124
+ // Ensure cumulative tokens never decrease - on cache misses, the LLM may
125
+ // report artificially low input tokens (just new tokens, not the full context).
126
+ // Use the higher of reported tokens or last known to maintain monotonicity.
127
+ const lastKnownTokens = this.getLastKnownInputTokens();
128
+ const cumulativeInputTokens = Math.max(reportedInputTokens, lastKnownTokens);
129
+ // Collect pending input summaries for tool-calls in this message
130
+ const toolSummaries = this.collectPendingInputSummaries(withReasoning);
131
+ this.messages.push(toStoredMessage(withReasoning, {
132
+ cumulativeInputTokens,
133
+ tokenCount: usage.outputTokens,
134
+ ...(toolSummaries && { toolSummaries }),
135
+ }));
136
+ break;
137
+ }
138
+ case "tool": {
139
+ const normalized = normalizeToolMessage(stripUndefinedFromToolOutputs(response));
140
+ // Collect pending output summaries for tool-results in this message
141
+ const toolSummaries = this.collectPendingOutputSummaries(normalized);
142
+ this.messages.push(toStoredMessage(normalized, toolSummaries ? { toolSummaries } : undefined));
143
+ break;
144
+ }
145
+ default:
146
+ this.messages.push(toStoredMessage(response));
147
+ break;
148
+ }
149
+ if (!options?.skipCompaction) {
150
+ await this.compactIfNeeded(usage);
151
+ }
152
+ await this.persist();
153
+ });
154
+ }
155
+ async getMessages() {
156
+ return this.queue.enqueue(async () => {
157
+ const allMessages = this.systemPrompt
158
+ ? [this.systemPrompt, ...this.messages]
159
+ : [...this.messages];
160
+ // Find cache breakpoints
161
+ const breakpoints = findBreakpoints({
162
+ messages: allMessages,
163
+ hasSystemPrompt: this.systemPrompt !== undefined,
164
+ config: this.caching,
165
+ });
166
+ // Convert to SDK format (removes _superblocks metadata)
167
+ const sanitized = toSdkMessages(allMessages);
168
+ // Repair broken tool calls (removes orphaned tool calls)
169
+ const repaired = sanitized.map(repairBrokenToolCalls);
170
+ // Apply cache breakpoints
171
+ for (const idx of breakpoints) {
172
+ if (repaired[idx]) {
173
+ repaired[idx].providerOptions = CACHE_BREAKPOINT_PROVIDER_OPTIONS;
174
+ }
175
+ }
176
+ return repaired;
177
+ });
178
+ }
179
+ /**
180
+ * Returns the last known input token count from the most recent assistant message.
181
+ * This represents the cumulative context size at the time of that turn.
182
+ */
183
+ getLastKnownInputTokens() {
184
+ for (let i = this.messages.length - 1; i >= 0; i--) {
185
+ const meta = this.messages[i]?._superblocks;
186
+ if (meta?.cumulativeInputTokens !== undefined) {
187
+ return meta.cumulativeInputTokens;
188
+ }
189
+ }
190
+ return 0;
191
+ }
192
+ async persist() {
193
+ if (this.onPersist) {
194
+ try {
195
+ await this.onPersist(this.toRecord());
196
+ }
197
+ catch (err) {
198
+ logger.error(`Failed to persist context: ${err}`);
199
+ }
200
+ }
201
+ }
202
+ async compactIfNeeded(usage) {
203
+ const llmReportedTokens = getTotalTokens(usage);
204
+ const threshold = this.config.contextLimit -
205
+ this.config.maxOutputTokens -
206
+ this.config.contextBufferTokens;
207
+ if (llmReportedTokens <= threshold) {
208
+ return;
209
+ }
210
+ logger.info(`Compaction triggered: ${llmReportedTokens} tokens > ${threshold} threshold ` +
211
+ `(${this.messages.length} messages)`);
212
+ const result = await compact({
213
+ messages: this.messages,
214
+ usage,
215
+ model: this.summarizationModel,
216
+ config: this.config,
217
+ callbacks: this.compactionCallbacks,
218
+ tracer: this.tracer,
219
+ rootDir: this.rootDir,
220
+ });
221
+ let phase = "none";
222
+ if (result.phase2Applied) {
223
+ phase = "phase1+phase2";
224
+ }
225
+ else if (result.phase1Applied) {
226
+ phase = "phase1";
227
+ }
228
+ logger.info(`Compaction complete (${phase}): saved ${result.tokensSaved} tokens, ${this.messages.length}→${result.messages.length} messages`);
229
+ this.messages = result.messages.map((msg) => ({
230
+ ...msg,
231
+ _superblocks: {
232
+ ...msg._superblocks,
233
+ timestamp: msg._superblocks?.timestamp ?? Date.now(),
234
+ },
235
+ }));
236
+ }
237
+ }
238
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/context-v2/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export * from "./caching.js";
2
+ export * from "./config.js";
3
+ export * from "./types.js";
4
+ export * from "./token-tracker.js";
5
+ export * from "./phase1-tool-summarizer.js";
6
+ export * from "./phase2-session-summarizer.js";
7
+ export * from "./compactor.js";
8
+ export * from "./context.js";
9
+ export * from "./adapter.js";
10
+ export * from "./prompts/compaction.js";
11
+ export * from "./manager.js";
12
+ export * from "./storage/index.js";
13
+ export * from "./storage/local.js";
14
+ export * from "./storage/types.js";
15
+ export * from "./migrations/index.js";
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/context-v2/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,16 @@
1
+ export * from "./caching.js";
2
+ export * from "./config.js";
3
+ export * from "./types.js";
4
+ export * from "./token-tracker.js";
5
+ export * from "./phase1-tool-summarizer.js";
6
+ export * from "./phase2-session-summarizer.js";
7
+ export * from "./compactor.js";
8
+ export * from "./context.js";
9
+ export * from "./adapter.js";
10
+ export * from "./prompts/compaction.js";
11
+ export * from "./manager.js";
12
+ export * from "./storage/index.js";
13
+ export * from "./storage/local.js";
14
+ export * from "./storage/types.js";
15
+ export * from "./migrations/index.js";
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/context-v2/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * ContextManagerV2 manages V2 context lifecycle, caching, and persistence.
3
+ *
4
+ * Responsibilities:
5
+ * - Load/save context state from/to storage
6
+ * - Cache active contexts in memory
7
+ * - Create ephemeral contexts for one-off operations
8
+ * - Migrate older context versions to current version
9
+ */
10
+ import { ContextV2 } from "./context.js";
11
+ import type { ContextOptionsV2 } from "./config.js";
12
+ import type { ContextStorageV2 } from "./storage/index.js";
13
+ import type { ContextId } from "./storage/types.js";
14
+ import type { LLMObsTracer } from "../../llmobs/tracer.js";
15
+ import type { LanguageModel } from "ai";
16
+ /**
17
+ * Options for configuring the ContextManagerV2.
18
+ */
19
+ export interface ContextManagerV2Options {
20
+ /** Storage backend for persisting context state */
21
+ storage: ContextStorageV2;
22
+ rootDir: string;
23
+ }
24
+ /**
25
+ * Manager for creating and managing V2 conversation contexts.
26
+ */
27
+ export declare class ContextManagerV2 {
28
+ private storage;
29
+ private contexts;
30
+ private rootDir;
31
+ constructor(options: ContextManagerV2Options);
32
+ private getContextKey;
33
+ getOrCreateContext(id: ContextId | undefined, summarizationModel: LanguageModel, config?: Partial<ContextOptionsV2>, tracer?: LLMObsTracer): Promise<ContextV2>;
34
+ /**
35
+ * Gets an already-loaded context without async operations.
36
+ * For use by tools executing within an LLM stream where context is already loaded.
37
+ */
38
+ getLoadedContext(id: ContextId): ContextV2 | undefined;
39
+ /**
40
+ * Clears a specific context from the in-memory cache only.
41
+ */
42
+ clearContext(id: ContextId): void;
43
+ /**
44
+ * Clears all contexts from cache and storage.
45
+ */
46
+ clearAllContexts(): Promise<void>;
47
+ /**
48
+ * Loads context from persistent storage.
49
+ * Handles version migration automatically.
50
+ */
51
+ private loadContext;
52
+ /**
53
+ * Saves context to persistent storage.
54
+ */
55
+ private saveContext;
56
+ }
57
+ //# sourceMappingURL=manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/context-v2/manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAIxC;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,mDAAmD;IACnD,OAAO,EAAE,gBAAgB,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,EAAE,uBAAuB;IAK5C,OAAO,CAAC,aAAa;IAIf,kBAAkB,CACtB,EAAE,EAAE,SAAS,GAAG,SAAS,EACzB,kBAAkB,EAAE,aAAa,EACjC,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,EAClC,MAAM,CAAC,EAAE,YAAY,GACpB,OAAO,CAAC,SAAS,CAAC;IA6CrB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS;IAKtD;;OAEG;IACH,YAAY,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAKjC;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAKvC;;;OAGG;YACW,WAAW;IA+BzB;;OAEG;YACW,WAAW;CAU1B"}
@@ -0,0 +1,129 @@
1
+ /**
2
+ * ContextManagerV2 manages V2 context lifecycle, caching, and persistence.
3
+ *
4
+ * Responsibilities:
5
+ * - Load/save context state from/to storage
6
+ * - Cache active contexts in memory
7
+ * - Create ephemeral contexts for one-off operations
8
+ * - Migrate older context versions to current version
9
+ */
10
+ import { getPrefixedLogger } from "../../../util/logger.js";
11
+ import { ContextV2 } from "./context.js";
12
+ import { migrateContext } from "./migrations/index.js";
13
+ const logger = getPrefixedLogger("[context-manager-v2]");
14
+ /**
15
+ * Manager for creating and managing V2 conversation contexts.
16
+ */
17
+ export class ContextManagerV2 {
18
+ storage;
19
+ contexts = new Map();
20
+ rootDir;
21
+ constructor(options) {
22
+ this.storage = options.storage;
23
+ this.rootDir = options.rootDir;
24
+ }
25
+ getContextKey(id) {
26
+ return `${id.appId}::${id.userId}::${id.name}`;
27
+ }
28
+ async getOrCreateContext(id, summarizationModel, config, tracer) {
29
+ const key = id ? this.getContextKey(id) : undefined;
30
+ if (key) {
31
+ const cached = this.contexts.get(key);
32
+ if (cached) {
33
+ if (config) {
34
+ cached.updateConfig(config);
35
+ }
36
+ return cached;
37
+ }
38
+ }
39
+ const onPersist = id
40
+ ? async (record) => {
41
+ await this.saveContext(id, record);
42
+ }
43
+ : undefined;
44
+ const record = id ? await this.loadContext(id) : undefined;
45
+ const options = {
46
+ summarizationModel,
47
+ config,
48
+ onPersist,
49
+ tracer,
50
+ rootDir: this.rootDir,
51
+ };
52
+ let context;
53
+ if (record) {
54
+ logger.info(`Restored context '${id?.name}' from storage`);
55
+ context = ContextV2.fromRecord(record, options);
56
+ }
57
+ else {
58
+ logger.info(`Creating new context '${id?.name ?? "ephemeral"}'`);
59
+ context = new ContextV2(options);
60
+ }
61
+ if (key) {
62
+ this.contexts.set(key, context);
63
+ }
64
+ return context;
65
+ }
66
+ /**
67
+ * Gets an already-loaded context without async operations.
68
+ * For use by tools executing within an LLM stream where context is already loaded.
69
+ */
70
+ getLoadedContext(id) {
71
+ const key = this.getContextKey(id);
72
+ return this.contexts.get(key);
73
+ }
74
+ /**
75
+ * Clears a specific context from the in-memory cache only.
76
+ */
77
+ clearContext(id) {
78
+ const key = this.getContextKey(id);
79
+ this.contexts.delete(key);
80
+ }
81
+ /**
82
+ * Clears all contexts from cache and storage.
83
+ */
84
+ async clearAllContexts() {
85
+ this.contexts.clear();
86
+ await this.storage.deleteAllContexts();
87
+ }
88
+ /**
89
+ * Loads context from persistent storage.
90
+ * Handles version migration automatically.
91
+ */
92
+ async loadContext(id) {
93
+ try {
94
+ const rawRecord = await this.storage.loadContext(id);
95
+ if (rawRecord === null) {
96
+ return null;
97
+ }
98
+ const result = migrateContext(rawRecord, 2);
99
+ if (!result.success) {
100
+ logger.warn(`Context '${id.name}' migration failed: ${result.reason}. ` +
101
+ `Context will be deleted and a fresh conversation will start.`);
102
+ try {
103
+ await this.storage.deleteContext(id);
104
+ }
105
+ catch (deleteErr) {
106
+ logger.error(`Failed to delete context '${id.name}' after migration failure: ${deleteErr}`);
107
+ }
108
+ return null;
109
+ }
110
+ return result.record;
111
+ }
112
+ catch (err) {
113
+ logger.error(`Failed to load context for '${id.name}': ${err}`);
114
+ return null;
115
+ }
116
+ }
117
+ /**
118
+ * Saves context to persistent storage.
119
+ */
120
+ async saveContext(id, record) {
121
+ try {
122
+ await this.storage.saveContext(id, record);
123
+ }
124
+ catch (err) {
125
+ logger.error(`Failed to save context for '${id.name}': ${err}`);
126
+ }
127
+ }
128
+ }
129
+ //# sourceMappingURL=manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/context-v2/manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Context migration system exports.
3
+ */
4
+ export * from "./types.js";
5
+ export * from "./registry.js";
6
+ export * from "./runner.js";
7
+ export { migrateV1ToV2, v1ToV2Migration } from "./v1-to-v2.js";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/llm/context-v2/migrations/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Context migration system exports.
3
+ */
4
+ export * from "./types.js";
5
+ export * from "./registry.js";
6
+ export * from "./runner.js";
7
+ export { migrateV1ToV2, v1ToV2Migration } from "./v1-to-v2.js";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/ai-service/llm/context-v2/migrations/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Migration registry that maps version transitions to migration functions.
3
+ *
4
+ * To add a new migration:
5
+ * 1. Create a new migration file (e.g., v2-to-v3.ts)
6
+ * 2. Export the migration object with fromVersion, toVersion, and migrate
7
+ * 3. Add it to the migrations array below
8
+ */
9
+ import type { Migration } from "./types.js";
10
+ export declare function getMigration(fromVersion: number, toVersion: number): Migration<any, any> | undefined;
11
+ /**
12
+ * Check if a migration path exists from one version to another.
13
+ *
14
+ * @param fromVersion - Source version
15
+ * @param toVersion - Target version
16
+ * @returns true if all migrations exist for the path
17
+ */
18
+ export declare function hasMigrationPath(fromVersion: number, toVersion: number): boolean;
19
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/llm/context-v2/migrations/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAI5C,wBAAgB,YAAY,CAC1B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,CAIjC;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,OAAO,CAYT"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Migration registry that maps version transitions to migration functions.
3
+ *
4
+ * To add a new migration:
5
+ * 1. Create a new migration file (e.g., v2-to-v3.ts)
6
+ * 2. Export the migration object with fromVersion, toVersion, and migrate
7
+ * 3. Add it to the migrations array below
8
+ */
9
+ import { v1ToV2Migration } from "./v1-to-v2.js";
10
+ const migrations = [v1ToV2Migration];
11
+ export function getMigration(fromVersion, toVersion) {
12
+ return migrations.find((m) => m.fromVersion === fromVersion && m.toVersion === toVersion);
13
+ }
14
+ /**
15
+ * Check if a migration path exists from one version to another.
16
+ *
17
+ * @param fromVersion - Source version
18
+ * @param toVersion - Target version
19
+ * @returns true if all migrations exist for the path
20
+ */
21
+ export function hasMigrationPath(fromVersion, toVersion) {
22
+ if (fromVersion >= toVersion) {
23
+ return fromVersion === toVersion;
24
+ }
25
+ for (let v = fromVersion; v < toVersion; v++) {
26
+ if (!getMigration(v, v + 1)) {
27
+ return false;
28
+ }
29
+ }
30
+ return true;
31
+ }
32
+ //# sourceMappingURL=registry.js.map