2:I[2567,["8905","static/chunks/8905-f6f9469353911fb0.js","3143","static/chunks/3143-f3ed02939fea6e75.js","5766","static/chunks/5766-4fe247b65648a8a7.js","7648","static/chunks/7648-34771bb3fdb1b05c.js","5878","static/chunks/5878-a24e9e9351be5527.js","4873","static/chunks/4873-c3ddefc71fade8a6.js","2567","static/chunks/2567-e795bdb7aa0ec206.js","405","static/chunks/app/(marketing)/page-87b80c39ba9b24fd.js"],"MarketingShell"]
3:I[7382,["8905","static/chunks/8905-f6f9469353911fb0.js","3143","static/chunks/3143-f3ed02939fea6e75.js","5766","static/chunks/5766-4fe247b65648a8a7.js","7648","static/chunks/7648-34771bb3fdb1b05c.js","5878","static/chunks/5878-a24e9e9351be5527.js","4873","static/chunks/4873-c3ddefc71fade8a6.js","2567","static/chunks/2567-e795bdb7aa0ec206.js","405","static/chunks/app/(marketing)/page-87b80c39ba9b24fd.js"],"Section"]
4:I[7382,["8905","static/chunks/8905-f6f9469353911fb0.js","3143","static/chunks/3143-f3ed02939fea6e75.js","5766","static/chunks/5766-4fe247b65648a8a7.js","7648","static/chunks/7648-34771bb3fdb1b05c.js","5878","static/chunks/5878-a24e9e9351be5527.js","4873","static/chunks/4873-c3ddefc71fade8a6.js","2567","static/chunks/2567-e795bdb7aa0ec206.js","405","static/chunks/app/(marketing)/page-87b80c39ba9b24fd.js"],"HeroHeading"]
5:I[7382,["8905","static/chunks/8905-f6f9469353911fb0.js","3143","static/chunks/3143-f3ed02939fea6e75.js","5766","static/chunks/5766-4fe247b65648a8a7.js","7648","static/chunks/7648-34771bb3fdb1b05c.js","5878","static/chunks/5878-a24e9e9351be5527.js","4873","static/chunks/4873-c3ddefc71fade8a6.js","2567","static/chunks/2567-e795bdb7aa0ec206.js","405","static/chunks/app/(marketing)/page-87b80c39ba9b24fd.js"],"ButtonLink"]
6:I[7898,["8905","static/chunks/8905-f6f9469353911fb0.js","3143","static/chunks/3143-f3ed02939fea6e75.js","5766","static/chunks/5766-4fe247b65648a8a7.js","7648","static/chunks/7648-34771bb3fdb1b05c.js","5878","static/chunks/5878-a24e9e9351be5527.js","4873","static/chunks/4873-c3ddefc71fade8a6.js","2567","static/chunks/2567-e795bdb7aa0ec206.js","405","static/chunks/app/(marketing)/page-87b80c39ba9b24fd.js"],"BeliefInspector"]
7:I[7382,["8905","static/chunks/8905-f6f9469353911fb0.js","3143","static/chunks/3143-f3ed02939fea6e75.js","5766","static/chunks/5766-4fe247b65648a8a7.js","7648","static/chunks/7648-34771bb3fdb1b05c.js","5878","static/chunks/5878-a24e9e9351be5527.js","4873","static/chunks/4873-c3ddefc71fade8a6.js","2567","static/chunks/2567-e795bdb7aa0ec206.js","405","static/chunks/app/(marketing)/page-87b80c39ba9b24fd.js"],"SpecList"]
9:I[7382,["8905","static/chunks/8905-f6f9469353911fb0.js","3143","static/chunks/3143-f3ed02939fea6e75.js","5766","static/chunks/5766-4fe247b65648a8a7.js","7648","static/chunks/7648-34771bb3fdb1b05c.js","5878","static/chunks/5878-a24e9e9351be5527.js","4873","static/chunks/4873-c3ddefc71fade8a6.js","2567","static/chunks/2567-e795bdb7aa0ec206.js","405","static/chunks/app/(marketing)/page-87b80c39ba9b24fd.js"],"CodeBlock"]
a:I[2228,["8905","static/chunks/8905-f6f9469353911fb0.js","3143","static/chunks/3143-f3ed02939fea6e75.js","5766","static/chunks/5766-4fe247b65648a8a7.js","7648","static/chunks/7648-34771bb3fdb1b05c.js","5878","static/chunks/5878-a24e9e9351be5527.js","4873","static/chunks/4873-c3ddefc71fade8a6.js","2567","static/chunks/2567-e795bdb7aa0ec206.js","405","static/chunks/app/(marketing)/page-87b80c39ba9b24fd.js"],"default"]
1c:I[4707,[],""]
1d:I[6423,[],""]
1e:I[4873,["8905","static/chunks/8905-f6f9469353911fb0.js","3143","static/chunks/3143-f3ed02939fea6e75.js","5766","static/chunks/5766-4fe247b65648a8a7.js","7648","static/chunks/7648-34771bb3fdb1b05c.js","1713","static/chunks/1713-838bb3f7c92f419b.js","5878","static/chunks/5878-a24e9e9351be5527.js","5896","static/chunks/5896-b2e5ead8abb9b59e.js","4873","static/chunks/4873-c3ddefc71fade8a6.js","3185","static/chunks/app/layout-4a2d8915965980a8.js"],"Providers"]
1f:I[6151,["8905","static/chunks/8905-f6f9469353911fb0.js","3143","static/chunks/3143-f3ed02939fea6e75.js","5766","static/chunks/5766-4fe247b65648a8a7.js","7648","static/chunks/7648-34771bb3fdb1b05c.js","1713","static/chunks/1713-838bb3f7c92f419b.js","5878","static/chunks/5878-a24e9e9351be5527.js","5896","static/chunks/5896-b2e5ead8abb9b59e.js","4873","static/chunks/4873-c3ddefc71fade8a6.js","3185","static/chunks/app/layout-4a2d8915965980a8.js"],"Shell"]
8:T1389,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 720 480" width="720" height="480" role="img" aria-label="Terminal replay of scripts/demo_reasoning.py: identity resolution merges one person's two records, a declared rule concludes, the premise is retracted and the conclusion is withdrawn in the same request, and a split is final for the machine.">
  <!-- A replay of the real output of scripts/demo_reasoning.py, abridged.
       Every line below appears verbatim in the demo, which is an asserted
       test run in CI, so this picture cannot quietly drift from the truth
       without a red build pointing at it. -->
  <style>
    .card { fill: #0d1117; stroke: #30363d; }
    .bar  { fill: #161b22; }
    .dot  { fill: #30363d; }
    text  { font-family: ui-monospace, 'JetBrains Mono', 'SFMono-Regular', Consolas, Menlo, monospace; font-size: 12.5px; fill: #c9d1d9; white-space: pre; }
    .t    { fill: #8b949e; font-size: 11.5px; }
    .head { fill: #e6edf3; font-weight: 600; }
    .dim  { fill: #8b949e; }
    .acc  { fill: #58a6ff; }
    .ok   { fill: #3fb950; }
    .warn { fill: #d29922; }
  </style>

  <rect class="card" x="0.5" y="0.5" width="719" height="479" rx="10"/>
  <rect class="bar" x="1" y="1" width="718" height="35" rx="9"/>
  <rect class="bar" x="1" y="20" width="718" height="16"/>
  <circle class="dot" cx="20" cy="18" r="5"/>
  <circle class="dot" cx="38" cy="18" r="5"/>
  <circle class="dot" cx="56" cy="18" r="5"/>
  <text class="t" x="76" y="22.5">omem ~ scripts/demo_reasoning.py</text>

  <text class="line" opacity="0" x="24" y="68"><animate attributeName="opacity" to="1" begin="0.4s" dur="0.15s" fill="freeze"/><tspan class="acc">$</tspan> python3 scripts/demo_reasoning.py</text>
  <text class="line head" opacity="0" x="24" y="92"><animate attributeName="opacity" to="1" begin="1.1s" dur="0.15s" fill="freeze"/>OMEM: reasoning with receipts</text>

  <text class="line head" opacity="0" x="24" y="126"><animate attributeName="opacity" to="1" begin="2.2s" dur="0.15s" fill="freeze"/>1. One person arrived twice. OMEM notices, and knows when not to.</text>
  <text class="line" opacity="0" x="24" y="148"><animate attributeName="opacity" to="1" begin="3.0s" dur="0.15s" fill="freeze"/>   before: the alias knows nothing        -&gt; <tspan class="warn">UNKNOWN</tspan></text>
  <text class="line" opacity="0" x="24" y="170"><animate attributeName="opacity" to="1" begin="3.8s" dur="0.15s" fill="freeze"/>   after one resolution pass              -&gt; <tspan class="ok">BELIEVED_TRUE</tspan></text>
  <text class="line dim" opacity="0" x="24" y="192"><animate attributeName="opacity" to="1" begin="4.6s" dur="0.15s" fill="freeze"/>   Sarah Chen at globex was refused: a shared name is not a shared identity</text>
  <text class="line dim" opacity="0" x="24" y="214"><animate attributeName="opacity" to="1" begin="5.3s" dur="0.15s" fill="freeze"/>   Dana against Dana Kim was only PROPOSED, because a given name is a guess</text>

  <text class="line head" opacity="0" x="24" y="248"><animate attributeName="opacity" to="1" begin="6.6s" dur="0.15s" fill="freeze"/>2. A declared rule concludes. Only what was declared, with its premises.</text>
  <text class="line" opacity="0" x="24" y="270"><animate attributeName="opacity" to="1" begin="7.4s" dur="0.15s" fill="freeze"/>   derived: <tspan class="acc">rel_involves_marco</tspan></text>
  <text class="line dim" opacity="0" x="24" y="292"><animate attributeName="opacity" to="1" begin="8.2s" dur="0.15s" fill="freeze"/>   /why walks from the conclusion to BOTH premises it used</text>

  <text class="line head" opacity="0" x="24" y="326"><animate attributeName="opacity" to="1" begin="9.5s" dur="0.15s" fill="freeze"/>3. The take-back. Retract the premise; the conclusion falls with it.</text>
  <text class="line" opacity="0" x="24" y="348"><animate attributeName="opacity" to="1" begin="10.3s" dur="0.15s" fill="freeze"/>   rel_involves_marco after the retraction -&gt; <tspan class="warn">UNKNOWN</tspan></text>
  <text class="line" opacity="0" x="24" y="370"><animate attributeName="opacity" to="1" begin="11.1s" dur="0.15s" fill="freeze"/>   the conclusion was withdrawn IN THE SAME REQUEST, no pass needed</text>

  <text class="line head" opacity="0" x="24" y="404"><animate attributeName="opacity" to="1" begin="12.4s" dur="0.15s" fill="freeze"/>4. A split is final for the machine.</text>
  <text class="line dim" opacity="0" x="24" y="426"><animate attributeName="opacity" to="1" begin="13.2s" dur="0.15s" fill="freeze"/>   and the next pass refuses to re-merge them</text>

  <text class="line ok" opacity="0" x="24" y="458"><animate attributeName="opacity" to="1" begin="14.5s" dur="0.15s" fill="freeze"/>all behaviours asserted and held</text>
  <text class="acc" opacity="0" x="276" y="458"><animate attributeName="opacity" to="1" begin="15.2s" dur="0.15s" fill="freeze"/><animate attributeName="opacity" values="1;0.15;1" begin="16.4s" dur="1.1s" repeatCount="indefinite"/>▍</text>
</svg>
d:{"d":"M10.1 2.182a10 10 0 0 1 3.8 0","key":"5ilxe3"}
c:["path","$d"]
f:{"d":"M13.9 21.818a10 10 0 0 1-3.8 0","key":"11zvb9"}
e:["path","$f"]
11:{"d":"M17.609 3.721a10 10 0 0 1 2.69 2.7","key":"1iw5b2"}
10:["path","$11"]
13:{"d":"M2.182 13.9a10 10 0 0 1 0-3.8","key":"c0bmvh"}
12:["path","$13"]
15:{"d":"M20.279 17.609a10 10 0 0 1-2.7 2.69","key":"1ruxm7"}
14:["path","$15"]
17:{"d":"M21.818 10.1a10 10 0 0 1 0 3.8","key":"qkgqxc"}
16:["path","$17"]
19:{"d":"M3.721 6.391a10 10 0 0 1 2.7-2.69","key":"1mcia2"}
18:["path","$19"]
1b:{"d":"M6.391 20.279a10 10 0 0 1-2.69-2.7","key":"1fvljs"}
1a:["path","$1b"]
b:["$c","$e","$10","$12","$14","$16","$18","$1a"]
20:{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"}
21:{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"}
22:{"display":"inline-block"}
23:{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0}
0:["qEu_4_EHEwSVj22pjWIwJ",[[["",{"children":["(marketing)",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",{"children":["(marketing)",{"children":["__PAGE__",{},[["$L1",["$","$L2",null,{"children":[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"name\":\"OMEM\",\"url\":\"https://infrastructure.omem-cloud.com\",\"logo\":\"https://infrastructure.omem-cloud.com/omem-mark.png\",\"sameAs\":[\"https://github.com/troybrandonc-bit/Omem\",\"https://x.com/Omem_ai\"]},{\"@type\":\"SoftwareApplication\",\"name\":\"OMEM\",\"applicationCategory\":\"DeveloperApplication\",\"operatingSystem\":\"Windows, macOS, Linux\",\"description\":\"Open-source memory for AI agents built on belief revision: keeps both sides of a contradiction, tracks belief over time, answers why with a provenance chain, and gates risky actions behind a human approval step. Self-hosted, MIT.\",\"offers\":{\"@type\":\"Offer\",\"price\":\"0\",\"priceCurrency\":\"USD\"},\"license\":\"https://opensource.org/licenses/MIT\",\"url\":\"https://infrastructure.omem-cloud.com\",\"downloadUrl\":\"https://pypi.org/project/omem-infrastructure/\"}]}"}}],["$","$L3",null,{"className":"hero-y","children":["$","div",null,{"className":"max-w-[68rem]","children":[["$","$L4",null,{"children":["Prove ",["$","em",null,{"children":"why"}]," your agent did that, and approve before it acts."]}],["$","div",null,{"className":"mt-10 grid gap-x-16 gap-y-8 lg:grid-cols-[minmax(0,7fr)_minmax(0,5fr)]","children":[["$","p",null,{"className":"lede !max-w-none","children":"When an agent acts for someone and they ask why, most memory can’t say. It overwrote the evidence the moment the facts changed. OMEM keeps both sides of every contradiction, tracks what was believed and when, and puts a human approval step before a risky action runs. An agent’s decisions stay answerable: you can show why it believed something, and stop what nobody signed off on."}],["$","div",null,{"className":"lg:pt-1","children":[["$","div",null,{"className":"flex flex-wrap items-center gap-3","children":[["$","$L5",null,{"href":"/docs/quickstart","children":"Start the quickstart"}],["$","$L5",null,{"href":"https://github.com/troybrandonc-bit/Omem","variant":"secondary","external":true,"children":"Read the source"}]]}],["$","p",null,{"className":"mt-4","children":["$","$L5",null,{"href":"/accountability","variant":"quiet","children":"Shipping agents to clients? Book a design-partner pilot →"}]}],["$","p",null,{"className":"mt-5 text-caption text-faint","children":["Runs on your own machine, with no external services.",["$","span",null,{"className":"mono mt-1 block","children":"MIT · Python 3.9+ · no dependencies"}]]}]]}]]}]]}]}],["$","$L3",null,{"className":"pb-24 sm:pb-32","children":["$","figure",null,{"className":"m-0 max-w-[62rem]","children":[["$","div",null,{"className":"lift-lg rounded-lg","children":["$","$L6",null,{}]}],["$","figcaption",null,{"className":"mt-5 flex flex-wrap items-baseline gap-x-3 text-caption text-faint","children":[["$","span",null,{"aria-hidden":"true","className":"h-px w-8 shrink-0 bg-[color:var(--line-strong)]"}],"A real assertion from the demo project. Change “as of” and watch the belief state move."]}]]}]}],["$","$L3",null,{"className":"section-y","children":[["$","div",null,{"className":"max-w-3xl","children":[["$","span",null,{"aria-hidden":"true","className":"block h-px w-full bg-[color:var(--border)]"}],["$","h2",null,{"id":"s-01","className":"display mt-9 text-2xl","children":"The useful part of a memory layer is the part that says no."}],["$","p",null,{"className":"lede mt-6","children":"Anything can store a fact. What decides whether your agent is trustworthy is what it declines to do with one."}]]}],["$","div",null,{"className":"mt-10","children":["$","$L7",null,{"items":[{"k":"It will not decide what is true","d":"Two claims conflict only when a caller has declared the pair opposed.\n        OMEM never reads two sentences and concludes they disagree, because that\n        judgement is what would stop the same question having the same answer a\n        year from now."},{"k":"It will not let a hunch pass as a belief","d":"The intuition layer guesses eagerly and is never allowed to lie about\n        it. expects() and believes() are different verbs: a hypothesis carries\n        its case file, its strength stays below any evidenced confidence, and\n        the engine's UNKNOWN stays UNKNOWN however good the hunch."},{"k":"It will not run what nobody authorised","d":"A model may propose a repair. Only action types registered in code can\n        execute, the risk class comes from OMEM's registry rather than from the\n        plan that claims it, and a high-risk action needs a named approver on top\n        of the permission."},{"k":"It will not quietly overwrite","d":"A contradiction keeps both claims, records which is currently believed,\n        and can reconstruct either side at any past point in time. Nothing is\n        lost when something changes."}]}]}]]}],["$","$L3",null,{"className":"section-y","children":[["$","div",null,{"className":"max-w-3xl","children":[["$","span",null,{"aria-hidden":"true","className":"block h-px w-full bg-[color:var(--border)]"}],["$","h2",null,{"id":"s-02","className":"display mt-9 text-2xl","children":"It concludes things. And it can take them back."}],["$","p",null,{"className":"lede mt-6","children":["Declare a rule, and OMEM composes what it knows into conclusions that carry their premises. The reason to want that is what happens on the way down: retract one fact and every conclusion resting on it is withdrawn in the same request, cascade included, with the whole chain answerable to ",["$","span",null,{"className":"mono","children":"why()"}],"."]}]]}],["$","figure",null,{"className":"m-0 mt-10 max-w-[45rem]","children":[["$","div",null,{"className":"lift-lg overflow-hidden rounded-lg [&_svg]:block [&_svg]:h-auto [&_svg]:w-full","dangerouslySetInnerHTML":{"__html":"$8"}}],["$","figcaption",null,{"className":"mt-5 flex flex-wrap items-baseline gap-x-3 text-caption text-faint","children":[["$","span",null,{"aria-hidden":"true","className":"h-px w-8 shrink-0 bg-[color:var(--line-strong)]"}],"Verbatim output of scripts/demo_reasoning.py. Every line is an asserted test that runs in CI."]}]]}]]}],["$","$L3",null,{"className":"section-y","children":["$","div",null,{"className":"grid gap-10 lg:grid-cols-2 lg:gap-14","children":[["$","div",null,{"children":[["$","div",null,{"className":"max-w-3xl","children":[["$","span",null,{"aria-hidden":"true","className":"block h-px w-full bg-[color:var(--border)]"}],["$","h2",null,{"id":"s-03","className":"display mt-9 text-2xl","children":"It learns from one example, then doubts itself harder than you would."}],["$","p",null,{"className":"lede mt-6","children":"Humans learn fast by leaping to conclusions, and confabulate for the same reason. OMEM keeps the speed and drops the confabulation: one similar case is enough to form an expectation, and every expectation is born suspect, wearing a case file."}]]}],["$","p",null,{"className":"mt-5 max-w-read text-body text-muted","children":"A skeptic pass works each case against everything OMEM holds. Only evidence about the target itself can support or refute; rival hypotheses compete and reality picks the winner. A case that will not resolve asks a question, the answer is recorded as evidence under the answerer's name, and a calibration record keeps the boldness of new leaps honest about the record of old ones."}],["$","p",null,{"className":"mt-5 max-w-read text-body text-muted","children":"And it generalizes. From what it has seen across many people OMEM learns priors, regularities of the form “people who hold P tend to hold Q”, and uses them to read someone new from very little. A prior fires only into a silence and yields the instant that person's own evidence disagrees, so a general pattern never overrides an individual. Each prior stores counts, never a person, so the learned model of people carries no fact about anyone."}],["$","$L5",null,{"href":"/docs","variant":"quiet","className":"mt-5","children":"How the intuition layer works"}]]}],["$","$L9",null,{"filename":"hunches with case files","label":"The intuition layer","single":"mem.leap()      # one similar case is enough\n\nmem.expects(about=\"customer:gamma\")\n# wants_pdf_invoices   strength 0.35\n#   because: beta holds it; gamma resembles beta\n#   supports: 1   undermines: 0\n#   gaps: no direct evidence about gamma yet\n\nmem.interrogate()    # the skeptic works every open case\n# verdicts come from reality, never from the model\n\nmem.believes(about=\"customer:gamma\",\n             claim=\"wants_pdf_invoices\")\n# \"UNKNOWN\"  - a hunch is never a belief\n\nmem.priors()         # what it learned about people in general\n# holds P -> holds Q\n#   in_population: 4 of 5    when_applied: 3-0\n#   fires only into a silence, yields to the person"}]]}]}],["$","$L3",null,{"className":"section-y","id":"objective","children":[["$","div",null,{"className":"max-w-3xl","children":[["$","span",null,{"aria-hidden":"true","className":"block h-px w-full bg-[color:var(--border)]"}],["$","h2",null,{"id":"s-objective","className":"display mt-9 text-2xl","children":"Why we are building this: AI that understands people, and holds a fact about no one."}],["$","p",null,{"className":"lede mt-6","children":"OMEM is memory for agents, but the reason it exists runs deeper. From what it sees across many people it learns priors, regularities of the form “people who do X tend to do Y”, kept as counts that name nobody. Installs that choose to can pool those counts into a shared, anonymous bank, and that bank is offered to teach AI our nature without ever holding a person. That is the objective: connect humans and AI by giving AI a real understanding of who we are, learned from patterns people chose to share, held by no one."}]]}],["$","$L5",null,{"href":"/objectives","variant":"quiet","className":"mt-5","children":"Read the objective"}]]}],["$","$L3",null,{"className":"section-y","children":["$","div",null,{"className":"grid gap-10 lg:grid-cols-2 lg:gap-14","children":[["$","div",null,{"children":[["$","div",null,{"className":"max-w-3xl","children":[["$","span",null,{"aria-hidden":"true","className":"block h-px w-full bg-[color:var(--border)]"}],["$","h2",null,{"id":"s-04","className":"display mt-9 text-2xl","children":["A model proposed ",["$","span",null,{"className":"mono","children":"exec_shell"}],". OMEM did not run it."]}],["$","p",null,{"className":"lede mt-6","children":["OMEM records what breaks and repairs it under policy. The model is a reasoning component that may"," ",["$","em",null,{"className":"not-italic font-medium text-fg","children":"propose"}]," a plan; OMEM decides what is permitted, what executes, and whether it actually worked."]}]]}],["$","p",null,{"className":"mt-5 max-w-read text-body text-muted","children":"Error text and model output are data here. Neither can name an action into existence, and the refusal is written down with the reason for every action rather than disappearing."}],["$","$L5",null,{"href":"/docs","variant":"quiet","className":"mt-5","children":"How the healing loop works"}]]}],["$","$L9",null,{"filename":"a denied plan","label":"A repair plan that OMEM refused","single":"result = mem.healing.handle(\n    error={\"component\": \"billing-sync\", \"error_type\": \"AuthError\"},\n    plan={\"diagnosis\": \"credentials rotated upstream\",\n          \"actions\": [{\"type\": \"reload_config\"},\n                      {\"type\": \"exec_shell\"}]},\n)\n\nresult[\"status\"]\n# \"denied\"  - nothing executed\n\nresult[\"decisions\"]\n# reload_config  permitted      (low risk)\n# exec_shell     unknown action type (not registered)"}]]}]}],["$","$L3",null,{"className":"section-y","children":[["$","div",null,{"className":"max-w-3xl","children":[["$","span",null,{"aria-hidden":"true","className":"block h-px w-full bg-[color:var(--border)]"}],["$","h2",null,{"id":"s-05","className":"display mt-9 text-2xl","children":"Two agents disagree. Both are kept, one is believed, and you can ask why."}],"$undefined"]}],["$","div",null,{"className":"mt-10 grid gap-10 lg:grid-cols-[minmax(0,1fr)_minmax(0,320px)] lg:gap-14","children":[["$","$L9",null,{"label":"Recording a contradiction","tabs":[{"label":"Python","code":"from omem import Memory\n\nmem = Memory(api_key=\"omem_sk_...\", project=\"proj_...\")\n\nmem.remember(agent=\"support\", about=\"customer:alice\",\n             claim=\"prefers_annual_billing\")\n\n# Nothing infers that these two disagree. You say so, once.\nmem.contradict(\"prefers_annual_billing\", \"prefers_monthly_billing\")\n\nmem.remember(agent=\"sales\", about=\"customer:alice\",\n             claim=\"prefers_monthly_billing\")\n\nmem.believes(about=\"customer:alice\", claim=\"prefers_annual_billing\")\n# \"CONTRADICTED\"  - not deleted, not overwritten\n\nmem.why(assertion_id)   # the chain that led there"},{"label":"TypeScript","code":"// Not on npm yet: used from sdk/typescript/ in the repo.\nimport { Memory } from \"./sdk/typescript/src/index\";\n\nconst mem = new Memory({ apiKey: \"omem_sk_...\", project: \"proj_...\" });\n\nawait mem.remember({ agent: \"support\", about: \"customer:alice\",\n                     claim: \"prefers_annual_billing\" });\n\nawait mem.contradict(\"prefers_annual_billing\", \"prefers_monthly_billing\");\n\nawait mem.believes({ about: \"customer:alice\",\n                     claim: \"prefers_annual_billing\" });\n// \"CONTRADICTED\""},{"label":"MCP","code":"// claude_desktop_config.json\n{\n  \"mcpServers\": {\n    \"omem\": {\n      \"command\": \"omem-mcp\",\n      \"env\": {\n        \"OMEM_API_KEY\": \"omem_sk_...\",\n        \"OMEM_BASE_URL\": \"http://127.0.0.1:8787\",\n        \"OMEM_PROJECT\": \"proj_...\",\n        \"OMEM_AGENT\": \"claude\"\n      }\n    }\n  }\n}"}]}],["$","ul",null,{"className":"flex flex-col gap-6","children":[["$","li","Belief state over time",{"children":[["$","h3",null,{"className":"text-note font-semibold","children":"Belief state over time"}],["$","p",null,{"className":"mt-1.5 text-note text-muted","children":"Every claim carries an interval. Ask what was believed last Tuesday and get last Tuesday's answer, not today's."}]]}],["$","li","Provenance you can follow",{"children":[["$","h3",null,{"className":"text-note font-semibold","children":"Provenance you can follow"}],["$","p",null,{"className":"mt-1.5 text-note text-muted","children":"Ask why something is believed and get the chain of assertions and evidence that led there."}]]}],["$","li","What changed while you were gone",{"children":[["$","h3",null,{"className":"text-note font-semibold","children":"What changed while you were gone"}],["$","p",null,{"className":"mt-1.5 text-note text-muted","children":"changes(since) returns the delta an agent wants at session start: what appeared, what closed and how, which conflicts opened, who merged."}]]}],["$","li","A judgment queue, not a guessing engine",{"children":[["$","h3",null,{"className":"text-note font-semibold","children":"A judgment queue, not a guessing engine"}],["$","p",null,{"className":"mt-1.5 text-note text-muted","children":"When two records look like one person, or a declared rule is violated, the question waits for a human. Approvals are recorded under the approver's name, and a dismissed question is never asked twice."}]]}],["$","li","Private by default",{"children":[["$","h3",null,{"className":"text-note font-semibold","children":"Private by default"}],["$","p",null,{"className":"mt-1.5 text-note text-muted","children":"Memory belongs to an agent unless you share it with a team or the project."}]]}],["$","li","Everyday habits are memory",{"children":[["$","h3",null,{"className":"text-note font-semibold","children":"Everyday habits are memory"}],["$","p",null,{"className":"mt-1.5 text-note text-muted","children":"“Mornings work best for me” attaches to the person who wrote it, grounded in their own sentence, extracted offline with no LLM. The priors tier then learns what people are like in general, as counts that name nobody."}]]}],["$","li","The right to be forgotten, executed",{"children":[["$","h3",null,{"className":"text-note font-semibold","children":"The right to be forgotten, executed"}],["$","p",null,{"className":"mt-1.5 text-note text-muted","children":"One request rewrites the record for real: the person's data, the cascade behind it, and their sentences quoted under surviving beliefs. Replay-verified before anything is touched; what remains is a hash, counts, and a date."}]]}],["$","li","A bank that teaches AI what people are like",{"children":[["$","h3",null,{"className":"text-note font-semibold","children":"A bank that teaches AI what people are like"}],["$","p",null,{"className":"mt-1.5 text-note text-muted","children":"The priors OMEM learns collect in an intelligence bank on your own machine, anonymous counts about how people behave, exportable as a training set. Our objective is to give AI a real understanding of our nature while holding no fact about anyone."}]]}],["$","li","The dashboard is included",{"children":[["$","h3",null,{"className":"text-note font-semibold","children":"The dashboard is included"}],["$","p",null,{"className":"mt-1.5 text-note text-muted","children":"One pip install serves the API and the UI on the same port. No Node at runtime, no second process."}]]}]]}]]}]]}],["$","$L3",null,{"className":"section-y","children":[["$","div",null,{"className":"max-w-3xl","children":[["$","span",null,{"aria-hidden":"true","className":"block h-px w-full bg-[color:var(--border)]"}],["$","h2",null,{"id":"s-06","className":"display mt-9 text-2xl","children":"Marketing that cannot fail is indistinguishable from marketing that is false."}],["$","p",null,{"className":"lede mt-6","children":"So the load-bearing sentences here are executable. Each one names the test that goes red the moment it stops being true, and those tests run on every commit."}]]}],["$","ul",null,{"className":"mt-10 grid gap-x-14 gap-y-9 sm:grid-cols-2","children":[["$","li","The Witness benchmark",{"children":[["$","h3",null,{"className":"text-note font-semibold","children":"The Witness benchmark"}],["$","p",null,{"className":"mt-1.5 text-note text-muted","children":"Memory benchmarks measure recall. Witness measures testimony: no asserting what nobody said, retraction honoured, disagreement kept visible, two people with one name kept apart, conclusions dying with their premises. OMEM's card is asserted in CI. Adapters for Mem0 and Graphiti are included and run with your keys, because this repo publishes no numbers it did not run."}],["$","a",null,{"className":"mono mt-2 inline-block text-caption text-faint underline decoration-[color:var(--line-strong)] underline-offset-4 hover:text-[color:var(--fg)]","href":"https://github.com/troybrandonc-bit/Omem/blob/main/benchmarks/witness/README.md","target":"_blank","rel":"noreferrer","children":"benchmarks/witness/README.md"}]]}],["$","li","It phones home to nobody",{"children":[["$","h3",null,{"className":"text-note font-semibold","children":"It phones home to nobody"}],["$","p",null,{"className":"mt-1.5 text-note text-muted","children":"A guard installed under the socket layer, then a full working session: identity, contradiction, a rule cascade, recall, hunches. One outbound connection or DNS lookup that is not loopback fails the build with the address in hand."}],["$","a",null,{"className":"mono mt-2 inline-block text-caption text-faint underline decoration-[color:var(--line-strong)] underline-offset-4 hover:text-[color:var(--fg)]","href":"https://github.com/troybrandonc-bit/Omem/blob/main/server/tests_airgap.py","target":"_blank","rel":"noreferrer","children":"server/tests_airgap.py"}]]}],["$","li","Upgrades never rewrite your past",{"children":[["$","h3",null,{"className":"text-note font-semibold","children":"Upgrades never rewrite your past"}],["$","p",null,{"className":"mt-1.5 text-note text-muted","children":"An ops log frozen on 2026-08-29 replays on every commit and must produce a byte-identical state digest. The suite also tampers with one op and requires the digest to move, so the check is proven able to fail."}],["$","a",null,{"className":"mono mt-2 inline-block text-caption text-faint underline decoration-[color:var(--line-strong)] underline-offset-4 hover:text-[color:var(--fg)]","href":"https://github.com/troybrandonc-bit/Omem/blob/main/server/tests_upgrade_stability.py","target":"_blank","rel":"noreferrer","children":"server/tests_upgrade_stability.py"}]]}],["$","li","The claims ledger",{"children":[["$","h3",null,{"className":"text-note font-semibold","children":"The claims ledger"}],["$","p",null,{"className":"mt-1.5 text-note text-muted","children":"Sixteen load-bearing sentences mapped to the test behind each. The ledger is itself guarded: a row whose file goes missing fails CI. A claim with no row is opinion."}],["$","a",null,{"className":"mono mt-2 inline-block text-caption text-faint underline decoration-[color:var(--line-strong)] underline-offset-4 hover:text-[color:var(--fg)]","href":"https://github.com/troybrandonc-bit/Omem/blob/main/CLAIMS.md","target":"_blank","rel":"noreferrer","children":"CLAIMS.md"}]]}]]}]]}],["$","$L3",null,{"className":"section-y","children":["$","div",null,{"className":"grid gap-10 lg:grid-cols-2 lg:gap-14","children":[["$","div",null,{"children":[["$","div",null,{"className":"max-w-3xl","children":[["$","span",null,{"aria-hidden":"true","className":"block h-px w-full bg-[color:var(--border)]"}],["$","h2",null,{"id":"s-07","className":"display mt-9 text-2xl","children":"This is early software, and the second list matters as much as the first."}],["$","p",null,{"className":"lede mt-6","children":"OMEM is free while it is in beta, and it is missing things you would need before putting it somewhere serious. They are written down rather than discovered during a security review."}]]}],["$","$L5",null,{"href":"/security","variant":"quiet","className":"mt-5","children":"Read the full security page"}]]}],["$","ul",null,{"className":"border-t","children":[["$","li","No SSO or SCIM",{"className":"flex items-start gap-3 border-b py-4","children":[["$","$La",null,{"iconNode":[["path",{"d":"M10.1 2.182a10 10 0 0 1 3.8 0","key":"5ilxe3"}],["path",{"d":"M13.9 21.818a10 10 0 0 1-3.8 0","key":"11zvb9"}],["path",{"d":"M17.609 3.721a10 10 0 0 1 2.69 2.7","key":"1iw5b2"}],["path",{"d":"M2.182 13.9a10 10 0 0 1 0-3.8","key":"c0bmvh"}],["path",{"d":"M20.279 17.609a10 10 0 0 1-2.7 2.69","key":"1ruxm7"}],["path",{"d":"M21.818 10.1a10 10 0 0 1 0 3.8","key":"qkgqxc"}],["path",{"d":"M3.721 6.391a10 10 0 0 1 2.7-2.69","key":"1mcia2"}],["path",{"d":"M6.391 20.279a10 10 0 0 1-2.69-2.7","key":"1fvljs"}]],"className":"lucide-circle-dashed mt-0.5 h-4 w-4 shrink-0 text-faint","aria-hidden":"true"}],["$","span",null,{"className":"text-note text-muted","children":"No SSO or SCIM"}]]}],["$","li","No SOC 2, ISO 27001 or HIPAA BAA",{"className":"flex items-start gap-3 border-b py-4","children":[["$","$La",null,{"iconNode":"$b","className":"lucide-circle-dashed mt-0.5 h-4 w-4 shrink-0 text-faint","aria-hidden":"true"}],["$","span",null,{"className":"text-note text-muted","children":"No SOC 2, ISO 27001 or HIPAA BAA"}]]}],["$","li","No key rotation tooling",{"className":"flex items-start gap-3 border-b py-4","children":[["$","$La",null,{"iconNode":"$b","className":"lucide-circle-dashed mt-0.5 h-4 w-4 shrink-0 text-faint","aria-hidden":"true"}],["$","span",null,{"className":"text-note text-muted","children":"No key rotation tooling"}]]}],["$","li","No region pinning",{"className":"flex items-start gap-3 border-b py-4","children":[["$","$La",null,{"iconNode":"$b","className":"lucide-circle-dashed mt-0.5 h-4 w-4 shrink-0 text-faint","aria-hidden":"true"}],["$","span",null,{"className":"text-note text-muted","children":"No region pinning"}]]}],["$","li","An audit chain that detects tampering, not one that prevents it",{"className":"flex items-start gap-3 border-b py-4","children":[["$","$La",null,{"iconNode":"$b","className":"lucide-circle-dashed mt-0.5 h-4 w-4 shrink-0 text-faint","aria-hidden":"true"}],["$","span",null,{"className":"text-note text-muted","children":"An audit chain that detects tampering, not one that prevents it"}]]}],["$","li","One writer per database, so no high availability",{"className":"flex items-start gap-3 border-b py-4","children":[["$","$La",null,{"iconNode":"$b","className":"lucide-circle-dashed mt-0.5 h-4 w-4 shrink-0 text-faint","aria-hidden":"true"}],["$","span",null,{"className":"text-note text-muted","children":"One writer per database, so no high availability"}]]}]]}]]}]}],["$","$L3",null,{"className":"rule section-y","children":[["$","h2",null,{"className":"display max-w-[22ch] text-2xl","children":"The whole thing runs on your laptop in about a minute."}],["$","p",null,{"className":"lede mt-5","children":"No signup, no card, no quota, and no service to depend on. If it breaks or feels wrong, that is exactly the feedback worth having right now."}],["$","div",null,{"className":"mt-8 max-w-md","children":["$","$L9",null,{"filename":"start here","label":"Install and run OMEM","single":"pip install omem-infrastructure\nomem-server"}]}],["$","div",null,{"className":"mt-6 flex flex-wrap items-center gap-3","children":[["$","$L5",null,{"href":"/docs/quickstart","children":"Start the quickstart"}],["$","$L5",null,{"href":"/docs","variant":"secondary","children":"Documentation"}],["$","$L5",null,{"href":"https://github.com/troybrandonc-bit/Omem/issues","variant":"quiet","external":true,"children":"Report something broken"}]]}]]}]]}],null],null],null]},[null,["$","$L1c",null,{"parallelRouterKey":"children","segmentPath":["children","(marketing)","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L1d",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[]}]],null]},[[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/52528bb155a8eade.css","precedence":"next","crossOrigin":"$undefined"}]],["$","html",null,{"lang":"en","className":"__variable_8adcd2 __variable_46451f","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{\nvar s=localStorage.getItem(\"omem-theme\");\nvar d=s?s===\"dark\":window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\nif(d)document.documentElement.classList.add(\"dark\");\ndocument.documentElement.style.colorScheme=d?\"dark\":\"light\";\n}catch(e){}})();"}}],["$","script",null,{"defer":true,"src":"https://static.cloudflareinsights.com/beacon.min.js","data-cf-beacon":"{\"token\": \"92eda3437ae944c99c0f668453ae69f3\"}"}]]}],["$","body",null,{"children":[["$","a",null,{"href":"#main","className":"skip-link","children":"Skip to content"}],["$","$L1e",null,{"children":["$","$L1f",null,{"children":["$","$L1c",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L1d",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$20","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$21","children":"404"}],["$","div",null,{"style":"$22","children":["$","h2",null,{"style":"$23","children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[]}]}]}]]}]]}]],null],null],["$L24",null]]]]
24:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1, viewport-fit=cover"}],["$","meta","1",{"name":"theme-color","media":"(prefers-color-scheme: light)","content":"#faf9f6"}],["$","meta","2",{"name":"theme-color","media":"(prefers-color-scheme: dark)","content":"#171614"}],["$","meta","3",{"charSet":"utf-8"}],["$","title","4",{"children":"Prove why your AI agent acted, and approve before it does / OMEM"}],["$","meta","5",{"name":"description","content":"OMEM keeps AI agents answerable: an audit trail of what the agent believed and when, and a human approval gate before a risky action runs. Built on a belief-revision engine that keeps contradictions and proves provenance. Self-hosted, MIT, no dependencies."}],["$","meta","6",{"name":"application-name","content":"OMEM"}],["$","link","7",{"rel":"canonical","href":"https://infrastructure.omem-cloud.com/"}],["$","meta","8",{"name":"format-detection","content":"telephone=no"}],["$","meta","9",{"property":"og:title","content":"OMEM / accountability for the AI agents you ship"}],["$","meta","10",{"property":"og:description","content":"OMEM keeps AI agents answerable: an audit trail of what the agent believed and when, and a human approval gate before a risky action runs. Built on a belief-revision engine that keeps contradictions and proves provenance. Self-hosted, MIT, no dependencies."}],["$","meta","11",{"property":"og:url","content":"https://infrastructure.omem-cloud.com/"}],["$","meta","12",{"property":"og:site_name","content":"OMEM"}],["$","meta","13",{"property":"og:image","content":"https://infrastructure.omem-cloud.com/icon.png"}],["$","meta","14",{"property":"og:type","content":"website"}],["$","meta","15",{"name":"twitter:card","content":"summary"}],["$","meta","16",{"name":"twitter:title","content":"OMEM / accountability for the AI agents you ship"}],["$","meta","17",{"name":"twitter:description","content":"OMEM keeps AI agents answerable: an audit trail of what the agent believed and when, and a human approval gate before a risky action runs. Built on a belief-revision engine that keeps contradictions and proves provenance. Self-hosted, MIT, no dependencies."}],["$","meta","18",{"name":"twitter:image","content":"https://infrastructure.omem-cloud.com/icon.png"}],["$","link","19",{"rel":"icon","href":"/icon.png?2085097fd5dec5e8","type":"image/png","sizes":"512x512"}],["$","link","20",{"rel":"apple-touch-icon","href":"/apple-icon.png?75e7810ff587c16c","type":"image/png","sizes":"180x180"}],["$","meta","21",{"name":"next-size-adjust"}]]
1:null
