mem-os-python 1.6.27__py3-none-any.whl

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 (253) hide show
  1. mem_os_python-1.6.27.dist-info/METADATA +1032 -0
  2. mem_os_python-1.6.27.dist-info/RECORD +253 -0
  3. mem_os_python-1.6.27.dist-info/WHEEL +4 -0
  4. mem_os_python-1.6.27.dist-info/entry_points.txt +2 -0
  5. mem_os_python-1.6.27.dist-info/licenses/LICENSE +21 -0
  6. memos/__init__.py +16 -0
  7. memos/_js/adapters/anthropic.d.ts +279 -0
  8. memos/_js/adapters/anthropic.d.ts.map +1 -0
  9. memos/_js/adapters/anthropic.js +348 -0
  10. memos/_js/adapters/anthropic.js.map +1 -0
  11. memos/_js/adapters/base.d.ts +10 -0
  12. memos/_js/adapters/base.d.ts.map +1 -0
  13. memos/_js/adapters/base.js +2 -0
  14. memos/_js/adapters/base.js.map +1 -0
  15. memos/_js/adapters/openai.d.ts +264 -0
  16. memos/_js/adapters/openai.d.ts.map +1 -0
  17. memos/_js/adapters/openai.js +342 -0
  18. memos/_js/adapters/openai.js.map +1 -0
  19. memos/_js/apps/explorer.d.ts +244 -0
  20. memos/_js/apps/explorer.d.ts.map +1 -0
  21. memos/_js/apps/explorer.js +738 -0
  22. memos/_js/apps/explorer.js.map +1 -0
  23. memos/_js/citations.d.ts +65 -0
  24. memos/_js/citations.d.ts.map +1 -0
  25. memos/_js/citations.js +143 -0
  26. memos/_js/citations.js.map +1 -0
  27. memos/_js/cli-browse.d.ts +3 -0
  28. memos/_js/cli-browse.d.ts.map +1 -0
  29. memos/_js/cli-browse.js +129 -0
  30. memos/_js/cli-browse.js.map +1 -0
  31. memos/_js/cli-completion.d.ts +31 -0
  32. memos/_js/cli-completion.d.ts.map +1 -0
  33. memos/_js/cli-completion.js +340 -0
  34. memos/_js/cli-completion.js.map +1 -0
  35. memos/_js/cli-help.d.ts +18 -0
  36. memos/_js/cli-help.d.ts.map +1 -0
  37. memos/_js/cli-help.js +357 -0
  38. memos/_js/cli-help.js.map +1 -0
  39. memos/_js/cli.d.ts +28 -0
  40. memos/_js/cli.d.ts.map +1 -0
  41. memos/_js/cli.js +2880 -0
  42. memos/_js/cli.js.map +1 -0
  43. memos/_js/compression.d.ts +25 -0
  44. memos/_js/compression.d.ts.map +1 -0
  45. memos/_js/compression.js +319 -0
  46. memos/_js/compression.js.map +1 -0
  47. memos/_js/confidence-machine.d.ts +99 -0
  48. memos/_js/confidence-machine.d.ts.map +1 -0
  49. memos/_js/confidence-machine.js +222 -0
  50. memos/_js/confidence-machine.js.map +1 -0
  51. memos/_js/context-pack.d.ts +506 -0
  52. memos/_js/context-pack.d.ts.map +1 -0
  53. memos/_js/context-pack.js +1435 -0
  54. memos/_js/context-pack.js.map +1 -0
  55. memos/_js/contradictions.d.ts +160 -0
  56. memos/_js/contradictions.d.ts.map +1 -0
  57. memos/_js/contradictions.js +255 -0
  58. memos/_js/contradictions.js.map +1 -0
  59. memos/_js/dashboard.d.ts +30 -0
  60. memos/_js/dashboard.d.ts.map +1 -0
  61. memos/_js/dashboard.js +302 -0
  62. memos/_js/dashboard.js.map +1 -0
  63. memos/_js/ebbinghaus.d.ts +29 -0
  64. memos/_js/ebbinghaus.d.ts.map +1 -0
  65. memos/_js/ebbinghaus.js +32 -0
  66. memos/_js/ebbinghaus.js.map +1 -0
  67. memos/_js/embedding-queue.d.ts +190 -0
  68. memos/_js/embedding-queue.d.ts.map +1 -0
  69. memos/_js/embedding-queue.js +316 -0
  70. memos/_js/embedding-queue.js.map +1 -0
  71. memos/_js/embeddings.d.ts +187 -0
  72. memos/_js/embeddings.d.ts.map +1 -0
  73. memos/_js/embeddings.js +633 -0
  74. memos/_js/embeddings.js.map +1 -0
  75. memos/_js/entity-extraction.d.ts +54 -0
  76. memos/_js/entity-extraction.d.ts.map +1 -0
  77. memos/_js/entity-extraction.js +325 -0
  78. memos/_js/entity-extraction.js.map +1 -0
  79. memos/_js/entity-index.d.ts +93 -0
  80. memos/_js/entity-index.d.ts.map +1 -0
  81. memos/_js/entity-index.js +165 -0
  82. memos/_js/entity-index.js.map +1 -0
  83. memos/_js/event-memory.d.ts +147 -0
  84. memos/_js/event-memory.d.ts.map +1 -0
  85. memos/_js/event-memory.js +290 -0
  86. memos/_js/event-memory.js.map +1 -0
  87. memos/_js/external-import.d.ts +98 -0
  88. memos/_js/external-import.d.ts.map +1 -0
  89. memos/_js/external-import.js +669 -0
  90. memos/_js/external-import.js.map +1 -0
  91. memos/_js/fidelity.d.ts +367 -0
  92. memos/_js/fidelity.d.ts.map +1 -0
  93. memos/_js/fidelity.js +911 -0
  94. memos/_js/fidelity.js.map +1 -0
  95. memos/_js/graph-expansion.d.ts +119 -0
  96. memos/_js/graph-expansion.d.ts.map +1 -0
  97. memos/_js/graph-expansion.js +213 -0
  98. memos/_js/graph-expansion.js.map +1 -0
  99. memos/_js/graph-mermaid.d.ts +13 -0
  100. memos/_js/graph-mermaid.d.ts.map +1 -0
  101. memos/_js/graph-mermaid.js +32 -0
  102. memos/_js/graph-mermaid.js.map +1 -0
  103. memos/_js/graph.d.ts +170 -0
  104. memos/_js/graph.d.ts.map +1 -0
  105. memos/_js/graph.js +482 -0
  106. memos/_js/graph.js.map +1 -0
  107. memos/_js/harness.d.ts +63 -0
  108. memos/_js/harness.d.ts.map +1 -0
  109. memos/_js/harness.js +93 -0
  110. memos/_js/harness.js.map +1 -0
  111. memos/_js/importance.d.ts +118 -0
  112. memos/_js/importance.d.ts.map +1 -0
  113. memos/_js/importance.js +144 -0
  114. memos/_js/importance.js.map +1 -0
  115. memos/_js/index.d.ts +51 -0
  116. memos/_js/index.d.ts.map +1 -0
  117. memos/_js/index.js +53 -0
  118. memos/_js/index.js.map +1 -0
  119. memos/_js/mcp.d.ts +58 -0
  120. memos/_js/mcp.d.ts.map +1 -0
  121. memos/_js/mcp.js +1853 -0
  122. memos/_js/mcp.js.map +1 -0
  123. memos/_js/memory.d.ts +1762 -0
  124. memos/_js/memory.d.ts.map +1 -0
  125. memos/_js/memory.js +6283 -0
  126. memos/_js/memory.js.map +1 -0
  127. memos/_js/procedural.d.ts +74 -0
  128. memos/_js/procedural.d.ts.map +1 -0
  129. memos/_js/procedural.js +125 -0
  130. memos/_js/procedural.js.map +1 -0
  131. memos/_js/project-config.d.ts +68 -0
  132. memos/_js/project-config.d.ts.map +1 -0
  133. memos/_js/project-config.js +59 -0
  134. memos/_js/project-config.js.map +1 -0
  135. memos/_js/proof-of-forgetting.d.ts +57 -0
  136. memos/_js/proof-of-forgetting.d.ts.map +1 -0
  137. memos/_js/proof-of-forgetting.js +80 -0
  138. memos/_js/proof-of-forgetting.js.map +1 -0
  139. memos/_js/provenance.d.ts +122 -0
  140. memos/_js/provenance.d.ts.map +1 -0
  141. memos/_js/provenance.js +182 -0
  142. memos/_js/provenance.js.map +1 -0
  143. memos/_js/quarantine-commands.d.ts +23 -0
  144. memos/_js/quarantine-commands.d.ts.map +1 -0
  145. memos/_js/quarantine-commands.js +42 -0
  146. memos/_js/quarantine-commands.js.map +1 -0
  147. memos/_js/quarantine.d.ts +120 -0
  148. memos/_js/quarantine.d.ts.map +1 -0
  149. memos/_js/quarantine.js +873 -0
  150. memos/_js/quarantine.js.map +1 -0
  151. memos/_js/redact.d.ts +12 -0
  152. memos/_js/redact.d.ts.map +1 -0
  153. memos/_js/redact.js +26 -0
  154. memos/_js/redact.js.map +1 -0
  155. memos/_js/repl.d.ts +57 -0
  156. memos/_js/repl.d.ts.map +1 -0
  157. memos/_js/repl.js +295 -0
  158. memos/_js/repl.js.map +1 -0
  159. memos/_js/rerank-local.d.ts +61 -0
  160. memos/_js/rerank-local.d.ts.map +1 -0
  161. memos/_js/rerank-local.js +210 -0
  162. memos/_js/rerank-local.js.map +1 -0
  163. memos/_js/retain-filter.d.ts +98 -0
  164. memos/_js/retain-filter.d.ts.map +1 -0
  165. memos/_js/retain-filter.js +232 -0
  166. memos/_js/retain-filter.js.map +1 -0
  167. memos/_js/retrieval.d.ts +265 -0
  168. memos/_js/retrieval.d.ts.map +1 -0
  169. memos/_js/retrieval.js +1018 -0
  170. memos/_js/retrieval.js.map +1 -0
  171. memos/_js/revert.d.ts +77 -0
  172. memos/_js/revert.d.ts.map +1 -0
  173. memos/_js/revert.js +252 -0
  174. memos/_js/revert.js.map +1 -0
  175. memos/_js/scope.d.ts +30 -0
  176. memos/_js/scope.d.ts.map +1 -0
  177. memos/_js/scope.js +71 -0
  178. memos/_js/scope.js.map +1 -0
  179. memos/_js/semantic-screen.d.ts +152 -0
  180. memos/_js/semantic-screen.d.ts.map +1 -0
  181. memos/_js/semantic-screen.js +290 -0
  182. memos/_js/semantic-screen.js.map +1 -0
  183. memos/_js/session-hooks.d.ts +127 -0
  184. memos/_js/session-hooks.d.ts.map +1 -0
  185. memos/_js/session-hooks.js +482 -0
  186. memos/_js/session-hooks.js.map +1 -0
  187. memos/_js/storage/sqlite.d.ts +427 -0
  188. memos/_js/storage/sqlite.d.ts.map +1 -0
  189. memos/_js/storage/sqlite.js +2428 -0
  190. memos/_js/storage/sqlite.js.map +1 -0
  191. memos/_js/sync.d.ts +213 -0
  192. memos/_js/sync.d.ts.map +1 -0
  193. memos/_js/sync.js +389 -0
  194. memos/_js/sync.js.map +1 -0
  195. memos/_js/tamper-log.d.ts +98 -0
  196. memos/_js/tamper-log.d.ts.map +1 -0
  197. memos/_js/tamper-log.js +327 -0
  198. memos/_js/tamper-log.js.map +1 -0
  199. memos/_js/temporal.d.ts +92 -0
  200. memos/_js/temporal.d.ts.map +1 -0
  201. memos/_js/temporal.js +536 -0
  202. memos/_js/temporal.js.map +1 -0
  203. memos/_js/time-travel.d.ts +38 -0
  204. memos/_js/time-travel.d.ts.map +1 -0
  205. memos/_js/time-travel.js +46 -0
  206. memos/_js/time-travel.js.map +1 -0
  207. memos/_js/timestamp-format.d.ts +18 -0
  208. memos/_js/timestamp-format.d.ts.map +1 -0
  209. memos/_js/timestamp-format.js +52 -0
  210. memos/_js/timestamp-format.js.map +1 -0
  211. memos/_js/triple-extraction.d.ts +31 -0
  212. memos/_js/triple-extraction.d.ts.map +1 -0
  213. memos/_js/triple-extraction.js +116 -0
  214. memos/_js/triple-extraction.js.map +1 -0
  215. memos/_js/types.d.ts +2474 -0
  216. memos/_js/types.d.ts.map +1 -0
  217. memos/_js/types.js +20 -0
  218. memos/_js/types.js.map +1 -0
  219. memos/_js/updater.d.ts +95 -0
  220. memos/_js/updater.d.ts.map +1 -0
  221. memos/_js/updater.js +268 -0
  222. memos/_js/updater.js.map +1 -0
  223. memos/_js/version.d.ts +17 -0
  224. memos/_js/version.d.ts.map +1 -0
  225. memos/_js/version.js +34 -0
  226. memos/_js/version.js.map +1 -0
  227. memos/_js/vision/clip-query-cache.d.ts +58 -0
  228. memos/_js/vision/clip-query-cache.d.ts.map +1 -0
  229. memos/_js/vision/clip-query-cache.js +79 -0
  230. memos/_js/vision/clip-query-cache.js.map +1 -0
  231. memos/_js/vision/clip.d.ts +113 -0
  232. memos/_js/vision/clip.d.ts.map +1 -0
  233. memos/_js/vision/clip.js +224 -0
  234. memos/_js/vision/clip.js.map +1 -0
  235. memos/_js/vision/fake-clip.d.ts +55 -0
  236. memos/_js/vision/fake-clip.d.ts.map +1 -0
  237. memos/_js/vision/fake-clip.js +122 -0
  238. memos/_js/vision/fake-clip.js.map +1 -0
  239. memos/_js/vision/index.d.ts +15 -0
  240. memos/_js/vision/index.d.ts.map +1 -0
  241. memos/_js/vision/index.js +13 -0
  242. memos/_js/vision/index.js.map +1 -0
  243. memos/_js/vision/store.d.ts +137 -0
  244. memos/_js/vision/store.d.ts.map +1 -0
  245. memos/_js/vision/store.js +383 -0
  246. memos/_js/vision/store.js.map +1 -0
  247. memos/adapters/__init__.py +0 -0
  248. memos/adapters/crewai.py +385 -0
  249. memos/adapters/langchain.py +301 -0
  250. memos/adapters/ollama.py +396 -0
  251. memos/server/__init__.py +0 -0
  252. memos/server/main.py +547 -0
  253. memos/server/routes.py +360 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retrieval.js","sourceRoot":"","sources":["../src/retrieval.ts"],"names":[],"mappings":"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"}
memos/_js/revert.d.ts ADDED
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Command-driven belief revision ("natural-language revert").
3
+ *
4
+ * MemOS has a bitemporal validity ledger (`valid_from`/`valid_to` on nodes
5
+ * and edges) and a contradiction-detection pipeline — but invalidation only
6
+ * fires on *detected* contradictions. This module provides the missing
7
+ * primitive: detecting a *revert command* in user/agent text, locally, with
8
+ * no LLM on the hot path (patterns + entity/scope resolution only).
9
+ *
10
+ * Intent model:
11
+ * - "last" scope — "revert that", "undo what I just told you",
12
+ * "forget the last thing", "that last thing was wrong", "go back".
13
+ * Resolves to the most recent currently-valid, non-audit memory in the
14
+ * namespace (durable across processes: a CLI invocation is its own
15
+ * session, so "last" means the newest write in the store).
16
+ * - "named" scope — "revert what I said about the dentist",
17
+ * "undo the dentist appointment". Resolves to the best-matching memory
18
+ * for the named entity.
19
+ *
20
+ * Disambiguation rule (documented, deterministic):
21
+ * - When several memories match a named target, the most recently created
22
+ * valid memory wins; every other match is returned as an `alternative`
23
+ * so the caller (CLI dry-run, MCP dry_run) can confirm before executing.
24
+ * - `forget <named entity>` is deliberately NOT revert intent — it is the
25
+ * existing `memos_forget` semantic (delete the memory), not a request to
26
+ * restore an older version. Only `forget the last thing` / `forget what
27
+ * I said` (no entity named) counts as revert intent.
28
+ *
29
+ * @module @memos/revert
30
+ */
31
+ import type { RevertScopeInput } from "./types.js";
32
+ export type { RevertScopeInput };
33
+ export type RevertScopeKind = "last" | "named" | "unknown";
34
+ export interface RevertIntent {
35
+ /** True when the text contains a revert command. */
36
+ detected: boolean;
37
+ /** Which scope the command carries; "unknown" when not detected. */
38
+ scope: RevertScopeKind;
39
+ /** Normalized target phrase for named scope, e.g. "the dentist". */
40
+ target?: string;
41
+ /** Name of the pattern that fired (debugging / docs). */
42
+ pattern?: string;
43
+ }
44
+ /**
45
+ * Normalize a captured target phrase: trim, strip trailing punctuation,
46
+ * then surrounding quotes (order matters for `"the gym"!`), collapse
47
+ * whitespace.
48
+ */
49
+ export declare function normalizeRevertTarget(raw: string): string;
50
+ /**
51
+ * Detect a revert command in free text. Local-only: regex patterns, no LLM.
52
+ *
53
+ * @param text — The user/agent utterance.
54
+ * @returns The detected intent, or `{ detected: false, scope: "unknown" }`.
55
+ */
56
+ export declare function detectRevertIntent(text: string): RevertIntent;
57
+ export interface ParsedRevertArgs {
58
+ scope: RevertScopeInput;
59
+ dryRun: boolean;
60
+ reason?: string;
61
+ actor?: string;
62
+ namespace?: string;
63
+ /** Human-readable error when the args don't form a valid revert. */
64
+ error?: string;
65
+ }
66
+ /**
67
+ * Parse `memos revert` CLI arguments (pure, no side effects — testable).
68
+ *
69
+ * memos revert --last [--dry-run] [--reason <r>] [--actor <a>]
70
+ * memos revert --id <id> [--dry-run] ...
71
+ * memos revert --about <entity> [--dry-run] ...
72
+ * memos revert "<natural language>" [--dry-run] ...
73
+ *
74
+ * Flags that take a value: --id, --about, --reason, --actor, --namespace.
75
+ */
76
+ export declare function parseRevertCliArgs(args: string[]): ParsedRevertArgs;
77
+ //# sourceMappingURL=revert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revert.d.ts","sourceRoot":"","sources":["../src/revert.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,YAAY,EAAE,gBAAgB,EAAE,CAAC;AAEjC,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAE3D,MAAM,WAAW,YAAY;IAC3B,oDAAoD;IACpD,QAAQ,EAAE,OAAO,CAAC;IAClB,oEAAoE;IACpE,KAAK,EAAE,eAAe,CAAC;IACvB,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA2GD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CASzD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAyB7D;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,gBAAgB,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,gBAAgB,CA0EnE"}
memos/_js/revert.js ADDED
@@ -0,0 +1,252 @@
1
+ /**
2
+ * Command-driven belief revision ("natural-language revert").
3
+ *
4
+ * MemOS has a bitemporal validity ledger (`valid_from`/`valid_to` on nodes
5
+ * and edges) and a contradiction-detection pipeline — but invalidation only
6
+ * fires on *detected* contradictions. This module provides the missing
7
+ * primitive: detecting a *revert command* in user/agent text, locally, with
8
+ * no LLM on the hot path (patterns + entity/scope resolution only).
9
+ *
10
+ * Intent model:
11
+ * - "last" scope — "revert that", "undo what I just told you",
12
+ * "forget the last thing", "that last thing was wrong", "go back".
13
+ * Resolves to the most recent currently-valid, non-audit memory in the
14
+ * namespace (durable across processes: a CLI invocation is its own
15
+ * session, so "last" means the newest write in the store).
16
+ * - "named" scope — "revert what I said about the dentist",
17
+ * "undo the dentist appointment". Resolves to the best-matching memory
18
+ * for the named entity.
19
+ *
20
+ * Disambiguation rule (documented, deterministic):
21
+ * - When several memories match a named target, the most recently created
22
+ * valid memory wins; every other match is returned as an `alternative`
23
+ * so the caller (CLI dry-run, MCP dry_run) can confirm before executing.
24
+ * - `forget <named entity>` is deliberately NOT revert intent — it is the
25
+ * existing `memos_forget` semantic (delete the memory), not a request to
26
+ * restore an older version. Only `forget the last thing` / `forget what
27
+ * I said` (no entity named) counts as revert intent.
28
+ *
29
+ * @module @memos/revert
30
+ */
31
+ // Evaluation order matters: named patterns run BEFORE last-scope patterns
32
+ // (e.g. "revert what I said about the dentist" must not be swallowed by the
33
+ // "what I said" branch of the last-scope "undo that" pattern). The
34
+ // `the\s+(?!last\s+thing\b)` guard keeps "revert the last thing" on the
35
+ // last-scope path.
36
+ const NAMED_SCOPE_PATTERNS = [
37
+ {
38
+ name: "revert-about",
39
+ scope: "named",
40
+ // The "what I said" branch requires an explicit "about" so bare
41
+ // "revert what I just told you" stays on the last-scope path.
42
+ regex: /\brevert\s+(?:what\s+i\s+(?:just\s+)?(?:said|told(?:\s+you)?|mentioned)\s+about\s+|my\s+(?:memory|note|fact)\s+(?:about\s+)?|the\s+(?!last\s+thing\b))(.+?)\s*[.!?;]*$/i,
43
+ },
44
+ {
45
+ name: "undo-about",
46
+ scope: "named",
47
+ regex: /\bundo\s+(?:what\s+i\s+(?:just\s+)?(?:said|told(?:\s+you)?|mentioned)\s+about\s+|the\s+(?!last\s+thing\b))(.+?)\s*[.!?;]*$/i,
48
+ },
49
+ {
50
+ name: "thing-was-wrong",
51
+ scope: "named",
52
+ // Guarded so "the last thing was wrong" stays last-scope.
53
+ regex: /\bthe\s+(?!last\b)(.+?)\s+(?:thing|fact|note)\s+(?:is|was)\s+wrong\b/i,
54
+ },
55
+ ];
56
+ // Last-scope patterns — evaluated AFTER named patterns.
57
+ const LAST_SCOPE_PATTERNS = [
58
+ {
59
+ name: "undo-that",
60
+ scope: "last",
61
+ regex: /\b(undo|revert)\s+(that|it|the\s+last\s+thing|what\s+i\s+(?:just\s+)?(?:said|told(?:\s+you)?|mentioned|added|wrote))\b/i,
62
+ },
63
+ {
64
+ name: "take-back",
65
+ scope: "last",
66
+ regex: /\b(take|strike)\s+(that|it)\s+back\b/i,
67
+ },
68
+ {
69
+ name: "go-back",
70
+ scope: "last",
71
+ // Negative lookahead excludes literal travel ("go back home/to X").
72
+ regex: /(?:^|[.!?;,\s])go\s+back(?!\s+(?:to|home|there|here|inside|outside|in|into|and|for)\b)/i,
73
+ },
74
+ {
75
+ name: "forget-last-thing",
76
+ scope: "last",
77
+ regex: /\bforget\s+(?:the\s+last\s+thing|what\s+i\s+(?:just\s+)?(?:said|told(?:\s+you)?|mentioned|added|wrote))\b/i,
78
+ },
79
+ {
80
+ name: "that-was-wrong",
81
+ scope: "last",
82
+ regex: /\b(?:that|this)\s+(?:last\s+thing\s+)?(?:is|was)\s+wrong\b|\blast\s+thing\b.{0,40}\bwrong\b/i,
83
+ },
84
+ {
85
+ name: "scratch-that",
86
+ scope: "last",
87
+ regex: /\b(?:scratch|disregard|ignore|never\s+mind)\s+that\b/i,
88
+ },
89
+ ];
90
+ /** Characters stripped from the ends of a captured revert target. */
91
+ const TRAILING_PUNCT = new Set([".", "!", "?", ";", ","]);
92
+ const WRAPPING_QUOTES = new Set([
93
+ '"',
94
+ "'",
95
+ "\u201c",
96
+ "\u201d",
97
+ "\u2018",
98
+ "\u2019",
99
+ ]);
100
+ /**
101
+ * Strip trailing characters in a single linear pass.
102
+ * A regex like `/[.!?;,]+$/` backtracks quadratically on inputs such as
103
+ * `"!".repeat(n) + "a"` (polynomial ReDoS on uncontrolled input) — this
104
+ * loop is O(n) instead.
105
+ */
106
+ function stripTrailingChars(s, chars) {
107
+ let end = s.length;
108
+ while (end > 0 && chars.has(s.charAt(end - 1)))
109
+ end--;
110
+ return s.slice(0, end);
111
+ }
112
+ /** Strip leading characters in a single linear pass. */
113
+ function stripLeadingChars(s, chars) {
114
+ let start = 0;
115
+ while (start < s.length && chars.has(s.charAt(start)))
116
+ start++;
117
+ return s.slice(start);
118
+ }
119
+ /**
120
+ * Normalize a captured target phrase: trim, strip trailing punctuation,
121
+ * then surrounding quotes (order matters for `"the gym"!`), collapse
122
+ * whitespace.
123
+ */
124
+ export function normalizeRevertTarget(raw) {
125
+ let s = raw.trim();
126
+ s = stripTrailingChars(s, TRAILING_PUNCT);
127
+ s = stripLeadingChars(s, WRAPPING_QUOTES);
128
+ s = stripTrailingChars(s, WRAPPING_QUOTES);
129
+ s = stripTrailingChars(s, TRAILING_PUNCT);
130
+ // `\s+` with nothing after it matches greedily with no backtracking —
131
+ // linear and safe to keep as a regex.
132
+ return s.replace(/\s+/g, " ").trim();
133
+ }
134
+ /**
135
+ * Detect a revert command in free text. Local-only: regex patterns, no LLM.
136
+ *
137
+ * @param text — The user/agent utterance.
138
+ * @returns The detected intent, or `{ detected: false, scope: "unknown" }`.
139
+ */
140
+ export function detectRevertIntent(text) {
141
+ if (!text || typeof text !== "string") {
142
+ return { detected: false, scope: "unknown" };
143
+ }
144
+ // Named patterns first — see the comment on NAMED_SCOPE_PATTERNS.
145
+ for (const pattern of NAMED_SCOPE_PATTERNS) {
146
+ const match = pattern.regex.exec(text);
147
+ if (match?.[1]) {
148
+ const target = normalizeRevertTarget(match[1]);
149
+ if (target.length > 0) {
150
+ return {
151
+ detected: true,
152
+ scope: "named",
153
+ target,
154
+ pattern: pattern.name,
155
+ };
156
+ }
157
+ }
158
+ }
159
+ for (const pattern of LAST_SCOPE_PATTERNS) {
160
+ if (pattern.regex.test(text)) {
161
+ return { detected: true, scope: "last", pattern: pattern.name };
162
+ }
163
+ }
164
+ return { detected: false, scope: "unknown" };
165
+ }
166
+ /**
167
+ * Parse `memos revert` CLI arguments (pure, no side effects — testable).
168
+ *
169
+ * memos revert --last [--dry-run] [--reason <r>] [--actor <a>]
170
+ * memos revert --id <id> [--dry-run] ...
171
+ * memos revert --about <entity> [--dry-run] ...
172
+ * memos revert "<natural language>" [--dry-run] ...
173
+ *
174
+ * Flags that take a value: --id, --about, --reason, --actor, --namespace.
175
+ */
176
+ export function parseRevertCliArgs(args) {
177
+ // Strip global CLI flags (handled by the CLI harness, not the command).
178
+ const filtered = [];
179
+ const globalsWithValue = new Set(["--db", "--key"]);
180
+ for (let i = 0; i < args.length; i++) {
181
+ if (args[i] === "--json")
182
+ continue;
183
+ if (globalsWithValue.has(args[i])) {
184
+ i++;
185
+ continue;
186
+ }
187
+ filtered.push(args[i]);
188
+ }
189
+ args = filtered;
190
+ const valueOf = (flag) => {
191
+ const idx = args.indexOf(flag);
192
+ return idx !== -1 && args[idx + 1] && !args[idx + 1].startsWith("--")
193
+ ? args[idx + 1]
194
+ : undefined;
195
+ };
196
+ const dryRun = args.includes("--dry-run");
197
+ const reason = valueOf("--reason");
198
+ const actor = valueOf("--actor");
199
+ const namespace = valueOf("--namespace");
200
+ const id = valueOf("--id");
201
+ const about = valueOf("--about");
202
+ const last = args.includes("--last");
203
+ const positional = args.find((a) => !a.startsWith("--") &&
204
+ a !== id &&
205
+ a !== about &&
206
+ a !== reason &&
207
+ a !== actor &&
208
+ a !== namespace);
209
+ const base = { dryRun };
210
+ if (reason)
211
+ base.reason = reason;
212
+ if (actor)
213
+ base.actor = actor;
214
+ if (namespace)
215
+ base.namespace = namespace;
216
+ const explicit = [
217
+ id && "--id",
218
+ last && "--last",
219
+ about && "--about",
220
+ positional && "<text>",
221
+ ].filter(Boolean);
222
+ if (explicit.length > 1) {
223
+ return {
224
+ ...base,
225
+ scope: { kind: "last" },
226
+ error: `Conflicting scope flags: ${explicit.join(", ")}. Pick one of --last, --id, --about, or a single text argument.`,
227
+ };
228
+ }
229
+ if (id)
230
+ return { ...base, scope: { kind: "id", id } };
231
+ if (last)
232
+ return { ...base, scope: { kind: "last" } };
233
+ if (about)
234
+ return { ...base, scope: { kind: "entity", entity: about } };
235
+ if (positional) {
236
+ const intent = detectRevertIntent(positional);
237
+ if (!intent.detected) {
238
+ return {
239
+ ...base,
240
+ scope: { kind: "text", text: positional },
241
+ error: `No revert intent detected in "${positional}". Try "revert that", "revert the last thing", or "revert what I said about <topic>".`,
242
+ };
243
+ }
244
+ return { ...base, scope: { kind: "text", text: positional } };
245
+ }
246
+ return {
247
+ ...base,
248
+ scope: { kind: "last" },
249
+ error: 'Nothing to revert. Usage: memos revert --last | --id <id> | --about <topic> | "<natural language>" [--dry-run]',
250
+ };
251
+ }
252
+ //# sourceMappingURL=revert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revert.js","sourceRoot":"","sources":["../src/revert.ts"],"names":[],"mappings":"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"}
memos/_js/scope.d.ts ADDED
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Multi-scope memory — hierarchical namespace composition.
3
+ *
4
+ * Scopes are the promoted, first-class interface over raw namespaces.
5
+ * A scope is a set of typed keys (`user` / `agent` / `run`) composed —
6
+ * in that fixed order — into the underlying namespace string:
7
+ *
8
+ * { user: "alice", agent: "coder", run: "r1" }
9
+ * → "u:alice/a:coder/r:r1"
10
+ *
11
+ * Because scopes map onto namespace strings, retrieval can be
12
+ * hierarchical: querying with `{ user: "alice" }` (prefix match)
13
+ * surfaces every memory stored under any of Alice's agents and runs,
14
+ * while `{ user: "alice", run: "r1" }` narrows to one run. Exact
15
+ * matching is available via `scopeMatch: "exact"`.
16
+ *
17
+ * @module @mem-os/scope
18
+ */
19
+ import type { MemoryScope } from "./types.js";
20
+ /** Compose a scope object into its canonical namespace string. */
21
+ export declare function composeScope(scope: MemoryScope): string;
22
+ /**
23
+ * Parse a CLI-scope string into a MemoryScope. Accepts both tag and long
24
+ * forms, comma- or slash-separated:
25
+ * "user:alice,agent:coder" · "u:alice/a:coder/r:r1"
26
+ */
27
+ export declare function parseScopeArg(value: string): MemoryScope;
28
+ /** Escape LIKE wildcards so user values can't widen a prefix match. */
29
+ export declare function escapeLikePrefix(value: string): string;
30
+ //# sourceMappingURL=scope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../src/scope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAQ9C,kEAAkE;AAClE,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAcvD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAwBxD;AAED,uEAAuE;AACvE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEtD"}
memos/_js/scope.js ADDED
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Multi-scope memory — hierarchical namespace composition.
3
+ *
4
+ * Scopes are the promoted, first-class interface over raw namespaces.
5
+ * A scope is a set of typed keys (`user` / `agent` / `run`) composed —
6
+ * in that fixed order — into the underlying namespace string:
7
+ *
8
+ * { user: "alice", agent: "coder", run: "r1" }
9
+ * → "u:alice/a:coder/r:r1"
10
+ *
11
+ * Because scopes map onto namespace strings, retrieval can be
12
+ * hierarchical: querying with `{ user: "alice" }` (prefix match)
13
+ * surfaces every memory stored under any of Alice's agents and runs,
14
+ * while `{ user: "alice", run: "r1" }` narrows to one run. Exact
15
+ * matching is available via `scopeMatch: "exact"`.
16
+ *
17
+ * @module @mem-os/scope
18
+ */
19
+ const SCOPE_PREFIX = [
20
+ { key: "user", tag: "u" },
21
+ { key: "agent", tag: "a" },
22
+ { key: "run", tag: "r" },
23
+ ];
24
+ /** Compose a scope object into its canonical namespace string. */
25
+ export function composeScope(scope) {
26
+ const parts = [];
27
+ for (const { key, tag } of SCOPE_PREFIX) {
28
+ const value = scope[key];
29
+ if (value && String(value).trim()) {
30
+ parts.push(`${tag}:${String(value).trim()}`);
31
+ }
32
+ }
33
+ if (parts.length === 0) {
34
+ throw new Error("Empty scope — provide at least one of user, agent, or run.");
35
+ }
36
+ return parts.join("/");
37
+ }
38
+ /**
39
+ * Parse a CLI-scope string into a MemoryScope. Accepts both tag and long
40
+ * forms, comma- or slash-separated:
41
+ * "user:alice,agent:coder" · "u:alice/a:coder/r:r1"
42
+ */
43
+ export function parseScopeArg(value) {
44
+ const scope = {};
45
+ const longNames = {
46
+ u: "user",
47
+ user: "user",
48
+ a: "agent",
49
+ agent: "agent",
50
+ r: "run",
51
+ run: "run",
52
+ };
53
+ for (const part of value.split(/[,/]/)) {
54
+ const [rawKey, ...rest] = part.split(":");
55
+ const rawValue = rest.join(":").trim();
56
+ const key = rawKey.trim().toLowerCase();
57
+ if (!rawValue)
58
+ continue;
59
+ const mapped = longNames[key];
60
+ if (!mapped) {
61
+ throw new Error(`Unknown scope key '${rawKey}'. Use user/agent/run (or u/a/r).`);
62
+ }
63
+ scope[mapped] = rawValue;
64
+ }
65
+ return scope;
66
+ }
67
+ /** Escape LIKE wildcards so user values can't widen a prefix match. */
68
+ export function escapeLikePrefix(value) {
69
+ return value.replace(/[\\%_]/g, (ch) => `\\${ch}`);
70
+ }
71
+ //# sourceMappingURL=scope.js.map
memos/_js/scope.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope.js","sourceRoot":"","sources":["../src/scope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,MAAM,YAAY,GAAmD;IACnE,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE;IACzB,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE;IAC1B,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE;CACzB,CAAC;AAEF,kEAAkE;AAClE,MAAM,UAAU,YAAY,CAAC,KAAkB;IAC7C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,YAAY,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,MAAM,KAAK,GAAgB,EAAE,CAAC;IAC9B,MAAM,SAAS,GAAsC;QACnD,CAAC,EAAE,MAAM;QACT,IAAI,EAAE,MAAM;QACZ,CAAC,EAAE,OAAO;QACV,KAAK,EAAE,OAAO;QACd,CAAC,EAAE,KAAK;QACR,GAAG,EAAE,KAAK;KACX,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACvC,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACxC,IAAI,CAAC,QAAQ;YAAE,SAAS;QACxB,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CACb,sBAAsB,MAAM,mCAAmC,CAChE,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;IAC3B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACrD,CAAC"}