@fingerskier/augment 0.5.0 → 0.5.1

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/cli.js CHANGED
@@ -85,11 +85,11 @@ export function helpText() {
85
85
  " augment recall \"<task text>\" [--project ORG/REPO] [--cwd PATH]",
86
86
  " [--limit N] [--max-chars N] [--min-score F]",
87
87
  "",
88
- "HOOK (wired into Claude Code / Codex by `install`; reads hook JSON on stdin)",
88
+ "HOOK (wired into Claude Code / Codex / Grok Build by `install`; reads hook JSON on stdin)",
89
89
  " augment hook session-start | user-prompt-submit | pre-tool-use | stop",
90
90
  "",
91
91
  "INSTALL",
92
- " augment install <codex|claude|all> [options]",
92
+ " augment install <codex|claude|grok|all> [options]",
93
93
  "",
94
94
  " Options:",
95
95
  " --scope user|repo Install for the user (home) or the current repo. Default: user.",
@@ -100,6 +100,7 @@ export function helpText() {
100
100
  "",
101
101
  "RUN FROM npm (outside this repo)",
102
102
  " npx -y @fingerskier/augment install claude --scope user --memory-root \"C:\\Users\\you\\Dropbox\\augment-memories\"",
103
+ " npx -y @fingerskier/augment install grok --scope user --memory-root \"C:\\Users\\you\\Dropbox\\augment-memories\"",
103
104
  " npm exec --yes --package @fingerskier/augment -- augment install codex --scope repo",
104
105
  " npm exec --yes --package @fingerskier/augment -- augment install all --scope user --dry-run",
105
106
  "",
@@ -183,8 +184,8 @@ async function readStdin() {
183
184
  }
184
185
  export function parseInstallArgs(args) {
185
186
  const target = args[0];
186
- if (!target || !["codex", "claude", "all"].includes(target)) {
187
- throw new Error("Usage: augment install <codex|claude|all> [--scope user|repo] [--memory-root PATH] [--dry-run] " +
187
+ if (!target || !["codex", "claude", "grok", "all"].includes(target)) {
188
+ throw new Error("Usage: augment install <codex|claude|grok|all> [--scope user|repo] [--memory-root PATH] [--dry-run] " +
188
189
  "[--no-plugin] [--force]");
189
190
  }
190
191
  let scope = "user";
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -33,21 +33,21 @@ export async function acquireDaemonLifetimeLock(stateDir) {
33
33
  let transaction;
34
34
  try {
35
35
  await client.execute("PRAGMA busy_timeout = 0");
36
- await client.execute(`
37
- CREATE TABLE IF NOT EXISTS lifetime_lock (
38
- id INTEGER PRIMARY KEY CHECK (id = 1),
39
- pid INTEGER NOT NULL,
40
- state_dir TEXT NOT NULL,
41
- acquired_at TEXT NOT NULL
42
- )
36
+ await client.execute(`
37
+ CREATE TABLE IF NOT EXISTS lifetime_lock (
38
+ id INTEGER PRIMARY KEY CHECK (id = 1),
39
+ pid INTEGER NOT NULL,
40
+ state_dir TEXT NOT NULL,
41
+ acquired_at TEXT NOT NULL
42
+ )
43
43
  `);
44
44
  transaction = await client.transaction("write");
45
45
  await transaction.execute({
46
- sql: `INSERT INTO lifetime_lock (id, pid, state_dir, acquired_at)
47
- VALUES (1, ?, ?, ?)
48
- ON CONFLICT(id) DO UPDATE SET
49
- pid = excluded.pid,
50
- state_dir = excluded.state_dir,
46
+ sql: `INSERT INTO lifetime_lock (id, pid, state_dir, acquired_at)
47
+ VALUES (1, ?, ?, ?)
48
+ ON CONFLICT(id) DO UPDATE SET
49
+ pid = excluded.pid,
50
+ state_dir = excluded.state_dir,
51
51
  acquired_at = excluded.acquired_at`,
52
52
  args: [process.pid, canonicalStateDir, new Date().toISOString()],
53
53
  });
package/dist/db.js CHANGED
@@ -31,51 +31,51 @@ export class AugmentDatabase {
31
31
  await this.execute(`PRAGMA busy_timeout = 5000`);
32
32
  await this.execute(`PRAGMA foreign_keys = ON`);
33
33
  await this.batch([
34
- `CREATE TABLE IF NOT EXISTS projects (
35
- id INTEGER PRIMARY KEY AUTOINCREMENT,
36
- name TEXT NOT NULL UNIQUE,
37
- org TEXT NOT NULL,
38
- repo TEXT NOT NULL,
39
- source TEXT NOT NULL,
40
- created_at TEXT NOT NULL,
41
- updated_at TEXT NOT NULL
34
+ `CREATE TABLE IF NOT EXISTS projects (
35
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
36
+ name TEXT NOT NULL UNIQUE,
37
+ org TEXT NOT NULL,
38
+ repo TEXT NOT NULL,
39
+ source TEXT NOT NULL,
40
+ created_at TEXT NOT NULL,
41
+ updated_at TEXT NOT NULL
42
42
  )`,
43
- `CREATE TABLE IF NOT EXISTS memories (
44
- id INTEGER PRIMARY KEY AUTOINCREMENT,
45
- project_id INTEGER NOT NULL REFERENCES projects(id) ON DELETE CASCADE,
46
- kind TEXT NOT NULL,
47
- name TEXT NOT NULL,
48
- relative_path TEXT NOT NULL UNIQUE,
49
- content_hash TEXT NOT NULL,
50
- frontmatter_hash TEXT NOT NULL,
51
- size INTEGER NOT NULL,
52
- density REAL NOT NULL,
53
- mtime REAL NOT NULL,
54
- tags_json TEXT NOT NULL,
55
- links_json TEXT NOT NULL,
56
- body TEXT NOT NULL,
57
- created_at TEXT NOT NULL,
58
- updated_at TEXT NOT NULL,
59
- archived INTEGER NOT NULL DEFAULT 0,
60
- consolidated_into TEXT,
61
- derived_from_json TEXT
43
+ `CREATE TABLE IF NOT EXISTS memories (
44
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
45
+ project_id INTEGER NOT NULL REFERENCES projects(id) ON DELETE CASCADE,
46
+ kind TEXT NOT NULL,
47
+ name TEXT NOT NULL,
48
+ relative_path TEXT NOT NULL UNIQUE,
49
+ content_hash TEXT NOT NULL,
50
+ frontmatter_hash TEXT NOT NULL,
51
+ size INTEGER NOT NULL,
52
+ density REAL NOT NULL,
53
+ mtime REAL NOT NULL,
54
+ tags_json TEXT NOT NULL,
55
+ links_json TEXT NOT NULL,
56
+ body TEXT NOT NULL,
57
+ created_at TEXT NOT NULL,
58
+ updated_at TEXT NOT NULL,
59
+ archived INTEGER NOT NULL DEFAULT 0,
60
+ consolidated_into TEXT,
61
+ derived_from_json TEXT
62
62
  )`,
63
- `CREATE TABLE IF NOT EXISTS memory_embeddings (
64
- memory_id INTEGER PRIMARY KEY REFERENCES memories(id) ON DELETE CASCADE,
65
- model_id TEXT NOT NULL,
66
- model_version TEXT NOT NULL,
67
- dimensions INTEGER NOT NULL,
68
- vector_json TEXT NOT NULL,
69
- embedded_hash TEXT NOT NULL,
70
- embedded_at TEXT NOT NULL
63
+ `CREATE TABLE IF NOT EXISTS memory_embeddings (
64
+ memory_id INTEGER PRIMARY KEY REFERENCES memories(id) ON DELETE CASCADE,
65
+ model_id TEXT NOT NULL,
66
+ model_version TEXT NOT NULL,
67
+ dimensions INTEGER NOT NULL,
68
+ vector_json TEXT NOT NULL,
69
+ embedded_hash TEXT NOT NULL,
70
+ embedded_at TEXT NOT NULL
71
71
  )`,
72
- `CREATE TABLE IF NOT EXISTS links (
73
- id INTEGER PRIMARY KEY AUTOINCREMENT,
74
- from_memory_id INTEGER NOT NULL REFERENCES memories(id) ON DELETE CASCADE,
75
- to_memory_id INTEGER NOT NULL REFERENCES memories(id) ON DELETE CASCADE,
76
- type TEXT NOT NULL,
77
- created_at TEXT NOT NULL,
78
- UNIQUE(from_memory_id, to_memory_id, type)
72
+ `CREATE TABLE IF NOT EXISTS links (
73
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
74
+ from_memory_id INTEGER NOT NULL REFERENCES memories(id) ON DELETE CASCADE,
75
+ to_memory_id INTEGER NOT NULL REFERENCES memories(id) ON DELETE CASCADE,
76
+ type TEXT NOT NULL,
77
+ created_at TEXT NOT NULL,
78
+ UNIQUE(from_memory_id, to_memory_id, type)
79
79
  )`,
80
80
  `CREATE INDEX IF NOT EXISTS idx_memories_project_id ON memories(project_id)`,
81
81
  `CREATE INDEX IF NOT EXISTS idx_memories_kind ON memories(kind)`,
@@ -118,12 +118,12 @@ export class AugmentDatabase {
118
118
  async upsertProject(name, source = "git") {
119
119
  const parts = projectParts(name);
120
120
  const now = new Date().toISOString();
121
- await this.execute(`INSERT INTO projects (name, org, repo, source, created_at, updated_at)
122
- VALUES (?, ?, ?, ?, ?, ?)
123
- ON CONFLICT(name) DO UPDATE SET
124
- org = excluded.org,
125
- repo = excluded.repo,
126
- source = excluded.source,
121
+ await this.execute(`INSERT INTO projects (name, org, repo, source, created_at, updated_at)
122
+ VALUES (?, ?, ?, ?, ?, ?)
123
+ ON CONFLICT(name) DO UPDATE SET
124
+ org = excluded.org,
125
+ repo = excluded.repo,
126
+ source = excluded.source,
127
127
  updated_at = excluded.updated_at`, [name, parts.org, parts.repo, source, now, now]);
128
128
  const project = await this.getProjectByName(name);
129
129
  if (!project) {
@@ -148,27 +148,27 @@ export class AugmentDatabase {
148
148
  async upsertMemory(memory) {
149
149
  const project = await this.upsertProject(memory.frontmatter.project);
150
150
  const now = new Date().toISOString();
151
- await this.execute(`INSERT INTO memories (
152
- project_id, kind, name, relative_path, content_hash, frontmatter_hash,
153
- size, density, mtime, tags_json, links_json, body, created_at, updated_at,
154
- archived, consolidated_into, derived_from_json
155
- )
156
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
157
- ON CONFLICT(relative_path) DO UPDATE SET
158
- project_id = excluded.project_id,
159
- kind = excluded.kind,
160
- name = excluded.name,
161
- content_hash = excluded.content_hash,
162
- frontmatter_hash = excluded.frontmatter_hash,
163
- size = excluded.size,
164
- density = excluded.density,
165
- mtime = excluded.mtime,
166
- tags_json = excluded.tags_json,
167
- links_json = excluded.links_json,
168
- body = excluded.body,
169
- updated_at = excluded.updated_at,
170
- archived = excluded.archived,
171
- consolidated_into = excluded.consolidated_into,
151
+ await this.execute(`INSERT INTO memories (
152
+ project_id, kind, name, relative_path, content_hash, frontmatter_hash,
153
+ size, density, mtime, tags_json, links_json, body, created_at, updated_at,
154
+ archived, consolidated_into, derived_from_json
155
+ )
156
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
157
+ ON CONFLICT(relative_path) DO UPDATE SET
158
+ project_id = excluded.project_id,
159
+ kind = excluded.kind,
160
+ name = excluded.name,
161
+ content_hash = excluded.content_hash,
162
+ frontmatter_hash = excluded.frontmatter_hash,
163
+ size = excluded.size,
164
+ density = excluded.density,
165
+ mtime = excluded.mtime,
166
+ tags_json = excluded.tags_json,
167
+ links_json = excluded.links_json,
168
+ body = excluded.body,
169
+ updated_at = excluded.updated_at,
170
+ archived = excluded.archived,
171
+ consolidated_into = excluded.consolidated_into,
172
172
  derived_from_json = excluded.derived_from_json`, [
173
173
  project.id,
174
174
  memory.frontmatter.kind,
@@ -230,7 +230,7 @@ export class AugmentDatabase {
230
230
  continue;
231
231
  }
232
232
  statements.push({
233
- sql: `INSERT OR IGNORE INTO links (from_memory_id, to_memory_id, type, created_at)
233
+ sql: `INSERT OR IGNORE INTO links (from_memory_id, to_memory_id, type, created_at)
234
234
  VALUES (?, ?, ?, ?)`,
235
235
  args: [memory.id, target.id, link.type, now],
236
236
  });
@@ -257,36 +257,36 @@ export class AugmentDatabase {
257
257
  return result.rows.map((row) => memoryFromRow(row));
258
258
  }
259
259
  async listLinks(memoryId) {
260
- const result = await this.execute(`SELECT
261
- links.*,
262
- from_memory.relative_path AS from_relative_path,
263
- to_memory.relative_path AS to_relative_path
264
- FROM links
265
- JOIN memories AS from_memory ON from_memory.id = links.from_memory_id
266
- JOIN memories AS to_memory ON to_memory.id = links.to_memory_id
267
- WHERE links.from_memory_id = ? OR links.to_memory_id = ?
260
+ const result = await this.execute(`SELECT
261
+ links.*,
262
+ from_memory.relative_path AS from_relative_path,
263
+ to_memory.relative_path AS to_relative_path
264
+ FROM links
265
+ JOIN memories AS from_memory ON from_memory.id = links.from_memory_id
266
+ JOIN memories AS to_memory ON to_memory.id = links.to_memory_id
267
+ WHERE links.from_memory_id = ? OR links.to_memory_id = ?
268
268
  ORDER BY links.id`, [memoryId, memoryId]);
269
269
  return result.rows.map((row) => linkFromRow(row));
270
270
  }
271
271
  async getLinkById(id) {
272
- const result = await this.execute(`SELECT
273
- links.*,
274
- from_memory.relative_path AS from_relative_path,
275
- to_memory.relative_path AS to_relative_path
276
- FROM links
277
- JOIN memories AS from_memory ON from_memory.id = links.from_memory_id
278
- JOIN memories AS to_memory ON to_memory.id = links.to_memory_id
272
+ const result = await this.execute(`SELECT
273
+ links.*,
274
+ from_memory.relative_path AS from_relative_path,
275
+ to_memory.relative_path AS to_relative_path
276
+ FROM links
277
+ JOIN memories AS from_memory ON from_memory.id = links.from_memory_id
278
+ JOIN memories AS to_memory ON to_memory.id = links.to_memory_id
279
279
  WHERE links.id = ?`, [id]);
280
280
  return result.rows[0] ? linkFromRow(result.rows[0]) : undefined;
281
281
  }
282
282
  async getAllLinks() {
283
- const result = await this.execute(`SELECT
284
- links.*,
285
- from_memory.relative_path AS from_relative_path,
286
- to_memory.relative_path AS to_relative_path
287
- FROM links
288
- JOIN memories AS from_memory ON from_memory.id = links.from_memory_id
289
- JOIN memories AS to_memory ON to_memory.id = links.to_memory_id
283
+ const result = await this.execute(`SELECT
284
+ links.*,
285
+ from_memory.relative_path AS from_relative_path,
286
+ to_memory.relative_path AS to_relative_path
287
+ FROM links
288
+ JOIN memories AS from_memory ON from_memory.id = links.from_memory_id
289
+ JOIN memories AS to_memory ON to_memory.id = links.to_memory_id
290
290
  ORDER BY links.id`);
291
291
  return result.rows.map((row) => linkFromRow(row));
292
292
  }
@@ -312,16 +312,16 @@ export class AugmentDatabase {
312
312
  if (!record) {
313
313
  throw new Error(`Cannot store embedding for missing memory`);
314
314
  }
315
- await this.execute(`INSERT INTO memory_embeddings (
316
- memory_id, model_id, model_version, dimensions, vector_json, embedded_hash, embedded_at
317
- )
318
- VALUES (?, ?, ?, ?, ?, ?, ?)
319
- ON CONFLICT(memory_id) DO UPDATE SET
320
- model_id = excluded.model_id,
321
- model_version = excluded.model_version,
322
- dimensions = excluded.dimensions,
323
- vector_json = excluded.vector_json,
324
- embedded_hash = excluded.embedded_hash,
315
+ await this.execute(`INSERT INTO memory_embeddings (
316
+ memory_id, model_id, model_version, dimensions, vector_json, embedded_hash, embedded_at
317
+ )
318
+ VALUES (?, ?, ?, ?, ?, ?, ?)
319
+ ON CONFLICT(memory_id) DO UPDATE SET
320
+ model_id = excluded.model_id,
321
+ model_version = excluded.model_version,
322
+ dimensions = excluded.dimensions,
323
+ vector_json = excluded.vector_json,
324
+ embedded_hash = excluded.embedded_hash,
325
325
  embedded_at = excluded.embedded_at`, [
326
326
  record.id,
327
327
  provider.modelId,
@@ -405,11 +405,11 @@ export class AugmentDatabase {
405
405
  }
406
406
  }
407
407
  function memorySelectSql(suffix) {
408
- return `SELECT
409
- memories.*,
410
- projects.name AS project_name
411
- FROM memories
412
- JOIN projects ON projects.id = memories.project_id
408
+ return `SELECT
409
+ memories.*,
410
+ projects.name AS project_name
411
+ FROM memories
412
+ JOIN projects ON projects.id = memories.project_id
413
413
  ${suffix}`;
414
414
  }
415
415
  function projectFromRow(row) {
package/dist/hooks.d.ts CHANGED
@@ -1,10 +1,13 @@
1
1
  import { type RecallOptions } from "./recall.js";
2
2
  /**
3
- * Host-agnostic hook handlers. Claude Code and Codex CLI share the same
4
- * lifecycle-hook stdin/stdout JSON contract (Codex copied the event names and
5
- * envelopes), so one set of handlers serves both. The only host difference this
6
- * file cares about is the field naming the prompt: Claude sends `user_input`,
7
- * Codex sends `prompt` `readPrompt` accepts either.
3
+ * Host-agnostic hook handlers. Claude Code, Codex CLI, and Grok Build share the
4
+ * same lifecycle-hook event names; Codex and Grok largely copied Claude's
5
+ * envelopes. Field-name differences are normalized below:
6
+ * - prompt: Claude `user_input`, Codex `prompt` (Grok may send either)
7
+ * - tool fields: Claude/Codex snake_case (`tool_name`, `tool_input`, `session_id`);
8
+ * Grok camelCase (`toolName`, `toolInput`, `sessionId`, `workspaceRoot`)
9
+ * - tool names: Grok's real names (`run_terminal_command`, `search_replace`, …)
10
+ * plus Claude aliases already accepted by Grok matchers
8
11
  *
9
12
  * Every handler is **fail-open**: a hook runs on every prompt and every turn
10
13
  * boundary, so any failure must degrade to "do nothing" (empty stdout, exit 0)
package/dist/hooks.js CHANGED
@@ -7,11 +7,14 @@ import { connectOrStartDaemon } from "./daemon/client.js";
7
7
  import { inferProjectName } from "./memory/project.js";
8
8
  import { recall as defaultRecall } from "./recall.js";
9
9
  /**
10
- * Host-agnostic hook handlers. Claude Code and Codex CLI share the same
11
- * lifecycle-hook stdin/stdout JSON contract (Codex copied the event names and
12
- * envelopes), so one set of handlers serves both. The only host difference this
13
- * file cares about is the field naming the prompt: Claude sends `user_input`,
14
- * Codex sends `prompt` `readPrompt` accepts either.
10
+ * Host-agnostic hook handlers. Claude Code, Codex CLI, and Grok Build share the
11
+ * same lifecycle-hook event names; Codex and Grok largely copied Claude's
12
+ * envelopes. Field-name differences are normalized below:
13
+ * - prompt: Claude `user_input`, Codex `prompt` (Grok may send either)
14
+ * - tool fields: Claude/Codex snake_case (`tool_name`, `tool_input`, `session_id`);
15
+ * Grok camelCase (`toolName`, `toolInput`, `sessionId`, `workspaceRoot`)
16
+ * - tool names: Grok's real names (`run_terminal_command`, `search_replace`, …)
17
+ * plus Claude aliases already accepted by Grok matchers
15
18
  *
16
19
  * Every handler is **fail-open**: a hook runs on every prompt and every turn
17
20
  * boundary, so any failure must degrade to "do nothing" (empty stdout, exit 0)
@@ -33,29 +36,55 @@ function asString(value) {
33
36
  function asRecord(value) {
34
37
  return value && typeof value === "object" ? value : {};
35
38
  }
36
- /** Claude uses `user_input`; Codex uses `prompt`. Accept either. */
39
+ /** Claude uses `user_input`; Codex uses `prompt`. Accept either (and common aliases). */
37
40
  function readPrompt(payload) {
38
- return (asString(payload.user_input) ?? asString(payload.prompt) ?? "").trim();
41
+ return (asString(payload.user_input) ??
42
+ asString(payload.prompt) ??
43
+ asString(payload.promptText) ??
44
+ asString(payload.message) ??
45
+ "").trim();
46
+ }
47
+ /** Claude/Codex snake_case or Grok camelCase. */
48
+ function readToolName(payload) {
49
+ return asString(payload.tool_name) ?? asString(payload.toolName) ?? "";
50
+ }
51
+ /** Claude/Codex snake_case or Grok camelCase. */
52
+ function readToolInput(payload) {
53
+ return payload.tool_input ?? payload.toolInput;
54
+ }
55
+ /** Prefer `cwd`, then Grok's `workspaceRoot`. */
56
+ function readCwd(payload) {
57
+ return asString(payload.cwd) ?? asString(payload.workspaceRoot);
58
+ }
59
+ /** Claude/Codex `session_id` or Grok `sessionId`. */
60
+ function readSessionId(payload) {
61
+ return asString(payload.session_id) ?? asString(payload.sessionId) ?? "";
39
62
  }
40
63
  /**
41
64
  * Derives the recall query for a PreToolUse hook from the tool name + its input — the
42
- * highest-signal text naming what the tool is about to touch: the command for Bash/apply_patch,
43
- * the file path for Edit/Write/Read. Both hosts use the same field names (`tool_name`,
44
- * `tool_input.command`, `tool_input.file_path`). Returns "" for tools (or empty inputs) we don't
45
- * key on, which short-circuits the handler before it pays for a search on the hot path.
65
+ * highest-signal text naming what the tool is about to touch: the command for Bash/shell,
66
+ * the file path for Edit/Write/Read. Accepts Claude names and Grok's real tool names.
67
+ * Returns "" for tools (or empty inputs) we don't key on, which short-circuits the handler
68
+ * before it pays for a search on the hot path.
46
69
  */
47
70
  function deriveToolQuery(toolName, rawInput) {
48
71
  const input = asRecord(rawInput);
49
72
  switch (toolName) {
50
73
  case "Bash":
51
74
  case "apply_patch":
75
+ case "run_terminal_command":
52
76
  return (asString(input.command) ?? "").trim();
53
77
  case "Edit":
54
78
  case "Write":
55
79
  case "Read":
56
- return (asString(input.file_path) ?? "").trim();
80
+ case "search_replace":
81
+ case "read_file":
82
+ return (asString(input.file_path) ?? asString(input.target_file) ?? "").trim();
57
83
  default:
58
- return (asString(input.command) ?? asString(input.file_path) ?? "").trim();
84
+ return (asString(input.command) ??
85
+ asString(input.file_path) ??
86
+ asString(input.target_file) ??
87
+ "").trim();
59
88
  }
60
89
  }
61
90
  /**
@@ -76,7 +105,7 @@ export async function handleUserPromptSubmit(payload, deps) {
76
105
  return OK;
77
106
  }
78
107
  const recall = deps.recall ?? defaultRecall;
79
- const text = await recall({ query, cwd: asString(payload.cwd), surface: "user-prompt-submit" });
108
+ const text = await recall({ query, cwd: readCwd(payload), surface: "user-prompt-submit" });
80
109
  if (!text) {
81
110
  return OK;
82
111
  }
@@ -112,7 +141,7 @@ const PRE_TOOL_RECALL_MIN_SCORE = 0.45;
112
141
  * tool still runs), so this is purely additive over the guaranteed UserPromptSubmit path.
113
142
  */
114
143
  export async function handlePreToolUse(payload, deps) {
115
- const query = deriveToolQuery(asString(payload.tool_name) ?? "", payload.tool_input);
144
+ const query = deriveToolQuery(readToolName(payload), readToolInput(payload));
116
145
  if (!query) {
117
146
  // Nothing actionable to recall against (or a tool we don't key on) — stay off the hot path.
118
147
  return OK;
@@ -121,7 +150,7 @@ export async function handlePreToolUse(payload, deps) {
121
150
  // re-injects the same memories, so suppress repeats before paying for the search. Without a
122
151
  // session_id there is no safe turn key — a global marker would suppress across sessions — so
123
152
  // skip the guard. A broken guard also fails open: losing dedupe must not lose the injection.
124
- const sessionId = asString(payload.session_id) ?? "";
153
+ const sessionId = readSessionId(payload);
125
154
  if (sessionId) {
126
155
  try {
127
156
  const markerSeen = deps.markerSeen ?? defaultMarkerSeen;
@@ -137,7 +166,7 @@ export async function handlePreToolUse(payload, deps) {
137
166
  const recall = deps.recall ?? defaultRecall;
138
167
  const text = await recall({
139
168
  query,
140
- cwd: asString(payload.cwd),
169
+ cwd: readCwd(payload),
141
170
  limit: PRE_TOOL_RECALL_LIMIT,
142
171
  maxChars: PRE_TOOL_RECALL_MAX_CHARS,
143
172
  minScore: PRE_TOOL_RECALL_MIN_SCORE,
@@ -159,7 +188,7 @@ export async function handlePreToolUse(payload, deps) {
159
188
  export async function handleSessionStart(payload, deps) {
160
189
  const initProject = deps.initProject ?? defaultInitProject;
161
190
  try {
162
- await initProject(asString(payload.cwd));
191
+ await initProject(readCwd(payload));
163
192
  }
164
193
  catch {
165
194
  // Daemon may be down; warming the project is best-effort. Stay silent.
@@ -168,8 +197,8 @@ export async function handleSessionStart(payload, deps) {
168
197
  }
169
198
  export async function handleStop(payload, deps) {
170
199
  try {
171
- const sessionId = asString(payload.session_id) ?? "";
172
- const promptId = asString(payload.prompt_id) ?? "";
200
+ const sessionId = readSessionId(payload);
201
+ const promptId = asString(payload.prompt_id) ?? asString(payload.promptId) ?? "";
173
202
  const markerSeen = deps.markerSeen ?? defaultMarkerSeen;
174
203
  const alreadyBlocked = await markerSeen(`${sessionId}__${promptId}`);
175
204
  if (alreadyBlocked) {
package/dist/hooks.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}
package/dist/install.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export type InstallTarget = "codex" | "claude" | "all";
1
+ export type InstallTarget = "codex" | "claude" | "grok" | "all";
2
2
  export type InstallScope = "user" | "repo";
3
3
  export interface ClaudeCommandResult {
4
4
  /** Whether the `claude` executable was found on PATH. */
@@ -6,7 +6,7 @@ export interface ClaudeCommandResult {
6
6
  /** Whether the command exited successfully (exit code 0). */
7
7
  ok: boolean;
8
8
  }
9
- /** Runs a `claude` CLI command. Injected so installs stay side-effect-free in tests. */
9
+ /** Runs a host CLI command (`claude`, `npm`, …). Injected so installs stay side-effect-free in tests. */
10
10
  export type ClaudeCommandRunner = (command: string, args: string[]) => Promise<ClaudeCommandResult>;
11
11
  export interface InstallOptions {
12
12
  target: InstallTarget;
@@ -29,9 +29,21 @@ export interface InstallPlan {
29
29
  files: string[];
30
30
  }
31
31
  export declare function installIntegration(options: InstallOptions): Promise<InstallPlan>;
32
+ /**
33
+ * Idempotent merge of the augment MCP server into a Grok `config.toml`. Removes any existing
34
+ * `[mcp_servers.augment]` / nested tables first, then appends a fresh section so re-installs
35
+ * update command/args/env without duplicating keys or clobbering unrelated config.
36
+ */
37
+ export declare function upsertGrokMcpToml(existing: string | undefined, server: McpServerConfig): string;
32
38
  /**
33
39
  * Real `claude` CLI runner used by the command line. Detects availability with which/where so
34
40
  * "not found" is distinguishable from "ran but failed", then runs through a shell on Windows so
35
41
  * `.cmd`/`.ps1` shims resolve. Output is suppressed; only availability + exit status matter.
36
42
  */
37
43
  export declare const defaultClaudeRunner: ClaudeCommandRunner;
44
+ interface McpServerConfig {
45
+ command: string;
46
+ args: string[];
47
+ env: Record<string, string>;
48
+ }
49
+ export {};