@okclaw-build/cli 1.0.0-beta.4 → 1.0.0-beta.5
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/dist/commands/edit.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edit.js","sourceRoot":"","sources":["../../src/commands/edit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D;;GAEG;AACH,MAAM,OAAO,GAA2B;IACtC,IAAI,EAAM,GAAG,kBAAkB,UAAU;IACzC,QAAQ,EAAE,GAAG,kBAAkB,cAAc;IAC7C,IAAI,EAAM,GAAG,kBAAkB,UAAU;IACzC,MAAM,EAAI,GAAG,kBAAkB,YAAY;CAC5C,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAc;IAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,uBAAuB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC9E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,SAAS,CAAC,kBAAkB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,MAAM,KAAK,CAAC,UAAU,QAAQ,MAAM,IAAI,GAAG,CAAC,CAAC;IAC7C,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;AAC7B,CAAC"}
|
|
1
|
+
{"version":3,"file":"edit.js","sourceRoot":"","sources":["../../src/commands/edit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D;;GAEG;AACH,MAAM,OAAO,GAA2B;IACtC,IAAI,EAAM,GAAG,kBAAkB,UAAU;IACzC,QAAQ,EAAE,GAAG,kBAAkB,cAAc;IAC7C,IAAI,EAAM,GAAG,kBAAkB,UAAU;IACzC,MAAM,EAAI,GAAG,kBAAkB,YAAY;IAC3C,MAAM,EAAI,GAAG,kBAAkB,YAAY;CAC5C,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAc;IAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,uBAAuB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC9E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,SAAS,CAAC,kBAAkB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,MAAM,KAAK,CAAC,UAAU,QAAQ,MAAM,IAAI,GAAG,CAAC,CAAC;IAC7C,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;AAC7B,CAAC"}
|
package/dist/commands/feed.d.ts
CHANGED
|
@@ -1,10 +1 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* okclaw feed --file <path>
|
|
3
|
-
*
|
|
4
|
-
* Feeds file content into OpenViking's memory system.
|
|
5
|
-
*
|
|
6
|
-
* - If the file is a .zip/.tar.gz, extract first then process each file.
|
|
7
|
-
* - For each text file, submit the entire file content as one session and extract memories.
|
|
8
|
-
* - Non-text files are added as resources (ov add-resource).
|
|
9
|
-
*/
|
|
10
1
|
export declare function feedCommand(args: string[]): Promise<void>;
|
package/dist/commands/feed.js
CHANGED
|
@@ -1,18 +1,10 @@
|
|
|
1
|
-
import { existsSync, readFileSync, writeFileSync, readdirSync, statSync, mkdirSync, rmSync
|
|
2
|
-
import { join, extname } from 'node:path';
|
|
3
|
-
import { shell
|
|
1
|
+
import { existsSync, readFileSync, writeFileSync, appendFileSync, readdirSync, statSync, mkdirSync, rmSync } from 'node:fs';
|
|
2
|
+
import { join, extname, basename } from 'node:path';
|
|
3
|
+
import { shell } from '../utils/shell.js';
|
|
4
4
|
import { info, warn, error, success } from '../utils/logger.js';
|
|
5
|
-
|
|
5
|
+
import { OPENCLAW_WORKSPACE } from '../utils/constants.js';
|
|
6
|
+
const MEMORY_FILE = `${OPENCLAW_WORKSPACE}/MEMORY.md`;
|
|
6
7
|
const TEXT_EXTENSIONS = new Set(['.md', '.txt', '.text', '.csv', '.json', '.xml', '.yaml', '.yml', '.log']);
|
|
7
|
-
/**
|
|
8
|
-
* okclaw feed --file <path>
|
|
9
|
-
*
|
|
10
|
-
* Feeds file content into OpenViking's memory system.
|
|
11
|
-
*
|
|
12
|
-
* - If the file is a .zip/.tar.gz, extract first then process each file.
|
|
13
|
-
* - For each text file, submit the entire file content as one session and extract memories.
|
|
14
|
-
* - Non-text files are added as resources (ov add-resource).
|
|
15
|
-
*/
|
|
16
8
|
export async function feedCommand(args) {
|
|
17
9
|
const fileIdx = args.indexOf('--file');
|
|
18
10
|
const filePath = fileIdx >= 0 ? args[fileIdx + 1] : undefined;
|
|
@@ -24,17 +16,23 @@ export async function feedCommand(args) {
|
|
|
24
16
|
error(`File not found: ${filePath}`);
|
|
25
17
|
process.exit(1);
|
|
26
18
|
}
|
|
19
|
+
mkdirSync(OPENCLAW_WORKSPACE, { recursive: true });
|
|
27
20
|
const ext = extname(filePath).toLowerCase();
|
|
28
21
|
if (ext === '.zip' || ext === '.gz' || ext === '.tgz' || filePath.endsWith('.tar.gz')) {
|
|
29
22
|
await feedArchive(filePath);
|
|
30
23
|
}
|
|
31
24
|
else if (isTextFile(ext)) {
|
|
32
|
-
|
|
25
|
+
const content = readFileSync(filePath, 'utf-8').trim();
|
|
26
|
+
if (!content) {
|
|
27
|
+
warn('Empty file, skipping');
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
writeFileSync(MEMORY_FILE, `# Memory\n\n## ${basename(filePath)}\n\n${content}\n`);
|
|
31
|
+
success(`MEMORY.md written (${content.length} chars)`);
|
|
33
32
|
}
|
|
34
33
|
else {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
success('Resource added.');
|
|
34
|
+
error(`Unsupported file type: ${ext}`);
|
|
35
|
+
process.exit(1);
|
|
38
36
|
}
|
|
39
37
|
}
|
|
40
38
|
async function feedArchive(archivePath) {
|
|
@@ -50,92 +48,27 @@ async function feedArchive(archivePath) {
|
|
|
50
48
|
}
|
|
51
49
|
const files = collectFiles(tmpDir);
|
|
52
50
|
info(`Extracted ${files.length} file(s) from archive`);
|
|
53
|
-
|
|
54
|
-
|
|
51
|
+
writeFileSync(MEMORY_FILE, '# Memory\n');
|
|
52
|
+
let count = 0;
|
|
53
|
+
for (const file of files) {
|
|
55
54
|
const fileExt = extname(file).toLowerCase();
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
await shell(`ov add-resource '${file}' -o json`);
|
|
62
|
-
info(' Added as resource');
|
|
55
|
+
if (!isTextFile(fileExt)) {
|
|
56
|
+
warn(`Skipping non-text file: ${basename(file)}`);
|
|
57
|
+
continue;
|
|
63
58
|
}
|
|
59
|
+
const content = readFileSync(file, 'utf-8').trim();
|
|
60
|
+
if (!content)
|
|
61
|
+
continue;
|
|
62
|
+
appendFileSync(MEMORY_FILE, `\n## ${basename(file)}\n\n${content}\n`);
|
|
63
|
+
count++;
|
|
64
|
+
info(`[${count}] Appended: ${basename(file)} (${content.length} chars)`);
|
|
64
65
|
}
|
|
65
|
-
success(`
|
|
66
|
+
success(`MEMORY.md written with ${count} file(s)`);
|
|
66
67
|
}
|
|
67
68
|
finally {
|
|
68
69
|
rmSync(tmpDir, { recursive: true, force: true });
|
|
69
70
|
}
|
|
70
71
|
}
|
|
71
|
-
/**
|
|
72
|
-
* Feed an entire text file as one session → extract memories.
|
|
73
|
-
* Whole-file submission gives LLM full context for better memory extraction.
|
|
74
|
-
*/
|
|
75
|
-
async function feedTextFile(filePath) {
|
|
76
|
-
const content = readFileSync(filePath, 'utf-8').trim();
|
|
77
|
-
if (!content) {
|
|
78
|
-
warn(`Skipping empty file: ${filePath}`);
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
|
-
info(` Feeding file content (${content.length} chars)...`);
|
|
82
|
-
// 1. Create session
|
|
83
|
-
const createResult = await curlJson('POST', `${OV_API}/api/v1/sessions`, {});
|
|
84
|
-
const sessionId = createResult?.result?.session_id;
|
|
85
|
-
if (!sessionId) {
|
|
86
|
-
throw new Error('Failed to create session');
|
|
87
|
-
}
|
|
88
|
-
try {
|
|
89
|
-
// 2. Add entire file as one user message
|
|
90
|
-
await curlJson('POST', `${OV_API}/api/v1/sessions/${sessionId}/messages`, {
|
|
91
|
-
role: 'user',
|
|
92
|
-
content,
|
|
93
|
-
});
|
|
94
|
-
// 3. Extract memories (sync — waits for LLM to analyze and extract, may take minutes)
|
|
95
|
-
const extractResult = await curlJson('POST', `${OV_API}/api/v1/sessions/${sessionId}/extract`, {});
|
|
96
|
-
const memories = Array.isArray(extractResult?.result) ? extractResult.result : [];
|
|
97
|
-
info(` Extracted ${memories.length} memories`);
|
|
98
|
-
}
|
|
99
|
-
finally {
|
|
100
|
-
// 4. Cleanup session (ignore errors — best effort)
|
|
101
|
-
try {
|
|
102
|
-
await curlJson('DELETE', `${OV_API}/api/v1/sessions/${sessionId}`, null);
|
|
103
|
-
}
|
|
104
|
-
catch {
|
|
105
|
-
// session cleanup is best-effort
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
110
|
-
async function curlJson(method, url, body) {
|
|
111
|
-
let cmd;
|
|
112
|
-
let tmpFile = null;
|
|
113
|
-
if (body === null) {
|
|
114
|
-
cmd = `curl -s -X ${method} '${url}'`;
|
|
115
|
-
}
|
|
116
|
-
else {
|
|
117
|
-
tmpFile = `/tmp/okclaw_curl_${process.pid}_${Date.now()}.json`;
|
|
118
|
-
writeFileSync(tmpFile, JSON.stringify(body), 'utf-8');
|
|
119
|
-
cmd = `curl -s -X ${method} '${url}' -H 'Content-Type: application/json' -d @'${tmpFile}'`;
|
|
120
|
-
}
|
|
121
|
-
try {
|
|
122
|
-
const result = await shellCapture(cmd);
|
|
123
|
-
if (result.code !== 0) {
|
|
124
|
-
throw new Error(`curl failed: ${result.stderr}`);
|
|
125
|
-
}
|
|
126
|
-
try {
|
|
127
|
-
return JSON.parse(result.stdout);
|
|
128
|
-
}
|
|
129
|
-
catch {
|
|
130
|
-
throw new Error(`Invalid JSON response: ${result.stdout}`);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
finally {
|
|
134
|
-
if (tmpFile && existsSync(tmpFile)) {
|
|
135
|
-
unlinkSync(tmpFile);
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
72
|
function isTextFile(ext) {
|
|
140
73
|
return TEXT_EXTENSIONS.has(ext);
|
|
141
74
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feed.js","sourceRoot":"","sources":["../../src/commands/feed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"feed.js","sourceRoot":"","sources":["../../src/commands/feed.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED