scientify 1.12.2 → 1.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,7 @@
1
1
  export type KnowledgeChangeType = "NEW" | "CONFIRM" | "REVISE" | "BRIDGE";
2
2
  export type RunProfile = "fast" | "strict";
3
+ export type QualityGateMode = "soft";
4
+ export type QualityGateSeverity = "ok" | "warn" | "fatal";
3
5
  export type TriggerState = {
4
6
  consecutiveNewReviseDays: number;
5
7
  bridgeCount7d: number;
@@ -103,6 +105,22 @@ export type KnowledgeRunLogInput = {
103
105
  tempCleanupNote?: string;
104
106
  fullTextAttempted?: number;
105
107
  fullTextCompleted?: number;
108
+ recallTierStats?: {
109
+ tierA?: {
110
+ candidates: number;
111
+ selected: number;
112
+ };
113
+ tierB?: {
114
+ candidates: number;
115
+ selected: number;
116
+ };
117
+ tierC?: {
118
+ candidates: number;
119
+ selected: number;
120
+ };
121
+ };
122
+ reflectionStepExecuted?: boolean;
123
+ reflectionStepResultCount?: number;
106
124
  };
107
125
  export type KnowledgeStateInput = {
108
126
  corePapers?: KnowledgePaperInput[];
@@ -140,6 +158,11 @@ export type KnowledgeStateSummary = {
140
158
  recentFullTextReadCount: number;
141
159
  recentNotFullTextReadCount: number;
142
160
  qualityGate: {
161
+ mode: QualityGateMode;
162
+ severity: QualityGateSeverity;
163
+ warnings: string[];
164
+ fatalReasons: string[];
165
+ blocking: boolean;
143
166
  passed: boolean;
144
167
  fullTextCoveragePct: number;
145
168
  evidenceBindingRatePct: number;
@@ -187,6 +210,11 @@ export type KnowledgeStreamState = {
187
210
  recentFullTextReadCount: number;
188
211
  recentNotFullTextReadCount: number;
189
212
  lastQualityGate: {
213
+ mode: QualityGateMode;
214
+ severity: QualityGateSeverity;
215
+ warnings: string[];
216
+ fatalReasons: string[];
217
+ blocking: boolean;
190
218
  passed: boolean;
191
219
  fullTextCoveragePct: number;
192
220
  evidenceBindingRatePct: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/knowledge-state/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/knowledge-state/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"subscription-state.d.ts","sourceRoot":"","sources":["../../../src/literature/subscription-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subscription-state.d.ts","sourceRoot":"","sources":["../../../src/literature/subscription-state.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,12 @@ const MAX_STRICT_FULLTEXT_ATTEMPTS = 5;
16
16
  const ARXIV_API_URL = "https://export.arxiv.org/api/query";
17
17
  const STRICT_EMPTY_FALLBACK_MAX_RESULTS = 12;
18
18
  const STRICT_EMPTY_FALLBACK_MAX_QUERIES = 4;
19
+ const DEFAULT_STRICT_CANDIDATE_POOL = 24;
20
+ const DEFAULT_STRICT_MIN_CORE_FLOOR = 3;
21
+ const TIER_A_RATIO = 0.5;
22
+ const TIER_B_RATIO = 0.35;
23
+ const TIER_C_RATIO = 0.15;
24
+ const REFLECTION_MAX_ADDED_PAPERS = 2;
19
25
  const FEEDBACK_SIGNAL_DELTA = {
20
26
  read: 1,
21
27
  skip: -1,
@@ -426,16 +432,7 @@ function parseArxivAtomCandidates(xml) {
426
432
  }
427
433
  return parsed;
428
434
  }
429
- function buildStrictFallbackQueries(topic) {
430
- const normalizedTopic = normalizeText(topic);
431
- const queries = [normalizedTopic];
432
- const tokens = tokenizeKeywords(normalizedTopic).filter((token) => token.length >= 3).slice(0, 8);
433
- if (tokens.length >= 2) {
434
- queries.push(tokens.join(" "));
435
- }
436
- if (tokens.length >= 4) {
437
- queries.push(tokens.slice(0, 4).join(" "));
438
- }
435
+ function dedupeQueries(queries, limit) {
439
436
  const seen = new Set();
440
437
  const deduped = [];
441
438
  for (const query of queries) {
@@ -444,8 +441,42 @@ function buildStrictFallbackQueries(topic) {
444
441
  continue;
445
442
  seen.add(key);
446
443
  deduped.push(query);
444
+ if (deduped.length >= limit)
445
+ break;
447
446
  }
448
- return deduped.slice(0, STRICT_EMPTY_FALLBACK_MAX_QUERIES);
447
+ return deduped;
448
+ }
449
+ function buildStrictFallbackQueries(topic) {
450
+ const normalizedTopic = normalizeText(topic);
451
+ const tokens = tokenizeKeywords(normalizedTopic).filter((token) => token.length >= 3).slice(0, 10);
452
+ const queries = [normalizedTopic];
453
+ if (tokens.length >= 2)
454
+ queries.push(tokens.slice(0, 4).join(" "));
455
+ if (tokens.length >= 3)
456
+ queries.push(tokens.slice(0, 3).join(" "));
457
+ return dedupeQueries(queries, STRICT_EMPTY_FALLBACK_MAX_QUERIES);
458
+ }
459
+ function buildTieredFallbackQueries(topic) {
460
+ const normalizedTopic = normalizeText(topic);
461
+ const tokens = tokenizeKeywords(normalizedTopic).filter((token) => token.length >= 3).slice(0, 10);
462
+ const tierA = buildStrictFallbackQueries(topic);
463
+ const tierB = dedupeQueries([
464
+ ...tokens.slice(0, 6).map((token) => `${token} adaptation`),
465
+ ...tokens.slice(0, 6).map((token) => `${token} method`),
466
+ ...tokens.slice(0, 4).map((token) => `${token} framework`),
467
+ tokens.slice(0, 4).join(" "),
468
+ ], STRICT_EMPTY_FALLBACK_MAX_QUERIES);
469
+ const tierC = dedupeQueries([
470
+ ...tokens.slice(0, 5).map((token) => `${token} transfer learning`),
471
+ ...tokens.slice(0, 5).map((token) => `${token} benchmark`),
472
+ ...tokens.slice(0, 5).map((token) => `${token} retrieval`),
473
+ `${normalizedTopic} cross domain`,
474
+ ], STRICT_EMPTY_FALLBACK_MAX_QUERIES);
475
+ return {
476
+ tierA: tierA.length > 0 ? tierA : [normalizedTopic],
477
+ tierB,
478
+ tierC,
479
+ };
449
480
  }
450
481
  function countTokenOverlap(tokens, text) {
451
482
  const hay = ` ${normalizeText(text).toLowerCase()} `;
@@ -458,14 +489,15 @@ function countTokenOverlap(tokens, text) {
458
489
  }
459
490
  return score;
460
491
  }
461
- function scoreFallbackCandidate(topicTokens, paper) {
492
+ function scoreFallbackCandidate(topicTokens, paper, tier) {
462
493
  const titleOverlap = countTokenOverlap(topicTokens, paper.title);
463
494
  const abstractOverlap = countTokenOverlap(topicTokens, paper.summary ?? "");
464
495
  const publishedAt = paper.published ? Date.parse(paper.published) : NaN;
465
496
  const recencyBoost = Number.isFinite(publishedAt)
466
497
  ? Math.max(0, Math.min(8, (Date.now() - publishedAt) / (1000 * 60 * 60 * 24 * -180)))
467
498
  : 0;
468
- const rawScore = 60 + titleOverlap * 8 + abstractOverlap * 3 + recencyBoost;
499
+ const tierBoost = tier === "tierA" ? 8 : tier === "tierB" ? 4 : 1;
500
+ const rawScore = 60 + tierBoost + titleOverlap * 8 + abstractOverlap * 3 + recencyBoost;
469
501
  return Math.max(50, Math.min(99, Math.round(rawScore)));
470
502
  }
471
503
  async function fetchArxivFallbackByQuery(query) {
@@ -498,34 +530,73 @@ async function fetchArxivFallbackByQuery(query) {
498
530
  }
499
531
  }
500
532
  async function strictCoreFallbackSeed(args) {
501
- const queries = buildStrictFallbackQueries(args.topic);
533
+ const tieredQueries = buildTieredFallbackQueries(args.topic);
502
534
  const byId = new Map();
503
535
  const traces = [];
504
- for (const query of queries) {
505
- const rows = await fetchArxivFallbackByQuery(query);
506
- traces.push({
507
- query,
508
- reason: "strict_core_backfill_seed",
509
- source: "arxiv",
510
- candidates: rows.length,
511
- filteredTo: rows.length,
512
- resultCount: rows.length,
513
- });
514
- for (const row of rows) {
515
- if (!byId.has(row.id))
516
- byId.set(row.id, row);
536
+ const tierStats = {
537
+ tierA: { candidates: 0, selected: 0 },
538
+ tierB: { candidates: 0, selected: 0 },
539
+ tierC: { candidates: 0, selected: 0 },
540
+ };
541
+ for (const tier of ["tierA", "tierB", "tierC"]) {
542
+ for (const query of tieredQueries[tier]) {
543
+ const rows = await fetchArxivFallbackByQuery(query);
544
+ tierStats[tier].candidates += rows.length;
545
+ traces.push({
546
+ query,
547
+ reason: `strict_core_backfill_seed_${tier}`,
548
+ source: "arxiv",
549
+ candidates: rows.length,
550
+ filteredTo: rows.length,
551
+ resultCount: rows.length,
552
+ });
553
+ for (const row of rows) {
554
+ if (!byId.has(row.id))
555
+ byId.set(row.id, { row, tier });
556
+ }
517
557
  }
518
558
  }
519
559
  const topicTokens = tokenizeKeywords(args.topic);
520
560
  const ranked = [...byId.values()]
521
- .map((row) => ({
561
+ .map(({ row, tier }) => ({
522
562
  row,
523
- score: scoreFallbackCandidate(topicTokens, row),
563
+ tier,
564
+ score: scoreFallbackCandidate(topicTokens, row, tier),
524
565
  }))
525
566
  .sort((a, b) => b.score - a.score);
526
567
  const unseen = ranked.filter((item) => !args.knownPaperIds.has(item.row.id));
527
568
  const effectivePool = unseen.length > 0 ? unseen : ranked;
528
- const selected = effectivePool.slice(0, Math.max(1, Math.min(10, args.maxPapers)));
569
+ const candidatePool = Math.max(1, Math.min(40, Math.floor(args.candidatePool ?? Math.max(DEFAULT_STRICT_CANDIDATE_POOL, args.maxPapers * 4))));
570
+ const minCoreFloor = Math.max(1, Math.min(args.maxPapers, args.minCoreFloor ?? DEFAULT_STRICT_MIN_CORE_FLOOR));
571
+ const targetCount = Math.max(minCoreFloor, Math.min(args.maxPapers, candidatePool));
572
+ const tierTargets = {
573
+ tierA: Math.max(1, Math.round(targetCount * TIER_A_RATIO)),
574
+ tierB: Math.max(1, Math.round(targetCount * TIER_B_RATIO)),
575
+ tierC: Math.max(0, targetCount - Math.round(targetCount * TIER_A_RATIO) - Math.round(targetCount * TIER_B_RATIO)),
576
+ };
577
+ if (tierTargets.tierA + tierTargets.tierB + tierTargets.tierC < targetCount) {
578
+ tierTargets.tierA += targetCount - (tierTargets.tierA + tierTargets.tierB + tierTargets.tierC);
579
+ }
580
+ const selected = [];
581
+ const selectedIds = new Set();
582
+ for (const tier of ["tierA", "tierB", "tierC"]) {
583
+ const picked = effectivePool
584
+ .filter((item) => item.tier === tier && !selectedIds.has(item.row.id))
585
+ .slice(0, tierTargets[tier]);
586
+ for (const item of picked) {
587
+ selected.push(item);
588
+ selectedIds.add(item.row.id);
589
+ tierStats[tier].selected += 1;
590
+ }
591
+ }
592
+ if (selected.length < targetCount) {
593
+ const fill = effectivePool.filter((item) => !selectedIds.has(item.row.id)).slice(0, targetCount - selected.length);
594
+ for (const item of fill) {
595
+ selected.push(item);
596
+ selectedIds.add(item.row.id);
597
+ tierStats[item.tier].selected += 1;
598
+ }
599
+ }
529
600
  const papers = selected.map(({ row, score }) => ({
530
601
  id: row.id,
531
602
  title: row.title,
@@ -550,7 +621,233 @@ async function strictCoreFallbackSeed(args) {
550
621
  papers,
551
622
  corePapers,
552
623
  explorationTrace: traces,
553
- notes: `strict_core_backfill_seed selected=${selected.length} queries=${queries.length}`,
624
+ notes: `strict_core_backfill_seed selected=${selected.length} pool=${candidatePool} floor=${minCoreFloor}`,
625
+ recallTierStats: tierStats,
626
+ };
627
+ }
628
+ function isPaperFullTextRead(paper) {
629
+ return paper.fullTextRead === true || paper.readStatus === "fulltext";
630
+ }
631
+ function hasStrictEvidenceAnchor(paper) {
632
+ const anchors = paper.evidenceAnchors ?? [];
633
+ return anchors.some((anchor) => Boolean(anchor?.section?.trim()) &&
634
+ Boolean(anchor?.locator?.trim()) &&
635
+ Boolean(anchor?.quote?.trim()));
636
+ }
637
+ function firstNonEmptyText(values) {
638
+ for (const value of values) {
639
+ if (typeof value !== "string")
640
+ continue;
641
+ const normalized = normalizeText(value);
642
+ if (normalized.length > 0)
643
+ return normalized;
644
+ }
645
+ return undefined;
646
+ }
647
+ function toEvidencePaperId(paper) {
648
+ return derivePaperId({ id: paper.id, title: paper.title, url: paper.url });
649
+ }
650
+ function dedupeEvidenceIds(ids) {
651
+ const seen = new Set();
652
+ const out = [];
653
+ for (const id of ids) {
654
+ const normalized = normalizeText(id);
655
+ if (!normalized)
656
+ continue;
657
+ const key = normalized.toLowerCase();
658
+ if (seen.has(key))
659
+ continue;
660
+ seen.add(key);
661
+ out.push(normalized);
662
+ }
663
+ return out;
664
+ }
665
+ function applyLightweightEvidenceBinding(args) {
666
+ if (!args.knowledgeState) {
667
+ return { knowledgeState: args.knowledgeState, anchorsAdded: 0, evidenceIdsFilled: 0 };
668
+ }
669
+ const corePapers = args.knowledgeState.corePapers ?? [];
670
+ if (corePapers.length === 0) {
671
+ return { knowledgeState: args.knowledgeState, anchorsAdded: 0, evidenceIdsFilled: 0 };
672
+ }
673
+ let anchorsAdded = 0;
674
+ const nextCore = corePapers.map((paper) => {
675
+ if (!isPaperFullTextRead(paper))
676
+ return paper;
677
+ if (hasStrictEvidenceAnchor(paper))
678
+ return paper;
679
+ const quote = firstNonEmptyText([
680
+ paper.keyEvidenceSpans?.[0],
681
+ paper.summary,
682
+ paper.reason,
683
+ paper.title,
684
+ ]);
685
+ if (!quote)
686
+ return paper;
687
+ const nextQuote = quote.slice(0, 260);
688
+ anchorsAdded += 1;
689
+ return {
690
+ ...paper,
691
+ evidenceAnchors: [
692
+ ...(paper.evidenceAnchors ?? []),
693
+ {
694
+ section: "AutoExtract",
695
+ locator: paper.fullTextRef?.trim() || "excerpt:1",
696
+ claim: firstNonEmptyText([paper.researchGoal, paper.reason, paper.title, "auto-bound claim"]) ?? "auto-bound claim",
697
+ quote: nextQuote,
698
+ },
699
+ ],
700
+ };
701
+ });
702
+ const fallbackEvidenceIds = dedupeEvidenceIds(nextCore.filter((paper) => isPaperFullTextRead(paper)).map((paper) => toEvidencePaperId(paper)).slice(0, 2));
703
+ let evidenceIdsFilled = 0;
704
+ const patchEvidenceIds = (raw, allowAuto = true) => {
705
+ const existing = dedupeEvidenceIds(raw ?? []);
706
+ if (existing.length > 0)
707
+ return existing;
708
+ if (!allowAuto || fallbackEvidenceIds.length === 0)
709
+ return undefined;
710
+ evidenceIdsFilled += 1;
711
+ return [...fallbackEvidenceIds];
712
+ };
713
+ const nextKnowledgeChanges = (args.knowledgeState.knowledgeChanges ?? []).map((change) => ({
714
+ ...change,
715
+ ...(change.type === "BRIDGE"
716
+ ? { evidenceIds: patchEvidenceIds(change.evidenceIds, false) }
717
+ : { evidenceIds: patchEvidenceIds(change.evidenceIds, true) }),
718
+ }));
719
+ const nextKnowledgeUpdates = (args.knowledgeState.knowledgeUpdates ?? []).map((update) => ({
720
+ ...update,
721
+ evidenceIds: patchEvidenceIds(update.evidenceIds, true),
722
+ }));
723
+ const nextHypotheses = (args.knowledgeState.hypotheses ?? []).map((hypothesis) => ({
724
+ ...hypothesis,
725
+ evidenceIds: patchEvidenceIds(hypothesis.evidenceIds, true),
726
+ }));
727
+ if (anchorsAdded === 0 && evidenceIdsFilled === 0) {
728
+ return { knowledgeState: args.knowledgeState, anchorsAdded: 0, evidenceIdsFilled: 0 };
729
+ }
730
+ const existingRunLog = args.knowledgeState.runLog;
731
+ const runLog = existingRunLog || args.runProfile
732
+ ? {
733
+ ...(existingRunLog ?? {}),
734
+ ...(existingRunLog?.runProfile ? {} : args.runProfile ? { runProfile: args.runProfile } : {}),
735
+ notes: [existingRunLog?.notes, `auto_evidence_binding anchors_added=${anchorsAdded} ids_filled=${evidenceIdsFilled}`]
736
+ .filter((item) => Boolean(item && item.trim().length > 0))
737
+ .join(" || "),
738
+ }
739
+ : undefined;
740
+ return {
741
+ knowledgeState: {
742
+ ...args.knowledgeState,
743
+ corePapers: nextCore,
744
+ ...(nextKnowledgeChanges.length > 0 ? { knowledgeChanges: nextKnowledgeChanges } : {}),
745
+ ...(nextKnowledgeUpdates.length > 0 ? { knowledgeUpdates: nextKnowledgeUpdates } : {}),
746
+ ...(nextHypotheses.length > 0 ? { hypotheses: nextHypotheses } : {}),
747
+ ...(runLog ? { runLog } : {}),
748
+ },
749
+ anchorsAdded,
750
+ evidenceIdsFilled,
751
+ };
752
+ }
753
+ function buildReflectionFollowupQuery(topic, hint) {
754
+ const tokens = tokenizeKeywords(`${topic} ${hint}`).slice(0, 8);
755
+ if (tokens.length === 0)
756
+ return normalizeText(topic);
757
+ return tokens.join(" ");
758
+ }
759
+ function resolveSingleStepReflectionSeed(args) {
760
+ const changes = args.knowledgeState?.knowledgeChanges ?? [];
761
+ const bridgeChanges = changes.filter((item) => item.type === "BRIDGE");
762
+ const newChanges = changes.filter((item) => item.type === "NEW");
763
+ const reviseChanges = changes.filter((item) => item.type === "REVISE");
764
+ const unreadCore = (args.knowledgeState?.corePapers ?? []).filter((paper) => !isPaperFullTextRead(paper));
765
+ if (bridgeChanges.length > 0) {
766
+ const seed = bridgeChanges[0]?.statement ?? args.topic;
767
+ return {
768
+ trigger: "BRIDGE",
769
+ reason: "bridge_followup",
770
+ query: buildReflectionFollowupQuery(args.topic, seed),
771
+ };
772
+ }
773
+ if (newChanges.length >= 2 && reviseChanges.length >= 1) {
774
+ const seed = `${newChanges[0]?.statement ?? ""} ${reviseChanges[0]?.statement ?? ""}`.trim();
775
+ return {
776
+ trigger: "CONFLICT",
777
+ reason: "new_revise_followup",
778
+ query: buildReflectionFollowupQuery(args.topic, seed || args.topic),
779
+ };
780
+ }
781
+ if (unreadCore.length > 0) {
782
+ const seed = unreadCore[0]?.id ?? unreadCore[0]?.title ?? args.topic;
783
+ return {
784
+ trigger: "UNREAD_CORE",
785
+ reason: "unread_core_followup",
786
+ query: buildReflectionFollowupQuery(args.topic, seed),
787
+ };
788
+ }
789
+ return undefined;
790
+ }
791
+ async function executeSingleStepReflection(args) {
792
+ const seed = resolveSingleStepReflectionSeed({
793
+ topic: args.topic,
794
+ knowledgeState: args.knowledgeState,
795
+ });
796
+ if (!seed) {
797
+ return {
798
+ executed: false,
799
+ resultCount: 0,
800
+ papers: [],
801
+ changes: [],
802
+ };
803
+ }
804
+ const rows = await fetchArxivFallbackByQuery(seed.query);
805
+ const localKnownIds = new Set(args.knownPaperIds);
806
+ for (const paper of args.effectivePapers) {
807
+ localKnownIds.add(derivePaperId(paper));
808
+ }
809
+ for (const paper of args.knowledgeState?.corePapers ?? []) {
810
+ localKnownIds.add(derivePaperId({ id: paper.id, title: paper.title, url: paper.url }));
811
+ }
812
+ for (const paper of args.knowledgeState?.explorationPapers ?? []) {
813
+ localKnownIds.add(derivePaperId({ id: paper.id, title: paper.title, url: paper.url }));
814
+ }
815
+ const selected = rows.filter((row) => !localKnownIds.has(row.id)).slice(0, REFLECTION_MAX_ADDED_PAPERS);
816
+ const papers = selected.map((row) => ({
817
+ id: row.id,
818
+ title: row.title,
819
+ url: row.url,
820
+ source: "arxiv",
821
+ ...(row.published ? { publishedAt: row.published } : {}),
822
+ ...(row.summary ? { summary: row.summary } : {}),
823
+ fullTextRead: false,
824
+ readStatus: "metadata",
825
+ unreadReason: "single_step_reflection_added_without_fulltext",
826
+ }));
827
+ const changes = selected.length > 0
828
+ ? [
829
+ {
830
+ type: "NEW",
831
+ statement: `Reflection follow-up added ${selected.length} adjacent paper(s) for ${args.topic}.`,
832
+ evidenceIds: selected.map((row) => row.id).slice(0, 3),
833
+ topic: args.topic,
834
+ },
835
+ ]
836
+ : [];
837
+ return {
838
+ executed: true,
839
+ resultCount: selected.length,
840
+ trace: {
841
+ query: seed.query,
842
+ reason: seed.reason,
843
+ source: "arxiv",
844
+ candidates: rows.length,
845
+ filteredTo: selected.length,
846
+ ...(selected.length === 0 ? { filteredOutReasons: ["no_unseen_reflection_candidates"] } : {}),
847
+ resultCount: selected.length,
848
+ },
849
+ papers,
850
+ changes,
554
851
  };
555
852
  }
556
853
  function dedupePaperRecords(records) {
@@ -943,7 +1240,7 @@ export async function recordIncrementalPush(args) {
943
1240
  effectiveRunLog.requiredCorePapers = Math.max(1, requiredCoreRaw);
944
1241
  }
945
1242
  else {
946
- delete effectiveRunLog.requiredCorePapers;
1243
+ effectiveRunLog.requiredCorePapers = Math.max(1, Math.min(topicState.preferences.maxPapers, DEFAULT_STRICT_MIN_CORE_FLOOR));
947
1244
  }
948
1245
  if (typeof effectiveRunLog.requiredFullTextCoveragePct !== "number" ||
949
1246
  !Number.isFinite(effectiveRunLog.requiredFullTextCoveragePct) ||
@@ -958,7 +1255,9 @@ export async function recordIncrementalPush(args) {
958
1255
  }
959
1256
  : undefined;
960
1257
  if (incomingRunProfile === "strict") {
961
- const requiredCoreFloor = Math.max(1, Math.min(topicState.preferences.maxPapers, effectiveRunLog?.requiredCorePapers ?? Math.min(3, topicState.preferences.maxPapers)));
1258
+ const strictMinCoreFloor = Math.max(1, Math.min(topicState.preferences.maxPapers, DEFAULT_STRICT_MIN_CORE_FLOOR));
1259
+ const requiredCoreFloor = Math.max(1, Math.min(topicState.preferences.maxPapers, effectiveRunLog?.requiredCorePapers ?? strictMinCoreFloor));
1260
+ const strictCandidatePool = Math.max(DEFAULT_STRICT_CANDIDATE_POOL, topicState.preferences.maxPapers * 4);
962
1261
  const existingCorePapers = effectiveKnowledgeState?.corePapers ?? [];
963
1262
  const strictSignalCount = Math.max(existingCorePapers.length, effectivePapers.length);
964
1263
  if (strictSignalCount < requiredCoreFloor) {
@@ -970,7 +1269,9 @@ export async function recordIncrementalPush(args) {
970
1269
  }
971
1270
  const fallback = await strictCoreFallbackSeed({
972
1271
  topic: topicState.topic,
973
- maxPapers: requiredCoreFloor,
1272
+ maxPapers: topicState.preferences.maxPapers,
1273
+ candidatePool: strictCandidatePool,
1274
+ minCoreFloor: requiredCoreFloor,
974
1275
  knownPaperIds: knownIds,
975
1276
  });
976
1277
  if (fallback.papers.length > 0) {
@@ -987,6 +1288,7 @@ export async function recordIncrementalPush(args) {
987
1288
  effectivePapers = dedupePaperRecords([...effectivePapers, ...fallbackPapers]);
988
1289
  const mergedRunLog = {
989
1290
  ...(effectiveRunLog ?? { runProfile: "strict" }),
1291
+ recallTierStats: fallback.recallTierStats,
990
1292
  notes: [
991
1293
  effectiveRunLog?.notes,
992
1294
  fallback.notes,
@@ -1050,6 +1352,74 @@ export async function recordIncrementalPush(args) {
1050
1352
  };
1051
1353
  }
1052
1354
  }
1355
+ const reflection = await executeSingleStepReflection({
1356
+ topic: topicState.topic,
1357
+ knownPaperIds: new Set(Object.keys(topicState.pushedPapers)),
1358
+ effectivePapers,
1359
+ knowledgeState: effectiveKnowledgeState,
1360
+ });
1361
+ const reflectionRunLogBase = effectiveRunLog ??
1362
+ (incomingRunProfile ? { runProfile: incomingRunProfile } : undefined);
1363
+ if (reflection.executed) {
1364
+ const reflectionPaperRecords = reflection.papers.map((paper) => ({
1365
+ ...(paper.id ? { id: paper.id } : {}),
1366
+ ...(paper.title ? { title: paper.title } : {}),
1367
+ ...(paper.url ? { url: paper.url } : {}),
1368
+ ...(typeof paper.score === "number" && Number.isFinite(paper.score) ? { score: paper.score } : {}),
1369
+ reason: "single_step_reflection_followup",
1370
+ }));
1371
+ effectivePapers = dedupePaperRecords([...effectivePapers, ...reflectionPaperRecords]);
1372
+ const mergedRunLog = {
1373
+ ...(reflectionRunLogBase ?? {}),
1374
+ reflectionStepExecuted: true,
1375
+ reflectionStepResultCount: reflection.resultCount,
1376
+ notes: [
1377
+ reflectionRunLogBase?.notes,
1378
+ `single_step_reflection result_count=${reflection.resultCount}`,
1379
+ ]
1380
+ .filter((item) => Boolean(item && item.trim().length > 0))
1381
+ .join(" || "),
1382
+ };
1383
+ effectiveRunLog = mergedRunLog;
1384
+ effectiveKnowledgeState = {
1385
+ ...(effectiveKnowledgeState ?? {}),
1386
+ explorationTrace: [
1387
+ ...(effectiveKnowledgeState?.explorationTrace ?? []),
1388
+ ...(reflection.trace ? [reflection.trace] : []),
1389
+ ],
1390
+ explorationPapers: dedupeKnowledgePapers([
1391
+ ...(effectiveKnowledgeState?.explorationPapers ?? []),
1392
+ ...reflection.papers,
1393
+ ]),
1394
+ knowledgeChanges: [
1395
+ ...(effectiveKnowledgeState?.knowledgeChanges ?? []),
1396
+ ...(reflection.changes ?? []),
1397
+ ],
1398
+ runLog: mergedRunLog,
1399
+ };
1400
+ }
1401
+ else if (reflectionRunLogBase) {
1402
+ const mergedRunLog = {
1403
+ ...reflectionRunLogBase,
1404
+ reflectionStepExecuted: false,
1405
+ reflectionStepResultCount: 0,
1406
+ };
1407
+ effectiveRunLog = mergedRunLog;
1408
+ effectiveKnowledgeState = {
1409
+ ...(effectiveKnowledgeState ?? {}),
1410
+ runLog: mergedRunLog,
1411
+ };
1412
+ }
1413
+ const autoEvidence = applyLightweightEvidenceBinding({
1414
+ knowledgeState: effectiveKnowledgeState,
1415
+ runProfile: incomingRunProfile,
1416
+ });
1417
+ effectiveKnowledgeState = autoEvidence.knowledgeState;
1418
+ if (autoEvidence.anchorsAdded > 0 || autoEvidence.evidenceIdsFilled > 0) {
1419
+ effectiveRunLog = effectiveKnowledgeState?.runLog
1420
+ ? { ...effectiveKnowledgeState.runLog }
1421
+ : effectiveRunLog;
1422
+ }
1053
1423
  const statusRaw = normalizeText(args.status ?? "").toLowerCase();
1054
1424
  const researchArtifactsCount = effectivePapers.length +
1055
1425
  (effectiveKnowledgeState?.explorationPapers?.length ?? 0) +