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/commands/corpus.d.ts +18 -0
- package/dist/commands/corpus.js +431 -0
- package/dist/commands/corpus.js.map +1 -0
- package/dist/commands/discover.d.ts +43 -0
- package/dist/commands/discover.js +154 -0
- package/dist/commands/discover.js.map +1 -0
- package/dist/commands/doctor.js +2 -2
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/inbox-retract.d.ts +18 -0
- package/dist/commands/inbox-retract.js +39 -0
- package/dist/commands/inbox-retract.js.map +1 -0
- package/dist/commands/inbox-watch.d.ts +37 -0
- package/dist/commands/inbox-watch.js +287 -0
- package/dist/commands/inbox-watch.js.map +1 -0
- package/dist/index.js +94 -9
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/skill/SKILL.md +152 -3
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
|
|
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]
|
|
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
|
-
|
|
363
|
-
|
|
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
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.
|
|
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=
|
|
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=
|
|
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.
|