@superblocksteam/vite-plugin-file-sync 2.0.162 → 2.0.163-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 (442) hide show
  1. package/dist/ai-service/agent/middleware.d.ts.map +1 -1
  2. package/dist/ai-service/agent/middleware.js +18 -7
  3. package/dist/ai-service/agent/middleware.js.map +1 -1
  4. package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts.map +1 -1
  5. package/dist/ai-service/agent/prompts/build-base-system-prompt.js +43 -29
  6. package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
  7. package/dist/ai-service/agent/prompts/build-security-scan-prompt.d.ts.map +1 -1
  8. package/dist/ai-service/agent/prompts/build-security-scan-prompt.js +25 -0
  9. package/dist/ai-service/agent/prompts/build-security-scan-prompt.js.map +1 -1
  10. package/dist/ai-service/agent/subagents/coding/run-coding-subagent.d.ts.map +1 -1
  11. package/dist/ai-service/agent/subagents/coding/run-coding-subagent.js +15 -0
  12. package/dist/ai-service/agent/subagents/coding/run-coding-subagent.js.map +1 -1
  13. package/dist/ai-service/agent/tools/apis/test-api.d.ts.map +1 -1
  14. package/dist/ai-service/agent/tools/apis/test-api.js +4 -2
  15. package/dist/ai-service/agent/tools/apis/test-api.js.map +1 -1
  16. package/dist/ai-service/agent/tools/app-environment/switch-selected-environment.d.ts +18 -0
  17. package/dist/ai-service/agent/tools/app-environment/switch-selected-environment.d.ts.map +1 -0
  18. package/dist/ai-service/agent/tools/app-environment/switch-selected-environment.js +61 -0
  19. package/dist/ai-service/agent/tools/app-environment/switch-selected-environment.js.map +1 -0
  20. package/dist/ai-service/agent/tools/build-capture-screenshot.js +1 -1
  21. package/dist/ai-service/agent/tools/build-install-packages.d.ts.map +1 -1
  22. package/dist/ai-service/agent/tools/build-install-packages.js +21 -8
  23. package/dist/ai-service/agent/tools/build-install-packages.js.map +1 -1
  24. package/dist/ai-service/agent/tools/build-read-file.d.ts +87 -1
  25. package/dist/ai-service/agent/tools/build-read-file.d.ts.map +1 -1
  26. package/dist/ai-service/agent/tools/build-read-file.js +453 -82
  27. package/dist/ai-service/agent/tools/build-read-file.js.map +1 -1
  28. package/dist/ai-service/agent/tools/build-write-file.d.ts +1 -0
  29. package/dist/ai-service/agent/tools/build-write-file.d.ts.map +1 -1
  30. package/dist/ai-service/agent/tools/build-write-file.js +18 -2
  31. package/dist/ai-service/agent/tools/build-write-file.js.map +1 -1
  32. package/dist/ai-service/agent/tools/debug-cache.d.ts +11 -0
  33. package/dist/ai-service/agent/tools/debug-cache.d.ts.map +1 -1
  34. package/dist/ai-service/agent/tools/debug-cache.js +62 -14
  35. package/dist/ai-service/agent/tools/debug-cache.js.map +1 -1
  36. package/dist/ai-service/agent/tools/index.d.ts +2 -1
  37. package/dist/ai-service/agent/tools/index.d.ts.map +1 -1
  38. package/dist/ai-service/agent/tools/index.js +2 -1
  39. package/dist/ai-service/agent/tools/index.js.map +1 -1
  40. package/dist/ai-service/agent/tools/integrations/metadata.d.ts +1 -0
  41. package/dist/ai-service/agent/tools/integrations/metadata.d.ts.map +1 -1
  42. package/dist/ai-service/agent/tools/integrations/metadata.js +7 -2
  43. package/dist/ai-service/agent/tools/integrations/metadata.js.map +1 -1
  44. package/dist/ai-service/agent/tools/read-file-metrics.d.ts +30 -0
  45. package/dist/ai-service/agent/tools/read-file-metrics.d.ts.map +1 -0
  46. package/dist/ai-service/agent/tools/read-file-metrics.js +158 -0
  47. package/dist/ai-service/agent/tools/read-file-metrics.js.map +1 -0
  48. package/dist/ai-service/agent/tools/subagent-isolation.d.ts +27 -0
  49. package/dist/ai-service/agent/tools/subagent-isolation.d.ts.map +1 -0
  50. package/dist/ai-service/agent/tools/subagent-isolation.js +57 -0
  51. package/dist/ai-service/agent/tools/subagent-isolation.js.map +1 -0
  52. package/dist/ai-service/agent/tools.d.ts +4 -1
  53. package/dist/ai-service/agent/tools.d.ts.map +1 -1
  54. package/dist/ai-service/agent/tools.js +51 -5
  55. package/dist/ai-service/agent/tools.js.map +1 -1
  56. package/dist/ai-service/agent/tools2/tools/download-attachments.d.ts.map +1 -1
  57. package/dist/ai-service/agent/tools2/tools/download-attachments.js +1 -0
  58. package/dist/ai-service/agent/tools2/tools/download-attachments.js.map +1 -1
  59. package/dist/ai-service/agent/tools2/tools/start-test-run.d.ts.map +1 -1
  60. package/dist/ai-service/agent/tools2/tools/start-test-run.js +14 -0
  61. package/dist/ai-service/agent/tools2/tools/start-test-run.js.map +1 -1
  62. package/dist/ai-service/agent/utils.d.ts.map +1 -1
  63. package/dist/ai-service/agent/utils.js +2 -2
  64. package/dist/ai-service/agent/utils.js.map +1 -1
  65. package/dist/ai-service/app-interface/filesystem/draft-manager.d.ts +2 -1
  66. package/dist/ai-service/app-interface/filesystem/draft-manager.d.ts.map +1 -1
  67. package/dist/ai-service/app-interface/filesystem/draft-manager.js +3 -0
  68. package/dist/ai-service/app-interface/filesystem/draft-manager.js.map +1 -1
  69. package/dist/ai-service/app-interface/filesystem/handlers/skill-handler.d.ts +2 -1
  70. package/dist/ai-service/app-interface/filesystem/handlers/skill-handler.d.ts.map +1 -1
  71. package/dist/ai-service/app-interface/filesystem/handlers/skill-handler.js +13 -11
  72. package/dist/ai-service/app-interface/filesystem/handlers/skill-handler.js.map +1 -1
  73. package/dist/ai-service/app-interface/filesystem/virtual-file-system.d.ts.map +1 -1
  74. package/dist/ai-service/app-interface/filesystem/virtual-file-system.js +1 -1
  75. package/dist/ai-service/app-interface/filesystem/virtual-file-system.js.map +1 -1
  76. package/dist/ai-service/app-interface/shell.d.ts +18 -9
  77. package/dist/ai-service/app-interface/shell.d.ts.map +1 -1
  78. package/dist/ai-service/app-interface/shell.js +92 -112
  79. package/dist/ai-service/app-interface/shell.js.map +1 -1
  80. package/dist/ai-service/app-interface/typecheck-output-parser.d.ts +9 -0
  81. package/dist/ai-service/app-interface/typecheck-output-parser.d.ts.map +1 -0
  82. package/dist/ai-service/app-interface/typecheck-output-parser.js +21 -0
  83. package/dist/ai-service/app-interface/typecheck-output-parser.js.map +1 -0
  84. package/dist/ai-service/app-interface/vulnerability-gate.d.ts +5 -0
  85. package/dist/ai-service/app-interface/vulnerability-gate.d.ts.map +1 -1
  86. package/dist/ai-service/app-interface/vulnerability-gate.js +9 -2
  87. package/dist/ai-service/app-interface/vulnerability-gate.js.map +1 -1
  88. package/dist/ai-service/app-layout.d.ts +13 -0
  89. package/dist/ai-service/app-layout.d.ts.map +1 -0
  90. package/dist/ai-service/app-layout.js +25 -0
  91. package/dist/ai-service/app-layout.js.map +1 -0
  92. package/dist/ai-service/app-skills/manager.d.ts +2 -0
  93. package/dist/ai-service/app-skills/manager.d.ts.map +1 -1
  94. package/dist/ai-service/app-skills/manager.js +13 -6
  95. package/dist/ai-service/app-skills/manager.js.map +1 -1
  96. package/dist/ai-service/attachment-label-metrics.d.ts +5 -0
  97. package/dist/ai-service/attachment-label-metrics.d.ts.map +1 -0
  98. package/dist/ai-service/attachment-label-metrics.js +26 -0
  99. package/dist/ai-service/attachment-label-metrics.js.map +1 -0
  100. package/dist/ai-service/attachment-upload.d.ts.map +1 -1
  101. package/dist/ai-service/attachment-upload.js +6 -1
  102. package/dist/ai-service/attachment-upload.js.map +1 -1
  103. package/dist/ai-service/attachments/validate-prompt-attachments.d.ts +7 -0
  104. package/dist/ai-service/attachments/validate-prompt-attachments.d.ts.map +1 -0
  105. package/dist/ai-service/attachments/validate-prompt-attachments.js +96 -0
  106. package/dist/ai-service/attachments/validate-prompt-attachments.js.map +1 -0
  107. package/dist/ai-service/chat/chat-push-metrics.d.ts +17 -0
  108. package/dist/ai-service/chat/chat-push-metrics.d.ts.map +1 -1
  109. package/dist/ai-service/chat/chat-push-metrics.js +45 -0
  110. package/dist/ai-service/chat/chat-push-metrics.js.map +1 -1
  111. package/dist/ai-service/chat/chat-session-store.d.ts +51 -0
  112. package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
  113. package/dist/ai-service/chat/chat-session-store.js +181 -4
  114. package/dist/ai-service/chat/chat-session-store.js.map +1 -1
  115. package/dist/ai-service/features.d.ts +32 -0
  116. package/dist/ai-service/features.d.ts.map +1 -1
  117. package/dist/ai-service/features.js +32 -0
  118. package/dist/ai-service/features.js.map +1 -1
  119. package/dist/ai-service/helper-system-ai-attributes.d.ts +1 -1
  120. package/dist/ai-service/helper-system-ai-attributes.d.ts.map +1 -1
  121. package/dist/ai-service/helper-system-ai-attributes.js.map +1 -1
  122. package/dist/ai-service/index.d.ts +19 -4
  123. package/dist/ai-service/index.d.ts.map +1 -1
  124. package/dist/ai-service/index.js +177 -23
  125. package/dist/ai-service/index.js.map +1 -1
  126. package/dist/ai-service/llm/client.d.ts +9 -0
  127. package/dist/ai-service/llm/client.d.ts.map +1 -1
  128. package/dist/ai-service/llm/client.js +13 -43
  129. package/dist/ai-service/llm/client.js.map +1 -1
  130. package/dist/ai-service/llm/context-v2/adapter.d.ts +2 -0
  131. package/dist/ai-service/llm/context-v2/adapter.d.ts.map +1 -1
  132. package/dist/ai-service/llm/context-v2/adapter.js +6 -0
  133. package/dist/ai-service/llm/context-v2/adapter.js.map +1 -1
  134. package/dist/ai-service/llm/context-v2/compaction/client-side.d.ts +3 -0
  135. package/dist/ai-service/llm/context-v2/compaction/client-side.d.ts.map +1 -1
  136. package/dist/ai-service/llm/context-v2/compaction/client-side.js +3 -0
  137. package/dist/ai-service/llm/context-v2/compaction/client-side.js.map +1 -1
  138. package/dist/ai-service/llm/context-v2/compaction/server-side.d.ts +8 -0
  139. package/dist/ai-service/llm/context-v2/compaction/server-side.d.ts.map +1 -1
  140. package/dist/ai-service/llm/context-v2/compaction/server-side.js +8 -0
  141. package/dist/ai-service/llm/context-v2/compaction/server-side.js.map +1 -1
  142. package/dist/ai-service/llm/context-v2/compactor.d.ts +2 -0
  143. package/dist/ai-service/llm/context-v2/compactor.d.ts.map +1 -1
  144. package/dist/ai-service/llm/context-v2/compactor.js +4 -1
  145. package/dist/ai-service/llm/context-v2/compactor.js.map +1 -1
  146. package/dist/ai-service/llm/context-v2/context-component-partition.d.ts +24 -0
  147. package/dist/ai-service/llm/context-v2/context-component-partition.d.ts.map +1 -0
  148. package/dist/ai-service/llm/context-v2/context-component-partition.js +222 -0
  149. package/dist/ai-service/llm/context-v2/context-component-partition.js.map +1 -0
  150. package/dist/ai-service/llm/context-v2/context-management.d.ts +7 -0
  151. package/dist/ai-service/llm/context-v2/context-management.d.ts.map +1 -1
  152. package/dist/ai-service/llm/context-v2/context-management.js +4 -0
  153. package/dist/ai-service/llm/context-v2/context-management.js.map +1 -1
  154. package/dist/ai-service/llm/context-v2/context-metrics.d.ts +9 -0
  155. package/dist/ai-service/llm/context-v2/context-metrics.d.ts.map +1 -1
  156. package/dist/ai-service/llm/context-v2/context-metrics.js +40 -2
  157. package/dist/ai-service/llm/context-v2/context-metrics.js.map +1 -1
  158. package/dist/ai-service/llm/context-v2/context.d.ts +116 -4
  159. package/dist/ai-service/llm/context-v2/context.d.ts.map +1 -1
  160. package/dist/ai-service/llm/context-v2/context.js +276 -64
  161. package/dist/ai-service/llm/context-v2/context.js.map +1 -1
  162. package/dist/ai-service/llm/context-v2/conversation-context.d.ts +18 -0
  163. package/dist/ai-service/llm/context-v2/conversation-context.d.ts.map +1 -1
  164. package/dist/ai-service/llm/context-v2/file-read-ledger.d.ts +218 -0
  165. package/dist/ai-service/llm/context-v2/file-read-ledger.d.ts.map +1 -0
  166. package/dist/ai-service/llm/context-v2/file-read-ledger.js +275 -0
  167. package/dist/ai-service/llm/context-v2/file-read-ledger.js.map +1 -0
  168. package/dist/ai-service/llm/context-v2/manager.d.ts.map +1 -1
  169. package/dist/ai-service/llm/context-v2/manager.js +1 -0
  170. package/dist/ai-service/llm/context-v2/manager.js.map +1 -1
  171. package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.d.ts +8 -0
  172. package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.d.ts.map +1 -1
  173. package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.js +53 -4
  174. package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.js.map +1 -1
  175. package/dist/ai-service/llm/context-v2/token-tracker.d.ts +2 -0
  176. package/dist/ai-service/llm/context-v2/token-tracker.d.ts.map +1 -1
  177. package/dist/ai-service/llm/context-v2/token-tracker.js +4 -0
  178. package/dist/ai-service/llm/context-v2/token-tracker.js.map +1 -1
  179. package/dist/ai-service/llm/context-v2/tool-schema-tokens.d.ts +22 -0
  180. package/dist/ai-service/llm/context-v2/tool-schema-tokens.d.ts.map +1 -0
  181. package/dist/ai-service/llm/context-v2/tool-schema-tokens.js +36 -0
  182. package/dist/ai-service/llm/context-v2/tool-schema-tokens.js.map +1 -0
  183. package/dist/ai-service/llm/context-v2/types.d.ts +8 -0
  184. package/dist/ai-service/llm/context-v2/types.d.ts.map +1 -1
  185. package/dist/ai-service/llm/context-v2/types.js +48 -0
  186. package/dist/ai-service/llm/context-v2/types.js.map +1 -1
  187. package/dist/ai-service/llm/error.d.ts +2 -0
  188. package/dist/ai-service/llm/error.d.ts.map +1 -1
  189. package/dist/ai-service/llm/error.js +1 -0
  190. package/dist/ai-service/llm/error.js.map +1 -1
  191. package/dist/ai-service/llm/retry-exhaustion-reason.d.ts +2 -0
  192. package/dist/ai-service/llm/retry-exhaustion-reason.d.ts.map +1 -0
  193. package/dist/ai-service/llm/retry-exhaustion-reason.js +2 -0
  194. package/dist/ai-service/llm/retry-exhaustion-reason.js.map +1 -0
  195. package/dist/ai-service/llm/stream/config.d.ts +1 -1
  196. package/dist/ai-service/llm/stream/config.d.ts.map +1 -1
  197. package/dist/ai-service/llm/stream/config.js.map +1 -1
  198. package/dist/ai-service/llm/stream/errors.d.ts +6 -7
  199. package/dist/ai-service/llm/stream/errors.d.ts.map +1 -1
  200. package/dist/ai-service/llm/stream/errors.js +7 -1
  201. package/dist/ai-service/llm/stream/errors.js.map +1 -1
  202. package/dist/ai-service/llm/stream/event-bus.d.ts +9 -1
  203. package/dist/ai-service/llm/stream/event-bus.d.ts.map +1 -1
  204. package/dist/ai-service/llm/stream/event-bus.js.map +1 -1
  205. package/dist/ai-service/llm/stream/idle-monitor.d.ts.map +1 -1
  206. package/dist/ai-service/llm/stream/idle-monitor.js.map +1 -1
  207. package/dist/ai-service/llm/stream/observers/context.d.ts.map +1 -1
  208. package/dist/ai-service/llm/stream/observers/context.js +13 -0
  209. package/dist/ai-service/llm/stream/observers/context.js.map +1 -1
  210. package/dist/ai-service/llm/stream/observers/llmobs.d.ts +14 -1
  211. package/dist/ai-service/llm/stream/observers/llmobs.d.ts.map +1 -1
  212. package/dist/ai-service/llm/stream/observers/llmobs.js +91 -7
  213. package/dist/ai-service/llm/stream/observers/llmobs.js.map +1 -1
  214. package/dist/ai-service/llm/stream/observers/logging.d.ts +3 -1
  215. package/dist/ai-service/llm/stream/observers/logging.d.ts.map +1 -1
  216. package/dist/ai-service/llm/stream/observers/logging.js +73 -52
  217. package/dist/ai-service/llm/stream/observers/logging.js.map +1 -1
  218. package/dist/ai-service/llm/stream/observers/retry-notification.d.ts.map +1 -1
  219. package/dist/ai-service/llm/stream/observers/retry-notification.js +16 -9
  220. package/dist/ai-service/llm/stream/observers/retry-notification.js.map +1 -1
  221. package/dist/ai-service/llm/stream/orchestrator.d.ts +5 -1
  222. package/dist/ai-service/llm/stream/orchestrator.d.ts.map +1 -1
  223. package/dist/ai-service/llm/stream/orchestrator.js +103 -12
  224. package/dist/ai-service/llm/stream/orchestrator.js.map +1 -1
  225. package/dist/ai-service/llm/stream/retry-engine.d.ts +3 -1
  226. package/dist/ai-service/llm/stream/retry-engine.d.ts.map +1 -1
  227. package/dist/ai-service/llm/stream/retry-engine.js +9 -0
  228. package/dist/ai-service/llm/stream/retry-engine.js.map +1 -1
  229. package/dist/ai-service/llm/stream/session.d.ts +8 -1
  230. package/dist/ai-service/llm/stream/session.d.ts.map +1 -1
  231. package/dist/ai-service/llm/stream/session.js +19 -0
  232. package/dist/ai-service/llm/stream/session.js.map +1 -1
  233. package/dist/ai-service/llm/stream/types.d.ts +13 -0
  234. package/dist/ai-service/llm/stream/types.d.ts.map +1 -1
  235. package/dist/ai-service/llm/stream/wait-state-tracker.d.ts +5 -14
  236. package/dist/ai-service/llm/stream/wait-state-tracker.d.ts.map +1 -1
  237. package/dist/ai-service/llm/stream/wait-state-tracker.js +25 -0
  238. package/dist/ai-service/llm/stream/wait-state-tracker.js.map +1 -1
  239. package/dist/ai-service/mcp/embedded-playwright-mcp-server.js +8 -8
  240. package/dist/ai-service/mcp/embedded-playwright-mcp-server.js.map +1 -1
  241. package/dist/ai-service/migration-llm-config.d.ts.map +1 -1
  242. package/dist/ai-service/migration-llm-config.js +2 -11
  243. package/dist/ai-service/migration-llm-config.js.map +1 -1
  244. package/dist/ai-service/policy-gate-remediation-usage.d.ts +2 -0
  245. package/dist/ai-service/policy-gate-remediation-usage.d.ts.map +1 -0
  246. package/dist/ai-service/policy-gate-remediation-usage.js +56 -0
  247. package/dist/ai-service/policy-gate-remediation-usage.js.map +1 -0
  248. package/dist/ai-service/prompts/summarize-destructive-migration.d.ts +12 -0
  249. package/dist/ai-service/prompts/summarize-destructive-migration.d.ts.map +1 -0
  250. package/dist/ai-service/prompts/summarize-destructive-migration.js +37 -0
  251. package/dist/ai-service/prompts/summarize-destructive-migration.js.map +1 -0
  252. package/dist/ai-service/recording/storage/session-recording-storage.js +2 -2
  253. package/dist/ai-service/recording/storage/session-recording-storage.js.map +1 -1
  254. package/dist/ai-service/security/secret-scanner-service.d.ts.map +1 -1
  255. package/dist/ai-service/security/secret-scanner-service.js +88 -23
  256. package/dist/ai-service/security/secret-scanner-service.js.map +1 -1
  257. package/dist/ai-service/skills/index.d.ts +0 -7
  258. package/dist/ai-service/skills/index.d.ts.map +1 -1
  259. package/dist/ai-service/skills/index.js +0 -9
  260. package/dist/ai-service/skills/index.js.map +1 -1
  261. package/dist/ai-service/skills/system/_registry.generated.d.ts.map +1 -1
  262. package/dist/ai-service/skills/system/_registry.generated.js +4 -0
  263. package/dist/ai-service/skills/system/_registry.generated.js.map +1 -1
  264. package/dist/ai-service/skills/system/resolve.d.ts +2 -0
  265. package/dist/ai-service/skills/system/resolve.d.ts.map +1 -0
  266. package/dist/ai-service/skills/system/resolve.js +32 -0
  267. package/dist/ai-service/skills/system/resolve.js.map +1 -0
  268. package/dist/ai-service/skills/system/superblocks-frontend/_variants/api-imports-legacy.generated.d.ts +2 -0
  269. package/dist/ai-service/skills/system/superblocks-frontend/_variants/api-imports-legacy.generated.d.ts.map +1 -0
  270. package/dist/ai-service/skills/system/superblocks-frontend/_variants/api-imports-legacy.generated.js +9 -0
  271. package/dist/ai-service/skills/system/superblocks-frontend/_variants/api-imports-legacy.generated.js.map +1 -0
  272. package/dist/ai-service/skills/system/superblocks-frontend/_variants/api-imports-sdk.generated.d.ts +2 -0
  273. package/dist/ai-service/skills/system/superblocks-frontend/_variants/api-imports-sdk.generated.d.ts.map +1 -0
  274. package/dist/ai-service/skills/system/superblocks-frontend/_variants/api-imports-sdk.generated.js +11 -0
  275. package/dist/ai-service/skills/system/superblocks-frontend/_variants/api-imports-sdk.generated.js.map +1 -0
  276. package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.d.ts +1 -1
  277. package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.d.ts.map +1 -1
  278. package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.js +16 -24
  279. package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.js.map +1 -1
  280. package/dist/ai-service/skills/system/third-party-migration/skill.generated.d.ts +1 -1
  281. package/dist/ai-service/skills/system/third-party-migration/skill.generated.d.ts.map +1 -1
  282. package/dist/ai-service/skills/system/third-party-migration/skill.generated.js +1 -1
  283. package/dist/ai-service/state-machine/clark-fsm.d.ts +11 -0
  284. package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
  285. package/dist/ai-service/state-machine/clark-fsm.js +8 -1
  286. package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
  287. package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -1
  288. package/dist/ai-service/state-machine/handlers/agent-planning.js +21 -0
  289. package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
  290. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
  291. package/dist/ai-service/state-machine/handlers/llm-generating.js +32 -9
  292. package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
  293. package/dist/ai-service/state-machine/handlers/runtime-reviewing.d.ts.map +1 -1
  294. package/dist/ai-service/state-machine/handlers/runtime-reviewing.js +21 -2
  295. package/dist/ai-service/state-machine/handlers/runtime-reviewing.js.map +1 -1
  296. package/dist/ai-service/state-machine/helpers/stable-peer.d.ts +11 -2
  297. package/dist/ai-service/state-machine/helpers/stable-peer.d.ts.map +1 -1
  298. package/dist/ai-service/state-machine/helpers/stable-peer.js +105 -18
  299. package/dist/ai-service/state-machine/helpers/stable-peer.js.map +1 -1
  300. package/dist/ai-service/state-machine/mocks.d.ts +3 -1
  301. package/dist/ai-service/state-machine/mocks.d.ts.map +1 -1
  302. package/dist/ai-service/state-machine/mocks.js +52 -13
  303. package/dist/ai-service/state-machine/mocks.js.map +1 -1
  304. package/dist/ai-service/tasks/peer-push.d.ts +3 -0
  305. package/dist/ai-service/tasks/peer-push.d.ts.map +1 -1
  306. package/dist/ai-service/tasks/peer-push.js +33 -0
  307. package/dist/ai-service/tasks/peer-push.js.map +1 -1
  308. package/dist/ai-service/util/call-peer.d.ts +2 -0
  309. package/dist/ai-service/util/call-peer.d.ts.map +1 -1
  310. package/dist/ai-service/util/call-peer.js +17 -4
  311. package/dist/ai-service/util/call-peer.js.map +1 -1
  312. package/dist/ai-service/util/line-ranges.d.ts +21 -0
  313. package/dist/ai-service/util/line-ranges.d.ts.map +1 -0
  314. package/dist/ai-service/util/line-ranges.js +36 -0
  315. package/dist/ai-service/util/line-ranges.js.map +1 -0
  316. package/dist/ai-service/util/peer-liveness.d.ts +1 -0
  317. package/dist/ai-service/util/peer-liveness.d.ts.map +1 -1
  318. package/dist/ai-service/util/peer-liveness.js +2 -0
  319. package/dist/ai-service/util/peer-liveness.js.map +1 -1
  320. package/dist/dev-server-ws-smoke-client.d.ts.map +1 -1
  321. package/dist/dev-server-ws-smoke-client.js +7 -0
  322. package/dist/dev-server-ws-smoke-client.js.map +1 -1
  323. package/dist/draft-interface.d.ts +8 -0
  324. package/dist/draft-interface.d.ts.map +1 -1
  325. package/dist/early-error-relay.d.ts +2 -0
  326. package/dist/early-error-relay.d.ts.map +1 -1
  327. package/dist/early-error-relay.js +7 -3
  328. package/dist/early-error-relay.js.map +1 -1
  329. package/dist/file-sync-vite-plugin.d.ts.map +1 -1
  330. package/dist/file-sync-vite-plugin.js +43 -15
  331. package/dist/file-sync-vite-plugin.js.map +1 -1
  332. package/dist/file-system-helpers.d.ts +2 -2
  333. package/dist/file-system-helpers.d.ts.map +1 -1
  334. package/dist/file-system-helpers.js +3 -3
  335. package/dist/file-system-helpers.js.map +1 -1
  336. package/dist/git-service/errors.d.ts +9 -0
  337. package/dist/git-service/errors.d.ts.map +1 -1
  338. package/dist/git-service/errors.js +15 -0
  339. package/dist/git-service/errors.js.map +1 -1
  340. package/dist/git-service/index.d.ts +2 -2
  341. package/dist/git-service/index.d.ts.map +1 -1
  342. package/dist/git-service/index.js +2 -2
  343. package/dist/git-service/index.js.map +1 -1
  344. package/dist/index.d.ts +1 -0
  345. package/dist/index.d.ts.map +1 -1
  346. package/dist/index.js +1 -0
  347. package/dist/index.js.map +1 -1
  348. package/dist/lock-service/activity-tracker.d.ts +5 -0
  349. package/dist/lock-service/activity-tracker.d.ts.map +1 -1
  350. package/dist/lock-service/activity-tracker.js +10 -0
  351. package/dist/lock-service/activity-tracker.js.map +1 -1
  352. package/dist/lock-service/index.d.ts +69 -4
  353. package/dist/lock-service/index.d.ts.map +1 -1
  354. package/dist/lock-service/index.js +139 -29
  355. package/dist/lock-service/index.js.map +1 -1
  356. package/dist/migration-templates/app-fullstack/client/components/ui/accordion.tsx +9 -65
  357. package/dist/migration-templates/app-fullstack/client/components/ui/area-chart.tsx +36 -156
  358. package/dist/migration-templates/app-fullstack/client/components/ui/aspect-ratio.tsx +1 -5
  359. package/dist/migration-templates/app-fullstack/client/components/ui/avatar.tsx +4 -18
  360. package/dist/migration-templates/app-fullstack/client/components/ui/badge.tsx +6 -29
  361. package/dist/migration-templates/app-fullstack/client/components/ui/bar-chart.tsx +41 -167
  362. package/dist/migration-templates/app-fullstack/client/components/ui/breadcrumb.tsx +1 -4
  363. package/dist/migration-templates/app-fullstack/client/components/ui/button.tsx +5 -64
  364. package/dist/migration-templates/app-fullstack/client/components/ui/calendar.tsx +6 -42
  365. package/dist/migration-templates/app-fullstack/client/components/ui/card.tsx +1 -4
  366. package/dist/migration-templates/app-fullstack/client/components/ui/checkbox.tsx +4 -29
  367. package/dist/migration-templates/app-fullstack/client/components/ui/date-range-picker.tsx +13 -154
  368. package/dist/migration-templates/app-fullstack/client/components/ui/dialog.tsx +7 -34
  369. package/dist/migration-templates/app-fullstack/client/components/ui/file-dropzone.tsx +12 -95
  370. package/dist/migration-templates/app-fullstack/client/components/ui/file-input.tsx +12 -73
  371. package/dist/migration-templates/app-fullstack/client/components/ui/hover-card.tsx +10 -66
  372. package/dist/migration-templates/app-fullstack/client/components/ui/icon.tsx +3 -16
  373. package/dist/migration-templates/app-fullstack/client/components/ui/image.tsx +4 -16
  374. package/dist/migration-templates/app-fullstack/client/components/ui/input.tsx +18 -159
  375. package/dist/migration-templates/app-fullstack/client/components/ui/label.tsx +1 -4
  376. package/dist/migration-templates/app-fullstack/client/components/ui/line-chart.tsx +32 -148
  377. package/dist/migration-templates/app-fullstack/client/components/ui/link.tsx +4 -24
  378. package/dist/migration-templates/app-fullstack/client/components/ui/navigation-menu.tsx +3 -24
  379. package/dist/migration-templates/app-fullstack/client/components/ui/pagination.tsx +4 -24
  380. package/dist/migration-templates/app-fullstack/client/components/ui/pie-chart.tsx +28 -142
  381. package/dist/migration-templates/app-fullstack/client/components/ui/popover.tsx +9 -61
  382. package/dist/migration-templates/app-fullstack/client/components/ui/progress.tsx +2 -11
  383. package/dist/migration-templates/app-fullstack/client/components/ui/radar-chart.tsx +37 -171
  384. package/dist/migration-templates/app-fullstack/client/components/ui/radial-chart.tsx +50 -202
  385. package/dist/migration-templates/app-fullstack/client/components/ui/select.tsx +5 -35
  386. package/dist/migration-templates/app-fullstack/client/components/ui/separator.tsx +1 -8
  387. package/dist/migration-templates/app-fullstack/client/components/ui/sheet.tsx +7 -40
  388. package/dist/migration-templates/app-fullstack/client/components/ui/sidebar.tsx +3 -35
  389. package/dist/migration-templates/app-fullstack/client/components/ui/slider.tsx +11 -95
  390. package/dist/migration-templates/app-fullstack/client/components/ui/switch.tsx +5 -32
  391. package/dist/migration-templates/app-fullstack/client/components/ui/textarea.tsx +13 -90
  392. package/dist/migration-templates/app-fullstack/client/components/ui/toggle-group.tsx +11 -75
  393. package/dist/migration-templates/app-fullstack/client/components/ui/toggle.tsx +8 -70
  394. package/dist/migration-templates/app-fullstack/client/components/ui/tooltip.tsx +9 -62
  395. package/dist/parsing/imports.d.ts +22 -0
  396. package/dist/parsing/imports.d.ts.map +1 -1
  397. package/dist/parsing/imports.js +71 -0
  398. package/dist/parsing/imports.js.map +1 -1
  399. package/dist/reconnect-guard-plugin.d.ts +53 -0
  400. package/dist/reconnect-guard-plugin.d.ts.map +1 -0
  401. package/dist/reconnect-guard-plugin.js +203 -0
  402. package/dist/reconnect-guard-plugin.js.map +1 -0
  403. package/dist/resolver.d.ts +2 -1
  404. package/dist/resolver.d.ts.map +1 -1
  405. package/dist/resolver.js +4 -6
  406. package/dist/resolver.js.map +1 -1
  407. package/dist/router-parser-metrics.d.ts +2 -1
  408. package/dist/router-parser-metrics.d.ts.map +1 -1
  409. package/dist/router-parser-metrics.js.map +1 -1
  410. package/dist/router-parser.d.ts +10 -1
  411. package/dist/router-parser.d.ts.map +1 -1
  412. package/dist/router-parser.js +306 -69
  413. package/dist/router-parser.js.map +1 -1
  414. package/dist/scan-scope-merge-metrics.d.ts +2 -0
  415. package/dist/scan-scope-merge-metrics.d.ts.map +1 -0
  416. package/dist/scan-scope-merge-metrics.js +18 -0
  417. package/dist/scan-scope-merge-metrics.js.map +1 -0
  418. package/dist/scan-scope-merge.d.ts +2 -2
  419. package/dist/scan-scope-merge.d.ts.map +1 -1
  420. package/dist/scan-scope-merge.js +64 -14
  421. package/dist/scan-scope-merge.js.map +1 -1
  422. package/dist/server-rpc/index.d.ts.map +1 -1
  423. package/dist/server-rpc/index.js +12 -2
  424. package/dist/server-rpc/index.js.map +1 -1
  425. package/dist/socket-manager.d.ts +1 -1
  426. package/dist/socket-manager.d.ts.map +1 -1
  427. package/dist/socket-manager.js +276 -15
  428. package/dist/socket-manager.js.map +1 -1
  429. package/dist/sync-service/download.js +2 -2
  430. package/dist/sync-service/download.js.map +1 -1
  431. package/dist/sync-service/index.d.ts +95 -22
  432. package/dist/sync-service/index.d.ts.map +1 -1
  433. package/dist/sync-service/index.js +402 -56
  434. package/dist/sync-service/index.js.map +1 -1
  435. package/dist/sync-service/page-reference-guard.d.ts +17 -0
  436. package/dist/sync-service/page-reference-guard.d.ts.map +1 -0
  437. package/dist/sync-service/page-reference-guard.js +170 -0
  438. package/dist/sync-service/page-reference-guard.js.map +1 -0
  439. package/dist/util.d.ts.map +1 -1
  440. package/dist/util.js +16 -2
  441. package/dist/util.js.map +1 -1
  442. package/package.json +15 -14
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/ai-service/app-skills/manager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAGvE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,aAAa,CAAC;AAiBrB;;;;;GAKG;AACH,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,cAAc,EAAE,MAAM,EACtB,MAAM,GAAE,YAAoC;IAG/D,OAAO,KAAK,SAAS,GAEpB;IAED,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,eAAe;IAKvB;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAwC1C;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,SAAS,EAAE;IAYvD;;OAEG;IACG,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAWrE;;OAEG;IACG,QAAQ,CAAC,IAAI,EAAE;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,GAAG,OAAO,CAAC,SAAS,CAAC;IAwBtB;;OAEG;IACG,UAAU,CACd,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAC9D,OAAO,CAAC,SAAS,CAAC;IAsBrB;;OAEG;IACG,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAapD;;;OAGG;IACG,UAAU,CACd,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,OAAO,GACjB,OAAO,CAAC,SAAS,CAAC;IAiBrB;;;;OAIG;IACG,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAIrC,wBAAwB,IAAI,OAAO,CAAC;QACxC,sBAAsB,EAAE,MAAM,EAAE,CAAC;QACjC,kBAAkB,EAAE,MAAM,CAAC;QAC3B,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;YAOY,2BAA2B;CAiF1C"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/ai-service/app-skills/manager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAGvE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,aAAa,CAAC;AAiBrB;;;;;GAKG;AACH,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,cAAc,EAAE,MAAM,EACtB,MAAM,GAAE,YAAoC;IAG/D,OAAO,KAAK,SAAS,GAEpB;IAED,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,eAAe;IAKvB;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAwC1C;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,SAAS,EAAE;IAYvD;;OAEG;IACG,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAWrE;;OAEG;IACG,QAAQ,CAAC,IAAI,EAAE;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,GAAG,OAAO,CAAC,SAAS,CAAC;IAwBtB;;OAEG;IACG,UAAU,CACd,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAC9D,OAAO,CAAC,SAAS,CAAC;IAsBrB;;OAEG;IACG,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAapD;;;OAGG;IACG,UAAU,CACd,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,OAAO,GACjB,OAAO,CAAC,SAAS,CAAC;IAiBrB;;;;OAIG;IACG,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAIrC,wBAAwB,IAAI,OAAO,CAAC;QACxC,sBAAsB,EAAE,MAAM,EAAE,CAAC;QACjC,mBAAmB,EAAE,MAAM,CAAC;QAC5B,kBAAkB,EAAE,MAAM,CAAC;QAC3B,oBAAoB,EAAE,MAAM,CAAC;QAC7B,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;YAOY,2BAA2B;CA0F1C"}
@@ -206,17 +206,20 @@ export class AppSkillsManager {
206
206
  if (alwaysOn.length === 0 && onDemand.length === 0) {
207
207
  return {
208
208
  alwaysInjectDedupeKeys: [],
209
+ alwaysInjectSection: "",
209
210
  onDemandIndexCount: 0,
211
+ onDemandIndexSection: "",
210
212
  section: "",
211
213
  };
212
214
  }
213
- const sections = [];
215
+ let alwaysInjectSection = "";
216
+ let onDemandIndexSection = "";
214
217
  if (alwaysOn.length > 0) {
215
218
  const items = alwaysOn
216
219
  .map((f) => `### ${f.name}
217
220
  ${f.description ? `${f.description}\n\n` : ""}${f.content}`)
218
221
  .join("\n\n");
219
- sections.push(`<app_knowledge>
222
+ alwaysInjectSection = `<app_knowledge>
220
223
  ## App-Specific Knowledge
221
224
 
222
225
  The following knowledge entries were explicitly saved by the user for this application. They are MANDATORY on every turn and override general defaults.
@@ -228,7 +231,7 @@ The following knowledge entries were explicitly saved by the user for this appli
228
231
  - These take precedence over your general defaults, but never over safety guidelines
229
232
 
230
233
  ${items}
231
- </app_knowledge>`);
234
+ </app_knowledge>`;
232
235
  }
233
236
  if (onDemand.length > 0) {
234
237
  const items = onDemand
@@ -241,18 +244,22 @@ ${items}
241
244
  </knowledge>`;
242
245
  })
243
246
  .join("\n");
244
- sections.push(`<app_knowledge_index>
247
+ onDemandIndexSection = `<app_knowledge_index>
245
248
  ## Available App-Specific Knowledge
246
249
 
247
250
  These app-specific knowledge files are saved by the user for this application. Before implementing, review the entries below and use \`build_readFile <location>\` to load any entry relevant to the current task.
248
251
 
249
252
  ${items}
250
- </app_knowledge_index>`);
253
+ </app_knowledge_index>`;
251
254
  }
252
255
  return {
253
256
  alwaysInjectDedupeKeys: alwaysOn.map((fact) => `${APP_SKILLS_RELATIVE_DIR}/${path.basename(fact.path)}`),
257
+ alwaysInjectSection,
254
258
  onDemandIndexCount: onDemand.length,
255
- section: sections.join("\n\n"),
259
+ onDemandIndexSection,
260
+ section: [alwaysInjectSection, onDemandIndexSection]
261
+ .filter((section) => section.length > 0)
262
+ .join("\n\n"),
256
263
  };
257
264
  }
258
265
  }
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/ai-service/app-skills/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/ai-service/app-skills/manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export interface AttachmentLabelTruncatedParams {
2
+ mimeType: string;
3
+ }
4
+ export declare function recordAttachmentLabelTruncated(params: AttachmentLabelTruncatedParams): void;
5
+ //# sourceMappingURL=attachment-label-metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attachment-label-metrics.d.ts","sourceRoot":"","sources":["../../src/ai-service/attachment-label-metrics.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,EAAE,MAAM,CAAC;CAClB;AAyBD,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,8BAA8B,GACrC,IAAI,CAEN"}
@@ -0,0 +1,26 @@
1
+ import { metrics } from "@opentelemetry/api";
2
+ const METER_NAME = "superblocks.clark.attachment_label";
3
+ const TRUNCATED_TOTAL_METRIC = "superblocks.clark.attachment_label.truncated_total";
4
+ class AttachmentLabelMetrics {
5
+ cachedMeter;
6
+ truncatedCounter;
7
+ recordTruncated(params) {
8
+ const meter = metrics.getMeter(METER_NAME);
9
+ if (meter !== this.cachedMeter || !this.truncatedCounter) {
10
+ this.cachedMeter = meter;
11
+ this.truncatedCounter = meter.createCounter(TRUNCATED_TOTAL_METRIC, {
12
+ description: "Text attachments truncated before being sent to the model for labeling, because their content exceeded the labeling size budget.",
13
+ unit: "1",
14
+ });
15
+ }
16
+ // Org/app identity stays on logs and traces, not this counter's labels
17
+ // (per Clark's traffic-counter convention: it would create a per-tenant
18
+ // series).
19
+ this.truncatedCounter.add(1, { mime_type: params.mimeType });
20
+ }
21
+ }
22
+ const attachmentLabelMetrics = new AttachmentLabelMetrics();
23
+ export function recordAttachmentLabelTruncated(params) {
24
+ attachmentLabelMetrics.recordTruncated(params);
25
+ }
26
+ //# sourceMappingURL=attachment-label-metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attachment-label-metrics.js","sourceRoot":"","sources":["../../src/ai-service/attachment-label-metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA4B,MAAM,oBAAoB,CAAC;AAEvE,MAAM,UAAU,GAAG,oCAAoC,CAAC;AACxD,MAAM,sBAAsB,GAC1B,oDAAoD,CAAC;AAMvD,MAAM,sBAAsB;IAClB,WAAW,CAAoB;IAC/B,gBAAgB,CAAsB;IAE9C,eAAe,CAAC,MAAsC;QACpD,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,KAAK,KAAK,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACzD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,aAAa,CAAC,sBAAsB,EAAE;gBAClE,WAAW,EACT,kIAAkI;gBACpI,IAAI,EAAE,GAAG;aACV,CAAC,CAAC;QACL,CAAC;QACD,uEAAuE;QACvE,wEAAwE;QACxE,WAAW;QACX,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC/D,CAAC;CACF;AAED,MAAM,sBAAsB,GAAG,IAAI,sBAAsB,EAAE,CAAC;AAE5D,MAAM,UAAU,8BAA8B,CAC5C,MAAsC;IAEtC,sBAAsB,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AACjD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"attachment-upload.d.ts","sourceRoot":"","sources":["../../src/ai-service/attachment-upload.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,wBAAwB,EAC9B,MAAM,yBAAyB,CAAC;AAIjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGhD,UAAU,sBAAsB;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,wBAAsB,2BAA2B,CAAC,EAChD,aAAa,EACb,IAAI,EACJ,QAAQ,EACR,MAA6B,EAC7B,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,eAAuB,EACvB,kBAAkB,EAClB,GAAG,EACH,MAAM,GACP,EAAE;IACD,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,wBAAwB,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAiHlC"}
1
+ {"version":3,"file":"attachment-upload.d.ts","sourceRoot":"","sources":["../../src/ai-service/attachment-upload.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,wBAAwB,EAC9B,MAAM,yBAAyB,CAAC;AAIjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGhD,UAAU,sBAAsB;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,wBAAsB,2BAA2B,CAAC,EAChD,aAAa,EACb,IAAI,EACJ,QAAQ,EACR,MAA6B,EAC7B,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,eAAuB,EACvB,kBAAkB,EAClB,GAAG,EACH,MAAM,GACP,EAAE;IACD,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,wBAAwB,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAsHlC"}
@@ -1,4 +1,4 @@
1
- import { buildAttachmentUploadFormData, isUserFacingUploadError, toAttachmentUploadDescriptor, uploadAttachmentToServerApi, } from "@superblocksteam/shared";
1
+ import { buildAttachmentUploadFormData, isUserFacingUploadError, toAttachmentUploadDescriptor, uploadAttachmentToServerApi, validateAttachmentBytes, } from "@superblocksteam/shared";
2
2
  import { getBucketeerUrlFromSuperblocksUrl } from "@superblocksteam/util";
3
3
  import { getErrorMeta } from "../util/logger.js";
4
4
  import { getScopedToken } from "./util/scoped-token-utils.js";
@@ -12,6 +12,11 @@ export async function uploadAttachmentToBucketeer({ applicationId, file, fileNam
12
12
  if (!descriptor) {
13
13
  throw new Error("Unsupported attachment upload input");
14
14
  }
15
+ await validateAttachmentBytes({
16
+ fileName: descriptor.fileName,
17
+ mimeType: descriptor.mimeType,
18
+ bytes: new Uint8Array(await descriptor.blob.arrayBuffer()),
19
+ });
15
20
  const buildFormData = () => {
16
21
  return buildAttachmentUploadFormData({
17
22
  descriptor,
@@ -1 +1 @@
1
- {"version":3,"file":"attachment-upload.js","sourceRoot":"","sources":["../../src/ai-service/attachment-upload.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attachment-upload.js","sourceRoot":"","sources":["../../src/ai-service/attachment-upload.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { type Attachment } from "@superblocksteam/library-shared/types";
2
+ import type { ClarkStateHandlerParams } from "../state-machine/clark-fsm.js";
3
+ /** Validate new input before it becomes durable chat or inference history. */
4
+ export declare function validatePromptAttachments(attachments: Attachment[] | undefined, jwt: string, services: Pick<ClarkStateHandlerParams, "applicationId" | "superblocksBaseUrl"> & {
5
+ rpcClient: Pick<ClarkStateHandlerParams["rpcClient"], "call">;
6
+ }): Promise<void>;
7
+ //# sourceMappingURL=validate-prompt-attachments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-prompt-attachments.d.ts","sourceRoot":"","sources":["../../../src/ai-service/attachments/validate-prompt-attachments.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,UAAU,EAChB,MAAM,uCAAuC,CAAC;AAW/C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAqC7E,8EAA8E;AAC9E,wBAAsB,yBAAyB,CAC7C,WAAW,EAAE,UAAU,EAAE,GAAG,SAAS,EACrC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,IAAI,CACZ,uBAAuB,EACvB,eAAe,GAAG,oBAAoB,CACvC,GAAG;IAAE,SAAS,EAAE,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,CAAA;CAAE,GACpE,OAAO,CAAC,IAAI,CAAC,CAiEf"}
@@ -0,0 +1,96 @@
1
+ import { resolveAttachmentFileName, } from "@superblocksteam/library-shared/types";
2
+ import { assertAttachmentPdfPages, assertAttachmentSize, AttachmentValidationError, getAttachmentUploadLimit, toAttachmentUploadDescriptor, validateAttachmentBytes, } from "@superblocksteam/shared";
3
+ import { getScopedToken } from "../util/scoped-token-utils.js";
4
+ import { getAttachmentLeaseMetadata } from "./uploaded-content-part.js";
5
+ async function downloadAttachment(url, input) {
6
+ const response = await fetch(url, { signal: AbortSignal.timeout(30_000) });
7
+ if (!response.ok || !response.body) {
8
+ throw new Error("This upload is unavailable. Attach the file again and retry.");
9
+ }
10
+ const reader = response.body.getReader();
11
+ const chunks = [];
12
+ let size = 0;
13
+ try {
14
+ const declaredSize = Number(response.headers.get("content-length"));
15
+ if (Number.isFinite(declaredSize))
16
+ assertAttachmentSize({ ...input, sizeBytes: declaredSize });
17
+ for (;;) {
18
+ const { value, done } = await reader.read();
19
+ if (done)
20
+ break;
21
+ size += value.byteLength;
22
+ assertAttachmentSize({ ...input, sizeBytes: size });
23
+ chunks.push(value);
24
+ }
25
+ }
26
+ catch (error) {
27
+ await reader.cancel(error);
28
+ throw error;
29
+ }
30
+ finally {
31
+ reader.releaseLock();
32
+ }
33
+ return Buffer.concat(chunks, size);
34
+ }
35
+ /** Validate new input before it becomes durable chat or inference history. */
36
+ export async function validatePromptAttachments(attachments, jwt, services) {
37
+ let pdfPages = 0;
38
+ for (const attachment of attachments ?? []) {
39
+ const fileName = resolveAttachmentFileName(attachment);
40
+ try {
41
+ let bytes;
42
+ let mimeType;
43
+ if (attachment.type === "uploaded") {
44
+ const reference = getAttachmentLeaseMetadata(attachment);
45
+ mimeType = reference.mediaType;
46
+ getAttachmentUploadLimit({ fileName, mimeType });
47
+ const scopedToken = attachment.scopeType === "org"
48
+ ? ""
49
+ : await getScopedToken({
50
+ applicationId: services.applicationId,
51
+ jwt,
52
+ superblocksBaseUrl: services.superblocksBaseUrl,
53
+ });
54
+ // Only the authorized lease resolver can supply a download URL.
55
+ // Never fetch the caller's url or signedUrl directly.
56
+ const leases = await services.rpcClient.call((client) => client.call.v1.ai.resolveAttachmentLeases({
57
+ attachments: [reference],
58
+ scopedToken,
59
+ superblocksBaseUrl: services.superblocksBaseUrl,
60
+ }));
61
+ const lease = leases?.data?.attachments.find((item) => item.url === reference.url);
62
+ if (!lease?.signedUrl) {
63
+ throw new Error("This upload is unavailable. Attach the file again and retry.");
64
+ }
65
+ bytes = await downloadAttachment(lease.signedUrl, {
66
+ fileName,
67
+ mimeType,
68
+ });
69
+ }
70
+ else {
71
+ const descriptor = toAttachmentUploadDescriptor({
72
+ ...attachment,
73
+ fileName,
74
+ });
75
+ if (!descriptor)
76
+ throw new AttachmentValidationError("unsupported_type");
77
+ mimeType = descriptor.mimeType;
78
+ bytes = new Uint8Array(await descriptor.blob.arrayBuffer());
79
+ }
80
+ const result = await validateAttachmentBytes({
81
+ fileName,
82
+ mimeType,
83
+ bytes,
84
+ });
85
+ pdfPages += result.pdfPages;
86
+ assertAttachmentPdfPages(pdfPages);
87
+ }
88
+ catch (error) {
89
+ const message = error instanceof AttachmentValidationError
90
+ ? error.message
91
+ : "This file could not be checked. Attach it again and retry.";
92
+ throw new Error(`"${fileName}": ${message}`, { cause: error });
93
+ }
94
+ }
95
+ }
96
+ //# sourceMappingURL=validate-prompt-attachments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-prompt-attachments.js","sourceRoot":"","sources":["../../../src/ai-service/attachments/validate-prompt-attachments.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,26 @@
5
5
  */
6
6
  export declare const CHAT_PUSH_FAILURE_REASONS: readonly ["rpc_error", "timeout"];
7
7
  type ChatPushFailureReason = (typeof CHAT_PUSH_FAILURE_REASONS)[number];
8
+ /**
9
+ * Outcome of one abandoned-tool-call reconcile pass (ENG-6785). A process
10
+ * retries after `load_failed` or `push_failed`, so a pod can emit more than
11
+ * one pass.
12
+ *
13
+ * `no_orphans` is the healthy steady state and is emitted deliberately: without
14
+ * it there is no denominator, so a reconcile that silently stopped finding
15
+ * anything would look identical to a fleet that stopped being killed. A rising
16
+ * `reconciled` rate is the pod-churn signal; `load_failed` means the transcript
17
+ * was never read; `push_failed` means a transcript is still claiming a dead
18
+ * tool is running.
19
+ */
20
+ export declare const CHAT_RECONCILE_OUTCOMES: readonly ["load_failed", "no_orphans", "push_failed", "reconciled"];
21
+ export type ChatReconcileOutcome = (typeof CHAT_RECONCILE_OUTCOMES)[number];
8
22
  export declare function recordChatPushFailure(input: {
9
23
  reason: ChatPushFailureReason;
10
24
  }): void;
25
+ export declare function recordChatAbandonedToolReconcile(input: {
26
+ outcome: ChatReconcileOutcome;
27
+ }): void;
11
28
  export declare function _resetChatPushMetricsForTesting(): void;
12
29
  export {};
13
30
  //# sourceMappingURL=chat-push-metrics.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat-push-metrics.d.ts","sourceRoot":"","sources":["../../../src/ai-service/chat/chat-push-metrics.ts"],"names":[],"mappings":"AAwBA;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,mCAAoC,CAAC;AAC3E,KAAK,qBAAqB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;AA4CxE,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,MAAM,EAAE,qBAAqB,CAAC;CAC/B,GAAG,IAAI,CAEP;AAED,wBAAgB,+BAA+B,IAAI,IAAI,CAEtD"}
1
+ {"version":3,"file":"chat-push-metrics.d.ts","sourceRoot":"","sources":["../../../src/ai-service/chat/chat-push-metrics.ts"],"names":[],"mappings":"AAwBA;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,mCAAoC,CAAC;AAC3E,KAAK,qBAAqB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;AAIxE;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,uBAAuB,qEAK1B,CAAC;AACX,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAsE5E,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,MAAM,EAAE,qBAAqB,CAAC;CAC/B,GAAG,IAAI,CAEP;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE;IACtD,OAAO,EAAE,oBAAoB,CAAC;CAC/B,GAAG,IAAI,CAEP;AAED,wBAAgB,+BAA+B,IAAI,IAAI,CAEtD"}
@@ -28,10 +28,35 @@ import { metrics } from "@opentelemetry/api";
28
28
  */
29
29
  export const CHAT_PUSH_FAILURE_REASONS = ["rpc_error", "timeout"];
30
30
  const METER_NAME = "superblocks.clark.chat";
31
+ /**
32
+ * Outcome of one abandoned-tool-call reconcile pass (ENG-6785). A process
33
+ * retries after `load_failed` or `push_failed`, so a pod can emit more than
34
+ * one pass.
35
+ *
36
+ * `no_orphans` is the healthy steady state and is emitted deliberately: without
37
+ * it there is no denominator, so a reconcile that silently stopped finding
38
+ * anything would look identical to a fleet that stopped being killed. A rising
39
+ * `reconciled` rate is the pod-churn signal; `load_failed` means the transcript
40
+ * was never read; `push_failed` means a transcript is still claiming a dead
41
+ * tool is running.
42
+ */
43
+ export const CHAT_RECONCILE_OUTCOMES = [
44
+ "load_failed",
45
+ "no_orphans",
46
+ "push_failed",
47
+ "reconciled",
48
+ ];
31
49
  const METRIC_PUSH_FAILURES = "superblocks.clark.chat.push_failures";
50
+ const METRIC_RECONCILES = "superblocks.clark.chat.abandoned_tool_reconciles";
32
51
  class ChatPushMetrics {
33
52
  cachedMeter;
34
53
  cachedCounter;
54
+ // Its own meter handle rather than sharing `cachedMeter`: a single shared
55
+ // field lets whichever instrument rebinds first mark the meter as current,
56
+ // so the other one keeps returning a counter still bound to the replaced
57
+ // provider and silently drops every subsequent add.
58
+ cachedReconcileMeter;
59
+ cachedReconcileCounter;
35
60
  /**
36
61
  * Lazy instrument factory. Re-creates the counter when the global
37
62
  * MeterProvider changes (a stale instrument bound to a replaced provider
@@ -49,19 +74,39 @@ class ChatPushMetrics {
49
74
  });
50
75
  return this.cachedCounter;
51
76
  }
77
+ getReconcileCounter() {
78
+ const meter = metrics.getMeter(METER_NAME);
79
+ if (meter === this.cachedReconcileMeter && this.cachedReconcileCounter) {
80
+ return this.cachedReconcileCounter;
81
+ }
82
+ this.cachedReconcileMeter = meter;
83
+ this.cachedReconcileCounter = meter.createCounter(METRIC_RECONCILES, {
84
+ description: "Abandoned-tool-call reconcile passes, by outcome (ENG-6785). Retries after load_failed or push_failed.",
85
+ unit: "{pass}",
86
+ });
87
+ return this.cachedReconcileCounter;
88
+ }
52
89
  recordFailure(input) {
53
90
  this.getCounter().add(1, { reason: input.reason });
54
91
  }
92
+ recordReconcile(input) {
93
+ this.getReconcileCounter().add(1, { outcome: input.outcome });
94
+ }
55
95
  /** Drop cached instrument bindings (tests swap the global provider). */
56
96
  _resetForTesting() {
57
97
  this.cachedMeter = undefined;
58
98
  this.cachedCounter = undefined;
99
+ this.cachedReconcileMeter = undefined;
100
+ this.cachedReconcileCounter = undefined;
59
101
  }
60
102
  }
61
103
  const chatPushMetrics = new ChatPushMetrics();
62
104
  export function recordChatPushFailure(input) {
63
105
  chatPushMetrics.recordFailure(input);
64
106
  }
107
+ export function recordChatAbandonedToolReconcile(input) {
108
+ chatPushMetrics.recordReconcile(input);
109
+ }
65
110
  export function _resetChatPushMetricsForTesting() {
66
111
  chatPushMetrics._resetForTesting();
67
112
  }
@@ -1 +1 @@
1
- {"version":3,"file":"chat-push-metrics.js","sourceRoot":"","sources":["../../../src/ai-service/chat/chat-push-metrics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAAE,OAAO,EAAc,MAAM,oBAAoB,CAAC;AAEzD;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,WAAW,EAAE,SAAS,CAAU,CAAC;AAG3E,MAAM,UAAU,GAAG,wBAAwB,CAAC;AAE5C,MAAM,oBAAoB,GAAG,sCAAsC,CAAC;AAIpE,MAAM,eAAe;IACX,WAAW,CAAoB;IAC/B,aAAa,CAAsB;IAE3C;;;;OAIG;IACK,UAAU;QAChB,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,KAAK,KAAK,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrD,OAAO,IAAI,CAAC,aAAa,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC,oBAAoB,EAAE;YAC7D,WAAW,EACT,2HAA2H;YAC7H,IAAI,EAAE,WAAW;SAClB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,aAAa,CAAC,KAAwC;QACpD,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,wEAAwE;IACxE,gBAAgB;QACd,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC7B,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;IACjC,CAAC;CACF;AAED,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;AAE9C,MAAM,UAAU,qBAAqB,CAAC,KAErC;IACC,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,+BAA+B;IAC7C,eAAe,CAAC,gBAAgB,EAAE,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"chat-push-metrics.js","sourceRoot":"","sources":["../../../src/ai-service/chat/chat-push-metrics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAAE,OAAO,EAAc,MAAM,oBAAoB,CAAC;AAEzD;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,WAAW,EAAE,SAAS,CAAU,CAAC;AAG3E,MAAM,UAAU,GAAG,wBAAwB,CAAC;AAE5C;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,aAAa;IACb,YAAY;IACZ,aAAa;IACb,YAAY;CACJ,CAAC;AAGX,MAAM,oBAAoB,GAAG,sCAAsC,CAAC;AAEpE,MAAM,iBAAiB,GAAG,kDAAkD,CAAC;AAI7E,MAAM,eAAe;IACX,WAAW,CAAoB;IAC/B,aAAa,CAAsB;IAC3C,0EAA0E;IAC1E,2EAA2E;IAC3E,yEAAyE;IACzE,oDAAoD;IAC5C,oBAAoB,CAAoB;IACxC,sBAAsB,CAAsB;IAEpD;;;;OAIG;IACK,UAAU;QAChB,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,KAAK,KAAK,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrD,OAAO,IAAI,CAAC,aAAa,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC,oBAAoB,EAAE;YAC7D,WAAW,EACT,2HAA2H;YAC7H,IAAI,EAAE,WAAW;SAClB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAEO,mBAAmB;QACzB,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,KAAK,KAAK,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACvE,OAAO,IAAI,CAAC,sBAAsB,CAAC;QACrC,CAAC;QACD,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAClC,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC,aAAa,CAAC,iBAAiB,EAAE;YACnE,WAAW,EACT,wGAAwG;YAC1G,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,sBAAsB,CAAC;IACrC,CAAC;IAED,aAAa,CAAC,KAAwC;QACpD,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,eAAe,CAAC,KAAwC;QACtD,IAAI,CAAC,mBAAmB,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,wEAAwE;IACxE,gBAAgB;QACd,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC7B,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QAC/B,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;QACtC,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC;IAC1C,CAAC;CACF;AAED,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;AAE9C,MAAM,UAAU,qBAAqB,CAAC,KAErC;IACC,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,KAEhD;IACC,eAAe,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,+BAA+B;IAC7C,eAAe,CAAC,gBAAgB,EAAE,CAAC;AACrC,CAAC"}
@@ -11,6 +11,17 @@ type AiChatSummaryWithOutcome = AiChatSummary & {
11
11
  };
12
12
  export declare function isAiChatMessage(item: AiChatItem): item is AiChatMessage;
13
13
  export declare function isAiChatSummary(item: AiChatItem): item is AiChatSummary;
14
+ export declare const INTERRUPTED_TOOL_ERROR = "This step did not report a result because the session restarted.";
15
+ interface AiToolCallRow {
16
+ toolCallId: string;
17
+ toolName: string;
18
+ }
19
+ /**
20
+ * Tool calls in `messages` that no `tool-result` or `tool-error` row ever
21
+ * answered. Order follows the transcript so the reconcile rows land in the
22
+ * order the calls were made.
23
+ */
24
+ export declare function findAbandonedToolCalls(messages: readonly AiChatMessage[]): AiToolCallRow[];
14
25
  interface TranscriptBudgetConfig {
15
26
  maxResidentBytes?: number;
16
27
  maxResidentItems?: number;
@@ -61,6 +72,36 @@ export declare class ChatSessionStore {
61
72
  private validateChatItemV1;
62
73
  private recordTranscriptLoadOutcome;
63
74
  private ensureLoadedFromServer;
75
+ private reconcilePass?;
76
+ private readonly ownedToolCallIds;
77
+ /**
78
+ * Write a terminal result for every tool call this session's transcript
79
+ * still records as running (ENG-6785).
80
+ *
81
+ * A tool call persists as its own `type: "tool"` row with
82
+ * `status: "pending"`, and the row that resolves it is appended separately
83
+ * when the call returns. If the runtime dies in between -- an OOM kill, a
84
+ * warm-pool pod replacement, an ai-service restart -- the second row is
85
+ * never written, and every future reader of that transcript sees a tool
86
+ * that is still running. Nothing else in the system ever corrects it: the
87
+ * process that owed the result is gone.
88
+ *
89
+ * Started when a peer first binds, which is the moment a replacement pod
90
+ * can state something no other party knows -- it started empty, so nothing
91
+ * in the transcript it just loaded is executing. Reconnect history loads
92
+ * join this promise via `getMessages({ force: true })` so the open tab
93
+ * sees the durable interrupt. A failed load or push releases the memo so
94
+ * the next bind retries. Calls this process starts are tracked separately
95
+ * and are never written as interrupted.
96
+ *
97
+ * Deliberately not folded into `ensureLoadedFromServer`. Appending from
98
+ * inside the load deadlocks -- `doAppendMessage` awaits the very load it
99
+ * would be running under -- and the 20s `boundedAppendMessage` bound would
100
+ * then fire and invalidate the shared RPC socket out from under every other
101
+ * caller.
102
+ */
103
+ reconcileAbandonedToolCalls(): Promise<void>;
104
+ private runAbandonedToolCallReconcile;
64
105
  getLastUserMessage(): AiChatMessage | undefined;
65
106
  getMessages(options?: {
66
107
  force?: boolean;
@@ -95,6 +136,7 @@ export declare class ChatSessionStore {
95
136
  text: string;
96
137
  type: "text" | "reasoning";
97
138
  }): void;
139
+ discardTextBlocks(ids: readonly string[]): void;
98
140
  commitMessage(id: string, type: "text" | "reasoning", group?: string): Promise<void>;
99
141
  recordAssistant(payload: AiChatMessage): Promise<void>;
100
142
  recordAssistantChangeInfo(payload: AiChangeInfoPush): Promise<void>;
@@ -111,6 +153,15 @@ export declare class ChatSessionStore {
111
153
  setPromptIdProvider(provider: () => string | undefined): void;
112
154
  private stampPromptId;
113
155
  private appendMessage;
156
+ private noteOwnedToolCall;
157
+ /**
158
+ * Reconcile-authored rows must not stay in the local cache when the RPC
159
+ * does not confirm them: findAbandonedToolCalls would treat the phantom
160
+ * tool-error as a real result and never retry that call.
161
+ */
162
+ private appendReconcileRow;
163
+ private enqueueAppend;
164
+ private rollbackUnconfirmedAppend;
114
165
  /**
115
166
  * Resolves when every push queued so far has completed (or failed/timed
116
167
  * out). Never rejects. Callers use this to make chat history durable at a
@@ -1 +1 @@
1
- {"version":3,"file":"chat-session-store.d.ts","sourceRoot":"","sources":["../../../src/ai-service/chat/chat-session-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-session-store.d.ts","sourceRoot":"","sources":["../../../src/ai-service/chat/chat-session-store.ts"],"names":[],"mappings":"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"}