memax-cli 0.1.2 → 0.1.3
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/LICENSE +201 -21
- package/NOTICE +5 -0
- package/README.md +4 -3
- package/dist/commands/agent-sessions.js +3 -3
- package/dist/commands/agent-sessions.js.map +1 -1
- package/dist/commands/dreams.d.ts +22 -1
- package/dist/commands/dreams.d.ts.map +1 -1
- package/dist/commands/dreams.js +98 -0
- package/dist/commands/dreams.js.map +1 -1
- package/dist/lib/project-context.d.ts +5 -5
- package/dist/lib/project-context.js +5 -5
- package/package.json +5 -4
- package/dist/commands/agent-configs.test.d.ts +0 -2
- package/dist/commands/agent-configs.test.d.ts.map +0 -1
- package/dist/commands/agent-configs.test.js +0 -122
- package/dist/commands/agent-configs.test.js.map +0 -1
- package/dist/commands/agent-sessions.test.d.ts +0 -2
- package/dist/commands/agent-sessions.test.d.ts.map +0 -1
- package/dist/commands/agent-sessions.test.js +0 -255
- package/dist/commands/agent-sessions.test.js.map +0 -1
- package/dist/commands/dreams.test.d.ts +0 -2
- package/dist/commands/dreams.test.d.ts.map +0 -1
- package/dist/commands/dreams.test.js +0 -39
- package/dist/commands/dreams.test.js.map +0 -1
- package/dist/commands/hub.test.d.ts +0 -2
- package/dist/commands/hub.test.d.ts.map +0 -1
- package/dist/commands/hub.test.js +0 -62
- package/dist/commands/hub.test.js.map +0 -1
- package/dist/commands/import.test.d.ts +0 -2
- package/dist/commands/import.test.d.ts.map +0 -1
- package/dist/commands/import.test.js +0 -11
- package/dist/commands/import.test.js.map +0 -1
- package/dist/commands/list.test.d.ts +0 -2
- package/dist/commands/list.test.d.ts.map +0 -1
- package/dist/commands/list.test.js +0 -20
- package/dist/commands/list.test.js.map +0 -1
- package/dist/commands/recall.test.d.ts +0 -2
- package/dist/commands/recall.test.d.ts.map +0 -1
- package/dist/commands/recall.test.js +0 -31
- package/dist/commands/recall.test.js.map +0 -1
- package/dist/commands/topic.test.d.ts +0 -2
- package/dist/commands/topic.test.d.ts.map +0 -1
- package/dist/commands/topic.test.js +0 -114
- package/dist/commands/topic.test.js.map +0 -1
- package/dist/lib/client.test.d.ts +0 -2
- package/dist/lib/client.test.d.ts.map +0 -1
- package/dist/lib/client.test.js +0 -44
- package/dist/lib/client.test.js.map +0 -1
- package/dist/lib/hubs.test.d.ts +0 -2
- package/dist/lib/hubs.test.d.ts.map +0 -1
- package/dist/lib/hubs.test.js +0 -58
- package/dist/lib/hubs.test.js.map +0 -1
- package/dist/lib/project-context.test.d.ts +0 -2
- package/dist/lib/project-context.test.d.ts.map +0 -1
- package/dist/lib/project-context.test.js +0 -75
- package/dist/lib/project-context.test.js.map +0 -1
package/dist/commands/dreams.js
CHANGED
|
@@ -194,6 +194,98 @@ export async function dreamsReportCommand(options) {
|
|
|
194
194
|
process.exit(1);
|
|
195
195
|
}
|
|
196
196
|
}
|
|
197
|
+
/**
|
|
198
|
+
* formatQuota turns a DreamUsage snapshot into a list of lines for
|
|
199
|
+
* terminal output. Pure for testing — printQuota wraps it with
|
|
200
|
+
* chalk + console.
|
|
201
|
+
*
|
|
202
|
+
* Branching matches the web indicator's renderDreamQuotaHint:
|
|
203
|
+
*
|
|
204
|
+
* - limit === 0 → tier disabled; show upgrade hint
|
|
205
|
+
* - limit === -1 → unlimited; show used count, no cap line
|
|
206
|
+
* - !allowed at finite cap → exhausted; show used/limit + reset
|
|
207
|
+
* - finite under cap → standard "X of Y" with remaining + reset
|
|
208
|
+
*
|
|
209
|
+
* Reset date is formatted in UTC (matches API contract; avoids
|
|
210
|
+
* the off-by-one bug that bites browser clients in non-UTC zones).
|
|
211
|
+
*/
|
|
212
|
+
export function formatQuota(usage) {
|
|
213
|
+
const lines = [];
|
|
214
|
+
const scopeLabel = usage.scope === "hub" ? "this hub" : "your personal quota";
|
|
215
|
+
lines.push(`Dream quota — ${scopeLabel}`);
|
|
216
|
+
if (usage.limit === 0) {
|
|
217
|
+
lines.push(` This ${usage.scope === "hub" ? "hub" : "account"} doesn't have dreams included in its plan.`);
|
|
218
|
+
lines.push(" Upgrade: https://memax.app/settings/billing");
|
|
219
|
+
return lines;
|
|
220
|
+
}
|
|
221
|
+
const tierLabel = usage.tier === "lucid" ? "Lucid" : "Basic";
|
|
222
|
+
lines.push(` tier: ${tierLabel}`);
|
|
223
|
+
if (usage.limit === -1) {
|
|
224
|
+
lines.push(` used: ${usage.used} (unlimited)`);
|
|
225
|
+
return lines;
|
|
226
|
+
}
|
|
227
|
+
const remaining = usage.remaining ?? Math.max(usage.limit - usage.used, 0);
|
|
228
|
+
const exhausted = !usage.allowed && usage.used >= usage.limit;
|
|
229
|
+
const usedSuffix = exhausted ? " (exhausted)" : "";
|
|
230
|
+
lines.push(` used: ${usage.used} of ${usage.limit}${usedSuffix}`);
|
|
231
|
+
if (!exhausted) {
|
|
232
|
+
lines.push(` remains: ${remaining}`);
|
|
233
|
+
}
|
|
234
|
+
// Reset = period_end + 1 day, formatted UTC. Same contract as
|
|
235
|
+
// server-side: period_end is the LAST day of the period at UTC
|
|
236
|
+
// midnight, so reset = next-day midnight = first day of next
|
|
237
|
+
// period.
|
|
238
|
+
const reset = new Date(usage.period_end);
|
|
239
|
+
reset.setUTCDate(reset.getUTCDate() + 1);
|
|
240
|
+
const resetLabel = reset.toLocaleDateString("en-US", {
|
|
241
|
+
month: "short",
|
|
242
|
+
day: "numeric",
|
|
243
|
+
timeZone: "UTC",
|
|
244
|
+
});
|
|
245
|
+
lines.push(` resets: ${resetLabel}`);
|
|
246
|
+
return lines;
|
|
247
|
+
}
|
|
248
|
+
function printQuota(usage) {
|
|
249
|
+
const lines = formatQuota(usage);
|
|
250
|
+
// Headline gets the signature ✦. Disabled tier (line[1] starts
|
|
251
|
+
// with " This") gets a yellow caution color; exhausted state
|
|
252
|
+
// (line ends with "(exhausted)") gets the same warn color the
|
|
253
|
+
// web indicator uses. Everything else is plain so the column
|
|
254
|
+
// alignment reads as a tidy block.
|
|
255
|
+
const exhausted = lines.some((l) => l.endsWith("(exhausted)"));
|
|
256
|
+
const disabled = usage.limit === 0;
|
|
257
|
+
const headline = disabled || exhausted
|
|
258
|
+
? chalk.yellow(`✦ ${lines[0]}`)
|
|
259
|
+
: chalk.cyan(`✦ ${lines[0]}`);
|
|
260
|
+
console.log(headline);
|
|
261
|
+
for (const line of lines.slice(1)) {
|
|
262
|
+
console.log(line);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
export async function dreamsQuotaCommand(options) {
|
|
266
|
+
try {
|
|
267
|
+
const format = options.format ?? "text";
|
|
268
|
+
if (format !== "text" && format !== "json") {
|
|
269
|
+
throw new Error(`Unsupported --format value: ${format}`);
|
|
270
|
+
}
|
|
271
|
+
const hubId = options.hub
|
|
272
|
+
? await resolveHubID(options.hub)
|
|
273
|
+
: getActiveHubID() || undefined;
|
|
274
|
+
if (options.hub && !hubId) {
|
|
275
|
+
throw new Error("Hub not found or not accessible. Run `memax hub list` to see available hubs.");
|
|
276
|
+
}
|
|
277
|
+
const usage = await getClient().dreams.usage(hubId ? { hubId } : undefined);
|
|
278
|
+
if (format === "json") {
|
|
279
|
+
process.stdout.write(`${JSON.stringify(usage, null, 2)}\n`);
|
|
280
|
+
return;
|
|
281
|
+
}
|
|
282
|
+
printQuota(usage);
|
|
283
|
+
}
|
|
284
|
+
catch (err) {
|
|
285
|
+
console.error(chalk.red(`Dream quota failed: ${err.message}`));
|
|
286
|
+
process.exit(1);
|
|
287
|
+
}
|
|
288
|
+
}
|
|
197
289
|
export async function dreamsTriggerCommand(options) {
|
|
198
290
|
try {
|
|
199
291
|
const format = options.format ?? "text";
|
|
@@ -247,5 +339,11 @@ export function registerDreamsCommands(program) {
|
|
|
247
339
|
.option("--hub <slug>", "Scope to a hub")
|
|
248
340
|
.option("--format <format>", "Output format: text, json", "text")
|
|
249
341
|
.action(dreamsTriggerCommand);
|
|
342
|
+
dreamsCmd
|
|
343
|
+
.command("quota")
|
|
344
|
+
.description("Show your dream quota for the current period")
|
|
345
|
+
.option("--hub <slug>", "Scope to a hub (defaults to active hub; personal if none)")
|
|
346
|
+
.option("--format <format>", "Output format: text, json", "text")
|
|
347
|
+
.action(dreamsQuotaCommand);
|
|
250
348
|
}
|
|
251
349
|
//# sourceMappingURL=dreams.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dreams.js","sourceRoot":"","sources":["../../src/commands/dreams.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dreams.js","sourceRoot":"","sources":["../../src/commands/dreams.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,10 +2,10 @@ import type { Scope } from "memax-sdk";
|
|
|
2
2
|
/**
|
|
3
3
|
* Normalize a git remote URL to a canonical form for use as a project identifier.
|
|
4
4
|
*
|
|
5
|
-
* All of these produce the same result: `github.com/
|
|
6
|
-
* - https://github.com/
|
|
7
|
-
* - git@github.com:
|
|
8
|
-
* - ssh://git@github.com/
|
|
5
|
+
* All of these produce the same result: `github.com/acme/project`
|
|
6
|
+
* - https://github.com/acme/project.git
|
|
7
|
+
* - git@github.com:acme/project.git
|
|
8
|
+
* - ssh://git@github.com/acme/project
|
|
9
9
|
*/
|
|
10
10
|
export declare function normalizeRepoUrl(url: string): string;
|
|
11
11
|
export interface MemaxYmlConfig {
|
|
@@ -35,7 +35,7 @@ export declare function resolveProjectRootPath(dir?: string): string | null;
|
|
|
35
35
|
* Resolve a Claude Code mangled project folder name to a normalized repo URL.
|
|
36
36
|
*
|
|
37
37
|
* Claude Code names project folders by replacing "/" with "-" in the absolute path:
|
|
38
|
-
* "-workspaces-
|
|
38
|
+
* "-workspaces-project" → /workspaces/project
|
|
39
39
|
* "-Users-ziyang-code-memax" → /Users/ziyang/code/memax
|
|
40
40
|
*
|
|
41
41
|
* Returns the normalized repo URL if the path exists and is a git repo, null otherwise.
|
|
@@ -7,10 +7,10 @@ import { dirname, join } from "node:path";
|
|
|
7
7
|
/**
|
|
8
8
|
* Normalize a git remote URL to a canonical form for use as a project identifier.
|
|
9
9
|
*
|
|
10
|
-
* All of these produce the same result: `github.com/
|
|
11
|
-
* - https://github.com/
|
|
12
|
-
* - git@github.com:
|
|
13
|
-
* - ssh://git@github.com/
|
|
10
|
+
* All of these produce the same result: `github.com/acme/project`
|
|
11
|
+
* - https://github.com/acme/project.git
|
|
12
|
+
* - git@github.com:acme/project.git
|
|
13
|
+
* - ssh://git@github.com/acme/project
|
|
14
14
|
*/
|
|
15
15
|
export function normalizeRepoUrl(url) {
|
|
16
16
|
let s = url.trim();
|
|
@@ -157,7 +157,7 @@ export function resolveProjectRootPath(dir) {
|
|
|
157
157
|
* Resolve a Claude Code mangled project folder name to a normalized repo URL.
|
|
158
158
|
*
|
|
159
159
|
* Claude Code names project folders by replacing "/" with "-" in the absolute path:
|
|
160
|
-
* "-workspaces-
|
|
160
|
+
* "-workspaces-project" → /workspaces/project
|
|
161
161
|
* "-Users-ziyang-code-memax" → /Users/ziyang/code/memax
|
|
162
162
|
*
|
|
163
163
|
* Returns the normalized repo URL if the path exists and is a git repo, null otherwise.
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "0.1.
|
|
6
|
+
"version": "0.1.3",
|
|
7
7
|
"description": "CLI for Memax — universal context & memory hub for AI agents",
|
|
8
8
|
"homepage": "https://memax.app",
|
|
9
9
|
"repository": {
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"@modelcontextprotocol/sdk": "^1.12.1",
|
|
29
29
|
"chalk": "^5.4.0",
|
|
30
30
|
"commander": "^13.0.0",
|
|
31
|
-
"memax-sdk": "^0.4.
|
|
31
|
+
"memax-sdk": "^0.4.2"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@types/node": "^25.5.0",
|
|
@@ -46,9 +46,10 @@
|
|
|
46
46
|
],
|
|
47
47
|
"files": [
|
|
48
48
|
"dist",
|
|
49
|
-
"assets"
|
|
49
|
+
"assets",
|
|
50
|
+
"NOTICE"
|
|
50
51
|
],
|
|
51
|
-
"license": "
|
|
52
|
+
"license": "Apache-2.0",
|
|
52
53
|
"scripts": {
|
|
53
54
|
"build": "tsc",
|
|
54
55
|
"dev": "tsc --watch",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent-configs.test.d.ts","sourceRoot":"","sources":["../../src/commands/agent-configs.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
import { join } from "node:path";
|
|
2
|
-
import { describe, expect, it } from "vitest";
|
|
3
|
-
import { classifyAgentConfigPlacement, resolveAgentConfigWritePath, } from "./agent-configs.js";
|
|
4
|
-
describe("resolveAgentConfigWritePath", () => {
|
|
5
|
-
const cwd = "/workspaces/memax";
|
|
6
|
-
const home = "/home/tester";
|
|
7
|
-
const scope = "project:github.com/memaxlabs/memax";
|
|
8
|
-
it("resolves Claude project config into .claude", () => {
|
|
9
|
-
expect(resolveAgentConfigWritePath("claude-code", "CLAUDE.md", scope, {
|
|
10
|
-
cwd,
|
|
11
|
-
home,
|
|
12
|
-
currentProjectScope: scope,
|
|
13
|
-
})).toBe(join(cwd, ".claude", "CLAUDE.md"));
|
|
14
|
-
});
|
|
15
|
-
it("resolves Codex project config into .codex", () => {
|
|
16
|
-
expect(resolveAgentConfigWritePath("codex", "instructions.md", scope, {
|
|
17
|
-
cwd,
|
|
18
|
-
home,
|
|
19
|
-
currentProjectScope: scope,
|
|
20
|
-
})).toBe(join(cwd, ".codex", "instructions.md"));
|
|
21
|
-
});
|
|
22
|
-
it("resolves Copilot project config into .github", () => {
|
|
23
|
-
expect(resolveAgentConfigWritePath("copilot", "copilot-instructions.md", scope, {
|
|
24
|
-
cwd,
|
|
25
|
-
home,
|
|
26
|
-
currentProjectScope: scope,
|
|
27
|
-
})).toBe(join(cwd, ".github", "copilot-instructions.md"));
|
|
28
|
-
});
|
|
29
|
-
it("resolves OpenCode project files into .opencode", () => {
|
|
30
|
-
expect(resolveAgentConfigWritePath("opencode", "identity.md", scope, {
|
|
31
|
-
cwd,
|
|
32
|
-
home,
|
|
33
|
-
currentProjectScope: scope,
|
|
34
|
-
})).toBe(join(cwd, ".opencode", "identity.md"));
|
|
35
|
-
});
|
|
36
|
-
it("resolves Claude per-project memory files via project dir locator", () => {
|
|
37
|
-
expect(resolveAgentConfigWritePath("claude-code", "memory/feedback.md", scope, {
|
|
38
|
-
cwd,
|
|
39
|
-
home,
|
|
40
|
-
currentProjectScope: scope,
|
|
41
|
-
findClaudeProjectDir: () => "/home/tester/.claude/projects/-workspaces-memax",
|
|
42
|
-
})).toBe("/home/tester/.claude/projects/-workspaces-memax/memory/feedback.md");
|
|
43
|
-
});
|
|
44
|
-
it("refuses to resolve project-scoped files for a different project", () => {
|
|
45
|
-
expect(resolveAgentConfigWritePath("codex", "instructions.md", scope, {
|
|
46
|
-
cwd,
|
|
47
|
-
home,
|
|
48
|
-
currentProjectScope: "project:github.com/other/repo",
|
|
49
|
-
})).toBeNull();
|
|
50
|
-
});
|
|
51
|
-
it("resolves global Claude config under ~/.claude", () => {
|
|
52
|
-
expect(resolveAgentConfigWritePath("claude-code", "CLAUDE.md", "global", {
|
|
53
|
-
cwd,
|
|
54
|
-
home,
|
|
55
|
-
currentProjectScope: scope,
|
|
56
|
-
})).toBe(join(home, ".claude", "CLAUDE.md"));
|
|
57
|
-
});
|
|
58
|
-
});
|
|
59
|
-
describe("classifyAgentConfigPlacement", () => {
|
|
60
|
-
const cwd = "/workspaces/memax";
|
|
61
|
-
const home = "/home/tester";
|
|
62
|
-
const scope = "project:github.com/memaxlabs/memax";
|
|
63
|
-
it("reports present when a local config already exists", () => {
|
|
64
|
-
const result = classifyAgentConfigPlacement("codex", "instructions.md", scope, {
|
|
65
|
-
cwd,
|
|
66
|
-
home,
|
|
67
|
-
currentProjectScope: scope,
|
|
68
|
-
localByKey: new Map([
|
|
69
|
-
[
|
|
70
|
-
`codex|instructions.md|${scope}`,
|
|
71
|
-
{
|
|
72
|
-
agent: "codex",
|
|
73
|
-
label: "./.codex/instructions.md",
|
|
74
|
-
path: join(cwd, ".codex", "instructions.md"),
|
|
75
|
-
filePath: "instructions.md",
|
|
76
|
-
scope,
|
|
77
|
-
},
|
|
78
|
-
],
|
|
79
|
-
]),
|
|
80
|
-
});
|
|
81
|
-
expect(result).toEqual({
|
|
82
|
-
kind: "present",
|
|
83
|
-
path: join(cwd, ".codex", "instructions.md"),
|
|
84
|
-
reason: "present locally",
|
|
85
|
-
});
|
|
86
|
-
});
|
|
87
|
-
it("reports restorable when there is a safe write path on this machine", () => {
|
|
88
|
-
const result = classifyAgentConfigPlacement("codex", "instructions.md", scope, {
|
|
89
|
-
cwd,
|
|
90
|
-
home,
|
|
91
|
-
currentProjectScope: scope,
|
|
92
|
-
});
|
|
93
|
-
expect(result).toEqual({
|
|
94
|
-
kind: "restorable",
|
|
95
|
-
path: join(cwd, ".codex", "instructions.md"),
|
|
96
|
-
reason: "safe restore path available",
|
|
97
|
-
});
|
|
98
|
-
});
|
|
99
|
-
it("reports different project for mismatched project scopes", () => {
|
|
100
|
-
const result = classifyAgentConfigPlacement("codex", "instructions.md", scope, {
|
|
101
|
-
cwd,
|
|
102
|
-
home,
|
|
103
|
-
currentProjectScope: "project:github.com/other/repo",
|
|
104
|
-
});
|
|
105
|
-
expect(result).toEqual({
|
|
106
|
-
kind: "different_project",
|
|
107
|
-
reason: "belongs to github.com/memaxlabs/memax",
|
|
108
|
-
});
|
|
109
|
-
});
|
|
110
|
-
it("reports unresolved when no safe path can be derived", () => {
|
|
111
|
-
const result = classifyAgentConfigPlacement("unknown-agent", "instructions.md", "global", {
|
|
112
|
-
cwd,
|
|
113
|
-
home,
|
|
114
|
-
currentProjectScope: scope,
|
|
115
|
-
});
|
|
116
|
-
expect(result).toEqual({
|
|
117
|
-
kind: "unresolved",
|
|
118
|
-
reason: "no safe restore path on this machine",
|
|
119
|
-
});
|
|
120
|
-
});
|
|
121
|
-
});
|
|
122
|
-
//# sourceMappingURL=agent-configs.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent-configs.test.js","sourceRoot":"","sources":["../../src/commands/agent-configs.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAE5B,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,MAAM,GAAG,GAAG,mBAAmB,CAAC;IAChC,MAAM,IAAI,GAAG,cAAc,CAAC;IAC5B,MAAM,KAAK,GAAG,oCAAoC,CAAC;IAEnD,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,CACJ,2BAA2B,CAAC,aAAa,EAAE,WAAW,EAAE,KAAK,EAAE;YAC7D,GAAG;YACH,IAAI;YACJ,mBAAmB,EAAE,KAAK;SAC3B,CAAC,CACH,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CACJ,2BAA2B,CAAC,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE;YAC7D,GAAG;YACH,IAAI;YACJ,mBAAmB,EAAE,KAAK;SAC3B,CAAC,CACH,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,CACJ,2BAA2B,CAAC,SAAS,EAAE,yBAAyB,EAAE,KAAK,EAAE;YACvE,GAAG;YACH,IAAI;YACJ,mBAAmB,EAAE,KAAK;SAC3B,CAAC,CACH,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,yBAAyB,CAAC,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,CACJ,2BAA2B,CAAC,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE;YAC5D,GAAG;YACH,IAAI;YACJ,mBAAmB,EAAE,KAAK;SAC3B,CAAC,CACH,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC1E,MAAM,CACJ,2BAA2B,CAAC,aAAa,EAAE,oBAAoB,EAAE,KAAK,EAAE;YACtE,GAAG;YACH,IAAI;YACJ,mBAAmB,EAAE,KAAK;YAC1B,oBAAoB,EAAE,GAAG,EAAE,CACzB,iDAAiD;SACpD,CAAC,CACH,CAAC,IAAI,CACJ,oEAAoE,CACrE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,CACJ,2BAA2B,CAAC,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE;YAC7D,GAAG;YACH,IAAI;YACJ,mBAAmB,EAAE,+BAA+B;SACrD,CAAC,CACH,CAAC,QAAQ,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,CACJ,2BAA2B,CAAC,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE;YAChE,GAAG;YACH,IAAI;YACJ,mBAAmB,EAAE,KAAK;SAC3B,CAAC,CACH,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,MAAM,GAAG,GAAG,mBAAmB,CAAC;IAChC,MAAM,IAAI,GAAG,cAAc,CAAC;IAC5B,MAAM,KAAK,GAAG,oCAAoC,CAAC;IAEnD,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,MAAM,GAAG,4BAA4B,CACzC,OAAO,EACP,iBAAiB,EACjB,KAAK,EACL;YACE,GAAG;YACH,IAAI;YACJ,mBAAmB,EAAE,KAAK;YAC1B,UAAU,EAAE,IAAI,GAAG,CAAC;gBAClB;oBACE,yBAAyB,KAAK,EAAE;oBAChC;wBACE,KAAK,EAAE,OAAO;wBACd,KAAK,EAAE,0BAA0B;wBACjC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,iBAAiB,CAAC;wBAC5C,QAAQ,EAAE,iBAAiB;wBAC3B,KAAK;qBACN;iBACF;aACF,CAAC;SACH,CACF,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,iBAAiB,CAAC;YAC5C,MAAM,EAAE,iBAAiB;SAC1B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC5E,MAAM,MAAM,GAAG,4BAA4B,CACzC,OAAO,EACP,iBAAiB,EACjB,KAAK,EACL;YACE,GAAG;YACH,IAAI;YACJ,mBAAmB,EAAE,KAAK;SAC3B,CACF,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,iBAAiB,CAAC;YAC5C,MAAM,EAAE,6BAA6B;SACtC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,MAAM,GAAG,4BAA4B,CACzC,OAAO,EACP,iBAAiB,EACjB,KAAK,EACL;YACE,GAAG;YACH,IAAI;YACJ,mBAAmB,EAAE,+BAA+B;SACrD,CACF,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,IAAI,EAAE,mBAAmB;YACzB,MAAM,EAAE,uCAAuC;SAChD,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,MAAM,GAAG,4BAA4B,CACzC,eAAe,EACf,iBAAiB,EACjB,QAAQ,EACR;YACE,GAAG;YACH,IAAI;YACJ,mBAAmB,EAAE,KAAK;SAC3B,CACF,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,sCAAsC;SAC/C,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent-sessions.test.d.ts","sourceRoot":"","sources":["../../src/commands/agent-sessions.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,255 +0,0 @@
|
|
|
1
|
-
import { existsSync, readFileSync, rmSync } from "node:fs";
|
|
2
|
-
import { join } from "node:path";
|
|
3
|
-
import { describe, expect, it } from "vitest";
|
|
4
|
-
import { classifyAgentSessionPlacement, computeSessionSyncHash, findShadowedGlobalSessions, hashPortableSessionContent, isLegacyGlobalSessionShadowed, materializeAgentSessionContent, resolveAgentSessionWritePath, } from "./agent-sessions.js";
|
|
5
|
-
describe("resolveAgentSessionWritePath", () => {
|
|
6
|
-
const cwd = "/workspaces/memax";
|
|
7
|
-
const home = "/home/tester";
|
|
8
|
-
const scope = "project:github.com/memaxlabs/memax";
|
|
9
|
-
it("resolves global Codex history", () => {
|
|
10
|
-
expect(resolveAgentSessionWritePath("codex", "history.jsonl", "global", {
|
|
11
|
-
cwd,
|
|
12
|
-
home,
|
|
13
|
-
currentProjectScope: scope,
|
|
14
|
-
})).toBe(join(home, ".codex", "history.jsonl"));
|
|
15
|
-
});
|
|
16
|
-
it("resolves global Codex sessions", () => {
|
|
17
|
-
expect(resolveAgentSessionWritePath("codex", "sessions/2026/04/07/example.jsonl", "global", {
|
|
18
|
-
cwd,
|
|
19
|
-
home,
|
|
20
|
-
currentProjectScope: scope,
|
|
21
|
-
})).toBe(join(home, ".codex", "sessions", "2026/04/07/example.jsonl"));
|
|
22
|
-
});
|
|
23
|
-
it("refuses project-scoped writes for a different project", () => {
|
|
24
|
-
expect(resolveAgentSessionWritePath("gemini", "chats/session.json", scope, {
|
|
25
|
-
cwd,
|
|
26
|
-
home,
|
|
27
|
-
currentProjectScope: "project:github.com/other/repo",
|
|
28
|
-
})).toBeNull();
|
|
29
|
-
});
|
|
30
|
-
it("resolves project-scoped Codex sessions into ~/.codex", () => {
|
|
31
|
-
expect(resolveAgentSessionWritePath("codex", "sessions/2026/04/07/example.jsonl", scope, {
|
|
32
|
-
cwd,
|
|
33
|
-
home,
|
|
34
|
-
currentProjectScope: scope,
|
|
35
|
-
})).toBe(join(home, ".codex", "sessions", "2026/04/07/example.jsonl"));
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
describe("classifyAgentSessionPlacement", () => {
|
|
39
|
-
const cwd = "/workspaces/memax";
|
|
40
|
-
const home = "/home/tester";
|
|
41
|
-
const scope = "project:github.com/memaxlabs/memax";
|
|
42
|
-
it("reports present when a local session already exists", () => {
|
|
43
|
-
const result = classifyAgentSessionPlacement("codex", "history.jsonl", "global", {
|
|
44
|
-
cwd,
|
|
45
|
-
home,
|
|
46
|
-
currentProjectScope: scope,
|
|
47
|
-
localByKey: new Map([
|
|
48
|
-
[
|
|
49
|
-
"codex|history.jsonl|global",
|
|
50
|
-
{
|
|
51
|
-
agent: "codex",
|
|
52
|
-
path: join(home, ".codex", "history.jsonl"),
|
|
53
|
-
filePath: "history.jsonl",
|
|
54
|
-
scope: "global",
|
|
55
|
-
sessionType: "history",
|
|
56
|
-
},
|
|
57
|
-
],
|
|
58
|
-
]),
|
|
59
|
-
});
|
|
60
|
-
expect(result).toEqual({
|
|
61
|
-
kind: "present",
|
|
62
|
-
path: join(home, ".codex", "history.jsonl"),
|
|
63
|
-
reason: "present locally",
|
|
64
|
-
});
|
|
65
|
-
});
|
|
66
|
-
it("reports restorable for a known safe path", () => {
|
|
67
|
-
const result = classifyAgentSessionPlacement("codex", "history.jsonl", "global", {
|
|
68
|
-
cwd,
|
|
69
|
-
home,
|
|
70
|
-
currentProjectScope: scope,
|
|
71
|
-
});
|
|
72
|
-
expect(result).toEqual({
|
|
73
|
-
kind: "restorable",
|
|
74
|
-
path: join(home, ".codex", "history.jsonl"),
|
|
75
|
-
reason: "safe restore path available",
|
|
76
|
-
});
|
|
77
|
-
});
|
|
78
|
-
it("reports different project for mismatched project scopes", () => {
|
|
79
|
-
const result = classifyAgentSessionPlacement("gemini", "chats/session.json", scope, {
|
|
80
|
-
cwd,
|
|
81
|
-
home,
|
|
82
|
-
currentProjectScope: "project:github.com/other/repo",
|
|
83
|
-
});
|
|
84
|
-
expect(result).toEqual({
|
|
85
|
-
kind: "different_project",
|
|
86
|
-
reason: "belongs to github.com/memaxlabs/memax",
|
|
87
|
-
});
|
|
88
|
-
});
|
|
89
|
-
});
|
|
90
|
-
describe("portable session hashing", () => {
|
|
91
|
-
it("treats Codex cwd rewrites as the same logical session", () => {
|
|
92
|
-
const first = Buffer.from(`${JSON.stringify({
|
|
93
|
-
type: "session_meta",
|
|
94
|
-
payload: { cwd: "/workspaces/memax" },
|
|
95
|
-
})}\n`, "utf-8");
|
|
96
|
-
const second = Buffer.from(`${JSON.stringify({
|
|
97
|
-
type: "session_meta",
|
|
98
|
-
payload: { cwd: "/Users/alice/src/memax" },
|
|
99
|
-
})}\n`, "utf-8");
|
|
100
|
-
expect(hashPortableSessionContent("codex", first, "/workspaces/memax")).toBe(hashPortableSessionContent("codex", second, "/Users/alice/src/memax"));
|
|
101
|
-
});
|
|
102
|
-
});
|
|
103
|
-
describe("materializeAgentSessionContent", () => {
|
|
104
|
-
it("rewrites structured cwd fields for Codex restores", () => {
|
|
105
|
-
const content = Buffer.from(`${JSON.stringify({
|
|
106
|
-
type: "session_meta",
|
|
107
|
-
payload: { cwd: "/workspaces/memax" },
|
|
108
|
-
})}\n`, "utf-8");
|
|
109
|
-
const restored = materializeAgentSessionContent("codex", content, {
|
|
110
|
-
scope: "project:github.com/memaxlabs/memax",
|
|
111
|
-
currentProjectRootPath: "/Users/alice/src/memax",
|
|
112
|
-
writePath: "/Users/alice/.codex/sessions/example.jsonl",
|
|
113
|
-
}).toString("utf-8");
|
|
114
|
-
expect(restored).toContain("/Users/alice/src/memax");
|
|
115
|
-
expect(restored).not.toContain("/workspaces/memax");
|
|
116
|
-
});
|
|
117
|
-
it("writes Gemini project_root markers on restore", () => {
|
|
118
|
-
const content = Buffer.from('{"sessionId":"1"}\n', "utf-8");
|
|
119
|
-
const root = join("/tmp", "memax-agent-session-test");
|
|
120
|
-
const writePath = join(root, "chats", "session.json");
|
|
121
|
-
rmSync(root, { recursive: true, force: true });
|
|
122
|
-
materializeAgentSessionContent("gemini", content, {
|
|
123
|
-
scope: "project:github.com/memaxlabs/memax",
|
|
124
|
-
currentProjectRootPath: "/workspaces/memax",
|
|
125
|
-
writePath,
|
|
126
|
-
});
|
|
127
|
-
const markerPath = join(root, ".project_root");
|
|
128
|
-
expect(existsSync(markerPath)).toBe(true);
|
|
129
|
-
expect(readFileSync(markerPath, "utf-8")).toBe("/workspaces/memax\n");
|
|
130
|
-
rmSync(root, { recursive: true, force: true });
|
|
131
|
-
});
|
|
132
|
-
});
|
|
133
|
-
describe("session sync convergence", () => {
|
|
134
|
-
it("acks pulled project sessions using the materialized portable hash", () => {
|
|
135
|
-
const downloaded = Buffer.from(`${JSON.stringify({
|
|
136
|
-
type: "session_meta",
|
|
137
|
-
payload: { cwd: "/workspaces/memax" },
|
|
138
|
-
})}\n`, "utf-8");
|
|
139
|
-
const materialized = materializeAgentSessionContent("codex", downloaded, {
|
|
140
|
-
scope: "project:github.com/memaxlabs/memax",
|
|
141
|
-
currentProjectRootPath: "/Users/alice/src/memax",
|
|
142
|
-
writePath: "/Users/alice/.codex/sessions/example.jsonl",
|
|
143
|
-
});
|
|
144
|
-
expect(computeSessionSyncHash("codex", "project:github.com/memaxlabs/memax", materialized, "/Users/alice/src/memax")).toBe(hashPortableSessionContent("codex", materialized, "/Users/alice/src/memax"));
|
|
145
|
-
});
|
|
146
|
-
it("marks legacy global codex session duplicates as shadowed", () => {
|
|
147
|
-
expect(isLegacyGlobalSessionShadowed({
|
|
148
|
-
action: "pull",
|
|
149
|
-
agent: "codex",
|
|
150
|
-
file_path: "sessions/2026/04/07/rollout-2026-04-07T05-39-15-019d6673-c077-7371-a3b8-3d98c1c8e7a7.jsonl",
|
|
151
|
-
scope: "global",
|
|
152
|
-
reason: "cloud_only",
|
|
153
|
-
}, new Set([
|
|
154
|
-
"codex|sessions/2026/04/07/rollout-2026-04-07T05-39-15-019d6673-c077-7371-a3b8-3d98c1c8e7a7.jsonl",
|
|
155
|
-
]))).toBe(true);
|
|
156
|
-
expect(isLegacyGlobalSessionShadowed({
|
|
157
|
-
action: "delete_local",
|
|
158
|
-
agent: "codex",
|
|
159
|
-
file_path: "sessions/2026/04/07/rollout-2026-04-07T05-39-15-019d6673-c077-7371-a3b8-3d98c1c8e7a7.jsonl",
|
|
160
|
-
scope: "global",
|
|
161
|
-
reason: "deleted_everywhere",
|
|
162
|
-
}, new Set([
|
|
163
|
-
"codex|sessions/2026/04/07/rollout-2026-04-07T05-39-15-019d6673-c077-7371-a3b8-3d98c1c8e7a7.jsonl",
|
|
164
|
-
]))).toBe(true);
|
|
165
|
-
});
|
|
166
|
-
it("does not shadow codex history or non-duplicate sessions", () => {
|
|
167
|
-
expect(isLegacyGlobalSessionShadowed({
|
|
168
|
-
action: "pull",
|
|
169
|
-
agent: "codex",
|
|
170
|
-
file_path: "history.jsonl",
|
|
171
|
-
scope: "global",
|
|
172
|
-
reason: "cloud_only",
|
|
173
|
-
}, new Set(["codex|history.jsonl"]))).toBe(false);
|
|
174
|
-
expect(isLegacyGlobalSessionShadowed({
|
|
175
|
-
action: "pull",
|
|
176
|
-
agent: "codex",
|
|
177
|
-
file_path: "sessions/2026/04/07/example.jsonl",
|
|
178
|
-
scope: "global",
|
|
179
|
-
reason: "cloud_only",
|
|
180
|
-
}, new Set())).toBe(false);
|
|
181
|
-
});
|
|
182
|
-
it("finds safe legacy global duplicates by agent and file path", () => {
|
|
183
|
-
const pairs = findShadowedGlobalSessions([
|
|
184
|
-
{
|
|
185
|
-
id: "g1",
|
|
186
|
-
owner_id: "o1",
|
|
187
|
-
agent: "codex",
|
|
188
|
-
file_path: "sessions/2026/04/07/example.jsonl",
|
|
189
|
-
scope: "global",
|
|
190
|
-
session_type: "transcript",
|
|
191
|
-
filename: "example.jsonl",
|
|
192
|
-
content_type: "application/jsonl",
|
|
193
|
-
size_bytes: 10,
|
|
194
|
-
content_hash: "abc",
|
|
195
|
-
version: 1,
|
|
196
|
-
created_at: "2026-04-08T00:00:00Z",
|
|
197
|
-
updated_at: "2026-04-08T00:00:00Z",
|
|
198
|
-
},
|
|
199
|
-
{
|
|
200
|
-
id: "p1",
|
|
201
|
-
owner_id: "o1",
|
|
202
|
-
agent: "codex",
|
|
203
|
-
file_path: "sessions/2026/04/07/example.jsonl",
|
|
204
|
-
scope: "project:github.com/memaxlabs/memax",
|
|
205
|
-
session_type: "transcript",
|
|
206
|
-
filename: "example.jsonl",
|
|
207
|
-
content_type: "application/jsonl",
|
|
208
|
-
size_bytes: 10,
|
|
209
|
-
content_hash: "abc",
|
|
210
|
-
version: 2,
|
|
211
|
-
created_at: "2026-04-08T00:00:00Z",
|
|
212
|
-
updated_at: "2026-04-08T00:00:00Z",
|
|
213
|
-
},
|
|
214
|
-
]);
|
|
215
|
-
expect(pairs).toHaveLength(1);
|
|
216
|
-
expect(pairs[0]?.global.id).toBe("g1");
|
|
217
|
-
expect(pairs[0]?.project.id).toBe("p1");
|
|
218
|
-
});
|
|
219
|
-
it("ignores codex history and unrelated scopes when finding duplicates", () => {
|
|
220
|
-
const pairs = findShadowedGlobalSessions([
|
|
221
|
-
{
|
|
222
|
-
id: "g1",
|
|
223
|
-
owner_id: "o1",
|
|
224
|
-
agent: "codex",
|
|
225
|
-
file_path: "history.jsonl",
|
|
226
|
-
scope: "global",
|
|
227
|
-
session_type: "history",
|
|
228
|
-
filename: "history.jsonl",
|
|
229
|
-
content_type: "application/jsonl",
|
|
230
|
-
size_bytes: 10,
|
|
231
|
-
content_hash: "abc",
|
|
232
|
-
version: 1,
|
|
233
|
-
created_at: "2026-04-08T00:00:00Z",
|
|
234
|
-
updated_at: "2026-04-08T00:00:00Z",
|
|
235
|
-
},
|
|
236
|
-
{
|
|
237
|
-
id: "p1",
|
|
238
|
-
owner_id: "o1",
|
|
239
|
-
agent: "codex",
|
|
240
|
-
file_path: "history.jsonl",
|
|
241
|
-
scope: "project:github.com/memaxlabs/memax",
|
|
242
|
-
session_type: "history",
|
|
243
|
-
filename: "history.jsonl",
|
|
244
|
-
content_type: "application/jsonl",
|
|
245
|
-
size_bytes: 10,
|
|
246
|
-
content_hash: "abc",
|
|
247
|
-
version: 2,
|
|
248
|
-
created_at: "2026-04-08T00:00:00Z",
|
|
249
|
-
updated_at: "2026-04-08T00:00:00Z",
|
|
250
|
-
},
|
|
251
|
-
]);
|
|
252
|
-
expect(pairs).toHaveLength(0);
|
|
253
|
-
});
|
|
254
|
-
});
|
|
255
|
-
//# sourceMappingURL=agent-sessions.test.js.map
|