@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,213 @@
1
+ import { streamText } from "ai";
2
+ import { getPrefixedLogger } from "../../../util/logger.js";
3
+ import { LLMObsTracer } from "../../llmobs/tracer.js";
4
+ import { isTokenLimitError } from "../error.js";
5
+ import { COMPACTION_PROMPT, formatCompactionRequest, formatSummaryMessage, } from "./prompts/compaction.js";
6
+ import { createTruncationFallback } from "./truncation-fallback.js";
7
+ import { toStoredMessage } from "./types.js";
8
+ function getModelId(model) {
9
+ if (typeof model === "string")
10
+ return model;
11
+ return model.modelId ?? "unknown";
12
+ }
13
+ function getProviderId(model) {
14
+ if (typeof model === "string")
15
+ return "string-model";
16
+ return model.provider ?? "unknown";
17
+ }
18
+ const logger = getPrefixedLogger("[phase2-session-summarizer]");
19
+ /**
20
+ * Strips image content from messages to reduce token usage during summarization.
21
+ * Replaces inline images with a placeholder to preserve context about their presence.
22
+ */
23
+ function stripImagesFromMessages(messages) {
24
+ return messages.map((msg) => {
25
+ if (!Array.isArray(msg.content)) {
26
+ return msg;
27
+ }
28
+ const strippedContent = msg.content.map((part) => {
29
+ // user images
30
+ if (typeof part === "object" &&
31
+ part !== null &&
32
+ "type" in part &&
33
+ part.type === "image") {
34
+ return { type: "text", text: "[image]" };
35
+ }
36
+ // tool results images
37
+ if (part.type === "tool-result" &&
38
+ part.output?.type === "content" &&
39
+ part.output.value?.some((value) => value.type === "media" && value.data?.startsWith("data:image/"))) {
40
+ return { type: "text", text: "[image]" };
41
+ }
42
+ return part;
43
+ });
44
+ return { ...msg, content: strippedContent };
45
+ });
46
+ }
47
+ /**
48
+ * Summarizes a session, automatically handling oversized inputs by recursively
49
+ * splitting messages in half until they fit within the model's context window.
50
+ */
51
+ export async function summarizeSession(options) {
52
+ const { messages, model, targetTokens, abortSignal, tracer = LLMObsTracer.instance, } = options;
53
+ return tracer.trace({ name: "session.summarize", kind: "task" }, async (summarizeSpan) => {
54
+ async function callLLM(msgs) {
55
+ return tracer.trace({ name: "session.summarize.llm", kind: "task" }, async (llmSpan) => {
56
+ // Strip images and internal metadata before serializing
57
+ const strippedMessages = stripImagesFromMessages(msgs);
58
+ const cleanMessages = strippedMessages.map(({ _superblocks, ...msg }) => msg);
59
+ // Serialize messages as JSON to avoid provider-specific format issues
60
+ // (e.g., reasoning blocks, signatures) that cause errors on Bedrock/Vertex
61
+ const messagesJson = JSON.stringify(cleanMessages, null, 2);
62
+ const userMessage = formatCompactionRequest(messagesJson);
63
+ // Capture API errors via onError callback.
64
+ // The Vercel AI SDK silently swallows errors like "prompt is too long" -
65
+ // the stream just ends without throwing. Using onError is the only way
66
+ // to capture the real error for proper handling (e.g., token limit detection).
67
+ let capturedError = null;
68
+ const inputMetadata = {
69
+ messageCount: msgs.length,
70
+ promptLength: userMessage.length,
71
+ };
72
+ const streamResult = streamText({
73
+ model,
74
+ system: COMPACTION_PROMPT,
75
+ messages: [{ role: "user", content: userMessage }],
76
+ maxOutputTokens: 8192,
77
+ abortSignal,
78
+ onError: (event) => {
79
+ capturedError = event.error;
80
+ },
81
+ });
82
+ let summary = "";
83
+ for await (const part of streamResult.textStream) {
84
+ summary += part;
85
+ }
86
+ if (capturedError) {
87
+ tracer.annotate(llmSpan, {
88
+ metadata: {
89
+ input: inputMetadata,
90
+ },
91
+ error: capturedError,
92
+ });
93
+ throw capturedError;
94
+ }
95
+ const [usage, finishReason, warnings, response] = await Promise.all([
96
+ streamResult.usage,
97
+ streamResult.finishReason,
98
+ streamResult.warnings,
99
+ streamResult.response,
100
+ ]);
101
+ if (!summary) {
102
+ const debugInfo = {
103
+ model: {
104
+ id: getModelId(model),
105
+ provider: getProviderId(model),
106
+ },
107
+ messageCount: msgs.length,
108
+ finishReason,
109
+ usage: {
110
+ inputTokens: usage?.inputTokens,
111
+ outputTokens: usage?.outputTokens,
112
+ cachedInputTokens: usage?.cachedInputTokens,
113
+ },
114
+ warnings,
115
+ response: {
116
+ id: response?.id,
117
+ modelId: response?.modelId,
118
+ timestamp: response?.timestamp,
119
+ headers: response?.headers,
120
+ },
121
+ };
122
+ logger.warn("Summarization produced empty summary - debug info:", debugInfo);
123
+ throw new Error(`Summarization produced empty summary. finishReason=${finishReason}, ` +
124
+ `model=${getModelId(model)}, inputTokens=${usage?.inputTokens}, ` +
125
+ `outputTokens=${usage?.outputTokens}`);
126
+ }
127
+ tracer.annotate(llmSpan, {
128
+ metadata: {
129
+ input: inputMetadata,
130
+ result: {
131
+ summaryLength: summary.length,
132
+ inputTokens: usage?.inputTokens,
133
+ outputTokens: usage?.outputTokens,
134
+ finishReason,
135
+ },
136
+ },
137
+ });
138
+ const summaryWithPreamble = formatSummaryMessage(summary);
139
+ const summaryMessage = toStoredMessage({ role: "user", content: summaryWithPreamble }, { isSummary: true, tokenCount: usage?.outputTokens });
140
+ return {
141
+ summary,
142
+ messages: [summaryMessage],
143
+ };
144
+ });
145
+ }
146
+ async function summarizeWithSplitting(msgs) {
147
+ // Guard against infinite recursion - need at least 2 messages to split
148
+ if (msgs.length < 2) {
149
+ return callLLM(msgs);
150
+ }
151
+ try {
152
+ const result = await callLLM(msgs);
153
+ return result;
154
+ }
155
+ catch (error) {
156
+ if (!isTokenLimitError(error)) {
157
+ logger.error(`LLM summarization failed. Falling back to truncation. Error: ${JSON.stringify(error)}`, error);
158
+ return createTruncationFallback(messages, tracer);
159
+ }
160
+ // Token limit exceeded - split messages in half and summarize recursively
161
+ const midpoint = Math.floor(msgs.length / 2);
162
+ const firstHalf = msgs.slice(0, midpoint);
163
+ const secondHalf = msgs.slice(midpoint);
164
+ logger.warn(`Token limit exceeded with ${msgs.length} messages. ` +
165
+ `Splitting: first half (${firstHalf.length}), second half (${secondHalf.length})`);
166
+ // Each recursive split gets its own session.summarize span
167
+ const firstResult = await tracer.trace({ name: "session.summarize.split", kind: "task" }, async (splitSpan) => {
168
+ tracer.annotate(splitSpan, {
169
+ metadata: {
170
+ input: {
171
+ messageCount: firstHalf.length,
172
+ splitHalf: "first",
173
+ },
174
+ },
175
+ });
176
+ return summarizeWithSplitting(firstHalf);
177
+ });
178
+ return tracer.trace({ name: "session.summarize.split", kind: "task" }, async (splitSpan) => {
179
+ tracer.annotate(splitSpan, {
180
+ metadata: {
181
+ input: {
182
+ messageCount: firstResult.messages.length + secondHalf.length,
183
+ splitHalf: "combined",
184
+ },
185
+ },
186
+ });
187
+ return summarizeWithSplitting([
188
+ ...firstResult.messages,
189
+ ...secondHalf,
190
+ ]);
191
+ });
192
+ }
193
+ }
194
+ const result = await summarizeWithSplitting(messages);
195
+ tracer.annotate(summarizeSpan, {
196
+ metadata: {
197
+ input: {
198
+ messageCount: messages.length,
199
+ },
200
+ config: {
201
+ targetTokens,
202
+ },
203
+ result: {
204
+ messageCount: result.messages.length,
205
+ summary: result.summary,
206
+ summaryLength: result.summary.length,
207
+ },
208
+ },
209
+ });
210
+ return result;
211
+ });
212
+ }
213
+ //# sourceMappingURL=phase2-session-summarizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phase2-session-summarizer.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/context-v2/phase2-session-summarizer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export declare const COMPACTION_PROMPT = "You will be given a conversation history to summarize. Write a continuation summary that will allow you (or another instance of yourself) to resume work efficiently in a future context window where the conversation history will be replaced with this summary. Your summary should be structured, concise, and actionable. Include:\n\n1. Task Overview\n The user's core request and success criteria\n Any clarifications or constraints they specified\n\n2. Current State\n What has been completed so far\n Files created, modified, or analyzed (with paths if relevant)\n Key outputs or artifacts produced\n\n3. Important Discoveries\n Technical constraints or requirements uncovered\n Decisions made and their rationale\n Errors encountered and how they were resolved\n What approaches were tried that didn't work (and why)\n\n4. Next Steps\n Specific actions needed to complete the task\n Any blockers or open questions to resolve\n Priority order if multiple steps remain\n\n5. Context to Preserve\n User preferences or style requirements\n Domain-specific details that aren't obvious\n Any promises made to the user\n\nBe concise but complete\u2014err on the side of including information that would prevent duplicate work or repeated mistakes. Write in a way that enables immediate resumption of the task.\n\nOutput ONLY the summary content. No preamble, no wrapping tags.";
2
+ /**
3
+ * Formats the conversation history into a user message for compaction.
4
+ */
5
+ export declare function formatCompactionRequest(messagesJson: string): string;
6
+ /**
7
+ * Wraps the generated summary with continuation context to help the model
8
+ * understand it's resuming a previous session.
9
+ */
10
+ export declare function formatSummaryMessage(summary: string): string;
11
+ //# sourceMappingURL=compaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compaction.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/llm/context-v2/prompts/compaction.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,iBAAiB,63CA6BkC,CAAC;AAEjE;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAIpE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAY5D"}
@@ -0,0 +1,57 @@
1
+ // Based on https://platform.claude.com/docs/en/build-with-claude/context-editing#client-side-compaction-sdk
2
+ export const COMPACTION_PROMPT = `You will be given a conversation history to summarize. Write a continuation summary that will allow you (or another instance of yourself) to resume work efficiently in a future context window where the conversation history will be replaced with this summary. Your summary should be structured, concise, and actionable. Include:
3
+
4
+ 1. Task Overview
5
+ The user's core request and success criteria
6
+ Any clarifications or constraints they specified
7
+
8
+ 2. Current State
9
+ What has been completed so far
10
+ Files created, modified, or analyzed (with paths if relevant)
11
+ Key outputs or artifacts produced
12
+
13
+ 3. Important Discoveries
14
+ Technical constraints or requirements uncovered
15
+ Decisions made and their rationale
16
+ Errors encountered and how they were resolved
17
+ What approaches were tried that didn't work (and why)
18
+
19
+ 4. Next Steps
20
+ Specific actions needed to complete the task
21
+ Any blockers or open questions to resolve
22
+ Priority order if multiple steps remain
23
+
24
+ 5. Context to Preserve
25
+ User preferences or style requirements
26
+ Domain-specific details that aren't obvious
27
+ Any promises made to the user
28
+
29
+ Be concise but complete—err on the side of including information that would prevent duplicate work or repeated mistakes. Write in a way that enables immediate resumption of the task.
30
+
31
+ Output ONLY the summary content. No preamble, no wrapping tags.`;
32
+ /**
33
+ * Formats the conversation history into a user message for compaction.
34
+ */
35
+ export function formatCompactionRequest(messagesJson) {
36
+ return `\`\`\`json
37
+ ${messagesJson}
38
+ \`\`\``;
39
+ }
40
+ /**
41
+ * Wraps the generated summary with continuation context to help the model
42
+ * understand it's resuming a previous session.
43
+ */
44
+ export function formatSummaryMessage(summary) {
45
+ return `[Session Continuation]
46
+
47
+ You are resuming a previous session. The following is a summary of what has been accomplished so far:
48
+
49
+ ---
50
+
51
+ ${summary}
52
+
53
+ ---
54
+
55
+ Continue from where you left off. If there are next steps outlined above, proceed with them.`;
56
+ }
57
+ //# sourceMappingURL=compaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compaction.js","sourceRoot":"","sources":["../../../../../src/ai-service/llm/context-v2/prompts/compaction.ts"],"names":[],"mappings":"AAAA,4GAA4G;AAC5G,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gEA6B+B,CAAC;AAEjE;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,YAAoB;IAC1D,OAAO;EACP,YAAY;OACP,CAAC;AACR,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,OAAO;;;;;;EAMP,OAAO;;;;6FAIoF,CAAC;AAC9F,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { StoredMessage } from "./types.js";
2
+ import type { LanguageModelUsage } from "ai";
3
+ export interface CapturedSession {
4
+ messages: StoredMessage[];
5
+ usage: LanguageModelUsage;
6
+ }
7
+ /**
8
+ * Capture full session data for debugging compaction failures.
9
+ * Sessions are saved to {rootDir}/.superblocks/captured-sessions/
10
+ *
11
+ * @param data - The session data to capture
12
+ * @param rootDir - The app root directory
13
+ */
14
+ export declare function captureSession(data: {
15
+ messages: StoredMessage[];
16
+ usage: LanguageModelUsage;
17
+ }, rootDir: string): string | null;
18
+ //# sourceMappingURL=session-capture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-capture.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/context-v2/session-capture.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,IAAI,CAAC;AAW7C,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,KAAK,EAAE,kBAAkB,CAAC;CAC3B;AAwBD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE;IACJ,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,KAAK,EAAE,kBAAkB,CAAC;CAC3B,EACD,OAAO,EAAE,MAAM,GACd,MAAM,GAAG,IAAI,CAyBf"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Session capture utility for debugging compaction failures.
3
+ *
4
+ * Sessions are saved to the app's .superblocks/captured-sessions folder.
5
+ * Captured sessions can be replayed in integration tests to verify
6
+ * summarization quality using LLM-as-judge.
7
+ */
8
+ import { writeFileSync, mkdirSync, existsSync } from "node:fs";
9
+ import { join } from "node:path";
10
+ import { getPrefixedLogger } from "../../../util/logger.js";
11
+ const logger = getPrefixedLogger("[session-capture]");
12
+ /** Set to true to capture sessions for debugging compaction failures */
13
+ const CAPTURE_ENABLED = false;
14
+ function isTestEnvironment() {
15
+ return process.env.VITEST === "true" || process.env.NODE_ENV === "test";
16
+ }
17
+ function isEnabled() {
18
+ if (isTestEnvironment()) {
19
+ return false;
20
+ }
21
+ return CAPTURE_ENABLED;
22
+ }
23
+ function getCaptureDir(rootDir) {
24
+ return join(rootDir, ".superblocks", "captured-sessions");
25
+ }
26
+ function ensureDir(captureDir) {
27
+ if (!existsSync(captureDir)) {
28
+ mkdirSync(captureDir, { recursive: true });
29
+ }
30
+ }
31
+ function generateFilename() {
32
+ const timestamp = new Date().toISOString().replace(/[:.]/g, "-");
33
+ return `session-${timestamp}.json`;
34
+ }
35
+ /**
36
+ * Capture full session data for debugging compaction failures.
37
+ * Sessions are saved to {rootDir}/.superblocks/captured-sessions/
38
+ *
39
+ * @param data - The session data to capture
40
+ * @param rootDir - The app root directory
41
+ */
42
+ export function captureSession(data, rootDir) {
43
+ if (!isEnabled()) {
44
+ return null;
45
+ }
46
+ try {
47
+ const captureDir = getCaptureDir(rootDir);
48
+ ensureDir(captureDir);
49
+ const session = {
50
+ messages: data.messages,
51
+ usage: data.usage,
52
+ };
53
+ const filename = generateFilename();
54
+ const filepath = join(captureDir, filename);
55
+ writeFileSync(filepath, JSON.stringify(session, null, 2));
56
+ logger.info(`Captured session to ${filepath}`);
57
+ return filepath;
58
+ }
59
+ catch (err) {
60
+ logger.error(`Failed to capture session: ${err}`);
61
+ return null;
62
+ }
63
+ }
64
+ //# sourceMappingURL=session-capture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-capture.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/context-v2/session-capture.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAI5D,MAAM,MAAM,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;AAEtD,wEAAwE;AACxE,MAAM,eAAe,GAAG,KAAK,CAAC;AAE9B,SAAS,iBAAiB;IACxB,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC;AAC1E,CAAC;AAOD,SAAS,SAAS;IAChB,IAAI,iBAAiB,EAAE,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,SAAS,aAAa,CAAC,OAAe;IACpC,OAAO,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,mBAAmB,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,SAAS,CAAC,UAAkB;IACnC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB;IACvB,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACjE,OAAO,WAAW,SAAS,OAAO,CAAC;AACrC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC5B,IAGC,EACD,OAAe;IAEf,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QAC1C,SAAS,CAAC,UAAU,CAAC,CAAC;QAEtB,MAAM,OAAO,GAAoB;YAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC;QAEF,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAE5C,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,CAAC,IAAI,CAAC,uBAAuB,QAAQ,EAAE,CAAC,CAAC;QAE/C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { ContextRecordV2 } from "../types.js";
2
+ import type { ContextId } from "./types.js";
3
+ export interface ContextStorageV2 {
4
+ saveContext(id: ContextId, context: ContextRecordV2): Promise<void>;
5
+ /**
6
+ * Load a context record from storage.
7
+ * Returns unknown because the stored format may be any version.
8
+ * The migration system handles version detection and migration.
9
+ */
10
+ loadContext(id: ContextId): Promise<unknown | null>;
11
+ deleteContext(id: ContextId): Promise<void>;
12
+ deleteAllContexts(): Promise<void>;
13
+ }
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/llm/context-v2/storage/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACpD,aAAa,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/ai-service/llm/context-v2/storage/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,25 @@
1
+ import type { ContextRecordV2 } from "../types.js";
2
+ import type { ContextStorageV2 } from "./index.js";
3
+ import type { ContextId } from "./types.js";
4
+ /**
5
+ * Local filesystem storage backend for context records.
6
+ *
7
+ * Contexts are stored as JSON files in the following structure:
8
+ * {rootDir}/.superblocks/context/{userId}/{contextName}.json
9
+ *
10
+ * This uses the same path structure as V1 for upload/download compatibility.
11
+ * The migration system handles version detection and migration when loading.
12
+ */
13
+ export declare class LocalContextStorageV2 implements ContextStorageV2 {
14
+ readonly rootDir: string;
15
+ private readonly SUPERBLOCKS_SYSTEM_DIR;
16
+ constructor(rootDir: string);
17
+ loadContext(id: ContextId): Promise<unknown | null>;
18
+ saveContext(id: ContextId, record: ContextRecordV2): Promise<void>;
19
+ deleteContext(id: ContextId): Promise<void>;
20
+ deleteAllContexts(): Promise<void>;
21
+ private getContextDir;
22
+ private ensureBaseDirExists;
23
+ private getFilePath;
24
+ }
25
+ //# sourceMappingURL=local.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/llm/context-v2/storage/local.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C;;;;;;;;GAQG;AACH,qBAAa,qBAAsB,YAAW,gBAAgB;IAEhD,QAAQ,CAAC,OAAO,EAAE,MAAM;IADpC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAkB;gBACpC,OAAO,EAAE,MAAM;IAE9B,WAAW,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAcnD,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAMlE,aAAa,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAY3C,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAYxC,OAAO,CAAC,aAAa;YAIP,mBAAmB;IAIjC,OAAO,CAAC,WAAW;CASpB"}
@@ -0,0 +1,71 @@
1
+ import { readFile, writeFile, mkdir, unlink, rm } from "node:fs/promises";
2
+ import * as path from "node:path";
3
+ /**
4
+ * Local filesystem storage backend for context records.
5
+ *
6
+ * Contexts are stored as JSON files in the following structure:
7
+ * {rootDir}/.superblocks/context/{userId}/{contextName}.json
8
+ *
9
+ * This uses the same path structure as V1 for upload/download compatibility.
10
+ * The migration system handles version detection and migration when loading.
11
+ */
12
+ export class LocalContextStorageV2 {
13
+ rootDir;
14
+ SUPERBLOCKS_SYSTEM_DIR = ".superblocks";
15
+ constructor(rootDir) {
16
+ this.rootDir = rootDir;
17
+ }
18
+ async loadContext(id) {
19
+ const filePath = this.getFilePath(id);
20
+ try {
21
+ const content = await readFile(filePath, "utf-8");
22
+ // Return raw parsed JSON - migration system will handle version detection
23
+ return JSON.parse(content);
24
+ }
25
+ catch (err) {
26
+ if (err.code === "ENOENT") {
27
+ return null;
28
+ }
29
+ throw err;
30
+ }
31
+ }
32
+ async saveContext(id, record) {
33
+ const filePath = this.getFilePath(id);
34
+ await this.ensureBaseDirExists(filePath);
35
+ await writeFile(filePath, JSON.stringify(record, null, 2));
36
+ }
37
+ async deleteContext(id) {
38
+ const filePath = this.getFilePath(id);
39
+ try {
40
+ await unlink(filePath);
41
+ }
42
+ catch (err) {
43
+ if (err.code === "ENOENT") {
44
+ return;
45
+ }
46
+ throw err;
47
+ }
48
+ }
49
+ async deleteAllContexts() {
50
+ const contextDir = this.getContextDir();
51
+ try {
52
+ await rm(contextDir, { recursive: true, force: true });
53
+ }
54
+ catch (err) {
55
+ if (err.code === "ENOENT") {
56
+ return;
57
+ }
58
+ throw err;
59
+ }
60
+ }
61
+ getContextDir() {
62
+ return path.join(this.rootDir, this.SUPERBLOCKS_SYSTEM_DIR, "context");
63
+ }
64
+ async ensureBaseDirExists(filePath) {
65
+ await mkdir(path.dirname(filePath), { recursive: true });
66
+ }
67
+ getFilePath(id) {
68
+ return path.join(this.rootDir, this.SUPERBLOCKS_SYSTEM_DIR, "context", id.userId, `${id.name}.json`);
69
+ }
70
+ }
71
+ //# sourceMappingURL=local.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local.js","sourceRoot":"","sources":["../../../../../src/ai-service/llm/context-v2/storage/local.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAKlC;;;;;;;;GAQG;AACH,MAAM,OAAO,qBAAqB;IAEX;IADJ,sBAAsB,GAAG,cAAc,CAAC;IACzD,YAAqB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;IAAG,CAAC;IAExC,KAAK,CAAC,WAAW,CAAC,EAAa;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAClD,0EAA0E;YAC1E,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAY,CAAC;QACxC,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACrD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,EAAa,EAAE,MAAuB;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACtC,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAa;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACrD,OAAO;YACT,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACxC,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACrD,OAAO;YACT,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,aAAa;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAC;IACzE,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,QAAgB;QAChD,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;IAEO,WAAW,CAAC,EAAa;QAC/B,OAAO,IAAI,CAAC,IAAI,CACd,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,sBAAsB,EAC3B,SAAS,EACT,EAAE,CAAC,MAAM,EACT,GAAG,EAAE,CAAC,IAAI,OAAO,CAClB,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Globally unique identifier for a conversation context.
3
+ */
4
+ export type ContextId = {
5
+ /** Application identifier */
6
+ appId: string;
7
+ /** User identifier */
8
+ userId: string;
9
+ /** Context name */
10
+ name: string;
11
+ };
12
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/llm/context-v2/storage/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/ai-service/llm/context-v2/storage/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import type { LanguageModelUsage } from "ai";
2
+ export declare function isOverflow(usage: LanguageModelUsage, contextLimit: number, outputReserve: number): boolean;
3
+ export declare function getTotalTokens(usage: LanguageModelUsage): number;
4
+ //# sourceMappingURL=token-tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-tracker.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/context-v2/token-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,IAAI,CAAC;AAE7C,wBAAgB,UAAU,CACxB,KAAK,EAAE,kBAAkB,EACzB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,GACpB,OAAO,CAOT;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAMhE"}
@@ -0,0 +1,13 @@
1
+ export function isOverflow(usage, contextLimit, outputReserve) {
2
+ const total = (usage.inputTokens ?? 0) +
3
+ (usage.outputTokens ?? 0) +
4
+ (usage.cachedInputTokens ?? 0);
5
+ const available = contextLimit - outputReserve;
6
+ return total > available;
7
+ }
8
+ export function getTotalTokens(usage) {
9
+ return ((usage.inputTokens ?? 0) +
10
+ (usage.outputTokens ?? 0) +
11
+ (usage.cachedInputTokens ?? 0));
12
+ }
13
+ //# sourceMappingURL=token-tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-tracker.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/context-v2/token-tracker.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,UAAU,CACxB,KAAyB,EACzB,YAAoB,EACpB,aAAqB;IAErB,MAAM,KAAK,GACT,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC;QACxB,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;QACzB,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,CAAC,CAAC;IACjC,MAAM,SAAS,GAAG,YAAY,GAAG,aAAa,CAAC;IAC/C,OAAO,KAAK,GAAG,SAAS,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAyB;IACtD,OAAO,CACL,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC;QACxB,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;QACzB,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,CAAC,CAC/B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { LLMObsTracer } from "../../llmobs/tracer.js";
2
+ import type { SummarizeResult } from "./phase2-session-summarizer.js";
3
+ import type { StoredMessage } from "./types.js";
4
+ /**
5
+ * Creates a truncation-based fallback when LLM summarization fails.
6
+ * Generates a timeline summary of the conversation without returning
7
+ * the actual messages, which can cause provider errors.
8
+ */
9
+ export declare function createTruncationFallback(messages: StoredMessage[], tracer?: LLMObsTracer): SummarizeResult;
10
+ //# sourceMappingURL=truncation-fallback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"truncation-fallback.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/context-v2/truncation-fallback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAyFhD;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,aAAa,EAAE,EACzB,MAAM,GAAE,YAAoC,GAC3C,eAAe,CA0DjB"}