@memnexus-ai/typescript-sdk 1.76.8 → 1.77.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -4045,6 +4045,21 @@ declare const searchRequest: z.ZodObject<{
4045
4045
  defensiveServing?: boolean | undefined;
4046
4046
  assistantClaimsServing?: boolean | undefined;
4047
4047
  }>;
4048
+ /**
4049
+ * Present ONLY when at least one of this result's claims sits in a claim group whose conflict check did not complete (v2.91). Conflict detection scores ALIGNS_WITH claim pairs with an LLM judge on the search path; that scoring can be skipped because the judge was unavailable, the per-request pair cap was reached, the wall-clock budget expired, or a judge response failed to parse. When this field is present, the absence of a conflict marker in this result's summary_facts means NO CONFLICT WAS DEMONSTRATED — not that none exists. Cross-reference groupIds against claim_groups[].id for the group's conflict_status. ABSENT (not false, not an empty object) when every sampled pair covering this result was scored — a fully-scored response gains no new field. This field is emitted by the search responses that implement it; its absence on any other endpoint carries no assurance that conflict scoring completed there.
4050
+ */
4051
+ declare const conflictScoringIncomplete: z.ZodObject<{
4052
+ /** Ids of the claim groups covering this result whose conflict scoring did not complete. Each matches a claim_groups[].id in the same response, where conflict_status is 'partial' (some sampled pairs unscored) or 'unknown' (none scored). Never empty when this object is present. */
4053
+ groupIds: z.ZodArray<z.ZodString, "many">;
4054
+ /** Distinct ALIGNS_WITH claim pairs left unscored, summed across groupIds. Present only when > 0. Counted over the SAMPLED neighbor set (up to the top 20 edges per claim by embedding similarity), so it is a lower bound on unevaluated relationships, not a total. Absent when the group carries no count, which does not mean zero. */
4055
+ unscoredPairs: z.ZodOptional<z.ZodNumber>;
4056
+ }, "strip", z.ZodTypeAny, {
4057
+ groupIds: string[];
4058
+ unscoredPairs?: number | undefined;
4059
+ }, {
4060
+ groupIds: string[];
4061
+ unscoredPairs?: number | undefined;
4062
+ }>;
4048
4063
  declare const entity: z.ZodObject<{
4049
4064
  /** Entity name */
4050
4065
  name: z.ZodOptional<z.ZodString>;
@@ -4086,6 +4101,19 @@ declare const searchResult: z.ZodLazy<z.ZodObject<{
4086
4101
  effectiveState: z.ZodOptional<z.ZodString>;
4087
4102
  /** Human-readable caveat present ONLY on results with effectiveState='superseded' (v2.76, #4611). Supersession is session-granular: a memory is marked superseded when ANY fact in it was later updated, so most of its facts are typically still accurate. This notice says the session was partially updated; individual outdated lines in summary_facts are marked [SUPERSEDED] with the newer value quoted inline. Additive and optional — absent on current results, and absent entirely unless SUPERSEDED_RETRIEVAL_MODE='demote'. */
4088
4103
  supersessionNotice: z.ZodOptional<z.ZodString>;
4104
+ /** Present ONLY when at least one of this result's claims sits in a claim group whose conflict check did not complete (v2.91). Conflict detection scores ALIGNS_WITH claim pairs with an LLM judge on the search path; that scoring can be skipped because the judge was unavailable, the per-request pair cap was reached, the wall-clock budget expired, or a judge response failed to parse. When this field is present, the absence of a conflict marker in this result's summary_facts means NO CONFLICT WAS DEMONSTRATED — not that none exists. Cross-reference groupIds against claim_groups[].id for the group's conflict_status. ABSENT (not false, not an empty object) when every sampled pair covering this result was scored — a fully-scored response gains no new field. This field is emitted by the search responses that implement it; its absence on any other endpoint carries no assurance that conflict scoring completed there. */
4105
+ conflictScoringIncomplete: z.ZodOptional<z.ZodObject<{
4106
+ /** Ids of the claim groups covering this result whose conflict scoring did not complete. Each matches a claim_groups[].id in the same response, where conflict_status is 'partial' (some sampled pairs unscored) or 'unknown' (none scored). Never empty when this object is present. */
4107
+ groupIds: z.ZodArray<z.ZodString, "many">;
4108
+ /** Distinct ALIGNS_WITH claim pairs left unscored, summed across groupIds. Present only when > 0. Counted over the SAMPLED neighbor set (up to the top 20 edges per claim by embedding similarity), so it is a lower bound on unevaluated relationships, not a total. Absent when the group carries no count, which does not mean zero. */
4109
+ unscoredPairs: z.ZodOptional<z.ZodNumber>;
4110
+ }, "strip", z.ZodTypeAny, {
4111
+ groupIds: string[];
4112
+ unscoredPairs?: number | undefined;
4113
+ }, {
4114
+ groupIds: string[];
4115
+ unscoredPairs?: number | undefined;
4116
+ }>>;
4089
4117
  /** Confidence score (0-1) */
4090
4118
  confidenceScore: z.ZodOptional<z.ZodNumber>;
4091
4119
  /** Overall relevance score for this result */
@@ -4188,6 +4216,10 @@ declare const searchResult: z.ZodLazy<z.ZodObject<{
4188
4216
  confidence?: number | undefined;
4189
4217
  }[] | undefined;
4190
4218
  supersessionNotice?: string | undefined;
4219
+ conflictScoringIncomplete?: {
4220
+ groupIds: string[];
4221
+ unscoredPairs?: number | undefined;
4222
+ } | undefined;
4191
4223
  hybridScore?: number | null | undefined;
4192
4224
  vectorScore?: number | undefined;
4193
4225
  vectorRank?: number | null | undefined;
@@ -4229,6 +4261,10 @@ declare const searchResult: z.ZodLazy<z.ZodObject<{
4229
4261
  confidence?: number | undefined;
4230
4262
  }[] | undefined;
4231
4263
  supersessionNotice?: string | undefined;
4264
+ conflictScoringIncomplete?: {
4265
+ groupIds: string[];
4266
+ unscoredPairs?: number | undefined;
4267
+ } | undefined;
4232
4268
  hybridScore?: number | null | undefined;
4233
4269
  vectorScore?: number | undefined;
4234
4270
  vectorRank?: number | null | undefined;
@@ -4358,6 +4394,10 @@ declare const searchMeta: z.ZodLazy<z.ZodObject<{
4358
4394
  name: string;
4359
4395
  reason: "unknown" | "timeout" | "connection" | "query_error" | "provider_error";
4360
4396
  }>, "many">>;
4397
+ /** True when the fulltext-anchor gate discarded a non-empty candidate set for this query, so this page does NOT include everything the search found. Combine with total: total=0 alongside this flag means the empty result is an artefact of the gate, not a statement that no matching memory exists, and a larger limit may return results. DISTINCT from degraded, which is false here because every search branch succeeded. ABSENT (not false) when the gate suppressed nothing — an unsuppressed response gains no new fields. This field is emitted by the search and digest responses that implement it; its absence on any other endpoint carries no assurance that nothing was suppressed there. */
4398
+ anchorGateSuppressed: z.ZodOptional<z.ZodBoolean>;
4399
+ /** How many fused candidates the fulltext-anchor gate discarded, summed across every hybrid search whose health this request captured; reformulation searches issued under `rewrite=true` are NOT included, so on such a request this count can under-report, and both fields can be absent entirely even though the gate did suppress. Present only alongside anchorGateSuppressed, and always > 0 when present. Treat it as an UPPER BOUND on what a larger limit could recover, not as a count of retrievable rows: the gate runs before the superseded/duplicate exclusion, so discarded candidates can include duplicate-state rows that are never served at any limit and superseded rows that are served only when the caller asks for them. This field is emitted by the search and digest responses that implement it; its absence on any other endpoint carries no assurance that nothing was suppressed there. */
4400
+ anchorGateDiscardedCount: z.ZodOptional<z.ZodNumber>;
4361
4401
  /** Temporal query metadata (present when temporal filters are used) */
4362
4402
  temporalMetadata: z.ZodOptional<z.ZodObject<{
4363
4403
  /** Temporal query mode used */
@@ -4433,6 +4473,8 @@ declare const searchMeta: z.ZodLazy<z.ZodObject<{
4433
4473
  name: string;
4434
4474
  reason: "unknown" | "timeout" | "connection" | "query_error" | "provider_error";
4435
4475
  }[] | undefined;
4476
+ anchorGateSuppressed?: boolean | undefined;
4477
+ anchorGateDiscardedCount?: number | undefined;
4436
4478
  temporalMetadata?: {
4437
4479
  asOfTime: string | null;
4438
4480
  validAtTime: string | null;
@@ -4460,6 +4502,8 @@ declare const searchMeta: z.ZodLazy<z.ZodObject<{
4460
4502
  name: string;
4461
4503
  reason: "unknown" | "timeout" | "connection" | "query_error" | "provider_error";
4462
4504
  }[] | undefined;
4505
+ anchorGateSuppressed?: boolean | undefined;
4506
+ anchorGateDiscardedCount?: number | undefined;
4463
4507
  temporalMetadata?: {
4464
4508
  asOfTime: string | null;
4465
4509
  validAtTime: string | null;
@@ -4588,13 +4632,13 @@ declare const claimGroupClaim: z.ZodObject<{
4588
4632
  declare const claimGroupSignals: z.ZodObject<{
4589
4633
  /** Number of claims in this group */
4590
4634
  n_claims: z.ZodNumber;
4591
- /** Minimum LLM-judged alignment score among all pairs in the group (0=conflict, 1=corroborate) */
4635
+ /** Minimum LLM-judged alignment score among the SCORED pairs in the group (0=conflict, 1=corroborate). When conflict_status is 'unknown' no pair was scored and this is the placeholder 1.0 — read it as 'no evidence', NOT as measured corroboration; when conflict_status is 'partial' it is a minimum over the scored subset only. */
4592
4636
  alignment_min: z.ZodNumber;
4593
4637
  /** Days between earliest and latest claim in the group */
4594
4638
  temporal_spread_days: z.ZodNumber;
4595
- /** True if alignment_min < 0.85, indicating potential conflict */
4639
+ /** True if alignment_min < 0.85, indicating potential conflict. Like has_conflict, FALSE IS NOT A CLEAN BILL OF HEALTH unless conflict_status is 'conflict': this is derived from alignment_min, which is the 1.0 placeholder on an 'unknown' group (no pair was scored) and a minimum over the scored subset only on a 'partial' group — so on those groups false means no low-alignment pair was demonstrated among the pairs actually scored, which on an 'unknown' group is none of them. Results covered by such a group carry conflictScoringIncomplete. */
4596
4640
  has_low_alignment_pair: z.ZodBoolean;
4597
- /** True if alignment_min < 0.4 — claims directly conflict or one supersedes the other */
4641
+ /** True if alignment_min < 0.4 — claims directly conflict or one supersedes the other. FALSE IS NOT A CLEAN BILL OF HEALTH unless conflict_status is 'conflict': on a 'partial' or 'unknown' group it means no conflict was demonstrated among the pairs that were actually scored, which on an 'unknown' group is none of them. Results covered by such a group carry conflictScoringIncomplete. */
4598
4642
  has_conflict: z.ZodBoolean;
4599
4643
  /** True if temporal_spread_days > 30 */
4600
4644
  has_temporal_spread: z.ZodBoolean;
@@ -4643,17 +4687,19 @@ declare const claimGroup: z.ZodLazy<z.ZodObject<{
4643
4687
  }>, "many">;
4644
4688
  /** Scoring completeness of the SAMPLED neighbor set (up to the top 20 ALIGNS_WITH edges per claim, by embedding similarity — edges beyond that sample are not evaluated): 'conflict' = all sampled edges scored and a conflict was detected, 'partial' = some sampled edges unscored, 'unknown' = all sampled edges unscored */
4645
4689
  conflict_status: z.ZodEnum<["conflict", "partial", "unknown"]>;
4690
+ /** How many distinct sampled ALIGNS_WITH pairs in this group were left unscored — the alignment judge was unavailable, the per-request pair cap was reached, the wall-clock scoring budget expired, or a judge response failed to parse. Present only when > 0, i.e. exactly when conflict_status is 'partial' or 'unknown'; ABSENT on a fully-scored group, which gains no new field. Counted over the sampled neighbor set only, so it is a lower bound on unevaluated relationships. This field is emitted by the search responses that implement it; its absence on any other endpoint carries no assurance that scoring completed there. */
4691
+ unscored_pair_count: z.ZodOptional<z.ZodNumber>;
4646
4692
  /** Computed signals about the claim cluster */
4647
4693
  signals: z.ZodObject<{
4648
4694
  /** Number of claims in this group */
4649
4695
  n_claims: z.ZodNumber;
4650
- /** Minimum LLM-judged alignment score among all pairs in the group (0=conflict, 1=corroborate) */
4696
+ /** Minimum LLM-judged alignment score among the SCORED pairs in the group (0=conflict, 1=corroborate). When conflict_status is 'unknown' no pair was scored and this is the placeholder 1.0 — read it as 'no evidence', NOT as measured corroboration; when conflict_status is 'partial' it is a minimum over the scored subset only. */
4651
4697
  alignment_min: z.ZodNumber;
4652
4698
  /** Days between earliest and latest claim in the group */
4653
4699
  temporal_spread_days: z.ZodNumber;
4654
- /** True if alignment_min < 0.85, indicating potential conflict */
4700
+ /** True if alignment_min < 0.85, indicating potential conflict. Like has_conflict, FALSE IS NOT A CLEAN BILL OF HEALTH unless conflict_status is 'conflict': this is derived from alignment_min, which is the 1.0 placeholder on an 'unknown' group (no pair was scored) and a minimum over the scored subset only on a 'partial' group — so on those groups false means no low-alignment pair was demonstrated among the pairs actually scored, which on an 'unknown' group is none of them. Results covered by such a group carry conflictScoringIncomplete. */
4655
4701
  has_low_alignment_pair: z.ZodBoolean;
4656
- /** True if alignment_min < 0.4 — claims directly conflict or one supersedes the other */
4702
+ /** True if alignment_min < 0.4 — claims directly conflict or one supersedes the other. FALSE IS NOT A CLEAN BILL OF HEALTH unless conflict_status is 'conflict': on a 'partial' or 'unknown' group it means no conflict was demonstrated among the pairs that were actually scored, which on an 'unknown' group is none of them. Results covered by such a group carry conflictScoringIncomplete. */
4657
4703
  has_conflict: z.ZodBoolean;
4658
4704
  /** True if temporal_spread_days > 30 */
4659
4705
  has_temporal_spread: z.ZodBoolean;
@@ -4690,6 +4736,7 @@ declare const claimGroup: z.ZodLazy<z.ZodObject<{
4690
4736
  has_conflict: boolean;
4691
4737
  has_temporal_spread: boolean;
4692
4738
  };
4739
+ unscored_pair_count?: number | undefined;
4693
4740
  }, {
4694
4741
  id: string;
4695
4742
  claims: {
@@ -4708,6 +4755,7 @@ declare const claimGroup: z.ZodLazy<z.ZodObject<{
4708
4755
  has_conflict: boolean;
4709
4756
  has_temporal_spread: boolean;
4710
4757
  };
4758
+ unscored_pair_count?: number | undefined;
4711
4759
  }>>;
4712
4760
  declare const searchResponse: z.ZodLazy<z.ZodObject<{
4713
4761
  /** Flattened search results with memory fields and search metadata. Length is normally ≤ the request `limit`; when the v2.33 consensus-exemption feature is enabled it may be up to limit + CONSENSUS_EXEMPTION_MAX_PINS (appended dual-primary-consensus documents). */
@@ -4740,6 +4788,19 @@ declare const searchResponse: z.ZodLazy<z.ZodObject<{
4740
4788
  effectiveState: z.ZodOptional<z.ZodString>;
4741
4789
  /** Human-readable caveat present ONLY on results with effectiveState='superseded' (v2.76, #4611). Supersession is session-granular: a memory is marked superseded when ANY fact in it was later updated, so most of its facts are typically still accurate. This notice says the session was partially updated; individual outdated lines in summary_facts are marked [SUPERSEDED] with the newer value quoted inline. Additive and optional — absent on current results, and absent entirely unless SUPERSEDED_RETRIEVAL_MODE='demote'. */
4742
4790
  supersessionNotice: z.ZodOptional<z.ZodString>;
4791
+ /** Present ONLY when at least one of this result's claims sits in a claim group whose conflict check did not complete (v2.91). Conflict detection scores ALIGNS_WITH claim pairs with an LLM judge on the search path; that scoring can be skipped because the judge was unavailable, the per-request pair cap was reached, the wall-clock budget expired, or a judge response failed to parse. When this field is present, the absence of a conflict marker in this result's summary_facts means NO CONFLICT WAS DEMONSTRATED — not that none exists. Cross-reference groupIds against claim_groups[].id for the group's conflict_status. ABSENT (not false, not an empty object) when every sampled pair covering this result was scored — a fully-scored response gains no new field. This field is emitted by the search responses that implement it; its absence on any other endpoint carries no assurance that conflict scoring completed there. */
4792
+ conflictScoringIncomplete: z.ZodOptional<z.ZodObject<{
4793
+ /** Ids of the claim groups covering this result whose conflict scoring did not complete. Each matches a claim_groups[].id in the same response, where conflict_status is 'partial' (some sampled pairs unscored) or 'unknown' (none scored). Never empty when this object is present. */
4794
+ groupIds: z.ZodArray<z.ZodString, "many">;
4795
+ /** Distinct ALIGNS_WITH claim pairs left unscored, summed across groupIds. Present only when > 0. Counted over the SAMPLED neighbor set (up to the top 20 edges per claim by embedding similarity), so it is a lower bound on unevaluated relationships, not a total. Absent when the group carries no count, which does not mean zero. */
4796
+ unscoredPairs: z.ZodOptional<z.ZodNumber>;
4797
+ }, "strip", z.ZodTypeAny, {
4798
+ groupIds: string[];
4799
+ unscoredPairs?: number | undefined;
4800
+ }, {
4801
+ groupIds: string[];
4802
+ unscoredPairs?: number | undefined;
4803
+ }>>;
4743
4804
  /** Confidence score (0-1) */
4744
4805
  confidenceScore: z.ZodOptional<z.ZodNumber>;
4745
4806
  /** Overall relevance score for this result */
@@ -4842,6 +4903,10 @@ declare const searchResponse: z.ZodLazy<z.ZodObject<{
4842
4903
  confidence?: number | undefined;
4843
4904
  }[] | undefined;
4844
4905
  supersessionNotice?: string | undefined;
4906
+ conflictScoringIncomplete?: {
4907
+ groupIds: string[];
4908
+ unscoredPairs?: number | undefined;
4909
+ } | undefined;
4845
4910
  hybridScore?: number | null | undefined;
4846
4911
  vectorScore?: number | undefined;
4847
4912
  vectorRank?: number | null | undefined;
@@ -4883,6 +4948,10 @@ declare const searchResponse: z.ZodLazy<z.ZodObject<{
4883
4948
  confidence?: number | undefined;
4884
4949
  }[] | undefined;
4885
4950
  supersessionNotice?: string | undefined;
4951
+ conflictScoringIncomplete?: {
4952
+ groupIds: string[];
4953
+ unscoredPairs?: number | undefined;
4954
+ } | undefined;
4886
4955
  hybridScore?: number | null | undefined;
4887
4956
  vectorScore?: number | undefined;
4888
4957
  vectorRank?: number | null | undefined;
@@ -4929,6 +4998,10 @@ declare const searchResponse: z.ZodLazy<z.ZodObject<{
4929
4998
  name: string;
4930
4999
  reason: "unknown" | "timeout" | "connection" | "query_error" | "provider_error";
4931
5000
  }>, "many">>;
5001
+ /** True when the fulltext-anchor gate discarded a non-empty candidate set for this query, so this page does NOT include everything the search found. Combine with total: total=0 alongside this flag means the empty result is an artefact of the gate, not a statement that no matching memory exists, and a larger limit may return results. DISTINCT from degraded, which is false here because every search branch succeeded. ABSENT (not false) when the gate suppressed nothing — an unsuppressed response gains no new fields. This field is emitted by the search and digest responses that implement it; its absence on any other endpoint carries no assurance that nothing was suppressed there. */
5002
+ anchorGateSuppressed: z.ZodOptional<z.ZodBoolean>;
5003
+ /** How many fused candidates the fulltext-anchor gate discarded, summed across every hybrid search whose health this request captured; reformulation searches issued under `rewrite=true` are NOT included, so on such a request this count can under-report, and both fields can be absent entirely even though the gate did suppress. Present only alongside anchorGateSuppressed, and always > 0 when present. Treat it as an UPPER BOUND on what a larger limit could recover, not as a count of retrievable rows: the gate runs before the superseded/duplicate exclusion, so discarded candidates can include duplicate-state rows that are never served at any limit and superseded rows that are served only when the caller asks for them. This field is emitted by the search and digest responses that implement it; its absence on any other endpoint carries no assurance that nothing was suppressed there. */
5004
+ anchorGateDiscardedCount: z.ZodOptional<z.ZodNumber>;
4932
5005
  /** Temporal query metadata (present when temporal filters are used) */
4933
5006
  temporalMetadata: z.ZodOptional<z.ZodObject<{
4934
5007
  /** Temporal query mode used */
@@ -5004,6 +5077,8 @@ declare const searchResponse: z.ZodLazy<z.ZodObject<{
5004
5077
  name: string;
5005
5078
  reason: "unknown" | "timeout" | "connection" | "query_error" | "provider_error";
5006
5079
  }[] | undefined;
5080
+ anchorGateSuppressed?: boolean | undefined;
5081
+ anchorGateDiscardedCount?: number | undefined;
5007
5082
  temporalMetadata?: {
5008
5083
  asOfTime: string | null;
5009
5084
  validAtTime: string | null;
@@ -5031,6 +5106,8 @@ declare const searchResponse: z.ZodLazy<z.ZodObject<{
5031
5106
  name: string;
5032
5107
  reason: "unknown" | "timeout" | "connection" | "query_error" | "provider_error";
5033
5108
  }[] | undefined;
5109
+ anchorGateSuppressed?: boolean | undefined;
5110
+ anchorGateDiscardedCount?: number | undefined;
5034
5111
  temporalMetadata?: {
5035
5112
  asOfTime: string | null;
5036
5113
  validAtTime: string | null;
@@ -5148,17 +5225,19 @@ declare const searchResponse: z.ZodLazy<z.ZodObject<{
5148
5225
  }>, "many">;
5149
5226
  /** Scoring completeness of the SAMPLED neighbor set (up to the top 20 ALIGNS_WITH edges per claim, by embedding similarity — edges beyond that sample are not evaluated): 'conflict' = all sampled edges scored and a conflict was detected, 'partial' = some sampled edges unscored, 'unknown' = all sampled edges unscored */
5150
5227
  conflict_status: z.ZodEnum<["conflict", "partial", "unknown"]>;
5228
+ /** How many distinct sampled ALIGNS_WITH pairs in this group were left unscored — the alignment judge was unavailable, the per-request pair cap was reached, the wall-clock scoring budget expired, or a judge response failed to parse. Present only when > 0, i.e. exactly when conflict_status is 'partial' or 'unknown'; ABSENT on a fully-scored group, which gains no new field. Counted over the sampled neighbor set only, so it is a lower bound on unevaluated relationships. This field is emitted by the search responses that implement it; its absence on any other endpoint carries no assurance that scoring completed there. */
5229
+ unscored_pair_count: z.ZodOptional<z.ZodNumber>;
5151
5230
  /** Computed signals about the claim cluster */
5152
5231
  signals: z.ZodObject<{
5153
5232
  /** Number of claims in this group */
5154
5233
  n_claims: z.ZodNumber;
5155
- /** Minimum LLM-judged alignment score among all pairs in the group (0=conflict, 1=corroborate) */
5234
+ /** Minimum LLM-judged alignment score among the SCORED pairs in the group (0=conflict, 1=corroborate). When conflict_status is 'unknown' no pair was scored and this is the placeholder 1.0 — read it as 'no evidence', NOT as measured corroboration; when conflict_status is 'partial' it is a minimum over the scored subset only. */
5156
5235
  alignment_min: z.ZodNumber;
5157
5236
  /** Days between earliest and latest claim in the group */
5158
5237
  temporal_spread_days: z.ZodNumber;
5159
- /** True if alignment_min < 0.85, indicating potential conflict */
5238
+ /** True if alignment_min < 0.85, indicating potential conflict. Like has_conflict, FALSE IS NOT A CLEAN BILL OF HEALTH unless conflict_status is 'conflict': this is derived from alignment_min, which is the 1.0 placeholder on an 'unknown' group (no pair was scored) and a minimum over the scored subset only on a 'partial' group — so on those groups false means no low-alignment pair was demonstrated among the pairs actually scored, which on an 'unknown' group is none of them. Results covered by such a group carry conflictScoringIncomplete. */
5160
5239
  has_low_alignment_pair: z.ZodBoolean;
5161
- /** True if alignment_min < 0.4 — claims directly conflict or one supersedes the other */
5240
+ /** True if alignment_min < 0.4 — claims directly conflict or one supersedes the other. FALSE IS NOT A CLEAN BILL OF HEALTH unless conflict_status is 'conflict': on a 'partial' or 'unknown' group it means no conflict was demonstrated among the pairs that were actually scored, which on an 'unknown' group is none of them. Results covered by such a group carry conflictScoringIncomplete. */
5162
5241
  has_conflict: z.ZodBoolean;
5163
5242
  /** True if temporal_spread_days > 30 */
5164
5243
  has_temporal_spread: z.ZodBoolean;
@@ -5195,6 +5274,7 @@ declare const searchResponse: z.ZodLazy<z.ZodObject<{
5195
5274
  has_conflict: boolean;
5196
5275
  has_temporal_spread: boolean;
5197
5276
  };
5277
+ unscored_pair_count?: number | undefined;
5198
5278
  }, {
5199
5279
  id: string;
5200
5280
  claims: {
@@ -5213,6 +5293,7 @@ declare const searchResponse: z.ZodLazy<z.ZodObject<{
5213
5293
  has_conflict: boolean;
5214
5294
  has_temporal_spread: boolean;
5215
5295
  };
5296
+ unscored_pair_count?: number | undefined;
5216
5297
  }>>, "many">>;
5217
5298
  }, "strip", z.ZodTypeAny, {
5218
5299
  data: {
@@ -5242,6 +5323,10 @@ declare const searchResponse: z.ZodLazy<z.ZodObject<{
5242
5323
  confidence?: number | undefined;
5243
5324
  }[] | undefined;
5244
5325
  supersessionNotice?: string | undefined;
5326
+ conflictScoringIncomplete?: {
5327
+ groupIds: string[];
5328
+ unscoredPairs?: number | undefined;
5329
+ } | undefined;
5245
5330
  hybridScore?: number | null | undefined;
5246
5331
  vectorScore?: number | undefined;
5247
5332
  vectorRank?: number | null | undefined;
@@ -5269,6 +5354,8 @@ declare const searchResponse: z.ZodLazy<z.ZodObject<{
5269
5354
  name: string;
5270
5355
  reason: "unknown" | "timeout" | "connection" | "query_error" | "provider_error";
5271
5356
  }[] | undefined;
5357
+ anchorGateSuppressed?: boolean | undefined;
5358
+ anchorGateDiscardedCount?: number | undefined;
5272
5359
  temporalMetadata?: {
5273
5360
  asOfTime: string | null;
5274
5361
  validAtTime: string | null;
@@ -5318,6 +5405,7 @@ declare const searchResponse: z.ZodLazy<z.ZodObject<{
5318
5405
  has_conflict: boolean;
5319
5406
  has_temporal_spread: boolean;
5320
5407
  };
5408
+ unscored_pair_count?: number | undefined;
5321
5409
  }[] | undefined;
5322
5410
  }, {
5323
5411
  data: {
@@ -5347,6 +5435,10 @@ declare const searchResponse: z.ZodLazy<z.ZodObject<{
5347
5435
  confidence?: number | undefined;
5348
5436
  }[] | undefined;
5349
5437
  supersessionNotice?: string | undefined;
5438
+ conflictScoringIncomplete?: {
5439
+ groupIds: string[];
5440
+ unscoredPairs?: number | undefined;
5441
+ } | undefined;
5350
5442
  hybridScore?: number | null | undefined;
5351
5443
  vectorScore?: number | undefined;
5352
5444
  vectorRank?: number | null | undefined;
@@ -5374,6 +5466,8 @@ declare const searchResponse: z.ZodLazy<z.ZodObject<{
5374
5466
  name: string;
5375
5467
  reason: "unknown" | "timeout" | "connection" | "query_error" | "provider_error";
5376
5468
  }[] | undefined;
5469
+ anchorGateSuppressed?: boolean | undefined;
5470
+ anchorGateDiscardedCount?: number | undefined;
5377
5471
  temporalMetadata?: {
5378
5472
  asOfTime: string | null;
5379
5473
  validAtTime: string | null;
@@ -5423,6 +5517,7 @@ declare const searchResponse: z.ZodLazy<z.ZodObject<{
5423
5517
  has_conflict: boolean;
5424
5518
  has_temporal_spread: boolean;
5425
5519
  };
5520
+ unscored_pair_count?: number | undefined;
5426
5521
  }[] | undefined;
5427
5522
  }>>;
5428
5523
  declare const searchFailureResponse: z.ZodLazy<z.ZodObject<{
@@ -7907,6 +8002,10 @@ declare const digestMetadata: z.ZodLazy<z.ZodObject<{
7907
8002
  narrowWindowFallback: z.ZodOptional<z.ZodBoolean>;
7908
8003
  /** True when the digest is in the narrow-window band AND the source memories span 2+ distinct codeContext.product values (or none share a product). Indicates the synthesis is drawn from heterogeneous, possibly cross-project sources — likely the wrong project for the calling agent. See support#183. */
7909
8004
  crossProjectFallback: z.ZodOptional<z.ZodBoolean>;
8005
+ /** v2.90 (#5450). True when the fulltext-anchor gate discarded a non-empty candidate set during the gather that produced this digest, so this digest does NOT include everything the search found. Combine with sourcesConsidered: sourcesConsidered=0 alongside this flag means the empty answer is an artefact of the gate, not a statement that the store holds nothing, and a wider maxSources may return results. ABSENT (not false) when the gate suppressed nothing — an unsuppressed response gains no new fields, so existing clients are unaffected. This is an EVENT record, not a verdict on emptiness. This field is emitted by the digest and search responses that implement it; its absence on any other endpoint carries no assurance that nothing was suppressed there. */
8006
+ anchorGateSuppressed: z.ZodOptional<z.ZodBoolean>;
8007
+ /** v2.90 (#5450). How many fused candidates the fulltext-anchor gate discarded, summed across every hybrid search this gather ran. Present only alongside anchorGateSuppressed, and always > 0 when present. Treat it as an UPPER BOUND on what a wider maxSources could recover, not as a count of retrievable rows: the gate runs before the superseded/duplicate exclusion, so discarded candidates can include duplicate-state rows that are never served at any maxSources and superseded rows that are served only when the caller asks for them. This field is emitted by the digest and search responses that implement it; its absence on any other endpoint carries no assurance that nothing was suppressed there. */
8008
+ anchorGateDiscardedCount: z.ZodOptional<z.ZodNumber>;
7910
8009
  /** ISO 8601 timestamp when the digest was generated */
7911
8010
  generatedAt: z.ZodString;
7912
8011
  /** Recursion stats (only present when recursive synthesis is used) */
@@ -7947,6 +8046,8 @@ declare const digestMetadata: z.ZodLazy<z.ZodObject<{
7947
8046
  name: string;
7948
8047
  error?: string | undefined;
7949
8048
  }[] | undefined;
8049
+ anchorGateSuppressed?: boolean | undefined;
8050
+ anchorGateDiscardedCount?: number | undefined;
7950
8051
  averageRelevance?: number | undefined;
7951
8052
  narrowWindowFallback?: boolean | undefined;
7952
8053
  crossProjectFallback?: boolean | undefined;
@@ -7973,6 +8074,8 @@ declare const digestMetadata: z.ZodLazy<z.ZodObject<{
7973
8074
  name: string;
7974
8075
  error?: string | undefined;
7975
8076
  }[] | undefined;
8077
+ anchorGateSuppressed?: boolean | undefined;
8078
+ anchorGateDiscardedCount?: number | undefined;
7976
8079
  averageRelevance?: number | undefined;
7977
8080
  narrowWindowFallback?: boolean | undefined;
7978
8081
  crossProjectFallback?: boolean | undefined;
@@ -8103,6 +8206,10 @@ declare const digestResponse: z.ZodLazy<z.ZodObject<{
8103
8206
  narrowWindowFallback: z.ZodOptional<z.ZodBoolean>;
8104
8207
  /** True when the digest is in the narrow-window band AND the source memories span 2+ distinct codeContext.product values (or none share a product). Indicates the synthesis is drawn from heterogeneous, possibly cross-project sources — likely the wrong project for the calling agent. See support#183. */
8105
8208
  crossProjectFallback: z.ZodOptional<z.ZodBoolean>;
8209
+ /** v2.90 (#5450). True when the fulltext-anchor gate discarded a non-empty candidate set during the gather that produced this digest, so this digest does NOT include everything the search found. Combine with sourcesConsidered: sourcesConsidered=0 alongside this flag means the empty answer is an artefact of the gate, not a statement that the store holds nothing, and a wider maxSources may return results. ABSENT (not false) when the gate suppressed nothing — an unsuppressed response gains no new fields, so existing clients are unaffected. This is an EVENT record, not a verdict on emptiness. This field is emitted by the digest and search responses that implement it; its absence on any other endpoint carries no assurance that nothing was suppressed there. */
8210
+ anchorGateSuppressed: z.ZodOptional<z.ZodBoolean>;
8211
+ /** v2.90 (#5450). How many fused candidates the fulltext-anchor gate discarded, summed across every hybrid search this gather ran. Present only alongside anchorGateSuppressed, and always > 0 when present. Treat it as an UPPER BOUND on what a wider maxSources could recover, not as a count of retrievable rows: the gate runs before the superseded/duplicate exclusion, so discarded candidates can include duplicate-state rows that are never served at any maxSources and superseded rows that are served only when the caller asks for them. This field is emitted by the digest and search responses that implement it; its absence on any other endpoint carries no assurance that nothing was suppressed there. */
8212
+ anchorGateDiscardedCount: z.ZodOptional<z.ZodNumber>;
8106
8213
  /** ISO 8601 timestamp when the digest was generated */
8107
8214
  generatedAt: z.ZodString;
8108
8215
  /** Recursion stats (only present when recursive synthesis is used) */
@@ -8143,6 +8250,8 @@ declare const digestResponse: z.ZodLazy<z.ZodObject<{
8143
8250
  name: string;
8144
8251
  error?: string | undefined;
8145
8252
  }[] | undefined;
8253
+ anchorGateSuppressed?: boolean | undefined;
8254
+ anchorGateDiscardedCount?: number | undefined;
8146
8255
  averageRelevance?: number | undefined;
8147
8256
  narrowWindowFallback?: boolean | undefined;
8148
8257
  crossProjectFallback?: boolean | undefined;
@@ -8169,6 +8278,8 @@ declare const digestResponse: z.ZodLazy<z.ZodObject<{
8169
8278
  name: string;
8170
8279
  error?: string | undefined;
8171
8280
  }[] | undefined;
8281
+ anchorGateSuppressed?: boolean | undefined;
8282
+ anchorGateDiscardedCount?: number | undefined;
8172
8283
  averageRelevance?: number | undefined;
8173
8284
  narrowWindowFallback?: boolean | undefined;
8174
8285
  crossProjectFallback?: boolean | undefined;
@@ -8544,6 +8655,8 @@ declare const digestResponse: z.ZodLazy<z.ZodObject<{
8544
8655
  name: string;
8545
8656
  error?: string | undefined;
8546
8657
  }[] | undefined;
8658
+ anchorGateSuppressed?: boolean | undefined;
8659
+ anchorGateDiscardedCount?: number | undefined;
8547
8660
  averageRelevance?: number | undefined;
8548
8661
  narrowWindowFallback?: boolean | undefined;
8549
8662
  crossProjectFallback?: boolean | undefined;
@@ -8658,6 +8771,8 @@ declare const digestResponse: z.ZodLazy<z.ZodObject<{
8658
8771
  name: string;
8659
8772
  error?: string | undefined;
8660
8773
  }[] | undefined;
8774
+ anchorGateSuppressed?: boolean | undefined;
8775
+ anchorGateDiscardedCount?: number | undefined;
8661
8776
  averageRelevance?: number | undefined;
8662
8777
  narrowWindowFallback?: boolean | undefined;
8663
8778
  crossProjectFallback?: boolean | undefined;
@@ -9487,6 +9602,10 @@ type MatchRecommendationsRequest = z.infer<typeof matchRecommendationsRequest>;
9487
9602
  type ServiceCheck = z.infer<typeof serviceCheck>;
9488
9603
  type HealthCheck = z.infer<typeof healthCheck>;
9489
9604
  type SearchRequest = z.infer<typeof searchRequest>;
9605
+ /**
9606
+ * Present ONLY when at least one of this result's claims sits in a claim group whose conflict check did not complete (v2.91). Conflict detection scores ALIGNS_WITH claim pairs with an LLM judge on the search path; that scoring can be skipped because the judge was unavailable, the per-request pair cap was reached, the wall-clock budget expired, or a judge response failed to parse. When this field is present, the absence of a conflict marker in this result's summary_facts means NO CONFLICT WAS DEMONSTRATED — not that none exists. Cross-reference groupIds against claim_groups[].id for the group's conflict_status. ABSENT (not false, not an empty object) when every sampled pair covering this result was scored — a fully-scored response gains no new field. This field is emitted by the search responses that implement it; its absence on any other endpoint carries no assurance that conflict scoring completed there.
9607
+ */
9608
+ type ConflictScoringIncomplete = z.infer<typeof conflictScoringIncomplete>;
9490
9609
  type Entity = z.infer<typeof entity>;
9491
9610
  type SearchResult = z.infer<typeof searchResult>;
9492
9611
  type BranchFailure = z.infer<typeof branchFailure>;
@@ -12455,4 +12574,4 @@ declare class Memnexus {
12455
12574
  setEnvironment(environment: Environment): void;
12456
12575
  }
12457
12576
 
12458
- export { type AddMemoryToNarrativeRequest, AdminAlertsService, AdminPipelineService, AdminService, AlertsService, type ApiKey, ApiKeysService, type AppendNamedMemoryRequest, type Artifact, ArtifactsService, type BatchGetMemoriesMeta, type BatchGetMemoriesRequest, type BatchGetMemoriesResponse, BehaviorService, type BillingOverview, BillingService, type BranchFailure, type BuildContextActiveWork, type BuildContextActivity, type BuildContextFact, type BuildContextGotcha, type BuildContextMeta, type BuildContextPattern, type BuildContextRequest, type BuildContextResponse, type BulkDeleteRequest, type BulkDeleteResponse, type BulkTagRequest, type BulkTagResponse, type BulkUpdateRequest, type BulkUpdateResponse, type CheckoutSessionResponse, type ClaimGroup, type ClaimGroupClaim, type ClaimGroupSignals, type CodeContext, type Community, type CompileInstructionsRequest, type CompileInstructionsResponse, ContentType, type Conversation, ConversationsService, type CreateArtifactRequest, type CreateCheckoutSessionRequest, type CreateConversationRequest, type CreateFactRequest, type CreateMemoryRelationshipRequest, type CreateMemoryRequest, type CreateMemoryResponse, type CreateMemoryResponseMeta, type CreateNarrativeRequest, type CreatePortalSessionRequest, type CreateRecommendationRequest, type CreateSystemAlertRequest, type DigestEntity, type DigestKeyFact, type DigestMetadata, type DigestRequest, type DigestResponse, type DigestSource, type DigestTimeRange, type EffectiveStateBreakdown, EntitiesService, type Entity, type EntityNode, Environment, type Error$1 as Error, type ErrorDefinition, type ExportRequest, type FacetEntry, type Facets, type Fact, type FactSearchRequest, FactsService, FeedbackService, type GetMemoryResponse, type GetNarrativeResponse, type GraphRAGQueryRequest, type GraphRAGQueryResponse, GraphragService, type HealthCheck, HealthService, type Hook, type HttpError, type HttpMetadata, type HttpMethod, type HttpRequest, type HttpResponse, InvitesService, type Invoice, type ListInvoicesResponse, type ListNarrativesResponse, type ListPaymentMethodsResponse, type MatchRecommendationsRequest, Memnexus, MemoriesService, type Memory, type MemoryRelationship, type MemoryRelationshipsResponse, MonitoringService, type NamedMemoryHistoryResponse, type NarrativeMemory, type NarrativeThread, type NarrativeTimelineResponse, NarrativesService, type Pagination, type Pattern, PatternsService, type PaymentMethod, type PortalSessionResponse, type PrecomputedMemoryFields, type Recommendation, RecommendationsService, type RelatedMemoryResult, type RequestParameter, type ResponseDefinition, type RetryOptions, type SdkConfig, SdkError, type SearchFailureResponse, type SearchMeta, type SearchRequest, type SearchResponse, type SearchResult, SerializationStyle, type ServiceCheck, type Subscription, type SystemAlert, SystemService, type TemporalMetadata, type Topic, TopicsService, type UpdateArtifactRequest, type UpdateFactRequest, type UpdateMemoryRequest, type UpdateNamedMemoryRequest, type UpdateNarrativeRequest, type UpdateSystemAlertRequest, type User, type UserUsage, UsersService, type ValidationOptions, addMemoryToNarrativeRequest, apiKey, appendNamedMemoryRequest, artifact, batchGetMemoriesMeta, batchGetMemoriesRequest, batchGetMemoriesResponse, billingOverview, branchFailure, buildContextActiveWork, buildContextActivity, buildContextFact, buildContextGotcha, buildContextMeta, buildContextPattern, buildContextRequest, buildContextResponse, bulkDeleteRequest, bulkDeleteResponse, bulkTagRequest, bulkTagResponse, bulkUpdateRequest, bulkUpdateResponse, checkoutSessionResponse, claimGroup, claimGroupClaim, claimGroupSignals, codeContext, community, compileInstructionsRequest, compileInstructionsResponse, conversation, createArtifactRequest, createCheckoutSessionRequest, createConversationRequest, createFactRequest, createMemoryRelationshipRequest, createMemoryRequest, createMemoryResponse, createMemoryResponseMeta, createNarrativeRequest, createPortalSessionRequest, createRecommendationRequest, createSystemAlertRequest, Memnexus as default, digestEntity, digestKeyFact, digestMetadata, digestRequest, digestResponse, digestSource, digestTimeRange, effectiveStateBreakdown, entity, entityNode, error, exportRequest, facetEntry, facets, fact, factSearchRequest, getMemoryResponse, getNarrativeResponse, graphRAGQueryRequest, graphRAGQueryResponse, healthCheck, invoice, listInvoicesResponse, listNarrativesResponse, listPaymentMethodsResponse, matchRecommendationsRequest, memory, memoryRelationship, memoryRelationshipsResponse, namedMemoryHistoryResponse, narrativeMemory, narrativeThread, narrativeTimelineResponse, pagination, pattern, paymentMethod, portalSessionResponse, precomputedMemoryFields, recommendation, relatedMemoryResult, searchFailureResponse, searchMeta, searchRequest, searchResponse, searchResult, serviceCheck, subscription, systemAlert, temporalMetadata, topic, updateArtifactRequest, updateFactRequest, updateMemoryRequest, updateNamedMemoryRequest, updateNarrativeRequest, updateSystemAlertRequest, user, userUsage };
12577
+ export { type AddMemoryToNarrativeRequest, AdminAlertsService, AdminPipelineService, AdminService, AlertsService, type ApiKey, ApiKeysService, type AppendNamedMemoryRequest, type Artifact, ArtifactsService, type BatchGetMemoriesMeta, type BatchGetMemoriesRequest, type BatchGetMemoriesResponse, BehaviorService, type BillingOverview, BillingService, type BranchFailure, type BuildContextActiveWork, type BuildContextActivity, type BuildContextFact, type BuildContextGotcha, type BuildContextMeta, type BuildContextPattern, type BuildContextRequest, type BuildContextResponse, type BulkDeleteRequest, type BulkDeleteResponse, type BulkTagRequest, type BulkTagResponse, type BulkUpdateRequest, type BulkUpdateResponse, type CheckoutSessionResponse, type ClaimGroup, type ClaimGroupClaim, type ClaimGroupSignals, type CodeContext, type Community, type CompileInstructionsRequest, type CompileInstructionsResponse, type ConflictScoringIncomplete, ContentType, type Conversation, ConversationsService, type CreateArtifactRequest, type CreateCheckoutSessionRequest, type CreateConversationRequest, type CreateFactRequest, type CreateMemoryRelationshipRequest, type CreateMemoryRequest, type CreateMemoryResponse, type CreateMemoryResponseMeta, type CreateNarrativeRequest, type CreatePortalSessionRequest, type CreateRecommendationRequest, type CreateSystemAlertRequest, type DigestEntity, type DigestKeyFact, type DigestMetadata, type DigestRequest, type DigestResponse, type DigestSource, type DigestTimeRange, type EffectiveStateBreakdown, EntitiesService, type Entity, type EntityNode, Environment, type Error$1 as Error, type ErrorDefinition, type ExportRequest, type FacetEntry, type Facets, type Fact, type FactSearchRequest, FactsService, FeedbackService, type GetMemoryResponse, type GetNarrativeResponse, type GraphRAGQueryRequest, type GraphRAGQueryResponse, GraphragService, type HealthCheck, HealthService, type Hook, type HttpError, type HttpMetadata, type HttpMethod, type HttpRequest, type HttpResponse, InvitesService, type Invoice, type ListInvoicesResponse, type ListNarrativesResponse, type ListPaymentMethodsResponse, type MatchRecommendationsRequest, Memnexus, MemoriesService, type Memory, type MemoryRelationship, type MemoryRelationshipsResponse, MonitoringService, type NamedMemoryHistoryResponse, type NarrativeMemory, type NarrativeThread, type NarrativeTimelineResponse, NarrativesService, type Pagination, type Pattern, PatternsService, type PaymentMethod, type PortalSessionResponse, type PrecomputedMemoryFields, type Recommendation, RecommendationsService, type RelatedMemoryResult, type RequestParameter, type ResponseDefinition, type RetryOptions, type SdkConfig, SdkError, type SearchFailureResponse, type SearchMeta, type SearchRequest, type SearchResponse, type SearchResult, SerializationStyle, type ServiceCheck, type Subscription, type SystemAlert, SystemService, type TemporalMetadata, type Topic, TopicsService, type UpdateArtifactRequest, type UpdateFactRequest, type UpdateMemoryRequest, type UpdateNamedMemoryRequest, type UpdateNarrativeRequest, type UpdateSystemAlertRequest, type User, type UserUsage, UsersService, type ValidationOptions, addMemoryToNarrativeRequest, apiKey, appendNamedMemoryRequest, artifact, batchGetMemoriesMeta, batchGetMemoriesRequest, batchGetMemoriesResponse, billingOverview, branchFailure, buildContextActiveWork, buildContextActivity, buildContextFact, buildContextGotcha, buildContextMeta, buildContextPattern, buildContextRequest, buildContextResponse, bulkDeleteRequest, bulkDeleteResponse, bulkTagRequest, bulkTagResponse, bulkUpdateRequest, bulkUpdateResponse, checkoutSessionResponse, claimGroup, claimGroupClaim, claimGroupSignals, codeContext, community, compileInstructionsRequest, compileInstructionsResponse, conflictScoringIncomplete, conversation, createArtifactRequest, createCheckoutSessionRequest, createConversationRequest, createFactRequest, createMemoryRelationshipRequest, createMemoryRequest, createMemoryResponse, createMemoryResponseMeta, createNarrativeRequest, createPortalSessionRequest, createRecommendationRequest, createSystemAlertRequest, Memnexus as default, digestEntity, digestKeyFact, digestMetadata, digestRequest, digestResponse, digestSource, digestTimeRange, effectiveStateBreakdown, entity, entityNode, error, exportRequest, facetEntry, facets, fact, factSearchRequest, getMemoryResponse, getNarrativeResponse, graphRAGQueryRequest, graphRAGQueryResponse, healthCheck, invoice, listInvoicesResponse, listNarrativesResponse, listPaymentMethodsResponse, matchRecommendationsRequest, memory, memoryRelationship, memoryRelationshipsResponse, namedMemoryHistoryResponse, narrativeMemory, narrativeThread, narrativeTimelineResponse, pagination, pattern, paymentMethod, portalSessionResponse, precomputedMemoryFields, recommendation, relatedMemoryResult, searchFailureResponse, searchMeta, searchRequest, searchResponse, searchResult, serviceCheck, subscription, systemAlert, temporalMetadata, topic, updateArtifactRequest, updateFactRequest, updateMemoryRequest, updateNamedMemoryRequest, updateNarrativeRequest, updateSystemAlertRequest, user, userUsage };