opencode-deja 0.22.0 → 0.22.2

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.
Files changed (3) hide show
  1. package/README.md +2 -2
  2. package/index.js +9 -7
  3. package/package.json +3 -3
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  English | [中文](https://github.com/vshulcz/deja-vu/blob/main/extensions/opencode/docs/zh.md)
4
4
 
5
5
  opencode remembers its own sessions. This plugin answers the other question:
6
- what you did in the forty other coding agents on this machine — Claude Code,
6
+ what you did in the forty-one other coding agents on this machine — Claude Code,
7
7
  Codex, Cursor, Gemini and Zed among them — including the months before you
8
8
  installed anything.
9
9
 
@@ -92,7 +92,7 @@ On 2.x:
92
92
  In order: `bin` from the options, `DEJA_BIN`, a `deja` on `PATH`, the usual
93
93
  install locations (`~/.local/bin`, `/usr/local/bin`, `/opt/homebrew/bin`), and
94
94
  only then the copy npm installed with this package. Your own `deja update` or
95
- `brew upgrade deja` wins over whatever version this package shipped with.
95
+ `brew upgrade deja-vu` wins over whatever version this package shipped with.
96
96
 
97
97
  Without deja anywhere, the tools say so instead of reporting an empty history,
98
98
  and the hooks stay quiet.
package/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  // opencode-deja — the sessions you already have, inside opencode.
2
2
  //
3
3
  // opencode remembers its own sessions. This plugin answers the other question:
4
- // what you did in Claude Code, Codex, Cursor, Gemini and thirty-seven more agents on
4
+ // what you did in Claude Code, Codex, Cursor, Gemini and thirty-eight more agents on
5
5
  // this machine, including months before deja existed. The index is deja's; this
6
6
  // file is the seam: six tools the model can call, plus recall that arrives
7
7
  // without being asked for.
@@ -206,7 +206,9 @@ export const DejaPlugin = async ({ client, directory }, options = {}) => {
206
206
  // copy `deja install` keeps current; this package fills the gaps.
207
207
  const adds = contributions(installerWiring(), config)
208
208
 
209
- // The six tools, described once. opencode 1.x takes them through its zod
209
+ // The six tools, described once. The ones that read history ask for
210
+ // --framed output: what those commands print is written for a person, and
211
+ // the model has to get it inside deja's untrusted-data frame. opencode 1.x takes them through its zod
210
212
  // helper and 2.x as JSON Schema (server.js), so the arguments are plain
211
213
  // data and each side builds its own.
212
214
  const specs = {
@@ -219,7 +221,7 @@ export const DejaPlugin = async ({ client, directory }, options = {}) => {
219
221
  },
220
222
  async execute(args) {
221
223
  const limit = String(clampLimit(args.limit))
222
- return answer(await ask(argv("search", ["--json", "--limit", limit], args.query)))
224
+ return answer(await ask(["--framed", ...argv("search", ["--json", "--limit", limit], args.query)]))
223
225
  },
224
226
  },
225
227
  deja_session: {
@@ -229,7 +231,7 @@ export const DejaPlugin = async ({ client, directory }, options = {}) => {
229
231
  query: { type: "string", description: "A query, or a session id prefix returned by deja_recall." },
230
232
  },
231
233
  async execute(args) {
232
- return answer(await ask(argv("ctx", [], args.query)))
234
+ return answer(await ask(["--framed", ...argv("ctx", [], args.query)]))
233
235
  },
234
236
  },
235
237
  deja_blame: {
@@ -239,7 +241,7 @@ export const DejaPlugin = async ({ client, directory }, options = {}) => {
239
241
  path: { type: "string", description: "Path to the file, absolute or relative to the project." },
240
242
  },
241
243
  async execute(args) {
242
- return answer(await ask(argv("blame", ["--json"], args.path)))
244
+ return answer(await ask(["--framed", ...argv("blame", ["--json"], args.path)]))
243
245
  },
244
246
  },
245
247
  deja_fix: {
@@ -249,7 +251,7 @@ export const DejaPlugin = async ({ client, directory }, options = {}) => {
249
251
  error: { type: "string", description: "The failing output, copied as it was printed." },
250
252
  },
251
253
  async execute(args) {
252
- return answer(await ask(argv("fix", [], args.error)))
254
+ return answer(await ask(["--framed", ...argv("fix", [], args.error)]))
253
255
  },
254
256
  },
255
257
  deja_how: {
@@ -259,7 +261,7 @@ export const DejaPlugin = async ({ client, directory }, options = {}) => {
259
261
  what: { type: "string", description: "The thing to run: a tool, a task, a script name." },
260
262
  },
261
263
  async execute(args) {
262
- return answer(await ask(argv("how", [], args.what)))
264
+ return answer(await ask(["--framed", ...argv("how", [], args.what)]))
263
265
  },
264
266
  },
265
267
  deja_remember: {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "opencode-deja",
3
- "version": "0.22.0",
4
- "description": "deja-vu memory for opencode: the session history of forty other coding agents, searchable and recalled on every request — a local index, no LLM.",
3
+ "version": "0.22.2",
4
+ "description": "deja-vu memory for opencode: the session history of forty-one other coding agents, searchable and recalled on every request — a local index, no LLM.",
5
5
  "type": "module",
6
6
  "main": "index.js",
7
7
  "exports": {
@@ -52,7 +52,7 @@
52
52
  },
53
53
  "dependencies": {
54
54
  "@opencode-ai/plugin": ">=1.0.0",
55
- "@vshulcz/deja-vu": "^0.22.0"
55
+ "@vshulcz/deja-vu": "^0.22.2"
56
56
  },
57
57
  "scripts": {
58
58
  "test": "node --test test/*.test.js"