@atrib/recall 0.7.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -25,7 +25,10 @@ mcp__atrib-recall__recall_my_attribution_history({
25
25
  limit?: number, // Default 25, max 200.
26
26
  offset?: number, // For pagination. Note pagination_caveat in the response.
27
27
  compact?: boolean, // Default true - omits signature/content_id/chain_root/spec_version
28
- // fields. Set false for full record bytes (re-verification).
28
+ // fields. `record_hash` is always included (so callers can chain
29
+ // recall_walk / recall_annotations / recall_revisions / trace
30
+ // from any result). Set false for full record bytes
31
+ // (re-verification).
29
32
  include_unverified?: boolean, // Default false - drops records whose signature didn't verify.
30
33
  // Set true ONLY when consuming the verbose mode AND explicitly
31
34
  // checking signature_verified per record.
@@ -57,7 +60,9 @@ mcp__atrib-recall__recall_my_attribution_history({
57
60
  })
58
61
  ```
59
62
 
60
- Returns `{ total, returned, filtered_out_by_verification, record_files, record_file, log_origin, pagination_caveat, records }`. Each record carries `annotations` (when annotation records point at it) and `superseded_by` (when revision records point at it).
63
+ Returns `{ total, returned, filtered_out_by_verification, record_files, record_file, log_origin, pagination_caveat, records }`. Each record carries `record_hash` (always, per [D084](https://github.com/creatornader/atrib/blob/main/DECISIONS.md#d084-read-primitive-instrumentation-for-empirical-loop-closure-measurement) — so the result is chainable into other primitives without a verbose-mode round-trip), `annotations` (when annotation records point at it), and `superseded_by` (when revision records point at it).
64
+
65
+ Every call to this tool (and every sibling tool below) writes a per-call jsonl entry to `~/.atrib/state/read-primitives/calls.jsonl` for the unified loop-closure analyzer per [D084](https://github.com/creatornader/atrib/blob/main/DECISIONS.md#d084-read-primitive-instrumentation-for-empirical-loop-closure-measurement). Silent-failure per [§5.8](https://github.com/creatornader/atrib/blob/main/atrib-spec.md#58-degradation-contract); the tool response is unaffected by instrumentation failures. The `ATRIB_READ_PRIMITIVES_LOG` env var overrides the default path for tests.
61
66
 
62
67
  ### Sibling tools
63
68
 
@@ -79,9 +84,26 @@ The Park et al. ranking weights and recency time constant are environment-tunabl
79
84
  | `ATRIB_RECALL_BETA` | 0.3 | Importance component weight |
80
85
  | `ATRIB_RECALL_GAMMA` | 0.4 | Relevance (BM25) component weight |
81
86
  | `ATRIB_RECALL_TAU_DAYS` | 7 | Exponential-decay time constant for recency |
87
+ | `ATRIB_RECALL_NOISE_FLOOR` | 0.15 | Anti-noise threshold for `rank_by=relevance` (see below) |
82
88
 
83
89
  The implementation does not enforce that alpha + beta + gamma sum to 1.0; the operator-facing defaults do.
84
90
 
91
+ ### Legibility fields (added in 0.8.0)
92
+
93
+ Compact recall responses carry three derived fields per record so the agent can scan results without dereferencing opaque hashes:
94
+
95
+ | Field | Source |
96
+ |---|---|
97
+ | `display_summary` | Annotation summary if present, else per-event_type synthesis from record fields + `_local.content` (tool_call: `call <tool_name>(<args>)`; observation: first 80 chars of `what`; transaction: `<amount> to <merchant> via <protocol>`; annotation: `annotates <hash>: [<importance>] <summary>`; revision: `revises <hash>: <new_position>`; directory_anchor: `directory anchor <root>`; extension URI: tail). Capped at 120 chars. |
98
+ | `display_producer` | `_local.producer` sidecar label (e.g. `atrib-emit-cli`, `claude-hooks-builtin-2b`). Falls back to `key:<8hex>` of the creator key. Answers **which local code signed the record**, not which human or organization. The complementary `display_signer` field (AKD-backed identity claim) is planned as a separate field; repurposing `display_producer` for AKD lookups would conflate two distinct trust signals. |
99
+ | `age` | Relative time string (`just now`, `5m ago`, `3h ago`, `3d ago`, ISO date for older than 30 days). Returns `"unknown"` for non-finite timestamps. |
100
+
101
+ `recall_by_content` and `recall_walk` carry the same fields starting in the 0.8.0 audit-pass-1 follow-up.
102
+
103
+ ### Anti-noise threshold for `rank_by=relevance`
104
+
105
+ When `rank_by=relevance` produces a top Park score below `ATRIB_RECALL_NOISE_FLOOR` (default 0.15), recall returns empty records plus a `quality: "below_threshold"` signal and the observed `top_score`. The default 0.15 is approximately `alpha * 0.5` with the default `alpha=0.3`: the score of a record with decent recency but no annotation, no topic match, no BM25 hit. Below that, results are effectively noise. Set the env var to 0 to disable. Threshold applies only to relevance ranking; timestamp + causal_distance modes are unaffected.
106
+
85
107
  ## Trust scope
86
108
 
87
109
  Signature verification is local-only. A passing `signature_verified` proves the record was signed by the named `creator_key`; it does NOT prove the record was committed to log.atrib.dev. To confirm log inclusion, fetch the inclusion proof from the log API.
@@ -18,6 +18,14 @@ export type LoadedRecord = {
18
18
  record: AtribRecord;
19
19
  record_hash: string;
20
20
  content?: unknown;
21
+ /**
22
+ * D062 `_local.producer` from the sidecar when present (e.g.
23
+ * "atrib-emit-cli", "claude-hooks-builtin-2b", "claude-code"). Used by
24
+ * Layer 1 v2 legibility to render a friendly creator label instead of
25
+ * the raw creator_key. Undefined when the line is bare (no envelope)
26
+ * or the producer field was not stamped at sign time.
27
+ */
28
+ producer?: string;
21
29
  };
22
30
  /**
23
31
  * Compute the spec §2.3 record_hash for an AtribRecord: sha256 over the
@@ -63,8 +63,16 @@ function extractLoaded(parsed) {
63
63
  const record = candidate;
64
64
  if (envelopeRecord !== null) {
65
65
  const local = obj._local ?? undefined;
66
- if (local && 'content' in local) {
67
- return { record, content: local.content };
66
+ if (local) {
67
+ const producer = typeof local.producer === 'string' ? local.producer : undefined;
68
+ const hasContent = 'content' in local;
69
+ if (hasContent || producer !== undefined) {
70
+ return {
71
+ record,
72
+ ...(hasContent && { content: local.content }),
73
+ ...(producer !== undefined && { producer }),
74
+ };
75
+ }
68
76
  }
69
77
  }
70
78
  return { record };
@@ -97,6 +105,7 @@ export function loadLoaded(path) {
97
105
  record: extracted.record,
98
106
  record_hash: computeRecordHash(extracted.record),
99
107
  content: extracted.content,
108
+ producer: extracted.producer,
100
109
  });
101
110
  }
102
111
  return out;
@@ -1 +1 @@
1
- {"version":3,"file":"aggregations.js","sourceRoot":"","sources":["../src/aggregations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aggregations.js","sourceRoot":"","sources":["../src/aggregations.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -6,6 +6,7 @@ export declare const ATRIB_RECALL_ALPHA: number;
6
6
  export declare const ATRIB_RECALL_BETA: number;
7
7
  export declare const ATRIB_RECALL_GAMMA: number;
8
8
  export declare const ATRIB_RECALL_TAU_DAYS: number;
9
+ export declare const ATRIB_RECALL_NOISE_FLOOR: number;
9
10
  import type { AnnotationSummary as AggAnnotationSummary } from './aggregations.js';
10
11
  export declare function loadRecords(path: string): AtribRecord[];
11
12
  /**
@@ -171,6 +172,26 @@ type RecallRecordCompact = {
171
172
  annotations?: AnnotationSummary;
172
173
  /** New in 0.5.0: record hashes of D059 revisions superseding this record. */
173
174
  superseded_by?: string[];
175
+ /**
176
+ * New in 0.8.0 (Layer 1 v2 legibility): one-line human-legible
177
+ * description. Annotation summary if present, else per-event_type
178
+ * synthesis from record fields + _local.content, else generic
179
+ * fallback. Derived via legibility.synthesizeDisplaySummary.
180
+ */
181
+ display_summary?: string;
182
+ /**
183
+ * New in 0.8.0 (Layer 1 v2 legibility): friendly producer label from
184
+ * _local.producer (e.g. "atrib-emit-cli"), else "key:<8hex>" fallback
185
+ * signaling raw key. Derived via legibility.resolveDisplayProducer.
186
+ */
187
+ display_producer?: string;
188
+ /**
189
+ * New in 0.8.0 (Layer 1 v2 legibility): relative time string
190
+ * ("just now", "5m ago", "3d ago", absolute date for older than 30d).
191
+ * Computed at response time from record.timestamp. Derived via
192
+ * legibility.formatAge.
193
+ */
194
+ age?: string;
174
195
  };
175
196
  /**
176
197
  * TOC entry: the smallest cheap-to-scan shape (~40-80 tokens). Used at
@@ -213,6 +234,21 @@ export interface RecallResult {
213
234
  log_origin: string;
214
235
  pagination_caveat: string;
215
236
  records: RecallRecordFull[] | RecallRecordCompact[] | RecallRecordToc[];
237
+ /**
238
+ * New in 0.8.0 (Layer 1 v2 anti-noise): present when rank_by='relevance'
239
+ * returned empty results because the top Park score was below
240
+ * ATRIB_RECALL_NOISE_FLOOR. Lets the caller distinguish "no records
241
+ * matched the filters" (returned=0, no quality field) from "records
242
+ * matched but none scored high enough to be useful" (returned=0,
243
+ * quality='below_threshold'). Omitted when results were returned.
244
+ */
245
+ quality?: 'below_threshold';
246
+ /**
247
+ * New in 0.8.0 (Layer 1 v2 anti-noise): the top Park score observed
248
+ * during this relevance ranking, present only when quality is set so
249
+ * the caller can see how close to the threshold the best result was.
250
+ */
251
+ top_score?: number;
216
252
  }
217
253
  /**
218
254
  * Discover and load records per the mirror-discovery contract:
package/dist/index.js CHANGED
@@ -64,6 +64,21 @@ export const ATRIB_RECALL_GAMMA = parseFloat(process.env.ATRIB_RECALL_GAMMA ?? '
64
64
  // component. 7-day default per design; longer windows favor older records,
65
65
  // shorter windows favor very-recent records. Tunable per experiment.
66
66
  export const ATRIB_RECALL_TAU_DAYS = parseFloat(process.env.ATRIB_RECALL_TAU_DAYS ?? '7');
67
+ // Layer 1 v2 anti-noise threshold for rank_by='relevance'. When the top
68
+ // Park score is below this floor, recall returns empty records + a
69
+ // "below_threshold" quality signal rather than a low-confidence top-K.
70
+ //
71
+ // Default 0.15 derivation: each Park component (recency, importance,
72
+ // relevance) is normalized to [0, 1]; ATRIB_RECALL_ALPHA defaults to
73
+ // 0.3. A record with "decent recency (~0.5), no annotation (importance
74
+ // 0), no topic match, no BM25 hit (relevance 0)" scores alpha * 0.5 =
75
+ // 0.15 — right at the floor. Anything BELOW that is effectively pure
76
+ // noise (stale records with no signal). The threshold trains the agent
77
+ // "recall returns when it has something; trust the absence."
78
+ //
79
+ // If ALPHA is changed, this default may need to be revisited. Set the
80
+ // env var to 0 to disable the threshold entirely.
81
+ export const ATRIB_RECALL_NOISE_FLOOR = parseFloat(process.env.ATRIB_RECALL_NOISE_FLOOR ?? '0.15');
67
82
  import { existsSync, readFileSync, readdirSync, statSync } from 'node:fs';
68
83
  import { homedir } from 'node:os';
69
84
  import { join } from 'node:path';
@@ -71,6 +86,7 @@ import { z } from 'zod';
71
86
  import { aggregateAnnotationsByRecord, aggregateRevisionsByRecord, discoverLoaded, } from './aggregations.js';
72
87
  import { recencyScore, importanceScore, parkScore, buildBM25Index, bm25Score, tokenize, indexableTextFromAnnotation, } from './scoring.js';
73
88
  import { buildLocalGraph, shortestDistances, walkFrom, } from './graph.js';
89
+ import { synthesizeDisplaySummary, resolveDisplayProducer, formatAge, } from './legibility.js';
74
90
  const ATRIB_RECORD_FILE = process.env.ATRIB_RECORD_FILE;
75
91
  const ATRIB_MIRROR_DIR = process.env.ATRIB_MIRROR_DIR ?? join(homedir(), '.atrib', 'records');
76
92
  const ATRIB_LOG_ORIGIN = process.env.ATRIB_LOG_ORIGIN ?? 'log.atrib.dev';
@@ -202,13 +218,17 @@ function rankByRelevance(filtered, annotationsByRecord, rankAnchor) {
202
218
  }));
203
219
  const idx = buildBM25Index(corpus);
204
220
  const scores = new Map();
221
+ let topScore = 0;
205
222
  for (const lr of filtered) {
206
223
  const r = recencyScore(lr.record.timestamp, now, ATRIB_RECALL_TAU_DAYS);
207
224
  const i = importanceScore(annotationsByRecord.get(lr.record_hash));
208
225
  const rel = queryTokens.length > 0
209
226
  ? bm25Score(idx, lr.record_hash, queryTokens)
210
227
  : 0;
211
- scores.set(lr.record_hash, parkScore(r, i, rel, ATRIB_RECALL_ALPHA, ATRIB_RECALL_BETA, ATRIB_RECALL_GAMMA));
228
+ const s = parkScore(r, i, rel, ATRIB_RECALL_ALPHA, ATRIB_RECALL_BETA, ATRIB_RECALL_GAMMA);
229
+ scores.set(lr.record_hash, s);
230
+ if (s > topScore)
231
+ topScore = s;
212
232
  }
213
233
  filtered.sort((a, b) => {
214
234
  const sa = scores.get(a.record_hash) ?? 0;
@@ -218,6 +238,12 @@ function rankByRelevance(filtered, annotationsByRecord, rankAnchor) {
218
238
  // Stable tie-break on timestamp newest-first.
219
239
  return b.record.timestamp - a.record.timestamp;
220
240
  });
241
+ // Return the top score so the caller can apply the anti-noise threshold
242
+ // (Layer 1 v2: suppress low-confidence top-K rather than train the agent
243
+ // to ignore recall results). Each Park component is in [0, 1] and the
244
+ // weights are operator-configured to sum to 1.0 by default, so topScore
245
+ // also lives in [0, 1] under normal config.
246
+ return topScore;
221
247
  }
222
248
  /**
223
249
  * Sort `filtered` in-place by BFS shortest-path distance from rank_anchor.
@@ -271,10 +297,14 @@ async function annotateVerification(loaded, annotationsByRecord, revisionsByReco
271
297
  const supers = revisionsByRecord.get(lr.record_hash);
272
298
  if (supers && supers.length > 0)
273
299
  out.superseded_by = supers;
300
+ if (lr.content !== undefined)
301
+ out.content = lr.content;
302
+ if (lr.producer !== undefined)
303
+ out.producer = lr.producer;
274
304
  return out;
275
305
  }));
276
306
  }
277
- function compactify(bundles) {
307
+ function compactify(bundles, now = Date.now()) {
278
308
  return bundles.map((b) => {
279
309
  const r = b.record;
280
310
  const out = {
@@ -295,6 +325,12 @@ function compactify(bundles) {
295
325
  out.annotations = b.annotations;
296
326
  if (b.superseded_by)
297
327
  out.superseded_by = b.superseded_by;
328
+ // Layer 1 v2 legibility fields. Always populated (the helpers fall
329
+ // back to sentinels when source data is missing). Cheap to compute
330
+ // and the agent-side cost of opaque hashes is non-trivial.
331
+ out.display_summary = synthesizeDisplaySummary(r, b.content, b.annotations);
332
+ out.display_producer = resolveDisplayProducer(r, b.producer);
333
+ out.age = formatAge(r.timestamp, now);
298
334
  return out;
299
335
  });
300
336
  }
@@ -393,8 +429,9 @@ export async function recall(args, recordFile) {
393
429
  }
394
430
  // Sort: timestamp (default, newest first), Park et al. relevance, or
395
431
  // BFS shortest-path causal distance from rank_anchor.
432
+ let relevanceTopScore;
396
433
  if (args.rank_by === 'relevance') {
397
- rankByRelevance(filtered, annotationsByRecord, args.rank_anchor);
434
+ relevanceTopScore = rankByRelevance(filtered, annotationsByRecord, args.rank_anchor);
398
435
  }
399
436
  else if (args.rank_by === 'causal_distance') {
400
437
  rankByCausalDistance(filtered, all, args.rank_anchor);
@@ -404,6 +441,31 @@ export async function recall(args, recordFile) {
404
441
  // actions, not the genesis of the log.
405
442
  filtered.sort((a, b) => b.record.timestamp - a.record.timestamp);
406
443
  }
444
+ // Layer 1 v2 anti-noise threshold: when rank_by='relevance' and the
445
+ // top Park score falls below ATRIB_RECALL_NOISE_FLOOR (default 0.15),
446
+ // return empty records + a "below_threshold" quality signal instead of
447
+ // a low-confidence top-K. The 0.15 default is approximately the score
448
+ // of "no annotation, no topic match, no BM25 hit, just decent recency"
449
+ // (alpha * 0.5 with alpha=0.3). Below that, results are effectively
450
+ // noise and training the agent to scan + dismiss them costs more than
451
+ // returning nothing.
452
+ if (args.rank_by === 'relevance' &&
453
+ relevanceTopScore !== undefined &&
454
+ relevanceTopScore < ATRIB_RECALL_NOISE_FLOOR) {
455
+ return {
456
+ total: filtered.length,
457
+ returned: 0,
458
+ filtered_out_by_verification: 0,
459
+ record_files: files,
460
+ record_file: files[0] ?? '',
461
+ log_origin: ATRIB_LOG_ORIGIN,
462
+ pagination_caveat: 'offset is not stable when new records are appended. For consistent paging, capture the' +
463
+ ' first-page timestamps and re-page using a context_id or event_type filter instead.',
464
+ records: [],
465
+ quality: 'below_threshold',
466
+ top_score: relevanceTopScore,
467
+ };
468
+ }
407
469
  const offset = Math.max(0, args.offset ?? 0);
408
470
  const limit = Math.max(1, Math.min(200, args.limit ?? 25));
409
471
  const page = filtered.slice(offset, offset + limit);
@@ -650,6 +712,29 @@ server.registerTool('recall_walk', {
650
712
  : undefined;
651
713
  const depth = typeof args.depth === 'number' ? args.depth : 3;
652
714
  const walk = walkFrom(graph, args.from_record_hash, edgeTypes, depth);
715
+ // Layer 1 v2 legibility: join walked hashes back to their loaded
716
+ // records so each step in the walk carries a readable label
717
+ // instead of just a hash + distance. Builds the index once for
718
+ // O(N) lookup across the walk; for typical walks (depth=3, k<50)
719
+ // this is fast.
720
+ const byHash = new Map(loaded.map((lr) => [lr.record_hash, lr]));
721
+ const annotationsByRecord = aggregateAnnotationsByRecord(loaded);
722
+ const now = Date.now();
723
+ const enriched = walk.map((step) => {
724
+ const lr = byHash.get(step.record_hash);
725
+ if (!lr)
726
+ return step;
727
+ const ann = annotationsByRecord.get(step.record_hash);
728
+ return {
729
+ record_hash: step.record_hash,
730
+ distance: step.distance,
731
+ event_type: lr.record.event_type,
732
+ timestamp: lr.record.timestamp,
733
+ display_summary: synthesizeDisplaySummary(lr.record, lr.content, ann),
734
+ display_producer: resolveDisplayProducer(lr.record, lr.producer),
735
+ age: formatAge(lr.record.timestamp, now),
736
+ };
737
+ });
653
738
  return {
654
739
  content: [
655
740
  {
@@ -663,8 +748,8 @@ server.registerTool('recall_walk', {
663
748
  'REVISES',
664
749
  ],
665
750
  depth,
666
- count: walk.length,
667
- walk,
751
+ count: enriched.length,
752
+ walk: enriched,
668
753
  }, null, 2),
669
754
  },
670
755
  ],
@@ -775,16 +860,23 @@ server.registerTool('recall_by_content', {
775
860
  query: args.query,
776
861
  k,
777
862
  count: top.length,
778
- results: top.map(({ lr, score, recency, importance, relevance }) => ({
779
- record_hash: lr.record_hash,
780
- event_type: lr.record.event_type,
781
- context_id: lr.record.context_id,
782
- timestamp: lr.record.timestamp,
783
- tool_name: lr.record.tool_name,
784
- annotations: annotationsByRecord.get(lr.record_hash),
785
- score,
786
- components: { recency, importance, relevance },
787
- })),
863
+ results: top.map(({ lr, score, recency, importance, relevance }) => {
864
+ const ann = annotationsByRecord.get(lr.record_hash);
865
+ return {
866
+ record_hash: lr.record_hash,
867
+ event_type: lr.record.event_type,
868
+ context_id: lr.record.context_id,
869
+ timestamp: lr.record.timestamp,
870
+ tool_name: lr.record.tool_name,
871
+ annotations: ann,
872
+ // Layer 1 v2 legibility fields (parity with compactify).
873
+ display_summary: synthesizeDisplaySummary(lr.record, lr.content, ann),
874
+ display_producer: resolveDisplayProducer(lr.record, lr.producer),
875
+ age: formatAge(lr.record.timestamp, now),
876
+ score,
877
+ components: { recency, importance, relevance },
878
+ };
879
+ }),
788
880
  }, null, 2),
789
881
  },
790
882
  ],
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Layer 1 v2 legibility helpers for recall responses.
3
+ *
4
+ * Recall returns records with substrate signals attached (annotations,
5
+ * supersession, scoring). Pre-v2 the response left agents to dereference
6
+ * opaque hashes to figure out what each record was about. This module
7
+ * derives compact human-legible display fields from data already in the
8
+ * mirror so the agent can scan results at a glance.
9
+ *
10
+ * Three fields:
11
+ * - display_summary: one-line description, fallback chain per event_type
12
+ * - display_producer: friendly producer label from _local.producer
13
+ * sidecar, else short key prefix as "key:<8hex>"
14
+ * - age: relative time string ("just now", "5m ago", "3d ago",
15
+ * "2026-04-12" for older than 30 days)
16
+ *
17
+ * All derivations are pure functions of the record + sidecar data; no
18
+ * network calls, no LLM. Silent failure: any helper that can't produce
19
+ * a meaningful value returns a sentinel ("unknown", "no description")
20
+ * rather than throwing.
21
+ */
22
+ import type { AtribRecord } from '@atrib/mcp';
23
+ import type { AnnotationSummary } from './aggregations.js';
24
+ /**
25
+ * One-line human-legible description of the record.
26
+ *
27
+ * Fallback chain:
28
+ * 1. annotation summary (always wins if any annotation pointing at this
29
+ * record carried a non-empty summary)
30
+ * 2. per-event_type synthesis from record fields + _local.content
31
+ * 3. generic fallback labeled by event_type tail
32
+ *
33
+ * Output is capped at SUMMARY_MAX_LEN; longer text is truncated with an
34
+ * ellipsis. The cap is empirically chosen to fit ~3 records per screen
35
+ * scan in typical terminal widths.
36
+ */
37
+ export declare function synthesizeDisplaySummary(record: AtribRecord, content: unknown, annotations: AnnotationSummary | undefined): string;
38
+ /**
39
+ * Friendly label for the local producer that wrote this record.
40
+ *
41
+ * Order:
42
+ * 1. _local.producer from the D062 sidecar when present (e.g.
43
+ * "atrib-emit-cli", "claude-hooks-builtin-2b", "claude-code")
44
+ * 2. fallback "key:<8hex>" prefix of creator_key as a clear signal
45
+ * that no producer label was available
46
+ *
47
+ * Producer (this function) vs signer (the follow-up display_signer
48
+ * field) — DO NOT CONFLATE:
49
+ * - display_producer = sidecar-only label of which LOCAL CODE signed
50
+ * the record. Useful for debugging the local producer pipeline
51
+ * ("atrib-emit-cli wrote this, not claude-hooks-builtin-2b").
52
+ * Not verifiable. Not portable across operators.
53
+ * - display_signer (planned) = AKD-backed identity-claim lookup for
54
+ * which HUMAN OR ORGANIZATION holds the signing key. Verifiable.
55
+ * Portable across operators. Lives in @atrib/directory.
56
+ * Repurposing display_producer for AKD lookup would break back-compat
57
+ * AND quietly conflate two distinct trust signals; if AKD-backed
58
+ * identity needs to surface, add display_signer as a NEW field, do
59
+ * not change this function's semantics.
60
+ */
61
+ export declare function resolveDisplayProducer(record: AtribRecord, producer: string | undefined): string;
62
+ /**
63
+ * Relative time string. Buckets chosen so agents can scan results
64
+ * "1m / 5h / 3d" without parsing absolute timestamps.
65
+ *
66
+ * Buckets:
67
+ * < 60s -> "just now"
68
+ * < 1h -> "Xm ago"
69
+ * < 24h -> "Xh ago"
70
+ * < 30d -> "Xd ago"
71
+ * older -> ISO date "YYYY-MM-DD"
72
+ * future (timestamp > now) -> "future" (sentinel; should not happen)
73
+ */
74
+ export declare function formatAge(timestamp: number, now: number): string;
@@ -0,0 +1,206 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ const ATRIB_EVENT_TYPE_PREFIX = 'https://atrib.dev/v1/types/';
3
+ const SUMMARY_MAX_LEN = 120;
4
+ const ARGS_EXCERPT_MAX_LEN = 60;
5
+ const HASH_PREFIX_LEN = 12;
6
+ /**
7
+ * One-line human-legible description of the record.
8
+ *
9
+ * Fallback chain:
10
+ * 1. annotation summary (always wins if any annotation pointing at this
11
+ * record carried a non-empty summary)
12
+ * 2. per-event_type synthesis from record fields + _local.content
13
+ * 3. generic fallback labeled by event_type tail
14
+ *
15
+ * Output is capped at SUMMARY_MAX_LEN; longer text is truncated with an
16
+ * ellipsis. The cap is empirically chosen to fit ~3 records per screen
17
+ * scan in typical terminal widths.
18
+ */
19
+ export function synthesizeDisplaySummary(record, content, annotations) {
20
+ // 1. Annotation summary is the highest-quality signal when present.
21
+ if (annotations?.summary && annotations.summary.length > 0) {
22
+ return truncate(annotations.summary, SUMMARY_MAX_LEN);
23
+ }
24
+ // 2. Per-event_type synthesis.
25
+ const tool_name = record.tool_name;
26
+ const c = isObject(content) ? content : {};
27
+ switch (record.event_type) {
28
+ case `${ATRIB_EVENT_TYPE_PREFIX}tool_call`: {
29
+ const args = c.args ?? c.input ?? c.arguments;
30
+ if (tool_name) {
31
+ if (isObject(args)) {
32
+ const argsExcerpt = stringifyArgsBrief(args, ARGS_EXCERPT_MAX_LEN);
33
+ return truncate(`call ${tool_name}(${argsExcerpt})`, SUMMARY_MAX_LEN);
34
+ }
35
+ return `call ${tool_name}`;
36
+ }
37
+ return 'tool call';
38
+ }
39
+ case `${ATRIB_EVENT_TYPE_PREFIX}transaction`: {
40
+ const amount = c.amount ?? c.value;
41
+ const merchant = c.merchant ?? c.recipient ?? c.to;
42
+ const protocol = c.protocol ?? c.via;
43
+ if (amount && merchant) {
44
+ const proto = protocol ? ` via ${String(protocol)}` : '';
45
+ return truncate(`${String(amount)} to ${String(merchant)}${proto}`, SUMMARY_MAX_LEN);
46
+ }
47
+ return 'transaction';
48
+ }
49
+ case `${ATRIB_EVENT_TYPE_PREFIX}observation`: {
50
+ const what = c.what;
51
+ if (typeof what === 'string' && what.length > 0) {
52
+ return truncate(what, SUMMARY_MAX_LEN);
53
+ }
54
+ return 'observation';
55
+ }
56
+ case `${ATRIB_EVENT_TYPE_PREFIX}directory_anchor`: {
57
+ const root = c.tree_root ?? c.root;
58
+ if (typeof root === 'string') {
59
+ return `directory anchor ${truncate(root, 40)}`;
60
+ }
61
+ return 'directory anchor';
62
+ }
63
+ case `${ATRIB_EVENT_TYPE_PREFIX}annotation`: {
64
+ const annotates = c.annotates;
65
+ const importance = c.importance;
66
+ const summary = c.summary;
67
+ const annotatesShort = typeof annotates === 'string'
68
+ ? shortHash(annotates)
69
+ : 'unknown';
70
+ if (typeof summary === 'string' && summary.length > 0) {
71
+ const impTag = importance ? `[${String(importance)}] ` : '';
72
+ return truncate(`annotates ${annotatesShort}: ${impTag}${summary}`, SUMMARY_MAX_LEN);
73
+ }
74
+ return `annotates ${annotatesShort}`;
75
+ }
76
+ case `${ATRIB_EVENT_TYPE_PREFIX}revision`: {
77
+ const revises = c.revises;
78
+ const newPos = c.new_position;
79
+ const revisesShort = typeof revises === 'string'
80
+ ? shortHash(revises)
81
+ : 'unknown';
82
+ if (typeof newPos === 'string' && newPos.length > 0) {
83
+ return truncate(`revises ${revisesShort}: ${newPos}`, SUMMARY_MAX_LEN);
84
+ }
85
+ return `revises ${revisesShort}`;
86
+ }
87
+ default: {
88
+ // Extension URIs (0xFF) and unknown: surface the URI tail.
89
+ const tail = record.event_type.split('/').pop() ?? record.event_type;
90
+ return tail.length > 0 ? tail : 'unknown event';
91
+ }
92
+ }
93
+ }
94
+ /**
95
+ * Friendly label for the local producer that wrote this record.
96
+ *
97
+ * Order:
98
+ * 1. _local.producer from the D062 sidecar when present (e.g.
99
+ * "atrib-emit-cli", "claude-hooks-builtin-2b", "claude-code")
100
+ * 2. fallback "key:<8hex>" prefix of creator_key as a clear signal
101
+ * that no producer label was available
102
+ *
103
+ * Producer (this function) vs signer (the follow-up display_signer
104
+ * field) — DO NOT CONFLATE:
105
+ * - display_producer = sidecar-only label of which LOCAL CODE signed
106
+ * the record. Useful for debugging the local producer pipeline
107
+ * ("atrib-emit-cli wrote this, not claude-hooks-builtin-2b").
108
+ * Not verifiable. Not portable across operators.
109
+ * - display_signer (planned) = AKD-backed identity-claim lookup for
110
+ * which HUMAN OR ORGANIZATION holds the signing key. Verifiable.
111
+ * Portable across operators. Lives in @atrib/directory.
112
+ * Repurposing display_producer for AKD lookup would break back-compat
113
+ * AND quietly conflate two distinct trust signals; if AKD-backed
114
+ * identity needs to surface, add display_signer as a NEW field, do
115
+ * not change this function's semantics.
116
+ */
117
+ export function resolveDisplayProducer(record, producer) {
118
+ if (producer && producer.length > 0) {
119
+ return producer;
120
+ }
121
+ const key = record.creator_key;
122
+ if (typeof key === 'string' && key.length >= 8) {
123
+ return `key:${key.slice(0, 8)}`;
124
+ }
125
+ return 'unknown';
126
+ }
127
+ /**
128
+ * Relative time string. Buckets chosen so agents can scan results
129
+ * "1m / 5h / 3d" without parsing absolute timestamps.
130
+ *
131
+ * Buckets:
132
+ * < 60s -> "just now"
133
+ * < 1h -> "Xm ago"
134
+ * < 24h -> "Xh ago"
135
+ * < 30d -> "Xd ago"
136
+ * older -> ISO date "YYYY-MM-DD"
137
+ * future (timestamp > now) -> "future" (sentinel; should not happen)
138
+ */
139
+ export function formatAge(timestamp, now) {
140
+ // Defensive: NaN / Infinity / non-finite inputs would later throw at
141
+ // new Date().toISOString() (RangeError "Invalid time value"). Return
142
+ // a sentinel instead so the recall response stays well-formed even if
143
+ // a malformed record makes it through the load path.
144
+ if (!Number.isFinite(timestamp) || !Number.isFinite(now))
145
+ return 'unknown';
146
+ const diff = now - timestamp;
147
+ if (diff < 0)
148
+ return 'future';
149
+ if (diff < 60_000)
150
+ return 'just now';
151
+ if (diff < 3_600_000)
152
+ return `${Math.floor(diff / 60_000)}m ago`;
153
+ if (diff < 86_400_000)
154
+ return `${Math.floor(diff / 3_600_000)}h ago`;
155
+ if (diff < 30 * 86_400_000)
156
+ return `${Math.floor(diff / 86_400_000)}d ago`;
157
+ return new Date(timestamp).toISOString().slice(0, 10);
158
+ }
159
+ // --- helpers ---
160
+ function isObject(v) {
161
+ return v !== null && typeof v === 'object' && !Array.isArray(v);
162
+ }
163
+ function truncate(s, maxLen) {
164
+ if (s.length <= maxLen)
165
+ return s;
166
+ // Trim trailing whitespace before the ellipsis so we don't end on " …".
167
+ return s.slice(0, maxLen - 1).trimEnd() + '…';
168
+ }
169
+ function shortHash(hash) {
170
+ // "sha256:abc..." -> "sha256:abc..." truncated to a recognizable prefix
171
+ // for inline display ("sha256:cbcb2322309e…").
172
+ if (hash.startsWith('sha256:')) {
173
+ return `sha256:${hash.slice(7, 7 + HASH_PREFIX_LEN)}…`;
174
+ }
175
+ return hash.length > HASH_PREFIX_LEN ? `${hash.slice(0, HASH_PREFIX_LEN)}…` : hash;
176
+ }
177
+ function stringifyArgsBrief(args, maxLen) {
178
+ const parts = [];
179
+ for (const [k, v] of Object.entries(args)) {
180
+ let vStr;
181
+ if (typeof v === 'string') {
182
+ // Inline short strings; truncate long ones.
183
+ vStr = v.length > 20 ? `"${v.slice(0, 19)}…"` : `"${v}"`;
184
+ }
185
+ else if (typeof v === 'number' || typeof v === 'boolean') {
186
+ vStr = String(v);
187
+ }
188
+ else if (v === null) {
189
+ vStr = 'null';
190
+ }
191
+ else if (Array.isArray(v)) {
192
+ vStr = `[${v.length}]`;
193
+ }
194
+ else if (typeof v === 'object') {
195
+ vStr = '{…}';
196
+ }
197
+ else {
198
+ vStr = String(v);
199
+ }
200
+ parts.push(`${k}=${vStr}`);
201
+ if (parts.join(', ').length >= maxLen)
202
+ break;
203
+ }
204
+ return truncate(parts.join(', '), maxLen);
205
+ }
206
+ //# sourceMappingURL=legibility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legibility.js","sourceRoot":"","sources":["../src/legibility.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atrib/recall",
3
- "version": "0.7.0",
3
+ "version": "0.9.0",
4
4
  "description": "MCP server for atrib. Lets agents query their own provable past from the local signed-record mirror with per-record signature verification.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",