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.
- package/dist/commands/agent-sessions.d.ts +2 -0
- package/dist/commands/agent-sessions.d.ts.map +1 -1
- package/dist/commands/agent-sessions.js +187 -10
- package/dist/commands/agent-sessions.js.map +1 -1
- package/dist/commands/list.d.ts +3 -0
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +71 -19
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/list.test.d.ts +2 -0
- package/dist/commands/list.test.d.ts.map +1 -0
- package/dist/commands/list.test.js +14 -0
- package/dist/commands/list.test.js.map +1 -0
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +8 -14
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/recall.d.ts.map +1 -1
- package/dist/commands/recall.js +28 -9
- package/dist/commands/recall.js.map +1 -1
- package/dist/commands/show.d.ts.map +1 -1
- package/dist/commands/show.js +9 -1
- package/dist/commands/show.js.map +1 -1
- package/dist/commands/sync.d.ts +2 -0
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +163 -7
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/topic.d.ts +6 -3
- package/dist/commands/topic.d.ts.map +1 -1
- package/dist/commands/topic.js +29 -7
- package/dist/commands/topic.js.map +1 -1
- package/dist/commands/topic.test.d.ts +2 -0
- package/dist/commands/topic.test.d.ts.map +1 -0
- package/dist/commands/topic.test.js +56 -0
- package/dist/commands/topic.test.js.map +1 -0
- package/dist/index.js +30 -10
- package/dist/index.js.map +1 -1
- package/dist/lib/client.d.ts +2 -0
- package/dist/lib/client.d.ts.map +1 -1
- package/dist/lib/client.js +18 -13
- package/dist/lib/client.js.map +1 -1
- package/dist/lib/trash.d.ts +6 -0
- package/dist/lib/trash.d.ts.map +1 -0
- package/dist/lib/trash.js +28 -0
- package/dist/lib/trash.js.map +1 -0
- package/package.json +2 -2
package/dist/lib/client.js
CHANGED
|
@@ -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
|
|
50
|
-
|
|
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:
|
|
60
|
-
refresh_token:
|
|
61
|
-
expires_at: Date.now() +
|
|
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 ${
|
|
68
|
+
return { Authorization: `Bearer ${tokens.access_token}` };
|
|
64
69
|
}
|
|
65
70
|
}
|
|
66
71
|
catch {
|
package/dist/lib/client.js.map
CHANGED
|
@@ -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;
|
|
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 @@
|
|
|
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.
|
|
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.
|
|
19
|
+
"memax-sdk": "^0.1.6"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
22
|
"@types/node": "^25.5.0",
|