greprag 0.1.1 → 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 +5 -4
- package/dist/hook.js +47 -18
- package/dist/hook.js.map +1 -1
- package/package.json +1 -1
package/dist/hook.d.ts
CHANGED
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
/** GrepRAG Hook — thin HTTP pipe for Claude Code hooks.
|
|
3
3
|
*
|
|
4
4
|
* Subcommands:
|
|
5
|
-
* retrieve — UserPromptSubmit: POST prompt to API,
|
|
6
|
-
* store — Stop: read
|
|
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
|
-
*
|
|
9
|
-
*
|
|
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. */
|
|
10
11
|
export {};
|
package/dist/hook.js
CHANGED
|
@@ -3,11 +3,12 @@
|
|
|
3
3
|
/** GrepRAG Hook — thin HTTP pipe for Claude Code hooks.
|
|
4
4
|
*
|
|
5
5
|
* Subcommands:
|
|
6
|
-
* retrieve — UserPromptSubmit: POST prompt to API,
|
|
7
|
-
* store — Stop: read
|
|
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
|
-
*
|
|
10
|
-
*
|
|
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. */
|
|
11
12
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
12
13
|
if (k2 === undefined) k2 = k;
|
|
13
14
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -44,6 +45,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
44
45
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
46
|
const path = __importStar(require("path"));
|
|
46
47
|
const fs = __importStar(require("fs"));
|
|
48
|
+
const os = __importStar(require("os"));
|
|
47
49
|
// -- Config ----------------------------------------------------------------
|
|
48
50
|
const API_URL_DEFAULT = 'https://api.greprag.com';
|
|
49
51
|
function getConfig(cwd) {
|
|
@@ -54,6 +56,26 @@ function getConfig(cwd) {
|
|
|
54
56
|
enabled: process.env.MEMORY_HOOK_ENABLED === 'true',
|
|
55
57
|
};
|
|
56
58
|
}
|
|
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');
|
|
65
|
+
}
|
|
66
|
+
function cachePrompt(prompt, sessionId, profileId) {
|
|
67
|
+
fs.writeFileSync(getCachePath(), JSON.stringify({ prompt, sessionId, profileId }));
|
|
68
|
+
}
|
|
69
|
+
function readCachedPrompt() {
|
|
70
|
+
try {
|
|
71
|
+
const data = JSON.parse(fs.readFileSync(getCachePath(), 'utf-8'));
|
|
72
|
+
fs.unlinkSync(getCachePath()); // consume once
|
|
73
|
+
return data;
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
57
79
|
// -- Env loader ------------------------------------------------------------
|
|
58
80
|
function loadEnvFile(filePath) {
|
|
59
81
|
try {
|
|
@@ -108,10 +130,16 @@ async function retrieve(input) {
|
|
|
108
130
|
const cfg = getConfig(cwd);
|
|
109
131
|
if (!cfg.enabled || !cfg.apiKey)
|
|
110
132
|
return;
|
|
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);
|
|
111
139
|
const result = await apiCall(`${cfg.apiUrl}/v1/memory/retrieve`, cfg.apiKey, {
|
|
112
|
-
query:
|
|
113
|
-
profileId
|
|
114
|
-
sessionId
|
|
140
|
+
query: prompt,
|
|
141
|
+
profileId,
|
|
142
|
+
sessionId,
|
|
115
143
|
});
|
|
116
144
|
if (result?.ok) {
|
|
117
145
|
const r = result.result;
|
|
@@ -126,22 +154,23 @@ async function retrieve(input) {
|
|
|
126
154
|
}
|
|
127
155
|
}
|
|
128
156
|
async function store(input) {
|
|
129
|
-
const transcriptPath = input.transcript_path || '';
|
|
130
157
|
const cwd = input.cwd || process.cwd();
|
|
131
158
|
const cfg = getConfig(cwd);
|
|
132
|
-
if (!
|
|
159
|
+
if (!cfg.enabled || !cfg.apiKey)
|
|
133
160
|
return;
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
transcriptContent = fs.readFileSync(transcriptPath, 'utf-8');
|
|
137
|
-
}
|
|
138
|
-
catch {
|
|
161
|
+
const agentProse = input.last_assistant_message || '';
|
|
162
|
+
if (!agentProse)
|
|
139
163
|
return;
|
|
140
|
-
|
|
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);
|
|
141
169
|
await apiCall(`${cfg.apiUrl}/v1/memory/store`, cfg.apiKey, {
|
|
142
|
-
profileId
|
|
143
|
-
sessionId
|
|
144
|
-
|
|
170
|
+
profileId,
|
|
171
|
+
sessionId,
|
|
172
|
+
userMessage,
|
|
173
|
+
agentProse,
|
|
145
174
|
});
|
|
146
175
|
}
|
|
147
176
|
// -- Main ------------------------------------------------------------------
|
package/dist/hook.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":";;AACA
|
|
1
|
+
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":"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"}
|