@opvs-ai/cli 0.25.5 → 0.26.0
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 +23 -0
- package/dist/.build-stamp.json +4 -4
- package/dist/commands/code-graph.js +48 -2
- package/dist/commands/code-graph.js.map +1 -1
- package/dist/commands/code.js +16 -1
- package/dist/commands/code.js.map +1 -1
- package/dist/commands/files.js +32 -5
- package/dist/commands/files.js.map +1 -1
- package/dist/commands/memory-sync.d.ts +31 -0
- package/dist/commands/memory-sync.js +229 -0
- package/dist/commands/memory-sync.js.map +1 -0
- package/dist/commands/memory.js +89 -0
- package/dist/commands/memory.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -273,6 +273,13 @@ opvs docs search "query" # Search docs
|
|
|
273
273
|
opvs code context "resolve_brand" --project <project-id>
|
|
274
274
|
opvs code context "resolveBrand" --project <id> --kind function --limit 5
|
|
275
275
|
opvs code summary --project <project-id> # Repo orientation: languages, entry points, top files
|
|
276
|
+
opvs code tree --project <project-id>
|
|
277
|
+
opvs code files [directory] --project <project-id>
|
|
278
|
+
opvs code symbols <file-path> --project <project-id>
|
|
279
|
+
opvs code resolve <anchor...> --project <project-id>
|
|
280
|
+
opvs code changes --project <project-id> --order desc --before <event-id>
|
|
281
|
+
opvs code graph <node-id> --project <project-id>
|
|
282
|
+
opvs code graph folders [dir] --project <project-id> --depth 2
|
|
276
283
|
```
|
|
277
284
|
|
|
278
285
|
Two answers you must not conflate: `indexed: false` means *there was nothing to
|
|
@@ -288,6 +295,22 @@ Needs the `code:read` scope, which is in the default ceiling. There is no
|
|
|
288
295
|
`opvs code index` command on purpose — writing an index is `code:write`, which
|
|
289
296
|
a worker PAT does not carry, and the ingest caller is the sidecar on the desk.
|
|
290
297
|
|
|
298
|
+
### Memory near code
|
|
299
|
+
|
|
300
|
+
Use the same stored workspace PAT as the other `opvs memory` reads. `near`
|
|
301
|
+
accepts repository paths and code-node UUIDs together; a UUID positional anchor
|
|
302
|
+
is sent as `node_ids`, while every other positional anchor is sent as `paths`.
|
|
303
|
+
|
|
304
|
+
```bash
|
|
305
|
+
opvs memory near packages/cli/src/index.ts --project <project-id>
|
|
306
|
+
opvs memory near <node-id> --project <project-id> --depth 2 --kinds import,contains
|
|
307
|
+
opvs memory similar "Retries need exponential jitter" --type lesson --k 3
|
|
308
|
+
opvs memory anchors <node-id...> --project <project-id>
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
`near` also accepts repeatable `--node-id` and `--path` seeds, plus
|
|
312
|
+
`--direction`, `--hub-cap`, and `--limit`. `similar` accepts `--threshold`.
|
|
313
|
+
|
|
291
314
|
### Skill lessons
|
|
292
315
|
|
|
293
316
|
Pull and contribute the lessons a skill's collectors left in the typed marketplace
|
package/dist/.build-stamp.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"stamp_version": 1,
|
|
3
3
|
"package": "@opvs-ai/cli",
|
|
4
|
-
"version": "0.
|
|
5
|
-
"source_digest": "
|
|
6
|
-
"source_files":
|
|
7
|
-
"built_at": "2026-10-
|
|
4
|
+
"version": "0.26.0",
|
|
5
|
+
"source_digest": "8b76126222ad3ebd9dbd8bd1a2d9f58fa9305094756d33987bba91bcc20e60e3",
|
|
6
|
+
"source_files": 55,
|
|
7
|
+
"built_at": "2026-10-11T16:52:16.630Z",
|
|
8
8
|
"node": "v22.23.3"
|
|
9
9
|
}
|
|
@@ -20,16 +20,19 @@ export function registerCodeGraphCommand(program) {
|
|
|
20
20
|
if (!code) {
|
|
21
21
|
throw new Error("registerCodeGraphCommand: 'code' command is not registered — call registerCodeCommands(program) first");
|
|
22
22
|
}
|
|
23
|
-
code
|
|
23
|
+
const graph = code
|
|
24
24
|
.command("graph <node_id>")
|
|
25
25
|
.description("A node's import neighbourhood — who imports it, what it imports, one or two hops")
|
|
26
|
-
.
|
|
26
|
+
.option("--project <id>", "Project id (board_groups.id where kind=project)")
|
|
27
27
|
.option("--direction <dir>", "in | out | both — which side of <node_id> to walk from")
|
|
28
28
|
.option("--depth <n>", "1 | 2 — server rejects 3+ with a 422")
|
|
29
29
|
.option("--limit <n>", "Max neighbours (server default 100, clamps at 500)")
|
|
30
30
|
.option("--branch <name>", "Answer from a specific indexed branch")
|
|
31
31
|
.option("--format <fmt>", "yaml | md | json — overrides the configured default")
|
|
32
32
|
.action(async (nodeId, opts) => {
|
|
33
|
+
if (!opts.project) {
|
|
34
|
+
graph.error("error: required option '--project <id>' not specified");
|
|
35
|
+
}
|
|
33
36
|
const wsSlug = program.opts().workspace;
|
|
34
37
|
const cfg = getEffectiveConfig(wsSlug);
|
|
35
38
|
try {
|
|
@@ -60,5 +63,48 @@ export function registerCodeGraphCommand(program) {
|
|
|
60
63
|
process.exit(1);
|
|
61
64
|
}
|
|
62
65
|
});
|
|
66
|
+
const folders = graph
|
|
67
|
+
.command("folders [dir]")
|
|
68
|
+
.description("Folder-level imports, hubs, and mutual import pairs")
|
|
69
|
+
.option("--depth <1-10>", "Maximum folder levels below dir (server default 2)")
|
|
70
|
+
.option("--limit <n>", "Maximum folder and cross-folder link rows")
|
|
71
|
+
.option("--branch <name>", "Answer from a specific indexed branch")
|
|
72
|
+
.option("--format <fmt>", "yaml | md | json — overrides the configured default")
|
|
73
|
+
.action(async (directory, opts) => {
|
|
74
|
+
// Commander recognises options declared by the parent even when they are
|
|
75
|
+
// written after `folders`. Read both scopes so the nested verb keeps the
|
|
76
|
+
// familiar `graph` option spellings without losing their values.
|
|
77
|
+
const parentOpts = graph.opts();
|
|
78
|
+
const project = opts.project || parentOpts.project;
|
|
79
|
+
if (!project) {
|
|
80
|
+
folders.error("error: required option '--project <id>' not specified");
|
|
81
|
+
}
|
|
82
|
+
const wsSlug = program.opts().workspace;
|
|
83
|
+
const cfg = getEffectiveConfig(wsSlug);
|
|
84
|
+
try {
|
|
85
|
+
const client = createClient(wsSlug);
|
|
86
|
+
const params = {};
|
|
87
|
+
if (directory !== undefined)
|
|
88
|
+
params.dir = directory;
|
|
89
|
+
const depth = opts.depth || parentOpts.depth;
|
|
90
|
+
const limit = opts.limit || parentOpts.limit;
|
|
91
|
+
const branch = opts.branch || parentOpts.branch;
|
|
92
|
+
const format = opts.format || parentOpts.format;
|
|
93
|
+
if (depth)
|
|
94
|
+
params.depth = depth;
|
|
95
|
+
if (limit)
|
|
96
|
+
params.limit = limit;
|
|
97
|
+
if (branch)
|
|
98
|
+
params.branch = branch;
|
|
99
|
+
const url = buildUrl(`/api/v1/code/${project}/graph/folders`, params, format || cfg.format);
|
|
100
|
+
const res = await client.get(url);
|
|
101
|
+
await printResponse(res);
|
|
102
|
+
}
|
|
103
|
+
catch (err) {
|
|
104
|
+
const e = err;
|
|
105
|
+
console.error(`Error: ${e.detail || "Failed to query code graph folders"}`);
|
|
106
|
+
process.exit(1);
|
|
107
|
+
}
|
|
108
|
+
});
|
|
63
109
|
}
|
|
64
110
|
//# sourceMappingURL=code-graph.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-graph.js","sourceRoot":"","sources":["../../src/commands/code-graph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE3D,MAAM,UAAU,wBAAwB,CAAC,OAAgB;IACvD,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,MAAM,CAAC,CAAC;IAC/D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CACb,uGAAuG,CACxG,CAAC;IACJ,CAAC;IAED,IAAI;
|
|
1
|
+
{"version":3,"file":"code-graph.js","sourceRoot":"","sources":["../../src/commands/code-graph.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/code.js
CHANGED
|
@@ -235,9 +235,11 @@ export function registerCodeCommands(program) {
|
|
|
235
235
|
const MAX_CHANGE_NODE_IDS = 100;
|
|
236
236
|
code
|
|
237
237
|
.command("changes")
|
|
238
|
-
.description("Stable-node history feed for the attached branch
|
|
238
|
+
.description("Stable-node history feed for the attached branch")
|
|
239
239
|
.requiredOption("--project <id>", "Project id (board_groups.id where kind=project)")
|
|
240
240
|
.option("--after <id>", "Return events after this event id (cursor)")
|
|
241
|
+
.option("--before <id>", "Return events before this event id (descending cursor)")
|
|
242
|
+
.option("--order <asc|desc>", "Event id order (default: asc)")
|
|
241
243
|
.option("--limit <n>", "Max events to return (server max 500)")
|
|
242
244
|
.option("--node-id <id>", "Stable node UUID; repeat to select up to 100 nodes", (value, prev) => [...prev, value], [])
|
|
243
245
|
.option("--path-prefix <path>", "Repo-relative path; matches the file itself and its descendants")
|
|
@@ -248,6 +250,15 @@ export function registerCodeCommands(program) {
|
|
|
248
250
|
console.error(`Error: too many --node-id values (${nodeIds.length}); max is ${MAX_CHANGE_NODE_IDS}`);
|
|
249
251
|
process.exit(1);
|
|
250
252
|
}
|
|
253
|
+
const order = opts.order || "asc";
|
|
254
|
+
if (opts.after && order === "desc") {
|
|
255
|
+
console.error("Error: after is only valid with order=asc");
|
|
256
|
+
process.exit(1);
|
|
257
|
+
}
|
|
258
|
+
if (opts.before && order === "asc") {
|
|
259
|
+
console.error("Error: before is only valid with order=desc");
|
|
260
|
+
process.exit(1);
|
|
261
|
+
}
|
|
251
262
|
const wsSlug = program.opts().workspace;
|
|
252
263
|
const cfg = getEffectiveConfig(wsSlug);
|
|
253
264
|
try {
|
|
@@ -255,6 +266,10 @@ export function registerCodeCommands(program) {
|
|
|
255
266
|
const params = {};
|
|
256
267
|
if (opts.after)
|
|
257
268
|
params.after = opts.after;
|
|
269
|
+
if (opts.before)
|
|
270
|
+
params.before = opts.before;
|
|
271
|
+
if (opts.order)
|
|
272
|
+
params.order = opts.order;
|
|
258
273
|
if (opts.limit)
|
|
259
274
|
params.limit = opts.limit;
|
|
260
275
|
if (opts.pathPrefix)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code.js","sourceRoot":"","sources":["../../src/commands/code.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"code.js","sourceRoot":"","sources":["../../src/commands/code.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/files.js
CHANGED
|
@@ -6,6 +6,31 @@ import { basename } from "node:path";
|
|
|
6
6
|
import { getEffectiveConfig, createClient } from "@opvs-ai/core";
|
|
7
7
|
import { buildUrl, printResponse, printJson } from "../lib/format.js";
|
|
8
8
|
import { confirmOrExit, YES_HELP } from "../lib/confirm.js";
|
|
9
|
+
// Keep in sync with the server's FileType enum
|
|
10
|
+
// (apps/spideragent/packages/agentboard/api/app/models/file_attachment.py):
|
|
11
|
+
// these are the seven types the server accepts on `file_type`.
|
|
12
|
+
const FILE_TYPES = [
|
|
13
|
+
"attachment",
|
|
14
|
+
"result",
|
|
15
|
+
"input",
|
|
16
|
+
"document",
|
|
17
|
+
"image",
|
|
18
|
+
"data",
|
|
19
|
+
"other",
|
|
20
|
+
];
|
|
21
|
+
// `screenshot` is a legacy CLI alias; the server never accepted it. Keep
|
|
22
|
+
// mapping it to `image` so existing scripts and muscle memory keep working.
|
|
23
|
+
const FILE_TYPE_ALIASES = {
|
|
24
|
+
screenshot: "image",
|
|
25
|
+
};
|
|
26
|
+
function resolveFileType(raw, fallback = "attachment") {
|
|
27
|
+
const value = raw ?? fallback;
|
|
28
|
+
const resolved = FILE_TYPE_ALIASES[value] ?? value;
|
|
29
|
+
if (!FILE_TYPES.includes(resolved)) {
|
|
30
|
+
throw new Error(`Unknown --type "${raw}". Accepted types: ${FILE_TYPES.join(", ")}.`);
|
|
31
|
+
}
|
|
32
|
+
return resolved;
|
|
33
|
+
}
|
|
9
34
|
export function registerFileCommands(program) {
|
|
10
35
|
const files = program.command("files").description("Task file attachments");
|
|
11
36
|
files
|
|
@@ -29,12 +54,13 @@ export function registerFileCommands(program) {
|
|
|
29
54
|
files
|
|
30
55
|
.command("upload <taskId> <path>")
|
|
31
56
|
.description("Upload a file to a task")
|
|
32
|
-
.option("--type <type>", "File type: attachment, result,
|
|
57
|
+
.option("--type <type>", "File type: attachment, result, input, document, image, data, other", "attachment")
|
|
33
58
|
.option("--description <desc>", "File description")
|
|
34
59
|
.action(async (taskId, filePath, opts) => {
|
|
35
60
|
const wsSlug = program.opts().workspace;
|
|
36
61
|
const cfg = getEffectiveConfig(wsSlug);
|
|
37
62
|
try {
|
|
63
|
+
const fileType = resolveFileType(opts.type);
|
|
38
64
|
const fileData = readFileSync(filePath);
|
|
39
65
|
const fileName = basename(filePath);
|
|
40
66
|
// Build multipart form data manually
|
|
@@ -45,7 +71,7 @@ export function registerFileCommands(program) {
|
|
|
45
71
|
parts.push(fileData);
|
|
46
72
|
parts.push(Buffer.from("\r\n"));
|
|
47
73
|
// file_type part
|
|
48
|
-
parts.push(Buffer.from(`--${boundary}\r\nContent-Disposition: form-data; name="file_type"\r\n\r\n${
|
|
74
|
+
parts.push(Buffer.from(`--${boundary}\r\nContent-Disposition: form-data; name="file_type"\r\n\r\n${fileType}\r\n`));
|
|
49
75
|
// description part
|
|
50
76
|
if (opts.description) {
|
|
51
77
|
parts.push(Buffer.from(`--${boundary}\r\nContent-Disposition: form-data; name="description"\r\n\r\n${opts.description}\r\n`));
|
|
@@ -66,13 +92,14 @@ export function registerFileCommands(program) {
|
|
|
66
92
|
files
|
|
67
93
|
.command("attach-url <taskId> <url>")
|
|
68
94
|
.description("Attach an external URL to a task (YouTube, Vimeo, Loom, image, or any link — OG metadata is fetched server-side)")
|
|
69
|
-
.option("--type <type>", "File type: attachment, result,
|
|
95
|
+
.option("--type <type>", "File type: attachment, result, input, document, image, data, other", "attachment")
|
|
70
96
|
.option("--description <desc>", "Attachment description")
|
|
71
97
|
.action(async (taskId, url, opts) => {
|
|
72
98
|
const wsSlug = program.opts().workspace;
|
|
73
99
|
try {
|
|
100
|
+
const fileType = resolveFileType(opts.type);
|
|
74
101
|
const client = createClient(wsSlug);
|
|
75
|
-
const body = { url, file_type:
|
|
102
|
+
const body = { url, file_type: fileType };
|
|
76
103
|
if (opts.description)
|
|
77
104
|
body.description = opts.description;
|
|
78
105
|
const res = await client.post(`/api/v1/board/tasks/${taskId}/files/url`, body);
|
|
@@ -81,7 +108,7 @@ export function registerFileCommands(program) {
|
|
|
81
108
|
}
|
|
82
109
|
catch (err) {
|
|
83
110
|
const e = err;
|
|
84
|
-
console.error(`Error: ${e.detail || "Failed to attach URL"}`);
|
|
111
|
+
console.error(`Error: ${e.detail || e.message || "Failed to attach URL"}`);
|
|
85
112
|
process.exit(1);
|
|
86
113
|
}
|
|
87
114
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/commands/files.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;IAE5E,KAAK;SACF,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,+BAA+B,CAAC;SAC5C,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,EAAE;QAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC;QACxC,MAAM,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,GAAG,GAAG,QAAQ,CAAC,uBAAuB,MAAM,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YACnF,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,GAA0B,CAAC;YACrC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,IAAI,sBAAsB,EAAE,CAAC,CAAC;YAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,wBAAwB,CAAC;SACjC,WAAW,CAAC,yBAAyB,CAAC;SACtC,MAAM,CAAC,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/commands/files.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `opvs memory sync` — upload one bounded repository-knowledge snapshot.
|
|
3
|
+
*
|
|
4
|
+
* Git supplies both the repository facts and ignore matching. That keeps this
|
|
5
|
+
* walker aligned with what a developer considers part of the checkout,
|
|
6
|
+
* including nested .gitignore files, without maintaining a second glob parser.
|
|
7
|
+
*/
|
|
8
|
+
import { Command } from "commander";
|
|
9
|
+
export interface KnowledgeFile {
|
|
10
|
+
path: string;
|
|
11
|
+
sha256: string;
|
|
12
|
+
content: string;
|
|
13
|
+
}
|
|
14
|
+
export interface KnowledgeSnapshot {
|
|
15
|
+
repo: string;
|
|
16
|
+
branch: string;
|
|
17
|
+
commit: string;
|
|
18
|
+
project_id: string;
|
|
19
|
+
files: KnowledgeFile[];
|
|
20
|
+
truncated: {
|
|
21
|
+
reason: string;
|
|
22
|
+
} | null;
|
|
23
|
+
}
|
|
24
|
+
export interface MemorySyncOptions {
|
|
25
|
+
project: string;
|
|
26
|
+
branch?: string;
|
|
27
|
+
dryRun?: boolean;
|
|
28
|
+
allowDirty?: boolean;
|
|
29
|
+
}
|
|
30
|
+
export declare function collectKnowledgeSnapshot(directory: string | undefined, options: Pick<MemorySyncOptions, "project" | "branch" | "allowDirty">): KnowledgeSnapshot;
|
|
31
|
+
export declare function registerMemorySyncCommand(memory: Command, program: Command): void;
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `opvs memory sync` — upload one bounded repository-knowledge snapshot.
|
|
3
|
+
*
|
|
4
|
+
* Git supplies both the repository facts and ignore matching. That keeps this
|
|
5
|
+
* walker aligned with what a developer considers part of the checkout,
|
|
6
|
+
* including nested .gitignore files, without maintaining a second glob parser.
|
|
7
|
+
*/
|
|
8
|
+
import * as fs from "node:fs";
|
|
9
|
+
import { createHash } from "node:crypto";
|
|
10
|
+
import { spawnSync } from "node:child_process";
|
|
11
|
+
import { isAbsolute, relative, resolve, sep } from "node:path";
|
|
12
|
+
import { TextDecoder } from "node:util";
|
|
13
|
+
import { createClient } from "@opvs-ai/core";
|
|
14
|
+
const KNOWLEDGE_SYNC_PATH = "/api/v1/memory/knowledge:sync";
|
|
15
|
+
const MAX_FILE_BYTES = 512 * 1024;
|
|
16
|
+
const MAX_FILES = 400;
|
|
17
|
+
const MAX_SYNC_BYTES = 4 * 1024 * 1024;
|
|
18
|
+
const GIT_OUTPUT_LIMIT = 64 * 1024 * 1024;
|
|
19
|
+
function git(root, args, input) {
|
|
20
|
+
const result = spawnSync("git", ["-C", root, ...args], {
|
|
21
|
+
input,
|
|
22
|
+
encoding: "buffer",
|
|
23
|
+
maxBuffer: GIT_OUTPUT_LIMIT,
|
|
24
|
+
});
|
|
25
|
+
if (result.error)
|
|
26
|
+
throw new Error(`Could not run git: ${result.error.message}`);
|
|
27
|
+
return {
|
|
28
|
+
status: result.status ?? 1,
|
|
29
|
+
stdout: result.stdout ?? Buffer.alloc(0),
|
|
30
|
+
stderr: result.stderr ?? Buffer.alloc(0),
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
function gitText(root, args, description) {
|
|
34
|
+
const result = git(root, args);
|
|
35
|
+
if (result.status !== 0) {
|
|
36
|
+
const detail = result.stderr.toString("utf8").trim();
|
|
37
|
+
throw new Error(detail || `Could not ${description}`);
|
|
38
|
+
}
|
|
39
|
+
return result.stdout.toString("utf8").trim();
|
|
40
|
+
}
|
|
41
|
+
function nulPaths(output) {
|
|
42
|
+
return output
|
|
43
|
+
.toString("utf8")
|
|
44
|
+
.split("\0")
|
|
45
|
+
.filter(Boolean);
|
|
46
|
+
}
|
|
47
|
+
function posixPath(path) {
|
|
48
|
+
return sep === "/" ? path : path.split(sep).join("/");
|
|
49
|
+
}
|
|
50
|
+
function isKnowledgePath(path) {
|
|
51
|
+
const parts = path.split("/");
|
|
52
|
+
const name = parts.at(-1) ?? "";
|
|
53
|
+
if (["CLAUDE.md", "AGENTS.md", "GEMINI.md", "LEARNINGS.md", ".cursorrules", ".windsurfrules"].includes(name)) {
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
if (name === "copilot-instructions.md" && parts.at(-2) === ".github")
|
|
57
|
+
return true;
|
|
58
|
+
return name.endsWith(".mdc") && parts.at(-3) === ".cursor" && parts.at(-2) === "rules";
|
|
59
|
+
}
|
|
60
|
+
function ignoredKnowledgePaths(root, paths) {
|
|
61
|
+
if (paths.length === 0)
|
|
62
|
+
return new Set();
|
|
63
|
+
const args = ["check-ignore", "--no-index", "-z", "--stdin"];
|
|
64
|
+
const indexIgnore = resolve(root, ".opvsindexignore");
|
|
65
|
+
if (fs.existsSync(indexIgnore)) {
|
|
66
|
+
args.unshift("-c", `core.excludesFile=${indexIgnore}`);
|
|
67
|
+
}
|
|
68
|
+
const result = git(root, args, Buffer.from(`${paths.join("\0")}\0`));
|
|
69
|
+
// check-ignore exits 1 when no path matched an ignore rule.
|
|
70
|
+
if (result.status !== 0 && result.status !== 1) {
|
|
71
|
+
const detail = result.stderr.toString("utf8").trim();
|
|
72
|
+
throw new Error(detail || "Could not apply repository ignore rules");
|
|
73
|
+
}
|
|
74
|
+
return new Set(nulPaths(result.stdout));
|
|
75
|
+
}
|
|
76
|
+
function truncationReason(reasons) {
|
|
77
|
+
if (reasons.length === 0)
|
|
78
|
+
return null;
|
|
79
|
+
return { reason: reasons.join("; ").slice(0, 500) };
|
|
80
|
+
}
|
|
81
|
+
function ensureWireLimit(snapshot) {
|
|
82
|
+
if (Buffer.byteLength(JSON.stringify(snapshot), "utf8") <= MAX_SYNC_BYTES)
|
|
83
|
+
return snapshot;
|
|
84
|
+
const files = [...snapshot.files];
|
|
85
|
+
while (files.length > 0) {
|
|
86
|
+
files.pop();
|
|
87
|
+
const reason = snapshot.truncated
|
|
88
|
+
? `${snapshot.truncated.reason}; 4 MB knowledge sync request cap reached`
|
|
89
|
+
: "4 MB knowledge sync request cap reached";
|
|
90
|
+
const candidate = {
|
|
91
|
+
...snapshot,
|
|
92
|
+
files,
|
|
93
|
+
truncated: { reason: reason.slice(0, 500) },
|
|
94
|
+
};
|
|
95
|
+
if (Buffer.byteLength(JSON.stringify(candidate), "utf8") <= MAX_SYNC_BYTES)
|
|
96
|
+
return candidate;
|
|
97
|
+
}
|
|
98
|
+
throw new Error("Knowledge sync metadata exceeds the 4 MB request limit");
|
|
99
|
+
}
|
|
100
|
+
export function collectKnowledgeSnapshot(directory, options) {
|
|
101
|
+
const startDirectory = resolve(directory ?? process.cwd());
|
|
102
|
+
const root = gitText(startDirectory, ["rev-parse", "--show-toplevel"], "find the git root");
|
|
103
|
+
const requestedDirectory = directory ? startDirectory : root;
|
|
104
|
+
const relativeDirectory = relative(root, requestedDirectory);
|
|
105
|
+
if (relativeDirectory === ".." || relativeDirectory.startsWith(`..${sep}`) || isAbsolute(relativeDirectory)) {
|
|
106
|
+
throw new Error("The sync directory must be inside its git repository");
|
|
107
|
+
}
|
|
108
|
+
if (!fs.statSync(requestedDirectory).isDirectory()) {
|
|
109
|
+
throw new Error(`Sync path is not a directory: ${requestedDirectory}`);
|
|
110
|
+
}
|
|
111
|
+
if (!options.allowDirty) {
|
|
112
|
+
const dirty = gitText(root, ["status", "--porcelain", "--untracked-files=normal"], "inspect the worktree");
|
|
113
|
+
if (dirty) {
|
|
114
|
+
throw new Error("Refusing to sync a dirty worktree; commit it first or pass --allow-dirty");
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
const repo = gitText(root, ["remote", "get-url", "origin"], "read the origin remote URL");
|
|
118
|
+
const branch = options.branch || gitText(root, ["symbolic-ref", "--quiet", "--short", "HEAD"], "read the current branch");
|
|
119
|
+
const commit = gitText(root, ["rev-parse", "HEAD"], "read HEAD");
|
|
120
|
+
if (!/^[0-9a-f]{40}$/.test(commit))
|
|
121
|
+
throw new Error("HEAD is not a full Git commit");
|
|
122
|
+
const pathspec = relativeDirectory ? posixPath(relativeDirectory) : ".";
|
|
123
|
+
const listed = git(root, ["ls-files", "--cached", "--others", "--exclude-standard", "-z", "--", pathspec]);
|
|
124
|
+
if (listed.status !== 0) {
|
|
125
|
+
const detail = listed.stderr.toString("utf8").trim();
|
|
126
|
+
throw new Error(detail || "Could not walk repository files");
|
|
127
|
+
}
|
|
128
|
+
const matches = nulPaths(listed.stdout).filter(isKnowledgePath).sort();
|
|
129
|
+
const ignored = ignoredKnowledgePaths(root, matches);
|
|
130
|
+
const candidates = matches.filter((path) => !ignored.has(path));
|
|
131
|
+
const reasons = [];
|
|
132
|
+
if (candidates.length > MAX_FILES) {
|
|
133
|
+
reasons.push(`400 file repository knowledge cap reached (${candidates.length} matched)`);
|
|
134
|
+
}
|
|
135
|
+
const decoder = new TextDecoder("utf-8", { fatal: true });
|
|
136
|
+
const files = [];
|
|
137
|
+
let totalBytes = 0;
|
|
138
|
+
let oversized = 0;
|
|
139
|
+
for (const path of candidates.slice(0, MAX_FILES)) {
|
|
140
|
+
const absolute = resolve(root, path);
|
|
141
|
+
const stat = fs.lstatSync(absolute);
|
|
142
|
+
if (!stat.isFile())
|
|
143
|
+
throw new Error(`Knowledge path is not a regular file: ${path}`);
|
|
144
|
+
if (stat.size > MAX_FILE_BYTES) {
|
|
145
|
+
oversized += 1;
|
|
146
|
+
continue;
|
|
147
|
+
}
|
|
148
|
+
const bytes = fs.readFileSync(absolute);
|
|
149
|
+
if (totalBytes + bytes.byteLength > MAX_SYNC_BYTES) {
|
|
150
|
+
reasons.push("4 MB repository knowledge content cap reached");
|
|
151
|
+
break;
|
|
152
|
+
}
|
|
153
|
+
let content;
|
|
154
|
+
try {
|
|
155
|
+
content = decoder.decode(bytes);
|
|
156
|
+
}
|
|
157
|
+
catch {
|
|
158
|
+
throw new Error(`Knowledge file is not valid UTF-8: ${path}`);
|
|
159
|
+
}
|
|
160
|
+
files.push({
|
|
161
|
+
path,
|
|
162
|
+
sha256: createHash("sha256").update(bytes).digest("hex"),
|
|
163
|
+
content,
|
|
164
|
+
});
|
|
165
|
+
totalBytes += bytes.byteLength;
|
|
166
|
+
}
|
|
167
|
+
if (oversized > 0)
|
|
168
|
+
reasons.push(`${oversized} file(s) exceeded the 512 KB per-file cap`);
|
|
169
|
+
return ensureWireLimit({
|
|
170
|
+
repo,
|
|
171
|
+
branch,
|
|
172
|
+
commit,
|
|
173
|
+
project_id: options.project,
|
|
174
|
+
files,
|
|
175
|
+
truncated: truncationReason(reasons),
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
function printDryRun(snapshot) {
|
|
179
|
+
console.log(`Dry run: would send ${snapshot.files.length} knowledge file(s):`);
|
|
180
|
+
for (const file of snapshot.files)
|
|
181
|
+
console.log(`- ${file.path}`);
|
|
182
|
+
if (snapshot.truncated)
|
|
183
|
+
console.log(`Truncated: ${snapshot.truncated.reason}`);
|
|
184
|
+
}
|
|
185
|
+
function printOutcome(payload) {
|
|
186
|
+
for (const key of ["files", "entries", "upserted", "unchanged", "retracted"]) {
|
|
187
|
+
console.log(`${key[0].toUpperCase()}${key.slice(1)}: ${String(payload[key] ?? 0)}`);
|
|
188
|
+
}
|
|
189
|
+
const truncated = payload.truncated;
|
|
190
|
+
console.log(`Truncated: ${truncated?.reason ?? "no"}`);
|
|
191
|
+
}
|
|
192
|
+
async function syncAction(program, directory, options) {
|
|
193
|
+
try {
|
|
194
|
+
const snapshot = collectKnowledgeSnapshot(directory, options);
|
|
195
|
+
if (snapshot.files.length === 0) {
|
|
196
|
+
console.error("No repository knowledge files to send.");
|
|
197
|
+
process.exitCode = 2;
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
if (options.dryRun) {
|
|
201
|
+
printDryRun(snapshot);
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
const client = createClient(program.opts().workspace);
|
|
205
|
+
const response = await client.post(KNOWLEDGE_SYNC_PATH, snapshot);
|
|
206
|
+
printOutcome((await response.json()));
|
|
207
|
+
}
|
|
208
|
+
catch (error) {
|
|
209
|
+
const apiError = error;
|
|
210
|
+
if (apiError.status === 403) {
|
|
211
|
+
console.error("Error: request a token that includes memory:ingest, then retry the sync");
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
console.error(`Error: ${apiError.detail || (error instanceof Error ? error.message : "Knowledge sync failed")}`);
|
|
215
|
+
}
|
|
216
|
+
process.exitCode = 1;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
export function registerMemorySyncCommand(memory, program) {
|
|
220
|
+
memory
|
|
221
|
+
.command("sync [dir]")
|
|
222
|
+
.description("Load repository knowledge files into AgentMemory")
|
|
223
|
+
.requiredOption("--project <project-id>", "Code project that owns this repository")
|
|
224
|
+
.option("--branch <name>", "Snapshot branch name (defaults to the current branch)")
|
|
225
|
+
.option("--dry-run", "Print the files that would be sent without making a request")
|
|
226
|
+
.option("--allow-dirty", "Allow a dirty worktree while still recording the current HEAD")
|
|
227
|
+
.action((directory, options) => syncAction(program, directory, options));
|
|
228
|
+
}
|
|
229
|
+
//# sourceMappingURL=memory-sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-sync.js","sourceRoot":"","sources":["../../src/commands/memory-sync.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/memory.js
CHANGED
|
@@ -9,9 +9,14 @@ import { registerCaptureHooks } from "./memory-capture.js";
|
|
|
9
9
|
import { registerMemoryHooks } from "./memory-hook.js";
|
|
10
10
|
import { registerMemoryInstallCommands } from "./memory-install.js";
|
|
11
11
|
import { registerLessonCommands } from "./memory-lessons.js";
|
|
12
|
+
import { registerMemorySyncCommand } from "./memory-sync.js";
|
|
12
13
|
import { parseServicePatterns, serviceForPath } from "../../memory-services.js";
|
|
13
14
|
export { OPVS_MEMORY_REPOSITORY, parseServicePatterns, repositoryNameFromRemote, serviceForPath, } from "../../memory-services.js";
|
|
14
15
|
const SEARCH_PATH = "/api/v1/memory/entries/search";
|
|
16
|
+
const UUID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
|
|
17
|
+
function collect(value, previous) {
|
|
18
|
+
return [...previous, value];
|
|
19
|
+
}
|
|
15
20
|
/** Keep the API's relative order within the pinned and unpinned groups. */
|
|
16
21
|
export function pinnedFirst(entries) {
|
|
17
22
|
return entries
|
|
@@ -65,6 +70,90 @@ export function registerMemoryCommands(program) {
|
|
|
65
70
|
registerCaptureHooks(memory);
|
|
66
71
|
registerMemoryInstallCommands(memory);
|
|
67
72
|
registerLessonCommands(memory);
|
|
73
|
+
registerMemorySyncCommand(memory, program);
|
|
74
|
+
memory
|
|
75
|
+
.command("near <anchor...>")
|
|
76
|
+
.description("Find lessons on code paths or node ids and the nearby code graph")
|
|
77
|
+
.requiredOption("--project <id>", "Project whose code graph should be walked")
|
|
78
|
+
.option("--node-id <id>", "Additional code-node UUID; repeat for more than one", collect, [])
|
|
79
|
+
.option("--path <path>", "Additional repository-relative path; repeat for more than one", collect, [])
|
|
80
|
+
.option("--depth <n>", "Maximum graph hops from each seed (0-3; default 2)")
|
|
81
|
+
.option("--kinds <csv>", "Comma-separated edge kinds: import,call,contains")
|
|
82
|
+
.option("--direction <direction>", "in | out | both (default: both)")
|
|
83
|
+
.option("--hub-cap <n>", "Damp hubs above this many distinct seed neighbours")
|
|
84
|
+
.option("--limit <n>", "Maximum lessons to return (1-100; default 20)")
|
|
85
|
+
.action(async (anchors, opts) => {
|
|
86
|
+
const wsSlug = program.opts().workspace;
|
|
87
|
+
try {
|
|
88
|
+
const client = createClient(wsSlug);
|
|
89
|
+
const positionalNodeIds = anchors.filter((anchor) => UUID_PATTERN.test(anchor));
|
|
90
|
+
const positionalPaths = anchors.filter((anchor) => !UUID_PATTERN.test(anchor));
|
|
91
|
+
const body = {
|
|
92
|
+
project_id: opts.project,
|
|
93
|
+
node_ids: [...positionalNodeIds, ...opts.nodeId],
|
|
94
|
+
paths: [...positionalPaths, ...opts.path],
|
|
95
|
+
};
|
|
96
|
+
if (opts.depth !== undefined)
|
|
97
|
+
body.depth = Number.parseInt(opts.depth, 10);
|
|
98
|
+
if (opts.kinds) {
|
|
99
|
+
body.kinds = opts.kinds.split(",").map((kind) => kind.trim()).filter(Boolean);
|
|
100
|
+
}
|
|
101
|
+
if (opts.direction)
|
|
102
|
+
body.direction = opts.direction;
|
|
103
|
+
if (opts.hubCap !== undefined)
|
|
104
|
+
body.hub_cap = Number.parseInt(opts.hubCap, 10);
|
|
105
|
+
if (opts.limit !== undefined)
|
|
106
|
+
body.limit = Number.parseInt(opts.limit, 10);
|
|
107
|
+
const response = await client.post("/api/v1/memory/entries:near", body);
|
|
108
|
+
printJson(await response.json());
|
|
109
|
+
}
|
|
110
|
+
catch (error) {
|
|
111
|
+
fail(error, "Failed to find memory near code");
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
memory
|
|
115
|
+
.command("similar <text>")
|
|
116
|
+
.description("Find existing lessons similar to a proposed lesson")
|
|
117
|
+
.option("--type <type>", "Restrict candidates to one typed-entry kind")
|
|
118
|
+
.option("--k <n>", "Maximum matches to return (1-10; default 3)")
|
|
119
|
+
.option("--threshold <score>", "Cosine similarity threshold (-1.0 to 1.0)")
|
|
120
|
+
.action(async (text, opts) => {
|
|
121
|
+
const wsSlug = program.opts().workspace;
|
|
122
|
+
try {
|
|
123
|
+
const client = createClient(wsSlug);
|
|
124
|
+
const body = { text };
|
|
125
|
+
if (opts.type)
|
|
126
|
+
body.type = opts.type;
|
|
127
|
+
if (opts.k !== undefined)
|
|
128
|
+
body.k = Number.parseInt(opts.k, 10);
|
|
129
|
+
if (opts.threshold !== undefined) {
|
|
130
|
+
body.threshold = Number.parseFloat(opts.threshold);
|
|
131
|
+
}
|
|
132
|
+
const response = await client.post("/api/v1/memory/entries:similar", body);
|
|
133
|
+
printJson(await response.json());
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
fail(error, "Failed to find similar memory");
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
memory
|
|
140
|
+
.command("anchors <anchor...>")
|
|
141
|
+
.description("Find lessons attached to code-node ids, with pinned entries first")
|
|
142
|
+
.requiredOption("--project <id>", "Project whose code nodes should be looked up")
|
|
143
|
+
.action(async (anchors, opts) => {
|
|
144
|
+
const wsSlug = program.opts().workspace;
|
|
145
|
+
try {
|
|
146
|
+
const client = createClient(wsSlug);
|
|
147
|
+
const response = await client.post("/api/v1/memory/anchors:lookup", {
|
|
148
|
+
project_id: opts.project,
|
|
149
|
+
node_ids: anchors,
|
|
150
|
+
});
|
|
151
|
+
printJson(await response.json());
|
|
152
|
+
}
|
|
153
|
+
catch (error) {
|
|
154
|
+
fail(error, "Failed to look up memory anchors");
|
|
155
|
+
}
|
|
156
|
+
});
|
|
68
157
|
memory
|
|
69
158
|
.command("search <query>")
|
|
70
159
|
.description("Search typed memory, with pinned entries first")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/commands/memory.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/commands/memory.ts"],"names":[],"mappings":"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"}
|