@lore-co/mcp 0.2.22 → 0.2.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -23,7 +23,7 @@ Hosts that do not use the Lore CLI can configure the connection explicitly:
23
23
  "mcpServers": {
24
24
  "lore": {
25
25
  "command": "npx",
26
- "args": ["-y", "@lore-co/mcp@0.2.22"],
26
+ "args": ["-y", "@lore-co/mcp@0.2.24"],
27
27
  "env": {
28
28
  "LORE_API_URL": "https://your-lore.example.com",
29
29
  "LORE_WORKSPACE_TOKEN": "YOUR_WORKSPACE_TOKEN"
@@ -45,20 +45,52 @@ The default tool set is read-only:
45
45
 
46
46
  - `prepare_context`
47
47
  - `ask_lore`
48
+ - `chat_lore` (read-only discussion; prose answers need the server's extraction provider)
48
49
  - `search_learnings`
49
50
  - `get_learning`
51
+ - `list_learnings`
52
+ - `list_proposals`
53
+ - `get_proposal`
54
+ - `list_sessions`
50
55
  - `share_lore`
51
56
  - `search_approaches`
57
+ - `get_approach`
52
58
  - `prepare_approach`
53
59
  - `list_skills`
54
60
  - `read_skill`
55
61
 
56
62
  To register `remember_learning`, `correct_learning`, `forget_learning`, `attach_image`,
57
- `draft_approach`, `revise_approach`, `save_approach`, `use_approach`,
63
+ `decide_proposal`, `draft_approach`, `revise_approach`, `save_approach`, `use_approach`,
58
64
  `report_approach_run`, `decide_approach_run`, `preview_skill`, and `propose_skill`, set
59
65
  `LORE_MCP_WRITE_TOOLS=true`. Host instructions should still require explicit
60
66
  user intent before every shared-knowledge mutation.
61
67
 
68
+ `remember_learning` and `correct_learning` record the source agent as
69
+ `LORE_MCP_AGENT`, which `lore connect` sets to the host it registered the
70
+ server for (`claude`, `codex`, `cursor`, `opencode`, `copilot-cli`,
71
+ `copilot-vscode`, or the `--agent-id` of a generic agent). `ask_lore` and
72
+ `search_learnings` retrieve as that host too, so knowledge saved for one agent
73
+ reaches it. A caller's `agent` argument is ignored then: models tend to pass
74
+ their model name. It counts only when the host is unnamed, that is without
75
+ `LORE_MCP_AGENT` (falling back to `mcp`) or with the default `generic`.
76
+
77
+ A `remember_learning` save, including an import, that names no `repo`,
78
+ `organization`, or `project` is limited to the current folder's Git
79
+ repository, as `ask_lore` and `search_learnings` are. Pass
80
+ `workspaceWide: true` to save for every repository instead. Outside a Git
81
+ checkout the save stays workspace-wide. `lore remember` takes no repository
82
+ from the folder: without scope flags it saves workspace-wide.
83
+
84
+ The listing tools mirror the member's dashboard views so an agent can run them
85
+ without a shell: `list_learnings` is `lore learnings`, `list_proposals`,
86
+ `get_proposal`, and `decide_proposal` are `lore review`, and `list_sessions`
87
+ returns the ids `share_lore`, `ask_lore`, and `lore resume --session` accept.
88
+ `list_proposals` and `get_proposal` work on any workspace connection;
89
+ `decide_proposal` needs a workspace owner or admin connected with
90
+ `lore connect --login` and refuses a proposal with an open conflict; those are
91
+ decided in the dashboard, where the current learning can be replaced or kept
92
+ alongside.
93
+
62
94
  Approaches turn reviewed work into reusable steps with inputs, prerequisites,
63
95
  and result checks. They appear inside **Learnings**. A receiving agent uses its
64
96
  ordinary tools to perform the work and records the outcome against the exact
package/dist/index.d.ts CHANGED
@@ -14,7 +14,7 @@ export declare const MemorySearchInputSchema: z.ZodObject<{
14
14
  repo: z.ZodOptional<z.ZodString>;
15
15
  path: z.ZodOptional<z.ZodString>;
16
16
  component: z.ZodOptional<z.ZodString>;
17
- agent: z.ZodDefault<z.ZodString>;
17
+ agent: z.ZodOptional<z.ZodString>;
18
18
  task: z.ZodString;
19
19
  scope: z.ZodOptional<z.ZodObject<{
20
20
  agent: z.ZodOptional<z.ZodString>;
@@ -38,6 +38,7 @@ export declare const AskLoreInputSchema: z.ZodObject<{
38
38
  sessionLimit: z.ZodOptional<z.ZodNumber>;
39
39
  }, z.core.$strict>;
40
40
  export declare const MemoryRememberInputSchema: z.ZodObject<{
41
+ workspaceWide: z.ZodOptional<z.ZodLiteral<true>>;
41
42
  category: z.ZodOptional<z.ZodEnum<{
42
43
  architecture: "architecture";
43
44
  convention: "convention";
@@ -49,7 +50,7 @@ export declare const MemoryRememberInputSchema: z.ZodObject<{
49
50
  review_feedback: "review_feedback";
50
51
  other: "other";
51
52
  }>>;
52
- agent: z.ZodDefault<z.ZodString>;
53
+ agent: z.ZodOptional<z.ZodString>;
53
54
  sessionId: z.ZodOptional<z.ZodString>;
54
55
  organization: z.ZodOptional<z.ZodString>;
55
56
  project: z.ZodOptional<z.ZodString>;
@@ -84,12 +85,77 @@ export declare const MemoryCorrectInputSchema: z.ZodObject<{
84
85
  review_feedback: "review_feedback";
85
86
  other: "other";
86
87
  }>>;
87
- agent: z.ZodDefault<z.ZodString>;
88
+ agent: z.ZodOptional<z.ZodString>;
88
89
  sessionId: z.ZodOptional<z.ZodString>;
89
90
  }, z.core.$strict>;
90
91
  export declare const MemoryForgetInputSchema: z.ZodObject<{
91
92
  id: z.ZodUUID;
92
93
  }, z.core.$strict>;
94
+ export declare const PrepareApproachInputSchema: z.ZodObject<{
95
+ repo: z.ZodOptional<z.ZodString>;
96
+ sessionId: z.ZodOptional<z.ZodUUID>;
97
+ externalSessionId: z.ZodOptional<z.ZodString>;
98
+ agent: z.ZodOptional<z.ZodString>;
99
+ sessionIds: z.ZodOptional<z.ZodArray<z.ZodUUID>>;
100
+ learningIds: z.ZodOptional<z.ZodArray<z.ZodUUID>>;
101
+ notes: z.ZodOptional<z.ZodString>;
102
+ task: z.ZodOptional<z.ZodString>;
103
+ }, z.core.$strict>;
104
+ export declare const ListProposalsInputSchema: z.ZodObject<{
105
+ limit: z.ZodDefault<z.ZodNumber>;
106
+ offset: z.ZodDefault<z.ZodNumber>;
107
+ repo: z.ZodOptional<z.ZodString>;
108
+ allRepositories: z.ZodOptional<z.ZodBoolean>;
109
+ }, z.core.$strict>;
110
+ export declare const ProposalIdInputSchema: z.ZodObject<{
111
+ id: z.ZodUUID;
112
+ }, z.core.$strict>;
113
+ export declare const DecideProposalInputSchema: z.ZodObject<{
114
+ id: z.ZodUUID;
115
+ decision: z.ZodEnum<{
116
+ approve: "approve";
117
+ decline: "decline";
118
+ }>;
119
+ reason: z.ZodOptional<z.ZodString>;
120
+ }, z.core.$strict>;
121
+ export declare const ListLearningsInputSchema: z.ZodObject<{
122
+ status: z.ZodOptional<z.ZodArray<z.ZodEnum<{
123
+ active: "active";
124
+ proposed: "proposed";
125
+ suppressed: "suppressed";
126
+ superseded: "superseded";
127
+ deleted: "deleted";
128
+ }>>>;
129
+ category: z.ZodOptional<z.ZodArray<z.ZodEnum<{
130
+ architecture: "architecture";
131
+ convention: "convention";
132
+ correction: "correction";
133
+ gotcha: "gotcha";
134
+ known_gotcha: "known_gotcha";
135
+ deprecated: "deprecated";
136
+ behavior: "behavior";
137
+ review_feedback: "review_feedback";
138
+ other: "other";
139
+ }>>>;
140
+ query: z.ZodOptional<z.ZodString>;
141
+ limit: z.ZodDefault<z.ZodNumber>;
142
+ offset: z.ZodDefault<z.ZodNumber>;
143
+ repo: z.ZodOptional<z.ZodString>;
144
+ allRepositories: z.ZodOptional<z.ZodBoolean>;
145
+ }, z.core.$strict>;
146
+ export declare const ListSessionsInputSchema: z.ZodObject<{
147
+ query: z.ZodOptional<z.ZodString>;
148
+ agent: z.ZodOptional<z.ZodString>;
149
+ view: z.ZodOptional<z.ZodEnum<{
150
+ mine: "mine";
151
+ shared: "shared";
152
+ accessible: "accessible";
153
+ }>>;
154
+ limit: z.ZodDefault<z.ZodNumber>;
155
+ offset: z.ZodDefault<z.ZodNumber>;
156
+ repo: z.ZodOptional<z.ZodString>;
157
+ allRepositories: z.ZodOptional<z.ZodBoolean>;
158
+ }, z.core.$strict>;
93
159
  export interface CreateMcpServerOptions {
94
160
  client?: LoreClient;
95
161
  baseUrl?: string;
@@ -98,6 +164,16 @@ export interface CreateMcpServerOptions {
98
164
  headers?: SharedMemoryClientOptions["headers"];
99
165
  writeTools?: boolean;
100
166
  contextOnly?: boolean;
167
+ /**
168
+ * The host's native hooks already deliver context into every prompt, so the
169
+ * server omits prepare_context and offers only the explicit-ask tools.
170
+ */
171
+ hostDeliversContext?: boolean;
172
+ /**
173
+ * The host `lore connect` registered this server for. Saves and lookups
174
+ * are attributed to it whatever `agent` the caller passes.
175
+ */
176
+ agent?: string;
101
177
  }
102
178
  export declare function createMcpServer(options?: CreateMcpServerOptions): McpServer;
103
179
  export declare function runStdioServer(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAiBA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAEL,UAAU,EACV,KAAK,yBAAyB,EAC/B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,EACL,2BAA2B,EAC3B,KAAK,8BAA8B,GACpC,MAAM,oCAAoC,CAAC;AAgF5C,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;kBAYzB,CAAC;AAEZ,eAAO,MAAM,oBAAoB;;kBAItB,CAAC;AAEZ,eAAO,MAAM,kBAAkB;;;;;;;;kBAuBpB,CAAC;AAEZ,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAU3B,CAAC;AAEZ,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;kBAQ1B,CAAC;AAEZ,eAAO,MAAM,uBAAuB;;kBAAuB,CAAC;AAiD5D,MAAM,WAAW,sBAAsB;IACrC,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAC3C,OAAO,CAAC,EAAE,yBAAyB,CAAC,SAAS,CAAC,CAAC;IAC/C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,eAAe,CAC7B,OAAO,GAAE,sBAA2B,GACnC,SAAS,CA0aX;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAGpD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAmBA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAEL,UAAU,EACV,KAAK,yBAAyB,EAC/B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,OAAO,EACL,2BAA2B,EAC3B,KAAK,8BAA8B,GACpC,MAAM,oCAAoC,CAAC;AAsF5C,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;kBAYzB,CAAC;AAEZ,eAAO,MAAM,oBAAoB;;kBAItB,CAAC;AAEZ,eAAO,MAAM,kBAAkB;;;;;;;;kBAuBpB,CAAC;AAEZ,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAW3B,CAAC;AAEZ,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;kBAQ1B,CAAC;AAEZ,eAAO,MAAM,uBAAuB;;kBAAuB,CAAC;AAgN5D,eAAO,MAAM,0BAA0B;;;;;;;;;kBAS2K,CAAC;AAYnN,eAAO,MAAM,wBAAwB;;;;;kBAIK,CAAC;AAE3C,eAAO,MAAM,qBAAqB;;kBAAoF,CAAC;AAEvH,eAAO,MAAM,yBAAyB;;;;;;;kBAI3B,CAAC;AAEZ,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;kBAOK,CAAC;AAE3C,eAAO,MAAM,uBAAuB;;;;;;;;;;;;kBAOM,CAAC;AAE3C,MAAM,WAAW,sBAAsB;IACrC,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAC3C,OAAO,CAAC,EAAE,yBAAyB,CAAC,SAAS,CAAC,CAAC;IAC/C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,eAAe,CAC7B,OAAO,GAAE,sBAA2B,GACnC,SAAS,CAuoBX;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAGpD"}
package/dist/index.js CHANGED
@@ -1,6 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import { checkDirectory, readLocalConfig, resolveLocalConnection } from "@lore-co/core/local-scope";
3
- import { ShareLoreInputSchema, sharedLinkMarkdown, PrepareContextRequestSchema } from "@lore-co/sdk";
3
+ import { isNativeCodingAgent } from "@lore-co/core";
4
+ import { repositoryScopeFromCheckout, repositoryScopeFromDirectory } from "@lore-co/core/repository-location";
5
+ import { ShareLoreInputSchema, sharedLinkMarkdown, PrepareContextRequestSchema, ChatRequestSchema } from "@lore-co/sdk";
4
6
  import { MAX_EVENT_IMAGE_BYTES, inspectEventImage } from "@lore-co/core/image-bytes";
5
7
  import { open as openImageFile } from "node:fs/promises";
6
8
  import { closeSync, constants as fsConstants, fstatSync, openSync, readFileSync, realpathSync, } from "node:fs";
@@ -11,9 +13,11 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
11
13
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
12
14
  import { SharedMemoryApiError, LoreClient, } from "@lore-co/sdk";
13
15
  import { z } from "zod";
14
- import { PrepareApproachSchema, CreateApproachSchema, ReviseApproachSchema, SaveApproachSchema, StartApproachRunSchema, ApproachRunUpdateSchema } from "@lore-co/sdk";
16
+ import { CreateApproachSchema, ReviseApproachSchema, SaveApproachSchema, StartApproachRunSchema, ApproachRunUpdateSchema } from "@lore-co/sdk";
15
17
  import { ApproachRunDecisionSchema } from "@lore-co/sdk";
16
18
  import { ImportSkillSchema, PreviewSkillSchema } from "@lore-co/sdk";
19
+ import { sessionDisplayTitle } from "@lore-co/sdk";
20
+ import { MemoryCategorySchema, MemoryStatusSchema } from "@lore-co/core/schemas";
17
21
  export { MCP_RELIABILITY_INTEGRATION, } from "@lore-co/core/integration-contract";
18
22
  const scopeShape = {
19
23
  organization: z.string().trim().min(1).optional(),
@@ -72,9 +76,12 @@ function readStoredConnectorConfig(home) {
72
76
  }
73
77
  }
74
78
  }
79
+ /** The id `lore connect --agent generic` records when no --agent-id names the host. */
80
+ const GENERIC_MCP_AGENT = "generic";
81
+ const callerAgentSchema = z.string().trim().min(1).optional().describe("Leave unset: Lore uses the host it connected this server for. Only an agent Lore gave no ID passes its integration ID, never a model name");
75
82
  export const MemorySearchInputSchema = z
76
83
  .object({
77
- agent: z.string().trim().min(1).default("mcp"),
84
+ agent: callerAgentSchema,
78
85
  task: z.string().trim().min(1).describe("Task or question to search for"),
79
86
  scope: scopeSchema.optional(),
80
87
  ...scopeShape,
@@ -92,7 +99,7 @@ export const MemoryGetInputSchema = z
92
99
  .strict();
93
100
  export const AskLoreInputSchema = z
94
101
  .object({
95
- agent: z.string().trim().min(1).optional().describe("Your integration ID, so agent-specific knowledge applies correctly"),
102
+ agent: callerAgentSchema,
96
103
  question: z
97
104
  .string()
98
105
  .trim()
@@ -116,8 +123,9 @@ export const MemoryRememberInputSchema = z
116
123
  content: z.string().trim().min(1).describe("Durable knowledge to save"),
117
124
  scope: scopeSchema.optional(),
118
125
  ...scopeShape,
126
+ workspaceWide: z.literal(true).optional().describe("Save for every repository in the workspace. Only when the user asks for that; without a repo, organization, or project the save is limited to the current folder's Git repository"),
119
127
  category: categorySchema.optional(),
120
- agent: z.string().trim().min(1).default("mcp"),
128
+ agent: callerAgentSchema,
121
129
  sessionId: z.string().trim().min(1).optional(),
122
130
  })
123
131
  .strict();
@@ -126,7 +134,7 @@ export const MemoryCorrectInputSchema = z
126
134
  id: z.uuid().describe("Active memory UUID to correct"),
127
135
  content: z.string().trim().min(1).describe("Correct replacement content"),
128
136
  category: categorySchema.optional(),
129
- agent: z.string().trim().min(1).default("mcp"),
137
+ agent: callerAgentSchema,
130
138
  sessionId: z.string().trim().min(1).optional(),
131
139
  })
132
140
  .strict();
@@ -166,6 +174,199 @@ function toolError(error) {
166
174
  isError: true,
167
175
  };
168
176
  }
177
+ /** A message written for the agent; unlike toolError it is safe to show as is. */
178
+ function toolMessage(message) {
179
+ return { ...toolResult({ error: message }, message), isError: true };
180
+ }
181
+ function singleLine(text, width) {
182
+ const flat = text.replaceAll(/\s+/gu, " ").trim();
183
+ return flat.length > width ? `${flat.slice(0, width - 1)}…` : flat;
184
+ }
185
+ function dateOnly(value) {
186
+ return value.slice(0, 10);
187
+ }
188
+ /** The same scope wording as `lore learnings` and `lore review`. */
189
+ function scopeLabel(scope) {
190
+ const parts = [
191
+ ...(scope.repo === undefined ? [] : [scope.repo]),
192
+ ...(scope.project === undefined ? [] : [`project ${scope.project}`]),
193
+ ...(scope.path === undefined ? [] : [scope.path]),
194
+ ...(scope.component === undefined ? [] : [scope.component]),
195
+ ...(scope.agent === undefined ? [] : [`for ${scope.agent}`]),
196
+ ];
197
+ return parts.length === 0 ? "workspace" : parts.join(" · ");
198
+ }
199
+ function sourceLabel(source) {
200
+ return [source.agent, ...(source.sessionId === undefined ? [] : [`session ${source.sessionId}`])].join(", ");
201
+ }
202
+ function decisionLabel(decision) {
203
+ switch (decision) {
204
+ case "approve": return "approved";
205
+ case "reject": return "declined";
206
+ case "use_proposal": return "approved, replacing the conflicting learning";
207
+ case "keep_both": return "approved alongside the conflicting learning";
208
+ }
209
+ }
210
+ function openConflicts(detail) {
211
+ return detail.conflicts.filter(conflict => conflict.resolution === null);
212
+ }
213
+ /** One pending proposal as list_proposals reports it: the learning plus what a reviewer needs to decide. */
214
+ function proposalSummary(memory, detail) {
215
+ const open = detail === null ? null : openConflicts(detail).length;
216
+ return {
217
+ id: memory.id,
218
+ text: memory.content,
219
+ category: memory.category,
220
+ status: memory.status,
221
+ scope: memory.scope,
222
+ source: memory.source,
223
+ proposedAt: detail?.metadata.proposedAt ?? memory.createdAt,
224
+ reason: detail?.metadata.reason ?? null,
225
+ /** null when the connection cannot read proposal details (an integration token). */
226
+ conflict: open === null ? null : open > 0,
227
+ openConflicts: open,
228
+ };
229
+ }
230
+ function proposalLine(index, proposal) {
231
+ const flags = [
232
+ scopeLabel(proposal.scope),
233
+ `from ${sourceLabel(proposal.source)}`,
234
+ ...(proposal.conflict === true ? [`OPEN CONFLICT (${proposal.openConflicts})`] : []),
235
+ ...(proposal.conflict === null ? ["conflicts unknown"] : []),
236
+ ];
237
+ return `${index}. ${proposal.id}\n ${singleLine(proposal.text, 160)}\n ${flags.join(" · ")}`;
238
+ }
239
+ function formatProposalDetail(detail) {
240
+ const { memory, metadata, conflicts, conflictTargets } = detail;
241
+ const decision = metadata.decision === null
242
+ ? "pending"
243
+ : `${decisionLabel(metadata.decision)} on ${dateOnly(metadata.decidedAt ?? metadata.proposedAt)}${metadata.decisionReason === null ? "" : `: ${metadata.decisionReason}`}`;
244
+ const lines = [
245
+ `Proposal ${memory.id}`,
246
+ `Status: ${memory.status}`,
247
+ `Category: ${memory.category}`,
248
+ `Scope: ${scopeLabel(memory.scope)}`,
249
+ `Source: ${sourceLabel(memory.source)}`,
250
+ `Proposed: ${dateOnly(metadata.proposedAt)} (${metadata.reason})`,
251
+ `Decision: ${decision}`,
252
+ "",
253
+ memory.content.trim(),
254
+ ];
255
+ if (conflicts.length > 0) {
256
+ const targets = new Map(conflictTargets.map(target => [target.id, target]));
257
+ lines.push("", `Conflicts (${conflicts.length}):`);
258
+ for (const conflict of conflicts) {
259
+ const state = conflict.resolution === null ? "open" : decisionLabel(conflict.resolution);
260
+ lines.push(` ${conflict.severity} ${conflict.detector} conflict with ${conflict.targetMemoryId} (${state})`);
261
+ lines.push(` Evidence: ${singleLine(conflict.evidence.summary, 160)}`);
262
+ const target = targets.get(conflict.targetMemoryId);
263
+ if (target !== undefined)
264
+ lines.push(` Current: ${singleLine(target.content, 160)}`);
265
+ }
266
+ if (openConflicts(detail).length > 0) {
267
+ lines.push("", "Open conflicts are decided in the dashboard, where the current learning can be replaced or kept alongside. decide_proposal refuses them.");
268
+ }
269
+ }
270
+ return lines.join("\n");
271
+ }
272
+ function formatDecision(decision, result) {
273
+ const { proposal } = result;
274
+ if (decision === "approve") {
275
+ return proposal.status === "active"
276
+ ? `Approved ${proposal.id}. The learning is now active${proposal.scope.repo === undefined ? " across the workspace" : ` for ${proposal.scope.repo}`}.`
277
+ : `Reviewed ${proposal.id}. Learning status: ${proposal.status}.`;
278
+ }
279
+ return `Declined ${proposal.id}. The proposal will not become a learning.`;
280
+ }
281
+ function sessionLine(session) {
282
+ const title = session.title ?? sessionDisplayTitle(session) ?? `${session.agent} session`;
283
+ const where = session.repo ?? session.project;
284
+ const state = session.endedAt === null ? "still open" : `ended ${dateOnly(session.endedAt)}`;
285
+ return `- ${session.id}: ${singleLine(title, 120)} (${session.agent}${where ? `, ${where}` : ""}; last active ${dateOnly(session.lastActivityAt)}, ${state}, ${session.eventCount} events)`;
286
+ }
287
+ function apiDetailMessage(error) {
288
+ const details = error.details;
289
+ if (typeof details === "object" && details !== null && "message" in details) {
290
+ const message = details.message;
291
+ if (typeof message === "string")
292
+ return message;
293
+ if (Array.isArray(message))
294
+ return message.map(String).join("; ");
295
+ }
296
+ return typeof details === "string" && details !== "" ? details : undefined;
297
+ }
298
+ /**
299
+ * The same explanations `lore review` prints, so an agent can tell the user
300
+ * why a review did not happen instead of a sanitized protocol failure.
301
+ */
302
+ function reviewFailure(error, id, dashboard) {
303
+ const place = dashboard === undefined ? "the Lore dashboard" : `the Lore dashboard (${dashboard})`;
304
+ if (error instanceof SharedMemoryApiError) {
305
+ const detail = apiDetailMessage(error);
306
+ if (error.status === 401) {
307
+ return toolMessage(`Reviewing proposals needs a connection that identifies you. Reconnect with lore connect --login, or review in ${place}.`);
308
+ }
309
+ if (error.status === 403) {
310
+ return toolMessage(`Only a workspace owner or admin can approve or decline proposals. Ask an owner or admin to review ${id} in ${place}; this connection cannot decide it.`);
311
+ }
312
+ if (error.status === 404) {
313
+ return toolMessage(detail !== undefined && /not found/iu.test(detail)
314
+ ? `Proposal ${id} was not found in this workspace. It may already be decided; call list_proposals again.`
315
+ : "This Lore server does not support reviewing proposals over MCP. Upgrade the server, or review in the dashboard.");
316
+ }
317
+ if (error.status === 409) {
318
+ return toolMessage(`${detail ?? "The proposal cannot be decided this way"}. An open conflict or an earlier decision is handled in ${place}.`);
319
+ }
320
+ }
321
+ return toolError(error);
322
+ }
323
+ // The same request shape as `lore approach prepare`: the repository defaults to
324
+ // the current folder and a native session id resolves to the captured session.
325
+ export const PrepareApproachInputSchema = z.object({
326
+ repo: z.string().trim().min(1).max(500).optional().describe("Defaults to the current folder's repository"),
327
+ sessionId: z.uuid().optional().describe("Lore session UUID of the source work"),
328
+ externalSessionId: z.string().trim().min(1).max(500).optional().describe("Your native session id; Lore resolves the captured session. Not with sessionId."),
329
+ agent: z.string().trim().min(1).max(100).optional().describe("Your integration id, narrows externalSessionId"),
330
+ sessionIds: z.array(z.uuid()).max(10).optional(),
331
+ learningIds: z.array(z.uuid()).max(50).optional(),
332
+ notes: z.string().trim().max(20000).optional(),
333
+ task: z.string().trim().min(1).max(2000).optional(),
334
+ }).strict().refine(input => input.sessionId || input.externalSessionId || input.sessionIds?.length || input.learningIds?.length || input.notes, { message: "Choose a source session or learning, or add notes." });
335
+ // Listing tools mirror `lore learnings`, `lore review`, and `lore resume`: the
336
+ // repository defaults to the current folder, or the whole workspace on request.
337
+ const listingRepoShape = {
338
+ repo: z.string().trim().min(1).max(500).optional().describe("Repository as owner/name; defaults to the current folder's repository"),
339
+ allRepositories: z.boolean().optional().describe("List across every repository in the workspace instead of one"),
340
+ };
341
+ const oneRepository = { message: "Choose repo or allRepositories, not both.", path: ["allRepositories"] };
342
+ const notBoth = (input) => !(input.repo !== undefined && input.allRepositories);
343
+ export const ListProposalsInputSchema = z.object({
344
+ ...listingRepoShape,
345
+ limit: z.number().int().positive().max(50).default(20),
346
+ offset: z.number().int().nonnegative().default(0),
347
+ }).strict().refine(notBoth, oneRepository);
348
+ export const ProposalIdInputSchema = z.object({ id: z.uuid().describe("Proposal UUID from list_proposals") }).strict();
349
+ export const DecideProposalInputSchema = z.object({
350
+ id: z.uuid().describe("Proposal UUID from list_proposals"),
351
+ decision: z.enum(["approve", "decline"]).describe("approve activates the learning; decline retires the proposal"),
352
+ reason: z.string().trim().min(1).max(2000).optional().describe("Why, as the person said it; recorded with the decision"),
353
+ }).strict();
354
+ export const ListLearningsInputSchema = z.object({
355
+ ...listingRepoShape,
356
+ status: z.array(MemoryStatusSchema).min(1).optional().describe("Statuses to include; default active"),
357
+ category: z.array(MemoryCategorySchema).min(1).optional(),
358
+ query: z.string().trim().min(1).max(500).optional().describe("Only learnings whose text contains this phrase"),
359
+ limit: z.number().int().positive().max(100).default(50),
360
+ offset: z.number().int().nonnegative().default(0),
361
+ }).strict().refine(notBoth, oneRepository);
362
+ export const ListSessionsInputSchema = z.object({
363
+ ...listingRepoShape,
364
+ query: z.string().trim().min(1).max(500).optional().describe("Words from the session's title or work"),
365
+ agent: z.string().trim().min(1).max(100).optional().describe("Only sessions recorded by this agent id"),
366
+ view: z.enum(["mine", "shared", "accessible"]).optional().describe("mine: only the member's own sessions; default accessible"),
367
+ limit: z.number().int().positive().max(100).default(20),
368
+ offset: z.number().int().nonnegative().default(0),
369
+ }).strict().refine(notBoth, oneRepository);
169
370
  export function createMcpServer(options = {}) {
170
371
  // Credentials and every folder check must use the same home, even if the
171
372
  // environment or working directory changes while this server is running.
@@ -176,6 +377,15 @@ export function createMcpServer(options = {}) {
176
377
  const contextOnly = options.contextOnly ?? process.env.LORE_MCP_CONTEXT_ONLY === "true";
177
378
  if (contextOnly && writeToolsEnabled)
178
379
  throw new Error("A context-only connection cannot enable write tools");
380
+ const hostDeliversContext = options.hostDeliversContext ?? process.env.LORE_MCP_HOST_CONTEXT === "hooks";
381
+ if (contextOnly && hostDeliversContext)
382
+ throw new Error("A context-only connection must keep prepare_context");
383
+ const hostAgent = options.agent ?? environmentValue(process.env, "LORE_MCP_AGENT") ?? "mcp";
384
+ // The host Lore was connected for is more reliable than what a model says
385
+ // about itself: models pass their model name ("claude-sonnet-4-6") as
386
+ // `agent`. A caller's agent counts only when the host is unnamed: no
387
+ // LORE_MCP_AGENT, or `lore connect --agent generic` without --agent-id.
388
+ const callerAgent = (agent) => hostAgent === "mcp" || hostAgent === GENERIC_MCP_AGENT ? agent ?? hostAgent : hostAgent;
179
389
  const environmentApiUrl = environmentValue(process.env, "LORE_API_URL");
180
390
  const environmentToken = environmentValue(process.env, "LORE_WORKSPACE_TOKEN");
181
391
  const storedConfig = options.client === undefined &&
@@ -229,32 +439,35 @@ export function createMcpServer(options = {}) {
229
439
  }
230
440
  const server = new McpServer({
231
441
  name: "lore",
232
- version: "0.2.22",
442
+ version: "0.2.24",
233
443
  }, {
234
- instructions: "Before investigating or changing code, call prepare_context for the current task and repository. It includes enabled Lore skill instructions. Apply the skills whose descriptions match the task; do not ask the user to name them. Recheck for each new task so disabled skills stop applying. Skills remain subject to the user's request and normal permissions. Receiving instructions does not prove a review was completed.",
235
- });
236
- server.registerTool("prepare_context", {
237
- title: "Prepare Lore context",
238
- description: "Before investigating or changing code, retrieve enabled skill instructions, current team decisions, and relevant past session excerpts for your task and files. Apply relevant skills before implementing; no separate skill lookup is needed for instructions included here. A context-only connection supplies its repository automatically. An empty result means no relevant context was found; errors are reported separately.",
239
- inputSchema: PrepareContextRequestSchema,
240
- annotations: { readOnlyHint: true, openWorldHint: true },
241
- }, async (input) => {
242
- try {
243
- const access = await checkDirectory(process.cwd(), home);
244
- if (!access.allowed)
245
- return toolError(new Error("Lore is off for this folder"));
246
- // Scoped connections only expose this endpoint; repository policy is
247
- // enforced by the server on every request, including after revocation.
248
- const client = contextOnly ? baseClient : await clientForFolder();
249
- const result = await client.prepareContext(input);
250
- return toolResult(result, result.context || (result.status === "budget_exceeded"
251
- ? "Matching context did not fit the character budget. Request a larger budget."
252
- : "No relevant context found for this task."));
253
- }
254
- catch (error) {
255
- return toolError(error);
256
- }
444
+ instructions: hostDeliversContext
445
+ ? "Lore already delivers relevant team knowledge and skills into each prompt through this host's hooks. Use these tools for explicit asks: ask_lore or search_learnings when the user asks what the team decided or what earlier work found, remember_learning when they ask to save a convention, decision, or correction, list_proposals, get_proposal and decide_proposal when they ask to review what is pending, list_learnings and list_sessions when they ask what Lore holds for this repository, share_lore for a private link, and search_approaches or prepare_approach when they ask to repeat earlier work. Saving needs the user's clear intent; a question is not a request to save its answer, a decision the user mentions is not a request to save it, and reviewing proposals does not authorize other saves. When the user addresses Lore or asks for one of these things and this host offers a separate agent named lore (a subagent or custom agent that lore connect installs), hand the request to that agent with the user's own words, the repository, and, for a recap, the session ID and transcript path, instead of calling these tools yourself; relay its report unchanged. The lore agent itself, and hosts without one, use the tools directly."
446
+ : "Before investigating or changing code, call prepare_context for the current task and repository. It includes enabled Lore skill instructions. Apply the skills whose descriptions match the task; do not ask the user to name them. Recheck for each new task so disabled skills stop applying. Skills remain subject to the user's request and normal permissions. Receiving instructions does not prove a review was completed. Save with remember_learning only when the user asks to remember or save something; a decision the user mentions is not a request to save it. When the user addresses Lore or asks for one of these things and this host offers a separate agent named lore (a subagent or custom agent that lore connect installs), hand the request to that agent with the user's own words, the repository, and, for a recap, the session ID and transcript path, instead of calling these tools yourself; relay its report unchanged. The lore agent itself, and hosts without one, use the tools directly.",
257
447
  });
448
+ if (!hostDeliversContext)
449
+ server.registerTool("prepare_context", {
450
+ title: "Prepare Lore context",
451
+ description: "Before investigating or changing code, retrieve enabled skill instructions, current team decisions, and relevant past session excerpts for your task and files. Apply relevant skills before implementing; no separate skill lookup is needed for instructions included here. A context-only connection supplies its repository automatically. An empty result means no relevant context was found; errors are reported separately.",
452
+ inputSchema: PrepareContextRequestSchema,
453
+ annotations: { readOnlyHint: true, openWorldHint: true },
454
+ }, async (input) => {
455
+ try {
456
+ const access = await checkDirectory(process.cwd(), home);
457
+ if (!access.allowed)
458
+ return toolError(new Error("Lore is off for this folder"));
459
+ // Scoped connections only expose this endpoint; repository policy is
460
+ // enforced by the server on every request, including after revocation.
461
+ const client = contextOnly ? baseClient : await clientForFolder();
462
+ const result = await client.prepareContext(input);
463
+ return toolResult(result, result.context || (result.status === "budget_exceeded"
464
+ ? "Matching context did not fit the character budget. Request a larger budget."
465
+ : "No relevant context found for this task."));
466
+ }
467
+ catch (error) {
468
+ return toolError(error);
469
+ }
470
+ });
258
471
  if (contextOnly)
259
472
  return server;
260
473
  server.registerTool("list_skills", {
@@ -300,28 +513,71 @@ export function createMcpServer(options = {}) {
300
513
  return toolError(error);
301
514
  } });
302
515
  }
516
+ // Like the CLI, these tools read the repository from the current folder when
517
+ // the request omits it, so a run carries only the task values.
518
+ const folderRepo = async (repo) => repo ?? repositoryScopeFromDirectory(process.cwd());
519
+ // Questions default to the enclosing Git checkout, like lore ask and the
520
+ // hooks, and then see that repository's learnings. Outside a checkout the
521
+ // question searches every repository the workspace policy allows.
522
+ const questionRepo = async (repo) => {
523
+ const resolved = repo ?? await repositoryScopeFromCheckout(process.cwd());
524
+ return resolved === undefined ? {} : { repo: resolved };
525
+ };
526
+ const searchTask = async (input) => {
527
+ const task = input.scope?.repo === undefined ? { ...input, ...await questionRepo(input.repo) } : input;
528
+ const repo = task.scope?.repo ?? task.repo;
529
+ // Retrieval gives a native agent nothing outside a repository, so a search
530
+ // from such a folder keeps the generic agent and its workspace-wide results.
531
+ const agent = repo === undefined && isNativeCodingAgent(callerAgent(input.agent)) ? "mcp" : callerAgent(input.agent);
532
+ return { ...task, agent };
533
+ };
303
534
  server.registerTool("search_approaches", {
304
535
  title: "Find a saved approach",
305
- description: "When asked to repeat earlier work or do it the way it was done last time, find active repository-scoped approaches. The user need not know the saved name. Choose by the task and infer inputs from the request and repository; ask only for missing information or an ambiguous match. These contain steps, prerequisites, and checks. Never use a draft or assume a source result proves the new task will succeed.",
306
- inputSchema: z.object({ repo: z.string().min(1), query: z.string().max(200).optional() }).strict(),
536
+ description: "When asked to repeat earlier work or do it the way it was done last time, find active repository-scoped approaches. The user need not know the saved name. Choose by the task and infer inputs from the request and repository; ask only for missing information or an ambiguous match. These contain steps, prerequisites, and checks. Never use a draft or assume a source result proves the new task will succeed. The repository defaults to the current folder.",
537
+ inputSchema: z.object({ repo: z.string().min(1).optional(), query: z.string().max(200).optional() }).strict(),
307
538
  annotations: { readOnlyHint: true, openWorldHint: true },
308
539
  }, async (input) => { try {
309
- return toolResult(await (await clientForFolder()).listApproaches({ ...input, status: "active" }));
540
+ return toolResult(await (await clientForFolder()).listApproaches({ ...input, repo: await folderRepo(input.repo), status: "active" }));
310
541
  }
311
542
  catch (error) {
312
543
  return toolError(error);
313
544
  } });
314
- server.registerTool("prepare_approach", {
315
- title: "Make this work repeatable",
316
- description: "Use when the user says 'Make this repeatable'. Read the source session or explicit notes to prepare a reusable approach. Use the Lore session UUID from ask_lore, not a made-up ID. Add further sessions in sessionIds and the active learnings that captured the session's corrections in learningIds; cite them from the items they support using only ids the response lists under sources. If several tasks occurred, ask which to preserve and pass task. Review source corrections and the final work, preserving the successful sequence. If document is null, draft it from the returned evidence without inventing results. Show a short plain-language preview of what will repeat before save_approach; derive inputs, steps, prerequisites, and checks yourself, and keep IDs and command details internal. Preparing does not save. A limited source requires human review.",
317
- inputSchema: PrepareApproachSchema,
545
+ server.registerTool("get_approach", {
546
+ title: "Read a saved approach",
547
+ description: "Read one approach by id: its current version, or an exact earlier version. Use it to review the steps, prerequisites, checks, and sources of a match from search_approaches before starting a run.",
548
+ inputSchema: z.object({ id: z.uuid(), version: z.number().int().positive().optional() }).strict(),
318
549
  annotations: { readOnlyHint: true, openWorldHint: true },
319
- }, async (input) => { try {
320
- return toolResult(await (await clientForFolder()).prepareApproach(input));
550
+ }, async ({ id, version }) => { try {
551
+ return toolResult(await (await clientForFolder()).getApproach(id, version));
321
552
  }
322
553
  catch (error) {
323
554
  return toolError(error);
324
555
  } });
556
+ server.registerTool("prepare_approach", {
557
+ title: "Make this work repeatable",
558
+ description: "Use when the user says 'Make this repeatable'. Read the source session or explicit notes to prepare a reusable approach. Pass your native session id as externalSessionId with your agent id, or the Lore session UUID from ask_lore; never a made-up ID. Add further sessions in sessionIds and the active learnings that captured the session's corrections in learningIds; cite them from the items they support using only ids the response lists under sources. If several tasks occurred, ask which to preserve and pass task. Review source corrections and the final work, preserving the successful sequence. If document is null, draft it from the returned evidence without inventing results. Show a short plain-language preview of what will repeat before save_approach; derive inputs, steps, prerequisites, and checks yourself, and keep IDs and command details internal. Preparing does not save. A limited source requires human review.",
559
+ inputSchema: PrepareApproachInputSchema,
560
+ annotations: { readOnlyHint: true, openWorldHint: true },
561
+ }, async ({ externalSessionId, agent, repo, ...request }) => {
562
+ try {
563
+ const client = await clientForFolder();
564
+ let sessionId = request.sessionId;
565
+ let sourceRepo = repo;
566
+ if (externalSessionId) {
567
+ if (sessionId)
568
+ return toolMessage("Choose sessionId or externalSessionId, not both.");
569
+ const sessions = await client.listSessions({ externalSessionId, ...(agent ? { agent } : {}), limit: 2 });
570
+ if (sessions.sessions.length !== 1)
571
+ return toolMessage("The source session is missing or ambiguous. Use a Lore session UUID or explicit notes.");
572
+ sessionId = sessions.sessions[0].id;
573
+ sourceRepo ??= sessions.sessions[0].repo ?? undefined;
574
+ }
575
+ return toolResult(await client.prepareApproach({ ...request, ...(sessionId ? { sessionId } : {}), repo: await folderRepo(sourceRepo) }));
576
+ }
577
+ catch (error) {
578
+ return toolError(error);
579
+ }
580
+ });
325
581
  if (writeToolsEnabled) {
326
582
  server.registerTool("draft_approach", {
327
583
  title: "Keep an approach draft", description: "Keep the reviewed procedure as a draft in Learnings. Use the exact source snapshot returned by prepare_approach, and cite only its sources. Use a new UUID requestId for a new draft and reuse it on uncertain retries. This does not make the approach available to other agents for reuse.",
@@ -351,10 +607,10 @@ export function createMcpServer(options = {}) {
351
607
  return toolError(error);
352
608
  } });
353
609
  server.registerTool("use_approach", {
354
- title: "Use a saved approach", description: "Start a new task using a chosen active approach and its exact version. Supply the new task inputs and a UUID requestId (reuse it for retries). Read the returned instructions and check every prerequisite in the current repository before editing. Report needs_input and ask for a specific decision when something changed. Execute with your normal tools and permissions; this tool only records the run and returns the procedure.",
355
- inputSchema: StartApproachRunSchema.extend({ id: z.uuid() }), annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: true },
356
- }, async ({ id, ...input }) => { try {
357
- return toolResult(await (await clientForFolder()).startApproachRun(id, input));
610
+ title: "Use a saved approach", description: "Start a new task using a chosen active approach and its exact version. Supply the new task inputs, your agent and native session ids, and a UUID requestId (reuse it for retries); the repository defaults to the current folder. Read the returned instructions and check every prerequisite in the current repository before editing. Report needs_input and ask for a specific decision when something changed. Execute with your normal tools and permissions; this tool only records the run and returns the procedure. Prefer it to the lore CLI: it needs no shell command.",
611
+ inputSchema: StartApproachRunSchema.extend({ id: z.uuid(), repo: StartApproachRunSchema.shape.repo.optional().describe("Defaults to the current folder's repository") }), annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: true },
612
+ }, async ({ id, repo, ...input }) => { try {
613
+ return toolResult(await (await clientForFolder()).startApproachRun(id, { ...input, repo: await folderRepo(repo) }));
358
614
  }
359
615
  catch (error) {
360
616
  return toolError(error);
@@ -397,7 +653,7 @@ export function createMcpServer(options = {}) {
397
653
  });
398
654
  server.registerTool("search_learnings", {
399
655
  title: "Search shared learnings",
400
- description: "Find shared engineering learnings relevant to a task and return formatted context.",
656
+ description: "Find shared engineering learnings relevant to a task and return formatted context. The repository defaults to the current folder's Git repository.",
401
657
  inputSchema: MemorySearchInputSchema,
402
658
  annotations: {
403
659
  readOnlyHint: true,
@@ -408,7 +664,7 @@ export function createMcpServer(options = {}) {
408
664
  if (!access.allowed)
409
665
  return toolError(new Error(`Lore is off: ${access.reason}.`));
410
666
  try {
411
- const result = await (await clientForFolder()).getContext(input);
667
+ const result = await (await clientForFolder()).getContext(await searchTask(input));
412
668
  return toolResult(result, result.context || "No relevant shared learnings found.");
413
669
  }
414
670
  catch (error) {
@@ -420,7 +676,8 @@ export function createMcpServer(options = {}) {
420
676
  description: "Query shared context: durable knowledge plus prior work sessions " +
421
677
  "(what previous agents tried, errors hit, decisions made). Answers " +
422
678
  "include provenance. Pass sessionId to prioritize the sessions your " +
423
- "current work continues.",
679
+ "current work continues. The repository defaults to the current " +
680
+ "folder's Git repository.",
424
681
  inputSchema: AskLoreInputSchema,
425
682
  annotations: {
426
683
  readOnlyHint: true,
@@ -433,8 +690,8 @@ export function createMcpServer(options = {}) {
433
690
  try {
434
691
  const result = await (await clientForFolder()).ask({
435
692
  question: input.question,
436
- agent: input.agent ?? "mcp",
437
- ...(input.repo === undefined ? {} : { repo: input.repo }),
693
+ agent: callerAgent(input.agent),
694
+ ...await questionRepo(input.repo),
438
695
  ...(input.project === undefined ? {} : { project: input.project }),
439
696
  ...(input.sessionId === undefined
440
697
  ? {}
@@ -466,6 +723,24 @@ export function createMcpServer(options = {}) {
466
723
  return toolError(error);
467
724
  }
468
725
  });
726
+ server.registerTool("chat_lore", {
727
+ title: "Chat with Lore",
728
+ description: "Read-only discussion over the workspace's shared knowledge: ask in plain language whether anyone on the team ran into something and get a short prose answer citing learnings and sessions by id. Replay turns and cited ids from the previous result for follow-ups. Nothing is saved. The repository defaults to the current folder's Git repository. On a server without an AI model the result lists the retrieved sources instead.",
729
+ inputSchema: ChatRequestSchema,
730
+ annotations: { readOnlyHint: true, openWorldHint: true },
731
+ }, async (input) => {
732
+ const access = await checkDirectory(process.cwd(), home);
733
+ if (!access.allowed)
734
+ return toolError(new Error(`Lore is off: ${access.reason}.`));
735
+ try {
736
+ const result = await (await clientForFolder()).chat({ ...input, ...await questionRepo(input.repo) });
737
+ const cited = result.sources.filter(source => source.cited);
738
+ return toolResult(result, [result.answer, ...cited.map(source => `Source: ${source.kind} ${source.id} (${source.title})`)].join("\n"));
739
+ }
740
+ catch (error) {
741
+ return toolError(error);
742
+ }
743
+ });
469
744
  server.registerTool("get_learning", {
470
745
  title: "Get shared learning",
471
746
  description: "Get one shared engineering learning by UUID.",
@@ -482,6 +757,127 @@ export function createMcpServer(options = {}) {
482
757
  return toolError(error);
483
758
  }
484
759
  });
760
+ // The member's day-to-day dashboard views, so an agent can answer "what do I
761
+ // have pending?" and "what does Lore know here?" without a shell. Each is
762
+ // the request the matching CLI command sends.
763
+ const listingRepo = async (input) => input.allRepositories ? undefined : await folderRepo(input.repo);
764
+ const repoHeading = (repo) => repo === undefined ? "all repositories in the workspace" : repo;
765
+ server.registerTool("list_learnings", {
766
+ title: "List learnings",
767
+ description: "List the learnings Lore holds for a repository (its own plus workspace-wide ones) with their status, like `lore learnings`: a complete page rather than a ranked answer. Use ask_lore or search_learnings to answer a question. Default status is active; include proposed to see what awaits review. The repository defaults to the current folder; set allRepositories for the whole workspace.",
768
+ inputSchema: ListLearningsInputSchema,
769
+ annotations: { readOnlyHint: true, openWorldHint: true },
770
+ }, async (input) => {
771
+ const access = await checkDirectory(process.cwd(), home);
772
+ if (!access.allowed)
773
+ return toolError(new Error(`Lore is off: ${access.reason}.`));
774
+ try {
775
+ const repo = await listingRepo(input);
776
+ const statuses = input.status ?? ["active"];
777
+ const page = await (await clientForFolder()).listLearnings({
778
+ ...(repo === undefined ? {} : { repo }),
779
+ status: statuses,
780
+ ...(input.category === undefined ? {} : { category: input.category }),
781
+ ...(input.query === undefined ? {} : { query: input.query }),
782
+ limit: input.limit,
783
+ offset: input.offset,
784
+ });
785
+ const lines = [
786
+ `${page.total} ${statuses.length === 1 ? `${statuses[0]} ` : ""}learning${page.total === 1 ? "" : "s"} for ${repoHeading(repo)}${page.total > page.memories.length ? ` (showing ${page.offset + 1}-${page.offset + page.memories.length})` : ""}`,
787
+ ...page.memories.map(memory => `- ${memory.id} [${memory.category}${statuses.length > 1 ? `, ${memory.status}` : ""}, ${scopeLabel(memory.scope)}, updated ${dateOnly(memory.updatedAt)}]: ${singleLine(memory.content, 200)}`),
788
+ ];
789
+ return toolResult({ repo: repo ?? null, total: page.total, limit: page.limit, offset: page.offset, learnings: page.memories }, lines.join("\n"));
790
+ }
791
+ catch (error) {
792
+ return toolError(error);
793
+ }
794
+ });
795
+ server.registerTool("list_proposals", {
796
+ title: "List pending learning proposals",
797
+ description: "When the user asks to review their pending learnings or what is waiting for review, list the proposals that are not yet decided for the repository (its own plus workspace-wide ones), like `lore review`. Each entry carries its text, scope, source, and whether it has an open conflict with an existing learning. Show them to the user with their sources, then decide each with decide_proposal only as the user directs. The repository defaults to the current folder; set allRepositories for the whole workspace.",
798
+ inputSchema: ListProposalsInputSchema,
799
+ annotations: { readOnlyHint: true, openWorldHint: true },
800
+ }, async (input) => {
801
+ const access = await checkDirectory(process.cwd(), home);
802
+ if (!access.allowed)
803
+ return toolError(new Error(`Lore is off: ${access.reason}.`));
804
+ try {
805
+ const repo = await listingRepo(input);
806
+ const client = await clientForFolder();
807
+ const page = await client.listLearnings({ ...(repo === undefined ? {} : { repo }), status: ["proposed"], limit: input.limit, offset: input.offset });
808
+ // The list endpoint carries no conflicts; the per-proposal detail does.
809
+ // A connection that cannot read details still gets the list.
810
+ const details = await Promise.allSettled(page.memories.map(memory => client.getProposal(memory.id)));
811
+ const proposals = page.memories.map((memory, index) => {
812
+ const detail = details[index];
813
+ return proposalSummary(memory, detail?.status === "fulfilled" ? detail.value : null);
814
+ });
815
+ const unknownConflicts = proposals.some(proposal => proposal.conflict === null);
816
+ const lines = [
817
+ proposals.length === 0
818
+ ? `No pending proposals for ${repoHeading(repo)}.`
819
+ : `${page.total} pending proposal${page.total === 1 ? "" : "s"} for ${repoHeading(repo)}${page.total > proposals.length ? ` (showing ${page.offset + 1}-${page.offset + proposals.length})` : ""}:`,
820
+ ...proposals.map((proposal, index) => proposalLine(page.offset + index + 1, proposal)),
821
+ ...(proposals.some(proposal => proposal.conflict === true) ? ["", "Proposals with an open conflict are decided in the dashboard, where the current learning can be replaced or kept alongside."] : []),
822
+ ...(unknownConflicts ? ["", "Conflicts could not be read with this connection; get_proposal or the dashboard shows them."] : []),
823
+ ];
824
+ return toolResult({ repo: repo ?? null, total: page.total, limit: page.limit, offset: page.offset, proposals }, lines.join("\n"));
825
+ }
826
+ catch (error) {
827
+ return toolError(error);
828
+ }
829
+ });
830
+ server.registerTool("get_proposal", {
831
+ title: "Read a learning proposal",
832
+ description: "Read one proposal in full before deciding it: its text, scope, source, why it was proposed, any decision already recorded, and its conflicts with existing learnings (with the current text of each).",
833
+ inputSchema: ProposalIdInputSchema,
834
+ annotations: { readOnlyHint: true, openWorldHint: true },
835
+ }, async ({ id }) => {
836
+ try {
837
+ const detail = await (await clientForFolder()).getProposal(id);
838
+ return toolResult(detail, formatProposalDetail(detail));
839
+ }
840
+ catch (error) {
841
+ return reviewFailure(error, id, dashboardUrl);
842
+ }
843
+ });
844
+ server.registerTool("list_sessions", {
845
+ title: "List recent sessions",
846
+ description: "List recent recorded work sessions for the repository with their ids and titles, newest first, so the user can pick one to resume (`lore resume --session <id>`), share (share_lore kind session), or ask about (ask_lore with sessionId). The repository defaults to the current folder; set allRepositories for the whole workspace and view mine for only the member's own sessions.",
847
+ inputSchema: ListSessionsInputSchema,
848
+ annotations: { readOnlyHint: true, openWorldHint: true },
849
+ }, async (input) => {
850
+ const access = await checkDirectory(process.cwd(), home);
851
+ if (!access.allowed)
852
+ return toolError(new Error(`Lore is off: ${access.reason}.`));
853
+ try {
854
+ const repo = await listingRepo(input);
855
+ const page = await (await clientForFolder()).listSessions({
856
+ ...(repo === undefined ? {} : { repo }),
857
+ ...(input.query === undefined ? {} : { query: input.query }),
858
+ ...(input.agent === undefined ? {} : { agent: input.agent }),
859
+ ...(input.view === undefined ? {} : { view: input.view }),
860
+ limit: input.limit,
861
+ offset: input.offset,
862
+ });
863
+ const sessions = page.sessions.map(session => ({
864
+ id: session.id, title: session.title ?? sessionDisplayTitle(session), agent: session.agent, connector: session.connector,
865
+ repo: session.repo, project: session.project, startedAt: session.startedAt, lastActivityAt: session.lastActivityAt,
866
+ endedAt: session.endedAt, eventCount: session.eventCount, externalSessionId: session.externalSessionId,
867
+ }));
868
+ const lines = [
869
+ sessions.length === 0
870
+ ? `No recorded sessions for ${repoHeading(repo)}.`
871
+ : `${page.total} session${page.total === 1 ? "" : "s"} for ${repoHeading(repo)}${page.total > sessions.length ? ` (showing ${page.offset + 1}-${page.offset + sessions.length})` : ""}:`,
872
+ ...page.sessions.map(sessionLine),
873
+ ...(sessions.length === 0 ? [] : ["", "Resume one with lore resume --session <id>; share one with share_lore (kind session)."]),
874
+ ];
875
+ return toolResult({ repo: repo ?? null, total: page.total, limit: page.limit, offset: page.offset, sessions }, lines.join("\n"));
876
+ }
877
+ catch (error) {
878
+ return toolError(error);
879
+ }
880
+ });
485
881
  if (writeToolsEnabled) {
486
882
  server.registerTool("attach_image", {
487
883
  title: "Attach an image to a recorded source",
@@ -520,7 +916,8 @@ export function createMcpServer(options = {}) {
520
916
  });
521
917
  server.registerTool("remember_learning", {
522
918
  title: "Remember engineering knowledge",
523
- description: "Store a durable engineering fact, convention, correction, or decision.",
919
+ description: "Save a durable engineering fact, convention, correction, or decision to the shared workspace when the user asks to remember or save it (\"remember this\", \"save that to Lore\", or the items they pick in /recap). A decision the user only states or mentions is not a request to save it: acknowledge it and offer to save instead of calling this tool. " +
920
+ "The repository defaults to the current folder's Git repository; pass workspaceWide only when the user asks to save for every repository.",
524
921
  inputSchema: MemoryRememberInputSchema,
525
922
  annotations: {
526
923
  readOnlyHint: false,
@@ -532,6 +929,15 @@ export function createMcpServer(options = {}) {
532
929
  const access = await checkDirectory(process.cwd(), home);
533
930
  if (!access.allowed)
534
931
  return toolError(new Error(`Lore is off: ${access.reason}.`));
932
+ if (input.workspaceWide && (input.repo ?? input.scope?.repo) !== undefined) {
933
+ return toolMessage("Choose repo or workspaceWide, not both.");
934
+ }
935
+ // Like questions, a save that names no location belongs to the
936
+ // enclosing Git checkout, so agents never save workspace-wide by
937
+ // omission. Outside a checkout it stays workspace-wide.
938
+ const located = [input.organization, input.project, input.repo, input.scope?.organization, input.scope?.project, input.scope?.repo]
939
+ .some(value => value !== undefined);
940
+ const { repo } = located || input.workspaceWide ? { repo: input.repo } : await questionRepo(undefined);
535
941
  try {
536
942
  return toolResult(await (await clientForFolder()).createLearning({
537
943
  ...(input.import ? { import: input.import } : {}),
@@ -543,7 +949,7 @@ export function createMcpServer(options = {}) {
543
949
  ...(input.project === undefined
544
950
  ? {}
545
951
  : { project: input.project }),
546
- ...(input.repo === undefined ? {} : { repo: input.repo }),
952
+ ...(repo === undefined ? {} : { repo }),
547
953
  ...(input.path === undefined ? {} : { path: input.path }),
548
954
  ...(input.component === undefined
549
955
  ? {}
@@ -552,7 +958,7 @@ export function createMcpServer(options = {}) {
552
958
  ? {}
553
959
  : { category: input.category }),
554
960
  source: {
555
- agent: input.agent,
961
+ agent: callerAgent(input.agent),
556
962
  ...(input.sessionId === undefined
557
963
  ? {}
558
964
  : { sessionId: input.sessionId }),
@@ -584,7 +990,7 @@ export function createMcpServer(options = {}) {
584
990
  ? {}
585
991
  : { category: input.category }),
586
992
  source: {
587
- agent: input.agent,
993
+ agent: callerAgent(input.agent),
588
994
  ...(input.sessionId === undefined
589
995
  ? {}
590
996
  : { sessionId: input.sessionId }),
@@ -613,6 +1019,37 @@ export function createMcpServer(options = {}) {
613
1019
  return toolError(error);
614
1020
  }
615
1021
  });
1022
+ server.registerTool("decide_proposal", {
1023
+ title: "Approve or decline a learning proposal",
1024
+ description: "After the user reviews a proposal from list_proposals and says what to do with it, record their decision: approve activates the learning for its scope, decline retires it. Pass the reason in the user's words when given. Only a workspace owner or admin connected with lore connect --login can decide; a proposal with an open conflict is decided in the dashboard, where the current learning can be replaced or kept alongside. This records the user's stated decision; it does not authorize saving, correcting, or deleting other learnings.",
1025
+ inputSchema: DecideProposalInputSchema,
1026
+ annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: true },
1027
+ }, async ({ id, decision, reason }) => {
1028
+ const access = await checkDirectory(process.cwd(), home);
1029
+ if (!access.allowed)
1030
+ return toolError(new Error(`Lore is off: ${access.reason}.`));
1031
+ try {
1032
+ const client = await clientForFolder();
1033
+ // Refuse here what the dashboard would refuse, with the reason, instead
1034
+ // of a bare HTTP 409 after the request.
1035
+ const detail = await client.getProposal(id);
1036
+ if (detail.metadata.decision !== null) {
1037
+ return toolMessage(`Proposal ${id} was already ${decisionLabel(detail.metadata.decision)} on ${dateOnly(detail.metadata.decidedAt ?? detail.metadata.proposedAt)}. Nothing to decide.`);
1038
+ }
1039
+ const open = openConflicts(detail);
1040
+ if (open.length > 0) {
1041
+ return toolMessage(`Proposal ${id} has ${open.length} open conflict${open.length === 1 ? "" : "s"} with existing learning${open.length === 1 ? "" : "s"} ${open.map(conflict => conflict.targetMemoryId).join(", ")}. Decide it in the Lore dashboard${dashboardUrl === undefined ? "" : ` (${dashboardUrl})`}, where the current learning can be replaced or kept alongside.`);
1042
+ }
1043
+ const result = await client.reviewProposal(id, {
1044
+ decision: decision === "approve" ? "approve" : "reject",
1045
+ ...(reason === undefined ? {} : { reason }),
1046
+ });
1047
+ return toolResult(result, formatDecision(decision, result));
1048
+ }
1049
+ catch (error) {
1050
+ return reviewFailure(error, id, dashboardUrl);
1051
+ }
1052
+ });
616
1053
  }
617
1054
  return server;
618
1055
  }
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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lore-co/mcp",
3
- "version": "0.2.22",
3
+ "version": "0.2.24",
4
4
  "description": "Lore MCP server for shared engineering knowledge and prior agent sessions",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -39,8 +39,8 @@
39
39
  "dependencies": {
40
40
  "@modelcontextprotocol/sdk": "^1.30.0",
41
41
  "zod": "^4.4.3",
42
- "@lore-co/core": "0.2.22",
43
- "@lore-co/sdk": "0.2.22"
42
+ "@lore-co/core": "0.2.24",
43
+ "@lore-co/sdk": "0.2.24"
44
44
  },
45
45
  "scripts": {
46
46
  "dev": "tsx watch src/index.ts",