@lore-co/cli 0.1.19 → 0.1.22
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 +40 -5
- package/dist/cli.d.ts +10 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +89 -9
- package/dist/cli.js.map +1 -1
- package/dist/cursor-mcp.d.ts +5 -0
- package/dist/cursor-mcp.d.ts.map +1 -0
- package/dist/cursor-mcp.js +41 -0
- package/dist/cursor-mcp.js.map +1 -0
- package/dist/devin-client.d.ts.map +1 -1
- package/dist/devin-client.js +6 -3
- package/dist/devin-client.js.map +1 -1
- package/dist/generated-assets.d.ts +4 -4
- package/dist/generated-assets.d.ts.map +1 -1
- package/dist/generated-assets.js +4 -4
- package/dist/generated-assets.js.map +1 -1
- package/dist/guard.d.ts +1 -1
- package/dist/guard.d.ts.map +1 -1
- package/dist/guard.js +32 -1
- package/dist/guard.js.map +1 -1
- package/dist/live.d.ts.map +1 -1
- package/dist/live.js +29 -2
- package/dist/live.js.map +1 -1
- package/dist/remember.d.ts +3 -0
- package/dist/remember.d.ts.map +1 -0
- package/dist/remember.js +159 -0
- package/dist/remember.js.map +1 -0
- package/dist/runtime.d.ts +7 -3
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +298 -149
- package/dist/runtime.js.map +1 -1
- package/dist/self-host.d.ts +1 -1
- package/dist/self-host.js +2 -2
- package/dist/signed-snapshot.d.ts.map +1 -1
- package/dist/signed-snapshot.js +3 -3
- package/dist/signed-snapshot.js.map +1 -1
- package/dist/update.js +3 -3
- package/package.json +4 -3
package/dist/remember.js
ADDED
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { MemoryCategorySchema, MemoryScopeSchema, } from "@lore-co/core";
|
|
2
|
+
import { LoreTransportError, SharedMemoryApiError, SharedMemoryClient, } from "@lore-co/sdk";
|
|
3
|
+
import { ZodError } from "zod";
|
|
4
|
+
const REMEMBER_HELP = `lore remember
|
|
5
|
+
Save a durable fact, convention, correction, or decision to Lore.
|
|
6
|
+
|
|
7
|
+
Usage:
|
|
8
|
+
lore remember "<statement>" [options]
|
|
9
|
+
|
|
10
|
+
Options:
|
|
11
|
+
--category <name> Learning category (default: other)
|
|
12
|
+
--repo <repo> Limit the learning to this repository (owner/repository)
|
|
13
|
+
--project <name> Limit the learning to this project
|
|
14
|
+
--path <path> Limit the learning to a repository-relative file or directory
|
|
15
|
+
--component <name> Limit the learning to this component
|
|
16
|
+
--agent <name> Identify the source (default: human)
|
|
17
|
+
--json Print the full machine-readable response
|
|
18
|
+
--help Show this command's help
|
|
19
|
+
-- Treat all remaining arguments as statement text
|
|
20
|
+
|
|
21
|
+
Categories:
|
|
22
|
+
${MemoryCategorySchema.options.join(", ")}
|
|
23
|
+
|
|
24
|
+
Without scope flags, the learning is available workspace-wide.
|
|
25
|
+
Uses the workspace connection saved by lore connect.
|
|
26
|
+
|
|
27
|
+
Examples:
|
|
28
|
+
lore remember "Use pnpm for this repository." --repo acme/app --category convention
|
|
29
|
+
lore remember "Payment retries must use exponential backoff." --project billing
|
|
30
|
+
lore remember "The legacy endpoint is deprecated." --agent codex --json
|
|
31
|
+
`;
|
|
32
|
+
const scopeOptions = {
|
|
33
|
+
"--repo": "repo",
|
|
34
|
+
"--project": "project",
|
|
35
|
+
"--path": "path",
|
|
36
|
+
"--component": "component",
|
|
37
|
+
};
|
|
38
|
+
function parseRememberArguments(args) {
|
|
39
|
+
const parsed = {
|
|
40
|
+
content: "",
|
|
41
|
+
category: "other",
|
|
42
|
+
scope: {},
|
|
43
|
+
agent: "human",
|
|
44
|
+
json: false,
|
|
45
|
+
};
|
|
46
|
+
const positionals = [];
|
|
47
|
+
for (let index = 0; index < args.length; index += 1) {
|
|
48
|
+
const argument = args[index];
|
|
49
|
+
if (argument === "--") {
|
|
50
|
+
positionals.push(...args.slice(index + 1));
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
if (argument === "--help" || argument === "-h") {
|
|
54
|
+
process.stdout.write(REMEMBER_HELP);
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
if (argument === "--json") {
|
|
58
|
+
parsed.json = true;
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
if (Object.hasOwn(scopeOptions, argument) ||
|
|
62
|
+
argument === "--category" ||
|
|
63
|
+
argument === "--agent") {
|
|
64
|
+
const value = args[index + 1]?.trim();
|
|
65
|
+
if (value === undefined || value === "" || value.startsWith("-")) {
|
|
66
|
+
throw new Error(`Missing value for ${argument}`);
|
|
67
|
+
}
|
|
68
|
+
index += 1;
|
|
69
|
+
if (argument === "--category") {
|
|
70
|
+
const category = MemoryCategorySchema.safeParse(value);
|
|
71
|
+
if (!category.success) {
|
|
72
|
+
throw new Error(`--category must be one of: ${MemoryCategorySchema.options.join(", ")}`);
|
|
73
|
+
}
|
|
74
|
+
parsed.category = category.data;
|
|
75
|
+
}
|
|
76
|
+
else if (argument === "--agent") {
|
|
77
|
+
parsed.agent = value;
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
const field = scopeOptions[argument];
|
|
81
|
+
const scope = MemoryScopeSchema.safeParse({
|
|
82
|
+
...parsed.scope,
|
|
83
|
+
[field]: value,
|
|
84
|
+
});
|
|
85
|
+
if (!scope.success) {
|
|
86
|
+
throw new Error(`Invalid value for ${argument}`);
|
|
87
|
+
}
|
|
88
|
+
parsed.scope = scope.data;
|
|
89
|
+
}
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
if (argument.startsWith("-")) {
|
|
93
|
+
throw new Error(`Unknown remember option: ${argument}. Use -- before statement text that starts with a dash.`);
|
|
94
|
+
}
|
|
95
|
+
positionals.push(argument);
|
|
96
|
+
}
|
|
97
|
+
parsed.content = positionals.join(" ").trim();
|
|
98
|
+
if (parsed.content === "") {
|
|
99
|
+
throw new Error('A statement is required. Try: lore remember "Use pnpm for this repository." --repo owner/repository');
|
|
100
|
+
}
|
|
101
|
+
return parsed;
|
|
102
|
+
}
|
|
103
|
+
function formatResponse(response) {
|
|
104
|
+
const { memory, inserted } = response;
|
|
105
|
+
const scope = Object.entries(memory.scope)
|
|
106
|
+
.map(([key, value]) => `${key}: ${value}`)
|
|
107
|
+
.join(" · ");
|
|
108
|
+
return [
|
|
109
|
+
inserted ? `Remembered: ${memory.id}` : `Already remembered: ${memory.id}`,
|
|
110
|
+
memory.content,
|
|
111
|
+
`Category: ${memory.category}`,
|
|
112
|
+
`Scope: ${scope || "workspace-wide"}`,
|
|
113
|
+
`Status: ${memory.status}`,
|
|
114
|
+
"",
|
|
115
|
+
].join("\n");
|
|
116
|
+
}
|
|
117
|
+
export async function runRememberCommand(args, config) {
|
|
118
|
+
const parsed = parseRememberArguments(args);
|
|
119
|
+
if (parsed === null) {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
if (config === null) {
|
|
123
|
+
throw new Error("Lore is not connected. Run: lore connect --login");
|
|
124
|
+
}
|
|
125
|
+
const client = new SharedMemoryClient({
|
|
126
|
+
baseUrl: config.apiUrl,
|
|
127
|
+
headers: { authorization: `Bearer ${config.token}` },
|
|
128
|
+
});
|
|
129
|
+
let response;
|
|
130
|
+
try {
|
|
131
|
+
response = await client.createLearning({
|
|
132
|
+
content: parsed.content,
|
|
133
|
+
category: parsed.category,
|
|
134
|
+
scope: parsed.scope,
|
|
135
|
+
source: { agent: parsed.agent },
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
catch (error) {
|
|
139
|
+
if (error instanceof SharedMemoryApiError) {
|
|
140
|
+
if (error.status === 401 || error.status === 403) {
|
|
141
|
+
throw new Error("Lore authentication failed. Reconnect with a valid workspace token.");
|
|
142
|
+
}
|
|
143
|
+
if (error.status === 404) {
|
|
144
|
+
throw new Error("This Lore server does not support remember. Upgrade the server to use lore remember.");
|
|
145
|
+
}
|
|
146
|
+
throw new Error(`Lore remember failed with HTTP ${error.status}.`);
|
|
147
|
+
}
|
|
148
|
+
if (error instanceof ZodError ||
|
|
149
|
+
error instanceof SyntaxError ||
|
|
150
|
+
(error instanceof LoreTransportError && error.code === "response_too_large")) {
|
|
151
|
+
throw new Error("Lore returned an incompatible remember response. The save could not be confirmed; check Lore before retrying.");
|
|
152
|
+
}
|
|
153
|
+
throw new Error("Could not confirm the save with Lore. Run lore doctor to diagnose connectivity and check Lore before retrying.");
|
|
154
|
+
}
|
|
155
|
+
process.stdout.write(parsed.json
|
|
156
|
+
? `${JSON.stringify(response, null, 2)}\n`
|
|
157
|
+
: formatResponse(response));
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=remember.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remember.js","sourceRoot":"","sources":["../src/remember.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime.d.ts
CHANGED
|
@@ -69,6 +69,7 @@ interface HookInput {
|
|
|
69
69
|
toolName?: unknown;
|
|
70
70
|
tool_input?: unknown;
|
|
71
71
|
toolArgs?: unknown;
|
|
72
|
+
input?: unknown;
|
|
72
73
|
command?: unknown;
|
|
73
74
|
}
|
|
74
75
|
export interface HookRuntimeOptions {
|
|
@@ -80,19 +81,20 @@ export interface HookRuntimeOptions {
|
|
|
80
81
|
export interface HookResult {
|
|
81
82
|
continue?: true;
|
|
82
83
|
systemMessage?: string;
|
|
83
|
-
outcome?: "accept";
|
|
84
|
+
outcome?: "accept" | "allow" | "deny";
|
|
85
|
+
reason?: string;
|
|
84
86
|
additional_context?: string;
|
|
85
87
|
/** Cursor beforeShellExecution verdict ("ask" is unenforced upstream). */
|
|
86
88
|
permission?: "deny";
|
|
87
89
|
userMessage?: string;
|
|
88
90
|
agentMessage?: string;
|
|
89
91
|
modifiedTransformedPrompt?: string;
|
|
90
|
-
permissionDecision?: "ask";
|
|
92
|
+
permissionDecision?: "ask" | "deny";
|
|
91
93
|
permissionDecisionReason?: string;
|
|
92
94
|
hookSpecificOutput?: {
|
|
93
95
|
hookEventName: "UserPromptSubmit" | "PreToolUse";
|
|
94
96
|
additionalContext?: string;
|
|
95
|
-
permissionDecision?: "ask";
|
|
97
|
+
permissionDecision?: "ask" | "deny";
|
|
96
98
|
permissionDecisionReason?: string;
|
|
97
99
|
};
|
|
98
100
|
}
|
|
@@ -122,6 +124,8 @@ interface GuardTrigger {
|
|
|
122
124
|
*/
|
|
123
125
|
export declare function guardTrigger(toolName: string, toolInput: Record<string, unknown>): GuardTrigger | null;
|
|
124
126
|
export declare function handleHookEvent(value: unknown, agent: CommandHookAgentName, options?: HookRuntimeOptions): Promise<HookResult | undefined>;
|
|
127
|
+
export declare function getCursorContext(sessionId: string, prompt: string, options?: HookRuntimeOptions): Promise<string>;
|
|
128
|
+
export declare function completeCursorResponse(sessionId: string, response: string, options?: HookRuntimeOptions): Promise<void>;
|
|
125
129
|
export declare function runHook(args?: readonly string[]): Promise<void>;
|
|
126
130
|
export {};
|
|
127
131
|
//# sourceMappingURL=runtime.d.ts.map
|
package/dist/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|