memax-cli 0.1.0-alpha.34 → 0.1.0-alpha.36

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 (44) hide show
  1. package/dist/commands/agent-sessions.d.ts +2 -0
  2. package/dist/commands/agent-sessions.d.ts.map +1 -1
  3. package/dist/commands/agent-sessions.js +187 -10
  4. package/dist/commands/agent-sessions.js.map +1 -1
  5. package/dist/commands/list.d.ts +3 -0
  6. package/dist/commands/list.d.ts.map +1 -1
  7. package/dist/commands/list.js +71 -19
  8. package/dist/commands/list.js.map +1 -1
  9. package/dist/commands/list.test.d.ts +2 -0
  10. package/dist/commands/list.test.d.ts.map +1 -0
  11. package/dist/commands/list.test.js +14 -0
  12. package/dist/commands/list.test.js.map +1 -0
  13. package/dist/commands/login.d.ts.map +1 -1
  14. package/dist/commands/login.js +8 -14
  15. package/dist/commands/login.js.map +1 -1
  16. package/dist/commands/recall.d.ts.map +1 -1
  17. package/dist/commands/recall.js +28 -9
  18. package/dist/commands/recall.js.map +1 -1
  19. package/dist/commands/show.d.ts.map +1 -1
  20. package/dist/commands/show.js +9 -1
  21. package/dist/commands/show.js.map +1 -1
  22. package/dist/commands/sync.d.ts +2 -0
  23. package/dist/commands/sync.d.ts.map +1 -1
  24. package/dist/commands/sync.js +163 -7
  25. package/dist/commands/sync.js.map +1 -1
  26. package/dist/commands/topic.d.ts +6 -3
  27. package/dist/commands/topic.d.ts.map +1 -1
  28. package/dist/commands/topic.js +29 -7
  29. package/dist/commands/topic.js.map +1 -1
  30. package/dist/commands/topic.test.d.ts +2 -0
  31. package/dist/commands/topic.test.d.ts.map +1 -0
  32. package/dist/commands/topic.test.js +56 -0
  33. package/dist/commands/topic.test.js.map +1 -0
  34. package/dist/index.js +30 -10
  35. package/dist/index.js.map +1 -1
  36. package/dist/lib/client.d.ts +2 -0
  37. package/dist/lib/client.d.ts.map +1 -1
  38. package/dist/lib/client.js +18 -13
  39. package/dist/lib/client.js.map +1 -1
  40. package/dist/lib/trash.d.ts +6 -0
  41. package/dist/lib/trash.d.ts.map +1 -0
  42. package/dist/lib/trash.js +28 -0
  43. package/dist/lib/trash.js.map +1 -0
  44. package/package.json +2 -2
@@ -8,6 +8,7 @@ import { Memax } from "memax-sdk";
8
8
  import { loadConfig } from "./config.js";
9
9
  import { loadCredentials, saveCredentials, isTokenExpired, } from "./credentials.js";
10
10
  let instance = null;
11
+ let publicInstance = null;
11
12
  /** Get the shared SDK client instance (lazily created) */
12
13
  export function getClient() {
13
14
  if (!instance) {
@@ -19,9 +20,20 @@ export function getClient() {
19
20
  }
20
21
  return instance;
21
22
  }
23
+ /** Get an unauthenticated SDK client for auth bootstrap/refresh flows */
24
+ export function getPublicClient() {
25
+ if (!publicInstance) {
26
+ const config = loadConfig();
27
+ publicInstance = new Memax({
28
+ apiUrl: config.api_url,
29
+ });
30
+ }
31
+ return publicInstance;
32
+ }
22
33
  /** Reset the cached client (useful after login/logout) */
23
34
  export function resetClient() {
24
35
  instance = null;
36
+ publicInstance = null;
25
37
  }
26
38
  export async function getAuthHeaders() {
27
39
  return cliAuthProvider();
@@ -46,21 +58,14 @@ async function cliAuthProvider() {
46
58
  // Auto-refresh if expired
47
59
  if (isTokenExpired() && creds.refresh_token) {
48
60
  try {
49
- const config = loadConfig();
50
- const url = `${config.api_url}/v1/auth/refresh`;
51
- const res = await fetch(url, {
52
- method: "POST",
53
- headers: { "Content-Type": "application/json" },
54
- body: JSON.stringify({ refresh_token: creds.refresh_token }),
55
- });
56
- const json = (await res.json());
57
- if (json.data) {
61
+ const tokens = await getPublicClient().auth.refresh(creds.refresh_token);
62
+ if (tokens.access_token) {
58
63
  saveCredentials({
59
- access_token: json.data.access_token,
60
- refresh_token: json.data.refresh_token,
61
- expires_at: Date.now() + json.data.expires_in * 1000,
64
+ access_token: tokens.access_token,
65
+ refresh_token: tokens.refresh_token,
66
+ expires_at: Date.now() + tokens.expires_in * 1000,
62
67
  });
63
- return { Authorization: `Bearer ${json.data.access_token}` };
68
+ return { Authorization: `Bearer ${tokens.access_token}` };
64
69
  }
65
70
  }
66
71
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/lib/client.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,+DAA+D;AAC/D,EAAE;AACF,kEAAkE;AAClE,6EAA6E;AAC7E,gFAAgF;AAEhF,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,eAAe,EACf,eAAe,EACf,cAAc,GACf,MAAM,kBAAkB,CAAC;AAE1B,IAAI,QAAQ,GAAiB,IAAI,CAAC;AAElC,0DAA0D;AAC1D,MAAM,UAAU,SAAS;IACvB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,QAAQ,GAAG,IAAI,KAAK,CAAC;YACnB,MAAM,EAAE,MAAM,CAAC,OAAO;YACtB,IAAI,EAAE,eAAe;SACtB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,WAAW;IACzB,QAAQ,GAAG,IAAI,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,OAAO,eAAe,EAAE,CAAC;AAC3B,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,eAAe;IAC5B,4BAA4B;IAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IACzC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,EAAE,aAAa,EAAE,UAAU,MAAM,EAAE,EAAE,CAAC;IAC/C,CAAC;IAED,wBAAwB;IACxB,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,IAAI,CAAC,KAAK,EAAE,YAAY;QAAE,OAAO,EAAE,CAAC;IAEpC,0BAA0B;IAC1B,IAAI,cAAc,EAAE,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,OAAO,kBAAkB,CAAC;YAChD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAC3B,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC;aAC7D,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAM7B,CAAC;YACF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,eAAe,CAAC;oBACd,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY;oBACpC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa;oBACtC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI;iBACrD,CAAC,CAAC;gBACH,OAAO,EAAE,aAAa,EAAE,UAAU,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YAC/D,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,+CAA+C;QACjD,CAAC;IACH,CAAC;IAED,OAAO,EAAE,aAAa,EAAE,UAAU,KAAK,CAAC,YAAY,EAAE,EAAE,CAAC;AAC3D,CAAC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/lib/client.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,+DAA+D;AAC/D,EAAE;AACF,kEAAkE;AAClE,6EAA6E;AAC7E,gFAAgF;AAEhF,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,eAAe,EACf,eAAe,EACf,cAAc,GACf,MAAM,kBAAkB,CAAC;AAE1B,IAAI,QAAQ,GAAiB,IAAI,CAAC;AAClC,IAAI,cAAc,GAAiB,IAAI,CAAC;AAExC,0DAA0D;AAC1D,MAAM,UAAU,SAAS;IACvB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,QAAQ,GAAG,IAAI,KAAK,CAAC;YACnB,MAAM,EAAE,MAAM,CAAC,OAAO;YACtB,IAAI,EAAE,eAAe;SACtB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,eAAe;IAC7B,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,cAAc,GAAG,IAAI,KAAK,CAAC;YACzB,MAAM,EAAE,MAAM,CAAC,OAAO;SACvB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,WAAW;IACzB,QAAQ,GAAG,IAAI,CAAC;IAChB,cAAc,GAAG,IAAI,CAAC;AACxB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,OAAO,eAAe,EAAE,CAAC;AAC3B,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,eAAe;IAC5B,4BAA4B;IAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IACzC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,EAAE,aAAa,EAAE,UAAU,MAAM,EAAE,EAAE,CAAC;IAC/C,CAAC;IAED,wBAAwB;IACxB,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,IAAI,CAAC,KAAK,EAAE,YAAY;QAAE,OAAO,EAAE,CAAC;IAEpC,0BAA0B;IAC1B,IAAI,cAAc,EAAE,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,eAAe,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YACzE,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;gBACxB,eAAe,CAAC;oBACd,YAAY,EAAE,MAAM,CAAC,YAAY;oBACjC,aAAa,EAAE,MAAM,CAAC,aAAa;oBACnC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,UAAU,GAAG,IAAI;iBAClD,CAAC,CAAC;gBACH,OAAO,EAAE,aAAa,EAAE,UAAU,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC;YAC5D,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,+CAA+C;QACjD,CAAC;IACH,CAAC;IAED,OAAO,EAAE,aAAa,EAAE,UAAU,KAAK,CAAC,YAAY,EAAE,EAAE,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,6 @@
1
+ export interface TrashMoveResult {
2
+ moved: boolean;
3
+ trashPath?: string;
4
+ }
5
+ export declare function moveFileToTrash(sourcePath: string, kind: "agent-configs" | "agent-sessions"): TrashMoveResult;
6
+ //# sourceMappingURL=trash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trash.d.ts","sourceRoot":"","sources":["../../src/lib/trash.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAQD,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,eAAe,GAAG,gBAAgB,GACvC,eAAe,CAiBjB"}
@@ -0,0 +1,28 @@
1
+ import { copyFileSync, existsSync, mkdirSync, renameSync, rmSync, } from "node:fs";
2
+ import { dirname, join } from "node:path";
3
+ import { getConfigDir } from "./config.js";
4
+ function makeTrashPath(kind, sourcePath) {
5
+ const timestamp = new Date().toISOString().replace(/[:.]/g, "-");
6
+ const normalized = sourcePath.replace(/^\/+/, "");
7
+ return join(getConfigDir(), "trash", kind, timestamp, normalized);
8
+ }
9
+ export function moveFileToTrash(sourcePath, kind) {
10
+ if (!existsSync(sourcePath)) {
11
+ return { moved: false };
12
+ }
13
+ const trashPath = makeTrashPath(kind, sourcePath);
14
+ mkdirSync(dirname(trashPath), { recursive: true });
15
+ try {
16
+ renameSync(sourcePath, trashPath);
17
+ }
18
+ catch (err) {
19
+ const error = err;
20
+ if (error.code !== "EXDEV") {
21
+ throw err;
22
+ }
23
+ copyFileSync(sourcePath, trashPath);
24
+ rmSync(sourcePath);
25
+ }
26
+ return { moved: true, trashPath };
27
+ }
28
+ //# sourceMappingURL=trash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trash.js","sourceRoot":"","sources":["../../src/lib/trash.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,UAAU,EACV,SAAS,EACT,UAAU,EACV,MAAM,GACP,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAO3C,SAAS,aAAa,CAAC,IAAY,EAAE,UAAkB;IACrD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACjE,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAClD,OAAO,IAAI,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,UAAkB,EAClB,IAAwC;IAExC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC1B,CAAC;IACD,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAClD,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,IAAI,CAAC;QACH,UAAU,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,KAAK,GAAG,GAA4B,CAAC;QAC3C,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC3B,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,YAAY,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACpC,MAAM,CAAC,UAAU,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AACpC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "memax-cli",
3
- "version": "0.1.0-alpha.34",
3
+ "version": "0.1.0-alpha.36",
4
4
  "description": "CLI for Memax — universal context & memory hub for AI agents",
5
5
  "type": "module",
6
6
  "bin": {
@@ -16,7 +16,7 @@
16
16
  "@modelcontextprotocol/sdk": "^1.12.1",
17
17
  "chalk": "^5.4.0",
18
18
  "commander": "^13.0.0",
19
- "memax-sdk": "^0.1.4"
19
+ "memax-sdk": "^0.1.6"
20
20
  },
21
21
  "devDependencies": {
22
22
  "@types/node": "^25.5.0",