@hasna/mementos 0.14.30 → 0.14.31

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/README.md CHANGED
@@ -48,6 +48,17 @@ plus host instruction files that tell the agent to use `memory.search`,
48
48
  `memory.save`, and `mementos inject` as the hosted fallback path when native
49
49
  hooks are unavailable.
50
50
 
51
+ ## Brain workers
52
+
53
+ ```bash
54
+ mementos brain workers
55
+ mementos brain fire "summarize this session" --worker memory --worker recap --persist --project platform-mementos
56
+ ```
57
+
58
+ Brain runs are hosted Cerebras-backed jobs queued through mementos.md billing
59
+ and run history. The CLI only sends the request to the hosted API; it does not
60
+ run local workers or keep local memory.
61
+
51
62
  ## Bridge
52
63
 
53
64
  ```bash
package/dist/cli.js CHANGED
@@ -823,6 +823,12 @@ class MementosRemoteClient {
823
823
  createRun(slug, input = {}) {
824
824
  return this.request(`/runs/${encodeURIComponent(slug)}`, { method: "POST", body: input });
825
825
  }
826
+ listBrainWorkers() {
827
+ return this.request("/brain/workers");
828
+ }
829
+ fireBrain(input = {}) {
830
+ return this.request("/brain/fire", { method: "POST", body: input });
831
+ }
826
832
  getRun(id) {
827
833
  return this.request(`/runs/${encodeURIComponent(id)}`);
828
834
  }
@@ -936,6 +942,8 @@ async function run(name, args) {
936
942
  return runBridge(args);
937
943
  case "billing":
938
944
  return runBilling(args);
945
+ case "brain":
946
+ return runBrain(args);
939
947
  case "inbox":
940
948
  return runInbox(args);
941
949
  case "capabilities":
@@ -1070,6 +1078,20 @@ async function runBilling(args) {
1070
1078
  throw new Error("usage: mementos billing <status|credits|buy>");
1071
1079
  }
1072
1080
  }
1081
+ async function runBrain(args) {
1082
+ const subcommand = args[0] ?? "workers";
1083
+ switch (subcommand) {
1084
+ case "workers":
1085
+ case "list":
1086
+ return client.listBrainWorkers();
1087
+ case "fire": {
1088
+ const input = parseBrainFireOptions(args.slice(1));
1089
+ return client.fireBrain(input);
1090
+ }
1091
+ default:
1092
+ throw new Error("usage: mementos brain <workers|fire>");
1093
+ }
1094
+ }
1073
1095
  async function runAuth(args) {
1074
1096
  const subcommand = args[0] ?? "help";
1075
1097
  if (subcommand !== "signup" && subcommand !== "login") {
@@ -1309,6 +1331,46 @@ function parseInboxOptions(args) {
1309
1331
  }
1310
1332
  return options;
1311
1333
  }
1334
+ function parseBrainFireOptions(args) {
1335
+ const options = {};
1336
+ const workers = [];
1337
+ const text = [];
1338
+ for (let index = 0;index < args.length; index += 1) {
1339
+ const arg = args[index];
1340
+ if (arg === "--input" || arg === "--prompt" || arg === "--message") {
1341
+ options.input = args[++index] ?? "";
1342
+ } else if (arg === "--worker") {
1343
+ const worker = args[++index];
1344
+ if (worker)
1345
+ workers.push(worker);
1346
+ } else if (arg === "--workers") {
1347
+ workers.push(...splitCsv(args[++index] ?? ""));
1348
+ } else if (arg === "--persist") {
1349
+ options.persist = true;
1350
+ } else if (arg === "--project") {
1351
+ options.projectKey = args[++index];
1352
+ } else if (arg === "--session") {
1353
+ options.sessionId = args[++index];
1354
+ } else if (arg === "--max-workers") {
1355
+ options.maxWorkers = readRequiredPositiveInteger(args[++index], "--max-workers");
1356
+ } else if (arg === "--max-input-chars") {
1357
+ options.maxInputChars = readRequiredPositiveInteger(args[++index], "--max-input-chars");
1358
+ } else if (arg === "--max-output-tokens") {
1359
+ options.maxOutputTokens = readRequiredPositiveInteger(args[++index], "--max-output-tokens");
1360
+ } else if (arg.startsWith("--")) {
1361
+ throw new Error(`Unknown brain option: ${arg}`);
1362
+ } else {
1363
+ text.push(arg);
1364
+ }
1365
+ }
1366
+ const input = readHookText(options.input) ?? text.join(" ").trim();
1367
+ if (!input)
1368
+ throw new Error("usage: mementos brain fire <input> [--worker <id>] [--persist] [--project <key>] [--session <id>]");
1369
+ options.input = input;
1370
+ if (workers.length > 0)
1371
+ options.workers = workers;
1372
+ return Object.fromEntries(Object.entries(options).filter(([, value]) => value !== undefined && value !== ""));
1373
+ }
1312
1374
  function parseHosts(input) {
1313
1375
  const requested = input.split(",").map((host) => host.trim()).filter(Boolean);
1314
1376
  const unknown = requested.filter((host) => !SUPPORTED_AGENT_HOSTS.includes(host));
@@ -1328,6 +1390,15 @@ function readPositiveInteger(input) {
1328
1390
  const value = Number(input);
1329
1391
  return Number.isInteger(value) && value > 0 ? value : undefined;
1330
1392
  }
1393
+ function readRequiredPositiveInteger(input, label) {
1394
+ const value = readPositiveInteger(input);
1395
+ if (!value)
1396
+ throw new Error(`${label} must be a positive integer`);
1397
+ return value;
1398
+ }
1399
+ function splitCsv(input) {
1400
+ return input.split(",").map((item) => item.trim()).filter(Boolean);
1401
+ }
1331
1402
  function sleep(ms) {
1332
1403
  return new Promise((resolve) => setTimeout(resolve, ms));
1333
1404
  }
@@ -1348,6 +1419,7 @@ Usage:
1348
1419
  mementos bridge <start|status|stop|install|uninstall|logs|run>
1349
1420
  mementos inbox <send|list|claim>
1350
1421
  mementos billing <status|credits|buy>
1422
+ mementos brain <workers|fire>
1351
1423
  mementos capabilities
1352
1424
  mementos agents
1353
1425
  mementos usage
package/dist/index.js CHANGED
@@ -70,6 +70,12 @@ class MementosRemoteClient {
70
70
  createRun(slug, input = {}) {
71
71
  return this.request(`/runs/${encodeURIComponent(slug)}`, { method: "POST", body: input });
72
72
  }
73
+ listBrainWorkers() {
74
+ return this.request("/brain/workers");
75
+ }
76
+ fireBrain(input = {}) {
77
+ return this.request("/brain/fire", { method: "POST", body: input });
78
+ }
73
79
  getRun(id) {
74
80
  return this.request(`/runs/${encodeURIComponent(id)}`);
75
81
  }
@@ -146,7 +152,7 @@ function readErrorMessage(payload, status) {
146
152
  }
147
153
  // src/mcp-runtime.ts
148
154
  import { createInterface } from "readline";
149
- var MEMENTOS_MCP_VERSION = "0.14.30";
155
+ var MEMENTOS_MCP_VERSION = "0.14.31";
150
156
  var AUTHLESS_SCHEMA = {
151
157
  type: "object",
152
158
  properties: {},
@@ -245,11 +251,17 @@ var REMOTE_MCP_TOOLS = [
245
251
  return client.createRun(slug, body);
246
252
  }
247
253
  },
254
+ {
255
+ name: "brain.workers",
256
+ description: "List hosted mementos.md Cerebras brain workers.",
257
+ inputSchema: AUTHLESS_SCHEMA,
258
+ run: (_input, client) => client.listBrainWorkers()
259
+ },
248
260
  {
249
261
  name: "brain.fire",
250
262
  description: "Queue hosted mementos.md Cerebras brain workers.",
251
263
  inputSchema: OPEN_SCHEMA,
252
- run: (input, client) => client.createRun("brain.fire", input)
264
+ run: (input, client) => client.fireBrain(input)
253
265
  },
254
266
  {
255
267
  name: "runs.get",
@@ -1,5 +1,5 @@
1
1
  import { MementosRemoteClient } from "./remote-client";
2
- export declare const MEMENTOS_MCP_VERSION = "0.14.30";
2
+ export declare const MEMENTOS_MCP_VERSION = "0.14.31";
3
3
  export interface RemoteMcpTool {
4
4
  name: string;
5
5
  description: string;
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-runtime.d.ts","sourceRoot":"","sources":["../src/mcp-runtime.ts"],"names":[],"mappings":"AACA,OAAO,EAA6B,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAElF,eAAO,MAAM,oBAAoB,YAAY,CAAC;AAE9C,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACzF;AAaD,eAAO,MAAM,gBAAgB,EAAE,aAAa,EAiI3C,CAAC;AAEF,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACnC,MAAM,uBAA8B,oBAKrC;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,uBAA8B;;;;;;;;;;;GA8BxF;AAED,wBAAgB,aAAa,CAAC,MAAM,uBAA8B,QAUjE"}
1
+ {"version":3,"file":"mcp-runtime.d.ts","sourceRoot":"","sources":["../src/mcp-runtime.ts"],"names":[],"mappings":"AACA,OAAO,EAA6B,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAElF,eAAO,MAAM,oBAAoB,YAAY,CAAC;AAE9C,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACzF;AAaD,eAAO,MAAM,gBAAgB,EAAE,aAAa,EAuI3C,CAAC;AAEF,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACnC,MAAM,uBAA8B,oBAKrC;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,uBAA8B;;;;;;;;;;;GA8BxF;AAED,wBAAgB,aAAa,CAAC,MAAM,uBAA8B,QAUjE"}
package/dist/mcp.js CHANGED
@@ -75,6 +75,12 @@ class MementosRemoteClient {
75
75
  createRun(slug, input = {}) {
76
76
  return this.request(`/runs/${encodeURIComponent(slug)}`, { method: "POST", body: input });
77
77
  }
78
+ listBrainWorkers() {
79
+ return this.request("/brain/workers");
80
+ }
81
+ fireBrain(input = {}) {
82
+ return this.request("/brain/fire", { method: "POST", body: input });
83
+ }
78
84
  getRun(id) {
79
85
  return this.request(`/runs/${encodeURIComponent(id)}`);
80
86
  }
@@ -151,7 +157,7 @@ function readErrorMessage(payload, status) {
151
157
  }
152
158
 
153
159
  // src/mcp-runtime.ts
154
- var MEMENTOS_MCP_VERSION = "0.14.30";
160
+ var MEMENTOS_MCP_VERSION = "0.14.31";
155
161
  var AUTHLESS_SCHEMA = {
156
162
  type: "object",
157
163
  properties: {},
@@ -250,11 +256,17 @@ var REMOTE_MCP_TOOLS = [
250
256
  return client.createRun(slug, body);
251
257
  }
252
258
  },
259
+ {
260
+ name: "brain.workers",
261
+ description: "List hosted mementos.md Cerebras brain workers.",
262
+ inputSchema: AUTHLESS_SCHEMA,
263
+ run: (_input, client) => client.listBrainWorkers()
264
+ },
253
265
  {
254
266
  name: "brain.fire",
255
267
  description: "Queue hosted mementos.md Cerebras brain workers.",
256
268
  inputSchema: OPEN_SCHEMA,
257
- run: (input, client) => client.createRun("brain.fire", input)
269
+ run: (input, client) => client.fireBrain(input)
258
270
  },
259
271
  {
260
272
  name: "runs.get",
@@ -37,6 +37,8 @@ export declare class MementosRemoteClient {
37
37
  memoryUsage(): Promise<unknown>;
38
38
  listRuns(input?: Record<string, unknown>): Promise<unknown>;
39
39
  createRun(slug: string, input?: Record<string, unknown>): Promise<unknown>;
40
+ listBrainWorkers(): Promise<unknown>;
41
+ fireBrain(input?: Record<string, unknown>): Promise<unknown>;
40
42
  getRun(id: string): Promise<unknown>;
41
43
  listApprovals(): Promise<unknown>;
42
44
  billingStatus(): Promise<unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"remote-client.d.ts","sourceRoot":"","sources":["../src/remote-client.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,+BAA+B,CAAC;AAE5D,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC7C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAE5F,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;gBAEf,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO;CAM/D;AAED,qBAAa,oBAAoB;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;gBAE1B,MAAM,GAAE,kBAAuB;IAM3C,gBAAgB;IAIhB,UAAU;IAIV,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAI5C,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAI7C,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAIzC,cAAc,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;IAIlD,gBAAgB,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;IAIpD,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAI/C,iBAAiB,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;IAIrD,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;IAIjE,SAAS,CAAC,EAAE,EAAE,MAAM;IAIpB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAIvD,YAAY,CAAC,EAAE,EAAE,MAAM;IAIvB,WAAW;IAIX,QAAQ,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;IAI5C,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;IAI3D,MAAM,CAAC,EAAE,EAAE,MAAM;IAIjB,aAAa;IAIb,aAAa;IAIb,eAAe;IAIf,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAInC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB;CA4B/D;AAED,wBAAgB,yBAAyB,CAAC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GAAG,oBAAoB,CAKrH;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIrD"}
1
+ {"version":3,"file":"remote-client.d.ts","sourceRoot":"","sources":["../src/remote-client.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,+BAA+B,CAAC;AAE5D,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC7C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAE5F,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;gBAEf,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO;CAM/D;AAED,qBAAa,oBAAoB;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;gBAE1B,MAAM,GAAE,kBAAuB;IAM3C,gBAAgB;IAIhB,UAAU;IAIV,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAI5C,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAI7C,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAIzC,cAAc,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;IAIlD,gBAAgB,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;IAIpD,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAI/C,iBAAiB,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;IAIrD,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;IAIjE,SAAS,CAAC,EAAE,EAAE,MAAM;IAIpB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAIvD,YAAY,CAAC,EAAE,EAAE,MAAM;IAIvB,WAAW;IAIX,QAAQ,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;IAI5C,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;IAI3D,gBAAgB;IAIhB,SAAS,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;IAI7C,MAAM,CAAC,EAAE,EAAE,MAAM;IAIjB,aAAa;IAIb,aAAa;IAIb,eAAe;IAIf,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAInC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB;CA4B/D;AAED,wBAAgB,yBAAyB,CAAC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GAAG,oBAAoB,CAKrH;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIrD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hasna/mementos",
3
- "version": "0.14.30",
3
+ "version": "0.14.31",
4
4
  "description": "Remote-only mementos.md SaaS CLI and MCP client",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",