agent-recall-core 3.4.35 → 3.4.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 (71) hide show
  1. package/dist/index.d.ts +7 -8
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +15 -8
  4. package/dist/index.js.map +1 -1
  5. package/dist/prompts/consolidation-prompt.d.ts +1 -1
  6. package/dist/prompts/consolidation-prompt.d.ts.map +1 -1
  7. package/dist/prompts/consolidation-prompt.js +1 -1
  8. package/dist/storage/ab-experiment.d.ts +184 -0
  9. package/dist/storage/ab-experiment.d.ts.map +1 -0
  10. package/dist/storage/ab-experiment.js +294 -0
  11. package/dist/storage/ab-experiment.js.map +1 -0
  12. package/dist/storage/classification.d.ts +7 -3
  13. package/dist/storage/classification.d.ts.map +1 -1
  14. package/dist/storage/classification.js +13 -9
  15. package/dist/storage/classification.js.map +1 -1
  16. package/dist/storage/corrections.d.ts +106 -2
  17. package/dist/storage/corrections.d.ts.map +1 -1
  18. package/dist/storage/corrections.js +197 -2
  19. package/dist/storage/corrections.js.map +1 -1
  20. package/dist/supabase/config.d.ts +18 -0
  21. package/dist/supabase/config.d.ts.map +1 -1
  22. package/dist/supabase/config.js +6 -0
  23. package/dist/supabase/config.js.map +1 -1
  24. package/dist/supabase/sync.d.ts +1 -1
  25. package/dist/supabase/sync.d.ts.map +1 -1
  26. package/dist/supabase/sync.js +55 -0
  27. package/dist/supabase/sync.js.map +1 -1
  28. package/dist/tools-logic/check-action.d.ts +31 -0
  29. package/dist/tools-logic/check-action.d.ts.map +1 -1
  30. package/dist/tools-logic/check-action.js +168 -1
  31. package/dist/tools-logic/check-action.js.map +1 -1
  32. package/dist/tools-logic/check.d.ts.map +1 -1
  33. package/dist/tools-logic/check.js +5 -0
  34. package/dist/tools-logic/check.js.map +1 -1
  35. package/dist/tools-logic/local-archive-backend.d.ts +33 -0
  36. package/dist/tools-logic/local-archive-backend.d.ts.map +1 -0
  37. package/dist/tools-logic/local-archive-backend.js +124 -0
  38. package/dist/tools-logic/local-archive-backend.js.map +1 -0
  39. package/dist/tools-logic/memory-backend.d.ts +74 -0
  40. package/dist/tools-logic/memory-backend.d.ts.map +1 -0
  41. package/dist/tools-logic/memory-backend.js +172 -0
  42. package/dist/tools-logic/memory-backend.js.map +1 -0
  43. package/dist/tools-logic/prior-builder.d.ts.map +1 -1
  44. package/dist/tools-logic/prior-builder.js +34 -1
  45. package/dist/tools-logic/prior-builder.js.map +1 -1
  46. package/dist/tools-logic/recognition-builder.d.ts +8 -2
  47. package/dist/tools-logic/recognition-builder.d.ts.map +1 -1
  48. package/dist/tools-logic/recognition-builder.js +1 -1
  49. package/dist/tools-logic/recognition-builder.js.map +1 -1
  50. package/dist/tools-logic/session-end-reflect.js +1 -1
  51. package/dist/tools-logic/session-end-reflect.js.map +1 -1
  52. package/dist/tools-logic/session-end.d.ts +9 -0
  53. package/dist/tools-logic/session-end.d.ts.map +1 -1
  54. package/dist/tools-logic/session-end.js +242 -52
  55. package/dist/tools-logic/session-end.js.map +1 -1
  56. package/dist/tools-logic/session-start-lite.d.ts.map +1 -1
  57. package/dist/tools-logic/session-start-lite.js +1 -2
  58. package/dist/tools-logic/session-start-lite.js.map +1 -1
  59. package/dist/tools-logic/session-start.d.ts +37 -4
  60. package/dist/tools-logic/session-start.d.ts.map +1 -1
  61. package/dist/tools-logic/session-start.js +305 -81
  62. package/dist/tools-logic/session-start.js.map +1 -1
  63. package/dist/tools-logic/smart-remember.js +8 -9
  64. package/dist/tools-logic/smart-remember.js.map +1 -1
  65. package/dist/types.d.ts +1 -1
  66. package/dist/types.js +1 -1
  67. package/dist/vector/embedding.d.ts +8 -0
  68. package/dist/vector/embedding.d.ts.map +1 -1
  69. package/dist/vector/embedding.js +9 -1
  70. package/dist/vector/embedding.js.map +1 -1
  71. package/package.json +2 -2
@@ -15,7 +15,7 @@
15
15
  * that would otherwise have to be re-derived.
16
16
  */
17
17
  import { resolveProject } from "../storage/project.js";
18
- import { readActiveCorrections } from "./../storage/corrections.js";
18
+ import { readActiveCorrections, recordOutcome, readOutcomesForToday } from "./../storage/corrections.js";
19
19
  import { readBehaviorPolicies } from "../storage/behavior-policies.js";
20
20
  import { readAwarenessState } from "../palace/awareness.js";
21
21
  const STOPWORDS = new Set([
@@ -48,6 +48,144 @@ export function overlap(a, b) {
48
48
  hits.push(t);
49
49
  return hits.sort();
50
50
  }
51
+ // ---------------------------------------------------------------------------
52
+ // RD-1 — failure-class keyword classifier (recurrence-detector workpacket §1)
53
+ // ---------------------------------------------------------------------------
54
+ /**
55
+ * Per-class keyword sets — ADOPTED VERBATIM from the eval-frozen table in
56
+ * scripts/eval/failure-class-matchfn.mjs (frozen 2026-07-14 BEFORE the first
57
+ * eval run; passed the workpacket's Phase-0 acceptance gates on the live
58
+ * corpus). Review finding HIGH-1 (2026-07-14): the earlier taxonomy-derived
59
+ * table carried ambient tokens ("wrong", "work", "memory", "human", "api",
60
+ * "customer") that misclassified realistic rules on single hits — and a
61
+ * stored failure_class is durable (stored-wins on merge), so classifier
62
+ * precision matters more here than recall. The eval table deliberately
63
+ * excludes ambient tokens and carries surface variants (pushed/deployment/
64
+ * renamed…) because tokenize does no stemming. Change one table → re-run
65
+ * scripts/eval/failure-class-eval.mjs and update both.
66
+ *
67
+ * `naming_violation` beyond the workpacket's 7 classes: owner decision
68
+ * 2026-07-14 (highest-phantom class in the taxonomy validation).
69
+ */
70
+ const FAILURE_CLASS_KEYWORDS = [
71
+ ["publish_gate", [
72
+ "push", "pushed", "pushes", "pushing",
73
+ "publish", "published", "publishing",
74
+ "deploy", "deployed", "deploys", "deployment",
75
+ "release", "released", "releases",
76
+ "version", "versions", "bump", "bumped",
77
+ "approval", "approve", "approved",
78
+ "permission", "permissions",
79
+ ]],
80
+ ["naming_violation", [
81
+ "naming", "rename", "renamed", "renames", "renaming",
82
+ "repo", "repos", "repository", "repositories",
83
+ "slug", "slugs", "filename", "filenames",
84
+ "folder", "folders", "directory", "directories",
85
+ "kebab-case", "canonical", "alias", "aliases",
86
+ "spelling", "spelled", "misspelled",
87
+ ]],
88
+ ["model_dispatch", [
89
+ "opus", "sonnet", "haiku", "fable", "codex",
90
+ "model", "models",
91
+ "dispatch", "dispatched", "dispatching",
92
+ "sub-agent", "sub-agents", "subagent", "subagents",
93
+ "orchestrate", "orchestrates", "orchestrator", "orchestration",
94
+ "worker", "workers", "reviewer", "reviewers",
95
+ "sequential", "parallel", "routing",
96
+ ]],
97
+ ["skipped_verify", [
98
+ "verify", "verifying", "verifies", "verification",
99
+ "self-review", "self-verify", "self-check",
100
+ "unverified", "re-verify",
101
+ ]],
102
+ ["confidential_leak", [
103
+ "confidential", "secret", "secrets",
104
+ "internal", "internals",
105
+ "leak", "leaked", "leaks", "leaking",
106
+ "expose", "exposed", "exposes", "exposure",
107
+ "reveal", "reveals", "revealed", "revealing",
108
+ "margin", "margins", "cost", "costs", "economics",
109
+ "credential", "credentials", "api-key", "api-keys",
110
+ ]],
111
+ ["framing_error", [
112
+ "frame", "framed", "frames", "framing", "reframe",
113
+ "lens", "lenses",
114
+ "conceptual", "concept", "concepts",
115
+ "metaphor", "metaphors", "paradigm",
116
+ "analogy", "analogies",
117
+ "neuroscience", "philosophy", "philosophical", "mental",
118
+ ]],
119
+ ["scope_violation", [
120
+ "scope", "scopes", "scoped", "out-of-scope",
121
+ "session", "sessions",
122
+ "focus", "focuses", "focused",
123
+ "unrelated", "mix", "mixing",
124
+ "boundary", "boundaries",
125
+ "conversation", "conversations",
126
+ ]],
127
+ ["wrong_ref", [
128
+ "stale", "outdated", "deprecated",
129
+ "param", "params", "parameter", "parameters",
130
+ "endpoint", "endpoints", "ref", "refs",
131
+ "mismatch", "mismatched",
132
+ ]],
133
+ ];
134
+ /** Tokenized once at module load — fixed array order keeps scoring deterministic. */
135
+ const FAILURE_CLASS_TOKENSETS = FAILURE_CLASS_KEYWORDS.map(([cls, kws]) => [cls, tokenize(kws.join(" "))]);
136
+ /**
137
+ * RD-1 — derive `failure_class` from correction text at capture time.
138
+ *
139
+ * Built ONLY from the existing tokenize/overlap grammar above — no new deps,
140
+ * no ML, no embeddings (the embedding-declined ruling stands). Scoring is a
141
+ * plain token-overlap count per class, resolved highest-first:
142
+ * strict max score > 0 → that class
143
+ * zero hits OR tied max → "other" (owner decision 2026-07-14)
144
+ *
145
+ * NOTE: tokenize does no stemming — "worker" matches the token "worker", not
146
+ * "workers". That is the same deliberate literalness check-action matching has.
147
+ */
148
+ export function classifyFailureClass(text) {
149
+ const tokens = tokenize(typeof text === "string" ? text : "");
150
+ if (tokens.size === 0)
151
+ return "other";
152
+ let best = "other";
153
+ let bestScore = 0;
154
+ let tiedAtBest = false;
155
+ for (const [cls, kwTokens] of FAILURE_CLASS_TOKENSETS) {
156
+ const score = overlap(tokens, kwTokens).length;
157
+ if (score > bestScore) {
158
+ best = cls;
159
+ bestScore = score;
160
+ tiedAtBest = false;
161
+ }
162
+ else if (score === bestScore && score > 0) {
163
+ tiedAtBest = true;
164
+ }
165
+ }
166
+ return bestScore > 0 && !tiedAtBest ? best : "other";
167
+ }
168
+ /**
169
+ * RD-1 — cluster signature for the cross-project class join (workpacket §2).
170
+ * MIRRORS clusterSignature in scripts/eval/predict-loo.mjs — rule + tags through
171
+ * the shared tokenize grammar — so the eval harness and the production join
172
+ * agree on the join key. Change one → change both.
173
+ */
174
+ export function clusterSignature(c) {
175
+ return tokenize(`${c.rule ?? ""} ${(c.tags ?? []).join(" ")}`);
176
+ }
177
+ /**
178
+ * RD-1 fix (live-corpus eval finding, 2026-07-14) — rule-text-only signature
179
+ * for the §1c production join. Auto-tags ("rule", "correction", "deployment")
180
+ * recur across unrelated corrections, so a tags-inclusive overlap ≥ 1 is
181
+ * trivially satisfiable — 18/23 cross-project edges in the eval rode partly on
182
+ * tag tokens; one edge joined on sig∩=["rule"] alone. The production join
183
+ * therefore requires its ≥1-token overlap to come from RULE TEXT only.
184
+ * clusterSignature above stays byte-identical — the eval mirror depends on it.
185
+ */
186
+ export function ruleSignature(c) {
187
+ return tokenize(c.rule ?? "");
188
+ }
51
189
  export async function checkAction(input) {
52
190
  const slug = await resolveProject(input.project);
53
191
  const action = (input.action_description ?? "").trim();
@@ -167,6 +305,35 @@ export async function checkAction(input) {
167
305
  warning = `⛔ CONFLICT: a human correction OVERRIDES this plan — reconcile before proceeding.\n${warning}`;
168
306
  }
169
307
  }
308
+ // C3 (2026-07-03): record a "triggered" outcome for each matched correction.
309
+ // This is the authoritative trigger signal — the agent consulted this correction
310
+ // before acting. Session-end uses this to determine heeded/recurred without
311
+ // falling back to the default-heeded bias.
312
+ // One-per-day dedup: if a "triggered" event already fired today for this correction,
313
+ // skip to avoid log inflation on repeated check-action calls in the same session.
314
+ // Best-effort: trigger recording must NEVER affect the check-action result.
315
+ if (topCorrections.length > 0) {
316
+ try {
317
+ const nowISO = new Date().toISOString();
318
+ const todayOut = readOutcomesForToday(slug);
319
+ for (const c of topCorrections) {
320
+ const firedToday = todayOut.get(c.id);
321
+ // Skip if a triggered (or stronger) outcome already exists today
322
+ if (firedToday && firedToday.has("triggered"))
323
+ continue;
324
+ recordOutcome({
325
+ correction_id: c.id,
326
+ project: slug,
327
+ kind: "triggered",
328
+ at: nowISO,
329
+ evidence: `check-action consulted before "${action.slice(0, 60)}" (tokens: ${c.matched_tokens.join(", ")})`,
330
+ });
331
+ }
332
+ }
333
+ catch {
334
+ // Trigger recording is fire-and-forget — never affect the result
335
+ }
336
+ }
170
337
  return {
171
338
  success: true,
172
339
  project: slug,
@@ -1 +1 @@
1
- {"version":3,"file":"check-action.js","sourceRoot":"","sources":["../../src/tools-logic/check-action.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check-action.js","sourceRoot":"","sources":["../../src/tools-logic/check-action.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/tools-logic/check.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoBH,OAAO,EAAqB,KAAK,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAE1F,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,UAAU,GAAG,SAAS,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACtC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,mBAAmB,EAAE,SAAS,EAAE,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC;;;;OAIG;IACH,UAAU,CAAC,EAAE,uBAAuB,CAAC;CACtC;AAgBD,wBAAsB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAmPnE"}
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/tools-logic/check.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAqBH,OAAO,EAAqB,KAAK,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAE1F,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,UAAU,GAAG,SAAS,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACtC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,mBAAmB,EAAE,SAAS,EAAE,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC;;;;OAIG;IACH,UAAU,CAAC,EAAE,uBAAuB,CAAC;CACtC;AAgBD,wBAAsB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAuPnE"}
@@ -12,6 +12,7 @@ import { ensureDir, todayISO } from "../storage/fs-utils.js";
12
12
  import { extractKeywords, generateSlug } from "../helpers/auto-name.js";
13
13
  import { generateTags } from "../helpers/tag-generator.js";
14
14
  import { writeCorrection, splitSentences } from "../storage/corrections.js";
15
+ import { classifyFailureClass } from "./check-action.js";
15
16
  import { readAlignmentLog as readLog, extractWatchPatterns, } from "../helpers/alignment-patterns.js";
16
17
  import { awarenessUpdate } from "./awareness-update.js";
17
18
  import { palaceDir } from "../storage/paths.js";
@@ -74,6 +75,10 @@ export async function check(input) {
74
75
  rule: corrRule,
75
76
  context: corrText,
76
77
  tags: corrTags,
78
+ // RD-1 (owner decision 2026-07-14): failure_class is auto-derived at
79
+ // capture — keyword classifier over the FULL correction text, using
80
+ // only the shared tokenize/overlap grammar. Zero/tied hits → "other".
81
+ failure_class: classifyFailureClass(corrText),
77
82
  });
78
83
  if (!writeResult.written) {
79
84
  // Surface the gate rejection instead of silently dropping the
@@ -1 +1 @@
1
- {"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/tools-logic/check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/tools-logic/check.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { MemoryBackend, RetainResult } from "./memory-backend.js";
2
+ import type { CorrectionExport } from "./export-corrections.js";
3
+ /**
4
+ * Date string for today (YYYY-MM-DD) in the LOCAL timezone — injectable in
5
+ * tests via the fn arg.
6
+ *
7
+ * NOTE: uses local time, not UTC, so the archive file matches the operator's
8
+ * calendar day. toISOString() returns UTC and would produce the wrong date for
9
+ * operators running past midnight UTC in a positive-offset timezone.
10
+ */
11
+ export declare function todayDateString(): string;
12
+ /**
13
+ * LocalArchiveMemoryBackend — writes scrubbed CorrectionExport arrays to
14
+ * <root>/exports/local-archive/YYYY-MM-DD.json.
15
+ *
16
+ * CONTRACT:
17
+ * - Assumes records are already scrubbed (exportCorrections() upstream).
18
+ * - Idempotent: re-running with the same IDs does not duplicate entries.
19
+ * - Never throws into session flow — errors map to rejected entries.
20
+ */
21
+ export declare class LocalArchiveMemoryBackend implements MemoryBackend {
22
+ /** Override in tests via the constructor to pin the date. */
23
+ private readonly _dateFn;
24
+ constructor(opts?: {
25
+ dateFn?: () => string;
26
+ });
27
+ name(): string;
28
+ available(): Promise<boolean>;
29
+ retain(records: CorrectionExport[]): Promise<RetainResult>;
30
+ /** Absolute path of the archive directory for this backend. */
31
+ private _archiveDir;
32
+ }
33
+ //# sourceMappingURL=local-archive-backend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-archive-backend.d.ts","sourceRoot":"","sources":["../../src/tools-logic/local-archive-backend.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAKhE;;;;;;;GAOG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAMxC;AAED;;;;;;;;GAQG;AACH,qBAAa,yBAA0B,YAAW,aAAa;IAC7D,6DAA6D;IAC7D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;gBAE3B,IAAI,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,MAAM,CAAA;KAAO;IAIhD,IAAI,IAAI,MAAM;IAIR,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAY7B,MAAM,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAyDhE,+DAA+D;IAC/D,OAAO,CAAC,WAAW;CAGpB"}
@@ -0,0 +1,124 @@
1
+ // packages/core/src/tools-logic/local-archive-backend.ts
2
+ //
3
+ // LocalArchiveMemoryBackend — the reference MemoryBackend implementation.
4
+ //
5
+ // Purpose (two roles):
6
+ // 1. TESTING: round-trip verification of the retain() contract without
7
+ // a live third-party service.
8
+ // 2. ADAPTER TEMPLATE: fork this file to build a real backend adapter.
9
+ // Replace the JSON write with a client.retain() call; keep the
10
+ // scrub-upstream assumption and the RetainResult shape unchanged.
11
+ //
12
+ // Storage layout:
13
+ // <root>/exports/<backend-name>/YYYY-MM-DD.json
14
+ //
15
+ // Each daily file is an array of CorrectionExport objects. A second call on
16
+ // the same day appends (unique by id — the seam is idempotent; a repeated
17
+ // `ar corrections export --to-backend` run on the same set does not create
18
+ // duplicate entries).
19
+ import * as fs from "node:fs";
20
+ import * as path from "node:path";
21
+ import { getRoot } from "../types.js";
22
+ /** Human-readable name surfaced in CLI output and log lines. */
23
+ const BACKEND_NAME = "local-archive";
24
+ /**
25
+ * Date string for today (YYYY-MM-DD) in the LOCAL timezone — injectable in
26
+ * tests via the fn arg.
27
+ *
28
+ * NOTE: uses local time, not UTC, so the archive file matches the operator's
29
+ * calendar day. toISOString() returns UTC and would produce the wrong date for
30
+ * operators running past midnight UTC in a positive-offset timezone.
31
+ */
32
+ export function todayDateString() {
33
+ const d = new Date();
34
+ const y = d.getFullYear();
35
+ const m = String(d.getMonth() + 1).padStart(2, "0");
36
+ const day = String(d.getDate()).padStart(2, "0");
37
+ return `${y}-${m}-${day}`;
38
+ }
39
+ /**
40
+ * LocalArchiveMemoryBackend — writes scrubbed CorrectionExport arrays to
41
+ * <root>/exports/local-archive/YYYY-MM-DD.json.
42
+ *
43
+ * CONTRACT:
44
+ * - Assumes records are already scrubbed (exportCorrections() upstream).
45
+ * - Idempotent: re-running with the same IDs does not duplicate entries.
46
+ * - Never throws into session flow — errors map to rejected entries.
47
+ */
48
+ export class LocalArchiveMemoryBackend {
49
+ /** Override in tests via the constructor to pin the date. */
50
+ _dateFn;
51
+ constructor(opts = {}) {
52
+ this._dateFn = opts.dateFn ?? todayDateString;
53
+ }
54
+ name() {
55
+ return BACKEND_NAME;
56
+ }
57
+ async available() {
58
+ // Always available — only needs a writable filesystem, same guarantee
59
+ // as the rest of the local store.
60
+ try {
61
+ const dir = this._archiveDir();
62
+ fs.mkdirSync(dir, { recursive: true });
63
+ return true;
64
+ }
65
+ catch {
66
+ return false;
67
+ }
68
+ }
69
+ async retain(records) {
70
+ const accepted = [];
71
+ const rejected = [];
72
+ if (records.length === 0) {
73
+ return { accepted, rejected };
74
+ }
75
+ try {
76
+ const dir = this._archiveDir();
77
+ fs.mkdirSync(dir, { recursive: true });
78
+ const file = path.join(dir, `${this._dateFn()}.json`);
79
+ // Load existing entries (idempotency — deduplicate by id).
80
+ let existing = [];
81
+ try {
82
+ if (fs.existsSync(file)) {
83
+ const raw = fs.readFileSync(file, "utf-8");
84
+ const parsed = JSON.parse(raw);
85
+ if (Array.isArray(parsed)) {
86
+ existing = parsed;
87
+ }
88
+ }
89
+ }
90
+ catch {
91
+ // Malformed file — start fresh. A corrupt archive must not block new writes.
92
+ existing = [];
93
+ }
94
+ const existingIds = new Set(existing.map((e) => e.id));
95
+ const toWrite = [...existing];
96
+ for (const record of records) {
97
+ if (existingIds.has(record.id)) {
98
+ // Already present — idempotent accept (not a rejection).
99
+ accepted.push(record.id);
100
+ continue;
101
+ }
102
+ toWrite.push(record);
103
+ existingIds.add(record.id);
104
+ accepted.push(record.id);
105
+ }
106
+ fs.writeFileSync(file, JSON.stringify(toWrite, null, 2), "utf-8");
107
+ }
108
+ catch (err) {
109
+ // A filesystem failure rejects ALL records in this batch.
110
+ const reason = `write failed: ${String(err)}`;
111
+ for (const r of records) {
112
+ if (!accepted.includes(r.id)) {
113
+ rejected.push({ id: r.id, reason });
114
+ }
115
+ }
116
+ }
117
+ return { accepted, rejected };
118
+ }
119
+ /** Absolute path of the archive directory for this backend. */
120
+ _archiveDir() {
121
+ return path.join(getRoot(), "exports", BACKEND_NAME);
122
+ }
123
+ }
124
+ //# sourceMappingURL=local-archive-backend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-archive-backend.js","sourceRoot":"","sources":["../../src/tools-logic/local-archive-backend.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ import type { CorrectionExport } from "./export-corrections.js";
2
+ /**
3
+ * RetainResult — structured response from a backend's retain() call.
4
+ * Mirrors the Hindsight `retain()` response shape so the local-archive
5
+ * reference backend and any third-party adapter speak the same dialect.
6
+ */
7
+ export interface RetainResult {
8
+ /** IDs successfully written to the backend. */
9
+ accepted: string[];
10
+ /** IDs the backend refused, each with a machine-readable reason. */
11
+ rejected: {
12
+ id: string;
13
+ reason: string;
14
+ }[];
15
+ }
16
+ /**
17
+ * MemoryBackend — write seam for external belief stores.
18
+ *
19
+ * CONTRACT:
20
+ * - retain() receives a CorrectionExport[] that has ALREADY been scrubbed by
21
+ * exportCorrections(). The backend may assume every string field is clean.
22
+ * Backends MUST NOT re-implement the scrub — that is a recipe for drift.
23
+ * - records MUST come from exportCorrections(); the type system cannot
24
+ * enforce this — which is exactly why the core barrel deliberately does
25
+ * NOT export concrete backends (only this interface + the factory). The
26
+ * sole supported path to a backend instance is getMemoryBackend(), and the
27
+ * sole supported record source is exportCorrections().
28
+ * - available() must never throw. Return false if the backend is misconfigured.
29
+ * - name() returns a stable human-readable label for logging.
30
+ * - Backend failure must be surfaced as a rejected entry or a thrown error that
31
+ * the CLI catches and prints as a warning — never as a process crash.
32
+ */
33
+ export interface MemoryBackend {
34
+ retain(records: CorrectionExport[]): Promise<RetainResult>;
35
+ available(): Promise<boolean>;
36
+ name(): string;
37
+ }
38
+ /**
39
+ * DisabledMemoryBackend — returned when AR_MEMORY_BACKEND is unset.
40
+ * available() is false so callers can gate on it cleanly.
41
+ */
42
+ export declare class DisabledMemoryBackend implements MemoryBackend {
43
+ name(): string;
44
+ available(): Promise<boolean>;
45
+ retain(_records: CorrectionExport[]): Promise<RetainResult>;
46
+ }
47
+ /**
48
+ * Get the configured MemoryBackend.
49
+ *
50
+ * Selection order:
51
+ * 1. AR_MEMORY_BACKEND=local-archive → LocalArchiveMemoryBackend (built-in)
52
+ * 2. AR_MEMORY_BACKEND=<module> → dynamic import of that module
53
+ * 3. (unset | "none" | "disabled") → DisabledMemoryBackend
54
+ *
55
+ * Case handling: built-in keywords (none/disabled/local-archive) match
56
+ * case-insensitively — pure operator convenience, nothing is imported.
57
+ * A third-party module specifier is used VERBATIM (npm names are
58
+ * case-sensitive on registry lookup and lowercase-only for new packages);
59
+ * uppercase input is rejected by SAFE_MODULE_RE with a clear message rather
60
+ * than silently normalized to a different package name.
61
+ *
62
+ * Dynamic import contract: the module must export a default class satisfying
63
+ * MemoryBackend. If the import fails, the specifier is invalid, a Node builtin,
64
+ * or the backend reports unavailable, the factory logs a warning to stderr and
65
+ * falls back to DisabledMemoryBackend — it NEVER crashes the session flow.
66
+ *
67
+ * @agent_instruction Returns DisabledMemoryBackend when no backend is configured.
68
+ * Check (await backend.available()) before calling retain(). If false, surface
69
+ * a clear "no backend configured" error to the operator.
70
+ */
71
+ export declare function getMemoryBackend(): Promise<MemoryBackend>;
72
+ /** Reset the cached backend instance (for testing). */
73
+ export declare function resetMemoryBackend(): void;
74
+ //# sourceMappingURL=memory-backend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-backend.d.ts","sourceRoot":"","sources":["../../src/tools-logic/memory-backend.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAMhE;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,oEAAoE;IACpE,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC5C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3D,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,IAAI,IAAI,MAAM,CAAC;CAChB;AAMD;;;GAGG;AACH,qBAAa,qBAAsB,YAAW,aAAa;IACzD,IAAI,IAAI,MAAM;IAIR,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAI7B,MAAM,CAAC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;CASlE;AAmCD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC,CA+E/D;AAED,uDAAuD;AACvD,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC"}