@lore-co/mcp 0.2.23 → 0.2.25
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 +47 -2
- package/dist/index.d.ts +85 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +551 -30
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
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.
|
|
26
|
+
"args": ["-y", "@lore-co/mcp@0.2.25"],
|
|
27
27
|
"env": {
|
|
28
28
|
"LORE_API_URL": "https://your-lore.example.com",
|
|
29
29
|
"LORE_WORKSPACE_TOKEN": "YOUR_WORKSPACE_TOKEN"
|
|
@@ -45,8 +45,13 @@ 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`
|
|
52
57
|
- `get_approach`
|
|
@@ -55,11 +60,51 @@ The default tool set is read-only:
|
|
|
55
60
|
- `read_skill`
|
|
56
61
|
|
|
57
62
|
To register `remember_learning`, `correct_learning`, `forget_learning`, `attach_image`,
|
|
58
|
-
`draft_approach`, `revise_approach`, `save_approach`, `use_approach`,
|
|
63
|
+
`decide_proposal`, `draft_approach`, `revise_approach`, `save_approach`, `use_approach`,
|
|
59
64
|
`report_approach_run`, `decide_approach_run`, `preview_skill`, and `propose_skill`, set
|
|
60
65
|
`LORE_MCP_WRITE_TOOLS=true`. Host instructions should still require explicit
|
|
61
66
|
user intent before every shared-knowledge mutation.
|
|
62
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
|
+
For the hosts where `lore connect` also installs a separate Lore agent
|
|
78
|
+
(`claude`, `codex`, `cursor`, `opencode`, `copilot-cli`, and
|
|
79
|
+
`copilot-vscode`), the server's instructions and the descriptions of
|
|
80
|
+
`ask_lore`, `search_learnings`, `list_learnings`, `list_proposals`,
|
|
81
|
+
`list_sessions`, and `remember_learning` tell the main agent to hand a Lore
|
|
82
|
+
request to that agent with the host's delegation tool (for example OpenCode's
|
|
83
|
+
`task` tool with `subagent_type: "lore"`). Not every host shows an MCP
|
|
84
|
+
server's instructions to the model (OpenCode 1.2 does not; Cursor's
|
|
85
|
+
documentation does not say), so the tool descriptions carry the rule too. The
|
|
86
|
+
Lore agent itself calls the tools.
|
|
87
|
+
|
|
88
|
+
A `remember_learning` save, including an import, that names no `repo`,
|
|
89
|
+
`organization`, or `project` is limited to the current folder's Git
|
|
90
|
+
repository, as `ask_lore` and `search_learnings` are. Pass
|
|
91
|
+
`workspaceWide: true` to save for every repository instead. Outside a Git
|
|
92
|
+
checkout the save stays workspace-wide. `lore remember` takes no repository
|
|
93
|
+
from the folder: without scope flags it saves workspace-wide.
|
|
94
|
+
|
|
95
|
+
The listing tools mirror the member's dashboard views so an agent can run them
|
|
96
|
+
without a shell: `list_learnings` is `lore learnings`, `list_proposals`,
|
|
97
|
+
`get_proposal`, and `decide_proposal` are `lore review`, and `list_sessions`
|
|
98
|
+
returns the ids `share_lore`, `ask_lore`, and `lore resume --session` accept.
|
|
99
|
+
Like those commands, `list_learnings`, `list_proposals`, and `list_sessions`
|
|
100
|
+
default to the current folder's Git repository and never to the folder's
|
|
101
|
+
name; outside a Git checkout they ask for `repo` or `allRepositories`.
|
|
102
|
+
`list_proposals` and `get_proposal` work on any workspace connection;
|
|
103
|
+
`decide_proposal` needs a workspace owner or admin connected with
|
|
104
|
+
`lore connect --login` and refuses a proposal with an open conflict; those are
|
|
105
|
+
decided in the dashboard, where the current learning can be replaced or kept
|
|
106
|
+
alongside.
|
|
107
|
+
|
|
63
108
|
Approaches turn reviewed work into reusable steps with inputs, prerequisites,
|
|
64
109
|
and result checks. They appear inside **Learnings**. A receiving agent uses its
|
|
65
110
|
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.
|
|
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.
|
|
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,33 @@ export declare const MemoryCorrectInputSchema: z.ZodObject<{
|
|
|
84
85
|
review_feedback: "review_feedback";
|
|
85
86
|
other: "other";
|
|
86
87
|
}>>;
|
|
87
|
-
agent: z.
|
|
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
|
+
/**
|
|
95
|
+
* Local, user-fixable reasons Lore is off. Each has one fixed message that
|
|
96
|
+
* names no path, URL, credential, connection or server response, so it is safe
|
|
97
|
+
* to show the agent as is; every other failure stays sanitized by toolError.
|
|
98
|
+
*/
|
|
99
|
+
declare const LOCAL_FAILURE_MESSAGES: {
|
|
100
|
+
readonly "outside-folders": "Lore is off in this folder: it is not one of the folders this connection records. Run `lore connect --folder <path>` to add it, or open the agent in a connected folder.";
|
|
101
|
+
readonly "excluded-folder": "Lore is off in this folder: this connection excludes it. Open the agent in another folder, or run `lore config open` to change the connection's folder rules.";
|
|
102
|
+
readonly paused: "Lore is paused: this connection has no folders chosen yet. Run `lore connect --folder <path>` (or `--all-projects`) to choose where Lore works.";
|
|
103
|
+
readonly "not-connected": "Lore is not connected on this machine. Run `lore connect` to set it up.";
|
|
104
|
+
readonly "ambiguous-folder": "This folder matches more than one Lore connection. Update their folder rules with `lore config open --connection <name>`.";
|
|
105
|
+
readonly "unreadable-rules": "Lore is off: its folder rules could not be read. Run `lore config open` to check them, or reconnect with `lore connect`.";
|
|
106
|
+
readonly "unusable-config": "Lore's connection file on this machine could not be used: it must be valid and private to your user. Run `lore connect` again.";
|
|
107
|
+
readonly "connection-changed": "The Lore connection for this session changed or is unavailable. Restart the agent session, or run `lore connect` again.";
|
|
108
|
+
readonly "repository-off": "Lore is off for this repository: the workspace has not enabled it. Ask a workspace owner to turn it on in the Lore dashboard's repository settings.";
|
|
109
|
+
};
|
|
110
|
+
export type LocalFailure = keyof typeof LOCAL_FAILURE_MESSAGES;
|
|
111
|
+
export declare class LoreLocalError extends Error {
|
|
112
|
+
readonly failure: LocalFailure;
|
|
113
|
+
constructor(failure: LocalFailure);
|
|
114
|
+
}
|
|
93
115
|
export declare const PrepareApproachInputSchema: z.ZodObject<{
|
|
94
116
|
repo: z.ZodOptional<z.ZodString>;
|
|
95
117
|
sessionId: z.ZodOptional<z.ZodUUID>;
|
|
@@ -100,6 +122,61 @@ export declare const PrepareApproachInputSchema: z.ZodObject<{
|
|
|
100
122
|
notes: z.ZodOptional<z.ZodString>;
|
|
101
123
|
task: z.ZodOptional<z.ZodString>;
|
|
102
124
|
}, z.core.$strict>;
|
|
125
|
+
export declare const ListProposalsInputSchema: z.ZodObject<{
|
|
126
|
+
limit: z.ZodDefault<z.ZodNumber>;
|
|
127
|
+
offset: z.ZodDefault<z.ZodNumber>;
|
|
128
|
+
repo: z.ZodOptional<z.ZodString>;
|
|
129
|
+
allRepositories: z.ZodOptional<z.ZodBoolean>;
|
|
130
|
+
}, z.core.$strict>;
|
|
131
|
+
export declare const ProposalIdInputSchema: z.ZodObject<{
|
|
132
|
+
id: z.ZodUUID;
|
|
133
|
+
}, z.core.$strict>;
|
|
134
|
+
export declare const DecideProposalInputSchema: z.ZodObject<{
|
|
135
|
+
id: z.ZodUUID;
|
|
136
|
+
decision: z.ZodEnum<{
|
|
137
|
+
approve: "approve";
|
|
138
|
+
decline: "decline";
|
|
139
|
+
}>;
|
|
140
|
+
reason: z.ZodOptional<z.ZodString>;
|
|
141
|
+
}, z.core.$strict>;
|
|
142
|
+
export declare const ListLearningsInputSchema: z.ZodObject<{
|
|
143
|
+
status: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
144
|
+
active: "active";
|
|
145
|
+
proposed: "proposed";
|
|
146
|
+
suppressed: "suppressed";
|
|
147
|
+
superseded: "superseded";
|
|
148
|
+
deleted: "deleted";
|
|
149
|
+
}>>>;
|
|
150
|
+
category: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
151
|
+
architecture: "architecture";
|
|
152
|
+
convention: "convention";
|
|
153
|
+
correction: "correction";
|
|
154
|
+
gotcha: "gotcha";
|
|
155
|
+
known_gotcha: "known_gotcha";
|
|
156
|
+
deprecated: "deprecated";
|
|
157
|
+
behavior: "behavior";
|
|
158
|
+
review_feedback: "review_feedback";
|
|
159
|
+
other: "other";
|
|
160
|
+
}>>>;
|
|
161
|
+
query: z.ZodOptional<z.ZodString>;
|
|
162
|
+
limit: z.ZodDefault<z.ZodNumber>;
|
|
163
|
+
offset: z.ZodDefault<z.ZodNumber>;
|
|
164
|
+
repo: z.ZodOptional<z.ZodString>;
|
|
165
|
+
allRepositories: z.ZodOptional<z.ZodBoolean>;
|
|
166
|
+
}, z.core.$strict>;
|
|
167
|
+
export declare const ListSessionsInputSchema: z.ZodObject<{
|
|
168
|
+
query: z.ZodOptional<z.ZodString>;
|
|
169
|
+
agent: z.ZodOptional<z.ZodString>;
|
|
170
|
+
view: z.ZodOptional<z.ZodEnum<{
|
|
171
|
+
mine: "mine";
|
|
172
|
+
shared: "shared";
|
|
173
|
+
accessible: "accessible";
|
|
174
|
+
}>>;
|
|
175
|
+
limit: z.ZodDefault<z.ZodNumber>;
|
|
176
|
+
offset: z.ZodDefault<z.ZodNumber>;
|
|
177
|
+
repo: z.ZodOptional<z.ZodString>;
|
|
178
|
+
allRepositories: z.ZodOptional<z.ZodBoolean>;
|
|
179
|
+
}, z.core.$strict>;
|
|
103
180
|
export interface CreateMcpServerOptions {
|
|
104
181
|
client?: LoreClient;
|
|
105
182
|
baseUrl?: string;
|
|
@@ -113,6 +190,11 @@ export interface CreateMcpServerOptions {
|
|
|
113
190
|
* server omits prepare_context and offers only the explicit-ask tools.
|
|
114
191
|
*/
|
|
115
192
|
hostDeliversContext?: boolean;
|
|
193
|
+
/**
|
|
194
|
+
* The host `lore connect` registered this server for. Saves and lookups
|
|
195
|
+
* are attributed to it whatever `agent` the caller passes.
|
|
196
|
+
*/
|
|
197
|
+
agent?: string;
|
|
116
198
|
}
|
|
117
199
|
export declare function createMcpServer(options?: CreateMcpServerOptions): McpServer;
|
|
118
200
|
export declare function runStdioServer(): Promise<void>;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";
|
|
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;AA+G5C,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;AAiC5D;;;;GAIG;AACH,QAAA,MAAM,sBAAsB;;;;;;;;;;CAUlB,CAAC;AACX,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,sBAAsB,CAAC;AAE/D,qBAAa,cAAe,SAAQ,KAAK;IAC3B,QAAQ,CAAC,OAAO,EAAE,YAAY;gBAArB,OAAO,EAAE,YAAY;CAI3C;AAuOD,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,CA0pBX;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAGpD"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { checkDirectory, readLocalConfig, resolveLocalConnection } from "@lore-co/core/local-scope";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { checkDirectory, readDirectoryRules, readLocalConfig, resolveLocalConnection, savedLocalConnections } from "@lore-co/core/local-scope";
|
|
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";
|
|
5
6
|
import { MAX_EVENT_IMAGE_BYTES, inspectEventImage } from "@lore-co/core/image-bytes";
|
|
6
7
|
import { open as openImageFile } from "node:fs/promises";
|
|
7
8
|
import { closeSync, constants as fsConstants, fstatSync, openSync, readFileSync, realpathSync, } from "node:fs";
|
|
@@ -15,6 +16,8 @@ import { z } from "zod";
|
|
|
15
16
|
import { CreateApproachSchema, ReviseApproachSchema, SaveApproachSchema, StartApproachRunSchema, ApproachRunUpdateSchema } from "@lore-co/sdk";
|
|
16
17
|
import { ApproachRunDecisionSchema } from "@lore-co/sdk";
|
|
17
18
|
import { ImportSkillSchema, PreviewSkillSchema } from "@lore-co/sdk";
|
|
19
|
+
import { sessionDisplayTitle } from "@lore-co/sdk";
|
|
20
|
+
import { MemoryCategorySchema, MemoryStatusSchema } from "@lore-co/core/schemas";
|
|
18
21
|
export { MCP_RELIABILITY_INTEGRATION, } from "@lore-co/core/integration-contract";
|
|
19
22
|
const scopeShape = {
|
|
20
23
|
organization: z.string().trim().min(1).optional(),
|
|
@@ -73,9 +76,36 @@ function readStoredConnectorConfig(home) {
|
|
|
73
76
|
}
|
|
74
77
|
}
|
|
75
78
|
}
|
|
79
|
+
/** The id `lore connect --agent generic` records when no --agent-id names the host. */
|
|
80
|
+
const GENERIC_MCP_AGENT = "generic";
|
|
81
|
+
/**
|
|
82
|
+
* Hosts where `lore connect` installs a separate agent named lore, with the
|
|
83
|
+
* tool their main agent delegates through. Not every host shows an MCP
|
|
84
|
+
* server's instructions to the model (OpenCode 1.2 does not), so the hand-off
|
|
85
|
+
* is repeated in the descriptions of the tools a main agent reaches for first.
|
|
86
|
+
*/
|
|
87
|
+
const LORE_AGENT_DELEGATION = {
|
|
88
|
+
claude: "the Agent tool with subagent_type lore",
|
|
89
|
+
codex: "spawn_agent with agent_type lore",
|
|
90
|
+
"copilot-cli": "the lore custom agent",
|
|
91
|
+
"copilot-vscode": "the lore custom agent",
|
|
92
|
+
cursor: "the Task tool with the lore subagent",
|
|
93
|
+
opencode: "the task tool with subagent_type lore",
|
|
94
|
+
};
|
|
95
|
+
/** The hand-off rule for a host with a lore agent, or nothing for other hosts. */
|
|
96
|
+
function loreAgentHandOff(hostAgent) {
|
|
97
|
+
const route = LORE_AGENT_DELEGATION[hostAgent];
|
|
98
|
+
if (route === undefined)
|
|
99
|
+
return null;
|
|
100
|
+
return {
|
|
101
|
+
instructions: `When the user addresses Lore or asks for one of these things, this host offers a separate agent named lore that lore connect installs: hand the request to it with ${route}, passing 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 uses the tools directly, as does a host where the lore agent is missing.`,
|
|
102
|
+
tool: ` If you are the main agent and this host has the lore agent (installed by lore connect), hand this request to it with ${route} and the user's own words instead of calling this tool; the lore agent itself calls it.`,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
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");
|
|
76
106
|
export const MemorySearchInputSchema = z
|
|
77
107
|
.object({
|
|
78
|
-
agent:
|
|
108
|
+
agent: callerAgentSchema,
|
|
79
109
|
task: z.string().trim().min(1).describe("Task or question to search for"),
|
|
80
110
|
scope: scopeSchema.optional(),
|
|
81
111
|
...scopeShape,
|
|
@@ -93,7 +123,7 @@ export const MemoryGetInputSchema = z
|
|
|
93
123
|
.strict();
|
|
94
124
|
export const AskLoreInputSchema = z
|
|
95
125
|
.object({
|
|
96
|
-
agent:
|
|
126
|
+
agent: callerAgentSchema,
|
|
97
127
|
question: z
|
|
98
128
|
.string()
|
|
99
129
|
.trim()
|
|
@@ -117,8 +147,9 @@ export const MemoryRememberInputSchema = z
|
|
|
117
147
|
content: z.string().trim().min(1).describe("Durable knowledge to save"),
|
|
118
148
|
scope: scopeSchema.optional(),
|
|
119
149
|
...scopeShape,
|
|
150
|
+
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"),
|
|
120
151
|
category: categorySchema.optional(),
|
|
121
|
-
agent:
|
|
152
|
+
agent: callerAgentSchema,
|
|
122
153
|
sessionId: z.string().trim().min(1).optional(),
|
|
123
154
|
})
|
|
124
155
|
.strict();
|
|
@@ -127,7 +158,7 @@ export const MemoryCorrectInputSchema = z
|
|
|
127
158
|
id: z.uuid().describe("Active memory UUID to correct"),
|
|
128
159
|
content: z.string().trim().min(1).describe("Correct replacement content"),
|
|
129
160
|
category: categorySchema.optional(),
|
|
130
|
-
agent:
|
|
161
|
+
agent: callerAgentSchema,
|
|
131
162
|
sessionId: z.string().trim().min(1).optional(),
|
|
132
163
|
})
|
|
133
164
|
.strict();
|
|
@@ -153,7 +184,94 @@ function toolResult(value, text) {
|
|
|
153
184
|
structuredContent,
|
|
154
185
|
};
|
|
155
186
|
}
|
|
187
|
+
/**
|
|
188
|
+
* Local, user-fixable reasons Lore is off. Each has one fixed message that
|
|
189
|
+
* names no path, URL, credential, connection or server response, so it is safe
|
|
190
|
+
* to show the agent as is; every other failure stays sanitized by toolError.
|
|
191
|
+
*/
|
|
192
|
+
const LOCAL_FAILURE_MESSAGES = {
|
|
193
|
+
"outside-folders": "Lore is off in this folder: it is not one of the folders this connection records. Run `lore connect --folder <path>` to add it, or open the agent in a connected folder.",
|
|
194
|
+
"excluded-folder": "Lore is off in this folder: this connection excludes it. Open the agent in another folder, or run `lore config open` to change the connection's folder rules.",
|
|
195
|
+
"paused": "Lore is paused: this connection has no folders chosen yet. Run `lore connect --folder <path>` (or `--all-projects`) to choose where Lore works.",
|
|
196
|
+
"not-connected": "Lore is not connected on this machine. Run `lore connect` to set it up.",
|
|
197
|
+
"ambiguous-folder": "This folder matches more than one Lore connection. Update their folder rules with `lore config open --connection <name>`.",
|
|
198
|
+
"unreadable-rules": "Lore is off: its folder rules could not be read. Run `lore config open` to check them, or reconnect with `lore connect`.",
|
|
199
|
+
"unusable-config": "Lore's connection file on this machine could not be used: it must be valid and private to your user. Run `lore connect` again.",
|
|
200
|
+
"connection-changed": "The Lore connection for this session changed or is unavailable. Restart the agent session, or run `lore connect` again.",
|
|
201
|
+
"repository-off": "Lore is off for this repository: the workspace has not enabled it. Ask a workspace owner to turn it on in the Lore dashboard's repository settings.",
|
|
202
|
+
};
|
|
203
|
+
export class LoreLocalError extends Error {
|
|
204
|
+
failure;
|
|
205
|
+
constructor(failure) {
|
|
206
|
+
super(LOCAL_FAILURE_MESSAGES[failure]);
|
|
207
|
+
this.failure = failure;
|
|
208
|
+
this.name = "LoreLocalError";
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
/** Static errors @lore-co/core raises for a connection file it cannot use. */
|
|
212
|
+
const UNUSABLE_CONFIG_REASONS = [
|
|
213
|
+
"Lore connection files must be private", "Invalid Lore config", "Lore config is too large", "Lore connection identity changed",
|
|
214
|
+
"Invalid saved Lore connection", "Duplicate Lore connections", "The current Lore connection is not saved", "Invalid Lore connection ID",
|
|
215
|
+
];
|
|
216
|
+
/** Static reasons from @lore-co/core's folder and connection checks. */
|
|
217
|
+
function localFailureForReason(reason) {
|
|
218
|
+
if (reason === "Outside allowed folders" || reason.startsWith("No Lore connection allows this folder"))
|
|
219
|
+
return "outside-folders";
|
|
220
|
+
if (reason === "Excluded folder")
|
|
221
|
+
return "excluded-folder";
|
|
222
|
+
if (reason.startsWith("Lore is not connected"))
|
|
223
|
+
return "not-connected";
|
|
224
|
+
if (reason.startsWith("This folder matches multiple Lore connections"))
|
|
225
|
+
return "ambiguous-folder";
|
|
226
|
+
if (reason.startsWith("Folder rules could not be checked") || reason.startsWith("A saved connection has invalid folder rules"))
|
|
227
|
+
return "unreadable-rules";
|
|
228
|
+
if (UNUSABLE_CONFIG_REASONS.some(prefix => reason.startsWith(prefix)))
|
|
229
|
+
return "unusable-config";
|
|
230
|
+
if (reason.startsWith("This session belongs to a different Lore connection") || reason.startsWith("The saved Lore connection is unavailable") || reason.startsWith("Lore connection changed"))
|
|
231
|
+
return "connection-changed";
|
|
232
|
+
return undefined;
|
|
233
|
+
}
|
|
234
|
+
/** True when every connection this machine knows has no folders chosen. */
|
|
235
|
+
async function connectionsHaveNoFolders(home) {
|
|
236
|
+
try {
|
|
237
|
+
const config = await readLocalConfig(home);
|
|
238
|
+
const rules = config?.savedConnections === undefined
|
|
239
|
+
? [await readDirectoryRules(home)]
|
|
240
|
+
: (await savedLocalConnections(home)).map(connection => connection.directories);
|
|
241
|
+
return rules.length > 0 && rules.every(value => value !== undefined && value.include.length === 0);
|
|
242
|
+
}
|
|
243
|
+
catch {
|
|
244
|
+
return false;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* The error for a denied folder check or connection lookup: typed when the
|
|
249
|
+
* reason is a known local one, otherwise a bare error toolError sanitizes.
|
|
250
|
+
*/
|
|
251
|
+
async function localDenial(reason, home) {
|
|
252
|
+
let failure = localFailureForReason(reason);
|
|
253
|
+
if (failure === "outside-folders" && await connectionsHaveNoFolders(home))
|
|
254
|
+
failure = "paused";
|
|
255
|
+
return failure === undefined ? new Error("Lore is off") : new LoreLocalError(failure);
|
|
256
|
+
}
|
|
257
|
+
/** A thrown connection-lookup error as its typed form when it is a known local one. */
|
|
258
|
+
async function typedLocalError(error, home) {
|
|
259
|
+
if (!(error instanceof Error))
|
|
260
|
+
return error;
|
|
261
|
+
const denial = await localDenial(error.message, home);
|
|
262
|
+
return denial instanceof LoreLocalError ? denial : error;
|
|
263
|
+
}
|
|
264
|
+
function repositoryTurnedOff(error) {
|
|
265
|
+
if (!(error instanceof SharedMemoryApiError) || error.status !== 403)
|
|
266
|
+
return false;
|
|
267
|
+
const details = error.details;
|
|
268
|
+
return typeof details === "object" && details !== null && details.code === "REPOSITORY_NOT_ALLOWED";
|
|
269
|
+
}
|
|
156
270
|
function toolError(error) {
|
|
271
|
+
if (error instanceof LoreLocalError)
|
|
272
|
+
return toolMessage(error.message);
|
|
273
|
+
if (repositoryTurnedOff(error))
|
|
274
|
+
return toolMessage(LOCAL_FAILURE_MESSAGES["repository-off"]);
|
|
157
275
|
const details = error instanceof SharedMemoryApiError
|
|
158
276
|
? {
|
|
159
277
|
error: "Lore request failed",
|
|
@@ -171,6 +289,148 @@ function toolError(error) {
|
|
|
171
289
|
function toolMessage(message) {
|
|
172
290
|
return { ...toolResult({ error: message }, message), isError: true };
|
|
173
291
|
}
|
|
292
|
+
function singleLine(text, width) {
|
|
293
|
+
const flat = text.replaceAll(/\s+/gu, " ").trim();
|
|
294
|
+
return flat.length > width ? `${flat.slice(0, width - 1)}…` : flat;
|
|
295
|
+
}
|
|
296
|
+
function dateOnly(value) {
|
|
297
|
+
return value.slice(0, 10);
|
|
298
|
+
}
|
|
299
|
+
/** The same scope wording as `lore learnings` and `lore review`. */
|
|
300
|
+
function scopeLabel(scope) {
|
|
301
|
+
const parts = [
|
|
302
|
+
...(scope.repo === undefined ? [] : [scope.repo]),
|
|
303
|
+
...(scope.project === undefined ? [] : [`project ${scope.project}`]),
|
|
304
|
+
...(scope.path === undefined ? [] : [scope.path]),
|
|
305
|
+
...(scope.component === undefined ? [] : [scope.component]),
|
|
306
|
+
...(scope.agent === undefined ? [] : [`for ${scope.agent}`]),
|
|
307
|
+
];
|
|
308
|
+
return parts.length === 0 ? "workspace" : parts.join(" · ");
|
|
309
|
+
}
|
|
310
|
+
function sourceLabel(source) {
|
|
311
|
+
return [source.agent, ...(source.sessionId === undefined ? [] : [`session ${source.sessionId}`])].join(", ");
|
|
312
|
+
}
|
|
313
|
+
function decisionLabel(decision) {
|
|
314
|
+
switch (decision) {
|
|
315
|
+
case "approve": return "approved";
|
|
316
|
+
case "reject": return "declined";
|
|
317
|
+
case "use_proposal": return "approved, replacing the conflicting learning";
|
|
318
|
+
case "keep_both": return "approved alongside the conflicting learning";
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
function openConflicts(detail) {
|
|
322
|
+
return detail.conflicts.filter(conflict => conflict.resolution === null);
|
|
323
|
+
}
|
|
324
|
+
/** One pending proposal as list_proposals reports it: the learning plus what a reviewer needs to decide. */
|
|
325
|
+
function proposalSummary(memory, detail) {
|
|
326
|
+
const open = detail === null ? null : openConflicts(detail).length;
|
|
327
|
+
return {
|
|
328
|
+
id: memory.id,
|
|
329
|
+
text: memory.content,
|
|
330
|
+
category: memory.category,
|
|
331
|
+
status: memory.status,
|
|
332
|
+
scope: memory.scope,
|
|
333
|
+
source: memory.source,
|
|
334
|
+
proposedAt: detail?.metadata.proposedAt ?? memory.createdAt,
|
|
335
|
+
reason: detail?.metadata.reason ?? null,
|
|
336
|
+
/** null when the connection cannot read proposal details (an integration token). */
|
|
337
|
+
conflict: open === null ? null : open > 0,
|
|
338
|
+
openConflicts: open,
|
|
339
|
+
};
|
|
340
|
+
}
|
|
341
|
+
function proposalLine(index, proposal) {
|
|
342
|
+
const flags = [
|
|
343
|
+
scopeLabel(proposal.scope),
|
|
344
|
+
`from ${sourceLabel(proposal.source)}`,
|
|
345
|
+
...(proposal.conflict === true ? [`OPEN CONFLICT (${proposal.openConflicts})`] : []),
|
|
346
|
+
...(proposal.conflict === null ? ["conflicts unknown"] : []),
|
|
347
|
+
];
|
|
348
|
+
return `${index}. ${proposal.id}\n ${singleLine(proposal.text, 160)}\n ${flags.join(" · ")}`;
|
|
349
|
+
}
|
|
350
|
+
function formatProposalDetail(detail) {
|
|
351
|
+
const { memory, metadata, conflicts, conflictTargets } = detail;
|
|
352
|
+
const decision = metadata.decision === null
|
|
353
|
+
? "pending"
|
|
354
|
+
: `${decisionLabel(metadata.decision)} on ${dateOnly(metadata.decidedAt ?? metadata.proposedAt)}${metadata.decisionReason === null ? "" : `: ${metadata.decisionReason}`}`;
|
|
355
|
+
const lines = [
|
|
356
|
+
`Proposal ${memory.id}`,
|
|
357
|
+
`Status: ${memory.status}`,
|
|
358
|
+
`Category: ${memory.category}`,
|
|
359
|
+
`Scope: ${scopeLabel(memory.scope)}`,
|
|
360
|
+
`Source: ${sourceLabel(memory.source)}`,
|
|
361
|
+
`Proposed: ${dateOnly(metadata.proposedAt)} (${metadata.reason})`,
|
|
362
|
+
`Decision: ${decision}`,
|
|
363
|
+
"",
|
|
364
|
+
memory.content.trim(),
|
|
365
|
+
];
|
|
366
|
+
if (conflicts.length > 0) {
|
|
367
|
+
const targets = new Map(conflictTargets.map(target => [target.id, target]));
|
|
368
|
+
lines.push("", `Conflicts (${conflicts.length}):`);
|
|
369
|
+
for (const conflict of conflicts) {
|
|
370
|
+
const state = conflict.resolution === null ? "open" : decisionLabel(conflict.resolution);
|
|
371
|
+
lines.push(` ${conflict.severity} ${conflict.detector} conflict with ${conflict.targetMemoryId} (${state})`);
|
|
372
|
+
lines.push(` Evidence: ${singleLine(conflict.evidence.summary, 160)}`);
|
|
373
|
+
const target = targets.get(conflict.targetMemoryId);
|
|
374
|
+
if (target !== undefined)
|
|
375
|
+
lines.push(` Current: ${singleLine(target.content, 160)}`);
|
|
376
|
+
}
|
|
377
|
+
if (openConflicts(detail).length > 0) {
|
|
378
|
+
lines.push("", "Open conflicts are decided in the dashboard, where the current learning can be replaced or kept alongside. decide_proposal refuses them.");
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
return lines.join("\n");
|
|
382
|
+
}
|
|
383
|
+
function formatDecision(decision, result) {
|
|
384
|
+
const { proposal } = result;
|
|
385
|
+
if (decision === "approve") {
|
|
386
|
+
return proposal.status === "active"
|
|
387
|
+
? `Approved ${proposal.id}. The learning is now active${proposal.scope.repo === undefined ? " across the workspace" : ` for ${proposal.scope.repo}`}.`
|
|
388
|
+
: `Reviewed ${proposal.id}. Learning status: ${proposal.status}.`;
|
|
389
|
+
}
|
|
390
|
+
return `Declined ${proposal.id}. The proposal will not become a learning.`;
|
|
391
|
+
}
|
|
392
|
+
function sessionLine(session) {
|
|
393
|
+
const title = session.title ?? sessionDisplayTitle(session) ?? `${session.agent} session`;
|
|
394
|
+
const where = session.repo ?? session.project;
|
|
395
|
+
const state = session.endedAt === null ? "still open" : `ended ${dateOnly(session.endedAt)}`;
|
|
396
|
+
return `- ${session.id}: ${singleLine(title, 120)} (${session.agent}${where ? `, ${where}` : ""}; last active ${dateOnly(session.lastActivityAt)}, ${state}, ${session.eventCount} events)`;
|
|
397
|
+
}
|
|
398
|
+
function apiDetailMessage(error) {
|
|
399
|
+
const details = error.details;
|
|
400
|
+
if (typeof details === "object" && details !== null && "message" in details) {
|
|
401
|
+
const message = details.message;
|
|
402
|
+
if (typeof message === "string")
|
|
403
|
+
return message;
|
|
404
|
+
if (Array.isArray(message))
|
|
405
|
+
return message.map(String).join("; ");
|
|
406
|
+
}
|
|
407
|
+
return typeof details === "string" && details !== "" ? details : undefined;
|
|
408
|
+
}
|
|
409
|
+
/**
|
|
410
|
+
* The same explanations `lore review` prints, so an agent can tell the user
|
|
411
|
+
* why a review did not happen instead of a sanitized protocol failure.
|
|
412
|
+
*/
|
|
413
|
+
function reviewFailure(error, id, dashboard) {
|
|
414
|
+
const place = dashboard === undefined ? "the Lore dashboard" : `the Lore dashboard (${dashboard})`;
|
|
415
|
+
if (error instanceof SharedMemoryApiError) {
|
|
416
|
+
const detail = apiDetailMessage(error);
|
|
417
|
+
if (error.status === 401) {
|
|
418
|
+
return toolMessage(`Reviewing proposals needs a connection that identifies you. Reconnect with lore connect --login, or review in ${place}.`);
|
|
419
|
+
}
|
|
420
|
+
if (error.status === 403) {
|
|
421
|
+
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.`);
|
|
422
|
+
}
|
|
423
|
+
if (error.status === 404) {
|
|
424
|
+
return toolMessage(detail !== undefined && /not found/iu.test(detail)
|
|
425
|
+
? `Proposal ${id} was not found in this workspace. It may already be decided; call list_proposals again.`
|
|
426
|
+
: "This Lore server does not support reviewing proposals over MCP. Upgrade the server, or review in the dashboard.");
|
|
427
|
+
}
|
|
428
|
+
if (error.status === 409) {
|
|
429
|
+
return toolMessage(`${detail ?? "The proposal cannot be decided this way"}. An open conflict or an earlier decision is handled in ${place}.`);
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
return toolError(error);
|
|
433
|
+
}
|
|
174
434
|
// The same request shape as `lore approach prepare`: the repository defaults to
|
|
175
435
|
// the current folder and a native session id resolves to the captured session.
|
|
176
436
|
export const PrepareApproachInputSchema = z.object({
|
|
@@ -183,6 +443,41 @@ export const PrepareApproachInputSchema = z.object({
|
|
|
183
443
|
notes: z.string().trim().max(20000).optional(),
|
|
184
444
|
task: z.string().trim().min(1).max(2000).optional(),
|
|
185
445
|
}).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." });
|
|
446
|
+
// Listing tools mirror `lore learnings`, `lore review`, and `lore resume`: the
|
|
447
|
+
// repository defaults to the current folder, or the whole workspace on request.
|
|
448
|
+
const listingRepoShape = {
|
|
449
|
+
repo: z.string().trim().min(1).max(500).optional().describe("Repository as owner/name, only when the user names one. Leave unset for the current folder's Git repository; never the folder name"),
|
|
450
|
+
allRepositories: z.boolean().optional().describe("List across every repository in the workspace instead of one"),
|
|
451
|
+
};
|
|
452
|
+
const oneRepository = { message: "Choose repo or allRepositories, not both.", path: ["allRepositories"] };
|
|
453
|
+
const notBoth = (input) => !(input.repo !== undefined && input.allRepositories);
|
|
454
|
+
export const ListProposalsInputSchema = z.object({
|
|
455
|
+
...listingRepoShape,
|
|
456
|
+
limit: z.number().int().positive().max(50).default(20),
|
|
457
|
+
offset: z.number().int().nonnegative().default(0),
|
|
458
|
+
}).strict().refine(notBoth, oneRepository);
|
|
459
|
+
export const ProposalIdInputSchema = z.object({ id: z.uuid().describe("Proposal UUID from list_proposals") }).strict();
|
|
460
|
+
export const DecideProposalInputSchema = z.object({
|
|
461
|
+
id: z.uuid().describe("Proposal UUID from list_proposals"),
|
|
462
|
+
decision: z.enum(["approve", "decline"]).describe("approve activates the learning; decline retires the proposal"),
|
|
463
|
+
reason: z.string().trim().min(1).max(2000).optional().describe("Why, as the person said it; recorded with the decision"),
|
|
464
|
+
}).strict();
|
|
465
|
+
export const ListLearningsInputSchema = z.object({
|
|
466
|
+
...listingRepoShape,
|
|
467
|
+
status: z.array(MemoryStatusSchema).min(1).optional().describe("Statuses to include; default active"),
|
|
468
|
+
category: z.array(MemoryCategorySchema).min(1).optional(),
|
|
469
|
+
query: z.string().trim().min(1).max(500).optional().describe("Only learnings whose text contains this phrase"),
|
|
470
|
+
limit: z.number().int().positive().max(100).default(50),
|
|
471
|
+
offset: z.number().int().nonnegative().default(0),
|
|
472
|
+
}).strict().refine(notBoth, oneRepository);
|
|
473
|
+
export const ListSessionsInputSchema = z.object({
|
|
474
|
+
...listingRepoShape,
|
|
475
|
+
query: z.string().trim().min(1).max(500).optional().describe("Words from the session's title or work"),
|
|
476
|
+
agent: z.string().trim().min(1).max(100).optional().describe("Only sessions recorded by this agent id"),
|
|
477
|
+
view: z.enum(["mine", "shared", "accessible"]).optional().describe("mine: only the member's own sessions; default accessible"),
|
|
478
|
+
limit: z.number().int().positive().max(100).default(20),
|
|
479
|
+
offset: z.number().int().nonnegative().default(0),
|
|
480
|
+
}).strict().refine(notBoth, oneRepository);
|
|
186
481
|
export function createMcpServer(options = {}) {
|
|
187
482
|
// Credentials and every folder check must use the same home, even if the
|
|
188
483
|
// environment or working directory changes while this server is running.
|
|
@@ -196,6 +491,12 @@ export function createMcpServer(options = {}) {
|
|
|
196
491
|
const hostDeliversContext = options.hostDeliversContext ?? process.env.LORE_MCP_HOST_CONTEXT === "hooks";
|
|
197
492
|
if (contextOnly && hostDeliversContext)
|
|
198
493
|
throw new Error("A context-only connection must keep prepare_context");
|
|
494
|
+
const hostAgent = options.agent ?? environmentValue(process.env, "LORE_MCP_AGENT") ?? "mcp";
|
|
495
|
+
// The host Lore was connected for is more reliable than what a model says
|
|
496
|
+
// about itself: models pass their model name ("claude-sonnet-4-6") as
|
|
497
|
+
// `agent`. A caller's agent counts only when the host is unnamed: no
|
|
498
|
+
// LORE_MCP_AGENT, or `lore connect --agent generic` without --agent-id.
|
|
499
|
+
const callerAgent = (agent) => hostAgent === "mcp" || hostAgent === GENERIC_MCP_AGENT ? agent ?? hostAgent : hostAgent;
|
|
199
500
|
const environmentApiUrl = environmentValue(process.env, "LORE_API_URL");
|
|
200
501
|
const environmentToken = environmentValue(process.env, "LORE_WORKSPACE_TOKEN");
|
|
201
502
|
const storedConfig = options.client === undefined &&
|
|
@@ -228,11 +529,12 @@ export function createMcpServer(options = {}) {
|
|
|
228
529
|
});
|
|
229
530
|
const automaticConnection = options.client === undefined && options.baseUrl === undefined && options.headers === undefined && environmentApiUrl === undefined && environmentToken === undefined;
|
|
230
531
|
let sessionConnection;
|
|
532
|
+
const denied = async (access) => toolError(await localDenial(access.reason, home));
|
|
231
533
|
async function clientForFolder() {
|
|
232
|
-
if (automaticConnection && (await readLocalConfig(home))?.savedConnections) {
|
|
233
|
-
const selected = await resolveLocalConnection(process.cwd(), home);
|
|
534
|
+
if (automaticConnection && (await readLocalConfig(home).catch(async (error) => { throw await typedLocalError(error, home); }))?.savedConnections) {
|
|
535
|
+
const selected = await resolveLocalConnection(process.cwd(), home).catch(async (error) => { throw await typedLocalError(error, home); });
|
|
234
536
|
if (sessionConnection !== undefined && selected.connectionId !== sessionConnection)
|
|
235
|
-
throw new
|
|
537
|
+
throw new LoreLocalError("connection-changed");
|
|
236
538
|
sessionConnection = selected.connectionId;
|
|
237
539
|
return new LoreClient({ baseUrl: selected.apiUrl, headers: { authorization: `Bearer ${selected.token}` },
|
|
238
540
|
...(typeof selected.dashboardUrl === "string" ? { dashboardUrl: selected.dashboardUrl } : {}),
|
|
@@ -244,16 +546,21 @@ export function createMcpServer(options = {}) {
|
|
|
244
546
|
const token = header?.replace(/^Bearer /u, "") ?? environmentToken ?? storedToken;
|
|
245
547
|
const access = await checkDirectory(process.cwd(), home, url && token ? { apiUrl: url, token } : undefined);
|
|
246
548
|
if (!access.allowed)
|
|
247
|
-
throw
|
|
549
|
+
throw await localDenial(access.reason, home);
|
|
248
550
|
return baseClient;
|
|
249
551
|
}
|
|
552
|
+
const handOff = loreAgentHandOff(hostAgent);
|
|
553
|
+
const handOffInstructions = handOff?.instructions
|
|
554
|
+
?? "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.";
|
|
555
|
+
// Appended to the tools a main agent calls first for a Lore request.
|
|
556
|
+
const handOffNote = handOff?.tool ?? "";
|
|
250
557
|
const server = new McpServer({
|
|
251
558
|
name: "lore",
|
|
252
|
-
version: "0.2.
|
|
559
|
+
version: "0.2.25",
|
|
253
560
|
}, {
|
|
254
561
|
instructions: hostDeliversContext
|
|
255
|
-
?
|
|
256
|
-
:
|
|
562
|
+
? `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. ${handOffInstructions}`
|
|
563
|
+
: `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. ${handOffInstructions}`,
|
|
257
564
|
});
|
|
258
565
|
if (!hostDeliversContext)
|
|
259
566
|
server.registerTool("prepare_context", {
|
|
@@ -265,7 +572,7 @@ export function createMcpServer(options = {}) {
|
|
|
265
572
|
try {
|
|
266
573
|
const access = await checkDirectory(process.cwd(), home);
|
|
267
574
|
if (!access.allowed)
|
|
268
|
-
return
|
|
575
|
+
return await denied(access);
|
|
269
576
|
// Scoped connections only expose this endpoint; repository policy is
|
|
270
577
|
// enforced by the server on every request, including after revocation.
|
|
271
578
|
const client = contextOnly ? baseClient : await clientForFolder();
|
|
@@ -326,6 +633,21 @@ export function createMcpServer(options = {}) {
|
|
|
326
633
|
// Like the CLI, these tools read the repository from the current folder when
|
|
327
634
|
// the request omits it, so a run carries only the task values.
|
|
328
635
|
const folderRepo = async (repo) => repo ?? repositoryScopeFromDirectory(process.cwd());
|
|
636
|
+
// Questions default to the enclosing Git checkout, like lore ask and the
|
|
637
|
+
// hooks, and then see that repository's learnings. Outside a checkout the
|
|
638
|
+
// question searches every repository the workspace policy allows.
|
|
639
|
+
const questionRepo = async (repo) => {
|
|
640
|
+
const resolved = repo ?? await repositoryScopeFromCheckout(process.cwd());
|
|
641
|
+
return resolved === undefined ? {} : { repo: resolved };
|
|
642
|
+
};
|
|
643
|
+
const searchTask = async (input) => {
|
|
644
|
+
const task = input.scope?.repo === undefined ? { ...input, ...await questionRepo(input.repo) } : input;
|
|
645
|
+
const repo = task.scope?.repo ?? task.repo;
|
|
646
|
+
// Retrieval gives a native agent nothing outside a repository, so a search
|
|
647
|
+
// from such a folder keeps the generic agent and its workspace-wide results.
|
|
648
|
+
const agent = repo === undefined && isNativeCodingAgent(callerAgent(input.agent)) ? "mcp" : callerAgent(input.agent);
|
|
649
|
+
return { ...task, agent };
|
|
650
|
+
};
|
|
329
651
|
server.registerTool("search_approaches", {
|
|
330
652
|
title: "Find a saved approach",
|
|
331
653
|
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.",
|
|
@@ -437,7 +759,7 @@ export function createMcpServer(options = {}) {
|
|
|
437
759
|
}, async (input) => {
|
|
438
760
|
const access = await checkDirectory(process.cwd(), home);
|
|
439
761
|
if (!access.allowed)
|
|
440
|
-
return
|
|
762
|
+
return await denied(access);
|
|
441
763
|
try {
|
|
442
764
|
const link = await (await clientForFolder()).share(input);
|
|
443
765
|
return toolResult(link, sharedLinkMarkdown(link));
|
|
@@ -448,7 +770,7 @@ export function createMcpServer(options = {}) {
|
|
|
448
770
|
});
|
|
449
771
|
server.registerTool("search_learnings", {
|
|
450
772
|
title: "Search shared learnings",
|
|
451
|
-
description: "Find shared engineering learnings relevant to a task and return formatted context.",
|
|
773
|
+
description: "Find shared engineering learnings relevant to a task and return formatted context. The repository defaults to the current folder's Git repository." + handOffNote,
|
|
452
774
|
inputSchema: MemorySearchInputSchema,
|
|
453
775
|
annotations: {
|
|
454
776
|
readOnlyHint: true,
|
|
@@ -457,9 +779,9 @@ export function createMcpServer(options = {}) {
|
|
|
457
779
|
}, async (input) => {
|
|
458
780
|
const access = await checkDirectory(process.cwd(), home);
|
|
459
781
|
if (!access.allowed)
|
|
460
|
-
return
|
|
782
|
+
return await denied(access);
|
|
461
783
|
try {
|
|
462
|
-
const result = await (await clientForFolder()).getContext(input);
|
|
784
|
+
const result = await (await clientForFolder()).getContext(await searchTask(input));
|
|
463
785
|
return toolResult(result, result.context || "No relevant shared learnings found.");
|
|
464
786
|
}
|
|
465
787
|
catch (error) {
|
|
@@ -471,7 +793,8 @@ export function createMcpServer(options = {}) {
|
|
|
471
793
|
description: "Query shared context: durable knowledge plus prior work sessions " +
|
|
472
794
|
"(what previous agents tried, errors hit, decisions made). Answers " +
|
|
473
795
|
"include provenance. Pass sessionId to prioritize the sessions your " +
|
|
474
|
-
"current work continues."
|
|
796
|
+
"current work continues. The repository defaults to the current " +
|
|
797
|
+
"folder's Git repository." + handOffNote,
|
|
475
798
|
inputSchema: AskLoreInputSchema,
|
|
476
799
|
annotations: {
|
|
477
800
|
readOnlyHint: true,
|
|
@@ -480,12 +803,12 @@ export function createMcpServer(options = {}) {
|
|
|
480
803
|
}, async (input) => {
|
|
481
804
|
const access = await checkDirectory(process.cwd(), home);
|
|
482
805
|
if (!access.allowed)
|
|
483
|
-
return
|
|
806
|
+
return await denied(access);
|
|
484
807
|
try {
|
|
485
808
|
const result = await (await clientForFolder()).ask({
|
|
486
809
|
question: input.question,
|
|
487
|
-
agent: input.agent
|
|
488
|
-
...(input.repo
|
|
810
|
+
agent: callerAgent(input.agent),
|
|
811
|
+
...await questionRepo(input.repo),
|
|
489
812
|
...(input.project === undefined ? {} : { project: input.project }),
|
|
490
813
|
...(input.sessionId === undefined
|
|
491
814
|
? {}
|
|
@@ -517,6 +840,24 @@ export function createMcpServer(options = {}) {
|
|
|
517
840
|
return toolError(error);
|
|
518
841
|
}
|
|
519
842
|
});
|
|
843
|
+
server.registerTool("chat_lore", {
|
|
844
|
+
title: "Chat with Lore",
|
|
845
|
+
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.",
|
|
846
|
+
inputSchema: ChatRequestSchema,
|
|
847
|
+
annotations: { readOnlyHint: true, openWorldHint: true },
|
|
848
|
+
}, async (input) => {
|
|
849
|
+
const access = await checkDirectory(process.cwd(), home);
|
|
850
|
+
if (!access.allowed)
|
|
851
|
+
return await denied(access);
|
|
852
|
+
try {
|
|
853
|
+
const result = await (await clientForFolder()).chat({ ...input, ...await questionRepo(input.repo) });
|
|
854
|
+
const cited = result.sources.filter(source => source.cited);
|
|
855
|
+
return toolResult(result, [result.answer, ...cited.map(source => `Source: ${source.kind} ${source.id} (${source.title})`)].join("\n"));
|
|
856
|
+
}
|
|
857
|
+
catch (error) {
|
|
858
|
+
return toolError(error);
|
|
859
|
+
}
|
|
860
|
+
});
|
|
520
861
|
server.registerTool("get_learning", {
|
|
521
862
|
title: "Get shared learning",
|
|
522
863
|
description: "Get one shared engineering learning by UUID.",
|
|
@@ -533,6 +874,145 @@ export function createMcpServer(options = {}) {
|
|
|
533
874
|
return toolError(error);
|
|
534
875
|
}
|
|
535
876
|
});
|
|
877
|
+
// The member's day-to-day dashboard views, so an agent can answer "what do I
|
|
878
|
+
// have pending?" and "what does Lore know here?" without a shell. Each is
|
|
879
|
+
// the request the matching CLI command sends.
|
|
880
|
+
// Like `lore learnings` and `lore review`: the enclosing Git checkout's
|
|
881
|
+
// repository, never the folder's name. Outside a checkout the caller names
|
|
882
|
+
// a repository or the whole workspace.
|
|
883
|
+
const listingRepo = async (input) => {
|
|
884
|
+
if (input.allRepositories)
|
|
885
|
+
return {};
|
|
886
|
+
const repo = input.repo ?? await repositoryScopeFromCheckout(process.cwd());
|
|
887
|
+
return repo === undefined ? null : { repo };
|
|
888
|
+
};
|
|
889
|
+
const noRepository = () => toolMessage("No Git repository detected in this folder. Pass repo as owner/name, or allRepositories for the whole workspace.");
|
|
890
|
+
const repoHeading = (repo) => repo === undefined ? "all repositories in the workspace" : repo;
|
|
891
|
+
server.registerTool("list_learnings", {
|
|
892
|
+
title: "List learnings",
|
|
893
|
+
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's Git repository: leave repo out unless the user names another, and never pass the folder name. Set allRepositories for the whole workspace." + handOffNote,
|
|
894
|
+
inputSchema: ListLearningsInputSchema,
|
|
895
|
+
annotations: { readOnlyHint: true, openWorldHint: true },
|
|
896
|
+
}, async (input) => {
|
|
897
|
+
const access = await checkDirectory(process.cwd(), home);
|
|
898
|
+
if (!access.allowed)
|
|
899
|
+
return await denied(access);
|
|
900
|
+
try {
|
|
901
|
+
const listing = await listingRepo(input);
|
|
902
|
+
if (listing === null)
|
|
903
|
+
return noRepository();
|
|
904
|
+
const { repo } = listing;
|
|
905
|
+
const statuses = input.status ?? ["active"];
|
|
906
|
+
const page = await (await clientForFolder()).listLearnings({
|
|
907
|
+
...(repo === undefined ? {} : { repo }),
|
|
908
|
+
status: statuses,
|
|
909
|
+
...(input.category === undefined ? {} : { category: input.category }),
|
|
910
|
+
...(input.query === undefined ? {} : { query: input.query }),
|
|
911
|
+
limit: input.limit,
|
|
912
|
+
offset: input.offset,
|
|
913
|
+
});
|
|
914
|
+
const lines = [
|
|
915
|
+
`${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})` : ""}`,
|
|
916
|
+
...page.memories.map(memory => `- ${memory.id} [${memory.category}${statuses.length > 1 ? `, ${memory.status}` : ""}, ${scopeLabel(memory.scope)}, updated ${dateOnly(memory.updatedAt)}]: ${singleLine(memory.content, 200)}`),
|
|
917
|
+
];
|
|
918
|
+
return toolResult({ repo: repo ?? null, total: page.total, limit: page.limit, offset: page.offset, learnings: page.memories }, lines.join("\n"));
|
|
919
|
+
}
|
|
920
|
+
catch (error) {
|
|
921
|
+
return toolError(error);
|
|
922
|
+
}
|
|
923
|
+
});
|
|
924
|
+
server.registerTool("list_proposals", {
|
|
925
|
+
title: "List pending learning proposals",
|
|
926
|
+
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's Git repository: leave repo out unless the user names another, and never pass the folder name. Set allRepositories for the whole workspace." + handOffNote,
|
|
927
|
+
inputSchema: ListProposalsInputSchema,
|
|
928
|
+
annotations: { readOnlyHint: true, openWorldHint: true },
|
|
929
|
+
}, async (input) => {
|
|
930
|
+
const access = await checkDirectory(process.cwd(), home);
|
|
931
|
+
if (!access.allowed)
|
|
932
|
+
return await denied(access);
|
|
933
|
+
try {
|
|
934
|
+
const listing = await listingRepo(input);
|
|
935
|
+
if (listing === null)
|
|
936
|
+
return noRepository();
|
|
937
|
+
const { repo } = listing;
|
|
938
|
+
const client = await clientForFolder();
|
|
939
|
+
const page = await client.listLearnings({ ...(repo === undefined ? {} : { repo }), status: ["proposed"], limit: input.limit, offset: input.offset });
|
|
940
|
+
// The list endpoint carries no conflicts; the per-proposal detail does.
|
|
941
|
+
// A connection that cannot read details still gets the list.
|
|
942
|
+
const details = await Promise.allSettled(page.memories.map(memory => client.getProposal(memory.id)));
|
|
943
|
+
const proposals = page.memories.map((memory, index) => {
|
|
944
|
+
const detail = details[index];
|
|
945
|
+
return proposalSummary(memory, detail?.status === "fulfilled" ? detail.value : null);
|
|
946
|
+
});
|
|
947
|
+
const unknownConflicts = proposals.some(proposal => proposal.conflict === null);
|
|
948
|
+
const lines = [
|
|
949
|
+
proposals.length === 0
|
|
950
|
+
? `No pending proposals for ${repoHeading(repo)}.`
|
|
951
|
+
: `${page.total} pending proposal${page.total === 1 ? "" : "s"} for ${repoHeading(repo)}${page.total > proposals.length ? ` (showing ${page.offset + 1}-${page.offset + proposals.length})` : ""}:`,
|
|
952
|
+
...proposals.map((proposal, index) => proposalLine(page.offset + index + 1, proposal)),
|
|
953
|
+
...(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."] : []),
|
|
954
|
+
...(unknownConflicts ? ["", "Conflicts could not be read with this connection; get_proposal or the dashboard shows them."] : []),
|
|
955
|
+
];
|
|
956
|
+
return toolResult({ repo: repo ?? null, total: page.total, limit: page.limit, offset: page.offset, proposals }, lines.join("\n"));
|
|
957
|
+
}
|
|
958
|
+
catch (error) {
|
|
959
|
+
return toolError(error);
|
|
960
|
+
}
|
|
961
|
+
});
|
|
962
|
+
server.registerTool("get_proposal", {
|
|
963
|
+
title: "Read a learning proposal",
|
|
964
|
+
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).",
|
|
965
|
+
inputSchema: ProposalIdInputSchema,
|
|
966
|
+
annotations: { readOnlyHint: true, openWorldHint: true },
|
|
967
|
+
}, async ({ id }) => {
|
|
968
|
+
try {
|
|
969
|
+
const detail = await (await clientForFolder()).getProposal(id);
|
|
970
|
+
return toolResult(detail, formatProposalDetail(detail));
|
|
971
|
+
}
|
|
972
|
+
catch (error) {
|
|
973
|
+
return reviewFailure(error, id, dashboardUrl);
|
|
974
|
+
}
|
|
975
|
+
});
|
|
976
|
+
server.registerTool("list_sessions", {
|
|
977
|
+
title: "List recent sessions",
|
|
978
|
+
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's Git repository: leave repo out unless the user names another, and never pass the folder name. Set allRepositories for the whole workspace and view mine for only the member's own sessions." + handOffNote,
|
|
979
|
+
inputSchema: ListSessionsInputSchema,
|
|
980
|
+
annotations: { readOnlyHint: true, openWorldHint: true },
|
|
981
|
+
}, async (input) => {
|
|
982
|
+
const access = await checkDirectory(process.cwd(), home);
|
|
983
|
+
if (!access.allowed)
|
|
984
|
+
return await denied(access);
|
|
985
|
+
try {
|
|
986
|
+
const listing = await listingRepo(input);
|
|
987
|
+
if (listing === null)
|
|
988
|
+
return noRepository();
|
|
989
|
+
const { repo } = listing;
|
|
990
|
+
const page = await (await clientForFolder()).listSessions({
|
|
991
|
+
...(repo === undefined ? {} : { repo }),
|
|
992
|
+
...(input.query === undefined ? {} : { query: input.query }),
|
|
993
|
+
...(input.agent === undefined ? {} : { agent: input.agent }),
|
|
994
|
+
...(input.view === undefined ? {} : { view: input.view }),
|
|
995
|
+
limit: input.limit,
|
|
996
|
+
offset: input.offset,
|
|
997
|
+
});
|
|
998
|
+
const sessions = page.sessions.map(session => ({
|
|
999
|
+
id: session.id, title: session.title ?? sessionDisplayTitle(session), agent: session.agent, connector: session.connector,
|
|
1000
|
+
repo: session.repo, project: session.project, startedAt: session.startedAt, lastActivityAt: session.lastActivityAt,
|
|
1001
|
+
endedAt: session.endedAt, eventCount: session.eventCount, externalSessionId: session.externalSessionId,
|
|
1002
|
+
}));
|
|
1003
|
+
const lines = [
|
|
1004
|
+
sessions.length === 0
|
|
1005
|
+
? `No recorded sessions for ${repoHeading(repo)}.`
|
|
1006
|
+
: `${page.total} session${page.total === 1 ? "" : "s"} for ${repoHeading(repo)}${page.total > sessions.length ? ` (showing ${page.offset + 1}-${page.offset + sessions.length})` : ""}:`,
|
|
1007
|
+
...page.sessions.map(sessionLine),
|
|
1008
|
+
...(sessions.length === 0 ? [] : ["", "Resume one with lore resume --session <id>; share one with share_lore (kind session)."]),
|
|
1009
|
+
];
|
|
1010
|
+
return toolResult({ repo: repo ?? null, total: page.total, limit: page.limit, offset: page.offset, sessions }, lines.join("\n"));
|
|
1011
|
+
}
|
|
1012
|
+
catch (error) {
|
|
1013
|
+
return toolError(error);
|
|
1014
|
+
}
|
|
1015
|
+
});
|
|
536
1016
|
if (writeToolsEnabled) {
|
|
537
1017
|
server.registerTool("attach_image", {
|
|
538
1018
|
title: "Attach an image to a recorded source",
|
|
@@ -542,7 +1022,7 @@ export function createMcpServer(options = {}) {
|
|
|
542
1022
|
}, async ({ eventId, path, role }) => {
|
|
543
1023
|
const access = await checkDirectory(process.cwd(), home);
|
|
544
1024
|
if (!access.allowed)
|
|
545
|
-
return
|
|
1025
|
+
return await denied(access);
|
|
546
1026
|
try {
|
|
547
1027
|
const file = await openImageFile(path, fsConstants.O_RDONLY | fsConstants.O_NOFOLLOW);
|
|
548
1028
|
let data;
|
|
@@ -571,7 +1051,8 @@ export function createMcpServer(options = {}) {
|
|
|
571
1051
|
});
|
|
572
1052
|
server.registerTool("remember_learning", {
|
|
573
1053
|
title: "Remember engineering knowledge",
|
|
574
|
-
description: "
|
|
1054
|
+
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. " +
|
|
1055
|
+
"The repository defaults to the current folder's Git repository; pass workspaceWide only when the user asks to save for every repository." + handOffNote,
|
|
575
1056
|
inputSchema: MemoryRememberInputSchema,
|
|
576
1057
|
annotations: {
|
|
577
1058
|
readOnlyHint: false,
|
|
@@ -582,7 +1063,16 @@ export function createMcpServer(options = {}) {
|
|
|
582
1063
|
}, async (input) => {
|
|
583
1064
|
const access = await checkDirectory(process.cwd(), home);
|
|
584
1065
|
if (!access.allowed)
|
|
585
|
-
return
|
|
1066
|
+
return await denied(access);
|
|
1067
|
+
if (input.workspaceWide && (input.repo ?? input.scope?.repo) !== undefined) {
|
|
1068
|
+
return toolMessage("Choose repo or workspaceWide, not both.");
|
|
1069
|
+
}
|
|
1070
|
+
// Like questions, a save that names no location belongs to the
|
|
1071
|
+
// enclosing Git checkout, so agents never save workspace-wide by
|
|
1072
|
+
// omission. Outside a checkout it stays workspace-wide.
|
|
1073
|
+
const located = [input.organization, input.project, input.repo, input.scope?.organization, input.scope?.project, input.scope?.repo]
|
|
1074
|
+
.some(value => value !== undefined);
|
|
1075
|
+
const { repo } = located || input.workspaceWide ? { repo: input.repo } : await questionRepo(undefined);
|
|
586
1076
|
try {
|
|
587
1077
|
return toolResult(await (await clientForFolder()).createLearning({
|
|
588
1078
|
...(input.import ? { import: input.import } : {}),
|
|
@@ -594,7 +1084,7 @@ export function createMcpServer(options = {}) {
|
|
|
594
1084
|
...(input.project === undefined
|
|
595
1085
|
? {}
|
|
596
1086
|
: { project: input.project }),
|
|
597
|
-
...(
|
|
1087
|
+
...(repo === undefined ? {} : { repo }),
|
|
598
1088
|
...(input.path === undefined ? {} : { path: input.path }),
|
|
599
1089
|
...(input.component === undefined
|
|
600
1090
|
? {}
|
|
@@ -603,7 +1093,7 @@ export function createMcpServer(options = {}) {
|
|
|
603
1093
|
? {}
|
|
604
1094
|
: { category: input.category }),
|
|
605
1095
|
source: {
|
|
606
|
-
agent: input.agent,
|
|
1096
|
+
agent: callerAgent(input.agent),
|
|
607
1097
|
...(input.sessionId === undefined
|
|
608
1098
|
? {}
|
|
609
1099
|
: { sessionId: input.sessionId }),
|
|
@@ -627,7 +1117,7 @@ export function createMcpServer(options = {}) {
|
|
|
627
1117
|
}, async (input) => {
|
|
628
1118
|
const access = await checkDirectory(process.cwd(), home);
|
|
629
1119
|
if (!access.allowed)
|
|
630
|
-
return
|
|
1120
|
+
return await denied(access);
|
|
631
1121
|
try {
|
|
632
1122
|
return toolResult(await (await clientForFolder()).correctLearning(input.id, {
|
|
633
1123
|
content: input.content,
|
|
@@ -635,7 +1125,7 @@ export function createMcpServer(options = {}) {
|
|
|
635
1125
|
? {}
|
|
636
1126
|
: { category: input.category }),
|
|
637
1127
|
source: {
|
|
638
|
-
agent: input.agent,
|
|
1128
|
+
agent: callerAgent(input.agent),
|
|
639
1129
|
...(input.sessionId === undefined
|
|
640
1130
|
? {}
|
|
641
1131
|
: { sessionId: input.sessionId }),
|
|
@@ -664,6 +1154,37 @@ export function createMcpServer(options = {}) {
|
|
|
664
1154
|
return toolError(error);
|
|
665
1155
|
}
|
|
666
1156
|
});
|
|
1157
|
+
server.registerTool("decide_proposal", {
|
|
1158
|
+
title: "Approve or decline a learning proposal",
|
|
1159
|
+
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.",
|
|
1160
|
+
inputSchema: DecideProposalInputSchema,
|
|
1161
|
+
annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: true },
|
|
1162
|
+
}, async ({ id, decision, reason }) => {
|
|
1163
|
+
const access = await checkDirectory(process.cwd(), home);
|
|
1164
|
+
if (!access.allowed)
|
|
1165
|
+
return await denied(access);
|
|
1166
|
+
try {
|
|
1167
|
+
const client = await clientForFolder();
|
|
1168
|
+
// Refuse here what the dashboard would refuse, with the reason, instead
|
|
1169
|
+
// of a bare HTTP 409 after the request.
|
|
1170
|
+
const detail = await client.getProposal(id);
|
|
1171
|
+
if (detail.metadata.decision !== null) {
|
|
1172
|
+
return toolMessage(`Proposal ${id} was already ${decisionLabel(detail.metadata.decision)} on ${dateOnly(detail.metadata.decidedAt ?? detail.metadata.proposedAt)}. Nothing to decide.`);
|
|
1173
|
+
}
|
|
1174
|
+
const open = openConflicts(detail);
|
|
1175
|
+
if (open.length > 0) {
|
|
1176
|
+
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.`);
|
|
1177
|
+
}
|
|
1178
|
+
const result = await client.reviewProposal(id, {
|
|
1179
|
+
decision: decision === "approve" ? "approve" : "reject",
|
|
1180
|
+
...(reason === undefined ? {} : { reason }),
|
|
1181
|
+
});
|
|
1182
|
+
return toolResult(result, formatDecision(decision, result));
|
|
1183
|
+
}
|
|
1184
|
+
catch (error) {
|
|
1185
|
+
return reviewFailure(error, id, dashboardUrl);
|
|
1186
|
+
}
|
|
1187
|
+
});
|
|
667
1188
|
}
|
|
668
1189
|
return server;
|
|
669
1190
|
}
|
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.
|
|
3
|
+
"version": "0.2.25",
|
|
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.
|
|
43
|
-
"@lore-co/sdk": "0.2.
|
|
42
|
+
"@lore-co/core": "0.2.25",
|
|
43
|
+
"@lore-co/sdk": "0.2.25"
|
|
44
44
|
},
|
|
45
45
|
"scripts": {
|
|
46
46
|
"dev": "tsx watch src/index.ts",
|