greprag 0.5.2 → 0.5.4
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/init.d.ts +2 -0
- package/dist/commands/init.js +36 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/index.js +17 -3
- package/dist/index.js.map +1 -1
- package/dist/project-anchor.d.ts +10 -2
- package/dist/project-anchor.js +72 -19
- package/dist/project-anchor.js.map +1 -1
- package/package.json +36 -33
- package/scripts/postinstall.js +4 -0
- package/skill/SKILL.md +70 -0
package/dist/commands/init.d.ts
CHANGED
package/dist/commands/init.js
CHANGED
|
@@ -41,10 +41,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
41
41
|
exports.runInit = runInit;
|
|
42
42
|
const fs = __importStar(require("fs"));
|
|
43
43
|
const path = __importStar(require("path"));
|
|
44
|
+
const os = __importStar(require("os"));
|
|
44
45
|
const readline = __importStar(require("readline"));
|
|
45
46
|
const project_anchor_1 = require("../project-anchor");
|
|
46
47
|
const API_URL = 'https://api.greprag.com';
|
|
47
48
|
async function runInit(opts) {
|
|
49
|
+
// --global: create ~/.claude/project.json only — no API key, no hooks.
|
|
50
|
+
if (opts.global) {
|
|
51
|
+
return runGlobalInit(opts.name);
|
|
52
|
+
}
|
|
48
53
|
console.log('\n greprag init — Setting up agent memory for Claude Code\n');
|
|
49
54
|
// Step 1: Get API key
|
|
50
55
|
let apiKey = opts.apiKey;
|
|
@@ -85,6 +90,19 @@ async function runInit(opts) {
|
|
|
85
90
|
// Stable across renames, remote URL changes, fresh clones, forks.
|
|
86
91
|
const anchor = (0, project_anchor_1.ensureAnchor)(process.cwd());
|
|
87
92
|
changes.push(`Project anchor: ${anchor.projectName} (${anchor.projectId.slice(0, 8)})`);
|
|
93
|
+
// Step 5: Global anchor — catches Cowork + any session without a repo anchor.
|
|
94
|
+
const globalAnchor = (0, project_anchor_1.ensureGlobalAnchor)();
|
|
95
|
+
changes.push(`Global anchor: ${globalAnchor.projectName} (${globalAnchor.projectId.slice(0, 8)})`);
|
|
96
|
+
// Step 6: Advisor skill — copy SKILL.md to ~/.claude/skills/greprag.md
|
|
97
|
+
const skillsDir = path.join(os.homedir(), '.claude', 'skills');
|
|
98
|
+
const skillDest = path.join(skillsDir, 'greprag.md');
|
|
99
|
+
const skillSrc = path.join(__dirname, '../../skill/SKILL.md');
|
|
100
|
+
if (fs.existsSync(skillSrc)) {
|
|
101
|
+
if (!fs.existsSync(skillsDir))
|
|
102
|
+
fs.mkdirSync(skillsDir, { recursive: true });
|
|
103
|
+
fs.copyFileSync(skillSrc, skillDest);
|
|
104
|
+
changes.push(`Advisor skill: installed → ${skillDest}`);
|
|
105
|
+
}
|
|
88
106
|
// Summary
|
|
89
107
|
console.log('\n Setup complete!\n');
|
|
90
108
|
for (const change of changes) {
|
|
@@ -92,8 +110,26 @@ async function runInit(opts) {
|
|
|
92
110
|
}
|
|
93
111
|
console.log(`\n Settings file: ${settingsPath}`);
|
|
94
112
|
console.log(` Project anchor: ${anchor.anchorPath}`);
|
|
113
|
+
console.log(' Run /greprag in any Claude Code session to surface project memory.');
|
|
95
114
|
console.log(' Memory hooks will activate on your next Claude Code session.\n');
|
|
96
115
|
}
|
|
116
|
+
/** greprag init --global
|
|
117
|
+
* Creates ~/.claude/project.json with a stable UUID.
|
|
118
|
+
* Designed for Cowork / any agent session whose cwd has no repo-level anchor.
|
|
119
|
+
* Idempotent — safe to run again; returns the existing anchor if already present. */
|
|
120
|
+
async function runGlobalInit(name) {
|
|
121
|
+
console.log('\n greprag init --global — Creating global project anchor\n');
|
|
122
|
+
const anchor = (0, project_anchor_1.ensureGlobalAnchor)(name);
|
|
123
|
+
if (anchor.created) {
|
|
124
|
+
console.log(` Created: ${anchor.anchorPath}`);
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
console.log(` Already exists: ${anchor.anchorPath}`);
|
|
128
|
+
}
|
|
129
|
+
console.log(` Project: ${anchor.projectName} (${anchor.projectId.slice(0, 8)})`);
|
|
130
|
+
console.log('\n All unanchored sessions (Cowork, ad-hoc cwd) will now use this project_id.');
|
|
131
|
+
console.log(' Memory will accumulate across sessions under a single stable bucket.\n');
|
|
132
|
+
}
|
|
97
133
|
// -- Provisioning -----------------------------------------------------------
|
|
98
134
|
async function provision(tenantId) {
|
|
99
135
|
const res = await fetch(`${API_URL}/v1/keys/provision`, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";AAAA;;;;6DAI6D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -44,6 +44,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
44
44
|
const path = __importStar(require("path"));
|
|
45
45
|
const fs = __importStar(require("fs"));
|
|
46
46
|
const init_1 = require("./commands/init");
|
|
47
|
+
const project_anchor_1 = require("./project-anchor");
|
|
47
48
|
// -- Config / env (shared with hook.ts) ------------------------------------
|
|
48
49
|
const API_URL_DEFAULT = 'https://api.greprag.com';
|
|
49
50
|
function loadEnvFile(filePath) {
|
|
@@ -237,22 +238,28 @@ const HELP = `
|
|
|
237
238
|
greprag — agent memory for Claude Code
|
|
238
239
|
|
|
239
240
|
Commands:
|
|
240
|
-
init [--api-key <key>] Configure hooks + API key
|
|
241
|
+
init [--api-key <key>] Configure hooks + API key (repo anchor)
|
|
242
|
+
init --global [--name <name>] Create ~/.claude/project.json (global anchor)
|
|
241
243
|
inbox [--profile <id>] View pending messages
|
|
242
244
|
send "msg" --to <profile> Send a message to another agent
|
|
243
245
|
dismiss --chunk <id> Dismiss a message (keeps as memory)
|
|
244
246
|
expand --chunk <id> Expand a memory cluster (siblings, adjacent, linked)
|
|
245
247
|
profiles List known agent profiles
|
|
248
|
+
project-id Print the current project_id (used by the /greprag skill)
|
|
246
249
|
help Show this message
|
|
247
250
|
|
|
248
251
|
Options:
|
|
249
252
|
--api-key <key> Use an existing API key (skip provisioning)
|
|
250
253
|
--tenant-id <id> Tenant ID for key provisioning
|
|
254
|
+
--global Create a global anchor at ~/.claude/project.json
|
|
255
|
+
--name <name> Project name for the global anchor (default: "global")
|
|
251
256
|
--profile <id> Profile ID (defaults to cwd basename)
|
|
252
257
|
--session <id> Session ID (for inbox snooze)
|
|
253
258
|
|
|
254
259
|
Examples:
|
|
255
|
-
greprag init
|
|
260
|
+
greprag init # standard repo setup
|
|
261
|
+
greprag init --global # Cowork / unanchored sessions
|
|
262
|
+
greprag init --global --name cowork # with a custom project name
|
|
256
263
|
greprag inbox
|
|
257
264
|
greprag send "Deploy the auth flow" --to discord
|
|
258
265
|
greprag dismiss --chunk abc123
|
|
@@ -271,7 +278,14 @@ async function main() {
|
|
|
271
278
|
case 'init': {
|
|
272
279
|
const apiKey = getFlag(args, '--api-key');
|
|
273
280
|
const tenantId = getFlag(args, '--tenant-id');
|
|
274
|
-
|
|
281
|
+
const global = args.includes('--global');
|
|
282
|
+
const name = getFlag(args, '--name');
|
|
283
|
+
await (0, init_1.runInit)({ apiKey, tenantId, global, name });
|
|
284
|
+
return;
|
|
285
|
+
}
|
|
286
|
+
case 'project-id': {
|
|
287
|
+
const anchor = (0, project_anchor_1.readAnchor)(process.cwd());
|
|
288
|
+
console.log(anchor.projectId);
|
|
275
289
|
return;
|
|
276
290
|
}
|
|
277
291
|
case 'inbox': return inbox(subArgs);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AACA;;;;;;4CAM4C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE5C,2CAA6B;AAC7B,uCAAyB;AAEzB,0CAA0C;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/project-anchor.d.ts
CHANGED
|
@@ -17,11 +17,19 @@ export interface ProjectAnchor {
|
|
|
17
17
|
created?: string;
|
|
18
18
|
}
|
|
19
19
|
/** Read the project anchor for a given cwd. Read-only.
|
|
20
|
-
*
|
|
20
|
+
* Priority: (1) walk-up finds .claude/project.json → use it.
|
|
21
|
+
* (2) ~/.claude/project.json exists → use it (Cowork / unanchored sessions).
|
|
22
|
+
* (3) Deterministic per-path UUID fallback.
|
|
21
23
|
* // adr: adr/project-anchor.md
|
|
22
24
|
*/
|
|
23
25
|
export declare function readAnchor(cwd: string): ProjectAnchor;
|
|
26
|
+
/** Create (or return existing) ~/.claude/project.json.
|
|
27
|
+
* Called by `greprag init --global`. Idempotent. */
|
|
28
|
+
export declare function ensureGlobalAnchor(projectName?: string): ProjectAnchor;
|
|
24
29
|
/** Ensure an anchor exists at <cwd>/.claude/project.json. Generates UUID + writes
|
|
25
30
|
* the file if absent. Returns the resolved anchor (initialized=true on return).
|
|
26
|
-
* Called by `greprag init`.
|
|
31
|
+
* Called by `greprag init`.
|
|
32
|
+
*
|
|
33
|
+
* Does NOT treat the global anchor (~/.claude/project.json) as an existing repo
|
|
34
|
+
* anchor — init should always create a proper per-repo file. */
|
|
27
35
|
export declare function ensureAnchor(cwd: string, projectName?: string): ProjectAnchor;
|
package/dist/project-anchor.js
CHANGED
|
@@ -45,10 +45,12 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
45
45
|
})();
|
|
46
46
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
47
47
|
exports.readAnchor = readAnchor;
|
|
48
|
+
exports.ensureGlobalAnchor = ensureGlobalAnchor;
|
|
48
49
|
exports.ensureAnchor = ensureAnchor;
|
|
49
50
|
const path = __importStar(require("path"));
|
|
50
51
|
const fs = __importStar(require("fs"));
|
|
51
52
|
const crypto = __importStar(require("crypto"));
|
|
53
|
+
const os = __importStar(require("os"));
|
|
52
54
|
const ANCHOR_DIR = '.claude';
|
|
53
55
|
const ANCHOR_FILE = 'project.json';
|
|
54
56
|
/** Walk up from cwd looking for an existing .claude/project.json.
|
|
@@ -79,30 +81,48 @@ function deterministicProjectId(workingDir) {
|
|
|
79
81
|
hash.slice(20, 32),
|
|
80
82
|
].join('-');
|
|
81
83
|
}
|
|
84
|
+
/** Try to read a JSON anchor file at a specific path. Returns null if absent or invalid. */
|
|
85
|
+
function tryReadAnchorFile(filePath) {
|
|
86
|
+
try {
|
|
87
|
+
const raw = JSON.parse(fs.readFileSync(filePath, 'utf-8'));
|
|
88
|
+
if (raw.project_id && raw.project_name) {
|
|
89
|
+
return {
|
|
90
|
+
projectId: raw.project_id,
|
|
91
|
+
projectName: raw.project_name,
|
|
92
|
+
initialized: true,
|
|
93
|
+
anchorPath: filePath,
|
|
94
|
+
created: raw.created,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
// Fall through.
|
|
100
|
+
}
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
82
103
|
/** Read the project anchor for a given cwd. Read-only.
|
|
83
|
-
*
|
|
104
|
+
* Priority: (1) walk-up finds .claude/project.json → use it.
|
|
105
|
+
* (2) ~/.claude/project.json exists → use it (Cowork / unanchored sessions).
|
|
106
|
+
* (3) Deterministic per-path UUID fallback.
|
|
84
107
|
* // adr: adr/project-anchor.md
|
|
85
108
|
*/
|
|
86
109
|
function readAnchor(cwd) {
|
|
110
|
+
// 1. Walk up from cwd looking for .claude/project.json.
|
|
87
111
|
const existing = findExistingAnchor(cwd);
|
|
88
112
|
if (existing) {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
return {
|
|
93
|
-
projectId: raw.project_id,
|
|
94
|
-
projectName: raw.project_name,
|
|
95
|
-
initialized: true,
|
|
96
|
-
anchorPath: existing,
|
|
97
|
-
created: raw.created,
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
catch {
|
|
102
|
-
// Fall through to deterministic fallback.
|
|
103
|
-
}
|
|
113
|
+
const anchor = tryReadAnchorFile(existing);
|
|
114
|
+
if (anchor)
|
|
115
|
+
return anchor;
|
|
104
116
|
}
|
|
105
|
-
//
|
|
117
|
+
// 2. Global anchor: ~/.claude/project.json — catches Cowork and any
|
|
118
|
+
// session whose cwd has no repo-level anchor file.
|
|
119
|
+
const globalAnchorPath = path.join(os.homedir(), ANCHOR_DIR, ANCHOR_FILE);
|
|
120
|
+
if (fs.existsSync(globalAnchorPath)) {
|
|
121
|
+
const anchor = tryReadAnchorFile(globalAnchorPath);
|
|
122
|
+
if (anchor)
|
|
123
|
+
return { ...anchor, anchorPath: globalAnchorPath };
|
|
124
|
+
}
|
|
125
|
+
// 3. Fallback: stable per-path UUID + basename as name.
|
|
106
126
|
const root = path.resolve(cwd);
|
|
107
127
|
return {
|
|
108
128
|
projectId: deterministicProjectId(root),
|
|
@@ -111,12 +131,45 @@ function readAnchor(cwd) {
|
|
|
111
131
|
anchorPath: path.join(root, ANCHOR_DIR, ANCHOR_FILE),
|
|
112
132
|
};
|
|
113
133
|
}
|
|
134
|
+
/** Create (or return existing) ~/.claude/project.json.
|
|
135
|
+
* Called by `greprag init --global`. Idempotent. */
|
|
136
|
+
function ensureGlobalAnchor(projectName) {
|
|
137
|
+
const globalAnchorDir = path.join(os.homedir(), ANCHOR_DIR);
|
|
138
|
+
const globalAnchorPath = path.join(globalAnchorDir, ANCHOR_FILE);
|
|
139
|
+
// Return existing if valid.
|
|
140
|
+
if (fs.existsSync(globalAnchorPath)) {
|
|
141
|
+
const anchor = tryReadAnchorFile(globalAnchorPath);
|
|
142
|
+
if (anchor)
|
|
143
|
+
return anchor;
|
|
144
|
+
}
|
|
145
|
+
if (!fs.existsSync(globalAnchorDir)) {
|
|
146
|
+
fs.mkdirSync(globalAnchorDir, { recursive: true });
|
|
147
|
+
}
|
|
148
|
+
const newAnchor = {
|
|
149
|
+
project_id: crypto.randomUUID(),
|
|
150
|
+
project_name: (projectName || 'global').toLowerCase(),
|
|
151
|
+
created: new Date().toISOString(),
|
|
152
|
+
};
|
|
153
|
+
fs.writeFileSync(globalAnchorPath, JSON.stringify(newAnchor, null, 2) + '\n');
|
|
154
|
+
return {
|
|
155
|
+
projectId: newAnchor.project_id,
|
|
156
|
+
projectName: newAnchor.project_name,
|
|
157
|
+
initialized: true,
|
|
158
|
+
anchorPath: globalAnchorPath,
|
|
159
|
+
created: newAnchor.created,
|
|
160
|
+
};
|
|
161
|
+
}
|
|
114
162
|
/** Ensure an anchor exists at <cwd>/.claude/project.json. Generates UUID + writes
|
|
115
163
|
* the file if absent. Returns the resolved anchor (initialized=true on return).
|
|
116
|
-
* Called by `greprag init`.
|
|
164
|
+
* Called by `greprag init`.
|
|
165
|
+
*
|
|
166
|
+
* Does NOT treat the global anchor (~/.claude/project.json) as an existing repo
|
|
167
|
+
* anchor — init should always create a proper per-repo file. */
|
|
117
168
|
function ensureAnchor(cwd, projectName) {
|
|
169
|
+
const globalAnchorPath = path.join(os.homedir(), ANCHOR_DIR, ANCHOR_FILE);
|
|
118
170
|
const existing = findExistingAnchor(cwd);
|
|
119
|
-
|
|
171
|
+
// Short-circuit only for a real repo anchor, not the global catch-all.
|
|
172
|
+
if (existing && existing !== globalAnchorPath) {
|
|
120
173
|
return readAnchor(cwd);
|
|
121
174
|
}
|
|
122
175
|
const root = path.resolve(cwd);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-anchor.js","sourceRoot":"","sources":["../src/project-anchor.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"project-anchor.js","sourceRoot":"","sources":["../src/project-anchor.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,33 +1,36 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "greprag",
|
|
3
|
-
"version": "0.5.
|
|
4
|
-
"description": "GrepRAG — agent memory for Claude Code. 2-command setup.",
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"bin": {
|
|
7
|
-
"greprag": "dist/index.js",
|
|
8
|
-
"greprag-hook": "dist/hook.js"
|
|
9
|
-
},
|
|
10
|
-
"scripts": {
|
|
11
|
-
"build": "tsc",
|
|
12
|
-
"clean": "rimraf dist"
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
"
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
"
|
|
24
|
-
},
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "greprag",
|
|
3
|
+
"version": "0.5.4",
|
|
4
|
+
"description": "GrepRAG — agent memory for Claude Code. 2-command setup.",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"bin": {
|
|
7
|
+
"greprag": "dist/index.js",
|
|
8
|
+
"greprag-hook": "dist/hook.js"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"build": "tsc",
|
|
12
|
+
"clean": "rimraf dist",
|
|
13
|
+
"postinstall": "node scripts/postinstall.js"
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"dist",
|
|
17
|
+
"skill",
|
|
18
|
+
"scripts"
|
|
19
|
+
],
|
|
20
|
+
"devDependencies": {
|
|
21
|
+
"@types/node": "^20.0.0",
|
|
22
|
+
"typescript": "^5.5.0",
|
|
23
|
+
"rimraf": "^5.0.0"
|
|
24
|
+
},
|
|
25
|
+
"engines": {
|
|
26
|
+
"node": ">=18.0.0"
|
|
27
|
+
},
|
|
28
|
+
"keywords": [
|
|
29
|
+
"greprag",
|
|
30
|
+
"claude",
|
|
31
|
+
"memory",
|
|
32
|
+
"rag",
|
|
33
|
+
"agent"
|
|
34
|
+
],
|
|
35
|
+
"license": "MIT"
|
|
36
|
+
}
|
package/skill/SKILL.md
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: greprag
|
|
3
|
+
description: |
|
|
4
|
+
GrepRAG — surface episodic project memory for the current session.
|
|
5
|
+
Pulls what shipped, what was decided, and what's open from the last 7 days.
|
|
6
|
+
|
|
7
|
+
Use when: "/greprag", "what did we do last week", "catch me up", "memory briefing",
|
|
8
|
+
"what's been happening in this project", "session context", "what shipped recently".
|
|
9
|
+
metadata:
|
|
10
|
+
author: travsteward
|
|
11
|
+
version: "1.0.0"
|
|
12
|
+
repository: https://github.com/travsteward/greprag
|
|
13
|
+
license: MIT
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# GrepRAG Advisor
|
|
17
|
+
|
|
18
|
+
Pull episodic memory for the current project and surface a structured briefing.
|
|
19
|
+
|
|
20
|
+
## Steps
|
|
21
|
+
|
|
22
|
+
### 1. Get project ID
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
greprag project-id
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
If the command errors or returns empty: tell the user "GrepRAG not initialized for this project — run `greprag init`" and stop.
|
|
29
|
+
|
|
30
|
+
### 2. Check API key
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
echo $GREPRAG_API_KEY
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
If empty: tell the user "GREPRAG_API_KEY not set — run `greprag init`" and stop.
|
|
37
|
+
|
|
38
|
+
### 3. Fetch episodic context
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
PROJECT_ID=$(greprag project-id)
|
|
42
|
+
TO=$(node -e "console.log(new Date().toISOString())")
|
|
43
|
+
FROM=$(node -e "const d=new Date(); d.setDate(d.getDate()-7); console.log(d.toISOString())")
|
|
44
|
+
FROM14=$(node -e "const d=new Date(); d.setDate(d.getDate()-14); console.log(d.toISOString())")
|
|
45
|
+
|
|
46
|
+
curl -sf "https://api.greprag.com/v1/memory/by-period?projectId=${PROJECT_ID}&from=${FROM}&to=${TO}&type=episodic-daily&limit=7" \
|
|
47
|
+
-H "Authorization: Bearer ${GREPRAG_API_KEY}"
|
|
48
|
+
|
|
49
|
+
curl -sf "https://api.greprag.com/v1/memory/by-period?projectId=${PROJECT_ID}&from=${FROM14}&to=${TO}&type=episodic-weekly&limit=1" \
|
|
50
|
+
-H "Authorization: Bearer ${GREPRAG_API_KEY}"
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### 4. Present
|
|
54
|
+
|
|
55
|
+
If both responses have empty `memories` arrays: "No episodic memory yet for this project — compaction runs hourly. Check back after the first active session."
|
|
56
|
+
|
|
57
|
+
Otherwise format as a briefing:
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
**[project_name] — memory briefing**
|
|
61
|
+
|
|
62
|
+
**This week** *(omit section if no weekly row)*:
|
|
63
|
+
[weekly summary verbatim]
|
|
64
|
+
|
|
65
|
+
**Recent days**:
|
|
66
|
+
[each daily row, newest first, prefixed with its date — "May 21:", "May 20:", etc.]
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
Do not rewrite or summarize the episodic content. Present it verbatim — the compactor already shaped it. The briefing is input to this session's context, not a report to the user.
|