@askexenow/exe-os 0.9.36 → 0.9.37

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 (51) hide show
  1. package/dist/bin/backfill-conversations.js +3 -0
  2. package/dist/bin/backfill-responses.js +3 -0
  3. package/dist/bin/cleanup-stale-review-tasks.js +3 -0
  4. package/dist/bin/cli.js +3 -0
  5. package/dist/bin/exe-assign.js +3 -0
  6. package/dist/bin/exe-dispatch.js +3 -0
  7. package/dist/bin/exe-export-behaviors.js +3 -0
  8. package/dist/bin/exe-forget.js +3 -0
  9. package/dist/bin/exe-gateway.js +3 -0
  10. package/dist/bin/exe-heartbeat.js +3 -0
  11. package/dist/bin/exe-kill.js +3 -0
  12. package/dist/bin/exe-pending-messages.js +3 -0
  13. package/dist/bin/exe-pending-notifications.js +3 -0
  14. package/dist/bin/exe-pending-reviews.js +3 -0
  15. package/dist/bin/exe-review.js +3 -0
  16. package/dist/bin/exe-search.js +9 -8
  17. package/dist/bin/exe-session-cleanup.js +7 -1
  18. package/dist/bin/exe-status.js +3 -0
  19. package/dist/bin/exe-team.js +3 -0
  20. package/dist/bin/git-sweep.js +3 -0
  21. package/dist/bin/graph-export.js +3 -0
  22. package/dist/bin/intercom-check.js +3 -0
  23. package/dist/bin/scan-tasks.js +3 -0
  24. package/dist/gateway/index.js +3 -0
  25. package/dist/hooks/bug-report-worker.js +3 -0
  26. package/dist/hooks/codex-stop-task-finalizer.js +3 -0
  27. package/dist/hooks/commit-complete.js +3 -0
  28. package/dist/hooks/error-recall.js +9 -8
  29. package/dist/hooks/ingest-worker.js +9 -2
  30. package/dist/hooks/ingest.js +3 -0
  31. package/dist/hooks/instructions-loaded.js +3 -0
  32. package/dist/hooks/notification.js +3 -0
  33. package/dist/hooks/post-compact.js +3 -0
  34. package/dist/hooks/post-tool-combined.js +18 -10
  35. package/dist/hooks/pre-compact.js +5 -1
  36. package/dist/hooks/pre-tool-use.js +3 -0
  37. package/dist/hooks/prompt-submit.js +9 -8
  38. package/dist/hooks/session-end.js +131 -3
  39. package/dist/hooks/session-start.js +9 -8
  40. package/dist/hooks/stop.js +7 -2
  41. package/dist/hooks/subagent-stop.js +3 -0
  42. package/dist/hooks/summary-worker.js +120 -18
  43. package/dist/index.js +25 -14
  44. package/dist/lib/exe-daemon.js +9 -8
  45. package/dist/lib/hybrid-search.js +9 -8
  46. package/dist/lib/store.js +3 -0
  47. package/dist/mcp/server.js +9 -8
  48. package/dist/runtime/index.js +25 -14
  49. package/dist/tui/App.js +3 -0
  50. package/package.json +1 -1
  51. package/src/commands/exe/save.md +9 -5
@@ -3576,6 +3576,9 @@ function classifyMemoryType(input) {
3576
3576
  if (tool.includes("commit") || text.includes("adr-") || text.includes("architectural decision")) return "adr";
3577
3577
  if (tool.includes("store_behavior") || tool.includes("behavior")) return "behavior";
3578
3578
  if (tool.includes("global_procedure") || text.includes("organization-wide procedures")) return "procedure";
3579
+ if (tool.includes("checkpoint") || text.startsWith("context checkpoint")) return "checkpoint";
3580
+ if (tool.includes("sessionsummary") || tool.includes("session-summary")) return "summary";
3581
+ if (tool.includes("sessionend") || text.startsWith("session ended")) return "summary";
3579
3582
  if (tool.includes("send_whatsapp") || tool.includes("conversation")) return "conversation";
3580
3583
  if (tool === "store_memory" || tool === "manual") return "observation";
3581
3584
  return "raw";
@@ -3575,6 +3575,9 @@ function classifyMemoryType(input) {
3575
3575
  if (tool.includes("commit") || text.includes("adr-") || text.includes("architectural decision")) return "adr";
3576
3576
  if (tool.includes("store_behavior") || tool.includes("behavior")) return "behavior";
3577
3577
  if (tool.includes("global_procedure") || text.includes("organization-wide procedures")) return "procedure";
3578
+ if (tool.includes("checkpoint") || text.startsWith("context checkpoint")) return "checkpoint";
3579
+ if (tool.includes("sessionsummary") || tool.includes("session-summary")) return "summary";
3580
+ if (tool.includes("sessionend") || text.startsWith("session ended")) return "summary";
3578
3581
  if (tool.includes("send_whatsapp") || tool.includes("conversation")) return "conversation";
3579
3582
  if (tool === "store_memory" || tool === "manual") return "observation";
3580
3583
  return "raw";
@@ -3065,6 +3065,9 @@ function classifyMemoryType(input) {
3065
3065
  if (tool.includes("commit") || text.includes("adr-") || text.includes("architectural decision")) return "adr";
3066
3066
  if (tool.includes("store_behavior") || tool.includes("behavior")) return "behavior";
3067
3067
  if (tool.includes("global_procedure") || text.includes("organization-wide procedures")) return "procedure";
3068
+ if (tool.includes("checkpoint") || text.startsWith("context checkpoint")) return "checkpoint";
3069
+ if (tool.includes("sessionsummary") || tool.includes("session-summary")) return "summary";
3070
+ if (tool.includes("sessionend") || text.startsWith("session ended")) return "summary";
3068
3071
  if (tool.includes("send_whatsapp") || tool.includes("conversation")) return "conversation";
3069
3072
  if (tool === "store_memory" || tool === "manual") return "observation";
3070
3073
  return "raw";
package/dist/bin/cli.js CHANGED
@@ -6839,6 +6839,9 @@ function classifyMemoryType(input) {
6839
6839
  if (tool.includes("commit") || text.includes("adr-") || text.includes("architectural decision")) return "adr";
6840
6840
  if (tool.includes("store_behavior") || tool.includes("behavior")) return "behavior";
6841
6841
  if (tool.includes("global_procedure") || text.includes("organization-wide procedures")) return "procedure";
6842
+ if (tool.includes("checkpoint") || text.startsWith("context checkpoint")) return "checkpoint";
6843
+ if (tool.includes("sessionsummary") || tool.includes("session-summary")) return "summary";
6844
+ if (tool.includes("sessionend") || text.startsWith("session ended")) return "summary";
6842
6845
  if (tool.includes("send_whatsapp") || tool.includes("conversation")) return "conversation";
6843
6846
  if (tool === "store_memory" || tool === "manual") return "observation";
6844
6847
  return "raw";
@@ -3723,6 +3723,9 @@ function classifyMemoryType(input) {
3723
3723
  if (tool.includes("commit") || text.includes("adr-") || text.includes("architectural decision")) return "adr";
3724
3724
  if (tool.includes("store_behavior") || tool.includes("behavior")) return "behavior";
3725
3725
  if (tool.includes("global_procedure") || text.includes("organization-wide procedures")) return "procedure";
3726
+ if (tool.includes("checkpoint") || text.startsWith("context checkpoint")) return "checkpoint";
3727
+ if (tool.includes("sessionsummary") || tool.includes("session-summary")) return "summary";
3728
+ if (tool.includes("sessionend") || text.startsWith("session ended")) return "summary";
3726
3729
  if (tool.includes("send_whatsapp") || tool.includes("conversation")) return "conversation";
3727
3730
  if (tool === "store_memory" || tool === "manual") return "observation";
3728
3731
  return "raw";
@@ -6738,6 +6738,9 @@ function classifyMemoryType(input) {
6738
6738
  if (tool.includes("commit") || text.includes("adr-") || text.includes("architectural decision")) return "adr";
6739
6739
  if (tool.includes("store_behavior") || tool.includes("behavior")) return "behavior";
6740
6740
  if (tool.includes("global_procedure") || text.includes("organization-wide procedures")) return "procedure";
6741
+ if (tool.includes("checkpoint") || text.startsWith("context checkpoint")) return "checkpoint";
6742
+ if (tool.includes("sessionsummary") || tool.includes("session-summary")) return "summary";
6743
+ if (tool.includes("sessionend") || text.startsWith("session ended")) return "summary";
6741
6744
  if (tool.includes("send_whatsapp") || tool.includes("conversation")) return "conversation";
6742
6745
  if (tool === "store_memory" || tool === "manual") return "observation";
6743
6746
  return "raw";
@@ -3120,6 +3120,9 @@ function classifyMemoryType(input) {
3120
3120
  if (tool.includes("commit") || text.includes("adr-") || text.includes("architectural decision")) return "adr";
3121
3121
  if (tool.includes("store_behavior") || tool.includes("behavior")) return "behavior";
3122
3122
  if (tool.includes("global_procedure") || text.includes("organization-wide procedures")) return "procedure";
3123
+ if (tool.includes("checkpoint") || text.startsWith("context checkpoint")) return "checkpoint";
3124
+ if (tool.includes("sessionsummary") || tool.includes("session-summary")) return "summary";
3125
+ if (tool.includes("sessionend") || text.startsWith("session ended")) return "summary";
3123
3126
  if (tool.includes("send_whatsapp") || tool.includes("conversation")) return "conversation";
3124
3127
  if (tool === "store_memory" || tool === "manual") return "observation";
3125
3128
  return "raw";
@@ -3054,6 +3054,9 @@ function classifyMemoryType(input) {
3054
3054
  if (tool.includes("commit") || text.includes("adr-") || text.includes("architectural decision")) return "adr";
3055
3055
  if (tool.includes("store_behavior") || tool.includes("behavior")) return "behavior";
3056
3056
  if (tool.includes("global_procedure") || text.includes("organization-wide procedures")) return "procedure";
3057
+ if (tool.includes("checkpoint") || text.startsWith("context checkpoint")) return "checkpoint";
3058
+ if (tool.includes("sessionsummary") || tool.includes("session-summary")) return "summary";
3059
+ if (tool.includes("sessionend") || text.startsWith("session ended")) return "summary";
3057
3060
  if (tool.includes("send_whatsapp") || tool.includes("conversation")) return "conversation";
3058
3061
  if (tool === "store_memory" || tool === "manual") return "observation";
3059
3062
  return "raw";
@@ -3712,6 +3712,9 @@ function classifyMemoryType(input) {
3712
3712
  if (tool.includes("commit") || text.includes("adr-") || text.includes("architectural decision")) return "adr";
3713
3713
  if (tool.includes("store_behavior") || tool.includes("behavior")) return "behavior";
3714
3714
  if (tool.includes("global_procedure") || text.includes("organization-wide procedures")) return "procedure";
3715
+ if (tool.includes("checkpoint") || text.startsWith("context checkpoint")) return "checkpoint";
3716
+ if (tool.includes("sessionsummary") || tool.includes("session-summary")) return "summary";
3717
+ if (tool.includes("sessionend") || text.startsWith("session ended")) return "summary";
3715
3718
  if (tool.includes("send_whatsapp") || tool.includes("conversation")) return "conversation";
3716
3719
  if (tool === "store_memory" || tool === "manual") return "observation";
3717
3720
  return "raw";
@@ -3084,6 +3084,9 @@ function classifyMemoryType(input) {
3084
3084
  if (tool.includes("commit") || text.includes("adr-") || text.includes("architectural decision")) return "adr";
3085
3085
  if (tool.includes("store_behavior") || tool.includes("behavior")) return "behavior";
3086
3086
  if (tool.includes("global_procedure") || text.includes("organization-wide procedures")) return "procedure";
3087
+ if (tool.includes("checkpoint") || text.startsWith("context checkpoint")) return "checkpoint";
3088
+ if (tool.includes("sessionsummary") || tool.includes("session-summary")) return "summary";
3089
+ if (tool.includes("sessionend") || text.startsWith("session ended")) return "summary";
3087
3090
  if (tool.includes("send_whatsapp") || tool.includes("conversation")) return "conversation";
3088
3091
  if (tool === "store_memory" || tool === "manual") return "observation";
3089
3092
  return "raw";
@@ -3054,6 +3054,9 @@ function classifyMemoryType(input) {
3054
3054
  if (tool.includes("commit") || text.includes("adr-") || text.includes("architectural decision")) return "adr";
3055
3055
  if (tool.includes("store_behavior") || tool.includes("behavior")) return "behavior";
3056
3056
  if (tool.includes("global_procedure") || text.includes("organization-wide procedures")) return "procedure";
3057
+ if (tool.includes("checkpoint") || text.startsWith("context checkpoint")) return "checkpoint";
3058
+ if (tool.includes("sessionsummary") || tool.includes("session-summary")) return "summary";
3059
+ if (tool.includes("sessionend") || text.startsWith("session ended")) return "summary";
3057
3060
  if (tool.includes("send_whatsapp") || tool.includes("conversation")) return "conversation";
3058
3061
  if (tool === "store_memory" || tool === "manual") return "observation";
3059
3062
  return "raw";
@@ -3473,6 +3473,9 @@ function classifyMemoryType(input) {
3473
3473
  if (tool.includes("commit") || text.includes("adr-") || text.includes("architectural decision")) return "adr";
3474
3474
  if (tool.includes("store_behavior") || tool.includes("behavior")) return "behavior";
3475
3475
  if (tool.includes("global_procedure") || text.includes("organization-wide procedures")) return "procedure";
3476
+ if (tool.includes("checkpoint") || text.startsWith("context checkpoint")) return "checkpoint";
3477
+ if (tool.includes("sessionsummary") || tool.includes("session-summary")) return "summary";
3478
+ if (tool.includes("sessionend") || text.startsWith("session ended")) return "summary";
3476
3479
  if (tool.includes("send_whatsapp") || tool.includes("conversation")) return "conversation";
3477
3480
  if (tool === "store_memory" || tool === "manual") return "observation";
3478
3481
  return "raw";
@@ -3539,6 +3539,9 @@ function classifyMemoryType(input) {
3539
3539
  if (tool.includes("commit") || text.includes("adr-") || text.includes("architectural decision")) return "adr";
3540
3540
  if (tool.includes("store_behavior") || tool.includes("behavior")) return "behavior";
3541
3541
  if (tool.includes("global_procedure") || text.includes("organization-wide procedures")) return "procedure";
3542
+ if (tool.includes("checkpoint") || text.startsWith("context checkpoint")) return "checkpoint";
3543
+ if (tool.includes("sessionsummary") || tool.includes("session-summary")) return "summary";
3544
+ if (tool.includes("sessionend") || text.startsWith("session ended")) return "summary";
3542
3545
  if (tool.includes("send_whatsapp") || tool.includes("conversation")) return "conversation";
3543
3546
  if (tool === "store_memory" || tool === "manual") return "observation";
3544
3547
  return "raw";
@@ -3578,6 +3578,9 @@ function classifyMemoryType(input) {
3578
3578
  if (tool.includes("commit") || text.includes("adr-") || text.includes("architectural decision")) return "adr";
3579
3579
  if (tool.includes("store_behavior") || tool.includes("behavior")) return "behavior";
3580
3580
  if (tool.includes("global_procedure") || text.includes("organization-wide procedures")) return "procedure";
3581
+ if (tool.includes("checkpoint") || text.startsWith("context checkpoint")) return "checkpoint";
3582
+ if (tool.includes("sessionsummary") || tool.includes("session-summary")) return "summary";
3583
+ if (tool.includes("sessionend") || text.startsWith("session ended")) return "summary";
3581
3584
  if (tool.includes("send_whatsapp") || tool.includes("conversation")) return "conversation";
3582
3585
  if (tool === "store_memory" || tool === "manual") return "observation";
3583
3586
  return "raw";
@@ -3068,6 +3068,9 @@ function classifyMemoryType(input) {
3068
3068
  if (tool.includes("commit") || text.includes("adr-") || text.includes("architectural decision")) return "adr";
3069
3069
  if (tool.includes("store_behavior") || tool.includes("behavior")) return "behavior";
3070
3070
  if (tool.includes("global_procedure") || text.includes("organization-wide procedures")) return "procedure";
3071
+ if (tool.includes("checkpoint") || text.startsWith("context checkpoint")) return "checkpoint";
3072
+ if (tool.includes("sessionsummary") || tool.includes("session-summary")) return "summary";
3073
+ if (tool.includes("sessionend") || text.startsWith("session ended")) return "summary";
3071
3074
  if (tool.includes("send_whatsapp") || tool.includes("conversation")) return "conversation";
3072
3075
  if (tool === "store_memory" || tool === "manual") return "observation";
3073
3076
  return "raw";
@@ -3043,6 +3043,9 @@ function classifyMemoryType(input) {
3043
3043
  if (tool.includes("commit") || text.includes("adr-") || text.includes("architectural decision")) return "adr";
3044
3044
  if (tool.includes("store_behavior") || tool.includes("behavior")) return "behavior";
3045
3045
  if (tool.includes("global_procedure") || text.includes("organization-wide procedures")) return "procedure";
3046
+ if (tool.includes("checkpoint") || text.startsWith("context checkpoint")) return "checkpoint";
3047
+ if (tool.includes("sessionsummary") || tool.includes("session-summary")) return "summary";
3048
+ if (tool.includes("sessionend") || text.startsWith("session ended")) return "summary";
3046
3049
  if (tool.includes("send_whatsapp") || tool.includes("conversation")) return "conversation";
3047
3050
  if (tool === "store_memory" || tool === "manual") return "observation";
3048
3051
  return "raw";
@@ -5657,7 +5660,7 @@ async function hybridSearch(queryText, agentId, options) {
5657
5660
  }
5658
5661
  if (lists.length === 0) return [];
5659
5662
  if (lists.length === 1 && !effectiveIsBroad) return lists[0].slice(0, limit);
5660
- const rrfLimit = effectiveIsBroad ? Math.max(limit * 5, 150) : limit;
5663
+ const rrfLimit = effectiveIsBroad ? Math.max(limit * 5, broadFetchTopK) : limit;
5661
5664
  let merged = lists.length === 1 ? lists[0].slice(0, rrfLimit) : rrfMergeMulti(lists, rrfLimit, RRF_K, weights);
5662
5665
  let graphContextMap = /* @__PURE__ */ new Map();
5663
5666
  let entityBoostRan = false;
@@ -5678,6 +5681,7 @@ async function hybridSearch(queryText, agentId, options) {
5678
5681
  returnTopK: 5
5679
5682
  };
5680
5683
  let rerankedAndBlended = null;
5684
+ const rerankReturnLimit = Math.max(limit, auto.returnTopK ?? 5);
5681
5685
  if (effectiveIsBroad && auto.enabled && rerankerAvailable) {
5682
5686
  const cardinality2 = await estimateCardinality(agentId, effectiveOptions);
5683
5687
  if (cardinality2 > auto.broadQueryMinCardinality) {
@@ -5689,16 +5693,16 @@ async function hybridSearch(queryText, agentId, options) {
5689
5693
  text: m.raw_text,
5690
5694
  context: graphContextMap.get(m.id)
5691
5695
  }));
5692
- const scored = await rerankWithContext2(effectiveQuery, candidates, auto.returnTopK);
5696
+ const scored = await rerankWithContext2(effectiveQuery, candidates, rerankReturnLimit);
5693
5697
  rerankedRecords = scored.map((s) => merged[s.index]);
5694
5698
  } else {
5695
5699
  const { rerank: rerank2 } = await Promise.resolve().then(() => (init_reranker(), reranker_exports));
5696
- rerankedRecords = await rerank2(effectiveQuery, merged, auto.returnTopK);
5700
+ rerankedRecords = await rerank2(effectiveQuery, merged, rerankReturnLimit);
5697
5701
  }
5698
5702
  if (rerankedRecords.length > 0) {
5699
5703
  rerankedAndBlended = rrfMergeMulti(
5700
5704
  [rerankedRecords],
5701
- auto.returnTopK,
5705
+ rerankReturnLimit,
5702
5706
  RRF_K
5703
5707
  );
5704
5708
  }
@@ -5706,10 +5710,7 @@ async function hybridSearch(queryText, agentId, options) {
5706
5710
  }
5707
5711
  }
5708
5712
  }
5709
- const finalResults = (rerankedAndBlended ?? merged).slice(
5710
- 0,
5711
- rerankedAndBlended ? auto.returnTopK : limit
5712
- );
5713
+ const finalResults = (rerankedAndBlended ?? merged).slice(0, limit);
5713
5714
  if (options?.includeSource && finalResults.length > 0) {
5714
5715
  await attachDocumentMetadata(finalResults);
5715
5716
  }
@@ -3087,6 +3087,9 @@ function classifyMemoryType(input) {
3087
3087
  if (tool.includes("commit") || text.includes("adr-") || text.includes("architectural decision")) return "adr";
3088
3088
  if (tool.includes("store_behavior") || tool.includes("behavior")) return "behavior";
3089
3089
  if (tool.includes("global_procedure") || text.includes("organization-wide procedures")) return "procedure";
3090
+ if (tool.includes("checkpoint") || text.startsWith("context checkpoint")) return "checkpoint";
3091
+ if (tool.includes("sessionsummary") || tool.includes("session-summary")) return "summary";
3092
+ if (tool.includes("sessionend") || text.startsWith("session ended")) return "summary";
3090
3093
  if (tool.includes("send_whatsapp") || tool.includes("conversation")) return "conversation";
3091
3094
  if (tool === "store_memory" || tool === "manual") return "observation";
3092
3095
  return "raw";
@@ -8525,6 +8528,7 @@ try {
8525
8528
  }
8526
8529
  const toolBreakdown = [...tools.entries()].sort((a, b) => b[1] - a[1]).slice(0, 5).map(([t, c]) => `${t}(${c})`).join(", ");
8527
8530
  const summaryParts = [
8531
+ `CONTEXT CHECKPOINT [auto:session-cleanup]`,
8528
8532
  `Session: ${agentName} | ${(/* @__PURE__ */ new Date()).toISOString().split("T")[0]} | ${[...projects].join(", ")}`,
8529
8533
  `Tool calls: ${memories.rows.length} recent \u2014 ${toolBreakdown}`
8530
8534
  ];
@@ -8548,7 +8552,9 @@ try {
8548
8552
  project_name: getProjectName(),
8549
8553
  has_error: errors.length > 0,
8550
8554
  raw_text: summaryText,
8551
- vector
8555
+ vector,
8556
+ importance: 8,
8557
+ memory_type: "checkpoint"
8552
8558
  });
8553
8559
  await flushBatch();
8554
8560
  }
@@ -3076,6 +3076,9 @@ function classifyMemoryType(input) {
3076
3076
  if (tool.includes("commit") || text.includes("adr-") || text.includes("architectural decision")) return "adr";
3077
3077
  if (tool.includes("store_behavior") || tool.includes("behavior")) return "behavior";
3078
3078
  if (tool.includes("global_procedure") || text.includes("organization-wide procedures")) return "procedure";
3079
+ if (tool.includes("checkpoint") || text.startsWith("context checkpoint")) return "checkpoint";
3080
+ if (tool.includes("sessionsummary") || tool.includes("session-summary")) return "summary";
3081
+ if (tool.includes("sessionend") || text.startsWith("session ended")) return "summary";
3079
3082
  if (tool.includes("send_whatsapp") || tool.includes("conversation")) return "conversation";
3080
3083
  if (tool === "store_memory" || tool === "manual") return "observation";
3081
3084
  return "raw";
@@ -3065,6 +3065,9 @@ function classifyMemoryType(input) {
3065
3065
  if (tool.includes("commit") || text.includes("adr-") || text.includes("architectural decision")) return "adr";
3066
3066
  if (tool.includes("store_behavior") || tool.includes("behavior")) return "behavior";
3067
3067
  if (tool.includes("global_procedure") || text.includes("organization-wide procedures")) return "procedure";
3068
+ if (tool.includes("checkpoint") || text.startsWith("context checkpoint")) return "checkpoint";
3069
+ if (tool.includes("sessionsummary") || tool.includes("session-summary")) return "summary";
3070
+ if (tool.includes("sessionend") || text.startsWith("session ended")) return "summary";
3068
3071
  if (tool.includes("send_whatsapp") || tool.includes("conversation")) return "conversation";
3069
3072
  if (tool === "store_memory" || tool === "manual") return "observation";
3070
3073
  return "raw";
@@ -6688,6 +6688,9 @@ function classifyMemoryType(input) {
6688
6688
  if (tool.includes("commit") || text.includes("adr-") || text.includes("architectural decision")) return "adr";
6689
6689
  if (tool.includes("store_behavior") || tool.includes("behavior")) return "behavior";
6690
6690
  if (tool.includes("global_procedure") || text.includes("organization-wide procedures")) return "procedure";
6691
+ if (tool.includes("checkpoint") || text.startsWith("context checkpoint")) return "checkpoint";
6692
+ if (tool.includes("sessionsummary") || tool.includes("session-summary")) return "summary";
6693
+ if (tool.includes("sessionend") || text.startsWith("session ended")) return "summary";
6691
6694
  if (tool.includes("send_whatsapp") || tool.includes("conversation")) return "conversation";
6692
6695
  if (tool === "store_memory" || tool === "manual") return "observation";
6693
6696
  return "raw";
@@ -3054,6 +3054,9 @@ function classifyMemoryType(input) {
3054
3054
  if (tool.includes("commit") || text.includes("adr-") || text.includes("architectural decision")) return "adr";
3055
3055
  if (tool.includes("store_behavior") || tool.includes("behavior")) return "behavior";
3056
3056
  if (tool.includes("global_procedure") || text.includes("organization-wide procedures")) return "procedure";
3057
+ if (tool.includes("checkpoint") || text.startsWith("context checkpoint")) return "checkpoint";
3058
+ if (tool.includes("sessionsummary") || tool.includes("session-summary")) return "summary";
3059
+ if (tool.includes("sessionend") || text.startsWith("session ended")) return "summary";
3057
3060
  if (tool.includes("send_whatsapp") || tool.includes("conversation")) return "conversation";
3058
3061
  if (tool === "store_memory" || tool === "manual") return "observation";
3059
3062
  return "raw";
@@ -3153,6 +3153,9 @@ function classifyMemoryType(input) {
3153
3153
  if (tool.includes("commit") || text.includes("adr-") || text.includes("architectural decision")) return "adr";
3154
3154
  if (tool.includes("store_behavior") || tool.includes("behavior")) return "behavior";
3155
3155
  if (tool.includes("global_procedure") || text.includes("organization-wide procedures")) return "procedure";
3156
+ if (tool.includes("checkpoint") || text.startsWith("context checkpoint")) return "checkpoint";
3157
+ if (tool.includes("sessionsummary") || tool.includes("session-summary")) return "summary";
3158
+ if (tool.includes("sessionend") || text.startsWith("session ended")) return "summary";
3156
3159
  if (tool.includes("send_whatsapp") || tool.includes("conversation")) return "conversation";
3157
3160
  if (tool === "store_memory" || tool === "manual") return "observation";
3158
3161
  return "raw";
@@ -6759,6 +6759,9 @@ function classifyMemoryType(input) {
6759
6759
  if (tool.includes("commit") || text.includes("adr-") || text.includes("architectural decision")) return "adr";
6760
6760
  if (tool.includes("store_behavior") || tool.includes("behavior")) return "behavior";
6761
6761
  if (tool.includes("global_procedure") || text.includes("organization-wide procedures")) return "procedure";
6762
+ if (tool.includes("checkpoint") || text.startsWith("context checkpoint")) return "checkpoint";
6763
+ if (tool.includes("sessionsummary") || tool.includes("session-summary")) return "summary";
6764
+ if (tool.includes("sessionend") || text.startsWith("session ended")) return "summary";
6762
6765
  if (tool.includes("send_whatsapp") || tool.includes("conversation")) return "conversation";
6763
6766
  if (tool === "store_memory" || tool === "manual") return "observation";
6764
6767
  return "raw";
@@ -3711,6 +3711,9 @@ function classifyMemoryType(input) {
3711
3711
  if (tool.includes("commit") || text.includes("adr-") || text.includes("architectural decision")) return "adr";
3712
3712
  if (tool.includes("store_behavior") || tool.includes("behavior")) return "behavior";
3713
3713
  if (tool.includes("global_procedure") || text.includes("organization-wide procedures")) return "procedure";
3714
+ if (tool.includes("checkpoint") || text.startsWith("context checkpoint")) return "checkpoint";
3715
+ if (tool.includes("sessionsummary") || tool.includes("session-summary")) return "summary";
3716
+ if (tool.includes("sessionend") || text.startsWith("session ended")) return "summary";
3714
3717
  if (tool.includes("send_whatsapp") || tool.includes("conversation")) return "conversation";
3715
3718
  if (tool === "store_memory" || tool === "manual") return "observation";
3716
3719
  return "raw";
@@ -3453,6 +3453,9 @@ function classifyMemoryType(input) {
3453
3453
  if (tool.includes("commit") || text.includes("adr-") || text.includes("architectural decision")) return "adr";
3454
3454
  if (tool.includes("store_behavior") || tool.includes("behavior")) return "behavior";
3455
3455
  if (tool.includes("global_procedure") || text.includes("organization-wide procedures")) return "procedure";
3456
+ if (tool.includes("checkpoint") || text.startsWith("context checkpoint")) return "checkpoint";
3457
+ if (tool.includes("sessionsummary") || tool.includes("session-summary")) return "summary";
3458
+ if (tool.includes("sessionend") || text.startsWith("session ended")) return "summary";
3456
3459
  if (tool.includes("send_whatsapp") || tool.includes("conversation")) return "conversation";
3457
3460
  if (tool === "store_memory" || tool === "manual") return "observation";
3458
3461
  return "raw";
@@ -3137,6 +3137,9 @@ function classifyMemoryType(input) {
3137
3137
  if (tool.includes("commit") || text.includes("adr-") || text.includes("architectural decision")) return "adr";
3138
3138
  if (tool.includes("store_behavior") || tool.includes("behavior")) return "behavior";
3139
3139
  if (tool.includes("global_procedure") || text.includes("organization-wide procedures")) return "procedure";
3140
+ if (tool.includes("checkpoint") || text.startsWith("context checkpoint")) return "checkpoint";
3141
+ if (tool.includes("sessionsummary") || tool.includes("session-summary")) return "summary";
3142
+ if (tool.includes("sessionend") || text.startsWith("session ended")) return "summary";
3140
3143
  if (tool.includes("send_whatsapp") || tool.includes("conversation")) return "conversation";
3141
3144
  if (tool === "store_memory" || tool === "manual") return "observation";
3142
3145
  return "raw";
@@ -6753,6 +6753,9 @@ function classifyMemoryType(input) {
6753
6753
  if (tool.includes("commit") || text.includes("adr-") || text.includes("architectural decision")) return "adr";
6754
6754
  if (tool.includes("store_behavior") || tool.includes("behavior")) return "behavior";
6755
6755
  if (tool.includes("global_procedure") || text.includes("organization-wide procedures")) return "procedure";
6756
+ if (tool.includes("checkpoint") || text.startsWith("context checkpoint")) return "checkpoint";
6757
+ if (tool.includes("sessionsummary") || tool.includes("session-summary")) return "summary";
6758
+ if (tool.includes("sessionend") || text.startsWith("session ended")) return "summary";
6756
6759
  if (tool.includes("send_whatsapp") || tool.includes("conversation")) return "conversation";
6757
6760
  if (tool === "store_memory" || tool === "manual") return "observation";
6758
6761
  return "raw";
@@ -3045,6 +3045,9 @@ function classifyMemoryType(input2) {
3045
3045
  if (tool.includes("commit") || text.includes("adr-") || text.includes("architectural decision")) return "adr";
3046
3046
  if (tool.includes("store_behavior") || tool.includes("behavior")) return "behavior";
3047
3047
  if (tool.includes("global_procedure") || text.includes("organization-wide procedures")) return "procedure";
3048
+ if (tool.includes("checkpoint") || text.startsWith("context checkpoint")) return "checkpoint";
3049
+ if (tool.includes("sessionsummary") || tool.includes("session-summary")) return "summary";
3050
+ if (tool.includes("sessionend") || text.startsWith("session ended")) return "summary";
3048
3051
  if (tool.includes("send_whatsapp") || tool.includes("conversation")) return "conversation";
3049
3052
  if (tool === "store_memory" || tool === "manual") return "observation";
3050
3053
  return "raw";
@@ -5766,7 +5769,7 @@ async function hybridSearch(queryText, agentId, options) {
5766
5769
  }
5767
5770
  if (lists.length === 0) return [];
5768
5771
  if (lists.length === 1 && !effectiveIsBroad) return lists[0].slice(0, limit);
5769
- const rrfLimit = effectiveIsBroad ? Math.max(limit * 5, 150) : limit;
5772
+ const rrfLimit = effectiveIsBroad ? Math.max(limit * 5, broadFetchTopK) : limit;
5770
5773
  let merged = lists.length === 1 ? lists[0].slice(0, rrfLimit) : rrfMergeMulti(lists, rrfLimit, RRF_K, weights);
5771
5774
  let graphContextMap = /* @__PURE__ */ new Map();
5772
5775
  let entityBoostRan = false;
@@ -5787,6 +5790,7 @@ async function hybridSearch(queryText, agentId, options) {
5787
5790
  returnTopK: 5
5788
5791
  };
5789
5792
  let rerankedAndBlended = null;
5793
+ const rerankReturnLimit = Math.max(limit, auto.returnTopK ?? 5);
5790
5794
  if (effectiveIsBroad && auto.enabled && rerankerAvailable) {
5791
5795
  const cardinality2 = await estimateCardinality(agentId, effectiveOptions);
5792
5796
  if (cardinality2 > auto.broadQueryMinCardinality) {
@@ -5798,16 +5802,16 @@ async function hybridSearch(queryText, agentId, options) {
5798
5802
  text: m.raw_text,
5799
5803
  context: graphContextMap.get(m.id)
5800
5804
  }));
5801
- const scored = await rerankWithContext2(effectiveQuery, candidates, auto.returnTopK);
5805
+ const scored = await rerankWithContext2(effectiveQuery, candidates, rerankReturnLimit);
5802
5806
  rerankedRecords = scored.map((s) => merged[s.index]);
5803
5807
  } else {
5804
5808
  const { rerank: rerank2 } = await Promise.resolve().then(() => (init_reranker(), reranker_exports));
5805
- rerankedRecords = await rerank2(effectiveQuery, merged, auto.returnTopK);
5809
+ rerankedRecords = await rerank2(effectiveQuery, merged, rerankReturnLimit);
5806
5810
  }
5807
5811
  if (rerankedRecords.length > 0) {
5808
5812
  rerankedAndBlended = rrfMergeMulti(
5809
5813
  [rerankedRecords],
5810
- auto.returnTopK,
5814
+ rerankReturnLimit,
5811
5815
  RRF_K
5812
5816
  );
5813
5817
  }
@@ -5815,10 +5819,7 @@ async function hybridSearch(queryText, agentId, options) {
5815
5819
  }
5816
5820
  }
5817
5821
  }
5818
- const finalResults = (rerankedAndBlended ?? merged).slice(
5819
- 0,
5820
- rerankedAndBlended ? auto.returnTopK : limit
5821
- );
5822
+ const finalResults = (rerankedAndBlended ?? merged).slice(0, limit);
5822
5823
  if (options?.includeSource && finalResults.length > 0) {
5823
5824
  await attachDocumentMetadata(finalResults);
5824
5825
  }
@@ -544,8 +544,15 @@ process.stdin.on("end", async () => {
544
544
  `);
545
545
  process.exit(0);
546
546
  }
547
- const rawText = extractSemanticText(data.tool_name, data.tool_input, data.tool_response);
548
- if (rawText.length < 50) {
547
+ let rawText = extractSemanticText(data.tool_name, data.tool_input, data.tool_response);
548
+ if (rawText.trim().length < 10) {
549
+ const inputPreview = JSON.stringify(data.tool_input ?? "").slice(0, 500);
550
+ const outputPreview = JSON.stringify(data.tool_response ?? "").slice(0, 500);
551
+ rawText = `Tool call: ${data.tool_name}
552
+ Input: ${inputPreview}
553
+ Output: ${outputPreview}`;
554
+ }
555
+ if (rawText.trim().length < 10) {
549
556
  process.exit(0);
550
557
  }
551
558
  const agentId = process.env.AGENT_ID ?? "default";
@@ -3221,6 +3221,9 @@ function classifyMemoryType(input2) {
3221
3221
  if (tool.includes("commit") || text.includes("adr-") || text.includes("architectural decision")) return "adr";
3222
3222
  if (tool.includes("store_behavior") || tool.includes("behavior")) return "behavior";
3223
3223
  if (tool.includes("global_procedure") || text.includes("organization-wide procedures")) return "procedure";
3224
+ if (tool.includes("checkpoint") || text.startsWith("context checkpoint")) return "checkpoint";
3225
+ if (tool.includes("sessionsummary") || tool.includes("session-summary")) return "summary";
3226
+ if (tool.includes("sessionend") || text.startsWith("session ended")) return "summary";
3224
3227
  if (tool.includes("send_whatsapp") || tool.includes("conversation")) return "conversation";
3225
3228
  if (tool === "store_memory" || tool === "manual") return "observation";
3226
3229
  return "raw";
@@ -3056,6 +3056,9 @@ function classifyMemoryType(input2) {
3056
3056
  if (tool.includes("commit") || text.includes("adr-") || text.includes("architectural decision")) return "adr";
3057
3057
  if (tool.includes("store_behavior") || tool.includes("behavior")) return "behavior";
3058
3058
  if (tool.includes("global_procedure") || text.includes("organization-wide procedures")) return "procedure";
3059
+ if (tool.includes("checkpoint") || text.startsWith("context checkpoint")) return "checkpoint";
3060
+ if (tool.includes("sessionsummary") || tool.includes("session-summary")) return "summary";
3061
+ if (tool.includes("sessionend") || text.startsWith("session ended")) return "summary";
3059
3062
  if (tool.includes("send_whatsapp") || tool.includes("conversation")) return "conversation";
3060
3063
  if (tool === "store_memory" || tool === "manual") return "observation";
3061
3064
  return "raw";
@@ -3056,6 +3056,9 @@ function classifyMemoryType(input2) {
3056
3056
  if (tool.includes("commit") || text.includes("adr-") || text.includes("architectural decision")) return "adr";
3057
3057
  if (tool.includes("store_behavior") || tool.includes("behavior")) return "behavior";
3058
3058
  if (tool.includes("global_procedure") || text.includes("organization-wide procedures")) return "procedure";
3059
+ if (tool.includes("checkpoint") || text.startsWith("context checkpoint")) return "checkpoint";
3060
+ if (tool.includes("sessionsummary") || tool.includes("session-summary")) return "summary";
3061
+ if (tool.includes("sessionend") || text.startsWith("session ended")) return "summary";
3059
3062
  if (tool.includes("send_whatsapp") || tool.includes("conversation")) return "conversation";
3060
3063
  if (tool === "store_memory" || tool === "manual") return "observation";
3061
3064
  return "raw";
@@ -3476,6 +3476,9 @@ function classifyMemoryType(input2) {
3476
3476
  if (tool.includes("commit") || text.includes("adr-") || text.includes("architectural decision")) return "adr";
3477
3477
  if (tool.includes("store_behavior") || tool.includes("behavior")) return "behavior";
3478
3478
  if (tool.includes("global_procedure") || text.includes("organization-wide procedures")) return "procedure";
3479
+ if (tool.includes("checkpoint") || text.startsWith("context checkpoint")) return "checkpoint";
3480
+ if (tool.includes("sessionsummary") || tool.includes("session-summary")) return "summary";
3481
+ if (tool.includes("sessionend") || text.startsWith("session ended")) return "summary";
3479
3482
  if (tool.includes("send_whatsapp") || tool.includes("conversation")) return "conversation";
3480
3483
  if (tool === "store_memory" || tool === "manual") return "observation";
3481
3484
  return "raw";
@@ -3220,6 +3220,9 @@ function classifyMemoryType(input2) {
3220
3220
  if (tool.includes("commit") || text.includes("adr-") || text.includes("architectural decision")) return "adr";
3221
3221
  if (tool.includes("store_behavior") || tool.includes("behavior")) return "behavior";
3222
3222
  if (tool.includes("global_procedure") || text.includes("organization-wide procedures")) return "procedure";
3223
+ if (tool.includes("checkpoint") || text.startsWith("context checkpoint")) return "checkpoint";
3224
+ if (tool.includes("sessionsummary") || tool.includes("session-summary")) return "summary";
3225
+ if (tool.includes("sessionend") || text.startsWith("session ended")) return "summary";
3223
3226
  if (tool.includes("send_whatsapp") || tool.includes("conversation")) return "conversation";
3224
3227
  if (tool === "store_memory" || tool === "manual") return "observation";
3225
3228
  return "raw";
@@ -5837,7 +5840,7 @@ async function hybridSearch(queryText, agentId, options) {
5837
5840
  }
5838
5841
  if (lists.length === 0) return [];
5839
5842
  if (lists.length === 1 && !effectiveIsBroad) return lists[0].slice(0, limit);
5840
- const rrfLimit = effectiveIsBroad ? Math.max(limit * 5, 150) : limit;
5843
+ const rrfLimit = effectiveIsBroad ? Math.max(limit * 5, broadFetchTopK) : limit;
5841
5844
  let merged = lists.length === 1 ? lists[0].slice(0, rrfLimit) : rrfMergeMulti(lists, rrfLimit, RRF_K, weights);
5842
5845
  let graphContextMap = /* @__PURE__ */ new Map();
5843
5846
  let entityBoostRan = false;
@@ -5858,6 +5861,7 @@ async function hybridSearch(queryText, agentId, options) {
5858
5861
  returnTopK: 5
5859
5862
  };
5860
5863
  let rerankedAndBlended = null;
5864
+ const rerankReturnLimit = Math.max(limit, auto.returnTopK ?? 5);
5861
5865
  if (effectiveIsBroad && auto.enabled && rerankerAvailable) {
5862
5866
  const cardinality2 = await estimateCardinality(agentId, effectiveOptions);
5863
5867
  if (cardinality2 > auto.broadQueryMinCardinality) {
@@ -5869,16 +5873,16 @@ async function hybridSearch(queryText, agentId, options) {
5869
5873
  text: m.raw_text,
5870
5874
  context: graphContextMap.get(m.id)
5871
5875
  }));
5872
- const scored = await rerankWithContext2(effectiveQuery, candidates, auto.returnTopK);
5876
+ const scored = await rerankWithContext2(effectiveQuery, candidates, rerankReturnLimit);
5873
5877
  rerankedRecords = scored.map((s) => merged[s.index]);
5874
5878
  } else {
5875
5879
  const { rerank: rerank2 } = await Promise.resolve().then(() => (init_reranker(), reranker_exports));
5876
- rerankedRecords = await rerank2(effectiveQuery, merged, auto.returnTopK);
5880
+ rerankedRecords = await rerank2(effectiveQuery, merged, rerankReturnLimit);
5877
5881
  }
5878
5882
  if (rerankedRecords.length > 0) {
5879
5883
  rerankedAndBlended = rrfMergeMulti(
5880
5884
  [rerankedRecords],
5881
- auto.returnTopK,
5885
+ rerankReturnLimit,
5882
5886
  RRF_K
5883
5887
  );
5884
5888
  }
@@ -5886,10 +5890,7 @@ async function hybridSearch(queryText, agentId, options) {
5886
5890
  }
5887
5891
  }
5888
5892
  }
5889
- const finalResults = (rerankedAndBlended ?? merged).slice(
5890
- 0,
5891
- rerankedAndBlended ? auto.returnTopK : limit
5892
- );
5893
+ const finalResults = (rerankedAndBlended ?? merged).slice(0, limit);
5893
5894
  if (options?.includeSource && finalResults.length > 0) {
5894
5895
  await attachDocumentMetadata(finalResults);
5895
5896
  }
@@ -6924,8 +6925,15 @@ process.stdin.on("end", async () => {
6924
6925
  try {
6925
6926
  const data = JSON.parse(input);
6926
6927
  const { extractSemanticText: extractSemanticText2 } = await Promise.resolve().then(() => (init_content_extractor(), content_extractor_exports));
6927
- const rawText = extractSemanticText2(data.tool_name, data.tool_input, data.tool_response);
6928
- if (rawText.length >= 50) {
6928
+ let rawText = extractSemanticText2(data.tool_name, data.tool_input, data.tool_response);
6929
+ if (rawText.trim().length < 10) {
6930
+ const inputPreview = JSON.stringify(data.tool_input ?? "").slice(0, 500);
6931
+ const outputPreview = JSON.stringify(data.tool_response ?? "").slice(0, 500);
6932
+ rawText = `Tool call: ${data.tool_name}
6933
+ Input: ${inputPreview}
6934
+ Output: ${outputPreview}`;
6935
+ }
6936
+ if (rawText.trim().length >= 10) {
6929
6937
  const { writeMemoryViaDaemon: writeMemoryViaDaemon2 } = await Promise.resolve().then(() => (init_memory_queue_client(), memory_queue_client_exports));
6930
6938
  const { detectError: detectError2 } = await Promise.resolve().then(() => (init_error_detector(), error_detector_exports));
6931
6939
  const { getProjectName: getProjectName2 } = await Promise.resolve().then(() => (init_project_name(), project_name_exports));
@@ -6737,6 +6737,9 @@ function classifyMemoryType(input2) {
6737
6737
  if (tool.includes("commit") || text.includes("adr-") || text.includes("architectural decision")) return "adr";
6738
6738
  if (tool.includes("store_behavior") || tool.includes("behavior")) return "behavior";
6739
6739
  if (tool.includes("global_procedure") || text.includes("organization-wide procedures")) return "procedure";
6740
+ if (tool.includes("checkpoint") || text.startsWith("context checkpoint")) return "checkpoint";
6741
+ if (tool.includes("sessionsummary") || tool.includes("session-summary")) return "summary";
6742
+ if (tool.includes("sessionend") || text.startsWith("session ended")) return "summary";
6740
6743
  if (tool.includes("send_whatsapp") || tool.includes("conversation")) return "conversation";
6741
6744
  if (tool === "store_memory" || tool === "manual") return "observation";
6742
6745
  return "raw";
@@ -8433,7 +8436,8 @@ ${taskLines}`);
8433
8436
  project_name: projectName,
8434
8437
  timestamp: (/* @__PURE__ */ new Date()).toISOString(),
8435
8438
  importance: 8,
8436
- task_id: taskId
8439
+ task_id: taskId,
8440
+ memory_type: "checkpoint"
8437
8441
  });
8438
8442
  } catch {
8439
8443
  }