greprag 0.7.3 → 0.8.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.
package/dist/index.js CHANGED
@@ -46,6 +46,10 @@ const fs = __importStar(require("fs"));
46
46
  const init_1 = require("./commands/init");
47
47
  const status_1 = require("./commands/status");
48
48
  const doctor_1 = require("./commands/doctor");
49
+ const corpus_1 = require("./commands/corpus");
50
+ const discover_1 = require("./commands/discover");
51
+ const inbox_retract_1 = require("./commands/inbox-retract");
52
+ const inbox_watch_1 = require("./commands/inbox-watch");
49
53
  const project_anchor_1 = require("./project-anchor");
50
54
  // -- Config / env (shared with hook.ts) ------------------------------------
51
55
  const API_URL_DEFAULT = 'https://api.greprag.com';
@@ -163,7 +167,7 @@ async function apiDelete(url, apiKey) {
163
167
  throw new Error(`API ${res.status}: ${await res.text()}`);
164
168
  return res.json();
165
169
  }
166
- /** greprag inbox [--all] | inbox keep <id> | inbox delete <id> */
170
+ /** greprag inbox [--all] [--session <id>] | inbox keep <id> | inbox delete <id> | inbox watch */
167
171
  async function inbox(args) {
168
172
  const cfg = getConfig();
169
173
  if (!cfg.apiKey) {
@@ -171,6 +175,16 @@ async function inbox(args) {
171
175
  process.exit(1);
172
176
  }
173
177
  const sub = args[0];
178
+ if (sub === 'watch') {
179
+ const subArgs = args.slice(1);
180
+ await (0, inbox_watch_1.runInboxWatch)({
181
+ project: getFlag(subArgs, '--project'),
182
+ session: getFlag(subArgs, '--session'),
183
+ since: getFlag(subArgs, '--since'),
184
+ json: subArgs.includes('--json'),
185
+ });
186
+ return;
187
+ }
174
188
  if (sub === 'keep' || sub === 'delete') {
175
189
  const id = args[1];
176
190
  if (!id) {
@@ -188,7 +202,14 @@ async function inbox(args) {
188
202
  return;
189
203
  }
190
204
  const includeAll = args.includes('--all');
191
- const url = `${cfg.apiUrl}/v1/inbox${includeAll ? '?include=all' : ''}`;
205
+ const sessionId = getFlag(args, '--session');
206
+ const params = new URLSearchParams();
207
+ if (includeAll)
208
+ params.set('include', 'all');
209
+ if (sessionId)
210
+ params.set('session_id', sessionId);
211
+ const qs = params.toString();
212
+ const url = `${cfg.apiUrl}/v1/inbox${qs ? '?' + qs : ''}`;
192
213
  const result = await apiGet(url, cfg.apiKey);
193
214
  const messages = (result.messages || []);
194
215
  if (messages.length === 0) {
@@ -264,7 +285,11 @@ function parseFileFlag(raw) {
264
285
  }
265
286
  return { path: raw };
266
287
  }
267
- /** greprag send "body" --to <email>[/project]
288
+ /** greprag send "body" --to <email>[/project[/session]]
289
+ * [--session <id>] target session (alt to address suffix)
290
+ * [--from-session <id>] sender's own session — denormalized
291
+ * onto the message so the recipient can
292
+ * reply by session without re-discovery
268
293
  * [--memory <uuid>]+ (repeatable; back-pointer to memory rows)
269
294
  * [--artifact <type:id>]+ (repeatable; e.g. commit:abc123, pr:#42)
270
295
  * [--file <path[:lines]>]+ (repeatable; e.g. src/auth.ts:42)
@@ -278,13 +303,14 @@ async function send(args) {
278
303
  }
279
304
  const to = getFlag(args, '--to');
280
305
  if (!to) {
281
- console.error('Usage: greprag send "body" --to <email>[/project] [--memory <uuid>] [--artifact <type:id>] [--file <path[:lines]>]');
306
+ console.error('Usage: greprag send "body" --to <email>[/project[/session]] [--session <id>] [--from-session <id>] [--memory <uuid>] [--artifact <type:id>] [--file <path[:lines]>]');
282
307
  process.exit(1);
283
308
  }
284
309
  // Find the body — first positional arg that isn't a flag value. We need to
285
310
  // skip both the flag itself and the value of any preceding flag.
286
311
  const flagsTakingValue = new Set([
287
312
  '--to', '--memory', '--artifact', '--file', '--ref-json',
313
+ '--session', '--from-session',
288
314
  ]);
289
315
  let body;
290
316
  for (let i = 0; i < args.length; i++) {
@@ -330,12 +356,37 @@ async function send(args) {
330
356
  const payload = { to, body };
331
357
  if (references)
332
358
  payload.references = references;
359
+ const sessionId = getFlag(args, '--session');
360
+ if (sessionId)
361
+ payload.session_id = sessionId;
362
+ const fromSessionId = getFlag(args, '--from-session');
363
+ if (fromSessionId)
364
+ payload.from_session_id = fromSessionId;
333
365
  const result = await apiCall(`${cfg.apiUrl}/v1/inbox/send`, cfg.apiKey, payload);
334
366
  const delivered = result.delivered_to;
367
+ const sessionSuffix = delivered.session_id ? '/' + delivered.session_id : '';
335
368
  const target = delivered.email
336
- ? (delivered.project ? `${delivered.email}/${delivered.project}` : delivered.email)
337
- : `${delivered.tenant}@greprag.com${delivered.project ? '/' + delivered.project : ''}`;
369
+ ? (delivered.project ? `${delivered.email}/${delivered.project}${sessionSuffix}` : delivered.email + sessionSuffix)
370
+ : `${delivered.tenant}@greprag.com${delivered.project ? '/' + delivered.project : ''}${sessionSuffix}`;
338
371
  console.log(`Sent to ${target} (${result.id.slice(0, 8)})`);
372
+ const retractCode = result.retract_code;
373
+ if (retractCode)
374
+ console.log(`Retract: greprag retract ${retractCode}`);
375
+ }
376
+ /** greprag retract <code> — pull back a previously-sent message. */
377
+ async function retract(args) {
378
+ const cfg = getConfig();
379
+ if (!cfg.apiKey) {
380
+ console.error('Not configured. Run: greprag init');
381
+ process.exit(1);
382
+ }
383
+ const code = args.find(a => !a.startsWith('--'));
384
+ if (!code) {
385
+ console.error('Usage: greprag retract <code>');
386
+ process.exit(1);
387
+ }
388
+ const result = await (0, inbox_retract_1.callRetract)({ apiUrl: cfg.apiUrl, apiKey: cfg.apiKey }, code);
389
+ console.log((0, inbox_retract_1.formatRetractResult)(result.status));
339
390
  }
340
391
  // -- Main ------------------------------------------------------------------
341
392
  const HELP = `
@@ -347,20 +398,51 @@ Commands:
347
398
  init --opencode [--api-key <key>] Configure plugin + anchor for OpenCode
348
399
  status [--json] Installation, auth, hooks, and current project state
349
400
  project-id Print the current project_id
401
+ discover [--json] Tenant-wide structure: every project, per-shape row counts,
402
+ activity ranges. For cross-project advisors.
350
403
  doctor [--inspect] [--yes] Diagnose + repair orphan project_ids and identity drift
351
404
 
352
405
  Inbox (email-style messaging across tenants):
353
- inbox [--all] List unread (auto-marks read). --all for history.
406
+ inbox [--all] [--session <id>]
407
+ List unread (auto-marks read). --all for history.
408
+ --session filters to messages targeting this session
409
+ (plus untargeted broadcasts).
410
+ inbox watch Long-lived SSE stream — prints each message as it lands.
411
+ [--project <name>] Filter to one project inbox (default: tenant-wide).
412
+ [--session <id>] Filter to messages targeting this session
413
+ (plus untargeted broadcasts).
414
+ [--since <id|iso>] Resume after a message id or timestamp.
415
+ [--json] Emit raw JSON per line (for piping to Monitor).
354
416
  inbox keep <id> Extend a read message's TTL (default delete after 14 days)
355
417
  inbox delete <id> Permanently delete a message
356
418
  send "body" --to <addr> Send a message. Body is markdown.
419
+ --session <id> Target session — only that session's watcher sees it.
420
+ Equivalent to suffixing the address with /<id>.
421
+ --from-session <id> Sender's session — denormalized so the recipient can
422
+ reply by session without re-discovery.
357
423
  --memory <uuid> (repeatable) back-pointer to a memory row
358
424
  --artifact <type:id> (repeatable) e.g. commit:abc123, pr:#42, deploy:def
359
425
  --file <path[:lines]> (repeatable) e.g. src/auth.ts, src/auth.ts:42, src/x.ts:10-15
360
426
  --ref-json '<json>' escape hatch — full references object
427
+ retract <code> Pull back a previously-sent message (code is printed on send).
428
+ Unread → hard delete. Read → body replaced with a retracted notice.
429
+ Idempotent: double-retract is a no-op.
430
+
431
+ Addresses: <email>
432
+ <email>/<project>
433
+ <email>/<project>/<session-id>
434
+ <tenant>@greprag.com[/<project>[/<session-id>]]
361
435
 
362
- Addresses: <email> OR <email>/<project>
363
- <tenant>@greprag.com OR <tenant>@greprag.com/<project>
436
+ Corpus (upload + search arbitrary text — books, codebases, references):
437
+ corpus upload <file|url> Create a store and ingest text (default kind=book)
438
+ --name <N> Override the store name (default: filename basename)
439
+ --kind <K> book | codebase | voice | generic (default book)
440
+ corpus search <store> "<intent>" [--limit 5]
441
+ Intent-driven search. <store> is a UUID or name.
442
+ corpus walk <store> <nodeId> [--before 2 --after 2]
443
+ Show a node and its surrounding context.
444
+ corpus list [--kind K] List stores under this tenant.
445
+ corpus delete <store> [--yes] Delete a store and its nodes.
364
446
 
365
447
  Other:
366
448
  expand --chunk <id> Expand a memory cluster (siblings, adjacent, linked)
@@ -408,7 +490,10 @@ async function main() {
408
490
  }
409
491
  case 'inbox': return inbox(subArgs);
410
492
  case 'send': return send(subArgs);
493
+ case 'retract': return retract(subArgs);
411
494
  case 'expand': return expand(subArgs);
495
+ case 'corpus': return (0, corpus_1.runCorpus)(subArgs);
496
+ case 'discover': return (0, discover_1.runDiscover)(subArgs);
412
497
  default:
413
498
  console.error(`Unknown command: ${command}\n`);
414
499
  console.log(HELP);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "greprag",
3
- "version": "0.7.3",
3
+ "version": "0.8.2",
4
4
  "description": "GrepRAG — agent memory for Claude Code. 2-command setup.",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
package/skill/SKILL.md CHANGED
@@ -12,7 +12,7 @@ description: |
12
12
  "what's been happening in this project", "session context".
13
13
  metadata:
14
14
  author: travsteward
15
- version: "3.1.0"
15
+ version: "3.4.0"
16
16
  repository: https://github.com/travsteward/greprag
17
17
  license: MIT
18
18
  ---
@@ -168,6 +168,8 @@ Flags (all repeatable, all optional):
168
168
  - `--artifact <type:id>` — point to a shipped thing. Types: `commit`, `pr`, `deploy`, `release`, `push`, `merge`
169
169
  - `--file <path[:lines]>` — point to a code location. Lines are `42` or `10-15`
170
170
  - `--ref-json '<json>'` — escape hatch for a fully-formed references object (mutually exclusive with the above)
171
+ - `--session <id>` — target a specific session under the project. Only the session's `inbox watch --session <id>` sees it; broadcasts (no `--session`) still reach every session-scoped watcher. Equivalent to suffixing the address with `/<id>`.
172
+ - `--from-session <id>` — sender's own session UUID. Denormalized onto the message so the recipient learns your session and can address replies back via `--session <your-id>` without re-discovery. Use whenever you expect a reply.
171
173
 
172
174
  **When to populate references vs. when to leave them off:**
173
175
  - Short chat messages ("pinging you", "deploy is up", "ack") — no references, just body.
@@ -178,8 +180,11 @@ Flags (all repeatable, all optional):
178
180
  Address formats (all valid):
179
181
  - `alice@example.com` — recipient's tenant inbox by real email
180
182
  - `alice@example.com/paybot` — recipient's paybot project inbox
183
+ - `alice@example.com/paybot/<session-id>` — only the named session under paybot sees it (plus broadcasts). The trailing UUID is case-sensitive — the parser preserves it verbatim.
181
184
  - `alice@greprag.com` — same recipient by their auto-claimed greprag handle (tenant_id alias)
182
185
 
186
+ Project-level addressing is the fallback whenever no specific session is in mind. Session-level is for precise routing — chip ↔ parent reply isolation, or any case where multiple sessions on the same project would otherwise share an inbox.
187
+
183
188
  Auto-read semantics: any message returned by `greprag inbox` (without `--all`) is marked read in the same call. Once read, it stops appearing in notifications. TTL deletes read messages after 14 days. Use `keep` to extend before expiry.
184
189
 
185
190
  ## Step 5c — Health & repair (when memory looks wrong)
@@ -205,18 +210,124 @@ Flags:
205
210
 
206
211
  Repair is fully tenant-scoped via the API — `greprag doctor` only ever touches rows under the caller's tenant, and the merge runs in a transaction so a partial failure rolls back cleanly.
207
212
 
213
+ ## Step 5d — Corpus (upload + search arbitrary text)
214
+
215
+ Episodic memory captures the agent's own work. **Corpus** is the other direction: upload a book, a codebase, a reference doc, a writing-sample library — any text — and search it with lexical grep enriched by write-side vocabulary bridging. Same substrate, same retrieval modes; just a different `kind` on the store.
216
+
217
+ **Design contract (post-v0.8):** GrepRAG does **no LLM work at read time**. The agent (you) formulate the lexical queries. Write-side enrichment makes "insulted" find archaic "wrongeth" passages via tsvector OR. Read-side does pure SQL: combined field-weighted tsvector + ts_rank_cd + websearch_to_tsquery + adjacency-clustered ranking.
218
+
219
+ Triggers: "load this book into greprag", "upload the docs", "ingest this PDF" (after they convert it), "search the Marcus Aurelius corpus", "what does the codebase say about X", "find the passage about Y in the book I uploaded".
220
+
221
+ ### Upload
222
+
223
+ ```bash
224
+ greprag corpus upload <file-or-url> [--name "Display Name"] [--kind book] [--enrichment-style book]
225
+ ```
226
+
227
+ - `--kind` defaults to `book`. Valid: `book`, `codebase`, `voice`, `generic`.
228
+ - `--enrichment-style` picks the write-side prompt template. Valid: `book` (narrative/philosophy, default), `codebase` (source code), `transcript` (dialogue/interview), `reference` (technical docs), `generic` (mixed/unknown). If omitted, auto-derived from `--kind`. Pass it explicitly when the content shape differs from the default — e.g. a transcript uploaded as `--kind generic --enrichment-style transcript`.
229
+ - `--name` defaults to the filename basename. Prefer an explicit name — the user references the store by name later.
230
+ - File or URL must be plain text or markdown. PDFs: ask the user to convert first.
231
+ - Cost: one round-trip to ingest + N async Gemini Flash-Lite calls (one per substantive node, drained every 2 min). Read-time cost: $0.
232
+
233
+ ### Search — the chain protocol
234
+
235
+ Searches are **agent-driven**. You decompose the user's intent into 1–3 lexical queries. There is no server-side intent expansion. The cost of formulation comes from your own token budget (you have the user's context; GrepRAG doesn't).
236
+
237
+ #### Query operator syntax (websearch_to_tsquery)
238
+
239
+ The query string accepts these operators:
240
+
241
+ - `term1 term2` — both required (AND).
242
+ - `term1 OR term2` — either suffices.
243
+ - `"quoted phrase"` — exact adjacent words.
244
+ - `-excluded` — must NOT contain.
245
+ - Parenthesize for grouping: `(insulted OR wronged) -metadata`.
246
+
247
+ Build queries that bridge the user's modern vocabulary to the corpus register. Stale prompts ("how should I respond when insulted") force every word — useless against archaic text. Decomposed queries ("insulted OR reproach OR contempt") win.
248
+
249
+ #### Chain — probe, narrow, expand, cross-reference
250
+
251
+ The optimal access pattern for an open-ended user question:
252
+
253
+ 1. **Probe** — `greprag corpus search "<store>" "<2-3 broad-vocab query>"` to find the topic region.
254
+ 2. **Narrow** — if results scatter, refine with `--section "Chapter VII"` or pass tighter query operators and search again.
255
+ 3. **Expand** — for each promising hit, `greprag corpus walk "<store>" <nodeId>` to read the surrounding ±2 nodes.
256
+ 4. **Cross-reference** — re-search with a new angle if the first probe missed something the read-back suggests.
257
+
258
+ Each call is ~50–150ms. Two to four calls is normal; don't fear chaining.
259
+
260
+ #### Single-store search
261
+
262
+ ```bash
263
+ greprag corpus search "<store name or UUID>" "<lexical query>" [--limit 5] [--section "Book VII"] [--shape dialogue]
264
+ ```
265
+
266
+ Each result carries: `nodeId` (stable 8-char anchor), `position`, `headingPath`, `score`, `content`.
267
+
268
+ #### Multistore search (cross-corpus questions)
269
+
270
+ ```bash
271
+ curl -sf -X POST "$GREPRAG_API_URL/v1/search" \
272
+ -H "Authorization: Bearer $GREPRAG_API_KEY" \
273
+ -H "Content-Type: application/json" \
274
+ -d '{
275
+ "queries": ["insulted OR reproach", "wronged OR injustice"],
276
+ "storeIds": ["..."],
277
+ "limit": 8,
278
+ "adjacencyWindow": 3,
279
+ "adjacencyAlpha": 0.3,
280
+ "filters": {"section": "Book VII"}
281
+ }'
282
+ ```
283
+
284
+ Omit `storeIds` to search every store under the calling tenant. RRF fuses across (store × query) pairs; adjacency boosts surface semantic clusters (a node whose neighbors are also hits ranks higher).
285
+
286
+ ### Walk
287
+
288
+ ```bash
289
+ greprag corpus walk "<store>" <nodeId> [--before 2 --after 2]
290
+ ```
291
+
292
+ Surrounding-context fetch. ~50ms, no LLM.
293
+
294
+ ### List / delete / status
295
+
296
+ ```bash
297
+ greprag corpus list [--kind book]
298
+ greprag corpus status "<store>" # write-side enrichment progress
299
+ greprag corpus delete "<store>" --yes
300
+ ```
301
+
302
+ ### When to reach for corpus vs. episodic memory
303
+
304
+ | Want to … | Use |
305
+ |---|---|
306
+ | Pull yesterday's daily summary, last week's weekly | `/v1/memory/by-period` (Step 6 briefing flow) |
307
+ | Ask "what did I work on with the auth migration?" | `/v1/memory/by-period` filtered by keywords |
308
+ | Load a book the user paste-bombed into the chat | `corpus upload` then `corpus search` |
309
+ | Search a codebase the user wants the agent to learn | `corpus upload --kind codebase --enrichment-style codebase` |
310
+ | Cross-corpus question across multiple uploads | `POST /v1/search` with omitted `storeIds` |
311
+
312
+ Episodic memory is the agent's own past. Corpus is everything else.
313
+
208
314
  ## Step 6 — Briefing (when everything is configured)
209
315
 
316
+ The `type` query param filters by node shape. Valid values: `turn`, `hourly`,
317
+ `daily`, `weekly`, `ship-event`. (Earlier versions of this doc referenced
318
+ `episodic-daily` / `episodic-weekly` — those values silently return zero rows
319
+ because no node ever had that shape.)
320
+
210
321
  ```bash
211
322
  PROJECT_ID=$(greprag project-id)
212
323
  TO=$(node -e "console.log(new Date().toISOString())")
213
324
  FROM=$(node -e "const d=new Date(); d.setDate(d.getDate()-7); console.log(d.toISOString())")
214
325
  FROM14=$(node -e "const d=new Date(); d.setDate(d.getDate()-14); console.log(d.toISOString())")
215
326
 
216
- curl -sf "https://api.greprag.com/v1/memory/by-period?projectId=${PROJECT_ID}&from=${FROM}&to=${TO}&type=episodic-daily&limit=7" \
327
+ curl -sf "https://api.greprag.com/v1/memory/by-period?projectId=${PROJECT_ID}&from=${FROM}&to=${TO}&type=daily&limit=7" \
217
328
  -H "Authorization: Bearer ${GREPRAG_API_KEY}"
218
329
 
219
- curl -sf "https://api.greprag.com/v1/memory/by-period?projectId=${PROJECT_ID}&from=${FROM14}&to=${TO}&type=episodic-weekly&limit=1" \
330
+ curl -sf "https://api.greprag.com/v1/memory/by-period?projectId=${PROJECT_ID}&from=${FROM14}&to=${TO}&type=weekly&limit=1" \
220
331
  -H "Authorization: Bearer ${GREPRAG_API_KEY}"
221
332
  ```
222
333
 
@@ -236,3 +347,41 @@ Otherwise present verbatim:
236
347
  ---
237
348
 
238
349
  Do not rewrite or summarize. Present verbatim — the compactor already shaped it.
350
+
351
+ ## Step 7 — Cross-project discovery (for advisor agents)
352
+
353
+ When the user is in a cross-project advisor context ("content-advisor",
354
+ "business-advisor") and you need to know which projects this tenant has
355
+ memory in, call `discover` — one request returns every project plus
356
+ per-shape row counts and activity ranges. No need to know directory paths
357
+ upfront, no need to page through `/v1/memory/by-period` and risk one
358
+ high-activity project crowding out structured rows from quieter ones.
359
+
360
+ ```bash
361
+ greprag discover --json
362
+ ```
363
+
364
+ Response shape:
365
+ ```json
366
+ {
367
+ "tenant": { "id": "...", "userEmail": "..." },
368
+ "projects": [
369
+ { "id": "<uuid>", "name": "openwriter", "anchor": "registered",
370
+ "row_counts": { "turn": 197, "hourly": 8, "daily": 1, "weekly": 0, "ship-event": 12 },
371
+ "first_activity": "2026-05-12T08:00:00Z",
372
+ "last_activity": "2026-05-25T11:42:00Z" }
373
+ ],
374
+ "crystallization_types": ["turn","hourly","daily","weekly","ship-event"],
375
+ "totals": { "rows": 1234, "projects": 7 }
376
+ }
377
+ ```
378
+
379
+ `anchor: "registered"` means the project was registered via
380
+ `/v1/inbox/projects/register` (has a row in the `projects` table — inbox
381
+ addressing as `<email>/<project_name>` works). `anchor: "fallback"` means
382
+ the project is only known via memory-store metadata — still has memory,
383
+ but no registry entry, so its name may be the path-derived basename and
384
+ inbox-by-name resolution will not find it.
385
+
386
+ From there, pick a `projectId` from the list and fetch its briefing via
387
+ the Step 6 queries.