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.
- mem_os_python-1.6.27.dist-info/METADATA +1032 -0
- mem_os_python-1.6.27.dist-info/RECORD +253 -0
- mem_os_python-1.6.27.dist-info/WHEEL +4 -0
- mem_os_python-1.6.27.dist-info/entry_points.txt +2 -0
- mem_os_python-1.6.27.dist-info/licenses/LICENSE +21 -0
- memos/__init__.py +16 -0
- memos/_js/adapters/anthropic.d.ts +279 -0
- memos/_js/adapters/anthropic.d.ts.map +1 -0
- memos/_js/adapters/anthropic.js +348 -0
- memos/_js/adapters/anthropic.js.map +1 -0
- memos/_js/adapters/base.d.ts +10 -0
- memos/_js/adapters/base.d.ts.map +1 -0
- memos/_js/adapters/base.js +2 -0
- memos/_js/adapters/base.js.map +1 -0
- memos/_js/adapters/openai.d.ts +264 -0
- memos/_js/adapters/openai.d.ts.map +1 -0
- memos/_js/adapters/openai.js +342 -0
- memos/_js/adapters/openai.js.map +1 -0
- memos/_js/apps/explorer.d.ts +244 -0
- memos/_js/apps/explorer.d.ts.map +1 -0
- memos/_js/apps/explorer.js +738 -0
- memos/_js/apps/explorer.js.map +1 -0
- memos/_js/citations.d.ts +65 -0
- memos/_js/citations.d.ts.map +1 -0
- memos/_js/citations.js +143 -0
- memos/_js/citations.js.map +1 -0
- memos/_js/cli-browse.d.ts +3 -0
- memos/_js/cli-browse.d.ts.map +1 -0
- memos/_js/cli-browse.js +129 -0
- memos/_js/cli-browse.js.map +1 -0
- memos/_js/cli-completion.d.ts +31 -0
- memos/_js/cli-completion.d.ts.map +1 -0
- memos/_js/cli-completion.js +340 -0
- memos/_js/cli-completion.js.map +1 -0
- memos/_js/cli-help.d.ts +18 -0
- memos/_js/cli-help.d.ts.map +1 -0
- memos/_js/cli-help.js +357 -0
- memos/_js/cli-help.js.map +1 -0
- memos/_js/cli.d.ts +28 -0
- memos/_js/cli.d.ts.map +1 -0
- memos/_js/cli.js +2880 -0
- memos/_js/cli.js.map +1 -0
- memos/_js/compression.d.ts +25 -0
- memos/_js/compression.d.ts.map +1 -0
- memos/_js/compression.js +319 -0
- memos/_js/compression.js.map +1 -0
- memos/_js/confidence-machine.d.ts +99 -0
- memos/_js/confidence-machine.d.ts.map +1 -0
- memos/_js/confidence-machine.js +222 -0
- memos/_js/confidence-machine.js.map +1 -0
- memos/_js/context-pack.d.ts +506 -0
- memos/_js/context-pack.d.ts.map +1 -0
- memos/_js/context-pack.js +1435 -0
- memos/_js/context-pack.js.map +1 -0
- memos/_js/contradictions.d.ts +160 -0
- memos/_js/contradictions.d.ts.map +1 -0
- memos/_js/contradictions.js +255 -0
- memos/_js/contradictions.js.map +1 -0
- memos/_js/dashboard.d.ts +30 -0
- memos/_js/dashboard.d.ts.map +1 -0
- memos/_js/dashboard.js +302 -0
- memos/_js/dashboard.js.map +1 -0
- memos/_js/ebbinghaus.d.ts +29 -0
- memos/_js/ebbinghaus.d.ts.map +1 -0
- memos/_js/ebbinghaus.js +32 -0
- memos/_js/ebbinghaus.js.map +1 -0
- memos/_js/embedding-queue.d.ts +190 -0
- memos/_js/embedding-queue.d.ts.map +1 -0
- memos/_js/embedding-queue.js +316 -0
- memos/_js/embedding-queue.js.map +1 -0
- memos/_js/embeddings.d.ts +187 -0
- memos/_js/embeddings.d.ts.map +1 -0
- memos/_js/embeddings.js +633 -0
- memos/_js/embeddings.js.map +1 -0
- memos/_js/entity-extraction.d.ts +54 -0
- memos/_js/entity-extraction.d.ts.map +1 -0
- memos/_js/entity-extraction.js +325 -0
- memos/_js/entity-extraction.js.map +1 -0
- memos/_js/entity-index.d.ts +93 -0
- memos/_js/entity-index.d.ts.map +1 -0
- memos/_js/entity-index.js +165 -0
- memos/_js/entity-index.js.map +1 -0
- memos/_js/event-memory.d.ts +147 -0
- memos/_js/event-memory.d.ts.map +1 -0
- memos/_js/event-memory.js +290 -0
- memos/_js/event-memory.js.map +1 -0
- memos/_js/external-import.d.ts +98 -0
- memos/_js/external-import.d.ts.map +1 -0
- memos/_js/external-import.js +669 -0
- memos/_js/external-import.js.map +1 -0
- memos/_js/fidelity.d.ts +367 -0
- memos/_js/fidelity.d.ts.map +1 -0
- memos/_js/fidelity.js +911 -0
- memos/_js/fidelity.js.map +1 -0
- memos/_js/graph-expansion.d.ts +119 -0
- memos/_js/graph-expansion.d.ts.map +1 -0
- memos/_js/graph-expansion.js +213 -0
- memos/_js/graph-expansion.js.map +1 -0
- memos/_js/graph-mermaid.d.ts +13 -0
- memos/_js/graph-mermaid.d.ts.map +1 -0
- memos/_js/graph-mermaid.js +32 -0
- memos/_js/graph-mermaid.js.map +1 -0
- memos/_js/graph.d.ts +170 -0
- memos/_js/graph.d.ts.map +1 -0
- memos/_js/graph.js +482 -0
- memos/_js/graph.js.map +1 -0
- memos/_js/harness.d.ts +63 -0
- memos/_js/harness.d.ts.map +1 -0
- memos/_js/harness.js +93 -0
- memos/_js/harness.js.map +1 -0
- memos/_js/importance.d.ts +118 -0
- memos/_js/importance.d.ts.map +1 -0
- memos/_js/importance.js +144 -0
- memos/_js/importance.js.map +1 -0
- memos/_js/index.d.ts +51 -0
- memos/_js/index.d.ts.map +1 -0
- memos/_js/index.js +53 -0
- memos/_js/index.js.map +1 -0
- memos/_js/mcp.d.ts +58 -0
- memos/_js/mcp.d.ts.map +1 -0
- memos/_js/mcp.js +1853 -0
- memos/_js/mcp.js.map +1 -0
- memos/_js/memory.d.ts +1762 -0
- memos/_js/memory.d.ts.map +1 -0
- memos/_js/memory.js +6283 -0
- memos/_js/memory.js.map +1 -0
- memos/_js/procedural.d.ts +74 -0
- memos/_js/procedural.d.ts.map +1 -0
- memos/_js/procedural.js +125 -0
- memos/_js/procedural.js.map +1 -0
- memos/_js/project-config.d.ts +68 -0
- memos/_js/project-config.d.ts.map +1 -0
- memos/_js/project-config.js +59 -0
- memos/_js/project-config.js.map +1 -0
- memos/_js/proof-of-forgetting.d.ts +57 -0
- memos/_js/proof-of-forgetting.d.ts.map +1 -0
- memos/_js/proof-of-forgetting.js +80 -0
- memos/_js/proof-of-forgetting.js.map +1 -0
- memos/_js/provenance.d.ts +122 -0
- memos/_js/provenance.d.ts.map +1 -0
- memos/_js/provenance.js +182 -0
- memos/_js/provenance.js.map +1 -0
- memos/_js/quarantine-commands.d.ts +23 -0
- memos/_js/quarantine-commands.d.ts.map +1 -0
- memos/_js/quarantine-commands.js +42 -0
- memos/_js/quarantine-commands.js.map +1 -0
- memos/_js/quarantine.d.ts +120 -0
- memos/_js/quarantine.d.ts.map +1 -0
- memos/_js/quarantine.js +873 -0
- memos/_js/quarantine.js.map +1 -0
- memos/_js/redact.d.ts +12 -0
- memos/_js/redact.d.ts.map +1 -0
- memos/_js/redact.js +26 -0
- memos/_js/redact.js.map +1 -0
- memos/_js/repl.d.ts +57 -0
- memos/_js/repl.d.ts.map +1 -0
- memos/_js/repl.js +295 -0
- memos/_js/repl.js.map +1 -0
- memos/_js/rerank-local.d.ts +61 -0
- memos/_js/rerank-local.d.ts.map +1 -0
- memos/_js/rerank-local.js +210 -0
- memos/_js/rerank-local.js.map +1 -0
- memos/_js/retain-filter.d.ts +98 -0
- memos/_js/retain-filter.d.ts.map +1 -0
- memos/_js/retain-filter.js +232 -0
- memos/_js/retain-filter.js.map +1 -0
- memos/_js/retrieval.d.ts +265 -0
- memos/_js/retrieval.d.ts.map +1 -0
- memos/_js/retrieval.js +1018 -0
- memos/_js/retrieval.js.map +1 -0
- memos/_js/revert.d.ts +77 -0
- memos/_js/revert.d.ts.map +1 -0
- memos/_js/revert.js +252 -0
- memos/_js/revert.js.map +1 -0
- memos/_js/scope.d.ts +30 -0
- memos/_js/scope.d.ts.map +1 -0
- memos/_js/scope.js +71 -0
- memos/_js/scope.js.map +1 -0
- memos/_js/semantic-screen.d.ts +152 -0
- memos/_js/semantic-screen.d.ts.map +1 -0
- memos/_js/semantic-screen.js +290 -0
- memos/_js/semantic-screen.js.map +1 -0
- memos/_js/session-hooks.d.ts +127 -0
- memos/_js/session-hooks.d.ts.map +1 -0
- memos/_js/session-hooks.js +482 -0
- memos/_js/session-hooks.js.map +1 -0
- memos/_js/storage/sqlite.d.ts +427 -0
- memos/_js/storage/sqlite.d.ts.map +1 -0
- memos/_js/storage/sqlite.js +2428 -0
- memos/_js/storage/sqlite.js.map +1 -0
- memos/_js/sync.d.ts +213 -0
- memos/_js/sync.d.ts.map +1 -0
- memos/_js/sync.js +389 -0
- memos/_js/sync.js.map +1 -0
- memos/_js/tamper-log.d.ts +98 -0
- memos/_js/tamper-log.d.ts.map +1 -0
- memos/_js/tamper-log.js +327 -0
- memos/_js/tamper-log.js.map +1 -0
- memos/_js/temporal.d.ts +92 -0
- memos/_js/temporal.d.ts.map +1 -0
- memos/_js/temporal.js +536 -0
- memos/_js/temporal.js.map +1 -0
- memos/_js/time-travel.d.ts +38 -0
- memos/_js/time-travel.d.ts.map +1 -0
- memos/_js/time-travel.js +46 -0
- memos/_js/time-travel.js.map +1 -0
- memos/_js/timestamp-format.d.ts +18 -0
- memos/_js/timestamp-format.d.ts.map +1 -0
- memos/_js/timestamp-format.js +52 -0
- memos/_js/timestamp-format.js.map +1 -0
- memos/_js/triple-extraction.d.ts +31 -0
- memos/_js/triple-extraction.d.ts.map +1 -0
- memos/_js/triple-extraction.js +116 -0
- memos/_js/triple-extraction.js.map +1 -0
- memos/_js/types.d.ts +2474 -0
- memos/_js/types.d.ts.map +1 -0
- memos/_js/types.js +20 -0
- memos/_js/types.js.map +1 -0
- memos/_js/updater.d.ts +95 -0
- memos/_js/updater.d.ts.map +1 -0
- memos/_js/updater.js +268 -0
- memos/_js/updater.js.map +1 -0
- memos/_js/version.d.ts +17 -0
- memos/_js/version.d.ts.map +1 -0
- memos/_js/version.js +34 -0
- memos/_js/version.js.map +1 -0
- memos/_js/vision/clip-query-cache.d.ts +58 -0
- memos/_js/vision/clip-query-cache.d.ts.map +1 -0
- memos/_js/vision/clip-query-cache.js +79 -0
- memos/_js/vision/clip-query-cache.js.map +1 -0
- memos/_js/vision/clip.d.ts +113 -0
- memos/_js/vision/clip.d.ts.map +1 -0
- memos/_js/vision/clip.js +224 -0
- memos/_js/vision/clip.js.map +1 -0
- memos/_js/vision/fake-clip.d.ts +55 -0
- memos/_js/vision/fake-clip.d.ts.map +1 -0
- memos/_js/vision/fake-clip.js +122 -0
- memos/_js/vision/fake-clip.js.map +1 -0
- memos/_js/vision/index.d.ts +15 -0
- memos/_js/vision/index.d.ts.map +1 -0
- memos/_js/vision/index.js +13 -0
- memos/_js/vision/index.js.map +1 -0
- memos/_js/vision/store.d.ts +137 -0
- memos/_js/vision/store.d.ts.map +1 -0
- memos/_js/vision/store.js +383 -0
- memos/_js/vision/store.js.map +1 -0
- memos/adapters/__init__.py +0 -0
- memos/adapters/crewai.py +385 -0
- memos/adapters/langchain.py +301 -0
- memos/adapters/ollama.py +396 -0
- memos/server/__init__.py +0 -0
- memos/server/main.py +547 -0
- 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
|
memos/_js/revert.js.map
ADDED
|
@@ -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
|
memos/_js/scope.d.ts.map
ADDED
|
@@ -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"}
|