clawprobe 0.7.0 → 0.7.1
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/package.json
CHANGED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { ResolvedConfig } from "../../core/config.js";
|
|
2
|
-
interface MemoryListOptions {
|
|
3
|
-
agent?: string;
|
|
4
|
-
file?: string;
|
|
5
|
-
json?: boolean;
|
|
6
|
-
}
|
|
7
|
-
interface MemorySearchOptions {
|
|
8
|
-
agent?: string;
|
|
9
|
-
limit?: number;
|
|
10
|
-
json?: boolean;
|
|
11
|
-
}
|
|
12
|
-
interface MemoryAddOptions {
|
|
13
|
-
agent?: string;
|
|
14
|
-
file?: string;
|
|
15
|
-
}
|
|
16
|
-
interface MemoryEditOptions {
|
|
17
|
-
agent?: string;
|
|
18
|
-
file?: string;
|
|
19
|
-
}
|
|
20
|
-
interface MemoryDeleteOptions {
|
|
21
|
-
agent?: string;
|
|
22
|
-
file?: string;
|
|
23
|
-
yes?: boolean;
|
|
24
|
-
}
|
|
25
|
-
interface MemorySaveCompactOptions {
|
|
26
|
-
agent?: string;
|
|
27
|
-
file?: string;
|
|
28
|
-
}
|
|
29
|
-
export declare function runMemoryList(cfg: ResolvedConfig, opts: MemoryListOptions): Promise<void>;
|
|
30
|
-
export declare function runMemorySearch(cfg: ResolvedConfig, query: string, opts: MemorySearchOptions): Promise<void>;
|
|
31
|
-
export declare function runMemoryAdd(cfg: ResolvedConfig, content: string, opts: MemoryAddOptions): Promise<void>;
|
|
32
|
-
export declare function runMemoryEdit(cfg: ResolvedConfig, entryIndex: number, newContent: string | undefined, opts: MemoryEditOptions): Promise<void>;
|
|
33
|
-
export declare function runMemoryDelete(cfg: ResolvedConfig, entryIndex: number, opts: MemoryDeleteOptions): Promise<void>;
|
|
34
|
-
export declare function runMemorySaveCompact(cfg: ResolvedConfig, compactId: number, opts: MemorySaveCompactOptions): Promise<void>;
|
|
35
|
-
export {};
|
|
36
|
-
//# sourceMappingURL=memory.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/memory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAgBtD,UAAU,iBAAiB;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,UAAU,mBAAmB;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,UAAU,gBAAgB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,UAAU,iBAAiB;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,UAAU,mBAAmB;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,UAAU,wBAAwB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAOD,wBAAsB,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyB/F;AAED,wBAAsB,eAAe,CACnC,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,IAAI,CAAC,CA4Bf;AAED,wBAAsB,YAAY,CAChC,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,IAAI,CAAC,CAQf;AAED,wBAAsB,aAAa,CACjC,GAAG,EAAE,cAAc,EACnB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,IAAI,CAAC,CA8Bf;AAED,wBAAsB,eAAe,CACnC,GAAG,EAAE,cAAc,EACnB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,IAAI,CAAC,CAiCf;AAED,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,cAAc,EACnB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAwBf"}
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
import path from "path";
|
|
2
|
-
import { openDb, getCompactEventById } from "../../core/db.js";
|
|
3
|
-
import { listEntries, addEntry, updateEntry, deleteEntry, saveCompactedMessages, searchAllMemoryFiles, } from "../../core/memory-editor.js";
|
|
4
|
-
import { header, outputJson, severity, printSuccess, printError, fmtDate, } from "../format.js";
|
|
5
|
-
function resolveMemoryFile(cfg, fileOpt) {
|
|
6
|
-
if (fileOpt)
|
|
7
|
-
return path.isAbsolute(fileOpt) ? fileOpt : path.join(cfg.workspaceDir, fileOpt);
|
|
8
|
-
return path.join(cfg.workspaceDir, cfg.probe.memory.defaultFile);
|
|
9
|
-
}
|
|
10
|
-
export async function runMemoryList(cfg, opts) {
|
|
11
|
-
const memFile = resolveMemoryFile(cfg, opts.file);
|
|
12
|
-
const entries = listEntries(memFile);
|
|
13
|
-
const relFile = path.relative(cfg.workspaceDir, memFile);
|
|
14
|
-
if (opts.json) {
|
|
15
|
-
outputJson({ file: relFile, entries });
|
|
16
|
-
return;
|
|
17
|
-
}
|
|
18
|
-
header("🧠", "Long-term Memory", relFile);
|
|
19
|
-
if (entries.length === 0) {
|
|
20
|
-
console.log(severity.muted(" No entries found."));
|
|
21
|
-
console.log();
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
for (const entry of entries) {
|
|
25
|
-
console.log(` ${severity.muted(String(entry.index).padStart(3))} ${entry.content}`);
|
|
26
|
-
}
|
|
27
|
-
console.log();
|
|
28
|
-
console.log(severity.muted(` ${entries.length} entries`));
|
|
29
|
-
console.log();
|
|
30
|
-
}
|
|
31
|
-
export async function runMemorySearch(cfg, query, opts) {
|
|
32
|
-
const limit = opts.limit ?? 10;
|
|
33
|
-
const allResults = searchAllMemoryFiles(cfg.workspaceDir, query);
|
|
34
|
-
const results = allResults.slice(0, limit);
|
|
35
|
-
if (opts.json) {
|
|
36
|
-
outputJson(results.map((r) => ({
|
|
37
|
-
file: path.relative(cfg.workspaceDir, r.file),
|
|
38
|
-
entryIndex: r.entry.index,
|
|
39
|
-
content: r.entry.content,
|
|
40
|
-
})));
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
header("🔍", `Search: "${query}"`);
|
|
44
|
-
if (results.length === 0) {
|
|
45
|
-
console.log(severity.muted(` No results found for "${query}"`));
|
|
46
|
-
console.log();
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
for (const [i, result] of results.entries()) {
|
|
50
|
-
const relFile = path.relative(cfg.workspaceDir, result.file);
|
|
51
|
-
console.log(` ${i + 1}. ${severity.muted(relFile + ":" + result.entry.index)}`);
|
|
52
|
-
console.log(` ${result.entry.content}`);
|
|
53
|
-
console.log();
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
export async function runMemoryAdd(cfg, content, opts) {
|
|
57
|
-
const memFile = resolveMemoryFile(cfg, opts.file);
|
|
58
|
-
const relFile = path.relative(cfg.workspaceDir, memFile);
|
|
59
|
-
addEntry(memFile, content);
|
|
60
|
-
const entries = listEntries(memFile);
|
|
61
|
-
printSuccess(`Added to ${relFile} (entry #${entries.length})`);
|
|
62
|
-
}
|
|
63
|
-
export async function runMemoryEdit(cfg, entryIndex, newContent, opts) {
|
|
64
|
-
const memFile = resolveMemoryFile(cfg, opts.file);
|
|
65
|
-
const relFile = path.relative(cfg.workspaceDir, memFile);
|
|
66
|
-
const entries = listEntries(memFile);
|
|
67
|
-
const entry = entries.find((e) => e.index === entryIndex);
|
|
68
|
-
if (!entry) {
|
|
69
|
-
printError(`Entry #${entryIndex} not found in ${relFile}`);
|
|
70
|
-
process.exit(1);
|
|
71
|
-
}
|
|
72
|
-
let content = newContent;
|
|
73
|
-
if (!content) {
|
|
74
|
-
// Open $EDITOR
|
|
75
|
-
const editor = process.env["EDITOR"] ?? "vi";
|
|
76
|
-
const { execSync } = await import("child_process");
|
|
77
|
-
const tmpFile = `/tmp/clawprobe_edit_${Date.now()}.txt`;
|
|
78
|
-
const { writeFileSync, readFileSync, unlinkSync } = await import("fs");
|
|
79
|
-
writeFileSync(tmpFile, entry.content, "utf-8");
|
|
80
|
-
try {
|
|
81
|
-
execSync(`${editor} ${tmpFile}`, { stdio: "inherit" });
|
|
82
|
-
content = readFileSync(tmpFile, "utf-8").trim();
|
|
83
|
-
}
|
|
84
|
-
finally {
|
|
85
|
-
unlinkSync(tmpFile);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
updateEntry(memFile, entryIndex, content);
|
|
89
|
-
printSuccess(`Updated entry #${entryIndex} in ${relFile}`);
|
|
90
|
-
}
|
|
91
|
-
export async function runMemoryDelete(cfg, entryIndex, opts) {
|
|
92
|
-
const memFile = resolveMemoryFile(cfg, opts.file);
|
|
93
|
-
const relFile = path.relative(cfg.workspaceDir, memFile);
|
|
94
|
-
const entries = listEntries(memFile);
|
|
95
|
-
const entry = entries.find((e) => e.index === entryIndex);
|
|
96
|
-
if (!entry) {
|
|
97
|
-
printError(`Entry #${entryIndex} not found in ${relFile}`);
|
|
98
|
-
process.exit(1);
|
|
99
|
-
}
|
|
100
|
-
if (!opts.yes) {
|
|
101
|
-
console.log(`\n ${severity.warning("About to delete entry")} #${entryIndex}:`);
|
|
102
|
-
console.log(` "${entry.content}"`);
|
|
103
|
-
const { createInterface } = await import("readline");
|
|
104
|
-
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
105
|
-
const confirmed = await new Promise((resolve) => {
|
|
106
|
-
rl.question("\n Confirm? [y/N]: ", (ans) => {
|
|
107
|
-
rl.close();
|
|
108
|
-
resolve(ans.toLowerCase() === "y");
|
|
109
|
-
});
|
|
110
|
-
});
|
|
111
|
-
if (!confirmed) {
|
|
112
|
-
console.log(severity.muted(" Cancelled."));
|
|
113
|
-
return;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
deleteEntry(memFile, entryIndex);
|
|
117
|
-
printSuccess(`Deleted entry #${entryIndex} from ${relFile}`);
|
|
118
|
-
}
|
|
119
|
-
export async function runMemorySaveCompact(cfg, compactId, opts) {
|
|
120
|
-
const db = openDb(cfg.probeDir);
|
|
121
|
-
const event = getCompactEventById(db, compactId);
|
|
122
|
-
if (!event) {
|
|
123
|
-
printError(`Compact event #${compactId} not found.`);
|
|
124
|
-
process.exit(1);
|
|
125
|
-
}
|
|
126
|
-
const messages = event.compacted_messages
|
|
127
|
-
? JSON.parse(event.compacted_messages)
|
|
128
|
-
: [];
|
|
129
|
-
if (messages.length === 0) {
|
|
130
|
-
console.log(severity.muted(" No messages to save for this compact event."));
|
|
131
|
-
return;
|
|
132
|
-
}
|
|
133
|
-
const memFile = resolveMemoryFile(cfg, opts.file);
|
|
134
|
-
const relFile = path.relative(cfg.workspaceDir, memFile);
|
|
135
|
-
const label = event.compacted_at ? fmtDate(event.compacted_at) : `compact-${compactId}`;
|
|
136
|
-
saveCompactedMessages(memFile, messages, label);
|
|
137
|
-
printSuccess(`Saved ${messages.length} messages from compact #${compactId} to ${relFile}`);
|
|
138
|
-
}
|
|
139
|
-
//# sourceMappingURL=memory.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../src/cli/commands/memory.ts"],"names":[],"mappings":"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"}
|