@hasna/mementos 0.14.87 → 0.15.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/README.md +44 -9
  2. package/bun.lock +4 -62
  3. package/dist/cli/commands/info-history.d.ts.map +1 -1
  4. package/dist/cli/commands/info-stale.d.ts.map +1 -1
  5. package/dist/cli/commands/io-backup.d.ts.map +1 -1
  6. package/dist/cli/commands/io-export.d.ts.map +1 -1
  7. package/dist/cli/commands/io-restore.d.ts.map +1 -1
  8. package/dist/cli/commands/memory-cmd-chain.d.ts.map +1 -1
  9. package/dist/cli/commands/memory-cmd-crud.d.ts.map +1 -1
  10. package/dist/cli/commands/memory-cmd-recall.d.ts.map +1 -1
  11. package/dist/cli/commands/memory-cmd-search.d.ts.map +1 -1
  12. package/dist/cli/commands/memory-cmd-tail.d.ts.map +1 -1
  13. package/dist/cli/commands/memory-cmd-view.d.ts.map +1 -1
  14. package/dist/cli/commands/memory-cmd-when-to-use.d.ts.map +1 -1
  15. package/dist/cli/commands/storage.d.ts.map +1 -1
  16. package/dist/cli/commands/system-doctor.d.ts.map +1 -1
  17. package/dist/cli/commands/system-profile.d.ts.map +1 -1
  18. package/dist/cli/commands/system-status.d.ts +43 -0
  19. package/dist/cli/commands/system-status.d.ts.map +1 -0
  20. package/dist/cli/commands/system.d.ts.map +1 -1
  21. package/dist/cli/helpers.d.ts.map +1 -1
  22. package/dist/cli/index.js +3735 -2021
  23. package/dist/cli/register-all.d.ts +1 -1
  24. package/dist/cli/register-all.d.ts.map +1 -1
  25. package/dist/db/api-mode.d.ts +135 -37
  26. package/dist/db/api-mode.d.ts.map +1 -1
  27. package/dist/db/database.d.ts.map +1 -1
  28. package/dist/db/memories.d.ts.map +1 -1
  29. package/dist/db/pg-migrate.d.ts.map +1 -1
  30. package/dist/db/store-backend.d.ts +8 -2
  31. package/dist/db/store-backend.d.ts.map +1 -1
  32. package/dist/diagnostics/historical-project-registration-receipt.js +152 -11
  33. package/dist/generated/storage-kit/backend.d.ts +12 -2
  34. package/dist/generated/storage-kit/backend.d.ts.map +1 -1
  35. package/dist/generated/storage-kit/index.d.ts +1 -1
  36. package/dist/generated/storage-kit/index.d.ts.map +1 -1
  37. package/dist/generated/storage-kit/migrations.d.ts +21 -0
  38. package/dist/generated/storage-kit/migrations.d.ts.map +1 -1
  39. package/dist/generated/storage-kit/pool.d.ts +2 -5
  40. package/dist/generated/storage-kit/pool.d.ts.map +1 -1
  41. package/dist/generated/storage-kit/query.d.ts +1 -1
  42. package/dist/generated/storage-kit/query.d.ts.map +1 -1
  43. package/dist/index.d.ts +1 -2
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +3057 -1266
  46. package/dist/lib/config.d.ts.map +1 -1
  47. package/dist/lib/env.d.ts +10 -0
  48. package/dist/lib/env.d.ts.map +1 -0
  49. package/dist/lib/gatherer.d.ts.map +1 -1
  50. package/dist/lib/local-opt-in.d.ts +114 -0
  51. package/dist/lib/local-opt-in.d.ts.map +1 -0
  52. package/dist/lib/model-config.d.ts +1 -1
  53. package/dist/lib/paths.d.ts +60 -0
  54. package/dist/lib/paths.d.ts.map +1 -0
  55. package/dist/lib/profile-sync.d.ts.map +1 -1
  56. package/dist/lib/redact.d.ts +70 -10
  57. package/dist/lib/redact.d.ts.map +1 -1
  58. package/dist/lib/reflection.d.ts.map +1 -1
  59. package/dist/lib/search.d.ts.map +1 -1
  60. package/dist/lib/storage-sync.d.ts.map +1 -1
  61. package/dist/lib/sync.d.ts.map +1 -1
  62. package/dist/mcp/index.d.ts.map +1 -1
  63. package/dist/mcp/index.js +3108 -1276
  64. package/dist/project-registration.js +378 -153
  65. package/dist/sdk/index.d.ts +173 -8
  66. package/dist/sdk/index.d.ts.map +1 -1
  67. package/dist/sdk/index.js +953 -12
  68. package/dist/server/auth.d.ts +2 -0
  69. package/dist/server/auth.d.ts.map +1 -1
  70. package/dist/server/helpers.d.ts +48 -3
  71. package/dist/server/helpers.d.ts.map +1 -1
  72. package/dist/server/index.d.ts.map +1 -1
  73. package/dist/server/index.js +3146 -1324
  74. package/dist/server/routes/system-synthesis.d.ts.map +1 -1
  75. package/dist/storage.d.ts +18 -0
  76. package/dist/storage.d.ts.map +1 -1
  77. package/dist/storage.js +149 -83
  78. package/dist/test-support/store-isolation.d.ts +50 -11
  79. package/dist/test-support/store-isolation.d.ts.map +1 -1
  80. package/docker-entrypoint.sh +7 -0
  81. package/hasna.contract.json +17 -5
  82. package/package.json +8 -8
  83. package/postinstall.mjs +85 -0
  84. package/dashboard/bun.lock +0 -519
  85. package/dist/cli/brains.d.ts +0 -3
  86. package/dist/cli/brains.d.ts.map +0 -1
  87. package/dist/lib/retired-storage-mode.d.ts +0 -11
  88. package/dist/lib/retired-storage-mode.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAA+B,MAAM,UAAU,CAAC;AAc5E,eAAO,MAAM,cAAc,EAAE,cA4B5B,CAAC;AA4DF,wBAAgB,UAAU,IAAI,cAAc,CAwC3C;AA2FD,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAMhD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAQ1D;AAED,wBAAgB,YAAY,IAAI,MAAM,EAAE,CAOvC;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAOnD;AAED,wBAAgB,SAAS,IAAI,MAAM,CAmDlC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAA+B,MAAM,UAAU,CAAC;AAiB5E,eAAO,MAAM,cAAc,EAAE,cA4B5B,CAAC;AA4DF,wBAAgB,UAAU,IAAI,cAAc,CAwC3C;AA2FD,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAMhD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAQ1D;AAED,wBAAgB,YAAY,IAAI,MAAM,EAAE,CAOvC;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAOnD;AAED,wBAAgB,SAAS,IAAI,MAAM,CAuDlC"}
@@ -0,0 +1,10 @@
1
+ export declare const env: {
2
+ readonly apiKey: () => string | undefined;
3
+ readonly defaultScope: () => string | undefined;
4
+ readonly defaultCategory: () => string | undefined;
5
+ readonly defaultImportance: () => string | undefined;
6
+ readonly pgsyncQueryTimeoutMs: () => string | undefined;
7
+ readonly reflectProvider: () => string | undefined;
8
+ readonly reflectModel: () => string | undefined;
9
+ };
10
+ //# sourceMappingURL=env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/lib/env.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,GAAG;2BACF,MAAM,GAAG,SAAS;iCACZ,MAAM,GAAG,SAAS;oCAEf,MAAM,GAAG,SAAS;sCAEhB,MAAM,GAAG,SAAS;yCAEf,MAAM,GAAG,SAAS;oCAEvB,MAAM,GAAG,SAAS;iCAErB,MAAM,GAAG,SAAS;CAE5B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"gatherer.d.ts","sourceRoot":"","sources":["../../src/lib/gatherer.ts"],"names":[],"mappings":"AAMA,KAAK,oBAAoB,GAAG,CAAC,OAAO,CAAC,EAAE;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,IAAI,CAAC;CACd,KAAK,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,KAAK,CAAC;QACd,QAAQ,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC7E,CAAC,CAAC;IACH,KAAK,EAAE,MAAM,CAAC;CACf,CAAC,CAAC;AAyEH,eAAO,MAAM,kBAAkB,EAAE,oBAkDhC,CAAC"}
1
+ {"version":3,"file":"gatherer.d.ts","sourceRoot":"","sources":["../../src/lib/gatherer.ts"],"names":[],"mappings":"AAOA,KAAK,oBAAoB,GAAG,CAAC,OAAO,CAAC,EAAE;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,IAAI,CAAC;CACd,KAAK,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,KAAK,CAAC;QACd,QAAQ,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC7E,CAAC,CAAC;IACH,KAAK,EAAE,MAAM,CAAC;CACf,CAAC,CAAC;AAyEH,eAAO,MAAM,kBAAkB,EAAE,oBAkDhC,CAAC"}
@@ -0,0 +1,114 @@
1
+ import type { CredentialChainOptions } from "@hasna/contracts/client";
2
+ /** The deliberate unhosted opt-in flag, canonical name first. */
3
+ export declare const MEMENTOS_LOCAL_OPT_IN_ENV_KEYS: readonly ["HASNA_MEMENTOS_LOCAL", "MEMENTOS_LOCAL"];
4
+ /** The explicit local SQLite file — the narrowest signal, precedence 1. */
5
+ export declare const MEMENTOS_DB_PATH_ENV_KEYS: readonly ["HASNA_MEMENTOS_DB_PATH", "MEMENTOS_DB_PATH"];
6
+ /**
7
+ * The retired storage-mode variables. The resolver never reads them — they are
8
+ * inert since the adoption stripped the fail-loud ratchet — but test harnesses
9
+ * DELETE them so a fixture can never depend on a stale fragment from the host
10
+ * environment, and docs list them as removed.
11
+ */
12
+ export declare const REMOVED_MEMENTOS_MODE_ENV_KEYS: readonly ["HASNA_MEMENTOS_STORAGE_MODE", "HASNA_MEMENTOS_MODE", "MEMENTOS_STORAGE_MODE", "MEMENTOS_MODE"];
13
+ export type MementosLocalOptInEnv = Record<string, string | undefined>;
14
+ /** True when the operator deliberately asked for the unhosted local store. */
15
+ export declare function isMementosLocalOptIn(env?: MementosLocalOptInEnv): boolean;
16
+ /** True when the environment pins an explicit local SQLite file. */
17
+ export declare function hasExplicitLocalDbPath(env?: MementosLocalOptInEnv): boolean;
18
+ /** Every env name that can configure a mementos authority or credential, resolver-derived. */
19
+ export declare function mementosAuthorityEnvKeys(): string[];
20
+ /**
21
+ * Does the ENVIRONMENT itself configure a mementos authority or credential?
22
+ *
23
+ * Deliberately narrower than "does a credential resolve": answering it must not
24
+ * touch the Keychain or the filesystem, because doing so would defeat the
25
+ * isolation the opt-in short-circuit exists to provide. It reads the env
26
+ * dictionary and nothing else.
27
+ *
28
+ * A DECLARED-BUT-BLANK variable counts as absent HERE — a blank has always been
29
+ * this package's spelling for "not configured", and helpers in the wild blank
30
+ * rather than delete. It is NOT absent once we do go hosted: the resolver
31
+ * refuses a blank loudly rather than falling through to another identity, which
32
+ * is the behaviour that matters at that point.
33
+ */
34
+ export declare function hasMementosEnvAuthorityIntent(env?: MementosLocalOptInEnv): boolean;
35
+ /**
36
+ * True when this environment should be served by the on-box SQLite store.
37
+ *
38
+ * An explicit DB path wins unconditionally (precedence 1 — the narrowest
39
+ * signal). The flag opt-in wins only when the environment configures no
40
+ * authority or credential at all, and both are answered WITHOUT the resolver,
41
+ * so the Keychain and the credential file are never read for a local run.
42
+ */
43
+ export declare function selectsMementosLocalStore(env?: MementosLocalOptInEnv): boolean;
44
+ /**
45
+ * The environment as the resolver should see it: every authority/credential
46
+ * variable that is DECLARED BUT BLANK removed.
47
+ *
48
+ * A blank has always been this package's spelling for "not configured" — it is
49
+ * how fixtures scrubbed an inherited environment and how the CLI's test
50
+ * harnesses neutralise routing. @hasna/contracts takes the opposite and, for
51
+ * its purposes, correct view: a declared-but-blank credential is a
52
+ * misconfiguration it refuses loudly rather than resolving around, because a
53
+ * blank that fell through would authenticate as a different principal than the
54
+ * operator named.
55
+ *
56
+ * Both are right at their own layer, and the mismatch is not hypothetical: an
57
+ * environment carrying a real `HASNA_MEMENTOS_API_KEY` alongside a blank legacy
58
+ * alias — the exact shape a scrubbed-then-overridden fixture produces — is a
59
+ * complete, unambiguous configuration that would otherwise be refused for the
60
+ * alias nobody set. Normalising here keeps "blank means unset" true at the
61
+ * mementos seam while leaving the resolver's stricter rule intact for
62
+ * everything it does receive.
63
+ */
64
+ export declare function mementosResolverEnv<T extends MementosLocalOptInEnv>(env: T): T;
65
+ /** The env object and credential options a mementos surface hands @hasna/contracts. */
66
+ export interface MementosResolverInputs<T extends MementosLocalOptInEnv> {
67
+ /** The environment with every declared-but-blank authority variable removed. */
68
+ env: T;
69
+ /** The chain options, with the Keychain tier's ambient gate already decided. */
70
+ credentials: CredentialChainOptions;
71
+ }
72
+ /**
73
+ * Build the resolver's inputs: the normalised environment AND the credential
74
+ * options that keep the machine's Keychain tier reachable across it.
75
+ *
76
+ * WHY THIS IS NOT JUST {@link mementosResolverEnv}. Blanking a variable and
77
+ * deleting it are not the same operation to @hasna/contracts, because dropping
78
+ * a key forces us to hand the resolver a COPY, and the resolver gates its
79
+ * ambient tiers on OBJECT IDENTITY (`env === process.env`, or the registry
80
+ * symbol its own snapshot carries). A copy is, by that test, a caller-built
81
+ * world — the hermetic seam — so the Keychain is outside it and tier 3 turns
82
+ * itself off. Silently: there is no error, no warning and no diagnostic,
83
+ * because from the resolver's side nothing went wrong.
84
+ *
85
+ * The consequence is the one failure this whole ruling exists to prevent. On a
86
+ * station whose Keychain holds `hasna.credentials.mementos.api-key`, ONE
87
+ * declared-but-blank authority variable — any name in
88
+ * {@link mementosAuthorityEnvKeys}, canonical or legacy; the shape a scrubbed
89
+ * fixture leaves behind — dropped the run from the Keychain identity to
90
+ * whatever came next: to `~/.hasna/mementos/config/credentials`, a DIFFERENT
91
+ * principal, with no notice; or, with nothing on disk, to a bare refusal on a
92
+ * station that is in fact configured. A deliberate tier must never fall
93
+ * through to another identity, so the gate is decided HERE, on the original
94
+ * env, and carried across the copy as the documented `keychain.enabled`
95
+ * control rather than being left to an identity test the copy cannot pass.
96
+ *
97
+ * An explicit `enabled` from the caller still wins, and an injected `run`
98
+ * (which @hasna/contracts already treats as "enabled") is left alone, so the
99
+ * hermetic seam tests rely on is untouched. When there is no blank to remove
100
+ * the inputs pass through by identity, exactly as before.
101
+ */
102
+ export declare function mementosResolverInputs<T extends MementosLocalOptInEnv>(env: T, credentials?: CredentialChainOptions): MementosResolverInputs<T>;
103
+ /** Reset the once-per-process local-mode notice. Test seam only. */
104
+ export declare function __resetMementosLocalModeNotice(): void;
105
+ /**
106
+ * The one stderr line a local-mode run MUST print (owner ruling 2026-09-04,
107
+ * fail-closed wave): "local" — so a run that is deliberately serving the
108
+ * on-box store can never be mistaken for a hosted one. Printed once per
109
+ * process by every surface (CLI command startup, MCP server startup); a
110
+ * long-lived server that re-resolves per request does not spam the notice.
111
+ * A no-op unless the environment actually selects the on-box store.
112
+ */
113
+ export declare function announceMementosLocalMode(env?: MementosLocalOptInEnv, stderr?: (line: string) => void): void;
114
+ //# sourceMappingURL=local-opt-in.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-opt-in.d.ts","sourceRoot":"","sources":["../../src/lib/local-opt-in.ts"],"names":[],"mappings":"AAoEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEtE,iEAAiE;AACjE,eAAO,MAAM,8BAA8B,qDAAsD,CAAC;AAElG,2EAA2E;AAC3E,eAAO,MAAM,yBAAyB,yDAA0D,CAAC;AAEjG;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B,2GAKjC,CAAC;AAEX,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAEvE,8EAA8E;AAC9E,wBAAgB,oBAAoB,CAAC,GAAG,GAAE,qBAAmC,GAAG,OAAO,CAEtF;AAED,oEAAoE;AACpE,wBAAgB,sBAAsB,CAAC,GAAG,GAAE,qBAAmC,GAAG,OAAO,CAExF;AAED,8FAA8F;AAC9F,wBAAgB,wBAAwB,IAAI,MAAM,EAAE,CASnD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,GAAE,qBAAmC,GAAG,OAAO,CAE/F;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,GAAE,qBAAmC,GAAG,OAAO,CAG3F;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,qBAAqB,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAQ9E;AAsBD,uFAAuF;AACvF,MAAM,WAAW,sBAAsB,CAAC,CAAC,SAAS,qBAAqB;IACrE,gFAAgF;IAChF,GAAG,EAAE,CAAC,CAAC;IACP,gFAAgF;IAChF,WAAW,EAAE,sBAAsB,CAAC;CACrC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,qBAAqB,EACpE,GAAG,EAAE,CAAC,EACN,WAAW,GAAE,sBAA2B,GACvC,sBAAsB,CAAC,CAAC,CAAC,CAS3B;AAID,oEAAoE;AACpE,wBAAgB,8BAA8B,IAAI,IAAI,CAErD;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,GAAE,qBAAmC,EACxC,MAAM,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAEzB,GACA,IAAI,CAYN"}
@@ -4,7 +4,7 @@ export declare const DEFAULT_MODEL = "gpt-4o-mini";
4
4
  */
5
5
  export declare function getActiveModel(): string;
6
6
  /**
7
- * Sets the active fine-tuned model ID in ~/.hasna/mementos/config.json.
7
+ * Sets the active fine-tuned model ID in config.json under the effective data root.
8
8
  */
9
9
  export declare function setActiveModel(modelId: string): void;
10
10
  /**
@@ -0,0 +1,60 @@
1
+ export type PathKind = "data" | "state" | "cache";
2
+ export interface PathsResolverOptions {
3
+ app: string;
4
+ internal?: boolean;
5
+ platform?: string;
6
+ home?: string;
7
+ env?: Record<string, string | undefined>;
8
+ }
9
+ export declare function dataDir(options: PathsResolverOptions): string;
10
+ /**
11
+ * @hasna/mementos data-home resolution through the @hasna/paths resolver.
12
+ *
13
+ * mementos stores its sqlite database (`mementos.db`), `config.json`, the
14
+ * per-agent `agents/`, `profiles/`, `training/` and `backups/` data and the
15
+ * remote-storage `storage/config.json` under a single data root. Historically
16
+ * that root was `~/.hasna/mementos`. This module resolves the root through
17
+ * `@hasna/paths` (XDG / macOS home layout) with a gated legacy adoption: the
18
+ * legacy `~/.hasna/mementos` stays the effective data root until the store is
19
+ * physically migrated to the XDG data home (`mementos.db` present there) or
20
+ * the operator sets the data-kind override `HASNA_DATA_HOME`. An existing
21
+ * live store never becomes invisible on upgrade. The exact-app overrides
22
+ * `HASNA_MEMENTOS_HOME` (then `MEMENTOS_HOME`) win unconditionally, and the
23
+ * db-path overrides (`HASNA_MEMENTOS_DB_PATH` / `MEMENTOS_DB_PATH`) stay
24
+ * layered on top by `getDbPath`.
25
+ *
26
+ * Nothing moves on disk in this phase — the package just resolves the new
27
+ * paths.
28
+ */
29
+ /** The effective user home, mirroring the pre-existing mementos resolution (`HOME` || `USERPROFILE`). */
30
+ export declare function effectiveHome(): string;
31
+ /** The legacy (pre-XDG) data root: `~/.hasna/mementos`. */
32
+ export declare function legacyDataRoot(): string;
33
+ /**
34
+ * The @hasna/paths-resolved (XDG / macOS home layout) data root for mementos:
35
+ * `~/.local/share/hasna/mementos` on Linux, `~/Library/Application
36
+ * Support/Hasna/mementos` on macOS. The home override mirrors the pre-existing
37
+ * `$HOME`-first resolution so the resolver follows the same home the legacy
38
+ * path does.
39
+ */
40
+ export declare function resolverDataRoot(): string;
41
+ /**
42
+ * Whether the resolver (XDG) data root should be adopted as the effective
43
+ * data root. The resolver root is adopted only when the operator has set
44
+ * `HASNA_DATA_HOME` (the data-kind override — a deliberate opt-in to the XDG
45
+ * layout) or the store has already been physically migrated there
46
+ * (`mementos.db` exists — mementos' store file). A machine that only
47
+ * redirects another kind (e.g. cache to tmpfs) must NOT have its data home
48
+ * moved, and a live store at the legacy home must never become invisible on
49
+ * upgrade.
50
+ */
51
+ export declare function adoptResolverDataRoot(resolved: string, env?: NodeJS.ProcessEnv): boolean;
52
+ /** The exact-app override root, when set: `HASNA_MEMENTOS_HOME`, then `MEMENTOS_HOME`. */
53
+ export declare function exactDataRoot(): string | undefined;
54
+ /**
55
+ * The effective data root: an exact-app override (`HASNA_MEMENTOS_HOME`, then
56
+ * `MEMENTOS_HOME`) wins unconditionally; otherwise the resolver (XDG) data
57
+ * root once adopted; otherwise the legacy `~/.hasna/mementos` default.
58
+ */
59
+ export declare function getDataRoot(): string;
60
+ //# sourceMappingURL=paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/lib/paths.ts"],"names":[],"mappings":"AAeA,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAQlD,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC1C;AAuDD,wBAAgB,OAAO,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM,CAE7D;AAED;;;;;;;;;;;;;;;;;;GAkBG;AAEH,yGAAyG;AACzG,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,2DAA2D;AAC3D,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAKzC;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAIT;AAED,0FAA0F;AAC1F,wBAAgB,aAAa,IAAI,MAAM,GAAG,SAAS,CAQlD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAKpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"profile-sync.d.ts","sourceRoot":"","sources":["../../src/lib/profile-sync.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC;CAC3C;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB;AAUD;;GAEG;AACH,wBAAgB,YAAY,CAC1B,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,kBAAuB,GAC/B,iBAAiB,CAmDnB"}
1
+ {"version":3,"file":"profile-sync.d.ts","sourceRoot":"","sources":["../../src/lib/profile-sync.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC;CAC3C;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB;AAaD;;GAEG;AACH,wBAAgB,YAAY,CAC1B,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,kBAAuB,GAC/B,iBAAiB,CAmDnB"}
@@ -4,23 +4,83 @@ import type { Memory } from "../types/index.js";
4
4
  * Returns the text with secrets replaced by [REDACTED].
5
5
  */
6
6
  export declare function redactSecrets(text: string): string;
7
+ /**
8
+ * Redact a credential-shaped MEMORY KEY or TAG. Uses only the conservative
9
+ * high-confidence token shapes (see {@link KEY_TAG_SECRET_PATTERNS}) so
10
+ * ordinary identifiers survive untouched — the broad set's heuristic patterns
11
+ * false-positive on benign keys/tags that merely contain the substrings
12
+ * `key-`, `token-`, `SECRET=`, etc.
13
+ */
14
+ export declare function redactCredentialKey(text: string): string;
7
15
  /**
8
16
  * Check if text contains any detectable secrets.
9
17
  */
10
18
  export declare function containsSecrets(text: string): boolean;
11
19
  /**
12
20
  * Return a display-safe copy of a memory for READ surfaces (list, search,
13
- * show). The write path redacts `value`/`summary` at save time but NEVER the
14
- * `key`, and values written before write-side redaction (or via a bypassing
15
- * write path) can sit raw in the store so a credential-shaped token can
16
- * otherwise reach stdout verbatim and trip secret scanners
17
- * (package_registry_token on `npm_`, AWS-access-key-id on `AKIA`, ...).
21
+ * show, recall, tail, chain, versions, when-to-use, pin/unpin/archive/update/
22
+ * save receipts). The write path redacts `value`/`summary` at save time but
23
+ * historically NEVER the `key` and both TAGS and `key` are storable raw via
24
+ * `save --tags` / `update --tags` and via any bypassing write path — so a
25
+ * credential-shaped key OR TAG can otherwise reach stdout verbatim and trip
26
+ * the high-confidence token detectors (registry-token and AWS-access-key-id
27
+ * shapes among them).
18
28
  *
19
- * Free-text fields — `key`, `value`, `summary`, `when_to_use` and every
20
- * string leaf of `metadata` — are passed through {@link redactSecrets};
21
- * coordination metadata (id, scope, category, importance, status, timestamps,
22
- * agent/project/session/machine attribution, version, flags) is preserved
23
- * unchanged so consumers can still coordinate on the row.
29
+ * Free-text fields — `key`, `value`, `summary`, `when_to_use`, every TAG and
30
+ * every string leaf of `metadata` — are passed through redaction. `key` and
31
+ * `tags` use the conservative {@link redactCredentialKey} (so ordinary
32
+ * identifiers survive acceptance criterion 5); `value`, `summary`,
33
+ * `when_to_use` and `metadata` use the broad {@link redactSecrets} (over-
34
+ * redaction in inline free text is acceptable). Coordination metadata (id,
35
+ * scope, category, importance, status, timestamps, agent/project/session/
36
+ * machine attribution, version, flags) is preserved unchanged so consumers
37
+ * can still coordinate on the row.
24
38
  */
25
39
  export declare function redactMemoryForOutput(memory: Memory): Memory;
40
+ /**
41
+ * Redact the free-text fields of a version-history row before it reaches a READ
42
+ * surface (`versions`, `diff`). `value`, `summary`, `when_to_use` and `tags`
43
+ * carry the same stored free-text leak class as the memory fields; coordination
44
+ * metadata (version, importance, scope, category, pinned, status, created_at,
45
+ * ids) is preserved. Tags use the conservative {@link redactCredentialKey}.
46
+ */
47
+ export declare function redactVersionForOutput<V extends {
48
+ value: string;
49
+ summary: string | null;
50
+ tags?: string[];
51
+ when_to_use?: string | null;
52
+ }>(version: V): V;
53
+ /**
54
+ * Redact the free-text fields of a WRITE input (`CreateMemoryInput` /
55
+ * `UpdateMemoryInput`) BEFORE storage and BEFORE any lookup/guard that keys on
56
+ * those values. The write path must not persist a credential-shaped key or tag
57
+ * raw (acceptance criterion 2): `key` and `tags` use the conservative
58
+ * {@link redactCredentialKey} (so ordinary identifiers survive — criterion 5),
59
+ * while `value`, `summary`, `when_to_use` and every string leaf of `metadata`
60
+ * use the broad {@link redactSecrets}. Redaction is idempotent, so a double
61
+ * application (CLI layer + db layer) is safe. Coordination fields (category,
62
+ * scope, importance, source, status, version, ids, timestamps) are preserved.
63
+ */
64
+ export declare function redactMemoryWriteInput<T extends object>(input: T): T;
65
+ /**
66
+ * Redact a string leaf that is NOT part of the Memory object but carries
67
+ * memory-derived text on a read surface — notably the highlight SNIPPETS of a
68
+ * search result. A query that matches inside a credential-shaped key produces
69
+ * a snippet window that spans the whole key, so redacting the memory alone is
70
+ * not enough for the search read path.
71
+ */
72
+ export declare function redactTextFragment(text: string): string;
73
+ /**
74
+ * A display-safe copy of a search result: the memory is passed through
75
+ * {@link redactMemoryForOutput} and every highlight snippet is passed through
76
+ * {@link redactTextFragment}. The result's own coordination fields (score,
77
+ * match_type, field names) survive unchanged.
78
+ */
79
+ export declare function redactSearchResultForOutput<T extends {
80
+ memory: Memory;
81
+ highlights?: {
82
+ field: string;
83
+ snippet: string;
84
+ }[];
85
+ }>(result: T): T;
26
86
  //# sourceMappingURL=redact.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"redact.d.ts","sourceRoot":"","sources":["../../src/lib/redact.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAoChD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQlD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMrD;AAoBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAS5D"}
1
+ {"version":3,"file":"redact.d.ts","sourceRoot":"","sources":["../../src/lib/redact.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAiEhD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQlD;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQxD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMrD;AAoBD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAa5D;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EACtI,OAAO,EAAE,CAAC,GACT,CAAC,CAQH;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAiBpE;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,SAAS;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,EACzH,MAAM,EAAE,CAAC,GACR,CAAC,CASH"}
@@ -1 +1 @@
1
- {"version":3,"file":"reflection.d.ts","sourceRoot":"","sources":["../../src/lib/reflection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reflection.d.ts","sourceRoot":"","sources":["../../src/lib/reflection.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/lib/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE1D,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAipBlF;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,YAAY,EACrB,EAAE,CAAC,EAAE,QAAQ,GACZ,kBAAkB,EAAE,CAqEtB;AAMD;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,YAAY,EACrB,EAAE,CAAC,EAAE,QAAQ,GACZ,kBAAkB,EAAE,CA4DtB;AAMD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAC7C,UAAU,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACnD;AAgBD;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,CAAC,CAAC,EAAE,MAAM,CAAC;CACP,EACN,EAAE,CAAC,EAAE,QAAQ,GACZ,OAAO,CAAC,kBAAkB,EAAE,CAAC,CA0E/B;AAMD,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,EAClB,EAAE,CAAC,EAAE,QAAQ,GACZ,IAAI,CAWN;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,GAAE,MAAW,EAClB,SAAS,CAAC,EAAE,MAAM,EAClB,EAAE,CAAC,EAAE,QAAQ,GACZ;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAAE,CAU/D;AAED,wBAAgB,kBAAkB,CAChC,KAAK,GAAE,MAAW,EAClB,SAAS,CAAC,EAAE,MAAM,EAClB,EAAE,CAAC,EAAE,QAAQ,GACZ;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAUpC"}
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/lib/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE1D,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAqpBlF;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,YAAY,EACrB,EAAE,CAAC,EAAE,QAAQ,GACZ,kBAAkB,EAAE,CAqEtB;AAMD;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,YAAY,EACrB,EAAE,CAAC,EAAE,QAAQ,GACZ,kBAAkB,EAAE,CA4DtB;AAMD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAC7C,UAAU,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACnD;AAgBD;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,CAAC,CAAC,EAAE,MAAM,CAAC;CACP,EACN,EAAE,CAAC,EAAE,QAAQ,GACZ,OAAO,CAAC,kBAAkB,EAAE,CAAC,CA0E/B;AAMD,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,EAClB,EAAE,CAAC,EAAE,QAAQ,GACZ,IAAI,CAWN;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,GAAE,MAAW,EAClB,SAAS,CAAC,EAAE,MAAM,EAClB,EAAE,CAAC,EAAE,QAAQ,GACZ;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAAE,CAU/D;AAED,wBAAgB,kBAAkB,CAChC,KAAK,GAAE,MAAW,EAClB,SAAS,CAAC,EAAE,MAAM,EAClB,EAAE,CAAC,EAAE,QAAQ,GACZ;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAUpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"storage-sync.d.ts","sourceRoot":"","sources":["../../src/lib/storage-sync.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,QAAQ,EAOb,gBAAgB,EAMjB,MAAM,eAAe,CAAC;AAgBvB,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,MAAM,EAAE,sBAAsB,EAAE,CAAC;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,OAAO,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;IAC7C,iBAAiB,EAAE,QAAQ,EAAE,CAAC;IAC9B,gBAAgB,EAAE,qBAAqB,EAAE,CAAC;CAC3C;AAED,UAAU,qBAAqB;IAC7B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAunBD,wBAAgB,kBAAkB,CAChC,OAAO,GAAE,qBAA0B,GAClC,yBAAyB,CAE3B;AAED,wBAAgB,kBAAkB,CAChC,OAAO,GAAE,qBAA0B,GAClC,yBAAyB,CAE3B;AAED,wBAAgB,oBAAoB,CAClC,OAAO,GAAE,IAAI,CAAC,qBAAqB,EAAE,OAAO,GAAG,oBAAoB,CAAM,GACxE,qBAAqB,CAqBvB"}
1
+ {"version":3,"file":"storage-sync.d.ts","sourceRoot":"","sources":["../../src/lib/storage-sync.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,QAAQ,EAQb,gBAAgB,EAMjB,MAAM,eAAe,CAAC;AAgBvB,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,MAAM,EAAE,sBAAsB,EAAE,CAAC;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,OAAO,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;IAC7C,iBAAiB,EAAE,QAAQ,EAAE,CAAC;IAC9B,gBAAgB,EAAE,qBAAqB,EAAE,CAAC;CAC3C;AAED,UAAU,qBAAqB;IAC7B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAunBD,wBAAgB,kBAAkB,CAChC,OAAO,GAAE,qBAA0B,GAClC,yBAAyB,CAE3B;AAED,wBAAgB,kBAAkB,CAChC,OAAO,GAAE,qBAA0B,GAClC,yBAAyB,CAE3B;AAED,wBAAgB,oBAAoB,CAClC,OAAO,GAAE,IAAI,CAAC,qBAAqB,EAAE,OAAO,GAAG,oBAAoB,CAAM,GACxE,qBAAqB,CAqBvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/lib/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAC;AAI1D,OAAO,KAAK,EACV,kBAAkB,EAElB,aAAa,EACb,UAAU,EACX,MAAM,mBAAmB,CAAC;AA6K3B,wBAAgB,YAAY,CAC1B,SAAS,EAAE,MAAM,EACjB,SAAS,GAAE,aAAsB,EACjC,OAAO,GAAE;IACP,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,kBAAkB,CAAC;IACzC,EAAE,CAAC,EAAE,QAAQ,CAAC;CACV,GACL,UAAU,CAgCZ;AAED,eAAO,MAAM,iBAAiB,UAAgC,CAAC"}
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/lib/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG1D,OAAO,KAAK,EACV,kBAAkB,EAElB,aAAa,EACb,UAAU,EACX,MAAM,mBAAmB,CAAC;AA8K3B,wBAAgB,YAAY,CAC1B,SAAS,EAAE,MAAM,EACjB,SAAS,GAAE,aAAsB,EACjC,OAAO,GAAE;IACP,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,kBAAkB,CAAC;IACzC,EAAE,CAAC,EAAE,QAAQ,CAAC;CACV,GACL,UAAU,CAgCZ;AAED,eAAO,MAAM,iBAAiB,UAAgC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA4CpE,0FAA0F;AAC1F,eAAO,IAAI,SAAS,EAAE,SAAS,GAAG,IAAW,CAAC;AAsB9C,wBAAgB,WAAW,IAAI,SAAS,CA2EvC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAiDpE,0FAA0F;AAC1F,eAAO,IAAI,SAAS,EAAE,SAAS,GAAG,IAAW,CAAC;AAsB9C,wBAAgB,WAAW,IAAI,SAAS,CA2EvC"}