@lore-co/cli 0.1.24 → 0.1.26
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 +76 -5
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +50 -4
- package/dist/cli.js.map +1 -1
- package/dist/codex-hook-approval.d.ts +13 -0
- package/dist/codex-hook-approval.d.ts.map +1 -0
- package/dist/codex-hook-approval.js +96 -0
- package/dist/codex-hook-approval.js.map +1 -0
- package/dist/devin-capture.d.ts +25 -0
- package/dist/devin-capture.d.ts.map +1 -0
- package/dist/devin-capture.js +177 -0
- package/dist/devin-capture.js.map +1 -0
- package/dist/devin-cli.d.ts +21 -0
- package/dist/devin-cli.d.ts.map +1 -0
- package/dist/devin-cli.js +432 -0
- package/dist/devin-cli.js.map +1 -0
- package/dist/devin.d.ts.map +1 -1
- package/dist/devin.js +15 -8
- package/dist/devin.js.map +1 -1
- package/dist/generated-assets.d.ts +4 -4
- package/dist/generated-assets.js +4 -4
- package/dist/image-capture.d.ts +62 -0
- package/dist/image-capture.d.ts.map +1 -0
- package/dist/image-capture.js +266 -0
- package/dist/image-capture.js.map +1 -0
- package/dist/invocation-health-writer.d.ts.map +1 -1
- package/dist/invocation-health-writer.js +5 -1
- package/dist/invocation-health-writer.js.map +1 -1
- package/dist/recovery-state.d.ts +1 -1
- package/dist/recovery.d.ts +2 -2
- package/dist/recovery.d.ts.map +1 -1
- package/dist/recovery.js +37 -22
- package/dist/recovery.js.map +1 -1
- package/dist/reliability-store.d.ts.map +1 -1
- package/dist/reliability-store.js +2 -1
- package/dist/reliability-store.js.map +1 -1
- package/dist/runtime.d.ts +4 -0
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +34 -0
- package/dist/runtime.js.map +1 -1
- package/dist/self-host.d.ts +1 -1
- package/dist/self-host.js +2 -2
- package/dist/share.d.ts +3 -0
- package/dist/share.d.ts.map +1 -0
- package/dist/share.js +51 -0
- package/dist/share.js.map +1 -0
- package/dist/update.js +3 -3
- package/package.json +7 -3
|
@@ -0,0 +1,432 @@
|
|
|
1
|
+
import { execFile } from "node:child_process";
|
|
2
|
+
import { constants } from "node:fs";
|
|
3
|
+
import { chmod, mkdir, open, readdir, rename, rm, stat } from "node:fs/promises";
|
|
4
|
+
import { randomUUID } from "node:crypto";
|
|
5
|
+
import { basename, dirname, resolve } from "node:path";
|
|
6
|
+
import { promisify } from "node:util";
|
|
7
|
+
import { setTimeout as delay } from "node:timers/promises";
|
|
8
|
+
import { z } from "zod";
|
|
9
|
+
import { redactSensitiveText, stripLoreInjectedContext, WorkspaceIdentityResponseSchema } from "@lore-co/core";
|
|
10
|
+
import { readHostConnection } from "./host.js";
|
|
11
|
+
import { canonicalRepositoryScope, repositoryScopeFromGitRoot } from "./repository.js";
|
|
12
|
+
import { atomicWriteJson } from "./reliability-store.js";
|
|
13
|
+
import { DevinCapture, devinCaptureKey, devinHash, readDevinJson } from "./devin-capture.js";
|
|
14
|
+
import { cliInvocation, removeRecoveryShell } from "./recovery.js";
|
|
15
|
+
import { findAgentExecutable } from "./agents.js";
|
|
16
|
+
const exec = promisify(execFile);
|
|
17
|
+
const quote = (value) => `'${value.replaceAll("'", "'\\''")}'`;
|
|
18
|
+
const START = "# >>> Lore Devin capture >>>";
|
|
19
|
+
const END = "# <<< Lore Devin capture <<<";
|
|
20
|
+
const OWNER = "--owner lore-devin-cli";
|
|
21
|
+
const HOOK_EVENTS = ["UserPromptSubmit", "Stop", "SessionEnd"];
|
|
22
|
+
const RecordObject = z.record(z.string(), z.unknown());
|
|
23
|
+
const Run = z.object({
|
|
24
|
+
version: z.literal(1), exportPath: z.string(), managed: z.boolean(),
|
|
25
|
+
cwd: z.string(), repo: z.string().optional(), key: z.string(),
|
|
26
|
+
startedAt: z.string(), initialMtime: z.number().nullable(),
|
|
27
|
+
closed: z.boolean().optional(),
|
|
28
|
+
closedMtime: z.number().nullable().optional(),
|
|
29
|
+
});
|
|
30
|
+
const directory = (home) => resolve(home, ".lore", "devin-cli");
|
|
31
|
+
const runsDirectory = (home, key) => resolve(directory(home), "runs", key);
|
|
32
|
+
export const devinCaptureEnabled = (home) => stat(resolve(directory(home), "installation.json")).then(() => true, () => false);
|
|
33
|
+
export const DEVIN_CLI_HELP = `lore devin cli
|
|
34
|
+
Record local Devin conversations in Lore with automatic ATIF exports.
|
|
35
|
+
|
|
36
|
+
Usage:
|
|
37
|
+
lore devin cli setup Enable capture for the devin command in bash/zsh
|
|
38
|
+
lore devin cli -- [args] Run Devin with automatic capture immediately
|
|
39
|
+
lore devin cli status Show the last capture and pending uploads
|
|
40
|
+
lore devin cli sync Retry retained exports and queued uploads
|
|
41
|
+
lore devin cli off Remove the shell integration and Lore's Devin hooks
|
|
42
|
+
|
|
43
|
+
Sign in with devin auth login and approve the repository in interactive Devin.
|
|
44
|
+
Workspace trust and Devin permissions remain in effect. Cloud sessions continue
|
|
45
|
+
to use lore devin start. Setup uses your existing Lore connection.
|
|
46
|
+
`;
|
|
47
|
+
export function removeDevinShell(text) {
|
|
48
|
+
const start = text.indexOf(START);
|
|
49
|
+
if (start < 0)
|
|
50
|
+
return text;
|
|
51
|
+
const end = text.indexOf(END, start);
|
|
52
|
+
if (end < 0)
|
|
53
|
+
throw new Error("Lore Devin shell block is incomplete");
|
|
54
|
+
return text.slice(0, start) + text.slice(end + END.length).replace(/^\r?\n/u, "");
|
|
55
|
+
}
|
|
56
|
+
export function mergeDevinHooks(value, command) {
|
|
57
|
+
const config = RecordObject.parse(structuredClone(value));
|
|
58
|
+
const hooks = RecordObject.parse(config.hooks ?? {});
|
|
59
|
+
for (const event of HOOK_EVENTS) {
|
|
60
|
+
const groups = z.array(RecordObject).parse(hooks[event] ?? []).flatMap(group => {
|
|
61
|
+
const handlers = z.array(RecordObject).parse(group.hooks);
|
|
62
|
+
const remaining = handlers.filter(handler => typeof handler.command !== "string" || !handler.command.includes(OWNER));
|
|
63
|
+
return remaining.length ? [{ ...group, hooks: remaining }] : [];
|
|
64
|
+
});
|
|
65
|
+
if (command)
|
|
66
|
+
groups.push({ hooks: [{ type: "command", command, timeout: event === "UserPromptSubmit" ? 15 : 3 }] });
|
|
67
|
+
if (groups.length)
|
|
68
|
+
hooks[event] = groups;
|
|
69
|
+
else
|
|
70
|
+
delete hooks[event];
|
|
71
|
+
}
|
|
72
|
+
if (Object.keys(hooks).length)
|
|
73
|
+
config.hooks = hooks;
|
|
74
|
+
else
|
|
75
|
+
delete config.hooks;
|
|
76
|
+
return config;
|
|
77
|
+
}
|
|
78
|
+
/** Devin reads Claude hooks too. Gate only Lore's commands, retaining user hooks. */
|
|
79
|
+
export function claudeOnlyCommand(command) {
|
|
80
|
+
return command.includes('DEVIN_PROJECT_DIR') ? command : `if [ -z "\${DEVIN_PROJECT_DIR:-}" ]; then ${command} ; fi`;
|
|
81
|
+
}
|
|
82
|
+
async function textFile(path) {
|
|
83
|
+
let file;
|
|
84
|
+
try {
|
|
85
|
+
file = await open(path, constants.O_RDONLY | constants.O_NOFOLLOW);
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
if (error.code === "ENOENT")
|
|
89
|
+
return "";
|
|
90
|
+
throw error;
|
|
91
|
+
}
|
|
92
|
+
try {
|
|
93
|
+
const info = await file.stat();
|
|
94
|
+
if (!info.isFile() || info.size > 4 * 1024 * 1024 || (process.getuid && info.uid !== process.getuid()))
|
|
95
|
+
throw new Error(`Cannot safely update ${path}`);
|
|
96
|
+
return await file.readFile("utf8");
|
|
97
|
+
}
|
|
98
|
+
finally {
|
|
99
|
+
await file.close();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
async function replaceText(path, previous, value) {
|
|
103
|
+
if (previous === value)
|
|
104
|
+
return;
|
|
105
|
+
if (await textFile(path) !== previous)
|
|
106
|
+
throw new Error(`Configuration changed during setup: ${path}`);
|
|
107
|
+
await mkdir(dirname(path), { recursive: true, mode: 0o700 });
|
|
108
|
+
if (previous) {
|
|
109
|
+
const backup = await open(`${path}.lore-devin-backup-${randomUUID()}`, "wx", 0o600);
|
|
110
|
+
try {
|
|
111
|
+
await backup.writeFile(previous);
|
|
112
|
+
}
|
|
113
|
+
finally {
|
|
114
|
+
await backup.close();
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
const temporary = `${path}.lore-${randomUUID()}`;
|
|
118
|
+
const file = await open(temporary, "wx", 0o600);
|
|
119
|
+
try {
|
|
120
|
+
await file.writeFile(value);
|
|
121
|
+
await file.sync();
|
|
122
|
+
}
|
|
123
|
+
finally {
|
|
124
|
+
await file.close();
|
|
125
|
+
}
|
|
126
|
+
try {
|
|
127
|
+
await rename(temporary, path);
|
|
128
|
+
}
|
|
129
|
+
finally {
|
|
130
|
+
await rm(temporary, { force: true });
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
export async function setupDevinCli(home, env = process.env) {
|
|
134
|
+
const connection = await readHostConnection(env, home);
|
|
135
|
+
const response = await fetch(`${connection.apiUrl}/v1/workspace/identity`, {
|
|
136
|
+
headers: { authorization: `Bearer ${connection.token}` }, signal: AbortSignal.timeout(connection.timeoutMs),
|
|
137
|
+
});
|
|
138
|
+
if (!response.ok)
|
|
139
|
+
throw new Error("Reconnect Lore before enabling Devin capture");
|
|
140
|
+
WorkspaceIdentityResponseSchema.parse(await response.json());
|
|
141
|
+
await findAgentExecutable("devin", env);
|
|
142
|
+
const shell = basename(env.SHELL ?? "");
|
|
143
|
+
if (shell !== "zsh" && shell !== "bash")
|
|
144
|
+
throw new Error("Automatic setup supports bash and zsh. Use lore devin cli -- [args] in other shells.");
|
|
145
|
+
const shellPaths = [resolve(shell === "zsh" ? env.ZDOTDIR || home : home, shell === "zsh" ? ".zshrc" : ".bashrc")];
|
|
146
|
+
if (shell === "bash") {
|
|
147
|
+
let login = resolve(home, ".bash_profile");
|
|
148
|
+
for (const name of [".bash_profile", ".bash_login", ".profile"]) {
|
|
149
|
+
const candidate = resolve(home, name);
|
|
150
|
+
if (await stat(candidate).then(() => true, () => false)) {
|
|
151
|
+
login = candidate;
|
|
152
|
+
break;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
shellPaths.push(login);
|
|
156
|
+
}
|
|
157
|
+
const invocation = `env -u BUN_OPTIONS -u BUN_BE_BUN LORE_HOME=${quote(home)} ${cliInvocation().map(quote).join(" ")}`;
|
|
158
|
+
const edits = [];
|
|
159
|
+
for (const path of shellPaths) {
|
|
160
|
+
const previous = await textFile(path);
|
|
161
|
+
const base = removeDevinShell(previous);
|
|
162
|
+
if (/(?:^|\n)\s*(?:function\s+devin\b|devin\s*\(\s*\)|alias\s+devin=)/u.test(removeRecoveryShell(base))) {
|
|
163
|
+
throw new Error("An existing devin alias or function needs to be retained. Use lore devin cli -- [args] or remove that override before setup.");
|
|
164
|
+
}
|
|
165
|
+
edits.push({ path, previous, value: `${base}${base && !base.endsWith("\n") ? "\n" : ""}${START}\ndevin() { ${invocation} run devin -- "$@"; }\n${END}\n` });
|
|
166
|
+
}
|
|
167
|
+
const configPath = resolve(env.XDG_CONFIG_HOME || resolve(home, ".config"), "devin", "config.json");
|
|
168
|
+
const previous = await textFile(configPath);
|
|
169
|
+
const config = mergeDevinHooks(previous ? JSON.parse(previous) : { version: 1 }, `${invocation} devin-cli-hook ${OWNER}`);
|
|
170
|
+
edits.push({ path: configPath, previous, value: `${JSON.stringify(config, null, 2)}\n` });
|
|
171
|
+
for (const name of [".claude.json", ".claude/settings.json", ".claude/settings.local.json"]) {
|
|
172
|
+
const path = resolve(home, name);
|
|
173
|
+
const prior = await textFile(path);
|
|
174
|
+
if (!prior)
|
|
175
|
+
continue;
|
|
176
|
+
const value = RecordObject.parse(JSON.parse(prior));
|
|
177
|
+
const hooks = RecordObject.safeParse(value.hooks);
|
|
178
|
+
if (!hooks.success)
|
|
179
|
+
continue;
|
|
180
|
+
for (const groups of Object.values(hooks.data)) {
|
|
181
|
+
if (!Array.isArray(groups))
|
|
182
|
+
continue;
|
|
183
|
+
for (const group of groups) {
|
|
184
|
+
if (!Array.isArray(group?.hooks))
|
|
185
|
+
continue;
|
|
186
|
+
for (const handler of group.hooks) {
|
|
187
|
+
if (typeof handler?.command === "string" && /--agent\s+claude\b/u.test(handler.command) && /--owner\s+lore(?:\s|$)/u.test(handler.command))
|
|
188
|
+
handler.command = claudeOnlyCommand(handler.command);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
value.hooks = hooks.data;
|
|
193
|
+
edits.push({ path, previous: prior, value: `${JSON.stringify(value, null, 2)}\n` });
|
|
194
|
+
}
|
|
195
|
+
for (const edit of edits)
|
|
196
|
+
await replaceText(edit.path, edit.previous, edit.value);
|
|
197
|
+
await mkdir(directory(home), { recursive: true, mode: 0o700 });
|
|
198
|
+
await atomicWriteJson(resolve(directory(home), "installation.json"), { shellPaths, configPath });
|
|
199
|
+
return `Devin capture enabled. Open a new terminal or run: source ${quote(shellPaths[0])}\nUse devin as usual. Lore exports and records completed turns automatically.\n`;
|
|
200
|
+
}
|
|
201
|
+
export async function disableDevinCli(home) {
|
|
202
|
+
const path = resolve(directory(home), "installation.json");
|
|
203
|
+
let installation;
|
|
204
|
+
try {
|
|
205
|
+
installation = z.object({ shellPaths: z.array(z.string()), configPath: z.string() }).parse(await readDevinJson(path));
|
|
206
|
+
}
|
|
207
|
+
catch (error) {
|
|
208
|
+
if (error.code === "ENOENT")
|
|
209
|
+
return;
|
|
210
|
+
throw error;
|
|
211
|
+
}
|
|
212
|
+
for (const shellPath of installation.shellPaths) {
|
|
213
|
+
const previous = await textFile(shellPath);
|
|
214
|
+
await replaceText(shellPath, previous, removeDevinShell(previous));
|
|
215
|
+
}
|
|
216
|
+
const previous = await textFile(installation.configPath);
|
|
217
|
+
if (previous)
|
|
218
|
+
await replaceText(installation.configPath, previous, `${JSON.stringify(mergeDevinHooks(JSON.parse(previous)), null, 2)}\n`);
|
|
219
|
+
await rm(path);
|
|
220
|
+
}
|
|
221
|
+
export function devinLaunchArguments(args, managedExport) {
|
|
222
|
+
const end = args.indexOf("--") < 0 ? args.length : args.indexOf("--");
|
|
223
|
+
const options = args.slice(0, end);
|
|
224
|
+
if (["auth", "mcp", "models", "rules", "skills", "plugins", "cloud", "list", "ls", "update", "version", "migrate", "sandbox", "setup", "uninstall", "acp", "desktop", "help"].includes(args[0] ?? "") || options.some(arg => ["--help", "-h", "--version", "-v", "-V"].includes(arg)))
|
|
225
|
+
return null;
|
|
226
|
+
const next = [...args];
|
|
227
|
+
const index = options.findIndex(arg => arg === "--export" || arg.startsWith("--export="));
|
|
228
|
+
if (index >= 0) {
|
|
229
|
+
const equal = options[index].startsWith("--export=") ? options[index].slice(9) : undefined;
|
|
230
|
+
const explicit = equal ?? (index + 1 < end && !options[index + 1].startsWith("-") ? options[index + 1] : undefined);
|
|
231
|
+
if (explicit)
|
|
232
|
+
return { args: next, exportPath: resolve(explicit), managed: false };
|
|
233
|
+
next.splice(index, 1);
|
|
234
|
+
}
|
|
235
|
+
return { args: ["--export", managedExport, ...next], exportPath: managedExport, managed: true };
|
|
236
|
+
}
|
|
237
|
+
async function repoFor(cwd) {
|
|
238
|
+
try {
|
|
239
|
+
const root = (await exec("git", ["-C", cwd, "rev-parse", "--show-toplevel"], { timeout: 2000 })).stdout.trim();
|
|
240
|
+
try {
|
|
241
|
+
return canonicalRepositoryScope((await exec("git", ["-C", root, "remote", "get-url", "origin"], { timeout: 2000 })).stdout.trim());
|
|
242
|
+
}
|
|
243
|
+
catch {
|
|
244
|
+
return repositoryScopeFromGitRoot(root);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
catch {
|
|
248
|
+
return undefined;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
async function syncRun(capture, runPath) {
|
|
252
|
+
const run = Run.parse(await readDevinJson(resolve(runPath, "run.json")));
|
|
253
|
+
if (run.key !== devinCaptureKey(capture.connection))
|
|
254
|
+
throw new Error("Devin capture belongs to another Lore connection");
|
|
255
|
+
let info;
|
|
256
|
+
try {
|
|
257
|
+
info = await stat(run.exportPath);
|
|
258
|
+
}
|
|
259
|
+
catch (error) {
|
|
260
|
+
if (error.code === "ENOENT") {
|
|
261
|
+
if (run.closed)
|
|
262
|
+
await rm(runPath, { recursive: true, force: true });
|
|
263
|
+
return false;
|
|
264
|
+
}
|
|
265
|
+
throw error;
|
|
266
|
+
}
|
|
267
|
+
if (run.closed && run.closedMtime !== undefined && info.mtimeMs !== run.closedMtime) {
|
|
268
|
+
throw new Error("The Devin export changed after this run closed; refusing to import it with an old repository scope");
|
|
269
|
+
}
|
|
270
|
+
if (info.mtimeMs === run.initialMtime) {
|
|
271
|
+
if (run.closed)
|
|
272
|
+
await rm(runPath, { recursive: true, force: true });
|
|
273
|
+
return false;
|
|
274
|
+
}
|
|
275
|
+
const syncedPath = resolve(runPath, "synced.json");
|
|
276
|
+
const synced = z.object({ mtime: z.number(), size: z.number() }).safeParse(await readDevinJson(syncedPath).catch(() => null));
|
|
277
|
+
if (synced.success && synced.data.mtime === info.mtimeMs && synced.data.size === info.size) {
|
|
278
|
+
if (run.closed)
|
|
279
|
+
await rm(runPath, { recursive: true, force: true });
|
|
280
|
+
return true;
|
|
281
|
+
}
|
|
282
|
+
const value = await readDevinJson(run.exportPath);
|
|
283
|
+
const after = await stat(run.exportPath);
|
|
284
|
+
if (after.mtimeMs !== info.mtimeMs || after.size !== info.size)
|
|
285
|
+
return false;
|
|
286
|
+
await capture.ingest(value, run.repo, dirname(run.exportPath));
|
|
287
|
+
await atomicWriteJson(syncedPath, { mtime: info.mtimeMs, size: info.size });
|
|
288
|
+
// The outbox now owns the redacted capture. Keep user-requested exports;
|
|
289
|
+
// managed raw exports are removed when the session closes.
|
|
290
|
+
if (run.closed)
|
|
291
|
+
await rm(runPath, { recursive: true, force: true });
|
|
292
|
+
return true;
|
|
293
|
+
}
|
|
294
|
+
export async function syncDevinCaptures(capture, home) {
|
|
295
|
+
const root = runsDirectory(home, devinCaptureKey(capture.connection));
|
|
296
|
+
const runs = await readdir(root).catch((error) => { if (error.code === "ENOENT")
|
|
297
|
+
return []; throw error; });
|
|
298
|
+
for (const name of runs) {
|
|
299
|
+
if (!/^[0-9a-f-]{36}$/u.test(name))
|
|
300
|
+
continue;
|
|
301
|
+
try {
|
|
302
|
+
await syncRun(capture, resolve(root, name));
|
|
303
|
+
}
|
|
304
|
+
catch (error) {
|
|
305
|
+
if (error.code === "ENOENT")
|
|
306
|
+
continue;
|
|
307
|
+
process.stderr.write("Lore retained an unreadable Devin export. Other pending captures will still be uploaded.\n");
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
await capture.flush();
|
|
311
|
+
}
|
|
312
|
+
export async function captureDevinSession(command, args, home, launch) {
|
|
313
|
+
const runId = randomUUID();
|
|
314
|
+
// Commands such as auth and model listing do not require a Lore connection.
|
|
315
|
+
if (!devinLaunchArguments(args, "unused"))
|
|
316
|
+
return launch(command, [...args], process.env);
|
|
317
|
+
const connection = await readHostConnection(process.env, home);
|
|
318
|
+
const capture = new DevinCapture(connection, home);
|
|
319
|
+
const runPath = resolve(runsDirectory(home, devinCaptureKey(connection)), runId);
|
|
320
|
+
const prepared = devinLaunchArguments(args, resolve(runPath, "conversation.atif.json"));
|
|
321
|
+
await mkdir(runPath, { recursive: true, mode: 0o700 });
|
|
322
|
+
await chmod(runPath, 0o700);
|
|
323
|
+
const run = Run.parse({ version: 1, ...prepared, args: undefined, cwd: process.cwd(), repo: await repoFor(process.cwd()), key: devinCaptureKey(connection), startedAt: new Date().toISOString(), initialMtime: await stat(prepared.exportPath).then(info => info.mtimeMs, () => null) });
|
|
324
|
+
await atomicWriteJson(resolve(runPath, "run.json"), run);
|
|
325
|
+
let warned = false;
|
|
326
|
+
const sync = async (final = false) => {
|
|
327
|
+
try {
|
|
328
|
+
await syncRun(capture, runPath);
|
|
329
|
+
await capture.flush();
|
|
330
|
+
}
|
|
331
|
+
catch (error) {
|
|
332
|
+
if (error instanceof SyntaxError && !final)
|
|
333
|
+
return; // Export is still being replaced.
|
|
334
|
+
if (!warned) {
|
|
335
|
+
process.stderr.write("Lore could not finish Devin capture. The export is retained; run lore devin cli sync to retry.\n");
|
|
336
|
+
warned = true;
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
};
|
|
340
|
+
await syncDevinCaptures(capture, home).catch(() => { });
|
|
341
|
+
let stopped = false;
|
|
342
|
+
const watcher = (async () => { while (!stopped) {
|
|
343
|
+
await delay(750);
|
|
344
|
+
if (!stopped)
|
|
345
|
+
await sync();
|
|
346
|
+
} })();
|
|
347
|
+
try {
|
|
348
|
+
await launch(command, prepared.args, { ...process.env, LORE_HOME: home, LORE_DEVIN_CAPTURE_DIR: runPath });
|
|
349
|
+
}
|
|
350
|
+
finally {
|
|
351
|
+
stopped = true;
|
|
352
|
+
await watcher;
|
|
353
|
+
await atomicWriteJson(resolve(runPath, "run.json"), { ...run, closed: true, closedMtime: await stat(run.exportPath).then(info => info.mtimeMs, () => null) });
|
|
354
|
+
await sync(true);
|
|
355
|
+
const state = await capture.status();
|
|
356
|
+
if (state.pending || state.authBlocked || state.failed)
|
|
357
|
+
process.stderr.write(`Lore: ${state.pending + state.authBlocked + state.failed} Devin capture(s) await upload. Run lore devin cli sync to retry.\n`);
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
export async function runDevinCliHook(home, input, env = process.env) {
|
|
361
|
+
const runPath = env.LORE_DEVIN_CAPTURE_DIR;
|
|
362
|
+
if (!runPath)
|
|
363
|
+
return;
|
|
364
|
+
const connection = await readHostConnection(env, home);
|
|
365
|
+
const root = runsDirectory(home, devinCaptureKey(connection));
|
|
366
|
+
if (dirname(resolve(runPath)) !== root || !/^[0-9a-f-]{36}$/u.test(basename(runPath)))
|
|
367
|
+
return;
|
|
368
|
+
if (input === undefined) {
|
|
369
|
+
let bytes = 0;
|
|
370
|
+
let body = "";
|
|
371
|
+
for await (const chunk of process.stdin) {
|
|
372
|
+
bytes += Buffer.byteLength(chunk);
|
|
373
|
+
if (bytes > 1024 * 1024)
|
|
374
|
+
throw new Error("Devin hook payload is too large");
|
|
375
|
+
body += String(chunk);
|
|
376
|
+
}
|
|
377
|
+
input = JSON.parse(body);
|
|
378
|
+
}
|
|
379
|
+
const event = z.object({ hook_event_name: z.enum(["UserPromptSubmit", "Stop", "SessionEnd"]), session_id: z.string().min(1), prompt_id: z.string().optional(), prompt: z.string().optional(), last_assistant_message: z.string().optional() }).parse(input);
|
|
380
|
+
// Stop is valid even without assistant text. The wrapper reads the next export
|
|
381
|
+
// after Stop returns, including Devin versions that export after their hooks.
|
|
382
|
+
if (event.hook_event_name !== "UserPromptSubmit")
|
|
383
|
+
return;
|
|
384
|
+
if (!event.prompt?.trim() || !event.prompt_id)
|
|
385
|
+
return;
|
|
386
|
+
const run = Run.parse(await readDevinJson(resolve(runPath, "run.json")));
|
|
387
|
+
const capture = new DevinCapture(connection, home);
|
|
388
|
+
const prompt = redactSensitiveText(stripLoreInjectedContext(event.prompt)).text;
|
|
389
|
+
const delivered = await capture.client.deliverContext({
|
|
390
|
+
connector: "devin-cli", eventId: `devin-cli:prompt:${devinHash(`${event.session_id}:${event.prompt_id}`)}`,
|
|
391
|
+
sessionId: event.session_id,
|
|
392
|
+
task: { agent: "devin", task: prompt, ...(run.repo ? { scope: { repo: run.repo } } : {}) },
|
|
393
|
+
});
|
|
394
|
+
if (!delivered.context.trim())
|
|
395
|
+
return;
|
|
396
|
+
return { hookSpecificOutput: { hookEventName: "UserPromptSubmit", additionalContext: delivered.context } };
|
|
397
|
+
}
|
|
398
|
+
export async function runDevinCli(args, home) {
|
|
399
|
+
if (args[0] === "--") {
|
|
400
|
+
const { runWrappedAgent } = await import("./recovery.js");
|
|
401
|
+
const { getLorePaths } = await import("./cli.js");
|
|
402
|
+
return runWrappedAgent(["devin", "--", ...args.slice(1)], getLorePaths(home), true);
|
|
403
|
+
}
|
|
404
|
+
if (args.some(arg => arg === "--help" || arg === "-h")) {
|
|
405
|
+
process.stdout.write(DEVIN_CLI_HELP);
|
|
406
|
+
return;
|
|
407
|
+
}
|
|
408
|
+
if (args.length > 1)
|
|
409
|
+
throw new Error("Unexpected Devin CLI option. Use lore devin cli --help.");
|
|
410
|
+
if (args[0] === "setup") {
|
|
411
|
+
process.stdout.write(await setupDevinCli(home));
|
|
412
|
+
return;
|
|
413
|
+
}
|
|
414
|
+
if (args[0] === "off") {
|
|
415
|
+
await disableDevinCli(home);
|
|
416
|
+
process.stdout.write("Devin capture disabled. Open a new terminal to remove the shell wrapper.\n");
|
|
417
|
+
return;
|
|
418
|
+
}
|
|
419
|
+
if (args[0] === "status" || args[0] === "sync") {
|
|
420
|
+
const capture = new DevinCapture(await readHostConnection(process.env, home), home);
|
|
421
|
+
if (args[0] === "sync") {
|
|
422
|
+
await capture.store.releaseAuthBlocked();
|
|
423
|
+
await syncDevinCaptures(capture, home);
|
|
424
|
+
}
|
|
425
|
+
process.stdout.write(`${JSON.stringify(await capture.status(), null, 2)}\n`);
|
|
426
|
+
return;
|
|
427
|
+
}
|
|
428
|
+
if (args.length && !["--help", "-h"].includes(args[0]))
|
|
429
|
+
throw new Error("Use lore devin cli -- [Devin arguments], or lore devin cli --help");
|
|
430
|
+
process.stdout.write(DEVIN_CLI_HELP);
|
|
431
|
+
}
|
|
432
|
+
//# sourceMappingURL=devin-cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devin-cli.js","sourceRoot":"","sources":["../src/devin-cli.ts"],"names":[],"mappings":"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"}
|
package/dist/devin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devin.d.ts","sourceRoot":"","sources":["../src/devin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"devin.d.ts","sourceRoot":"","sources":["../src/devin.ts"],"names":[],"mappings":"AA2oBA,wBAAsB,eAAe,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiC5E"}
|
package/dist/devin.js
CHANGED
|
@@ -2,6 +2,7 @@ import { createHash } from "node:crypto";
|
|
|
2
2
|
import { readFile, writeFile } from "node:fs/promises";
|
|
3
3
|
import { resolve } from "node:path";
|
|
4
4
|
import { redactSensitiveText, redactUnknown } from "@lore-co/core";
|
|
5
|
+
import { SharedMemoryClient } from "@lore-co/sdk";
|
|
5
6
|
import { z } from "zod";
|
|
6
7
|
import { getLorePaths } from "./cli.js";
|
|
7
8
|
import { DevinApiClient, } from "./devin-client.js";
|
|
@@ -60,6 +61,8 @@ const DEVIN_HELP = `lore devin
|
|
|
60
61
|
Start and manage Lore-enabled Devin sessions.
|
|
61
62
|
|
|
62
63
|
Usage:
|
|
64
|
+
lore devin cli setup
|
|
65
|
+
lore devin cli -- [Devin CLI arguments]
|
|
63
66
|
lore devin setup
|
|
64
67
|
lore devin start --repo <owner/repo> --prompt <text> [options]
|
|
65
68
|
lore devin prompt --session <devin-id> --repo <owner/repo> --prompt <text> [options]
|
|
@@ -393,15 +396,16 @@ async function setup() {
|
|
|
393
396
|
const client = devinClient();
|
|
394
397
|
await client.checkAccess();
|
|
395
398
|
const connection = await loreConnection();
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
}
|
|
399
|
+
await new SharedMemoryClient({
|
|
400
|
+
baseUrl: connection.apiUrl,
|
|
401
|
+
headers: { authorization: `Bearer ${connection.token}` },
|
|
402
|
+
timeoutMs: 10_000,
|
|
403
|
+
}).getWorkspaceIdentity();
|
|
402
404
|
process.stdout.write(`${JSON.stringify({
|
|
403
|
-
devin: "
|
|
404
|
-
lore: "
|
|
405
|
+
devin: "api_access_verified",
|
|
406
|
+
lore: "workspace_access_verified",
|
|
407
|
+
recording: "not_verified",
|
|
408
|
+
nextStep: "Verify polling and the repository allowlist on the Lore API, then start or register a Devin session and confirm captured activity. API access alone does not verify recording.",
|
|
405
409
|
organizationId: client.organizationId,
|
|
406
410
|
}, null, 2)}\n`);
|
|
407
411
|
}
|
|
@@ -450,6 +454,9 @@ async function terminate(args) {
|
|
|
450
454
|
}
|
|
451
455
|
export async function runDevinCommand(args) {
|
|
452
456
|
switch (args[0]) {
|
|
457
|
+
case "cli":
|
|
458
|
+
await (await import("./devin-cli.js")).runDevinCli(args.slice(1), getLorePaths(process.env.LORE_HOME).home);
|
|
459
|
+
return;
|
|
453
460
|
case "--help":
|
|
454
461
|
case "-h":
|
|
455
462
|
case undefined:
|
package/dist/devin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devin.js","sourceRoot":"","sources":["../src/devin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"devin.js","sourceRoot":"","sources":["../src/devin.ts"],"names":[],"mappings":"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"}
|