greprag 0.5.4 → 0.6.0
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.js +41 -27
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/status.d.ts +37 -0
- package/dist/commands/status.js +160 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/hook.js +188 -90
- package/dist/hook.js.map +1 -1
- package/dist/index.js +183 -77
- package/dist/index.js.map +1 -1
- package/dist/project-anchor.d.ts +16 -3
- package/dist/project-anchor.js +69 -15
- package/dist/project-anchor.js.map +1 -1
- package/package.json +1 -1
- package/skill/SKILL.md +166 -21
package/dist/commands/init.js
CHANGED
|
@@ -93,13 +93,14 @@ async function runInit(opts) {
|
|
|
93
93
|
// Step 5: Global anchor — catches Cowork + any session without a repo anchor.
|
|
94
94
|
const globalAnchor = (0, project_anchor_1.ensureGlobalAnchor)();
|
|
95
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
|
-
|
|
98
|
-
const
|
|
96
|
+
// Step 6: Advisor skill — copy SKILL.md to ~/.claude/skills/greprag/SKILL.md
|
|
97
|
+
// Skills must be directories, not standalone .md files.
|
|
98
|
+
const skillDestDir = path.join(os.homedir(), '.claude', 'skills', 'greprag');
|
|
99
|
+
const skillDest = path.join(skillDestDir, 'SKILL.md');
|
|
99
100
|
const skillSrc = path.join(__dirname, '../../skill/SKILL.md');
|
|
100
101
|
if (fs.existsSync(skillSrc)) {
|
|
101
|
-
if (!fs.existsSync(
|
|
102
|
-
fs.mkdirSync(
|
|
102
|
+
if (!fs.existsSync(skillDestDir))
|
|
103
|
+
fs.mkdirSync(skillDestDir, { recursive: true });
|
|
103
104
|
fs.copyFileSync(skillSrc, skillDest);
|
|
104
105
|
changes.push(`Advisor skill: installed → ${skillDest}`);
|
|
105
106
|
}
|
|
@@ -189,35 +190,26 @@ function applySettings(settings, apiKey) {
|
|
|
189
190
|
// Hooks
|
|
190
191
|
if (!settings.hooks)
|
|
191
192
|
settings.hooks = {};
|
|
192
|
-
//
|
|
193
|
-
|
|
193
|
+
// SessionStart (recap) — injects yesterday's daily + today's recent hourlies
|
|
194
|
+
// and prepends unread inbox count if any
|
|
195
|
+
const recapHook = {
|
|
194
196
|
matcher: '',
|
|
195
|
-
hooks: [{
|
|
196
|
-
type: 'command',
|
|
197
|
-
command: 'greprag-hook retrieve',
|
|
198
|
-
timeout: 5000,
|
|
199
|
-
}],
|
|
197
|
+
hooks: [{ type: 'command', command: 'greprag-hook recap', timeout: 3000 }],
|
|
200
198
|
};
|
|
201
|
-
// Stop
|
|
199
|
+
// Stop (store) — captures each turn envelope for episodic memory
|
|
202
200
|
const storeHook = {
|
|
203
201
|
matcher: '',
|
|
204
|
-
hooks: [{
|
|
205
|
-
type: 'command',
|
|
206
|
-
command: 'greprag-hook store',
|
|
207
|
-
timeout: 10000,
|
|
208
|
-
}],
|
|
202
|
+
hooks: [{ type: 'command', command: 'greprag-hook store', timeout: 10000 }],
|
|
209
203
|
};
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
changes.push('Added UserPromptSubmit hook (memory retrieve)');
|
|
204
|
+
if (!hasGrepragHook(settings.hooks.SessionStart, 'recap')) {
|
|
205
|
+
if (!settings.hooks.SessionStart)
|
|
206
|
+
settings.hooks.SessionStart = [];
|
|
207
|
+
settings.hooks.SessionStart.push(recapHook);
|
|
208
|
+
changes.push('Added SessionStart hook (memory recap + inbox digest)');
|
|
216
209
|
}
|
|
217
210
|
else {
|
|
218
|
-
changes.push('
|
|
211
|
+
changes.push('SessionStart hook already configured (skipped)');
|
|
219
212
|
}
|
|
220
|
-
// Add store hook if not already present
|
|
221
213
|
if (!hasGrepragHook(settings.hooks.Stop, 'store')) {
|
|
222
214
|
if (!settings.hooks.Stop)
|
|
223
215
|
settings.hooks.Stop = [];
|
|
@@ -227,12 +219,34 @@ function applySettings(settings, apiKey) {
|
|
|
227
219
|
else {
|
|
228
220
|
changes.push('Stop hook already configured (skipped)');
|
|
229
221
|
}
|
|
222
|
+
// UserPromptSubmit (notify) — per-turn unread inbox notification. The hook
|
|
223
|
+
// honors `inbox_notify` from the project anchor (every_turn / session_start_only
|
|
224
|
+
// / off), so installing it globally is safe — per-project flag controls firing.
|
|
225
|
+
const notifyHook = {
|
|
226
|
+
matcher: '',
|
|
227
|
+
hooks: [{ type: 'command', command: 'greprag-hook notify', timeout: 2000 }],
|
|
228
|
+
};
|
|
229
|
+
if (!hasGrepragHook(settings.hooks.UserPromptSubmit, 'notify')) {
|
|
230
|
+
if (!settings.hooks.UserPromptSubmit)
|
|
231
|
+
settings.hooks.UserPromptSubmit = [];
|
|
232
|
+
settings.hooks.UserPromptSubmit.push(notifyHook);
|
|
233
|
+
changes.push('Added UserPromptSubmit hook (inbox notify)');
|
|
234
|
+
}
|
|
235
|
+
else {
|
|
236
|
+
changes.push('UserPromptSubmit hook already configured (skipped)');
|
|
237
|
+
}
|
|
230
238
|
return changes;
|
|
231
239
|
}
|
|
232
240
|
function hasGrepragHook(hookConfigs, subcommand) {
|
|
233
241
|
if (!hookConfigs)
|
|
234
242
|
return false;
|
|
235
|
-
|
|
243
|
+
// Match both invocations: the canonical `greprag-hook <sub>` binary and the
|
|
244
|
+
// absolute-path `node .../hook.js <sub>` form some users have manually wired.
|
|
245
|
+
return hookConfigs.some(cfg => cfg.hooks?.some(h => {
|
|
246
|
+
const cmd = h.command || '';
|
|
247
|
+
return cmd.includes(`greprag-hook ${subcommand}`)
|
|
248
|
+
|| cmd.includes(`hook.js ${subcommand}`);
|
|
249
|
+
}));
|
|
236
250
|
}
|
|
237
251
|
// -- Input ------------------------------------------------------------------
|
|
238
252
|
function prompt(question) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";AAAA;;;;6DAI6D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiB7D,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/** greprag status — single source of truth for the agent.
|
|
2
|
+
*
|
|
3
|
+
* Returns structured info about installation, auth, hooks, and the current
|
|
4
|
+
* project's anchor + flags. Pure local reads — no network. The agent calls
|
|
5
|
+
* this once and decides what setup steps (if any) the user needs.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* greprag status — human-readable
|
|
9
|
+
* greprag status --json — JSON for agent parsing */
|
|
10
|
+
interface StatusReport {
|
|
11
|
+
installed: boolean;
|
|
12
|
+
version: string;
|
|
13
|
+
settings_path: string;
|
|
14
|
+
auth: {
|
|
15
|
+
api_key_present: boolean;
|
|
16
|
+
key_prefix: string | null;
|
|
17
|
+
};
|
|
18
|
+
hooks: {
|
|
19
|
+
session_start_recap: boolean;
|
|
20
|
+
stop_store: boolean;
|
|
21
|
+
user_prompt_submit_notify: boolean;
|
|
22
|
+
};
|
|
23
|
+
project: {
|
|
24
|
+
cwd: string;
|
|
25
|
+
anchor_found: boolean;
|
|
26
|
+
anchor_path: string;
|
|
27
|
+
project_id: string;
|
|
28
|
+
project_name: string;
|
|
29
|
+
memory_capture: boolean;
|
|
30
|
+
session_start_recap: boolean;
|
|
31
|
+
inbox_notify: string;
|
|
32
|
+
is_deterministic_fallback: boolean;
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
export declare function buildStatus(cwd: string): StatusReport;
|
|
36
|
+
export declare function runStatus(args: string[]): Promise<void>;
|
|
37
|
+
export {};
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/** greprag status — single source of truth for the agent.
|
|
3
|
+
*
|
|
4
|
+
* Returns structured info about installation, auth, hooks, and the current
|
|
5
|
+
* project's anchor + flags. Pure local reads — no network. The agent calls
|
|
6
|
+
* this once and decides what setup steps (if any) the user needs.
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* greprag status — human-readable
|
|
10
|
+
* greprag status --json — JSON for agent parsing */
|
|
11
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
12
|
+
if (k2 === undefined) k2 = k;
|
|
13
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
14
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
15
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
16
|
+
}
|
|
17
|
+
Object.defineProperty(o, k2, desc);
|
|
18
|
+
}) : (function(o, m, k, k2) {
|
|
19
|
+
if (k2 === undefined) k2 = k;
|
|
20
|
+
o[k2] = m[k];
|
|
21
|
+
}));
|
|
22
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
23
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
24
|
+
}) : function(o, v) {
|
|
25
|
+
o["default"] = v;
|
|
26
|
+
});
|
|
27
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
28
|
+
var ownKeys = function(o) {
|
|
29
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
30
|
+
var ar = [];
|
|
31
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
32
|
+
return ar;
|
|
33
|
+
};
|
|
34
|
+
return ownKeys(o);
|
|
35
|
+
};
|
|
36
|
+
return function (mod) {
|
|
37
|
+
if (mod && mod.__esModule) return mod;
|
|
38
|
+
var result = {};
|
|
39
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
40
|
+
__setModuleDefault(result, mod);
|
|
41
|
+
return result;
|
|
42
|
+
};
|
|
43
|
+
})();
|
|
44
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
+
exports.buildStatus = buildStatus;
|
|
46
|
+
exports.runStatus = runStatus;
|
|
47
|
+
const fs = __importStar(require("fs"));
|
|
48
|
+
const path = __importStar(require("path"));
|
|
49
|
+
const project_anchor_1 = require("../project-anchor");
|
|
50
|
+
function getSettingsPath() {
|
|
51
|
+
const home = process.env.HOME || process.env.USERPROFILE || '';
|
|
52
|
+
return path.join(home, '.claude', 'settings.json');
|
|
53
|
+
}
|
|
54
|
+
function readSettings(settingsPath) {
|
|
55
|
+
try {
|
|
56
|
+
return JSON.parse(fs.readFileSync(settingsPath, 'utf-8'));
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
return {};
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
function hasGrepragHook(hookConfigs, subcommand) {
|
|
63
|
+
if (!hookConfigs)
|
|
64
|
+
return false;
|
|
65
|
+
return hookConfigs.some(cfg => cfg.hooks?.some(h => {
|
|
66
|
+
const cmd = h.command || '';
|
|
67
|
+
return cmd.includes(`greprag-hook ${subcommand}`)
|
|
68
|
+
|| cmd.includes(`hook.js ${subcommand}`);
|
|
69
|
+
}));
|
|
70
|
+
}
|
|
71
|
+
/** Read API key from settings.json env block (the canonical location set by
|
|
72
|
+
* init / the skill). Fall back to process.env if not in settings yet. */
|
|
73
|
+
function getApiKey(settings) {
|
|
74
|
+
const fromSettings = settings.env?.GREPRAG_API_KEY;
|
|
75
|
+
if (fromSettings)
|
|
76
|
+
return fromSettings;
|
|
77
|
+
if (process.env.GREPRAG_API_KEY)
|
|
78
|
+
return process.env.GREPRAG_API_KEY;
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
function maskKey(key) {
|
|
82
|
+
if (!key)
|
|
83
|
+
return null;
|
|
84
|
+
return key.slice(0, 17) + '…'; // grp_live_ + 8 chars + ellipsis
|
|
85
|
+
}
|
|
86
|
+
function readVersion() {
|
|
87
|
+
try {
|
|
88
|
+
const pkg = JSON.parse(fs.readFileSync(path.join(__dirname, '../../package.json'), 'utf-8'));
|
|
89
|
+
return pkg.version || 'unknown';
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
return 'unknown';
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
function buildStatus(cwd) {
|
|
96
|
+
const settingsPath = getSettingsPath();
|
|
97
|
+
const settings = readSettings(settingsPath);
|
|
98
|
+
const apiKey = getApiKey(settings);
|
|
99
|
+
const anchor = (0, project_anchor_1.readAnchor)(cwd);
|
|
100
|
+
return {
|
|
101
|
+
installed: true,
|
|
102
|
+
version: readVersion(),
|
|
103
|
+
settings_path: settingsPath,
|
|
104
|
+
auth: {
|
|
105
|
+
api_key_present: !!apiKey,
|
|
106
|
+
key_prefix: maskKey(apiKey),
|
|
107
|
+
},
|
|
108
|
+
hooks: {
|
|
109
|
+
session_start_recap: hasGrepragHook(settings.hooks?.SessionStart, 'recap'),
|
|
110
|
+
stop_store: hasGrepragHook(settings.hooks?.Stop, 'store'),
|
|
111
|
+
user_prompt_submit_notify: hasGrepragHook(settings.hooks?.UserPromptSubmit, 'notify'),
|
|
112
|
+
},
|
|
113
|
+
project: {
|
|
114
|
+
cwd: path.resolve(cwd),
|
|
115
|
+
anchor_found: anchor.initialized,
|
|
116
|
+
anchor_path: anchor.anchorPath,
|
|
117
|
+
project_id: anchor.projectId,
|
|
118
|
+
project_name: anchor.projectName,
|
|
119
|
+
memory_capture: anchor.memoryCapture,
|
|
120
|
+
session_start_recap: anchor.sessionStartRecap,
|
|
121
|
+
inbox_notify: anchor.inboxNotify,
|
|
122
|
+
is_deterministic_fallback: !anchor.initialized,
|
|
123
|
+
},
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
function renderHuman(s) {
|
|
127
|
+
const check = (b) => b ? 'yes' : 'no';
|
|
128
|
+
return [
|
|
129
|
+
`greprag ${s.version}`,
|
|
130
|
+
`Settings: ${s.settings_path}`,
|
|
131
|
+
``,
|
|
132
|
+
`Auth:`,
|
|
133
|
+
` API key present: ${check(s.auth.api_key_present)}${s.auth.key_prefix ? ` (${s.auth.key_prefix})` : ''}`,
|
|
134
|
+
``,
|
|
135
|
+
`Hooks:`,
|
|
136
|
+
` SessionStart recap: ${check(s.hooks.session_start_recap)}`,
|
|
137
|
+
` Stop store: ${check(s.hooks.stop_store)}`,
|
|
138
|
+
` UserPromptSubmit notify: ${check(s.hooks.user_prompt_submit_notify)}`,
|
|
139
|
+
``,
|
|
140
|
+
`Project (${s.project.cwd}):`,
|
|
141
|
+
` Anchor found: ${check(s.project.anchor_found)}${s.project.is_deterministic_fallback ? ' (using deterministic-hash fallback)' : ''}`,
|
|
142
|
+
` Anchor path: ${s.project.anchor_path}`,
|
|
143
|
+
` Project name: ${s.project.project_name}`,
|
|
144
|
+
` Project ID: ${s.project.project_id}`,
|
|
145
|
+
` Memory capture: ${check(s.project.memory_capture)}`,
|
|
146
|
+
` SessionStart recap: ${check(s.project.session_start_recap)}`,
|
|
147
|
+
` Inbox notify: ${s.project.inbox_notify}`,
|
|
148
|
+
].join('\n');
|
|
149
|
+
}
|
|
150
|
+
async function runStatus(args) {
|
|
151
|
+
const json = args.includes('--json');
|
|
152
|
+
const status = buildStatus(process.cwd());
|
|
153
|
+
if (json) {
|
|
154
|
+
process.stdout.write(JSON.stringify(status, null, 2) + '\n');
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
process.stdout.write(renderHuman(status) + '\n');
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
|