@superblocksteam/vite-plugin-file-sync 2.0.137 → 2.0.138-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 (229) hide show
  1. package/dist/ai-service/agent/middleware.d.ts.map +1 -1
  2. package/dist/ai-service/agent/middleware.js +2 -22
  3. package/dist/ai-service/agent/middleware.js.map +1 -1
  4. package/dist/ai-service/agent/tools/build-capture-screenshot.d.ts +1 -0
  5. package/dist/ai-service/agent/tools/build-capture-screenshot.d.ts.map +1 -1
  6. package/dist/ai-service/agent/tools/build-capture-screenshot.js +150 -7
  7. package/dist/ai-service/agent/tools/build-capture-screenshot.js.map +1 -1
  8. package/dist/ai-service/agent/tools/build-read-file.d.ts +10 -0
  9. package/dist/ai-service/agent/tools/build-read-file.d.ts.map +1 -1
  10. package/dist/ai-service/agent/tools/build-read-file.js +14 -1
  11. package/dist/ai-service/agent/tools/build-read-file.js.map +1 -1
  12. package/dist/ai-service/agent/tools/index.d.ts +1 -1
  13. package/dist/ai-service/agent/tools/index.d.ts.map +1 -1
  14. package/dist/ai-service/agent/tools/index.js +1 -1
  15. package/dist/ai-service/agent/tools/index.js.map +1 -1
  16. package/dist/ai-service/agent/tools.d.ts +1 -1
  17. package/dist/ai-service/agent/tools.d.ts.map +1 -1
  18. package/dist/ai-service/agent/tools.js +15 -1
  19. package/dist/ai-service/agent/tools.js.map +1 -1
  20. package/dist/ai-service/agent/tools2/tools/grep.d.ts.map +1 -1
  21. package/dist/ai-service/agent/tools2/tools/grep.js +2 -1
  22. package/dist/ai-service/agent/tools2/tools/grep.js.map +1 -1
  23. package/dist/ai-service/agent/tools2/tools/remember-knowledge.d.ts.map +1 -1
  24. package/dist/ai-service/agent/tools2/tools/remember-knowledge.js +8 -0
  25. package/dist/ai-service/agent/tools2/tools/remember-knowledge.js.map +1 -1
  26. package/dist/ai-service/agent/tools2/tools/start-test-run.d.ts.map +1 -1
  27. package/dist/ai-service/agent/tools2/tools/start-test-run.js +14 -6
  28. package/dist/ai-service/agent/tools2/tools/start-test-run.js.map +1 -1
  29. package/dist/ai-service/agent/tools2/tools/web-fetch.d.ts +2 -0
  30. package/dist/ai-service/agent/tools2/tools/web-fetch.d.ts.map +1 -1
  31. package/dist/ai-service/agent/tools2/tools/web-fetch.js +10 -5
  32. package/dist/ai-service/agent/tools2/tools/web-fetch.js.map +1 -1
  33. package/dist/ai-service/agent/utils.d.ts.map +1 -1
  34. package/dist/ai-service/agent/utils.js +25 -7
  35. package/dist/ai-service/agent/utils.js.map +1 -1
  36. package/dist/ai-service/app-interface/linter.d.ts.map +1 -1
  37. package/dist/ai-service/app-interface/linter.js +14 -3
  38. package/dist/ai-service/app-interface/linter.js.map +1 -1
  39. package/dist/ai-service/app-interface/npm-package-lookup.d.ts +19 -14
  40. package/dist/ai-service/app-interface/npm-package-lookup.d.ts.map +1 -1
  41. package/dist/ai-service/app-interface/npm-package-lookup.js +56 -23
  42. package/dist/ai-service/app-interface/npm-package-lookup.js.map +1 -1
  43. package/dist/ai-service/app-interface/npm-registry.d.ts +96 -48
  44. package/dist/ai-service/app-interface/npm-registry.d.ts.map +1 -1
  45. package/dist/ai-service/app-interface/npm-registry.js +247 -220
  46. package/dist/ai-service/app-interface/npm-registry.js.map +1 -1
  47. package/dist/ai-service/app-interface/shell.d.ts +36 -0
  48. package/dist/ai-service/app-interface/shell.d.ts.map +1 -1
  49. package/dist/ai-service/app-interface/shell.js +183 -8
  50. package/dist/ai-service/app-interface/shell.js.map +1 -1
  51. package/dist/ai-service/app-skills/helpers.d.ts.map +1 -1
  52. package/dist/ai-service/app-skills/helpers.js +48 -8
  53. package/dist/ai-service/app-skills/helpers.js.map +1 -1
  54. package/dist/ai-service/app-skills/manager.d.ts +5 -0
  55. package/dist/ai-service/app-skills/manager.d.ts.map +1 -1
  56. package/dist/ai-service/app-skills/manager.js +13 -4
  57. package/dist/ai-service/app-skills/manager.js.map +1 -1
  58. package/dist/ai-service/attachments/uploaded-content-part.d.ts.map +1 -1
  59. package/dist/ai-service/attachments/uploaded-content-part.js +12 -5
  60. package/dist/ai-service/attachments/uploaded-content-part.js.map +1 -1
  61. package/dist/ai-service/index.d.ts +1 -2
  62. package/dist/ai-service/index.d.ts.map +1 -1
  63. package/dist/ai-service/index.js +16 -175
  64. package/dist/ai-service/index.js.map +1 -1
  65. package/dist/ai-service/judge/judge-eval-service-runner.js +0 -4
  66. package/dist/ai-service/judge/judge-eval-service-runner.js.map +1 -1
  67. package/dist/ai-service/judge/judge-service.js +1 -1
  68. package/dist/ai-service/judge/judge-service.js.map +1 -1
  69. package/dist/ai-service/knowledge/knowledge-metrics-emitters.d.ts +20 -0
  70. package/dist/ai-service/knowledge/knowledge-metrics-emitters.d.ts.map +1 -0
  71. package/dist/ai-service/knowledge/knowledge-metrics-emitters.js +77 -0
  72. package/dist/ai-service/knowledge/knowledge-metrics-emitters.js.map +1 -0
  73. package/dist/ai-service/knowledge/knowledge-metrics.d.ts +43 -0
  74. package/dist/ai-service/knowledge/knowledge-metrics.d.ts.map +1 -0
  75. package/dist/ai-service/knowledge/knowledge-metrics.js +217 -0
  76. package/dist/ai-service/knowledge/knowledge-metrics.js.map +1 -0
  77. package/dist/ai-service/llm/client.d.ts +144 -18
  78. package/dist/ai-service/llm/client.d.ts.map +1 -1
  79. package/dist/ai-service/llm/client.js +303 -48
  80. package/dist/ai-service/llm/client.js.map +1 -1
  81. package/dist/ai-service/llm/context-v2/context-metrics.d.ts +1 -0
  82. package/dist/ai-service/llm/context-v2/context-metrics.d.ts.map +1 -1
  83. package/dist/ai-service/llm/context-v2/context-metrics.js +14 -1
  84. package/dist/ai-service/llm/context-v2/context-metrics.js.map +1 -1
  85. package/dist/ai-service/llm/context-v2/context.d.ts +3 -0
  86. package/dist/ai-service/llm/context-v2/context.d.ts.map +1 -1
  87. package/dist/ai-service/llm/context-v2/context.js +34 -1
  88. package/dist/ai-service/llm/context-v2/context.js.map +1 -1
  89. package/dist/ai-service/llm/context-v2/manager.d.ts.map +1 -1
  90. package/dist/ai-service/llm/context-v2/manager.js +4 -1
  91. package/dist/ai-service/llm/context-v2/manager.js.map +1 -1
  92. package/dist/ai-service/llm/interaction/adapters/vercel.d.ts +1 -1
  93. package/dist/ai-service/llm/interaction/adapters/vercel.d.ts.map +1 -1
  94. package/dist/ai-service/llm/interaction/adapters/vercel.js +19 -4
  95. package/dist/ai-service/llm/interaction/adapters/vercel.js.map +1 -1
  96. package/dist/ai-service/llm/interaction/provider.d.ts +17 -3
  97. package/dist/ai-service/llm/interaction/provider.d.ts.map +1 -1
  98. package/dist/ai-service/llm/provider.d.ts.map +1 -1
  99. package/dist/ai-service/llm/provider.js +19 -15
  100. package/dist/ai-service/llm/provider.js.map +1 -1
  101. package/dist/ai-service/llm/stream/managed-stream.d.ts.map +1 -1
  102. package/dist/ai-service/llm/stream/managed-stream.js +25 -2
  103. package/dist/ai-service/llm/stream/managed-stream.js.map +1 -1
  104. package/dist/ai-service/llm/stream/observers/llmobs.d.ts +9 -0
  105. package/dist/ai-service/llm/stream/observers/llmobs.d.ts.map +1 -1
  106. package/dist/ai-service/llm/stream/observers/llmobs.js +22 -5
  107. package/dist/ai-service/llm/stream/observers/llmobs.js.map +1 -1
  108. package/dist/ai-service/llm/stream/observers/logging.d.ts.map +1 -1
  109. package/dist/ai-service/llm/stream/observers/logging.js +17 -12
  110. package/dist/ai-service/llm/stream/observers/logging.js.map +1 -1
  111. package/dist/ai-service/llm/stream/orchestrator.d.ts +1 -0
  112. package/dist/ai-service/llm/stream/orchestrator.d.ts.map +1 -1
  113. package/dist/ai-service/llm/stream/orchestrator.js +131 -0
  114. package/dist/ai-service/llm/stream/orchestrator.js.map +1 -1
  115. package/dist/ai-service/llm/types.d.ts +17 -6
  116. package/dist/ai-service/llm/types.d.ts.map +1 -1
  117. package/dist/ai-service/prompt-builder-service/classifiers/prompt-interpret-task.d.ts +3 -1
  118. package/dist/ai-service/prompt-builder-service/classifiers/prompt-interpret-task.d.ts.map +1 -1
  119. package/dist/ai-service/prompt-builder-service/classifiers/prompt-interpret-task.js +13 -5
  120. package/dist/ai-service/prompt-builder-service/classifiers/prompt-interpret-task.js.map +1 -1
  121. package/dist/ai-service/security/safety-classifier.d.ts +14 -1
  122. package/dist/ai-service/security/safety-classifier.d.ts.map +1 -1
  123. package/dist/ai-service/security/safety-classifier.js +26 -12
  124. package/dist/ai-service/security/safety-classifier.js.map +1 -1
  125. package/dist/ai-service/skills/system/third-party-migration/claude-design.generated.d.ts +1 -1
  126. package/dist/ai-service/skills/system/third-party-migration/claude-design.generated.d.ts.map +1 -1
  127. package/dist/ai-service/skills/system/third-party-migration/claude-design.generated.js +35 -18
  128. package/dist/ai-service/skills/system/third-party-migration/claude-design.generated.js.map +1 -1
  129. package/dist/ai-service/skills/system/third-party-migration/skill.generated.d.ts +1 -1
  130. package/dist/ai-service/skills/system/third-party-migration/skill.generated.d.ts.map +1 -1
  131. package/dist/ai-service/skills/system/third-party-migration/skill.generated.js +7 -5
  132. package/dist/ai-service/skills/system/third-party-migration/skill.generated.js.map +1 -1
  133. package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
  134. package/dist/ai-service/state-machine/clark-fsm.js +3 -2
  135. package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
  136. package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -1
  137. package/dist/ai-service/state-machine/handlers/agent-planning.js +14 -7
  138. package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
  139. package/dist/ai-service/state-machine/handlers/awaiting-user.d.ts +1 -1
  140. package/dist/ai-service/state-machine/handlers/awaiting-user.d.ts.map +1 -1
  141. package/dist/ai-service/state-machine/handlers/awaiting-user.js +40 -27
  142. package/dist/ai-service/state-machine/handlers/awaiting-user.js.map +1 -1
  143. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts +14 -0
  144. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
  145. package/dist/ai-service/state-machine/handlers/llm-generating.js +72 -16
  146. package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
  147. package/dist/ai-service/state-machine/handlers/next-steps.d.ts +8 -1
  148. package/dist/ai-service/state-machine/handlers/next-steps.d.ts.map +1 -1
  149. package/dist/ai-service/state-machine/handlers/next-steps.js +13 -11
  150. package/dist/ai-service/state-machine/handlers/next-steps.js.map +1 -1
  151. package/dist/ai-service/state-machine/helpers/peer.d.ts.map +1 -1
  152. package/dist/ai-service/state-machine/helpers/peer.js +3 -2
  153. package/dist/ai-service/state-machine/helpers/peer.js.map +1 -1
  154. package/dist/ai-service/state-machine/helpers/stable-peer.d.ts +5 -0
  155. package/dist/ai-service/state-machine/helpers/stable-peer.d.ts.map +1 -1
  156. package/dist/ai-service/state-machine/helpers/stable-peer.js +37 -0
  157. package/dist/ai-service/state-machine/helpers/stable-peer.js.map +1 -1
  158. package/dist/ai-service/template-renderer.d.ts.map +1 -1
  159. package/dist/ai-service/template-renderer.js +2 -2
  160. package/dist/ai-service/template-renderer.js.map +1 -1
  161. package/dist/ai-service/types.d.ts +2 -2
  162. package/dist/ai-service/types.d.ts.map +1 -1
  163. package/dist/dev-server-ws-smoke-client.d.ts +41 -0
  164. package/dist/dev-server-ws-smoke-client.d.ts.map +1 -0
  165. package/dist/dev-server-ws-smoke-client.js +314 -0
  166. package/dist/dev-server-ws-smoke-client.js.map +1 -0
  167. package/dist/early-error-relay.d.ts +31 -0
  168. package/dist/early-error-relay.d.ts.map +1 -0
  169. package/dist/early-error-relay.js +88 -0
  170. package/dist/early-error-relay.js.map +1 -0
  171. package/dist/file-sync-vite-plugin.d.ts +26 -1
  172. package/dist/file-sync-vite-plugin.d.ts.map +1 -1
  173. package/dist/file-sync-vite-plugin.js +82 -43
  174. package/dist/file-sync-vite-plugin.js.map +1 -1
  175. package/dist/file-system-helpers.d.ts +13 -0
  176. package/dist/file-system-helpers.d.ts.map +1 -1
  177. package/dist/file-system-helpers.js +18 -1
  178. package/dist/file-system-helpers.js.map +1 -1
  179. package/dist/file-system-manager.d.ts +0 -1
  180. package/dist/file-system-manager.d.ts.map +1 -1
  181. package/dist/file-system-manager.js +0 -53
  182. package/dist/file-system-manager.js.map +1 -1
  183. package/dist/injected-index.d.ts +6 -0
  184. package/dist/injected-index.d.ts.map +1 -1
  185. package/dist/injected-index.js +59 -14
  186. package/dist/injected-index.js.map +1 -1
  187. package/dist/migration/migration-routes.d.ts +3 -0
  188. package/dist/migration/migration-routes.d.ts.map +1 -1
  189. package/dist/migration/migration-routes.js +93 -108
  190. package/dist/migration/migration-routes.js.map +1 -1
  191. package/dist/migration/restructure.d.ts +15 -0
  192. package/dist/migration/restructure.d.ts.map +1 -1
  193. package/dist/migration/restructure.js +50 -1
  194. package/dist/migration/restructure.js.map +1 -1
  195. package/dist/migration-templates/app-fullstack/eslint.config.js +6 -1
  196. package/dist/migration-templates/app-fullstack/package.json +2 -1
  197. package/dist/plugin-options.d.ts +7 -0
  198. package/dist/plugin-options.d.ts.map +1 -1
  199. package/dist/plugin-options.js.map +1 -1
  200. package/dist/socket-manager.d.ts.map +1 -1
  201. package/dist/socket-manager.js +0 -5
  202. package/dist/socket-manager.js.map +1 -1
  203. package/dist/sync-service/list-dir.d.ts +1 -1
  204. package/dist/sync-service/list-dir.js +3 -3
  205. package/dist/sync-service/list-dir.js.map +1 -1
  206. package/dist/util/log-sanitizer.d.ts.map +1 -1
  207. package/dist/util/log-sanitizer.js +13 -6
  208. package/dist/util/log-sanitizer.js.map +1 -1
  209. package/dist/util/summarize-for-logging.d.ts +14 -0
  210. package/dist/util/summarize-for-logging.d.ts.map +1 -0
  211. package/dist/util/summarize-for-logging.js +94 -0
  212. package/dist/util/summarize-for-logging.js.map +1 -0
  213. package/package.json +8 -8
  214. package/dist/ai-service/agent/tools2/tools/explain-code-finalize.d.ts +0 -4
  215. package/dist/ai-service/agent/tools2/tools/explain-code-finalize.d.ts.map +0 -1
  216. package/dist/ai-service/agent/tools2/tools/explain-code-finalize.js +0 -19
  217. package/dist/ai-service/agent/tools2/tools/explain-code-finalize.js.map +0 -1
  218. package/dist/ai-service/llm/impl/anthropic.d.ts +0 -3
  219. package/dist/ai-service/llm/impl/anthropic.d.ts.map +0 -1
  220. package/dist/ai-service/llm/impl/anthropic.js +0 -15
  221. package/dist/ai-service/llm/impl/anthropic.js.map +0 -1
  222. package/dist/ai-service/prompts/explain-code.d.ts +0 -7
  223. package/dist/ai-service/prompts/explain-code.d.ts.map +0 -1
  224. package/dist/ai-service/prompts/explain-code.js +0 -23
  225. package/dist/ai-service/prompts/explain-code.js.map +0 -1
  226. package/dist/ai-service/util/json-stream-parser.d.ts +0 -20
  227. package/dist/ai-service/util/json-stream-parser.d.ts.map +0 -1
  228. package/dist/ai-service/util/json-stream-parser.js +0 -139
  229. package/dist/ai-service/util/json-stream-parser.js.map +0 -1
@@ -1,3 +1,4 @@
1
+ import { asSchema, safeParseJSON, safeValidateTypes, } from "@ai-sdk/provider-utils";
1
2
  import { safeJsonStringify } from "../../util/log-sanitizer.js";
2
3
  import { getLogger, getPrefixedLogger, getErrorMeta, } from "../../util/logger.js";
3
4
  import { LLMObsTracer } from "../llmobs/tracer.js";
@@ -137,7 +138,7 @@ export class LLMClient {
137
138
  * @param config - Safety classification configuration
138
139
  * @returns Object containing the processed message and classification result
139
140
  */
140
- async applySafetyClassification(user, userText, config) {
141
+ async applySafetyClassification(user, userText, config, fallbackProviderConfig) {
141
142
  const failOpen = config.failOpen ?? true;
142
143
  if (!config.model) {
143
144
  this.logger.warn("[safety-classifier] No model configured, skipping classification");
@@ -153,6 +154,11 @@ export class LLMClient {
153
154
  this.logger.info("[safety-classifier] Running safety classification");
154
155
  const classification = await classifyPromptSafety(userText, {
155
156
  model: config.model,
157
+ providerConfig: config.providerConfig ?? fallbackProviderConfig,
158
+ // Route through this same client so the classification call inherits
159
+ // retry/observability. The classifier disables its own safety pass to
160
+ // avoid recursion (see classifyPromptSafety).
161
+ llmClient: this,
156
162
  timeout: config.timeout ?? 5000,
157
163
  });
158
164
  if (!classification.safe) {
@@ -206,7 +212,7 @@ export class LLMClient {
206
212
  }
207
213
  }
208
214
  async streamText(options, logger = getLogger(), tracer = LLMObsTracer.instance) {
209
- const { model, user, system, context: contextConfig, logging: loggingConfig, retry: retryConfig, providerConfig, thinking: thinkingConfig, enableFallback, fallbackStrategy, peer, chatSessionStore, observers: customObservers, prepareStep, onStepFinish, onFinish, onChunk, onError, safety: safetyConfig, ...streamOptions } = options;
215
+ const { model, user, system, context: contextConfig, logging: loggingConfig, recordObsContent, retry: retryConfig, providerConfig, thinking: thinkingConfig, enableFallback, fallbackStrategy, peer, chatSessionStore, observers: customObservers, prepareStep, onStepFinish, onFinish, onChunk, onError, safety: safetyConfig, ...streamOptions } = options;
210
216
  if (!user) {
211
217
  throw new Error("user message is required");
212
218
  }
@@ -268,7 +274,7 @@ export class LLMClient {
268
274
  }, async () => {
269
275
  // Extract text from the potentially redacted message to avoid leaking secrets to classifier
270
276
  const textToClassify = extractTextFromMessage(safeUser, scope);
271
- const result = await this.applySafetyClassification(safeUser, textToClassify, config);
277
+ const result = await this.applySafetyClassification(safeUser, textToClassify, config, providerConfig);
272
278
  safeUser = result.message;
273
279
  // Annotate classification span with results
274
280
  tracer.annotate({
@@ -298,27 +304,50 @@ export class LLMClient {
298
304
  throw new Error("providerConfig with provider and model is required. " +
299
305
  "This should be populated from llmConfig sent by the UI.");
300
306
  }
301
- const contextId = contextConfig?.contextId;
307
+ const usesManagedContext = contextConfig?.mode !== "stateless";
308
+ const managedContextConfig = usesManagedContext ? contextConfig : undefined;
309
+ const contextId = managedContextConfig?.contextId;
310
+ // Stateless calls are internal one-shots with no conversation to log to, so
311
+ // they must not write `.superblocks/generations` transcript artifacts.
312
+ // Default logging OFF for stateless unless a caller explicitly passes a
313
+ // logging config (explicit opt-in still wins). This makes `stateless` the
314
+ // canonical "internal, no-artifact" signal and removes the per-call-site
315
+ // `logging: false` footgun for future internal callers.
316
+ const effectiveLoggingConfig = loggingConfig === undefined && !usesManagedContext
317
+ ? false
318
+ : loggingConfig;
302
319
  const contextSetupStartedAt = performance.now();
303
- const { contextHandle, ctx } = await this.createContext(contextId, contextConfig?.contextOptionsV2, tracer, contextConfig?.contextManagement, peer);
304
- if (contextConfig?.messages?.length) {
305
- await ctx.initializeWith(contextConfig.messages);
306
- }
307
- if (system) {
308
- ctx.setSystemPrompt({ role: "system", content: system });
309
- }
310
- // Warn when an ephemeral context (no persistent contextId) ends up without
311
- // a system prompt. This was the root cause of APPS-3387: exitPlanMode
312
- // created an ephemeral context whose initializeWith silently dropped the
313
- // system message, causing the LLM to reason but produce no text output.
314
- if (!contextId && !system) {
315
- const hasSystemInMessages = contextConfig?.messages?.some((m) => m.role === "system");
316
- if (!hasSystemInMessages) {
317
- logger.warn("[llm-client] Ephemeral context created without a system prompt. " +
318
- "This may cause the LLM to produce empty text output.");
320
+ const managedContext = usesManagedContext
321
+ ? await this.createContext(contextId, managedContextConfig?.contextOptionsV2, tracer, managedContextConfig?.contextManagement, peer)
322
+ : undefined;
323
+ const contextHandle = managedContext?.contextHandle;
324
+ const ctx = managedContext?.ctx;
325
+ if (ctx) {
326
+ if (managedContextConfig?.messages?.length) {
327
+ await ctx.initializeWith(managedContextConfig.messages);
328
+ }
329
+ if (system) {
330
+ ctx.setSystemPrompt({ role: "system", content: system });
331
+ }
332
+ // Warn when an ephemeral context (no persistent contextId) ends up without
333
+ // a system prompt. This was the root cause of APPS-3387: exitPlanMode
334
+ // created an ephemeral context whose initializeWith silently dropped the
335
+ // system message, causing the LLM to reason but produce no text output.
336
+ if (!contextId && !system) {
337
+ const hasSystemInMessages = managedContextConfig?.messages?.some((m) => m.role === "system");
338
+ if (!hasSystemInMessages) {
339
+ logger.warn("[llm-client] Ephemeral context created without a system prompt. " +
340
+ "This may cause the LLM to produce empty text output.");
341
+ }
319
342
  }
343
+ await ctx.startTurn(safeUser);
344
+ }
345
+ const messagesForModel = ctx
346
+ ? await ctx.getMessages()
347
+ : [safeUser];
348
+ if (usesManagedContext) {
349
+ logToolContextIntegrityIssues(this.logger, "ctx.initial", messagesForModel);
320
350
  }
321
- await ctx.startTurn(safeUser);
322
351
  // Context setup (create + history replay + start turn) runs before any
323
352
  // network call; if it is slow the user sees a silent "generating" hang
324
353
  // with nothing in APM (APPS-4690). Log timing so stalls here are visible.
@@ -329,7 +358,7 @@ export class LLMClient {
329
358
  // restores show replayedMessages=0 because their history comes from
330
359
  // storage, not from contextConfig.messages.
331
360
  logger.warn(`[llm-client] slow context setup: ${contextSetupMs}ms ` +
332
- `(contextId=${contextId?.name ?? "ephemeral"} replayedMessages=${contextConfig?.messages?.length ?? 0})`);
361
+ `(contextId=${contextId?.name ?? "ephemeral"} replayedMessages=${managedContextConfig?.messages?.length ?? 0})`);
333
362
  }
334
363
  try {
335
364
  const fallbackEnabled = this.unifiedProviderEnabled && (enableFallback ?? false);
@@ -419,21 +448,21 @@ export class LLMClient {
419
448
  strategy: fallbackStrategy,
420
449
  },
421
450
  thinking: thinkingConfig,
422
- logging: loggingConfig !== false
451
+ logging: effectiveLoggingConfig !== false
423
452
  ? {
424
453
  enabled: true,
425
- conversationId: loggingConfig?.conversationId,
454
+ conversationId: effectiveLoggingConfig?.conversationId,
426
455
  saveArtifact: this.appShell.saveGeneratedArtifact.bind(this.appShell),
427
- metadata: loggingConfig?.metadata,
456
+ metadata: effectiveLoggingConfig?.metadata,
428
457
  }
429
458
  : { enabled: false },
430
459
  });
431
460
  const observers = [];
432
- if (loggingConfig !== false) {
461
+ if (effectiveLoggingConfig !== false) {
433
462
  // Determine if this is a cloud-prem deployment
434
463
  const isCloudPrem = process.env.SUPERBLOCKS_DEPLOYMENT_TYPE === "cloud-prem";
435
464
  observers.push(new LoggingObserver({
436
- logRef: loggingConfig?.logRef,
465
+ logRef: effectiveLoggingConfig?.logRef,
437
466
  policy: {
438
467
  // Full mode re-enables logging observer secret scanning.
439
468
  // Initial-prompt/off skip observer scanning for lower latency.
@@ -443,10 +472,12 @@ export class LLMClient {
443
472
  },
444
473
  }));
445
474
  }
446
- observers.push(new LLMObsObserver({ tracer, logger }));
447
- observers.push(new ContextObserver({
448
- contextHandle,
449
- }));
475
+ observers.push(new LLMObsObserver({ tracer, logger, recordContent: recordObsContent }));
476
+ if (contextHandle) {
477
+ observers.push(new ContextObserver({
478
+ contextHandle,
479
+ }));
480
+ }
450
481
  observers.push(new RetryNotificationObserver({ peer, chatSessionStore }));
451
482
  // Workflow metrics tracking
452
483
  if (this.onUsageRecorded) {
@@ -533,31 +564,34 @@ export class LLMClient {
533
564
  const tracedTools = tools
534
565
  ? wrapToolsForObservability(tools, tracer)
535
566
  : undefined;
536
- const messagesForModel = await ctx.getMessages();
537
- logToolContextIntegrityIssues(this.logger, "ctx.initial", messagesForModel);
538
567
  // Augment contextManagement with protected tool names from context history.
539
568
  // Protected tools (e.g., system skill reads) are excluded from clear_tool_uses
540
569
  // so their results survive context compaction. See helper for details.
541
- const protectedTools = contextHandle.context.getProtectedToolNames();
542
- const augmented = mergeProtectedToolsIntoExcludeTools(restStreamOptions.providerOptions, protectedTools);
543
- if (augmented.changed) {
544
- restStreamOptions.providerOptions =
545
- augmented.providerOptions;
546
- this.logger.info(`[llm-client] Added ${protectedTools.length} protected tool(s) to excludeTools (total ${augmented.mergedCount})`);
570
+ if (contextHandle) {
571
+ const protectedTools = contextHandle.context.getProtectedToolNames();
572
+ const augmented = mergeProtectedToolsIntoExcludeTools(restStreamOptions.providerOptions, protectedTools);
573
+ if (augmented.changed) {
574
+ restStreamOptions.providerOptions =
575
+ augmented.providerOptions;
576
+ this.logger.info(`[llm-client] Added ${protectedTools.length} protected tool(s) to excludeTools (total ${augmented.mergedCount})`);
577
+ }
547
578
  }
548
579
  const result = await orchestrator.execute({
549
580
  ...restStreamOptions,
550
581
  tools: tracedTools,
551
582
  model,
552
583
  messages: messagesForModel,
553
- prepareStep: async (step) => {
554
- this.logger.debug("prepareStep");
555
- ctx.startStep();
556
- const messages = await ctx.getMessages();
557
- logToolContextIntegrityIssues(this.logger, "ctx.prepareStep", messages);
558
- step = { ...step, messages };
559
- return prepareStep?.(step) ?? step;
560
- },
584
+ system: usesManagedContext ? undefined : system,
585
+ prepareStep: ctx
586
+ ? async (step) => {
587
+ this.logger.debug("prepareStep");
588
+ ctx.startStep();
589
+ const messages = await ctx.getMessages();
590
+ logToolContextIntegrityIssues(this.logger, "ctx.prepareStep", messages);
591
+ step = { ...step, messages };
592
+ return prepareStep?.(step) ?? step;
593
+ }
594
+ : prepareStep,
561
595
  onStepFinish,
562
596
  onFinish,
563
597
  onChunk,
@@ -571,7 +605,7 @@ export class LLMClient {
571
605
  return result;
572
606
  }
573
607
  catch (error) {
574
- contextHandle.release();
608
+ contextHandle?.release();
575
609
  throw error;
576
610
  }
577
611
  }
@@ -641,5 +675,226 @@ export class LLMClient {
641
675
  ctx: adapter,
642
676
  };
643
677
  }
678
+ /**
679
+ * Generates text from the LLM without exposing a stream to the caller.
680
+ *
681
+ * Convenience wrapper around {@link streamText} that drains the result and
682
+ * returns the joined text. Routing through `streamText` inherits the same
683
+ * context management, safety classification, retry, and observability.
684
+ *
685
+ * `observers` is intentionally omitted from the options: callers cannot
686
+ * inject their own stream observers here, but the internal `streamText` path
687
+ * still creates the logging/LLMObs observers, so observability fires as
688
+ * usual. `experimental_output` is also omitted — passing it would silently
689
+ * put the model in JSON mode while this method still returns a raw text
690
+ * string; use {@link generateObject} for structured output.
691
+ *
692
+ * @param options - Same options as `streamText`, minus `observers` and
693
+ * `experimental_output`.
694
+ * @returns The concatenated `text-delta` content.
695
+ *
696
+ * @example
697
+ * ```typescript
698
+ * const text = await client.generateText({
699
+ * model,
700
+ * user: { role: "user", content: "Summarize this..." },
701
+ * providerConfig: { provider: "vertex", model: "claude-sonnet-4-5" },
702
+ * });
703
+ * ```
704
+ */
705
+ async generateText(options, logger = getLogger(), tracer = LLMObsTracer.instance) {
706
+ const result = await this.streamText(options, logger, tracer);
707
+ return this.drainTextChunks(result, "generateText", logger);
708
+ }
709
+ /**
710
+ * Drain a managed `fullStream`, returning the concatenated `text-delta`
711
+ * content. `fullStream` (not `textStream`) is drained because the managed-
712
+ * stream wrapper on it fires session finalization, which observers rely on to
713
+ * flush obs spans and persist logs. On a mid-stream failure it logs and
714
+ * rethrows a "<caller> failed during stream consumption" error, preserving
715
+ * the original cause.
716
+ */
717
+ async drainTextChunks(result, callerName, logger) {
718
+ const chunks = [];
719
+ try {
720
+ for await (const part of result.fullStream) {
721
+ if (part.type === "text-delta") {
722
+ chunks.push(part.text);
723
+ }
724
+ }
725
+ }
726
+ catch (error) {
727
+ const errorMeta = getErrorMeta(error);
728
+ logger.error(`[llm-client] ${callerName} stream consumption failed after ${chunks.length} chunks`, errorMeta);
729
+ throw new Error(`${callerName} failed during stream consumption after ${chunks.length} chunks: ${errorMeta.error.message}`, { cause: error });
730
+ }
731
+ return chunks.join("");
732
+ }
733
+ /**
734
+ * Drains a structured-output (`generateObject`) stream, capturing the result
735
+ * from whichever channel the provider used.
736
+ *
737
+ * The adapter's `Output.object` sets the JSON response format, but providers
738
+ * deliver the answer differently:
739
+ * - some stream the JSON as plain text (`text-delta`);
740
+ * - direct `@ai-sdk/anthropic` realizes structured output as a forced `json`
741
+ * tool call, so the object arrives as the tool-call input and NO
742
+ * `text-delta` is emitted. Draining only text there yields an empty string
743
+ * and a spurious "empty response" error (APPS-1213).
744
+ * - the Clark proxy (`@superblocksteam/clark`, used for bedrock/vertex)
745
+ * streams the result as a Clark `object` chunk; if that chunk carries no
746
+ * `id`, the Clark model forwards it as a `raw` part (its
747
+ * `forwardAsActivity`), so the object reaches neither the text nor the
748
+ * tool-call channel. We recover it from the raw `object` chunk (APPS-1213).
749
+ *
750
+ * `generateObject` disables user tools (`tools: undefined, maxSteps: 1`), so
751
+ * any tool call in the stream is the injected structured-output tool. We
752
+ * capture its already-parsed `input`; if only input deltas stream without a
753
+ * terminal `tool-call` part, we recover the object from the accumulated JSON.
754
+ * The full `fullStream` is still drained, which is what triggers session
755
+ * finalization for observability.
756
+ */
757
+ async drainObjectStream(result, logger) {
758
+ const chunks = [];
759
+ let toolObject;
760
+ let toolInputJson = "";
761
+ try {
762
+ for await (const part of result.fullStream) {
763
+ if (part.type === "text-delta") {
764
+ chunks.push(part.text);
765
+ }
766
+ else if (part.type === "tool-call") {
767
+ toolObject = part.input;
768
+ }
769
+ else if (part.type === "tool-input-delta") {
770
+ toolInputJson += part.delta ?? "";
771
+ }
772
+ else if (part.type === "raw") {
773
+ // Clark proxy channel (vertex/bedrock via @superblocksteam/clark):
774
+ // a JSON-`responseFormat` result is streamed as a Clark `object`
775
+ // chunk. When that chunk has no `id`, the Clark model can't turn it
776
+ // into a `text-delta` and forwards it verbatim as a `raw` part (its
777
+ // `forwardAsActivity`). The object then reaches neither the text nor
778
+ // the tool-call channel, so draining only those read it as empty even
779
+ // though the model produced the full object (APPS-1213). Recover it
780
+ // from the raw `object` chunk's `object` field.
781
+ const rawValue = part.rawValue;
782
+ if (rawValue !== null &&
783
+ typeof rawValue === "object" &&
784
+ rawValue.type === "object" &&
785
+ rawValue.object !== undefined) {
786
+ toolObject = rawValue.object;
787
+ }
788
+ }
789
+ }
790
+ }
791
+ catch (error) {
792
+ const errorMeta = getErrorMeta(error);
793
+ logger.error(`[llm-client] generateObject stream consumption failed after ${chunks.length} text chunks`, errorMeta);
794
+ throw new Error(`generateObject failed during stream consumption after ${chunks.length} chunks: ${errorMeta.error.message}`, { cause: error });
795
+ }
796
+ // The raw `toolInputJson` is returned unparsed so the caller can tell a
797
+ // genuinely-empty response apart from malformed/truncated tool input: if
798
+ // the model emitted tool-input bytes that fail to parse, that is a parse
799
+ // error to surface, not an "empty response".
800
+ return { text: chunks.join(""), toolObject, toolInputJson };
801
+ }
802
+ /**
803
+ * Generates structured output validated against a Zod (or flexible) schema.
804
+ *
805
+ * Passes the schema through to the adapter's `Output.object` (which sets the
806
+ * JSON response format), routes through {@link streamText} with tools
807
+ * disabled and a single step, then resolves the object from whichever channel
808
+ * the provider used — the drained text, or the structured-output tool call
809
+ * (Anthropic/Clark realize `Output.object` as a forced `json` tool, so the
810
+ * object arrives as the tool-call input with no text emitted; see
811
+ * {@link drainObjectStream}) — and schema-validates it. Like
812
+ * {@link generateText}, draining `fullStream` is what triggers session
813
+ * finalization for observability.
814
+ *
815
+ * Snowflake Cortex constraint: Cortex rejects `generateObject` calls whose
816
+ * schema emits certain JSON Schema keywords, so avoid Zod refinements like
817
+ * `.min()` / `.max()` / `.email()` / `.url()` / `.uuid()` etc. in the
818
+ * `schema` — use the JSON-Schema-keyword forms (`minLength` / `maxLength` /
819
+ * `minimum` / `maximum` / `format`, ...) instead. See the "Snowflake Cortex
820
+ * generateObject schema constraints" section in the repo AGENTS.md for the
821
+ * full keyword list.
822
+ *
823
+ * @param options - Stream options plus the required `schema`.
824
+ * @returns The parsed, schema-validated object.
825
+ *
826
+ * @example
827
+ * ```typescript
828
+ * const result = await client.generateObject({
829
+ * model,
830
+ * user: { role: "user", content: "Classify this prompt" },
831
+ * schema: z.object({ safe: z.boolean(), justification: z.string() }),
832
+ * providerConfig: { provider: "vertex", model: "claude-sonnet-4-5" },
833
+ * });
834
+ * ```
835
+ */
836
+ async generateObject(options, logger = getLogger(), tracer = LLMObsTracer.instance) {
837
+ const { schema, ...streamOptions } = options;
838
+ const result = await this.streamText({
839
+ ...streamOptions,
840
+ // Structured output is single-step and tool-free.
841
+ tools: undefined,
842
+ maxSteps: 1,
843
+ // Pass the schema straight through; the adapter wraps it in the SDK's
844
+ // Output.object (which accepts a Zod/flexible schema directly) to set
845
+ // the JSON response format. We still own the final parse/validate
846
+ // below so error shapes stay consistent and tied to fullStream drain.
847
+ experimental_output: schema,
848
+ }, logger, tracer);
849
+ const { text: fullText, toolObject, toolInputJson, } = await this.drainObjectStream(result, logger);
850
+ // Only a stream with no text, no resolved tool-call object, and no tool
851
+ // input bytes is genuinely empty. A non-empty `toolInputJson` that fails to
852
+ // parse is malformed output (handled in the parse path below), not empty.
853
+ if (!fullText && toolObject === undefined && !toolInputJson) {
854
+ logger.error("[llm-client] generateObject received an empty response");
855
+ throw new Error("generateObject failed: received an empty response from the model.");
856
+ }
857
+ // Final JSON-parse + schema-validation is the most likely failure mode in
858
+ // production, so log it (with the offending text length) before it
859
+ // propagates — otherwise the failure is a silent blind spot.
860
+ try {
861
+ let value;
862
+ if (fullText) {
863
+ const parseResult = await safeParseJSON({ text: fullText });
864
+ if (!parseResult.success) {
865
+ throw new Error(`Failed to parse JSON response: ${parseResult.error.message}`);
866
+ }
867
+ value = parseResult.value;
868
+ }
869
+ else if (toolObject !== undefined) {
870
+ // Structured-output tool-call channel: input is already a parsed object.
871
+ value = toolObject;
872
+ }
873
+ else {
874
+ // Tool input streamed as deltas without a terminal tool-call part: parse
875
+ // the accumulated JSON. A failure here is truncated/corrupt output, so
876
+ // surface it as a parse error rather than letting it read as "empty".
877
+ const parseResult = await safeParseJSON({ text: toolInputJson });
878
+ if (!parseResult.success) {
879
+ throw new Error(`Failed to parse JSON response: ${parseResult.error.message}`);
880
+ }
881
+ value = parseResult.value;
882
+ }
883
+ const validationResult = await safeValidateTypes({
884
+ value,
885
+ schema: asSchema(schema),
886
+ });
887
+ if (!validationResult.success) {
888
+ throw new Error(`Response did not match schema: ${validationResult.error.message}`);
889
+ }
890
+ return validationResult.value;
891
+ }
892
+ catch (error) {
893
+ const errorMeta = getErrorMeta(error);
894
+ logger.error(`[llm-client] generateObject failed to parse/validate output ` +
895
+ `(textLen=${fullText.length}, viaToolCall=${!fullText})`, errorMeta);
896
+ throw error;
897
+ }
898
+ }
644
899
  }
645
900
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/ai-service/llm/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/ai-service/llm/client.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,7 @@ export declare function recordContextDocuments(input: {
36
36
  dropped: number;
37
37
  mode: ContextDocumentMode;
38
38
  }): void;
39
+ export declare function recordContextRestoreEmptyCreated(): void;
39
40
  export declare function recordServerCompaction(input: {
40
41
  status: ServerCompactionStatus;
41
42
  durationMs?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"context-metrics.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/context-v2/context-metrics.ts"],"names":[],"mappings":"AA0CA,0EAA0E;AAC1E,eAAO,MAAM,oBAAoB,4DAMvB,CAAC;AACX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE,sEAAsE;AACtE,eAAO,MAAM,wBAAwB,sFAO3B,CAAC;AACX,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9E,iEAAiE;AACjE,eAAO,MAAM,uBAAuB,8BAA+B,CAAC;AACpE,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5E,eAAO,MAAM,sBAAsB,kCAAmC,CAAC;AACvE,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1E,eAAO,MAAM,0BAA0B,oDAI7B,CAAC;AACX,MAAM,MAAM,sBAAsB,GAChC,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9C,MAAM,WAAW,qBAAqB;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAkVD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IACvC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,qBAAqB,CAAC;CAClC,GAAG,IAAI,CAEP;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,OAAO,EAAE,qBAAqB,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,qBAAqB,CAAC;CAClC,GAAG,IAAI,CAEP;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,SAAS,EAAE,oBAAoB,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,qBAAqB,CAAC;CAClC,GAAG,IAAI,CAEP;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,mBAAmB,CAAC;CAC3B,GAAG,IAAI,CAEP;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE;IACL,MAAM,EAAE,sBAAsB,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,qBAAqB,GACxB,IAAI,CAON;AAED,wBAAgB,mCAAmC,IAAI,IAAI,CAE1D"}
1
+ {"version":3,"file":"context-metrics.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/context-v2/context-metrics.ts"],"names":[],"mappings":"AA4CA,0EAA0E;AAC1E,eAAO,MAAM,oBAAoB,4DAMvB,CAAC;AACX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE,sEAAsE;AACtE,eAAO,MAAM,wBAAwB,sFAO3B,CAAC;AACX,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9E,iEAAiE;AACjE,eAAO,MAAM,uBAAuB,8BAA+B,CAAC;AACpE,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5E,eAAO,MAAM,sBAAsB,kCAAmC,CAAC;AACvE,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1E,eAAO,MAAM,0BAA0B,oDAI7B,CAAC;AACX,MAAM,MAAM,sBAAsB,GAChC,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9C,MAAM,WAAW,qBAAqB;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAiWD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IACvC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,qBAAqB,CAAC;CAClC,GAAG,IAAI,CAEP;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,OAAO,EAAE,qBAAqB,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,qBAAqB,CAAC;CAClC,GAAG,IAAI,CAEP;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,SAAS,EAAE,oBAAoB,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,qBAAqB,CAAC;CAClC,GAAG,IAAI,CAEP;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,mBAAmB,CAAC;CAC3B,GAAG,IAAI,CAEP;AAED,wBAAgB,gCAAgC,IAAI,IAAI,CAEvD;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE;IACL,MAAM,EAAE,sBAAsB,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,qBAAqB,GACxB,IAAI,CAON;AAED,wBAAgB,mCAAmC,IAAI,IAAI,CAE1D"}
@@ -23,6 +23,7 @@
23
23
  * - `superblocks.clark.context.documents_dropped_total` counter {mode}
24
24
  * - `superblocks.clark.context.server_compactions` counter {status}
25
25
  * - `superblocks.clark.context.server_compaction.*` histograms {status}
26
+ * - `superblocks.clark.context.restore_empty_created_total` counter
26
27
  *
27
28
  * Base cardinality budget (documented contract — growing an enum must be a
28
29
  * deliberate, reviewed change; the regression test pins these counts):
@@ -30,7 +31,8 @@
30
31
  * - source ≤ 5, trigger ≤ 6, operation ≤ 2, mode ≤ 2 across 3 document
31
32
  * instruments → 19 baseline/document series.
32
33
  * - server_compaction status ≤ 3 across 1 counter + 7 histograms → 24 series.
33
- * - Combined base: 43 worst-case series. Keep org/app identity in logs or
34
+ * - restore_empty_created_total has no labels → 1 series.
35
+ * - Combined base: 44 worst-case series. Keep org/app identity in logs or
34
36
  * traces, not metric labels.
35
37
  */
36
38
  import { metrics, } from "@opentelemetry/api";
@@ -63,6 +65,7 @@ const METER_NAME = "superblocks.clark.context";
63
65
  const METRIC_LOAD_DURATION = "superblocks.clark.context.load_duration_seconds";
64
66
  const METRIC_PERSIST_DURATION = "superblocks.clark.context.persist_duration_seconds";
65
67
  const METRIC_FILE_BYTES = "superblocks.clark.context.file_bytes";
68
+ const METRIC_RESTORE_EMPTY_CREATED = "superblocks.clark.context.restore_empty_created_total";
66
69
  // APPS-4891 intentionally replaced the old {state} document metric shape.
67
70
  // Consumers should query documents{mode} for current counts and
68
71
  // documents_added_total/documents_dropped_total{mode} for event counters.
@@ -155,6 +158,10 @@ class ClarkContextMetrics {
155
158
  unit: "s",
156
159
  advice: { explicitBucketBoundaries: DURATION_BUCKETS_SECONDS },
157
160
  }),
161
+ restoreEmptyCreatedCounter: meter.createCounter(METRIC_RESTORE_EMPTY_CREATED, {
162
+ description: "Count of remote context restore attempts that still created a new empty Clark context.",
163
+ unit: "{restore}",
164
+ }),
158
165
  serverCompactionCounter: meter.createCounter(METRIC_SERVER_COMPACTIONS, {
159
166
  description: "Count of Anthropic server-side context compaction lifecycle outcomes.",
160
167
  unit: "{compaction}",
@@ -212,6 +219,9 @@ class ClarkContextMetrics {
212
219
  operation: input.operation,
213
220
  });
214
221
  }
222
+ recordRestoreEmptyCreated() {
223
+ this.getInstruments().restoreEmptyCreatedCounter.add(1);
224
+ }
215
225
  recordDocuments(input) {
216
226
  const instruments = this.getInstruments();
217
227
  const attributes = { mode: input.mode };
@@ -274,6 +284,9 @@ export function recordContextFileBytes(input) {
274
284
  export function recordContextDocuments(input) {
275
285
  clarkContextMetrics.recordDocuments(input);
276
286
  }
287
+ export function recordContextRestoreEmptyCreated() {
288
+ clarkContextMetrics.recordRestoreEmptyCreated();
289
+ }
277
290
  export function recordServerCompaction(input) {
278
291
  const { applicationId: _applicationId, organizationId: _organizationId, ...metricsInput } = input;
279
292
  clarkContextMetrics.recordServerCompaction(metricsInput);