agent-recall-core 3.4.35 → 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.
- package/dist/index.d.ts +7 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -8
- package/dist/index.js.map +1 -1
- package/dist/prompts/consolidation-prompt.d.ts +1 -1
- package/dist/prompts/consolidation-prompt.d.ts.map +1 -1
- package/dist/prompts/consolidation-prompt.js +1 -1
- package/dist/storage/ab-experiment.d.ts +184 -0
- package/dist/storage/ab-experiment.d.ts.map +1 -0
- package/dist/storage/ab-experiment.js +294 -0
- package/dist/storage/ab-experiment.js.map +1 -0
- package/dist/storage/classification.d.ts +7 -3
- package/dist/storage/classification.d.ts.map +1 -1
- package/dist/storage/classification.js +13 -9
- package/dist/storage/classification.js.map +1 -1
- package/dist/storage/corrections.d.ts +84 -2
- package/dist/storage/corrections.d.ts.map +1 -1
- package/dist/storage/corrections.js +183 -2
- package/dist/storage/corrections.js.map +1 -1
- package/dist/supabase/config.d.ts +18 -0
- package/dist/supabase/config.d.ts.map +1 -1
- package/dist/supabase/config.js +6 -0
- package/dist/supabase/config.js.map +1 -1
- package/dist/supabase/sync.d.ts +1 -1
- package/dist/supabase/sync.d.ts.map +1 -1
- package/dist/supabase/sync.js +55 -0
- package/dist/supabase/sync.js.map +1 -1
- package/dist/tools-logic/check-action.d.ts.map +1 -1
- package/dist/tools-logic/check-action.js +30 -1
- package/dist/tools-logic/check-action.js.map +1 -1
- package/dist/tools-logic/local-archive-backend.d.ts +33 -0
- package/dist/tools-logic/local-archive-backend.d.ts.map +1 -0
- package/dist/tools-logic/local-archive-backend.js +124 -0
- package/dist/tools-logic/local-archive-backend.js.map +1 -0
- package/dist/tools-logic/memory-backend.d.ts +74 -0
- package/dist/tools-logic/memory-backend.d.ts.map +1 -0
- package/dist/tools-logic/memory-backend.js +172 -0
- package/dist/tools-logic/memory-backend.js.map +1 -0
- package/dist/tools-logic/prior-builder.d.ts.map +1 -1
- package/dist/tools-logic/prior-builder.js +34 -1
- package/dist/tools-logic/prior-builder.js.map +1 -1
- package/dist/tools-logic/recognition-builder.d.ts +8 -2
- package/dist/tools-logic/recognition-builder.d.ts.map +1 -1
- package/dist/tools-logic/recognition-builder.js +1 -1
- package/dist/tools-logic/recognition-builder.js.map +1 -1
- package/dist/tools-logic/session-end-reflect.js +1 -1
- package/dist/tools-logic/session-end-reflect.js.map +1 -1
- package/dist/tools-logic/session-end.d.ts +9 -0
- package/dist/tools-logic/session-end.d.ts.map +1 -1
- package/dist/tools-logic/session-end.js +109 -52
- package/dist/tools-logic/session-end.js.map +1 -1
- package/dist/tools-logic/session-start-lite.d.ts.map +1 -1
- package/dist/tools-logic/session-start-lite.js +1 -2
- package/dist/tools-logic/session-start-lite.js.map +1 -1
- package/dist/tools-logic/session-start.d.ts +37 -4
- package/dist/tools-logic/session-start.d.ts.map +1 -1
- package/dist/tools-logic/session-start.js +305 -81
- package/dist/tools-logic/session-start.js.map +1 -1
- package/dist/tools-logic/smart-remember.js +8 -9
- package/dist/tools-logic/smart-remember.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.js +1 -1
- package/dist/vector/embedding.d.ts +8 -0
- package/dist/vector/embedding.d.ts.map +1 -1
- package/dist/vector/embedding.js +9 -1
- package/dist/vector/embedding.js.map +1 -1
- package/package.json +2 -2
|
@@ -30,6 +30,7 @@ import { getDreamHealth } from "../storage/dream-health.js";
|
|
|
30
30
|
import { readBehaviorPolicies, recordPolicyLoad } from "../storage/behavior-policies.js";
|
|
31
31
|
import { buildRecognition } from "./recognition-builder.js";
|
|
32
32
|
import { runStoreDoctor, storeDoctorBanner } from "./store-doctor.js";
|
|
33
|
+
import { isExperimentEnabled, assignArm, logABResult, warnForcedWithoutEnabled, } from "../storage/ab-experiment.js";
|
|
33
34
|
/** Slice text at the nearest word boundary, avoiding mid-word truncation. */
|
|
34
35
|
function sliceAtWord(text, maxLen) {
|
|
35
36
|
if (text.length <= maxLen)
|
|
@@ -38,6 +39,105 @@ function sliceAtWord(text, maxLen) {
|
|
|
38
39
|
const lastSpace = sliced.lastIndexOf(" ");
|
|
39
40
|
return lastSpace > maxLen * 0.6 ? sliced.slice(0, lastSpace) : sliced;
|
|
40
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* Project a full CorrectionRecord to the slim payload shape.
|
|
44
|
+
*
|
|
45
|
+
* KPI counters (retrieved_count, heeded_count, precision, proof_confidence, etc.)
|
|
46
|
+
* are stripped — they are internal bookkeeping and add ~60 tokens per correction
|
|
47
|
+
* without helping the LLM act. The agent reads `rule` + `severity` to comply.
|
|
48
|
+
*
|
|
49
|
+
* `context` is included only when it contains materially more text than `rule`
|
|
50
|
+
* (i.e. len > rule.len + 20 chars). When rule == context (the common case),
|
|
51
|
+
* omitting context saves ~50% of per-correction payload.
|
|
52
|
+
*/
|
|
53
|
+
function toSlimCorrection(c) {
|
|
54
|
+
const slim = {
|
|
55
|
+
id: c.id,
|
|
56
|
+
severity: c.severity,
|
|
57
|
+
rule: c.rule,
|
|
58
|
+
};
|
|
59
|
+
const ctx = (c.context ?? "").trim();
|
|
60
|
+
const rule = (c.rule ?? "").trim();
|
|
61
|
+
// Include context only when it adds ≥20 chars of additional content.
|
|
62
|
+
if (ctx && ctx !== rule && ctx.length > rule.length + 20) {
|
|
63
|
+
slim.context = sliceAtWord(ctx, 300);
|
|
64
|
+
}
|
|
65
|
+
return slim;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Hard per-section budget cap for the session_start payload.
|
|
69
|
+
*
|
|
70
|
+
* BUDGET BASIS: the `*_total` budgets are measured against the JSON-SERIALIZED
|
|
71
|
+
* length of each item (`JSON.stringify(item).length` summed per section), NOT
|
|
72
|
+
* raw field chars — so keys, quotes, and escapes count against the budget.
|
|
73
|
+
* Per-field limits (`correction_rule`, `insights_title`, …) ARE raw char caps
|
|
74
|
+
* applied to the field text before serialization.
|
|
75
|
+
*
|
|
76
|
+
* Token estimate: chars / 4 (conservative; real tokenizer would give ~same for English prose).
|
|
77
|
+
* P0 corrections ALWAYS survive the cap regardless of position — they are the
|
|
78
|
+
* highest-priority behavioral rules and must never be silently trimmed. When
|
|
79
|
+
* P0s alone exceed corrections_total, the section intentionally exceeds its
|
|
80
|
+
* budget (see applyCorrectionBudget).
|
|
81
|
+
*
|
|
82
|
+
* Budget allocation (serialized chars — divide by 4 for token equiv):
|
|
83
|
+
* corrections: 1200 (~300 tokens) — P0s always kept, may overflow on dense P0s
|
|
84
|
+
* insights: 700 (~175 tokens)
|
|
85
|
+
* active_rooms: 500 (~125 tokens)
|
|
86
|
+
* recent_captures: 550 (~140 tokens)
|
|
87
|
+
* recent briefs: 300+250 raw chars (today+yesterday, per-field caps)
|
|
88
|
+
* behavior_rules: per-field caps only (when≤100, do≤120 raw chars)
|
|
89
|
+
* other sections: unbounded (already small or absent-when-empty)
|
|
90
|
+
*
|
|
91
|
+
* Total: ~6000 serialized chars → ~1500 tokens (target: ≤1500 tokens median).
|
|
92
|
+
*/
|
|
93
|
+
const SECTION_CHAR_LIMITS = {
|
|
94
|
+
correction_rule: 120, // per item rule field (raw chars)
|
|
95
|
+
correction_context: 250, // per item context field (raw chars, only when included)
|
|
96
|
+
corrections_total: 1200, // total serialized corrections budget (JSON chars)
|
|
97
|
+
insights_title: 180, // per insight title (raw chars)
|
|
98
|
+
insights_total: 700, // total insights budget (JSON chars)
|
|
99
|
+
rooms_one_liner: 160, // per room one_liner (raw chars)
|
|
100
|
+
rooms_total: 500, // total rooms budget (JSON chars)
|
|
101
|
+
recent_today: 300, // today brief (raw chars)
|
|
102
|
+
recent_yesterday: 250, // yesterday brief (raw chars)
|
|
103
|
+
capture_question: 80, // per capture question (raw chars)
|
|
104
|
+
capture_answer: 180, // per capture answer (raw chars)
|
|
105
|
+
captures_total: 550, // total captures budget (JSON chars)
|
|
106
|
+
rule_when: 100, // behavior rule when (raw chars)
|
|
107
|
+
rule_do: 120, // behavior rule do (raw chars)
|
|
108
|
+
};
|
|
109
|
+
/** Apply per-section char limits to slim corrections, respecting P0 priority. */
|
|
110
|
+
function applyCorrectionBudget(corrections) {
|
|
111
|
+
// P0s are unconditionally included (they are the non-negotiable behavioral rules).
|
|
112
|
+
// P1s fill remaining budget. Both categories are already ranked by rankCorrections.
|
|
113
|
+
const p0s = corrections.filter(c => c.severity === "p0");
|
|
114
|
+
const p1s = corrections.filter(c => c.severity !== "p0");
|
|
115
|
+
const trimmedP0s = p0s.map(c => ({
|
|
116
|
+
...c,
|
|
117
|
+
rule: sliceAtWord(c.rule, SECTION_CHAR_LIMITS.correction_rule),
|
|
118
|
+
context: c.context ? sliceAtWord(c.context, SECTION_CHAR_LIMITS.correction_context) : undefined,
|
|
119
|
+
}));
|
|
120
|
+
// INTENTIONAL P0 OVERFLOW: P0s always survive — when the trimmed P0s alone
|
|
121
|
+
// exceed corrections_total, `budget` goes NEGATIVE, zero P1s are admitted,
|
|
122
|
+
// and the section EXCEEDS its cap. P0 completeness beats the byte budget:
|
|
123
|
+
// silently dropping a non-negotiable behavioral rule is worse than a fat
|
|
124
|
+
// payload. Controlled, not accidental — covered by the P0-overflow test.
|
|
125
|
+
let budget = SECTION_CHAR_LIMITS.corrections_total - JSON.stringify(trimmedP0s).length;
|
|
126
|
+
const trimmedP1s = [];
|
|
127
|
+
for (const c of p1s) {
|
|
128
|
+
const trimmed = {
|
|
129
|
+
...c,
|
|
130
|
+
rule: sliceAtWord(c.rule, SECTION_CHAR_LIMITS.correction_rule),
|
|
131
|
+
context: c.context ? sliceAtWord(c.context, SECTION_CHAR_LIMITS.correction_context) : undefined,
|
|
132
|
+
};
|
|
133
|
+
const itemSize = JSON.stringify(trimmed).length;
|
|
134
|
+
if (budget - itemSize < 0)
|
|
135
|
+
break; // no room left for P1s
|
|
136
|
+
trimmedP1s.push(trimmed);
|
|
137
|
+
budget -= itemSize;
|
|
138
|
+
}
|
|
139
|
+
return [...trimmedP0s, ...trimmedP1s];
|
|
140
|
+
}
|
|
41
141
|
/**
|
|
42
142
|
* Strip markdown ATX headers from a journal fragment before embedding it into
|
|
43
143
|
* a card field. `extractSection(content, "next")` returns the section heading
|
|
@@ -60,6 +160,25 @@ export async function sessionStart(input) {
|
|
|
60
160
|
resetOwnedFiles();
|
|
61
161
|
const slug = await resolveProject(input.project);
|
|
62
162
|
ensurePalaceInitialized(slug);
|
|
163
|
+
// C4 A/B experiment — assign the arm FIRST so every correction-derived
|
|
164
|
+
// section below can gate on it. OFF semantics (orchestrator ruling
|
|
165
|
+
// 2026-07-03): "this agent has no correction memory today" — corrections,
|
|
166
|
+
// watch_for, predicted_risks, blind_spots, mirror_available, the alignment
|
|
167
|
+
// KPI block, and correction-derived recognition tendencies are ALL
|
|
168
|
+
// absent/empty in OFF payloads. Insights/rooms/captures (journal lineage)
|
|
169
|
+
// stay in both arms — v1 manipulates corrections only.
|
|
170
|
+
//
|
|
171
|
+
// When AR_AB_ENABLED is not set (default), abAssignment is null and every
|
|
172
|
+
// session gets full injection as before — no degradation, no ledger write.
|
|
173
|
+
// AR_AB_FORCE without AR_AB_ENABLED=1 is a loud no-op (stderr warning).
|
|
174
|
+
let abAssignment = null;
|
|
175
|
+
if (isExperimentEnabled()) {
|
|
176
|
+
abAssignment = assignArm(slug);
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
warnForcedWithoutEnabled();
|
|
180
|
+
}
|
|
181
|
+
const abArm = abAssignment?.arm ?? null;
|
|
63
182
|
// 1. Identity — first meaningful lines, skipping YAML frontmatter keys and empty template stubs
|
|
64
183
|
const rawIdentity = readIdentity(slug);
|
|
65
184
|
const identityLines = rawIdentity.split("\n").filter((l) => {
|
|
@@ -193,48 +312,58 @@ export async function sessionStart(input) {
|
|
|
193
312
|
const content = fs.readFileSync(path.join(dir, file), "utf-8");
|
|
194
313
|
const brief = extractSection(content, "brief");
|
|
195
314
|
const raw = brief ? brief : content.split("\n").slice(0, 3).join(" ");
|
|
196
|
-
const entry = sliceAtWord(stripMarkdownHeaders(raw),
|
|
315
|
+
const entry = sliceAtWord(stripMarkdownHeaders(raw), SECTION_CHAR_LIMITS.recent_today);
|
|
197
316
|
todayBrief = todayBrief ? `${todayBrief} | ${entry}` : entry;
|
|
198
317
|
}
|
|
199
318
|
else if (d === yesterday && !yesterdayBrief) {
|
|
200
319
|
const content = fs.readFileSync(path.join(dir, file), "utf-8");
|
|
201
320
|
const brief = extractSection(content, "brief");
|
|
202
321
|
const raw = brief ? brief : content.split("\n").slice(0, 3).join(" ");
|
|
203
|
-
yesterdayBrief = sliceAtWord(stripMarkdownHeaders(raw),
|
|
322
|
+
yesterdayBrief = sliceAtWord(stripMarkdownHeaders(raw), SECTION_CHAR_LIMITS.recent_yesterday);
|
|
204
323
|
}
|
|
205
324
|
else if (d < yesterday) {
|
|
206
325
|
olderCount++;
|
|
207
326
|
}
|
|
208
327
|
}
|
|
209
328
|
}
|
|
210
|
-
// 6. Watch for — predictive warnings from past corrections
|
|
211
|
-
|
|
212
|
-
const watch_for =
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
329
|
+
// 6. Watch for — predictive warnings from past corrections.
|
|
330
|
+
// A/B OFF arm: suppressed entirely (correction-derived; ruling 2026-07-03).
|
|
331
|
+
const watch_for = [];
|
|
332
|
+
if (abArm !== "off") {
|
|
333
|
+
const alignLog = readAlignmentLog(slug);
|
|
334
|
+
watch_for.push(...extractWatchPatterns(alignLog, 2));
|
|
335
|
+
// 8b. Decision calibration warnings
|
|
336
|
+
const calibration = computeDecisionCalibration(slug);
|
|
337
|
+
for (const cal of calibration) {
|
|
338
|
+
watch_for.push({
|
|
339
|
+
pattern: cal.pattern,
|
|
340
|
+
frequency: cal.sample_size,
|
|
341
|
+
suggestion: cal.suggestion,
|
|
342
|
+
});
|
|
343
|
+
}
|
|
221
344
|
}
|
|
222
345
|
// 7. P0 corrections — always-load behavioral rules (max 10).
|
|
223
346
|
// P5: rank by severity → proof_confidence → recency → proof_count so the most
|
|
224
347
|
// authoritative, evidence-backed rules win the cap (was: arbitrary newest-10).
|
|
225
|
-
|
|
348
|
+
// We read the FULL records for outcome tracking, then slim them for the payload.
|
|
349
|
+
const rawCorrections = rankCorrections(readP0Corrections(slug), 10);
|
|
226
350
|
// P0-B: auto-record "retrieved" outcome for each surfaced correction.
|
|
227
351
|
// Automaticity Law: only automatic instrumentation captures real data.
|
|
228
352
|
// Guard: fire at most once per correction per calendar day — prevents
|
|
229
353
|
// double-counting if session_start is called twice in the same session
|
|
230
354
|
// (e.g. on reconnect or tool retry).
|
|
231
|
-
|
|
355
|
+
//
|
|
356
|
+
// A/B: "retrieved" is ONLY recorded when the correction is actually injected
|
|
357
|
+
// (arm ON or experiment disabled). In the OFF arm the agent never sees the
|
|
358
|
+
// corrections — recording "retrieved" would falsely inflate the precision
|
|
359
|
+
// numerator and corrupt the KPI that measures injection effectiveness.
|
|
360
|
+
if (abArm !== "off") {
|
|
232
361
|
// Local-TZ date for the 1/day guard (Sprint-0 review: toISOString is UTC,
|
|
233
362
|
// which breaks the guard for users in UTC+5..+14 — e.g. 07:50 local in UTC+8
|
|
234
363
|
// is "yesterday" in UTC). "sv" locale formats as YYYY-MM-DD.
|
|
235
364
|
const todayStr = new Date().toLocaleDateString("sv");
|
|
236
365
|
const nowISO = new Date().toISOString();
|
|
237
|
-
for (const c of
|
|
366
|
+
for (const c of rawCorrections) {
|
|
238
367
|
if (c.last_retrieved && new Date(c.last_retrieved).toLocaleDateString("sv") === todayStr)
|
|
239
368
|
continue; // already counted today
|
|
240
369
|
try {
|
|
@@ -251,6 +380,11 @@ export async function sessionStart(input) {
|
|
|
251
380
|
}
|
|
252
381
|
}
|
|
253
382
|
}
|
|
383
|
+
// Slim corrections: strip KPI fields, keep only what the LLM acts on.
|
|
384
|
+
// applyCorrectionBudget ensures P0s always survive the total char cap.
|
|
385
|
+
// A/B OFF arm: corrections is an empty array — the agent never sees them.
|
|
386
|
+
const correctionsSlim = applyCorrectionBudget(rawCorrections.map(toSlimCorrection));
|
|
387
|
+
const corrections = abArm === "off" ? [] : correctionsSlim;
|
|
254
388
|
// 8. Resume block — structured re-entry briefing for returning sessions
|
|
255
389
|
const sessionsCount = olderCount + (yesterdayBrief ? 1 : 0) + (todayBrief ? 1 : 0);
|
|
256
390
|
let resume = null;
|
|
@@ -309,8 +443,11 @@ export async function sessionStart(input) {
|
|
|
309
443
|
// internals, so "non-empty" is precise rather than `active_rooms.length > 0`.
|
|
310
444
|
const hasPalaceContent = allRooms.some((r) => countRoomEntries(slug, r.slug) > 0);
|
|
311
445
|
const hasCaptures = recentCaptures.length > 0 || hasCaptureLogs(slug);
|
|
446
|
+
// A/B: use correctionsSlim (pre-suppression), NOT the arm-gated `corrections`,
|
|
447
|
+
// so empty-state detection is arm-independent — an OFF-arm session on a
|
|
448
|
+
// corrections-only project must not flash the "No memory found" banner.
|
|
312
449
|
const isEmpty = !resume &&
|
|
313
|
-
|
|
450
|
+
correctionsSlim.length === 0 &&
|
|
314
451
|
!todayBrief && !yesterdayBrief &&
|
|
315
452
|
olderCount === 0 &&
|
|
316
453
|
!hasCaptures &&
|
|
@@ -332,20 +469,23 @@ export async function sessionStart(input) {
|
|
|
332
469
|
// Wrapped in try/catch so a corrupt or unreadable corrections dir never
|
|
333
470
|
// breaks session orientation. Null when no outcome data exists yet
|
|
334
471
|
// (retrieved === 0) — no fake claims.
|
|
472
|
+
// A/B OFF arm: suppressed (correction-derived KPI; ruling 2026-07-03).
|
|
335
473
|
let alignment = null;
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
474
|
+
if (abArm !== "off") {
|
|
475
|
+
try {
|
|
476
|
+
const kpis = getCorrectionKPIs(slug);
|
|
477
|
+
if (kpis.retrieved > 0) {
|
|
478
|
+
alignment = {
|
|
479
|
+
precision: kpis.precision,
|
|
480
|
+
retrieved: kpis.retrieved,
|
|
481
|
+
heeded: kpis.heeded,
|
|
482
|
+
recurred: kpis.recurred,
|
|
483
|
+
};
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
catch {
|
|
487
|
+
// alignment remains null — session_start must always succeed
|
|
345
488
|
}
|
|
346
|
-
}
|
|
347
|
-
catch {
|
|
348
|
-
// alignment remains null — session_start must always succeed
|
|
349
489
|
}
|
|
350
490
|
// Dream cron health — surface when broken for ≥2 nights
|
|
351
491
|
const dreamHealthRaw = getDreamHealth();
|
|
@@ -385,58 +525,70 @@ export async function sessionStart(input) {
|
|
|
385
525
|
// — never break orientation. Derivation runs async in consolidation; here we
|
|
386
526
|
// only READ the profile and run the (synchronous) predictor over the active
|
|
387
527
|
// phase goal + latest `## Next` trajectory.
|
|
528
|
+
// A/B OFF arm: blind_spots + predicted_risks are correction-derived —
|
|
529
|
+
// suppressed entirely (ruling 2026-07-03). The predictor is not even run.
|
|
388
530
|
let blindSpots = [];
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
}
|
|
400
|
-
catch {
|
|
401
|
-
blindSpots = [];
|
|
402
|
-
}
|
|
403
|
-
try {
|
|
404
|
-
const planParts = [];
|
|
405
|
-
if (pipeline?.active_phase_goal)
|
|
406
|
-
planParts.push(pipeline.active_phase_goal);
|
|
407
|
-
if (resume?.last_trajectory)
|
|
408
|
-
planParts.push(resume.last_trajectory);
|
|
409
|
-
const planText = planParts.join(". ").trim();
|
|
410
|
-
if (planText) {
|
|
411
|
-
const pred = await predictCorrection({ plan: planText, project: slug });
|
|
412
|
-
if (pred.likelihood !== "low" && pred.top_risks.length > 0) {
|
|
413
|
-
predictedRisks = pred.top_risks.slice(0, 2).map((r) => ({
|
|
414
|
-
tendency: sliceAtWord(r.tendency, 160),
|
|
415
|
-
likelihood: pred.likelihood,
|
|
416
|
-
matched: r.matched,
|
|
531
|
+
// predicted_risks is optional — undefined when empty (absent from JSON, saves ~20 bytes/project).
|
|
532
|
+
let predictedRisks;
|
|
533
|
+
if (abArm !== "off") {
|
|
534
|
+
try {
|
|
535
|
+
const profile = readBlindSpots(slug);
|
|
536
|
+
if (profile) {
|
|
537
|
+
blindSpots = profile.blind_spots.slice(0, 2).map((b) => ({
|
|
538
|
+
tendency: sliceAtWord(b.tendency, 160),
|
|
539
|
+
severity: b.severity,
|
|
540
|
+
evidence_count: b.evidence_count,
|
|
417
541
|
}));
|
|
418
542
|
}
|
|
419
543
|
}
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
544
|
+
catch {
|
|
545
|
+
blindSpots = [];
|
|
546
|
+
}
|
|
547
|
+
try {
|
|
548
|
+
const planParts = [];
|
|
549
|
+
if (pipeline?.active_phase_goal)
|
|
550
|
+
planParts.push(pipeline.active_phase_goal);
|
|
551
|
+
if (resume?.last_trajectory)
|
|
552
|
+
planParts.push(resume.last_trajectory);
|
|
553
|
+
const planText = planParts.join(". ").trim();
|
|
554
|
+
if (planText) {
|
|
555
|
+
const pred = await predictCorrection({ plan: planText, project: slug });
|
|
556
|
+
if (pred.likelihood !== "low" && pred.top_risks.length > 0) {
|
|
557
|
+
predictedRisks = pred.top_risks.slice(0, 2).map((r) => ({
|
|
558
|
+
tendency: sliceAtWord(r.tendency, 160),
|
|
559
|
+
likelihood: pred.likelihood,
|
|
560
|
+
matched: r.matched,
|
|
561
|
+
}));
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
}
|
|
565
|
+
catch {
|
|
566
|
+
predictedRisks = undefined;
|
|
567
|
+
}
|
|
423
568
|
}
|
|
424
569
|
// Loop 9 — cheap pointer to The Mirror. We do NOT assemble the reflection on
|
|
425
570
|
// the hot path; we only note it EXISTS when there is real data to reflect (a
|
|
426
571
|
// stored blind-spots profile OR ≥1 active correction). Best-effort: a failure
|
|
427
572
|
// here leaves the pointer null and never breaks orientation.
|
|
573
|
+
// A/B OFF arm: suppressed — the pointer names correction counts (correction-
|
|
574
|
+
// derived). With corrections=[] and blindSpots=[] it would self-suppress
|
|
575
|
+
// anyway, but the explicit gate keeps the contract robust to future edits.
|
|
428
576
|
let mirrorAvailable;
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
577
|
+
if (abArm !== "off") {
|
|
578
|
+
try {
|
|
579
|
+
const hasProfile = blindSpots.length > 0;
|
|
580
|
+
// corrections is now SlimCorrection[] (no `active` field) — count length directly.
|
|
581
|
+
// All surfaced corrections are already active (readP0Corrections filters inactive).
|
|
582
|
+
const activeCorrections = corrections.length;
|
|
583
|
+
if (hasProfile || activeCorrections > 0) {
|
|
584
|
+
mirrorAvailable =
|
|
585
|
+
`The Mirror is available — run \`ar mirror --project ${slug}\` to see, and correct, ` +
|
|
586
|
+
`what I've noticed about how you think (${activeCorrections} corrections grounding it).`;
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
catch {
|
|
590
|
+
mirrorAvailable = undefined;
|
|
436
591
|
}
|
|
437
|
-
}
|
|
438
|
-
catch {
|
|
439
|
-
mirrorAvailable = undefined;
|
|
440
592
|
}
|
|
441
593
|
// Loop 4 — real-time recognition snapshot. Pure-local assembler over the
|
|
442
594
|
// already-resolved slug (no re-detection ⇒ no git shell-out on the hot path).
|
|
@@ -453,32 +605,104 @@ export async function sessionStart(input) {
|
|
|
453
605
|
person: { tendencies: [], caveat: "" },
|
|
454
606
|
};
|
|
455
607
|
}
|
|
456
|
-
|
|
608
|
+
// A/B OFF arm: recognition.person tendencies derive from the blind-spots
|
|
609
|
+
// profile (corrections lineage) — strip the person block regardless of
|
|
610
|
+
// content (ruling 2026-07-03). who/can_do/project are NOT correction-derived
|
|
611
|
+
// and stay.
|
|
612
|
+
if (abArm === "off" && recognition.person) {
|
|
613
|
+
const { person: _correctionDerived, ...rest } = recognition;
|
|
614
|
+
recognition = rest;
|
|
615
|
+
}
|
|
616
|
+
// Apply per-section char budgets to insights and rooms.
|
|
617
|
+
const insightsBudgeted = (() => {
|
|
618
|
+
let budget = SECTION_CHAR_LIMITS.insights_total;
|
|
619
|
+
const out = [];
|
|
620
|
+
for (const i of insights) {
|
|
621
|
+
const trimmed = { ...i, title: sliceAtWord(i.title, SECTION_CHAR_LIMITS.insights_title) };
|
|
622
|
+
const size = JSON.stringify(trimmed).length;
|
|
623
|
+
if (budget - size < 0)
|
|
624
|
+
break;
|
|
625
|
+
out.push(trimmed);
|
|
626
|
+
budget -= size;
|
|
627
|
+
}
|
|
628
|
+
return out;
|
|
629
|
+
})();
|
|
630
|
+
const roomsBudgeted = (() => {
|
|
631
|
+
let budget = SECTION_CHAR_LIMITS.rooms_total;
|
|
632
|
+
const out = [];
|
|
633
|
+
for (const r of active_rooms) {
|
|
634
|
+
const trimmed = { ...r, one_liner: sliceAtWord(r.one_liner, SECTION_CHAR_LIMITS.rooms_one_liner) };
|
|
635
|
+
const size = JSON.stringify(trimmed).length;
|
|
636
|
+
if (budget - size < 0)
|
|
637
|
+
break;
|
|
638
|
+
out.push(trimmed);
|
|
639
|
+
budget -= size;
|
|
640
|
+
}
|
|
641
|
+
return out;
|
|
642
|
+
})();
|
|
643
|
+
// recent_captures: suppress "Auto-captured" label (not useful), apply budget.
|
|
644
|
+
const capturesBudgeted = (() => {
|
|
645
|
+
let budget = SECTION_CHAR_LIMITS.captures_total;
|
|
646
|
+
const out = [];
|
|
647
|
+
for (const c of recentCaptures) {
|
|
648
|
+
// Suppress generic "Auto-captured" question — it adds no signal for the agent.
|
|
649
|
+
const q = c.question && c.question !== "Auto-captured"
|
|
650
|
+
? sliceAtWord(c.question, SECTION_CHAR_LIMITS.capture_question)
|
|
651
|
+
: "";
|
|
652
|
+
const a = sliceAtWord(c.answer, SECTION_CHAR_LIMITS.capture_answer);
|
|
653
|
+
const item = { date: c.date, question: q, answer: a };
|
|
654
|
+
const size = JSON.stringify(item).length;
|
|
655
|
+
if (budget - size < 0)
|
|
656
|
+
break;
|
|
657
|
+
out.push(item);
|
|
658
|
+
budget -= size;
|
|
659
|
+
}
|
|
660
|
+
return out;
|
|
661
|
+
})();
|
|
662
|
+
// behavior_rules: apply per-field char limits to when/do.
|
|
663
|
+
const rulesBudgeted = behaviorRules.map((r) => ({
|
|
664
|
+
...r,
|
|
665
|
+
when: sliceAtWord(r.when, SECTION_CHAR_LIMITS.rule_when),
|
|
666
|
+
do: sliceAtWord(r.do, SECTION_CHAR_LIMITS.rule_do),
|
|
667
|
+
}));
|
|
668
|
+
const result = {
|
|
457
669
|
project: slug,
|
|
458
670
|
identity,
|
|
459
|
-
insights,
|
|
460
|
-
active_rooms,
|
|
671
|
+
insights: insightsBudgeted,
|
|
672
|
+
active_rooms: roomsBudgeted,
|
|
461
673
|
cross_project,
|
|
462
674
|
recent: { today: todayBrief, yesterday: yesterdayBrief, older_count: olderCount },
|
|
463
|
-
recent_captures:
|
|
464
|
-
date: c.date,
|
|
465
|
-
question: sliceAtWord(c.question, 120),
|
|
466
|
-
answer: sliceAtWord(c.answer, 200),
|
|
467
|
-
})),
|
|
675
|
+
recent_captures: capturesBudgeted,
|
|
468
676
|
watch_for,
|
|
469
677
|
corrections,
|
|
470
678
|
resume,
|
|
471
|
-
behavior_rules:
|
|
679
|
+
behavior_rules: rulesBudgeted,
|
|
472
680
|
dream_health: dreamHealth,
|
|
473
681
|
store_doctor: storeDoctorLine,
|
|
474
682
|
pipeline,
|
|
475
683
|
alignment,
|
|
476
684
|
blind_spots: blindSpots,
|
|
477
|
-
predicted_risks
|
|
478
|
-
|
|
685
|
+
// Omit predicted_risks entirely when empty — absent from JSON saves bytes.
|
|
686
|
+
predicted_risks: predictedRisks && predictedRisks.length > 0 ? predictedRisks : undefined,
|
|
687
|
+
// Suppress recognition.person when tendencies is empty — the caveat string alone
|
|
688
|
+
// wastes ~70 bytes with no actionable content. RecognitionPayload.person is
|
|
689
|
+
// optional (absent-when-empty contract); destructuring drops the key entirely.
|
|
690
|
+
recognition: recognition.person && recognition.person.tendencies.length === 0
|
|
691
|
+
? (({ person: _omitEmptyPerson, ...rest }) => rest)(recognition)
|
|
692
|
+
: recognition,
|
|
479
693
|
mirror_available: mirrorAvailable,
|
|
480
694
|
empty_state: isEmpty ? "No memory found for this project. Try: bootstrap_scan() to import existing projects, or start working and use remember() to save decisions." : undefined,
|
|
695
|
+
// C4: ab_arm is included only when the experiment is running (saves bytes otherwise).
|
|
696
|
+
ab_arm: abArm ?? undefined,
|
|
481
697
|
};
|
|
698
|
+
// C4: fill in the injected_count + payload_tokens in the ledger row now that
|
|
699
|
+
// we know the final payload shape. Best-effort — never delays the return.
|
|
700
|
+
if (abAssignment) {
|
|
701
|
+
const injectedCount = corrections.length; // 0 for OFF arm
|
|
702
|
+
const payloadTokens = Math.round(JSON.stringify(corrections).length / 4);
|
|
703
|
+
logABResult(slug, abAssignment.session_key, injectedCount, payloadTokens);
|
|
704
|
+
}
|
|
705
|
+
return result;
|
|
482
706
|
}
|
|
483
707
|
async function autoBackfill(project) {
|
|
484
708
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-start.js","sourceRoot":"","sources":["../../src/tools-logic/session-start.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session-start.js","sourceRoot":"","sources":["../../src/tools-logic/session-start.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,6 @@ import { consistencyCheck } from "../helpers/consistency.js";
|
|
|
10
10
|
import { scanForConflicts, formatConflictWarning } from "../helpers/conflict-scan.js";
|
|
11
11
|
import { journalCapture } from "./journal-capture.js";
|
|
12
12
|
import { palaceWrite } from "./palace-write.js";
|
|
13
|
-
import { knowledgeWrite } from "./knowledge-write.js";
|
|
14
13
|
import { awarenessUpdate } from "./awareness-update.js";
|
|
15
14
|
import { getRoot } from "../types.js";
|
|
16
15
|
const ROUTE_SIGNALS = {
|
|
@@ -153,14 +152,14 @@ export async function smartRemember(input) {
|
|
|
153
152
|
break;
|
|
154
153
|
}
|
|
155
154
|
case "knowledge_write": {
|
|
156
|
-
//
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
155
|
+
// purity-census-2026-07-05: standalone knowledge/ dir is a write-only graveyard —
|
|
156
|
+
// nothing reads it (knowledge_read MCP tool deprecated; session_start does not surface it).
|
|
157
|
+
// New writes route to journal instead (the alive store that IS read back).
|
|
158
|
+
// Existing files on disk are untouched. To recall old knowledge entries, open
|
|
159
|
+
// ~/.agent-recall/projects/<name>/knowledge/ directly or use palace/rooms/knowledge/.
|
|
160
|
+
result = await journalCapture({
|
|
161
|
+
question: "Auto-captured lesson",
|
|
162
|
+
answer: input.content,
|
|
164
163
|
project: input.project,
|
|
165
164
|
});
|
|
166
165
|
break;
|