memax-cli 0.1.0-alpha.2 → 0.1.0-alpha.21

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 (97) hide show
  1. package/assets/skills/memax-memory/SKILL.md +154 -0
  2. package/dist/commands/auth.d.ts +1 -0
  3. package/dist/commands/auth.d.ts.map +1 -1
  4. package/dist/commands/auth.js +14 -7
  5. package/dist/commands/auth.js.map +1 -1
  6. package/dist/commands/capture.d.ts +17 -0
  7. package/dist/commands/capture.d.ts.map +1 -0
  8. package/dist/commands/capture.js +60 -0
  9. package/dist/commands/capture.js.map +1 -0
  10. package/dist/commands/delete.d.ts +1 -1
  11. package/dist/commands/delete.d.ts.map +1 -1
  12. package/dist/commands/delete.js +22 -5
  13. package/dist/commands/delete.js.map +1 -1
  14. package/dist/commands/hub.d.ts +4 -0
  15. package/dist/commands/hub.d.ts.map +1 -0
  16. package/dist/commands/hub.js +53 -0
  17. package/dist/commands/hub.js.map +1 -0
  18. package/dist/commands/list.d.ts +2 -1
  19. package/dist/commands/list.d.ts.map +1 -1
  20. package/dist/commands/list.js +35 -8
  21. package/dist/commands/list.js.map +1 -1
  22. package/dist/commands/login.d.ts.map +1 -1
  23. package/dist/commands/login.js +32 -7
  24. package/dist/commands/login.js.map +1 -1
  25. package/dist/commands/mcp.d.ts.map +1 -1
  26. package/dist/commands/mcp.js +226 -26
  27. package/dist/commands/mcp.js.map +1 -1
  28. package/dist/commands/push.d.ts +2 -1
  29. package/dist/commands/push.d.ts.map +1 -1
  30. package/dist/commands/push.js +49 -11
  31. package/dist/commands/push.js.map +1 -1
  32. package/dist/commands/recall.d.ts +1 -0
  33. package/dist/commands/recall.d.ts.map +1 -1
  34. package/dist/commands/recall.js +30 -27
  35. package/dist/commands/recall.js.map +1 -1
  36. package/dist/commands/setup-hooks.d.ts +12 -0
  37. package/dist/commands/setup-hooks.d.ts.map +1 -0
  38. package/dist/commands/setup-hooks.js +184 -0
  39. package/dist/commands/setup-hooks.js.map +1 -0
  40. package/dist/commands/setup-instructions.d.ts +21 -0
  41. package/dist/commands/setup-instructions.d.ts.map +1 -0
  42. package/dist/commands/setup-instructions.js +172 -0
  43. package/dist/commands/setup-instructions.js.map +1 -0
  44. package/dist/commands/setup-mcp.d.ts +14 -0
  45. package/dist/commands/setup-mcp.d.ts.map +1 -0
  46. package/dist/commands/setup-mcp.js +276 -0
  47. package/dist/commands/setup-mcp.js.map +1 -0
  48. package/dist/commands/setup-types.d.ts +20 -0
  49. package/dist/commands/setup-types.d.ts.map +1 -0
  50. package/dist/commands/setup-types.js +60 -0
  51. package/dist/commands/setup-types.js.map +1 -0
  52. package/dist/commands/setup.d.ts +18 -0
  53. package/dist/commands/setup.d.ts.map +1 -0
  54. package/dist/commands/setup.js +371 -0
  55. package/dist/commands/setup.js.map +1 -0
  56. package/dist/commands/show.d.ts.map +1 -1
  57. package/dist/commands/show.js +10 -13
  58. package/dist/commands/show.js.map +1 -1
  59. package/dist/commands/sync.d.ts +7 -2
  60. package/dist/commands/sync.d.ts.map +1 -1
  61. package/dist/commands/sync.js +614 -107
  62. package/dist/commands/sync.js.map +1 -1
  63. package/dist/index.js +85 -14
  64. package/dist/index.js.map +1 -1
  65. package/dist/lib/client.d.ts +6 -0
  66. package/dist/lib/client.d.ts.map +1 -0
  67. package/dist/lib/client.js +69 -0
  68. package/dist/lib/client.js.map +1 -0
  69. package/dist/lib/project-context.d.ts +40 -0
  70. package/dist/lib/project-context.d.ts.map +1 -0
  71. package/dist/lib/project-context.js +157 -0
  72. package/dist/lib/project-context.js.map +1 -0
  73. package/dist/lib/prompt.d.ts +7 -0
  74. package/dist/lib/prompt.d.ts.map +1 -0
  75. package/dist/lib/prompt.js +41 -0
  76. package/dist/lib/prompt.js.map +1 -0
  77. package/package.json +17 -13
  78. package/dist/lib/api.d.ts +0 -4
  79. package/dist/lib/api.d.ts.map +0 -1
  80. package/dist/lib/api.js +0 -95
  81. package/dist/lib/api.js.map +0 -1
  82. package/src/commands/auth.ts +0 -92
  83. package/src/commands/config.ts +0 -27
  84. package/src/commands/delete.ts +0 -20
  85. package/src/commands/hook.ts +0 -243
  86. package/src/commands/list.ts +0 -38
  87. package/src/commands/login.ts +0 -159
  88. package/src/commands/mcp.ts +0 -282
  89. package/src/commands/push.ts +0 -82
  90. package/src/commands/recall.ts +0 -160
  91. package/src/commands/show.ts +0 -35
  92. package/src/commands/sync.ts +0 -403
  93. package/src/index.ts +0 -167
  94. package/src/lib/api.ts +0 -110
  95. package/src/lib/config.ts +0 -61
  96. package/src/lib/credentials.ts +0 -42
  97. package/tsconfig.json +0 -9
@@ -0,0 +1,371 @@
1
+ import chalk from "chalk";
2
+ import { existsSync } from "node:fs";
3
+ import { join } from "node:path";
4
+ import { homedir } from "node:os";
5
+ import { execSync } from "node:child_process";
6
+ import { createInterface } from "node:readline";
7
+ import { commandExists, resolveMemaxBin, } from "./setup-types.js";
8
+ import { ensureApiKey, setupMcpRemote, setupMcp, printMcpConfigs, removeMcpJson, removeMcpToml, } from "./setup-mcp.js";
9
+ import { setupHooks, removeHooks } from "./setup-hooks.js";
10
+ import { injectInstructions, removeInstructions, installSkills, removeSkills, } from "./setup-instructions.js";
11
+ // --- Agent definitions ---
12
+ function getAgents() {
13
+ const home = homedir();
14
+ const cwd = process.cwd();
15
+ return [
16
+ {
17
+ name: "Claude Code",
18
+ id: "claude-code",
19
+ configPath: join(home, ".claude", "settings.json"),
20
+ format: "json-mcpServers",
21
+ mcpKey: "mcpServers",
22
+ hasHooks: true,
23
+ globalInstructionFile: join(home, ".claude", "CLAUDE.md"),
24
+ detect: () => existsSync(join(home, ".claude")) || commandExists("claude"),
25
+ },
26
+ {
27
+ name: "Cursor",
28
+ id: "cursor",
29
+ configPath: join(home, ".cursor", "mcp.json"),
30
+ format: "json-mcpServers",
31
+ mcpKey: "mcpServers",
32
+ hasHooks: false,
33
+ globalInstructionFile: null, // project-level .cursorrules only
34
+ detect: () => existsSync(join(home, ".cursor")) || commandExists("cursor"),
35
+ },
36
+ {
37
+ name: "Windsurf",
38
+ id: "windsurf",
39
+ configPath: join(home, ".codeium", "windsurf", "mcp_config.json"),
40
+ format: "json-mcpServers",
41
+ mcpKey: "mcpServers",
42
+ hasHooks: false,
43
+ globalInstructionFile: null, // project-level .windsurfrules only
44
+ detect: () => existsSync(join(home, ".codeium", "windsurf")) ||
45
+ commandExists("windsurf"),
46
+ },
47
+ {
48
+ name: "Gemini CLI",
49
+ id: "gemini",
50
+ configPath: join(home, ".gemini", "settings.json"),
51
+ format: "json-mcpServers",
52
+ mcpKey: "mcpServers",
53
+ hasHooks: true,
54
+ globalInstructionFile: join(home, ".gemini", "GEMINI.md"),
55
+ detect: () => existsSync(join(home, ".gemini")) || commandExists("gemini"),
56
+ },
57
+ {
58
+ name: "GitHub Copilot CLI",
59
+ id: "copilot",
60
+ configPath: join(home, ".copilot", "mcp-config.json"),
61
+ format: "json-mcpServers",
62
+ mcpKey: "mcpServers",
63
+ hasHooks: false,
64
+ globalInstructionFile: null, // uses .github/copilot-instructions.md (project-level)
65
+ detect: () => existsSync(join(home, ".copilot")) || commandExists("gh copilot"),
66
+ },
67
+ {
68
+ name: "Copilot (VS Code)",
69
+ id: "vscode",
70
+ configPath: join(".vscode", "mcp.json"),
71
+ format: "json-servers",
72
+ mcpKey: "servers",
73
+ hasHooks: false,
74
+ globalInstructionFile: null,
75
+ detect: () => existsSync(".vscode") || commandExists("code"),
76
+ },
77
+ {
78
+ name: "Codex CLI",
79
+ id: "codex",
80
+ configPath: join(home, ".codex", "config.toml"),
81
+ format: "toml",
82
+ mcpKey: "mcp_servers",
83
+ hasHooks: false,
84
+ globalInstructionFile: join(home, ".codex", "AGENTS.md"),
85
+ detect: () => existsSync(join(home, ".codex")) || commandExists("codex"),
86
+ },
87
+ {
88
+ name: "OpenClaw",
89
+ id: "openclaw",
90
+ configPath: join(home, ".openclaw", "openclaw.json"),
91
+ format: "json-mcpServers",
92
+ mcpKey: "mcp.servers",
93
+ hasHooks: false,
94
+ globalInstructionFile: null, // OpenClaw has its own memory system
95
+ detect: () => existsSync(join(home, ".openclaw")) || commandExists("openclaw"),
96
+ },
97
+ {
98
+ name: "OpenCode",
99
+ id: "opencode",
100
+ configPath: join(cwd, ".opencode", "opencode.jsonc"),
101
+ format: "json-mcpServers",
102
+ mcpKey: "mcp",
103
+ hasHooks: false,
104
+ globalInstructionFile: null, // project-level only
105
+ detect: () => existsSync(join(cwd, ".opencode")) || commandExists("opencode"),
106
+ },
107
+ ];
108
+ }
109
+ export async function setupCommand(options) {
110
+ const enableMcp = options.all || options.mcp;
111
+ const enableHooks = options.all || options.hooks;
112
+ const enableInstructions = options.all || options.instructions;
113
+ if (!enableMcp && !enableHooks && !enableInstructions && !options.print) {
114
+ printUsage();
115
+ return;
116
+ }
117
+ // --print: just output config JSON for manual copy/paste
118
+ if (options.print) {
119
+ await printMcpConfigs(options.local ?? false);
120
+ return;
121
+ }
122
+ // Remote mode (default): need API key for auth
123
+ const useRemote = !options.local;
124
+ let apiKey;
125
+ if (useRemote && enableMcp) {
126
+ apiKey = await ensureApiKey(options.hub);
127
+ if (!apiKey) {
128
+ console.error(chalk.red("\n Could not create API key. Log in first: memax login\n" +
129
+ " Or use --local for local MCP server.\n"));
130
+ process.exit(1);
131
+ }
132
+ }
133
+ // Local mode: need memax binary
134
+ let memaxBin = null;
135
+ if (!useRemote || enableHooks) {
136
+ memaxBin = resolveMemaxBin();
137
+ if (!memaxBin && !useRemote) {
138
+ console.error(chalk.red("\n Could not find memax binary.\n Install globally: npm install -g memax-cli@alpha\n"));
139
+ process.exit(1);
140
+ }
141
+ }
142
+ // Filter agents
143
+ const allAgents = getAgents();
144
+ const onlySet = options.only
145
+ ? new Set(options.only.split(",").map((s) => s.trim().toLowerCase()))
146
+ : null;
147
+ const skipSet = options.skip
148
+ ? new Set(options.skip.split(",").map((s) => s.trim().toLowerCase()))
149
+ : new Set();
150
+ const agents = allAgents.filter((a) => {
151
+ if (skipSet.has(a.id))
152
+ return false;
153
+ if (onlySet)
154
+ return onlySet.has(a.id);
155
+ return a.detect();
156
+ });
157
+ if (agents.length === 0) {
158
+ console.log(chalk.yellow("\n No supported AI agents detected.\n"));
159
+ console.log(chalk.gray(" Supported agents:"));
160
+ for (const a of allAgents) {
161
+ console.log(chalk.gray(` • ${a.name} (--only ${a.id})`));
162
+ }
163
+ console.log(chalk.gray("\n Use --only to force setup for a specific agent.\n"));
164
+ return;
165
+ }
166
+ console.log(chalk.bold("\n Memax Setup\n"));
167
+ if (useRemote) {
168
+ console.log(chalk.gray(" Mode: remote server (recommended)\n"));
169
+ }
170
+ else {
171
+ console.log(chalk.gray(" Mode: local CLI\n"));
172
+ }
173
+ const results = [];
174
+ for (const agent of agents) {
175
+ const changes = [];
176
+ // MCP setup
177
+ if (enableMcp) {
178
+ try {
179
+ if (useRemote) {
180
+ setupMcpRemote(agent, apiKey);
181
+ }
182
+ else {
183
+ setupMcp(agent, memaxBin);
184
+ }
185
+ changes.push(useRemote ? "MCP server (remote)" : "MCP server (local)");
186
+ }
187
+ catch (err) {
188
+ console.log(chalk.red(` ✗ ${agent.name}: MCP setup failed — ${err.message}`));
189
+ }
190
+ }
191
+ // Hook setup (only for agents that support it — needs local binary)
192
+ if (enableHooks && agent.hasHooks && memaxBin) {
193
+ try {
194
+ setupHooks(agent, memaxBin);
195
+ changes.push("Context injection hook");
196
+ }
197
+ catch (err) {
198
+ console.log(chalk.red(` ✗ ${agent.name}: Hook setup failed — ${err.message}`));
199
+ }
200
+ }
201
+ // Inject memax instructions into agent's global instruction file
202
+ if (enableInstructions && agent.globalInstructionFile) {
203
+ try {
204
+ injectInstructions(agent.globalInstructionFile);
205
+ changes.push("Instructions injected");
206
+ }
207
+ catch (err) {
208
+ console.log(chalk.red(` ✗ ${agent.name}: Instruction injection failed — ${err.message}`));
209
+ }
210
+ // Install memax skills for agents that support skill directories
211
+ try {
212
+ const skillCount = await installSkills(agent);
213
+ if (skillCount > 0) {
214
+ changes.push(`${skillCount} skill${skillCount > 1 ? "s" : ""} installed`);
215
+ }
216
+ }
217
+ catch (err) {
218
+ console.log(chalk.red(` ✗ ${agent.name}: Skill install failed — ${err.message}`));
219
+ }
220
+ }
221
+ if (changes.length > 0) {
222
+ results.push({ agent: agent.name, changes });
223
+ }
224
+ }
225
+ // Print summary
226
+ if (results.length === 0) {
227
+ console.log(chalk.yellow(" No changes made.\n"));
228
+ return;
229
+ }
230
+ console.log(chalk.green(" Configured:\n"));
231
+ for (const r of results) {
232
+ console.log(chalk.white(` ${r.agent}`));
233
+ for (const c of r.changes) {
234
+ console.log(chalk.gray(` ✓ ${c}`));
235
+ }
236
+ }
237
+ console.log(chalk.gray("\n MCP tools available to all configured agents:"));
238
+ console.log(chalk.gray(" • memax_recall — semantic search your knowledge"));
239
+ console.log(chalk.gray(" • memax_push — save knowledge from sessions"));
240
+ console.log(chalk.gray(" • memax_get — read full note by ID"));
241
+ console.log(chalk.gray(" • memax_search — browse notes by category"));
242
+ if (enableHooks) {
243
+ const hookAgents = results.filter((r) => r.changes.includes("Context injection hook"));
244
+ if (hookAgents.length > 0) {
245
+ console.log(chalk.gray(`\n Hooks installed for: ${hookAgents.map((r) => r.agent).join(", ")}`));
246
+ console.log(chalk.gray(" Every prompt gets relevant context injected automatically."));
247
+ }
248
+ }
249
+ console.log(chalk.gray("\n Restart your agents for changes to take effect."));
250
+ // Offer to restore configs from cloud if this looks like a new device
251
+ if (enableInstructions || options.all) {
252
+ try {
253
+ const { syncAgentMemoryCommand } = await import("./sync.js");
254
+ const rl = createInterface({
255
+ input: process.stdin,
256
+ output: process.stdout,
257
+ });
258
+ const restore = await new Promise((resolve) => {
259
+ rl.question(chalk.gray("\n Restore agent configs from Memax cloud? [Y/n] "), (answer) => {
260
+ rl.close();
261
+ resolve(answer.trim().toLowerCase() !== "n");
262
+ });
263
+ });
264
+ if (restore) {
265
+ await syncAgentMemoryCommand({ pull: true });
266
+ }
267
+ }
268
+ catch {
269
+ // Sync not available (not logged in, etc.) — skip silently
270
+ }
271
+ }
272
+ console.log();
273
+ }
274
+ // --- Teardown command ---
275
+ export async function teardownCommand(options) {
276
+ const allAgents = getAgents();
277
+ const onlySet = options.only
278
+ ? new Set(options.only.split(",").map((s) => s.trim().toLowerCase()))
279
+ : null;
280
+ const agents = onlySet
281
+ ? allAgents.filter((a) => onlySet.has(a.id))
282
+ : allAgents;
283
+ let removed = false;
284
+ for (const agent of agents) {
285
+ try {
286
+ // Claude Code uses its own CLI
287
+ if (agent.id === "claude-code") {
288
+ if (commandExists("claude")) {
289
+ try {
290
+ execSync("claude mcp remove memax", { stdio: "pipe" });
291
+ console.log(chalk.gray(` Removed MCP from ${agent.name}`));
292
+ removed = true;
293
+ }
294
+ catch {
295
+ // Not installed
296
+ }
297
+ }
298
+ if (agent.hasHooks && existsSync(agent.configPath)) {
299
+ if (removeHooks(agent))
300
+ removed = true;
301
+ }
302
+ if (agent.globalInstructionFile &&
303
+ removeInstructions(agent.globalInstructionFile)) {
304
+ console.log(chalk.gray(` Removed instructions from ${agent.name}`));
305
+ removed = true;
306
+ }
307
+ continue;
308
+ }
309
+ if (!existsSync(agent.configPath))
310
+ continue;
311
+ if (agent.format === "toml") {
312
+ if (removeMcpToml(agent))
313
+ removed = true;
314
+ }
315
+ else {
316
+ if (removeMcpJson(agent))
317
+ removed = true;
318
+ }
319
+ if (agent.hasHooks && removeHooks(agent))
320
+ removed = true;
321
+ if (agent.globalInstructionFile &&
322
+ removeInstructions(agent.globalInstructionFile)) {
323
+ console.log(chalk.gray(` Removed instructions from ${agent.name}`));
324
+ removed = true;
325
+ }
326
+ if (removeSkills(agent)) {
327
+ console.log(chalk.gray(` Removed skills from ${agent.name}`));
328
+ removed = true;
329
+ }
330
+ }
331
+ catch {
332
+ // Skip agents we can't clean up
333
+ }
334
+ }
335
+ if (!removed) {
336
+ console.log(chalk.yellow("\n No Memax integrations found to remove.\n"));
337
+ return;
338
+ }
339
+ console.log(chalk.green("\n Memax integrations removed.\n Restart your agents for changes to take effect.\n"));
340
+ }
341
+ // --- Usage ---
342
+ function printUsage() {
343
+ const agents = getAgents();
344
+ const detected = agents.filter((a) => a.detect());
345
+ console.log(chalk.bold("\n Memax Setup — Configure AI Agent Integrations\n"));
346
+ if (detected.length > 0) {
347
+ console.log(chalk.gray(" Detected agents:"));
348
+ for (const a of detected) {
349
+ const hookNote = a.hasHooks ? " (MCP + hooks)" : " (MCP)";
350
+ console.log(chalk.white(` • ${a.name}${hookNote}`));
351
+ }
352
+ console.log();
353
+ }
354
+ console.log(chalk.gray(" Usage:\n"));
355
+ console.log(chalk.gray(" memax setup --mcp Remote MCP server for all detected agents"));
356
+ console.log(chalk.gray(" memax setup --instructions Inject memax usage instructions into agent configs"));
357
+ console.log(chalk.gray(" memax setup --all MCP + hooks + instructions"));
358
+ console.log(chalk.gray(" memax setup --mcp --local Use local CLI instead of remote server"));
359
+ console.log(chalk.gray(" memax setup --print Print MCP config to copy/paste"));
360
+ console.log(chalk.gray(" memax setup --mcp --only claude-code,cursor"));
361
+ console.log(chalk.gray(" memax teardown Remove all integrations\n"));
362
+ console.log(chalk.gray(" Supported agents:"));
363
+ for (const a of agents) {
364
+ const status = a.detect()
365
+ ? chalk.green("detected")
366
+ : chalk.gray("not found");
367
+ console.log(chalk.gray(` ${a.id.padEnd(14)} ${a.name.padEnd(20)} ${status}`));
368
+ }
369
+ console.log();
370
+ }
371
+ //# sourceMappingURL=setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"show.d.ts","sourceRoot":"","sources":["../../src/commands/show.ts"],"names":[],"mappings":"AAIA,wBAAsB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA8B3D"}
1
+ {"version":3,"file":"show.d.ts","sourceRoot":"","sources":["../../src/commands/show.ts"],"names":[],"mappings":"AAGA,wBAAsB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA2B3D"}
@@ -1,24 +1,21 @@
1
1
  import chalk from "chalk";
2
- import { apiGet } from "../lib/api.js";
2
+ import { getClient } from "../lib/client.js";
3
3
  export async function showCommand(id) {
4
4
  if (!id) {
5
- console.error(chalk.red("Provide a note ID: memax show <id>"));
5
+ console.error(chalk.red("Provide a memory ID: memax show <id>"));
6
6
  process.exit(1);
7
7
  }
8
8
  try {
9
- const note = await apiGet(`/v1/notes/${id}`);
10
- console.log(chalk.bold(note.title));
11
- console.log(chalk.gray(`${note.category} · ${note.source} · v${note.version} · ${note.state}`));
12
- if (note.tags?.length) {
13
- console.log(chalk.gray(`tags: ${note.tags.join(", ")}`));
9
+ const memory = await getClient().memories.get(id);
10
+ console.log(chalk.bold(memory.title));
11
+ console.log(chalk.gray(`${memory.category} · ${memory.source} · v${memory.version} · ${memory.state}`));
12
+ if (memory.tags?.length) {
13
+ console.log(chalk.gray(`tags: ${memory.tags.join(", ")}`));
14
14
  }
15
- console.log(chalk.gray(`id: ${note.id}`));
15
+ console.log(chalk.gray(`id: ${memory.id}`));
16
16
  console.log();
17
- // API returns content inline; the shared Note type doesn't include it
18
- // because production stores content in R2. Cast to access it.
19
- const content = note.content;
20
- if (content) {
21
- console.log(content);
17
+ if (memory.content) {
18
+ console.log(memory.content);
22
19
  }
23
20
  }
24
21
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"show.js","sourceRoot":"","sources":["../../src/commands/show.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAGvC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,EAAU;IAC1C,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAO,aAAa,EAAE,EAAE,CAAC,CAAC;QAEnD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,GAAG,IAAI,CAAC,QAAQ,MAAM,IAAI,CAAC,MAAM,OAAO,IAAI,CAAC,OAAO,MAAM,IAAI,CAAC,KAAK,EAAE,CACvE,CACF,CAAC;QACF,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,sEAAsE;QACtE,8DAA8D;QAC9D,MAAM,OAAO,GAAI,IAAoC,CAAC,OAAO,CAAC;QAC9D,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvB,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":"show.js","sourceRoot":"","sources":["../../src/commands/show.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,EAAU;IAC1C,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAElD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,GAAG,MAAM,CAAC,QAAQ,MAAM,MAAM,CAAC,MAAM,OAAO,MAAM,CAAC,OAAO,MAAM,MAAM,CAAC,KAAK,EAAE,CAC/E,CACF,CAAC;QACF,IAAI,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9B,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"}
@@ -3,9 +3,14 @@ interface SyncOptions {
3
3
  category?: string;
4
4
  watch?: boolean;
5
5
  ignore?: string;
6
- agentMemory?: boolean;
6
+ yes?: boolean;
7
7
  }
8
- export declare function syncAgentMemoryCommand(): Promise<void>;
8
+ export declare function syncAgentMemoryCommand(options?: {
9
+ push?: boolean;
10
+ pull?: boolean;
11
+ }): Promise<void>;
12
+ export declare function listAgentConfigsCommand(): Promise<void>;
13
+ export declare function deleteAgentConfigsCommand(): Promise<void>;
9
14
  export declare function syncCommand(directory: string | undefined, options: SyncOptions): Promise<void>;
10
15
  export {};
11
16
  //# sourceMappingURL=sync.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAaA,UAAU,WAAW;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAsCD,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAE5D;AAED,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CAyEf"}
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAsBA,UAAU,WAAW;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAsCD,wBAAsB,sBAAsB,CAC1C,OAAO,GAAE;IACP,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;CACX,GACL,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAwD7D;AAED,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC,CAkG/D;AAYD,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CAmFf"}