@mastra/memory 1.0.0-beta.1 → 1.0.0-beta.11

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 (73) hide show
  1. package/CHANGELOG.md +355 -0
  2. package/dist/_types/@internal_ai-sdk-v4/dist/index.d.ts +7549 -0
  3. package/dist/chunk-DGUM43GV.js +10 -0
  4. package/dist/chunk-DGUM43GV.js.map +1 -0
  5. package/dist/chunk-JEQ2X3Z6.cjs +12 -0
  6. package/dist/chunk-JEQ2X3Z6.cjs.map +1 -0
  7. package/dist/chunk-KMQS2YEC.js +79 -0
  8. package/dist/chunk-KMQS2YEC.js.map +1 -0
  9. package/dist/chunk-MMUHFOCG.js +79 -0
  10. package/dist/chunk-MMUHFOCG.js.map +1 -0
  11. package/dist/chunk-QY6BZOPJ.js +250 -0
  12. package/dist/chunk-QY6BZOPJ.js.map +1 -0
  13. package/dist/chunk-SG3GRV3O.cjs +84 -0
  14. package/dist/chunk-SG3GRV3O.cjs.map +1 -0
  15. package/dist/chunk-W72AYUIF.cjs +252 -0
  16. package/dist/chunk-W72AYUIF.cjs.map +1 -0
  17. package/dist/chunk-WC4XBMZT.js +250 -0
  18. package/dist/chunk-WC4XBMZT.js.map +1 -0
  19. package/dist/chunk-YMNW6DEN.cjs +252 -0
  20. package/dist/chunk-YMNW6DEN.cjs.map +1 -0
  21. package/dist/chunk-ZUQPUTTO.cjs +84 -0
  22. package/dist/chunk-ZUQPUTTO.cjs.map +1 -0
  23. package/dist/docs/README.md +36 -0
  24. package/dist/docs/SKILL.md +42 -0
  25. package/dist/docs/SOURCE_MAP.json +31 -0
  26. package/dist/docs/agents/01-agent-memory.md +160 -0
  27. package/dist/docs/agents/02-networks.md +236 -0
  28. package/dist/docs/agents/03-agent-approval.md +317 -0
  29. package/dist/docs/core/01-reference.md +114 -0
  30. package/dist/docs/memory/01-overview.md +76 -0
  31. package/dist/docs/memory/02-storage.md +181 -0
  32. package/dist/docs/memory/03-working-memory.md +386 -0
  33. package/dist/docs/memory/04-semantic-recall.md +235 -0
  34. package/dist/docs/memory/05-memory-processors.md +319 -0
  35. package/dist/docs/memory/06-reference.md +617 -0
  36. package/dist/docs/processors/01-reference.md +81 -0
  37. package/dist/docs/storage/01-reference.md +972 -0
  38. package/dist/docs/vectors/01-reference.md +929 -0
  39. package/dist/index.cjs +14845 -115
  40. package/dist/index.cjs.map +1 -1
  41. package/dist/index.d.ts +145 -5
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +14807 -119
  44. package/dist/index.js.map +1 -1
  45. package/dist/token-6GSAFR2W-JV3TZR4M.cjs +63 -0
  46. package/dist/token-6GSAFR2W-JV3TZR4M.cjs.map +1 -0
  47. package/dist/token-6GSAFR2W-K2BTU23I.js +61 -0
  48. package/dist/token-6GSAFR2W-K2BTU23I.js.map +1 -0
  49. package/dist/token-6GSAFR2W-VLY2XUPA.js +61 -0
  50. package/dist/token-6GSAFR2W-VLY2XUPA.js.map +1 -0
  51. package/dist/token-6GSAFR2W-YCB5SK2Z.cjs +63 -0
  52. package/dist/token-6GSAFR2W-YCB5SK2Z.cjs.map +1 -0
  53. package/dist/token-util-NEHG7TUY-7IL6JUVY.cjs +10 -0
  54. package/dist/token-util-NEHG7TUY-7IL6JUVY.cjs.map +1 -0
  55. package/dist/token-util-NEHG7TUY-HF7KBP2H.cjs +10 -0
  56. package/dist/token-util-NEHG7TUY-HF7KBP2H.cjs.map +1 -0
  57. package/dist/token-util-NEHG7TUY-KSXDO2NO.js +8 -0
  58. package/dist/token-util-NEHG7TUY-KSXDO2NO.js.map +1 -0
  59. package/dist/token-util-NEHG7TUY-TIJ3LMSH.js +8 -0
  60. package/dist/token-util-NEHG7TUY-TIJ3LMSH.js.map +1 -0
  61. package/dist/tools/working-memory.d.ts +10 -2
  62. package/dist/tools/working-memory.d.ts.map +1 -1
  63. package/package.json +19 -25
  64. package/dist/processors/index.cjs +0 -165
  65. package/dist/processors/index.cjs.map +0 -1
  66. package/dist/processors/index.d.ts +0 -3
  67. package/dist/processors/index.d.ts.map +0 -1
  68. package/dist/processors/index.js +0 -158
  69. package/dist/processors/index.js.map +0 -1
  70. package/dist/processors/token-limiter.d.ts +0 -32
  71. package/dist/processors/token-limiter.d.ts.map +0 -1
  72. package/dist/processors/tool-call-filter.d.ts +0 -20
  73. package/dist/processors/tool-call-filter.d.ts.map +0 -1
@@ -0,0 +1,252 @@
1
+ 'use strict';
2
+
3
+ var chunkSG3GRV3O_cjs = require('./chunk-SG3GRV3O.cjs');
4
+
5
+ // ../_vendored/ai_v5/dist/chunk-OL3SSKUZ.js
6
+ var require_token_io = chunkSG3GRV3O_cjs.__commonJS({
7
+ "../../../node_modules/.pnpm/@vercel+oidc@3.0.5/node_modules/@vercel/oidc/dist/token-io.js"(exports, module) {
8
+ var __create = Object.create;
9
+ var __defProp = Object.defineProperty;
10
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
11
+ var __getOwnPropNames = Object.getOwnPropertyNames;
12
+ var __getProtoOf = Object.getPrototypeOf;
13
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
14
+ var __export = (target, all) => {
15
+ for (var name in all)
16
+ __defProp(target, name, { get: all[name], enumerable: true });
17
+ };
18
+ var __copyProps = (to, from, except, desc) => {
19
+ if (from && typeof from === "object" || typeof from === "function") {
20
+ for (let key of __getOwnPropNames(from))
21
+ if (!__hasOwnProp.call(to, key) && key !== except)
22
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
23
+ }
24
+ return to;
25
+ };
26
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
27
+ // If the importer is in node compatibility mode or this is not an ESM
28
+ // file that has been converted to a CommonJS file using a Babel-
29
+ // compatible transform (i.e. "__esModule" has not been set), then set
30
+ // "default" to the CommonJS "module.exports" for node compatibility.
31
+ !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
32
+ mod
33
+ ));
34
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
35
+ var token_io_exports = {};
36
+ __export(token_io_exports, {
37
+ findRootDir: () => findRootDir,
38
+ getUserDataDir: () => getUserDataDir
39
+ });
40
+ module.exports = __toCommonJS(token_io_exports);
41
+ var import_path = __toESM(chunkSG3GRV3O_cjs.__require("path"));
42
+ var import_fs = __toESM(chunkSG3GRV3O_cjs.__require("fs"));
43
+ var import_os = __toESM(chunkSG3GRV3O_cjs.__require("os"));
44
+ var import_token_error = chunkSG3GRV3O_cjs.require_token_error();
45
+ function findRootDir() {
46
+ try {
47
+ let dir = process.cwd();
48
+ while (dir !== import_path.default.dirname(dir)) {
49
+ const pkgPath = import_path.default.join(dir, ".vercel");
50
+ if (import_fs.default.existsSync(pkgPath)) {
51
+ return dir;
52
+ }
53
+ dir = import_path.default.dirname(dir);
54
+ }
55
+ } catch (e) {
56
+ throw new import_token_error.VercelOidcTokenError(
57
+ "Token refresh only supported in node server environments"
58
+ );
59
+ }
60
+ throw new import_token_error.VercelOidcTokenError("Unable to find root directory");
61
+ }
62
+ function getUserDataDir() {
63
+ if (process.env.XDG_DATA_HOME) {
64
+ return process.env.XDG_DATA_HOME;
65
+ }
66
+ switch (import_os.default.platform()) {
67
+ case "darwin":
68
+ return import_path.default.join(import_os.default.homedir(), "Library/Application Support");
69
+ case "linux":
70
+ return import_path.default.join(import_os.default.homedir(), ".local/share");
71
+ case "win32":
72
+ if (process.env.LOCALAPPDATA) {
73
+ return process.env.LOCALAPPDATA;
74
+ }
75
+ return null;
76
+ default:
77
+ return null;
78
+ }
79
+ }
80
+ }
81
+ });
82
+ var require_token_util = chunkSG3GRV3O_cjs.__commonJS({
83
+ "../../../node_modules/.pnpm/@vercel+oidc@3.0.5/node_modules/@vercel/oidc/dist/token-util.js"(exports, module) {
84
+ var __create = Object.create;
85
+ var __defProp = Object.defineProperty;
86
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
87
+ var __getOwnPropNames = Object.getOwnPropertyNames;
88
+ var __getProtoOf = Object.getPrototypeOf;
89
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
90
+ var __export = (target, all) => {
91
+ for (var name in all)
92
+ __defProp(target, name, { get: all[name], enumerable: true });
93
+ };
94
+ var __copyProps = (to, from, except, desc) => {
95
+ if (from && typeof from === "object" || typeof from === "function") {
96
+ for (let key of __getOwnPropNames(from))
97
+ if (!__hasOwnProp.call(to, key) && key !== except)
98
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
99
+ }
100
+ return to;
101
+ };
102
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
103
+ // If the importer is in node compatibility mode or this is not an ESM
104
+ // file that has been converted to a CommonJS file using a Babel-
105
+ // compatible transform (i.e. "__esModule" has not been set), then set
106
+ // "default" to the CommonJS "module.exports" for node compatibility.
107
+ !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
108
+ mod
109
+ ));
110
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
111
+ var token_util_exports = {};
112
+ __export(token_util_exports, {
113
+ assertVercelOidcTokenResponse: () => assertVercelOidcTokenResponse,
114
+ findProjectInfo: () => findProjectInfo,
115
+ getTokenPayload: () => getTokenPayload,
116
+ getVercelCliToken: () => getVercelCliToken,
117
+ getVercelDataDir: () => getVercelDataDir,
118
+ getVercelOidcToken: () => getVercelOidcToken,
119
+ isExpired: () => isExpired,
120
+ loadToken: () => loadToken,
121
+ saveToken: () => saveToken
122
+ });
123
+ module.exports = __toCommonJS(token_util_exports);
124
+ var path = __toESM(chunkSG3GRV3O_cjs.__require("path"));
125
+ var fs = __toESM(chunkSG3GRV3O_cjs.__require("fs"));
126
+ var import_token_error = chunkSG3GRV3O_cjs.require_token_error();
127
+ var import_token_io = require_token_io();
128
+ function getVercelDataDir() {
129
+ const vercelFolder = "com.vercel.cli";
130
+ const dataDir = (0, import_token_io.getUserDataDir)();
131
+ if (!dataDir) {
132
+ return null;
133
+ }
134
+ return path.join(dataDir, vercelFolder);
135
+ }
136
+ function getVercelCliToken() {
137
+ const dataDir = getVercelDataDir();
138
+ if (!dataDir) {
139
+ return null;
140
+ }
141
+ const tokenPath = path.join(dataDir, "auth.json");
142
+ if (!fs.existsSync(tokenPath)) {
143
+ return null;
144
+ }
145
+ const token = fs.readFileSync(tokenPath, "utf8");
146
+ if (!token) {
147
+ return null;
148
+ }
149
+ return JSON.parse(token).token;
150
+ }
151
+ async function getVercelOidcToken(authToken, projectId, teamId) {
152
+ try {
153
+ const url = `https://api.vercel.com/v1/projects/${projectId}/token?source=vercel-oidc-refresh${teamId ? `&teamId=${teamId}` : ""}`;
154
+ const res = await fetch(url, {
155
+ method: "POST",
156
+ headers: {
157
+ Authorization: `Bearer ${authToken}`
158
+ }
159
+ });
160
+ if (!res.ok) {
161
+ throw new import_token_error.VercelOidcTokenError(
162
+ `Failed to refresh OIDC token: ${res.statusText}`
163
+ );
164
+ }
165
+ const tokenRes = await res.json();
166
+ assertVercelOidcTokenResponse(tokenRes);
167
+ return tokenRes;
168
+ } catch (e) {
169
+ throw new import_token_error.VercelOidcTokenError(`Failed to refresh OIDC token`, e);
170
+ }
171
+ }
172
+ function assertVercelOidcTokenResponse(res) {
173
+ if (!res || typeof res !== "object") {
174
+ throw new TypeError("Expected an object");
175
+ }
176
+ if (!("token" in res) || typeof res.token !== "string") {
177
+ throw new TypeError("Expected a string-valued token property");
178
+ }
179
+ }
180
+ function findProjectInfo() {
181
+ const dir = (0, import_token_io.findRootDir)();
182
+ if (!dir) {
183
+ throw new import_token_error.VercelOidcTokenError("Unable to find root directory");
184
+ }
185
+ try {
186
+ const prjPath = path.join(dir, ".vercel", "project.json");
187
+ if (!fs.existsSync(prjPath)) {
188
+ throw new import_token_error.VercelOidcTokenError("project.json not found");
189
+ }
190
+ const prj = JSON.parse(fs.readFileSync(prjPath, "utf8"));
191
+ if (typeof prj.projectId !== "string" && typeof prj.orgId !== "string") {
192
+ throw new TypeError("Expected a string-valued projectId property");
193
+ }
194
+ return { projectId: prj.projectId, teamId: prj.orgId };
195
+ } catch (e) {
196
+ throw new import_token_error.VercelOidcTokenError(`Unable to find project ID`, e);
197
+ }
198
+ }
199
+ function saveToken(token, projectId) {
200
+ try {
201
+ const dir = (0, import_token_io.getUserDataDir)();
202
+ if (!dir) {
203
+ throw new import_token_error.VercelOidcTokenError("Unable to find user data directory");
204
+ }
205
+ const tokenPath = path.join(dir, "com.vercel.token", `${projectId}.json`);
206
+ const tokenJson = JSON.stringify(token);
207
+ fs.mkdirSync(path.dirname(tokenPath), { mode: 504, recursive: true });
208
+ fs.writeFileSync(tokenPath, tokenJson);
209
+ fs.chmodSync(tokenPath, 432);
210
+ return;
211
+ } catch (e) {
212
+ throw new import_token_error.VercelOidcTokenError(`Failed to save token`, e);
213
+ }
214
+ }
215
+ function loadToken(projectId) {
216
+ try {
217
+ const dir = (0, import_token_io.getUserDataDir)();
218
+ if (!dir) {
219
+ return null;
220
+ }
221
+ const tokenPath = path.join(dir, "com.vercel.token", `${projectId}.json`);
222
+ if (!fs.existsSync(tokenPath)) {
223
+ return null;
224
+ }
225
+ const token = JSON.parse(fs.readFileSync(tokenPath, "utf8"));
226
+ assertVercelOidcTokenResponse(token);
227
+ return token;
228
+ } catch (e) {
229
+ throw new import_token_error.VercelOidcTokenError(`Failed to load token`, e);
230
+ }
231
+ }
232
+ function getTokenPayload(token) {
233
+ const tokenParts = token.split(".");
234
+ if (tokenParts.length !== 3) {
235
+ throw new import_token_error.VercelOidcTokenError("Invalid token");
236
+ }
237
+ const base64 = tokenParts[1].replace(/-/g, "+").replace(/_/g, "/");
238
+ const padded = base64.padEnd(
239
+ base64.length + (4 - base64.length % 4) % 4,
240
+ "="
241
+ );
242
+ return JSON.parse(Buffer.from(padded, "base64").toString("utf8"));
243
+ }
244
+ function isExpired(token) {
245
+ return token.exp * 1e3 < Date.now();
246
+ }
247
+ }
248
+ });
249
+
250
+ exports.require_token_util = require_token_util;
251
+ //# sourceMappingURL=chunk-YMNW6DEN.cjs.map
252
+ //# sourceMappingURL=chunk-YMNW6DEN.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../node_modules/.pnpm/@vercel+oidc@3.0.5/node_modules/@vercel/oidc/dist/token-io.js","../../../node_modules/.pnpm/@vercel+oidc@3.0.5/node_modules/@vercel/oidc/dist/token-util.js"],"names":["__commonJS","__require","require_token_error"],"mappings":"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","file":"chunk-YMNW6DEN.cjs","sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar token_io_exports = {};\n__export(token_io_exports, {\n findRootDir: () => findRootDir,\n getUserDataDir: () => getUserDataDir\n});\nmodule.exports = __toCommonJS(token_io_exports);\nvar import_path = __toESM(require(\"path\"));\nvar import_fs = __toESM(require(\"fs\"));\nvar import_os = __toESM(require(\"os\"));\nvar import_token_error = require(\"./token-error\");\nfunction findRootDir() {\n try {\n let dir = process.cwd();\n while (dir !== import_path.default.dirname(dir)) {\n const pkgPath = import_path.default.join(dir, \".vercel\");\n if (import_fs.default.existsSync(pkgPath)) {\n return dir;\n }\n dir = import_path.default.dirname(dir);\n }\n } catch (e) {\n throw new import_token_error.VercelOidcTokenError(\n \"Token refresh only supported in node server environments\"\n );\n }\n throw new import_token_error.VercelOidcTokenError(\"Unable to find root directory\");\n}\nfunction getUserDataDir() {\n if (process.env.XDG_DATA_HOME) {\n return process.env.XDG_DATA_HOME;\n }\n switch (import_os.default.platform()) {\n case \"darwin\":\n return import_path.default.join(import_os.default.homedir(), \"Library/Application Support\");\n case \"linux\":\n return import_path.default.join(import_os.default.homedir(), \".local/share\");\n case \"win32\":\n if (process.env.LOCALAPPDATA) {\n return process.env.LOCALAPPDATA;\n }\n return null;\n default:\n return null;\n }\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n findRootDir,\n getUserDataDir\n});\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar token_util_exports = {};\n__export(token_util_exports, {\n assertVercelOidcTokenResponse: () => assertVercelOidcTokenResponse,\n findProjectInfo: () => findProjectInfo,\n getTokenPayload: () => getTokenPayload,\n getVercelCliToken: () => getVercelCliToken,\n getVercelDataDir: () => getVercelDataDir,\n getVercelOidcToken: () => getVercelOidcToken,\n isExpired: () => isExpired,\n loadToken: () => loadToken,\n saveToken: () => saveToken\n});\nmodule.exports = __toCommonJS(token_util_exports);\nvar path = __toESM(require(\"path\"));\nvar fs = __toESM(require(\"fs\"));\nvar import_token_error = require(\"./token-error\");\nvar import_token_io = require(\"./token-io\");\nfunction getVercelDataDir() {\n const vercelFolder = \"com.vercel.cli\";\n const dataDir = (0, import_token_io.getUserDataDir)();\n if (!dataDir) {\n return null;\n }\n return path.join(dataDir, vercelFolder);\n}\nfunction getVercelCliToken() {\n const dataDir = getVercelDataDir();\n if (!dataDir) {\n return null;\n }\n const tokenPath = path.join(dataDir, \"auth.json\");\n if (!fs.existsSync(tokenPath)) {\n return null;\n }\n const token = fs.readFileSync(tokenPath, \"utf8\");\n if (!token) {\n return null;\n }\n return JSON.parse(token).token;\n}\nasync function getVercelOidcToken(authToken, projectId, teamId) {\n try {\n const url = `https://api.vercel.com/v1/projects/${projectId}/token?source=vercel-oidc-refresh${teamId ? `&teamId=${teamId}` : \"\"}`;\n const res = await fetch(url, {\n method: \"POST\",\n headers: {\n Authorization: `Bearer ${authToken}`\n }\n });\n if (!res.ok) {\n throw new import_token_error.VercelOidcTokenError(\n `Failed to refresh OIDC token: ${res.statusText}`\n );\n }\n const tokenRes = await res.json();\n assertVercelOidcTokenResponse(tokenRes);\n return tokenRes;\n } catch (e) {\n throw new import_token_error.VercelOidcTokenError(`Failed to refresh OIDC token`, e);\n }\n}\nfunction assertVercelOidcTokenResponse(res) {\n if (!res || typeof res !== \"object\") {\n throw new TypeError(\"Expected an object\");\n }\n if (!(\"token\" in res) || typeof res.token !== \"string\") {\n throw new TypeError(\"Expected a string-valued token property\");\n }\n}\nfunction findProjectInfo() {\n const dir = (0, import_token_io.findRootDir)();\n if (!dir) {\n throw new import_token_error.VercelOidcTokenError(\"Unable to find root directory\");\n }\n try {\n const prjPath = path.join(dir, \".vercel\", \"project.json\");\n if (!fs.existsSync(prjPath)) {\n throw new import_token_error.VercelOidcTokenError(\"project.json not found\");\n }\n const prj = JSON.parse(fs.readFileSync(prjPath, \"utf8\"));\n if (typeof prj.projectId !== \"string\" && typeof prj.orgId !== \"string\") {\n throw new TypeError(\"Expected a string-valued projectId property\");\n }\n return { projectId: prj.projectId, teamId: prj.orgId };\n } catch (e) {\n throw new import_token_error.VercelOidcTokenError(`Unable to find project ID`, e);\n }\n}\nfunction saveToken(token, projectId) {\n try {\n const dir = (0, import_token_io.getUserDataDir)();\n if (!dir) {\n throw new import_token_error.VercelOidcTokenError(\"Unable to find user data directory\");\n }\n const tokenPath = path.join(dir, \"com.vercel.token\", `${projectId}.json`);\n const tokenJson = JSON.stringify(token);\n fs.mkdirSync(path.dirname(tokenPath), { mode: 504, recursive: true });\n fs.writeFileSync(tokenPath, tokenJson);\n fs.chmodSync(tokenPath, 432);\n return;\n } catch (e) {\n throw new import_token_error.VercelOidcTokenError(`Failed to save token`, e);\n }\n}\nfunction loadToken(projectId) {\n try {\n const dir = (0, import_token_io.getUserDataDir)();\n if (!dir) {\n return null;\n }\n const tokenPath = path.join(dir, \"com.vercel.token\", `${projectId}.json`);\n if (!fs.existsSync(tokenPath)) {\n return null;\n }\n const token = JSON.parse(fs.readFileSync(tokenPath, \"utf8\"));\n assertVercelOidcTokenResponse(token);\n return token;\n } catch (e) {\n throw new import_token_error.VercelOidcTokenError(`Failed to load token`, e);\n }\n}\nfunction getTokenPayload(token) {\n const tokenParts = token.split(\".\");\n if (tokenParts.length !== 3) {\n throw new import_token_error.VercelOidcTokenError(\"Invalid token\");\n }\n const base64 = tokenParts[1].replace(/-/g, \"+\").replace(/_/g, \"/\");\n const padded = base64.padEnd(\n base64.length + (4 - base64.length % 4) % 4,\n \"=\"\n );\n return JSON.parse(Buffer.from(padded, \"base64\").toString(\"utf8\"));\n}\nfunction isExpired(token) {\n return token.exp * 1e3 < Date.now();\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n assertVercelOidcTokenResponse,\n findProjectInfo,\n getTokenPayload,\n getVercelCliToken,\n getVercelDataDir,\n getVercelOidcToken,\n isExpired,\n loadToken,\n saveToken\n});\n"]}
@@ -0,0 +1,84 @@
1
+ 'use strict';
2
+
3
+ var chunkJEQ2X3Z6_cjs = require('./chunk-JEQ2X3Z6.cjs');
4
+
5
+ // ../_vendored/ai_v6/dist/chunk-7D4SUZUM.js
6
+ var __create = Object.create;
7
+ var __defProp = Object.defineProperty;
8
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
9
+ var __getOwnPropNames = Object.getOwnPropertyNames;
10
+ var __getProtoOf = Object.getPrototypeOf;
11
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
12
+ var __require2 = /* @__PURE__ */ ((x) => typeof chunkJEQ2X3Z6_cjs.__require !== "undefined" ? chunkJEQ2X3Z6_cjs.__require : typeof Proxy !== "undefined" ? new Proxy(x, {
13
+ get: (a, b) => (typeof chunkJEQ2X3Z6_cjs.__require !== "undefined" ? chunkJEQ2X3Z6_cjs.__require : a)[b]
14
+ }) : x)(function(x) {
15
+ if (typeof chunkJEQ2X3Z6_cjs.__require !== "undefined") return chunkJEQ2X3Z6_cjs.__require.apply(this, arguments);
16
+ throw Error('Dynamic require of "' + x + '" is not supported');
17
+ });
18
+ var __commonJS = (cb, mod) => function __require22() {
19
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
20
+ };
21
+ var __copyProps = (to, from, except, desc) => {
22
+ if (from && typeof from === "object" || typeof from === "function") {
23
+ for (let key of __getOwnPropNames(from))
24
+ if (!__hasOwnProp.call(to, key) && key !== except)
25
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
26
+ }
27
+ return to;
28
+ };
29
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
30
+ // If the importer is in node compatibility mode or this is not an ESM
31
+ // file that has been converted to a CommonJS file using a Babel-
32
+ // compatible transform (i.e. "__esModule" has not been set), then set
33
+ // "default" to the CommonJS "module.exports" for node compatibility.
34
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
35
+ mod
36
+ ));
37
+
38
+ // ../_vendored/ai_v6/dist/chunk-TLQKI65U.js
39
+ var require_token_error = __commonJS({
40
+ "../../../node_modules/.pnpm/@vercel+oidc@3.0.5/node_modules/@vercel/oidc/dist/token-error.js"(exports, module) {
41
+ var __defProp2 = Object.defineProperty;
42
+ var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
43
+ var __getOwnPropNames2 = Object.getOwnPropertyNames;
44
+ var __hasOwnProp2 = Object.prototype.hasOwnProperty;
45
+ var __export = (target, all) => {
46
+ for (var name in all)
47
+ __defProp2(target, name, { get: all[name], enumerable: true });
48
+ };
49
+ var __copyProps2 = (to, from, except, desc) => {
50
+ if (from && typeof from === "object" || typeof from === "function") {
51
+ for (let key of __getOwnPropNames2(from))
52
+ if (!__hasOwnProp2.call(to, key) && key !== except)
53
+ __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
54
+ }
55
+ return to;
56
+ };
57
+ var __toCommonJS = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod);
58
+ var token_error_exports = {};
59
+ __export(token_error_exports, {
60
+ VercelOidcTokenError: () => VercelOidcTokenError
61
+ });
62
+ module.exports = __toCommonJS(token_error_exports);
63
+ var VercelOidcTokenError = class extends Error {
64
+ constructor(message, cause) {
65
+ super(message);
66
+ this.name = "VercelOidcTokenError";
67
+ this.cause = cause;
68
+ }
69
+ toString() {
70
+ if (this.cause) {
71
+ return `${this.name}: ${this.message}: ${this.cause}`;
72
+ }
73
+ return `${this.name}: ${this.message}`;
74
+ }
75
+ };
76
+ }
77
+ });
78
+
79
+ exports.__commonJS = __commonJS;
80
+ exports.__require = __require2;
81
+ exports.__toESM = __toESM;
82
+ exports.require_token_error = require_token_error;
83
+ //# sourceMappingURL=chunk-ZUQPUTTO.cjs.map
84
+ //# sourceMappingURL=chunk-ZUQPUTTO.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../_vendored/ai_v6/dist/chunk-7D4SUZUM.js","../../../node_modules/.pnpm/@vercel+oidc@3.0.5/node_modules/@vercel/oidc/dist/token-error.js"],"names":["__require","__require2","__defProp","__getOwnPropDesc","__getOwnPropNames","__hasOwnProp","__copyProps"],"mappings":"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","file":"chunk-ZUQPUTTO.cjs","sourcesContent":["var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __require = /* @__PURE__ */ ((x) => typeof require !== \"undefined\" ? require : typeof Proxy !== \"undefined\" ? new Proxy(x, {\n get: (a, b) => (typeof require !== \"undefined\" ? require : a)[b]\n}) : x)(function(x) {\n if (typeof require !== \"undefined\") return require.apply(this, arguments);\n throw Error('Dynamic require of \"' + x + '\" is not supported');\n});\nvar __commonJS = (cb, mod) => function __require2() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\n\nexport { __commonJS, __require, __toESM };\n//# sourceMappingURL=chunk-7D4SUZUM.js.map\n//# sourceMappingURL=chunk-7D4SUZUM.js.map","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar token_error_exports = {};\n__export(token_error_exports, {\n VercelOidcTokenError: () => VercelOidcTokenError\n});\nmodule.exports = __toCommonJS(token_error_exports);\nclass VercelOidcTokenError extends Error {\n constructor(message, cause) {\n super(message);\n this.name = \"VercelOidcTokenError\";\n this.cause = cause;\n }\n toString() {\n if (this.cause) {\n return `${this.name}: ${this.message}: ${this.cause}`;\n }\n return `${this.name}: ${this.message}`;\n }\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n VercelOidcTokenError\n});\n"]}
@@ -0,0 +1,36 @@
1
+ # @mastra/memory Documentation
2
+
3
+ > Embedded documentation for coding agents
4
+
5
+ ## Quick Start
6
+
7
+ ```bash
8
+ # Read the skill overview
9
+ cat docs/SKILL.md
10
+
11
+ # Get the source map
12
+ cat docs/SOURCE_MAP.json
13
+
14
+ # Read topic documentation
15
+ cat docs/<topic>/01-overview.md
16
+ ```
17
+
18
+ ## Structure
19
+
20
+ ```
21
+ docs/
22
+ ├── SKILL.md # Entry point
23
+ ├── README.md # This file
24
+ ├── SOURCE_MAP.json # Export index
25
+ ├── agents/ (3 files)
26
+ ├── core/ (2 files)
27
+ ├── memory/ (11 files)
28
+ ├── processors/ (1 files)
29
+ ├── storage/ (5 files)
30
+ ├── vectors/ (4 files)
31
+ ```
32
+
33
+ ## Version
34
+
35
+ Package: @mastra/memory
36
+ Version: 1.0.0-beta.11
@@ -0,0 +1,42 @@
1
+ ---
2
+ name: mastra-memory-docs
3
+ description: Documentation for @mastra/memory. Includes links to type definitions and readable implementation code in dist/.
4
+ ---
5
+
6
+ # @mastra/memory Documentation
7
+
8
+ > **Version**: 1.0.0-beta.11
9
+ > **Package**: @mastra/memory
10
+
11
+ ## Quick Navigation
12
+
13
+ Use SOURCE_MAP.json to find any export:
14
+
15
+ ```bash
16
+ cat docs/SOURCE_MAP.json
17
+ ```
18
+
19
+ Each export maps to:
20
+ - **types**: `.d.ts` file with JSDoc and API signatures
21
+ - **implementation**: `.js` chunk file with readable source
22
+ - **docs**: Conceptual documentation in `docs/`
23
+
24
+ ## Top Exports
25
+
26
+ - extractWorkingMemoryContent: dist/index.d.ts
27
+ - extractWorkingMemoryTags: dist/index.d.ts
28
+ - removeWorkingMemoryTags: dist/index.d.ts
29
+ - MessageHistory: dist/index.d.ts
30
+ - SemanticRecall: dist/index.d.ts
31
+ - WorkingMemory: dist/index.d.ts
32
+
33
+ See SOURCE_MAP.json for the complete list.
34
+
35
+ ## Available Topics
36
+
37
+ - [Agents](agents/) - 3 file(s)
38
+ - [Core](core/) - 2 file(s)
39
+ - [Memory](memory/) - 11 file(s)
40
+ - [Processors](processors/) - 1 file(s)
41
+ - [Storage](storage/) - 5 file(s)
42
+ - [Vectors](vectors/) - 4 file(s)
@@ -0,0 +1,31 @@
1
+ {
2
+ "version": "1.0.0-beta.11",
3
+ "package": "@mastra/memory",
4
+ "exports": {
5
+ "extractWorkingMemoryContent": {
6
+ "types": "dist/index.d.ts",
7
+ "implementation": "dist/memory"
8
+ },
9
+ "extractWorkingMemoryTags": {
10
+ "types": "dist/index.d.ts",
11
+ "implementation": "dist/memory"
12
+ },
13
+ "removeWorkingMemoryTags": {
14
+ "types": "dist/index.d.ts",
15
+ "implementation": "dist/memory"
16
+ },
17
+ "MessageHistory": {
18
+ "types": "dist/index.d.ts",
19
+ "implementation": "dist/processors"
20
+ },
21
+ "SemanticRecall": {
22
+ "types": "dist/index.d.ts",
23
+ "implementation": "dist/processors"
24
+ },
25
+ "WorkingMemory": {
26
+ "types": "dist/index.d.ts",
27
+ "implementation": "dist/processors"
28
+ }
29
+ },
30
+ "modules": {}
31
+ }
@@ -0,0 +1,160 @@
1
+ > Learn how to add memory to agents to store message history and maintain context across interactions.
2
+
3
+ # Agent memory
4
+
5
+ Agents use memory to maintain context across interactions. LLMs are stateless and don't retain information between calls, so agents need memory to track message history and recall relevant information.
6
+
7
+ Mastra agents can be configured to store message history, with optional [working memory](../memory/working-memory) to maintain recent context or [semantic recall](../memory/semantic-recall) to retrieve past messages based on meaning.
8
+
9
+ ## When to use memory
10
+
11
+ Use memory when your agent needs to maintain multi-turn conversations that reference prior exchanges, recall user preferences or facts from earlier in a session, or build context over time within a conversation thread. Skip memory for single-turn requests where each interaction is independent.
12
+
13
+ ## Setting up memory
14
+
15
+ To enable memory in Mastra, install the `@mastra/memory` package along with a storage provider.
16
+
17
+ ```bash npm2yarn
18
+ npm install @mastra/memory@beta @mastra/libsql@beta
19
+ ```
20
+
21
+ ## Storage providers
22
+
23
+ Memory requires a storage provider to persist message history, including user messages and agent responses. For more details on available providers and how storage works in Mastra, see the [Storage](https://mastra.ai/docs/v1/memory/storage) documentation.
24
+
25
+ ## Configuring memory
26
+
27
+ ### Step
28
+
29
+ Enable memory by creating a `Memory` instance and passing it to the agent’s `memory` option.
30
+
31
+ ```typescript {7-11} title="src/mastra/agents/memory-agent.ts"
32
+ import { Agent } from "@mastra/core/agent";
33
+ import { Memory } from "@mastra/memory";
34
+
35
+ export const memoryAgent = new Agent({
36
+ id: 'memory-agent',
37
+ name: 'Memory Agent',
38
+ memory: new Memory({
39
+ options: {
40
+ lastMessages: 20,
41
+ },
42
+ }),
43
+ });
44
+ ```
45
+
46
+ > **Note:**
47
+
48
+ Visit [Memory Class](https://mastra.ai/reference/v1/memory/memory-class) for a full list of configuration options.
49
+
50
+
51
+
52
+ ### Step
53
+
54
+ Add a storage provider to your main Mastra instance to enable memory across all configured agents.
55
+
56
+ ```typescript {5-8} title="src/mastra/index.ts"
57
+ import { Mastra } from "@mastra/core";
58
+ import { LibSQLStore } from "@mastra/libsql";
59
+
60
+ export const mastra = new Mastra({
61
+ storage: new LibSQLStore({
62
+ id: 'mastra-storage',
63
+ url: ":memory:",
64
+ }),
65
+ });
66
+ ```
67
+
68
+ > **Note:**
69
+
70
+ Visit [libSQL Storage](https://mastra.ai/reference/v1/storage/libsql) for a full list of configuration options.
71
+
72
+
73
+
74
+ Alternatively, add storage directly to an agent’s memory to keep data separate or use different providers per agent.
75
+
76
+ ```typescript {9-12} title="src/mastra/agents/memory-agent.ts"
77
+ import { Agent } from "@mastra/core/agent";
78
+ import { Memory } from "@mastra/memory";
79
+ import { LibSQLStore } from "@mastra/libsql";
80
+
81
+ export const memoryAgent = new Agent({
82
+ id: 'memory-agent',
83
+ name: 'Memory Agent',
84
+ memory: new Memory({
85
+ storage: new LibSQLStore({
86
+ id: 'mastra-storage',
87
+ url: ":memory:",
88
+ }),
89
+ }),
90
+ });
91
+ ```
92
+
93
+ ## Message history
94
+
95
+ Include a `memory` object with both `resource` and `thread` to track message history during agent calls.
96
+
97
+ - `resource`: A stable identifier for the user or entity.
98
+ - `thread`: An ID that isolates a specific conversation or session.
99
+
100
+ These fields tell the agent where to store and retrieve context, enabling persistent, thread-aware memory across a conversation.
101
+
102
+ ```typescript {4-7}
103
+ const response = await memoryAgent.generate(
104
+ "Remember my favorite color is blue.",
105
+ {
106
+ memory: {
107
+ resource: "user-123",
108
+ thread: "conversation-123",
109
+ },
110
+ },
111
+ );
112
+ ```
113
+
114
+ To recall information stored in memory, call the agent with the same `resource` and `thread` values used in the original conversation.
115
+
116
+ ```typescript {2-5}
117
+ const response = await memoryAgent.generate("What's my favorite color?", {
118
+ memory: {
119
+ resource: "user-123",
120
+ thread: "conversation-123",
121
+ },
122
+ });
123
+ ```
124
+
125
+ To learn more about memory see the [Memory](../memory/overview) documentation.
126
+
127
+ ## Using `RequestContext`
128
+
129
+ Use [RequestContext](https://mastra.ai/docs/v1/server/request-context) to access request-specific values. This lets you conditionally select different memory or storage configurations based on the context of the request.
130
+
131
+ ```typescript title="src/mastra/agents/memory-agent.ts"
132
+ export type UserTier = {
133
+ "user-tier": "enterprise" | "pro";
134
+ };
135
+
136
+ const premiumMemory = new Memory();
137
+
138
+ const standardMemory = new Memory();
139
+
140
+ export const memoryAgent = new Agent({
141
+ id: 'memory-agent',
142
+ name: 'Memory Agent',
143
+ memory: ({ requestContext }) => {
144
+ const userTier = requestContext.get("user-tier") as UserTier["user-tier"];
145
+
146
+ return userTier === "enterprise" ? premiumMemory : standardMemory;
147
+ },
148
+ });
149
+ ```
150
+
151
+ > **Note:**
152
+
153
+ Visit [Request Context](https://mastra.ai/docs/v1/server/request-context) for more information.
154
+
155
+ ## Related
156
+
157
+ - [Working Memory](../memory/working-memory)
158
+ - [Semantic Recall](../memory/semantic-recall)
159
+ - [Storage](../memory/storage)
160
+ - [Request Context](https://mastra.ai/docs/v1/server/request-context)