universal-agent-memory 0.7.0 → 0.7.2

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 (56) hide show
  1. package/dist/benchmarks/improved-benchmark.d.ts.map +1 -1
  2. package/dist/benchmarks/improved-benchmark.js +3 -1
  3. package/dist/benchmarks/improved-benchmark.js.map +1 -1
  4. package/dist/benchmarks/multi-turn-agent.d.ts.map +1 -1
  5. package/dist/benchmarks/multi-turn-agent.js +6 -2
  6. package/dist/benchmarks/multi-turn-agent.js.map +1 -1
  7. package/dist/bin/cli.js +4 -1
  8. package/dist/bin/cli.js.map +1 -1
  9. package/dist/cli/update.d.ts +3 -0
  10. package/dist/cli/update.d.ts.map +1 -1
  11. package/dist/cli/update.js +155 -11
  12. package/dist/cli/update.js.map +1 -1
  13. package/dist/index.d.ts +8 -2
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +9 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/memory/backends/factory.d.ts.map +1 -1
  18. package/dist/memory/backends/factory.js +1 -0
  19. package/dist/memory/backends/factory.js.map +1 -1
  20. package/dist/memory/backends/qdrant-cloud.d.ts +14 -1
  21. package/dist/memory/backends/qdrant-cloud.d.ts.map +1 -1
  22. package/dist/memory/backends/qdrant-cloud.js +59 -4
  23. package/dist/memory/backends/qdrant-cloud.js.map +1 -1
  24. package/dist/memory/dynamic-retrieval.d.ts +62 -1
  25. package/dist/memory/dynamic-retrieval.d.ts.map +1 -1
  26. package/dist/memory/dynamic-retrieval.js +154 -32
  27. package/dist/memory/dynamic-retrieval.js.map +1 -1
  28. package/dist/memory/embeddings.d.ts +25 -2
  29. package/dist/memory/embeddings.d.ts.map +1 -1
  30. package/dist/memory/embeddings.js +72 -2
  31. package/dist/memory/embeddings.js.map +1 -1
  32. package/dist/memory/memory-consolidator.d.ts +36 -0
  33. package/dist/memory/memory-consolidator.d.ts.map +1 -1
  34. package/dist/memory/memory-consolidator.js +166 -0
  35. package/dist/memory/memory-consolidator.js.map +1 -1
  36. package/dist/memory/multi-view-memory.d.ts +134 -0
  37. package/dist/memory/multi-view-memory.d.ts.map +1 -0
  38. package/dist/memory/multi-view-memory.js +420 -0
  39. package/dist/memory/multi-view-memory.js.map +1 -0
  40. package/dist/memory/semantic-compression.d.ts +77 -0
  41. package/dist/memory/semantic-compression.d.ts.map +1 -0
  42. package/dist/memory/semantic-compression.js +344 -0
  43. package/dist/memory/semantic-compression.js.map +1 -0
  44. package/dist/memory/speculative-cache.d.ts +3 -0
  45. package/dist/memory/speculative-cache.d.ts.map +1 -1
  46. package/dist/memory/speculative-cache.js +2 -0
  47. package/dist/memory/speculative-cache.js.map +1 -1
  48. package/dist/utils/dijkstra.d.ts +17 -0
  49. package/dist/utils/dijkstra.d.ts.map +1 -0
  50. package/dist/utils/dijkstra.js +91 -0
  51. package/dist/utils/dijkstra.js.map +1 -0
  52. package/dist/utils/validate-json.d.ts +3 -4
  53. package/dist/utils/validate-json.d.ts.map +1 -1
  54. package/dist/utils/validate-json.js +31 -31
  55. package/dist/utils/validate-json.js.map +1 -1
  56. package/package.json +1 -1
@@ -31,6 +31,8 @@ export class AppError extends Error {
31
31
  * Accepts any valid JSON value (object, array, string, number, boolean, null).
32
32
  */
33
33
  const jsonSchema = z.unknown();
34
+ /** Maximum number of characters of the original input to include in error context. */
35
+ const MAX_ERROR_CONTEXT_CHARS = 100;
34
36
  /**
35
37
  * Validates that a string is valid JSON and parses it.
36
38
  *
@@ -40,8 +42,7 @@ const jsonSchema = z.unknown();
40
42
  *
41
43
  * @param input - The string to validate and parse as JSON
42
44
  * @returns The parsed JSON value (object, array, string, number, boolean, or null)
43
- * @throws AppError with code 'INVALID_INPUT' if input is not a string
44
- * @throws AppError with code 'JSON_PARSE_ERROR' if the string is not valid JSON
45
+ * @throws AppError with code 'INVALID_JSON' if the string is not valid JSON
45
46
  *
46
47
  * @example
47
48
  * ```typescript
@@ -58,42 +59,41 @@ const jsonSchema = z.unknown();
58
59
  * validateAndParseJSON('{invalid}');
59
60
  * } catch (error) {
60
61
  * if (error instanceof AppError) {
61
- * console.log(error.code); // 'JSON_PARSE_ERROR'
62
+ * console.log(error.code); // 'INVALID_JSON'
62
63
  * }
63
64
  * }
64
65
  * ```
65
66
  */
66
- export async function validateAndParseJSON(input) {
67
- // Validate input is a string using zod
68
- const stringSchema = z.string({
67
+ export function validateAndParseJSON(input) {
68
+ const jsonStringSchema = z
69
+ .string({
69
70
  required_error: 'Input is required',
70
71
  invalid_type_error: 'Input must be a string',
71
- });
72
- const validationResult = stringSchema.safeParse(input);
73
- if (!validationResult.success) {
74
- throw new AppError('Input must be a valid string', 'INVALID_INPUT', {
75
- errors: validationResult.error.errors,
76
- receivedType: typeof input,
77
- });
78
- }
79
- // Attempt to parse the JSON string
80
- let parsed;
81
- try {
82
- parsed = JSON.parse(validationResult.data);
83
- }
84
- catch (error) {
85
- throw new AppError(`Failed to parse JSON: ${error instanceof Error ? error.message : 'Unknown error'}`, 'JSON_PARSE_ERROR', {
86
- input: input.length > 100 ? `${input.substring(0, 100)}...` : input,
87
- originalError: error instanceof Error ? error.message : String(error),
88
- });
89
- }
90
- // Validate the parsed result with zod (accepts any valid JSON value)
91
- const parseResult = jsonSchema.safeParse(parsed);
92
- if (!parseResult.success) {
93
- throw new AppError('Parsed value failed schema validation', 'SCHEMA_VALIDATION_ERROR', {
94
- errors: parseResult.error.errors,
72
+ })
73
+ .transform((value, ctx) => {
74
+ try {
75
+ return JSON.parse(value);
76
+ }
77
+ catch (error) {
78
+ ctx.addIssue({
79
+ code: z.ZodIssueCode.custom,
80
+ message: error instanceof Error
81
+ ? `Invalid JSON: ${error.message}`
82
+ : 'Invalid JSON',
83
+ });
84
+ return z.NEVER;
85
+ }
86
+ })
87
+ .pipe(jsonSchema);
88
+ const result = jsonStringSchema.safeParse(input);
89
+ if (!result.success) {
90
+ throw new AppError('Input must be valid JSON', 'INVALID_JSON', {
91
+ errors: result.error.errors,
92
+ input: input.length > MAX_ERROR_CONTEXT_CHARS
93
+ ? `${input.substring(0, MAX_ERROR_CONTEXT_CHARS)}...`
94
+ : input,
95
95
  });
96
96
  }
97
- return parseResult.data;
97
+ return result.data;
98
98
  }
99
99
  //# sourceMappingURL=validate-json.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate-json.js","sourceRoot":"","sources":["../../src/utils/validate-json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,MAAM,OAAO,QAAS,SAAQ,KAAK;IACjC,2CAA2C;IAClC,IAAI,CAAS;IACtB,yCAAyC;IAChC,OAAO,CAA2B;IAE3C;;;;;;OAMG;IACH,YACE,OAAe,EACf,IAAY,EACZ,OAAiC;QAEjC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,uEAAuE;QACvE,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;AAE/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,KAAa;IACtD,uCAAuC;IACvC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;QAC5B,cAAc,EAAE,mBAAmB;QACnC,kBAAkB,EAAE,wBAAwB;KAC7C,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAEvD,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAC9B,MAAM,IAAI,QAAQ,CAChB,8BAA8B,EAC9B,eAAe,EACf;YACE,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC,MAAM;YACrC,YAAY,EAAE,OAAO,KAAK;SAC3B,CACF,CAAC;IACJ,CAAC;IAED,mCAAmC;IACnC,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,QAAQ,CAChB,yBAAyB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,EACnF,kBAAkB,EAClB;YACE,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;YACnE,aAAa,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SACtE,CACF,CAAC;IACJ,CAAC;IAED,qEAAqE;IACrE,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAEjD,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QACzB,MAAM,IAAI,QAAQ,CAChB,uCAAuC,EACvC,yBAAyB,EACzB;YACE,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,MAAM;SACjC,CACF,CAAC;IACJ,CAAC;IAED,OAAO,WAAW,CAAC,IAAI,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"validate-json.js","sourceRoot":"","sources":["../../src/utils/validate-json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,MAAM,OAAO,QAAS,SAAQ,KAAK;IACjC,2CAA2C;IAClC,IAAI,CAAS;IACtB,yCAAyC;IAChC,OAAO,CAA2B;IAE3C;;;;;;OAMG;IACH,YACE,OAAe,EACf,IAAY,EACZ,OAAiC;QAEjC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,uEAAuE;QACvE,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;AAE/B,sFAAsF;AACtF,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAEpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,MAAM,gBAAgB,GAAG,CAAC;SACvB,MAAM,CAAC;QACN,cAAc,EAAE,mBAAmB;QACnC,kBAAkB,EAAE,wBAAwB;KAC7C,CAAC;SACD,SAAS,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAY,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,OAAO,EACL,KAAK,YAAY,KAAK;oBACpB,CAAC,CAAC,iBAAiB,KAAK,CAAC,OAAO,EAAE;oBAClC,CAAC,CAAC,cAAc;aACrB,CAAC,CAAC;YACH,OAAO,CAAC,CAAC,KAAK,CAAC;QACjB,CAAC;IACH,CAAC,CAAC;SACD,IAAI,CAAC,UAAU,CAAC,CAAC;IAEpB,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAEjD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,QAAQ,CAAC,0BAA0B,EAAE,cAAc,EAAE;YAC7D,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;YAC3B,KAAK,EACH,KAAK,CAAC,MAAM,GAAG,uBAAuB;gBACpC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,uBAAuB,CAAC,KAAK;gBACrD,CAAC,CAAC,KAAK;SACZ,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "universal-agent-memory",
3
- "version": "0.7.0",
3
+ "version": "0.7.2",
4
4
  "description": "Universal AI agent memory system - CLAUDE.md templates, memory, worktrees for Claude Code, Factory.AI, VSCode, OpenCode",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",