@nguyenthdat/opencode-memory 0.2.0 → 0.3.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 +32 -10
- package/dist/contracts.d.ts +27 -1
- package/dist/contracts.d.ts.map +1 -1
- package/dist/generated/{memory_pb.d.ts → opencode/memory/v1/memory_pb.d.ts} +15 -3
- package/dist/generated/opencode/memory/v1/memory_pb.d.ts.map +1 -0
- package/dist/generated/{memory_pb.js → opencode/memory/v1/memory_pb.js} +21 -9
- package/dist/generated/opencode/memory/v1/memory_pb.js.map +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/instructions.d.ts +12 -0
- package/dist/instructions.d.ts.map +1 -0
- package/dist/instructions.js +41 -0
- package/dist/instructions.js.map +1 -0
- package/dist/plugin.d.ts +16 -0
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +202 -63
- package/dist/plugin.js.map +1 -1
- package/dist/policy.d.ts +13 -3
- package/dist/policy.d.ts.map +1 -1
- package/dist/policy.js +78 -42
- package/dist/policy.js.map +1 -1
- package/dist/protocol.d.ts +4 -1
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +4 -1
- package/dist/protocol.js.map +1 -1
- package/dist/session-context.d.ts +8 -0
- package/dist/session-context.d.ts.map +1 -1
- package/dist/session-context.js +47 -0
- package/dist/session-context.js.map +1 -1
- package/dist/shared-markdown.d.ts +2 -5
- package/dist/shared-markdown.d.ts.map +1 -1
- package/dist/shared-markdown.js +70 -27
- package/dist/shared-markdown.js.map +1 -1
- package/dist/sidecar-client.d.ts.map +1 -1
- package/dist/sidecar-client.js +16 -17
- package/dist/sidecar-client.js.map +1 -1
- package/dist/validation.d.ts +2 -0
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +8 -0
- package/dist/validation.js.map +1 -1
- package/package.json +8 -8
- package/rules/flow.md +12 -12
- package/dist/generated/memory_pb.d.ts.map +0 -1
- package/dist/generated/memory_pb.js.map +0 -1
package/README.md
CHANGED
|
@@ -9,9 +9,11 @@ Local-first persistent memory for OpenCode. The plugin runs a native Rust sideca
|
|
|
9
9
|
- Default pinned `Qwen3-Embedding-4B` model from Hugging Face
|
|
10
10
|
- Session-family, agent, project, and repository scopes
|
|
11
11
|
- Durable taxonomy, confidence, supersession, conflict, pin, lock, expiry, and tombstone metadata
|
|
12
|
+
- Deterministic capture gate with quarantine, skip, duplicate, supersession, and conflict outcomes
|
|
13
|
+
- Crash-recoverable batch upsert journal and portable export/import snapshots
|
|
12
14
|
- Markdown-backed shared repository memory under `.opencode/memory/`
|
|
13
15
|
- Length-delimited Protobuf protocol between TypeScript and Rust
|
|
14
|
-
- Native sidecar packages for macOS
|
|
16
|
+
- Native sidecar packages for macOS and glibc Linux
|
|
15
17
|
|
|
16
18
|
## Install
|
|
17
19
|
|
|
@@ -19,7 +21,7 @@ Add the plugin to `opencode.json` or `opencode.jsonc`:
|
|
|
19
21
|
|
|
20
22
|
```json
|
|
21
23
|
{
|
|
22
|
-
"plugin": ["@nguyenthdat/opencode-memory@0.
|
|
24
|
+
"plugin": ["@nguyenthdat/opencode-memory@0.3.0"]
|
|
23
25
|
}
|
|
24
26
|
```
|
|
25
27
|
|
|
@@ -33,11 +35,10 @@ Supported packages:
|
|
|
33
35
|
| macOS | x64 | `@nguyenthdat/opencode-memory-darwin-x64` |
|
|
34
36
|
| Linux glibc | ARM64 | `@nguyenthdat/opencode-memory-linux-arm64-gnu` |
|
|
35
37
|
| Linux glibc | x64 | `@nguyenthdat/opencode-memory-linux-x64-gnu` |
|
|
36
|
-
| Windows | x64 MSVC | `@nguyenthdat/opencode-memory-win32-x64-msvc` |
|
|
37
38
|
|
|
38
|
-
The first memory operation downloads the default GGUF model
|
|
39
|
+
The first memory operation downloads the default GGUF model under `~/.local/share/opencode/memory/models/<model-revision>/` (or `$XDG_DATA_HOME/opencode/memory/models/<model-revision>/`). Override `OPENCODE_MEMORY_EMBEDDING_MODEL_PATH` to use an existing local model and avoid a network download.
|
|
39
40
|
|
|
40
|
-
|
|
41
|
+
The plugin automatically registers its packaged `rules/flow.md` as an OpenCode instruction while preserving existing project instructions. It never overwrites a project-owned rule file.
|
|
41
42
|
|
|
42
43
|
## Memory Tools
|
|
43
44
|
|
|
@@ -52,6 +53,8 @@ Add `rules/flow.md` to the project instructions if memory tool usage should be e
|
|
|
52
53
|
| `memory_lock` | Lock or unlock without re-embedding |
|
|
53
54
|
| `memory_delete` | Delete records, with tombstones by default |
|
|
54
55
|
| `memory_promote` | Promote reviewed local memory to repository Markdown |
|
|
56
|
+
| `memory_export` | Export records, lifecycle relations, and tombstones |
|
|
57
|
+
| `memory_import` | Validate and restore a portable JSON snapshot |
|
|
55
58
|
| `memory_feedback` | Record whether recalled memories were useful |
|
|
56
59
|
| `memory_optimize` | Prune expired records and optimize indexes |
|
|
57
60
|
| `memory_status` | Inspect backend, model, and schema status |
|
|
@@ -96,8 +99,14 @@ Changing model identity or embedding dimension requires rebuilding the project's
|
|
|
96
99
|
| `OPENCODE_MEMORY_EMBEDDING_GPU_LAYERS` | All layers when GPU offload is supported, otherwise `0` |
|
|
97
100
|
| `OPENCODE_MEMORY_PROJECT_ROOT` | Override project discovery root |
|
|
98
101
|
| `OPENCODE_MEMORY_DATA_DIR` | Override project store base directory |
|
|
99
|
-
| `OPENCODE_MEMORY_MODEL_CACHE` |
|
|
102
|
+
| `OPENCODE_MEMORY_MODEL_CACHE` | Replace the complete local Hugging Face model-cache path |
|
|
100
103
|
| `OPENCODE_NATIVE_MEMORY_BIN` | Development/debug sidecar override |
|
|
104
|
+
| `OPENCODE_MEMORY_WARMUP` | Enable model/shared-memory warmup; default `true` |
|
|
105
|
+
| `OPENCODE_MEMORY_AUTO_RECALL` | Enable automatic contextual recall; default `true` |
|
|
106
|
+
| `OPENCODE_MEMORY_AUTO_CAPTURE` | Evaluate compaction candidates through the capture gate; default `true` |
|
|
107
|
+
| `OPENCODE_MEMORY_SHARED_SYNC` | Synchronize `.opencode/memory/**/*.md`; default `true` |
|
|
108
|
+
| `OPENCODE_MEMORY_FEEDBACK_TRACKING` | Track retrieval feedback; default `true` |
|
|
109
|
+
| `OPENCODE_MEMORY_MIN_SCORE` | Default calibrated search threshold; default `0.42` |
|
|
101
110
|
|
|
102
111
|
Example local model:
|
|
103
112
|
|
|
@@ -110,7 +119,7 @@ export OPENCODE_MEMORY_EMBEDDING_PASSAGE_TEMPLATE="search_document: {text}"
|
|
|
110
119
|
|
|
111
120
|
## Storage and Sharing
|
|
112
121
|
|
|
113
|
-
Private state uses the
|
|
122
|
+
Private state uses the data directory under `opencode/memory/<project-id>/`. Downloaded models use OpenCode's data home under `opencode/memory/models/<model-revision>/`; versioning by immutable model revision avoids downloading the same multi-gigabyte GGUF again on plugin-only upgrades. Existing downloads under `~/.cache/opencode/memory/models/` are not moved automatically; point `OPENCODE_MEMORY_MODEL_CACHE` there to reuse them.
|
|
114
123
|
|
|
115
124
|
Repository memory is canonical Markdown in:
|
|
116
125
|
|
|
@@ -136,15 +145,18 @@ Rust sidecar
|
|
|
136
145
|
-> atomic JSON lifecycle state
|
|
137
146
|
```
|
|
138
147
|
|
|
139
|
-
The Protobuf schema is `schema/memory.proto`. Rust bindings are generated at Cargo build time with `prost-build`; TypeScript bindings are committed
|
|
148
|
+
The Protobuf schema is `schema/opencode/memory/v1/memory.proto`. Rust bindings are generated at Cargo build time with `prost-build`; TypeScript bindings are committed under `opencode-memory/src/generated/opencode/memory/v1/` and reproduced with `bun run generate:protocol`.
|
|
149
|
+
|
|
150
|
+
Lifecycle state schema v4 is intentionally new-only. Older state schemas are rejected instead of migrated; move or purge an older project store before using this build. Upserts are journaled before zvec mutation and replayed as an order-independent batch when the engine opens.
|
|
140
151
|
|
|
141
152
|
## Development
|
|
142
153
|
|
|
143
|
-
Requirements: Bun 1.3+, Rust 1.
|
|
154
|
+
Requirements: Bun 1.3+, Rust 1.97+, `protoc`, and Buf.
|
|
144
155
|
|
|
145
156
|
```sh
|
|
146
157
|
bun install
|
|
147
158
|
bun run generate:protocol:check
|
|
159
|
+
bun run lint:proto
|
|
148
160
|
bun run typecheck
|
|
149
161
|
bun run test:ts
|
|
150
162
|
cargo test --locked --lib
|
|
@@ -153,6 +165,16 @@ bun run build
|
|
|
153
165
|
bun run pack:check
|
|
154
166
|
```
|
|
155
167
|
|
|
168
|
+
### OpenCode Demo Project
|
|
169
|
+
|
|
170
|
+
An isolated project fixture is available at `tests/opencode-memory-demo`. Its config lives at `.opencode/opencode.jsonc`; it loads the local `dist/` plugin, uses the local release sidecar, keeps data under its own `.memory-data/`, and includes a `/memory-smoke` command.
|
|
171
|
+
|
|
172
|
+
```sh
|
|
173
|
+
cd tests/opencode-memory-demo
|
|
174
|
+
bun run prepare
|
|
175
|
+
bun run start
|
|
176
|
+
```
|
|
177
|
+
|
|
156
178
|
Build the local sidecar:
|
|
157
179
|
|
|
158
180
|
```sh
|
|
@@ -163,7 +185,7 @@ GPU features are opt-in Cargo features: `metal`, `cuda`, `cuda-no-vmm`, `vulkan`
|
|
|
163
185
|
|
|
164
186
|
## Releases
|
|
165
187
|
|
|
166
|
-
Tags matching `vX.Y.Z` build and package
|
|
188
|
+
Tags matching `vX.Y.Z` build and package four native targets for macOS and glibc Linux, publish native packages first, publish the umbrella plugin with npm provenance, and create a GitHub release containing all tarballs and a checksum for the umbrella package. `package.json`, `Cargo.toml`, and every native package must carry the same version.
|
|
167
189
|
|
|
168
190
|
## License
|
|
169
191
|
|
package/dist/contracts.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ export interface MemoryRecord {
|
|
|
17
17
|
created_at_ms: number;
|
|
18
18
|
updated_at_ms: number;
|
|
19
19
|
scope: (typeof MEMORY_SCOPES)[number];
|
|
20
|
+
scope_key?: string | null;
|
|
20
21
|
origin: "manual" | "auto_compaction" | "shared_markdown" | "legacy";
|
|
21
22
|
expires_at_ms?: number | null;
|
|
22
23
|
stale: boolean;
|
|
@@ -51,6 +52,7 @@ export interface SearchResponse {
|
|
|
51
52
|
abstained: boolean;
|
|
52
53
|
abstention_reason?: string | null;
|
|
53
54
|
score_version: string;
|
|
55
|
+
warnings: string[];
|
|
54
56
|
memories: MemoryRecord[];
|
|
55
57
|
}
|
|
56
58
|
export interface ListResponse {
|
|
@@ -71,14 +73,38 @@ export interface CuratedCandidate {
|
|
|
71
73
|
tags: string[];
|
|
72
74
|
code_paths: string[];
|
|
73
75
|
}
|
|
76
|
+
export interface CaptureResponse {
|
|
77
|
+
decision: {
|
|
78
|
+
outcome: "skip" | "quarantine" | "accept";
|
|
79
|
+
reason?: string;
|
|
80
|
+
confidence?: number;
|
|
81
|
+
confidence_capped?: boolean;
|
|
82
|
+
};
|
|
83
|
+
stored?: {
|
|
84
|
+
id: string;
|
|
85
|
+
inserted: boolean;
|
|
86
|
+
content_hash: string;
|
|
87
|
+
updated_at_ms: number;
|
|
88
|
+
scope: (typeof MEMORY_SCOPES)[number];
|
|
89
|
+
};
|
|
90
|
+
}
|
|
74
91
|
export interface SharedMemoryRecord extends CuratedCandidate {
|
|
75
92
|
source: string;
|
|
76
93
|
}
|
|
94
|
+
export interface SharedMemoryLoadError {
|
|
95
|
+
source: string;
|
|
96
|
+
message: string;
|
|
97
|
+
}
|
|
98
|
+
export interface SharedMemoryLoadResult {
|
|
99
|
+
records: SharedMemoryRecord[];
|
|
100
|
+
signature: string;
|
|
101
|
+
errors: SharedMemoryLoadError[];
|
|
102
|
+
}
|
|
77
103
|
export interface SharedSyncResponse {
|
|
78
104
|
imported: number;
|
|
79
105
|
removed: number;
|
|
80
106
|
rejected: number;
|
|
81
|
-
|
|
107
|
+
rejections: SharedMemoryLoadError[];
|
|
82
108
|
}
|
|
83
109
|
export interface RpcResponse {
|
|
84
110
|
id: number;
|
package/dist/contracts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../opencode-memory/src/contracts.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,6EAOf,CAAC;AAEX,eAAO,MAAM,aAAa,wDAAyD,CAAC;AAEpF,eAAO,MAAM,iBAAiB,kQAgBpB,CAAC;AAEX,eAAO,MAAM,sBAAsB,0CAA2C,CAAC;AAE/E,eAAO,MAAM,eAAe,uCAAwC,CAAC;AAErE,eAAO,MAAM,YAAY,6BAA8B,CAAC;AAExD,eAAO,MAAM,eAAe,MAAM,CAAC;AAEnC,eAAO,MAAM,uBAAuB,4KAc1B,CAAC;AAEX,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,EAAE,QAAQ,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,QAAQ,CAAC;IACpE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxE,QAAQ,EAAE;QACR,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB,EAAE,MAAM,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;IACxD,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IAC1D,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../opencode-memory/src/contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
|
2
2
|
import type { Message } from "@bufbuild/protobuf";
|
|
3
3
|
/**
|
|
4
|
-
* Describes the file memory.proto.
|
|
4
|
+
* Describes the file opencode/memory/v1/memory.proto.
|
|
5
5
|
*/
|
|
6
|
-
export declare const
|
|
6
|
+
export declare const file_opencode_memory_v1_memory: GenFile;
|
|
7
7
|
/**
|
|
8
8
|
* @generated from message opencode.memory.v1.ValueList
|
|
9
9
|
*/
|
|
@@ -218,7 +218,19 @@ export declare enum Method {
|
|
|
218
218
|
/**
|
|
219
219
|
* @generated from enum value: METHOD_SHUTDOWN = 16;
|
|
220
220
|
*/
|
|
221
|
-
SHUTDOWN = 16
|
|
221
|
+
SHUTDOWN = 16,
|
|
222
|
+
/**
|
|
223
|
+
* @generated from enum value: METHOD_CAPTURE = 17;
|
|
224
|
+
*/
|
|
225
|
+
CAPTURE = 17,
|
|
226
|
+
/**
|
|
227
|
+
* @generated from enum value: METHOD_EXPORT = 18;
|
|
228
|
+
*/
|
|
229
|
+
EXPORT = 18,
|
|
230
|
+
/**
|
|
231
|
+
* @generated from enum value: METHOD_IMPORT = 19;
|
|
232
|
+
*/
|
|
233
|
+
IMPORT = 19
|
|
222
234
|
}
|
|
223
235
|
/**
|
|
224
236
|
* Describes the enum opencode.memory.v1.Method.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory_pb.d.ts","sourceRoot":"","sources":["../../../../../opencode-memory/src/generated/opencode/memory/v1/memory_pb.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,36 +1,36 @@
|
|
|
1
1
|
// @generated by protoc-gen-es v2.13.0 with parameter "target=ts,import_extension=js"
|
|
2
|
-
// @generated from file memory.proto (package opencode.memory.v1, syntax proto3)
|
|
2
|
+
// @generated from file opencode/memory/v1/memory.proto (package opencode.memory.v1, syntax proto3)
|
|
3
3
|
/* eslint-disable */
|
|
4
4
|
import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
|
5
5
|
/**
|
|
6
|
-
* Describes the file memory.proto.
|
|
6
|
+
* Describes the file opencode/memory/v1/memory.proto.
|
|
7
7
|
*/
|
|
8
|
-
export const
|
|
8
|
+
export const file_opencode_memory_v1_memory = /*@__PURE__*/ fileDesc("Ch9vcGVuY29kZS9tZW1vcnkvdjEvbWVtb3J5LnByb3RvEhJvcGVuY29kZS5tZW1vcnkudjEiNgoJVmFsdWVMaXN0EikKBnZhbHVlcxgBIAMoCzIZLm9wZW5jb2RlLm1lbW9yeS52MS5WYWx1ZSKUAQoLVmFsdWVPYmplY3QSOwoGZmllbGRzGAEgAygLMisub3BlbmNvZGUubWVtb3J5LnYxLlZhbHVlT2JqZWN0LkZpZWxkc0VudHJ5GkgKC0ZpZWxkc0VudHJ5EgsKA2tleRgBIAEoCRIoCgV2YWx1ZRgCIAEoCzIZLm9wZW5jb2RlLm1lbW9yeS52MS5WYWx1ZToCOAEiiwIKBVZhbHVlEhcKDWJvb2xlYW5fdmFsdWUYASABKAhIABIWCgxzaWduZWRfdmFsdWUYAiABKBJIABIYCg51bnNpZ25lZF92YWx1ZRgDIAEoBEgAEhUKC2Zsb2F0X3ZhbHVlGAQgASgBSAASFAoKdGV4dF92YWx1ZRgFIAEoCUgAEjMKCmxpc3RfdmFsdWUYBiABKAsyHS5vcGVuY29kZS5tZW1vcnkudjEuVmFsdWVMaXN0SAASNwoMb2JqZWN0X3ZhbHVlGAcgASgLMh8ub3BlbmNvZGUubWVtb3J5LnYxLlZhbHVlT2JqZWN0SAASFAoKbnVsbF92YWx1ZRgIIAEoCEgAQgYKBGtpbmQibAoHUmVxdWVzdBIKCgJpZBgBIAEoBBIqCgZtZXRob2QYAiABKA4yGi5vcGVuY29kZS5tZW1vcnkudjEuTWV0aG9kEikKBnBhcmFtcxgDIAEoCzIZLm9wZW5jb2RlLm1lbW9yeS52MS5WYWx1ZSJcCghSZXNwb25zZRIKCgJpZBgBIAEoBBIKCgJvaxgCIAEoCBIpCgZyZXN1bHQYAyABKAsyGS5vcGVuY29kZS5tZW1vcnkudjEuVmFsdWUSDQoFZXJyb3IYBCABKAkqiQMKBk1ldGhvZBIWChJNRVRIT0RfVU5TUEVDSUZJRUQQABIRCg1NRVRIT0RfU0VBUkNIEAESEAoMTUVUSE9EX1NUT1JFEAISDgoKTUVUSE9EX0dFVBADEg8KC01FVEhPRF9MSVNUEAQSEQoNTUVUSE9EX1VQREFURRAFEg4KCk1FVEhPRF9QSU4QBhIPCgtNRVRIT0RfTE9DSxAHEhEKDU1FVEhPRF9ERUxFVEUQCBIRCg1NRVRIT0RfRk9SR0VUEAkSEAoMTUVUSE9EX1BVUkdFEAoSEwoPTUVUSE9EX0ZFRURCQUNLEAsSFgoSTUVUSE9EX1NZTkNfU0hBUkVEEAwSEQoNTUVUSE9EX1NUQVRVUxANEhMKD01FVEhPRF9PUFRJTUlaRRAOEhEKDU1FVEhPRF9ET0NUT1IQDxITCg9NRVRIT0RfU0hVVERPV04QEBISCg5NRVRIT0RfQ0FQVFVSRRAREhEKDU1FVEhPRF9FWFBPUlQQEhIRCg1NRVRIT0RfSU1QT1JUEBNiBnByb3RvMw");
|
|
9
9
|
/**
|
|
10
10
|
* Describes the message opencode.memory.v1.ValueList.
|
|
11
11
|
* Use `create(ValueListSchema)` to create a new message.
|
|
12
12
|
*/
|
|
13
|
-
export const ValueListSchema = /*@__PURE__*/ messageDesc(
|
|
13
|
+
export const ValueListSchema = /*@__PURE__*/ messageDesc(file_opencode_memory_v1_memory, 0);
|
|
14
14
|
/**
|
|
15
15
|
* Describes the message opencode.memory.v1.ValueObject.
|
|
16
16
|
* Use `create(ValueObjectSchema)` to create a new message.
|
|
17
17
|
*/
|
|
18
|
-
export const ValueObjectSchema = /*@__PURE__*/ messageDesc(
|
|
18
|
+
export const ValueObjectSchema = /*@__PURE__*/ messageDesc(file_opencode_memory_v1_memory, 1);
|
|
19
19
|
/**
|
|
20
20
|
* Describes the message opencode.memory.v1.Value.
|
|
21
21
|
* Use `create(ValueSchema)` to create a new message.
|
|
22
22
|
*/
|
|
23
|
-
export const ValueSchema = /*@__PURE__*/ messageDesc(
|
|
23
|
+
export const ValueSchema = /*@__PURE__*/ messageDesc(file_opencode_memory_v1_memory, 2);
|
|
24
24
|
/**
|
|
25
25
|
* Describes the message opencode.memory.v1.Request.
|
|
26
26
|
* Use `create(RequestSchema)` to create a new message.
|
|
27
27
|
*/
|
|
28
|
-
export const RequestSchema = /*@__PURE__*/ messageDesc(
|
|
28
|
+
export const RequestSchema = /*@__PURE__*/ messageDesc(file_opencode_memory_v1_memory, 3);
|
|
29
29
|
/**
|
|
30
30
|
* Describes the message opencode.memory.v1.Response.
|
|
31
31
|
* Use `create(ResponseSchema)` to create a new message.
|
|
32
32
|
*/
|
|
33
|
-
export const ResponseSchema = /*@__PURE__*/ messageDesc(
|
|
33
|
+
export const ResponseSchema = /*@__PURE__*/ messageDesc(file_opencode_memory_v1_memory, 4);
|
|
34
34
|
/**
|
|
35
35
|
* @generated from enum opencode.memory.v1.Method
|
|
36
36
|
*/
|
|
@@ -104,9 +104,21 @@ export var Method;
|
|
|
104
104
|
* @generated from enum value: METHOD_SHUTDOWN = 16;
|
|
105
105
|
*/
|
|
106
106
|
Method[Method["SHUTDOWN"] = 16] = "SHUTDOWN";
|
|
107
|
+
/**
|
|
108
|
+
* @generated from enum value: METHOD_CAPTURE = 17;
|
|
109
|
+
*/
|
|
110
|
+
Method[Method["CAPTURE"] = 17] = "CAPTURE";
|
|
111
|
+
/**
|
|
112
|
+
* @generated from enum value: METHOD_EXPORT = 18;
|
|
113
|
+
*/
|
|
114
|
+
Method[Method["EXPORT"] = 18] = "EXPORT";
|
|
115
|
+
/**
|
|
116
|
+
* @generated from enum value: METHOD_IMPORT = 19;
|
|
117
|
+
*/
|
|
118
|
+
Method[Method["IMPORT"] = 19] = "IMPORT";
|
|
107
119
|
})(Method || (Method = {}));
|
|
108
120
|
/**
|
|
109
121
|
* Describes the enum opencode.memory.v1.Method.
|
|
110
122
|
*/
|
|
111
|
-
export const MethodSchema = /*@__PURE__*/ enumDesc(
|
|
123
|
+
export const MethodSchema = /*@__PURE__*/ enumDesc(file_opencode_memory_v1_memory, 0);
|
|
112
124
|
//# sourceMappingURL=memory_pb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory_pb.js","sourceRoot":"","sources":["../../../../../opencode-memory/src/generated/opencode/memory/v1/memory_pb.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,mGAAmG;AACnG,oBAAoB;AAGpB,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAG/E;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAY,aAAa,CAClE,QAAQ,CAAC,g/CAAg/C,CAAC,CAAC;AAY7/C;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAA0B,aAAa,CACjE,WAAW,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC;AAYjD;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAA4B,aAAa,CACrE,WAAW,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC;AA4DjD;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAsB,aAAa,CACzD,WAAW,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC;AAsBjD;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAwB,aAAa,CAC7D,WAAW,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC;AA2BjD;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAyB,aAAa,CAC/D,WAAW,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC;AAEjD;;GAEG;AACH,MAAM,CAAN,IAAY,MAoGX;AApGD,WAAY,MAAM;IAChB;;OAEG;IACH,iDAAe,CAAA;IAEf;;OAEG;IACH,uCAAU,CAAA;IAEV;;OAEG;IACH,qCAAS,CAAA;IAET;;OAEG;IACH,iCAAO,CAAA;IAEP;;OAEG;IACH,mCAAQ,CAAA;IAER;;OAEG;IACH,uCAAU,CAAA;IAEV;;OAEG;IACH,iCAAO,CAAA;IAEP;;OAEG;IACH,mCAAQ,CAAA;IAER;;OAEG;IACH,uCAAU,CAAA;IAEV;;OAEG;IACH,uCAAU,CAAA;IAEV;;OAEG;IACH,sCAAU,CAAA;IAEV;;OAEG;IACH,4CAAa,CAAA;IAEb;;OAEG;IACH,kDAAgB,CAAA;IAEhB;;OAEG;IACH,wCAAW,CAAA;IAEX;;OAEG;IACH,4CAAa,CAAA;IAEb;;OAEG;IACH,wCAAW,CAAA;IAEX;;OAEG;IACH,4CAAa,CAAA;IAEb;;OAEG;IACH,0CAAY,CAAA;IAEZ;;OAEG;IACH,wCAAW,CAAA;IAEX;;OAEG;IACH,wCAAW,CAAA;AACb,CAAC,EApGW,MAAM,KAAN,MAAM,QAoGjB;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAoB,aAAa,CACxD,QAAQ,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,10 +6,11 @@ export { NativeMemoryClient, resolveNativeMemoryBinary, REQUEST_TIMEOUT_MS, INIT
|
|
|
6
6
|
export type { SpawnFn } from "./sidecar-client.js";
|
|
7
7
|
export { decodeResponse, DelimitedFrameDecoder, encodeRequest } from "./protocol.js";
|
|
8
8
|
export type { MemoryMethod } from "./protocol.js";
|
|
9
|
-
export { createMemoryPlugin } from "./plugin.js";
|
|
9
|
+
export { createMemoryPlugin, resolveMemoryPluginOptions } from "./plugin.js";
|
|
10
10
|
export type { MemoryPluginOptions } from "./plugin.js";
|
|
11
11
|
export { SessionContext } from "./session-context.js";
|
|
12
12
|
export { validateUpdateArgs } from "./validation.js";
|
|
13
|
-
export {
|
|
13
|
+
export { MEMORY_INSTRUCTIONS_MARKER, loadMemoryInstructions, registerMemoryInstructions, } from "./instructions.js";
|
|
14
|
+
export { formatRecalledMemories, parseCuratedCandidates, truncateText, contextBudgetChars, safeJson, COMPACTION_CONTEXT, CANDIDATES_OPEN, CANDIDATES_CLOSE, } from "./policy.js";
|
|
14
15
|
export { loadSharedMemories, parseSharedMemory, writeSharedMemory, SHARED_MEMORY_RELATIVE_DIR, } from "./shared-markdown.js";
|
|
15
16
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../opencode-memory/src/index.ts"],"names":[],"mappings":";AAUA,wBAAyD;AAGzD,OAAO,EACL,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,sBAAsB,EACtB,eAAe,EACf,YAAY,EACZ,eAAe,EACf,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,EAClB,yBAAyB,EACzB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACrF,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGlD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../opencode-memory/src/index.ts"],"names":[],"mappings":";AAUA,wBAAyD;AAGzD,OAAO,EACL,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,sBAAsB,EACtB,eAAe,EACf,YAAY,EACZ,eAAe,EACf,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,EAClB,yBAAyB,EACzB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACrF,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGlD,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAC7E,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGvD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGrD,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,QAAQ,EACR,kBAAkB,EAClB,eAAe,EACf,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -12,13 +12,15 @@ export { MEMORY_KINDS, MEMORY_SCOPES, MEMORY_TAXONOMIES, WRITABLE_MEMORY_SCOPES,
|
|
|
12
12
|
export { NativeMemoryClient, resolveNativeMemoryBinary, REQUEST_TIMEOUT_MS, INITIALIZATION_TIMEOUT_MS, MAX_REQUEST_BYTES, MAX_RESPONSE_BYTES, } from "./sidecar-client.js";
|
|
13
13
|
export { decodeResponse, DelimitedFrameDecoder, encodeRequest } from "./protocol.js";
|
|
14
14
|
// Plugin factory
|
|
15
|
-
export { createMemoryPlugin } from "./plugin.js";
|
|
15
|
+
export { createMemoryPlugin, resolveMemoryPluginOptions } from "./plugin.js";
|
|
16
16
|
// Session context (testable abstraction)
|
|
17
17
|
export { SessionContext } from "./session-context.js";
|
|
18
18
|
// Lifecycle validation
|
|
19
19
|
export { validateUpdateArgs } from "./validation.js";
|
|
20
|
+
// Managed instruction asset
|
|
21
|
+
export { MEMORY_INSTRUCTIONS_MARKER, loadMemoryInstructions, registerMemoryInstructions, } from "./instructions.js";
|
|
20
22
|
// Policy helpers
|
|
21
|
-
export { formatRecalledMemories, parseCuratedCandidates, truncateText, contextBudgetChars, safeJson,
|
|
23
|
+
export { formatRecalledMemories, parseCuratedCandidates, truncateText, contextBudgetChars, safeJson, COMPACTION_CONTEXT, CANDIDATES_OPEN, CANDIDATES_CLOSE, } from "./policy.js";
|
|
22
24
|
// Shared-markdown helpers
|
|
23
25
|
export { loadSharedMemories, parseSharedMemory, writeSharedMemory, SHARED_MEMORY_RELATIVE_DIR, } from "./shared-markdown.js";
|
|
24
26
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../opencode-memory/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAChE,MAAM,WAAW,GACf,QAAQ,CAAC,eAAe,CAAC,KAAK,MAAM;IAClC,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC;IAChC,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;AAExC,eAAe,kBAAkB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;AAEzD,0BAA0B;AAC1B,OAAO,EACL,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,sBAAsB,EACtB,eAAe,EACf,YAAY,EACZ,eAAe,EACf,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AAYxB,iBAAiB;AACjB,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,EAClB,yBAAyB,EACzB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGrF,iBAAiB;AACjB,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../opencode-memory/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAChE,MAAM,WAAW,GACf,QAAQ,CAAC,eAAe,CAAC,KAAK,MAAM;IAClC,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC;IAChC,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;AAExC,eAAe,kBAAkB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;AAEzD,0BAA0B;AAC1B,OAAO,EACL,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,sBAAsB,EACtB,eAAe,EACf,YAAY,EACZ,eAAe,EACf,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AAYxB,iBAAiB;AACjB,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,EAClB,yBAAyB,EACzB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGrF,iBAAiB;AACjB,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAG7E,yCAAyC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,uBAAuB;AACvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,4BAA4B;AAC5B,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC;AAE3B,iBAAiB;AACjB,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,QAAQ,EACR,kBAAkB,EAClB,eAAe,EACf,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAErB,0BAA0B;AAC1B,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const MEMORY_INSTRUCTIONS_MARKER = "<!-- opencode-memory-instructions:v1 -->";
|
|
2
|
+
export interface MemoryInstructionsAsset {
|
|
3
|
+
path: string;
|
|
4
|
+
content: string;
|
|
5
|
+
}
|
|
6
|
+
interface InstructionsConfig {
|
|
7
|
+
instructions?: string[];
|
|
8
|
+
}
|
|
9
|
+
export declare function loadMemoryInstructions(packageRoot: string): Promise<MemoryInstructionsAsset>;
|
|
10
|
+
export declare function registerMemoryInstructions(config: InstructionsConfig, asset: MemoryInstructionsAsset, projectDirectory: string): Promise<void>;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=instructions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instructions.d.ts","sourceRoot":"","sources":["../opencode-memory/src/instructions.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,0BAA0B,6CAA6C,CAAC;AAIrF,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,kBAAkB;IAC1B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,uBAAuB,CAAC,CAgBlC;AAED,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,kBAAkB,EAC1B,KAAK,EAAE,uBAAuB,EAC9B,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,IAAI,CAAC,CAUf"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { readFile, realpath, stat } from "node:fs/promises";
|
|
2
|
+
import { isAbsolute, resolve } from "node:path";
|
|
3
|
+
export const MEMORY_INSTRUCTIONS_MARKER = "<!-- opencode-memory-instructions:v1 -->";
|
|
4
|
+
const MEMORY_INSTRUCTIONS_RELATIVE_PATH = "rules/flow.md";
|
|
5
|
+
const MAX_INSTRUCTIONS_BYTES = 16 * 1024;
|
|
6
|
+
export async function loadMemoryInstructions(packageRoot) {
|
|
7
|
+
const candidate = resolve(packageRoot, MEMORY_INSTRUCTIONS_RELATIVE_PATH);
|
|
8
|
+
const info = await stat(candidate).catch((error) => {
|
|
9
|
+
throw new Error(`Native memory instructions are missing: ${candidate}`, { cause: error });
|
|
10
|
+
});
|
|
11
|
+
if (!info.isFile())
|
|
12
|
+
throw new Error(`Native memory instructions are not a file: ${candidate}`);
|
|
13
|
+
if (info.size > MAX_INSTRUCTIONS_BYTES) {
|
|
14
|
+
throw new Error(`Native memory instructions exceed ${MAX_INSTRUCTIONS_BYTES} bytes: ${candidate}`);
|
|
15
|
+
}
|
|
16
|
+
const content = await readFile(candidate, "utf8");
|
|
17
|
+
if (!content.includes(MEMORY_INSTRUCTIONS_MARKER)) {
|
|
18
|
+
throw new Error(`Native memory instructions have an invalid marker: ${candidate}`);
|
|
19
|
+
}
|
|
20
|
+
return { path: await realpath(candidate), content };
|
|
21
|
+
}
|
|
22
|
+
export async function registerMemoryInstructions(config, asset, projectDirectory) {
|
|
23
|
+
const instructions = config.instructions ?? [];
|
|
24
|
+
for (const instruction of instructions) {
|
|
25
|
+
const candidate = isAbsolute(instruction)
|
|
26
|
+
? instruction
|
|
27
|
+
: resolve(projectDirectory, instruction);
|
|
28
|
+
if (resolve(candidate) === asset.path || (await existingRealpath(candidate)) === asset.path)
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
config.instructions = [...instructions, asset.path];
|
|
32
|
+
}
|
|
33
|
+
async function existingRealpath(path) {
|
|
34
|
+
try {
|
|
35
|
+
return await realpath(path);
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=instructions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instructions.js","sourceRoot":"","sources":["../opencode-memory/src/instructions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEhD,MAAM,CAAC,MAAM,0BAA0B,GAAG,0CAA0C,CAAC;AACrF,MAAM,iCAAiC,GAAG,eAAe,CAAC;AAC1D,MAAM,sBAAsB,GAAG,EAAE,GAAG,IAAI,CAAC;AAWzC,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,WAAmB;IAEnB,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,EAAE,iCAAiC,CAAC,CAAC;IAC1E,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QAC1D,MAAM,IAAI,KAAK,CAAC,2CAA2C,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5F,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,SAAS,EAAE,CAAC,CAAC;IAC/F,IAAI,IAAI,CAAC,IAAI,GAAG,sBAAsB,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CACb,qCAAqC,sBAAsB,WAAW,SAAS,EAAE,CAClF,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAClD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,sDAAsD,SAAS,EAAE,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;AACtD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,MAA0B,EAC1B,KAA8B,EAC9B,gBAAwB;IAExB,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC;IAC/C,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC;YACvC,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;QAC3C,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI;YACzF,OAAO;IACX,CAAC;IACD,MAAM,CAAC,YAAY,GAAG,CAAC,GAAG,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;AACtD,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,IAAY;IAC1C,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
|
package/dist/plugin.d.ts
CHANGED
|
@@ -2,6 +2,22 @@ import type { Plugin } from "@opencode-ai/plugin";
|
|
|
2
2
|
export interface MemoryPluginOptions {
|
|
3
3
|
root: string;
|
|
4
4
|
warmup?: boolean;
|
|
5
|
+
automaticRecall?: boolean;
|
|
6
|
+
automaticCapture?: boolean;
|
|
7
|
+
sharedSync?: boolean;
|
|
8
|
+
feedbackTracking?: boolean;
|
|
9
|
+
minScore?: number;
|
|
10
|
+
projectRoot?: string;
|
|
5
11
|
}
|
|
6
12
|
export declare function createMemoryPlugin(options: MemoryPluginOptions): Plugin;
|
|
13
|
+
interface ResolvedMemoryPluginOptions {
|
|
14
|
+
warmup: boolean;
|
|
15
|
+
automaticRecall: boolean;
|
|
16
|
+
automaticCapture: boolean;
|
|
17
|
+
sharedSync: boolean;
|
|
18
|
+
feedbackTracking: boolean;
|
|
19
|
+
minScore: number;
|
|
20
|
+
}
|
|
21
|
+
export declare function resolveMemoryPluginOptions(options: MemoryPluginOptions): ResolvedMemoryPluginOptions;
|
|
22
|
+
export {};
|
|
7
23
|
//# sourceMappingURL=plugin.d.ts.map
|
package/dist/plugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../opencode-memory/src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAc,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../opencode-memory/src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAc,MAAM,qBAAqB,CAAC;AAuC9D,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CA80BvE;AAED,UAAU,2BAA2B;IACnC,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,mBAAmB,GAC3B,2BAA2B,CAc7B"}
|