@snoai/memory 1.2.12 → 1.2.13

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 (150) hide show
  1. package/README.md +1 -1
  2. package/dist/{access-tracker-BOPHSJjf.d.ts → access-tracker-CglGg8uS.d.ts} +3 -3
  3. package/dist/{adapter-lyb6RaQE.d.ts → adapter-Cxyzdq6H.d.ts} +2 -2
  4. package/dist/{atomic-memory-extraction-B_XpkhMd.d.ts → atomic-memory-extraction-DO4yTfch.d.ts} +4 -4
  5. package/dist/{atomic-memory-extraction-B5FW2HhR.js → atomic-memory-extraction-DWhlXJT6.js} +4 -4
  6. package/dist/{b-profile-section-dictionary-provider-BK5NBs-y.d.ts → b-profile-section-dictionary-provider-BkUdS1SY.d.ts} +1 -1
  7. package/dist/{capture-policy-detector-BvVGmxxX.d.ts → capture-policy-detector-C7MA4jSr.d.ts} +1 -1
  8. package/dist/client.d.ts +2 -2
  9. package/dist/client.js +5 -4
  10. package/dist/{config-BWHnCb_Z.js → config-D_KOwEyg.js} +53 -16
  11. package/dist/{daily-log-generator-CH_KuWHs.js → daily-log-generator-DEsiCs7o.js} +1 -1
  12. package/dist/{derived-suppression-cache-Ckwjey7I.d.ts → derived-suppression-cache-CmS4xAaN.d.ts} +1 -1
  13. package/dist/diagnostic-encoder.js +1 -1
  14. package/dist/{index-CsPUNkcm.d.ts → index-CTi1R9T4.d.ts} +5 -4
  15. package/dist/index.d.ts +11 -11
  16. package/dist/index.js +13 -11
  17. package/dist/internal/config/plugin-config-schema.d.ts +1 -1
  18. package/dist/internal/config/plugin-config-schema.js +1 -1
  19. package/dist/internal/config/product-mode.d.ts +1 -1
  20. package/dist/internal/config/settings.d.ts +1 -1
  21. package/dist/internal/config/settings.js +43 -7
  22. package/dist/internal/config/skin-defaults.d.ts +1 -1
  23. package/dist/internal/contract/profile.d.ts +1 -1
  24. package/dist/internal/contract/routes.d.ts +2 -2
  25. package/dist/internal/contract/routes.js +2 -1
  26. package/dist/internal/engine/bindings/memory-cli-shared.d.ts +4 -4
  27. package/dist/internal/engine/bindings/memory-forget-tool.js +1 -1
  28. package/dist/internal/engine/bindings/memory-list-tool.js +1 -1
  29. package/dist/internal/engine/bindings/memory-recall-tool.js +2 -2
  30. package/dist/internal/engine/bindings/memory-reflection-resolve-tool.js +1 -1
  31. package/dist/internal/engine/bindings/memory-stats-tool.js +1 -1
  32. package/dist/internal/engine/bindings/memory-store-tool.js +3 -3
  33. package/dist/internal/engine/bindings/memory-tool-access.d.ts +1 -1
  34. package/dist/internal/engine/bindings/memory-tool-access.js +1 -1
  35. package/dist/internal/engine/bindings/memory-tool-results.d.ts +1 -1
  36. package/dist/internal/engine/bindings/memory-tool-results.js +1 -1
  37. package/dist/internal/engine/bindings/memory-tool-schemas.d.ts +5 -5
  38. package/dist/internal/engine/bindings/memory-tool-schemas.js +1 -1
  39. package/dist/internal/engine/bindings/memory-update-tool.js +2 -2
  40. package/dist/internal/engine/bindings/sno-station-mem-ambient-learning-hook.d.ts +4 -4
  41. package/dist/internal/engine/bindings/sno-station-mem-ambient-learning-hook.js +4 -4
  42. package/dist/internal/engine/bindings/sno-station-mem-auto-recall-hook.d.ts +4 -4
  43. package/dist/internal/engine/bindings/sno-station-mem-auto-recall-hook.js +4 -2
  44. package/dist/internal/engine/bindings/sno-station-mem-insight-distill-factory.d.ts +5 -5
  45. package/dist/internal/engine/bindings/sno-station-mem-insight-distill-factory.js +2 -2
  46. package/dist/internal/engine/bindings/sno-station-mem-message-transcript.js +2 -2
  47. package/dist/internal/engine/bindings/sno-station-mem-reset-hook.d.ts +3 -3
  48. package/dist/internal/engine/bindings/sno-station-mem-runtime-mode.d.ts +1 -1
  49. package/dist/internal/engine/extraction/atomic-memory-extraction.d.ts +1 -1
  50. package/dist/internal/engine/extraction/atomic-memory-extraction.js +1 -1
  51. package/dist/internal/engine/extraction/b-profile-section-dictionary-provider.d.ts +1 -1
  52. package/dist/internal/engine/extraction/b-profile-section-rekey.d.ts +5 -5
  53. package/dist/internal/engine/extraction/capture-policy-detector.d.ts +1 -1
  54. package/dist/internal/engine/extraction/memory-metadata-codec.d.ts +2 -2
  55. package/dist/internal/engine/extraction/memory-temporality-classifier.d.ts +1 -1
  56. package/dist/internal/engine/extraction/memory-temporality-classifier.js +1 -1
  57. package/dist/internal/engine/observability/adapter.d.ts +1 -1
  58. package/dist/internal/engine/observability/memory-snapshot.d.ts +1 -1
  59. package/dist/internal/engine/observability/observable-embedder.d.ts +1 -1
  60. package/dist/internal/engine/observability/observable-llm-client.d.ts +1 -1
  61. package/dist/internal/engine/observability/observable-memory-store.d.ts +1 -1
  62. package/dist/internal/engine/observability/observable-memory-store.js +1 -1
  63. package/dist/internal/engine/observability/observable-retriever.d.ts +1 -1
  64. package/dist/internal/engine/observability/observable-retriever.js +1 -1
  65. package/dist/internal/engine/observability/runtime-diagnostics.d.ts +1 -1
  66. package/dist/internal/engine/observability/runtime-diagnostics.js +1 -1
  67. package/dist/internal/engine/operations/learning-file-maintenance.js +1 -1
  68. package/dist/internal/engine/operations/memory-tier-promoter.d.ts +1 -1
  69. package/dist/internal/engine/operations/runtime-audit-log.d.ts +2 -2
  70. package/dist/internal/engine/provider/provider-registration.d.ts +4 -4
  71. package/dist/internal/engine/provider/provider-row-renderer.d.ts +1 -1
  72. package/dist/internal/engine/reflection/daily-log-generator.js +1 -1
  73. package/dist/internal/engine/reflection/reflection-command-hooks.d.ts +1 -1
  74. package/dist/internal/engine/reflection/reflection-command-hooks.js +1 -1
  75. package/dist/internal/engine/reflection/reflection-deps.d.ts +1 -1
  76. package/dist/internal/engine/reflection/reflection-embedded-generator.d.ts +1 -1
  77. package/dist/internal/engine/reflection/reflection-embedded-generator.js +1 -1
  78. package/dist/internal/engine/reflection/reflection-injection-hooks.d.ts +1 -1
  79. package/dist/internal/engine/reflection/reflection-injection-hooks.js +1 -1
  80. package/dist/internal/engine/reflection/reflection-lifecycle-hooks.d.ts +1 -1
  81. package/dist/internal/engine/reflection/reflection-lifecycle-hooks.js +1 -1
  82. package/dist/internal/engine/reflection/strategy-hook-runner.d.ts +3 -3
  83. package/dist/internal/engine/reflection/strategy-hook-runner.js +2 -2
  84. package/dist/internal/engine/retrieval/access-tracker.d.ts +1 -1
  85. package/dist/internal/engine/retrieval/retriever.d.ts +1 -1
  86. package/dist/internal/engine/retrieval/retriever.js +1 -1
  87. package/dist/internal/engine/shared/memory-kind-policy.d.ts +1 -1
  88. package/dist/internal/engine/shared/paths.d.ts +2 -2
  89. package/dist/internal/engine/shared/types.d.ts +2 -2
  90. package/dist/internal/engine/shared/types.js +1 -1
  91. package/dist/internal/engine/telemetry/observe-ledger.d.ts +1 -1
  92. package/dist/internal/model/llm-client.d.ts +2 -2
  93. package/dist/internal/model/llm-client.js +1 -1
  94. package/dist/internal/model/llm-mode-routing.d.ts +1 -1
  95. package/dist/internal/store/maintenance.d.ts +2 -2
  96. package/dist/internal/store/maintenance.js +3 -3
  97. package/dist/internal/store/sqlite-runtime.js +1 -1
  98. package/dist/internal/store/store.d.ts +2 -2
  99. package/dist/internal/store/store.js +1 -1
  100. package/dist/{llm-client-BTaUVmDe.d.ts → llm-client-B7LSFL_m.d.ts} +1 -1
  101. package/dist/{llm-client-DPBhPtmQ.js → llm-client-C7yyFWu-.js} +18 -7
  102. package/dist/{log-site-catalog.generated-B4LkDXe0.js → log-site-catalog.generated-BODn_6Kx.js} +78 -78
  103. package/dist/log-site-catalog.json +1 -1
  104. package/dist/{memory-kind-policy-ClQEXeOL.d.ts → memory-kind-policy-B4IBMAlv.d.ts} +1 -1
  105. package/dist/{memory-metadata-codec-wVAuoKrG.d.ts → memory-metadata-codec-BQ8tBY-g.d.ts} +1 -1
  106. package/dist/{memory-runtime-D6cAHd34.js → memory-runtime-4iOpeP09.js} +89 -86
  107. package/dist/{memory-snapshot-uTdxJnIh.d.ts → memory-snapshot-B8mQbWR-.d.ts} +2 -2
  108. package/dist/{memory-store-base-Bk2dOKED.d.ts → memory-store-base-CTAMKigD.d.ts} +2 -2
  109. package/dist/{memory-temporality-classifier-CcxfHYoT.d.ts → memory-temporality-classifier-LByFBiFJ.d.ts} +1 -1
  110. package/dist/{memory-temporality-classifier-Bm4-tqB5.js → memory-temporality-classifier-epuZlfXa.js} +1 -1
  111. package/dist/{memory-tier-promoter-MkZPQ8u1.d.ts → memory-tier-promoter-CSGa4LBH.d.ts} +1 -1
  112. package/dist/memory-tool-dependencies-Bl11T6Xm.d.ts +14 -0
  113. package/dist/{memory-tool-dependencies-R_yWuFEg.js → memory-tool-dependencies-xLaWzwpI.js} +1 -1
  114. package/dist/{observable-embedder-CGr3Zejf.d.ts → observable-embedder-Da0teBqx.d.ts} +1 -1
  115. package/dist/{observable-llm-client-CXUA7Gi3.d.ts → observable-llm-client-i0sp0veF.d.ts} +3 -3
  116. package/dist/{observable-memory-store-BwwKcUzf.d.ts → observable-memory-store-CS87pitJ.d.ts} +4 -4
  117. package/dist/{observable-retriever-bJbG9WtJ.d.ts → observable-retriever-Bhfg9DsZ.d.ts} +5 -5
  118. package/dist/{operation-cancellation-CTKWwNHk.js → operation-cancellation-QcwC4mDX.js} +7 -2
  119. package/dist/paths-B5y-npWs.d.ts +1 -0
  120. package/dist/{plugin-config-schema-BrhMvnXJ.d.ts → plugin-config-schema-CcEeAEdi.d.ts} +2 -2
  121. package/dist/{plugin-config-schema-Di-uKTP0.js → plugin-config-schema-CvAGFPyE.js} +1 -0
  122. package/dist/{profile-CF5oDjR7.d.ts → profile-BMvnRqf5.d.ts} +1 -1
  123. package/dist/{profile-section-writer-Cu3ND3j7.js → profile-section-writer-DeD9GPQJ.js} +2 -2
  124. package/dist/{reflection-command-hooks-CM2mWb69.d.ts → reflection-command-hooks-CFXyoVvE.d.ts} +4 -4
  125. package/dist/{reflection-command-hooks-vKpljnqv.js → reflection-command-hooks-S5L6ZWeh.js} +5 -5
  126. package/dist/{reflection-deps-B5I0nYZS.d.ts → reflection-deps-BPMrDU0a.d.ts} +2 -2
  127. package/dist/{reflection-embedded-generator-CogQIBcG.d.ts → reflection-embedded-generator-CF-NbuPS.d.ts} +3 -3
  128. package/dist/{reflection-embedded-generator-CwTXvERI.js → reflection-embedded-generator-nmVrj4AZ.js} +1 -1
  129. package/dist/{reflection-injection-hooks-BnbfZqpj.d.ts → reflection-injection-hooks-BRIr3lJM.d.ts} +4 -4
  130. package/dist/{reflection-lifecycle-hooks-DMDhtidj.d.ts → reflection-lifecycle-hooks-Ci8y4qHk.d.ts} +3 -3
  131. package/dist/{rem-batch-executor-Cn-MBe4m.js → rem-batch-executor-CfWChDAk.js} +1 -1
  132. package/dist/{rem-consumer-retrieval-CDMSCJYI.js → rem-consumer-retrieval-BhS1ivcd.js} +1 -0
  133. package/dist/{rem-trigger-B_S0CBa7.js → rem-trigger-B1P5_RqV.js} +67 -25
  134. package/dist/{retriever-Bzz6H8Mn.js → retriever-CpyZs2ND.js} +45 -18
  135. package/dist/{retriever-DyxY59Lg.d.ts → retriever-DdikFSDC.d.ts} +13 -8
  136. package/dist/{runtime-audit-log-DdhLlTxi.d.ts → runtime-audit-log-BVOxzkh7.d.ts} +1 -1
  137. package/dist/{server-C2XTjGFr.js → server-DOL3D6bb.js} +7 -6
  138. package/dist/sidecar/main.js +2 -2
  139. package/dist/{sno-station-mem-runtime-dependencies-BaaXGrZb.js → sno-station-mem-runtime-dependencies-DZe3z4RY.js} +7 -7
  140. package/dist/sno-station-mem-runtime-dependencies-DgAm7WqA.d.ts +31 -0
  141. package/dist/{store-BzWYcvpF.js → store-DY_rWx__.js} +2 -2
  142. package/dist/{store-BDIAl2cc.d.ts → store-DraRJ-HI.d.ts} +1 -1
  143. package/dist/{strategy-hook-runner-GaJKb3O8.js → strategy-hook-runner-CltVTtzk.js} +1 -1
  144. package/dist/{strategy-hook-runner-DT9emgCZ.d.ts → strategy-hook-runner-DH7OEQrH.d.ts} +7 -7
  145. package/dist/{types-Ae3a8562.d.ts → types-DZGL4QXi.d.ts} +1 -1
  146. package/package.json +1 -1
  147. package/settings.default.json +2 -2
  148. package/dist/memory-tool-dependencies-CWnD5mia.d.ts +0 -14
  149. package/dist/paths-DmmPxD_v.d.ts +0 -1
  150. package/dist/sno-station-mem-runtime-dependencies-BZjUo6Jr.d.ts +0 -31
@@ -1,9 +1,9 @@
1
- import { x as RetrievalResult } from "./types-Ae3a8562.js";
2
- import { n as PluginObservability } from "./adapter-lyb6RaQE.js";
1
+ import { x as RetrievalResult } from "./types-DZGL4QXi.js";
2
+ import { n as PluginObservability } from "./adapter-Cxyzdq6H.js";
3
3
  import { r as EmbeddingConfig, t as Embedder } from "./embedding-provider-client-vynZMuit.js";
4
- import { d as RetrievalConfig, f as RetrievalContext, t as MemoryRetriever } from "./retriever-DyxY59Lg.js";
5
- import { C as MemoryStore } from "./memory-store-base-Bk2dOKED.js";
6
- import "./store-BDIAl2cc.js";
4
+ import { d as RetrievalConfig, f as RetrievalContext, t as MemoryRetriever } from "./retriever-DdikFSDC.js";
5
+ import { C as MemoryStore } from "./memory-store-base-CTAMKigD.js";
6
+ import "./store-DraRJ-HI.js";
7
7
  //#region src/engine/observability/observable-retriever.d.ts
8
8
  type SessionUuidProvider = () => string | undefined;
9
9
  type RetrievalTraceResult = Awaited<ReturnType<MemoryRetriever["retrieveWithTrace"]>>;
@@ -5,10 +5,11 @@ import { AsyncLocalStorage } from "node:async_hooks";
5
5
  const operations = new AsyncLocalStorage();
6
6
  const log = createLogger("sno-station-mem:cancellation");
7
7
  /** Carries cancellation through the existing nested extraction and reflection writers. */
8
- async function withMemoryOperation(method, signal, run) {
8
+ async function withMemoryOperation(method, signal, run, deadlineMs) {
9
9
  const operation = {
10
10
  id: randomUUID(),
11
11
  signal,
12
+ deadlineMs,
12
13
  writes: 0,
13
14
  transactionDepth: 0
14
15
  };
@@ -35,6 +36,10 @@ async function withMemoryOperation(method, signal, run) {
35
36
  function memoryOperationId() {
36
37
  return operations.getStore()?.id;
37
38
  }
39
+ /** The owning operation's absolute performance.now() deadline, shared by all extraction calls. */
40
+ function memoryOperationDeadline() {
41
+ return operations.getStore()?.deadlineMs;
42
+ }
38
43
  function memoryOperationSignal(signal) {
39
44
  const request = operations.getStore()?.signal;
40
45
  if (!request) return signal;
@@ -78,4 +83,4 @@ async function memoryFileWrite(write) {
78
83
  return result;
79
84
  }
80
85
  //#endregion
81
- export { memoryTransaction as a, memoryOperationSignal as i, memoryFileWrite as n, memoryWrite as o, memoryOperationId as r, withMemoryOperation as s, checkMemoryOperation as t };
86
+ export { memoryOperationSignal as a, withMemoryOperation as c, memoryOperationId as i, memoryFileWrite as n, memoryTransaction as o, memoryOperationDeadline as r, memoryWrite as s, checkMemoryOperation as t };
@@ -0,0 +1 @@
1
+ import "./profile-BMvnRqf5.js";
@@ -50,7 +50,7 @@ type Settings = {
50
50
  };
51
51
  rerank: {
52
52
  mode: "lightweight" | "cross-encoder" | "none";
53
- provider: "jina" | "siliconflow" | "pinecone" | "voyage" | "dashscope" | "tei" | "custom";
53
+ provider: "jina" | "siliconflow" | "pinecone" | "voyage" | "dashscope" | "tei" | "sno-gpu" | "custom";
54
54
  endpoint: string;
55
55
  model: string;
56
56
  apiKey: string;
@@ -346,7 +346,7 @@ declare const retrievalConfigSchema: z.ZodType<{
346
346
  timeDecayFloor?: number | undefined;
347
347
  mmrLambda?: number | undefined;
348
348
  rerankEndpoint?: string | undefined;
349
- rerankProvider?: "jina" | "siliconflow" | "pinecone" | "voyage" | "dashscope" | "tei" | "custom" | undefined;
349
+ rerankProvider?: "jina" | "siliconflow" | "pinecone" | "voyage" | "dashscope" | "tei" | "sno-gpu" | "custom" | undefined;
350
350
  rerankMaxCandidates?: number | undefined;
351
351
  reinforcementFactor: number;
352
352
  maxHalfLifeMultiplier: number;
@@ -175,6 +175,7 @@ const retrievalConfigSchema = z.object({
175
175
  "voyage",
176
176
  "dashscope",
177
177
  "tei",
178
+ "sno-gpu",
178
179
  "custom"
179
180
  ]).optional(),
180
181
  /** Hard cap on candidates sent per rerank API request (some deployments reject over-limit batches) */
@@ -1,4 +1,4 @@
1
- import { b as Settings } from "./plugin-config-schema-BrhMvnXJ.js";
1
+ import { b as Settings } from "./plugin-config-schema-CcEeAEdi.js";
2
2
  //#region src/contract/profile.d.ts
3
3
  declare function getStateDir(defaultStateDir?: string): string;
4
4
  declare function getSettingsPath(): string;
@@ -2,11 +2,11 @@ import { MAX_LIST_LIMIT } from "./internal/config/index.js";
2
2
  import { SnoStationMemError, StorageError } from "./internal/engine/shared/errors.js";
3
3
  import { a as buildInsightMetadata, c as stringifyInsightMetadata, h as deriveFactKey, s as parseInsightMetadata } from "./memory-metadata-codec-DL1sbJiN.js";
4
4
  import { a as currentMutationAttemptId, f as runWithMutationAttempt } from "./runtime-audit-log-DK6xAYxh.js";
5
- import { n as LlmClientTerminalError } from "./llm-client-DPBhPtmQ.js";
5
+ import { n as LlmClientTerminalError } from "./llm-client-C7yyFWu-.js";
6
6
  import { resolveLlmRoute } from "./internal/model/llm-mode-routing.js";
7
7
  import { boundSectionContent, buildIndexedText } from "./internal/engine/extraction/extraction-text-sanitizer.js";
8
8
  import { adapterAViewFromRecord, orderAdapterAPair, parseAdapterAChatVerdict, prospectiveProfileView, renderAdapterAChatPrompt, renderAdapterAPrompt } from "./internal/engine/rem/index.js";
9
- import { S as StaleSupersedeTargetError, a as resolveTaskLifecycle, c as buildTaskLifecycleCommandClaim, i as findUniqueActiveTaskByDescription, l as resolveTaskLifecycleEffectiveTime, n as acceptsTaskLifecycleJudgment, o as taskLifecycleCandidateSetVersion, r as buildTaskLifecycleCandidateSet, s as admitTaskLifecycleAssertion, w as TaskLifecycleStaleResolutionError } from "./store-BzWYcvpF.js";
9
+ import { S as StaleSupersedeTargetError, a as resolveTaskLifecycle, c as buildTaskLifecycleCommandClaim, i as findUniqueActiveTaskByDescription, l as resolveTaskLifecycleEffectiveTime, n as acceptsTaskLifecycleJudgment, o as taskLifecycleCandidateSetVersion, r as buildTaskLifecycleCandidateSet, s as admitTaskLifecycleAssertion, w as TaskLifecycleStaleResolutionError } from "./store-DY_rWx__.js";
10
10
  import { o as canonicalizeProfileSectionName, r as recordTokenCounter } from "./memory-store-write-validation-B_hDG2zf.js";
11
11
  import { canExtractorWrite } from "./internal/engine/shared/memory-kind-policy.js";
12
12
  import { resolveHookAgentId } from "./internal/engine/bindings/sno-station-mem-runtime-mode.js";
@@ -1,8 +1,8 @@
1
- import { t as PluginConfig } from "./plugin-config-schema-BrhMvnXJ.js";
2
- import "./types-Ae3a8562.js";
1
+ import { t as PluginConfig } from "./plugin-config-schema-CcEeAEdi.js";
2
+ import "./types-DZGL4QXi.js";
3
3
  import { n as createErrorSignalTracker } from "./error-signals-D8_3vYu4.js";
4
- import { n as ReflectionDerivedCache, t as ReflectionDerivedSuppressionCache } from "./derived-suppression-cache-Ckwjey7I.js";
5
- import { t as ReflectionDeps } from "./reflection-deps-B5I0nYZS.js";
4
+ import { n as ReflectionDerivedCache, t as ReflectionDerivedSuppressionCache } from "./derived-suppression-cache-CmS4xAaN.js";
5
+ import { t as ReflectionDeps } from "./reflection-deps-BPMrDU0a.js";
6
6
  //#region src/engine/reflection/reflection-command-hooks.d.ts
7
7
  declare function createRunMemoryReflection(params: ReflectionCommandParams): (event: {
8
8
  sessionKey: string;
@@ -1,16 +1,16 @@
1
1
  import { _t as FIXED_PROTOCOL_VALUE_78 } from "./signed-registry-constants-yq3DlG3B.js";
2
2
  import { a as buildInsightMetadata, c as stringifyInsightMetadata } from "./memory-metadata-codec-DL1sbJiN.js";
3
3
  import { redactSecrets } from "./internal/engine/security/redact.js";
4
- import { t as checkMemoryOperation } from "./operation-cancellation-CTKWwNHk.js";
4
+ import { t as checkMemoryOperation } from "./operation-cancellation-QcwC4mDX.js";
5
5
  import { setLruEntry } from "./internal/engine/shared/lru.js";
6
- import { i as createLlmClient } from "./llm-client-DPBhPtmQ.js";
6
+ import { i as createLlmClient } from "./llm-client-C7yyFWu-.js";
7
7
  import { pickLlmRoutingConfig } from "./internal/model/llm-mode-routing.js";
8
8
  import { appendSelfImprovementEntry } from "./internal/engine/operations/learning-file-maintenance.js";
9
9
  import { getSnoStationMemDataDir } from "./internal/store/data-paths.js";
10
10
  import { resolveHookAgentId } from "./internal/engine/bindings/sno-station-mem-runtime-mode.js";
11
- import { n as createRetireByNameRunBudget, r as runProfileSectionUpdate } from "./profile-section-writer-Cu3ND3j7.js";
12
- import { a as generateReflectionText, c as shouldSkipReflectionMessage, l as writeReflectionToFilesystem, s as readSessionConversationWithResetFallback, u as extractTextContent } from "./daily-log-generator-CH_KuWHs.js";
13
- import { a as resolveWorkspaceDirFromEvent, f as setReflectionDerivedCacheEntry, l as isSessionBoundaryReflectionAction, n as createReflectionGenerator, o as DEFAULT_REFLECTION_BOUNDARY_DERIVED_SUPPRESSION_MS, t as DEFAULT_MEMORY_LLM_CONFIG, u as setReflectionDerivedSuppression } from "./reflection-embedded-generator-CwTXvERI.js";
11
+ import { n as createRetireByNameRunBudget, r as runProfileSectionUpdate } from "./profile-section-writer-DeD9GPQJ.js";
12
+ import { a as generateReflectionText, c as shouldSkipReflectionMessage, l as writeReflectionToFilesystem, s as readSessionConversationWithResetFallback, u as extractTextContent } from "./daily-log-generator-DEsiCs7o.js";
13
+ import { a as resolveWorkspaceDirFromEvent, f as setReflectionDerivedCacheEntry, l as isSessionBoundaryReflectionAction, n as createReflectionGenerator, o as DEFAULT_REFLECTION_BOUNDARY_DERIVED_SUPPRESSION_MS, t as DEFAULT_MEMORY_LLM_CONFIG, u as setReflectionDerivedSuppression } from "./reflection-embedded-generator-nmVrj4AZ.js";
14
14
  import { i as buildReflectionMappedMetadata, n as createReflectionEventId, o as extractInjectableReflectionMappedMemoryItems, r as buildReflectionAntiPatternSignature, s as extractReflectionLearningGovernanceCandidates, t as storeReflectionEntries } from "./memory-entry-projector-DHo8jH10.js";
15
15
  import { createLogger, currentLogContext, privateLogReference, withLogContext } from "@snoai/utils/logger";
16
16
  import { basename, join } from "node:path";
@@ -1,7 +1,7 @@
1
1
  import { n as AgentLlmPort } from "./agent-llm-port-DY2290EK.js";
2
2
  import { n as createEmbedder } from "./embedding-provider-client-vynZMuit.js";
3
- import { C as MemoryStore } from "./memory-store-base-Bk2dOKED.js";
4
- import "./store-BDIAl2cc.js";
3
+ import { C as MemoryStore } from "./memory-store-base-CTAMKigD.js";
4
+ import "./store-DraRJ-HI.js";
5
5
  import { r as MemoryTelemetryUsageOutbox } from "./memory-telemetry-outbox-ddTdImt7.js";
6
6
  import { n as createScopePolicy } from "./memory-scope-policy-1gg5QlWZ.js";
7
7
  //#region src/engine/reflection/reflection-deps.d.ts
@@ -1,9 +1,9 @@
1
- import { p as LlmRoutingConfig, t as PluginConfig } from "./plugin-config-schema-BrhMvnXJ.js";
2
- import "./types-Ae3a8562.js";
1
+ import { p as LlmRoutingConfig, t as PluginConfig } from "./plugin-config-schema-CcEeAEdi.js";
2
+ import "./types-DZGL4QXi.js";
3
3
  import { n as AgentLlmPort } from "./agent-llm-port-DY2290EK.js";
4
4
  import { n as ReflectionGenerator } from "./daily-log-generator-CsQPHl4A.js";
5
5
  import { n as createErrorSignalTracker } from "./error-signals-D8_3vYu4.js";
6
- import { n as ReflectionDerivedCache, t as ReflectionDerivedSuppressionCache } from "./derived-suppression-cache-Ckwjey7I.js";
6
+ import { n as ReflectionDerivedCache, t as ReflectionDerivedSuppressionCache } from "./derived-suppression-cache-CmS4xAaN.js";
7
7
  //#region src/engine/reflection/reflection-embedded-generator.d.ts
8
8
  declare const DEFAULT_MEMORY_LLM_CONFIG: NonNullable<PluginConfig["extraction"]["llm"]>;
9
9
  declare function isInternalReflectionSessionKey(sessionKey: unknown): boolean;
@@ -1,5 +1,5 @@
1
1
  import { X as FIXED_MEMORY_SNO_AI_EXTRACT } from "./signed-registry-constants-yq3DlG3B.js";
2
- import { i as createLlmClient } from "./llm-client-DPBhPtmQ.js";
2
+ import { i as createLlmClient } from "./llm-client-C7yyFWu-.js";
3
3
  //#region src/engine/reflection/derived-line-cache.ts
4
4
  /**
5
5
  * Returns reflection derived cache entry from reflection cache keys state without side effects.
@@ -1,10 +1,10 @@
1
- import { t as PluginConfig } from "./plugin-config-schema-BrhMvnXJ.js";
2
- import "./types-Ae3a8562.js";
3
- import "./store-BDIAl2cc.js";
1
+ import { t as PluginConfig } from "./plugin-config-schema-CcEeAEdi.js";
2
+ import "./types-DZGL4QXi.js";
3
+ import "./store-DraRJ-HI.js";
4
4
  import { r as MemoryTelemetryUsageOutbox } from "./memory-telemetry-outbox-ddTdImt7.js";
5
5
  import { n as createScopePolicy } from "./memory-scope-policy-1gg5QlWZ.js";
6
6
  import { n as createErrorSignalTracker } from "./error-signals-D8_3vYu4.js";
7
- import { n as ReflectionDerivedCache, r as LoadedReflectionSlices, t as ReflectionDerivedSuppressionCache } from "./derived-suppression-cache-Ckwjey7I.js";
7
+ import { n as ReflectionDerivedCache, r as LoadedReflectionSlices, t as ReflectionDerivedSuppressionCache } from "./derived-suppression-cache-CmS4xAaN.js";
8
8
  //#region src/engine/reflection/reflection-slice-loader.d.ts
9
9
  interface ReflectionSliceLoader {
10
10
  loadAgentReflectionSlices: (agentId: string, projectIdFilter: string[]) => Promise<LoadedReflectionSlices>;
@@ -1,7 +1,7 @@
1
- import { t as PluginConfig } from "./plugin-config-schema-BrhMvnXJ.js";
2
- import "./types-Ae3a8562.js";
1
+ import { t as PluginConfig } from "./plugin-config-schema-CcEeAEdi.js";
2
+ import "./types-DZGL4QXi.js";
3
3
  import { n as createErrorSignalTracker } from "./error-signals-D8_3vYu4.js";
4
- import { n as ReflectionDerivedCache, t as ReflectionDerivedSuppressionCache } from "./derived-suppression-cache-Ckwjey7I.js";
4
+ import { n as ReflectionDerivedCache, t as ReflectionDerivedSuppressionCache } from "./derived-suppression-cache-CmS4xAaN.js";
5
5
  //#region src/engine/reflection/reflection-lifecycle-hooks.d.ts
6
6
  type ReflectionLifecycleParams = {
7
7
  reflectionCfg: PluginConfig["memoryReflection"];
@@ -1,2 +1,2 @@
1
- import { c as runRemProductionOrderedWave } from "./rem-trigger-B_S0CBa7.js";
1
+ import { c as runRemProductionOrderedWave } from "./rem-trigger-B1P5_RqV.js";
2
2
  export { runRemProductionOrderedWave };
@@ -193,6 +193,7 @@ async function retrieveForAutoRecall(retriever, input) {
193
193
  minScore: input.minScore,
194
194
  scopeFilter: input.scopeFilter,
195
195
  ...input.signal === void 0 ? {} : { signal: input.signal },
196
+ ...input.rerankDeadlineAt === void 0 ? {} : { rerankDeadlineAt: input.rerankDeadlineAt },
196
197
  ...input.sessionId === void 0 ? {} : { sessionId: input.sessionId },
197
198
  source: "auto-recall",
198
199
  facetPolicy: "current-only",
@@ -1,4 +1,4 @@
1
- import { $ as FIXED_IDX_MEMORY_ACTIVE_TASK_CURRENT_REVISION, A as modelCallDestination, At as FIXED_MEMORY_PROFILE_RECOVERY_ENTRIES, B as FIXED_EXTERNAL_VALUE_49, C as getSnoStationMemStateDir, Cn as CHUNK_OVERLAP_TOKENS, Cr as CachedEmbeddingProvider, Ct as FIXED_MEMORY_CHUNKS_MEM_FACET_IDX, D as settingsToPluginConfig, Dn as DEFAULT_IMPORTANCE, Dr as LocalEmbedProvider, Dt as FIXED_MEMORY_MEMORIES_FACT_ID_INSERT_GUARD, En as DEFAULT_BM25_WEIGHT, Et as FIXED_MEMORY_MEMORIES, Fn as DEFAULT_VECTOR_WEIGHT, Fr as REM_SIDECAR_TOKEN_HEADER, G as FIXED_EXTERNAL_VALUE_55, Gn as IMPORTANCE_WEIGHT_BASE, H as FIXED_EXTERNAL_VALUE_52, Hn as HEAD_EXTRACT_MIN_CONTENT_TOKENS, In as EMBEDDER_DIM, It as FIXED_MEMORY_SNO_EXTRACT_CHAT, J as FIXED_EXTERNAL_VALUE_58, Jn as LIGHTWEIGHT_COSINE_WEIGHT, K as FIXED_EXTERNAL_VALUE_56, Kt as FIXED_PROTOCOL_VALUE_69, Ln as EMBEDDER_MODEL_DEFAULT, Mn as DEFAULT_RERANK_MODEL, Mt as FIXED_MEMORY_PROVIDER_PROJECT_AGENTS, Nn as DEFAULT_RERANK_TIMEOUT_MS, Nt as FIXED_MEMORY_PROVIDER_PROJECT_MAPPINGS, O as MODEL_CALLS, On as DEFAULT_RECALL_LIFECYCLE, Or as ensureModelDownloaded, Ot as FIXED_MEMORY_MEMORIES_FACT_ID_UPDATE_GUARD, P as observeAgentId, Q as FIXED_IDX_MEMORY, Rn as EMBEDDER_PROVIDER_DEFAULT, Rt as FIXED_MEMORY_TASK_LIFECYCLE_COMMANDS, Sn as CHUNK_MIN_TOKENS, St as FIXED_MEMORY_CHUNKS_MEMORY_ID_IDX, T as readSettings, Tn as CHUNK_TOKENIZER_MODE, Tr as LOCAL_EMBEDDING_MODEL, Tt as FIXED_MEMORY_EXTRACTION_TIMESTAMPS, U as FIXED_EXTERNAL_VALUE_53, Un as HEAD_EXTRACT_OVERLAP_DROP_RATIO, V as FIXED_EXTERNAL_VALUE_51, W as FIXED_EXTERNAL_VALUE_54, Wn as HEAD_EXTRACT_TOKEN_BUDGET, X as FIXED_EXTERNAL_VALUE_8, Xn as LIGHTWEIGHT_RERANK_PENALTY, Y as FIXED_EXTERNAL_VALUE_62, Yn as LIGHTWEIGHT_FUSION_WEIGHT, Z as FIXED_EXTERNAL_VALUE_9, _t as FIXED_MEMORY_CHUNKS, a as REM_MODEL_OUTPUT_TOKEN_CAP, an as PERSISTED_PROVIDER_SYSTEM, ar as MMR_LAMBDA, at as FIXED_IDX_MEMORY_MEMORIES_LANE_PROJECT, bn as CHUNKING_VERSION$1, br as experimentCandidatePoolOverride, bt as FIXED_MEMORY_CHUNKS_AU, cn as SUPPORTED_LOCALES, ct as FIXED_IDX_MEMORY_MEMORIES_PROJECT_FACT_KEY_ACTIVE, d as getRemDiscoveryPath, dn as ADJACENCY_BONUS_PER_PAIR, dt as FIXED_MEMORY_ACTIVE_TASK_EVIDENCE, en as FIXED_VEC_MEMORY, er as MAX_CHUNK_FETCH_LIMIT, et as FIXED_IDX_MEMORY_ACTIVE_TASK_EVIDENCE_INSTANCE, fr as RERANK_BLEND_CROSS, ft as FIXED_MEMORY_ACTIVE_TASK_INSTANCES, g as readRemOperationalConfig, gr as TIME_DECAY_FLOOR, gt as FIXED_MEMORY_ACTIVE_TASK_TRANSITIONS, ht as FIXED_MEMORY_ACTIVE_TASK_REVISIONS, in as PERSISTED_CONTENT_HASH_V3, it as FIXED_IDX_MEMORY_MEMORIES_FACT_ID, jt as FIXED_MEMORY_PROVIDER_AGENT_MAPPINGS, k as MODEL_CALL_WORKLOAD, kt as FIXED_MEMORY_MIGRATION_MARKERS, lr as RECENCY_WEIGHT, lt as FIXED_IDX_MEMORY_MEMORIES_PROJECT_TIMESTAMP, mr as RETRIEVAL_STORAGE_CHUNK_PROFILE, mt as FIXED_MEMORY_ACTIVE_TASK_MIGRATION_MANIFESTS, nn as PERSISTED_CANDIDATE_HASH_V1, nt as FIXED_IDX_MEMORY_MEMORIES_CATEGORY, o as REM_RUN_PATH, or as MULTI_HIT_BONUS_CAP, ot as FIXED_IDX_MEMORY_MEMORIES_PROJECT, pr as RERANK_BLEND_VECTOR, pt as FIXED_MEMORY_ACTIVE_TASK_MIGRATION_EVIDENCE, q as FIXED_EXTERNAL_VALUE_57, qn as INTRA_MEMORY_COSINE_THRESHOLD, qt as FIXED_PROTOCOL_VALUE_73, r as REM_CORRELATION_ID_HEADER, rn as PERSISTED_CONTENT_HASH_V1, rt as FIXED_IDX_MEMORY_MEMORIES_CONTENT_HASH, s as REM_SIDECAR_HOST, sn as llmRoutingConfigSchema, sr as MULTI_HIT_BONUS_PER_HIT, st as FIXED_IDX_MEMORY_MEMORIES_PROJECT_CONTENT_HASH, tn as FIXED_VEC_MEMORY_CHUNKS, tr as MAX_LIST_LIMIT, tt as FIXED_IDX_MEMORY_ACTIVE_TASK_INSTANCES_PROJECTION, un as ADJACENCY_BONUS_CAP, ut as FIXED_MEMORY, vn as BONUS_TOTAL_INVARIANT, vt as FIXED_MEMORY_CHUNKS_AD, wn as CHUNK_TARGET_TOKENS, wr as LOCAL_EMBEDDING_CACHE_DIR_DEFAULT, wt as FIXED_MEMORY_CHUNKS_MEM_IDX, xn as CHUNK_MAX_TOKENS, xr as experimentMmrDisabled, xt as FIXED_MEMORY_CHUNKS_FTS, yn as CACHE_TTL_MS, yt as FIXED_MEMORY_CHUNKS_AI, zn as EVAL_QA_TRACES_FILENAME, zt as FIXED_MEMORY_UNPLACED_CANDIDATES } from "./config-BWHnCb_Z.js";
1
+ import { $ as FIXED_IDX_MEMORY_ACTIVE_TASK_CURRENT_REVISION, A as modelCallDestination, At as FIXED_MEMORY_PROFILE_RECOVERY_ENTRIES, B as FIXED_EXTERNAL_VALUE_49, C as getSnoStationMemStateDir, Cn as CHUNK_OVERLAP_TOKENS, Cr as CachedEmbeddingProvider, Ct as FIXED_MEMORY_CHUNKS_MEM_FACET_IDX, D as settingsToPluginConfig, Dn as DEFAULT_IMPORTANCE, Dr as LocalEmbedProvider, Dt as FIXED_MEMORY_MEMORIES_FACT_ID_INSERT_GUARD, En as DEFAULT_BM25_WEIGHT, Et as FIXED_MEMORY_MEMORIES, Fn as DEFAULT_VECTOR_WEIGHT, G as FIXED_EXTERNAL_VALUE_55, Gn as IMPORTANCE_WEIGHT_BASE, H as FIXED_EXTERNAL_VALUE_52, Hn as HEAD_EXTRACT_MIN_CONTENT_TOKENS, In as EMBEDDER_DIM, Ir as REM_SIDECAR_TOKEN_HEADER, It as FIXED_MEMORY_SNO_EXTRACT_CHAT, J as FIXED_EXTERNAL_VALUE_58, Jn as LIGHTWEIGHT_COSINE_WEIGHT, K as FIXED_EXTERNAL_VALUE_56, Kt as FIXED_PROTOCOL_VALUE_69, Ln as EMBEDDER_MODEL_DEFAULT, Mn as DEFAULT_RERANK_MODEL, Mt as FIXED_MEMORY_PROVIDER_PROJECT_AGENTS, Nn as DEFAULT_RERANK_TIMEOUT_MS, Nt as FIXED_MEMORY_PROVIDER_PROJECT_MAPPINGS, O as MODEL_CALLS, On as DEFAULT_RECALL_LIFECYCLE, Or as ensureModelDownloaded, Ot as FIXED_MEMORY_MEMORIES_FACT_ID_UPDATE_GUARD, P as observeAgentId, Q as FIXED_IDX_MEMORY, Rn as EMBEDDER_PROVIDER_DEFAULT, Rt as FIXED_MEMORY_TASK_LIFECYCLE_COMMANDS, Sn as CHUNK_MIN_TOKENS, St as FIXED_MEMORY_CHUNKS_MEMORY_ID_IDX, T as readSettings, Tn as CHUNK_TOKENIZER_MODE, Tr as LOCAL_EMBEDDING_MODEL, Tt as FIXED_MEMORY_EXTRACTION_TIMESTAMPS, U as FIXED_EXTERNAL_VALUE_53, Un as HEAD_EXTRACT_OVERLAP_DROP_RATIO, V as FIXED_EXTERNAL_VALUE_51, W as FIXED_EXTERNAL_VALUE_54, Wn as HEAD_EXTRACT_TOKEN_BUDGET, X as FIXED_EXTERNAL_VALUE_8, Xn as LIGHTWEIGHT_RERANK_PENALTY, Y as FIXED_EXTERNAL_VALUE_62, Yn as LIGHTWEIGHT_FUSION_WEIGHT, Z as FIXED_EXTERNAL_VALUE_9, _t as FIXED_MEMORY_CHUNKS, a as REM_MODEL_OUTPUT_TOKEN_CAP, an as PERSISTED_PROVIDER_SYSTEM, ar as MMR_LAMBDA, at as FIXED_IDX_MEMORY_MEMORIES_LANE_PROJECT, bn as CHUNKING_VERSION$1, br as experimentCandidatePoolOverride, bt as FIXED_MEMORY_CHUNKS_AU, cn as SUPPORTED_LOCALES, ct as FIXED_IDX_MEMORY_MEMORIES_PROJECT_FACT_KEY_ACTIVE, d as getRemDiscoveryPath, dn as ADJACENCY_BONUS_PER_PAIR, dt as FIXED_MEMORY_ACTIVE_TASK_EVIDENCE, en as FIXED_VEC_MEMORY, er as MAX_CHUNK_FETCH_LIMIT, et as FIXED_IDX_MEMORY_ACTIVE_TASK_EVIDENCE_INSTANCE, fr as RERANK_BLEND_CROSS, ft as FIXED_MEMORY_ACTIVE_TASK_INSTANCES, g as readRemOperationalConfig, gr as TIME_DECAY_FLOOR, gt as FIXED_MEMORY_ACTIVE_TASK_TRANSITIONS, ht as FIXED_MEMORY_ACTIVE_TASK_REVISIONS, in as PERSISTED_CONTENT_HASH_V3, it as FIXED_IDX_MEMORY_MEMORIES_FACT_ID, jt as FIXED_MEMORY_PROVIDER_AGENT_MAPPINGS, k as MODEL_CALL_WORKLOAD, kt as FIXED_MEMORY_MIGRATION_MARKERS, lr as RECENCY_WEIGHT, lt as FIXED_IDX_MEMORY_MEMORIES_PROJECT_TIMESTAMP, mr as RETRIEVAL_STORAGE_CHUNK_PROFILE, mt as FIXED_MEMORY_ACTIVE_TASK_MIGRATION_MANIFESTS, nn as PERSISTED_CANDIDATE_HASH_V1, nt as FIXED_IDX_MEMORY_MEMORIES_CATEGORY, o as REM_RUN_PATH, or as MULTI_HIT_BONUS_CAP, ot as FIXED_IDX_MEMORY_MEMORIES_PROJECT, pr as RERANK_BLEND_VECTOR, pt as FIXED_MEMORY_ACTIVE_TASK_MIGRATION_EVIDENCE, q as FIXED_EXTERNAL_VALUE_57, qn as INTRA_MEMORY_COSINE_THRESHOLD, qt as FIXED_PROTOCOL_VALUE_73, r as REM_CORRELATION_ID_HEADER, rn as PERSISTED_CONTENT_HASH_V1, rt as FIXED_IDX_MEMORY_MEMORIES_CONTENT_HASH, s as REM_SIDECAR_HOST, sn as llmRoutingConfigSchema, sr as MULTI_HIT_BONUS_PER_HIT, st as FIXED_IDX_MEMORY_MEMORIES_PROJECT_CONTENT_HASH, tn as FIXED_VEC_MEMORY_CHUNKS, tr as MAX_LIST_LIMIT, tt as FIXED_IDX_MEMORY_ACTIVE_TASK_INSTANCES_PROJECTION, un as ADJACENCY_BONUS_CAP, ut as FIXED_MEMORY, vn as BONUS_TOTAL_INVARIANT, vt as FIXED_MEMORY_CHUNKS_AD, wn as CHUNK_TARGET_TOKENS, wr as LOCAL_EMBEDDING_CACHE_DIR_DEFAULT, wt as FIXED_MEMORY_CHUNKS_MEM_IDX, xn as CHUNK_MAX_TOKENS, xr as experimentMmrDisabled, xt as FIXED_MEMORY_CHUNKS_FTS, yn as CACHE_TTL_MS, yt as FIXED_MEMORY_CHUNKS_AI, zn as EVAL_QA_TRACES_FILENAME, zt as FIXED_MEMORY_UNPLACED_CANDIDATES } from "./config-D_KOwEyg.js";
2
2
  import { createLogger, createLogger as createLogger$1, currentLogContext, privateLogReference, withLogContext } from "@snoai/utils/logger";
3
3
  import path, { dirname, join, resolve } from "node:path";
4
4
  import { appendFileSync, closeSync, createReadStream, existsSync, fstatSync, fsyncSync, ftruncateSync, mkdirSync, openSync, readFileSync, readSync, realpathSync, renameSync, rmSync, statSync, writeFileSync, writeSync } from "node:fs";
@@ -171,10 +171,11 @@ async function forwardObserveLedgerUntilIdle(options) {
171
171
  const operations = new AsyncLocalStorage();
172
172
  const log$23 = createLogger("sno-station-mem:cancellation");
173
173
  /** Carries cancellation through the existing nested extraction and reflection writers. */
174
- async function withMemoryOperation(method, signal, run) {
174
+ async function withMemoryOperation(method, signal, run, deadlineMs) {
175
175
  const operation = {
176
176
  id: randomUUID(),
177
177
  signal,
178
+ deadlineMs,
178
179
  writes: 0,
179
180
  transactionDepth: 0
180
181
  };
@@ -201,6 +202,10 @@ async function withMemoryOperation(method, signal, run) {
201
202
  function memoryOperationId() {
202
203
  return operations.getStore()?.id;
203
204
  }
205
+ /** The owning operation's absolute performance.now() deadline, shared by all extraction calls. */
206
+ function memoryOperationDeadline() {
207
+ return operations.getStore()?.deadlineMs;
208
+ }
204
209
  function memoryOperationSignal(signal) {
205
210
  const request = operations.getStore()?.signal;
206
211
  if (!request) return signal;
@@ -7326,7 +7331,14 @@ function createLlmClient(config) {
7326
7331
  });
7327
7332
  let lastError = null;
7328
7333
  let lastUsage = null;
7329
- const resolveRequestTimeoutMs = (request) => request.timeoutMs ?? config.timeoutMs ?? 3e4;
7334
+ const resolveRequestTimeoutMs = (request) => {
7335
+ if (destinationFor(request) !== "sno-gpu" || !request.callId.startsWith("E") || MODEL_CALLS[request.callId].occasion !== "memoryExtract") return request.timeoutMs ?? config.timeoutMs ?? 3e4;
7336
+ const operationDeadline = memoryOperationDeadline();
7337
+ if (operationDeadline === void 0) return request.timeoutMs ?? 3e5;
7338
+ const remainingMs = operationDeadline - performance.now();
7339
+ if (remainingMs <= 0) throw new LlmClientTerminalError("timeout", "Memory operation deadline exhausted before extraction");
7340
+ return Math.min(request.timeoutMs ?? remainingMs, remainingMs);
7341
+ };
7330
7342
  const destinationFor = (request) => {
7331
7343
  if (!config.routing) return "host";
7332
7344
  const route = resolveLlmRoute({
@@ -7396,6 +7408,7 @@ function createLlmClient(config) {
7396
7408
  destination,
7397
7409
  transport
7398
7410
  });
7411
+ const hostTimeoutMs = resolveRequestTimeoutMs(request);
7399
7412
  const hostStarted = performance.now();
7400
7413
  const hostInFlight = ++hostRequestsInFlight;
7401
7414
  const result = await withLogContext({ attempt_id: randomUUID() }, async () => {
@@ -7406,7 +7419,7 @@ function createLlmClient(config) {
7406
7419
  prompt,
7407
7420
  maxTokens: request.maxTokens ?? 4096,
7408
7421
  ...request.enableThinking !== void 0 ? { enableThinking: request.enableThinking } : {},
7409
- timeoutMs: resolveRequestTimeoutMs(request),
7422
+ timeoutMs: hostTimeoutMs,
7410
7423
  ...request.signal ? { signal: request.signal } : {}
7411
7424
  });
7412
7425
  outcome = completion.kind;
@@ -7429,12 +7442,12 @@ function createLlmClient(config) {
7429
7442
  config_hash: createHash("sha256").update(JSON.stringify({
7430
7443
  transport,
7431
7444
  maxTokens: request.maxTokens ?? 4096,
7432
- timeoutMs: resolveRequestTimeoutMs(request)
7445
+ timeoutMs: hostTimeoutMs
7433
7446
  })).digest("hex"),
7434
7447
  output_cap: "unavailable",
7435
7448
  passed_output_cap: request.maxTokens ?? 4096,
7436
7449
  output_cap_reason: "host_may_strip_requested_cap",
7437
- timeout_ms: resolveRequestTimeoutMs(request),
7450
+ timeout_ms: hostTimeoutMs,
7438
7451
  sampling: { source: "unknown" },
7439
7452
  finish_reason: "unavailable",
7440
7453
  route: "agent-host-seam",
@@ -7759,7 +7772,8 @@ function createLlmClient(config) {
7759
7772
  signal: memoryOperationSignal(input.signal)
7760
7773
  });
7761
7774
  checkMemoryOperation();
7762
- const deadlineMs = performance.now() + resolveRequestTimeoutMs(request);
7775
+ request.timeoutMs = resolveRequestTimeoutMs(request);
7776
+ const deadlineMs = performance.now() + request.timeoutMs;
7763
7777
  try {
7764
7778
  let content = await requestContentWithHostFallback(state, request, JSON_SYSTEM_CONTENT, deadlineMs);
7765
7779
  if (content === null) return null;
@@ -7832,7 +7846,8 @@ function createLlmClient(config) {
7832
7846
  signal: memoryOperationSignal(input.signal)
7833
7847
  });
7834
7848
  checkMemoryOperation();
7835
- const deadlineMs = performance.now() + resolveRequestTimeoutMs(request);
7849
+ request.timeoutMs = resolveRequestTimeoutMs(request);
7850
+ const deadlineMs = performance.now() + request.timeoutMs;
7836
7851
  try {
7837
7852
  const text = (await requestContentWithHostFallback(state, request, textSystemContent(request), deadlineMs))?.raw.trim();
7838
7853
  return text && text.length > 0 ? text : null;
@@ -27478,7 +27493,10 @@ Object.assign(MemoryRetriever.prototype, {
27478
27493
  site_id: "retrieval.retriever-search-modes.precisionRecall.aaf0b2eb17"
27479
27494
  });
27480
27495
  trace?.startStage("rerank", fused.map((r) => r.entry.id));
27481
- const rerankOutcome = await this.rerank(context.query, fused, queryVector);
27496
+ const rerankOutcome = await this.rerank(context.query, fused, queryVector, {
27497
+ signal: context.signal,
27498
+ deadlineAt: context.rerankDeadlineAt
27499
+ });
27482
27500
  fused = rerankOutcome.candidates;
27483
27501
  this.throwIfAborted(context);
27484
27502
  const rerankStageMetadata = rerankOutcome.fallback ? {
@@ -27571,10 +27589,15 @@ function buildRerankHttpError(status) {
27571
27589
  }
27572
27590
  function buildRerankRequest(provider, apiKey, model, query, candidates, topN) {
27573
27591
  switch (provider) {
27574
- case "tei": return {
27592
+ case "tei":
27593
+ case "sno-gpu": return {
27575
27594
  headers: {
27576
27595
  "Content-Type": "application/json",
27577
- Authorization: `Bearer ${apiKey}`
27596
+ Authorization: `Bearer ${apiKey}`,
27597
+ ...provider === "sno-gpu" ? {
27598
+ "X-Sno-Source": "sno-station",
27599
+ "X-Sno-Workload": "station-rerank"
27600
+ } : {}
27578
27601
  },
27579
27602
  body: {
27580
27603
  query,
@@ -27662,7 +27685,8 @@ function parseRerankResponse(provider, data) {
27662
27685
  };
27663
27686
  const objectData = data && typeof data === "object" && !Array.isArray(data) ? data : void 0;
27664
27687
  switch (provider) {
27665
- case "tei": return parseItems(data, ["score", "relevance_score"]) ?? parseItems(objectData?.results, ["score", "relevance_score"]) ?? parseItems(objectData?.data, ["score", "relevance_score"]);
27688
+ case "tei":
27689
+ case "sno-gpu": return parseItems(data, ["score", "relevance_score"]) ?? parseItems(objectData?.results, ["score", "relevance_score"]) ?? parseItems(objectData?.data, ["score", "relevance_score"]);
27666
27690
  case "dashscope": {
27667
27691
  const output = objectData?.output;
27668
27692
  if (output) return parseItems(output.results, ["relevance_score", "score"]);
@@ -27734,7 +27758,7 @@ function isTransientRerankError(error) {
27734
27758
  if (isRerankTimeout(error)) return true;
27735
27759
  return error instanceof TypeError && error.cause !== void 0;
27736
27760
  }
27737
- async function fetchRerankWithRetry(send) {
27761
+ async function fetchRerankWithRetry(send, stop) {
27738
27762
  let lastError;
27739
27763
  for (let attempt = 1; attempt <= RERANK_TRANSIENT_ATTEMPTS; attempt += 1) {
27740
27764
  let retryDelayMs = RERANK_TRANSIENT_BACKOFF_MS * attempt;
@@ -27752,18 +27776,31 @@ async function fetchRerankWithRetry(send) {
27752
27776
  await response.body?.cancel();
27753
27777
  lastError = /* @__PURE__ */ new Error(`rerank API responded ${response.status}`);
27754
27778
  } catch (error) {
27755
- if (!isTransientRerankError(error) || attempt === RERANK_TRANSIENT_ATTEMPTS) throw error;
27779
+ if (!isTransientRerankError(error) || attempt === RERANK_TRANSIENT_ATTEMPTS || stop?.aborted) throw error;
27756
27780
  lastError = error;
27757
27781
  }
27758
- await new Promise((resolve) => setTimeout(resolve, retryDelayMs));
27782
+ if (stop?.aborted) throw lastError;
27783
+ await new Promise((resolve) => {
27784
+ const onAbort = () => {
27785
+ clearTimeout(timer);
27786
+ resolve();
27787
+ };
27788
+ const timer = setTimeout(() => {
27789
+ stop?.removeEventListener("abort", onAbort);
27790
+ resolve();
27791
+ }, retryDelayMs);
27792
+ stop?.addEventListener("abort", onAbort, { once: true });
27793
+ });
27794
+ if (stop?.aborted) throw lastError;
27759
27795
  }
27760
27796
  throw lastError;
27761
27797
  }
27762
27798
  Object.assign(MemoryRetriever.prototype, {
27763
- async rerank(query, candidates, queryVector) {
27799
+ async rerank(query, candidates, queryVector, options) {
27764
27800
  if (candidates.length === 0) return { candidates };
27765
27801
  if (this.config.rerank === "none") return { candidates };
27766
27802
  const provider = this.config.rerankProvider ?? "none";
27803
+ const unranked = () => provider === "sno-gpu" ? this.rerankLightweight(candidates, queryVector) : candidates;
27767
27804
  if (this.config.rerank === "cross-encoder" && !this.config.rerankApiKey) throw new RetrievalError(`rerank "cross-encoder" requires retrieval.rerankApiKey (provider: ${provider}); set the key, or set retrieval.rerank to "lightweight" to choose the local ranker`);
27768
27805
  if (this.config.rerank === "lightweight" || !this.config.rerankApiKey) return { candidates: this.rerankLightweight(candidates, queryVector) };
27769
27806
  const rerankEndpoint = this.config.rerankEndpoint ?? RERANK_DEFAULT_ENDPOINTS[provider];
@@ -27775,7 +27812,7 @@ Object.assign(MemoryRetriever.prototype, {
27775
27812
  site_id: "retrieval.retriever-rerank.rerank.6fbc6b3a22"
27776
27813
  });
27777
27814
  return {
27778
- candidates,
27815
+ candidates: unranked(),
27779
27816
  fallback: {
27780
27817
  reason: "no_endpoint",
27781
27818
  provider
@@ -27783,6 +27820,8 @@ Object.assign(MemoryRetriever.prototype, {
27783
27820
  };
27784
27821
  }
27785
27822
  const rerankTimeoutMs = this.config.rerankTimeoutMs ?? 15e3;
27823
+ const stepEnds = [options?.signal, provider === "sno-gpu" ? AbortSignal.timeout(Math.max(0, Math.floor(options?.deadlineAt === void 0 ? rerankTimeoutMs : options.deadlineAt - Date.now()))) : void 0].filter((each) => each !== void 0);
27824
+ const stepStop = stepEnds.length > 0 ? AbortSignal.any(stepEnds) : void 0;
27786
27825
  const rerankApiKey = this.config.rerankApiKey;
27787
27826
  const maxCandidates = this.config.rerankMaxCandidates;
27788
27827
  const overCap = maxCandidates !== void 0 && candidates.length > maxCandidates;
@@ -27803,7 +27842,7 @@ Object.assign(MemoryRetriever.prototype, {
27803
27842
  site_id: "retrieval.retriever-rerank.rerank.query_over_window"
27804
27843
  });
27805
27844
  return {
27806
- candidates,
27845
+ candidates: unranked(),
27807
27846
  fallback: {
27808
27847
  reason: "query_over_window",
27809
27848
  provider
@@ -27833,14 +27872,17 @@ Object.assign(MemoryRetriever.prototype, {
27833
27872
  const { headers, body } = buildRerankRequest(provider, rerankApiKey, this.config.rerankModel ?? "rerank-2", query, batchTexts, batchTexts.length);
27834
27873
  const { response, data } = await fetchRerankWithRetry(() => fetch(rerankEndpoint, {
27835
27874
  method: "POST",
27836
- headers,
27875
+ headers: provider === "sno-gpu" ? {
27876
+ ...headers,
27877
+ "X-Request-ID": randomUUID()
27878
+ } : headers,
27837
27879
  body: JSON.stringify(body),
27838
- signal: AbortSignal.timeout(rerankTimeoutMs)
27839
- }));
27880
+ signal: stepStop ? AbortSignal.any([AbortSignal.timeout(rerankTimeoutMs), stepStop]) : AbortSignal.timeout(rerankTimeoutMs)
27881
+ }), stepStop);
27840
27882
  if (!response.ok) {
27841
27883
  const retryAfter = response.headers.get("retry-after");
27842
27884
  const fatalError = buildRerankHttpError(response.status);
27843
- if (fatalError) throw fatalError;
27885
+ if (fatalError && provider !== "sno-gpu") throw fatalError;
27844
27886
  const errorBody = await response.text().catch(() => "<unreadable body>");
27845
27887
  const refusal = pass === 0 ? parseOverWindowRefusal(errorBody) : void 0;
27846
27888
  if (refusal) {
@@ -27916,7 +27958,7 @@ Object.assign(MemoryRetriever.prototype, {
27916
27958
  for (const outcome of settled) if (outcome.status === "rejected" && outcome.reason instanceof RetrievalError) throw outcome.reason;
27917
27959
  for (const outcome of settled) if (outcome.status === "rejected") throw outcome.reason;
27918
27960
  for (const outcome of settled) if (outcome.status === "fulfilled" && typeof outcome.value === "string") return {
27919
- candidates,
27961
+ candidates: unranked(),
27920
27962
  fallback: {
27921
27963
  reason: outcome.value,
27922
27964
  provider
@@ -27936,7 +27978,7 @@ Object.assign(MemoryRetriever.prototype, {
27936
27978
  if (!candidate) continue;
27937
27979
  const sourceScore = this.getRerankSourceScore(candidate);
27938
27980
  let crossScore = item.score;
27939
- if (provider === "tei") crossScore = 1 / (1 + Math.exp(-item.score));
27981
+ if (provider === "tei" || provider === "sno-gpu") crossScore = 1 / (1 + Math.exp(-item.score));
27940
27982
  const blendedScore = clamp01(crossScore * blendCross + sourceScore * blendVector, 0);
27941
27983
  reranked.push({
27942
27984
  ...candidate,
@@ -27998,7 +28040,7 @@ Object.assign(MemoryRetriever.prototype, {
27998
28040
  });
27999
28041
  }
28000
28042
  return {
28001
- candidates,
28043
+ candidates: unranked(),
28002
28044
  fallback: {
28003
28045
  reason,
28004
28046
  provider