@hasna/mementos 0.4.3 → 0.4.4

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/cli/index.js CHANGED
@@ -2595,6 +2595,9 @@ function getProject(idOrPath, db) {
2595
2595
  if (row)
2596
2596
  return parseProjectRow(row);
2597
2597
  row = d.query("SELECT * FROM projects WHERE path = ?").get(idOrPath);
2598
+ if (row)
2599
+ return parseProjectRow(row);
2600
+ row = d.query("SELECT * FROM projects WHERE LOWER(name) = ?").get(idOrPath.toLowerCase());
2598
2601
  if (row)
2599
2602
  return parseProjectRow(row);
2600
2603
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/db/projects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAejD,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,MAAM,EACrB,EAAE,CAAC,EAAE,QAAQ,GACZ,OAAO,CAyBT;AAED,wBAAgB,UAAU,CACxB,QAAQ,EAAE,MAAM,EAChB,EAAE,CAAC,EAAE,QAAQ,GACZ,OAAO,GAAG,IAAI,CAchB;AAED,wBAAgB,YAAY,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,EAAE,CAMrD"}
1
+ {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/db/projects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAejD,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,MAAM,EACrB,EAAE,CAAC,EAAE,QAAQ,GACZ,OAAO,CAyBT;AAED,wBAAgB,UAAU,CACxB,QAAQ,EAAE,MAAM,EAChB,EAAE,CAAC,EAAE,QAAQ,GACZ,OAAO,GAAG,IAAI,CAoBhB;AAED,wBAAgB,YAAY,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,EAAE,CAMrD"}
package/dist/index.js CHANGED
@@ -524,6 +524,9 @@ function getProject(idOrPath, db) {
524
524
  if (row)
525
525
  return parseProjectRow(row);
526
526
  row = d.query("SELECT * FROM projects WHERE path = ?").get(idOrPath);
527
+ if (row)
528
+ return parseProjectRow(row);
529
+ row = d.query("SELECT * FROM projects WHERE LOWER(name) = ?").get(idOrPath.toLowerCase());
527
530
  if (row)
528
531
  return parseProjectRow(row);
529
532
  return null;
package/dist/mcp/index.js CHANGED
@@ -4502,6 +4502,9 @@ function getProject(idOrPath, db) {
4502
4502
  if (row)
4503
4503
  return parseProjectRow(row);
4504
4504
  row = d.query("SELECT * FROM projects WHERE path = ?").get(idOrPath);
4505
+ if (row)
4506
+ return parseProjectRow(row);
4507
+ row = d.query("SELECT * FROM projects WHERE LOWER(name) = ?").get(idOrPath.toLowerCase());
4505
4508
  if (row)
4506
4509
  return parseProjectRow(row);
4507
4510
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":";AACA;;;GAGG;AA45BH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAoG9C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":";AACA;;;GAGG;AA87BH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAoG9C"}
@@ -495,6 +495,9 @@ function getProject(idOrPath, db) {
495
495
  if (row)
496
496
  return parseProjectRow(row);
497
497
  row = d.query("SELECT * FROM projects WHERE path = ?").get(idOrPath);
498
+ if (row)
499
+ return parseProjectRow(row);
500
+ row = d.query("SELECT * FROM projects WHERE LOWER(name) = ?").get(idOrPath.toLowerCase());
498
501
  if (row)
499
502
  return parseProjectRow(row);
500
503
  return null;
@@ -2297,6 +2300,19 @@ addRoute("POST", "/api/projects", async (req) => {
2297
2300
  const project = registerProject(body["name"], body["path"], body["description"], body["memory_prefix"]);
2298
2301
  return json(project, 201);
2299
2302
  });
2303
+ addRoute("GET", "/api/projects/:id", (_req, _url, params) => {
2304
+ const project = getProject(params["id"]);
2305
+ if (!project)
2306
+ return errorResponse("Project not found", 404);
2307
+ return json(project);
2308
+ });
2309
+ addRoute("GET", "/api/projects/:id/agents", (_req, _url, params) => {
2310
+ const project = getProject(params["id"]);
2311
+ if (!project)
2312
+ return errorResponse("Project not found", 404);
2313
+ const agents = listAgentsByProject(project.id);
2314
+ return json({ agents, count: agents.length });
2315
+ });
2300
2316
  addRoute("GET", "/api/inject", (_req, url) => {
2301
2317
  const q = getSearchParams(url);
2302
2318
  const maxTokens = q["max_tokens"] ? parseInt(q["max_tokens"], 10) : 500;
@@ -2353,8 +2369,16 @@ addRoute("GET", "/api/inject", (_req, url) => {
2353
2369
  const charBudget = maxTokens * 4;
2354
2370
  const lines = [];
2355
2371
  let totalChars = 0;
2372
+ const format = q["format"] || "xml";
2356
2373
  for (const m of unique) {
2357
- const line = `- [${m.scope}/${m.category}] ${m.key}: ${m.value}`;
2374
+ let line;
2375
+ if (format === "compact") {
2376
+ line = `${m.key}: ${m.value}`;
2377
+ } else if (format === "json") {
2378
+ line = JSON.stringify({ key: m.key, value: m.value, scope: m.scope, category: m.category, importance: m.importance });
2379
+ } else {
2380
+ line = `- [${m.scope}/${m.category}] ${m.key}: ${m.value}`;
2381
+ }
2358
2382
  if (totalChars + line.length > charBudget)
2359
2383
  break;
2360
2384
  lines.push(line);
@@ -2364,10 +2388,23 @@ addRoute("GET", "/api/inject", (_req, url) => {
2364
2388
  if (lines.length === 0) {
2365
2389
  return json({ context: "", memories_count: 0 });
2366
2390
  }
2367
- const context = `<agent-memories>
2391
+ let context;
2392
+ if (format === "compact") {
2393
+ context = lines.join(`
2394
+ `);
2395
+ } else if (format === "json") {
2396
+ context = `[${lines.join(",")}]`;
2397
+ } else if (format === "markdown") {
2398
+ context = `## Agent Memories
2399
+
2400
+ ${lines.join(`
2401
+ `)}`;
2402
+ } else {
2403
+ context = `<agent-memories>
2368
2404
  ${lines.join(`
2369
2405
  `)}
2370
2406
  </agent-memories>`;
2407
+ }
2371
2408
  return json({ context, memories_count: lines.length });
2372
2409
  });
2373
2410
  addRoute("GET", "/api/entities", (_req, url) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hasna/mementos",
3
- "version": "0.4.3",
3
+ "version": "0.4.4",
4
4
  "description": "Universal memory system for AI agents - CLI + MCP server + library API",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",