@superblocksteam/vite-plugin-file-sync 2.0.170 → 2.0.171-next.0

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 (491) hide show
  1. package/dist/ai-service/agent/prompts/api-prompts.d.ts.map +1 -1
  2. package/dist/ai-service/agent/prompts/api-prompts.js +4 -6
  3. package/dist/ai-service/agent/prompts/api-prompts.js.map +1 -1
  4. package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts +3 -12
  5. package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts.map +1 -1
  6. package/dist/ai-service/agent/prompts/build-base-system-prompt.js +144 -71
  7. package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
  8. package/dist/ai-service/agent/subagents/testing/types.d.ts +2 -1
  9. package/dist/ai-service/agent/subagents/testing/types.d.ts.map +1 -1
  10. package/dist/ai-service/agent/tool-message-utils.d.ts.map +1 -1
  11. package/dist/ai-service/agent/tool-message-utils.js +47 -36
  12. package/dist/ai-service/agent/tool-message-utils.js.map +1 -1
  13. package/dist/ai-service/agent/tool-result-metrics.d.ts +15 -0
  14. package/dist/ai-service/agent/tool-result-metrics.d.ts.map +1 -1
  15. package/dist/ai-service/agent/tool-result-metrics.js +28 -0
  16. package/dist/ai-service/agent/tool-result-metrics.js.map +1 -1
  17. package/dist/ai-service/agent/tools/apis/analysis.d.ts +24 -2
  18. package/dist/ai-service/agent/tools/apis/analysis.d.ts.map +1 -1
  19. package/dist/ai-service/agent/tools/apis/analysis.js +164 -11
  20. package/dist/ai-service/agent/tools/apis/analysis.js.map +1 -1
  21. package/dist/ai-service/agent/tools/apis/api-comparator.d.ts +2 -1
  22. package/dist/ai-service/agent/tools/apis/api-comparator.d.ts.map +1 -1
  23. package/dist/ai-service/agent/tools/apis/contained-source-reader.d.ts +11 -0
  24. package/dist/ai-service/agent/tools/apis/contained-source-reader.d.ts.map +1 -0
  25. package/dist/ai-service/agent/tools/apis/contained-source-reader.js +48 -0
  26. package/dist/ai-service/agent/tools/apis/contained-source-reader.js.map +1 -0
  27. package/dist/ai-service/agent/tools/apis/get-sdk-api-docs.d.ts +37 -10
  28. package/dist/ai-service/agent/tools/apis/get-sdk-api-docs.d.ts.map +1 -1
  29. package/dist/ai-service/agent/tools/apis/get-sdk-api-docs.js +140 -70
  30. package/dist/ai-service/agent/tools/apis/get-sdk-api-docs.js.map +1 -1
  31. package/dist/ai-service/agent/tools/apis/spreadsheet-csv.d.ts +6 -20
  32. package/dist/ai-service/agent/tools/apis/spreadsheet-csv.d.ts.map +1 -1
  33. package/dist/ai-service/agent/tools/apis/spreadsheet-csv.js +3 -3
  34. package/dist/ai-service/agent/tools/apis/spreadsheet-csv.js.map +1 -1
  35. package/dist/ai-service/agent/tools/apis/test-api-metrics.d.ts +8 -0
  36. package/dist/ai-service/agent/tools/apis/test-api-metrics.d.ts.map +1 -0
  37. package/dist/ai-service/agent/tools/apis/test-api-metrics.js +41 -0
  38. package/dist/ai-service/agent/tools/apis/test-api-metrics.js.map +1 -0
  39. package/dist/ai-service/agent/tools/apis/test-api-timing.d.ts +27 -0
  40. package/dist/ai-service/agent/tools/apis/test-api-timing.d.ts.map +1 -0
  41. package/dist/ai-service/agent/tools/apis/test-api-timing.js +25 -0
  42. package/dist/ai-service/agent/tools/apis/test-api-timing.js.map +1 -0
  43. package/dist/ai-service/agent/tools/apis/test-api.d.ts +4 -0
  44. package/dist/ai-service/agent/tools/apis/test-api.d.ts.map +1 -1
  45. package/dist/ai-service/agent/tools/apis/test-api.js +119 -20
  46. package/dist/ai-service/agent/tools/apis/test-api.js.map +1 -1
  47. package/dist/ai-service/agent/tools/build-capture-screenshot.d.ts +0 -18
  48. package/dist/ai-service/agent/tools/build-capture-screenshot.d.ts.map +1 -1
  49. package/dist/ai-service/agent/tools/build-capture-screenshot.js +2 -2
  50. package/dist/ai-service/agent/tools/build-capture-screenshot.js.map +1 -1
  51. package/dist/ai-service/agent/tools/build-install-packages.d.ts +32 -5
  52. package/dist/ai-service/agent/tools/build-install-packages.d.ts.map +1 -1
  53. package/dist/ai-service/agent/tools/build-install-packages.js +20 -19
  54. package/dist/ai-service/agent/tools/build-install-packages.js.map +1 -1
  55. package/dist/ai-service/agent/tools/build-manage-checklist.d.ts +1 -1
  56. package/dist/ai-service/agent/tools/build-manage-packages.d.ts +19 -0
  57. package/dist/ai-service/agent/tools/build-manage-packages.d.ts.map +1 -0
  58. package/dist/ai-service/agent/tools/build-manage-packages.js +220 -0
  59. package/dist/ai-service/agent/tools/build-manage-packages.js.map +1 -0
  60. package/dist/ai-service/agent/tools/build-read-file.d.ts +5 -14
  61. package/dist/ai-service/agent/tools/build-read-file.d.ts.map +1 -1
  62. package/dist/ai-service/agent/tools/build-read-file.js +5 -8
  63. package/dist/ai-service/agent/tools/build-read-file.js.map +1 -1
  64. package/dist/ai-service/agent/tools/databases/dev-database-tasks.d.ts +2 -90
  65. package/dist/ai-service/agent/tools/databases/dev-database-tasks.d.ts.map +1 -1
  66. package/dist/ai-service/agent/tools/databases/dev-database-tasks.js +1 -2
  67. package/dist/ai-service/agent/tools/databases/dev-database-tasks.js.map +1 -1
  68. package/dist/ai-service/agent/tools/debug-cache.d.ts +0 -12
  69. package/dist/ai-service/agent/tools/debug-cache.d.ts.map +1 -1
  70. package/dist/ai-service/agent/tools/debug-cache.js +1 -1
  71. package/dist/ai-service/agent/tools/debug-cache.js.map +1 -1
  72. package/dist/ai-service/agent/tools/index.d.ts +3 -3
  73. package/dist/ai-service/agent/tools/index.d.ts.map +1 -1
  74. package/dist/ai-service/agent/tools/index.js +2 -2
  75. package/dist/ai-service/agent/tools/index.js.map +1 -1
  76. package/dist/ai-service/agent/tools/integrations/errors.d.ts.map +1 -1
  77. package/dist/ai-service/agent/tools/integrations/errors.js +3 -0
  78. package/dist/ai-service/agent/tools/integrations/errors.js.map +1 -1
  79. package/dist/ai-service/agent/tools/integrations/execute-request.d.ts +27 -0
  80. package/dist/ai-service/agent/tools/integrations/execute-request.d.ts.map +1 -1
  81. package/dist/ai-service/agent/tools/integrations/execute-request.js +85 -11
  82. package/dist/ai-service/agent/tools/integrations/execute-request.js.map +1 -1
  83. package/dist/ai-service/agent/tools/integrations/managed-app-database.d.ts +0 -2
  84. package/dist/ai-service/agent/tools/integrations/managed-app-database.d.ts.map +1 -1
  85. package/dist/ai-service/agent/tools/integrations/managed-app-database.js +1 -1
  86. package/dist/ai-service/agent/tools/integrations/managed-app-database.js.map +1 -1
  87. package/dist/ai-service/agent/tools/integrations/metadata.d.ts.map +1 -1
  88. package/dist/ai-service/agent/tools/integrations/metadata.js +1 -0
  89. package/dist/ai-service/agent/tools/integrations/metadata.js.map +1 -1
  90. package/dist/ai-service/agent/tools/read-state-trackers.d.ts +16 -2
  91. package/dist/ai-service/agent/tools/read-state-trackers.d.ts.map +1 -1
  92. package/dist/ai-service/agent/tools/read-state-trackers.js +11 -2
  93. package/dist/ai-service/agent/tools/read-state-trackers.js.map +1 -1
  94. package/dist/ai-service/agent/tools.d.ts.map +1 -1
  95. package/dist/ai-service/agent/tools.js +13 -6
  96. package/dist/ai-service/agent/tools.js.map +1 -1
  97. package/dist/ai-service/agent/tools2/registry.d.ts +20 -1
  98. package/dist/ai-service/agent/tools2/registry.d.ts.map +1 -1
  99. package/dist/ai-service/agent/tools2/registry.js +55 -9
  100. package/dist/ai-service/agent/tools2/registry.js.map +1 -1
  101. package/dist/ai-service/agent/tools2/tools/grep-metadata-ripgrep.d.ts.map +1 -1
  102. package/dist/ai-service/agent/tools2/tools/grep-metadata-ripgrep.js +25 -0
  103. package/dist/ai-service/agent/tools2/tools/grep-metadata-ripgrep.js.map +1 -1
  104. package/dist/ai-service/agent/tools2/tools/grep-metadata.d.ts +8 -2
  105. package/dist/ai-service/agent/tools2/tools/grep-metadata.d.ts.map +1 -1
  106. package/dist/ai-service/agent/tools2/tools/grep-metadata.js +17 -0
  107. package/dist/ai-service/agent/tools2/tools/grep-metadata.js.map +1 -1
  108. package/dist/ai-service/agent/tools2/tools/grep.d.ts.map +1 -1
  109. package/dist/ai-service/agent/tools2/tools/grep.js +50 -25
  110. package/dist/ai-service/agent/tools2/tools/grep.js.map +1 -1
  111. package/dist/ai-service/agent/utils.d.ts.map +1 -1
  112. package/dist/ai-service/agent/utils.js +3 -3
  113. package/dist/ai-service/agent/utils.js.map +1 -1
  114. package/dist/ai-service/app-interface/file-system-interface.d.ts +0 -6
  115. package/dist/ai-service/app-interface/file-system-interface.d.ts.map +1 -1
  116. package/dist/ai-service/app-interface/file-system-interface.js +39 -97
  117. package/dist/ai-service/app-interface/file-system-interface.js.map +1 -1
  118. package/dist/ai-service/app-interface/filesystem/handlers/skill-handler.d.ts.map +1 -1
  119. package/dist/ai-service/app-interface/filesystem/handlers/skill-handler.js +2 -2
  120. package/dist/ai-service/app-interface/filesystem/handlers/skill-handler.js.map +1 -1
  121. package/dist/ai-service/app-interface/filesystem/validation.js +1 -1
  122. package/dist/ai-service/app-interface/filesystem/validation.js.map +1 -1
  123. package/dist/ai-service/app-interface/npm-package-lookup.d.ts +1 -3
  124. package/dist/ai-service/app-interface/npm-package-lookup.d.ts.map +1 -1
  125. package/dist/ai-service/app-interface/npm-package-lookup.js +1 -1
  126. package/dist/ai-service/app-interface/npm-package-lookup.js.map +1 -1
  127. package/dist/ai-service/app-interface/pnpm-lockfile.d.ts.map +1 -1
  128. package/dist/ai-service/app-interface/pnpm-lockfile.js +2 -4
  129. package/dist/ai-service/app-interface/pnpm-lockfile.js.map +1 -1
  130. package/dist/ai-service/app-interface/shell.d.ts +38 -15
  131. package/dist/ai-service/app-interface/shell.d.ts.map +1 -1
  132. package/dist/ai-service/app-interface/shell.js +646 -48
  133. package/dist/ai-service/app-interface/shell.js.map +1 -1
  134. package/dist/ai-service/app-interface/vulnerability-gate.d.ts +7 -0
  135. package/dist/ai-service/app-interface/vulnerability-gate.d.ts.map +1 -1
  136. package/dist/ai-service/app-interface/vulnerability-gate.js +16 -6
  137. package/dist/ai-service/app-interface/vulnerability-gate.js.map +1 -1
  138. package/dist/ai-service/app-layout.d.ts +3 -0
  139. package/dist/ai-service/app-layout.d.ts.map +1 -1
  140. package/dist/ai-service/app-layout.js +14 -0
  141. package/dist/ai-service/app-layout.js.map +1 -1
  142. package/dist/ai-service/app-skills/parser.d.ts +2 -1
  143. package/dist/ai-service/app-skills/parser.d.ts.map +1 -1
  144. package/dist/ai-service/attachments/store.d.ts +4 -4
  145. package/dist/ai-service/attachments/store.d.ts.map +1 -1
  146. package/dist/ai-service/chat/chat-session-store-metrics.d.ts +1 -2
  147. package/dist/ai-service/chat/chat-session-store-metrics.d.ts.map +1 -1
  148. package/dist/ai-service/chat/chat-session-store-metrics.js +0 -6
  149. package/dist/ai-service/chat/chat-session-store-metrics.js.map +1 -1
  150. package/dist/ai-service/chat/chat-session-store.d.ts +2 -11
  151. package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
  152. package/dist/ai-service/chat/chat-session-store.js +21 -4
  153. package/dist/ai-service/chat/chat-session-store.js.map +1 -1
  154. package/dist/ai-service/chat/utils.d.ts +1 -2
  155. package/dist/ai-service/chat/utils.d.ts.map +1 -1
  156. package/dist/ai-service/chat/utils.js +0 -1
  157. package/dist/ai-service/chat/utils.js.map +1 -1
  158. package/dist/ai-service/checklist/persisted-checklist-store.d.ts +3 -3
  159. package/dist/ai-service/checklist/persisted-checklist-store.d.ts.map +1 -1
  160. package/dist/ai-service/checklist/persisted-checklist-store.js +4 -2
  161. package/dist/ai-service/checklist/persisted-checklist-store.js.map +1 -1
  162. package/dist/ai-service/context/app-context.d.ts +7 -39
  163. package/dist/ai-service/context/app-context.d.ts.map +1 -1
  164. package/dist/ai-service/context/app-context.js +29 -110
  165. package/dist/ai-service/context/app-context.js.map +1 -1
  166. package/dist/ai-service/context-clear-metrics.d.ts +11 -0
  167. package/dist/ai-service/context-clear-metrics.d.ts.map +1 -0
  168. package/dist/ai-service/context-clear-metrics.js +64 -0
  169. package/dist/ai-service/context-clear-metrics.js.map +1 -0
  170. package/dist/ai-service/context-download.js +2 -2
  171. package/dist/ai-service/context-download.js.map +1 -1
  172. package/dist/ai-service/edit-after-clark.d.ts +0 -5
  173. package/dist/ai-service/edit-after-clark.d.ts.map +1 -1
  174. package/dist/ai-service/edit-after-clark.js +1 -1
  175. package/dist/ai-service/edit-after-clark.js.map +1 -1
  176. package/dist/ai-service/features.d.ts +20 -4
  177. package/dist/ai-service/features.d.ts.map +1 -1
  178. package/dist/ai-service/features.js +20 -4
  179. package/dist/ai-service/features.js.map +1 -1
  180. package/dist/ai-service/filter-disabled-tools-for-migration.js +1 -1
  181. package/dist/ai-service/filter-disabled-tools-for-migration.js.map +1 -1
  182. package/dist/ai-service/index.d.ts +58 -0
  183. package/dist/ai-service/index.d.ts.map +1 -1
  184. package/dist/ai-service/index.js +186 -21
  185. package/dist/ai-service/index.js.map +1 -1
  186. package/dist/ai-service/integrations/store.d.ts +6 -0
  187. package/dist/ai-service/integrations/store.d.ts.map +1 -1
  188. package/dist/ai-service/integrations/store.js +101 -3
  189. package/dist/ai-service/integrations/store.js.map +1 -1
  190. package/dist/ai-service/live-edit-events/forwarder.d.ts +1 -12
  191. package/dist/ai-service/live-edit-events/forwarder.d.ts.map +1 -1
  192. package/dist/ai-service/live-edit-events/forwarder.js +1 -7
  193. package/dist/ai-service/live-edit-events/forwarder.js.map +1 -1
  194. package/dist/ai-service/llm/context-v2/compaction/client-side.d.ts.map +1 -1
  195. package/dist/ai-service/llm/context-v2/compaction/client-side.js +15 -5
  196. package/dist/ai-service/llm/context-v2/compaction/client-side.js.map +1 -1
  197. package/dist/ai-service/llm/context-v2/compaction/compaction-strategy.d.ts +6 -0
  198. package/dist/ai-service/llm/context-v2/compaction/compaction-strategy.d.ts.map +1 -1
  199. package/dist/ai-service/llm/context-v2/compaction/server-side.d.ts.map +1 -1
  200. package/dist/ai-service/llm/context-v2/compaction/server-side.js +5 -1
  201. package/dist/ai-service/llm/context-v2/compaction/server-side.js.map +1 -1
  202. package/dist/ai-service/llm/context-v2/compactor.d.ts.map +1 -1
  203. package/dist/ai-service/llm/context-v2/compactor.js +34 -12
  204. package/dist/ai-service/llm/context-v2/compactor.js.map +1 -1
  205. package/dist/ai-service/llm/context-v2/context-management.d.ts.map +1 -1
  206. package/dist/ai-service/llm/context-v2/context-management.js +9 -0
  207. package/dist/ai-service/llm/context-v2/context-management.js.map +1 -1
  208. package/dist/ai-service/llm/context-v2/context-metrics.d.ts +4 -0
  209. package/dist/ai-service/llm/context-v2/context-metrics.d.ts.map +1 -1
  210. package/dist/ai-service/llm/context-v2/context-metrics.js +15 -3
  211. package/dist/ai-service/llm/context-v2/context-metrics.js.map +1 -1
  212. package/dist/ai-service/llm/context-v2/context.d.ts +36 -6
  213. package/dist/ai-service/llm/context-v2/context.d.ts.map +1 -1
  214. package/dist/ai-service/llm/context-v2/context.js +72 -28
  215. package/dist/ai-service/llm/context-v2/context.js.map +1 -1
  216. package/dist/ai-service/llm/context-v2/manager.d.ts +3 -3
  217. package/dist/ai-service/llm/context-v2/manager.d.ts.map +1 -1
  218. package/dist/ai-service/llm/context-v2/manager.js +13 -7
  219. package/dist/ai-service/llm/context-v2/manager.js.map +1 -1
  220. package/dist/ai-service/llm/context-v2/migrations/types.d.ts +2 -1
  221. package/dist/ai-service/llm/context-v2/migrations/types.d.ts.map +1 -1
  222. package/dist/ai-service/llm/context-v2/storage/event-types.d.ts +5 -5
  223. package/dist/ai-service/llm/context-v2/storage/event-types.d.ts.map +1 -1
  224. package/dist/ai-service/llm/context-v2/storage/event-types.js +3 -23
  225. package/dist/ai-service/llm/context-v2/storage/event-types.js.map +1 -1
  226. package/dist/ai-service/llm/context-v2/types.d.ts +9 -1
  227. package/dist/ai-service/llm/context-v2/types.d.ts.map +1 -1
  228. package/dist/ai-service/llm/context-v2/types.js.map +1 -1
  229. package/dist/ai-service/llm/context-v2/uniquify-filenames.d.ts +20 -4
  230. package/dist/ai-service/llm/context-v2/uniquify-filenames.d.ts.map +1 -1
  231. package/dist/ai-service/llm/context-v2/uniquify-filenames.js +128 -29
  232. package/dist/ai-service/llm/context-v2/uniquify-filenames.js.map +1 -1
  233. package/dist/ai-service/llm/error.d.ts +1 -1
  234. package/dist/ai-service/llm/error.d.ts.map +1 -1
  235. package/dist/ai-service/llm/error.js +57 -7
  236. package/dist/ai-service/llm/error.js.map +1 -1
  237. package/dist/ai-service/llm/stream/config.d.ts +3 -3
  238. package/dist/ai-service/llm/stream/config.d.ts.map +1 -1
  239. package/dist/ai-service/llm/stream/errors.d.ts +3 -0
  240. package/dist/ai-service/llm/stream/errors.d.ts.map +1 -1
  241. package/dist/ai-service/llm/stream/errors.js +72 -4
  242. package/dist/ai-service/llm/stream/errors.js.map +1 -1
  243. package/dist/ai-service/llm/stream/observers/workflow-usage.d.ts +0 -6
  244. package/dist/ai-service/llm/stream/observers/workflow-usage.d.ts.map +1 -1
  245. package/dist/ai-service/llm/stream/observers/workflow-usage.js +2 -2
  246. package/dist/ai-service/llm/stream/observers/workflow-usage.js.map +1 -1
  247. package/dist/ai-service/llm/stream/orchestrator.d.ts.map +1 -1
  248. package/dist/ai-service/llm/stream/orchestrator.js +6 -1
  249. package/dist/ai-service/llm/stream/orchestrator.js.map +1 -1
  250. package/dist/ai-service/managed-native-db-availability.d.ts +5 -2
  251. package/dist/ai-service/managed-native-db-availability.d.ts.map +1 -1
  252. package/dist/ai-service/managed-native-db-availability.js +5 -1
  253. package/dist/ai-service/managed-native-db-availability.js.map +1 -1
  254. package/dist/ai-service/mcp/embedded-playwright-mcp-server.js +2 -0
  255. package/dist/ai-service/mcp/embedded-playwright-mcp-server.js.map +1 -1
  256. package/dist/ai-service/migration-prompt-gating.d.ts +1 -0
  257. package/dist/ai-service/migration-prompt-gating.d.ts.map +1 -1
  258. package/dist/ai-service/migration-prompt-gating.js +3 -0
  259. package/dist/ai-service/migration-prompt-gating.js.map +1 -1
  260. package/dist/ai-service/migration-turns-log.d.ts +3 -2
  261. package/dist/ai-service/migration-turns-log.d.ts.map +1 -1
  262. package/dist/ai-service/migration-turns-log.js.map +1 -1
  263. package/dist/ai-service/policy-agent-metrics.d.ts +2 -4
  264. package/dist/ai-service/policy-agent-metrics.d.ts.map +1 -1
  265. package/dist/ai-service/policy-agent-metrics.js +3 -3
  266. package/dist/ai-service/policy-agent-metrics.js.map +1 -1
  267. package/dist/ai-service/policy-gate-remediation-usage.d.ts.map +1 -1
  268. package/dist/ai-service/policy-gate-remediation-usage.js +29 -19
  269. package/dist/ai-service/policy-gate-remediation-usage.js.map +1 -1
  270. package/dist/ai-service/prompt-builder-service/classifiers/prompt-interpret-task.js +1 -1
  271. package/dist/ai-service/prompt-builder-service/classifiers/prompt-interpret-task.js.map +1 -1
  272. package/dist/ai-service/recording/types.d.ts +6 -5
  273. package/dist/ai-service/recording/types.d.ts.map +1 -1
  274. package/dist/ai-service/skills/system/_registry.generated.d.ts.map +1 -1
  275. package/dist/ai-service/skills/system/_registry.generated.js +10 -0
  276. package/dist/ai-service/skills/system/_registry.generated.js.map +1 -1
  277. package/dist/ai-service/skills/system/app-database/skill.generated.d.ts +2 -0
  278. package/dist/ai-service/skills/system/app-database/skill.generated.d.ts.map +1 -0
  279. package/dist/ai-service/skills/system/app-database/skill.generated.js +79 -0
  280. package/dist/ai-service/skills/system/app-database/skill.generated.js.map +1 -0
  281. package/dist/ai-service/skills/system/resolve.d.ts +1 -1
  282. package/dist/ai-service/skills/system/resolve.d.ts.map +1 -1
  283. package/dist/ai-service/skills/system/resolve.js +25 -2
  284. package/dist/ai-service/skills/system/resolve.js.map +1 -1
  285. package/dist/ai-service/skills/system/spreadsheet-import/skill.generated.d.ts +1 -1
  286. package/dist/ai-service/skills/system/spreadsheet-import/skill.generated.d.ts.map +1 -1
  287. package/dist/ai-service/skills/system/spreadsheet-import/skill.generated.js +1 -1
  288. package/dist/ai-service/skills/system/superblocks-frontend/_variants/base-ui-plain.generated.d.ts +2 -0
  289. package/dist/ai-service/skills/system/superblocks-frontend/_variants/base-ui-plain.generated.d.ts.map +1 -0
  290. package/dist/ai-service/skills/system/superblocks-frontend/_variants/base-ui-plain.generated.js +5 -0
  291. package/dist/ai-service/skills/system/superblocks-frontend/_variants/base-ui-plain.generated.js.map +1 -0
  292. package/dist/ai-service/skills/system/superblocks-frontend/_variants/base-ui-registered.generated.d.ts +2 -0
  293. package/dist/ai-service/skills/system/superblocks-frontend/_variants/base-ui-registered.generated.d.ts.map +1 -0
  294. package/dist/ai-service/skills/system/superblocks-frontend/_variants/base-ui-registered.generated.js +5 -0
  295. package/dist/ai-service/skills/system/superblocks-frontend/_variants/base-ui-registered.generated.js.map +1 -0
  296. package/dist/ai-service/skills/system/superblocks-frontend/_variants/icons-lucide.generated.d.ts +2 -0
  297. package/dist/ai-service/skills/system/superblocks-frontend/_variants/icons-lucide.generated.d.ts.map +1 -0
  298. package/dist/ai-service/skills/system/superblocks-frontend/_variants/icons-lucide.generated.js +32 -0
  299. package/dist/ai-service/skills/system/superblocks-frontend/_variants/icons-lucide.generated.js.map +1 -0
  300. package/dist/ai-service/skills/system/superblocks-frontend/_variants/icons-wrapper.generated.d.ts +2 -0
  301. package/dist/ai-service/skills/system/superblocks-frontend/_variants/icons-wrapper.generated.d.ts.map +1 -0
  302. package/dist/ai-service/skills/system/superblocks-frontend/_variants/icons-wrapper.generated.js +34 -0
  303. package/dist/ai-service/skills/system/superblocks-frontend/_variants/icons-wrapper.generated.js.map +1 -0
  304. package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.d.ts +1 -1
  305. package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.d.ts.map +1 -1
  306. package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.js +99 -68
  307. package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.js.map +1 -1
  308. package/dist/ai-service/skills/system/superblocks-migration/skill.generated.d.ts +1 -1
  309. package/dist/ai-service/skills/system/superblocks-migration/skill.generated.d.ts.map +1 -1
  310. package/dist/ai-service/skills/system/superblocks-migration/skill.generated.js +4 -4
  311. package/dist/ai-service/skills/system/superblocks-sdk-api/skill.generated.d.ts +1 -1
  312. package/dist/ai-service/skills/system/superblocks-sdk-api/skill.generated.d.ts.map +1 -1
  313. package/dist/ai-service/skills/system/superblocks-sdk-api/skill.generated.js +7 -7
  314. package/dist/ai-service/skills/system/third-party-migration/skill.generated.d.ts +1 -1
  315. package/dist/ai-service/skills/system/third-party-migration/skill.generated.d.ts.map +1 -1
  316. package/dist/ai-service/skills/system/third-party-migration/skill.generated.js +1 -1
  317. package/dist/ai-service/state-machine/clark-fsm.d.ts +2 -3
  318. package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
  319. package/dist/ai-service/state-machine/clark-fsm.js +1 -1
  320. package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
  321. package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -1
  322. package/dist/ai-service/state-machine/handlers/agent-planning.js +1 -4
  323. package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
  324. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
  325. package/dist/ai-service/state-machine/handlers/llm-generating.js +21 -12
  326. package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
  327. package/dist/ai-service/state-machine/helpers/prompt-degradation-cause.d.ts +63 -0
  328. package/dist/ai-service/state-machine/helpers/prompt-degradation-cause.d.ts.map +1 -0
  329. package/dist/ai-service/state-machine/helpers/prompt-degradation-cause.js +96 -0
  330. package/dist/ai-service/state-machine/helpers/prompt-degradation-cause.js.map +1 -0
  331. package/dist/ai-service/state-machine/helpers/prompt-degradation-metrics.d.ts +12 -3
  332. package/dist/ai-service/state-machine/helpers/prompt-degradation-metrics.d.ts.map +1 -1
  333. package/dist/ai-service/state-machine/helpers/prompt-degradation-metrics.js +89 -17
  334. package/dist/ai-service/state-machine/helpers/prompt-degradation-metrics.js.map +1 -1
  335. package/dist/ai-service/state-machine/helpers/prompt-org-claims.d.ts +17 -0
  336. package/dist/ai-service/state-machine/helpers/prompt-org-claims.d.ts.map +1 -0
  337. package/dist/ai-service/state-machine/helpers/prompt-org-claims.js +50 -0
  338. package/dist/ai-service/state-machine/helpers/prompt-org-claims.js.map +1 -0
  339. package/dist/ai-service/state-machine/helpers/prompt-request-metrics.d.ts +6 -0
  340. package/dist/ai-service/state-machine/helpers/prompt-request-metrics.d.ts.map +1 -1
  341. package/dist/ai-service/state-machine/helpers/prompt-request-metrics.js +35 -5
  342. package/dist/ai-service/state-machine/helpers/prompt-request-metrics.js.map +1 -1
  343. package/dist/ai-service/state-machine/mocks.d.ts.map +1 -1
  344. package/dist/ai-service/state-machine/mocks.js +1 -4
  345. package/dist/ai-service/state-machine/mocks.js.map +1 -1
  346. package/dist/ai-service/tasks/peer-push.d.ts +2 -1
  347. package/dist/ai-service/tasks/peer-push.d.ts.map +1 -1
  348. package/dist/ai-service/test-utils/metrics-harness.d.ts +2 -1
  349. package/dist/ai-service/test-utils/metrics-harness.d.ts.map +1 -1
  350. package/dist/ai-service/util/llm-config-utils.d.ts +16 -5
  351. package/dist/ai-service/util/llm-config-utils.d.ts.map +1 -1
  352. package/dist/ai-service/util/llm-config-utils.js +25 -3
  353. package/dist/ai-service/util/llm-config-utils.js.map +1 -1
  354. package/dist/ai-service/util/parse-jwt.d.ts +5 -1
  355. package/dist/ai-service/util/parse-jwt.d.ts.map +1 -1
  356. package/dist/ai-service/util/parse-jwt.js +9 -1
  357. package/dist/ai-service/util/parse-jwt.js.map +1 -1
  358. package/dist/app-scope-source.d.ts +13 -0
  359. package/dist/app-scope-source.d.ts.map +1 -0
  360. package/dist/app-scope-source.js +68 -0
  361. package/dist/app-scope-source.js.map +1 -0
  362. package/dist/extract-api-integrations.d.ts +28 -6
  363. package/dist/extract-api-integrations.d.ts.map +1 -1
  364. package/dist/extract-api-integrations.js +166 -98
  365. package/dist/extract-api-integrations.js.map +1 -1
  366. package/dist/file-sync-vite-plugin.d.ts +1 -5
  367. package/dist/file-sync-vite-plugin.d.ts.map +1 -1
  368. package/dist/file-sync-vite-plugin.js +44 -70
  369. package/dist/file-sync-vite-plugin.js.map +1 -1
  370. package/dist/file-system-helpers.d.ts +0 -5
  371. package/dist/file-system-helpers.d.ts.map +1 -1
  372. package/dist/file-system-helpers.js +1 -1
  373. package/dist/file-system-helpers.js.map +1 -1
  374. package/dist/file-system-manager.d.ts +2 -9
  375. package/dist/file-system-manager.d.ts.map +1 -1
  376. package/dist/file-system-manager.js +50 -118
  377. package/dist/file-system-manager.js.map +1 -1
  378. package/dist/git-service/index.d.ts.map +1 -1
  379. package/dist/git-service/index.js +8 -0
  380. package/dist/git-service/index.js.map +1 -1
  381. package/dist/lock-service/index.d.ts +24 -0
  382. package/dist/lock-service/index.d.ts.map +1 -1
  383. package/dist/lock-service/index.js +74 -2
  384. package/dist/lock-service/index.js.map +1 -1
  385. package/dist/migration/integration-write-policy.d.ts +2 -1
  386. package/dist/migration/integration-write-policy.d.ts.map +1 -1
  387. package/dist/migration/integration-write-policy.js.map +1 -1
  388. package/dist/migration/restructure.d.ts +1 -1
  389. package/dist/migration/restructure.d.ts.map +1 -1
  390. package/dist/migration/restructure.js +1 -1
  391. package/dist/migration/restructure.js.map +1 -1
  392. package/dist/migration/translation-prompt.js +1 -1
  393. package/dist/migration-templates/app-fullstack/client/components/ui/accordion.tsx +0 -69
  394. package/dist/migration-templates/app-fullstack/client/components/ui/aspect-ratio.tsx +0 -31
  395. package/dist/migration-templates/app-fullstack/client/components/ui/avatar.tsx +0 -52
  396. package/dist/migration-templates/app-fullstack/client/components/ui/badge.tsx +5 -79
  397. package/dist/migration-templates/app-fullstack/client/components/ui/breadcrumb.tsx +14 -161
  398. package/dist/migration-templates/app-fullstack/client/components/ui/button.tsx +1 -53
  399. package/dist/migration-templates/app-fullstack/client/components/ui/calendar.tsx +4 -56
  400. package/dist/migration-templates/app-fullstack/client/components/ui/card.tsx +0 -34
  401. package/dist/migration-templates/app-fullstack/client/components/ui/chart.tsx +3 -51
  402. package/dist/migration-templates/app-fullstack/client/components/ui/checkbox.tsx +0 -42
  403. package/dist/migration-templates/app-fullstack/client/components/ui/dialog.tsx +0 -55
  404. package/dist/migration-templates/app-fullstack/client/components/ui/dropdown-menu.tsx +0 -29
  405. package/dist/migration-templates/app-fullstack/client/components/ui/hover-card.tsx +0 -64
  406. package/dist/migration-templates/app-fullstack/client/components/ui/input.tsx +0 -57
  407. package/dist/migration-templates/app-fullstack/client/components/ui/label.tsx +0 -30
  408. package/dist/migration-templates/app-fullstack/client/components/ui/navigation-menu.tsx +16 -172
  409. package/dist/migration-templates/app-fullstack/client/components/ui/pagination.tsx +0 -44
  410. package/dist/migration-templates/app-fullstack/client/components/ui/popover.tsx +0 -64
  411. package/dist/migration-templates/app-fullstack/client/components/ui/progress.tsx +0 -31
  412. package/dist/migration-templates/app-fullstack/client/components/ui/scroll-area.tsx +0 -30
  413. package/dist/migration-templates/app-fullstack/client/components/ui/select.tsx +0 -41
  414. package/dist/migration-templates/app-fullstack/client/components/ui/separator.tsx +0 -29
  415. package/dist/migration-templates/app-fullstack/client/components/ui/sheet.tsx +0 -64
  416. package/dist/migration-templates/app-fullstack/client/components/ui/sidebar.tsx +30 -265
  417. package/dist/migration-templates/app-fullstack/client/components/ui/slider.tsx +0 -45
  418. package/dist/migration-templates/app-fullstack/client/components/ui/switch.tsx +0 -41
  419. package/dist/migration-templates/app-fullstack/client/components/ui/table.tsx +0 -32
  420. package/dist/migration-templates/app-fullstack/client/components/ui/tabs.tsx +0 -23
  421. package/dist/migration-templates/app-fullstack/client/components/ui/textarea.tsx +0 -48
  422. package/dist/migration-templates/app-fullstack/client/components/ui/toggle-group.tsx +0 -81
  423. package/dist/migration-templates/app-fullstack/client/components/ui/toggle.tsx +0 -46
  424. package/dist/migration-templates/app-fullstack/client/components/ui/tooltip.tsx +0 -63
  425. package/dist/migration-templates/app-fullstack/eslint.config.js +7 -0
  426. package/dist/migration-templates/app-fullstack/package.json +0 -3
  427. package/dist/parsing/types.d.ts +3 -2
  428. package/dist/parsing/types.d.ts.map +1 -1
  429. package/dist/policy-gate-runner.d.ts +1 -1
  430. package/dist/policy-gate-runner.d.ts.map +1 -1
  431. package/dist/policy-gate-runner.js.map +1 -1
  432. package/dist/reconnect-guard-plugin.d.ts +0 -1
  433. package/dist/reconnect-guard-plugin.d.ts.map +1 -1
  434. package/dist/reconnect-guard-plugin.js +1 -1
  435. package/dist/reconnect-guard-plugin.js.map +1 -1
  436. package/dist/resolver.d.ts +1 -1
  437. package/dist/resolver.d.ts.map +1 -1
  438. package/dist/resolver.js +2 -2
  439. package/dist/resolver.js.map +1 -1
  440. package/dist/socket-manager.d.ts.map +1 -1
  441. package/dist/socket-manager.js +12 -2
  442. package/dist/socket-manager.js.map +1 -1
  443. package/dist/source-tracker.d.ts +5 -15
  444. package/dist/source-tracker.d.ts.map +1 -1
  445. package/dist/source-tracker.js +28 -66
  446. package/dist/source-tracker.js.map +1 -1
  447. package/dist/sync-service/checkpoint-result.d.ts +6 -5
  448. package/dist/sync-service/checkpoint-result.d.ts.map +1 -1
  449. package/dist/sync-service/checkpoint-result.js +9 -8
  450. package/dist/sync-service/checkpoint-result.js.map +1 -1
  451. package/dist/sync-service/index.d.ts +1 -0
  452. package/dist/sync-service/index.d.ts.map +1 -1
  453. package/dist/sync-service/index.js +8 -1
  454. package/dist/sync-service/index.js.map +1 -1
  455. package/dist/sync-service/snapshot/types.d.ts +3 -2
  456. package/dist/sync-service/snapshot/types.d.ts.map +1 -1
  457. package/dist/util/generation-wait-timeout-error.d.ts +12 -0
  458. package/dist/util/generation-wait-timeout-error.d.ts.map +1 -0
  459. package/dist/util/generation-wait-timeout-error.js +16 -0
  460. package/dist/util/generation-wait-timeout-error.js.map +1 -0
  461. package/package.json +9 -13
  462. package/dist/ai-service/agent/tools/apis/sdk-root-documentation.d.ts +0 -20
  463. package/dist/ai-service/agent/tools/apis/sdk-root-documentation.d.ts.map +0 -1
  464. package/dist/ai-service/agent/tools/apis/sdk-root-documentation.js +0 -284
  465. package/dist/ai-service/agent/tools/apis/sdk-root-documentation.js.map +0 -1
  466. package/dist/migration-templates/app-fullstack/client/components/hooks/use-active-page.ts +0 -73
  467. package/dist/migration-templates/app-fullstack/client/components/ui/area-chart.tsx +0 -312
  468. package/dist/migration-templates/app-fullstack/client/components/ui/bar-chart.tsx +0 -264
  469. package/dist/migration-templates/app-fullstack/client/components/ui/code-block-content.tsx +0 -66
  470. package/dist/migration-templates/app-fullstack/client/components/ui/date-range-picker.tsx +0 -255
  471. package/dist/migration-templates/app-fullstack/client/components/ui/file-dropzone.tsx +0 -312
  472. package/dist/migration-templates/app-fullstack/client/components/ui/file-input.tsx +0 -105
  473. package/dist/migration-templates/app-fullstack/client/components/ui/icon.tsx +0 -120
  474. package/dist/migration-templates/app-fullstack/client/components/ui/image.tsx +0 -56
  475. package/dist/migration-templates/app-fullstack/client/components/ui/line-chart.tsx +0 -264
  476. package/dist/migration-templates/app-fullstack/client/components/ui/link.tsx +0 -119
  477. package/dist/migration-templates/app-fullstack/client/components/ui/pie-chart.tsx +0 -181
  478. package/dist/migration-templates/app-fullstack/client/components/ui/radar-chart.tsx +0 -252
  479. package/dist/migration-templates/app-fullstack/client/components/ui/radial-chart.tsx +0 -250
  480. package/dist/refactor/entities.d.ts +0 -6
  481. package/dist/refactor/entities.d.ts.map +0 -1
  482. package/dist/refactor/entities.js +0 -65
  483. package/dist/refactor/entities.js.map +0 -1
  484. package/dist/refactor/javascript.d.ts +0 -15
  485. package/dist/refactor/javascript.d.ts.map +0 -1
  486. package/dist/refactor/javascript.js +0 -283
  487. package/dist/refactor/javascript.js.map +0 -1
  488. package/dist/rename-manager.d.ts +0 -28
  489. package/dist/rename-manager.d.ts.map +0 -1
  490. package/dist/rename-manager.js +0 -161
  491. package/dist/rename-manager.js.map +0 -1
@@ -11,6 +11,7 @@ import { npmRegistryEmitter } from "@superblocksteam/telemetry";
11
11
  import { applyTestApiDenialSideEffects, buildMigrationTestApiDenialContinuationPrompt, } from "../migration/mark-api-testing-denied.js";
12
12
  import { buildTranslationPrompt } from "../migration/translation-prompt.js";
13
13
  import { POLICY_GATE_RUN_IN_PROGRESS_ERROR, policyGateRunRegistry, } from "../policy-gate-run-registry.js";
14
+ import { GenerationWaitTimeoutError } from "../util/generation-wait-timeout-error.js";
14
15
  import { getErrorMeta, getLogger, setDefaultLogger } from "../util/logger.js";
15
16
  import { OperationQueue } from "../util/operation-queue.js";
16
17
  import { composeSecurityAgentPrompt, } from "./agent/prompts/build-security-scan-prompt.js";
@@ -41,6 +42,7 @@ import { ChatSessionStore } from "./chat/chat-session-store.js";
41
42
  import { normalizeTextAttachmentForModel } from "./chat/utils.js";
42
43
  import { API_MIGRATION_ORIGINS, cancelPolicyRemediation, seedPolicyRemediationChecklist, isApiMigrationOrigin, readPersistedChecklist, readRemediationRun, updateChecklistItem, advancePolicyRemediationTurn, MAX_REMEDIATION_TURNS, failPolicyRemediationDispatch, } from "./checklist/persisted-checklist-store.js";
43
44
  import { fetchRemediationFindings } from "./checklist/remediation-findings-client.js";
45
+ import { recordDeferredContextClear, registerPendingContextClearSource, } from "./context-clear-metrics.js";
44
46
  import { downloadContextFromBucketeer, downloadLatestContextFromBucketeer, restoreContextFromCheckpoint, } from "./context-download.js";
45
47
  import { restoreConversationToCheckpoint, } from "./context-restore.js";
46
48
  import { uploadContextToBucketeer } from "./context-upload.js";
@@ -68,6 +70,7 @@ import { adoptLegacyPerUserContextDirs } from "./llm/context-v2/storage/legacy-c
68
70
  import { LocalContextStorageV2 } from "./llm/context-v2/storage/local.js";
69
71
  import { buildRestoredContextUsageSnapshot } from "./llm/context-v2/token-tracker.js";
70
72
  import { toJsonValue, } from "./llm/context-v2/types.js";
73
+ import { sanitizeFilename } from "./llm/context-v2/uniquify-filenames.js";
71
74
  import { createLLMProvider, setSpanError } from "./llm/provider.js";
72
75
  import { createAbortReason } from "./llm/stream/abort-reason.js";
73
76
  import { getJwtTraceTags, traceLLM } from "./llmobs/helpers.js";
@@ -108,7 +111,8 @@ import { finalizePolicyGateUsageMetrics, policyGateFailureFromStream, recordPoli
108
111
  import { finalizePromptBillingMetrics } from "./state-machine/helpers/prompt-billing-metrics.js";
109
112
  import { setPromptDegradationMetricIdentity } from "./state-machine/helpers/prompt-degradation-metrics.js";
110
113
  import { paywallStopAdvice } from "./state-machine/helpers/prompt-failure.js";
111
- import { CLARK_USAGE_ORIGIN, promptFailureFromStreamAbort, promptFailurePaywall, promptFailurePlatform, promptFailureUserCanceled, PROMPT_ATTEMPT_ENTRYPOINT, recordBaseCommitResolutionFailed, recordPromptAttempt, recordPromptEntryRejection, recordPromptOutcome, recordAwaitingUserHandoffDismissed, resolvePromptMetricLabels, resolvePromptOutcomeDedupeKey, resolvePromptRequestDedupeKey, setPromptRequestMetricIdentity, } from "./state-machine/helpers/prompt-request-metrics.js";
114
+ import { orgClaimsFromJwt } from "./state-machine/helpers/prompt-org-claims.js";
115
+ import { CLARK_USAGE_ORIGIN, promptFailureFromStreamAbort, promptFailurePaywall, promptFailurePlatform, promptFailureUserCanceled, PROMPT_ATTEMPT_ENTRYPOINT, recordBaseCommitResolutionFailed, recordPromptAttempt, recordPromptEntryRejection, recordPromptOutcome, recordAwaitingUserHandoffDismissed, resolvePromptMetricLabels, resolvePromptOutcomeDedupeKey, resolvePromptRequestDedupeKey, setPromptOrgClaims, setPromptRequestMetricIdentity, } from "./state-machine/helpers/prompt-request-metrics.js";
112
116
  import { catchBackgroundPeerDisconnect, StablePeer, } from "./state-machine/helpers/stable-peer.js";
113
117
  import { transitionFrom } from "./state-machine/helpers/transition.js";
114
118
  import { resolveUserPreferences } from "./state-machine/helpers/user-preferences.js";
@@ -116,7 +120,7 @@ import { createUserResponseMessage } from "./state-machine/helpers/user-response
116
120
  import { isTaskAccessibleTo, registerBackgroundTaskTypes, resyncActiveTaskStatusesToPeer, TaskStore, wireTaskStatusPushToPeer, } from "./tasks/index.js";
117
121
  import { TemplateRenderer } from "./template-renderer.js";
118
122
  import { describeMigrationInferenceJwt, isUsableMigrationInferenceJwt, } from "./util/inference-jwt.js";
119
- import { buildModelConfigAttributes, processLLMConfig, } from "./util/llm-config-utils.js";
123
+ import { buildModelConfigAttributes, processLLMConfig, processOneShotLLMConfig, } from "./util/llm-config-utils.js";
120
124
  import { parseJwt } from "./util/parse-jwt.js";
121
125
  import { PERMISSION_PROMPT_DELIVERY_TIMEOUT_MS } from "./util/rpc-timeout.js";
122
126
  import { getToolCallSignature } from "./util/tool-signature.js";
@@ -512,6 +516,21 @@ export class AiService extends TracedEventEmitter {
512
516
  activeGenerationTrace;
513
517
  currentGenerationId;
514
518
  generationStarting = false;
519
+ /**
520
+ * The context, and why, that a busy editor disconnect or connection reset
521
+ * left to be cleared once the turn settles (see `releaseEditorContext`).
522
+ * `deferredAt` is the epoch ms when the clear was deferred, logged as
523
+ * `pendingMs` and reported by the pending-age gauge, so a deferral that
524
+ * never resolves stands out from a long turn. `departedPeerId` is the
525
+ * editor whose departure deferred it. It is logged on every lifecycle
526
+ * event for correlation, not compared against the rebinding peer: the
527
+ * browser mints a new peerId on every page load, so inequality cannot
528
+ * tell a reload from a different user.
529
+ * Plain state rather than a per-disconnect listener:
530
+ * `TracedEventEmitter.on` wraps listeners, so `off`/`once` cannot remove
531
+ * them.
532
+ */
533
+ pendingContextClear;
515
534
  /** JWT-derived userId of the currently-authenticated peer, set by
516
535
  * `notifyAuthenticatedRpc` and cleared on disconnect / peer swap.
517
536
  * Only trusted while `authenticatedPeerId` still matches the bound
@@ -773,6 +792,8 @@ export class AiService extends TracedEventEmitter {
773
792
  organizationId: config.organizationId,
774
793
  });
775
794
  this.startLiveEditEventForwarding();
795
+ this.on("generationSettled", (generationId) => this.runPendingContextClear(generationId));
796
+ registerPendingContextClearSource(() => this.pendingContextClear?.deferredAt);
776
797
  // Store the wrapped logger so getLogger() can return it
777
798
  // The wrapped logger forwards logs to the browser console when Clark logs are enabled
778
799
  this._logger = getLogger();
@@ -2680,6 +2701,9 @@ export class AiService extends TracedEventEmitter {
2680
2701
  }
2681
2702
  async handleAiGenerate(request, inputSource, remediationContinuationSignal) {
2682
2703
  this.getLogger().info(`[ai-service] handleAiGenerate: peerId=${this.stablePeer.peerId ?? "unknown"}`);
2704
+ // Before the first rejection below: a rejected prompt is an attempt and an
2705
+ // outcome too, and carries this request's plan, not an earlier prompt's.
2706
+ setPromptOrgClaims(orgClaimsFromJwt(request.jwt));
2683
2707
  this.storeMigrationTurnCredentials(request.jwt, request.llmConfig);
2684
2708
  if (this.clark.state === ClarkStateNames.Dead) {
2685
2709
  recordPromptEntryRejection({
@@ -2742,8 +2766,14 @@ export class AiService extends TracedEventEmitter {
2742
2766
  return;
2743
2767
  }
2744
2768
  }
2745
- const remediation = request.policyGateRemediation?.batched === true
2746
- ? request.policyGateRemediation
2769
+ // Checklist batching needs review findings. Dependency-scan attribution
2770
+ // (inbox CVE Fix with Clark) can carry batched from the feature flag but
2771
+ // has no reviewFindingIds, so keep billing metadata without seeding.
2772
+ const reviewFindingIds = request.policyGateRemediation?.reviewFindingIds;
2773
+ const remediation = request.policyGateRemediation?.batched === true &&
2774
+ reviewFindingIds != null &&
2775
+ reviewFindingIds.length > 0
2776
+ ? { ...request.policyGateRemediation, reviewFindingIds }
2747
2777
  : undefined;
2748
2778
  if (!remediation &&
2749
2779
  !request.responseMetadata &&
@@ -3049,7 +3079,7 @@ export class AiService extends TracedEventEmitter {
3049
3079
  thinkingEnabled: false,
3050
3080
  }
3051
3081
  : undefined;
3052
- const { providerOptions, headers } = processLLMConfig(llmConfig, 5000, `AI Summarize API Usage (${request.apiName})`);
3082
+ const { providerOptions, headers } = processOneShotLLMConfig(llmConfig, 5000, `AI Summarize API Usage (${request.apiName})`);
3053
3083
  const llmProviderSettings = this.getLLMProviderSettings(llmConfig);
3054
3084
  const llmProvider = createLLMProvider(llmProviderSettings, () => this.requireProvidedInferenceJwt(request.jwt, "live-edit request"), llmConfig, () => helperSystemAiAttributes({
3055
3085
  applicationId: this.config.applicationId,
@@ -3156,7 +3186,7 @@ export class AiService extends TracedEventEmitter {
3156
3186
  thinkingEnabled: false,
3157
3187
  }
3158
3188
  : undefined;
3159
- const { providerOptions, headers } = processLLMConfig(llmConfig, 2000, `AI Summarize Error`);
3189
+ const { providerOptions, headers } = processOneShotLLMConfig(llmConfig, 2000, `AI Summarize Error`);
3160
3190
  const llmProviderSettings = this.getLLMProviderSettings(llmConfig);
3161
3191
  const llmProvider = createLLMProvider(llmProviderSettings, () => this.requireProvidedInferenceJwt(request.jwt, "live-edit request"), llmConfig, () => helperSystemAiAttributes({
3162
3192
  applicationId: this.config.applicationId,
@@ -3246,7 +3276,7 @@ export class AiService extends TracedEventEmitter {
3246
3276
  thinkingEnabled: false,
3247
3277
  }
3248
3278
  : undefined;
3249
- const { providerOptions, headers } = processLLMConfig(llmConfig, 2000, `AI Summarize Destructive Migration`);
3279
+ const { providerOptions, headers } = processOneShotLLMConfig(llmConfig, 2000, `AI Summarize Destructive Migration`);
3250
3280
  const llmProviderSettings = this.getLLMProviderSettings(llmConfig);
3251
3281
  const llmProvider = createLLMProvider(llmProviderSettings, () => this.requireProvidedInferenceJwt(request.jwt, "live-edit request"), llmConfig, () => helperSystemAiAttributes({
3252
3282
  applicationId: this.config.applicationId,
@@ -3414,15 +3444,24 @@ export class AiService extends TracedEventEmitter {
3414
3444
  type: "file",
3415
3445
  data,
3416
3446
  mediaType,
3417
- filename: resolveAttachmentFileName({
3447
+ // Labeling skips uniquifyFilePartFilenames (stateless generateObject).
3448
+ // Bedrock still rejects the original filename on document.name.
3449
+ filename: sanitizeFilename(resolveAttachmentFileName({
3418
3450
  fileName: attachment.fileName,
3419
3451
  mediaType,
3420
3452
  type: attachment.type,
3421
- }),
3453
+ })),
3422
3454
  };
3423
3455
  }
3424
3456
  if (isUploadedAttachment(attachment)) {
3425
- return toUploadedAttachmentContentPart(attachment);
3457
+ const uploaded = toUploadedAttachmentContentPart(attachment);
3458
+ if (uploaded.type === "file" && typeof uploaded.filename === "string") {
3459
+ const filename = sanitizeFilename(uploaded.filename);
3460
+ if (filename !== uploaded.filename) {
3461
+ return { ...uploaded, filename };
3462
+ }
3463
+ }
3464
+ return uploaded;
3426
3465
  }
3427
3466
  const normalizedTextAttachment = normalizeTextAttachmentForModel(attachment);
3428
3467
  if (normalizedTextAttachment) {
@@ -3666,6 +3705,9 @@ export class AiService extends TracedEventEmitter {
3666
3705
  */
3667
3706
  async handleAiGenerateWithQueue(request, mode, inputSource) {
3668
3707
  this.getLogger().info(`[ai-service] handleAiGenerateWithQueue: peerId=${this.stablePeer.peerId ?? "unknown"}, mode=${mode}`);
3708
+ // Covers the dead rejection here and the paywall rejection on the
3709
+ // interrupt path; the not-busy path sets it again in handleAiGenerate.
3710
+ setPromptOrgClaims(orgClaimsFromJwt(request.jwt));
3669
3711
  if (this.clark.state === ClarkStateNames.Dead) {
3670
3712
  recordPromptEntryRejection({
3671
3713
  dedupeKey: resolvePromptRequestDedupeKey(request),
@@ -4025,6 +4067,7 @@ export class AiService extends TracedEventEmitter {
4025
4067
  return;
4026
4068
  }
4027
4069
  this.clark.updateContext({ promptOutcomeDedupeKey });
4070
+ setPromptOrgClaims(orgClaimsFromJwt(this.clark.context.jwt));
4028
4071
  recordPromptAttempt({
4029
4072
  coreModel: this.clark.context.llmConfig?.coreModel,
4030
4073
  entrypoint: PROMPT_ATTEMPT_ENTRYPOINT.tool_permission_continuation,
@@ -4490,6 +4533,14 @@ export class AiService extends TracedEventEmitter {
4490
4533
  // inner (and peerId) here. Any queued calls accumulated while
4491
4534
  // disconnected flush in order as part of setInner.
4492
4535
  this.stablePeer.setInner({ liveness, peer, peerId });
4536
+ // A rebind means a disconnect that deferred clearing the live context
4537
+ // (because the turn was still busy) no longer applies: this session
4538
+ // keeps reading/writing the same cached instance, so a later turn-settle
4539
+ // must not dispose it out from under it.
4540
+ this.cancelPendingContextClear({
4541
+ reason: "editor_rebound",
4542
+ reboundPeerId: peerId,
4543
+ });
4493
4544
  this.getLogger().info(`[ai-service] Peer set: ${peerId}`);
4494
4545
  // A replacement (or freshly reconnecting) peer must re-prove its
4495
4546
  // identity via `notifyAuthenticatedRpc` before live task pushes
@@ -4773,14 +4824,19 @@ export class AiService extends TracedEventEmitter {
4773
4824
  isBusy: this.isBusy(),
4774
4825
  peerId,
4775
4826
  });
4776
- if (contextId) {
4777
- this.contextManagerV2.clearContext(contextId);
4827
+ // A surviving editor takes over the running turn and keeps writing to
4828
+ // the live context, so a busy handoff schedules no clear at all.
4829
+ const survivor = replacement && (replacement.peerId !== peerId || liveness)
4830
+ ? replacement
4831
+ : undefined;
4832
+ if (contextId && !(survivor && this.isBusy())) {
4833
+ this.releaseEditorContext(contextId, "editor_disconnect", peerId);
4778
4834
  }
4779
- if (replacement && (replacement.peerId !== peerId || liveness)) {
4780
- this.getLogger().info(`[ai-service] Rebinding peer ${peerId} to surviving editor ${replacement.peerId}`);
4835
+ if (survivor) {
4836
+ this.getLogger().info(`[ai-service] Rebinding peer ${peerId} to surviving editor ${survivor.peerId}`);
4781
4837
  // Same door a fresh tab comes through, so the survivor gets the state
4782
4838
  // resync and re-auth a newly bound peer is owed.
4783
- this.handleUserConnected(replacement.peer, replacement.peerId, replacement.liveness);
4839
+ this.handleUserConnected(survivor.peer, survivor.peerId, survivor.liveness);
4784
4840
  return;
4785
4841
  }
4786
4842
  this.clearPeerConnection();
@@ -4794,8 +4850,9 @@ export class AiService extends TracedEventEmitter {
4794
4850
  resetEditorConnection() {
4795
4851
  try {
4796
4852
  const contextId = this.getContextId();
4797
- if (contextId)
4798
- this.contextManagerV2.clearContext(contextId);
4853
+ if (contextId) {
4854
+ this.releaseEditorContext(contextId, "editor_connection_reset", this.stablePeer.peerId);
4855
+ }
4799
4856
  }
4800
4857
  finally {
4801
4858
  this.pendingTaskResyncPeerIds.clear();
@@ -4805,6 +4862,115 @@ export class AiService extends TracedEventEmitter {
4805
4862
  this.stablePeer.closeAndRejectPendingRequests();
4806
4863
  }
4807
4864
  }
4865
+ /**
4866
+ * The single place that decides what happens to the context when its
4867
+ * editor goes away. Idle: clear now, replacing any clear still pending
4868
+ * from an earlier disconnect. Busy: defer until the turn settles, so the
4869
+ * still-running turn keeps writing to the live `ContextV2` instance
4870
+ * instead of having it disposed out from under it.
4871
+ */
4872
+ releaseEditorContext(contextId, cause, departedPeerId) {
4873
+ if (this.isBusy()) {
4874
+ this.scheduleDeferredContextClear(contextId, cause, departedPeerId);
4875
+ return;
4876
+ }
4877
+ this.contextManagerV2.clearContext(contextId, cause);
4878
+ this.cancelPendingContextClear({ reason: "cleared_immediately" });
4879
+ }
4880
+ /**
4881
+ * `contextId` is the one captured when the editor went away, not
4882
+ * re-derived at settle time: `getContextId()` depends on session/app state
4883
+ * that New Chat and checkpoint restore clear through their own paths, so
4884
+ * re-reading it could resolve a different context than the one the turn
4885
+ * was writing to. A second busy release before the first settles keeps the
4886
+ * first pending clear: the context cannot change without a rebind, and a
4887
+ * rebind cancels it.
4888
+ */
4889
+ scheduleDeferredContextClear(contextId, cause, departedPeerId) {
4890
+ if (this.pendingContextClear) {
4891
+ return;
4892
+ }
4893
+ this.getLogger().info("[ai-service] Deferring Clark context clear until the turn settles", {
4894
+ cause,
4895
+ contextId,
4896
+ departedPeerId,
4897
+ event: "clark_stream.context_clear_deferred",
4898
+ });
4899
+ this.pendingContextClear = {
4900
+ cause,
4901
+ contextId,
4902
+ deferredAt: Date.now(),
4903
+ departedPeerId,
4904
+ };
4905
+ recordDeferredContextClear("deferred", cause);
4906
+ }
4907
+ /**
4908
+ * Runs on every `generationSettled`. That event also fires for superseded
4909
+ * generation IDs, so a settle that arrives while `isBusy()` is still true
4910
+ * leaves the clear pending. Whether an editor rebound in the meantime is
4911
+ * decided once, in `handleUserConnected`, which cancels the pending clear.
4912
+ *
4913
+ * There is deliberately no timeout. Every way `isBusy()` turns false emits
4914
+ * a later settle: the FSM sets its state before running the Idle,
4915
+ * AwaitingUser, or Dead handler that emits it, and a generation that never
4916
+ * starts emits it after resetting `generationStarting`. A clear that stays
4917
+ * pending therefore means a turn is still running, and clearing then is
4918
+ * exactly the post-disconnect write loss this deferral prevents. A turn
4919
+ * that never settles shows up as a growing
4920
+ * `superblocks.clark.context_clear.pending_age`.
4921
+ */
4922
+ runPendingContextClear(generationId) {
4923
+ const pending = this.pendingContextClear;
4924
+ if (!pending) {
4925
+ return;
4926
+ }
4927
+ if (this.isBusy()) {
4928
+ this.getLogger().info("[ai-service] Clark context clear still deferred: a turn is running", {
4929
+ cause: pending.cause,
4930
+ contextId: pending.contextId,
4931
+ departedPeerId: pending.departedPeerId,
4932
+ event: "clark_stream.context_clear_still_deferred",
4933
+ generationId,
4934
+ pendingMs: Date.now() - pending.deferredAt,
4935
+ });
4936
+ return;
4937
+ }
4938
+ this.pendingContextClear = undefined;
4939
+ this.getLogger().info("[ai-service] Running deferred Clark context clear after the turn settled", {
4940
+ cause: pending.cause,
4941
+ contextId: pending.contextId,
4942
+ departedPeerId: pending.departedPeerId,
4943
+ event: "clark_stream.context_clear_ran",
4944
+ generationId,
4945
+ pendingMs: Date.now() - pending.deferredAt,
4946
+ });
4947
+ recordDeferredContextClear("ran", pending.cause);
4948
+ this.contextManagerV2.clearContext(pending.contextId, pending.cause);
4949
+ }
4950
+ /**
4951
+ * Drops a deferred clear scheduled by {@link scheduleDeferredContextClear}
4952
+ * without running it: on a rebind, so the live `ContextV2` instance the
4953
+ * reconnecting editor reads/writes stays in use, or when an idle release
4954
+ * clears the context immediately instead. Any rebind cancels, whoever the
4955
+ * user is: contexts are app-scoped, so a different user rebinding reads
4956
+ * and writes the same context.
4957
+ */
4958
+ cancelPendingContextClear(cancellation) {
4959
+ const pending = this.pendingContextClear;
4960
+ if (!pending) {
4961
+ return;
4962
+ }
4963
+ this.pendingContextClear = undefined;
4964
+ recordDeferredContextClear(cancellation.reason, pending.cause);
4965
+ this.getLogger().info("[ai-service] Cancelled deferred Clark context clear", {
4966
+ ...cancellation,
4967
+ cause: pending.cause,
4968
+ contextId: pending.contextId,
4969
+ departedPeerId: pending.departedPeerId,
4970
+ event: "clark_stream.context_clear_cancelled",
4971
+ pendingMs: Date.now() - pending.deferredAt,
4972
+ });
4973
+ }
4808
4974
  /**
4809
4975
  * The bound editor's transport is gone, but a reconnect for the same peer
4810
4976
  * is already open and on its way to proving its authorization. The
@@ -5567,7 +5733,7 @@ export class AiService extends TracedEventEmitter {
5567
5733
  (await this.chatSessionStore.getLatestCommitId());
5568
5734
  await this.chatSessionStore.newChat();
5569
5735
  try {
5570
- await this.contextManagerV2.clearAllContexts();
5736
+ await this.contextManagerV2.clearAllContexts("new_chat");
5571
5737
  // Persist an empty context locally and upload it to Bucketeer so
5572
5738
  // the remote restore fallback downloads an empty conversation
5573
5739
  // instead of the one the user just cleared (APPS-4407).
@@ -5635,7 +5801,7 @@ export class AiService extends TracedEventEmitter {
5635
5801
  this.clark.updateContext({ resumeAfterAuthFailure: undefined });
5636
5802
  this.clark.clearLastContextUsage?.();
5637
5803
  const contextId = getContextId(this.clark, this.config);
5638
- await this.contextManagerV2.clearAllContexts();
5804
+ await this.contextManagerV2.clearAllContexts("clear_all");
5639
5805
  if (contextId) {
5640
5806
  await this.contextManagerV2.persistEmptyContext(contextId);
5641
5807
  }
@@ -5877,7 +6043,6 @@ export class AiService extends TracedEventEmitter {
5877
6043
  }
5878
6044
  }
5879
6045
  async handleApiUpdate(update) {
5880
- void this.appContext.handleApiUpdate(update.payload);
5881
6046
  if (update.author === "clark") {
5882
6047
  return;
5883
6048
  }
@@ -5968,7 +6133,7 @@ export class AiService extends TracedEventEmitter {
5968
6133
  if (!this.generationCompleteWaiters.delete(complete)) {
5969
6134
  return;
5970
6135
  }
5971
- const error = new Error(`generation completion wait timed out after ${GENERATION_COMPLETION_WAIT_TIMEOUT_MS}ms`);
6136
+ const error = new GenerationWaitTimeoutError(GENERATION_COMPLETION_WAIT_TIMEOUT_MS);
5972
6137
  this.getLogger().warn(`[ai-service] ${error.message}`);
5973
6138
  reject(error);
5974
6139
  }, GENERATION_COMPLETION_WAIT_TIMEOUT_MS);