agent-recall-core 3.4.31 → 3.4.36

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 (270) hide show
  1. package/README.md +121 -441
  2. package/dist/digest/store.d.ts.map +1 -1
  3. package/dist/digest/store.js +4 -3
  4. package/dist/digest/store.js.map +1 -1
  5. package/dist/display/board-render.d.ts +61 -0
  6. package/dist/display/board-render.d.ts.map +1 -0
  7. package/dist/display/board-render.js +223 -0
  8. package/dist/display/board-render.js.map +1 -0
  9. package/dist/helpers/alignment-patterns.d.ts +10 -0
  10. package/dist/helpers/alignment-patterns.d.ts.map +1 -1
  11. package/dist/helpers/alignment-patterns.js +5 -1
  12. package/dist/helpers/alignment-patterns.js.map +1 -1
  13. package/dist/helpers/blind-spots.d.ts +86 -0
  14. package/dist/helpers/blind-spots.d.ts.map +1 -0
  15. package/dist/helpers/blind-spots.js +205 -0
  16. package/dist/helpers/blind-spots.js.map +1 -0
  17. package/dist/helpers/conflict-scan.d.ts +10 -0
  18. package/dist/helpers/conflict-scan.d.ts.map +1 -1
  19. package/dist/helpers/conflict-scan.js +3 -3
  20. package/dist/helpers/conflict-scan.js.map +1 -1
  21. package/dist/helpers/semantic-match.d.ts +82 -0
  22. package/dist/helpers/semantic-match.d.ts.map +1 -0
  23. package/dist/helpers/semantic-match.js +229 -0
  24. package/dist/helpers/semantic-match.js.map +1 -0
  25. package/dist/index.d.ts +57 -17
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +60 -14
  28. package/dist/index.js.map +1 -1
  29. package/dist/palace/awareness.d.ts +30 -0
  30. package/dist/palace/awareness.d.ts.map +1 -1
  31. package/dist/palace/awareness.js +65 -2
  32. package/dist/palace/awareness.js.map +1 -1
  33. package/dist/palace/consolidate.d.ts.map +1 -1
  34. package/dist/palace/consolidate.js +17 -0
  35. package/dist/palace/consolidate.js.map +1 -1
  36. package/dist/palace/decay-pass.d.ts +46 -0
  37. package/dist/palace/decay-pass.d.ts.map +1 -0
  38. package/dist/palace/decay-pass.js +87 -0
  39. package/dist/palace/decay-pass.js.map +1 -0
  40. package/dist/palace/insights-index.d.ts.map +1 -1
  41. package/dist/palace/insights-index.js +4 -2
  42. package/dist/palace/insights-index.js.map +1 -1
  43. package/dist/palace/skills.d.ts +41 -2
  44. package/dist/palace/skills.d.ts.map +1 -1
  45. package/dist/palace/skills.js +106 -4
  46. package/dist/palace/skills.js.map +1 -1
  47. package/dist/prompts/consolidation-prompt.d.ts +25 -0
  48. package/dist/prompts/consolidation-prompt.d.ts.map +1 -0
  49. package/dist/prompts/consolidation-prompt.js +91 -0
  50. package/dist/prompts/consolidation-prompt.js.map +1 -0
  51. package/dist/storage/ab-experiment.d.ts +184 -0
  52. package/dist/storage/ab-experiment.d.ts.map +1 -0
  53. package/dist/storage/ab-experiment.js +294 -0
  54. package/dist/storage/ab-experiment.js.map +1 -0
  55. package/dist/storage/archive-prune.d.ts +56 -0
  56. package/dist/storage/archive-prune.d.ts.map +1 -0
  57. package/dist/storage/archive-prune.js +118 -0
  58. package/dist/storage/archive-prune.js.map +1 -0
  59. package/dist/storage/archive-write.d.ts +38 -0
  60. package/dist/storage/archive-write.d.ts.map +1 -0
  61. package/dist/storage/archive-write.js +98 -0
  62. package/dist/storage/archive-write.js.map +1 -0
  63. package/dist/storage/blind-spots-store.d.ts +30 -0
  64. package/dist/storage/blind-spots-store.d.ts.map +1 -0
  65. package/dist/storage/blind-spots-store.js +91 -0
  66. package/dist/storage/blind-spots-store.js.map +1 -0
  67. package/dist/storage/capture-router.d.ts +60 -0
  68. package/dist/storage/capture-router.d.ts.map +1 -0
  69. package/dist/storage/capture-router.js +133 -0
  70. package/dist/storage/capture-router.js.map +1 -0
  71. package/dist/storage/classification.d.ts +36 -0
  72. package/dist/storage/classification.d.ts.map +1 -0
  73. package/dist/storage/classification.js +78 -0
  74. package/dist/storage/classification.js.map +1 -0
  75. package/dist/storage/consolidation-queue.d.ts +39 -0
  76. package/dist/storage/consolidation-queue.d.ts.map +1 -0
  77. package/dist/storage/consolidation-queue.js +120 -0
  78. package/dist/storage/consolidation-queue.js.map +1 -0
  79. package/dist/storage/content-guard.d.ts +74 -0
  80. package/dist/storage/content-guard.d.ts.map +1 -0
  81. package/dist/storage/content-guard.js +179 -0
  82. package/dist/storage/content-guard.js.map +1 -0
  83. package/dist/storage/corrections.d.ts +329 -22
  84. package/dist/storage/corrections.d.ts.map +1 -1
  85. package/dist/storage/corrections.js +788 -58
  86. package/dist/storage/corrections.js.map +1 -1
  87. package/dist/storage/durable-intent.d.ts +49 -0
  88. package/dist/storage/durable-intent.d.ts.map +1 -0
  89. package/dist/storage/durable-intent.js +124 -0
  90. package/dist/storage/durable-intent.js.map +1 -0
  91. package/dist/storage/filelock.d.ts +6 -0
  92. package/dist/storage/filelock.d.ts.map +1 -1
  93. package/dist/storage/filelock.js +6 -1
  94. package/dist/storage/filelock.js.map +1 -1
  95. package/dist/storage/memory-protocol.d.ts +19 -0
  96. package/dist/storage/memory-protocol.d.ts.map +1 -0
  97. package/dist/storage/memory-protocol.js +101 -0
  98. package/dist/storage/memory-protocol.js.map +1 -0
  99. package/dist/storage/paths.d.ts +23 -0
  100. package/dist/storage/paths.d.ts.map +1 -1
  101. package/dist/storage/paths.js +39 -0
  102. package/dist/storage/paths.js.map +1 -1
  103. package/dist/storage/retention.d.ts +23 -0
  104. package/dist/storage/retention.d.ts.map +1 -0
  105. package/dist/storage/retention.js +48 -0
  106. package/dist/storage/retention.js.map +1 -0
  107. package/dist/storage/session.d.ts +2 -2
  108. package/dist/storage/session.d.ts.map +1 -1
  109. package/dist/storage/session.js +11 -1
  110. package/dist/storage/session.js.map +1 -1
  111. package/dist/supabase/config.d.ts +26 -0
  112. package/dist/supabase/config.d.ts.map +1 -1
  113. package/dist/supabase/config.js +11 -0
  114. package/dist/supabase/config.js.map +1 -1
  115. package/dist/supabase/recall-backend.d.ts +1 -0
  116. package/dist/supabase/recall-backend.d.ts.map +1 -1
  117. package/dist/supabase/recall-backend.js +13 -13
  118. package/dist/supabase/recall-backend.js.map +1 -1
  119. package/dist/supabase/sync.d.ts +1 -1
  120. package/dist/supabase/sync.d.ts.map +1 -1
  121. package/dist/supabase/sync.js +85 -3
  122. package/dist/supabase/sync.js.map +1 -1
  123. package/dist/tools-logic/bootstrap.d.ts +15 -0
  124. package/dist/tools-logic/bootstrap.d.ts.map +1 -1
  125. package/dist/tools-logic/bootstrap.js +238 -47
  126. package/dist/tools-logic/bootstrap.js.map +1 -1
  127. package/dist/tools-logic/brief.d.ts +84 -0
  128. package/dist/tools-logic/brief.d.ts.map +1 -0
  129. package/dist/tools-logic/brief.js +193 -0
  130. package/dist/tools-logic/brief.js.map +1 -0
  131. package/dist/tools-logic/check-action.d.ts +9 -0
  132. package/dist/tools-logic/check-action.d.ts.map +1 -1
  133. package/dist/tools-logic/check-action.js +61 -3
  134. package/dist/tools-logic/check-action.js.map +1 -1
  135. package/dist/tools-logic/check.d.ts +7 -0
  136. package/dist/tools-logic/check.d.ts.map +1 -1
  137. package/dist/tools-logic/check.js +24 -2
  138. package/dist/tools-logic/check.js.map +1 -1
  139. package/dist/tools-logic/confidence.d.ts +50 -0
  140. package/dist/tools-logic/confidence.d.ts.map +1 -0
  141. package/dist/tools-logic/confidence.js +70 -0
  142. package/dist/tools-logic/confidence.js.map +1 -0
  143. package/dist/tools-logic/drill-down.d.ts +37 -0
  144. package/dist/tools-logic/drill-down.d.ts.map +1 -0
  145. package/dist/tools-logic/drill-down.js +63 -0
  146. package/dist/tools-logic/drill-down.js.map +1 -0
  147. package/dist/tools-logic/export-corrections.d.ts +63 -0
  148. package/dist/tools-logic/export-corrections.d.ts.map +1 -0
  149. package/dist/tools-logic/export-corrections.js +124 -0
  150. package/dist/tools-logic/export-corrections.js.map +1 -0
  151. package/dist/tools-logic/journal-capture.d.ts.map +1 -1
  152. package/dist/tools-logic/journal-capture.js +4 -1
  153. package/dist/tools-logic/journal-capture.js.map +1 -1
  154. package/dist/tools-logic/journal-write.d.ts.map +1 -1
  155. package/dist/tools-logic/journal-write.js +3 -2
  156. package/dist/tools-logic/journal-write.js.map +1 -1
  157. package/dist/tools-logic/local-archive-backend.d.ts +33 -0
  158. package/dist/tools-logic/local-archive-backend.d.ts.map +1 -0
  159. package/dist/tools-logic/local-archive-backend.js +124 -0
  160. package/dist/tools-logic/local-archive-backend.js.map +1 -0
  161. package/dist/tools-logic/memory-backend.d.ts +74 -0
  162. package/dist/tools-logic/memory-backend.d.ts.map +1 -0
  163. package/dist/tools-logic/memory-backend.js +172 -0
  164. package/dist/tools-logic/memory-backend.js.map +1 -0
  165. package/dist/tools-logic/memory-query.d.ts +10 -3
  166. package/dist/tools-logic/memory-query.d.ts.map +1 -1
  167. package/dist/tools-logic/memory-query.js +31 -7
  168. package/dist/tools-logic/memory-query.js.map +1 -1
  169. package/dist/tools-logic/mirror-builder.d.ts +115 -0
  170. package/dist/tools-logic/mirror-builder.d.ts.map +1 -0
  171. package/dist/tools-logic/mirror-builder.js +348 -0
  172. package/dist/tools-logic/mirror-builder.js.map +1 -0
  173. package/dist/tools-logic/palace-write.d.ts.map +1 -1
  174. package/dist/tools-logic/palace-write.js +3 -2
  175. package/dist/tools-logic/palace-write.js.map +1 -1
  176. package/dist/tools-logic/pipeline-close.d.ts.map +1 -1
  177. package/dist/tools-logic/pipeline-close.js +2 -1
  178. package/dist/tools-logic/pipeline-close.js.map +1 -1
  179. package/dist/tools-logic/pipeline-open.d.ts.map +1 -1
  180. package/dist/tools-logic/pipeline-open.js +2 -1
  181. package/dist/tools-logic/pipeline-open.js.map +1 -1
  182. package/dist/tools-logic/predict-correction.d.ts +47 -0
  183. package/dist/tools-logic/predict-correction.d.ts.map +1 -0
  184. package/dist/tools-logic/predict-correction.js +137 -0
  185. package/dist/tools-logic/predict-correction.js.map +1 -0
  186. package/dist/tools-logic/prior-builder.d.ts +27 -0
  187. package/dist/tools-logic/prior-builder.d.ts.map +1 -0
  188. package/dist/tools-logic/prior-builder.js +90 -0
  189. package/dist/tools-logic/prior-builder.js.map +1 -0
  190. package/dist/tools-logic/recognition-builder.d.ts +122 -0
  191. package/dist/tools-logic/recognition-builder.d.ts.map +1 -0
  192. package/dist/tools-logic/recognition-builder.js +289 -0
  193. package/dist/tools-logic/recognition-builder.js.map +1 -0
  194. package/dist/tools-logic/safety-consolidation.d.ts +104 -0
  195. package/dist/tools-logic/safety-consolidation.d.ts.map +1 -0
  196. package/dist/tools-logic/safety-consolidation.js +256 -0
  197. package/dist/tools-logic/safety-consolidation.js.map +1 -0
  198. package/dist/tools-logic/session-end-reflect.d.ts +18 -0
  199. package/dist/tools-logic/session-end-reflect.d.ts.map +1 -1
  200. package/dist/tools-logic/session-end-reflect.js +69 -30
  201. package/dist/tools-logic/session-end-reflect.js.map +1 -1
  202. package/dist/tools-logic/session-end.d.ts +18 -0
  203. package/dist/tools-logic/session-end.d.ts.map +1 -1
  204. package/dist/tools-logic/session-end.js +189 -34
  205. package/dist/tools-logic/session-end.js.map +1 -1
  206. package/dist/tools-logic/session-start-lite.d.ts +2 -0
  207. package/dist/tools-logic/session-start-lite.d.ts.map +1 -1
  208. package/dist/tools-logic/session-start-lite.js +11 -2
  209. package/dist/tools-logic/session-start-lite.js.map +1 -1
  210. package/dist/tools-logic/session-start.d.ts +81 -2
  211. package/dist/tools-logic/session-start.d.ts.map +1 -1
  212. package/dist/tools-logic/session-start.js +357 -40
  213. package/dist/tools-logic/session-start.js.map +1 -1
  214. package/dist/tools-logic/skill-propose.d.ts +27 -0
  215. package/dist/tools-logic/skill-propose.d.ts.map +1 -0
  216. package/dist/tools-logic/skill-propose.js +66 -0
  217. package/dist/tools-logic/skill-propose.js.map +1 -0
  218. package/dist/tools-logic/skill-recall.d.ts +5 -0
  219. package/dist/tools-logic/skill-recall.d.ts.map +1 -1
  220. package/dist/tools-logic/skill-recall.js +14 -1
  221. package/dist/tools-logic/skill-recall.js.map +1 -1
  222. package/dist/tools-logic/smart-recall.d.ts +17 -0
  223. package/dist/tools-logic/smart-recall.d.ts.map +1 -1
  224. package/dist/tools-logic/smart-recall.js +51 -16
  225. package/dist/tools-logic/smart-recall.js.map +1 -1
  226. package/dist/tools-logic/smart-remember.js +8 -9
  227. package/dist/tools-logic/smart-remember.js.map +1 -1
  228. package/dist/tools-logic/store-doctor.d.ts +71 -0
  229. package/dist/tools-logic/store-doctor.d.ts.map +1 -0
  230. package/dist/tools-logic/store-doctor.js +387 -0
  231. package/dist/tools-logic/store-doctor.js.map +1 -0
  232. package/dist/tools-logic/store-repair.d.ts +64 -0
  233. package/dist/tools-logic/store-repair.d.ts.map +1 -0
  234. package/dist/tools-logic/store-repair.js +243 -0
  235. package/dist/tools-logic/store-repair.js.map +1 -0
  236. package/dist/tools-logic/supersession.d.ts +34 -0
  237. package/dist/tools-logic/supersession.d.ts.map +1 -0
  238. package/dist/tools-logic/supersession.js +103 -0
  239. package/dist/tools-logic/supersession.js.map +1 -0
  240. package/dist/types.d.ts +7 -1
  241. package/dist/types.d.ts.map +1 -1
  242. package/dist/types.js +1 -1
  243. package/dist/vector/embedding.d.ts +8 -0
  244. package/dist/vector/embedding.d.ts.map +1 -1
  245. package/dist/vector/embedding.js +9 -1
  246. package/dist/vector/embedding.js.map +1 -1
  247. package/dist/vector/local-vector-backend.d.ts.map +1 -1
  248. package/dist/vector/local-vector-backend.js +14 -17
  249. package/dist/vector/local-vector-backend.js.map +1 -1
  250. package/package.json +2 -2
  251. package/dist/relevance/injector.d.ts +0 -51
  252. package/dist/relevance/injector.d.ts.map +0 -1
  253. package/dist/relevance/injector.js +0 -121
  254. package/dist/relevance/injector.js.map +0 -1
  255. package/dist/relevance/precision.d.ts +0 -109
  256. package/dist/relevance/precision.d.ts.map +0 -1
  257. package/dist/relevance/precision.js +0 -279
  258. package/dist/relevance/precision.js.map +0 -1
  259. package/dist/relevance/promoter.d.ts +0 -60
  260. package/dist/relevance/promoter.d.ts.map +0 -1
  261. package/dist/relevance/promoter.js +0 -336
  262. package/dist/relevance/promoter.js.map +0 -1
  263. package/dist/relevance/stager.d.ts +0 -61
  264. package/dist/relevance/stager.d.ts.map +0 -1
  265. package/dist/relevance/stager.js +0 -251
  266. package/dist/relevance/stager.js.map +0 -1
  267. package/dist/relevance/surfacer.d.ts +0 -34
  268. package/dist/relevance/surfacer.d.ts.map +0 -1
  269. package/dist/relevance/surfacer.js +0 -333
  270. package/dist/relevance/surfacer.js.map +0 -1
@@ -11,17 +11,55 @@ import { promoteConfirmedInsights } from "./insight-promotion.js";
11
11
  import { readInsightsIndex, findSimilarInsight } from "../palace/insights-index.js";
12
12
  import { consolidateJournalToPalace } from "../palace/consolidate.js";
13
13
  import { resolveProject } from "../storage/project.js";
14
- import { readCorrections, recordOutcome } from "../storage/corrections.js";
14
+ import { readCorrections, recordOutcome, readOutcomesForToday, readOutcomesBefore, splitSentences } from "../storage/corrections.js";
15
+ import { recomputeBlindSpots } from "../storage/blind-spots-store.js";
15
16
  import { ensurePalaceInitialized, listRooms } from "../palace/rooms.js";
16
17
  import { journalDir } from "../storage/paths.js";
17
18
  import { readAwarenessState } from "../palace/awareness.js";
18
19
  import { todayISO } from "../storage/fs-utils.js";
19
20
  import { getRoot } from "../types.js";
20
21
  import { extractKeywords } from "../helpers/auto-name.js";
22
+ import { getSessionId } from "../storage/session.js";
23
+ import { enqueueConsolidation } from "../storage/consolidation-queue.js";
24
+ import { runSafetyConsolidation } from "./safety-consolidation.js";
21
25
  import { autoClassifySig, autoClassifyTheme } from "../helpers/journal-sig-theme.js";
22
26
  import { pipelineOpen } from "./pipeline-open.js";
23
27
  import { pipelineClose } from "./pipeline-close.js";
24
28
  import { writeHandoff } from "../helpers/handoff.js";
29
+ /**
30
+ * C3 (2026-07-03) — recurrence markers, widened from the pre-C3 set.
31
+ * "same mistake" retained; added violated/violating/violation, "ignored the rule",
32
+ * "didn't follow". The bar for a `recurred` verdict is marker + trigger/topical
33
+ * evidence — widening markers alone does not produce more recurred verdicts.
34
+ */
35
+ const RECURRENCE_MARKER = /\b(again|recurred|repeated|violat(?:ed|ing|ion)|broke the rule|ignored the rule|didn'?t follow|same mistake)\b/i;
36
+ /**
37
+ * C3 meta-content guard — eval-vocabulary anchors. This project's own summaries
38
+ * routinely DISCUSS the measurement system ("the recurred count violated our
39
+ * baseline expectations") — report prose, not a first-person violation admission.
40
+ * A recurrence marker inside a sentence that carries one of these anchors is
41
+ * meta-content and must not produce a `recurred` verdict. Prefix-matched
42
+ * (\binstrument covers instrumented/instrumentation, \bbenchmark covers
43
+ * benchmarking) — recall-safe because a genuine violation admission has no
44
+ * reason to name the instrument.
45
+ */
46
+ const EVAL_VOCAB_ANCHOR = /\b(rmr|heed[_\s-]?rate|baseline|_outcomes|recurrence[_\s-]?count|verdict[_\s-]?coverage|instrument|predict-loo|benchmark)/i;
47
+ /**
48
+ * True when the summary contains a recurrence marker in a sentence that is NOT
49
+ * eval-meta prose. Sentence granularity via the decimal-safe splitSentences —
50
+ * a marker only counts if its own containing sentence carries no eval-vocabulary
51
+ * anchor, so a genuine admission ("I pushed without asking again.") still fires
52
+ * even when a DIFFERENT sentence in the same summary talks about baselines.
53
+ * Pure; exported for direct unit testing.
54
+ */
55
+ export function hasGenuineRecurrenceMarker(summary) {
56
+ for (const sentence of splitSentences(summary)) {
57
+ if (RECURRENCE_MARKER.test(sentence) && !EVAL_VOCAB_ANCHOR.test(sentence)) {
58
+ return true;
59
+ }
60
+ }
61
+ return false;
62
+ }
25
63
  export function checkInsightQuality(insights) {
26
64
  if (!insights || insights.length === 0)
27
65
  return [];
@@ -115,15 +153,20 @@ export async function sessionEnd(input) {
115
153
  catch (err) {
116
154
  journalWriteError = err instanceof Error ? err.message : String(err);
117
155
  }
118
- // 1b. P0-B: auto-record heeded/recurred outcomes for corrections that were
119
- // retrieved today (last_retrieved date matches today). This is a default-heeded
120
- // heuristic with recurrence detection — coarse but closes the learning loop
121
- // automatically without requiring the agent to remember to call recordOutcome.
156
+ // 1b. C3 (2026-07-03): evidence-grounded verdict classification.
157
+ // SEMANTIC BREAK from pre-C3: the default outcome is now "unknown", NOT "heeded".
158
+ // See docs/proposals/c3-heed-instrumentation-design.md for full rationale.
122
159
  //
123
- // Heuristic v1: classify "recurred" only when the session summary contains
124
- // ≥ 2 content words from the correction rule (length 4, lowercased) AND
125
- // also contains a recurrence marker. Default to "heeded" when markers absent.
126
- // Precision improves when check_action wiring lands in a future sprint.
160
+ // Verdict logic (strongest evidence wins):
161
+ // triggered (from check-action) + recurrence marker recurred
162
+ // triggered (from check-action) + no recurrence marker heeded
163
+ // topical overlap (≥2 content words) + recurrence marker recurred
164
+ // topical overlap only → unknown (cannot distinguish heeded vs recurred)
165
+ // no trigger or topical evidence → unknown (absent evidence ≠ heeded)
166
+ //
167
+ // "not_triggered" is NOT recorded here — that would require actively scanning
168
+ // all corrections for topical absence, which is too expensive at session-end.
169
+ // The dream fallback (documented in the design doc) handles not_triggered.
127
170
  //
128
171
  // Fire-and-forget: outcome tracking must NEVER affect the session_end result.
129
172
  if (journalWritten) {
@@ -131,35 +174,94 @@ export async function sessionEnd(input) {
131
174
  // Local-TZ date matching (see session-start.ts guard comment).
132
175
  const todayStr = new Date().toLocaleDateString("sv");
133
176
  const nowISO = new Date().toISOString();
134
- // 1/day guard (mirrors the `retrieved` guard in session-start): record at
135
- // most ONE outcome per correction per day. Without this, multiple sessions
136
- // in a day each fire another "heeded", pushing heeded_count past
137
- // retrieved_count (which IS 1/day-guarded) → nonsensical "11/10 heeded".
177
+ const todayOut = readOutcomesForToday(slug);
178
+ // Loop 3 cross-day prediction ledger (unchanged from pre-C3).
179
+ const predictedBefore = readOutcomesBefore(slug, nowISO);
138
180
  const todays = readCorrections(slug).filter((c) => c.last_retrieved &&
139
181
  new Date(c.last_retrieved).toLocaleDateString("sv") === todayStr &&
140
182
  c.active !== false &&
141
183
  !(c.last_outcome && new Date(c.last_outcome).toLocaleDateString("sv") === todayStr));
142
- const recurrenceMarker = /\b(again|recurred|repeated|violat|broke the rule|same mistake)\b/i;
184
+ // C3: recurrence detection = widened marker set + meta-content guard
185
+ // (hasGenuineRecurrenceMarker above). Computed ONCE per session — it depends
186
+ // only on the summary, not the correction.
187
+ const genuineRecurrence = hasGenuineRecurrenceMarker(input.summary);
143
188
  const summaryLower = input.summary.toLowerCase();
189
+ // A genuine cross-day predict_hit requires: (1) a `predicted` event for this
190
+ // correction on a strictly-earlier day (audit-trail truth), (2) a recurrence
191
+ // that fired TODAY, and (3) no predict_hit already booked today (dedup).
192
+ const predictedOnEarlierDay = (id) => {
193
+ const before = predictedBefore.get(id);
194
+ return !!before && before.has("predicted");
195
+ };
144
196
  for (const c of todays) {
145
197
  try {
146
- // Extract content words (≥ 4 chars) from the rule text
198
+ const firedToday = todayOut.get(c.id);
199
+ // A REAL heeded/recurred outcome already exists today (from check-action
200
+ // or a prior session-end pass) → never overwrite with a heuristic.
201
+ if (firedToday && (firedToday.has("heeded") || firedToday.has("recurred"))) {
202
+ // Close the predict-the-correction loop (unchanged from pre-C3).
203
+ if (firedToday.has("recurred") && !firedToday.has("predict_hit") && predictedOnEarlierDay(c.id)) {
204
+ recordOutcome({ correction_id: c.id, project: slug, kind: "predict_hit", at: nowISO, evidence: "earlier-day prediction recurred today" });
205
+ }
206
+ continue;
207
+ }
208
+ // C3 trigger evidence: did check-action consult this correction today?
209
+ const hasTriggerEvidence = !!(firedToday && firedToday.has("triggered"));
210
+ // Topical-overlap heuristic (weak supplementary source):
211
+ // ≥2 content words (≥4 chars) from the rule appear in the session summary.
147
212
  const ruleWords = c.rule
148
213
  .toLowerCase()
149
214
  .split(/\W+/)
150
215
  .filter((w) => w.length >= 4);
151
- const matchCount = ruleWords.filter((w) => summaryLower.includes(w)).length;
152
- const hasRecurrenceMarker = recurrenceMarker.test(input.summary);
153
- const violated = matchCount >= 2 && hasRecurrenceMarker;
154
- recordOutcome({
155
- correction_id: c.id,
156
- project: slug,
157
- kind: violated ? "recurred" : "heeded",
158
- at: nowISO,
159
- evidence: violated
160
- ? "recurrence markers in session summary"
161
- : "no recurrence evidence in session summary",
162
- });
216
+ const uniqueRuleWords = [...new Set(ruleWords)];
217
+ const matchCount = uniqueRuleWords.filter((w) => summaryLower.includes(w)).length;
218
+ const hasTopicalOverlap = matchCount >= 2;
219
+ const hasRecurrenceMarker = genuineRecurrence;
220
+ // Verdict determination (strongest evidence wins):
221
+ if (hasRecurrenceMarker && (hasTriggerEvidence || hasTopicalOverlap)) {
222
+ // Violated: recurrence evidence + at least weak trigger/topical evidence
223
+ recordOutcome({
224
+ correction_id: c.id,
225
+ project: slug,
226
+ kind: "recurred",
227
+ at: nowISO,
228
+ evidence: hasTriggerEvidence
229
+ ? "recurrence marker in summary; correction was triggered via check-action"
230
+ : `recurrence marker in summary; topical overlap (${matchCount} content words matched)`,
231
+ });
232
+ // Predict-the-correction cross-day hit (unchanged logic).
233
+ if (!firedToday?.has("predict_hit") && predictedOnEarlierDay(c.id)) {
234
+ recordOutcome({ correction_id: c.id, project: slug, kind: "predict_hit", at: nowISO, evidence: "earlier-day prediction recurred today" });
235
+ }
236
+ }
237
+ else if (hasTriggerEvidence && !hasRecurrenceMarker) {
238
+ // Triggered via check-action, no recurrence detected → heeded
239
+ // This is the ONLY path to heeded at session-end (C3 semantic break).
240
+ recordOutcome({
241
+ correction_id: c.id,
242
+ project: slug,
243
+ kind: "heeded",
244
+ at: nowISO,
245
+ evidence: "correction consulted via check-action this session; no recurrence markers in summary",
246
+ });
247
+ }
248
+ else {
249
+ // No positive trigger or recurrence evidence → unknown.
250
+ // Pre-C3: this path was "heeded" (default-heeded bias).
251
+ // Post-C3: this is "unknown" — absence of evidence ≠ heeded.
252
+ // Includes: topical overlap alone (cannot distinguish heeded vs recurred),
253
+ // and no overlap at all (retrieved but irrelevant to this session's work).
254
+ const evidenceNote = hasTopicalOverlap
255
+ ? `topical overlap detected (${matchCount} content words matched) but no trigger evidence — cannot determine heeded/recurred`
256
+ : "no trigger or topical evidence; correction was retrieved but not consulted via check-action";
257
+ recordOutcome({
258
+ correction_id: c.id,
259
+ project: slug,
260
+ kind: "unknown",
261
+ at: nowISO,
262
+ evidence: evidenceNote,
263
+ });
264
+ }
163
265
  }
164
266
  catch {
165
267
  // Per-correction errors are swallowed — don't abort the loop
@@ -212,14 +314,67 @@ export async function sessionEnd(input) {
212
314
  insightsConfirmed = 0;
213
315
  }
214
316
  }
215
- // 3. Consolidate journal to palace
216
- try {
217
- ensurePalaceInitialized(slug);
218
- consolidateJournalToPalace(slug);
219
- palaceConsolidated = true;
317
+ // 3. Consolidate journal to palace.
318
+ // Wave 2: when deferConsolidation is set (harness Stop hook only), hand the
319
+ // compression off to the async dreaming queue instead of running it inline.
320
+ // Default path is unchanged for /arsave, /arsaveall and MCP session_end.
321
+ if (input.deferConsolidation) {
322
+ try {
323
+ ensurePalaceInitialized(slug);
324
+ enqueueConsolidation({
325
+ project: slug,
326
+ sessionId: getSessionId(),
327
+ reason: "session_end deferred (hook-end)",
328
+ });
329
+ }
330
+ catch {
331
+ // enqueue is fire-and-forget — never affect the result
332
+ }
333
+ palaceConsolidated = false; // compression happens later, off this turn
334
+ // L2: the async dreaming queue fails often and is un-cron'd, so the three
335
+ // safety steps (decay, prune, graduate) historically rarely ran. ALSO run
336
+ // the LOGIN-FREE / LLM-FREE safety pass synchronously here so decay/prune/
337
+ // graduate fire on EVERY hook-end regardless of whether the queue is ever
338
+ // drained. Best-effort — must NEVER throw into the Stop turn.
339
+ try {
340
+ await runSafetyConsolidation(slug, { dryRun: false });
341
+ }
342
+ catch {
343
+ // safety consolidation is best-effort — never affect the result
344
+ }
220
345
  }
221
- catch (err) {
222
- palaceError = err instanceof Error ? err.message : String(err);
346
+ else {
347
+ try {
348
+ ensurePalaceInitialized(slug);
349
+ consolidateJournalToPalace(slug);
350
+ palaceConsolidated = true;
351
+ }
352
+ catch (err) {
353
+ palaceError = err instanceof Error ? err.message : String(err);
354
+ }
355
+ // L2: the inline consolidate above covers (a) decay+keystones. Add the other
356
+ // two safety steps — (b) prune the unbounded raw archive and (c) graduate
357
+ // above-threshold crystallization candidates — to the manual save paths
358
+ // (/arsave, /arsaveall, MCP session_end) too. Login-free, LLM-free,
359
+ // best-effort: must NEVER throw into the caller.
360
+ try {
361
+ await runSafetyConsolidation(slug, { dryRun: false });
362
+ }
363
+ catch {
364
+ // safety consolidation is best-effort — never affect the result
365
+ }
366
+ }
367
+ // Wave 5: re-derive the Blind-Spots profile as part of the (synchronous, NOT
368
+ // Stop-hook) consolidation pass. The harness Stop path defers via the queue,
369
+ // so this only runs for /arsave, /arsaveall and MCP session_end — never in the
370
+ // Stop turn. Guarded fire-and-forget — derivation must never affect the result.
371
+ if (!input.deferConsolidation) {
372
+ try {
373
+ recomputeBlindSpots(slug);
374
+ }
375
+ catch {
376
+ // blind-spots derivation is best-effort — swallow all errors
377
+ }
223
378
  }
224
379
  // 4. Detect similar recent entries — suggest merge if high overlap
225
380
  const mergeSuggestions = [];
@@ -1 +1 @@
1
- {"version":3,"file":"session-end.js","sourceRoot":"","sources":["../../src/tools-logic/session-end.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAErF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAkFrD,MAAM,UAAU,mBAAmB,CACjC,QAAqC;IAErC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAClD,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAE7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,8EAA8E;QAC9E,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;QAC9E,CAAC;QAED,8EAA8E;QAC9E,IACE,uDAAuD,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAClF,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,EACzB,CAAC;YACD,MAAM,CAAC,IAAI,CACT,0GAA0G,CAC3G,CAAC;QACJ,CAAC;QAED,+EAA+E;QAC/E,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAC7D,MAAM,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAC;QACjG,CAAC;QAED,6DAA6D;QAC7D,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7D,MAAM,CAAC,IAAI,CACT,wFAAwF,CACzF,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,IAAI,UAAU,GAAG,2EAA2E,CAAC;YAC7F,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAChC,UAAU,GAAG,eAAe,OAAO,CAAC,KAAK,uDAAuD,CAAC;YACnG,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,KAAsB;IACrD,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACvD,OAAO;YACL,OAAO,EAAE,KAAK;YACd,eAAe,EAAE,KAAK;YACtB,kBAAkB,EAAE,CAAC;YACrB,cAAc,EAAE,CAAC;YACjB,kBAAkB,EAAE,CAAC;YACrB,iBAAiB,EAAE,KAAK;YACxB,mBAAmB,EAAE,KAAK;YAC1B,IAAI,EAAE,2DAA2D;YACjE,mBAAmB,EAAE,2DAA2D;SACjF,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjD,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,iBAAqC,CAAC;IAC1C,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAC1B,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAC1B,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,IAAI,cAAkC,CAAC;IACvC,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAC/B,IAAI,WAA+B,CAAC;IAEpC,2BAA2B;IAC3B,+EAA+E;IAC/E,yFAAyF;IACzF,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,IAAI,cAAc,GAAG,UAAU,CAAC;QAChC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,MAAM,aAAa,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC;iBACvC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC,CAAC;YAC5E,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;gBAC9B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;gBAC7D,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBACjC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;oBACvB,MAAM,EAAE,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBACtD,MAAM,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBACxD,cAAc,GAAG,aAAa,EAAE,IAAI,EAAE,EAAE,CAAC;oBACzC,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,cAAc,GAAG;YACrB,cAAc;YACd,KAAK,CAAC,OAAO;YACb,EAAE;YACF,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE;SACvD,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE7B,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAE9D,MAAM,YAAY,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QACjH,cAAc,GAAG,IAAI,CAAC;IACxB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,iBAAiB,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACvE,CAAC;IAED,2EAA2E;IAC3E,gFAAgF;IAChF,4EAA4E;IAC5E,+EAA+E;IAC/E,EAAE;IACF,2EAA2E;IAC3E,0EAA0E;IAC1E,8EAA8E;IAC9E,wEAAwE;IACxE,EAAE;IACF,8EAA8E;IAC9E,IAAI,cAAc,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,+DAA+D;YAC/D,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YACrD,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACxC,0EAA0E;YAC1E,2EAA2E;YAC3E,iEAAiE;YACjE,yEAAyE;YACzE,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,MAAM,CACzC,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,cAAc;gBAChB,IAAI,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,QAAQ;gBAChE,CAAC,CAAC,MAAM,KAAK,KAAK;gBAClB,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,CACtF,CAAC;YACF,MAAM,gBAAgB,GAAG,mEAAmE,CAAC;YAC7F,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YACjD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACvB,IAAI,CAAC;oBACH,uDAAuD;oBACvD,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI;yBACrB,WAAW,EAAE;yBACb,KAAK,CAAC,KAAK,CAAC;yBACZ,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;oBAChC,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;oBAC5E,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACjE,MAAM,QAAQ,GAAG,UAAU,IAAI,CAAC,IAAI,mBAAmB,CAAC;oBACxD,aAAa,CAAC;wBACZ,aAAa,EAAE,CAAC,CAAC,EAAE;wBACnB,OAAO,EAAE,IAAI;wBACb,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ;wBACtC,EAAE,EAAE,MAAM;wBACV,QAAQ,EAAE,QAAQ;4BAChB,CAAC,CAAC,uCAAuC;4BACzC,CAAC,CAAC,2CAA2C;qBAChD,CAAC,CAAC;gBACL,CAAC;gBAAC,MAAM,CAAC;oBACP,6DAA6D;gBAC/D,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,qEAAqE;QACvE,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,wEAAwE;IACxE,uEAAuE;IACvE,iEAAiE;IACjE,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,IAAI,CAAC;YACH,+DAA+D;YAC/D,MAAM,YAAY,GAAG,iBAAiB,EAAE,CAAC;YACzC,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACrC,MAAM,KAAK,GAAG,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;gBACvE,IAAI,KAAK,EAAE,CAAC;oBACV,iBAAiB,EAAE,CAAC;gBACtB,CAAC;qBAAM,CAAC;oBACN,aAAa,EAAE,CAAC;gBAClB,CAAC;YACH,CAAC;YAED,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU;gBACvC,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,UAAU,EAAE;gBAChC,CAAC,CAAC,SAAS,CAAC;YACd,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;gBACnC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACnC,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,YAAY,EAAE,CAAC,CAAC,YAAY;oBAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,eAAe,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;oBAC1E,cAAc,EAAE,IAAI,IAAI,SAAS;oBACjC,QAAQ,EAAE,CAAC,CAAC,QAAQ;iBACrB,CAAC,CAAC;gBACH,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,gBAAgB;aAC7B,CAAC,CAAC;YACH,iBAAiB,GAAG,MAAM,CAAC,kBAAkB,EAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC/E,gBAAgB,GAAG,IAAI,CAAC;QAC1B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,cAAc,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAClE,iDAAiD;YACjD,aAAa,GAAG,CAAC,CAAC;YAClB,iBAAiB,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,mCAAmC;IACnC,IAAI,CAAC;QACH,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAC9B,0BAA0B,CAAC,IAAI,CAAC,CAAC;QACjC,kBAAkB,GAAG,IAAI,CAAC;IAC5B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,WAAW,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjE,CAAC;IAED,mEAAmE;IACnE,MAAM,gBAAgB,GAAsB,EAAE,CAAC;IAC/C,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACtD,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;gBACzB,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC;qBACnC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC;qBAClD,IAAI,EAAE;qBACN,OAAO,EAAE,CAAC;gBAEb,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,wBAAwB;oBAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;oBACrD,IAAI,CAAC,SAAS;wBAAE,SAAS;oBACzB,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;oBAE9B,0CAA0C;oBAC1C,IAAI,QAAQ,KAAK,KAAK;wBAAE,SAAS;oBAEjC,yBAAyB;oBACzB,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;oBACpF,IAAI,OAAO,GAAG,CAAC;wBAAE,MAAM;oBAEvB,0DAA0D;oBAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;oBAC3C,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;oBAClE,MAAM,gBAAgB,GAAG,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;oBAErD,kBAAkB;oBAClB,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CACrC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAC9D,CAAC;oBAEF,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;wBACxB,gBAAgB,CAAC,IAAI,CAAC;4BACpB,IAAI;4BACJ,IAAI,EAAE,QAAQ;4BACd,gBAAgB,EAAE,OAAO;4BACzB,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,0BAA0B,IAAI,EAAE;yBAChF,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,oCAAoC,CAAC,CAAC;IAEhD,oDAAoD;IACpD,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;IACxB,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,YAAY,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;QACtC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC,CAAC,MAAM;QAChF,CAAC,CAAC,CAAC,CAAC;IAEN,+BAA+B;IAC/B,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC;QACvC,aAAa,GAAG,SAAS,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAE9B,oBAAoB;IACpB,IAAI,SAAS,GAAa,EAAE,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9B,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAE9B,qCAAqC;IACrC,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,MAAM,OAAO,GAAG,GAAG,IAAI,aAAa,IAAI,cAAc,CAAC;IACvD,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,eAAe,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IACpF,CAAC;IAED,MAAM,IAAI,GAAG,gEAAgE,CAAC;IAC9E,MAAM,SAAS,GAAG;QAChB,IAAI;QACJ,6BAA6B,IAAI,MAAM,IAAI,OAAO,YAAY,EAAE;QAChE,IAAI;QACJ,EAAE;QACF,mBAAmB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,iBAAiB,CAAC,GAAG;QAC3D,sBAAsB,IAAI,0BAA0B,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,YAAY,iBAAiB,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE;QACvJ,EAAE;QACF,mBAAmB,aAAa,WAAW,iBAAiB,gBAAgB,aAAa,SAAS;QAClG,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,qCAAqC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnF,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,yCAAyC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjF,EAAE;KACH,CAAC;IAEF,IAAI,kBAAkB,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/C,MAAM,UAAU,GAAG,GAAG,IAAI,aAAa,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;QACvF,SAAS,CAAC,IAAI,CAAC,mBAAmB,UAAU,EAAE,CAAC,CAAC;QAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,CAAC,KAAK,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YACxD,SAAS,CAAC,IAAI,CAAC,mBAAmB,MAAM,UAAU,SAAS,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC;QAC3F,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrB,CAAC;IAED,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;QACxB,SAAS,CAAC,IAAI,CAAC,mBAAmB,eAAe,2CAA2C,CAAC,CAAC;QAC9F,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrB,CAAC;IAED,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,SAAS,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAChE,KAAK,MAAM,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YAC7C,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvE,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrB,CAAC;IAED,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAErB,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAElC,MAAM,eAAe,GAAG,mBAAmB,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IAElE,+DAA+D;IAC/D,wBAAwB,CAAC,CAAC,CAAC,CAAC;IAE5B,yEAAyE;IACzE,wEAAwE;IACxE,IAAI,cAA+C,CAAC;IACpD,IAAI,cAA+C,CAAC;IAEpD,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,MAAM,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC;QAC7B,MAAM,CAAC,GAAG,MAAM,aAAa,CAAC;YAC5B,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,EAAE,CAAC,aAAa;YAC/B,UAAU,EAAE,EAAE,CAAC,UAAU;YACzB,SAAS,EAAE,EAAE,CAAC,SAAS;YACvB,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,eAAe,EAAE,EAAE,CAAC,eAAe;YACnC,gBAAgB,EAAE,EAAE,CAAC,gBAAgB;SACtC,CAAC,CAAC;QACH,cAAc,GAAG,CAAC,CAAC,OAAO;YACxB,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE;YACtE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC;IAED,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,MAAM,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC;QAC5B,MAAM,CAAC,GAAG,MAAM,YAAY,CAAC;YAC3B,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,EAAE,CAAC,UAAU;YACzB,IAAI,EAAE,EAAE,CAAC,IAAI;SACd,CAAC,CAAC;QACH,cAAc,GAAG,CAAC,CAAC,OAAO;YACxB,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE;YACtE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC;IAED,mEAAmE;IACnE,6EAA6E;IAC7E,4CAA4C;IAC5C,IAAI,WAA+B,CAAC;IACpC,IAAI,cAAc,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;YAC7B,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC,CAAC,sCAAsC,CAAC,CAAC;IACpD,CAAC;IAED,OAAO;QACL,OAAO,EAAE,cAAc,IAAI,gBAAgB;QAC3C,eAAe,EAAE,cAAc;QAC/B,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,kBAAkB,EAAE,iBAAiB;QACrC,cAAc,EAAE,aAAa;QAC7B,kBAAkB,EAAE,iBAAiB;QACrC,iBAAiB,EAAE,gBAAgB;QACnC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,mBAAmB,EAAE,kBAAkB;QACvC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,IAAI;QACJ,iBAAiB,EAAE,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS;QAC7E,gBAAgB,EAAE,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;QAC1E,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"session-end.js","sourceRoot":"","sources":["../../src/tools-logic/session-end.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,8 @@ export interface SessionStartLiteResult {
20
20
  open_corrections_p0_count: number;
21
21
  total_sessions: number;
22
22
  total_skills: number;
23
+ /** Store-integrity one-liner; null (and silent) when the store is healthy. */
24
+ store_doctor: string | null;
23
25
  hint: string;
24
26
  }
25
27
  export declare function sessionStartLite(input: SessionStartLiteInput): Promise<SessionStartLiteResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"session-start-lite.d.ts","sourceRoot":"","sources":["../../src/tools-logic/session-start-lite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,yBAAyB,EAAE,MAAM,CAAC;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAmCpG"}
1
+ {"version":3,"file":"session-start-lite.d.ts","sourceRoot":"","sources":["../../src/tools-logic/session-start-lite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAUH,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,yBAAyB,EAAE,MAAM,CAAC;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,8EAA8E;IAC9E,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CA2CpG"}
@@ -14,6 +14,7 @@ import { listJournalFiles } from "../helpers/journal-files.js";
14
14
  import { readActiveCorrections } from "../storage/corrections.js";
15
15
  import { listMilestones } from "../palace/pipeline.js";
16
16
  import { listSkills } from "../palace/skills.js";
17
+ import { runStoreDoctor, storeDoctorBanner } from "./store-doctor.js";
17
18
  export async function sessionStartLite(input) {
18
19
  const slug = await resolveProject(input.project);
19
20
  const raw = readIdentity(slug);
@@ -29,6 +30,14 @@ export async function sessionStartLite(input) {
29
30
  const corrections = readActiveCorrections(slug);
30
31
  const p0 = corrections.filter((c) => c.severity === "p0").length;
31
32
  const skills = listSkills(slug);
33
+ // Store-integrity one-liner; null & silent on a healthy store. Best-effort.
34
+ let storeDoctorLine = null;
35
+ try {
36
+ storeDoctorLine = storeDoctorBanner(runStoreDoctor());
37
+ }
38
+ catch {
39
+ storeDoctorLine = null;
40
+ }
32
41
  return {
33
42
  project: slug,
34
43
  identity_oneliner: identityLine,
@@ -38,8 +47,8 @@ export async function sessionStartLite(input) {
38
47
  open_corrections_p0_count: p0,
39
48
  total_sessions: journals.length,
40
49
  total_skills: skills.length,
41
- hint: "Lite mode. Call recall(query) for memories, memory_query({file_path}) for file-scoped, " +
42
- "skill_recall({intent}) for procedural how-tos, pipeline_show for narrative spine. " +
50
+ store_doctor: storeDoctorLine,
51
+ hint: "Lite mode. Call recall(query) for memories. " +
43
52
  "Call session_start without mode='lite' for the full briefing.",
44
53
  };
45
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session-start-lite.js","sourceRoot":"","sources":["../../src/tools-logic/session-start-lite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAkBjD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAA4B;IACjE,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAEjD,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,eAAe,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;QACjD,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC1G,CAAC,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAE1F,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC;IAE3C,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;IAElE,MAAM,WAAW,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;IAEjE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAEhC,OAAO;QACL,OAAO,EAAE,IAAI;QACb,iBAAiB,EAAE,YAAY;QAC/B,iBAAiB,EAAE,QAAQ;QAC3B,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;QACxC,iBAAiB,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;QAClH,yBAAyB,EAAE,EAAE;QAC7B,cAAc,EAAE,QAAQ,CAAC,MAAM;QAC/B,YAAY,EAAE,MAAM,CAAC,MAAM;QAC3B,IAAI,EACF,yFAAyF;YACzF,oFAAoF;YACpF,+DAA+D;KAClE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"session-start-lite.js","sourceRoot":"","sources":["../../src/tools-logic/session-start-lite.ts"],"names":[],"mappings":"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"}
@@ -5,13 +5,27 @@
5
5
  * Target: <400 tokens output. No awareness duplication.
6
6
  */
7
7
  import { type WatchForPattern } from "../helpers/alignment-patterns.js";
8
- import { type CorrectionRecord } from "../storage/corrections.js";
9
8
  import { type DreamHealth } from "../storage/dream-health.js";
10
9
  import { type BehaviorRule } from "../storage/behavior-policies.js";
10
+ import { type RecognitionPayload } from "./recognition-builder.js";
11
+ import { type Arm } from "../storage/ab-experiment.js";
11
12
  export interface SessionStartInput {
12
13
  project?: string;
13
14
  context?: string;
14
15
  }
16
+ /**
17
+ * Slim correction record — only the fields an LLM needs at session orientation.
18
+ * KPI counters (retrieved_count, heeded_count, precision, proof_confidence, etc.)
19
+ * are internal bookkeeping and omitted here to reduce payload size.
20
+ * Context is omitted when it is identical to rule (saves ~50% of correction tokens).
21
+ */
22
+ export interface SlimCorrection {
23
+ id: string;
24
+ severity: "p0" | "p1";
25
+ rule: string;
26
+ /** Only present when meaningfully different from rule (i.e. has more content). */
27
+ context?: string;
28
+ }
15
29
  export interface SessionStartResult {
16
30
  project: string;
17
31
  identity: string;
@@ -50,7 +64,7 @@ export interface SessionStartResult {
50
64
  answer: string;
51
65
  }>;
52
66
  watch_for: WatchForPattern[];
53
- corrections: CorrectionRecord[];
67
+ corrections: SlimCorrection[];
54
68
  resume: {
55
69
  last_date: string | null;
56
70
  last_trajectory: string | null;
@@ -68,6 +82,13 @@ export interface SessionStartResult {
68
82
  * awareness backfill is broken instead of finding out days later.
69
83
  */
70
84
  dream_health: DreamHealth | null;
85
+ /**
86
+ * READ-ONLY store-integrity one-liner from the store-doctor. `null` when the
87
+ * store is healthy (status === 'ok') so a healthy session_start stays SILENT
88
+ * about it — the line ONLY appears on warn/red. Never blocks recall: the
89
+ * doctor is lock-free and best-effort (a failure here leaves this null).
90
+ */
91
+ store_doctor: string | null;
71
92
  /**
72
93
  * Project narrative spine summary. Null when no pipeline files exist.
73
94
  * Shape: { active_phase, closed_count, last_synthesis, stale_days }
@@ -91,7 +112,65 @@ export interface SessionStartResult {
91
112
  heeded: number;
92
113
  recurred: number;
93
114
  } | null;
115
+ /**
116
+ * Wave 5 — corrections-derived behavioral profile (top 2). READ-only at
117
+ * session_start; derivation happens async in consolidation. Empty when no
118
+ * profile exists yet. The prior pushed EARLY (memory becoming understanding).
119
+ */
120
+ blind_spots: Array<{
121
+ tendency: string;
122
+ severity: "p0" | "p1";
123
+ evidence_count: number;
124
+ }>;
125
+ /**
126
+ * Wave 5 — forward anticipation against the active phase goal + latest `## Next`
127
+ * trajectory (top 2 risks). OMITTED (undefined) when likelihood is low or no
128
+ * profile exists — absent from JSON when empty, saving ~20 bytes per cold project.
129
+ */
130
+ predicted_risks?: Array<{
131
+ tendency: string;
132
+ likelihood: "high" | "medium" | "low";
133
+ matched: string[];
134
+ }>;
135
+ /**
136
+ * Loop 4 — real-time RECOGNITION. A compact, deterministically-ordered
137
+ * snapshot of WHO / WHAT-THEY-CAN-DO / PROJECT+PROGRESS / WHAT-KIND-OF-PERSON,
138
+ * assembled from LOCAL stores only (zero network, no LLM on the hot path).
139
+ * Always present. WHO is `'unknown'` when no identity card exists (never
140
+ * fabricated); the person profile always carries an explicit low-confidence
141
+ * caveat.
142
+ */
143
+ recognition: RecognitionPayload;
144
+ /**
145
+ * Loop 9 — one-line pointer to The Mirror, populated ONLY when a correctable
146
+ * self-model can be assembled for this project (≥1 active correction or a
147
+ * stored blind-spots profile). Null otherwise so a fresh project stays SILENT.
148
+ * Cheap to compute on the hot path: we count active corrections / probe the
149
+ * profile, we do NOT assemble the full reflection here (that's `ar mirror`).
150
+ * OMITTED (undefined ⇒ dropped from JSON) when no mirror exists, so a fresh
151
+ * project adds ZERO bytes to the session_start payload budget.
152
+ */
153
+ mirror_available?: string;
94
154
  empty_state?: string;
155
+ /**
156
+ * C4 A/B experiment — which arm this session ran.
157
+ *
158
+ * Present ONLY when AR_AB_ENABLED=1. When the experiment is disabled (default)
159
+ * this field is absent from the JSON payload — no bytes wasted, no agent nudge.
160
+ *
161
+ * "on" = full injection as normal.
162
+ * "off" = "this agent has no correction memory today" (ruling 2026-07-03):
163
+ * the ENTIRE correction-derived surface is absent/empty —
164
+ * corrections:[], watch_for:[], predicted_risks absent,
165
+ * blind_spots:[], mirror_available absent, alignment:null,
166
+ * recognition.person absent. Insights/rooms/captures (journal
167
+ * lineage) are IDENTICAL across arms — v1 manipulates corrections
168
+ * only; insights remain a documented non-manipulated variable.
169
+ *
170
+ * The terse formatter appends a quiet trailing marker (not a banner) so the
171
+ * transcript records the arm without priming the agent to behave differently.
172
+ */
173
+ ab_arm?: Arm;
95
174
  }
96
175
  export declare function sessionStart(input: SessionStartInput): Promise<SessionStartResult>;
97
176
  //# sourceMappingURL=session-start.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-start.d.ts","sourceRoot":"","sources":["../../src/tools-logic/session-start.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,OAAO,EAAsE,KAAK,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAC5I,OAAO,EAAuD,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAUvH,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAA0C,KAAK,YAAY,EAAE,MAAM,iCAAiC,CAAC;AA4B5G,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxF,YAAY,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACpI,aAAa,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjF,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAChF;;;;OAIG;IACH,eAAe,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3E,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;QAC/B,cAAc,EAAE,MAAM,CAAC;KACxB,GAAG,IAAI,CAAC;IACT;;;;OAIG;IACH,cAAc,EAAE,YAAY,EAAE,CAAC;IAC/B;;;;OAIG;IACH,YAAY,EAAE,WAAW,GAAG,IAAI,CAAC;IACjC;;;OAGG;IACH,QAAQ,EAAE;QACR,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;QACnC,uBAAuB,EAAE,MAAM,CAAC;QAChC,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;KAC/B,GAAG,IAAI,CAAC;IACT;;;;OAIG;IACH,SAAS,EAAE;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,GAAG,IAAI,CAAC;IACT,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA4VxF"}
1
+ {"version":3,"file":"session-start.d.ts","sourceRoot":"","sources":["../../src/tools-logic/session-start.ts"],"names":[],"mappings":"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"}