memax-cli 0.1.0-alpha.3 → 0.1.0-alpha.31

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.
Files changed (127) hide show
  1. package/assets/skills/memax-memory/SKILL.md +154 -0
  2. package/dist/commands/agent-sessions.d.ts +32 -0
  3. package/dist/commands/agent-sessions.d.ts.map +1 -0
  4. package/dist/commands/agent-sessions.js +761 -0
  5. package/dist/commands/agent-sessions.js.map +1 -0
  6. package/dist/commands/agent-sessions.test.d.ts +2 -0
  7. package/dist/commands/agent-sessions.test.d.ts.map +1 -0
  8. package/dist/commands/agent-sessions.test.js +82 -0
  9. package/dist/commands/agent-sessions.test.js.map +1 -0
  10. package/dist/commands/auth.d.ts +1 -0
  11. package/dist/commands/auth.d.ts.map +1 -1
  12. package/dist/commands/auth.js +14 -7
  13. package/dist/commands/auth.js.map +1 -1
  14. package/dist/commands/capture.d.ts +17 -0
  15. package/dist/commands/capture.d.ts.map +1 -0
  16. package/dist/commands/capture.js +61 -0
  17. package/dist/commands/capture.js.map +1 -0
  18. package/dist/commands/delete.d.ts +1 -1
  19. package/dist/commands/delete.d.ts.map +1 -1
  20. package/dist/commands/delete.js +22 -5
  21. package/dist/commands/delete.js.map +1 -1
  22. package/dist/commands/hub.d.ts +4 -0
  23. package/dist/commands/hub.d.ts.map +1 -0
  24. package/dist/commands/hub.js +53 -0
  25. package/dist/commands/hub.js.map +1 -0
  26. package/dist/commands/list.d.ts +2 -1
  27. package/dist/commands/list.d.ts.map +1 -1
  28. package/dist/commands/list.js +35 -8
  29. package/dist/commands/list.js.map +1 -1
  30. package/dist/commands/login.d.ts.map +1 -1
  31. package/dist/commands/login.js +27 -5
  32. package/dist/commands/login.js.map +1 -1
  33. package/dist/commands/mcp.d.ts.map +1 -1
  34. package/dist/commands/mcp.js +275 -42
  35. package/dist/commands/mcp.js.map +1 -1
  36. package/dist/commands/push.d.ts +4 -1
  37. package/dist/commands/push.d.ts.map +1 -1
  38. package/dist/commands/push.js +51 -11
  39. package/dist/commands/push.js.map +1 -1
  40. package/dist/commands/recall.d.ts +7 -0
  41. package/dist/commands/recall.d.ts.map +1 -1
  42. package/dist/commands/recall.js +164 -39
  43. package/dist/commands/recall.js.map +1 -1
  44. package/dist/commands/recall.test.d.ts +2 -0
  45. package/dist/commands/recall.test.d.ts.map +1 -0
  46. package/dist/commands/recall.test.js +31 -0
  47. package/dist/commands/recall.test.js.map +1 -0
  48. package/dist/commands/setup-hooks.d.ts +12 -0
  49. package/dist/commands/setup-hooks.d.ts.map +1 -0
  50. package/dist/commands/setup-hooks.js +193 -0
  51. package/dist/commands/setup-hooks.js.map +1 -0
  52. package/dist/commands/setup-instructions.d.ts +21 -0
  53. package/dist/commands/setup-instructions.d.ts.map +1 -0
  54. package/dist/commands/setup-instructions.js +172 -0
  55. package/dist/commands/setup-instructions.js.map +1 -0
  56. package/dist/commands/setup-mcp.d.ts +14 -0
  57. package/dist/commands/setup-mcp.d.ts.map +1 -0
  58. package/dist/commands/setup-mcp.js +278 -0
  59. package/dist/commands/setup-mcp.js.map +1 -0
  60. package/dist/commands/setup-types.d.ts +20 -0
  61. package/dist/commands/setup-types.d.ts.map +1 -0
  62. package/dist/commands/setup-types.js +60 -0
  63. package/dist/commands/setup-types.js.map +1 -0
  64. package/dist/commands/setup.d.ts +6 -1
  65. package/dist/commands/setup.d.ts.map +1 -1
  66. package/dist/commands/setup.js +146 -306
  67. package/dist/commands/setup.js.map +1 -1
  68. package/dist/commands/show.d.ts.map +1 -1
  69. package/dist/commands/show.js +10 -13
  70. package/dist/commands/show.js.map +1 -1
  71. package/dist/commands/sync.d.ts +33 -2
  72. package/dist/commands/sync.d.ts.map +1 -1
  73. package/dist/commands/sync.js +1066 -119
  74. package/dist/commands/sync.js.map +1 -1
  75. package/dist/commands/sync.test.d.ts +2 -0
  76. package/dist/commands/sync.test.d.ts.map +1 -0
  77. package/dist/commands/sync.test.js +130 -0
  78. package/dist/commands/sync.test.js.map +1 -0
  79. package/dist/commands/topic.d.ts +20 -0
  80. package/dist/commands/topic.d.ts.map +1 -0
  81. package/dist/commands/topic.js +87 -0
  82. package/dist/commands/topic.js.map +1 -0
  83. package/dist/index.js +131 -14
  84. package/dist/index.js.map +1 -1
  85. package/dist/lib/client.d.ts +7 -0
  86. package/dist/lib/client.d.ts.map +1 -0
  87. package/dist/lib/client.js +72 -0
  88. package/dist/lib/client.js.map +1 -0
  89. package/dist/lib/config.d.ts +42 -0
  90. package/dist/lib/config.d.ts.map +1 -1
  91. package/dist/lib/config.js +64 -1
  92. package/dist/lib/config.js.map +1 -1
  93. package/dist/lib/project-context.d.ts +50 -0
  94. package/dist/lib/project-context.d.ts.map +1 -0
  95. package/dist/lib/project-context.js +201 -0
  96. package/dist/lib/project-context.js.map +1 -0
  97. package/dist/lib/project-context.test.d.ts +2 -0
  98. package/dist/lib/project-context.test.d.ts.map +1 -0
  99. package/dist/lib/project-context.test.js +75 -0
  100. package/dist/lib/project-context.test.js.map +1 -0
  101. package/dist/lib/prompt.d.ts +7 -0
  102. package/dist/lib/prompt.d.ts.map +1 -0
  103. package/dist/lib/prompt.js +41 -0
  104. package/dist/lib/prompt.js.map +1 -0
  105. package/package.json +17 -13
  106. package/.vscode/mcp.json +0 -8
  107. package/dist/lib/api.d.ts +0 -4
  108. package/dist/lib/api.d.ts.map +0 -1
  109. package/dist/lib/api.js +0 -95
  110. package/dist/lib/api.js.map +0 -1
  111. package/src/commands/auth.ts +0 -92
  112. package/src/commands/config.ts +0 -27
  113. package/src/commands/delete.ts +0 -20
  114. package/src/commands/hook.ts +0 -243
  115. package/src/commands/list.ts +0 -38
  116. package/src/commands/login.ts +0 -162
  117. package/src/commands/mcp.ts +0 -357
  118. package/src/commands/push.ts +0 -82
  119. package/src/commands/recall.ts +0 -163
  120. package/src/commands/setup.ts +0 -682
  121. package/src/commands/show.ts +0 -35
  122. package/src/commands/sync.ts +0 -403
  123. package/src/index.ts +0 -192
  124. package/src/lib/api.ts +0 -110
  125. package/src/lib/config.ts +0 -61
  126. package/src/lib/credentials.ts +0 -42
  127. package/tsconfig.json +0 -9
@@ -1 +1 @@
1
- {"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,14 @@ interface RecallOptions {
6
6
  includeArchived?: boolean;
7
7
  hook?: boolean;
8
8
  maxTokens?: string;
9
+ hub?: string;
9
10
  }
11
+ export declare function previewLines(text: string, limit: number): string[];
12
+ export declare function hasMorePreviewLines(text: string, limit: number): boolean;
13
+ export declare function renderMarkdownFragment(text: string, options?: {
14
+ indent?: string;
15
+ maxLines?: number;
16
+ }): string[];
10
17
  export declare function recallCommand(query: string | undefined, options: RecallOptions): Promise<void>;
11
18
  export {};
12
19
  //# sourceMappingURL=recall.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"recall.d.ts","sourceRoot":"","sources":["../../src/commands/recall.ts"],"names":[],"mappings":"AAqBA,UAAU,aAAa;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,aAAa,CACjC,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,IAAI,CAAC,CAgIf"}
1
+ {"version":3,"file":"recall.d.ts","sourceRoot":"","sources":["../../src/commands/recall.ts"],"names":[],"mappings":"AAIA,UAAU,aAAa;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAMD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAMlE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAOxE;AAwCD,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GACnD,MAAM,EAAE,CAyBV;AA4GD,wBAAsB,aAAa,CACjC,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,IAAI,CAAC,CA2Gf"}
@@ -1,5 +1,145 @@
1
1
  import chalk from "chalk";
2
- import { apiPost } from "../lib/api.js";
2
+ import { getClient } from "../lib/client.js";
3
+ import { detectProjectContext } from "../lib/project-context.js";
4
+ const humanExcerptLineLimit = 4;
5
+ const plainExcerptLineLimit = 3;
6
+ const memoryDivider = " ───────────────────────────────────────────────";
7
+ export function previewLines(text, limit) {
8
+ return text
9
+ .split("\n")
10
+ .map((line) => line.trimEnd())
11
+ .filter((line) => line.trim() !== "")
12
+ .slice(0, limit);
13
+ }
14
+ export function hasMorePreviewLines(text, limit) {
15
+ return (text
16
+ .split("\n")
17
+ .map((line) => line.trimEnd())
18
+ .filter((line) => line.trim() !== "").length > limit);
19
+ }
20
+ function styleInlineMarkdown(text) {
21
+ return text
22
+ .replace(/`([^`]+)`/g, (_, code) => chalk.cyan(code))
23
+ .replace(/\*\*([^*]+)\*\*/g, (_, bold) => chalk.bold(bold))
24
+ .replace(/__([^_]+)__/g, (_, bold) => chalk.bold(bold))
25
+ .replace(/\*([^*\n]+)\*/g, (_, italic) => chalk.italic(italic))
26
+ .replace(/_([^_\n]+)_/g, (_, italic) => chalk.italic(italic));
27
+ }
28
+ function renderMarkdownLine(line) {
29
+ const trimmed = line.trim();
30
+ if (!trimmed) {
31
+ return "";
32
+ }
33
+ const heading = trimmed.match(/^(#{1,6})\s+(.*)$/);
34
+ if (heading) {
35
+ return chalk.bold(styleInlineMarkdown(heading[2]));
36
+ }
37
+ const quote = trimmed.match(/^>\s?(.*)$/);
38
+ if (quote) {
39
+ return chalk.gray(`│ ${styleInlineMarkdown(quote[1])}`);
40
+ }
41
+ const unordered = trimmed.match(/^[-*+]\s+(.*)$/);
42
+ if (unordered) {
43
+ return `${chalk.gray("•")} ${styleInlineMarkdown(unordered[1])}`;
44
+ }
45
+ const ordered = trimmed.match(/^(\d+)\.\s+(.*)$/);
46
+ if (ordered) {
47
+ return `${chalk.gray(`${ordered[1]}.`)} ${styleInlineMarkdown(ordered[2])}`;
48
+ }
49
+ return styleInlineMarkdown(trimmed);
50
+ }
51
+ export function renderMarkdownFragment(text, options = {}) {
52
+ const indent = options.indent ?? " ";
53
+ const rawLines = text
54
+ .split("\n")
55
+ .map((line) => line.trimEnd())
56
+ .filter((line) => line.trim() !== "");
57
+ const limited = typeof options.maxLines === "number"
58
+ ? rawLines.slice(0, options.maxLines)
59
+ : rawLines;
60
+ const output = [];
61
+ let inFence = false;
62
+ for (const line of limited) {
63
+ const trimmed = line.trim();
64
+ if (trimmed.startsWith("```")) {
65
+ inFence = !inFence;
66
+ continue;
67
+ }
68
+ const rendered = inFence ? chalk.cyan(trimmed) : renderMarkdownLine(line);
69
+ if (rendered) {
70
+ output.push(`${indent}${rendered}`);
71
+ }
72
+ }
73
+ return output;
74
+ }
75
+ function printSection(label, bodyLines) {
76
+ if (bodyLines.length === 0) {
77
+ return;
78
+ }
79
+ console.log(chalk.gray(` ${label}`));
80
+ for (const line of bodyLines) {
81
+ console.log(line);
82
+ }
83
+ }
84
+ function formatRecallHeader(memory) {
85
+ const score = (memory.relevance_score * 100).toFixed(0);
86
+ return [
87
+ chalk.bold(memory.title),
88
+ chalk.gray(`[${memory.category}]`),
89
+ chalk.cyan(`${score}%`),
90
+ chalk.gray(`· ${memory.age}`),
91
+ ].join(" ");
92
+ }
93
+ function printHumanRecallMemory(mem, isLast) {
94
+ console.log(formatRecallHeader(mem));
95
+ console.log(chalk.gray(` id: ${mem.id}`));
96
+ if (mem.heading_chain) {
97
+ console.log(chalk.gray(` ${mem.heading_chain}`));
98
+ }
99
+ console.log();
100
+ if (mem.summary) {
101
+ printSection("Summary", renderMarkdownFragment(mem.summary, { indent: " " }));
102
+ console.log();
103
+ }
104
+ const excerptLines = renderMarkdownFragment(mem.chunk_content, {
105
+ indent: " ",
106
+ maxLines: humanExcerptLineLimit,
107
+ });
108
+ printSection("Relevant excerpt", excerptLines);
109
+ if (hasMorePreviewLines(mem.chunk_content, humanExcerptLineLimit)) {
110
+ console.log(chalk.gray(" …"));
111
+ }
112
+ if (!isLast) {
113
+ console.log(chalk.gray(memoryDivider));
114
+ }
115
+ console.log();
116
+ }
117
+ function printPlainRecallMemory(mem) {
118
+ const score = (mem.relevance_score * 100).toFixed(0);
119
+ console.log(`${mem.title} [${mem.category}] ${score}% · ${mem.age} (${mem.id})`);
120
+ if (mem.heading_chain) {
121
+ console.log(` ${mem.heading_chain}`);
122
+ }
123
+ if (mem.summary) {
124
+ console.log(" Summary:");
125
+ for (const line of renderMarkdownFragment(mem.summary, {
126
+ indent: " ",
127
+ })) {
128
+ console.log(line);
129
+ }
130
+ }
131
+ console.log(" Relevant excerpt:");
132
+ for (const line of renderMarkdownFragment(mem.chunk_content, {
133
+ indent: " ",
134
+ maxLines: plainExcerptLineLimit,
135
+ })) {
136
+ console.log(line);
137
+ }
138
+ if (hasMorePreviewLines(mem.chunk_content, plainExcerptLineLimit)) {
139
+ console.log(" …");
140
+ }
141
+ console.log();
142
+ }
3
143
  export async function recallCommand(query, options) {
4
144
  if (!query) {
5
145
  // Read from stdin if no query argument
@@ -17,29 +157,33 @@ export async function recallCommand(query, options) {
17
157
  }
18
158
  const limit = parseInt(options.limit ?? "5", 10);
19
159
  try {
20
- const result = await apiPost("/v1/recall", {
21
- query,
160
+ const result = await getClient().recall(query, {
22
161
  category: options.category ?? "",
23
162
  limit,
24
- include_archived: options.includeArchived ?? false,
163
+ includeArchived: options.includeArchived ?? false,
25
164
  source: options.hook ? "hook" : "cli",
26
- working_dir: process.cwd(),
165
+ workingDir: process.cwd(),
166
+ projectContext: detectProjectContext(),
167
+ hubId: options.hub,
27
168
  });
28
- const notes = result.notes ?? [];
169
+ const memories = result.memories ?? [];
29
170
  if (options.format === "json") {
30
- console.log(JSON.stringify({ ...result, notes }, null, 2));
171
+ console.log(JSON.stringify({ ...result, memories }, null, 2));
31
172
  return;
32
173
  }
33
174
  // Hook mode: output clean context for agent injection
34
175
  if (options.hook) {
35
- if (notes.length === 0)
176
+ if (memories.length === 0)
36
177
  return;
37
178
  let output = "<memax-context>\n";
38
179
  output += "## Relevant Context (from Memax)\n\n";
39
- for (const note of notes) {
40
- const heading = note.heading_chain ? ` — ${note.heading_chain}` : "";
41
- output += `### ${note.title} [${note.category}, ${note.age}]${heading}\n`;
42
- output += note.chunk_content + "\n\n";
180
+ for (const mem of memories) {
181
+ const heading = mem.heading_chain ? ` — ${mem.heading_chain}` : "";
182
+ output += `### ${mem.title} [${mem.category}, ${mem.age}]${heading}\n`;
183
+ if (mem.summary) {
184
+ output += `Summary: ${mem.summary}\n\n`;
185
+ }
186
+ output += mem.chunk_content + "\n\n";
43
187
  }
44
188
  output += "</memax-context>";
45
189
  // Truncate to fit within token budget (1 token ≈ 4 characters)
@@ -59,45 +203,26 @@ export async function recallCommand(query, options) {
59
203
  }
60
204
  // Pipe-friendly plain text output when stdout is not a TTY
61
205
  if (!process.stdout.isTTY) {
62
- if (notes.length === 0) {
206
+ if (memories.length === 0) {
63
207
  return;
64
208
  }
65
- for (const note of notes) {
66
- const score = (note.relevance_score * 100).toFixed(0);
67
- console.log(`${note.title} [${note.category}] ${score}% · ${note.age} (${note.id})`);
68
- if (note.heading_chain) {
69
- console.log(` ${note.heading_chain}`);
70
- }
71
- const lines = note.chunk_content.split("\n").slice(0, 3);
72
- for (const line of lines) {
73
- console.log(` ${line}`);
74
- }
75
- console.log();
209
+ for (const mem of memories) {
210
+ printPlainRecallMemory(mem);
76
211
  }
77
212
  return;
78
213
  }
79
214
  // Human-readable output
80
- if (notes.length === 0) {
215
+ if (memories.length === 0) {
81
216
  console.log(chalk.yellow("No results found."));
82
217
  console.log(chalk.gray(` Searched ${result.query_metadata.total_candidates} chunks in ${result.query_metadata.latency_ms}ms`));
83
218
  return;
84
219
  }
85
- console.log(chalk.blue(`${notes.length} result${notes.length > 1 ? "s" : ""}`), chalk.gray(`(${result.query_metadata.total_candidates} chunks searched, ${result.query_metadata.latency_ms}ms)`));
220
+ console.log(chalk.blue(`${memories.length} result${memories.length > 1 ? "s" : ""}`), chalk.gray(`(${result.query_metadata.total_candidates} chunks searched, ${result.query_metadata.latency_ms}ms)`));
86
221
  console.log();
87
- for (const note of notes) {
88
- const score = (note.relevance_score * 100).toFixed(0);
89
- console.log(chalk.bold(note.title), chalk.gray(`[${note.category}]`), chalk.cyan(`${score}%`), chalk.gray(`· ${note.age}`));
90
- console.log(chalk.gray(` id: ${note.id}`));
91
- if (note.heading_chain) {
92
- console.log(chalk.gray(` ${note.heading_chain}`));
93
- }
94
- // Show first 3 lines of chunk content
95
- const lines = note.chunk_content.split("\n").slice(0, 3);
96
- for (const line of lines) {
97
- console.log(chalk.white(` ${line}`));
98
- }
99
- console.log();
222
+ for (const [index, mem] of memories.entries()) {
223
+ printHumanRecallMemory(mem, index === memories.length - 1);
100
224
  }
225
+ console.log(chalk.gray(" Use memax show <id> to read the full memory."));
101
226
  }
102
227
  catch (err) {
103
228
  console.error(chalk.red(`Recall failed: ${err.message}`));
@@ -1 +1 @@
1
- {"version":3,"file":"recall.js","sourceRoot":"","sources":["../../src/commands/recall.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recall.js","sourceRoot":"","sources":["../../src/commands/recall.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=recall.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recall.test.d.ts","sourceRoot":"","sources":["../../src/commands/recall.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,31 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { hasMorePreviewLines, previewLines, renderMarkdownFragment, } from "./recall.js";
3
+ describe("previewLines", () => {
4
+ it("drops blank lines and preserves only the requested number of lines", () => {
5
+ expect(previewLines("one\n\n two \n\nthree\nfour", 2)).toEqual([
6
+ "one",
7
+ " two",
8
+ ]);
9
+ });
10
+ });
11
+ describe("hasMorePreviewLines", () => {
12
+ it("is true when there are more non-empty lines than the limit", () => {
13
+ expect(hasMorePreviewLines("one\n\ntwo\nthree", 2)).toBe(true);
14
+ });
15
+ it("is false when the visible lines fit within the limit", () => {
16
+ expect(hasMorePreviewLines("one\n\ntwo", 2)).toBe(false);
17
+ });
18
+ });
19
+ describe("renderMarkdownFragment", () => {
20
+ it("renders lightweight markdown fragments without requiring full document structure", () => {
21
+ expect(renderMarkdownFragment("## Heading\n- item one\nRegular `code` text", {
22
+ indent: " ",
23
+ })).toEqual([" Heading", " • item one", " Regular code text"]);
24
+ });
25
+ it("ignores fenced code markers and renders the code lines", () => {
26
+ expect(renderMarkdownFragment("```md\nconst x = 1;\n```", {
27
+ indent: " ",
28
+ })).toEqual([" const x = 1;"]);
29
+ });
30
+ });
31
+ //# sourceMappingURL=recall.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recall.test.js","sourceRoot":"","sources":["../../src/commands/recall.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,sBAAsB,GACvB,MAAM,aAAa,CAAC;AAErB,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC5E,MAAM,CAAC,YAAY,CAAC,6BAA6B,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC7D,KAAK;YACL,MAAM;SACP,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,CAAC,mBAAmB,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,kFAAkF,EAAE,GAAG,EAAE;QAC1F,MAAM,CACJ,sBAAsB,CAAC,6CAA6C,EAAE;YACpE,MAAM,EAAE,MAAM;SACf,CAAC,CACH,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,gBAAgB,EAAE,uBAAuB,CAAC,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,CACJ,sBAAsB,CAAC,0BAA0B,EAAE;YACjD,MAAM,EAAE,MAAM;SACf,CAAC,CACH,CAAC,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { AgentDef, MemaxBin } from "./setup-types.js";
2
+ export declare const UNIX_HOOK = "#!/bin/bash\n# Memax context injection \u2014 installed by: memax setup --hooks\nset -e\nINPUT=$(cat)\nPROMPT=$(echo \"$INPUT\" | jq -r '.prompt // empty')\nCWD=$(echo \"$INPUT\" | jq -r '.cwd // empty')\nif [ -z \"$PROMPT\" ] || [ ${#PROMPT} -lt 10 ]; then exit 0; fi\ncase \"$PROMPT\" in [Yy]|[Yy]es|[Nn]|[Nn]o|ok|OK|sure|Sure|thanks|Thanks|y|n) exit 0 ;; esac\nif [ -n \"$CWD\" ]; then cd \"$CWD\" 2>/dev/null || true; fi\nCONTEXT=$($MEMAX recall \"$PROMPT\" --hook --agent $AGENT --limit 5 --max-tokens 3000 2>/dev/null) || exit 0\nif [ -n \"$CONTEXT\" ] && [ \"$CONTEXT\" != \"<memax-context>\" ]; then echo \"$CONTEXT\"; fi\nexit 0\n";
3
+ export declare const WIN_HOOK = "@echo off\nREM Memax context injection \u2014 installed by: memax setup --hooks\nset /p INPUT=\nfor /f \"tokens=*\" %%a in ('echo %INPUT% ^| jq -r \".prompt // empty\"') do set PROMPT=%%a\nif \"%PROMPT%\"==\"\" exit /b 0\n$MEMAX recall \"%PROMPT%\" --hook --agent $AGENT --limit 5 --max-tokens 3000 2>nul\nexit /b 0\n";
4
+ export declare const UNIX_CAPTURE_HOOK = "#!/bin/bash\n# Memax session capture \u2014 installed by: memax setup --hooks\n# Fires on session end (Stop hook). Pipes session data to memax capture-session.\nset -e\nINPUT=$(cat)\nSUMMARY=$(echo \"$INPUT\" | jq -r '.transcript // .summary // empty' 2>/dev/null)\nif [ -z \"$SUMMARY\" ]; then exit 0; fi\nif [ ${#SUMMARY} -lt 50 ]; then exit 0; fi\necho \"$SUMMARY\" | $MEMAX capture-session --agent $AGENT 2>/dev/null || true\nexit 0\n";
5
+ export declare const WIN_CAPTURE_HOOK = "@echo off\nREM Memax session capture \u2014 installed by: memax setup --hooks\nset /p INPUT=\n$MEMAX capture-session --agent $AGENT --summary \"%INPUT%\" 2>nul\nexit /b 0\n";
6
+ export declare function setupHooks(agent: AgentDef, bin: MemaxBin): void;
7
+ export declare function setupClaudeCodeHooks(agent: AgentDef, bin: MemaxBin): void;
8
+ export declare function setupGeminiHooks(agent: AgentDef, bin: MemaxBin): void;
9
+ export declare function removeHooks(agent: AgentDef): boolean;
10
+ export declare function writeHookScript(bin: MemaxBin, agentId?: string): string;
11
+ export declare function writeCaptureHookScript(bin: MemaxBin, agentId?: string): string;
12
+ //# sourceMappingURL=setup-hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-hooks.d.ts","sourceRoot":"","sources":["../../src/commands/setup-hooks.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAK3D,eAAO,MAAM,SAAS,ooBAYrB,CAAC;AAEF,eAAO,MAAM,QAAQ,kUAOpB,CAAC;AAEF,eAAO,MAAM,iBAAiB,2bAU7B,CAAC;AAEF,eAAO,MAAM,gBAAgB,iLAK5B,CAAC;AAIF,wBAAgB,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,GAAG,IAAI,CAM/D;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,GAAG,IAAI,CAgDzE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,GAAG,IAAI,CAmCrE;AAID,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAkCpD;AAID,wBAAgB,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,GAAE,MAAW,GAAG,MAAM,CAsB3E;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,QAAQ,EACb,OAAO,GAAE,MAAW,GACnB,MAAM,CAsBR"}
@@ -0,0 +1,193 @@
1
+ import chalk from "chalk";
2
+ import { readFileSync, writeFileSync, mkdirSync, existsSync, chmodSync, } from "node:fs";
3
+ import { join } from "node:path";
4
+ import { homedir, platform } from "node:os";
5
+ // --- Hook scripts ---
6
+ // $MEMAX and $AGENT are replaced at write time per agent
7
+ export const UNIX_HOOK = `#!/bin/bash
8
+ # Memax context injection — installed by: memax setup --hooks
9
+ set -e
10
+ INPUT=$(cat)
11
+ PROMPT=$(echo "$INPUT" | jq -r '.prompt // empty')
12
+ CWD=$(echo "$INPUT" | jq -r '.cwd // empty')
13
+ if [ -z "$PROMPT" ] || [ \${#PROMPT} -lt 10 ]; then exit 0; fi
14
+ case "$PROMPT" in [Yy]|[Yy]es|[Nn]|[Nn]o|ok|OK|sure|Sure|thanks|Thanks|y|n) exit 0 ;; esac
15
+ if [ -n "$CWD" ]; then cd "$CWD" 2>/dev/null || true; fi
16
+ CONTEXT=$($MEMAX recall "$PROMPT" --hook --agent $AGENT --limit 5 --max-tokens 3000 2>/dev/null) || exit 0
17
+ if [ -n "$CONTEXT" ] && [ "$CONTEXT" != "<memax-context>" ]; then echo "$CONTEXT"; fi
18
+ exit 0
19
+ `;
20
+ export const WIN_HOOK = `@echo off
21
+ REM Memax context injection — installed by: memax setup --hooks
22
+ set /p INPUT=
23
+ for /f "tokens=*" %%a in ('echo %INPUT% ^| jq -r ".prompt // empty"') do set PROMPT=%%a
24
+ if "%PROMPT%"=="" exit /b 0
25
+ $MEMAX recall "%PROMPT%" --hook --agent $AGENT --limit 5 --max-tokens 3000 2>nul
26
+ exit /b 0
27
+ `;
28
+ export const UNIX_CAPTURE_HOOK = `#!/bin/bash
29
+ # Memax session capture — installed by: memax setup --hooks
30
+ # Fires on session end (Stop hook). Pipes session data to memax capture-session.
31
+ set -e
32
+ INPUT=$(cat)
33
+ SUMMARY=$(echo "$INPUT" | jq -r '.transcript // .summary // empty' 2>/dev/null)
34
+ if [ -z "$SUMMARY" ]; then exit 0; fi
35
+ if [ \${#SUMMARY} -lt 50 ]; then exit 0; fi
36
+ echo "$SUMMARY" | $MEMAX capture-session --agent $AGENT 2>/dev/null || true
37
+ exit 0
38
+ `;
39
+ export const WIN_CAPTURE_HOOK = `@echo off
40
+ REM Memax session capture — installed by: memax setup --hooks
41
+ set /p INPUT=
42
+ $MEMAX capture-session --agent $AGENT --summary "%INPUT%" 2>nul
43
+ exit /b 0
44
+ `;
45
+ // --- Hook setup ---
46
+ export function setupHooks(agent, bin) {
47
+ if (agent.id === "claude-code") {
48
+ setupClaudeCodeHooks(agent, bin);
49
+ }
50
+ else if (agent.id === "gemini") {
51
+ setupGeminiHooks(agent, bin);
52
+ }
53
+ }
54
+ export function setupClaudeCodeHooks(agent, bin) {
55
+ const hookScript = writeHookScript(bin, agent.id);
56
+ let config = {};
57
+ if (existsSync(agent.configPath)) {
58
+ try {
59
+ config = JSON.parse(readFileSync(agent.configPath, "utf-8"));
60
+ }
61
+ catch {
62
+ // Start fresh
63
+ }
64
+ }
65
+ const hooks = (config.hooks ?? {});
66
+ // Remove existing memax hooks
67
+ if (hooks["UserPromptSubmit"]) {
68
+ hooks["UserPromptSubmit"] = hooks["UserPromptSubmit"].filter((h) => !h.hooks?.some((hh) => hh.command?.includes("memax")));
69
+ }
70
+ hooks["UserPromptSubmit"] = [
71
+ ...(hooks["UserPromptSubmit"] ?? []),
72
+ {
73
+ matcher: "",
74
+ hooks: [{ type: "command", command: hookScript, timeout: 30 }],
75
+ },
76
+ ];
77
+ // Stop hook: auto-capture session learnings on session end
78
+ const captureScript = writeCaptureHookScript(bin, agent.id);
79
+ if (hooks["Stop"]) {
80
+ hooks["Stop"] = hooks["Stop"].filter((h) => !h.hooks?.some((hh) => hh.command?.includes("memax")));
81
+ }
82
+ hooks["Stop"] = [
83
+ ...(hooks["Stop"] ?? []),
84
+ {
85
+ matcher: "",
86
+ hooks: [{ type: "command", command: captureScript, timeout: 60 }],
87
+ },
88
+ ];
89
+ config.hooks = hooks;
90
+ writeFileSync(agent.configPath, JSON.stringify(config, null, 2) + "\n");
91
+ }
92
+ export function setupGeminiHooks(agent, bin) {
93
+ const hookScript = writeHookScript(bin, agent.id);
94
+ let config = {};
95
+ if (existsSync(agent.configPath)) {
96
+ try {
97
+ config = JSON.parse(readFileSync(agent.configPath, "utf-8"));
98
+ }
99
+ catch {
100
+ // Start fresh
101
+ }
102
+ }
103
+ const hooks = (config.hooks ?? {});
104
+ // Remove existing memax hooks from both old ("Startup") and correct event
105
+ for (const event of ["Startup", "BeforeAgent"]) {
106
+ if (hooks[event]) {
107
+ hooks[event] = hooks[event].filter((h) => !h.hooks?.some((hh) => hh.command?.includes("memax")));
108
+ if (hooks[event].length === 0)
109
+ delete hooks[event];
110
+ }
111
+ }
112
+ // BeforeAgent fires after user submits a prompt — equivalent to Claude Code's PrePromptSubmit
113
+ hooks["BeforeAgent"] = [
114
+ ...(hooks["BeforeAgent"] ?? []),
115
+ {
116
+ matcher: "",
117
+ hooks: [{ type: "command", command: hookScript, timeout: 30 }],
118
+ },
119
+ ];
120
+ config.hooks = hooks;
121
+ writeFileSync(agent.configPath, JSON.stringify(config, null, 2) + "\n");
122
+ }
123
+ // --- Teardown ---
124
+ export function removeHooks(agent) {
125
+ if (!existsSync(agent.configPath))
126
+ return false;
127
+ try {
128
+ const config = JSON.parse(readFileSync(agent.configPath, "utf-8"));
129
+ const hooks = config.hooks;
130
+ if (!hooks)
131
+ return false;
132
+ let removed = false;
133
+ for (const event of Object.keys(hooks)) {
134
+ const before = hooks[event].length;
135
+ hooks[event] = hooks[event].filter((h) => !h.command?.includes("memax") &&
136
+ !h.hooks?.some((hh) => hh.command?.includes("memax")));
137
+ if (hooks[event].length < before)
138
+ removed = true;
139
+ if (hooks[event].length === 0)
140
+ delete hooks[event];
141
+ }
142
+ if (Object.keys(hooks).length === 0)
143
+ delete config.hooks;
144
+ if (removed) {
145
+ writeFileSync(agent.configPath, JSON.stringify(config, null, 2) + "\n");
146
+ console.log(chalk.gray(` Removed hooks from ${agent.name}`));
147
+ }
148
+ return removed;
149
+ }
150
+ catch {
151
+ return false;
152
+ }
153
+ }
154
+ // --- Script writers ---
155
+ export function writeHookScript(bin, agentId = "") {
156
+ const hooksDir = join(homedir(), ".memax", "hooks");
157
+ mkdirSync(hooksDir, { recursive: true });
158
+ const isWindows = platform() === "win32";
159
+ const suffix = agentId ? `-${agentId}` : "";
160
+ const scriptName = isWindows
161
+ ? `context-inject${suffix}.cmd`
162
+ : `context-inject${suffix}.sh`;
163
+ const scriptPath = join(hooksDir, scriptName);
164
+ const replaceVars = (s) => s.replace(/\$MEMAX/g, bin.shell).replace(/\$AGENT/g, agentId);
165
+ if (isWindows) {
166
+ writeFileSync(scriptPath, replaceVars(WIN_HOOK));
167
+ }
168
+ else {
169
+ writeFileSync(scriptPath, replaceVars(UNIX_HOOK));
170
+ chmodSync(scriptPath, 0o755);
171
+ }
172
+ return scriptPath;
173
+ }
174
+ export function writeCaptureHookScript(bin, agentId = "") {
175
+ const hooksDir = join(homedir(), ".memax", "hooks");
176
+ mkdirSync(hooksDir, { recursive: true });
177
+ const isWindows = platform() === "win32";
178
+ const suffix = agentId ? `-${agentId}` : "";
179
+ const scriptName = isWindows
180
+ ? `session-capture${suffix}.cmd`
181
+ : `session-capture${suffix}.sh`;
182
+ const scriptPath = join(hooksDir, scriptName);
183
+ const replaceVars = (s) => s.replace(/\$MEMAX/g, bin.shell).replace(/\$AGENT/g, agentId);
184
+ if (isWindows) {
185
+ writeFileSync(scriptPath, replaceVars(WIN_CAPTURE_HOOK));
186
+ }
187
+ else {
188
+ writeFileSync(scriptPath, replaceVars(UNIX_CAPTURE_HOOK));
189
+ chmodSync(scriptPath, 0o755);
190
+ }
191
+ return scriptPath;
192
+ }
193
+ //# sourceMappingURL=setup-hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-hooks.js","sourceRoot":"","sources":["../../src/commands/setup-hooks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { AgentDef } from "./setup-types.js";
2
+ export declare const MEMAX_INSTRUCTION_BLOCK: string;
3
+ export declare function injectInstructions(filePath: string): void;
4
+ export declare function removeInstructions(filePath: string): boolean;
5
+ /** Resolve the agent's global skills directory, or null if skills aren't supported. */
6
+ export declare function agentSkillsDir(agent: AgentDef): string | null;
7
+ /**
8
+ * Merge bundled skills from assets/skills/ into the agent's global skills directory.
9
+ * When a file already exists and differs, prompt the user to choose.
10
+ * Returns the number of skills installed/updated.
11
+ */
12
+ export declare function installSkills(agent: AgentDef): Promise<number>;
13
+ /** Remove installed memax skills from the agent's global skills directory. */
14
+ export declare function removeSkills(agent: AgentDef): boolean;
15
+ /** Recursively collect all relative file paths under a directory. */
16
+ export declare function collectFiles(dir: string, base?: string): string[];
17
+ /** Ask the user what to do when a skill file conflicts. */
18
+ export declare function promptSkillConflict(agentName: string, skillName: string, filePath: string): Promise<"replace" | "skip">;
19
+ /** Resolve the bundled skills asset directory (assets/skills/). */
20
+ export declare function getSkillsAssetDir(): string;
21
+ //# sourceMappingURL=setup-instructions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-instructions.d.ts","sourceRoot":"","sources":["../../src/commands/setup-instructions.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAIjD,eAAO,MAAM,uBAAuB,QAqB5B,CAAC;AAIT,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAkBzD;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAa5D;AAID,uFAAuF;AACvF,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAU7D;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAsDpE;AAED,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAoBrD;AAED,qEAAqE;AACrE,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAWjE;AAED,2DAA2D;AAC3D,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,CAiB7B;AAED,mEAAmE;AACnE,wBAAgB,iBAAiB,IAAI,MAAM,CAM1C"}