agent-recall-mcp 3.4.31 → 3.4.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +121 -441
- package/dist/index.js +70 -78
- package/dist/index.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +1 -5
- package/dist/server.js.map +1 -1
- package/dist/tools/bootstrap.d.ts.map +1 -1
- package/dist/tools/bootstrap.js +69 -4
- package/dist/tools/bootstrap.js.map +1 -1
- package/dist/tools/brief.d.ts +18 -0
- package/dist/tools/brief.d.ts.map +1 -0
- package/dist/tools/brief.js +78 -0
- package/dist/tools/brief.js.map +1 -0
- package/dist/tools/check.js +1 -1
- package/dist/tools/check.js.map +1 -1
- package/dist/tools/memory-query.d.ts.map +1 -1
- package/dist/tools/memory-query.js +15 -0
- package/dist/tools/memory-query.js.map +1 -1
- package/dist/tools/project-board.d.ts.map +1 -1
- package/dist/tools/project-board.js +13 -3
- package/dist/tools/project-board.js.map +1 -1
- package/dist/tools/recall.d.ts.map +1 -1
- package/dist/tools/recall.js +9 -1
- package/dist/tools/recall.js.map +1 -1
- package/dist/tools/remember.d.ts.map +1 -1
- package/dist/tools/remember.js +3 -2
- package/dist/tools/remember.js.map +1 -1
- package/dist/tools/session-end.js +1 -1
- package/dist/tools/session-end.js.map +1 -1
- package/dist/tools/session-start.d.ts.map +1 -1
- package/dist/tools/session-start.js +36 -6
- package/dist/tools/session-start.js.map +1 -1
- package/package.json +5 -5
package/dist/index.js
CHANGED
|
@@ -8,28 +8,19 @@ import { register as registerRemember } from "./tools/remember.js";
|
|
|
8
8
|
import { register as registerRecall } from "./tools/recall.js";
|
|
9
9
|
import { register as registerSessionEnd } from "./tools/session-end.js";
|
|
10
10
|
import { register as registerCheck } from "./tools/check.js";
|
|
11
|
-
|
|
12
|
-
import { register as
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
//
|
|
11
|
+
// ── Pre-action proactive matcher (--full) ────────────────────────────────
|
|
12
|
+
import { register as registerCheckAction } from "./tools/check-action.js";
|
|
13
|
+
// ── AR_EXTRAS quarantine zone — purity-census-2026-07-05 ─────────────────
|
|
14
|
+
// These tools are ZOMBIE/low-use (pipeline: 1 organic use in 60d; register_rule: 2;
|
|
15
|
+
// digest: 0 MCP calls). Core logic files stay untouched for reversibility.
|
|
16
|
+
// Activate with: AR_EXTRAS=1 npx agent-recall-mcp --full
|
|
17
17
|
import { register as registerPipelineOpen } from "./tools/pipeline-open.js";
|
|
18
18
|
import { register as registerPipelineClose } from "./tools/pipeline-close.js";
|
|
19
19
|
import { register as registerPipelineList } from "./tools/pipeline-list.js";
|
|
20
20
|
import { register as registerPipelineCurrent } from "./tools/pipeline-current.js";
|
|
21
21
|
import { register as registerPipelineShow } from "./tools/pipeline-show.js";
|
|
22
|
-
// ── Skill tools (procedural memory layer) ─────────────────────────────────
|
|
23
|
-
import { register as registerSkillWrite } from "./tools/skill-write.js";
|
|
24
|
-
import { register as registerSkillRecall } from "./tools/skill-recall.js";
|
|
25
|
-
import { register as registerSkillList } from "./tools/skill-list.js";
|
|
26
|
-
// ── Dashboard + reflection ───────────────────────────────────────────────
|
|
27
|
-
import { register as registerDashboardExport } from "./tools/dashboard-export.js";
|
|
28
|
-
import { register as registerSessionEndReflect } from "./tools/session-end-reflect.js";
|
|
29
|
-
// ── Behavior policies (always-loaded IF-THEN rules) ──────────────────────
|
|
30
22
|
import { register as registerRegisterRule } from "./tools/register-rule.js";
|
|
31
|
-
|
|
32
|
-
import { register as registerCheckAction } from "./tools/check-action.js";
|
|
23
|
+
import { register as registerDigest } from "./tools/digest.js";
|
|
33
24
|
// ── Legacy tools (still importable for SDK/CLI, not registered by default) ──
|
|
34
25
|
// DEPRECATED v3.4: use session_start instead
|
|
35
26
|
// import { register as registerJournalColdStart } from "./tools/journal-cold-start.js";
|
|
@@ -61,6 +52,19 @@ import { register as registerCheckAction } from "./tools/check-action.js";
|
|
|
61
52
|
// import { register as registerKnowledgeRead } from "./tools/knowledge-read.js";
|
|
62
53
|
// import { register as registerPalaceRead } from "./tools/palace-read.js";
|
|
63
54
|
// import { register as registerPalaceLint } from "./tools/palace-lint.js";
|
|
55
|
+
// DELETED 2026-07-05 (P3b purity — owner checkmarks, all zero organic MCP use):
|
|
56
|
+
// import { register as registerProjectBoard } from "./tools/project-board.js";
|
|
57
|
+
// import { register as registerProjectStatus } from "./tools/project-status.js";
|
|
58
|
+
// import { register as registerBootstrap } from "./tools/bootstrap.js";
|
|
59
|
+
// import { register as registerMemoryQuery } from "./tools/memory-query.js";
|
|
60
|
+
// import { register as registerSkillWrite } from "./tools/skill-write.js";
|
|
61
|
+
// import { register as registerSkillRecall } from "./tools/skill-recall.js";
|
|
62
|
+
// import { register as registerSkillList } from "./tools/skill-list.js";
|
|
63
|
+
// import { register as registerDashboardExport } from "./tools/dashboard-export.js";
|
|
64
|
+
// import { register as registerSessionEndReflect } from "./tools/session-end-reflect.js";
|
|
65
|
+
// import { register as registerBrief } from "./tools/brief.js";
|
|
66
|
+
// NOTE: bootstrap CLI command STAYS (ar bootstrap); skill logic stays (palace/skills.ts);
|
|
67
|
+
// session_end_reflect logic stays (ar consolidate); project_board logic stays (ar status).
|
|
64
68
|
import { register as registerJournalResources } from "./resources/journal-resources.js";
|
|
65
69
|
import { register as registerAwarenessResource } from "./resources/awareness-resource.js";
|
|
66
70
|
import { register as registerSessionPrompts } from "./prompts/session-prompts.js";
|
|
@@ -75,38 +79,29 @@ Everything else fires automatically via hooks or is available on demand with --f
|
|
|
75
79
|
|
|
76
80
|
Usage:
|
|
77
81
|
npx agent-recall-mcp Start with 5 default tools (session_start, session_end, remember, recall, check)
|
|
78
|
-
npx agent-recall-mcp --full Start with all tools (adds
|
|
79
|
-
|
|
80
|
-
project_board, project_status, digest, bootstrap)
|
|
82
|
+
npx agent-recall-mcp --full Start with all active tools (adds check_action)
|
|
83
|
+
AR_EXTRAS=1 npx agent-recall-mcp --full Add quarantined extras (pipeline_*, register_rule, digest)
|
|
81
84
|
npx agent-recall-mcp --help Show this help
|
|
82
85
|
npx agent-recall-mcp --list-tools List available MCP tools (add --full to see full list)
|
|
83
86
|
|
|
84
87
|
Default tools (5):
|
|
85
|
-
session_start Load project context at session start — corrections, insights, warnings
|
|
86
|
-
session_end Save journal, insights, trajectory — compounds memory over time
|
|
87
|
-
remember Write a memory — auto-routes to the right store
|
|
88
|
-
recall Search all memory — BM25 +
|
|
89
|
-
check Record understanding;
|
|
88
|
+
session_start [ENTRY — call FIRST, before acting] Load project context at session start — corrections, insights, warnings
|
|
89
|
+
session_end [ON SAVE/EXIT — YOU must call this; nothing auto-saves] Save journal, insights, trajectory — compounds memory over time
|
|
90
|
+
remember [MID-SESSION WRITE — single fact/decision; saying it is not saving it] Write a memory — auto-routes to the right store
|
|
91
|
+
recall [RETRIEVE — use freely, any time] Search all memory — BM25/keyword + RRF fusion + optional vector (OpenAI key)
|
|
92
|
+
check [MID-SESSION — safe any time; for alignment, before risky decisions] Record understanding; anticipates the likely correction before you make it
|
|
90
93
|
|
|
91
94
|
Full-mode additions (--full):
|
|
92
|
-
memory_query Pull-on-demand recall mid-task
|
|
93
95
|
check_action Pre-action safety check (publish/push/deploy warnings)
|
|
94
|
-
|
|
96
|
+
|
|
97
|
+
Quarantined extras (AR_EXTRAS=1 --full only):
|
|
95
98
|
pipeline_open Open a project narrative phase
|
|
96
99
|
pipeline_close Close active phase with reflection
|
|
97
100
|
pipeline_list List all narrative phases
|
|
98
101
|
pipeline_current Show currently active phase
|
|
99
102
|
pipeline_show Render full project narrative spine
|
|
100
|
-
|
|
101
|
-
skill_recall Find skills matching an intent
|
|
102
|
-
skill_list Browse all skills in a project
|
|
103
|
-
dashboard_export Generate agent-readable dashboard.json snapshot
|
|
104
|
-
session_end_reflect Park-2023 reflection bundle — distills last N journals
|
|
105
|
-
project_board Status board across all projects
|
|
106
|
-
project_status Quick project health check
|
|
103
|
+
register_rule Save an IF-THEN behavior policy
|
|
107
104
|
digest Context cache — store/recall/invalidate pre-computed analysis
|
|
108
|
-
bootstrap_scan Discover existing projects on this machine
|
|
109
|
-
bootstrap_import Import discovered projects into AgentRecall
|
|
110
105
|
|
|
111
106
|
Storage: ${getRoot()}
|
|
112
107
|
Legacy: ${getLegacyRoot()}
|
|
@@ -116,38 +111,39 @@ Community: https://t.me/+ywZwoHrg3AM0NDVi
|
|
|
116
111
|
`);
|
|
117
112
|
process.exit(0);
|
|
118
113
|
}
|
|
119
|
-
// --full: register
|
|
114
|
+
// --full: register active tools beyond the 5-tool default surface
|
|
115
|
+
// AR_EXTRAS=1: also register quarantined extras (pipeline_*, register_rule, digest)
|
|
120
116
|
// Default: 5 core tools only (minimal token overhead per session — Automaticity Law)
|
|
121
117
|
const fullMode = args.includes("--full");
|
|
118
|
+
const extrasMode = fullMode && process.env.AR_EXTRAS === "1";
|
|
122
119
|
if (args.includes("--list-tools")) {
|
|
123
120
|
const coreTools = [
|
|
124
|
-
{ name: "session_start", description: "Load project context at session start — corrections, insights, watch_for warnings" },
|
|
125
|
-
{ name: "session_end", description: "Save journal, insights, and trajectory — compounds memory over time" },
|
|
126
|
-
{ name: "remember", description: "Save a memory — auto-routes to the right store" },
|
|
127
|
-
{ name: "recall", description: "Search all memory stores, return ranked results with feedback" },
|
|
128
|
-
{ name: "check", description: "Record understanding
|
|
121
|
+
{ name: "session_start", description: "[ENTRY — call FIRST, before acting] Load project context at session start — corrections, insights, watch_for warnings" },
|
|
122
|
+
{ name: "session_end", description: "[ON SAVE/EXIT — YOU must call this; nothing auto-saves] Save journal, insights, and trajectory — compounds memory over time" },
|
|
123
|
+
{ name: "remember", description: "[MID-SESSION WRITE — single fact/decision; saying it is not saving it] Save a memory — auto-routes to the right store" },
|
|
124
|
+
{ name: "recall", description: "[RETRIEVE — use freely, any time] Search all memory stores, return ranked results with feedback" },
|
|
125
|
+
{ name: "check", description: "[MID-SESSION — safe any time; for alignment, before risky decisions] Record understanding; anticipates the likely correction before you make it" },
|
|
129
126
|
];
|
|
127
|
+
// P3b purity-census-2026-07-05: only check_action remains in --full (owner-approved deletion of 11 tools).
|
|
128
|
+
// Default 5 / full 6 (core 5 + check_action) / extras 6+7=13.
|
|
130
129
|
const fullOnlyTools = [
|
|
131
|
-
{ name: "memory_query", description: "Pull-on-demand recall mid-task — query before decisions (--full)" },
|
|
132
130
|
{ name: "check_action", description: "Pre-action safety matcher — warns on publish/push/deploy (--full)" },
|
|
133
|
-
{ name: "register_rule", description: "Save an IF-THEN behavior policy (--full)" },
|
|
134
|
-
{ name: "pipeline_open", description: "Open a new project narrative phase (--full)" },
|
|
135
|
-
{ name: "pipeline_close", description: "Close active phase with reflection fields (--full)" },
|
|
136
|
-
{ name: "pipeline_list", description: "List all narrative phases as JSON summaries (--full)" },
|
|
137
|
-
{ name: "pipeline_current", description: "Return content of the currently active phase (--full)" },
|
|
138
|
-
{ name: "pipeline_show", description: "Render project narrative spine — all phases (--full)" },
|
|
139
|
-
{ name: "skill_write", description: "Save a procedural IF-THEN rule (--full)" },
|
|
140
|
-
{ name: "skill_recall", description: "Find skills matching an intent (--full)" },
|
|
141
|
-
{ name: "skill_list", description: "Browse all skills in a project (--full)" },
|
|
142
|
-
{ name: "dashboard_export", description: "Generate agent-readable dashboard.json snapshot (--full)" },
|
|
143
|
-
{ name: "session_end_reflect", description: "Park-2023 reflection bundle — distills last N journals (--full)" },
|
|
144
|
-
{ name: "project_board", description: "Status board across all projects (--full)" },
|
|
145
|
-
{ name: "project_status", description: "Quick project health check (--full)" },
|
|
146
|
-
{ name: "digest", description: "Context cache — store/recall/read/invalidate pre-computed analysis (--full)" },
|
|
147
|
-
{ name: "bootstrap_scan", description: "Discover existing projects on this machine (--full)" },
|
|
148
|
-
{ name: "bootstrap_import", description: "Import discovered projects into AgentRecall (--full)" },
|
|
149
131
|
];
|
|
150
|
-
|
|
132
|
+
// Quarantined extras: registered only when AR_EXTRAS=1 (purity-census-2026-07-05)
|
|
133
|
+
const extrasTools = [
|
|
134
|
+
{ name: "pipeline_open", description: "Open a new project narrative phase (AR_EXTRAS=1 --full)" },
|
|
135
|
+
{ name: "pipeline_close", description: "Close active phase with reflection fields (AR_EXTRAS=1 --full)" },
|
|
136
|
+
{ name: "pipeline_list", description: "List all narrative phases as JSON summaries (AR_EXTRAS=1 --full)" },
|
|
137
|
+
{ name: "pipeline_current", description: "Return content of the currently active phase (AR_EXTRAS=1 --full)" },
|
|
138
|
+
{ name: "pipeline_show", description: "Render project narrative spine — all phases (AR_EXTRAS=1 --full)" },
|
|
139
|
+
{ name: "register_rule", description: "Save an IF-THEN behavior policy (AR_EXTRAS=1 --full)" },
|
|
140
|
+
{ name: "digest", description: "Context cache — store/recall/read/invalidate pre-computed analysis (AR_EXTRAS=1 --full)" },
|
|
141
|
+
];
|
|
142
|
+
let tools = coreTools;
|
|
143
|
+
if (fullMode)
|
|
144
|
+
tools = [...tools, ...fullOnlyTools];
|
|
145
|
+
if (extrasMode)
|
|
146
|
+
tools = [...tools, ...extrasTools];
|
|
151
147
|
process.stdout.write(JSON.stringify(tools, null, 2) + "\n");
|
|
152
148
|
process.exit(0);
|
|
153
149
|
}
|
|
@@ -161,33 +157,29 @@ registerRemember(server);
|
|
|
161
157
|
registerRecall(server);
|
|
162
158
|
registerCheck(server);
|
|
163
159
|
// ── Extended tools (--full mode only) ────────────────────────────────────────
|
|
164
|
-
//
|
|
165
|
-
//
|
|
166
|
-
//
|
|
160
|
+
// P3b purity-census-2026-07-05: stripped to check_action only.
|
|
161
|
+
// skill_write/recall/list, dashboard_export, session_end_reflect, project_board,
|
|
162
|
+
// project_status, bootstrap_scan/import, memory_query, brief all removed from MCP
|
|
163
|
+
// surface (owner-approved 2026-07-05). CLI paths for these remain intact.
|
|
167
164
|
if (fullMode) {
|
|
168
|
-
// On-demand recall + pre-action safety
|
|
169
|
-
registerMemoryQuery(server);
|
|
170
165
|
registerCheckAction(server);
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
166
|
+
}
|
|
167
|
+
// ── AR_EXTRAS quarantine zone (purity-census-2026-07-05) ─────────────────────
|
|
168
|
+
// Activate with: AR_EXTRAS=1 npx agent-recall-mcp --full
|
|
169
|
+
// Pipeline: 1 organic use (60d); register_rule: 2 uses; digest: 0 MCP uses.
|
|
170
|
+
// Core logic untouched for reversibility. These tools do NOT appear in the default
|
|
171
|
+
// --full listing — they are invisible until AR_EXTRAS=1 is set.
|
|
172
|
+
if (extrasMode) {
|
|
173
|
+
// Pipeline tools — project narrative spine (ZOMBIE: last used 2026-05-30)
|
|
174
174
|
registerPipelineOpen(server);
|
|
175
175
|
registerPipelineClose(server);
|
|
176
176
|
registerPipelineList(server);
|
|
177
177
|
registerPipelineCurrent(server);
|
|
178
178
|
registerPipelineShow(server);
|
|
179
|
-
//
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
registerSkillList(server);
|
|
183
|
-
// Dashboard + reflection
|
|
184
|
-
registerDashboardExport(server);
|
|
185
|
-
registerSessionEndReflect(server);
|
|
186
|
-
// Project status boards, context caching, bootstrap
|
|
187
|
-
registerProjectBoard(server);
|
|
188
|
-
registerProjectStatus(server);
|
|
179
|
+
// Behavior policies (ZOMBIE: 2 organic uses, last 2026-06-03)
|
|
180
|
+
registerRegisterRule(server);
|
|
181
|
+
// Context cache (DEAD via MCP: 0 MCP calls; CLI last used 2026-06-18)
|
|
189
182
|
registerDigest(server);
|
|
190
|
-
registerBootstrap(server);
|
|
191
183
|
}
|
|
192
184
|
registerJournalResources(server);
|
|
193
185
|
registerAwarenessResource(server);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,4EAA4E;AAC5E,OAAO,EAAE,QAAQ,IAAI,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,QAAQ,IAAI,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,eAAO,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,eAAO,MAAM,MAAM,WAGlB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,OAAO,MAAM,CAAC"}
|
package/dist/server.js
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
2
|
import { VERSION } from "agent-recall-core";
|
|
3
|
-
export const server = new McpServer({
|
|
4
|
-
name: "agent-recall",
|
|
5
|
-
version: VERSION,
|
|
6
|
-
description: "AgentRecall — persistent memory for AI agents. Community & feedback: https://t.me/+ywZwoHrg3AM0NDVi",
|
|
7
|
-
});
|
|
3
|
+
export const server = new McpServer({ name: "agent-recall", version: VERSION, description: "AgentRecall — persistent memory for AI agents. Community & feedback: https://t.me/+ywZwoHrg3AM0NDVi" }, { instructions: "AgentRecall is your memory across sessions. YOU drive its lifecycle — no harness fires it for you; if you don't call these tools, nothing is saved. (1) ENTRY: when a session resumes prior work, call session_start FIRST, before acting. (2) DURABLE INTENT: the moment you or the user says save / remember / checkpoint / 记住 / 保存, call session_end (or remember for a single fact). Saying it is not saving it. (3) EXIT: before you stop, call session_end. recall and check are safe to call freely, any time. Hooks auto-fire only in Claude Code; in every other host (Codex, chatbox, raw API) you are the sole lifecycle driver." });
|
|
8
4
|
//# sourceMappingURL=server.js.map
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,SAAS,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,SAAS,CACjC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,qGAAqG,EAAE,EAC9J,EAAE,YAAY,EAAE,6mBAA6mB,EAAE,CAChoB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/tools/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/tools/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAwDzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAwGhD"}
|
package/dist/tools/bootstrap.js
CHANGED
|
@@ -1,5 +1,50 @@
|
|
|
1
1
|
import * as z from "zod/v4";
|
|
2
2
|
import { bootstrapScan, bootstrapImport, } from "agent-recall-core";
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
// GUARD 3 — strict scan_result schema for bootstrap_import
|
|
5
|
+
//
|
|
6
|
+
// inputSchema (line ~101) intentionally uses z.union([z.string(), z.record(...)]).
|
|
7
|
+
// This is a loose outer shape (accepts string or object) so the MCP transport
|
|
8
|
+
// can carry either form. The REAL structural validation happens at the handler
|
|
9
|
+
// level (~line 121) via BootstrapScanResultSchema.safeParse() — that is where
|
|
10
|
+
// the nonce + shape are enforced. The handler then calls bootstrapImport() which
|
|
11
|
+
// validates the nonce cryptographically against the in-process VALID_NONCES
|
|
12
|
+
// registry (core layer enforces security semantics; MCP layer handles transport).
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
const ImportableItemSchema = z.object({
|
|
15
|
+
id: z.string(),
|
|
16
|
+
type: z.enum(["identity", "memory", "architecture", "trajectory"]),
|
|
17
|
+
source_path: z.string(),
|
|
18
|
+
size_bytes: z.number(),
|
|
19
|
+
preview: z.string(),
|
|
20
|
+
});
|
|
21
|
+
const DiscoveredProjectSchema = z.object({
|
|
22
|
+
slug: z.string(),
|
|
23
|
+
name: z.string(),
|
|
24
|
+
path: z.string(),
|
|
25
|
+
sources: z.array(z.object({
|
|
26
|
+
type: z.enum(["git", "claude-memory", "claudemd", "package-json"]),
|
|
27
|
+
path: z.string(),
|
|
28
|
+
detail: z.string(),
|
|
29
|
+
})),
|
|
30
|
+
description: z.string().optional(),
|
|
31
|
+
language: z.string().optional(),
|
|
32
|
+
last_activity: z.string().optional(),
|
|
33
|
+
already_in_ar: z.boolean(),
|
|
34
|
+
importable_items: z.array(ImportableItemSchema),
|
|
35
|
+
});
|
|
36
|
+
const BootstrapScanResultSchema = z.object({
|
|
37
|
+
projects: z.array(DiscoveredProjectSchema),
|
|
38
|
+
global_items: z.array(ImportableItemSchema),
|
|
39
|
+
stats: z.object({
|
|
40
|
+
total_projects: z.number(),
|
|
41
|
+
total_importable_items: z.number(),
|
|
42
|
+
total_already_in_ar: z.number(),
|
|
43
|
+
scan_duration_ms: z.number(),
|
|
44
|
+
}),
|
|
45
|
+
_session_nonce: z.string().min(1, "_session_nonce must be a non-empty string — call bootstrap_scan() first"),
|
|
46
|
+
_scan_roots: z.array(z.string()),
|
|
47
|
+
});
|
|
3
48
|
export function register(server) {
|
|
4
49
|
server.registerTool("bootstrap_scan", {
|
|
5
50
|
title: "Bootstrap Scan",
|
|
@@ -37,21 +82,41 @@ export function register(server) {
|
|
|
37
82
|
});
|
|
38
83
|
server.registerTool("bootstrap_import", {
|
|
39
84
|
title: "Bootstrap Import",
|
|
40
|
-
description: "Import discovered projects into AgentRecall. Call bootstrap_scan
|
|
85
|
+
description: "Import discovered projects into AgentRecall. Call bootstrap_scan FIRST, then pass the EXACT scan_result object returned here — do NOT construct scan_result manually. Security: requires _session_nonce from the scan call; fabricated or replayed scan results are rejected.",
|
|
41
86
|
inputSchema: {
|
|
42
|
-
scan_result: z.union([z.string(), z.record(z.string(), z.unknown())]).describe("BootstrapScanResult from bootstrap_scan —
|
|
87
|
+
scan_result: z.union([z.string(), z.record(z.string(), z.unknown())]).describe("BootstrapScanResult from bootstrap_scan — pass the exact object returned by bootstrap_scan, including _session_nonce. Do NOT construct this manually."),
|
|
43
88
|
project_slugs: z.array(z.string()).optional().describe("Import only these projects (default: all new)"),
|
|
44
89
|
item_types: z.array(z.string()).optional().describe("Import only these item types: identity, memory, architecture, trajectory"),
|
|
45
90
|
},
|
|
46
91
|
}, async ({ scan_result, project_slugs, item_types }) => {
|
|
47
92
|
let scan;
|
|
48
93
|
try {
|
|
94
|
+
// Parse JSON string if needed
|
|
95
|
+
let rawScan;
|
|
49
96
|
if (typeof scan_result === "string") {
|
|
50
|
-
|
|
97
|
+
try {
|
|
98
|
+
rawScan = JSON.parse(scan_result);
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
return { content: [{ type: "text", text: "Error: scan_result string is not valid JSON. Pass the exact object from bootstrap_scan." }], isError: true };
|
|
102
|
+
}
|
|
51
103
|
}
|
|
52
104
|
else {
|
|
53
|
-
|
|
105
|
+
rawScan = scan_result;
|
|
54
106
|
}
|
|
107
|
+
// GUARD 3: Strict structural validation — rejects malformed / fabricated objects
|
|
108
|
+
const parsed = BootstrapScanResultSchema.safeParse(rawScan);
|
|
109
|
+
if (!parsed.success) {
|
|
110
|
+
const firstError = parsed.error.issues[0];
|
|
111
|
+
const msg = firstError
|
|
112
|
+
? `${firstError.path.join(".")}: ${firstError.message}`
|
|
113
|
+
: "scan_result failed schema validation";
|
|
114
|
+
return {
|
|
115
|
+
content: [{ type: "text", text: `Security: scan_result rejected — ${msg}. Pass the exact object returned by bootstrap_scan().` }],
|
|
116
|
+
isError: true,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
scan = parsed.data;
|
|
55
120
|
}
|
|
56
121
|
catch {
|
|
57
122
|
return { content: [{ type: "text", text: "Error: scan_result must be valid JSON from bootstrap_scan" }], isError: true };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/tools/bootstrap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EACL,aAAa,EACb,eAAe,GAEhB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CAAC,gBAAgB,EAAE;QACpC,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,sMAAsM;QACnN,WAAW,EAAE;YACX,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8GAA8G,CAAC;YAClK,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;SACtH;KACF,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE;QACpC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;YACjC,SAAS,EAAE,SAAS,IAAI,SAAS;YACjC,SAAS,EAAE,SAAS,IAAI,SAAS;SAClC,CAAC,CAAC;QAEH,kDAAkD;QAClD,MAAM,OAAO,GAAG;YACd,SAAS,MAAM,CAAC,KAAK,CAAC,cAAc,cAAc,MAAM,CAAC,KAAK,CAAC,mBAAmB,4BAA4B,MAAM,CAAC,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,mBAAmB,OAAO;YACnL,GAAG,MAAM,CAAC,KAAK,CAAC,sBAAsB,mBAAmB;YACzD,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,8BAA8B;YAC3D,cAAc,MAAM,CAAC,KAAK,CAAC,gBAAgB,IAAI;YAC/C,EAAE;YACF,eAAe;YACf,GAAG,MAAM,CAAC,QAAQ;iBACf,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;iBAC7B,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;iBACZ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,QAAQ,IAAI,SAAS,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACjG,EAAE;YACF,kCAAkC;SACnC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,OAAO;YACL,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,OAAO,EAAE;gBACxC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;aACxD;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,YAAY,CAAC,kBAAkB,EAAE;QACtC,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/tools/bootstrap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* brief MCP tool — compact LLM-free re-orientation briefing (≤200 tokens).
|
|
3
|
+
*
|
|
4
|
+
* --full only: registered inside the `if (fullMode)` block in index.ts.
|
|
5
|
+
* Read-only: no session_start side-effects, no writes, no LLM calls.
|
|
6
|
+
*
|
|
7
|
+
* Returns identity, active phase, top corrections/watch_for/rules, the
|
|
8
|
+
* 3-rule lifecycle text verbatim, trigger vocab, and a host-honesty line.
|
|
9
|
+
*
|
|
10
|
+
* AGENT INSTRUCTION:
|
|
11
|
+
* brief() is a MID-SESSION re-orientation aid for hook-less hosts, NOT a
|
|
12
|
+
* replacement for session_start. Always call session_start() FIRST at
|
|
13
|
+
* session entry. Use brief() when you need a quick lifecycle reminder
|
|
14
|
+
* mid-session without paying the full session_start token cost.
|
|
15
|
+
*/
|
|
16
|
+
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
17
|
+
export declare function register(server: McpServer): void;
|
|
18
|
+
//# sourceMappingURL=brief.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brief.d.ts","sourceRoot":"","sources":["../../src/tools/brief.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAmEhD"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* brief MCP tool — compact LLM-free re-orientation briefing (≤200 tokens).
|
|
3
|
+
*
|
|
4
|
+
* --full only: registered inside the `if (fullMode)` block in index.ts.
|
|
5
|
+
* Read-only: no session_start side-effects, no writes, no LLM calls.
|
|
6
|
+
*
|
|
7
|
+
* Returns identity, active phase, top corrections/watch_for/rules, the
|
|
8
|
+
* 3-rule lifecycle text verbatim, trigger vocab, and a host-honesty line.
|
|
9
|
+
*
|
|
10
|
+
* AGENT INSTRUCTION:
|
|
11
|
+
* brief() is a MID-SESSION re-orientation aid for hook-less hosts, NOT a
|
|
12
|
+
* replacement for session_start. Always call session_start() FIRST at
|
|
13
|
+
* session entry. Use brief() when you need a quick lifecycle reminder
|
|
14
|
+
* mid-session without paying the full session_start token cost.
|
|
15
|
+
*/
|
|
16
|
+
import * as z from "zod/v4";
|
|
17
|
+
import { brief } from "agent-recall-core";
|
|
18
|
+
export function register(server) {
|
|
19
|
+
server.registerTool("brief", {
|
|
20
|
+
title: "Brief",
|
|
21
|
+
description: "READ-ONLY re-orientation briefing (≤200 tokens). " +
|
|
22
|
+
"Returns: identity, active phase, top P0 corrections, watch_for patterns, behavior rules, " +
|
|
23
|
+
"the 3-rule lifecycle text verbatim, save-trigger vocab, and a host-honesty hint. " +
|
|
24
|
+
"LLM-free, deterministic, no side-effects. " +
|
|
25
|
+
"--full only. " +
|
|
26
|
+
"NOT a replacement for session_start — call session_start FIRST at session entry. " +
|
|
27
|
+
"Use brief() mid-session when you need a lightweight lifecycle reminder.",
|
|
28
|
+
inputSchema: {
|
|
29
|
+
project: z.string().optional().describe("Project slug (default: auto-detected from cwd)"),
|
|
30
|
+
},
|
|
31
|
+
annotations: {
|
|
32
|
+
readOnlyHint: true,
|
|
33
|
+
},
|
|
34
|
+
}, async ({ project }) => {
|
|
35
|
+
const result = await brief({ project });
|
|
36
|
+
// Render as compact human-readable text + structured JSON
|
|
37
|
+
const lines = [
|
|
38
|
+
`# Brief — ${result.project}`,
|
|
39
|
+
`Identity: ${result.identity}`,
|
|
40
|
+
result.active_phase ? `Phase: ${result.active_phase}` : "Phase: (none active)",
|
|
41
|
+
"",
|
|
42
|
+
"## Lifecycle (3 rules)",
|
|
43
|
+
result.lifecycle_text,
|
|
44
|
+
"",
|
|
45
|
+
"## Save triggers",
|
|
46
|
+
result.trigger_vocab.join(", "),
|
|
47
|
+
];
|
|
48
|
+
if (result.corrections_top.length > 0) {
|
|
49
|
+
lines.push("", "## Top P0 corrections");
|
|
50
|
+
for (const c of result.corrections_top) {
|
|
51
|
+
lines.push(` [${c.severity.toUpperCase()}] ${c.rule}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
if (result.watch_for_top.length > 0) {
|
|
55
|
+
lines.push("", "## Watch for");
|
|
56
|
+
for (const w of result.watch_for_top) {
|
|
57
|
+
lines.push(` ${w.pattern} → ${w.suggestion}`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
if (result.rules_top.length > 0) {
|
|
61
|
+
lines.push("", "## Rules");
|
|
62
|
+
for (const r of result.rules_top) {
|
|
63
|
+
lines.push(` [${r.name}] WHEN ${r.when} → ${r.do}`);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
if (result.store_health) {
|
|
67
|
+
lines.push("", `Store: ${result.store_health}`);
|
|
68
|
+
}
|
|
69
|
+
lines.push("", result.host_hint);
|
|
70
|
+
return {
|
|
71
|
+
content: [
|
|
72
|
+
{ type: "text", text: lines.join("\n") },
|
|
73
|
+
{ type: "text", text: JSON.stringify(result) },
|
|
74
|
+
],
|
|
75
|
+
};
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=brief.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brief.js","sourceRoot":"","sources":["../../src/tools/brief.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/check.js
CHANGED
|
@@ -3,7 +3,7 @@ import { check } from "agent-recall-core";
|
|
|
3
3
|
export function register(server) {
|
|
4
4
|
server.registerTool("check", {
|
|
5
5
|
title: "Check Understanding",
|
|
6
|
-
description: "Use when the user asks to validate understanding, verify alignment, or check if their interpretation matches the human's intent.",
|
|
6
|
+
description: "[MID-SESSION — safe any time; for alignment, before risky decisions] Use when the user asks to validate understanding, verify alignment, or check if their interpretation matches the human's intent.",
|
|
7
7
|
inputSchema: {
|
|
8
8
|
goal: z.string().optional().describe("The goal or decision question you're checking alignment on. Required for alignment checks; optional when recording a pure decision trail (prior/posterior/evidence)."),
|
|
9
9
|
understanding: z.string().optional().describe("Alias for goal — use when saying 'check my understanding: X'. Provide either goal or understanding."),
|
package/dist/tools/check.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/tools/check.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE;QAC3B,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/tools/check.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-query.d.ts","sourceRoot":"","sources":["../../src/tools/memory-query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"memory-query.d.ts","sourceRoot":"","sources":["../../src/tools/memory-query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAgEhD"}
|
|
@@ -19,6 +19,21 @@ export function register(server) {
|
|
|
19
19
|
try {
|
|
20
20
|
const result = await memoryQuery({ intent: searchIntent, project, min_confidence, limit });
|
|
21
21
|
if (result.empty) {
|
|
22
|
+
// Bridge (Wave 4): when the primary filter is empty but a low-confidence
|
|
23
|
+
// match exists, surface the verbatim drill-down source instead of a bare
|
|
24
|
+
// "nothing found" string.
|
|
25
|
+
if (result.fallback && result.fallback.length > 0) {
|
|
26
|
+
const lines = [
|
|
27
|
+
result.guidance ?? "Low-confidence match — verbatim source attached; verify before relying.",
|
|
28
|
+
"",
|
|
29
|
+
"— Verbatim source (low-confidence drill-down):",
|
|
30
|
+
];
|
|
31
|
+
for (const b of result.fallback) {
|
|
32
|
+
const snippet = b.verbatim.replace(/\n/g, " ").slice(0, 300);
|
|
33
|
+
lines.push(` [${b.source}] ${snippet}`);
|
|
34
|
+
}
|
|
35
|
+
return { content: [{ type: "text", text: lines.join("\n") }] };
|
|
36
|
+
}
|
|
22
37
|
return {
|
|
23
38
|
content: [{
|
|
24
39
|
type: "text",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-query.js","sourceRoot":"","sources":["../../src/tools/memory-query.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"memory-query.js","sourceRoot":"","sources":["../../src/tools/memory-query.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-board.d.ts","sourceRoot":"","sources":["../../src/tools/project-board.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"project-board.d.ts","sourceRoot":"","sources":["../../src/tools/project-board.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAkBhD"}
|