@superblocksteam/vite-plugin-file-sync 2.0.131-next.1 → 2.0.132-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 (152) hide show
  1. package/dist/ai-service/agent/tools/build-copy-utils.d.ts +8 -8
  2. package/dist/ai-service/agent/tools/build-manage-checklist.d.ts +1 -1
  3. package/dist/ai-service/agent/tools/get-logs.d.ts +2 -2
  4. package/dist/ai-service/agent/tools2/tools/end-test-run.d.ts +2 -2
  5. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js +1 -1
  6. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js.map +1 -1
  7. package/dist/ai-service/agent/tools2/tools/grep.d.ts +1 -1
  8. package/dist/ai-service/app-interface/npm-registry.d.ts.map +1 -1
  9. package/dist/ai-service/app-interface/npm-registry.js +6 -3
  10. package/dist/ai-service/app-interface/npm-registry.js.map +1 -1
  11. package/dist/ai-service/attachments/{csv-upload-artifacts.d.ts → text-upload-artifacts.d.ts} +14 -11
  12. package/dist/ai-service/attachments/text-upload-artifacts.d.ts.map +1 -0
  13. package/dist/ai-service/attachments/{csv-upload-artifacts.js → text-upload-artifacts.js} +61 -35
  14. package/dist/ai-service/attachments/text-upload-artifacts.js.map +1 -0
  15. package/dist/ai-service/chat/chat-session-store-metrics.d.ts +12 -0
  16. package/dist/ai-service/chat/chat-session-store-metrics.d.ts.map +1 -0
  17. package/dist/ai-service/chat/chat-session-store-metrics.js +63 -0
  18. package/dist/ai-service/chat/chat-session-store-metrics.js.map +1 -0
  19. package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
  20. package/dist/ai-service/chat/chat-session-store.js +24 -4
  21. package/dist/ai-service/chat/chat-session-store.js.map +1 -1
  22. package/dist/ai-service/index.d.ts +4 -38
  23. package/dist/ai-service/index.d.ts.map +1 -1
  24. package/dist/ai-service/index.js +14 -168
  25. package/dist/ai-service/index.js.map +1 -1
  26. package/dist/ai-service/llm/client.d.ts.map +1 -1
  27. package/dist/ai-service/llm/client.js +33 -26
  28. package/dist/ai-service/llm/client.js.map +1 -1
  29. package/dist/ai-service/llm/context-v2/compactor.d.ts.map +1 -1
  30. package/dist/ai-service/llm/context-v2/compactor.js +21 -13
  31. package/dist/ai-service/llm/context-v2/compactor.js.map +1 -1
  32. package/dist/ai-service/llm/context-v2/context-metrics.d.ts +25 -0
  33. package/dist/ai-service/llm/context-v2/context-metrics.d.ts.map +1 -1
  34. package/dist/ai-service/llm/context-v2/context-metrics.js +147 -7
  35. package/dist/ai-service/llm/context-v2/context-metrics.js.map +1 -1
  36. package/dist/ai-service/llm/context-v2/context.d.ts +10 -1
  37. package/dist/ai-service/llm/context-v2/context.d.ts.map +1 -1
  38. package/dist/ai-service/llm/context-v2/context.js +98 -10
  39. package/dist/ai-service/llm/context-v2/context.js.map +1 -1
  40. package/dist/ai-service/llm/context-v2/manager.d.ts +3 -1
  41. package/dist/ai-service/llm/context-v2/manager.d.ts.map +1 -1
  42. package/dist/ai-service/llm/context-v2/manager.js +26 -5
  43. package/dist/ai-service/llm/context-v2/manager.js.map +1 -1
  44. package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.d.ts +5 -2
  45. package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.d.ts.map +1 -1
  46. package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.js +229 -55
  47. package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.js.map +1 -1
  48. package/dist/ai-service/llm/context-v2/phase2-session-summarizer.d.ts +1 -0
  49. package/dist/ai-service/llm/context-v2/phase2-session-summarizer.d.ts.map +1 -1
  50. package/dist/ai-service/llm/context-v2/phase2-session-summarizer.js +108 -2
  51. package/dist/ai-service/llm/context-v2/phase2-session-summarizer.js.map +1 -1
  52. package/dist/ai-service/llm/context-v2/prompts/compaction.d.ts +1 -1
  53. package/dist/ai-service/llm/context-v2/prompts/compaction.d.ts.map +1 -1
  54. package/dist/ai-service/llm/context-v2/prompts/compaction.js +6 -0
  55. package/dist/ai-service/llm/context-v2/prompts/compaction.js.map +1 -1
  56. package/dist/ai-service/llm/context-v2/storage/local.d.ts.map +1 -1
  57. package/dist/ai-service/llm/context-v2/storage/local.js +16 -2
  58. package/dist/ai-service/llm/context-v2/storage/local.js.map +1 -1
  59. package/dist/ai-service/llm/context-v2/types.d.ts +3 -1
  60. package/dist/ai-service/llm/context-v2/types.d.ts.map +1 -1
  61. package/dist/ai-service/llm/context-v2/types.js +76 -10
  62. package/dist/ai-service/llm/context-v2/types.js.map +1 -1
  63. package/dist/ai-service/llm/context-v2/uniquify-filenames.d.ts +6 -6
  64. package/dist/ai-service/llm/context-v2/uniquify-filenames.d.ts.map +1 -1
  65. package/dist/ai-service/llm/context-v2/uniquify-filenames.js +127 -24
  66. package/dist/ai-service/llm/context-v2/uniquify-filenames.js.map +1 -1
  67. package/dist/ai-service/llm/context-v2/utils/get-loaded-context.d.ts +1 -1
  68. package/dist/ai-service/llm/context-v2/utils/get-loaded-context.d.ts.map +1 -1
  69. package/dist/ai-service/llm/context-v2/utils/get-loaded-context.js.map +1 -1
  70. package/dist/ai-service/llm/error.d.ts +1 -1
  71. package/dist/ai-service/llm/error.d.ts.map +1 -1
  72. package/dist/ai-service/llm/error.js +11 -0
  73. package/dist/ai-service/llm/error.js.map +1 -1
  74. package/dist/ai-service/llm/stream/config.d.ts +19 -29
  75. package/dist/ai-service/llm/stream/config.d.ts.map +1 -1
  76. package/dist/ai-service/llm/stream/config.js +17 -40
  77. package/dist/ai-service/llm/stream/config.js.map +1 -1
  78. package/dist/ai-service/llm/stream/errors.d.ts +4 -6
  79. package/dist/ai-service/llm/stream/errors.d.ts.map +1 -1
  80. package/dist/ai-service/llm/stream/errors.js +13 -0
  81. package/dist/ai-service/llm/stream/errors.js.map +1 -1
  82. package/dist/ai-service/llm/stream/idle-monitor.d.ts +29 -21
  83. package/dist/ai-service/llm/stream/idle-monitor.d.ts.map +1 -1
  84. package/dist/ai-service/llm/stream/idle-monitor.js +157 -68
  85. package/dist/ai-service/llm/stream/idle-monitor.js.map +1 -1
  86. package/dist/ai-service/llm/stream/index.d.ts +1 -1
  87. package/dist/ai-service/llm/stream/index.d.ts.map +1 -1
  88. package/dist/ai-service/llm/stream/index.js +1 -1
  89. package/dist/ai-service/llm/stream/index.js.map +1 -1
  90. package/dist/ai-service/llm/stream/observers/llmobs.d.ts +3 -1
  91. package/dist/ai-service/llm/stream/observers/llmobs.d.ts.map +1 -1
  92. package/dist/ai-service/llm/stream/observers/llmobs.js +55 -25
  93. package/dist/ai-service/llm/stream/observers/llmobs.js.map +1 -1
  94. package/dist/ai-service/llm/stream/orchestrator.d.ts +4 -0
  95. package/dist/ai-service/llm/stream/orchestrator.d.ts.map +1 -1
  96. package/dist/ai-service/llm/stream/orchestrator.js +154 -33
  97. package/dist/ai-service/llm/stream/orchestrator.js.map +1 -1
  98. package/dist/ai-service/llm/stream/retry-engine.d.ts.map +1 -1
  99. package/dist/ai-service/llm/stream/retry-engine.js +3 -6
  100. package/dist/ai-service/llm/stream/retry-engine.js.map +1 -1
  101. package/dist/ai-service/state-machine/handlers/agent-planning.js +1 -1
  102. package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
  103. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts +5 -5
  104. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
  105. package/dist/ai-service/state-machine/handlers/llm-generating.js +47 -35
  106. package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
  107. package/dist/ai-service/state-machine/helpers/context-id.d.ts +1 -1
  108. package/dist/ai-service/state-machine/helpers/context-id.d.ts.map +1 -1
  109. package/dist/ai-service/state-machine/helpers/context-id.js +3 -0
  110. package/dist/ai-service/state-machine/helpers/context-id.js.map +1 -1
  111. package/dist/ai-service/tasks/types.d.ts +6 -6
  112. package/dist/ai-service/types.d.ts +0 -6
  113. package/dist/ai-service/types.d.ts.map +1 -1
  114. package/dist/ai-service/types.js.map +1 -1
  115. package/dist/lock-service/index.d.ts +2 -0
  116. package/dist/lock-service/index.d.ts.map +1 -1
  117. package/dist/lock-service/index.js +52 -3
  118. package/dist/lock-service/index.js.map +1 -1
  119. package/dist/migration/translation-prompt.d.ts +6 -7
  120. package/dist/migration/translation-prompt.d.ts.map +1 -1
  121. package/dist/migration/translation-prompt.js +6 -7
  122. package/dist/migration/translation-prompt.js.map +1 -1
  123. package/dist/migration-templates/app-fullstack/package.json +0 -1
  124. package/dist/socket-manager.d.ts.map +1 -1
  125. package/dist/socket-manager.js +0 -6
  126. package/dist/socket-manager.js.map +1 -1
  127. package/dist/sync-service/download.d.ts.map +1 -1
  128. package/dist/sync-service/download.js +49 -1
  129. package/dist/sync-service/download.js.map +1 -1
  130. package/dist/util/logger.d.ts.map +1 -1
  131. package/dist/util/logger.js +62 -0
  132. package/dist/util/logger.js.map +1 -1
  133. package/package.json +8 -8
  134. package/dist/ai-service/attachments/csv-upload-artifacts.d.ts.map +0 -1
  135. package/dist/ai-service/attachments/csv-upload-artifacts.js.map +0 -1
  136. package/dist/ai-service/migration-auto-dispatch-readiness.d.ts +0 -18
  137. package/dist/ai-service/migration-auto-dispatch-readiness.d.ts.map +0 -1
  138. package/dist/ai-service/migration-auto-dispatch-readiness.js +0 -17
  139. package/dist/ai-service/migration-auto-dispatch-readiness.js.map +0 -1
  140. package/dist/ai-service/migration-llm-config.d.ts +0 -7
  141. package/dist/ai-service/migration-llm-config.d.ts.map +0 -1
  142. package/dist/ai-service/migration-llm-config.js +0 -122
  143. package/dist/ai-service/migration-llm-config.js.map +0 -1
  144. package/dist/ai-service/resolve-generation-state-for-ui.d.ts +0 -8
  145. package/dist/ai-service/resolve-generation-state-for-ui.d.ts.map +0 -1
  146. package/dist/ai-service/resolve-generation-state-for-ui.js +0 -36
  147. package/dist/ai-service/resolve-generation-state-for-ui.js.map +0 -1
  148. package/dist/ai-service/util/inference-jwt.d.ts +0 -15
  149. package/dist/ai-service/util/inference-jwt.d.ts.map +0 -1
  150. package/dist/ai-service/util/inference-jwt.js +0 -56
  151. package/dist/ai-service/util/inference-jwt.js.map +0 -1
  152. package/dist/migration-templates/app-fullstack/client/components/ui/chat.tsx +0 -2303
@@ -7,7 +7,7 @@ import { usesAdaptiveEffort } from "../util/llm-config-utils.js";
7
7
  import { SERVER_COMPACTION_INTERRUPTED_SUMMARY } from "./context-v2/compaction/server-side.js";
8
8
  import { ContextV2Adapter } from "./context-v2/index.js";
9
9
  import { createVercelProvider } from "./interaction/adapters/vercel.js";
10
- import { StreamOrchestrator, StreamConfig, defaultFirstChunkTimeoutMs, LoggingObserver, LLMObsObserver, ContextObserver, RetryNotificationObserver, wrapToolsForObservability, } from "./stream/index.js";
10
+ import { StreamOrchestrator, StreamConfig, DEFAULT_COMPACTION_SUMMARY_TIMEOUT_MS, DEFAULT_FIRST_TOKEN_TIMEOUT_MS, LoggingObserver, LLMObsObserver, ContextObserver, RetryNotificationObserver, wrapToolsForObservability, } from "./stream/index.js";
11
11
  import { logToolContextIntegrityIssues } from "./tool-context-integrity.js";
12
12
  import { extractWorkflowMetrics } from "./workflow-metrics.js";
13
13
  /** Context setups slower than this get a warning log (pre-network hang risk). */
@@ -337,14 +337,7 @@ export class LLMClient {
337
337
  `unifiedProvider=${this.unifiedProviderEnabled} fallback=${fallbackEnabled}` +
338
338
  ` retry=${safeJsonStringify(retryConfig)}` +
339
339
  ` contextSetupMs=${contextSetupMs}`);
340
- // Server-side context management lets Anthropic compact the conversation
341
- // inline (compact_20260112). That path can emit a compaction start chunk
342
- // and then spend longer than the inter-chunk budget summarizing, so each
343
- // compaction/first-output wait needs a larger idle budget or the watchdog
344
- // kills the request mid-compaction. Set per request (not per model). See
345
- // APPS-4520.
346
- const serverSideContextManagement = contextConfig?.contextManagement?.type === "server";
347
- // Resolve the idle / first-chunk / max-time budgets for a GIVEN model.
340
+ // Resolve the idle / first-token / max-time budgets for a GIVEN model.
348
341
  // Fallback can downgrade the model mid-stream (e.g. opus -> sonnet), and
349
342
  // each model needs to be monitored against its OWN budget rather than the
350
343
  // initial model's frozen one — otherwise a fast model inherits opus's 180s
@@ -353,15 +346,13 @@ export class LLMClient {
353
346
  // the RetryEngine max-time guard call this with the CURRENT attempt's
354
347
  // model. See APPS-4775.
355
348
  const budgetForModel = (model) => {
356
- // Opus models can take 60-120s to emit their first content chunk during
357
- // high-effort reasoning. Give these sessions longer idle/total timeouts;
358
- // server-side heartbeats still reset the idle timer mid-silence (see
359
- // ai-proxy heartbeat handling). claude-opus-4-6 was measured at ~96-110s
360
- // in prod (APPS-4591), tripping the default 90s idle watchdog, so it gets
361
- // the same extended budget as adaptive-effort 4.7.
349
+ // Opus models can take long enough between chunks during high-effort
350
+ // reasoning to trip the default idle watchdog. Give these sessions
351
+ // longer idle/total timeouts; the first-token watchdog below still
352
+ // catches streams that produce no text or reasoning delta.
362
353
  const extendedThinking = usesAdaptiveEffort(model) || model === "claude-opus-4-6";
363
- // Caps total content-silent wall-clock. These streams were effectively
364
- // unbounded before (keep-alives reset the clock), so a real content-based
354
+ // Caps total token-silent wall-clock. These streams were effectively
355
+ // unbounded before (keep-alives reset the clock), so a real token-based
365
356
  // cap here is strictly tighter than prior behavior. Kept above the proxy's
366
357
  // UPSTREAM_STALL_TIMEOUT_MS (extended 900s / standard 450s) so a single
367
358
  // proxy stall still leaves room for a same-provider retry. Reaching a
@@ -374,9 +365,13 @@ export class LLMClient {
374
365
  const idleTimeoutMs = retryConfig?.idleTimeoutMs ??
375
366
  this.retryOptions?.idleTimeoutMs ??
376
367
  defaultIdleTimeoutMs;
377
- const firstChunkTimeoutMs = retryConfig?.firstChunkTimeoutMs ??
378
- this.retryOptions?.firstChunkTimeoutMs ??
379
- defaultFirstChunkTimeoutMs(serverSideContextManagement, idleTimeoutMs);
368
+ const defaultFirstTokenTimeoutMs = Math.min(idleTimeoutMs, DEFAULT_FIRST_TOKEN_TIMEOUT_MS);
369
+ const firstTokenTimeoutMs = retryConfig?.firstTokenTimeoutMs ??
370
+ this.retryOptions?.firstTokenTimeoutMs ??
371
+ defaultFirstTokenTimeoutMs;
372
+ const compactionSummaryTimeoutMs = retryConfig?.compactionSummaryTimeoutMs ??
373
+ this.retryOptions?.compactionSummaryTimeoutMs ??
374
+ DEFAULT_COMPACTION_SUMMARY_TIMEOUT_MS;
380
375
  // Hard floor at the proxy's UPSTREAM_STALL_TIMEOUT_MS so the budget can
381
376
  // never expire before the proxy emits its retryable stall frame — even
382
377
  // under a caller override below that bound (without the floor the client
@@ -386,19 +381,25 @@ export class LLMClient {
386
381
  const proxyStallTimeoutMs = extendedThinking ? 900_000 : 450_000;
387
382
  const maxTotalTimeMs = Math.max(retryConfig?.maxTotalTimeMs ??
388
383
  this.retryOptions?.maxTotalTimeMs ??
389
- defaultMaxTotalTimeMs, firstChunkTimeoutMs, proxyStallTimeoutMs);
390
- return { idleTimeoutMs, firstChunkTimeoutMs, maxTotalTimeMs };
384
+ defaultMaxTotalTimeMs, proxyStallTimeoutMs);
385
+ return {
386
+ idleTimeoutMs,
387
+ firstTokenTimeoutMs,
388
+ compactionSummaryTimeoutMs,
389
+ maxTotalTimeMs,
390
+ };
391
391
  };
392
392
  // Flat fields reflect the INITIAL model so observers/logs/tests reading
393
393
  // them are unchanged; budgetForModel re-resolves per attempt.
394
394
  const initialBudget = budgetForModel(providerConfig.model);
395
395
  // Surface the resolved per-model budget so on-call can verify from session
396
- // logs what idle/first-chunk/max-total limits a session was armed with
396
+ // logs what idle/first-token/max-total limits a session was armed with
397
397
  // (e.g. confirm an opus session got opus's longer budgets).
398
398
  logger.debug("[llm-client] Resolved per-model stream budget", {
399
399
  model: providerConfig.model,
400
400
  idleTimeoutMs: initialBudget.idleTimeoutMs,
401
- firstChunkTimeoutMs: initialBudget.firstChunkTimeoutMs,
401
+ firstTokenTimeoutMs: initialBudget.firstTokenTimeoutMs,
402
+ compactionSummaryTimeoutMs: initialBudget.compactionSummaryTimeoutMs,
402
403
  maxTotalTimeMs: initialBudget.maxTotalTimeMs,
403
404
  });
404
405
  const config = StreamConfig.create({
@@ -407,7 +408,8 @@ export class LLMClient {
407
408
  ...retryConfig,
408
409
  maxTotalTimeMs: initialBudget.maxTotalTimeMs,
409
410
  idleTimeoutMs: initialBudget.idleTimeoutMs,
410
- firstChunkTimeoutMs: initialBudget.firstChunkTimeoutMs,
411
+ firstTokenTimeoutMs: initialBudget.firstTokenTimeoutMs,
412
+ compactionSummaryTimeoutMs: initialBudget.compactionSummaryTimeoutMs,
411
413
  budgetForModel,
412
414
  },
413
415
  provider: providerConfig.provider,
@@ -574,7 +576,12 @@ export class LLMClient {
574
576
  }
575
577
  }
576
578
  async createContext(contextId, contextOptionsV2, tracer, contextManagement, peer) {
577
- const context = await this.contextManagerV2.getOrCreateContext(contextId, contextOptionsV2, tracer, contextManagement);
579
+ const context = await this.contextManagerV2.getOrCreateContext(contextId, contextOptionsV2, tracer, contextManagement, {
580
+ ...((this.applicationId ?? contextId?.appId)
581
+ ? { applicationId: this.applicationId ?? contextId?.appId }
582
+ : {}),
583
+ ...(this.organizationId ? { organizationId: this.organizationId } : {}),
584
+ });
578
585
  const adapter = ContextV2Adapter.fromContext(context);
579
586
  adapter.setCompactionCallbacks(undefined);
580
587
  // Surface compaction as `context-compaction-phase2` control messages on
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"compactor.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/context-v2/compactor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,IAAI,CAAC;AAG5D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAQpD,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,KAAK,EAAE,kBAAkB,CAAC;IAC1B,KAAK,EAAE,aAAa,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACnC,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAID,wBAAgB,eAAe,CAC7B,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAET;AAED,wBAAsB,OAAO,CAC3B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,gBAAgB,CAAC,CAsN3B"}
1
+ {"version":3,"file":"compactor.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/context-v2/compactor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,IAAI,CAAC;AAG5D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AASpD,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,KAAK,EAAE,kBAAkB,CAAC;IAC1B,KAAK,EAAE,aAAa,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACnC,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAID,wBAAgB,eAAe,CAC7B,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAET;AAED,wBAAsB,OAAO,CAC3B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,gBAAgB,CAAC,CAyO3B"}
@@ -1,7 +1,7 @@
1
1
  import { getPrefixedLogger } from "../../../util/logger.js";
2
2
  import { LLMObsTracer } from "../../llmobs/tracer.js";
3
3
  import { DEFAULT_OPTIONS } from "./config.js";
4
- import { summarizeToolOutputs, calculatePruneableTokens, } from "./phase1-tool-summarizer.js";
4
+ import { summarizeToolOutputs, calculatePruneableTokens, calculatePhase1EligibleTokens, } from "./phase1-tool-summarizer.js";
5
5
  import { summarizeSession } from "./phase2-session-summarizer.js";
6
6
  import { captureSession } from "./session-capture.js";
7
7
  import { isOverflow, getTotalTokens } from "./token-tracker.js";
@@ -16,7 +16,7 @@ export async function compact(options) {
16
16
  ...DEFAULT_OPTIONS,
17
17
  ...config,
18
18
  };
19
- const { contextLimit, maxOutputTokens, phase2TargetRatio, phase1Enabled, phase1MinPruneable, phase1ProtectedTokens, } = mergedOptions;
19
+ const { contextLimit, maxOutputTokens, phase2TargetRatio, phase1Enabled, phase1MinPruneable, phase1ProtectedTokens, phase1ProtectedToolUseCount, } = mergedOptions;
20
20
  const initialTokens = getTotalTokens(usage);
21
21
  const availableForInput = contextLimit - maxOutputTokens;
22
22
  const targetTokens = Math.floor(availableForInput * phase2TargetRatio);
@@ -28,27 +28,34 @@ export async function compact(options) {
28
28
  messages,
29
29
  usage,
30
30
  }, rootDir);
31
- const pruneableTokens = calculatePruneableTokens(messages, phase1ProtectedTokens);
32
- if (phase1Enabled && pruneableTokens >= phase1MinPruneable) {
33
- logger.info(`Phase 1: summarizing tool outputs (${pruneableTokens} pruneable tokens)`);
31
+ const pruneableTokens = calculatePruneableTokens(messages, phase1ProtectedTokens, phase1ProtectedToolUseCount);
32
+ const phase1EligibleTokens = calculatePhase1EligibleTokens(messages, phase1ProtectedTokens, phase1ProtectedToolUseCount);
33
+ const phase1EstimatedSavings = Math.max(pruneableTokens, phase1EligibleTokens);
34
+ if (phase1Enabled && phase1EligibleTokens >= phase1MinPruneable) {
35
+ logger.info(`Phase 1: summarizing tool outputs (${phase1EligibleTokens} eligible tokens)`);
34
36
  const phase1MessageId = crypto.randomUUID();
35
37
  callbacks?.onCompactionStart?.("phase1", phase1MessageId);
36
38
  const result = tracer.trace({ name: "context.compaction.phase1", kind: "task" }, (phase1Span) => {
37
39
  const summarizeResult = summarizeToolOutputs({
38
40
  messages: currentMessages,
39
41
  protectedTokens: phase1ProtectedTokens,
42
+ protectedToolUseCount: phase1ProtectedToolUseCount,
40
43
  });
41
- const estimatedTokensAfter = initialTokens - pruneableTokens;
44
+ const estimatedTokensAfter = initialTokens - phase1EstimatedSavings;
42
45
  tracer.annotate(phase1Span, {
43
46
  metadata: {
44
47
  input: {
45
48
  messageCount: currentMessages.length,
49
+ phase1EligibleTokens,
50
+ phase1EstimatedSavings,
46
51
  pruneableTokens,
47
52
  },
48
53
  config: {
49
54
  protectedTokens: phase1ProtectedTokens,
55
+ protectedToolUseCount: phase1ProtectedToolUseCount,
50
56
  },
51
57
  result: {
58
+ compactedAssistantCount: summarizeResult.compactedAssistantCount,
52
59
  summarizedCount: summarizeResult.summarizedCount,
53
60
  estimatedTokensAfter,
54
61
  sufficient: estimatedTokensAfter < targetTokens,
@@ -61,12 +68,9 @@ export async function compact(options) {
61
68
  phase1Applied = true;
62
69
  logger.info(`Phase 1 complete: summarized ${result.summarizedCount} tool outputs`);
63
70
  callbacks?.onCompactionComplete?.("phase1", phase1MessageId);
64
- // After phase 1, we can't know exact token savings without another LLM call.
65
- // We'll proceed to phase 2 if we still appear to be over target based on
66
- // the pruneable tokens we identified.
67
- const estimatedNewTokens = initialTokens - pruneableTokens;
71
+ const estimatedNewTokens = initialTokens - phase1EstimatedSavings;
68
72
  if (estimatedNewTokens < targetTokens) {
69
- tokensSaved = pruneableTokens;
73
+ tokensSaved = phase1EstimatedSavings;
70
74
  tracer.annotate(compactionSpan, {
71
75
  metadata: {
72
76
  input: {
@@ -80,6 +84,7 @@ export async function compact(options) {
80
84
  phase1Enabled,
81
85
  phase1MinPruneable,
82
86
  phase1ProtectedTokens,
87
+ phase1ProtectedToolUseCount,
83
88
  phase2TargetRatio,
84
89
  },
85
90
  result: {
@@ -102,9 +107,11 @@ export async function compact(options) {
102
107
  logger.info("Phase 2: generating session summary");
103
108
  const phase2MessageId = crypto.randomUUID();
104
109
  callbacks?.onCompactionStart?.("phase2", phase2MessageId);
110
+ const phase2SourceMessages = initialTokens <= availableForInput ? messages : currentMessages;
105
111
  const summaryResult = await tracer.trace({ name: "context.compaction.phase2", kind: "task" }, async (phase2Span) => {
106
112
  const result = await summarizeSession({
107
- messages: currentMessages,
113
+ messages: phase2SourceMessages,
114
+ groundingMessages: messages,
108
115
  model,
109
116
  targetTokens,
110
117
  tracer,
@@ -112,7 +119,7 @@ export async function compact(options) {
112
119
  tracer.annotate(phase2Span, {
113
120
  metadata: {
114
121
  input: {
115
- messageCount: currentMessages.length,
122
+ messageCount: phase2SourceMessages.length,
116
123
  },
117
124
  result: {
118
125
  messageCount: result.messages.length,
@@ -142,6 +149,7 @@ export async function compact(options) {
142
149
  phase1Enabled,
143
150
  phase1MinPruneable,
144
151
  phase1ProtectedTokens,
152
+ phase1ProtectedToolUseCount,
145
153
  phase2TargetRatio,
146
154
  },
147
155
  result: {
@@ -1 +1 @@
1
- {"version":3,"file":"compactor.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/context-v2/compactor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compactor.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/context-v2/compactor.ts"],"names":[],"mappings":"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"}
@@ -7,17 +7,42 @@ export type ContextPersistTrigger = (typeof CONTEXT_PERSIST_TRIGGERS)[number];
7
7
  /** Direction of the context snapshot file I/O being measured. */
8
8
  export declare const CONTEXT_FILE_OPERATIONS: readonly ["load", "persist"];
9
9
  export type ContextFileOperation = (typeof CONTEXT_FILE_OPERATIONS)[number];
10
+ export declare const CONTEXT_DOCUMENT_MODES: readonly ["inline", "reference"];
11
+ export type ContextDocumentMode = (typeof CONTEXT_DOCUMENT_MODES)[number];
12
+ export declare const SERVER_COMPACTION_STATUSES: readonly ["cancelled", "completed", "interrupted"];
13
+ export type ServerCompactionStatus = (typeof SERVER_COMPACTION_STATUSES)[number];
14
+ export interface ContextMetricIdentity {
15
+ applicationId?: string;
16
+ organizationId?: string;
17
+ }
10
18
  export declare function recordContextLoad(input: {
11
19
  source: ContextLoadSource;
12
20
  durationMs: number;
21
+ identity?: ContextMetricIdentity;
13
22
  }): void;
14
23
  export declare function recordContextPersist(input: {
15
24
  trigger: ContextPersistTrigger;
16
25
  durationMs: number;
26
+ identity?: ContextMetricIdentity;
17
27
  }): void;
18
28
  export declare function recordContextFileBytes(input: {
19
29
  operation: ContextFileOperation;
20
30
  bytes: number;
31
+ identity?: ContextMetricIdentity;
21
32
  }): void;
33
+ export declare function recordContextDocuments(input: {
34
+ added: number;
35
+ current: number;
36
+ dropped: number;
37
+ mode: ContextDocumentMode;
38
+ }): void;
39
+ export declare function recordServerCompaction(input: {
40
+ status: ServerCompactionStatus;
41
+ durationMs?: number;
42
+ messagesBefore?: number;
43
+ messagesAfter?: number;
44
+ inputTokensBefore?: number;
45
+ inputTokensAfter?: number;
46
+ } & ContextMetricIdentity): void;
22
47
  export declare function _resetClarkContextMetricsForTesting(): void;
23
48
  //# sourceMappingURL=context-metrics.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context-metrics.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/context-v2/context-metrics.ts"],"names":[],"mappings":"AAgCA,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;AAkH5E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IACvC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,IAAI,CAEP;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,OAAO,EAAE,qBAAqB,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,IAAI,CAEP;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,SAAS,EAAE,oBAAoB,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,IAAI,CAEP;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":"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"}
@@ -18,17 +18,22 @@
18
18
  * - `superblocks.clark.context.load_duration_seconds` histogram {source}
19
19
  * - `superblocks.clark.context.persist_duration_seconds` histogram {trigger}
20
20
  * - `superblocks.clark.context.file_bytes` histogram {operation}
21
+ * - `superblocks.clark.context.documents` gauge {mode}
22
+ * - `superblocks.clark.context.documents_added_total` counter {mode}
23
+ * - `superblocks.clark.context.documents_dropped_total` counter {mode}
24
+ * - `superblocks.clark.context.server_compactions` counter {status}
25
+ * - `superblocks.clark.context.server_compaction.*` histograms {status}
21
26
  *
22
- * Cardinality budget (documented contract — growing an enum must be a
27
+ * Base cardinality budget (documented contract — growing an enum must be a
23
28
  * deliberate, reviewed change; the regression test pins these counts):
24
29
  *
25
- * - source ≤ 5, trigger ≤ 6, operation ≤ 2 13 worst-case series.
26
- *
27
- * Every label is a compile-time closed union supplied by Superblocks-owned
28
- * call sites (never derived from user input or error text), so no emit-time
29
- * coercion is needed.
30
+ * - source ≤ 5, trigger ≤ 6, operation ≤ 2, mode 2 across 3 document
31
+ * instruments → 19 baseline/document series.
32
+ * - 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
+ * traces, not metric labels.
30
35
  */
31
- import { metrics } from "@opentelemetry/api";
36
+ import { metrics, } from "@opentelemetry/api";
32
37
  /** Where `ContextManagerV2.getOrCreateContext` found the conversation. */
33
38
  export const CONTEXT_LOAD_SOURCES = [
34
39
  "cache",
@@ -48,10 +53,30 @@ export const CONTEXT_PERSIST_TRIGGERS = [
48
53
  ];
49
54
  /** Direction of the context snapshot file I/O being measured. */
50
55
  export const CONTEXT_FILE_OPERATIONS = ["load", "persist"];
56
+ export const CONTEXT_DOCUMENT_MODES = ["inline", "reference"];
57
+ export const SERVER_COMPACTION_STATUSES = [
58
+ "cancelled",
59
+ "completed",
60
+ "interrupted",
61
+ ];
51
62
  const METER_NAME = "superblocks.clark.context";
52
63
  const METRIC_LOAD_DURATION = "superblocks.clark.context.load_duration_seconds";
53
64
  const METRIC_PERSIST_DURATION = "superblocks.clark.context.persist_duration_seconds";
54
65
  const METRIC_FILE_BYTES = "superblocks.clark.context.file_bytes";
66
+ // APPS-4891 intentionally replaced the old {state} document metric shape.
67
+ // Consumers should query documents{mode} for current counts and
68
+ // documents_added_total/documents_dropped_total{mode} for event counters.
69
+ const METRIC_DOCUMENTS = "superblocks.clark.context.documents";
70
+ const METRIC_DOCUMENTS_ADDED = "superblocks.clark.context.documents_added_total";
71
+ const METRIC_DOCUMENTS_DROPPED = "superblocks.clark.context.documents_dropped_total";
72
+ const METRIC_SERVER_COMPACTIONS = "superblocks.clark.context.server_compactions";
73
+ const METRIC_SERVER_COMPACTION_DURATION = "superblocks.clark.context.server_compaction.duration_seconds";
74
+ const METRIC_SERVER_COMPACTION_MESSAGES_BEFORE = "superblocks.clark.context.server_compaction.messages_before";
75
+ const METRIC_SERVER_COMPACTION_MESSAGES_AFTER = "superblocks.clark.context.server_compaction.messages_after";
76
+ const METRIC_SERVER_COMPACTION_MESSAGES_REMOVED = "superblocks.clark.context.server_compaction.messages_removed";
77
+ const METRIC_SERVER_COMPACTION_INPUT_TOKENS_BEFORE = "superblocks.clark.context.server_compaction.input_tokens_before";
78
+ const METRIC_SERVER_COMPACTION_INPUT_TOKENS_AFTER = "superblocks.clark.context.server_compaction.input_tokens_after";
79
+ const METRIC_SERVER_COMPACTION_INPUT_TOKENS_REMOVED = "superblocks.clark.context.server_compaction.input_tokens_removed";
55
80
  /**
56
81
  * Coarse on purpose (matching the npm-registry emitter): these exist to
57
82
  * detect regressions and alert on pathological cases, not for fine
@@ -72,11 +97,22 @@ const FILE_BYTES_BUCKETS = [
72
97
  20 * 1024 * 1024,
73
98
  100 * 1024 * 1024,
74
99
  ];
100
+ const MESSAGE_COUNT_BUCKETS = [1, 2, 5, 10, 20, 50, 100, 500, 1000, 5000];
101
+ const TOKEN_COUNT_BUCKETS = [
102
+ 1000, 5000, 10_000, 25_000, 50_000, 100_000, 150_000, 200_000, 500_000,
103
+ ];
75
104
  const SECONDS_PER_MS = 1 / 1000;
76
105
  const toSeconds = (durationMs) => Math.max(0, durationMs) * SECONDS_PER_MS;
106
+ const clampCount = (value) => Math.max(0, value);
77
107
  class ClarkContextMetrics {
108
+ currentDocumentCounts = new Map();
78
109
  cachedMeter;
79
110
  cachedInstruments;
111
+ observeDocumentCounts = (result) => {
112
+ for (const [mode, value] of this.currentDocumentCounts.entries()) {
113
+ result.observe(value, { mode });
114
+ }
115
+ };
80
116
  /**
81
117
  * Lazy instrument factory. Re-creates instruments when the global
82
118
  * MeterProvider changes (a stale instrument bound to a replaced provider
@@ -87,8 +123,23 @@ class ClarkContextMetrics {
87
123
  if (meter === this.cachedMeter && this.cachedInstruments) {
88
124
  return this.cachedInstruments;
89
125
  }
126
+ this.cachedInstruments?.documentCountGauge.removeCallback(this.observeDocumentCounts);
90
127
  this.cachedMeter = meter;
128
+ const documentCountGauge = meter.createObservableGauge(METRIC_DOCUMENTS, {
129
+ description: "Last observed direct document count in provider-bound Clark context.",
130
+ unit: "{document}",
131
+ });
132
+ documentCountGauge.addCallback(this.observeDocumentCounts);
91
133
  this.cachedInstruments = {
134
+ documentCountGauge,
135
+ documentsAddedCounter: meter.createCounter(METRIC_DOCUMENTS_ADDED, {
136
+ description: "Direct documents added to provider-bound Clark context before provider-cap enforcement.",
137
+ unit: "{document}",
138
+ }),
139
+ documentsDroppedCounter: meter.createCounter(METRIC_DOCUMENTS_DROPPED, {
140
+ description: "Direct documents removed from provider-bound Clark context because the provider cap was reached.",
141
+ unit: "{document}",
142
+ }),
92
143
  fileBytesHistogram: meter.createHistogram(METRIC_FILE_BYTES, {
93
144
  description: "Serialized size of the conversation-context snapshot file at load/persist time.",
94
145
  unit: "By",
@@ -104,6 +155,45 @@ class ClarkContextMetrics {
104
155
  unit: "s",
105
156
  advice: { explicitBucketBoundaries: DURATION_BUCKETS_SECONDS },
106
157
  }),
158
+ serverCompactionCounter: meter.createCounter(METRIC_SERVER_COMPACTIONS, {
159
+ description: "Count of Anthropic server-side context compaction lifecycle outcomes.",
160
+ unit: "{compaction}",
161
+ }),
162
+ serverCompactionDurationHistogram: meter.createHistogram(METRIC_SERVER_COMPACTION_DURATION, {
163
+ description: "Duration from server-side compaction start chunk to completion/cancel/interruption.",
164
+ unit: "s",
165
+ advice: { explicitBucketBoundaries: DURATION_BUCKETS_SECONDS },
166
+ }),
167
+ serverCompactionInputTokensAfterHistogram: meter.createHistogram(METRIC_SERVER_COMPACTION_INPUT_TOKENS_AFTER, {
168
+ description: "Last known cumulative input-token count after server-side compaction.",
169
+ unit: "{token}",
170
+ advice: { explicitBucketBoundaries: TOKEN_COUNT_BUCKETS },
171
+ }),
172
+ serverCompactionInputTokensBeforeHistogram: meter.createHistogram(METRIC_SERVER_COMPACTION_INPUT_TOKENS_BEFORE, {
173
+ description: "Last known cumulative input-token count before server-side compaction.",
174
+ unit: "{token}",
175
+ advice: { explicitBucketBoundaries: TOKEN_COUNT_BUCKETS },
176
+ }),
177
+ serverCompactionInputTokensRemovedHistogram: meter.createHistogram(METRIC_SERVER_COMPACTION_INPUT_TOKENS_REMOVED, {
178
+ description: "Reduction in last known cumulative input tokens after server-side compaction.",
179
+ unit: "{token}",
180
+ advice: { explicitBucketBoundaries: TOKEN_COUNT_BUCKETS },
181
+ }),
182
+ serverCompactionMessagesAfterHistogram: meter.createHistogram(METRIC_SERVER_COMPACTION_MESSAGES_AFTER, {
183
+ description: "Conversation message count after server-side compaction.",
184
+ unit: "{message}",
185
+ advice: { explicitBucketBoundaries: MESSAGE_COUNT_BUCKETS },
186
+ }),
187
+ serverCompactionMessagesBeforeHistogram: meter.createHistogram(METRIC_SERVER_COMPACTION_MESSAGES_BEFORE, {
188
+ description: "Conversation message count before server-side compaction.",
189
+ unit: "{message}",
190
+ advice: { explicitBucketBoundaries: MESSAGE_COUNT_BUCKETS },
191
+ }),
192
+ serverCompactionMessagesRemovedHistogram: meter.createHistogram(METRIC_SERVER_COMPACTION_MESSAGES_REMOVED, {
193
+ description: "Conversation messages removed by server-side compaction.",
194
+ unit: "{message}",
195
+ advice: { explicitBucketBoundaries: MESSAGE_COUNT_BUCKETS },
196
+ }),
107
197
  };
108
198
  return this.cachedInstruments;
109
199
  }
@@ -122,10 +212,53 @@ class ClarkContextMetrics {
122
212
  operation: input.operation,
123
213
  });
124
214
  }
215
+ recordDocuments(input) {
216
+ const instruments = this.getInstruments();
217
+ const attributes = { mode: input.mode };
218
+ this.currentDocumentCounts.set(input.mode, Math.max(0, input.current));
219
+ if (input.added > 0) {
220
+ instruments.documentsAddedCounter.add(input.added, attributes);
221
+ }
222
+ if (input.dropped > 0) {
223
+ instruments.documentsDroppedCounter.add(input.dropped, attributes);
224
+ }
225
+ }
226
+ recordServerCompaction(input) {
227
+ const instruments = this.getInstruments();
228
+ const attributes = {
229
+ status: input.status,
230
+ };
231
+ instruments.serverCompactionCounter.add(1, attributes);
232
+ if (input.durationMs !== undefined) {
233
+ instruments.serverCompactionDurationHistogram.record(toSeconds(input.durationMs), attributes);
234
+ }
235
+ if (input.messagesBefore !== undefined) {
236
+ instruments.serverCompactionMessagesBeforeHistogram.record(clampCount(input.messagesBefore), attributes);
237
+ }
238
+ if (input.messagesAfter !== undefined) {
239
+ instruments.serverCompactionMessagesAfterHistogram.record(clampCount(input.messagesAfter), attributes);
240
+ }
241
+ if (input.messagesBefore !== undefined &&
242
+ input.messagesAfter !== undefined) {
243
+ instruments.serverCompactionMessagesRemovedHistogram.record(clampCount(input.messagesBefore - input.messagesAfter), attributes);
244
+ }
245
+ if (input.inputTokensBefore !== undefined) {
246
+ instruments.serverCompactionInputTokensBeforeHistogram.record(clampCount(input.inputTokensBefore), attributes);
247
+ }
248
+ if (input.inputTokensAfter !== undefined) {
249
+ instruments.serverCompactionInputTokensAfterHistogram.record(clampCount(input.inputTokensAfter), attributes);
250
+ }
251
+ if (input.inputTokensBefore !== undefined &&
252
+ input.inputTokensAfter !== undefined) {
253
+ instruments.serverCompactionInputTokensRemovedHistogram.record(clampCount(input.inputTokensBefore - input.inputTokensAfter), attributes);
254
+ }
255
+ }
125
256
  /** Drop cached instrument bindings (tests swap the global provider). */
126
257
  _resetForTesting() {
258
+ this.cachedInstruments?.documentCountGauge.removeCallback(this.observeDocumentCounts);
127
259
  this.cachedMeter = undefined;
128
260
  this.cachedInstruments = undefined;
261
+ this.currentDocumentCounts.clear();
129
262
  }
130
263
  }
131
264
  const clarkContextMetrics = new ClarkContextMetrics();
@@ -138,6 +271,13 @@ export function recordContextPersist(input) {
138
271
  export function recordContextFileBytes(input) {
139
272
  clarkContextMetrics.recordFileBytes(input);
140
273
  }
274
+ export function recordContextDocuments(input) {
275
+ clarkContextMetrics.recordDocuments(input);
276
+ }
277
+ export function recordServerCompaction(input) {
278
+ const { applicationId: _applicationId, organizationId: _organizationId, ...metricsInput } = input;
279
+ clarkContextMetrics.recordServerCompaction(metricsInput);
280
+ }
141
281
  export function _resetClarkContextMetricsForTesting() {
142
282
  clarkContextMetrics._resetForTesting();
143
283
  }