memax-cli 0.1.0-alpha.37 → 0.1.0-alpha.39

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 (50) hide show
  1. package/dist/commands/auth.d.ts.map +1 -1
  2. package/dist/commands/auth.js +6 -1
  3. package/dist/commands/auth.js.map +1 -1
  4. package/dist/commands/dreams.d.ts +20 -0
  5. package/dist/commands/dreams.d.ts.map +1 -0
  6. package/dist/commands/dreams.js +180 -0
  7. package/dist/commands/dreams.js.map +1 -0
  8. package/dist/commands/dreams.test.d.ts +2 -0
  9. package/dist/commands/dreams.test.d.ts.map +1 -0
  10. package/dist/commands/dreams.test.js +39 -0
  11. package/dist/commands/dreams.test.js.map +1 -0
  12. package/dist/commands/hub.d.ts +25 -0
  13. package/dist/commands/hub.d.ts.map +1 -1
  14. package/dist/commands/hub.js +198 -9
  15. package/dist/commands/hub.js.map +1 -1
  16. package/dist/commands/hub.test.d.ts +2 -0
  17. package/dist/commands/hub.test.d.ts.map +1 -0
  18. package/dist/commands/hub.test.js +62 -0
  19. package/dist/commands/hub.test.js.map +1 -0
  20. package/dist/commands/list.d.ts.map +1 -1
  21. package/dist/commands/list.js +10 -4
  22. package/dist/commands/list.js.map +1 -1
  23. package/dist/commands/push.d.ts.map +1 -1
  24. package/dist/commands/push.js +7 -1
  25. package/dist/commands/push.js.map +1 -1
  26. package/dist/commands/recall.d.ts.map +1 -1
  27. package/dist/commands/recall.js +12 -5
  28. package/dist/commands/recall.js.map +1 -1
  29. package/dist/commands/setup-mcp.d.ts.map +1 -1
  30. package/dist/commands/setup-mcp.js +9 -4
  31. package/dist/commands/setup-mcp.js.map +1 -1
  32. package/dist/commands/show.js +2 -2
  33. package/dist/commands/show.js.map +1 -1
  34. package/dist/commands/topic.d.ts +8 -1
  35. package/dist/commands/topic.d.ts.map +1 -1
  36. package/dist/commands/topic.js +84 -9
  37. package/dist/commands/topic.js.map +1 -1
  38. package/dist/commands/topic.test.js +59 -1
  39. package/dist/commands/topic.test.js.map +1 -1
  40. package/dist/index.js +63 -5
  41. package/dist/index.js.map +1 -1
  42. package/dist/lib/hubs.d.ts +7 -0
  43. package/dist/lib/hubs.d.ts.map +1 -0
  44. package/dist/lib/hubs.js +33 -0
  45. package/dist/lib/hubs.js.map +1 -0
  46. package/dist/lib/hubs.test.d.ts +2 -0
  47. package/dist/lib/hubs.test.d.ts.map +1 -0
  48. package/dist/lib/hubs.test.js +57 -0
  49. package/dist/lib/hubs.test.js.map +1 -0
  50. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAGA,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GACvC,OAAO,CAAC,IAAI,CAAC,CAgCf;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAiCrD;AAED,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQhE"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAIA,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GACvC,OAAO,CAAC,IAAI,CAAC,CAsCf;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAiCrD;AAED,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQhE"}
@@ -1,11 +1,16 @@
1
1
  import chalk from "chalk";
2
2
  import { getClient } from "../lib/client.js";
3
+ import { resolveHubID } from "../lib/hubs.js";
3
4
  export async function createKeyCommand(name, opts) {
4
5
  const expiresInDays = opts.expires ? parseInt(opts.expires, 10) : 0;
5
6
  try {
7
+ const hubId = opts.hub ? await resolveHubID(opts.hub) : undefined;
8
+ if (opts.hub && !hubId) {
9
+ throw new Error("Hub not found or not accessible. Run `memax hub list` to see available hubs.");
10
+ }
6
11
  const result = await getClient().auth.createKey({
7
12
  name,
8
- hubId: opts.hub || undefined,
13
+ hubId,
9
14
  expiresInDays: expiresInDays || undefined,
10
15
  });
11
16
  console.log("\n API key created successfully.\n");
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAAY,EACZ,IAAwC;IAExC,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpE,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAClE,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,8EAA8E,CAC/E,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9C,IAAI;YACJ,KAAK;YACL,aAAa,EAAE,aAAa,IAAI,SAAS;SAC1C,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CACT,iBAAiB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CACpF,CAAC;QACF,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CACT,iBAAiB,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,kBAAkB,EAAE,EAAE,CACpE,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,CAAC,GAAG,CACT,OAAO,KAAK,CAAC,MAAM,CAAC,mDAAmD,CAAC,IAAI,CAC7E,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,4BAA4B,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,+BAAgC,GAAa,CAAC,OAAO,IAAI,CAAC,CAAC;QACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,SAAS,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAE/C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CACT,kEAAkE,CACnE,CAAC;YACF,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC/B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU;gBAC5B,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,kBAAkB,EAAE;gBAC/C,CAAC,CAAC,OAAO,CAAC;YACZ,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS;gBAC5B,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,kBAAkB,EAAE;gBAC9C,CAAC,CAAC,OAAO,CAAC;YACZ,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM;gBACtB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,CAAC;gBAChC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC1B,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1E,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAI,KAAK,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC;YACjE,OAAO,CAAC,GAAG,CACT,WAAW,GAAG,CAAC,EAAE,cAAc,OAAO,gBAAgB,QAAQ,EAAE,CACjE,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,8BAA+B,GAAa,CAAC,OAAO,IAAI,CAAC,CAAC;QACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EAAU;IAC/C,IAAI,CAAC;QACH,MAAM,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,+BAAgC,GAAa,CAAC,OAAO,IAAI,CAAC,CAAC;QACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { DreamRun } from "memax-sdk";
2
+ interface DreamsListOptions {
3
+ limit?: string;
4
+ hub?: string;
5
+ format?: string;
6
+ }
7
+ interface DreamsReportOptions {
8
+ hub?: string;
9
+ format?: string;
10
+ }
11
+ interface DreamsTriggerOptions {
12
+ hub?: string;
13
+ format?: string;
14
+ }
15
+ export declare function summarizeRun(run: DreamRun): string[];
16
+ export declare function dreamsListCommand(options: DreamsListOptions): Promise<void>;
17
+ export declare function dreamsReportCommand(options: DreamsReportOptions): Promise<void>;
18
+ export declare function dreamsTriggerCommand(options: DreamsTriggerOptions): Promise<void>;
19
+ export {};
20
+ //# sourceMappingURL=dreams.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dreams.d.ts","sourceRoot":"","sources":["../../src/commands/dreams.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAK1C,UAAU,iBAAiB;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,mBAAmB;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,oBAAoB;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAWD,wBAAgB,YAAY,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM,EAAE,CAYpD;AAwFD,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CA8Cf;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CA0Bf;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAgCf"}
@@ -0,0 +1,180 @@
1
+ import chalk from "chalk";
2
+ import { getClient } from "../lib/client.js";
3
+ import { getActiveHubID } from "../lib/config.js";
4
+ import { resolveHubID } from "../lib/hubs.js";
5
+ function parseLimit(raw) {
6
+ if (!raw)
7
+ return 10;
8
+ const limit = Number.parseInt(raw, 10);
9
+ if (!Number.isFinite(limit) || limit <= 0) {
10
+ throw new Error(`Invalid --limit value: ${raw}`);
11
+ }
12
+ return limit;
13
+ }
14
+ export function summarizeRun(run) {
15
+ const parts = [];
16
+ if (run.duplicates_merged > 0)
17
+ parts.push(`${run.duplicates_merged} merged`);
18
+ if (run.contradictions_found > 0)
19
+ parts.push(`${run.contradictions_found} contradictions`);
20
+ if (run.memories_archived > 0)
21
+ parts.push(`${run.memories_archived} archived`);
22
+ if (run.memories_organized > 0)
23
+ parts.push(`${run.memories_organized} organized`);
24
+ if ((run.topics_restructured ?? 0) > 0)
25
+ parts.push(`${run.topics_restructured} restructured`);
26
+ return parts;
27
+ }
28
+ function printRun(run) {
29
+ const statusColor = run.status === "completed"
30
+ ? chalk.green
31
+ : run.status === "failed"
32
+ ? chalk.red
33
+ : chalk.yellow;
34
+ const finished = run.finished_at
35
+ ? new Date(run.finished_at).toISOString()
36
+ : "in progress";
37
+ const summary = summarizeRun(run);
38
+ console.log(chalk.bold(run.id), statusColor(`[${run.status}]`), chalk.gray(`· started ${new Date(run.started_at).toISOString()}`));
39
+ console.log(chalk.gray(` finished: ${finished}`));
40
+ if (run.mode) {
41
+ console.log(chalk.gray(` mode: ${run.mode}`));
42
+ }
43
+ console.log(chalk.gray(` scanned: ${run.memories_scanned}`));
44
+ if (summary.length > 0) {
45
+ console.log(chalk.gray(` result: ${summary.join(", ")}`));
46
+ }
47
+ else {
48
+ console.log(chalk.gray(" result: no changes"));
49
+ }
50
+ if (run.report) {
51
+ const firstLine = run.report.split("\n").find((line) => line.trim());
52
+ if (firstLine) {
53
+ console.log(chalk.gray(` report: ${firstLine}`));
54
+ }
55
+ }
56
+ }
57
+ function resolveFinishedAt(run) {
58
+ return run.finished_at
59
+ ? new Date(run.finished_at).toISOString()
60
+ : "in progress";
61
+ }
62
+ function printReport(report) {
63
+ if (!report.has_run || !report.run) {
64
+ console.log(chalk.yellow(report.message ?? "No dream runs yet for this hub."));
65
+ return;
66
+ }
67
+ const run = report.run;
68
+ const summary = summarizeRun(run);
69
+ console.log(chalk.bold(run.id), chalk.gray(`[${run.status}]`));
70
+ console.log(chalk.gray(` started: ${new Date(run.started_at).toISOString()}`));
71
+ console.log(chalk.gray(` finished: ${resolveFinishedAt(run)}`));
72
+ if (run.mode) {
73
+ console.log(chalk.gray(` mode: ${run.mode}`));
74
+ }
75
+ console.log(chalk.gray(` scanned: ${run.memories_scanned}`));
76
+ console.log(chalk.gray(` pending reviews: ${report.pending_reviews ?? 0}`));
77
+ if (summary.length > 0) {
78
+ console.log(chalk.gray(` result: ${summary.join(", ")}`));
79
+ }
80
+ console.log();
81
+ if (run.report) {
82
+ console.log(run.report);
83
+ }
84
+ if (report.actions && report.actions.length > 0) {
85
+ console.log();
86
+ console.log(chalk.gray("Actions"));
87
+ for (const action of report.actions) {
88
+ console.log(chalk.gray(` • ${action.action_type}: ${action.reason}`));
89
+ }
90
+ }
91
+ }
92
+ export async function dreamsListCommand(options) {
93
+ try {
94
+ const limit = parseLimit(options.limit);
95
+ const format = options.format ?? "text";
96
+ if (format !== "text" && format !== "json") {
97
+ throw new Error(`Unsupported --format value: ${format}`);
98
+ }
99
+ const hubId = options.hub
100
+ ? await resolveHubID(options.hub)
101
+ : getActiveHubID() || undefined;
102
+ if (options.hub && !hubId) {
103
+ throw new Error("Hub not found or not accessible. Run `memax hub list` to see available hubs.");
104
+ }
105
+ const runs = await getClient().dreams.list(limit, hubId);
106
+ if (format === "json") {
107
+ process.stdout.write(`${JSON.stringify(runs, null, 2)}\n`);
108
+ return;
109
+ }
110
+ if (runs.length === 0) {
111
+ console.log(chalk.yellow("No dream runs yet for this hub."));
112
+ console.log(chalk.gray(" Dreams run automatically at night after enough knowledge accumulates."));
113
+ return;
114
+ }
115
+ console.log(chalk.blue(`${runs.length} dream run${runs.length === 1 ? "" : "s"}`));
116
+ console.log();
117
+ for (const run of runs) {
118
+ printRun(run);
119
+ console.log();
120
+ }
121
+ }
122
+ catch (err) {
123
+ console.error(chalk.red(`Dream list failed: ${err.message}`));
124
+ process.exit(1);
125
+ }
126
+ }
127
+ export async function dreamsReportCommand(options) {
128
+ try {
129
+ const format = options.format ?? "text";
130
+ if (format !== "text" && format !== "json") {
131
+ throw new Error(`Unsupported --format value: ${format}`);
132
+ }
133
+ const hubId = options.hub
134
+ ? await resolveHubID(options.hub)
135
+ : getActiveHubID() || undefined;
136
+ if (options.hub && !hubId) {
137
+ throw new Error("Hub not found or not accessible. Run `memax hub list` to see available hubs.");
138
+ }
139
+ const report = await getClient().dreams.report(hubId);
140
+ if (format === "json") {
141
+ process.stdout.write(`${JSON.stringify(report, null, 2)}\n`);
142
+ return;
143
+ }
144
+ printReport(report);
145
+ }
146
+ catch (err) {
147
+ console.error(chalk.red(`Dream report failed: ${err.message}`));
148
+ process.exit(1);
149
+ }
150
+ }
151
+ export async function dreamsTriggerCommand(options) {
152
+ try {
153
+ const format = options.format ?? "text";
154
+ if (format !== "text" && format !== "json") {
155
+ throw new Error(`Unsupported --format value: ${format}`);
156
+ }
157
+ const hubId = options.hub
158
+ ? await resolveHubID(options.hub)
159
+ : getActiveHubID() || undefined;
160
+ if (options.hub && !hubId) {
161
+ throw new Error("Hub not found or not accessible. Run `memax hub list` to see available hubs.");
162
+ }
163
+ const result = await getClient().dreams.trigger(hubId);
164
+ if (format === "json") {
165
+ process.stdout.write(`${JSON.stringify(result, null, 2)}\n`);
166
+ return;
167
+ }
168
+ if (result.status === "queued") {
169
+ console.log(chalk.green("Dream cycle queued."));
170
+ }
171
+ else {
172
+ console.log(chalk.green(`Dream cycle status: ${result.status}`));
173
+ }
174
+ }
175
+ catch (err) {
176
+ console.error(chalk.red(`Dream trigger failed: ${err.message}`));
177
+ process.exit(1);
178
+ }
179
+ }
180
+ //# sourceMappingURL=dreams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dreams.js","sourceRoot":"","sources":["../../src/commands/dreams.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=dreams.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dreams.test.d.ts","sourceRoot":"","sources":["../../src/commands/dreams.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,39 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { summarizeRun } from "./dreams.js";
3
+ describe("summarizeRun", () => {
4
+ it("includes only non-zero dream outcomes", () => {
5
+ expect(summarizeRun({
6
+ id: "r1",
7
+ owner_id: "u1",
8
+ hub_id: "h1",
9
+ status: "completed",
10
+ started_at: "",
11
+ finished_at: "",
12
+ memories_scanned: 12,
13
+ duplicates_merged: 2,
14
+ contradictions_found: 1,
15
+ memories_archived: 0,
16
+ memories_organized: 5,
17
+ topics_restructured: 0,
18
+ report: "",
19
+ })).toEqual(["2 merged", "1 contradictions", "5 organized"]);
20
+ });
21
+ it("returns an empty summary when no changes were made", () => {
22
+ expect(summarizeRun({
23
+ id: "r2",
24
+ owner_id: "u1",
25
+ hub_id: "h1",
26
+ status: "completed",
27
+ started_at: "",
28
+ finished_at: "",
29
+ memories_scanned: 2,
30
+ duplicates_merged: 0,
31
+ contradictions_found: 0,
32
+ memories_archived: 0,
33
+ memories_organized: 0,
34
+ topics_restructured: 0,
35
+ report: "",
36
+ })).toEqual([]);
37
+ });
38
+ });
39
+ //# sourceMappingURL=dreams.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dreams.test.js","sourceRoot":"","sources":["../../src/commands/dreams.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CACJ,YAAY,CAAC;YACX,EAAE,EAAE,IAAI;YACR,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,WAAW;YACnB,UAAU,EAAE,EAAE;YACd,WAAW,EAAE,EAAE;YACf,gBAAgB,EAAE,EAAE;YACpB,iBAAiB,EAAE,CAAC;YACpB,oBAAoB,EAAE,CAAC;YACvB,iBAAiB,EAAE,CAAC;YACpB,kBAAkB,EAAE,CAAC;YACrB,mBAAmB,EAAE,CAAC;YACtB,MAAM,EAAE,EAAE;SACX,CAAC,CACH,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,kBAAkB,EAAE,aAAa,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,CACJ,YAAY,CAAC;YACX,EAAE,EAAE,IAAI;YACR,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,WAAW;YACnB,UAAU,EAAE,EAAE;YACd,WAAW,EAAE,EAAE;YACf,gBAAgB,EAAE,CAAC;YACnB,iBAAiB,EAAE,CAAC;YACpB,oBAAoB,EAAE,CAAC;YACvB,iBAAiB,EAAE,CAAC;YACpB,kBAAkB,EAAE,CAAC;YACrB,mBAAmB,EAAE,CAAC;YACtB,MAAM,EAAE,EAAE;SACX,CAAC,CACH,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,4 +1,29 @@
1
+ import type { HubInvite } from "memax-sdk";
2
+ interface HubInviteCreateOptions {
3
+ hub?: string;
4
+ role?: string;
5
+ format?: string;
6
+ }
7
+ interface HubInviteListOptions {
8
+ hub?: string;
9
+ format?: string;
10
+ verbose?: boolean;
11
+ }
12
+ interface HubInviteMutationOptions {
13
+ hub?: string;
14
+ format?: string;
15
+ }
16
+ export declare function inviteDisplayID(id: string, verbose?: boolean): string;
17
+ export declare function deriveInviteURL(token: string, apiURL: string): string;
18
+ export declare function extractInviteToken(value: string): string;
19
+ export declare function resolveInviteReference(invites: HubInvite[], ref: string): HubInvite;
1
20
  export declare function hubListCommand(): Promise<void>;
2
21
  export declare function hubCreateCommand(name: string): Promise<void>;
3
22
  export declare function hubSwitchCommand(idOrSlug: string): Promise<void>;
23
+ export declare function hubInviteCreateCommand(options: HubInviteCreateOptions): Promise<void>;
24
+ export declare function hubInviteListCommand(options: HubInviteListOptions): Promise<void>;
25
+ export declare function hubInviteRevokeCommand(inviteRef: string, options: HubInviteMutationOptions): Promise<void>;
26
+ export declare function hubInviteRegenerateCommand(inviteRef: string, options: HubInviteMutationOptions): Promise<void>;
27
+ export declare function hubInviteAcceptCommand(tokenOrURL: string): Promise<void>;
28
+ export {};
4
29
  //# sourceMappingURL=hub.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hub.d.ts","sourceRoot":"","sources":["../../src/commands/hub.ts"],"names":[],"mappings":"AAIA,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA8BpD;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAUlE;AAED,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBtE"}
1
+ {"version":3,"file":"hub.d.ts","sourceRoot":"","sources":["../../src/commands/hub.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAO,SAAS,EAAE,MAAM,WAAW,CAAC;AAShD,UAAU,sBAAsB;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,oBAAoB;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,wBAAwB;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,UAAQ,GAAG,MAAM,CAEnE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CA8BrE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAaxD;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,SAAS,EAAE,EACpB,GAAG,EAAE,MAAM,GACV,SAAS,CAqBX;AAyCD,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA8BpD;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAclE;AAED,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAetE;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC,CA+Bf;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAED,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,IAAI,CAAC,CAwBf;AAED,wBAAsB,0BAA0B,CAC9C,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,IAAI,CAAC,CAwCf;AAED,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAaf"}
@@ -1,6 +1,99 @@
1
1
  import chalk from "chalk";
2
2
  import { getClient } from "../lib/client.js";
3
- import { getActiveHubID, setActiveHubID } from "../lib/config.js";
3
+ import { loadConfig, getActiveHubID, setActiveHubID } from "../lib/config.js";
4
+ import { getHubReference, PERSONAL_HUB_ALIAS, requireHub, } from "../lib/hubs.js";
5
+ export function inviteDisplayID(id, verbose = false) {
6
+ return verbose ? id : id.slice(0, 8);
7
+ }
8
+ export function deriveInviteURL(token, apiURL) {
9
+ const parsed = new URL(apiURL);
10
+ if (parsed.hostname === "localhost" || parsed.hostname === "127.0.0.1") {
11
+ return `http://localhost:3000/invite/${token}`;
12
+ }
13
+ if (parsed.hostname.startsWith("staging-api.")) {
14
+ parsed.hostname = parsed.hostname.replace(/^staging-api\./, "staging-app.");
15
+ parsed.pathname = `/invite/${token}`;
16
+ parsed.search = "";
17
+ parsed.hash = "";
18
+ return parsed.toString();
19
+ }
20
+ if (parsed.hostname.startsWith("api.")) {
21
+ parsed.hostname = parsed.hostname.replace(/^api\./, "");
22
+ parsed.pathname = `/invite/${token}`;
23
+ parsed.search = "";
24
+ parsed.hash = "";
25
+ return parsed.toString();
26
+ }
27
+ if (parsed.hostname.startsWith("api-")) {
28
+ parsed.hostname = parsed.hostname.replace(/^api-/, "app-");
29
+ parsed.pathname = `/invite/${token}`;
30
+ parsed.search = "";
31
+ parsed.hash = "";
32
+ return parsed.toString();
33
+ }
34
+ parsed.pathname = `/invite/${token}`;
35
+ parsed.search = "";
36
+ parsed.hash = "";
37
+ return parsed.toString();
38
+ }
39
+ export function extractInviteToken(value) {
40
+ const trimmed = value.trim();
41
+ try {
42
+ const parsed = new URL(trimmed);
43
+ const parts = parsed.pathname.split("/").filter(Boolean);
44
+ const inviteIndex = parts.indexOf("invite");
45
+ if (inviteIndex >= 0 && parts[inviteIndex + 1]) {
46
+ return parts[inviteIndex + 1];
47
+ }
48
+ }
49
+ catch {
50
+ // raw token/reference, fall through
51
+ }
52
+ return trimmed;
53
+ }
54
+ export function resolveInviteReference(invites, ref) {
55
+ const normalized = ref.trim().toLowerCase();
56
+ const exact = invites.find((invite) => invite.id.toLowerCase() === normalized);
57
+ if (exact)
58
+ return exact;
59
+ const matches = invites.filter((invite) => invite.id.toLowerCase().startsWith(normalized));
60
+ if (matches.length === 1)
61
+ return matches[0];
62
+ if (matches.length > 1) {
63
+ throw new Error(`Invite ID prefix is ambiguous. Matches: ${matches
64
+ .map((invite) => inviteDisplayID(invite.id, true))
65
+ .join(", ")}`);
66
+ }
67
+ throw new Error("Invite not found. Run `memax hub invite list` to see outstanding invites.");
68
+ }
69
+ async function requireInviteHub(ref) {
70
+ const hubRef = ref ?? getActiveHubID();
71
+ if (!hubRef) {
72
+ throw new Error("No active hub selected. Run `memax hub switch <slug>` or pass `--hub`.");
73
+ }
74
+ const match = await requireHub(hubRef);
75
+ return match.hub;
76
+ }
77
+ function normalizeInviteRole(role) {
78
+ if (!role)
79
+ return "member";
80
+ const normalized = role.trim().toLowerCase();
81
+ if (!["admin", "member", "reader"].includes(normalized)) {
82
+ throw new Error("Role must be one of: admin, member, reader");
83
+ }
84
+ return normalized;
85
+ }
86
+ function validateFormat(format) {
87
+ const resolved = (format ?? "text").toLowerCase();
88
+ if (resolved !== "text" && resolved !== "json") {
89
+ throw new Error(`Unsupported --format value: ${format}`);
90
+ }
91
+ return resolved;
92
+ }
93
+ function printInvite(invite, verbose = false) {
94
+ console.log(`${chalk.bold(inviteDisplayID(invite.id, verbose))} ${chalk.gray(`[${invite.role}]`)}`);
95
+ console.log(chalk.gray(` created: ${new Date(invite.created_at).toISOString()} · expires: ${new Date(invite.expires_at).toISOString()}`));
96
+ }
4
97
  export async function hubListCommand() {
5
98
  try {
6
99
  const client = getClient();
@@ -18,7 +111,7 @@ export async function hubListCommand() {
18
111
  ? chalk.dim("(personal)")
19
112
  : chalk.cyan("(team)");
20
113
  const roleTag = chalk.dim(`[${role}]`);
21
- console.log(`${marker}${chalk.bold(hub.name)} ${typeTag} ${roleTag} ${chalk.dim(hub.id)}`);
114
+ console.log(`${marker}${chalk.bold(hub.name)} ${typeTag} ${roleTag} ${chalk.dim(getHubReference(hub))} ${chalk.dim(hub.id)}`);
22
115
  }
23
116
  console.log();
24
117
  }
@@ -32,7 +125,7 @@ export async function hubCreateCommand(name) {
32
125
  const hub = await getClient().hubs.create(name);
33
126
  console.log(chalk.green(`\n Created hub: ${hub.name} (${hub.slug})\n`));
34
127
  console.log(chalk.dim(` ID: ${hub.id}`));
35
- console.log(chalk.dim(` Set read context: memax hub switch ${hub.id}\n`));
128
+ console.log(chalk.dim(` Set read context: memax hub switch ${getHubReference(hub)}\n`));
36
129
  }
37
130
  catch (err) {
38
131
  console.error(chalk.red(err.message || "Failed to create hub"));
@@ -41,17 +134,113 @@ export async function hubCreateCommand(name) {
41
134
  }
42
135
  export async function hubSwitchCommand(idOrSlug) {
43
136
  try {
44
- const hubs = await getClient().hubs.list();
45
- const match = hubs.find(({ hub }) => hub.id === idOrSlug || hub.slug === idOrSlug);
46
- if (!match) {
47
- throw new Error("Hub not found or not accessible. Run `memax hub list` to see available hubs.");
48
- }
137
+ const match = await requireHub(idOrSlug);
49
138
  setActiveHubID(match.hub.id);
50
- console.log(chalk.green(`\n Switched read context to: ${match.hub.name || idOrSlug}\n`));
139
+ const switchedRef = match.hub.hub_type === "personal" ? PERSONAL_HUB_ALIAS : match.hub.slug;
140
+ console.log(chalk.green(`\n Switched read context to: ${match.hub.name} (${switchedRef})\n`));
51
141
  }
52
142
  catch (err) {
53
143
  console.error(chalk.red(err.message || "Failed to switch hub"));
54
144
  process.exit(1);
55
145
  }
56
146
  }
147
+ export async function hubInviteCreateCommand(options) {
148
+ try {
149
+ const format = validateFormat(options.format);
150
+ const hub = await requireInviteHub(options.hub);
151
+ const role = normalizeInviteRole(options.role);
152
+ const invite = await getClient().hubs.createInvite(hub.id, role);
153
+ const inviteURL = invite.invite_url ?? deriveInviteURL(invite.token, loadConfig().api_url);
154
+ if (format === "json") {
155
+ process.stdout.write(`${JSON.stringify({ invite, invite_url: inviteURL }, null, 2)}\n`);
156
+ return;
157
+ }
158
+ console.log(chalk.green(`\n Invite created for ${chalk.bold(hub.name)}\n`));
159
+ console.log(chalk.gray(` id: ${invite.id}`));
160
+ console.log(chalk.gray(` role: ${invite.role}`));
161
+ console.log(chalk.gray(` expires: ${new Date(invite.expires_at).toISOString()}`));
162
+ console.log(chalk.gray(` link: ${inviteURL}\n`));
163
+ }
164
+ catch (err) {
165
+ console.error(chalk.red(err.message || "Failed to create hub invite"));
166
+ process.exit(1);
167
+ }
168
+ }
169
+ export async function hubInviteListCommand(options) {
170
+ try {
171
+ const format = validateFormat(options.format);
172
+ const hub = await requireInviteHub(options.hub);
173
+ const invites = await getClient().hubs.listInvites(hub.id);
174
+ if (format === "json") {
175
+ process.stdout.write(`${JSON.stringify(invites, null, 2)}\n`);
176
+ return;
177
+ }
178
+ if (invites.length === 0) {
179
+ console.log(chalk.dim(` No outstanding invites for ${hub.name}.`));
180
+ return;
181
+ }
182
+ console.log(chalk.blue(`\n Outstanding invites for ${hub.name}\n`));
183
+ for (const invite of invites) {
184
+ printInvite(invite, options.verbose);
185
+ console.log();
186
+ }
187
+ }
188
+ catch (err) {
189
+ console.error(chalk.red(err.message || "Failed to list hub invites"));
190
+ process.exit(1);
191
+ }
192
+ }
193
+ export async function hubInviteRevokeCommand(inviteRef, options) {
194
+ try {
195
+ const format = validateFormat(options.format);
196
+ const hub = await requireInviteHub(options.hub);
197
+ const invites = await getClient().hubs.listInvites(hub.id);
198
+ const invite = resolveInviteReference(invites, inviteRef);
199
+ const result = await getClient().hubs.revokeInvite(hub.id, invite.id);
200
+ if (format === "json") {
201
+ process.stdout.write(`${JSON.stringify(result, null, 2)}\n`);
202
+ return;
203
+ }
204
+ console.log(chalk.green(`\n Revoked invite ${inviteDisplayID(invite.id)} for ${hub.name}\n`));
205
+ }
206
+ catch (err) {
207
+ console.error(chalk.red(err.message || "Failed to revoke hub invite"));
208
+ process.exit(1);
209
+ }
210
+ }
211
+ export async function hubInviteRegenerateCommand(inviteRef, options) {
212
+ try {
213
+ const format = validateFormat(options.format);
214
+ const hub = await requireInviteHub(options.hub);
215
+ const invites = await getClient().hubs.listInvites(hub.id);
216
+ const invite = resolveInviteReference(invites, inviteRef);
217
+ const replacement = await getClient().hubs.regenerateInvite(hub.id, invite.id);
218
+ const inviteURL = replacement.invite_url ??
219
+ deriveInviteURL(replacement.token, loadConfig().api_url);
220
+ if (format === "json") {
221
+ process.stdout.write(`${JSON.stringify({ invite: replacement, invite_url: inviteURL }, null, 2)}\n`);
222
+ return;
223
+ }
224
+ console.log(chalk.green(`\n Regenerated invite ${inviteDisplayID(invite.id)} for ${hub.name}\n`));
225
+ console.log(chalk.gray(` new id: ${replacement.id}`));
226
+ console.log(chalk.gray(` role: ${replacement.role}`));
227
+ console.log(chalk.gray(` expires: ${new Date(replacement.expires_at).toISOString()}`));
228
+ console.log(chalk.gray(` link: ${inviteURL}\n`));
229
+ }
230
+ catch (err) {
231
+ console.error(chalk.red(err.message || "Failed to regenerate hub invite"));
232
+ process.exit(1);
233
+ }
234
+ }
235
+ export async function hubInviteAcceptCommand(tokenOrURL) {
236
+ try {
237
+ const token = extractInviteToken(tokenOrURL);
238
+ const result = await getClient().invites.accept(token);
239
+ console.log(chalk.green(`\n Joined hub: ${result.hub.name} as ${result.role}\n`));
240
+ }
241
+ catch (err) {
242
+ console.error(chalk.red(err.message || "Failed to accept invite"));
243
+ process.exit(1);
244
+ }
245
+ }
57
246
  //# sourceMappingURL=hub.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hub.js","sourceRoot":"","sources":["../../src/commands/hub.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hub.js","sourceRoot":"","sources":["../../src/commands/hub.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=hub.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hub.test.d.ts","sourceRoot":"","sources":["../../src/commands/hub.test.ts"],"names":[],"mappings":""}