memax-cli 0.1.0-alpha.8 → 0.1.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.
Files changed (197) hide show
  1. package/assets/skills/memax-memory/SKILL.md +173 -0
  2. package/dist/commands/agent-configs.d.ts +41 -0
  3. package/dist/commands/agent-configs.d.ts.map +1 -0
  4. package/dist/commands/agent-configs.js +1290 -0
  5. package/dist/commands/agent-configs.js.map +1 -0
  6. package/dist/commands/agent-configs.test.d.ts +2 -0
  7. package/dist/commands/agent-configs.test.d.ts.map +1 -0
  8. package/dist/commands/agent-configs.test.js +122 -0
  9. package/dist/commands/agent-configs.test.js.map +1 -0
  10. package/dist/commands/agent-sessions.d.ts +74 -0
  11. package/dist/commands/agent-sessions.d.ts.map +1 -0
  12. package/dist/commands/agent-sessions.js +1513 -0
  13. package/dist/commands/agent-sessions.js.map +1 -0
  14. package/dist/commands/agent-sessions.test.d.ts +2 -0
  15. package/dist/commands/agent-sessions.test.d.ts.map +1 -0
  16. package/dist/commands/agent-sessions.test.js +255 -0
  17. package/dist/commands/agent-sessions.test.js.map +1 -0
  18. package/dist/commands/agents.d.ts +3 -0
  19. package/dist/commands/agents.d.ts.map +1 -0
  20. package/dist/commands/agents.js +36 -0
  21. package/dist/commands/agents.js.map +1 -0
  22. package/dist/commands/ask.d.ts +15 -0
  23. package/dist/commands/ask.d.ts.map +1 -0
  24. package/dist/commands/ask.js +483 -0
  25. package/dist/commands/ask.js.map +1 -0
  26. package/dist/commands/auth.d.ts +7 -0
  27. package/dist/commands/auth.d.ts.map +1 -1
  28. package/dist/commands/auth.js +103 -8
  29. package/dist/commands/auth.js.map +1 -1
  30. package/dist/commands/capture.d.ts +19 -0
  31. package/dist/commands/capture.d.ts.map +1 -0
  32. package/dist/commands/capture.js +69 -0
  33. package/dist/commands/capture.js.map +1 -0
  34. package/dist/commands/config.d.ts +2 -0
  35. package/dist/commands/config.d.ts.map +1 -1
  36. package/dist/commands/config.js +13 -0
  37. package/dist/commands/config.js.map +1 -1
  38. package/dist/commands/delete.d.ts +2 -0
  39. package/dist/commands/delete.d.ts.map +1 -1
  40. package/dist/commands/delete.js +15 -18
  41. package/dist/commands/delete.js.map +1 -1
  42. package/dist/commands/dreams.d.ts +22 -0
  43. package/dist/commands/dreams.d.ts.map +1 -0
  44. package/dist/commands/dreams.js +251 -0
  45. package/dist/commands/dreams.js.map +1 -0
  46. package/dist/commands/dreams.test.d.ts +2 -0
  47. package/dist/commands/dreams.test.d.ts.map +1 -0
  48. package/dist/commands/dreams.test.js +39 -0
  49. package/dist/commands/dreams.test.js.map +1 -0
  50. package/dist/commands/hook.d.ts +2 -0
  51. package/dist/commands/hook.d.ts.map +1 -1
  52. package/dist/commands/hook.js +25 -103
  53. package/dist/commands/hook.js.map +1 -1
  54. package/dist/commands/hub.d.ts +37 -0
  55. package/dist/commands/hub.d.ts.map +1 -0
  56. package/dist/commands/hub.js +347 -0
  57. package/dist/commands/hub.js.map +1 -0
  58. package/dist/commands/hub.test.d.ts +2 -0
  59. package/dist/commands/hub.test.d.ts.map +1 -0
  60. package/dist/commands/hub.test.js +62 -0
  61. package/dist/commands/hub.test.js.map +1 -0
  62. package/dist/commands/import.d.ts +13 -0
  63. package/dist/commands/import.d.ts.map +1 -0
  64. package/dist/commands/import.js +257 -0
  65. package/dist/commands/import.js.map +1 -0
  66. package/dist/commands/import.test.d.ts +2 -0
  67. package/dist/commands/import.test.d.ts.map +1 -0
  68. package/dist/commands/import.test.js +11 -0
  69. package/dist/commands/import.test.js.map +1 -0
  70. package/dist/commands/list.d.ts +9 -2
  71. package/dist/commands/list.d.ts.map +1 -1
  72. package/dist/commands/list.js +118 -9
  73. package/dist/commands/list.js.map +1 -1
  74. package/dist/commands/list.test.d.ts +2 -0
  75. package/dist/commands/list.test.d.ts.map +1 -0
  76. package/dist/commands/list.test.js +20 -0
  77. package/dist/commands/list.test.js.map +1 -0
  78. package/dist/commands/login.d.ts +7 -1
  79. package/dist/commands/login.d.ts.map +1 -1
  80. package/dist/commands/login.js +81 -20
  81. package/dist/commands/login.js.map +1 -1
  82. package/dist/commands/mcp.d.ts.map +1 -1
  83. package/dist/commands/mcp.js +386 -65
  84. package/dist/commands/mcp.js.map +1 -1
  85. package/dist/commands/push.d.ts +6 -1
  86. package/dist/commands/push.d.ts.map +1 -1
  87. package/dist/commands/push.js +42 -8
  88. package/dist/commands/push.js.map +1 -1
  89. package/dist/commands/recall.d.ts +11 -1
  90. package/dist/commands/recall.d.ts.map +1 -1
  91. package/dist/commands/recall.js +228 -41
  92. package/dist/commands/recall.js.map +1 -1
  93. package/dist/commands/recall.test.d.ts +2 -0
  94. package/dist/commands/recall.test.d.ts.map +1 -0
  95. package/dist/commands/recall.test.js +31 -0
  96. package/dist/commands/recall.test.js.map +1 -0
  97. package/dist/commands/setup-hooks.d.ts +13 -0
  98. package/dist/commands/setup-hooks.d.ts.map +1 -0
  99. package/dist/commands/setup-hooks.js +193 -0
  100. package/dist/commands/setup-hooks.js.map +1 -0
  101. package/dist/commands/setup-instructions.d.ts +21 -0
  102. package/dist/commands/setup-instructions.d.ts.map +1 -0
  103. package/dist/commands/setup-instructions.js +172 -0
  104. package/dist/commands/setup-instructions.js.map +1 -0
  105. package/dist/commands/setup-mcp.d.ts +40 -0
  106. package/dist/commands/setup-mcp.d.ts.map +1 -0
  107. package/dist/commands/setup-mcp.js +414 -0
  108. package/dist/commands/setup-mcp.js.map +1 -0
  109. package/dist/commands/setup-types.d.ts +33 -0
  110. package/dist/commands/setup-types.d.ts.map +1 -0
  111. package/dist/commands/setup-types.js +60 -0
  112. package/dist/commands/setup-types.js.map +1 -0
  113. package/dist/commands/setup.d.ts +10 -1
  114. package/dist/commands/setup.d.ts.map +1 -1
  115. package/dist/commands/setup.js +216 -532
  116. package/dist/commands/setup.js.map +1 -1
  117. package/dist/commands/show.d.ts +5 -1
  118. package/dist/commands/show.d.ts.map +1 -1
  119. package/dist/commands/show.js +36 -14
  120. package/dist/commands/show.js.map +1 -1
  121. package/dist/commands/topic.d.ts +32 -0
  122. package/dist/commands/topic.d.ts.map +1 -0
  123. package/dist/commands/topic.js +265 -0
  124. package/dist/commands/topic.js.map +1 -0
  125. package/dist/commands/topic.test.d.ts +2 -0
  126. package/dist/commands/topic.test.d.ts.map +1 -0
  127. package/dist/commands/topic.test.js +114 -0
  128. package/dist/commands/topic.test.js.map +1 -0
  129. package/dist/index.js +35 -144
  130. package/dist/index.js.map +1 -1
  131. package/dist/lib/client.d.ts +10 -0
  132. package/dist/lib/client.d.ts.map +1 -0
  133. package/dist/lib/client.js +104 -0
  134. package/dist/lib/client.js.map +1 -0
  135. package/dist/lib/client.test.d.ts +2 -0
  136. package/dist/lib/client.test.d.ts.map +1 -0
  137. package/dist/lib/client.test.js +44 -0
  138. package/dist/lib/client.test.js.map +1 -0
  139. package/dist/lib/config.d.ts +43 -0
  140. package/dist/lib/config.d.ts.map +1 -1
  141. package/dist/lib/config.js +72 -1
  142. package/dist/lib/config.js.map +1 -1
  143. package/dist/lib/credentials.d.ts +3 -0
  144. package/dist/lib/credentials.d.ts.map +1 -1
  145. package/dist/lib/credentials.js +24 -2
  146. package/dist/lib/credentials.js.map +1 -1
  147. package/dist/lib/hubs.d.ts +7 -0
  148. package/dist/lib/hubs.d.ts.map +1 -0
  149. package/dist/lib/hubs.js +33 -0
  150. package/dist/lib/hubs.js.map +1 -0
  151. package/dist/lib/hubs.test.d.ts +2 -0
  152. package/dist/lib/hubs.test.d.ts.map +1 -0
  153. package/dist/lib/hubs.test.js +58 -0
  154. package/dist/lib/hubs.test.js.map +1 -0
  155. package/dist/lib/project-context.d.ts +56 -0
  156. package/dist/lib/project-context.d.ts.map +1 -0
  157. package/dist/lib/project-context.js +225 -0
  158. package/dist/lib/project-context.js.map +1 -0
  159. package/dist/lib/project-context.test.d.ts +2 -0
  160. package/dist/lib/project-context.test.d.ts.map +1 -0
  161. package/dist/lib/project-context.test.js +75 -0
  162. package/dist/lib/project-context.test.js.map +1 -0
  163. package/dist/lib/prompt.d.ts +7 -0
  164. package/dist/lib/prompt.d.ts.map +1 -0
  165. package/dist/lib/prompt.js +41 -0
  166. package/dist/lib/prompt.js.map +1 -0
  167. package/dist/lib/trash.d.ts +6 -0
  168. package/dist/lib/trash.d.ts.map +1 -0
  169. package/dist/lib/trash.js +28 -0
  170. package/dist/lib/trash.js.map +1 -0
  171. package/package.json +17 -13
  172. package/.vscode/mcp.json +0 -8
  173. package/dist/commands/sync.d.ts +0 -12
  174. package/dist/commands/sync.d.ts.map +0 -1
  175. package/dist/commands/sync.js +0 -414
  176. package/dist/commands/sync.js.map +0 -1
  177. package/dist/lib/api.d.ts +0 -4
  178. package/dist/lib/api.d.ts.map +0 -1
  179. package/dist/lib/api.js +0 -95
  180. package/dist/lib/api.js.map +0 -1
  181. package/src/commands/auth.ts +0 -92
  182. package/src/commands/config.ts +0 -27
  183. package/src/commands/delete.ts +0 -58
  184. package/src/commands/hook.ts +0 -243
  185. package/src/commands/list.ts +0 -38
  186. package/src/commands/login.ts +0 -164
  187. package/src/commands/mcp.ts +0 -405
  188. package/src/commands/push.ts +0 -137
  189. package/src/commands/recall.ts +0 -163
  190. package/src/commands/setup.ts +0 -1075
  191. package/src/commands/show.ts +0 -35
  192. package/src/commands/sync.ts +0 -506
  193. package/src/index.ts +0 -213
  194. package/src/lib/api.ts +0 -110
  195. package/src/lib/config.ts +0 -61
  196. package/src/lib/credentials.ts +0 -42
  197. package/tsconfig.json +0 -9
@@ -0,0 +1,257 @@
1
+ import chalk from "chalk";
2
+ import { readFileSync, readdirSync, statSync, watch, existsSync, } from "node:fs";
3
+ import { join, relative, extname, resolve } from "node:path";
4
+ import { getClient } from "../lib/client.js";
5
+ import { normalizeFilePath, detectProjectContext, } from "../lib/project-context.js";
6
+ import { listSyncSources, updateSyncSourceRun } from "../lib/config.js";
7
+ import { confirm } from "../lib/prompt.js";
8
+ const DEFAULT_IGNORE = new Set([
9
+ "node_modules",
10
+ ".git",
11
+ ".next",
12
+ "dist",
13
+ "__pycache__",
14
+ ".env",
15
+ ".env.local",
16
+ ".DS_Store",
17
+ ]);
18
+ const SUPPORTED_EXTENSIONS = new Set([
19
+ ".md",
20
+ ".txt",
21
+ ".ts",
22
+ ".tsx",
23
+ ".js",
24
+ ".jsx",
25
+ ".go",
26
+ ".py",
27
+ ".rs",
28
+ ".yaml",
29
+ ".yml",
30
+ ".json",
31
+ ".toml",
32
+ ".sh",
33
+ ".bash",
34
+ ".zsh",
35
+ ".css",
36
+ ".html",
37
+ ".sql",
38
+ ".graphql",
39
+ ".proto",
40
+ ".dockerfile",
41
+ ]);
42
+ // Duplicated in agent-configs.ts. Tiny + private; extracting to a
43
+ // shared lib would create a third file for an 8-line helper.
44
+ function formatAge(dateStr) {
45
+ const ms = Date.now() - new Date(dateStr).getTime();
46
+ const mins = Math.floor(ms / 60000);
47
+ if (mins < 60)
48
+ return `${mins}m ago`;
49
+ const hours = Math.floor(mins / 60);
50
+ if (hours < 24)
51
+ return `${hours}h ago`;
52
+ const days = Math.floor(hours / 24);
53
+ return `${days}d ago`;
54
+ }
55
+ export async function importCommand(directory, options) {
56
+ const dir = directory ?? ".";
57
+ const syncRoot = resolve(dir);
58
+ const customIgnore = options.ignore
59
+ ? new Set(options.ignore.split(",").map((s) => s.trim()))
60
+ : new Set();
61
+ const ignoreSet = new Set([...DEFAULT_IGNORE, ...customIgnore]);
62
+ const ignorePatterns = [...customIgnore].sort();
63
+ const projectContext = detectProjectContext(syncRoot);
64
+ console.log(chalk.blue("Scanning"), dir);
65
+ const files = walkDir(syncRoot, ignoreSet);
66
+ if (files.length === 0) {
67
+ console.log(chalk.yellow("No supported files found."));
68
+ updateSyncSourceRun(syncRoot, {
69
+ ignorePatterns,
70
+ defaultBoundary: options.boundary,
71
+ mode: options.watch ? "watch" : "manual",
72
+ scanCount: 0,
73
+ pushed: 0,
74
+ skipped: 0,
75
+ errors: 0,
76
+ });
77
+ return;
78
+ }
79
+ console.log(chalk.gray(`Found ${files.length} files to import`));
80
+ // Confirm if many files (>10) unless -y is passed
81
+ if (files.length > 10 && !options.yes) {
82
+ console.log(chalk.yellow(`\n This will push ${files.length} files. Continue? (y/N) `));
83
+ const confirmed = await confirm(" ");
84
+ if (!confirmed) {
85
+ console.log(chalk.gray(" Cancelled.\n"));
86
+ return;
87
+ }
88
+ }
89
+ console.log();
90
+ let pushed = 0;
91
+ let skipped = 0;
92
+ let errors = 0;
93
+ for (const file of files) {
94
+ const result = await pushFile(file, syncRoot, projectContext, options);
95
+ if (result === "pushed")
96
+ pushed++;
97
+ else if (result === "skipped")
98
+ skipped++;
99
+ else if (result === "error")
100
+ errors++;
101
+ }
102
+ updateSyncSourceRun(syncRoot, {
103
+ ignorePatterns,
104
+ defaultBoundary: options.boundary,
105
+ mode: options.watch ? "watch" : "manual",
106
+ scanCount: files.length,
107
+ pushed,
108
+ skipped,
109
+ errors,
110
+ });
111
+ console.log();
112
+ console.log(chalk.blue(`Imported ${pushed} files`), skipped > 0 ? chalk.gray(`(${skipped} skipped)`) : "", errors > 0 ? chalk.red(`(${errors} errors)`) : "");
113
+ console.log(chalk.gray(" Missing local files are retained in Memax until removed explicitly."));
114
+ if (options.watch) {
115
+ console.log(chalk.cyan(`\nWatching ${dir} for changes... (Ctrl+C to stop)`));
116
+ let debounceTimer = null;
117
+ const pendingChanges = new Set();
118
+ watch(syncRoot, { recursive: true }, (_eventType, filename) => {
119
+ if (!filename)
120
+ return;
121
+ const fullPath = join(syncRoot, filename);
122
+ if (!isSupportedFile(filename) || isIgnored(filename, ignoreSet))
123
+ return;
124
+ pendingChanges.add(fullPath);
125
+ if (debounceTimer)
126
+ clearTimeout(debounceTimer);
127
+ debounceTimer = setTimeout(async () => {
128
+ for (const file of pendingChanges) {
129
+ if (!existsSync(file)) {
130
+ console.log(chalk.gray(" ~"), buildSyncSourcePath(syncRoot, file), chalk.gray("[deleted locally, retained in Memax]"));
131
+ continue;
132
+ }
133
+ await pushFile(file, syncRoot, projectContext, options);
134
+ }
135
+ pendingChanges.clear();
136
+ }, 500);
137
+ });
138
+ }
139
+ }
140
+ async function pushFile(file, syncRoot, projectContext, options) {
141
+ try {
142
+ const content = readFileSync(file, "utf-8");
143
+ if (!content.trim())
144
+ return "skipped";
145
+ const relPath = buildSyncSourcePath(syncRoot, file);
146
+ const ext = extname(file);
147
+ const contentType = ext === ".md"
148
+ ? "markdown"
149
+ : ext === ".json" || ext === ".yaml" || ext === ".yml"
150
+ ? "structured"
151
+ : "code";
152
+ const memory = await getClient().push(content, {
153
+ title: relPath,
154
+ source: "import",
155
+ sourcePath: relPath,
156
+ contentType,
157
+ projectContext,
158
+ });
159
+ console.log(chalk.green(" +"), relPath, chalk.gray(`[${memory.kind}/${memory.stability}]`));
160
+ return "pushed";
161
+ }
162
+ catch (err) {
163
+ console.log(chalk.red(" x"), file, chalk.gray(err.message));
164
+ return "error";
165
+ }
166
+ }
167
+ export function buildSyncSourcePath(syncRoot, file) {
168
+ const relativePath = relative(syncRoot, file);
169
+ if (!relativePath ||
170
+ relativePath.startsWith("..") ||
171
+ relativePath === "." ||
172
+ resolve(syncRoot, relativePath) !== resolve(file)) {
173
+ throw new Error("file is outside sync root");
174
+ }
175
+ return normalizeFilePath(relativePath);
176
+ }
177
+ export function importStatusCommand() {
178
+ const sources = listSyncSources();
179
+ console.log(chalk.bold("\n Memax Import Status\n"));
180
+ if (sources.length === 0) {
181
+ console.log(chalk.gray(" No import sources recorded yet."));
182
+ console.log(chalk.gray(" Run: memax import <dir>\n"));
183
+ return;
184
+ }
185
+ for (const source of sources) {
186
+ console.log(` ${chalk.cyan(source.root_path)}`);
187
+ console.log(` kind ${chalk.gray(source.kind)}`);
188
+ console.log(` deletion policy ${chalk.gray("retain missing files in Memax")}`);
189
+ if (source.default_boundary) {
190
+ console.log(` boundary ${chalk.gray(source.default_boundary)}`);
191
+ }
192
+ if (source.ignore_patterns.length > 0) {
193
+ console.log(` ignore ${chalk.gray(source.ignore_patterns.join(", "))}`);
194
+ }
195
+ if (source.last_sync_at) {
196
+ console.log(` last import ${chalk.gray(formatAge(source.last_sync_at))} (${chalk.gray(source.last_mode ?? "manual")})`);
197
+ }
198
+ if (source.last_scan_count !== undefined) {
199
+ console.log(` last run ${chalk.gray(`${source.last_scan_count} scanned, ${source.last_pushed ?? 0} pushed, ${source.last_skipped ?? 0} skipped, ${source.last_errors ?? 0} errors`)}`);
200
+ }
201
+ console.log();
202
+ }
203
+ }
204
+ function isSupportedFile(filename) {
205
+ return SUPPORTED_EXTENSIONS.has(extname(filename));
206
+ }
207
+ function isIgnored(filename, ignoreSet) {
208
+ const parts = filename.split(/[/\\]/);
209
+ return parts.some((part) => ignoreSet.has(part) || part.startsWith("."));
210
+ }
211
+ function walkDir(dir, ignore) {
212
+ const files = [];
213
+ function walk(currentDir) {
214
+ let entries;
215
+ try {
216
+ entries = readdirSync(currentDir);
217
+ }
218
+ catch {
219
+ return;
220
+ }
221
+ for (const entry of entries) {
222
+ if (ignore.has(entry) || entry.startsWith("."))
223
+ continue;
224
+ const fullPath = join(currentDir, entry);
225
+ let stat;
226
+ try {
227
+ stat = statSync(fullPath);
228
+ }
229
+ catch {
230
+ continue;
231
+ }
232
+ if (stat.isDirectory()) {
233
+ walk(fullPath);
234
+ }
235
+ else if (stat.isFile() && SUPPORTED_EXTENSIONS.has(extname(entry))) {
236
+ files.push(fullPath);
237
+ }
238
+ }
239
+ }
240
+ walk(dir);
241
+ return files;
242
+ }
243
+ export function registerImportCommand(program) {
244
+ const importCmd = program
245
+ .command("import [directory]")
246
+ .description("Import a directory of files into your Memax workspace")
247
+ .option("-w, --watch", "Watch for changes (coming soon)")
248
+ .option("-b, --boundary <level>", "Visibility level: private, team, org", "private")
249
+ .option("--ignore <patterns>", "Comma-separated directories to ignore")
250
+ .option("-y, --yes", "Skip confirmation for large imports")
251
+ .action(importCommand);
252
+ importCmd
253
+ .command("status")
254
+ .description("Show registered import sources and last run status")
255
+ .action(importStatusCommand);
256
+ }
257
+ //# sourceMappingURL=import.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import.js","sourceRoot":"","sources":["../../src/commands/import.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=import.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import.test.d.ts","sourceRoot":"","sources":["../../src/commands/import.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { buildSyncSourcePath } from "./import.js";
3
+ describe("buildSyncSourcePath", () => {
4
+ it("uses the declared sync root rather than process cwd", () => {
5
+ expect(buildSyncSourcePath("/workspaces/memax/docs", "/workspaces/memax/docs/adr/001.md")).toBe("adr/001.md");
6
+ });
7
+ it("rejects files outside the sync root", () => {
8
+ expect(() => buildSyncSourcePath("/workspaces/memax/docs", "/workspaces/memax/README.md")).toThrow("file is outside sync root");
9
+ });
10
+ });
11
+ //# sourceMappingURL=import.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import.test.js","sourceRoot":"","sources":["../../src/commands/import.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,CACJ,mBAAmB,CACjB,wBAAwB,EACxB,mCAAmC,CACpC,CACF,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,CAAC,GAAG,EAAE,CACV,mBAAmB,CACjB,wBAAwB,EACxB,6BAA6B,CAC9B,CACF,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,8 +1,15 @@
1
+ import { Command } from "commander";
1
2
  interface ListOptions {
2
- category?: string;
3
- state?: string;
3
+ sort?: string;
4
4
  limit?: string;
5
+ all?: boolean;
6
+ hub?: string;
7
+ cursor?: string;
8
+ format?: string;
9
+ topicId?: string;
5
10
  }
11
+ export declare function buildNextPageCommand(options: ListOptions, nextCursor: string): string;
6
12
  export declare function listCommand(options: ListOptions): Promise<void>;
13
+ export declare function registerListCommand(program: Command): void;
7
14
  export {};
8
15
  //# sourceMappingURL=list.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAIA,UAAU,WAAW;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BrE"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,UAAU,WAAW;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAWD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,GACjB,MAAM,CAUR;AAiCD,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA4FrE;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAY1D"}
@@ -1,18 +1,114 @@
1
1
  import chalk from "chalk";
2
- import { apiGet } from "../lib/api.js";
2
+ import { getClient } from "../lib/client.js";
3
+ import { getActiveHubID } from "../lib/config.js";
4
+ import { resolveHubID } from "../lib/hubs.js";
5
+ import { buildTopicPathMap, resolveTopicReference } from "./topic.js";
6
+ function parseLimit(raw) {
7
+ if (!raw)
8
+ return 20;
9
+ const limit = Number.parseInt(raw, 10);
10
+ if (!Number.isFinite(limit) || limit <= 0) {
11
+ throw new Error(`Invalid --limit value: ${raw}`);
12
+ }
13
+ return limit;
14
+ }
15
+ export function buildNextPageCommand(options, nextCursor) {
16
+ const parts = ["memax", "list"];
17
+ if (options.sort && options.sort !== "newest")
18
+ parts.push("--sort", options.sort);
19
+ if (options.limit && options.limit !== "20")
20
+ parts.push("--limit", options.limit);
21
+ if (options.hub)
22
+ parts.push("--hub", options.hub);
23
+ if (options.topicId)
24
+ parts.push("--topic-id", options.topicId);
25
+ parts.push("--cursor", `'${nextCursor}'`);
26
+ return parts.join(" ");
27
+ }
28
+ function printTextList(memories, total, topicPaths) {
29
+ console.log(chalk.blue(`${memories.length} memor${memories.length > 1 ? "ies" : "y"}`), chalk.gray(`(${total} total)`));
30
+ console.log();
31
+ for (const memory of memories) {
32
+ console.log(chalk.bold(memory.title), chalk.gray(`[${memory.kind} · ${memory.stability}]`), chalk.gray(`· ${memory.source}`));
33
+ const topicPath = memory.topic_id
34
+ ? topicPaths.get(memory.topic_id)
35
+ : undefined;
36
+ if (topicPath) {
37
+ console.log(chalk.gray(` topic: ${topicPath}`));
38
+ }
39
+ console.log(chalk.gray(` id: ${memory.id}`));
40
+ }
41
+ }
42
+ function printJSON(result) {
43
+ process.stdout.write(`${JSON.stringify(result, null, 2)}\n`);
44
+ }
3
45
  export async function listCommand(options) {
4
46
  try {
5
- const notes = (await apiGet("/v1/notes")) ?? [];
6
- if (notes.length === 0) {
7
- console.log(chalk.yellow("No notes yet. Push your first one:"));
47
+ const limit = parseLimit(options.limit);
48
+ const sort = (options.sort ?? "newest");
49
+ const format = options.format ?? "text";
50
+ if (format !== "text" && format !== "json") {
51
+ throw new Error(`Unsupported --format value: ${format}`);
52
+ }
53
+ const hubId = options.hub
54
+ ? await resolveHubID(options.hub)
55
+ : getActiveHubID() || undefined;
56
+ if (options.hub && !hubId) {
57
+ throw new Error("Hub not found or not accessible. Run `memax hub list` to see available hubs.");
58
+ }
59
+ const client = getClient();
60
+ let topicId = options.topicId;
61
+ if (topicId) {
62
+ if (!hubId) {
63
+ throw new Error("Topic lookup requires a hub. Set an active hub or pass --hub.");
64
+ }
65
+ const topics = await client.topics.list(hubId);
66
+ topicId = resolveTopicReference(topics.topics, topicId);
67
+ }
68
+ const memories = [];
69
+ let cursor = options.cursor ?? "";
70
+ let nextCursor = "";
71
+ let total = 0;
72
+ do {
73
+ const res = await client.memories.list({
74
+ limit,
75
+ sort,
76
+ cursor: cursor || undefined,
77
+ hubId,
78
+ topicId,
79
+ });
80
+ memories.push(...(res.memories ?? []));
81
+ nextCursor = res.next_cursor;
82
+ total = res.total;
83
+ cursor = nextCursor;
84
+ if (!options.all)
85
+ break;
86
+ } while (cursor);
87
+ const result = {
88
+ memories,
89
+ next_cursor: options.all ? "" : nextCursor,
90
+ has_more: options.all ? false : nextCursor !== "",
91
+ total,
92
+ };
93
+ const topicPaths = hubId && memories.some((memory) => !!memory.topic_id)
94
+ ? buildTopicPathMap((await client.topics.list(hubId)).topics)
95
+ : new Map();
96
+ if (format === "json") {
97
+ printJSON(result);
98
+ return;
99
+ }
100
+ if (memories.length === 0) {
101
+ console.log(chalk.yellow("No memories yet. Push your first one:"));
8
102
  console.log(chalk.gray(" memax push --file ./README.md"));
9
103
  return;
10
104
  }
11
- console.log(chalk.blue(`${notes.length} note${notes.length > 1 ? "s" : ""}`));
12
- console.log();
13
- for (const note of notes) {
14
- console.log(chalk.bold(note.title), chalk.gray(`[${note.category}]`), chalk.gray(`· ${note.source}`));
15
- console.log(chalk.gray(` id: ${note.id}`));
105
+ printTextList(memories, total, topicPaths);
106
+ if (result.has_more) {
107
+ console.log();
108
+ console.log(chalk.gray(` Showing ${memories.length} of ${total}.`));
109
+ console.log(chalk.gray(` Next cursor: ${result.next_cursor}`));
110
+ console.log(chalk.gray(` Next page: ${buildNextPageCommand(options, result.next_cursor)}`));
111
+ console.log(chalk.gray(" Use --all to fetch every page."));
16
112
  }
17
113
  }
18
114
  catch (err) {
@@ -20,4 +116,17 @@ export async function listCommand(options) {
20
116
  process.exit(1);
21
117
  }
22
118
  }
119
+ export function registerListCommand(program) {
120
+ program
121
+ .command("list")
122
+ .description("List your memories")
123
+ .option("-s, --sort <sort>", "Sort by: newest, relevant", "newest")
124
+ .option("-l, --limit <n>", "Max results per page", "20")
125
+ .option("--cursor <cursor>", "Continue from a pagination cursor")
126
+ .option("--hub <slug>", "List memories from a specific hub only")
127
+ .option("--topic-id <id>", "Restrict results to memories in this topic")
128
+ .option("--format <format>", "Output format: text, json", "text")
129
+ .option("--all", "Fetch all pages (not just the first)")
130
+ .action(listCommand);
131
+ }
23
132
  //# sourceMappingURL=list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AASvC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAoB;IACpD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,CAAC,MAAM,MAAM,CAAS,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;QAExD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC,CAAC;YAChE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAC;YAC3D,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,QAAQ,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACjE,CAAC;QACF,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EACtB,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,EAChC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC,CAC/B,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAiB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=list.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.test.d.ts","sourceRoot":"","sources":["../../src/commands/list.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,20 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { buildNextPageCommand } from "./list.js";
3
+ describe("buildNextPageCommand", () => {
4
+ it("carries relevant options into the next-page command", () => {
5
+ const cmd = buildNextPageCommand({
6
+ sort: "relevant",
7
+ limit: "50",
8
+ hub: "team-hub",
9
+ }, "12|2026-04-08T10:00:00Z");
10
+ expect(cmd).toBe("memax list --sort relevant --limit 50 --hub team-hub --cursor '12|2026-04-08T10:00:00Z'");
11
+ });
12
+ it("preserves --topic-id across pages", () => {
13
+ const cmd = buildNextPageCommand({
14
+ hub: "team-hub",
15
+ topicId: "01H9X0ABCDEF",
16
+ }, "12|2026-04-08T10:00:00Z");
17
+ expect(cmd).toBe("memax list --hub team-hub --topic-id 01H9X0ABCDEF --cursor '12|2026-04-08T10:00:00Z'");
18
+ });
19
+ });
20
+ //# sourceMappingURL=list.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.test.js","sourceRoot":"","sources":["../../src/commands/list.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAEjD,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,GAAG,GAAG,oBAAoB,CAC9B;YACE,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,IAAI;YACX,GAAG,EAAE,UAAU;SAChB,EACD,yBAAyB,CAC1B,CAAC;QAEF,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CACd,yFAAyF,CAC1F,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,GAAG,GAAG,oBAAoB,CAC9B;YACE,GAAG,EAAE,UAAU;YACf,OAAO,EAAE,cAAc;SACxB,EACD,yBAAyB,CAC1B,CAAC;QAEF,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CACd,sFAAsF,CACvF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,4 +1,10 @@
1
- export declare function loginCommand(): Promise<void>;
1
+ import { Command } from "commander";
2
+ interface LoginOptions {
3
+ provider?: string;
4
+ }
5
+ export declare function loginCommand(options?: LoginOptions): Promise<void>;
2
6
  export declare function logoutCommand(): Promise<void>;
3
7
  export declare function whoamiCommand(): Promise<void>;
8
+ export declare function registerLoginCommands(program: Command): void;
9
+ export {};
4
10
  //# sourceMappingURL=login.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAUA,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAsHlD;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAInD;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAgBnD"}
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,UAAU,YAAY;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,YAAY,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkI5E;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAInD;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAgDnD;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiB5D"}