@atrib/recall 0.12.2 → 0.12.4
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 +5 -1
- package/dist/aggregations.d.ts +6 -5
- package/dist/aggregations.js +5 -5
- package/dist/aggregations.js.map +1 -1
- package/dist/legibility.js +6 -1
- package/dist/legibility.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -77,7 +77,7 @@ Every call to this tool (and every sibling tool below) writes a per-call jsonl e
|
|
|
77
77
|
|
|
78
78
|
- `mcp__atrib-recall__recall_revisions({ record_hash })` - returns the forward revision chain for the target record. Each chain entry carries `record_hash`, `timestamp`, and the [D086](../../DECISIONS.md#d086-bm25-corpus-extended-from-annotations-to-per-event_type-record-content)-normative content fields (`new_position`, `reason`, `importance`) when present, so the agent can read the chain inline without follow-up `recall` calls per revision. The chain follows the first-by-timestamp revision at each step; when more than one revision targets the same record (sibling fan-out, common in multi-agent flows), the other branch heads are listed on that step's entry as `sibling_hashes`, so the agent can recursively call `recall_revisions` on a sibling to traverse a parallel branch instead of having to manually enumerate revisions via `recall_my_attribution_history`.
|
|
79
79
|
|
|
80
|
-
- `mcp__atrib-recall__recall_by_content({ query, k? })` - BM25 free-form retrieval over each record's indexable text + the annotation summary + topic_tags (when present), then reranked by Park et al. weighted-sum scoring (recency + importance + relevance). Default k=10, max 50. Per [D086](../../DECISIONS.md#d086-bm25-corpus-extended-from-annotations-to-per-event_type-record-content), "indexable text" is per-event_type record content from the [D062](../../DECISIONS.md#d062-local-mirror-sidecar-two-tier-private-local--public-canonical-persistence) sidecar (observation: `what + why_noted + topics`; tool_call: `tool_name + args excerpt + result excerpt`; annotation: `summary + topics`; revision: `prior_position + new_position + reason + topics`; transaction: counterparty + memo + protocol fields; directory_anchor: `tree_root + epoch_id`). Extension URIs fall back to a generic recursive string-walk (depth ≤ 4, field cap 2KB). BM25 contribution is clamped to [0, 1] in the parkScore site so the documented Park-component bound is honored. Layer 2 (sqlite-vec sidecar, separate ship) extends with embedding similarity over the same indexed text.
|
|
80
|
+
- `mcp__atrib-recall__recall_by_content({ query, k? })` - BM25 free-form retrieval over each record's indexable text + the annotation summary + topic_tags (when present), then reranked by Park et al. weighted-sum scoring (recency + importance + relevance). Default k=10, max 50. Per [D086](../../DECISIONS.md#d086-bm25-corpus-extended-from-annotations-to-per-event_type-record-content), "indexable text" is per-event_type record content from the [D062](../../DECISIONS.md#d062-local-mirror-sidecar-two-tier-private-local--public-canonical-persistence) sidecar (observation: `what + why_noted + topics`; tool_call: `tool_name + args excerpt + result excerpt`; annotation: `summary + topics`; revision: `prior_position + new_position + reason + topics`; transaction: counterparty + memo + protocol fields; directory_anchor: `tree_root + epoch_id`). Extension URIs fall back to a generic recursive string-walk (depth ≤ 4, field cap 2KB). OpenInference local sidecars add recall tokens for span kind/name, tool/agent/model, prompt identifiers and templates, inputs/outputs, usage, cost, score, and metadata when those fields are mirrored locally per [D108](../../DECISIONS.md#d108-observability-span-trees-are-intake-local-sidecars-are-cognitive-payload). BM25 contribution is clamped to [0, 1] in the parkScore site so the documented Park-component bound is honored. Layer 2 (sqlite-vec sidecar, separate ship) extends with embedding similarity over the same indexed text.
|
|
81
81
|
|
|
82
82
|
- `mcp__atrib-recall__recall_session_chain({ context_id?, limit?, include_content? })` - returns all records in a context_id, ordered chronologically (oldest-first). The natural traversal of the CHAIN_PRECEDES topology for a single session/trace. Each entry carries `record_hash`, `event_type`, `timestamp`, `display_summary`, `display_producer`, `age`, plus signed causal/tool fields when present (`informed_by`, `tool_name`, `args_hash`, `result_hash`). When `include_content` is true, each entry also includes the [D062](../../DECISIONS.md#d062-local-mirror-sidecar--two-tier-private-local--public-canonical-persistence) local mirror body as `local_content` and the local producer label as `local_producer`. Defaults false to keep the session chain cheap. When `context_id` is omitted, falls back to `resolveEnvContextId` (the same precedence as the other tools: `ATRIB_CONTEXT_ID` env, then a [D083](../../DECISIONS.md#d083-harness-session-id-discovery-extends-d078-for-cognitive-primitive-mcp-servers)-registered harness env like `CLAUDE_CODE_SESSION_ID`).
|
|
83
83
|
|
|
@@ -111,6 +111,10 @@ Compact recall responses carry three derived fields per record so the agent can
|
|
|
111
111
|
|
|
112
112
|
`recall_by_content` and `recall_walk` carry the same fields starting in the 0.8.0 audit-pass-1 follow-up.
|
|
113
113
|
|
|
114
|
+
### Local content normalization
|
|
115
|
+
|
|
116
|
+
Recall treats `_local.content` as the preferred semantic payload. If older mirror entries only have wrapper fields (`toolName`, `args`, `result`) or OpenInference callback fields (`source`, `spanKind`, `spanName`, `input`, `output`, `agentName`, `model_name`), recall derives the same content shape through `@atrib/mcp` before scoring or formatting. That keeps legacy mirrors readable without promoting prompts, outputs, usage, cost, or scores into signed protocol fields.
|
|
117
|
+
|
|
114
118
|
### Anti-noise threshold for `rank_by=relevance`
|
|
115
119
|
|
|
116
120
|
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.
|
package/dist/aggregations.d.ts
CHANGED
|
@@ -8,11 +8,12 @@ import type { ImportanceLabel } from './index.js';
|
|
|
8
8
|
* `content.revises` reference.
|
|
9
9
|
*
|
|
10
10
|
* `content` is the deserialized `_local.content` from a D062 envelope mirror
|
|
11
|
-
* line
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
11
|
+
* line, or a derived equivalent from known legacy sidecar fields such as
|
|
12
|
+
* `_local.toolName`, `_local.args`, `_local.result`, `_local.input`, and
|
|
13
|
+
* `_local.output`. Producers writing bare AtribRecord lines yield
|
|
14
|
+
* `content: undefined` here; annotation aggregation simply skips those
|
|
15
|
+
* records (the §8.1 posture: no body disclosed). Code that wants to read
|
|
16
|
+
* annotation importance / topics / summary MUST handle the undefined case.
|
|
16
17
|
*/
|
|
17
18
|
export type LoadedRecord = {
|
|
18
19
|
record: AtribRecord;
|
package/dist/aggregations.js
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
* Revision aggregation (D059) is a near-identical shape that will land
|
|
22
22
|
* alongside; the structure here is designed to extend.
|
|
23
23
|
*/
|
|
24
|
-
import { canonicalRecord, sha256, hexEncode, EVENT_TYPE_ANNOTATION_URI, EVENT_TYPE_REVISION_URI, } from '@atrib/mcp';
|
|
24
|
+
import { canonicalRecord, sha256, hexEncode, EVENT_TYPE_ANNOTATION_URI, EVENT_TYPE_REVISION_URI, deriveLocalContentFromSidecar, } from '@atrib/mcp';
|
|
25
25
|
import { existsSync, readFileSync, readdirSync, statSync } from 'node:fs';
|
|
26
26
|
import { join } from 'node:path';
|
|
27
27
|
import { IMPORTANCE_NUMERIC } from './index.js';
|
|
@@ -36,7 +36,7 @@ export function computeRecordHash(record) {
|
|
|
36
36
|
return `sha256:${hexEncode(sha256(canonicalRecord(record)))}`;
|
|
37
37
|
}
|
|
38
38
|
/**
|
|
39
|
-
* Pull the inner AtribRecord and
|
|
39
|
+
* Pull the inner AtribRecord and recall-readable local content out of one
|
|
40
40
|
* parsed mirror line. Returns null when the line is neither shape or is
|
|
41
41
|
* missing the required AtribRecord fields. The shape contract mirrors
|
|
42
42
|
* `extractRecord` in `index.ts` exactly; the only addition is the optional
|
|
@@ -65,11 +65,11 @@ function extractLoaded(parsed) {
|
|
|
65
65
|
const local = obj._local ?? undefined;
|
|
66
66
|
if (local) {
|
|
67
67
|
const producer = typeof local.producer === 'string' ? local.producer : undefined;
|
|
68
|
-
const
|
|
69
|
-
if (
|
|
68
|
+
const content = deriveLocalContentFromSidecar(record.event_type, local);
|
|
69
|
+
if (content !== undefined || producer !== undefined) {
|
|
70
70
|
return {
|
|
71
71
|
record,
|
|
72
|
-
...(
|
|
72
|
+
...(content !== undefined && { content }),
|
|
73
73
|
...(producer !== undefined && { producer }),
|
|
74
74
|
};
|
|
75
75
|
}
|
package/dist/aggregations.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregations.js","sourceRoot":"","sources":["../src/aggregations.ts"],"names":[],"mappings":"AAAA,sCAAsC;AAEtC;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EACL,eAAe,EACf,MAAM,EACN,SAAS,EACT,yBAAyB,EACzB,uBAAuB,
|
|
1
|
+
{"version":3,"file":"aggregations.js","sourceRoot":"","sources":["../src/aggregations.ts"],"names":[],"mappings":"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"}
|
package/dist/legibility.js
CHANGED
|
@@ -22,8 +22,10 @@ export function synthesizeDisplaySummary(record, content, annotations) {
|
|
|
22
22
|
return truncate(annotations.summary, SUMMARY_MAX_LEN);
|
|
23
23
|
}
|
|
24
24
|
// 2. Per-event_type synthesis.
|
|
25
|
-
const tool_name = record.tool_name;
|
|
26
25
|
const c = isObject(content) ? content : {};
|
|
26
|
+
const recordToolName = record.tool_name;
|
|
27
|
+
const sidecarToolName = stringFrom(c.tool_name ?? c.toolName);
|
|
28
|
+
const tool_name = recordToolName ?? sidecarToolName;
|
|
27
29
|
switch (record.event_type) {
|
|
28
30
|
case `${ATRIB_EVENT_TYPE_PREFIX}tool_call`: {
|
|
29
31
|
const args = c.args ?? c.input ?? c.arguments;
|
|
@@ -160,6 +162,9 @@ export function formatAge(timestamp, now) {
|
|
|
160
162
|
function isObject(v) {
|
|
161
163
|
return v !== null && typeof v === 'object' && !Array.isArray(v);
|
|
162
164
|
}
|
|
165
|
+
function stringFrom(v) {
|
|
166
|
+
return typeof v === 'string' && v.length > 0 ? v : undefined;
|
|
167
|
+
}
|
|
163
168
|
function truncate(s, maxLen) {
|
|
164
169
|
if (s.length <= maxLen)
|
|
165
170
|
return s;
|
package/dist/legibility.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"legibility.js","sourceRoot":"","sources":["../src/legibility.ts"],"names":[],"mappings":"AAAA,sCAAsC;AA2BtC,MAAM,uBAAuB,GAAG,6BAA6B,CAAA;AAE7D,MAAM,eAAe,GAAG,GAAG,CAAA;AAC3B,MAAM,oBAAoB,GAAG,EAAE,CAAA;AAC/B,MAAM,eAAe,GAAG,EAAE,CAAA;AAE1B;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,wBAAwB,CACtC,MAAmB,EACnB,OAAgB,EAChB,WAA0C;IAE1C,oEAAoE;IACpE,IAAI,WAAW,EAAE,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3D,OAAO,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;IACvD,CAAC;IAED,+BAA+B;IAC/B,MAAM,
|
|
1
|
+
{"version":3,"file":"legibility.js","sourceRoot":"","sources":["../src/legibility.ts"],"names":[],"mappings":"AAAA,sCAAsC;AA2BtC,MAAM,uBAAuB,GAAG,6BAA6B,CAAA;AAE7D,MAAM,eAAe,GAAG,GAAG,CAAA;AAC3B,MAAM,oBAAoB,GAAG,EAAE,CAAA;AAC/B,MAAM,eAAe,GAAG,EAAE,CAAA;AAE1B;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,wBAAwB,CACtC,MAAmB,EACnB,OAAgB,EAChB,WAA0C;IAE1C,oEAAoE;IACpE,IAAI,WAAW,EAAE,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3D,OAAO,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;IACvD,CAAC;IAED,+BAA+B;IAC/B,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAkC,CAAC,CAAC,CAAC,EAAE,CAAA;IACrE,MAAM,cAAc,GAAI,MAA+C,CAAC,SAAS,CAAA;IACjF,MAAM,eAAe,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAA;IAC7D,MAAM,SAAS,GAAG,cAAc,IAAI,eAAe,CAAA;IAEnD,QAAQ,MAAM,CAAC,UAAU,EAAE,CAAC;QAC1B,KAAK,GAAG,uBAAuB,WAAW,CAAC,CAAC,CAAC;YAC3C,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,SAAS,CAAA;YAC7C,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBACnB,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAA+B,EAAE,oBAAoB,CAAC,CAAA;oBAC7F,OAAO,QAAQ,CAAC,QAAQ,SAAS,IAAI,WAAW,GAAG,EAAE,eAAe,CAAC,CAAA;gBACvE,CAAC;gBACD,OAAO,QAAQ,SAAS,EAAE,CAAA;YAC5B,CAAC;YACD,OAAO,WAAW,CAAA;QACpB,CAAC;QACD,KAAK,GAAG,uBAAuB,aAAa,CAAC,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAA;YAClC,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,EAAE,CAAA;YAClD,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAA;YACpC,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;gBACvB,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;gBACxD,OAAO,QAAQ,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,CAAA;YACtF,CAAC;YACD,OAAO,aAAa,CAAA;QACtB,CAAC;QACD,KAAK,GAAG,uBAAuB,aAAa,CAAC,CAAC,CAAC;YAC7C,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAA;YACnB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChD,OAAO,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC,CAAA;YACxC,CAAC;YACD,OAAO,aAAa,CAAA;QACtB,CAAC;QACD,KAAK,GAAG,uBAAuB,kBAAkB,CAAC,CAAC,CAAC;YAClD,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,CAAA;YAClC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7B,OAAO,oBAAoB,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAA;YACjD,CAAC;YACD,OAAO,kBAAkB,CAAA;QAC3B,CAAC;QACD,KAAK,GAAG,uBAAuB,YAAY,CAAC,CAAC,CAAC;YAC5C,MAAM,SAAS,GAAG,CAAC,CAAC,SAAS,CAAA;YAC7B,MAAM,UAAU,GAAG,CAAC,CAAC,UAAU,CAAA;YAC/B,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAA;YACzB,MAAM,cAAc,GAAG,OAAO,SAAS,KAAK,QAAQ;gBAClD,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC;gBACtB,CAAC,CAAC,SAAS,CAAA;YACb,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtD,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;gBAC3D,OAAO,QAAQ,CAAC,aAAa,cAAc,KAAK,MAAM,GAAG,OAAO,EAAE,EAAE,eAAe,CAAC,CAAA;YACtF,CAAC;YACD,OAAO,aAAa,cAAc,EAAE,CAAA;QACtC,CAAC;QACD,KAAK,GAAG,uBAAuB,UAAU,CAAC,CAAC,CAAC;YAC1C,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAA;YACzB,MAAM,MAAM,GAAG,CAAC,CAAC,YAAY,CAAA;YAC7B,MAAM,YAAY,GAAG,OAAO,OAAO,KAAK,QAAQ;gBAC9C,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC;gBACpB,CAAC,CAAC,SAAS,CAAA;YACb,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpD,OAAO,QAAQ,CAAC,WAAW,YAAY,KAAK,MAAM,EAAE,EAAE,eAAe,CAAC,CAAA;YACxE,CAAC;YACD,OAAO,WAAW,YAAY,EAAE,CAAA;QAClC,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACR,2DAA2D;YAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,UAAU,CAAA;YACpE,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAA;QACjD,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAmB,EACnB,QAA4B;IAE5B,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,OAAO,QAAQ,CAAA;IACjB,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAA;IAC9B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAC/C,OAAO,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAA;IACjC,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,SAAS,CAAC,SAAiB,EAAE,GAAW;IACtD,qEAAqE;IACrE,qEAAqE;IACrE,sEAAsE;IACtE,qDAAqD;IACrD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAA;IAC1E,MAAM,IAAI,GAAG,GAAG,GAAG,SAAS,CAAA;IAC5B,IAAI,IAAI,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAA;IAC7B,IAAI,IAAI,GAAG,MAAM;QAAE,OAAO,UAAU,CAAA;IACpC,IAAI,IAAI,GAAG,SAAS;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO,CAAA;IAChE,IAAI,IAAI,GAAG,UAAU;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,OAAO,CAAA;IACpE,IAAI,IAAI,GAAG,EAAE,GAAG,UAAU;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC,OAAO,CAAA;IAC1E,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;AACvD,CAAC;AAED,kBAAkB;AAElB,SAAS,QAAQ,CAAC,CAAU;IAC1B,OAAO,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AACjE,CAAC;AAED,SAAS,UAAU,CAAC,CAAU;IAC5B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAC9D,CAAC;AAED,SAAS,QAAQ,CAAC,CAAS,EAAE,MAAc;IACzC,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM;QAAE,OAAO,CAAC,CAAA;IAChC,yEAAyE;IACzE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,GAAG,CAAA;AAC/C,CAAC;AAED,SAAS,SAAS,CAAC,IAAY;IAC7B,wEAAwE;IACxE,+CAA+C;IAC/C,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/B,OAAO,UAAU,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,GAAG,CAAA;IACxD,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAA;AACpF,CAAC;AAED,SAAS,kBAAkB,CAAC,IAA6B,EAAE,MAAc;IACvE,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,IAAI,IAAY,CAAA;QAChB,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC1B,4CAA4C;YAC5C,IAAI,GAAG,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAA;QAC1D,CAAC;aAAM,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,SAAS,EAAE,CAAC;YAC3D,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QAClB,CAAC;aAAM,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YACtB,IAAI,GAAG,MAAM,CAAA;QACf,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5B,IAAI,GAAG,IAAI,CAAC,CAAC,MAAM,GAAG,CAAA;QACxB,CAAC;aAAM,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YACjC,IAAI,GAAG,KAAK,CAAA;QACd,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QAClB,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;QAC1B,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM;YAAE,MAAK;IAC9C,CAAC;IACD,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAA;AAC3C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atrib/recall",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.4",
|
|
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",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@modelcontextprotocol/sdk": "^1.12.1",
|
|
12
12
|
"zod": "^4.3.6",
|
|
13
|
-
"@atrib/mcp": "0.
|
|
13
|
+
"@atrib/mcp": "0.15.0"
|
|
14
14
|
},
|
|
15
15
|
"devDependencies": {
|
|
16
16
|
"@types/node": "^25.9.1",
|