agent-recall-mcp 3.4.18 → 3.4.20
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 +404 -981
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -1
- package/dist/tools/dashboard-export.d.ts +3 -0
- package/dist/tools/dashboard-export.d.ts.map +1 -0
- package/dist/tools/dashboard-export.js +19 -0
- package/dist/tools/dashboard-export.js.map +1 -0
- package/dist/tools/pipeline-close.d.ts +3 -0
- package/dist/tools/pipeline-close.d.ts.map +1 -0
- package/dist/tools/pipeline-close.js +36 -0
- package/dist/tools/pipeline-close.js.map +1 -0
- package/dist/tools/pipeline-current.d.ts +3 -0
- package/dist/tools/pipeline-current.d.ts.map +1 -0
- package/dist/tools/pipeline-current.js +16 -0
- package/dist/tools/pipeline-current.js.map +1 -0
- package/dist/tools/pipeline-list.d.ts +3 -0
- package/dist/tools/pipeline-list.d.ts.map +1 -0
- package/dist/tools/pipeline-list.js +16 -0
- package/dist/tools/pipeline-list.js.map +1 -0
- package/dist/tools/pipeline-open.d.ts +3 -0
- package/dist/tools/pipeline-open.d.ts.map +1 -0
- package/dist/tools/pipeline-open.js +27 -0
- package/dist/tools/pipeline-open.js.map +1 -0
- package/dist/tools/pipeline-show.d.ts +3 -0
- package/dist/tools/pipeline-show.d.ts.map +1 -0
- package/dist/tools/pipeline-show.js +22 -0
- package/dist/tools/pipeline-show.js.map +1 -0
- package/dist/tools/session-end-reflect.d.ts +3 -0
- package/dist/tools/session-end-reflect.d.ts.map +1 -0
- package/dist/tools/session-end-reflect.js +25 -0
- package/dist/tools/session-end-reflect.js.map +1 -0
- package/dist/tools/session-end.d.ts.map +1 -1
- package/dist/tools/session-end.js +49 -9
- 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 +17 -3
- package/dist/tools/session-start.js.map +1 -1
- package/dist/tools/skill-list.d.ts +3 -0
- package/dist/tools/skill-list.d.ts.map +1 -0
- package/dist/tools/skill-list.js +16 -0
- package/dist/tools/skill-list.js.map +1 -0
- package/dist/tools/skill-recall.d.ts +3 -0
- package/dist/tools/skill-recall.d.ts.map +1 -0
- package/dist/tools/skill-recall.js +20 -0
- package/dist/tools/skill-recall.js.map +1 -0
- package/dist/tools/skill-write.d.ts +3 -0
- package/dist/tools/skill-write.d.ts.map +1 -0
- package/dist/tools/skill-write.js +31 -0
- package/dist/tools/skill-write.js.map +1 -0
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -13,6 +13,19 @@ import { register as registerProjectBoard } from "./tools/project-board.js";
|
|
|
13
13
|
import { register as registerProjectStatus } from "./tools/project-status.js";
|
|
14
14
|
import { register as registerBootstrap } from "./tools/bootstrap.js";
|
|
15
15
|
import { register as registerMemoryQuery } from "./tools/memory-query.js";
|
|
16
|
+
// ── Pipeline tools (experimental — project narrative spine) ──────────────
|
|
17
|
+
import { register as registerPipelineOpen } from "./tools/pipeline-open.js";
|
|
18
|
+
import { register as registerPipelineClose } from "./tools/pipeline-close.js";
|
|
19
|
+
import { register as registerPipelineList } from "./tools/pipeline-list.js";
|
|
20
|
+
import { register as registerPipelineCurrent } from "./tools/pipeline-current.js";
|
|
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";
|
|
16
29
|
// ── Legacy tools (still importable for SDK/CLI, not registered by default) ──
|
|
17
30
|
// DEPRECATED v3.4: use session_start instead
|
|
18
31
|
// import { register as registerJournalColdStart } from "./tools/journal-cold-start.js";
|
|
@@ -97,6 +110,19 @@ registerRecall(server);
|
|
|
97
110
|
registerSessionEnd(server);
|
|
98
111
|
registerCheck(server);
|
|
99
112
|
registerMemoryQuery(server);
|
|
113
|
+
// Pipeline tools — always on, project narrative spine
|
|
114
|
+
registerPipelineOpen(server);
|
|
115
|
+
registerPipelineClose(server);
|
|
116
|
+
registerPipelineList(server);
|
|
117
|
+
registerPipelineCurrent(server);
|
|
118
|
+
registerPipelineShow(server);
|
|
119
|
+
// Procedural memory layer (V10)
|
|
120
|
+
registerSkillWrite(server);
|
|
121
|
+
registerSkillRecall(server);
|
|
122
|
+
registerSkillList(server);
|
|
123
|
+
// Dashboard + reflection
|
|
124
|
+
registerDashboardExport(server);
|
|
125
|
+
registerSessionEndReflect(server);
|
|
100
126
|
// ── Extended tools (--full mode only) ────────────────────────────────────────
|
|
101
127
|
// Use when you need project status boards, context caching, or first-time bootstrap.
|
|
102
128
|
// Start server with: npx agent-recall-mcp --full
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard-export.d.ts","sourceRoot":"","sources":["../../src/tools/dashboard-export.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAoBhD"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as z from "zod/v4";
|
|
2
|
+
import { dashboardExport } from "agent-recall-core";
|
|
3
|
+
export function register(server) {
|
|
4
|
+
server.registerTool("dashboard_export", {
|
|
5
|
+
title: "Export Memory Dashboard (Agent-Readable + Human-Readable)",
|
|
6
|
+
description: "Generate ~/.agent-recall/dashboard.json — a structured all-projects snapshot suitable for " +
|
|
7
|
+
"agents to inspect their own memory state in ONE call. Includes per-project pipeline, " +
|
|
8
|
+
"correction KPIs (precision / heeded / recurrence), top insights, room salience, skill " +
|
|
9
|
+
"count, and a canonical naming index. Schema version 1, stable.",
|
|
10
|
+
inputSchema: {
|
|
11
|
+
format: z.enum(["json", "both"]).default("json"),
|
|
12
|
+
inline_index_limit: z.number().int().min(0).max(2000).default(200),
|
|
13
|
+
},
|
|
14
|
+
}, async (args) => {
|
|
15
|
+
const result = await dashboardExport(args);
|
|
16
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=dashboard-export.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard-export.js","sourceRoot":"","sources":["../../src/tools/dashboard-export.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,2DAA2D;QAClE,WAAW,EACT,4FAA4F;YAC5F,uFAAuF;YACvF,wFAAwF;YACxF,gEAAgE;QAClE,WAAW,EAAE;YACX,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;YAChD,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;SACnE;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;QAC3C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACzF,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline-close.d.ts","sourceRoot":"","sources":["../../src/tools/pipeline-close.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAmChD"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import * as z from "zod/v4";
|
|
2
|
+
import { pipelineClose } from "agent-recall-core";
|
|
3
|
+
const TEXT_FIELD = z.string().min(1).max(8192);
|
|
4
|
+
const REF_LIST = z.array(z.string().max(200)).max(50);
|
|
5
|
+
export function register(server) {
|
|
6
|
+
server.registerTool("pipeline_close", {
|
|
7
|
+
title: "Close Active Pipeline Phase",
|
|
8
|
+
description: "Close the currently active project phase with the three reflection fields: " +
|
|
9
|
+
"what_was_hard, how_solved, synthesis (one-sentence reusable lesson). " +
|
|
10
|
+
"Set status='abandoned' if the phase was given up, 'pivoted' if direction reversed.",
|
|
11
|
+
inputSchema: {
|
|
12
|
+
what_was_hard: TEXT_FIELD.describe("The difficulty, gotcha, or reversed hypothesis encountered."),
|
|
13
|
+
how_solved: TEXT_FIELD.describe("Concrete action(s) that closed the phase."),
|
|
14
|
+
synthesis: TEXT_FIELD.describe("One-sentence reusable lesson or watershed insight."),
|
|
15
|
+
status: z
|
|
16
|
+
.enum(["closed", "abandoned", "pivoted"])
|
|
17
|
+
.default("closed")
|
|
18
|
+
.describe("Final phase status. Default 'closed'."),
|
|
19
|
+
related_journal: REF_LIST.optional().describe("Optional journal date refs (e.g. ['2026-05-29'])."),
|
|
20
|
+
related_insights: REF_LIST.optional().describe("Optional insight slug refs."),
|
|
21
|
+
project: z.string().max(100).default("auto"),
|
|
22
|
+
},
|
|
23
|
+
}, async ({ what_was_hard, how_solved, synthesis, status, related_journal, related_insights, project }) => {
|
|
24
|
+
const result = await pipelineClose({
|
|
25
|
+
what_was_hard,
|
|
26
|
+
how_solved,
|
|
27
|
+
synthesis,
|
|
28
|
+
status,
|
|
29
|
+
related_journal,
|
|
30
|
+
related_insights,
|
|
31
|
+
project,
|
|
32
|
+
});
|
|
33
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=pipeline-close.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline-close.js","sourceRoot":"","sources":["../../src/tools/pipeline-close.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC/C,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAEtD,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,6BAA6B;QACpC,WAAW,EACT,6EAA6E;YAC7E,uEAAuE;YACvE,oFAAoF;QACtF,WAAW,EAAE;YACX,aAAa,EAAE,UAAU,CAAC,QAAQ,CAAC,6DAA6D,CAAC;YACjG,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,2CAA2C,CAAC;YAC5E,SAAS,EAAE,UAAU,CAAC,QAAQ,CAAC,oDAAoD,CAAC;YACpF,MAAM,EAAE,CAAC;iBACN,IAAI,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;iBACxC,OAAO,CAAC,QAAQ,CAAC;iBACjB,QAAQ,CAAC,uCAAuC,CAAC;YACpD,eAAe,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;YAClG,gBAAgB,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;YAC7E,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;SAC7C;KACF,EACD,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE,EAAE;QACrG,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;YACjC,aAAa;YACb,UAAU;YACV,SAAS;YACT,MAAM;YACN,eAAe;YACf,gBAAgB;YAChB,OAAO;SACR,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACzF,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline-current.d.ts","sourceRoot":"","sources":["../../src/tools/pipeline-current.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiBhD"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as z from "zod/v4";
|
|
2
|
+
import { pipelineCurrent } from "agent-recall-core";
|
|
3
|
+
export function register(server) {
|
|
4
|
+
server.registerTool("pipeline_current", {
|
|
5
|
+
title: "Get Currently Active Pipeline Phase",
|
|
6
|
+
description: "Return the full content of the currently active project phase, or null if none is open. " +
|
|
7
|
+
"Use to ground an agent in 'where the project is right now' at the start of a session.",
|
|
8
|
+
inputSchema: {
|
|
9
|
+
project: z.string().default("auto"),
|
|
10
|
+
},
|
|
11
|
+
}, async ({ project }) => {
|
|
12
|
+
const result = await pipelineCurrent({ project });
|
|
13
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=pipeline-current.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline-current.js","sourceRoot":"","sources":["../../src/tools/pipeline-current.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,qCAAqC;QAC5C,WAAW,EACT,0FAA0F;YAC1F,uFAAuF;QACzF,WAAW,EAAE;YACX,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;SACpC;KACF,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACpB,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAClD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACzF,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline-list.d.ts","sourceRoot":"","sources":["../../src/tools/pipeline-list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiBhD"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as z from "zod/v4";
|
|
2
|
+
import { pipelineList } from "agent-recall-core";
|
|
3
|
+
export function register(server) {
|
|
4
|
+
server.registerTool("pipeline_list", {
|
|
5
|
+
title: "List Project Pipeline Phases",
|
|
6
|
+
description: "List all project phases (milestones) in order — the project's narrative spine. " +
|
|
7
|
+
"Returns order, phase name, status, opened/closed timestamps, and synthesis (when closed).",
|
|
8
|
+
inputSchema: {
|
|
9
|
+
project: z.string().default("auto"),
|
|
10
|
+
},
|
|
11
|
+
}, async ({ project }) => {
|
|
12
|
+
const result = await pipelineList({ project });
|
|
13
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=pipeline-list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline-list.js","sourceRoot":"","sources":["../../src/tools/pipeline-list.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,8BAA8B;QACrC,WAAW,EACT,iFAAiF;YACjF,2FAA2F;QAC7F,WAAW,EAAE;YACX,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;SACpC;KACF,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACpB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAC/C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACzF,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline-open.d.ts","sourceRoot":"","sources":["../../src/tools/pipeline-open.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAYzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAwBhD"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as z from "zod/v4";
|
|
2
|
+
import { pipelineOpen } from "agent-recall-core";
|
|
3
|
+
const PHASE_NAME = z
|
|
4
|
+
.string()
|
|
5
|
+
.min(1, "phase_name cannot be empty")
|
|
6
|
+
.max(80, "phase_name must be ≤80 chars")
|
|
7
|
+
.describe("Short human-readable phase name (e.g. 'Cascade Repair').");
|
|
8
|
+
const TEXT_FIELD = z.string().min(1).max(8192);
|
|
9
|
+
export function register(server) {
|
|
10
|
+
server.registerTool("pipeline_open", {
|
|
11
|
+
title: "Open Project Pipeline Phase",
|
|
12
|
+
description: "Open a new project phase (milestone) in the project's narrative spine. " +
|
|
13
|
+
"Each phase captures Goal → What was hard → How solved → Synthesis. " +
|
|
14
|
+
"If another phase is already active, pass close_previous_with_synthesis to chain-close it.",
|
|
15
|
+
inputSchema: {
|
|
16
|
+
phase_name: PHASE_NAME,
|
|
17
|
+
goal: TEXT_FIELD.describe("1-3 sentences describing what this phase aims to accomplish."),
|
|
18
|
+
close_previous_with_synthesis: TEXT_FIELD.optional().describe("If a previous phase is still active, auto-close it with this synthesis sentence."),
|
|
19
|
+
auto: z.boolean().default(false).describe("Mark this phase as auto-drafted (background process). Default false."),
|
|
20
|
+
project: z.string().max(100).default("auto"),
|
|
21
|
+
},
|
|
22
|
+
}, async ({ phase_name, goal, close_previous_with_synthesis, auto, project }) => {
|
|
23
|
+
const result = await pipelineOpen({ phase_name, goal, close_previous_with_synthesis, auto, project });
|
|
24
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=pipeline-open.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline-open.js","sourceRoot":"","sources":["../../src/tools/pipeline-open.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,UAAU,GAAG,CAAC;KACjB,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,EAAE,4BAA4B,CAAC;KACpC,GAAG,CAAC,EAAE,EAAE,8BAA8B,CAAC;KACvC,QAAQ,CAAC,0DAA0D,CAAC,CAAC;AAExE,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAE/C,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,6BAA6B;QACpC,WAAW,EACT,yEAAyE;YACzE,qEAAqE;YACrE,2FAA2F;QAC7F,WAAW,EAAE;YACX,UAAU,EAAE,UAAU;YACtB,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,8DAA8D,CAAC;YACzF,6BAA6B,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAC3D,kFAAkF,CACnF;YACD,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,sEAAsE,CAAC;YACjH,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;SAC7C;KACF,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,6BAA6B,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;QAC3E,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,6BAA6B,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACtG,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACzF,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline-show.d.ts","sourceRoot":"","sources":["../../src/tools/pipeline-show.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAyBhD"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as z from "zod/v4";
|
|
2
|
+
import { pipelineShow } from "agent-recall-core";
|
|
3
|
+
export function register(server) {
|
|
4
|
+
server.registerTool("pipeline_show", {
|
|
5
|
+
title: "Show Project Pipeline / Narrative Spine",
|
|
6
|
+
description: "Render the project's narrative spine on demand — phase count, day span, sessions, " +
|
|
7
|
+
"corrections, and a chronological view of all phases (closed + abandoned + active) with goal, " +
|
|
8
|
+
"what was hard, how solved, and synthesis for the last 3. " +
|
|
9
|
+
"Lazy reconstruction: reads existing pipeline files + journal stats, no writes, no LLM. " +
|
|
10
|
+
"Call this when you (or the user) want to see 'where is the project right now?'.",
|
|
11
|
+
inputSchema: {
|
|
12
|
+
project: z.string().max(100).default("auto"),
|
|
13
|
+
detail_last_n: z.number().int().min(0).max(50).default(3).describe("Render full 'what was hard' + 'how solved' for the last N phases. Default 3."),
|
|
14
|
+
},
|
|
15
|
+
}, async ({ project, detail_last_n }) => {
|
|
16
|
+
const result = await pipelineShow({ project, detail_last_n });
|
|
17
|
+
// Return ONLY the rendered view as primary content. Caller can call
|
|
18
|
+
// pipeline_list / pipeline_current if they need structured JSON.
|
|
19
|
+
return { content: [{ type: "text", text: result.view }] };
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=pipeline-show.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline-show.js","sourceRoot":"","sources":["../../src/tools/pipeline-show.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,yCAAyC;QAChD,WAAW,EACT,oFAAoF;YACpF,+FAA+F;YAC/F,2DAA2D;YAC3D,yFAAyF;YACzF,iFAAiF;QACnF,WAAW,EAAE;YACX,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;YAC5C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAChE,8EAA8E,CAC/E;SACF;KACF,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE;QACnC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;QAC9D,oEAAoE;QACpE,iEAAiE;QACjE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;IACrE,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-end-reflect.d.ts","sourceRoot":"","sources":["../../src/tools/session-end-reflect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA0BhD"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as z from "zod/v4";
|
|
2
|
+
import { sessionEndReflect } from "agent-recall-core";
|
|
3
|
+
export function register(server) {
|
|
4
|
+
server.registerTool("session_end_reflect", {
|
|
5
|
+
title: "Reflect — Park-style aggregation pass",
|
|
6
|
+
description: "Bundle recent journals + active corrections + recent phase syntheses into a " +
|
|
7
|
+
"ready-to-use prompt the calling LLM can read to produce: (1) three high-level questions " +
|
|
8
|
+
"this period raised, (2) procedural skills to crystallize via skill_write, (3) cross-session " +
|
|
9
|
+
"patterns worth promoting, (4) low-precision corrections to archive. " +
|
|
10
|
+
"Returns the structured bundle + prompt — does NOT call an LLM itself.",
|
|
11
|
+
inputSchema: {
|
|
12
|
+
lookback_days: z.number().int().min(1).max(60).default(7),
|
|
13
|
+
project: z.string().max(100).default("auto"),
|
|
14
|
+
},
|
|
15
|
+
}, async (args) => {
|
|
16
|
+
const result = await sessionEndReflect(args);
|
|
17
|
+
return {
|
|
18
|
+
content: [
|
|
19
|
+
{ type: "text", text: result.prompt },
|
|
20
|
+
{ type: "text", text: JSON.stringify({ success: result.success, project: result.project, next_actions: result.next_actions, bundle_size: { journals: result.bundle.recent_journals.length, corrections: result.bundle.active_corrections.length, phases: result.bundle.recent_phases.length } }, null, 2) },
|
|
21
|
+
],
|
|
22
|
+
};
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=session-end-reflect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-end-reflect.js","sourceRoot":"","sources":["../../src/tools/session-end-reflect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,KAAK,EAAE,uCAAuC;QAC9C,WAAW,EACT,8EAA8E;YAC9E,0FAA0F;YAC1F,8FAA8F;YAC9F,sEAAsE;YACtE,uEAAuE;QACzE,WAAW,EAAE;YACX,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACzD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;SAC7C;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC7C,OAAO;YACL,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE;gBAC9C,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;aACrT;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-end.d.ts","sourceRoot":"","sources":["../../src/tools/session-end.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"session-end.d.ts","sourceRoot":"","sources":["../../src/tools/session-end.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAgCzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqFhD"}
|
|
@@ -1,22 +1,59 @@
|
|
|
1
1
|
import * as z from "zod/v4";
|
|
2
2
|
import { sessionEnd } from "agent-recall-core";
|
|
3
|
+
const TEXT_FIELD = z.string().min(1).max(8192);
|
|
4
|
+
const closePhaseSchema = z
|
|
5
|
+
.object({
|
|
6
|
+
what_was_hard: TEXT_FIELD,
|
|
7
|
+
how_solved: TEXT_FIELD,
|
|
8
|
+
synthesis: TEXT_FIELD,
|
|
9
|
+
status: z.enum(["closed", "abandoned", "pivoted"]).default("closed"),
|
|
10
|
+
related_journal: z.array(z.string().max(200)).max(50).optional(),
|
|
11
|
+
related_insights: z.array(z.string().max(200)).max(50).optional(),
|
|
12
|
+
})
|
|
13
|
+
.optional()
|
|
14
|
+
.describe("Close the currently active pipeline phase as part of this save. " +
|
|
15
|
+
"Provide all three reflection fields explicitly — never auto-generated.");
|
|
16
|
+
const openPhaseSchema = z
|
|
17
|
+
.object({
|
|
18
|
+
phase_name: z.string().min(1).max(80),
|
|
19
|
+
goal: TEXT_FIELD,
|
|
20
|
+
})
|
|
21
|
+
.optional()
|
|
22
|
+
.describe("Open a new pipeline phase as part of this save (e.g. when a watershed " +
|
|
23
|
+
"session pivots into the next strategic direction).");
|
|
3
24
|
export function register(server) {
|
|
4
25
|
server.registerTool("session_end", {
|
|
5
26
|
title: "End Session",
|
|
6
|
-
description: "Use when the user asks to save, checkpoint, summarize, end, retain, or persist the current session."
|
|
27
|
+
description: "Use when the user asks to save, checkpoint, summarize, end, retain, or persist the current session. " +
|
|
28
|
+
"Optionally pass close_phase / open_phase to update the project pipeline narrative spine in the same call.",
|
|
7
29
|
inputSchema: {
|
|
8
|
-
summary: z
|
|
9
|
-
|
|
30
|
+
summary: z
|
|
31
|
+
.string()
|
|
32
|
+
.describe("What happened this session. Simple session: 2-3 sentences. Multi-phase session: one paragraph per completed phase (e.g. 'Phase 1 — Name: what happened. Phase 2 — Name: what happened. Decisions: X. Blockers: Y.'). Never compress a multi-phase session to 2 sentences — it makes the journal useless."),
|
|
33
|
+
insights: z
|
|
34
|
+
.array(z.object({
|
|
10
35
|
title: z.string(),
|
|
11
36
|
evidence: z.string(),
|
|
12
37
|
applies_when: z.array(z.string()),
|
|
13
38
|
severity: z.enum(["critical", "important", "minor"]).default("important"),
|
|
14
|
-
}))
|
|
39
|
+
}))
|
|
40
|
+
.optional()
|
|
41
|
+
.describe("Insights learned this session."),
|
|
15
42
|
trajectory: z.string().optional().describe("Where is the work heading next."),
|
|
43
|
+
close_phase: closePhaseSchema,
|
|
44
|
+
open_phase: openPhaseSchema,
|
|
16
45
|
project: z.string().default("auto"),
|
|
17
46
|
},
|
|
18
|
-
}, async ({ summary, insights, trajectory, project }) => {
|
|
19
|
-
const result = await sessionEnd({
|
|
47
|
+
}, async ({ summary, insights, trajectory, close_phase, open_phase, project }) => {
|
|
48
|
+
const result = await sessionEnd({
|
|
49
|
+
summary,
|
|
50
|
+
insights,
|
|
51
|
+
trajectory,
|
|
52
|
+
close_phase,
|
|
53
|
+
open_phase,
|
|
54
|
+
project,
|
|
55
|
+
saveType: "arsave",
|
|
56
|
+
});
|
|
20
57
|
if (!result.success) {
|
|
21
58
|
return { content: [{ type: "text", text: JSON.stringify(result) }], isError: true };
|
|
22
59
|
}
|
|
@@ -26,6 +63,8 @@ export function register(server) {
|
|
|
26
63
|
insights_processed: result.insights_processed,
|
|
27
64
|
awareness_updated: result.awareness_updated,
|
|
28
65
|
palace_consolidated: result.palace_consolidated,
|
|
66
|
+
pipeline_closed: result.pipeline_closed,
|
|
67
|
+
pipeline_opened: result.pipeline_opened,
|
|
29
68
|
});
|
|
30
69
|
// Prepend advisory quality warnings if any insights failed quality checks
|
|
31
70
|
if (result.quality_warnings && result.quality_warnings.length > 0) {
|
|
@@ -44,11 +83,12 @@ export function register(server) {
|
|
|
44
83
|
],
|
|
45
84
|
};
|
|
46
85
|
}
|
|
47
|
-
|
|
48
|
-
|
|
86
|
+
return {
|
|
87
|
+
content: [
|
|
49
88
|
{ type: "text", text: result.card },
|
|
50
89
|
{ type: "text", text: jsonPayload },
|
|
51
|
-
]
|
|
90
|
+
],
|
|
91
|
+
};
|
|
52
92
|
});
|
|
53
93
|
}
|
|
54
94
|
//# sourceMappingURL=session-end.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-end.js","sourceRoot":"","sources":["../../src/tools/session-end.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"session-end.js","sourceRoot":"","sources":["../../src/tools/session-end.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-start.d.ts","sourceRoot":"","sources":["../../src/tools/session-start.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA8HzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"session-start.d.ts","sourceRoot":"","sources":["../../src/tools/session-start.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA8HzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA4BhD"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as z from "zod/v4";
|
|
2
|
-
import { sessionStart } from "agent-recall-core";
|
|
2
|
+
import { sessionStart, sessionStartLite } from "agent-recall-core";
|
|
3
3
|
/** Truncate to nearest word boundary */
|
|
4
4
|
function trunc(s, n) {
|
|
5
5
|
if (s.length <= n)
|
|
@@ -110,13 +110,27 @@ function formatVerbose(result) {
|
|
|
110
110
|
export function register(server) {
|
|
111
111
|
server.registerTool("session_start", {
|
|
112
112
|
title: "Start Session",
|
|
113
|
-
description: "Use when the user asks to start, load, continue, resume, or open memory for a project.",
|
|
113
|
+
description: "Use when the user asks to start, load, continue, resume, or open memory for a project. Set mode='lite' for a ≤500-token briefing (good for fresh conversations where the agent will pull memory on demand via recall/memory_query/skill_recall).",
|
|
114
114
|
inputSchema: {
|
|
115
115
|
project: z.string().default("auto"),
|
|
116
116
|
context: z.string().optional().describe("Optional context for matching cross-project insights"),
|
|
117
117
|
verbose: z.boolean().default(false).describe("Set true to get full JSON context instead of terse summary"),
|
|
118
|
+
mode: z.enum(["full", "lite"]).default("full").describe("'lite' = ≤500-token sketch; agent must pull on demand. 'full' = current rich payload."),
|
|
118
119
|
},
|
|
119
|
-
}, async ({ project, context, verbose }) => {
|
|
120
|
+
}, async ({ project, context, verbose, mode }) => {
|
|
121
|
+
if (mode === "lite") {
|
|
122
|
+
const lite = await sessionStartLite({ project });
|
|
123
|
+
const text = [
|
|
124
|
+
`AgentRecall (lite) — ${lite.project} sessions: ${lite.total_sessions} last: ${lite.last_session_date ?? "—"}`,
|
|
125
|
+
lite.identity_oneliner ? `Intention: ${lite.identity_oneliner}` : "",
|
|
126
|
+
lite.active_phase ? `▶ Active phase: ${lite.active_phase}${lite.active_phase_goal ? ` — ${lite.active_phase_goal}` : ""}` : "",
|
|
127
|
+
lite.open_corrections_p0_count > 0 ? `⛔ ${lite.open_corrections_p0_count} P0 corrections active — call recall() if working on related code.` : "",
|
|
128
|
+
lite.total_skills > 0 ? `🛠 ${lite.total_skills} skills available — call skill_recall({intent}) before non-trivial tasks.` : "",
|
|
129
|
+
"",
|
|
130
|
+
lite.hint,
|
|
131
|
+
].filter(Boolean).join("\n");
|
|
132
|
+
return { content: [{ type: "text", text }] };
|
|
133
|
+
}
|
|
120
134
|
const result = await sessionStart({ project, context });
|
|
121
135
|
const text = verbose ? formatVerbose(result) : formatTerse(result);
|
|
122
136
|
return { content: [{ type: "text", text }] };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-start.js","sourceRoot":"","sources":["../../src/tools/session-start.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,YAAY,EAA2B,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"session-start.js","sourceRoot":"","sources":["../../src/tools/session-start.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-list.d.ts","sourceRoot":"","sources":["../../src/tools/skill-list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiBhD"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as z from "zod/v4";
|
|
2
|
+
import { skillList } from "agent-recall-core";
|
|
3
|
+
export function register(server) {
|
|
4
|
+
server.registerTool("skill_list", {
|
|
5
|
+
title: "List All Procedural Skills",
|
|
6
|
+
description: "List every procedural skill saved for the project. Returns slug/name/topic/triggers — " +
|
|
7
|
+
"use to browse the available how-to library.",
|
|
8
|
+
inputSchema: {
|
|
9
|
+
project: z.string().max(100).default("auto"),
|
|
10
|
+
},
|
|
11
|
+
}, async (args) => {
|
|
12
|
+
const result = await skillList(args);
|
|
13
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=skill-list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-list.js","sourceRoot":"","sources":["../../src/tools/skill-list.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,KAAK,EAAE,4BAA4B;QACnC,WAAW,EACT,wFAAwF;YACxF,6CAA6C;QAC/C,WAAW,EAAE;YACX,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;SAC7C;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACzF,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-recall.d.ts","sourceRoot":"","sources":["../../src/tools/skill-recall.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqBhD"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as z from "zod/v4";
|
|
2
|
+
import { skillRecall } from "agent-recall-core";
|
|
3
|
+
export function register(server) {
|
|
4
|
+
server.registerTool("skill_recall", {
|
|
5
|
+
title: "Recall Procedural Skill by Intent",
|
|
6
|
+
description: "Find IF-THEN production rules matching your current intent. Call this before starting a " +
|
|
7
|
+
"non-trivial task — if a past procedure matches, follow its steps instead of re-deriving. " +
|
|
8
|
+
"Returns ranked skills with steps, postconditions, and pitfalls. Trigger-keyword + topic " +
|
|
9
|
+
"match (no LLM call, deterministic ranking).",
|
|
10
|
+
inputSchema: {
|
|
11
|
+
intent: z.string().min(3).max(500).describe("What you're about to do (e.g. 'set up Cloudflare DNS for new domain')."),
|
|
12
|
+
limit: z.number().int().min(1).max(20).default(5),
|
|
13
|
+
project: z.string().max(100).default("auto"),
|
|
14
|
+
},
|
|
15
|
+
}, async (args) => {
|
|
16
|
+
const result = await skillRecall(args);
|
|
17
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=skill-recall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-recall.js","sourceRoot":"","sources":["../../src/tools/skill-recall.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,KAAK,EAAE,mCAAmC;QAC1C,WAAW,EACT,0FAA0F;YAC1F,2FAA2F;YAC3F,0FAA0F;YAC1F,6CAA6C;QAC/C,WAAW,EAAE;YACX,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,wEAAwE,CAAC;YACrH,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACjD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;SAC7C;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;QACvC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACzF,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-write.d.ts","sourceRoot":"","sources":["../../src/tools/skill-write.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAoChD"}
|