greprag 0.1.0 → 0.1.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/hook.d.ts CHANGED
@@ -1,14 +1,11 @@
1
1
  #!/usr/bin/env node
2
- /** GrepRAG Memory Hook — self-contained HTTP client for Claude Code hooks.
2
+ /** GrepRAG Hook — thin HTTP pipe for Claude Code hooks.
3
3
  *
4
- * Two subcommands:
5
- * retrieve — UserPromptSubmit: inject relevant memory as additionalContext
6
- * store — Stop: parse transcript, extract last turn, store via API
4
+ * Subcommands:
5
+ * retrieve — UserPromptSubmit: POST prompt to API, cache prompt locally
6
+ * store — Stop: read cached prompt + last_assistant_message POST to API
7
7
  *
8
- * Stdin: JSON from Claude Code hook event
9
- * Stdout: JSON hookSpecificOutput (retrieve only) or nothing (store)
10
- * Stderr: diagnostics
11
- *
12
- * Env: GREPRAG_API_KEY (required), GREPRAG_API_URL (optional)
13
- * MEMORY_HOOK_ENABLED=true to activate */
8
+ * No transcript parsing. UserPromptSubmit gives us the user's prompt directly,
9
+ * Stop gives us last_assistant_message. We pair them and store the turn.
10
+ * This eliminates source misattribution from injected transcript content. */
14
11
  export {};
package/dist/hook.js CHANGED
@@ -1,17 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
- /** GrepRAG Memory Hook — self-contained HTTP client for Claude Code hooks.
3
+ /** GrepRAG Hook — thin HTTP pipe for Claude Code hooks.
4
4
  *
5
- * Two subcommands:
6
- * retrieve — UserPromptSubmit: inject relevant memory as additionalContext
7
- * store — Stop: parse transcript, extract last turn, store via API
5
+ * Subcommands:
6
+ * retrieve — UserPromptSubmit: POST prompt to API, cache prompt locally
7
+ * store — Stop: read cached prompt + last_assistant_message POST to API
8
8
  *
9
- * Stdin: JSON from Claude Code hook event
10
- * Stdout: JSON hookSpecificOutput (retrieve only) or nothing (store)
11
- * Stderr: diagnostics
12
- *
13
- * Env: GREPRAG_API_KEY (required), GREPRAG_API_URL (optional)
14
- * MEMORY_HOOK_ENABLED=true to activate */
9
+ * No transcript parsing. UserPromptSubmit gives us the user's prompt directly,
10
+ * Stop gives us last_assistant_message. We pair them and store the turn.
11
+ * This eliminates source misattribution from injected transcript content. */
15
12
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
16
13
  if (k2 === undefined) k2 = k;
17
14
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -48,6 +45,7 @@ var __importStar = (this && this.__importStar) || (function () {
48
45
  Object.defineProperty(exports, "__esModule", { value: true });
49
46
  const path = __importStar(require("path"));
50
47
  const fs = __importStar(require("fs"));
48
+ const os = __importStar(require("os"));
51
49
  // -- Config ----------------------------------------------------------------
52
50
  const API_URL_DEFAULT = 'https://api.greprag.com';
53
51
  function getConfig(cwd) {
@@ -58,98 +56,25 @@ function getConfig(cwd) {
58
56
  enabled: process.env.MEMORY_HOOK_ENABLED === 'true',
59
57
  };
60
58
  }
61
- // -- Agreement filter ------------------------------------------------------
62
- const AGREEMENT_WORDS = new Set([
63
- 'yes', 'yeah', 'yep', 'yup', 'sure', 'ok', 'okay', 'k',
64
- 'proceed', 'thanks', 'thank you', 'ty', 'thx',
65
- 'agreed', 'correct', 'right', 'exactly', 'indeed',
66
- 'absolutely', 'definitely', 'perfect', 'great', 'nice', 'awesome',
67
- 'lgtm',
68
- ]);
69
- const AGREEMENT_PHRASES = [
70
- 'go ahead', 'do it', 'sounds good', 'looks good', 'ship it',
71
- ];
72
- function isShortAgreement(text) {
73
- if (!text || text.trim().length === 0)
74
- return true;
75
- const normalized = text.trim().toLowerCase();
76
- const wordCount = normalized.split(/\s+/).length;
77
- if (wordCount > 8)
78
- return false;
79
- if (AGREEMENT_WORDS.has(normalized))
80
- return true;
81
- for (const phrase of AGREEMENT_PHRASES) {
82
- if (normalized === phrase || normalized.startsWith(phrase + ' ') || normalized.startsWith(phrase + ',')) {
83
- return true;
84
- }
85
- }
86
- return false;
59
+ // -- Prompt cache ----------------------------------------------------------
60
+ function getCachePath() {
61
+ const dir = path.join(os.homedir(), '.greprag');
62
+ if (!fs.existsSync(dir))
63
+ fs.mkdirSync(dir, { recursive: true });
64
+ return path.join(dir, 'pending-prompt.json');
87
65
  }
88
- function extractText(content) {
89
- if (typeof content === 'string')
90
- return content.trim();
91
- if (Array.isArray(content)) {
92
- const parts = [];
93
- for (const block of content) {
94
- if (block && typeof block === 'object' && block.type === 'text') {
95
- parts.push(String(block.text || ''));
96
- }
97
- }
98
- return parts.join('\n').trim();
99
- }
100
- return '';
66
+ function cachePrompt(prompt, sessionId, profileId) {
67
+ fs.writeFileSync(getCachePath(), JSON.stringify({ prompt, sessionId, profileId }));
101
68
  }
102
- function parseLastTurn(transcriptPath) {
103
- let data;
69
+ function readCachedPrompt() {
104
70
  try {
105
- data = fs.readFileSync(transcriptPath, 'utf-8');
71
+ const data = JSON.parse(fs.readFileSync(getCachePath(), 'utf-8'));
72
+ fs.unlinkSync(getCachePath()); // consume once
73
+ return data;
106
74
  }
107
75
  catch {
108
76
  return null;
109
77
  }
110
- let lastUserMessage = '';
111
- const agentTextByRequestId = new Map();
112
- let userMessageCount = 0;
113
- const lines = data.split('\n');
114
- for (const line of lines) {
115
- const trimmed = line.trim();
116
- if (!trimmed)
117
- continue;
118
- let entry;
119
- try {
120
- entry = JSON.parse(trimmed);
121
- }
122
- catch {
123
- continue;
124
- }
125
- const message = entry.message || entry;
126
- const role = String(message.role || entry.type || '');
127
- const content = message.content;
128
- const requestId = String(entry.requestId || '');
129
- if (role === 'user') {
130
- const text = extractText(content);
131
- if (text && text.length > 5) {
132
- if (!text.startsWith('<system') && !text.startsWith('{')) {
133
- lastUserMessage = text;
134
- userMessageCount++;
135
- }
136
- }
137
- }
138
- if (role === 'assistant') {
139
- const text = extractText(content);
140
- if (text && text.trim().length > 20 && requestId) {
141
- const prev = agentTextByRequestId.get(requestId) || '';
142
- if (text.length > prev.length) {
143
- agentTextByRequestId.set(requestId, text);
144
- }
145
- }
146
- }
147
- }
148
- if (!lastUserMessage)
149
- return null;
150
- const agentTexts = Array.from(agentTextByRequestId.values());
151
- const agentProse = agentTexts.length > 0 ? agentTexts[agentTexts.length - 1] : '';
152
- return { userMessage: lastUserMessage, agentProse, turnIndex: userMessageCount };
153
78
  }
154
79
  // -- Env loader ------------------------------------------------------------
155
80
  function loadEnvFile(filePath) {
@@ -185,17 +110,15 @@ function ensureEnv(cwd) {
185
110
  loadEnvFile(path.join(cwd, '.env'));
186
111
  }
187
112
  // -- HTTP client -----------------------------------------------------------
188
- async function apiCall(url, apiKey, method, body) {
189
- const opts = {
190
- method,
113
+ async function apiCall(url, apiKey, body) {
114
+ const res = await fetch(url, {
115
+ method: 'POST',
191
116
  headers: {
192
117
  'Authorization': `Bearer ${apiKey}`,
193
118
  'Content-Type': 'application/json',
194
119
  },
195
- };
196
- if (body)
197
- opts.body = JSON.stringify(body);
198
- const res = await fetch(url, opts);
120
+ body: JSON.stringify(body),
121
+ });
199
122
  if (!res.ok) {
200
123
  process.stderr.write(`[greprag-hook] API ${res.status}: ${await res.text()}\n`);
201
124
  return null;
@@ -203,65 +126,52 @@ async function apiCall(url, apiKey, method, body) {
203
126
  return res.json();
204
127
  }
205
128
  async function retrieve(input) {
206
- const prompt = input.prompt || '';
207
129
  const cwd = input.cwd || process.cwd();
208
130
  const cfg = getConfig(cwd);
209
131
  if (!cfg.enabled || !cfg.apiKey)
210
132
  return;
211
- if (isShortAgreement(prompt))
212
- return;
213
- const profile = path.basename(cwd);
214
- try {
215
- const result = await apiCall(`${cfg.apiUrl}/v1/memory/retrieve`, cfg.apiKey, 'POST', {
216
- query: prompt,
217
- profileId: profile,
218
- sessionId: input.session_id,
219
- });
220
- if (result?.ok) {
221
- const r = result.result;
222
- const totalWords = r?.totalWords;
223
- const formattedBlock = r?.formattedBlock;
224
- if (totalWords > 0 && formattedBlock) {
225
- const output = {
226
- hookSpecificOutput: {
227
- hookEventName: 'UserPromptSubmit',
228
- additionalContext: formattedBlock,
229
- },
230
- };
231
- process.stdout.write(JSON.stringify(output));
232
- }
133
+ const prompt = input.prompt || '';
134
+ const sessionId = input.session_id || '';
135
+ const profileId = path.basename(cwd);
136
+ // Cache prompt for the store hook to pick up
137
+ if (prompt)
138
+ cachePrompt(prompt, sessionId, profileId);
139
+ const result = await apiCall(`${cfg.apiUrl}/v1/memory/retrieve`, cfg.apiKey, {
140
+ query: prompt,
141
+ profileId,
142
+ sessionId,
143
+ });
144
+ if (result?.ok) {
145
+ const r = result.result;
146
+ if (r?.totalWords > 0 && r?.formattedBlock) {
147
+ process.stdout.write(JSON.stringify({
148
+ hookSpecificOutput: {
149
+ hookEventName: 'UserPromptSubmit',
150
+ additionalContext: r.formattedBlock,
151
+ },
152
+ }));
233
153
  }
234
154
  }
235
- catch (err) {
236
- process.stderr.write(`[greprag-hook:retrieve] Error: ${err.message}\n`);
237
- }
238
155
  }
239
156
  async function store(input) {
240
- const transcriptPath = input.transcript_path || '';
241
157
  const cwd = input.cwd || process.cwd();
242
- const sessionId = input.session_id || '';
243
158
  const cfg = getConfig(cwd);
244
- if (!transcriptPath || !cfg.enabled || !cfg.apiKey)
159
+ if (!cfg.enabled || !cfg.apiKey)
245
160
  return;
246
- const profile = path.basename(cwd);
247
- try {
248
- const parsed = parseLastTurn(transcriptPath);
249
- if (!parsed) {
250
- process.stderr.write('[greprag-hook:store] No valid turn found in transcript\n');
251
- return;
252
- }
253
- await apiCall(`${cfg.apiUrl}/v1/memory/store`, cfg.apiKey, 'POST', {
254
- profileId: profile,
255
- sessionId: sessionId || `hook-${Date.now()}`,
256
- turnIndex: parsed.turnIndex,
257
- userMessage: parsed.userMessage,
258
- agentProse: parsed.agentProse,
259
- });
260
- process.stderr.write(`[greprag-hook:store] Stored turn ${parsed.turnIndex} (${profile})\n`);
261
- }
262
- catch (err) {
263
- process.stderr.write(`[greprag-hook:store] Error: ${err.message}\n`);
264
- }
161
+ const agentProse = input.last_assistant_message || '';
162
+ if (!agentProse)
163
+ return;
164
+ // Read the cached prompt from the retrieve hook
165
+ const cached = readCachedPrompt();
166
+ const userMessage = cached?.prompt || '';
167
+ const sessionId = cached?.sessionId || input.session_id || `hook-${Date.now()}`;
168
+ const profileId = cached?.profileId || path.basename(cwd);
169
+ await apiCall(`${cfg.apiUrl}/v1/memory/store`, cfg.apiKey, {
170
+ profileId,
171
+ sessionId,
172
+ userMessage,
173
+ agentProse,
174
+ });
265
175
  }
266
176
  // -- Main ------------------------------------------------------------------
267
177
  async function main() {
package/dist/hook.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"hook.js","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hook.js","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "greprag",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "GrepRAG — agent memory for Claude Code. 2-command setup.",
5
5
  "main": "dist/index.js",
6
6
  "bin": {